• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
45
0
0

読み込み中.... (全文を見る)

全文

(1)

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

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

2014年1月17日 金岡 晃

(2)

授業計画

第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)

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

(3)

試験について

日時

– 2014

1

29

日(水)

2

形式

筆記試験

持ち込み不可

• III

号館

305

教室で実施

時間

– 10:40-11:40

60

試験範囲

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

教科書内の該当する箇所

教科書内の該当する箇所

2

章、第

3

章、第

5

4

章、第

6

章、第

7

章、第

8

章、第

9

章、第

10

(4)

実験協力の依頼

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

• ネットワークセキュリティ

• 暗号技術の応用

• セキュリティのユーザビリティ ネットワークセキュリティ:

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

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

ユーザの実際の

アクションをみること で効果を測定したい

(5)

【復習】第 14

パイプライン

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

(6)

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

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

入力 出力

S1 S0 Y

0 0 レジスタA

0 1 オールゼロ 1 0 入力ポート 1 1 オールゼロ セレクタの動作

制御 信号

動作

0 ロード

(データを読み取る)

1 • PCは、+1

(カウントアップ)

• A、出力は、ラッチ レジスタの動作

フェッチ

デコード

実行

(7)

パイプラインとは

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

(8)

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

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

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

(9)

ハザード

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

構造ハザード(Structural Hazard)

データハザード(Data Hazard)

制御ハザード(Control Hazard)

(10)

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

構造ハザード(Structural Hazard)

制御ハザード(Control Hazard)

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

同時アクセスを回避するためにストールを挿入する

分岐命令実行時は、結果により次の実行命令が異なる。分岐しない場合 にはハザードは起こらないが、分岐する場合は分岐先にある新しい命令 をフェッチする必要が生じる

割り込みやキャッシュミス、ページフォルトなどによっても発生する

インタロック(Interlock):

(11)

データハザード

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

RAW(Read After Write)

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

WAR(Write After Read)

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

WAW(Write After Write)

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

(12)

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

遅延分岐

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

命令 実行フロー

(13)

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

遅延分岐

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

(14)

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

分岐予測

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

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

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

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

(15)

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

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

(16)

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

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

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

(17)

• 非常に長い命令語長

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

他の高速化技術: VLIW

VLIW(Very Long Instruction Word)

スロットと呼ばれる領域で構成 スロットはCPU機能と対応

複数の機能を同時動作させることが可

(18)

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

科学技術計算ではベクトル演算が多い

CPU内にベクトル専用のデータレジスタを搭載して処理速度を高めたのがベクト ルコンピュータ

(19)

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

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

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

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

個別のメインメモリを使用した各 CPUを共有バスによって接続する 疎結合システム(Loosely Coupled System)

(20)

15

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

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

(21)

本日の到達目標と概要

到達目標

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

概要

入出力装置とは

入出力装置の制御

直接制御方式

間接制御方式

これまでの内容

(22)

入出力アーキテクチャ

キーボード、マウス、ディスプレイ、プリンタ 入出力装置

入出力装置の制御

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

間接制御方式

(23)

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

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

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

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

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

(24)

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

• 入出力装置とメインメモリ間で直接的にデータの転送を行う方式

• 制御はCPUではなくDMAコントローラが行う DMA(Direct Memory Access)

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

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

(25)

これまでのまとめ

(26)

2 進数と 10 進数と 16 進数

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) のように()と右下に基数を記載する

(27)

2 の補数

負の数を表現する場合は、

2

の補数と呼ばれる表現が使われる

• n

ビット表現のデータの場合、

n+1

ビット目が

1

となる値から負とし て表現したい数値を引くことで求められる

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

10000000000000000-11010=1111111111000110

簡単なやり方:値を反転(逆)にして、その値に1を加える 2の補数表現を利用する理由

演算が容易になる。

減算(引き算)が2の補数の加算(足し算)で行うことが可能。

(28)

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

ビット番号:

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 2625 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

実数を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ビット省略する方法

(29)

論理回路

論理回路とは

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

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

代表例:加算器(半加算器、全加算器)

複数の桁の2つのデータを入力し、その加算の結果を出力する回路

(30)

加減算アルゴリズム

• 加算

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

• 減算

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

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

𝑦𝑥

𝑐𝑜𝑢𝑡 𝑠

FA

𝑋

𝑌 𝐶0

FA

𝑋 𝑌 𝐶1

𝐶0 𝑆

FA

𝑋 𝑌 𝐶1

𝐶0 𝑆

FA

𝑋 𝑌 𝐶1

𝐶0

𝑆 𝑆3

𝐶O

𝑆2

𝑆1

𝑌0 𝑆 𝑋0

𝑌1 𝑋1 𝑌2 𝑋2 𝑌3 𝑋3

全加算器(FA)

加減算器の例

𝐶𝑆𝐺𝑁: 制御信号

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

(31)

乗算アルゴリズム

ブース法

(Booth Altorithm) 前提

𝑃 = 𝑋 ⋅ 𝑌を求める。

このとき𝑋を被乗数、𝑌を乗数と呼ぶ。

また𝑋を2進数表現した際の各ビットを𝑥𝑖で表す。

𝑖 (0,1, … )は下位から数えて何ビット目かを示す。

• 負の乗算にも対応した広く利用されている方式。

• 負の数は2の補数で表現される

• 乗数を2進展開し、各ビットについてシフトと加算を行っていく

• 各ビットとその前のビットの値の組み合わせによりシフトと加算の 動作が異なる

• 𝑖ビット目の動作では𝑦𝑖と𝑦𝑖−1の組み合わせを見る

