2011-12-27 5 views
8

私はかなり混乱しているので、I/OポートとI/Oメモリの違いを知りたいだけです。そして、誰かがそれの使用法を説明すれば、それは素晴らしいことでしょう。そして、私は、I/Oポートが優先され、I/Oメモリが優先されるときに使用することを意味します。I/OポートとI/Oメモリの違い

答えて

10

メモリ領域とI/O領域との間に概念的な違いはありません:それらの両方は、いくつかのCPUメーカーは、そのチップ内の単一アドレス空間を実現しながら、アドレスバス及び制御バス

に電気信号をアサートすることによってアクセスされます周辺機器はメモリとは異なるため、別個のアドレス空間が必要と判断しました。一部のプロセッサ(特にx86ファミリ)には、I/Oポート用の個別の読み書き電線とアクセスポートへの特別なCPU命令があります。

Linuxは、CPUが単一のアドレス空間を実装するプラットフォームであっても、実行するすべてのコンピュータプラットフォームでI/Oポートの概念を実装します。ポートアクセスの実装は、異なるモデルがバストランザクションをメモリアドレス空間にマッピングするために異なるチップセットを使用するため、ホストコンピュータの特定の製造元およびモデルに依存することがあります。

周辺バスがI/Oポート用に別々のアドレス空間を持っていても、すべてのデバイスがI/Oポートにレジスタをマップするわけではありません。 I/Oポートの使用はISAペリフェラルボードでは一般的ですが、ほとんどのPCIデバイスはレジスタをメモリアドレス領域にマッピングします。このI/Oメモリ手法は、特殊用途のプロセッサ命令の使用を必要としないため、一般に好ましい。 CPUコアはより効率的にメモリにアクセスし、コンパイラはメモリへのアクセス時にレジスタの割り当てとアドレッシングモードの選択がより自由になります。

詳細はhttp://www.makelinux.net/ldd3/chp-9-sect-1

関連する問題