45
コンピュータアーキテクチャ 15入出力アーキテクチャ・まとめ 2014年1月17日 金岡 晃

コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

コンピュータアーキテクチャ第15週 入出力アーキテクチャ・まとめ

2014年1月17日

金岡 晃

Page 2: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

授業計画

1

第1週

(9/25)

授業概要・2進数表現・論理回路の復習

第2週

(10/2)

2進演算(数の表現)

第3週

(10/9)

演算アーキテクチャ(演算アルゴリズムと回路)

第4週

(10/16)

休講

第5週

(10/23)

休講

第6週

(10/30)

ノイマン型コンピュータ・命令とは・命令の使い方

第7週

(11/6)

命令セットアーキテクチャ(命令の表現・命令の実行の仕組)

第8週

(11/13)

中間試験

第9週

(11/20)

休講

第10週

(11/27)

ハーバードアーキテクチャ・RISCとCISC・制御アーキテクチャ

第11週

(12/4)

メモリの仕組

第12週

(12/11)

キャッシュメモリと仮想メモリ

第13週

(12/18)

割込みアーキテクチャ

第14週

(1/8)

パイプライン

第15週

(1/17)

入出力アーキテクチャ・まとめ

1/22-2/8 期末試験

2014/1/17 コンピュータアーキテクチャ

Page 3: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

試験について

• 日時

– 2014年1月29日(水)2限

• 形式

– 筆記試験

• 持ち込み不可

• III号館305教室で実施

• 時間

– 10:40-11:40の60分

• 試験範囲

– 初回から今回までの配布資料

– 教科書内の該当する箇所

– 教科書内の該当する箇所

• 第2章、第3章、第5章

• 第4章、第6章、第7章、第8章、第9章、第10章

2014/1/17 コンピュータアーキテクチャ2

Page 4: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

実験協力の依頼

2014/1/17 コンピュータアーキテクチャ3

金岡研究室ではさまざまな研究テーマで研究を行っています

• ネットワークセキュリティ• 暗号技術の応用• セキュリティのユーザビリティ

ネットワークセキュリティ:ネットワークからのさまざま攻撃を検知するシステム

セキュリティのユーザビリティ:ユーザの「慣れ」によるセキュリティ効果の減少について

ユーザの実際のアクションをみることで効果を測定したい

Page 5: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

【復習】第14週パイプライン

コンピュータアーキテクチャ

4 2014/1/17 コンピュータアーキテクチャ

Page 6: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

ワイヤードロジック制御の事例

2014/1/17 コンピュータアーキテクチャ5

デコード情報を配線によって直接的にALUやPC、汎用レジスタなどに与える方法

入力 出力

S1 S0 Y

0 0 レジスタA

0 1 オールゼロ

1 0 入力ポート

1 1 オールゼロ

セレクタの動作

モデル

制御信号

動作

0 ロード(データを読み取る)

1 • PCは、+1(カウントアップ)

• A、出力は、ラッチ• (データの保持)

レジスタの動作

フェッチ

デコード

実行

Page 7: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

パイプラインとは

2014/1/17 コンピュータアーキテクチャ6

各命令の段階(ステージ)を他の命令と並行して行う

Page 8: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

パイプライン処理が停滞する可能性

2014/1/17 コンピュータアーキテクチャ7

もっとも有効にパイプライン処理が行われている場合

パイプラインの流れが乱れると処理の効率が低下する

Page 9: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

ハザード

2014/1/17 コンピュータアーキテクチャ8

ハザード(Hazard):パイプラインの効率を低下させる要因

構造ハザード(Structural Hazard)

データハザード(Data Hazard)

制御ハザード(Control Hazard)

Page 10: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

構造ハザードと制御ハザード

2014/1/17 コンピュータアーキテクチャ9

構造ハザード(Structural Hazard)

制御ハザード(Control Hazard)

メモリやレジスタなどの機能を同時にアクセスしようとした際に発生するハザード。同時アクセスを回避するためにストールを挿入する

分岐命令実行時は、結果により次の実行命令が異なる。分岐しない場合にはハザードは起こらないが、分岐する場合は分岐先にある新しい命令をフェッチする必要が生じる割り込みやキャッシュミス、ページフォルトなどによっても発生する

インタロック(Interlock):ハザード発生時にパイプラインの動作を一時停止する

Page 11: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

データハザード

2014/1/17 コンピュータアーキテクチャ10

データをアクセスする際に発生するハザード

RAW(Read After Write)

先行命令がレジスタなどに処理結果を書き込んでいないのに後続命令がそのレジスタを読み込もうとした状態

