講義資料 - 堀山研究室
Download
Report
Transcript 講義資料 - 堀山研究室
基本情報技術概論 (第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