Presentation is loading. Please wait.

Presentation is loading. Please wait.

坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科

Similar presentations


Presentation on theme: "坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科"— Presentation transcript:

1 坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
工学部講義 マイクロプロセッサ応用(2) 坂井 修一  東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科 はじめに 講義概要 RISCとCISC さまざまな命令 マイクロプロセッサ応用

2 はじめに 本講義の目的 時間・場所:火曜日 8:30 - 10:00、3-31 ホームページ(坂井分:ダウンロード可能) 教科書・参考書
マイクロプロセッサのハード・ソフトの基本を実践的に学習する 前半:講義 坂井 (ソフトの基本:機械語プログラミング) 三田先生(ハードの基本) 後半:実習 時間・場所:火曜日 8: :00、3-31 ホームページ(坂井分:ダウンロード可能) url: 教科書・参考書 Patterson and Hennessy: Computer Organization and Design:The Hardware/Software Interface 2nd Ed. (邦訳 「コンピュータの構成と設計」(第2版)日経BP) マイクロプロセッサ応用 東大・坂井

3 講義の概要と予定(坂井分) 1.マイクロプロセッサのモデルと命令 2.命令とプログラム 3.アドレス指定方式 4.入出力、例外処理等
はじめに、プロセッサのモデル、命令とは何か、命令セット、命令型式、フォンノイマン計算機とその動作、機械語とアセンブリ言語 2.命令とプログラム RISCとCISC、算術論理演算命令、データ移動命令、ジャンプと ブランチ、スタック、サブルーチンコール 3.アドレス指定方式 4.入出力、例外処理等 5.課題出題 2月15日: 坂井分課題レポート提出期限(仮) マイクロプロセッサ応用 東大・坂井

4 2.命令とプログラム 復習 命令:計算機の基本動作を指示するもの プログラム: 命令を並べてひとまとまりの仕事を指示するもの
プログラム: 命令を並べてひとまとまりの仕事を指示するもの 命令セット: ある計算機で実行可能なすべての命令の集合 計算機は「命令セット」によって特徴づけられる マイクロプロセッサ応用 東大・坂井

5 2.1 RISCとCISC マイクロプロセッサの分類 RISC CISC 命令数 少ない 多い 命令形式 一語固定長 可変長 単純 複雑
RISC: Reduced Instruction Set Computer CISC: Complex Instruction Set Computer RISC CISC 命令数 少ない 多い 命令形式 一語固定長 可変長 個々の命令動作 (アドレシングモード) 単純 複雑 レジスタ数 多い 少ない Sun Sparc MIPS R10000 IBM PowerPC Comaq Alpha Intel X86 Motorola M68000 マイクロプロセッサ応用 東大・坂井

6 RISC vs. CISC 歴史的な考察 CISCが先にあった(1960年代頃~) CISCへの反省 RISCの発案と展開 レジスタは高価
命令の種類(特にアドレッシングの種類)は多数あればユーザの要求に応えられると考えられた CISCへの反省 じっさいの計算では、ほとんどが単純な命令 複雑な命令 コンパイラが出力するのが難しい 単純な命令の組合せで実現可能 RISCの発案と展開 1980年代の潮流: Cocke (IBM, Turing Award Winner), Patterson(UCB), Hennessy(Stanford)ら 「RISCはCISCより速い」は真実! IntelにおいてもCISC命令をRISCに解釈し直して実行している マイクロプロセッサ応用 東大・坂井

7 2.2 命令の分類 算術演算命令 論理演算命令 データ転送命令 条件分岐命令 無条件ジャンプ命令 加算、減算、積算、除算、算術シフト
論理和、論理積、論理シフト データ転送命令 ロード(メモリ→レジスタ)、ストア(レジスタ→メモリ) 条件分岐命令 ~の条件下で分岐(~: =、>、<、≦、≧、≠) 無条件ジャンプ命令 マイクロプロセッサ応用 東大・坂井