• 組合せは以下の3種類:00または11、10、01

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

(32)

除算アルゴリズム

引き戻し法 (Restoring Division)

引き放し法

(Nonrestoring Division) 前提

𝑋と𝑌の商𝑄と剰余𝑅求める。

このとき𝑋を被除数、𝑌を除数と呼ぶ。

また𝑋を2進数表現した際の各ビットを𝑥𝑖で表す。

𝑖 (0,1, … )は下位から数えて何ビット目かを示す。

𝑋は2𝑛ビット、 𝑌は𝑛ビットとする。

また𝑋の上位𝑛ビットを𝑋1、下位𝑛ビットを𝑋2とする

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

(33)

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

プログラム可変内蔵方式

逐次処理方式

単一メモリ方式

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

プログラム記憶方式とも

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

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

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

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

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

(34)

基本動作

命令

プログラム カウンタ PC

命令 レジスタ IR

デコーダ DEC

制御信号 OP opr

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

アドレス

メモリ ALU

汎用レジスタGR

フラグレジスタFR アドレスバス

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

(35)

命令の形式

命令コード

(OP)

オペランド

(opr) 基本形式

操作命令を示す命令コード(Operation Code)と

操作対象のデータを示すオペランド(Operand)からなる

分類

3オペランド命令 2オペランド命令 1オペランド命令 0オペランド命令

(36)

命令セット

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

COMET IIで実行される

アセンブラ言語CASL IIの命令セット ロード、ストア、

ロードアドレス命令 算術、論理演算命令

比較演算命令 シフト演算命令

分岐命令

スタック操作命令 コール、リターン命令

その他

(37)

RISC と CISC

RISC

(Reduced Instruction Set Computer)

CISC

(Complex Instruction Set Computer) 縮小命令セットコンピュータ。

簡単な命令セットだけを用意することでコンピュータの構成を簡単化し、

高速化は開発期間の短縮を実現。

複雑な処理では多くの命令を組み合わせる必要が生じる。

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

(38)

アドレッシング

OP opr

アドレス メモリ

XXX a

操作

メモリには格納領域ごとにアドレス(番地)と呼ばれる値が割り振られている 命令のオペランドにアドレスを記述すれば

その値に対応する格納領域を特定できる コンピュータでは各種のアドレスの指定法が用いられている

有効アドレス(Effective Address):

最終的に参照されるアドレス アドレッシング:

処理対象となるデータを決める操作

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

(39)

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

• ハーバードアーキテクチャの特徴

– 命令とデータを格納するメモリを個別に用意 – 非ノイマン型コンピュータ

• 広義のノイマン型コンピュータとも

– プログラム可変内蔵方式、逐次処理

CPU メイン

メモリ CPU

命令 メモリ

データ メモリ 命令用

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

キャッシュメモリ

CPU メイン

メモリ ノイマン型

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

現在の コンピュータ

(40)

コンピュータの制御

制御の流れ • メインメモリ(主記憶装置)に格納されている命令を CPU内の命令レジスタに取り出した後、デコーダで解 読する

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

デコード情報をどのようにして処理して制御を実現するか 制御アーキテクチャ

• ワイヤードロジック制御(Wired Logic Control)

• 布線論理制御方式、または配線論理制御方式とも

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

(41)

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

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

入力 出力

S1 S0 Y

0 0 レジスタA

0 1 オールゼロ 1 0 入力ポート 1 1 オールゼロ セレクタの動作

モデル

制御 信号

動作

0 ロード

(データを読み取る)

1 • PCは、+1

(カウントアップ)

• A、出力は、ラッチ

• (データの保持)

レジスタの動作 フェッチ

デコード

実行

(42)

メモリ装置の機能と分類

メモリ装置の機能

• データをメモリ媒体に格納して保持する(書き込む、Write)機能

• メモリ媒体に格納されているデータを取り出す(読み取る:Read)機能 メモリ装置にアクセス(Access)する:

メモリ装置を用いてデータの書き込みや読み取り操作を行うこと

メモリ装置の分類

• 主記憶装置/補助記憶装置

• メモリ媒体の種類

• 半導体、磁性材料

• 揮発性/不揮発性

• 可搬性

• RAM(Random Access Memory)/ROM

(Read Only Memory)

• アクセス方式

• シーケンシャル(順次)アクセス

(Sequential Access)

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

(43)

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

参照局所性

実行中のプログラムが主記憶装置にアクセスする場合には、空間的・

時間的な参照局所性(Referential Locality)がある メモリの空間的参照局所性

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

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

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

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

(44)

仮想メモリ

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

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

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

仮想メモリ

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

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

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

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

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

ブロックサイズ 大きい(5128192B程度) 小さい(4128B程度)

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

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

制御方法 主体 ハードウェア主体

(45)

割り込みとは

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

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

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

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

参照

関連したドキュメント

が有意味どころか真ですらあるとすれば,この命題が言及している当の事物も

 毒性の強いC1. tetaniは生物状試験でグルコース 分解陰性となるのがつねであるが,一面グルコース分

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

(自分で感じられ得る[もの])という用例は注目に値する(脚注 24 ).接頭辞の sam は「正しい」と

「海洋の管理」を主たる目的として、海洋に関する人間の活動を律する原則へ転換したと

⼝部における線量率の実測値は11 mSv/h程度であることから、25 mSv/h 程度まで上昇する可能性

□ ゼミに関することですが、ゼ ミシンポの説明ではプレゼ ンの練習を主にするとのこ とで、教授もプレゼンの練習

「あるシステムを自己準拠的システムと言い表すことができるのは,そのシ