メモリーはCPUが実行するプログラムやデータを保持する大事な部品。また、CPUはメモリーを介して周辺機器の制御も行っている。ではメモリーはどのような構造になっていて、どのようにCPUからアクセスされるのだろうか。周辺機器との関係は?DDRって何のこと?Part1では、メモリーの役割や動作の仕組みについて解説する。

 パソコンはいろいろな部品で構成されるが、その頭脳に相当するCPUは「メモリー空間」のみを読み書きできる(図1図2)。CPUとメモリー空間は、アドレスバス、データバス、制御バスで接続されている。

図1●パソコンのシステム構成図
図1●パソコンのシステム構成図
簡単に書くと、CPUやメモリー(RAM)、周辺機器はマザーボード上ではこのように接続されている。
図2●CPUはメモリー空間のみアクセスできる
図2●CPUはメモリー空間のみアクセスできる
CPUが実際にアクセスできるのは、メモリー空間のみ。ここにはアドレスの指定、データの転送、各種命令の送信を行う3種類のバス(経路)がつながっている。CPUは、これらを通してメモリーにアクセスすることで、プログラムを動かしたり、周辺機器を制御したりする。

 RAMも含めたすべての周辺機器は、CPUからは「仮想的なメモリー」として見える。このメモリー空間は数GBもの広さを持ち、1バイト(8ビット)ごとに番号(番地)が振られている。この番号を「アドレス」と呼び、一般に16進数で表記される。

周辺機器はこう動かす

 メモリー空間には「メインメモリー空間」と「I/Oアドレス空間」の2種類がある(図3)。

図3●CPUがアクセスできるメモリー空間は2種類
図3●CPUがアクセスできるメモリー空間は2種類
メモリー空間はメインメモリー空間とI/Oアドレス空間の2種類。どちらも1バイトごとにアドレスが割り振られている。CPUはアドレスを指定して、特定のメモリーを読み書きする。メインメモリー空間にはプログラムなどが保持され、0番地から約40億番地(4GB)までが利用できる。I/Oアドレス空間は、キーボードなど入出力機器の制御で使われ、0番地から6万5535番地(64KB)までが利用できる。

 メインメモリー空間の構成要素は主に物理メモリー、いわゆるRAMで、プログラムやデータが保持される。メインメモリー空間の大きさはCPUやOSによって異なるが、一般的なWindowsパソコンでは32ビット(2の32乗)、約40億番地(4GB)までのアドレスが扱える。エラーメッセージなどで8けたの16進数が表示されることがあるが、これはエラーを起こした命令などが保持されているアドレスである(図4)。

図4●エラーメッセージにもアドレスが
図4●エラーメッセージにもアドレスが
赤枠の部分はメモリーのアドレスを示している。「0041ee77」番地にある命令を実行したところ、「00000002」番地のデータを読めなかったというエラーを表している。