WAR(Write After Read)

先行命令がレジスタなどからデータを読み取る前に後続命令がそのレジスタにデータを書き込もうとした状態

WAW(Write After Write)

先行命令がレジスタなどへデータを書き込む前に、後続命令が同じレジスタにデータを書き込もうとした状態

Page 12: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

分岐命令におけるハザード対策(1):遅延分岐

2014/1/17 コンピュータアーキテクチャ11

レジスタAの値が負であるときにラベルLOOPへ分岐するものとする

命令 実行フロー

Page 13: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

分岐命令におけるハザード対策(1):遅延分岐

2014/1/17 コンピュータアーキテクチャ12

分岐命令前のロード命令をほかの場所に移動してもプログラムの実行に影響がない場合は変更してロード命令を実行する

Page 14: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

分岐命令におけるハザード対策(2):分岐予測

2014/1/17 コンピュータアーキテクチャ13

繰り返し文による条件分岐ではほぼ毎回分岐する

分岐予測

分岐命令の実行結果を予想しハザードを減らす手法

近年は分岐予測のためにブランチターゲットバッファ(BTB)とブランチヒストリーテーブル(BHT)を備えたCPUが多い

1つの分岐情報によって予測が成功する確率は80~90%、さらに1つ前の分岐情報を用いればこれ以上になる

Page 15: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

他の高速化技術:スーパーパイプライン

2014/1/17 コンピュータアーキテクチャ14

各ステージの実行速度の高速化によるパイプライン処理の動作速度向上従来ステージをさらに分割

Page 16: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

他の高速化技術:スーパースカラ

2014/1/17 コンピュータアーキテクチャ15

各ステージで複数命令に対するフェッチやデコードを行うこと

各ステージで1つの命令に対するフェッチやデコードを行うことをシングルスカラ方式という

Page 17: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

• 非常に長い命令語長• 一般には256ビット以上の命令語長

他の高速化技術:VLIW

2014/1/17 コンピュータアーキテクチャ16

VLIW(Very Long Instruction Word)

スロットと呼ばれる領域で構成スロットはCPU機能と対応→複数の機能を同時動作させることが可能

Page 18: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

他の高速化技術:ベクトルコンピュータ

2014/1/17 コンピュータアーキテクチャ17

科学技術計算ではベクトル演算が多いCPU内にベクトル専用のデータレジスタを搭載して処理速度を高めたのがベクトルコンピュータ

Page 19: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

複数のCPUで同一メインメモリを共有するシステム

他の高速化技術:マルチプロセッサ

2014/1/17 コンピュータアーキテクチャ18

複数のCPUを用いて並列処理を行うことで処理速度の向上を実現

密結合システム(Tightly Coupled System)

個別のメインメモリを使用した各CPUを共有バスによって接続する

疎結合システム(Loosely Coupled System)

Page 20: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

第15週入出力アーキテクチャ・まとめ

コンピュータアーキテクチャ

19 2014/1/17 コンピュータアーキテクチャ

Page 21: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

本日の到達目標と概要

• 到達目標

– 入出力装置の制御の概要と、これまでの内容を概観する

• 概要

– 入出力装置とは

– 入出力装置の制御

• 直接制御方式

• 間接制御方式

– これまでの内容

20 2014/1/17 コンピュータアーキテクチャ

Page 22: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

入出力制御専用のハードウェアが制御を行う

入出力アーキテクチャ

2014/1/17 コンピュータアーキテクチャ21

キーボード、マウス、ディスプレイ、プリンタ

入出力装置

入出力装置の制御

CPUが直接的に入出力装置の制御に関与する

直接制御方式

間接制御方式

Page 23: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

入出力装置の制御:直接制御方式

2014/1/17 コンピュータアーキテクチャ22

メインメモリ(主記憶装置)のアドレスに、入出力装置用のレジスタを割り当てておき、通常の転送命令によって入出力を行う方式

メモリマップトI/O(Memory Mapped Input/Output)

IN命令やOUT命令などの入出力専用命令を用いて直接的に入出力装置にアクセスする方式

I/OマップトI/O(Input/Output Mapped Input/Output)

Page 24: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

入出力装置の制御:間接制御の方式

2014/1/17 コンピュータアーキテクチャ23

• 入出力装置とメインメモリ間で直接的にデータの転送を行う方式• 制御はCPUではなくDMAコントローラが行う

DMA(Direct Memory Access)

• 入出力装置を制御するための専用回路を用意することで、CPUの負担をさらに軽減することを目的とした方法

入出力チャネル(Input/Output Channel)

