I/O空間
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/12 01:26 UTC 版)
Z80やIntelx86などのCPUやPCIバスなどでは、メインメモリとは別のアドレス空間としてI/O空間があり、ペリフェラルのレジスタを接続するために用意されている。x86ではI/O空間はメモリ空間より狭く、アクセスできる命令も限定されている。I/O空間のアドレスはI/OアドレスやI/Oポートアドレスと呼ばれる。マイクロプロセッサやOSが保護機能を持っている場合、アプリケーションがI/O空間をアクセスすることに制限をかけることができる。 PC/AT互換機で共通化されているペリフェラルの一般的なI/Oアドレス配置の例を以下に示す。 ペリフェラルデバイスI/Oアドレス割り込みコントローラ(8259A x 2)0x0020-0x0021, 0x00A0-0x00A1DMA(8237A x 2)0x0080-0x008F, 0x0000-0x000Fハードディスクコントローラ IDE x 20x01F0-0x01F7, 0x0170-0x0177シリアルポート(16550互換 x 2)0x02F8-0x02FF, 0x03F8-0x03FFプリンタポート0x0378-0x037Fフロッピーディスクコントローラ FDC(765A互換)0x03F0-0x03F7Intel系のプロセッサに対して、ARMやモトローラ系のプロセッサ(これらに限らず近年のRISCプロセッサではほぼすべて)ではI/O空間は存在しないため、ペリフェラルのレジスタはメモリ空間に配置される。このことをメモリマップドI/Oと言う。 PCIバスのI/O空間は、I/O空間を持たないプロセッサでは、メインメモリ空間の一部にI/O空間を配置することで実現している。
※この「I/O空間」の解説は、「入出力ポート」の解説の一部です。
「I/O空間」を含む「入出力ポート」の記事については、「入出力ポート」の概要を参照ください。
- I/O空間のページへのリンク