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

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

CPU設計と パイプライン.
2006/10/26 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
計算機システムⅡ 命令レベル並列処理とアウトオブオーダ処理
計算機システムⅡ キャッシュと仮想記憶 和田俊和.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
CPU実験 第1回中間発表 4班 瀬沼、高橋、津田、富山、張本.
情報システム基盤学基礎1 コンピュータアーキテクチャ編 第2回 命令
Ibaraki Univ. Dept of Electrical & Electronic Eng.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
2012年度 計算機システム演習 第4回 白幡 晃一.
App. A アセンブラ、リンカ、 SPIMシミュレータ
2006年度 計算機システム演習 第4回 2005年5月19日.
第4回目 2006/05/08.
ソフトウェアとのインターフェース.
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
プログラムはなぜ動くのか.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
計算機システムⅡ 入出力と周辺装置 和田俊和.
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
第7回 2006/6/12.
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
第3回目 2006/05/01.
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
勉強会その1    2016/4/ 分35秒 コンピュータアーキテクチャとは? コンピュータの構成 命令の実行.
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
TA 高田正法 B10 CPUを作る 3日目 SPIMの改造 TA 高田正法
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
Ibaraki Univ. Dept of Electrical & Electronic Eng.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 4 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
コンピュータアーキテクチャ 第 3 回.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
システムソフトウェア講義の概要 計算機システムの復習:中央演算処理装置(CPU),プログラムの実行,主記憶装置,補助記憶装置
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 5 回.
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
6.5 最終コード生成 (1)コードの形式 ①絶対2進コード(AB : absolute binary) 命令後のオペランドが絶対番地指定。
Presentation transcript:

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

講義計画 コンピュータの歴史1 コンピュータの歴史2 コンピュータの歴史3 論理回路と記憶,計算:レジスタとALU コンピュータの歴史2  コンピュータの歴史3  論理回路と記憶,計算:レジスタとALU 主記憶装置とALU,レジスタの制御 命令セットアーキテクチャ(←本日) 演習問題 パイプライン処理 メモリ階層:キャッシュと仮想記憶 命令レベル並列処理 命令実行順序の変更 入出力と周辺装置:DMA,割り込み処理 現代的な計算機アーキテクチャの解説 総括と試験 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

命令という観点から,その構造と,各部の動きを解説 本日の講義の範囲 命令という観点から,その構造と,各部の動きを解説

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

3.1.1 操作とオペランド d ← op s1 d ← s1 op s2 d ← I d: デスティネーションオペランド, 3.1.1 操作とオペランド 命令=操作(operation)+操作の対象(operand) 命令は2進数で表され,「命令語」に納められる 操作の対象(operand)の分類 ソースオペランド(source operand) デスティネーションオペランド(destination operand) 即値 (immediate) d ← op s1 d ← s1 op s2 d ← I d: デスティネーションオペランド, s1,s2:ソースオペランド, I:即値  op:オペレーション

3.1.2 命令の表現形式 命令は,命令語という2進数で表される. 命令語は,オペコード(operation code)とオペランド(operand)から成る. このテキストでは,1語の固定長命令のみを扱い,命令の形式はR,I,Aの3種のみを持つ仮想的なCPUを想定している. dpl

3.1.3 命令フィールド 命令語32bit,命令セット64個,レジスタ32個,という条件で考えると以下のbit割り当てになる. op:オペコード rs,rt,rd:オペランドレジスタ aux:実行細則 imm/dpl:即値または変位 addr: メモリアドレス

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

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

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

3.1.4 アセンブリ言語 機械語のプログラムは命令語の並び. 命令語は2進数で人にとっては分かりにくい. 英語に近い機械語プログラムの表記法 機械語と一対一の対応関係がある.(高級言語ではそうではない)

命令セット

3.2.1 算術論理演算

動作例 R命令の実行過程     I命令の実行過程

補足 mul, div, shift浮動小数点演算については,ALUとは別に専用の乗算器,除算器,シフタ,浮動小数点演算器(floating point unit, FPU)が設けられるのが普通になっている. 現在では,これらは全てCPUの内部に取り込まれており,ものによってはALUの内部に入れられているものもある.

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

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

3.2.2 データ移動命令 メモリとレジスタ間のデータ移動 ロード命令 ストア命令 メモリと入出力機器間のデータ移動は考える必要がない.

データ移動命令の例

データ移動命令の例

データ移動命令の例

3.2.3 分岐命令 無条件分岐→ j jr jal (明示的待避を伴うサブルーチンコール) 条件分岐(次頁)

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

3.3 アドレッシング

3.3.1 アドレッシングの種類 データや命令の格納場所を示す方法 ここで示されているのは基本的なものだけ

アドレッシングの動作例

3.3.2 バイトアドレッシングとエンディアン 通常は1語を単位としてデータにアクセスする. バイト単位でのアクセスをするにはアドレスを指定する必要がある.

3.3.3 ゼロレジスタと定数の生成 r0 ゼロレジスタ: 読み書きしても値がゼロのレジスタ 定数の生成例 addi r1, r0, 0101010101010101 addi r1, r0, 28 sla r1, r1, 16 eq r1, r0, r1 ori r1, r1, 0000000011111111 (a)定数の生成 (b) 定数の生成 (c) ビット反転   (16bit)           (32bit)

3.4 サブルーチンの実現

3.4.1 サブルーチンの基本 C言語では関数,Fortranではサブルーチン,Pascalでは手続き

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

3.4.3 スタックによるサブルーチンの実現 sw r1, 0(sp) addi sp,sp,4 (a) push subi sp,sp,4 lw r1, 0(sp) (b) pop

サブルーチンのアセンブラプログラム sw r1, 0(sp) sw r2, 4(sp) … sw r31, 4*30(sp) addi sp,sp,4*30+4 jal 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

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

命令という観点から,その構造と,各部の動きを解説 本日の講義の範囲 命令という観点から,その構造と,各部の動きを解説

次週の演習問題 次週は演習問題を行います. 各章の「理解度の確認」問題をやっておいて下さい. これ以外に講義でお話ししたことも出します.