Outlookに他人の予定表を表示させる方法を追加
→命令セットアーキテクチャ →記憶方式 →並列処理 →代表的アーキテクチャ →先端アーキテクチャ
CPUは演算機能と制御機能からなる。その制御機能の方式について。 なお記憶制御は記憶方式を見ること。
プログラムカウンタの内容にあるアドレスにある命令を取り出す。同時に次の命令のアドレスを計算してプログラムカウンタを更新する。
命令のオペコードから命令を確定し、それにより処理を変える。オペランド部に適当なアドレス修飾を行って実効アドレスを計算する。馬場さんの本ではデコードはフェッチの段階に含まれている。
Fetch-execute_cycle 馬場さんの本では、フェッチと実行の二段階に分けている。
命令を実行する。処理内容は命令により異なる。たいてい、オペランドの読み出し、演算実行、結果の書き込み、となる。
フェッチ→デコード→オペランド読み出し→演算→結果書き込み、の一連の処理を命令サイクルという。命令サイクルは状態遷移でモデル化できる。
結線論理(ハードワイヤード)、布線論理方式ともいう。命令実行制御を順序回路で実現する方式。PLAを使うことも多い。
マイクロ命令の形式
2レベルマイクロプログラム制御方式
マイクロプログラムの応用
ファームウェア)
CPUが直接I/Oを制御する方式。どの入出力装置を対象とするか(装置の同定)、データの転送、I/O装置の状態のチェックや転送終了の確認(同期)、の三つの機能が必要。 しかしCPUの負荷が大きく、I/Oの動作が完了するまでCPUが待つことになる。
Memory-mapped_I/O I/O装置に本来主記憶に割り付けるべきアドレスを割り付ける方法。こうするとそのアドレスに対する操作でI/O装置を制御でき、特別な命令を用意しなくてもよい。
装置の同定はアドレスで行い、データ転送はロード命令やストア命令などの主記憶アクセス命令で行う。
入出力制御専用の命令を用いる。専用のデコーダが要るが、メモリのアドレス空間に影響はない。
入出力専用のハードウェアを用意して入出力処理を任せる方式。
Direct_memory_access CPUを介さずに主記憶とI/Oが直接データのやりとりを行う方式。DMAを制御するハードウェアがDMAコントローラ(DMAC)だ。
CPUは転送するデータ領域の先頭アドレスと転送語数をセットしてDMACに指令を出す。DMACはアドレスカウンタを増やし、転送語数を減らしながらI/Oと主記憶間のデータ転送を行う。このときCPUや他のデバイスからの主記憶アクセスと競合しないように、メモリバスの調停が要ることになる。DMA転送はCPUと関係なく勝手に行っているので、転送終了をCPUに伝えなければならず、そのためにCPUに割り込みを起こす。
DMAで主記憶を書き換えるとキャッシュと主記憶の内容の一貫性が失われる可能性があり、これを回避する方法がいくつか考案されている。スヌープもその一つ。
I/OがDMAコントローラに転送を要求するために使うチャネルをDMAチャネルという。
Programmed_input/output 入出力専用のプロセッサのこと。小型のコンピュータを使うこともある。I/Oチャネルは複数用意することもある。I/Oチャネルは、I/O装置のコントローラとCPU、I/Oコントローラと主記憶の間に位置する。CPUがチャネルを制御するにはチャネルプログラムというチャネル制御用のプログラムを主記憶に置く。チャネルは動作を終了するとチャネル状態語を使ってCPUに知らせる。
特定のI/O動作が完了するまで他のI/O装置のサービスをしない方式。磁気ディスクなどの高速I/O装置を対象に用いる。
複数のI/O装置に対して時分割でサービスを行う方式。
DMA(Direct Memory Access)コントローラ
CPUの介在無しに主記憶と周辺装置間のデータ転送を行うコントローラ。