36
計計計計計計計計計計計計計計計計計計計 計計計計

計算機システム Ⅱ 命令セットアーキテクチャ

  • Upload
    terra

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

計算機システム Ⅱ 命令セットアーキテクチャ. 和田俊和. 講義計画. コンピュータ の歴史 1 コンピュータ の歴史 2  コンピュータ の歴史 3  論理 回路と記憶,計算:レジスタと ALU 主 記憶装置とALU,レジスタの 制御 命令セットアーキテクチャ ( ← 本日 ) 演習 問題 パイプライン 処理 メモリ 階層:キャッシュと仮想記憶 命令 レベル並列処理 命令 実行順序の変更 入出力 と周辺装置:DMA,割り込み処理 演習 問題 現代的 な計算機アーキテクチャの 解説 総括と試験 - PowerPoint PPT Presentation

Citation preview

Page 1: 計算機システム Ⅱ 命令セットアーキテクチャ

計算機システムⅡ命令セットアーキテクチャ

和田俊和

Page 2: 計算機システム Ⅱ 命令セットアーキテクチャ

講義計画1. コンピュータの歴史12. コンピュータの歴史2 3. コンピュータの歴史3 4. 論理回路と記憶,計算:レジスタとALU5. 主記憶装置とALU,レジスタの制御6. 命令セットアーキテクチャ(←本日)7. 演習問題8. パイプライン処理9. メモリ階層:キャッシュと仮想記憶10. 命令レベル並列処理11. 命令実行順序の変更12. 入出力と周辺装置:DMA,割り込み処理13. 演習問題14. 現代的な計算機アーキテクチャの解説15. 総括と試験

• 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社

• 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

Page 3: 計算機システム Ⅱ 命令セットアーキテクチャ

本日の講義の範囲

命令という観点から,その構造と,各部の動きを

解説

Page 4: 計算機システム Ⅱ 命令セットアーキテクチャ

3.1 命令セットアーキテクチャ

Page 5: 計算機システム Ⅱ 命令セットアーキテクチャ

3.1.1  操作とオペランド• 命令=操作 (operation) +操作の対象 (operand)• 命令は 2 進数で表され,「命令語」に納められる• 操作の対象 (operand) の分類

– ソースオペランド (source operand)– デスティネーションオペランド (destination operand)– 即値 (immediate)

d ← op s1d ← s1 op s2d ← I

d: デスティネーションオペランド,s1 , s2 :ソースオペランド,

I :即値 op :オペレーション

Page 6: 計算機システム Ⅱ 命令セットアーキテクチャ

3.1.2 命令の表現形式• 命令は,命令語という 2 進数で表される.• 命令語は,オペコード (operation code) とオペランド

(operand) から成る.• このテキストでは, 1 語の固定長命令のみを扱い,命

令の形式は R,I,A の 3 種のみを持つ仮想的な CPU を想定している.

dpl

Page 7: 計算機システム Ⅱ 命令セットアーキテクチャ

3.1.3 命令フィールド• 命令語 32bit ,命令セット64個,レジスタ 32 個,

という条件で考えると以下の bit 割り当てになる.

op: オペコードrs,rt,rd: オペランドレジスタaux :実行細則imm/dpl: 即値または変位addr: メモリアドレス

Page 8: 計算機システム Ⅱ 命令セットアーキテクチャ

アセンブリ言語による命令の表現1

• R 型の命令の例

Page 9: 計算機システム Ⅱ 命令セットアーキテクチャ

アセンブリ言語による命令の表現2

• I 型の命令の例

Page 10: 計算機システム Ⅱ 命令セットアーキテクチャ

アセンブリ言語による命令の表現3

• A 型の命令の例

Page 11: 計算機システム Ⅱ 命令セットアーキテクチャ

3.1.4 アセンブリ言語• 機械語のプログラムは命令語の並び.• 命令語は 2 進数で人にとっては分かりにく

い.• 英語に近い機械語プログラムの表記法• 機械語と一対一の対応関係がある.(高

級言語ではそうではない)

Page 12: 計算機システム Ⅱ 命令セットアーキテクチャ

命令セット

Page 13: 計算機システム Ⅱ 命令セットアーキテクチャ

3.2.1 算術論理演算

Page 14: 計算機システム Ⅱ 命令セットアーキテクチャ

動作例

R 命令の実行過程      I 命令の実行過程

Page 15: 計算機システム Ⅱ 命令セットアーキテクチャ

補足• mul, div, shift 浮動小数点演算については,

ALU とは別に専用の乗算器,除算気,シフタ,浮動小数点演算器( floating point unit, FPU )が設けられるのが普通になっている.

• 現在では,これらは全て CPU の内部に取り込まれており,ものによっては ALU の内部に入れられているものもある.

