メモリ(RAM)動作の原理:構造と読み書きの仕組み

メモリ(RAM)チップの構造
メモリー(RAM)は1つのモジュール(基板)に複数のDRAMチップが搭載されています。
DRAM(Dynamic Random Access Memory)とはデータを保存するための半導体チップを指します。1つの基板に複数のチップを搭載することで、必要な総容量を確保しています。また、メモリチップを並列接続することで、メモリ全体で一度に処理できるデータ量を増やし、データ転送速度が向上するメリットもあります。
その他にも、基板上には電源供給や信号制御のための回路やコンポーネントが配置されています。さらに、メモリーの核であるDRAMチップに着目していきましょう。
DRAMチップは「データ(情報)を記憶する半導体チップと、チップを保護するパッケージ樹脂」から構成されます。
半導体チップを樹脂で封止することで、物理衝撃や水分といった外部環境からチップを保護しています。半導体基板(シリコン基板)の上には、データを読み書きするためのセルが配置されています。
データを保存するセルは、以下の要素で構成されています。
- ワード線:アクセスする行を指定する線
- ビット線:アクセスする列を指定する線
- キャパシタ:データ(電荷)を保存する領域
- トランジスタ:キャパシタとビット線を接続するスイッチ
ワード線とビット線で選択されたセルをトランジスタを介して読み書きすることができます。
メモリの動作原理:CPUとの連携

(出典:FUJITSUの資料を基に筆者作成)
メモリ(RAM)は、CPUからの制御信号を受け取り、その指示に従って必要なデータの読み込み・書き込みを行っています。
CPUとメモリ間では、データのやり取りを行うバス(コンピュータの内部でデータをやり取りするための伝送路)があります。バスは大きく分けて、以下の3つに分類されます。
- データバス (Data Bus)
- アドレスバス (Address Bus)
- コントロールバス (Control Bus)
データを実際に転送するためのバス。CPUとメモリ間でデータをやり取りします。
メモリ上でデータを読み書きする場所を指定するバス。CPUがアクセスするメモリのアドレス(位置)を送信し、メモリモジュール内のどのチップ、さらにそのチップ内のどのセルにアクセスするかを指定します。
データやアドレスの転送を制御する信号を送るバス。CPUからメモリに対して、読み込みや書き込み、データ転送の開始などの命令を伝えます。
CPUはこれらのバスを通じて、メモリのデータのアドレスを指定し、必要なデータの読み書きを行っています。メモリには制御回路、デコーダ、入出力回路が備わっており、それぞれ以下の役割を有しています。
- 制御回路 (Control Circuit)
- デコーダ (Decoder)
- 入出力回路 (I/O Circuit)
CPUの指示に基づき、メモリや他のデバイスとのデータ転送を調整・管理する回路。読み書きの操作やタイミングを制御し、バスを通じてデータの移動を指示します。
CPUから送られたアドレス信号を解読し、どのメモリの位置にアクセスするかを決定する回路。アドレス信号を解析して、メモリ内の正しい場所にアクセスできるようにします。
外部デバイスとのデータのやり取りを行う回路。CPUと外部デバイス間での入力や出力を制御し、必要なデータを転送する役割を担います。
これらの回路・バスが動作し、メモリ(RAM)に必要なデータが読み書きされていきます。メモリの動作挙動は以下の通りです。
- メモリへの読み書き要求
- アドレス信号の送信
- デコーダによるアドレスの解読
- 制御信号の送信
- 入出力回路とのデータ転送開始
- データの読み込み(読み取り)
- データの書き込み
- 処理完了の通知
CPUはアドレスバスを使用して、メモリの位置を指定し、コントロールバスで「読み込み」または「書き込み」の操作を指示します。
CPUはアドレスバスを通じて、メモリにアクセスするアドレスを送信します。
デコーダがアドレス信号を解読し、メモリ内の正しい位置を特定します。
コントロールバスを通じて、CPUは「読み込み」または「書き込み」の制御信号を送信します。
CPUはデータバスを使用して、入出力回路を通じてデータの転送を開始します。
メモリからデータを読み取る場合、メモリは指定されたアドレスからデータをデータバスに転送し、CPUが受け取ります。
メモリにデータを書き込む場合、CPUはデータバスを通じてデータを送信し、メモリはそのデータを指定されたアドレスに書き込みます。
データ転送が完了すると、CPUはコントロールバスで処理終了信号を送信し、次の処理へ移行します。
この一連の流れにより、CPUとメモリは効率的にデータのやり取りを行い、システム全体の動作を支えています。