講義資料 - 堀山研究室

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