
コンピュータのメモリは、コンピュータ内ですぐに使用できるように、データやプログラムなどの情報を格納します。[ 2 ]コンピュータによってフェッチされた命令、およびそれらの命令によってフェッチされ格納されたデータは、コンピュータのメモリに格納されます。メモリ、メインメモリ、プライマリストレージといった用語も、コンピュータのメモリに対して使用されます。
コンピュータのメモリは、ランダムアクセスメモリを意味するRAMと呼ばれることが多いが、ドラムメモリなどの古いタイプのコンピュータメモリはランダムアクセスではない。メインメモリの古い同義語には、コア(磁気コアメモリの略)やストアなどがある。[ 3 ]
メインメモリは、マスストレージに比べて高速に動作します。マスストレージはメインメモリよりは遅いですが、ビットあたりのコストは低く、容量は大きいです。コンピュータメモリは、開いているプログラムやアクティブに処理されているデータを保存するだけでなく、マスストレージキャッシュおよび書き込みバッファとしても機能し、読み書きパフォーマンスを向上させます。オペレーティングシステムは通常、実行中のソフトウェアで必要とされない限り、キャッシュ用にRAM容量を借ります。 [ 4 ]必要に応じて、コンピュータメモリの内容をストレージに転送できます。これを行う一般的な方法は、仮想メモリと呼ばれるメモリ管理技術を使用することです。
現代のコンピュータメモリは半導体メモリとして実装されており、[ 5 ] [ 6 ]データは集積回路上のMOSトランジスタやその他のコンポーネントから構築されたメモリセルに格納されます。[ 7 ]半導体メモリには、揮発性メモリと不揮発性メモリの2種類があります。不揮発性メモリの例としては、フラッシュメモリ、ROM、PROM、EPROM、EEPROMメモリなどがあります。揮発性メモリの例としては、主記憶装置として使用されるダイナミックランダムアクセスメモリ(DRAM)と、主にCPUキャッシュとして使用されるスタティックランダムアクセスメモリ(SRAM)などがあります。
ほとんどの半導体メモリは、それぞれ1ビット(0または1)を格納するメモリセルで構成されています。フラッシュメモリの構成には、メモリセルごとに1ビットを格納するものと、セルごとに複数のビットを格納できるマルチレベルセルがあります。メモリセルは、1、2、4、8、16、32、64、または128ビットといった固定長のワードにグループ化されます。各ワードはNビットのバイナリアドレスでアクセスできるため、メモリには2 <sup>N</sup>ワードを格納することが可能です。





