1 / 27

コンピュータアーキテクチャ 第 1 回 ガイダンスと POCO の命令セット

コンピュータアーキテクチャ 第 1 回 ガイダンスと POCO の命令セット. 天野  hunga@am.ics.keio.ac.jp. 授業計画. RISC 命令セットと Verilog の復習 …2 回 入出力と割り込み …4 回 パイプライン処理 …3 回 命令レベル並列処理 …3 回 マルチコアアーキテクチャ …2 回 上記は目安なので注意! テキスト:天野、西村「作りながら学ぶコンピュータアーキテクチャ」培風館 http://www.am.ics.keio.ac.jp 上に資料を掲示. 計算機構成. コンピュータの構成. Disk. CPU. Key.

lovie
Download Presentation

コンピュータアーキテクチャ 第 1 回 ガイダンスと POCO の命令セット

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. コンピュータアーキテクチャ第1回 ガイダンスとPOCOの命令セットコンピュータアーキテクチャ第1回 ガイダンスとPOCOの命令セット 天野 hunga@am.ics.keio.ac.jp

  2. 授業計画 • RISC命令セットとVerilogの復習…2回 • 入出力と割り込み…4回 • パイプライン処理…3回 • 命令レベル並列処理…3回 • マルチコアアーキテクチャ…2回 上記は目安なので注意! テキスト:天野、西村「作りながら学ぶコンピュータアーキテクチャ」培風館 http://www.am.ics.keio.ac.jp上に資料を掲示

  3. 計算機構成 コンピュータの構成 Disk CPU Key Display System Bus Bridge I/OBus Memory System コンピュータの3要素

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

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

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

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

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

  9. 評価方法 • 毎回の演習 • 今年はコンピュータ部屋を使わない時がある • Web上の掲示に注意! • 設計コンテスト • 上位入賞者は試験免除でA • 期末試験

  10. POCOの命令セットアーキテクチャ(Instruction Set Architecture: ISA) • ソフトウェアとハードウェアのインタフェース • プログラムはISAを対象にすれば個々のハードウェアは気にしなくてもいい • ハードウェアはISAが動けば共通のプログラムが動く • IBM360開発時に明確になった概念 • それまでは開発したマシン毎にソフトウェアを作っていた • 様々な性能、価格のモデルが同じISAを共通できた → IBMのメインフレームでの覇権を確立した • IntelのIA32、ARM、SPARC、MIPSなどが長期間に渡って拡張され、利用されている

  11. ISAの分類 • オペランド数による分類 • 0:スタックマシン PUSH 0 PUSH 1 ADD POP 2 • 演算スタックを使う方法 • B5000、HP9000などの名機があったが80年代に絶滅→スタックを使うとパイプライン化、複数命令発行ができない • 1:アキュムレータマシン LD 0 ADD 1 ST 2 • EDSAC、EDVACなど黎明期のマシン • 6800、6502など黎明期のマイクロプロセッサ • 当初からインデックスレジスタは必要としていた • レジスタが増えて汎用(専用)レジスタマシンに進化し、消滅 • 2,3:汎用(専用)レジスタマシン LD R0,0 ADD R1,1 ST R0,2 • 現在のマシンは全てここに分類される

  12. 汎用レジスタマシンの分類 • オペランド中にメモリの指定をいくつ許すか? 一つも許さない:register-register型 (load/storeマシン) RISC (Reduced Instruction Set Computer) 〇命令長が固定、各命令が簡単、高速実行可能 ×命令数が多くなる ARM、MIPS、SPARCなど 一つだけ許す:register-memory型  中間的な性質: IA32(x86)など 全て許す:memory-memory型  CISC (Complex Instruction Set Computer) 〇命令数が少なくて済む ×命令長が可変、各命令が複雑になりがち VAX-11、PDP-11など

  13. register-register型の データパス Y S A B 必ずレジスタに持ってきてから演算を行う LDR0,0 LD R1,1 ADD R1,R0 STR1,2 固定長命令が可能だが 命令数が増える LD/STばかりやる→load/storeマシン 簡単な命令で構成 RISC(Reduced Instruction Set Computer) … we clk

  14. 各型の消長 1960 1970 1980 1990 1950 草創期のコンピュータ アキュムレータ マシン 見た目は 全盛 IBM360/370 x86の登場 register-memory メインフレーム Pentium-II でバイナリ変換 PDP-8 VAX-11で全盛期 memory-memory 絶滅 RISC vs. CISC論争 register-register IBM801 RISC-I,MIPS、ARM B5000が慶應ITCに! スタック マシン 絶滅

  15. 教育用RISCPOCO • 16bitのregister-register型 • 命令メモリ、データメモリのアドレス、データ共に16bit(64K×16ビット) • レジスタ16本 (r0-r7) • 2オペランド命令 ADDr0,r1 r0 ←r0+r1 左:destination operand 右:source operand (IBM/Intel方式) • 前身のPICOをさらに簡単化 • とにかく実装が楽になるように

  16. メモリの読み書き • レジスタ間接指定 LD r0,(r1)r1の中身の番地のデータを読み出してr0に転送 ST r0,(r1) r1の中身の番地に、r0を書き込む • 実効アドレス(実際に読み書きされるアドレス)=レジスタの内容 • 他にもアドレッシングモード(実効アドレスを決める方法)は色々あるがPOCOはレジスタ間接指定しか持って居ない • アキュムレータマシンの際のLD0は、直接指定と呼ぶ • しかしこれはPOCOでは持っていない

  17. 基本演算命令 • レジスタ同士でしか演算はできない • ADD r1,r2 r1←r1+r2 • SUB r1,r2r1←r1-r2 • AND r1,r2 r1←r1AND r2 • OR r1, r2 r1←r1OR r2 • SL r1 r1<<1 • SR r1 r1>>1 • MV r1,r2 r1 ←r2 単純な移動 • NOP             何もしない(NoOperation)

  18. イミーディエイト命令 • 命令コード中の数字(直値)がそのまま演算に使われる LDI r1,#1 r1←1 ADDI r1,#5 r1←r1+5 • 直値は8ビット符号付 → 演算時は16ビットに符号拡張(sign extension)される • 符号無し命令 LDIUr1,#200 r1←200 ADDIU r1,#0xf0r1←r1+0xf0 (ADDI r1,#0xf0ならばr1←r1-16)

  19. POCOの条件分岐命令 BEZ rx,X: if(rx=0) PC←PC+1+X 10000 ddd XXXXXXXX BNZ rx,X: if(rx≠0) PC←PC+1+X 10001 ddd XXXXXXXX • PC相対指定 • 命令の位置+1を起点としてX分命令を飛び越す • 8ビットのフィールド→ -128から127まで飛べる • 局所性(Locality)があるので多くの場合大丈夫 • プログラムが再配置可能(Relocatable)になる

  20. PC相対指定による分岐(掛け算のプログラムの例)PC相対指定による分岐(掛け算のプログラムの例) LDIU r0,#2 LD r1,(r0)r1 ←2番地の内容 LDIU r0,#3 LD r2,(r0)r2 ←3番地の内容 LDIU r3,#0r3は答が入るので0に初期化 ADD r3,r1r3にr1を足しこむ ADDI r2,#-1r2から1を引く BNZ r2, -30でなければループ LHIU r0,#0 ST r3,(r0) BEZ r2,-1

  21. JumpとJR JMPXpc ←pc+1+XJump 10100 XXXXXXXXXXX • 無条件に相対指定でX分飛ぶ • レジスタ指定がない分遠くに飛べる -1024~+1023 JRrd pc←rdJump Register 00000 ddd --- 01010 • 絶対指定 • 16ビットのアドレス空間のどこにでも飛べる • サブルーチンコールのリターン(来週) • テーブルジャンプ

  22. Jump and Link • 戻り番地を最大番号のレジスタに保存 • POCOの場合r7 • 古典的な手法でマインフレーム時代に使われた • Branch and Link命令 • RISCで最も良く使われる方式 JAL X : pc←pc+1+X, r7←pc+1 10101 XXXXXXXX 飛ぶ範囲はJMPと同じく11ビット(-1024~1023) 議論1:サブルーチンの入れ子(ネスト)に対応しない 議論2:r7にしまうのは命令の直交性を損ねる(格好わるい)

  23. R型命令一覧

  24. I型命令一覧

  25. J型命令一覧

  26. すべてを忘れた人のために tarの解凍 tar xvf file.tar アセンブラshapa ./shapa file.asm –o imem.dat 論理シミュレーションiverilog iverilog *.v vvp a.out 波形ビューアgtkwave gtkwave file.vcd レポート提出 report@am.ics.keio.ac.jp Subject: ARCWORK1 Student_number Name いつでもARCWORK1なので注意!

  27. 演習 • 0番地から8つの正の整数が並んでいる。このうち10より大きい(10は含まない)ものの個数を調べるプログラムを書け

More Related