入出力装置との通信法

機械語序論

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/kikaigo-2001/2002-02-12
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.is.tsukuba.ac.jp/~yas/index-j.html

■今日の重要な話

■入出力装置(デバイス)

デバイス(device) とは、コンピュータの箱の中に内蔵されているハードウェアの部品やケーブル で外で接続する部品。 普通は、CPU とメモリ以外のことを指す。 周辺装置(peripheral device)、 入出力装置(IO device)とも呼ばれる。

◆ハードウェアの構成

メモリ、CPU、デバイスは、バス(bus)(システム・バス(system bus))を通 じて接続されている。

図1 バスにより接続されたCPU、メモリ、デバイス

図1 バスにより接続されたCPU、メモリ、デバイス

バス:何本かの配線の束

アドレスバス
メモリのアドレスを示すための線
データバス
データを送るための線
コントロールバス
その他、制御用の線

アドレスバスの下2ビットは、しばしば配線されていない。たとえば、MIPS の lw 命令では、上30ビットを使って4 バイトのデータを一度に読み出す。lb 命令は、読み出したデータを一部捨てる。

◆デバイス・コントローラ

各デバイスとCPU で実行されるプログラムとデバイスとり橋渡しをする機器。

例:キーボード用のコントローラの働き

データが、電気信号などの形で送られてくる。コントローラの中のレジスタ (小容量のメモリ)に保存される。(CPU のレジスタとは別。)

◆CPUとデバイスの間のデータの受け渡しの方法

CPU から見える場所

  1. デバイス・コントローラが I/O 空間にあり、ポート番号と呼ばれる番地 が振られている。CPU が、ポート番号を指定して入出力命令を実行すると、 I/O 空間にあるレジスタの内容が読み書きできる(I/O 空間を示す信号線が1に なる)。
  2. デバイス・コントローラが、普通のメモリと同じ空間にあり、番地が番 地が振られている。CPU が、その番地へ普通のロード命令やストア命令でアク セスすると、コントローラのレジスタの内容が読み書きできる。
入出力の時に CPU が働くかどうか
  1. CPU が入出力命令、あるいは、ロード命令/ストア命令を実行する。
  2. DMA (Direct Memory Access)やバスマスタと呼ばれる機器があり、その 機器がCPU が普通に命令を実行している合間をぬって一時的にバスを乗っ取り、 データをメモリにコピーする。

◆ポーリングと割込み

CPU の速度に比べて、デバイスの速度は遅い。

ポーリング(polling): 周期的にデバイス・コントローラの状態をチェックする。 割込み(interrupt):入出力が可能になった時にデバイスがCPUに知らせる。
入力デバイス
コントローラは、入力データが到着すると、制御バスの割込み要求(IRQ, Interrupt Request)信号線を1にする。 (DMAやバスマスタを使っている時には、メモリへのコピーが完了した時)
出力デバイス
コントローラは、出力用バッファが空になると、割込み要求信号線を1に する。
CPU は、割込み要求を受け付けると、現在実行中の処理を中断して、 割込み処理ルーチン あるいは 割込みハンドラ と呼ばれるプログラムを実行する。 割込み処理ルーチンでは、実際に入力命令を実行したり、 次のデータを出力を開始する。 最後に、割込み処理から復帰する命令を実行する。すると、先ほど中断してい た処理が再開される。

■オペレーティング・システム

入出力(ポーリングや割込み)は、オペレーティング・システムのカーネルに おいて利用されている。

図2 オペレーティング・システムの構成要素

図2 オペレーティング・システムの構成要素

◆システムコール

オペレーティング・システム(のカーネル)の機能を利用することを、システ ムコール(カーネル・コール)という。

■シリアル回線

シリアル回線は、主にモデム(modem)を接続するためのもの。

図3 モデムによるコンピュータの接続

図3 モデムによるコンピュータの接続

modem は、ディジタル信号の変調(modulation) と 復調(demodulation) を行 う。

モデム間は、アナログ信号が流れる。

シリアル回線では、1本の線に、1ビットずつ送る回線。

普通、3本の配線がなされる。

図4 シリアル回線を使った通信でのコントローラの役割

図4 シリアル回線を使った通信でのコントローラの役割

コントローラのレジスタには、8ビット単位で書込む。信号線には、1ビット ずつ送られる。データ以外に、データの開始や終了(スタートビット、ストッ プビット)を表すビット、パリティ・ビットが付けられることがある。

クロスケーブルを使えば、コンピュータとコンピュータを直結できる。

図5 nullモデムによるコンピュータの接続

図5 nullモデムによるコンピュータの接続