Page 25: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

これまでのまとめ

2014/1/17 コンピュータアーキテクチャ24

Page 26: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

2進数と10進数と16進数

2014/1/17 コンピュータアーキテクチャ25

2進数 10進数 16進数

0 0 0

1 1 1

10 2 2

11 3 3

100 4 4

101 5 5

110 6 6

111 7 7

1000 8 8

1001 9 9

2進数 10進数 16進数

1010 10 A

1011 11 B

1100 12 C

1101 13 D

1110 14 E

1111 15 F

10000 16 10

10001 17 11

10010 18 12

10011 19 13

2進数 10進数 16進数

10100 20 14

10101 21 15

10110 22 16

10111 23 17

11000 24 18

11001 25 19

11010 26 1A

11011 27 1B

11100 28 1C

11101 29 1D

n進数であることを明示する場合は(0000111)nのように()と右下に基数を記載する

Page 27: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

2の補数

• 負の数を表現する場合は、2の補数と呼ばれる表現が使われる

• nビット表現のデータの場合、n+1ビット目が1となる値から負として表現したい数値を引くことで求められる

2014/1/17 コンピュータアーキテクチャ26

16ビット表現データの場合で (-11010)2 を表す:

10000000000000000-11010=1111111111000110

簡単なやり方:値を反転(逆)にして、その値に1を加える

2の補数表現を利用する理由

演算が容易になる。減算(引き算)が2の補数の加算(足し算)で行うことが可能。

Page 28: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

実数の表現:浮動小数点数

2014/1/17 コンピュータアーキテクチャ27

ビット番号:

符号ビット(正:0、負:1)

指数部 仮数部小数点

0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

31 30 29 28 27 26 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 025 24 23 22 21 20 19 18 17 16

実数を2進数で表現する

(5.625)10 (101.101)2

整数部を0以外の1桁(つまり2進数の場合1)に調整(正規化、normalize)する。

1.01101 × 22

指数部仮数部

32ビット(単精度)の場合

• MSB:仮数の符号• 8ビット:指数部• 23ビット:仮数部

バイアス表現:-127乗から128乗まで表すために、127を加算して2進表現する

けち表現(Economized Representation)2進数を正規化すると必ず1になるため、1を省略して1ビット省略する方法

Page 29: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

論理回路

2014/1/17 コンピュータアーキテクチャ28

論理回路とは

演算回路の組み合わせによりさまざまな論理演算を実現する回路

演算回路

論理演算を実現する回路:AND回路、OR回路、NOR回路など

代表例:加算器(半加算器、全加算器)複数の桁の2つのデータを入力し、その加算の結果を出力する回路

Page 30: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

加減算アルゴリズム

• 加算

– 全加算器をビット数分並べる

• 減算

– 2の補数表現にして加算にする

• これらを合わせると加減算を両方演算可能な回路を構成できる

2014/1/17 コンピュータアーキテクチャ29

𝑥𝑦

𝑐𝑖𝑛

𝑐𝑜𝑢𝑡

𝑠

FA𝑋𝑌𝐶1

𝐶0

𝑆

FA𝑋𝑌𝐶1

𝐶0

𝑆

FA𝑋𝑌𝐶1

𝐶0

𝑆

FA𝑋𝑌𝐶1

𝐶0

𝑆 𝑆3

𝐶O

𝑆2

𝑆1

𝑆0𝐶𝑆𝐺𝑁

𝑌0

𝑋0

𝑌1

𝑋1

𝑌2

𝑋2

𝑌3

𝑋3

全加算器(FA)

加減算器の例

𝐶𝑆𝐺𝑁: 制御信号

𝑋 + 𝑌 𝑖𝑓 𝐶𝑆𝐺𝑁 = 0𝑋 − 𝑌 𝑖𝑓 𝐶𝑆𝐺𝑁 = 1

Page 31: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

乗算アルゴリズム

2014/1/17 コンピュータアーキテクチャ30

ブース法(Booth Altorithm)

前提

𝑃 = 𝑋 ⋅ 𝑌を求める。このとき𝑋を被乗数、𝑌を乗数と呼ぶ。また𝑋を2進数表現した際の各ビットを𝑥𝑖で表す。𝑖 (0,1, … )は下位から数えて何ビット目かを示す。

• 負の乗算にも対応した広く利用されている方式。• 負の数は2の補数で表現される• 乗数を2進展開し、各ビットについてシフトと加算を行っていく

• 各ビットとその前のビットの値の組み合わせによりシフトと加算の動作が異なる• 𝑖ビット目の動作では𝑦𝑖と𝑦𝑖−1の組み合わせを見る• 組合せは以下の3種類:00または11、10、01

