メモリアドレス わかりやすく
前のレッスンで、記憶のマスをたくさん集めるとメモリになると話しました。では、そのたくさんのマスの中から、目当てのたった一つのマスにどうやって一気にたどり着くのでしょうか。
マスが多すぎると見つけられない
記憶のマスは数十億個にもなります。
では、これほど多くのマスの中から、「さっき保存したあの値」がどのマスにあるのかを、どうやってもう一度見つけるのでしょうか。
マスには名前もなく、見た目もまったく同じなのに。
どのマスも同じ見た目なので、一つだけを選び出す方法がありません。
何万冊もの本が番号もなしにでたらめに並んだ図書館を思い浮かべてください。
目当ての本を見つけるのは、ほとんど不可能です。
メモリも同じ問題を抱えているので、解決策が必要です。
すべてのマスに番号をつける
解決策は、プールのロッカーと同じです。
同じ形のロッカーには、0番、1番、2番と番号がついています。
メモリも、すべてのマスに順番に番号をつけておくのです。
上はマスの番号(アドレス)、下はそのマスに入っている値。
この番号をアドレスと呼びます。
家ごとに住所があるから郵便物が正しく届くように、マスごとにアドレスがあれば、目当てのマスに正確にたどり着けます。
アドレスを呼べば、そのマスへ
アドレスがあれば、探すのは一瞬です。
「3番のマスの値を持ってきて」と言えば、メモリはまっすぐ3番のマスへ行って中の値を取り出します。
マスが数十億個あっても、番号さえわかれば一度で着きます。
下でアドレスを入れて「読み出し」を押すと、そのマスの値が表示されます。
アドレスを入れると、そのマスへ行きます。
番号一つで目当てのマスにすぐ行けること、これがメモリの速さの秘密です。
最初から一つずつ数えずに、アドレスでまっすぐ指し示すからです。
目当てのマスに値を入れる
取り出すだけではありません。
「5番のマスにこの値を入れて」と言えば、そのマスに値が保存されます。
読み出しはアドレスで取り出すこと、書き込みはアドレスで入れることです。
この二つが、メモリのする仕事のすべてです。
アドレスを決めて値を入れます。
アドレスで読んで、アドレスで書く。単純です。
けれども、この単純な二つの動きが、あらゆるプログラムの土台なのです。
変数も写真も、どんなものでも、結局はこうしてアドレスで出入りしています。
CPUはアドレスで頼む
ここで全体像を見てみましょう。
計算をするCPUは、値が必要になるとメモリにアドレスで頼みます。
「3番の値をちょうだい、この結果は7番に入れて」という具合です。
CPUとメモリは、こうしてアドレスをやりとりしながら仕事を進めていきます。
アドレスでやりとりします。
これで、コンピュータという体の土台をひと回りしました。
0と1から始まって、計算し、記憶し、アドレスでたどり着くところまで来ました。
次のレッスンからは、これらの部品がどうやって本物の命令に従うのかを見ていきます。