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