• 動作は加算の位置が変化する方法と加算の位置を変化させない方法で異なる

Page 32: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

除算アルゴリズム

2014/1/17 コンピュータアーキテクチャ31

引き戻し法

(Restoring Division)

引き放し法

(Nonrestoring Division)

前提

𝑋と𝑌の商𝑄と剰余𝑅求める。このとき𝑋を被除数、𝑌を除数と呼ぶ。また𝑋を2進数表現した際の各ビットを𝑥𝑖で表す。𝑖 (0,1, … )は下位から数えて何ビット目かを示す。𝑋は2𝑛ビット、 𝑌は𝑛ビットとする。また𝑋の上位𝑛ビットを𝑋1、下位𝑛ビットを𝑋2とする

𝑋の上位𝑛ビットから𝑌を引いていく。筆算では𝑋の上位𝑛ビットと𝑌の大小を比較し、大きければその桁の商を1、小さければ0としているが、引き戻し法ではまず減算を行い、その結果の正負を判定する。負である場合、同じものを加算することで元に戻す。

引き戻すタイミングを遅らせることにより高速化した手法

Page 33: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

ノイマン型コンピュータの特徴

2014/1/17 コンピュータアーキテクチャ32

プログラム可変内蔵方式

逐次処理方式

単一メモリ方式

• プログラムを内部のメモリに記憶させることで、プログラムの入力や変更が簡単に行える• プログラム記憶方式とも

• 命令は、原則として実行順にメモリに格納されており、この命令を順次取り出しながら処理を進める。

• 取り出す命令のアドレスは、プログラムカウンタに従って指示する

• プログラムとデータは、同じメモリ内に格納され、メモリにはアドレスが割り振られている。

• 一時的なデータ格納領域として、高速に動作する小容量メモリであるレジスタを備えている。

• レジスタとメモリ間のデータ転送は、プログラムで指示できるため、メモリの効果的な利用が可能となる。

Page 34: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

基本動作

2014/1/17 コンピュータアーキテクチャ33

命令

プログラムカウンタPC

命令レジスタIR

デコーダDEC

制御信号

OP opr

メモリアドレスレジスタMAR

アドレス

メモリ ALU

汎用レジスタGR

フラグレジスタFR

アドレスバス

データバス

制御装置 主記憶装置 演算装置

Page 35: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

命令の形式

2014/1/17 コンピュータアーキテクチャ34

命令コード(OP)

オペランド(opr)

基本形式

操作命令を示す命令コード(Operation Code)と操作対象のデータを示すオペランド(Operand)からなる

分類

3オペランド命令

2オペランド命令

1オペランド命令

0オペランド命令

Page 36: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

命令セット

2014/1/17 コンピュータアーキテクチャ35

CPUが備えているすべての命令の集まりを命令セット(Instruction Set)という

COMET IIで実行されるアセンブラ言語CASL IIの命令セット

ロード、ストア、ロードアドレス命令

算術、論理演算命令

比較演算命令

シフト演算命令

分岐命令

スタック操作命令

コール、リターン命令

その他

Page 37: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

RISCとCISC

2014/1/17 コンピュータアーキテクチャ36

RISC(Reduced Instruction Set Computer)

CISC(Complex Instruction Set Computer)

縮小命令セットコンピュータ。簡単な命令セットだけを用意することでコンピュータの構成を簡単化し、高速化は開発期間の短縮を実現。複雑な処理では多くの命令を組み合わせる必要が生じる。

RISCが提案された後、これまでの命令セットコンピュータを複雑命令セットコンピュータ(CISC)と呼ぶようになった。

Page 38: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

アドレッシング

2014/1/17 コンピュータアーキテクチャ37

OP opr

アドレス メモリ

XXX a操作

メモリには格納領域ごとにアドレス(番地)と呼ばれる値が割り振られている

命令のオペランドにアドレスを記述すればその値に対応する格納領域を特定できる

コンピュータでは各種のアドレスの指定法が用いられている

有効アドレス(Effective Address):最終的に参照されるアドレス

アドレッシング:処理対象となるデータを決める操作

アドレッシング 有効アドレス

Page 39: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

ハーバードアーキテクチャ

• ハーバードアーキテクチャの特徴– 命令とデータを格納するメモリを個別に用意– 非ノイマン型コンピュータ

• 広義のノイマン型コンピュータとも– プログラム可変内蔵方式、逐次処理

2014/1/17 コンピュータアーキテクチャ38

