1 / 16

マイクロプロセッサ応用 (2)

工学部講義. マイクロプロセッサ応用 (2). はじめに 講義概要 RISC と CISC さまざまな命令. 坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科. はじめに. 本講義の目的 マイクロプロセッサのハード・ソフトの基本を実践的に学習する 前半:講義 坂井 (ソフトの基本:機械語プログラミング) 三田先生(ハードの基本) 後半:実習 時間・場所: 火曜日 8 :30 - 10:00、3-31 ホームページ (坂井分:ダウンロード可能)

wanda
Download Presentation

マイクロプロセッサ応用 (2)

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

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

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

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

  5. 2.1 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の発案と展開 • 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 rd add rs rt レジスタ rs ALU + rd rt 制御の流れ データの流れ 東大・坂井

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

  11. 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 データ転送命令 • 代表的なデータ転送命令 • メモリからレジスタへ • 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 条件分岐命令 • 代表的な条件分岐命令 • 条件判定→ジャンプ • 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 beq rs rt dpl Y N rs = ? + 制御の流れ rt PC: Program Counter アドレスの流れ データの流れ instruction address レジスタ 東大・坂井

  16. 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 レジスタ 東大・坂井

More Related