メモリデータレジスタ【MDR】Memory Data Register
概要

CPU内部には、制御回路や演算回路から直接読み書きできる高速な記憶回路である「レジスタ」(register)が数個から数十個用意されている。それぞれ用途ごとに役割が分かれており、メモリデータレジスタはこのうちメモリへ書き込むデータや、メモリから読み込んだデータを格納するためのものである。
メモリデータレジスタは、メモリ上の番地を指定する「メモリアドレスレジスタ」(MAR:Memory Address Register)と組み合わせて利用される。メモリからデータを読み出す際はMARに対象の番地をセットして読み出し信号を送ると、その番地のデータがメモリデータレジスタへ転送される。
書き込みを行う際は、MARに書き込み先の番地を、メモリデータレジスタに書き込む内容をそれぞれセットした上で書き込み信号を送る。これにより、メモリデータレジスタ内のデータが指定された番地へ転送され、メモリに記録される。CPU内部の演算回路は、メモリデータレジスタを介してデータを受け取り、計算や命令の実行に利用する。
メモリデータレジスタが扱う対象はデータに限らない。プログラムの命令もメモリ上ではデータとして格納されているため、命令を取り出す際にも一度メモリデータレジスタを経由してCPU内部へ送られ、その後、命令レジスタへ転送されて解読・実行される構成を採るプロセッサが多い。なお、実際のCPU製品では、内部構成の違いや性能向上のための工夫により、メモリデータレジスタが独立したレジスタとして実装されない場合もある。キャッシュメモリや複数の内部バス、パイプライン処理などを備えたプロセッサでは、同等の機能が別の回路やバッファに組み込まれていることもある。
(2026.7.5更新)