Download presentation
Presentation is loading. Please wait.
1
コンピュータアーキテクチャ: ここでやったこと これからやること
計算機構成同演習最終回 天野
2
コンピュータの構成 この授業で やったところ Disk Key CPU Display System Bus I/O Bus Memory
Bridge System Bus I/O Bus Memory System コンピュータの3要素
3
重要な入出力(I/O) バスブリッジを介してI/Oバスと接続 メモリと同様な番地付けをする場合が多い (Memory-mapped I/O)
マルチメディア化により範囲が広がる ディスク、テープ、CD、DVDなどの補助記憶 Ethernetなどのネットワーク ビットマップディスプレイ、CDCビデオ入力 キーボード、マウス等の入力装置 音声出力、入力
4
メモリシステムと入出力 メモリシステム 入出力 マルチコアの メモリシステム コンピュータアーキテクチャ (3年春) I/Oの接続 割り込み
コンピュータアーキテクチャ (3年春) I/Oの接続 割り込み DMA(Direct Memory Access) 仮想記憶 記憶管理 オペレーティングシステム(3年秋) マイクロプロセッサ実験 FPGA上にCPUを実現 入出力プログラム 情報工学実験 (3年秋)
5
CPU性能向上のための技法 コンピュータアーキテクチャ(3年春) パイプライン処理 命令レベル並列処理 マルチコア 命令レベル並列処理
スーパースカラ VLIW SMT マイクロプロセッサ特論(大学院) マルチプロセッサ クラスタコンピューティング 再構成可能プロセッサ コンピュータアーキテクチャ特論(大学院)
6
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
7
高速化の流れ スレッドレベルの 高速化 Simultaneous Multithreading マルチコア化 複数命令の同時発行
(スーパースカラ) 命令レベルの 高速化 パイプラインを細かく (スーパーパイプライン) 周波数の向上 RISCの登場 パイプライン化 命令の動的スケジュール マルチコア 革命 1980 1990 2000
8
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
9
命令フォーマット 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フィールドができるだけ長くとれるように工夫してある。
10
パイプラインの概観 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
11
命令のアウトオブオーダ実行 トーマスローのアルゴリズム Hennessy & Patterson Computer Architecture より
12
マルチスレッドとSMT(Simultaneous Multi-Threading)
Issue Slots Issue Slots Issue Slots Clock Cycles fine-grained multithreaded superscalar superscalar SMT
13
マルチコア、メニーコア 動作周波数の向上が限界に達する 命令レベル並列処理が限界に達する メモリのスピードとのギャップが埋まらない
消費電力の増大、発熱の限界 半導体プロセスの速度向上が配線遅延により限界に達する 命令レベル並列処理が限界に達する メモリのスピードとのギャップが埋まらない → マルチコア、メニーコアの急速な発達 マルチコア革命 年 プログラマが並列化しないと単一プログラムの性能が上がらない
14
プロセッサの動作周波数は2003年で限界に達した
クロック周波数の向上 Pentium4 3.2GHz Nehalem 3.3GHz 高速プロセッサのクロック周波数 周波数 1GHz 年間40% プロセッサの動作周波数は2003年で限界に達した 消費電力、発熱が限界に Alpha21064 150MHz 100MHz 1992 2008 2000 年
15
Flynnの分類 命令流(Instruction Stream)の数: M(Multiple)/S(Single)
データ流(Data Stream)の数:M/S SISD ユニプロセッサ(スーパスカラ、VLIWも入る) MISD:存在しない(Analog Computer) SIMD MIMD
16
一人の命令で皆同じことをする SIMD 命令メモリ 半導体チップ内でたくさんの 演算装置を動かすには良い 方法 アクセラレータ(普通のCPU
にくっつけて計算能力を加速 する加速装置)の多くは この方式 安くて高いピーク性能が 得られる →パソコン、ゲーム機と 共用 命令 演算装置 Data memory
17
GPGPU:PC用 グラフィックプロセッサ
TSUBAME2.0(Xeon+Tesla,Top /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
18
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
19
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 mm^2
20
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)
21
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
22
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
23
SUN Niagara 2 Niagara 2
24
Multi-Core (Intel’s Nehalem-EX)
CPU L3 Cache 8 CPU cores 24MB L3 cache 45nm CMOS 600 mm^2
25
分散共有メモリ型 独立して動けるプロセッサ を複数使う メモリ空間 Node 0 0 Node 1 1 2 Node 2 3 Node 3
Interconnection Network Node 2 3 メモリ空間 Node 3 独立して動けるプロセッサ を複数使う
26
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
27
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
28
SACSIS2012 Invited speech
29
クラスタコンピュータ 共有メモリを持たないものも多い
30
Tilera’s Tile64 Tile Pro, Tile Gx Linux runs in each core.
31
Intel 80-Core Chip Intel 80-core chip [Vangal,ISSCC’07]
32
Amdahlの法則 シリアルな部分part 並列処理が可能な部分 99% 1% 並列処理で高速化できる部分 0.01 + 0.99/p
高速化の効果はそれが可能な部分の割合によって制限される 多くの並列処理にとっては限界になる
33
まとめ 汎用プロセッサのマルチコア化は現在絶好調進行中 メニーコア 世代が進む毎に2ずつ増えている
しかし、コア数をこれ以上増やしても良いことがないかも、、、 メニーコア GPUなどのアクセラレータの性能向上は進む メニーコアによるクラウドコンピューティング
34
演習問題 並列化できない部分が1%存在し、その他は全て並列処理が可能なとき
100台で並列処理を行うと性能は何倍になるか? 10000台ならばどうなるか? ではなぜ、スーパーコンピュータを作るのだろうか?その理由を考えよ。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.