コンピュータアーキテクチャ: ここでやったこと これからやること

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

CPU設計と パイプライン.
第3回 並列計算機のアーキテクチャと 並列処理の実際
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Chapter11-4(前半) 加藤健.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
高性能コンピューティング学講座 三輪 忍 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍
CPU実験 第1回中間発表 4班 瀬沼、高橋、津田、富山、張本.
CPUの高速化テクニックから スーパーコンピュータまで
テープ(メモリ)と状態で何をするか決める
コンピュータの主役はCPU(Central Processing Unit)
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
コンピュータ工学基礎 パイプラインハザード テキスト9章 115~124
計算機システムⅡ 命令セットアーキテクチャ
プログラムはなぜ動くのか.
高性能コンピューティング論2 第1回 ガイダンス
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
パソコンの歴史 ~1970年 1970年代 1980年代 1990年~ ▲1946 ENIAC(世界最初の計算機、1,900加算/秒, 18,000素子) ▲1947 UNIVACⅠ(最初の商用計算機) ▲1964 IBM System/360(5.1MHz, 1MB, 2億円) ▲1974 インテル8080(8.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
第7回 2006/6/12.
組み込み向けCPU 小型デバイスに搭載されるCPU 特徴 携帯電話,デジタルカメラ,PDA,センサデバイスなど 小型 低消費電力 多機能
これからが面白いプロセッサアーキテクチャ
アドバンスト コンピュータ アーキテクチャ 五島.
Advanced Computer Architecture
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
11. マルチスレッド・プロセッサ 五島 正裕.
前坂 たけし (北大院・理) 其の壱 はじめての BIOS 前坂 たけし (北大院・理)
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
10. マルチスレッド・プロセッサ 五島 正裕.
Advanced Computer Architecture
Advanced Computer Architecture
第6回 6/4/2011 状態遷移回路とシングルサイクルCPU設計
Advanced Computer Architecture
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
「コアの数なんて どうでもいい」 五島 正裕(東大).
ディジタル回路の設計と CADによるシステム設計
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
計算機構成 第4回 アキュムレータマシン テキスト第3章
08. メモリ非曖昧化 五島 正裕.
計算機構成 第11回 マルチサイクルCPU 慶應大学 天野英晴.
計算機構成 第5回 RISCの命令セットアーキテクチャ テキスト第4章
情報とコンピュータ 静岡大学工学部 安藤和敏
コンピュータアーキテクチャ 第 10 回.
09. メモリ・ディスアンビギュエーション 五島 正裕.
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 10 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
Computer Architecture Guidance
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 5 回.
コンピュータアーキテクチャ 第 11 回.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
情報システム基盤学基礎1 コンピュータアーキテクチャ編
並列処理プロセッサへの 実数演算機構の開発
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

コンピュータアーキテクチャ: ここでやったこと これからやること 計算機構成同演習最終回 天野

コンピュータの構成 この授業で やったところ Disk Key CPU Display System Bus I/O Bus Memory Bridge System Bus I/O Bus Memory System コンピュータの3要素

重要な入出力(I/O) バスブリッジを介してI/Oバスと接続 メモリと同様な番地付けをする場合が多い (Memory-mapped I/O) マルチメディア化により範囲が広がる ディスク、テープ、CD、DVDなどの補助記憶 Ethernetなどのネットワーク ビットマップディスプレイ、CDCビデオ入力 キーボード、マウス等の入力装置 音声出力、入力

メモリシステムと入出力 メモリシステム 入出力 マルチコアの メモリシステム コンピュータアーキテクチャ (3年春) I/Oの接続 割り込み コンピュータアーキテクチャ (3年春) I/Oの接続 割り込み DMA(Direct Memory Access) 仮想記憶 記憶管理 オペレーティングシステム(3年秋) マイクロプロセッサ実験 FPGA上にCPUを実現 入出力プログラム 情報工学実験 (3年秋)

CPU性能向上のための技法 コンピュータアーキテクチャ(3年春) パイプライン処理 命令レベル並列処理 マルチコア 命令レベル並列処理 スーパースカラ VLIW SMT  マイクロプロセッサ特論(大学院) マルチプロセッサ クラスタコンピューティング 再構成可能プロセッサ コンピュータアーキテクチャ特論(大学院)

IFで加算を行う IF EX WB ID ‘0’ ext 1 ir ‘1’ A areg S Y + creg B ext breg rwe rwe_id rwe_ex opcode 15:11 decorder st_op st_op_id ld_op ld_op_id funct 3:0 ‘0’ funct 2:0 00 01 10 ext com_id THB 1 ADD rd 10:8 ir rd_id rd_ex ‘1’ A rwe_ex 1 areg S Y + creg 1 00 B rs 7:5 ext 1 01 breg dreg PC imm 7:0 10 1 ext0 alu_bsel r0 判定 daddr ddataout ddatain データ メモリ 命令メモリ st_op_id we

高速化の流れ スレッドレベルの 高速化 Simultaneous Multithreading マルチコア化 複数命令の同時発行 (スーパースカラ) 命令レベルの 高速化 パイプラインを細かく (スーパーパイプライン) 周波数の向上 RISCの登場 パイプライン化 命令の動的スケジュール マルチコア 革命 2003-2004 1980 1990 2000

MIPSの命令セット 32ビットレジスタが32個ある 3オペランド方式 LD,STはディスプレースメント付き ADD R3,R1,R2 ADD R3,R1,R2 ADDI R3,R1,#1 LD R3, 10(R1) ST R1, 20(R2) BEQ R1,R2, loop

命令フォーマット 3種類の基本フォーマットを持つ R-type I-type J-type opcode rs rt rd shift amount function immediate target 31 26 25 21 20 16 15 11 10 6 5 op(opcode):命令の種類を表すオペコードフィールド。 FUNC(functional code):opフィールドで表現しきれない場合に補助オペコードとしてopフィールドを拡張する形で用いるフィールド。PICO-16ではopフィールドで2オペランドの算術論理演算命令を示し、ADDやSUBといった演算の種類をFUNCフィールドで特定する。 Rd(destination register):算術論理演算の計算結果やメモリからロードしてきたデータといった処理の結果を格納するレジスタ番号を指定するフィールド。PICO-16の演算ではRdの内容を1つのソースデータとしてRsの内容とADD等の演算を行い、Rdの内容を書きつぶして結果を書き込む。 Rs(source register):算術論理演算のソースデータを格納しているレジスタ番号を指定するフィールド。PICO-16では1つしか指定できないので2オペランド命令であるが、多くの32ビットアーキテクチャではRsを2つとRdを指定できる。 Immediate:命令に直接値を埋め込むのに使用するフィールド。PICO-16では算術論理演算のソースやレジスタに直接immediateの値をロードする際と、条件分岐命令の相対分岐オフセットに用いる。 Offset:immediateと同様に命令に直接値を埋め込むが、offsetフィールドはPC(プログラムカウンタ)のオフセットを指定するのに用いる。相対分岐命令で大きなプログラムの範囲を指定できるように、多くの命令セットにおいてoffsetフィールドができるだけ長くとれるように工夫してある。

パイプラインの概観 IF ID EX MEM WB ir + pc Decoder rwadr Register File dout0 control signals Decoder ir rwadr Register File MUX rs dout0 ALU aluout dout1 rd MUX MUX rt MUX imm 4 分岐(Branch)命令の処理はIFステージとRFステージで行う。条件分岐命令では条件の判別をどこで行うかによって分岐先のアドレスをフェッチするか続くアドレスをフェッチするかが決定するまでのクロックサイクル数が変化する。 分岐命令によって分岐先に飛ぶ前に、分岐命令の次の命令を必ず実行すると定める方法がある。この方法を用いると分岐先が決定するまで待たねばならないクロックサイクルに分岐命令の次の命令を実行して無駄をなくすことができる。その続く命令を実行するスロットをDelay Slotと呼ぶ。 今回のパイプラインではRFステージで条件を読み出すのと並列に分岐先を計算してIFステージに送り、IFステージでは条件の真偽が判別されしだいそれに従って続きのpcと計算された分岐先のpcを選択して命令フェッチを行う。この構造をとるとDelay Slotを1クロックサイクル必要とするが、構造は単純となる。Delay Slotが存在するとプログラムのコード自体をそのDelay Slot数に対応させて書き換える必要がある。 pcset hazard + MUX pc exfdata ALU badr ifpc memfdata idata iaddr ddataout daddr ddatain Instruction Memory Data Memory

命令のアウトオブオーダ実行 トーマスローのアルゴリズム Hennessy & Patterson Computer Architecture より

マルチスレッドとSMT(Simultaneous Multi-Threading) Issue Slots Issue Slots Issue Slots Clock Cycles fine-grained multithreaded superscalar superscalar SMT

マルチコア、メニーコア 動作周波数の向上が限界に達する 命令レベル並列処理が限界に達する メモリのスピードとのギャップが埋まらない 消費電力の増大、発熱の限界 半導体プロセスの速度向上が配線遅延により限界に達する 命令レベル並列処理が限界に達する メモリのスピードとのギャップが埋まらない → マルチコア、メニーコアの急速な発達 マルチコア革命 2003-2004年 プログラマが並列化しないと単一プログラムの性能が上がらない

プロセッサの動作周波数は2003年で限界に達した クロック周波数の向上 Pentium4 3.2GHz Nehalem 3.3GHz 高速プロセッサのクロック周波数 周波数 1GHz 年間40% プロセッサの動作周波数は2003年で限界に達した 消費電力、発熱が限界に Alpha21064 150MHz 100MHz 1992 2008 2000 年

Flynnの分類 命令流(Instruction Stream)の数: M(Multiple)/S(Single) データ流(Data Stream)の数:M/S SISD ユニプロセッサ(スーパスカラ、VLIWも入る) MISD:存在しない(Analog Computer) SIMD MIMD

一人の命令で皆同じことをする SIMD 命令メモリ 半導体チップ内でたくさんの 演算装置を動かすには良い 方法 アクセラレータ(普通のCPU にくっつけて計算能力を加速 する加速装置)の多くは この方式 安くて高いピーク性能が 得られる →パソコン、ゲーム機と   共用 命令 演算装置 Data memory

GPGPU:PC用 グラフィックプロセッサ TSUBAME2.0(Xeon+Tesla,Top500 2010/11 4th ) 天河一号(Xeon+FireStream,2009/11 5th ) 近年、CPUとGPUやCELLといったマルチコアアクセラレータを組み合わせて使うハイブリッドの計算環境が普及しています。 例えばTOP500を見ると、TSUBAMEのNVIDIA GPUはもちろんですが、↑こういったATIのGPUを使ったスパコンも存在します。 またCell B.E.を搭載したアクセラレータもあります。 これらのアクセラレータを使って高い性能が得られるのですが、アクセラレータごとに異なる環境を用いなければなりませんでした。 そこで、Open CLという開発環境が登場しました。 OpenCLは、マルチコアプロセッサ向けの共通プログラミング環境で、Open CLにより、 異なるアーキテクチャでもCライクの同一ソースコードで開発が可能になりました。 ※()内は開発環境 17

Thread Execution Manager GeForce GTX280 240 cores Host Input Assembler Thread Execution Manager Thread Processors Thread Processors Thread Processors Thread Processors Thread Processors … PBSM PBSM PBSM PBSM PBSM PBSM PBSM PBSM PBSM PBSM Load/Store Global Memory

GPU (NVIDIA’s GTX580) L2 Cache 512 GPU cores ( 128 X 4 ) 128個のコアは SIMD動作をする 4つのグループは 独立動作をする もちろん、このチップを たくさん使う 512 GPU cores ( 128 X 4 ) 768 KB L2 cache 40nm CMOS 550 mm^2

MIMD(Multipe-Instruction Streams/ Multiple-Data Streams)の特徴 自分のプログラムで動けるプロセッサ(コア)を多数使う 同期:足並みを揃える データ交信:共通に使うメモリを持つなど 最近のPC用のプロセッサは全部この形を取っている 最近はスマートフォン用のCPUもマルチコア化 集中メモリ型 UMA(Uniform Memory Access Model) 分散メモリ型 NUMA(Non-Uniform Memory Access Model) 共有メモリを持たない型 NORMA(No Remote Memory Access Model)

Interrupt Distributor Snoop Control Unit (SCU) MPCore (ARM+Renesas) Private FIQ Lines SMP for Embedded application … Interrupt Distributor CPU interface Timer Wdog CPU interface Timer Wdog CPU interface Timer Wdog CPU interface Timer Wdog IRQ IRQ IRQ IRQ CPU/VFP CPU/VFP CPU/VFP CPU/VFP L1 Memory L1 Memory L1 Memory L1 Memory 4つのコアを搭載可能、共有データのキャッシングはスヌープで管理する Snoop Control Unit (SCU) Coherence Control Bus Private Peripheral Bus Private AXI R/W 64bit Bus Duplicated L1 Tag L2 Cache

SUN T1 L2 Cache bank Core Core Directory Crossbar Switch Core L2 Cache Memory Core Directory Core L2 Cache bank Core Directory Core FPU L2 Cache bank Core Directory Single issue six-stage pipeline RISC with 16KB Instruction cache/ 8KB Data cache for L1 Total 3MB, 64byte Interleaved

SUN Niagara 2 Niagara 2

Multi-Core (Intel’s Nehalem-EX) CPU L3 Cache 8 CPU cores 24MB L3 cache 45nm CMOS 600 mm^2

分散共有メモリ型 独立して動けるプロセッサ を複数使う メモリ空間 Node 0 0 Node 1 1 2 Node 2 3 Node 3 Interconnection Network Node 2 3 メモリ空間 Node 3 独立して動けるプロセッサ を複数使う

Cell Broadband Engine PS3 SXU LS DMA MIC BIF/ IOIF0 PXU L1 C L2 C PPE SPE 1.6GHz / 4 X 16B data rings IBM Roadrunner Common platform for supercomputers and games

Supercomputer 「K」 L2 C Core Core Tofu Interconnect 6-D Torus/Mesh Core Memory L2 C Core Core Tofu Interconnect       6-D Torus/Mesh Core Core Inter Connect Controller Core Core Core Core SPARC64 VIIIfx Chip RDMA mechanism NUMA or UMA+NORMA 4 nodes/board 96nodes/Lack 24boards/Lack

SACSIS2012 Invited speech

クラスタコンピュータ 共有メモリを持たないものも多い

Tilera’s Tile64 Tile Pro, Tile Gx Linux runs in each core.

Intel 80-Core Chip Intel 80-core chip [Vangal,ISSCC’07]

Amdahlの法則 シリアルな部分part 並列処理が可能な部分 99% 1% 並列処理で高速化できる部分 0.01 + 0.99/p 高速化の効果はそれが可能な部分の割合によって制限される 多くの並列処理にとっては限界になる

まとめ 汎用プロセッサのマルチコア化は現在絶好調進行中 メニーコア 世代が進む毎に2ずつ増えている しかし、コア数をこれ以上増やしても良いことがないかも、、、 メニーコア GPUなどのアクセラレータの性能向上は進む メニーコアによるクラウドコンピューティング

演習問題 並列化できない部分が1%存在し、その他は全て並列処理が可能なとき 100台で並列処理を行うと性能は何倍になるか? 10000台ならばどうなるか? ではなぜ、スーパーコンピュータを作るのだろうか?その理由を考えよ。