Page 16: 計算機システム Ⅱ 命令セットアーキテクチャ

算術シフト命令空いた上位ビットに符号 bit を入れる)

Page 17: 計算機システム Ⅱ 命令セットアーキテクチャ

論理シフト命令• 空いた上位ビットに 0 を入れる

Page 18: 計算機システム Ⅱ 命令セットアーキテクチャ

3.2.2 データ移動命令• メモリとレジスタ間のデータ移動– ロード命令– ストア命令

• メモリと入出力機器間のデータ移動は考える必要がない.

Page 19: 計算機システム Ⅱ 命令セットアーキテクチャ

データ移動命令の例

Page 20: 計算機システム Ⅱ 命令セットアーキテクチャ

データ移動命令の例

Page 21: 計算機システム Ⅱ 命令セットアーキテクチャ

データ移動命令の例

Page 22: 計算機システム Ⅱ 命令セットアーキテクチャ

3.2.3 分岐命令

• 無条件分岐→– j– jr– jal (明示的待避

を伴うサブルーチンコール)

• 条件分岐(次頁)

Page 23: 計算機システム Ⅱ 命令セットアーキテクチャ

条件分岐

• 分岐先は相対的

• 絶対番地に飛ぶ際は,無条件分岐と組み合わせる.

Page 24: 計算機システム Ⅱ 命令セットアーキテクチャ

3.3 アドレッシング

Page 25: 計算機システム Ⅱ 命令セットアーキテクチャ

3.3.1 アドレッシングの種類

• データや命令の格納場所を示す方法• ここで示されているのは基本的なものだけ

Page 26: 計算機システム Ⅱ 命令セットアーキテクチャ

アドレッシングの動作例

Page 27: 計算機システム Ⅱ 命令セットアーキテクチャ

3.3.2 バイトアドレッシングとエンディアン

• 通常は 1 語を単位としてデータにアクセスする.• バイト単位でのアクセスをするにはアドレスを指

定する必要がある.

Page 28: 計算機システム Ⅱ 命令セットアーキテクチャ

3.3.3 ゼロレジスタと定数の生成

• r0 ゼロレジスタ : 読み書きしても値がゼロのレジスタ

• 定数の生成例

addi r0, r1, 0101010101010101addi r0, r1, 28 sla r1, r1, 16 eq r1, r0, r1 ori r1, r1, 0000000011111111

(a) 定数の生成 (b) 定数の生成 (c) ビット反転  ( 16bit )           ( 32bit )

Page 29: 計算機システム Ⅱ 命令セットアーキテクチャ

3.4 サブルーチンの実現

Page 30: 計算機システム Ⅱ 命令セットアーキテクチャ

3.4.1 サブルーチンの基本• C 言語では関数, Fortran ではサブルーチ

ン, Pascal では手続き

Page 31: 計算機システム Ⅱ 命令セットアーキテクチャ

3.4.2 サブルーチンの手順Caller Save方式, Callee Save方式1. レジスタ値の待避2. 戻り番地(次の命令番地)の待避3. サブルーチンの先頭番地へのジャンプ4. サブルーチン本体の実行5. 戻り番地へのジャンプ6. レジスタ値の復帰7. 元の命令列の実行再開

Page 32: 計算機システム Ⅱ 命令セットアーキテクチャ

3.4.3 スタックによるサブルーチンの実現

sw r1, 0(sp)addi sp,sp,4

(a) push

subi sp,sp,4lw r1, 0(sp)

(b) pop

Page 33: 計算機システム Ⅱ 命令セットアーキテクチャ

サブルーチンのアセンブラプログラム

sw r1, 0(sp)sw r2, 4(sp)…sw r31, 4*30(sp)addi sp,sp,4*30+4jal address   /* サブルーチンへのジャンプ   r31←(pc)

+4*/

subi sp, sp, 4*30+4 lw r1, 0(sp) lw r2, 4(sp)… lw r31, 4*30(sp)元の処理の続き

address:…. jr r31

Page 34: 計算機システム Ⅱ 命令セットアーキテクチャ

RISC と CISC

• CISC (complex instruction set computer) と RISC (reduced instruction set computer)

• CISC が先行( IBM メインフレーム, DEC VAX-11, Intel 80486 など)

• 1980年以降, RISC が主流. (Sparc, MIPS, Power PC, Alpha など )Pentiumも表面上はCISCだが,内部は RISC

Page 35: 計算機システム Ⅱ 命令セットアーキテクチャ

本日の講義の範囲

命令という観点から,その構造と,各部の動きを

解説

Page 36: 計算機システム Ⅱ 命令セットアーキテクチャ

次週の演習問題• 次週は演習問題を行います.• 各章の「理解度の確認」問題をやっておい

て下さい.• これ以外に講義でお話ししたことも出し

ます.