1. 概要

このチュートリアルでは、I/O操作に関連するさまざまな方法について説明します。 プログラムされたI/Oの2つのタイプについて説明します。メモリマップドI/Oと分離I/Oです。

最後に、それらの主な違いを示します。

2. I/Oの概要

I/Oは入出力の略です。 I / Oは、人間と周辺機器を使用するコンピューターを含む外界との間の通信を表す用語です。コンピューターに接続される最も一般的な周辺機器には、キーボード、マウス、モニター、ネットワークアダプター、およびプリンタ。 周辺機器は、外界とコンピュータのCPUの間で情報を交換します。 一部のI/Oデバイスは入力デバイスとして機能し、一部は出力デバイスとして機能し、その他は両方として機能します。

CPUからI/Oデバイスに情報を渡します。 I/OデバイスからCPUに渡された情報をメモリに保存します。 CPUはメモリに保存されたデータを処理し、I/O操作でデータを転送するのに役立ちます。

プロセッサによって駆動されるシステム内で効率的に動作するために、I/Oデバイスにはインターフェイスが必要です。一般にI/Oインターフェイスとして知られています。 一般に、CPUとI/Oデバイス間の通信はバスを介して行われます。 I / Oインターフェイスの役割は、CPUによって生成されたデバイスのアドレスを識別することです。 さらに、I / Oインターフェースには、CPUがI/Oデバイスと通信するためのインターフェースが含まれています。

3. I/O操作のさまざまな方法

I / O手法には、プログラムI / O、割り込み駆動型I / O、およびダイレクトメモリアクセスの3種類があります。各種類のI/O手法について簡単に説明します。

まず、プログラムされたI/Oについて説明しましょう。 I / Oインターフェースを使用したCPUとネットワーク周辺機器間のデータ伝送方式です。さらに、CPU上で動作するコンピュータプログラムがプログラムI/OでI/O動作を開始します。 CPUはI/O操作全体を制御します。 したがって、プログラムされたI/OはCPUをビジー状態に保ちます。 プログラムされたI/OをメモリマップドI/Oと分離I/Oにさらに分割できます。 分離I/Oは、一般にマップまたはポートマップI/Oと呼ばれます。

次に、割り込み駆動型I/Oについて説明します。 割り込み駆動型I/Oは、プログラムされたI / Oとは異なり、CPUがI/Oデバイスの準備ができているかどうかを確認するのを待つ必要がない手法です。 I / Oデバイスは、I / O操作を実行する準備ができると、CPUに対して割り込みを生成します。 ソフトウェア割り込みの例は、 Microsoft Word のようなプログラムを終了して、CPUが MicrosoftExcelのような他のプログラムを高速化できるようにする信号です。

ダイレクトメモリアクセス(DMA)方式では、コンピュータメモリとシステムに接続されたI / Oデバイス間で直接データを転送します。この方式では、CPUをプロセスに関与させる必要はありません。データ転送。 DMAは、データ転送中にCPUが解放されるため、大量のデータを転送するための有利な方法です。 さらに、ハードドライブ、グラフィックカード、大量のデータの転送が重要なネットワークカードなどのハードウェアは、DMA方式を使用します。

4. 分離およびメモリマップドI/O

プログラムされたI/Oは、メモリマップドI/Oと分離I/Oの2つのカテゴリにさらに分類できます。

I / O通信に必要なバスには、アドレスバス、データバス、制御バスの3種類があります。 CPUがそのアドレスを使用してそのデバイスと通信できるように、各I/Oデバイスにアドレスを割り当てます。

メモリマップドI/Oでは、メモリとI/Oデバイスの両方が同じアドレス空間を使用します。一部のメモリアドレスをI/Oデバイスに割り当てます。 CPUは、I/Oデバイスをコンピュータメモリのように扱います。 CPUは、アドレスに応じて、コンピュータメモリまたは一部のI/Oデバイスと通信します。 そのため、コンピュータメモリには使用できないI/Oデバイス用のアドレス空間の一部を予約しています。

メモリマップドI/Oの場合、すべてのバスはメモリデバイスとI / Oデバイスの両方で同じです。したがって、メモリマップドI / Oを使用するCPUの構築は、より簡単で安価です。 さらに、このようなCPUは、複雑さが軽減されるため、消費電力が少なくなります。 メモリマップドI/Oの利点の1つは、I/Oデバイスにアクセスするための個別の命令セットが必要ないことです。 メモリへのアクセスに使用される命令は、I/Oデバイスへのアクセスに簡単に使用できます。

分離I/Oの場合、メモリアドレス空間以外の個別のアドレス空間をI/Oデバイスに提供します。 I/Oデバイスのアドレスはポートとも呼ばれます。 I/Oデバイスとメモリは同じアドレスとデータバスを使用します。 ただし、制御バスはデータとメモリで異なります。

したがって、分離I / Oは、メモリマップドI/Oと比較してコストが高くなります。 分離型I/O技術には、I/Oデバイスにアクセスするための専用の命令セットがあります。 分離されたI/Oを使用するCPUは、より大きく、より複雑に構築できます。

I / Oデバイスの場合、メモリマップドI/Oと分離I/Oのどちらが実装されているかは関係ありません。 I / Oデバイスは、内部で実装されているI/Oメソッドに関係なく同じように動作します。

5. 違い

次に、メモリマップドI/Oと分離I/Oの主な違いを見てみましょう。

6. 結論

このチュートリアルでは、I/O操作のさまざまな方法について説明しました。 プログラムされたI/Oの2つのタイプであるメモリマップドI/Oと分離I/Oについて詳しく説明しました。

最後に、メモリマップドI/Oと分離I/Oの主な違いを示しました。