勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.

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.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第2週目
2012年度 計算機システム演習 第4回 白幡 晃一.
計算機構成 第7回 サブルーチンコールとスタック テキストp85-90
App. A アセンブラ、リンカ、 SPIMシミュレータ
2006年度 計算機システム演習 第4回 2005年5月19日.
第4回目 2006/05/08.
ソフトウェアとのインターフェース.
計算機システムⅡ 命令セットアーキテクチャ
計算機システム ハードウェア編(第3回) ~ ノイマン型コンピュータ ~.
プロセッサ設計教育のための 命令セット・スーパースカラシミュレータの試作と評価
  【事例演習6】  数式インタプリタ      解 説     “インタプリタの基本的な仕組み”.
プログラムはなぜ動くのか.
計算機基礎Ⅱ,Ⅲ (指導書 pp. 76~94) 改訂:佐竹 純二 (作成:岡本 吉央).
高性能コンピューティング論2 第1回 ガイダンス
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
「ソフトウェアのしくみ」.
第7回 2006/6/12.
第3回目 2006/05/01.
計算機システム 第1回 2006/04/22.
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
勉強会その1    2016/4/ 分35秒 コンピュータアーキテクチャとは? コンピュータの構成 命令の実行.
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
計算機システム 第2回 2011/05/02(月) 「コンピュータ・アーキテクチャへのいざない」
条件分岐と繰り返し.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
TA 高田正法 B10 CPUを作る 3日目 SPIMの改造 TA 高田正法
第6回 6/4/2011 状態遷移回路とシングルサイクルCPU設計
計算機構成 第6回 分岐命令とプログラムの実行 テキスト第5章
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 4 回.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 5 回.
情報処理Ⅱ 2005年10月28日(金).
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
ca-9. 数の扱い (コンピュータアーキテクチャとプロセッサ)
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
6.3 インタプリタ (1)インタプリタ(interpreter)とは
6.5 最終コード生成 (1)コードの形式 ①絶対2進コード(AB : absolute binary) 命令後のオペランドが絶対番地指定。
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

勉強会その3    2016/5/1 10 8分35秒 データの表現 演算

MIPS 命令セットアーキテクチャ 主に組み込みシステムで使われていた 特徴 仕様がきれいなため, アーキテクチャの 授業でよく使われる 情報システム基盤学基礎1 MIPS 命令セットアーキテクチャ 主に組み込みシステムで使われていた 例: CISCO のルータやプリンタ,NINTENDO64, PS, PS2 など 特徴 命令長を 32 ビットに統一 32 本の汎用レジスタと 32 本の浮動小数点レジスタ レジスタの幅は 32 ビット (のちに 64 ビット) 仕様がきれいなため, アーキテクチャの 授業でよく使われる [ MIPS命令セットアーキテクチャの一部 ]

命令の基本構造 オペコード オペランド 処理の種類 例: add, sub, lw など 処理の対象 情報システム基盤学基礎1 命令の基本構造 オペランド オペコード 処理の種類 例: add, sub, lw など オペランド 処理の対象 例: $s0, 0($t0), 100 など オペランドの数はオペコードによって異なる オペコード lw $s1, 0($t0) lw $s2, 4($t0) lw $s3, 8($t0) lw $s4, 16($t0) add $t1, $s1, $s2 add $t2, $s3, $s4 sub $s0, $t1, $t2 sw $s0, 16($t0)

フィールドと命令形式 アセンブリ言語と機械語の対応例 命令形式 アセンブリ言語: add $t1, $s1, $s2 機械語: 情報システム基盤学基礎1 フィールドと命令形式 アセンブリ言語と機械語の対応例 アセンブリ言語: add $t1, $s1, $s2 機械語: 命令形式 フィールドの構成の違いによる命令の分類 MIPS の場合は 3 種類の命令形式が存在 フィールド 32ビット 000000 10001 10010 01001 00000 100000 6ビット 5ビット 5ビット 5ビット 5ビット 6ビット (add) ($s1) ($s2) ($t1) (未使用) (add)

