出 アーキテクチャ 誰が 出 装置を制御するのか 1
が 出 装置を制御する メモリ ( 主記憶 ) 命令データ 出 装置 2 が 出 装置を制御する 命令 実 入出力装置を制御する命令を実行する メモリ ( 主記憶 ) 命令データ 制御 出 装置 3
が 出 装置を制御する メモリ ( 主記憶 ) 命令 実 制御 命令データ データを出力せよ 出 装置 4 が 出 装置を制御する メモリ ( 主記憶 ) 命令 実 制御 命令データ データを入力せよ 出 装置 5
もう少し詳しく ると メモリ ( 主記憶 ) それぞれの 出 装置に接続されたアダプタがあり その中にコマンドレジスタ データレジスタがある 出 装置 コマンドレジスタ データレジスタ 6 が出 命令を実 する もう少し詳しく ると 出 命令 ( データ ) データ コマンド メモリ ( 主記憶 ) ( このデータを印刷せよ ) 出 装置 コマンドレジスタ データレジスタ 7
もう少し詳しく ると メモリ ( 主記憶 ) 出 命令 ( データ ) 出 命令の実 によってコマンドとデータを書き込む コマンド データ ( このデータを印刷せよ ) コマンドレジスタ データレジスタ 印刷せよ A 出 装置 8 もう少し詳しく ると メモリ ( 主記憶 ) 出 命令 ( データ ) コマンドデータ ( このデータを印刷せよ ) 出 装置 コマンドレジスタ データレジスタ 印刷せよ A 機器はコマンドに従って動作する ( 印刷する ) 9
出 アダプタのレジスタの指定 2 つの指定方法 ( ハードの構造 ) がある 1) メモリマップト 出 10 出 アダプタのレジスタの指定 2 つの指定方法 ( ハードの構造 ) がある 1) メモリマップト 出 コマンド / データレジスタは から るとメモリの 部 ( 特定アドレスのメモリ ) に える ( メモリアドレス空間の一部にマップされる と言う ) 11
出 アダプタのレジスタの指定 2 つの指定方法 ( ハードの構造 ) がある 1) メモリマップト 出 コマンド / データレジスタは から るとメモリの 部 ( 特定アドレスのメモリ ) に える ( メモリアドレス空間の一部にマップされる と言う ) コマンド / データレジスタへの書込みはメモリの特定アドレスへのストア命令で う 12 出 アダプタのレジスタの指定 2 つの指定方法 ( ハードの構造 ) がある 1) メモリマップト 出 コマンド / データレジスタは から るとメモリの 部 ( 特定アドレスのメモリ ) に える ( メモリアドレス空間の一部にマップされる と言う ) 2)I/O マップト 出 コマンド / データレジスタは から ると I/O レジスタとして える ( 特別な I/O レジスタ空間の一部にマップされる と言う ) 13
出 アダプタのレジスタの指定 14 2 つの指定方法 ( ハードの構造 ) がある 1) メモリマップト 出 コマンド / データレジスタは から るとメモリの 部 ( 特定アドレスのメモリ ) に える ( メモリアドレス空間の一部にマップされる と言う ) 2)I/O マップト 出 コマンド / データレジスタは から ると I/Oレジスタとして える ( 特別なI/Oレジスタ空間の一部にマップされる と言う ) 特別なI/O 命令で書き込む 出 アダプタのレジスタの指定 メモリマップト STORE 命令 I/O マップト IN/OUT 命令 メモリ メモリ メモリバス コマンドレジスタ データレジスタプリンタ用 コマンドレジスタ データレジスタプリンタ用 I/O バス メモリバス 15
データの転送方法が 2 つある 16 データ転送の方法 2 つの転送方法 ( ハードの構造 ) がある 1) 直接制御転送 ( プログラム制御転送 ) 17
データ転送の方法 2 つの転送方法 ( ハードの構造 ) がある 1) 直接制御転送 ( プログラム制御転送 ) が 1 バイトずつデータレジスタへ転送 18 D を印字せよ O を印字せよ G を印字せよ データレジスタ データ転送の方法 2 つの転送方法 ( ハードの構造 ) がある 1) 直接制御転送 ( プログラム制御転送 ) が 1 バイトずつデータレジスタへ転送 2) 間接制御転送 (DMA 転送 ) 19 D を印字せよ O を印字せよ G を印字せよ データレジスタ
データ転送の方法 2 つの転送方法 ( ハードの構造 ) がある 1) 直接制御転送 ( プログラム制御転送 ) が1バイトずつデータレジスタへ転送 2) 間接制御転送 (DMA 転送 ) は起動だけ指 データ転送は 出 装置内 の DMA コントローラが制御する メモリ D を印字せよ O を印字せよ G を印字せよ XX 番地から YY バイト出 せよ DMA コントローラ データレジスタ データレジスタ 20 データ転送方法の比較 直接転送 間接転送 21
データ転送方法の比較 直接転送 が1バイト毎に関与する 間接転送 は転送開始時と終了時だけ関与する 22 データ転送方法の比較 直接転送 が1バイト毎に関与する 負荷が大きい 低速の転送に向く 間接転送 は転送開始時と終了時だけ関与する 負荷が小さい 高速の転送に向く 23
データ転送方法の比較 直接転送 が1バイト毎に関与する 負荷が大きい 低速の転送に向く 余分なハード不要 安価に済む 間接転送 は転送開始時と終了時だけ関与する 負荷が小さい 高速の転送に向く DMA コントローラ要その分ハード価格高 24 データ転送方法の比較 直接転送 が1バイト毎に関与する 負荷が大きい 低速の転送に向く 余分なハード不要 安価に済む キーボード プリンタマウス 間接転送 は転送開始時と終了時だけ関与する 負荷が小さい 高速の転送に向く DMA コントローラ要その分ハード価格高 ハードディスク 25
直接制御転送 間接転送制御の発展形 間接制御転送 DMA 装置 が 1 バイトずつ制御しながら転送 は DMA 装置へ開始番地とバイト数を指 して起動 DMA が転送 26 直接制御転送 間接転送制御の発展形 間接制御転送 DMA 装置チャネル装置 が 1 バイトずつ制御しながら転送 は DMA 装置へ開始番地とバイト数を指 して起動 DMA が転送 はチャネルへ 連の転送を指 して起動 チャネルが転送 27
直接制御転送 間接転送制御の発展形 間接制御転送 DMA 装置チャネル装置 が 1 バイトずつ制御しながら転送 は DMA 装置へ開始番地とバイト数を指 して起動 DMA が転送 はチャネルへ 連の転送を指 して起動 チャネルが転送 複数 複雑な転送可能 ( チャネルは小さな ) 28 直接制御転送 間接転送制御の発展形 間接制御転送 DMA 装置チャネル装置 が 1 バイトずつ制御しながら転送 は DMA 装置へ開始番地とバイト数を指 して起動 DMA が転送 比較的簡単なので PC で使われている はチャネルへ 連の転送を指 して起動 チャネルが転送 複数 複雑な転送可能 ( チャネルは小さな ) メインフレームでかつて使われた 29
( 脱線 ) 終了時の の対応 出 装置の動作終了を が知るには? 30 ( 脱線 ) 終了時の の対応 出 装置の動作終了を が知るには? 終了をチェックし続ける 割込みによって知る 出 起動 出 起動 ステータス読込終ったか未終了終了 中断 復帰 別の仕事をする 割込処理 終了割込 後始末 出 機器が動作 31
( 脱線 ) 終了時の の対応 終了をチェックし続ける 割込みによって知る は他のことができない 専用の機械ならこれも OK プログラムは簡単 は他の仕事ができる PC や 多数の仕事をする機械ならこの方が普通 プログラムはやや複雑 32 出 制御のまとめ から I/O のコマンド / データレジスタに情報を渡す ( ならデータは読込む ) 33
出 制御のまとめ から I/O のコマンド / データレジスタに情報を渡す ( ならデータは読込む ) 渡す経路のスタイルとして I/O マップトとメモリマップトがある I/O マップトとメモリマップトで 使う命令が違う 34 出 制御のまとめ から I/O のコマンド / データレジスタに情報を渡す ( ならデータは読込む ) 渡す経路のスタイルとして I/O マップトとメモリマップトがある I/O マップトとメモリマップトで 使う命令が違う データの渡し方として 直接制御転送と間接制御転送 (DMA) がある直接制御はハードが簡単だが 負荷大で低速用間接制御は余分なハードが必要 負荷小で高速用 35
出 制御のまとめ から I/O のコマンド / データレジスタに情報を渡す ( ならデータは読込む ) 渡す経路のスタイルとして I/O マップトとメモリマップトがある I/O マップトとメモリマップトで 使う命令が違う データの渡し方として 直接制御転送と間接制御転送 (DMA) がある直接制御はハードが簡単だが 負荷大で低速用間接制御は余分なハードが必要 負荷小で高速用 36 理解できましたか? 出 装置のつなぎ方が分かりましたか? 〇 次へ 37