メモリとストレージ
32ビットのアドレスなら、プロセッサーは4,294,967,296バイト、ちょうど4 GiBを指定できます。電源を切ると、RAMはそのすべてを忘れます。
「私のノートパソコンはメモリが16 GBだから、写真を16 GB保存できる。」この文は2つの別々の部品を取りちがえていて、ノートパソコンの広告そのものがその理由を示しています。広告には、たとえばメモリ16 GB、ストレージ512 GBのように、2つの容量が書かれています。メモリ、つまりRAMは、CPUがいま使っているプログラムとデータを置いておく場所です。ストレージ、つまりSSD(ソリッドステートドライブ)や昔ながらのハードディスクは、電源が切れてもファイルを保存しておきます。写真があるのは512 GBのほうです。16 GBは、写真を編集している間にそれを置いておく作業場所です。
電源が切れるとRAMが忘れる理由
ほとんどのRAMは各ビットを小さな電荷として記録しますが、1秒に何度もリフレッシュしないと電荷は漏れて消えてしまいます。そのため、電源が切れると中身はすべて失われます。これが「揮発性」の意味です。ストレージは電源なしでもデータを保ちます。SSDはフラッシュメモリのセルに電荷を閉じこめて何年も保ち、ハードディスクは回転する円盤の上に、磁化した点としてビットを記録します。ストレージのほうがずっと大きく、1バイトあたりも安いのですが、読み書きにはずっと時間がかかります。そのため、プログラムは実行される前にストレージからRAMへコピーされます。アプリが「読み込み中」と表示している間に起きているのは、このコピーです。
何十億バイトの中から、CPUが1バイトを見つけるしくみ
メモリは長いセルの列で、どのセルにも1バイトが入ります。各セルには0から始まるアドレスという番号があります。読み書きするとき、CPUは何本かの配線にアドレスをのせ、そこに記録されたバイトを受け取ります。アドレスのビット数で、たどり着けるメモリの量が決まります。おもちゃのコンピューターのようにアドレスが4ビットなら、2の4乗 = 16個のセルです。16ビットなら65,536個です。32ビットなら4,294,967,296バイト、ちょうど4 GiBで、だから古い32ビットのシステムは4 GiBを超えるRAMを使えませんでした。いまの64ビットのプロセッサーは、はるかに多くを指定できます。
セルは自分のビットが何を意味するのかまったく知りません。おもちゃのコンピューターで、データのセルにある8ビット00000100は数の4ですが、同じビットを命令として読むとHALT 4という意味になります。どちらになるかを決めるのは、CPUがそのセルにどうたどり着くか、つまり次の命令としてか、命令が指定したデータとしてかだけです。これは、両方を1つのメモリに置くというフォン・ノイマンの考えから直接出てくることです。まちがったアドレスに書きこむバグがプログラム全体を壊しうるのもこのためです。
ドラッグで回転、スクロールまたはピンチで拡大・縮小。
1層下るごとに大きく、遅くなる
速いメモリは高価なので、コンピューターは何層にも分けて使います。回路にいちばん近いのはレジスタで、CPUが直接扱う数十個の値です。おもちゃのアキュムレーターがその例です。次がキャッシュで、プロセッサーのチップ上にある小さな速いメモリです。ふつうL1、L2、L3と呼ばれ、RAMのうち最近使った部分のコピーを持っています。その次がRAM、次にSSDやハードディスク、さらにその先がネットワークです。1層下るごとに大きく、遅くなります。必要なもののほとんどがすでに上の層にあれば、プログラムは速く動きます。データを順番に読むほうが、あちこち飛んで読むよりたいてい速いのはそのためです。
| RAM | 作業用のメモリ。揮発性 |
| SSD | フラッシュ方式のストレージ。電源なしでもデータを保つ |
| アドレス | メモリのセルの番号 |
| キャッシュ | CPUのチップ上にある、最近のデータを持つ小さな速いメモリ |
| レジスタ | CPUそのものの中にある値 |
| 32ビットのアドレス | 4,294,967,296バイト = 4 GiB |
- 「RAMを増やすとCPUが速くなる」 RAMの容量は、クロックも、1回の刻みでする仕事の量も変えません。決めるのは、どれだけのものを手の届くところに置いておけるかです。使うプログラムとデータがすでに収まっているなら、RAMを増やしてもほとんど変わりません。収まらないときは、コンピューターがずっと遅いストレージへ何度も取りに戻ることになり、そのときはRAMを増やすと効果があります。
- 「メモリ16 GBは、16 GB分のファイルを置けるという意味だ」 ファイルはストレージ、つまり広告の512 GBのほうに保存されます。RAMはいま開いているものの作業場所で、電源が切れると空になります。
- 「画面に出ていれば、コンピューターの中に安全に入っている」 開いている文書はRAMにあります。ストレージに保存するまでは、停電や電池切れで消えてしまいます。RAMは揮発性だからです。
- RAMが「揮発性」とはどういう意味ですか?
- 電源が切れると中身を失う
- とても速い
- 1回しか書きこめない
- 回転するディスクに記録される
- 32ビットのアドレスでは何バイトを指定できますか?
- それは何GiBですか?
- 16ビットのアドレスでは、メモリのセルにいくつたどり着けますか?
- おもちゃのコンピューターには8ビットのセルが16個あります。メモリは全部で何ビットですか?
- 電源が切れてもファイルを保存しておくのはどれですか?
- SSD
- RAM
- キャッシュ
- レジスタ
- 速いものから遅いものの順に並べましょう。
- 4 × 3のプログラムが停止したあと、セル13にはどの数が入っていますか?
- おもちゃで、データのセルに00000100が入っています。命令として読むと、どんな意味になりますか?
- HALT 4
- LOAD 4
- STORE 4
- ADD 4
- プログラムが実行前にストレージからRAMへコピーされるのはなぜですか?
- CPUにとってRAMのほうがずっと速くたどり着けるから
- ストレージにはプログラムを置けないから
- RAMは電源が切れてもデータを保つから
- SSDがすぐにすり減ってしまうから
- メモリは番号のついたセル。アドレスがnビットなら2ⁿ個のセルにたどり着ける(32ビット = 4 GiB)。
- 同じビットが命令にもデータにもなる。決めるのは、CPUがどうたどり着くか。
- RAMは揮発性の作業用メモリ。SSDとハードディスクは電源なしでもデータを保つ。
- レジスタ、キャッシュ、RAM、ストレージ:1層下るごとに大きく、遅くなる。
このコースの出典 (9)
- (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
- Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
- IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
- IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
- Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
- Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
- Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
- abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
- John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).
確認日: 2026-10-17