MIPS の命令形式 R 形式 I 形式 J 形式 op rs rt rd shamt funct op rs rt 情報システム基盤学基礎1 MIPS の命令形式 R 形式 I 形式 J 形式 op rs rt rd shamt funct 6ビット 5ビット 5ビット 5ビット 5ビット 6ビット op rs rt constant or address 6ビット 5ビット 5ビット 16ビット op address 6ビット 26ビット op: オペコード rs: 第1オペランド rt: 第2オペランド rd: 第3オペランド shamt: シフト量 funct: 機能コード constant: 定数 address: アドレス

情報システム基盤学基礎1 MIPS 命令の種類 算術演算命令 論理演算命令 データ転送命令 分岐命令

算術演算命令 四則演算などの算術演算を行う命令 命令形式は R 形式または I 形式 オペランドはレジスタまたは定数(即値) 情報システム基盤学基礎1 算術演算命令 四則演算などの算術演算を行う命令 例: add, sub, mult, div, addi など 命令形式は R 形式または I 形式 オペランドはレジスタまたは定数(即値) MIPS の算術演算ではメモリアドレスを指定できない 命令形式 アセンブリ言語 意味 機械語 000000 10001 10010 01001 00000 100000 add $t1, $s1, $s2 $t1 = $s1 + $s2 $s1 $s2 $t1 add R 000000 10000 10011 01001 00000 100010 sub $t1, $s0, $s3 $t1 = $s0 - $s3 $s0 $s3 $t1 sub 001000 10000 01001 0000000001000010 I addi $t1, $s0, 66 $t1 = $s0 + 66 addi $s0 $t1 66

論理演算命令 論理演算を行う命令 命令形式は R 形式または定数 オペランドはレジスタまたは定数 情報システム基盤学基礎1 論理演算命令 論理演算を行う命令 例: and, or, andi, sll など 命令形式は R 形式または定数 オペランドはレジスタまたは定数 メモリアドレスの指定不可 命令形式 アセンブリ言語 意味 機械語 000000 10001 10010 01001 00000 100100 and $t1, $s1, $s2 $t1 = $s1 & $s2 $s1 $s2 $t1 and R 000000 00000 10000 01001 00100 000000 sll $t1, $s0, 4 $t1 = $s0 << 4 $s0 $t1 4 sll 001100 10000 01001 0000000000001010 I andi $t1, $s0, 10 $t1 = $s0 & 10 andi $s0 $t1 10

データ転送命令 メモリ  レジスタ間のデータ転送を行う命令 命令形式は I 形式 オペランドはレジスタまたはアドレス 情報システム基盤学基礎1 データ転送命令 メモリ  レジスタ間のデータ転送を行う命令 例: lw, sw など 命令形式は I 形式 オペランドはレジスタまたはアドレス 命令形式 アセンブリ言語 意味 機械語 100011 10010 01000 0000000000000100 lw $s2, 4($t0) $s2=M[$t0+4] lw $s2 $t0 4 I 101011 10000 01000 0000000000010000 sw $s0, 16($t0) M[$t0+16]=$s0 sw $s0 $t0 16 ※ M[X]: メモリアドレス X に対応するメモリ上のデータ

分岐命令 次に実行する命令を変更する命令※ 命令形式は R 形式,I 形式,J 形式 オペランドはレジスタ,アドレス,定数 情報システム基盤学基礎1 分岐命令 次に実行する命令を変更する命令※ 無条件に変更する命令: j, jr など(goto 文,switch 文に相当) 条件に応じて変更する命令: slt + beq, bne など(if 文に相当) 命令形式は R 形式,I 形式,J 形式 オペランドはレジスタ,アドレス,定数 ※ 通常はメモリ上の並びの   次の命令が実行される 命令形式 アセンブリ言語 意味 機械語 000010 00000000000000100111000100 J j 10000 go to 10000 j 2500※ 000000 00000 01001 00000 00000 001000 R jr $t1 go to $t1 $t1 jr if ($s2 < $s3) $s1 = 1; else $s1 = 0; 000000 10010 10011 10001 00000 101010 R slt $s1, $s2, $s3 $s2 $s3 $s1 slt if ($s1 == $s2) go to 100; 000100 10001 10010 0000000000011001 I beq $s1, $s2, 100 beq $s1 $s2 25※ ※ 2ビット左シフトしたものをアドレスとして使用するため