Comments
Description
Transcript
第15週 入出力アーキテクチャ・まとめ
コンピュータアーキテクチャ 第15週 入出力アーキテクチャ・まとめ 2014年1月17日 金岡 晃 授業計画 第8週 (11/13) 中間試験 第1週 (9/25) 授業概要・2進数表現・論理回 路の復習 第9週 (11/20) 休講 第2週 (10/2) 2進演算(数の表現) 第10週 (11/27) 第3週 (10/9) 演算アーキテクチャ(演算アル ゴリズムと回路) ハーバードアーキテク チャ・RISCとCISC・制御アー キテクチャ メモリの仕組 第4週 (10/16) 休講 第11週 (12/4) 第5週 (10/23) 休講 第12週 (12/11) キャッシュメモリと仮想メ モリ 割込みアーキテクチャ 第6週 (10/30) ノイマン型コンピュータ・命令 とは・命令の使い方 第13週 (12/18) パイプライン 第7週 (11/6) 命令セットアーキテクチャ(命 令の表現・命令の実行の仕組) 第14週 (1/8) 第15週 (1/17) 入出力アーキテクチャ・ま とめ 1/22-2/8 期末試験 1 2014/1/17 コンピュータアーキテクチャ 試験について • 日時 – 2014年1月29日(水)2限 • 形式 – 筆記試験 • 持ち込み不可 • III号館305教室で実施 • 時間 – 10:40-11:40の60分 • 試験範囲 – 初回から今回までの配布資料 – 教科書内の該当する箇所 – 教科書内の該当する箇所 • 第2章、第3章、第5章 • 第4章、第6章、第7章、第8章、第9章、第10章 2 2014/1/17 コンピュータアーキテクチャ 実験協力の依頼 金岡研究室ではさまざまな研究テーマで研究を行っています • ネットワークセキュリティ • 暗号技術の応用 • セキュリティのユーザビリティ ネットワークセキュリティ: ネットワークからのさまざま攻撃を検知するシステム セキュリティのユーザビリティ: ユーザの「慣れ」によるセキュリティ効果の減少について 3 2014/1/17 ユーザの実際の アクションをみること で効果を測定したい コンピュータアーキテクチャ コンピュータアーキテクチャ 【復習】第14週 パイプライン 4 2014/1/17 コンピュータアーキテクチャ ワイヤードロジック制御の事例 セレクタの動作 入力 デコード情報を配線によって直接的にALUや PC、汎用レジスタなどに与える方法 フェッチ デコード 実行 モデル 5 2014/1/17 出力 S1 S0 Y 0 0 レジスタA 0 1 オールゼロ 1 0 入力ポート 1 1 オールゼロ レジスタの動作 制御 信号 動作 0 ロード (データを読み取る) 1 • PCは、+1 (カウントアップ) • A、出力は、ラッチ • (データの保持) コンピュータアーキテクチャ パイプラインとは 各命令の段階(ステージ)を他の命令と並行して行う 6 2014/1/17 コンピュータアーキテクチャ パイプライン処理が停滞する可能性 もっとも有効にパイプライン処理が 行われている場合 パイプラインの流れが乱れる と処理の効率が低下する 7 2014/1/17 コンピュータアーキテクチャ ハザード ハザード(Hazard):パイプラインの効率を低下させる要因 構造ハザード(Structural Hazard) データハザード(Data Hazard) 制御ハザード(Control Hazard) 8 2014/1/17 コンピュータアーキテクチャ 構造ハザードと制御ハザード 構造ハザード(Structural Hazard) メモリやレジスタなどの機能を同時にアクセスしようとした際に発生 するハザード。 同時アクセスを回避するためにストールを挿入する 制御ハザード(Control Hazard) 分岐命令実行時は、結果により次の実行命令が異なる。分岐しない場合 にはハザードは起こらないが、分岐する場合は分岐先にある新しい命令 をフェッチする必要が生じる 割り込みやキャッシュミス、ページフォルトなどによっても発生する インタロック(Interlock): ハザード発生時にパイプラインの動作を一時停止する 9 2014/1/17 コンピュータアーキテクチャ データハザード データをアクセスする際に発生するハザード RAW(Read After Write) 先行命令がレジスタなどに処理結果を書 き込んでいないのに後続命令がそのレジ スタを読み込もうとした状態 WAR(Write After Read) 先行命令がレジスタなどからデータを読み取る前に後続命令がそのレジスタにデータ を書き込もうとした状態 WAW(Write After Write) 先行命令がレジスタなどへデータを書き込む前に、後続命令が同じレジスタにデータ を書き込もうとした状態 10 2014/1/17 コンピュータアーキテクチャ 分岐命令におけるハザード対策(1): 遅延分岐 命令 実行フロー レジスタAの値が負である ときにラベルLOOPへ分岐 するものとする 11 2014/1/17 コンピュータアーキテクチャ 分岐命令におけるハザード対策(1): 遅延分岐 分岐命令前のロード命令をほかの場所に移動してもプログラムの実行に影響が ない場合は変更してロード命令を実行する 12 2014/1/17 コンピュータアーキテクチャ 分岐命令におけるハザード対策(2): 分岐予測 繰り返し文による条件分岐ではほぼ毎回分岐する 分岐予測 分岐命令の実行結果を予想しハザード を減らす手法 近年は分岐予測のためにブランチター ゲットバッファ(BTB)とブランチヒスト リーテーブル(BHT)を備えたCPUが多い 1つの分岐情報によって予測が成功する確 率は80~90%、さらに1つ前の分岐情報を 用いればこれ以上になる 13 2014/1/17 コンピュータアーキテクチャ 他の高速化技術:スーパーパイプライン 各ステージの実行速度の高速化によるパイプライン処理の動作速度向上 従来ステージをさらに分割 14 2014/1/17 コンピュータアーキテクチャ 他の高速化技術:スーパースカラ 各ステージで複数命令に対するフェッチやデコードを行うこと 各ステージで1つの命令に対するフェッチやデコードを 行うことをシングルスカラ方式という 15 2014/1/17 コンピュータアーキテクチャ 他の高速化技術:VLIW VLIW(Very Long Instruction Word) • 非常に長い命令語長 • 一般には256ビット以上の命令語長 スロットと呼ばれる領域で構成 スロットはCPU機能と対応 →複数の機能を同時動作させることが可 能 16 2014/1/17 コンピュータアーキテクチャ 他の高速化技術:ベクトルコンピュータ 科学技術計算ではベクトル演算が多い CPU内にベクトル専用のデータレジスタを搭載して処理速度を高めたのがベクト ルコンピュータ 17 2014/1/17 コンピュータアーキテクチャ 他の高速化技術:マルチプロセッサ 複数のCPUを用いて並列処理を行うことで処理速度の向上を実現 密結合システム(Tightly Coupled System) 複数のCPUで同一メインメモリを共有す るシステム 疎結合システム(Loosely Coupled System) 個別のメインメモリを使用した各 CPUを共有バスによって接続する 18 2014/1/17 コンピュータアーキテクチャ コンピュータアーキテクチャ 第15週 入出力アーキテクチャ・まとめ 19 2014/1/17 コンピュータアーキテクチャ 本日の到達目標と概要 • 到達目標 – 入出力装置の制御の概要と、これまでの内容を概観する • 概要 – 入出力装置とは – 入出力装置の制御 • 直接制御方式 • 間接制御方式 – これまでの内容 20 2014/1/17 コンピュータアーキテクチャ 入出力アーキテクチャ 入出力装置 キーボード、マウス、ディスプレイ、プリンタ 入出力装置の制御 直接制御方式 CPUが直接的に入出力装置の制御に関与する 間接制御方式 入出力制御専用のハードウェアが制御を行う 21 2014/1/17 コンピュータアーキテクチャ 入出力装置の制御:直接制御方式 メモリマップトI/O(Memory Mapped Input/Output) メインメモリ(主記憶装置)のアドレスに、入出力装置用のレジスタを 割り当てておき、通常の転送命令によって入出力を行う方式 I/OマップトI/O(Input/Output Mapped Input/Output) IN命令やOUT命令などの入出力専用命令を用いて直接的に入出力装置 にアクセスする方式 22 2014/1/17 コンピュータアーキテクチャ 入出力装置の制御:間接制御の方式 DMA(Direct Memory Access) • 入出力装置とメインメモリ間で直接的にデータの転送を行う方式 • 制御はCPUではなくDMAコントローラが行う 入出力チャネル(Input/Output Channel) • 入出力装置を制御するための専用回路を用意することで、CPUの負 担をさらに軽減することを目的とした方法 23 2014/1/17 コンピュータアーキテクチャ これまでのまとめ 24 2014/1/17 コンピュータアーキテクチャ 2進数と10進数と16進数 2進数 10進数 16進数 2進数 10進数 16進数 2進数 10進数 16進数 0 0 0 1010 10 A 10100 20 14 1 1 1 1011 11 B 10101 21 15 10 2 2 1100 12 C 10110 22 16 11 3 3 1101 13 D 10111 23 17 100 4 4 1110 14 E 11000 24 18 101 5 5 1111 15 F 11001 25 19 110 6 6 10000 16 10 11010 26 1A 111 7 7 10001 17 11 11011 27 1B 1000 8 8 10010 18 12 11100 28 1C 1001 9 9 10011 19 13 11101 29 1D n進数であることを明示する場合は (0000111)n のように()と右下に基数を記載する 25 2014/1/17 コンピュータアーキテクチャ 2の補数 • 負の数を表現する場合は、2の補数と呼ばれる表現が使われる • nビット表現のデータの場合、n+1ビット目が1となる値から負とし て表現したい数値を引くことで求められる 16ビット表現データの場合で (-11010)2 を表す: 10000000000000000-11010=1111111111000110 簡単なやり方:値を反転(逆)にして、その値に1を加える 2の補数表現を利用する理由 演算が容易になる。 減算(引き算)が2の補数の加算(足し算)で行うことが可能。 26 2014/1/17 コンピュータアーキテクチャ 実数の表現:浮動小数点数 実数を2進数で表現する (5.625)10 整数部を0以外の1桁(つまり2進数の場合 1)に調整(正規化、normalize)する。 (101.101)2 1.01101 × 22 仮数部 MSB:仮数の符号 8ビット:指数部 23ビット:仮数部 • • • 32ビット (単精度)の場合 指数部 バイアス表現: -127乗から128乗まで表すため に、127を加算して2進表現する けち表現(Economized Representation) 2進数を正規化すると必ず1になるため、1を省略して1ビット省略する方法 ビット番号: 31 30 29 28 27 26 25 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 0 1 0 0 0 0 0 符号ビット 指数部 (正:0、負:1) 27 0 1 0 1 1 0 1 小数点 2014/1/17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 仮数部 コンピュータアーキテクチャ 論理回路 論理回路とは 演算回路の組み合わせによりさまざまな論理演算を実現する回路 演算回路 論理演算を実現する回路:AND回路、OR回路、NOR回路など 代表例:加算器(半加算器、全加算器) 複数の桁の2つのデータを入力し、その加算の結果を出力する回路 28 2014/1/17 コンピュータアーキテクチャ 加減算アルゴリズム • 加算 – 全加算器をビット数分並べる • 減算 – 2の補数表現にして加算にす る • これらを合わせると加減算を両 方演算可能な回路を構成できる 全加算器(FA) 𝑥 𝑦 𝐶𝑆𝐺𝑁 : 制御信号 𝑋 + 𝑌 𝑖𝑓 𝐶𝑆𝐺𝑁 = 0 𝑋 − 𝑌 𝑖𝑓 𝐶𝑆𝐺𝑁 = 1 𝑋3 𝑌3 𝑋 𝑌 𝐶1 FA 𝑋2 𝑌2 𝑋 𝑌 𝐶1 FA 𝑋1 𝑌1 𝑋 𝑌 𝐶1 FA 𝑋0 𝑌0 𝑋 𝑌 𝐶1 FA 𝑠 𝑐𝑜𝑢𝑡 𝑐𝑖𝑛 29 加減算器の例 𝐶𝑆𝐺𝑁 2014/1/17 𝐶0 𝐶O 𝑆 𝑆3 𝐶0 𝑆 𝑆2 𝐶0 𝑆 𝑆1 𝐶0 𝑆 𝑆0 コンピュータアーキテクチャ 乗算アルゴリズム 前提 𝑃 = 𝑋 ⋅ 𝑌を求める。 このとき𝑋を被乗数、𝑌を乗数と呼ぶ。 また𝑋を2進数表現した際の各ビットを𝑥𝑖 で表す。 𝑖 (0,1, … )は下位から数えて何ビット目かを示す。 ブース法 (Booth Altorithm) • 負の乗算にも対応した広く利用されている方式。 • 負の数は2の補数で表現される • 乗数を2進展開し、各ビットについてシフトと加算を行っていく • 各ビットとその前のビットの値の組み合わせによりシフトと加算の 動作が異なる • 𝑖ビット目の動作では𝑦𝑖 と𝑦𝑖−1 の組み合わせを見る • 組合せは以下の3種類:00または11、10、01 • 動作は加算の位置が変化する方法と加算の位置を変化させない方法 で異なる 30 2014/1/17 コンピュータアーキテクチャ 除算アルゴリズム 前提 𝑋と𝑌の商𝑄と剰余𝑅求める。 このとき𝑋を被除数、𝑌を除数と呼ぶ。 また𝑋を2進数表現した際の各ビットを𝑥𝑖 で表す。 𝑖 (0,1, … )は下位から数えて何ビット目かを示す。 𝑋は2𝑛ビット、 𝑌は𝑛ビットとする。 また𝑋の上位𝑛ビットを𝑋1、下位𝑛ビットを𝑋2とする 引き戻し法 (Restoring Division) 𝑋の上位𝑛ビットから𝑌を引いていく。筆算では𝑋の上位𝑛ビットと𝑌の大小を 比較し、大きければその桁の商を1、小さければ0としているが、引き戻し 法ではまず減算を行い、その結果の正負を判定する。負である場合、同じ ものを加算することで元に戻す。 引き放し法 (Nonrestoring Division) 引き戻すタイミングを遅らせることにより高速化した手法 31 2014/1/17 コンピュータアーキテクチャ ノイマン型コンピュータの特徴 プログラム可変内蔵方式 • • プログラムを内部のメモリに記憶させることで、プログラムの入力や変更が簡単に行える プログラム記憶方式とも 逐次処理方式 • • 命令は、原則として実行順にメモリに格納されており、この命令を順次取り出しながら処 理を進める。 取り出す命令のアドレスは、プログラムカウンタに従って指示する 単一メモリ方式 • • プログラムとデータは、同じメモリ内に格納され、メモリにはアドレスが割り振られて いる。 一時的なデータ格納領域として、高速に動作する小容量メモリであるレジスタを備えて いる。 • レジスタとメモリ間のデータ転送は、プログラムで指示できるため、メモリの効果 的な利用が可能となる。 32 2014/1/17 コンピュータアーキテクチャ 基本動作 アドレスバス 制御装置 演算装置 メモリ ALU メモリアドレス レジスタMAR プログラム カウンタ PC 命令 レジスタ IR 主記憶装置 OP アドレス opr 命令 デコーダ DEC 汎用レジスタGR フラグレジスタFR 制御信号 データバス 33 2014/1/17 コンピュータアーキテクチャ 命令の形式 基本形式 操作命令を示す命令コード(Operation Code)と 操作対象のデータを示すオペランド(Operand)からなる 命令コード (OP) オペランド (opr) 3オペランド命令 2オペランド命令 分類 1オペランド命令 0オペランド命令 34 2014/1/17 コンピュータアーキテクチャ 命令セット CPUが備えているすべての命令の集まりを 命令セット(Instruction Set)という COMET IIで実行される アセンブラ言語CASL IIの命令セット ロード、ストア、 ロードアドレス命令 分岐命令 スタック操作命令 算術、論理演算命令 コール、リターン命令 比較演算命令 その他 シフト演算命令 35 2014/1/17 コンピュータアーキテクチャ RISCとCISC RISC (Reduced Instruction Set Computer) 縮小命令セットコンピュータ。 簡単な命令セットだけを用意することでコンピュータの構成を簡単化し、 高速化は開発期間の短縮を実現。 複雑な処理では多くの命令を組み合わせる必要が生じる。 CISC (Complex Instruction Set Computer) RISCが提案された後、これまでの命令セットコンピュータを 複雑命令セットコンピュータ(CISC)と呼ぶようになった。 36 2014/1/17 コンピュータアーキテクチャ アドレッシング メモリには格納領域ごとにアドレス(番地)と呼ばれる値が割り振られている 命令のオペランドにアドレスを記述すれば その値に対応する格納領域を特定できる コンピュータでは各種のアドレスの指定法が用いられている 有効アドレス(Effective Address): 最終的に参照されるアドレス アドレス メモリ アドレッシング: 処理対象となるデータを決める操作 OP 操作 opr アドレッシング 37 XXX a 有効アドレス 2014/1/17 コンピュータアーキテクチャ ハーバードアーキテクチャ • ハーバードアーキテクチャの特徴 – 命令とデータを格納するメモリを個別に用意 – 非ノイマン型コンピュータ • 広義のノイマン型コンピュータとも – プログラム可変内蔵方式、逐次処理 ノイマン型 アーキテクチャ CPU 現在の コンピュータ 38 ハーバード アーキテクチャ メイン メモリ CPU CPU 命令 メモリ データ メモリ 命令用 キャッシュメモリ データ用 キャッシュメモリ 2014/1/17 メイン メモリ コンピュータアーキテクチャ コンピュータの制御 制御の流れ • メインメモリ(主記憶装置)に格納されている命令を CPU内の命令レジスタに取り出した後、デコーダで解 読する • デコーダから出力されるデコード情報は、ALU(算術論 理演算装置)やPC(プログラムカウンタ)、汎用レジ スタなどに与えられる デコード情報をどのようにして処理して制御を実現するか 制御アーキテクチャ • ワイヤードロジック制御(Wired Logic Control) • 布線論理制御方式、または配線論理制御方式とも • マイクロプログラム制御(Micro-programmed Control) 39 2014/1/17 コンピュータアーキテクチャ ワイヤードロジック制御の事例 セレクタの動作 入力 デコード情報を配線によって直接的にALUや PC、汎用レジスタなどに与える方法 フェッチ デコード 実行 モデル 40 2014/1/17 出力 S1 S0 Y 0 0 レジスタA 0 1 オールゼロ 1 0 入力ポート 1 1 オールゼロ レジスタの動作 制御 信号 動作 0 ロード (データを読み取る) 1 • PCは、+1 (カウントアップ) • A、出力は、ラッチ • (データの保持) コンピュータアーキテクチャ メモリ装置の機能と分類 メモリ装置の機能 • データをメモリ媒体に格納して保持する(書き込む、Write)機能 • メモリ媒体に格納されているデータを取り出す(読み取る:Read)機能 メモリ装置にアクセス(Access)する: メモリ装置を用いてデータの書き込みや読み取り操作を行うこと メモリ装置の分類 • RAM(Random Access Memory)/ROM (Read Only Memory) • 主記憶装置/補助記憶装置 • アクセス方式 • メモリ媒体の種類 • シーケンシャル(順次)アクセス • 半導体、磁性材料 (Sequential Access) • 揮発性/不揮発性 • ランダム(直接)アクセス(Random • 可搬性 Access) 41 2014/1/17 コンピュータアーキテクチャ 参照局所性 実行中のプログラムが主記憶装置にアクセスする場合には、空間的・ 時間的な参照局所性(Referential Locality)がある メモリの空間的参照局所性 一度アクセスされたアドレスに近いアドレスは、近い時間内にアクセスされる可能性が高 い メモリの時間的参照局所性 一度アクセスされたアドレスは、近い時間内に再びアクセスされる可能性が高い アドレス付近の格納データをブロック単位でキャッシュメモリに転送 参照局所性により、効率的なメモリアクセスが可能になる 42 2014/1/17 コンピュータアーキテクチャ 仮想メモリ • • マルチタスクと主記憶装置 – コンピュータでソフトウェアを実行する場合にはそのプログラムを主記憶装 置に格納しておくことが必要条件 – マルチタスクで複数プログラム+プログラムの高度化によりプログラムのサ イズは増加傾向 仮想メモリ – 主記憶装置を仮想的に増大させる技術 – 補助記憶装置(一般的にはハードディスク装置)上に構成された空間 – 実メモリへは参照局所性を活用してアクセス可能性の高い仮想アドレス付近 のブロック領域を割り当てる 比較項目 仮想メモリ 目的 主記憶領域の増大化(空間的) アクセスの高速化(時間的) ブロックサイズ 大きい(512~8192B程度) 主記憶装置との転送速度 対象が補助記憶装置であるため 対象がキャッシュメモリであ 低速 るため高速 制御方法 OS主体 ハードウェア主体 (高速性をさほど重視しない) (高速性を重視) 43 キャッシュメモリ 2014/1/17 小さい(4~128B程度) コンピュータアーキテクチャ 割り込みとは 実行中の処理を一度停止して、他の処理を行った後に再開する機能 • 通常ルーチンを処理しているときに割り込みが発生すると、実行してい た通常ルーチンを中断して割り込みルーチンへ分岐する。 • 割り込みルーチンの実行が終了した後にもとの通常ルーチンへ復帰する。 – 通常ルーチンは中断するものの、結果としては通常ルーチンと割り 込みルーチンが平行して実行されたように見える 44 2014/1/17 コンピュータアーキテクチャ