1. メモリの 1ビットは、なにで できて いるの?
1. 0と1を覚えているのは、電気をためる小さな部品
1. DRAMの1ビット ── 1個のコンデンサと1個のトランジスタ
メモリの なかには、小さな いれものが、ものすごい かずで ならんで います。1つの いれものが おぼえられるのは、「0」か「1」の どちらか 1つだけです。
いれものの しょうたいは、でんきを ためる 小さな 部品(コンデンサ)です。でんきが たまって いれば「1」、たまって いなければ「0」と きめて います[1]。
いれものは、1ビットに つき 1こ です。ですから 8ギガバイトの メモリなら、けいさんの うえでは 600おこ を こえます。ただし これは、ようりょうから もどして 出した かずです。
メモリのチップの中には、小さな入れ物がびっしり並んでいます。1つの入れ物が覚えられるのは、0か1のどちらか1つ、つまり1ビットです。
DRAMと呼ばれるこのメモリでは、1ビットごとに、電気をためる小さな部品(コンデンサ)を1個使います。電気がたまっていれば1、たまっていなければ0です[1]。スイッチの役目をするトランジスタも1個ついていて、コンデンサとデータの通り道の間を、出し入れのときだけつなぎます[5]。
1ビットに1個ですから、数は途方もなくなります。8GiBのメモリなら、8×2の30乗×8=68,719,476,736ビット、およそ687億ビットぶんの入れ物です。10進の8GBで数えても640億です。どちらも容量から逆算した計算値で、実際のチップとは少しちがうことがあります。
2. ためた でんきは、ほうって おくと どうなるの?
2. ためた電気は漏れる。だから規格では1秒に15回あまり書き直す
2. 電荷の漏れとリフレッシュ ── DDR4の64ミリ秒
ためた でんきは、すこしずつ もれて いきます[2][4]。「1」の はずの いれものが、ほうって おくと「0」に なって しまうのです。
小さな バケツを おもいうかべて ください。みずが 入って いれば「1」です。でも バケツには あなが あって、みずが すこしずつ へります。だから だれかが ぐるぐる まわって、へって きた バケツに みずを たして いく ひつようが あります。ただし ほんとうの メモリでは、みずでは なく でんきを つかって います。
メモリも おなじです。ふつうの DDR4では、それぞれの ぶぶんを 64ミリびょうより みじかい あいだに 1かい かきなおします[3]。1びょうに なおすと、15かいより ちょっと 多い かずです。ただし あつい ときは もっと みじかく なるなど、きかいや おんどで かわる ことが あります。
だから でんげんを きると、メモリの なかみは きえます。かきなおす ことも できなく なるからです[4]。
コンデンサにためた電気は、時間がたつと自然に漏れていきます[2][4]。1のつもりで入れた電気が減れば、0と区別がつかなくなります。
そこでDRAMは、決まった間隔で中身を読み出し、同じ内容を書き直します。これをリフレッシュといいます。解説記事には、数十ミリ秒といった短い周期と書かれています[2]。一般的なDDR4では、標準的な温度のとき、各行を64ミリ秒以内に1回リフレッシュします。8192回に分けるので、約7.8マイクロ秒ごとに命令を出す計算です[3]。
64ミリ秒は、1秒の約15.6分の1です。逆にいえば1秒に15.6回ほど、メモリのどこかの行が書き直され続けています。ただしこれは標準的な値で、高温になると間隔は短くなり、実際の機器でも変わります[3]。
電源を切ると消えるわけ
電気が漏れるうえに、電源が切れれば書き直しもできません。だからDRAMの中身は、電源を切ると消えます。このような性質のメモリを揮発性メモリと呼びます[4]。
コンデンサの電荷は保たれない。自然に漏れるため、DRAMはセルを定期的に読み出して書き直すリフレッシュを必要とする[2]。周期について、解説記事は数十ミリ秒程度の短い間隔と説明する[2]。一般的なDDR4では、標準的な温度範囲で各行を64ミリ秒(tREFW)以内に1回リフレッシュし、これを8192回に分けて配るので、約7.8マイクロ秒(tREFI)ごとにリフレッシュ命令が出る[3]。
64ミリ秒は、1秒あたり約15.6回にあたる(計算値)。ただしこれは標準的な条件の値で、高温では間隔が短くなり、実機によっても変わりうる。周期の書き方は資料によってばらつきがあるため、このメモでは「1秒に15回あまり」にとどめる。
この性質は、揮発性という言葉で説明される。電荷が漏れ、しかも電源がなければ書き直しもできないので、電源を切るとデータは消える[4]。
手間のかかるこの方式を、なぜ主記憶は選んだのか。
3. もれる 部品なのに、どうして つかわれて いるの?
3. トランジスタを6個から1個に減らし、磁石の輪に挑んだ
3. 磁気コアからDRAMへ ── 部品数と価格の競争
もれる 部品を つかうなんて、ふしぎです。むかしの メモリは、ちがう つくりでした。
小さな じしゃくの わを 1つずつ つなげて、1つの わで 1ビットを おぼえて いました。じしゃくの むきで、0か 1を あらわします[1]。
1966ねんの あき、アメリカの IBMの ロバート・デナードは、けんきゅうの はっぴょうを 聞いた よるに、「でんきを ためて おぼえたら どうか」と 思いついた と つたえられて います[6]。はんどうたいの メモリには、1ビットに トランジスタ 6こを 使う つくりも ありました。それを 1こに へらしたのです[5]。
そのあと、はんどうたいの メモリが 1ビット 1セントほどの ねだんで 売られ、じしゃくの わに かわって いきました[7]。
電気が漏れる部品を、なぜ使うのでしょうか。それ以前の主記憶は、別の作りでした。磁気コアと呼ばれる小さな磁石の輪です。1個の輪が1ビットを受け持ち、磁石の向きで0と1を分けていました[1]。
一晩の着想
1966年の秋、IBMのロバート・デナードは、磁気コアメモリなど当時の記憶に関する研究発表を聞いた夜、電気をためて1ビットを記憶する案を思いついたと伝えられています[6]。半導体メモリには、1ビットにトランジスタ6個を使う作りもありました。デナードの案は、それをトランジスタ1個とコンデンサ1個にしました[5]。特許になったのは1968年ですが、年は資料で1年ほどずれるので、1960年代後半と考えておくのが安全です[5]。
値段の勝負に勝った
1970年に売り出されたインテルの半導体メモリは、1ビット1セントという値段でした。磁気コアに本格的に挑んだ最初の半導体メモリで、やがて主記憶で磁気コアを置き換えました[7]。ただしこの製品は、デナードの1個型ではありません。1個型を使った4キロビットのチップが複数の会社から作られたのは、1970年代半ばのことです[5]。
それ以前の主記憶は磁気コアだった。磁気の輪1個が1ビットを、磁界の向きで記憶する[1]。これに対し、1966年秋にIBMのロバート・デナードが、当時の記憶の研究発表を聞いた夜に、電荷をコンデンサにためて1ビットとする案を思いついたと伝えられる[6]。半導体メモリには1ビットあたりトランジスタ6個のセルを使う型もあり、これを1個のトランジスタと小さなコンデンサに置き換えたのが要点である[5]。特許の年は資料により1967〜1968年とずれるため、ここでは1960年代後半とする。
ただし、置き換えを進めたのは着想の新しさだけではなかった。コンピュータ歴史博物館の解説では、1970年発売のインテル1103(1024ビット)が、1ビット1セントという価格で磁気コアに挑んだ最初の有力な半導体メモリで、やがて主記憶で磁気コアを置き換えたと説明される[7]。つまり勝負を分けたのは価格だった。
ここで注意がいる。1103のセルはトランジスタ3個の型で、デナードの1個型ではない。1個型を使う4キロビットのチップが複数社から作られたのは1970年代半ばとされる[5]。細かな年は、出典によって数年ずれることがある。
こうして電気の入れ物が主記憶の主役になると、次の疑問が出る。その容量が足りなくなると、なぜ体感が遅くなるのか。
4. メモリが たりないと、どうして おそく なるの?
4. メモリが足りなくなると、ストレージまで使い始める
4. 主記憶と補助記憶 ── 仮想メモリが遅い理由
プログラムや しりょうは、ふだんは ハードディスクや SSDに しまって あります。つかう ときは、いったん メモリに もって きます[9]。
メモリが いっぱいに なると、パソコンは あまり つかって いない ものを ハードディスクなどに うつして、ばしょを あけます[8]。でも ハードディスクは メモリより おそいので、ぜんたいが おそく 感じられやすく なります[8]。
メモリは 足りない ときに はじめて 大切さが 分かる 部品、なのかも しれません。
メモリが足りなくなると、OSは一部のデータをHDDなどに移し、使うときに読み戻すので、遅く感じやすくなります。
使いたいデータは、ふだんはHDDやSSDなどの補助記憶に入っています。データはふつう、使うときにいったん主記憶(メモリ)へ読み込まれて処理されます[9]。補助記憶は大容量で遅く、電源を切っても残ります。
メモリの容量には限りがあります。足りなくなると、OSは使用頻度の低いデータを、HDDなどにあるページファイル(スワップファイル)へ移すことがあり、場所を空けます。このしくみを使った仮想メモリは、物理メモリよりも遅く、使う量が増えるほど、利用者は性能の低下を感じやすくなります[8]。
ストレージへの出し入れに時間がかかるためです[8]。メモリが広いと快適に感じるのは、この出し入れが減るからだと考えられます。
使うデータはふつう補助記憶(HDD・SSDなど)から主記憶へ読み込まれて処理され、補助記憶は大容量で遅く、電源を切っても残る[9]。これが主記憶と補助記憶の役割分担である。
主記憶が足りなくなると、OSは使用頻度の低いデータをストレージ上のページ(スワップ)ファイルへ移すことがあり、空いた領域を確保する。仮想メモリと呼ばれるこの仕組みは、ストレージへのアクセスに時間がかかるため物理RAMより遅く、使用量が増えるほど体感性能が下がりやすい[8]。
このため、メモリの容量は「多いほど何でも速くなる」という単純な数字ではなく、ストレージへ出入りする回数を減らす余裕として働くと読める。ただしこれは資料の説明からの解釈で、実際の効果はOSやアプリの使い方による。
5. じぶんの パソコンの メモリを しらべて みよう
5. 自分の機器のメモリ容量を、ビットで数えてみる
5. 出口 ── 手もとの機器の容量と、原典の読みどころ
おうちの パソコンや スマホの「せってい」がめんに、メモリ(RAM)の 大きさが かいて ある ことが あります。「8ギガバイト」と あれば、1ギガバイトは およそ 80おくビットなので、8ばいに して みましょう。640おくビット ほどに なります。
のって いなければ、おうちの 人に 聞いて みても いいですし、しらべなくても かまいません。数の 大きさを 思いうかべるだけでも、小さな いれものが どれだけ ならんで いるか 感じられます。
パソコンやスマホの設定画面には、メモリ(RAM)の容量が書いてあることがあります。「8GB」なら、1GBを約80億ビットとして8倍すると約640億ビットです。この記事で使った8GiBの687億とは、10進と2進の数え方の差で7%ほどずれます。
表示の場所は機種によってちがうので、見つからなければ取扱説明書やメーカーのサイトを見ます。「リフレッシュ」や「仮想メモリ」といった言葉で調べると、日本語の解説も探せます。
手もとの機器の設定画面に、メモリ容量が出ていれば、ビット数に直して数を実感できる。8GBなら640億ビット、8GiBなら約687億ビットで、約7%の差が出る。表示は機種で異なるので、仕様書で単位を確かめるとよい。
原典を読むなら、IEEE Spectrumの解説[1]が、磁気コアからDRAMへの流れを英語で通して読める。DDR4のリフレッシュ周期は、論文[3]が扱うtREFI・tREFWの表記で確かめられる。メモリの規格の数字は機種や温度で変わるので、自分の機器の資料と読み比べると面白い。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
本文で使った事実の出どころです。番号は本文の[ ]に対応します。
- IEEE Spectrum "Thanks for the Memories" https://spectrum.ieee.org/thanks-for-the-memories (1ビット1コンデンサ・磁気コア)
- Mukundan ほか(arXiv 1712.08304)https://arxiv.org/pdf/1712.08304 (DDR4の64ミリ秒と7.8マイクロ秒)
- jisaku.com「DRAMのしくみ」 https://jisaku.com/posts/how-dram-memory-works (電気が漏れる・揮発性)
- Lemelson-MIT "Robert Dennard" https://lemelson.mit.edu/resources/robert-dennard (1個型セルの発明と広まり)
- IBM Research "Bob Dennard in memoriam" https://research.ibm.com/blog/bob-dennard-in-memoriam (着想の逸話)
- Computer History Museum "1970 MOS Dynamic RAM" https://www.computerhistory.org/siliconengine/mos-dynamic-ram-competes-with-magnetic-core-memory-on-price/ (価格競争と置き換え)
- IBM Think「仮想メモリー」 https://www.ibm.com/jp-ja/think/topics/virtual-memory (スワップと速度低下)
- Wikibooks 初級システムアドミニストレータ コンピュータシステム Wikibooks(コンピュータシステム) (主記憶と補助記憶の役割)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。