基本情報技術概論 (第8回) プロセッサ アーキテクチャ 埼玉大学 理工学研究科 堀山 貴史 1 コンピュータの構成 (第1回の復習) CPU 制御装置 入力装置 演算装置 主記憶装置 出力装置 補助記憶装置 主記憶 (main memory, メモリ) に、 プログラム と データを置く 2 コンピュータの構成 (第1回の復習) 制御装置 主記憶装置のプログラム(命令)を取り出し、 解読し、その結果をもとに他の装置を制御する 演算装置 算術演算や論理演算、条件分岐用の比較など データに対する演算を実行する 記憶装置(主記憶装置、補助記憶装置) プログラムやデータを記憶する 入力装置 … コンピュータ外部から入力 出力装置 … コンピュータ外部へ出力 CPU 3 プログラムの実行 主記憶 主記憶の上のプログラム ADD GR0, 1 SUB GR0, 10 JNZ 01 ・ ・ ・ 命令を前から順に読んで実行する 演算命令 (加減算やシフトなど) 条件分岐やジャンプもある (参考) フローチャート i+1→i i < 10 4 プログラムの実行 主記憶の上のプログラム ADD GR0, 1 SUB GR0, 10 命令を前から順に読んで実行する 演算命令 (加減算やシフトなど) 条件分岐やジャンプもある JNZ 01 ・ ・ ・ プログラム内蔵方式 主記憶 主記憶装置にプログラムを置いて 実行する方式 ___________ 5 CPU (プロセッサ) データやり取り用に 複数の回路が ぶら下がった経路 制御装置 + 演算装置 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 参考 : 一度に処理できるビット数は、時代と共に大きく 8 bit CPU → 16 bit → 32 bit → 64 bit 6 演算装置 汎用レジスタ … プログラム実行に必要な値を一時的に記憶 ALU (Arithmetic and Logic Unit) 算術演算(加減乗除)や論理演算、シフト演算を行う 時代と共に、演算器の種類が多くなっている 加減算器のみ → 乗除算器つき → マルチメディア演算 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 演算装置 主記憶 装置 7 制御装置 プログラムカウンタ 主記憶上のプログラムの現在の位置(番地)を 記憶するレジスタ (命令アドレスレジスタともいう) 命令レジスタ 主記憶から読んだ、現在の命令を記憶するレジスタ バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 演算装置 主記憶 装置 8 プログラムの実行 命令ごとに、以下を繰り返す (1) (2) (3) (4) (5) IF ID EX MA WB IF ID EX MA WB 命令を主記憶から命令レジスタに読み込む 命令レジスタの命令を、命令デコーダで解読 演算を行う 主記憶にアクセスする 実行結果をレジスタに格納する ※1 I F - Instruction Fetch / I D - Instruction Decode / EX - Execution / MA - Memory Access / WB - Write Back ※2 設計によって、各ステージの詳細には差異がある 9 プログラムの実行 (1) I F : 命令を主記憶から命令レジスタに読み込む バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 10 プログラムの実行 (2) I D : 命令レジスタの命令を、命令デコーダで解読 例) LD GR0, 200 主記憶 200番地の内容を GR0 にロード バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 11 プログラムの実行 (3) EX : 演算を行う 例) 演算命令、オペランドのアドレス計算 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 12 プログラムの実行 (4) MA : 主記憶にアクセスする バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 13 プログラムの実行 (5) WB : 実行結果をレジスタに格納する バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 14 高速化技術: プログラムの実行 (1) (2) (3) (4) (5) IF ID EX MA WB (再び) 命令をメモリから命令レジスタに読み込む 命令レジスタの命令を、命令デコーダで解読 演算を行う メモリにアクセスする 実行結果をレジスタに格納する I F I D EX MA WB I F I D EX MA WB ・・・ 1つ目の命令 2つ目の命令 15 高速化技術 (パイプライン処理) I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB ・ ・ ・ 1つ目の命令 2つ目の命令 3つ目の命令 4つ目の命令 ・ ・ ・ ・ 命令の依存関係を解決する必要がある ・ 条件分岐が成立すると、次の命令からやり直し 16 高速化技術 (スーパースカラー) 演算器を複数持つなどして、 複数のパイプライン処理を同時に実行する I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB 命令の依存関係の 解決が複雑 → ハードウェアが複雑 I F I D EX MA WB I F I D EX MA WB 17 高速化技術 (VLIW) Very Large Instruction Word 複数命令を1つの固まりとみなし、同時に実行 EX IF ID EX EX MA WB EX EX IF ID EX EX MA WB EX … ・ 命令の依存関係の解決は、コンパイラに任せる ・ ハードウェアは簡単 18 性能評価 クロック クロックに同期して、レジスタの値が変わる 例) IF ID EX MA WB クロックに同期して、ステージを進める クロック周波数 (単位は Hz) 1秒間のクロック数 例: CPU のクロック周波数が 1.6 GHz 19 性能評価 CPI (Clocks Per Instruction) 1命令ごとの(実行に必要な)クロック数 例) IF ID EX MA WB この例なら 5クロック 命令ごとにクロック数可変なら、平均をとる M I PS (Million Instruction Per Second) 1秒ごとの命令(実行)数 (単位 M … 100万) FLOPS (Floating point number Operations Per Second) 1秒ごとの浮動小数点演算実行数 20 練習問題: 性能評価 1 GHz で動作する CPU がある。この CPU は、 機械語の 1 命令を平均 0.8 クロックで実行できる。 この CPU は何 M I PS か。 (H19年度 秋 一部改変) 21 命令形式 と アドレス指定 22 命令形式 命令コード ________ ADDA LD オペランド ________ 命令の意味 GR0, GR1 GR0 ← (GR0) + (GR1) GR0, 200 GR0 に、主記憶 200 番地の 内容をロード ________________ 命令コード (命令の種類) ロード・ストア (主記憶やレジスタの間でデータ転送) 演算 (加算などの算術演算、論理演算、シフト演算) 分岐 ________________ オペランド (命令の対象) データの値そのもの、レジスタ指定、主記憶の番地指定 23 オペランド: アドレス指定 即値 直接(絶対)アドレス指定 間接アドレス指定 インデックス(指標)アドレス指定 ベース(基底)アドレス指定 PC相対アドレス指定 24 アドレス指定: 即値 オペランドに、データの値そのものが書いてある (メモリアクセスは、しない) R ← op , R ← R (演算) op オペランド 100 (アドレス) メモリ 100 200 200 300 300 400 レジスタ 25 アドレス指定: 直接 アドレス指定 実効アドレス op が 実効アドレス ________________ 実際にデータが格納 されているアドレス (op の指すメモリの内容をとる) R ← M ( op ) オペランド 100 ________________ (アドレス) メモリ 100 200 200 300 300 400 レジスタ 26 アドレス指定: 間接 アドレス指定 op が指すメモリ内容が、実効アドレスになる R ← M ( M ( op ) ) オペランド 100 (アドレス) メモリ 100 200 200 300 300 400 レジスタ 27 アドレス指定: インデックス アドレス指定 インデックスレジスタ + オペランド でアドレス指定 R ← M ( IndexR + op ) 配列に 利用 インデックス レジスタ オペランド 100 100 レジスタ (アドレス) メモリ 100 200 200 300 300 400 28 アドレス指定: ベース アドレス指定 ベースレジスタ + オペランド でアドレス指定 R ← M ( BaseR + op ) プログラムの 開始位置を 記憶 ベース レジスタ オペランド 100 100 レジスタ (アドレス) メモリ 100 200 200 300 300 400 29 アドレス指定: PC相対 アドレス指定 プログラムカウンタ + オペランド でアドレス指定 R ← M ( PC + op ) オペランド 100 PC 100 レジスタ (アドレス) メモリ 100 200 200 300 300 400 30 アドレス指定: ジャンプ命令 絶対アドレス PC ← op (PC) 相対アドレス PC ← PC + op 普段は、 次の命令を実行 PC ← PC + 1 プログラムをメモリ上のどこに置いても、 正しく動く 31 参考: CISC と RISC Complex Instruction Set Computer 命令語数が多彩 命令によって語長が変わる メモリ アクセスが多様 Reduced Instruction Set Computer 命令語数を少なくする、命令語長を固定する メモリ アクセスは、ロード・ストアのみ → ハードウェアが簡単 ・・・ 高速化 32 33 34 プログラムの実行 (1) I F : 命令を主記憶から命令レジスタに読み込む プログラムの 番地を指示 指示された番地の 命令が返ってくる バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 35 プログラムの実行 (2) I D : 命令レジスタの命令を、命令デコーダで解読 例) LD GR0, 200 主記憶 200番地の内容を GR0 にロード バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 36 プログラムの実行 (3) EX : 演算を行う 例) 演算命令、オペランドのアドレス計算 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 37 プログラムの実行 (4) MA : 主記憶にアクセスする データの 番地を指示 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 38 プログラムの実行 (5) WB : 実行結果をレジスタに格納する バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 39 40 アドレス指定: 即値 オペランドに、データの値そのものが書いてある (メモリアクセスは、しない) R ← op , R ← R (演算) op オペランド 100 (アドレス) メモリ 100 200 200 300 300 400 レジスタ 41 アドレス指定: 直接 アドレス指定 実効アドレス op が 実効アドレス ________________ 実際にデータが格納 されているアドレス (op の指すメモリの内容をとる) R ← M ( op ) オペランド 100 ________________ (アドレス) メモリ 100 200 200 300 300 400 レジスタ 42 アドレス指定: 間接 アドレス指定 op が指すメモリ内容が、実効アドレスになる R ← M ( M ( op ) ) オペランド 100 (アドレス) メモリ 100 200 200 300 300 400 レジスタ 43 アドレス指定: インデックス アドレス指定 インデックスレジスタ + オペランド でアドレス指定 R ← M ( IndexR + op ) 配列に 利用 インデックス レジスタ オペランド 100 100 レジスタ (アドレス) メモリ 100 200 200 300 300 400 44 アドレス指定: ベース アドレス指定 ベースレジスタ + オペランド でアドレス指定 R ← M ( BaseR + op ) プログラムの 開始位置を 記憶 ベース レジスタ オペランド 100 100 レジスタ (アドレス) メモリ 100 200 200 300 300 400 45 アドレス指定: PC相対 アドレス指定 プログラムカウンタ + オペランド でアドレス指定 R ← M ( PC + op ) オペランド 100 PC 100 レジスタ (アドレス) メモリ 100 200 200 300 300 400 46 47 48 この教材のご利用について この文面は、TOKYO TECH OCW の利用 条件を参考にしました この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を 求めることなく、無償で自由にご利用いただけます。講義、自主学習は もちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許 諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著 作者に帰属します。この教材、または翻訳や改変等を加えたもの を公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施 してください。なお、この教材に改変等を加えたものの著作権は、 次ページ以降に示す著作者および改変等を加えた方に帰属しま す。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する 場合には、頒布・再頒布の形態を問わず、このページの利用条件49 この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ この powerpoint ファイルの著作者 堀山 貴史 2007-2009 [email protected] 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 2 ハードディスク : 堀山 貴史 CPU, メモリ, キーボード : http://webweb.s92.xrea.com/ パソコン, ディスプレイ, プリンタ, マウス : Microsoft Office Online / クリップアート その他 堀山 貴史 50
© Copyright 2024 ExpyDoc