1940年代初頭、メモリ技術では数バイト程度の容量しか確保できなかった。数千個の真空管を用いた最初の電子式プログラム可能デジタルコンピュータであるENIACは、真空管に格納された10桁の10個の数値20個を用いた単純な計算を実行することができた。
コンピュータメモリにおける次の重要な進歩は、 1940年代初頭にJ・プレスパー・エッカートによって開発された音響遅延線メモリでした。水銀を充填したガラス管の両端に水晶を差し込むことで、遅延線は水銀中を伝搬する音波の形で情報をビット単位で保存することができ、水晶はビットの読み書きを行う変換器として機能しました。遅延線メモリの容量は数千ビットまでに制限されていました。
遅延線に代わる2つの方式、ウィリアムズ管とセレクトロン管は1946年に登場し、どちらもガラス管内の電子ビームを記憶手段として利用していた。フレッド・ウィリアムズは陰極線管を用いてウィリアムズ管を発明し、これが最初のランダムアクセスコンピュータメモリとなった。ウィリアムズ管はセレクトロン管よりも多くの情報を記憶でき(セレクトロン管は256ビットに制限されていたのに対し、ウィリアムズ管は数千ビットを記憶できた)、価格も安かった。しかし、ウィリアムズ管は環境による影響に非常に敏感で、その点が大きな欠点だった。
1940年代後半に不揮発性メモリの開発が始まった。磁気コアメモリは、電源喪失後もメモリの読み出しを可能にした。これは1940年代後半にフレデリック・W・ヴィーヘとアン・ワンによって開発され、 1950年代初頭にジェイ・フォレスターとヤン・A・ライヒマンによって改良され、 1953年にWhirlwind Iコンピュータで商用化された。 [ 8 ]磁気コアメモリは、 1960年代にMOS半導体メモリが開発されるまで、メモリの主流であった。 [ 9 ]
最初の半導体メモリは、 1960年代初頭にバイポーラトランジスタを使用したフリップフロップ回路として実装されました。[ 9 ]ディスクリートデバイスで作られた半導体メモリは、 1961年にテキサス・インスツルメンツから米国空軍に初めて出荷されました。同年、フェアチャイルド・セミコンダクターのアプリケーションエンジニア、ボブ・ノーマンが集積回路(IC)チップ上のソリッドステートメモリの概念を提案しました。[ 10 ]最初のバイポーラ半導体メモリICチップは、 1965年にIBMが発表したSP95でした。 [ 9 ]半導体メモリは磁気コアメモリよりも優れた性能を提供しましたが、サイズが大きく高価であったため、1960年代後半まで磁気コアメモリに取って代わることはありませんでした。[ 9 ] [ 11 ]
金属酸化物半導体電界効果トランジスタ(MOSFET )の発明により、金属酸化物半導体(MOS)トランジスタをメモリセル記憶素子として実用化することが可能になった。MOSメモリは、 1964年にフェアチャイルド・セミコンダクターのジョン・シュミットによって開発された。[ 12 ] MOS半導体メモリは、性能が高いだけでなく、磁気コアメモリよりも安価で消費電力も少なかった。[ 13 ] 1965年、王立レーダー研究所のJ.ウッドとR.ボールは、電源、スイッチングクロスカップリング、スイッチ、遅延線ストレージ用のMOSFETパワーデバイスに加えて、CMOS (相補型MOS)メモリセルを使用するデジタルストレージシステムを提案した。[ 14 ] 1968年にフェアチャイルドのフェデリコ・ファギンによるシリコンゲートMOS集積回路(MOS IC)技術の開発により、MOSメモリチップの製造が可能になった。[ 15 ] NMOSメモリは、1970年代初頭にIBMによって商品化された。 [ 16 ] MOSメモリは1970年代初頭に磁気コアメモリを凌駕し、主要なメモリ技術となった。[ 13 ]
揮発性ランダムアクセスメモリ(RAM)の主な種類は、スタティックランダムアクセスメモリ(SRAM)とダイナミックランダムアクセスメモリ(DRAM)の2つです。バイポーラSRAMは、1963年にフェアチャイルドセミコンダクターのロバート・ノーマンによって発明され[ 9 ] 、続いて1964年にフェアチャイルドのジョン・シュミットによってMOS SRAMが開発されました[ 13 ] 。SRAMは磁気コアメモリの代替品となりましたが、データ1ビットあたり6個のトランジスタが必要です[ 17 ] 。SRAMの商用利用は、IBMがSystem/360 Model 95向けにSP95 SRAMチップを発表した1965年に始まりました[ 9 ]。
東芝は1965年に電子計算機Toscal BC-1411にバイポーラDRAMメモリセルを導入した。 [ 18 ] [ 19 ]バイポーラDRAMは性能が向上したものの、当時主流だった磁気コアメモリの低価格には太刀打ちできなかった。[ 20 ] MOS技術は現代のDRAMの基礎となっている。1966年、IBMトーマス・J・ワトソン研究所のロバート・H・デナードはMOSメモリの研究に取り組んでいた。MOS技術の特性を調べているうちに、コンデンサを構築できること、そしてMOSコンデンサに電荷を蓄積するかしないかでビットの1と0を表現できること、またMOSトランジスタでコンデンサへの電荷の書き込みを制御できることを発見した。これが、単一トランジスタDRAMメモリセルの開発につながった。[ 17 ] 1967年、デナードはMOS技術に基づく単一トランジスタDRAMメモリセルの特許を出願した。[ 21 ]これにより、 1970 年 10 月に最初の商用 DRAM IC チップであるIntel 1103 が登場しました。 [ 22 ] [ 23 ] [ 24 ]その後、同期ダイナミックランダムアクセスメモリ(SDRAM) が1992 年にSamsung KM48SL2000 チップで登場しました。 [ 25 ] [ 26 ]
メモリという用語は、読み出し専用メモリ(ROM) から最新のフラッシュメモリまでを含む不揮発性メモリを指す場合にもよく使用されます。プログラマブル読み出し専用メモリ(PROM)は、1956 年にアメリカのボッシュ・アルマ社のアルマ部門で働いていたウェン・ツィン・チョウによって発明されました。 [ 27 ] [ 28 ] 1967 年にベル研究所のダウォン・カンとサイモン・シーは、 MOS半導体デバイスのフローティングゲートを再プログラム可能な ROM のセルに使用できることを提案し、これが1971 年にインテルのドブ・フローマンによるEPROM (消去可能 PROM)の発明につながりました。 [ 29 ] EEPROM (電気的に消去可能な PROM) は、 1972 年に電気工学研究所の樽井康夫、林豊、永清子によって開発されました。[ 30 ]フラッシュメモリは、1980 年代初頭に東芝の増岡富士夫によって発明されました。 [ 31 ] [ 32 ]増岡らは1984年にNORフラッシュの発明を発表し、[ 33 ]その後1987年にNANDフラッシュを発表した。 [ 34 ]東芝は1987年にNANDフラッシュメモリを商品化した。[ 35 ] [ 36 ] [ 37 ]
技術の発展と規模の経済により、いわゆる超大容量メモリ(VLM)コンピュータ。 [ 37 ]
揮発性メモリは、保存された情報を維持するために電力を必要とするコンピュータメモリです。最新の半導体揮発性メモリのほとんどは、スタティック RAM (SRAM) またはダイナミック RAM (DRAM) です。[ a ] DRAM はデスクトップ システム メモリで主流です。SRAM はCPU キャッシュに使用されます。SRAM は、メモリをあまり必要としない小型組み込みシステムにも使用されています。
SRAMは電源が接続されている限り内容を保持し、よりシンプルなインターフェースを使用できるが、一般的には1ビットあたり6個のトランジスタを使用する。ダイナミックRAMはインターフェースと制御がより複雑で、内容の損失を防ぐために定期的なリフレッシュサイクルが必要だが、1ビットあたり1個のトランジスタと1個のコンデンサしか使用しないため、はるかに高い密度とはるかに低いビットあたりのコストを実現できる。[ 2 ] [ 23 ] [ 37 ]
不揮発性メモリは、電源が供給されていなくても保存された情報を保持できます。不揮発性メモリの例としては、読み出し専用メモリ、フラッシュメモリ、ほとんどの種類の磁気コンピュータ記憶装置(ハードディスクドライブ、フロッピーディスク、磁気テープなど)、光ディスク、磁気ドラム、紙テープ、パンチカードなどの初期のコンピュータ記憶方式などがあります。[ 37 ]
開発中の不揮発性メモリ技術には、強誘電体RAM、プログラマブルメタライゼーションセル、スピン伝達トルク磁気RAM、SONOS、抵抗変化型ランダムアクセスメモリ、レーストラックメモリ、ナノRAM、3D XPoint、およびミリピードメモリなどがある。
メモリの3つ目のカテゴリーは半揮発性メモリです。この用語は、電源が切断された後も一定期間不揮発性を維持するものの、最終的にはデータが失われるメモリを指します。半揮発性メモリを使用する際の一般的な目的は、不揮発性メモリの利点を一部備えつつ、揮発性メモリに見られるような高い性能と耐久性を実現することです。
例えば、一部の不揮発性メモリタイプは書き込み時に摩耗します。摩耗したセルは揮発性が増加しますが、それ以外は動作し続けます。そのため、頻繁に書き込まれるデータ箇所は、摩耗した回路を使用するように指定できます。既知の保持時間内にその箇所が更新される限り、データは有効なままです。更新されない期間が経過すると、値はより摩耗が少なく保持時間の長い回路にコピーされます。最初に摩耗した領域に書き込むことで、摩耗していない回路の摩耗を回避しながら、高い書き込みレートを実現できます。[ 38 ]
2つ目の例として、STT-RAMは大きなセルを構築することで不揮発性にすることができますが、そうするとビットあたりのコストと電力要件が増加し、書き込み速度が低下します。小さなセルを使用すると、コスト、電力、速度は改善されますが、半揮発性になります。一部のアプリケーションでは、揮発性の増加を管理することで、不揮発性メモリの多くの利点を得ることができます。たとえば、電源を切断してもデータが失われる前に強制的にウェイクアップさせる、または読み取り専用データをキャッシュし、電源オフ時間が不揮発性のしきい値を超えた場合はキャッシュされたデータを破棄するなどです。[ 39 ]
半揮発性という用語は、nvSRAMのように、 SRAMと不揮発性メモリを同じチップ上に組み合わせた他のメモリタイプから構成される半揮発性の動作を説明するためにも使用されます。nvSRAM では、外部信号によって揮発性メモリから不揮発性メモリにデータがコピーされますが、コピーが行われる前に電源が切断されるとデータが失われます。別の例として、外部電源が失われた場合にメモリデバイスに電力を供給するために外部バッテリーを使用するバッテリーバックアップ RAMがあります。長時間電源がオフになると、バッテリーが切れてデータが失われる可能性があります。[ 37 ]
コンピュータシステムが正常に動作するためには、メモリの適切な管理が不可欠です。最新のオペレーティングシステムは、メモリを適切に管理するための複雑なシステムを備えています。メモリ管理を怠ると、バグが発生したり、動作が遅くなったりする可能性があります。
メモリの不適切な管理は、以下のような種類のバグやセキュリティ脆弱性の一般的な原因となります。
仮想メモリは、物理メモリがオペレーティングシステムによって管理されるシステムであり、通常は多くの最新のCPUの一部であるメモリ管理ユニットの支援を受けて管理されます。これにより、複数の種類のメモリを使用できます。たとえば、一部のデータはRAMに格納され、他のデータはハードドライブ(たとえばスワップファイル)に格納され、キャッシュ階層の拡張として機能します。これにはいくつかの利点があります。コンピュータプログラマは、データが物理的にどこに格納されているか、またはユーザーのコンピュータに十分なメモリがあるかどうかを心配する必要がなくなります。オペレーティングシステムは、アクティブに使用されるデータをRAMに配置します。RAMはハードディスクよりもはるかに高速です。RAMの量が現在のすべてのプログラムを実行するのに十分でない場合、コンピュータがタスクを実行するよりも、RAMからディスクにデータを移動して戻すのに多くの時間を費やす状況が発生する可能性があります。これはスラッシングとして知られています。
保護メモリとは、各プログラムに専用のメモリ領域が割り当てられ、その範囲外へのアクセスが制限されるシステムです。オペレーティングシステムが、プログラムが自身のものではないメモリ領域を変更しようとしたことを検出すると、そのプログラムは終了(または制限もしくはリダイレクト)されます。このようにして、問題のあるプログラムのみがクラッシュし、他のプログラムは(意図的か偶発的かを問わず)その不正動作の影響を受けません。保護メモリを使用することで、コンピュータシステムの信頼性とセキュリティが大幅に向上します。
メモリが保護されていない場合、あるプログラムのバグによって別のプログラムが使用するメモリが変更される可能性があります。これにより、別のプログラムが破損したメモリ上で動作することになり、予期せぬ結果が生じる可能性があります。オペレーティングシステムのメモリが破損すると、コンピュータシステム全体がクラッシュし、再起動が必要になる場合があります。プログラムが意図的に他のプログラムが使用するメモリを変更することもあります。これは、コンピュータを乗っ取るためにウイルスやマルウェアが行う行為です。また、他のプログラムを修正することを目的とした、例えばブレークポイントやフックを挿入するデバッガなどの善意のプログラムによって、無害な目的で使用される場合もあります。
最小パターンサイズ8μmの6マスクシリコンゲートP-MOSプロセスで製造されました。その結果、2,400μmのメモリセルサイズ、10mm²弱のダイサイズを持つ製品が、約21ドルで販売されました。
最初の商用同期DRAMであるSamsung 16-Mbit KM48SL2000は、システム設計者が非同期システムから同期システムへ容易に移行できるシングルバンクアーキテクチャを採用している。
32 ビット システムでは
最大 32 GB、 64 ビット システムでは最大 2 TB の非常に大きなメモリ (VLM) 構成によるクラスタリングをサポートしています。