8 2.3 算術演算命令 代表的な算術演算命令 加算 減算 積算 除算 算術シフト add, addu(add unsigned)
addi(add immdediate), addiu(add imm. unsign.) 減算 sub, subu 積算 mult, multu 除算 div, divu 算術シフト sla(shift left arithmetic), sra(shift right arithmetic) マイクロプロセッサ応用 東大・坂井

9 算術演算命令の動作 rd = rs + rtの場合: レジスタ同士の加算 + アセンブリ言語の記述 add rd rs rt
IR: Instructioin Register add rs rt rd レジスタ rs ALU + rd 制御の流れ rt データの流れ マイクロプロセッサ応用 東大・坂井

10 算術演算命令の動作(続き) 例外 正常に結果が出ないとき(に起こす割り込み) 算術演算命令で起こる例外 この他の例外
オーバフロー: 結果の絶対値が大きすぎる 0除算: 除数が0 この他の例外 未定義命令、アンダーフロー(浮動小数点命令で結果が小さすぎるとき)等 マイクロプロセッサ応用 東大・坂井

11 2.4 論理演算命令 代表的な論理演算命令 論理演算命令の動作 論理積 論理和 論理シフト ビット列操作 算術演算命令の動作と同様
2.4 論理演算命令 代表的な論理演算命令 論理積 and, andi (and immediate) 論理和 or, ori (or immediate) 論理シフト sll (shift left logical), srl (shift right logical) ビット列操作 bsop (bit string operation) 論理演算命令の動作 算術演算命令の動作と同様 マイクロプロセッサ応用 東大・坂井

12 2.5 データ転送命令 代表的なデータ転送命令 メモリからレジスタへ レジスタからメモリへ レジスタとメモリの間のデータ交換
2.5 データ転送命令 代表的なデータ転送命令 メモリからレジスタへ lw (load word), lh (load half word), lb (load byte) li (load immediate) レジスタからメモリへ sw (store word), sh (store half word), sb (store byte) si (store immediate) レジスタとメモリの間のデータ交換 swp (swapp) 入出力機器からの入力命令 in 入出力機器への出力命令 out (注)入出力機器をメモリマップにして、特別の命令を設けないものもある マイクロプロセッサ応用 東大・坂井

13 データ転送命令の動作 rd = lw rd from dpl(rs) の場合: 1語ロード アセンブリ言語の記述 lw rd dpl(rs)
IR: Instructioin Register メモリ lw rs rd dpl + rs 制御の流れ rd アドレスの流れ データの流れ レジスタ マイクロプロセッサ応用 東大・坂井

14 2.6 条件分岐命令 代表的な条件分岐命令 条件判定→ジャンプ 条件設定: 条件設定後分岐命令とともに用いる 条件設定後分岐
2.6 条件分岐命令 代表的な条件分岐命令 条件判定→ジャンプ beq(branch on equal), bne(branch on not equal) blt(branch on less than), ble(branch on less than or equal) 条件設定: 条件設定後分岐命令とともに用いる (算術演算命令による条件設定) slt(set on less than), slti(set less than imm.) sltu(set less than unsigned), sltiu(set less than imm. uns.) 条件設定後分岐 jpcc(jump on condition code) マイクロプロセッサ応用 東大・坂井

15 条件分岐命令の動作 beq rs rt dpl の場合: 等しいときPC相対分岐 IR: Instructioin Register 1
Y N rs = ? + 制御の流れ rt PC: Program Counter アドレスの流れ データの流れ instruction address レジスタ マイクロプロセッサ応用 東大・坂井

16 2.7 無条件ジャンプ命令 代表的な無条件ジャンプ命令 無条件ジャンプ命令の動作:jr rs の場合 ジャンプ サブルーチンジャンプ
2.7 無条件ジャンプ命令 代表的な無条件ジャンプ命令 ジャンプ j (jump), jr (jump register) サブルーチンジャンプ jal (jump and link), trap 無条件ジャンプ命令の動作:jr rs の場合 jr rs IR: Instructioin Register rs 制御の流れ PC: Program Counter アドレスの流れ instruction address レジスタ マイクロプロセッサ応用 東大・坂井


Download ppt "坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科"

Similar presentations


Ads by Google