CPUメインメモリ

CPU

命令メモリ

データメモリ

命令用キャッシュメモリ

データ用キャッシュメモリ

CPUメインメモリ

ノイマン型アーキテクチャ

ハーバードアーキテクチャ

現在のコンピュータ

Page 40: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

コンピュータの制御

2014/1/17 コンピュータアーキテクチャ39

制御の流れ• メインメモリ(主記憶装置)に格納されている命令を

CPU内の命令レジスタに取り出した後、デコーダで解読する

• デコーダから出力されるデコード情報は、ALU(算術論理演算装置)やPC(プログラムカウンタ)、汎用レジスタなどに与えられる

デコード情報をどのようにして処理して制御を実現するか

制御アーキテクチャ

• ワイヤードロジック制御(Wired Logic Control)• 布線論理制御方式、または配線論理制御方式とも

• マイクロプログラム制御(Micro-programmed Control)

Page 41: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

ワイヤードロジック制御の事例

2014/1/17 コンピュータアーキテクチャ40

デコード情報を配線によって直接的にALUやPC、汎用レジスタなどに与える方法

入力 出力

S1 S0 Y

0 0 レジスタA

0 1 オールゼロ

1 0 入力ポート

1 1 オールゼロ

セレクタの動作

モデル

制御信号

動作

0 ロード(データを読み取る)

1 • PCは、+1(カウントアップ)

• A、出力は、ラッチ• (データの保持)

レジスタの動作

フェッチ

デコード

実行

Page 42: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

メモリ装置の機能と分類

2014/1/17 コンピュータアーキテクチャ41

メモリ装置の機能

• データをメモリ媒体に格納して保持する(書き込む、Write)機能• メモリ媒体に格納されているデータを取り出す(読み取る:Read)機能

メモリ装置にアクセス(Access)する:メモリ装置を用いてデータの書き込みや読み取り操作を行うこと

メモリ装置の分類

• 主記憶装置/補助記憶装置• メモリ媒体の種類• 半導体、磁性材料• 揮発性/不揮発性• 可搬性

• RAM(Random Access Memory)/ROM(Read Only Memory)

• アクセス方式• シーケンシャル(順次)アクセス(Sequential Access)

• ランダム(直接)アクセス(Random Access)

Page 43: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

一度アクセスされたアドレスに近いアドレスは、近い時間内にアクセスされる可能性が高い

参照局所性

2014/1/17 コンピュータアーキテクチャ42

実行中のプログラムが主記憶装置にアクセスする場合には、空間的・時間的な参照局所性(Referential Locality)がある

メモリの空間的参照局所性

一度アクセスされたアドレスは、近い時間内に再びアクセスされる可能性が高い

メモリの時間的参照局所性

アドレス付近の格納データをブロック単位でキャッシュメモリに転送

参照局所性により、効率的なメモリアクセスが可能になる

Page 44: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

仮想メモリ

• マルチタスクと主記憶装置

– コンピュータでソフトウェアを実行する場合にはそのプログラムを主記憶装置に格納しておくことが必要条件

– マルチタスクで複数プログラム+プログラムの高度化によりプログラムのサイズは増加傾向

• 仮想メモリ

– 主記憶装置を仮想的に増大させる技術

– 補助記憶装置(一般的にはハードディスク装置)上に構成された空間

– 実メモリへは参照局所性を活用してアクセス可能性の高い仮想アドレス付近のブロック領域を割り当てる

2014/1/17 コンピュータアーキテクチャ43

比較項目 仮想メモリ キャッシュメモリ

目的 主記憶領域の増大化(空間的) アクセスの高速化(時間的)

ブロックサイズ 大きい(512~8192B程度) 小さい(4~128B程度)

主記憶装置との転送速度 対象が補助記憶装置であるため低速

対象がキャッシュメモリであるため高速

制御方法 OS主体(高速性をさほど重視しない)

ハードウェア主体(高速性を重視)

Page 45: コンピュータアーキテクチャ...データハザード 10 2014/1/17 コンピュータアーキテクチャ データをアクセスする際に発生するハザード RAW(Read

割り込みとは

• 通常ルーチンを処理しているときに割り込みが発生すると、実行していた通常ルーチンを中断して割り込みルーチンへ分岐する。

• 割り込みルーチンの実行が終了した後にもとの通常ルーチンへ復帰する。

– 通常ルーチンは中断するものの、結果としては通常ルーチンと割り込みルーチンが平行して実行されたように見える

2014/1/17 コンピュータアーキテクチャ44

実行中の処理を一度停止して、他の処理を行った後に再開する機能