計算機システムⅡ 入出力と周辺装置 和田俊和
講義計画 コンピュータの歴史1 コンピュータの歴史2 コンピュータの歴史3 論理回路と記憶,計算:レジスタとALU コンピュータの歴史2 コンピュータの歴史3 論理回路と記憶,計算:レジスタとALU 主記憶装置とALU,レジスタの制御 命令セットアーキテクチャ 演習問題 パイプライン処理 メモリ階層:キャッシュと仮想記憶 命令レベル並列処理 入出力と周辺装置(←本日) 現代的な計算機アーキテクチャの解説 総括と試験 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアーキテクチャ,コロナ社 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.
本日の講義の範囲 コンピュータ デバイス デバイス コントローラ
7.1 周辺装置 (peripheral Devices)
7.1.1 並列処理 各デバイスの種類に応じて,入出力の方法が異なる.
7.1.2液晶ディスプレイ 光は,電磁波であり,電界の振動と磁界の振動が通常は直交している. 特定方向の振動面を持つ光だけを通すのが偏光フィルタ.
液晶ディスプレイ 液晶は印加電圧によって偏光面が変化するデバイス. 電圧ゼロのときに,偏光フィルタの偏光面と直交する→光を通さない. 電圧をかけると偏光フィルタと同じ偏光面となり光が通過する
7.1.3 磁気ディスク シリンダ トラック セクタ 円盤形デバイスはシーク時間が短い
7.2 入出力の機構と動作
7.2.1 ハードウエアインタフェース 各デバイスはバスによって結合されている. このテキストでは,主記憶とCPUがバスを経由しない接続になっているが,バスを経由してアクセスするものもある.
バスの種類 VMEバス:モトローラ68000用 SBUS:Sun MicrosystemsのSPARC用 PCIバス:スイッチ形バス
7.2.2 データ転送の手順 7.A 入出力の手順 ① ポーリングまたは割り込みによる入出力の起動 ② 前処理 ③ 命令またはDMAによる主記憶・周辺装置間のデータ転送 ④ 後処理 ポーリングは,CPUが各周辺装置を見回って,入出力要求があるかどうかを調べる方法.処理は単純であるが,入出力要求に即応できない. 割り込みは,周辺装置の割り込みコントローラからCPUに割り込み信号を入れ,CPUに例外処理を行わせる中で入出力を行わせる方法である.入出力要求に即応することが出来るが,レジスタ待避やキャッシュの書き戻しなどの前処理・後処理のオーバヘッド時間がかかる.
7.2.2 割り込みの調停 複数の割り込み要求を同時にこなすことはできないので,それらから一つを選択する必要がある. これを行うのがアービタ(arbiter,調停器)である. 同じ優先度の割り込み要求は優先度毎に決められたランダムアービタに繋ぎ込まれ,その中からランダムに一つを選ぶ. プライオリティエンコーダは,これらの中から優先度の最も高いものを選び,それをエンコードしてCPUに送る. CPUが割り込みを許可すれば,周辺機器とCPU間でデータ転送が起きる.
デイジーチェイン方式のアービタ 簡便なアービタ.コントローラから割り込み要求を送り,最初に許可信号をもらったデバイスが割り込み権を獲得する. 欠点:CPUから近いデバイスが権利を取りやすいため,優先度の低いデバイスが処理を進められなくなる可能性がある.
7.2.4 DMA Direct Memory Access 最も高速なデータ転送の方法 7.B 周辺装置とのデータ転送 ① 7.B 周辺装置とのデータ転送 ① 入出力専用命令を使って,データの読み出し,または書き出しを行う.データ入出力用のポートを用いる. ② 周辺装置にアドレスを割り当てておき,そのアドレスを用いて,データのロード,ストア命令でデータの読み書きを行う. ③ データ転送専用のハードウエアを用いて,CPUを介さずに周辺装置と主記憶の間で読み書きを行う. Direct Memory Access 最も高速なデータ転送の方法
DMA Controller DMA転送を司る装置. 以下の動作を行う 7.C DMAの手順 ① 7.C DMAの手順 ① DMACのメモリアドレスレジスタ(MAR),アドレスカウンタ(AC)のそれぞれに,CPUが値を書き込みDMA転送開始の指示を送る. ② CPUはバスへのアクセスをやめ,DMACが主導権をもってデータ転送を行う.DMACはアドレスバスにMARの値を書き,1回のデータ転送が終わるたびに,MARの値を増やし,ACの値を減らす. ③ ACの値が0になった時点ででDMAは転送を終了し,バスの制御をCPUに戻す.
7.3 例外処理
7.3.1 例外の要因
7.3.2 例外処理の手順 入出力に伴う割り込みは,例外処理を引き起こす.ここでは割り込みにとらわれず,一般的な例外処理の説明をする. 7.D 例外処理の手順 ① 例外処理要因が発生したら,CPUはこれを受け付けるかどうかを決める.複数の要因が重なった場合は優先度が最も高い要因を一つ選択する. ② 受け付けることが決まった場合,実行中プログラムの状態を待避させる.(データレジスタ,PC,状態レジスタなどをメモリ上に待避させる.) ③ 例外処理のカーネルプログラムを起動する.カーネルプログラムは,要因に応じて表7.2の処理を実行する. ④ 処理が終われば,待避させていたレジスタ類を復帰させ,元のプログラムの実行に戻る.
本日の講義の範囲 コンピュータ デバイス デバイス コントローラ