Random Access Memory

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索
RAMの種類。上からDIP、SIPP、SIMM 30ピン、SIMM 72ピン、DIMM (SDRAM)、DIMM(DDR-SDRAM)

Random Access Memory(ランダムアクセスメモリ、RAM、ラム)は、コンピュータで使用するメモリの一分類。随時アクセスメモリともいう。格納されたデータに任意の順序でアクセスできる(ランダムアクセス)。「ランダム」ということは、データのどんな断片でも、その物理的位置や前後のデータとの関係に関わらず、一定の時間で参照できることを意味する。

目次

[編集] 概説

アドレス信号によって番地情報を与えることにより任意の番地のメモリーセルに対して読み出しや書き込みといった操作が出来る記憶装置である。RAMとは異なり、磁気テープのように記憶情報が順番に格納されていて所要の番地への操作を行なうには順番待ちをしなければならない記憶装置があり、これら逐次アクセスメモリ(Sequential access memory、SAM)と呼ばれる。

RAMという言葉自体に読み書き(Read/Write)可能という意味はないが、読み書き共にランダムアクセスが可能なものに限ってRAMと呼び、製造時や使用初期に一度書き込まれた情報は、以後は読み出しのみが可能となる読み出し専用メモリ(Read only memory、ROM、ロム)と対比されることが多い。また、半導体ROMも広義のRandom access memoryであるため、ROMと区別する意味でRWM(Read write memory)と呼ばれることもある。ROMは電源を供給しなくても記憶内容を保持する不揮発メモリ(NVM: Non Volatile Memory)であるが、RAMはほとんどが(MRAM, FeRAMなどを除き)電源の供給を絶つと記憶内容が失われる揮発メモリ(Volatile Memory)である。同じく不揮発性メモリのフラッシュメモリも厳密にはRAMである。

半導体RAMは、記憶方式、構造などにより数多くの分類がされているが、大きくはDRAM(Dynamic RAM、ディーラム)とSRAM(Static RAM、エスラム)に大別される。

[編集] DRAMとSRAM

DRAMは、記憶データをコンデンサ(キャパシタ)の電荷として蓄えているため、一定時間経つと自然放電によりデータが消えてしまう。このため情報を維持するために定期的に情報を読み出し、再度書き込みをする必要がある。この動作をリフレッシュといい、記憶を保持するのに1秒間に数十回の頻度で繰り返しリフレッシュを行う必要があることからダイナミック(=動的)RAMと呼ばれるようになった。アドレスを指定してからデータを読み出すまでの時間はSRAMよりも若干遅いものの、記憶部の構造が単純で、容量あたりのコストが安いと言う特徴がある。DRAM のアクセス方式によって様々な種類のものが市販されている。常にリフレッシュを行っているため、SRAMに比べ消費電力が高い。

SRAM は記憶部にフリップフロップ回路を用いており、リフレッシュ動作が必要ない。原理的にDRAMより高速動作させることができるが、記憶部の回路が複雑になるため容量あたりのコストが高い。DRAMに比べ、低速動作では消費電力が低い。電気回路のかわりに記憶素子として磁性体を用いる MRAM も SRAM の一種である。

[編集] 歴史

コンピュータの読み書き可能な記憶装置としては、古くは水銀遅延線が使われ(水銀遅延線はSAMの分類になる)、その後1949年から1952年に磁気コアを用いた磁気コアメモリが開発され、使用されていた。コアメモリでは格子状に配置した磁気コアと呼ばれるリング状の磁性体に縦と横方向から電線を貫いた構造をしていた。磁気コアメモリは集積回路によるRAMが登場する1960年代末から1970年代初頭まで広く使われていた。放射線などの影響を受けにくいため、宇宙開発などではもっと最近まで用いられていた。磁気コアメモリ以前には水銀遅延線以外にもリレー真空管主記憶装置として使われた例がある。ランダムアクセス性は初期のコンピュータでは必ずしも必須とされていなかった。

21世紀の現在ではコンピュータの主記憶装置のRAMはすべてDRAMになっている。DRAM以外にもいくつかの新たな不揮発性RAMの研究開発が進んでいる。カーボンナノチューブを使ったもの[1]や、トンネル磁気抵抗効果を使ったMRAMがある。2004年にはインフィニオン・テクノロジーズが16MiBのMRAM試作品を公開した。現在開発が進んでいる第二世代の技術は、Thermal Assisted Switching (TAS) 方式[2]Spin Torque Transfer (STT) 方式があり、前者はベンチャー企業1社の開発だが、後者はIBMなどを含め複数の企業が開発に乗り出している[3]。これらが今後の主流となるかどうかはまだ不透明である。

主記憶装置において、アクセススピード・容量あたりコストと並んで重要なのは消費電力である。過去の組み込みシステムにおいては消費電力を抑えるためにSRAMが用いられていたが、近年は低消費電力に特化したDRAMが使われる。サーバファームなどでは高速性よりも消費電力を抑えることに重点を置いた、"EcoRAM" と呼ばれるRAMも登場している[4][5]

[編集] RAMの種類

[編集] 半導体RAM

[編集] 半導体以外のRAM

半導体RAM以前に使われていたRAMには次のようなものがある。

[編集] メモリの階層

多くのコンピュータシステムは、レジスタを頂点として、マイクロプロセッサチップ上のSRAMキャッシュ、外部キャッシュメモリDRAMページングシステムハードディスク上のスワップファイル仮想記憶)というメモリ階層を持っている。この階層全体を指して "RAM" と呼ぶこともあるが、各階層のアクセス時間は大きく異なり、RAMの「ランダムアクセス」という概念の本来の意味にも反している。DRAMという階層だけを見てもアクセス時間にはバラつきがあるが、その範囲は回転式の電子媒体磁気テープほど大きくはない。メモリ階層を使う目的は、メモリシステム全体のコストを最小化しつつ、平均的なアクセス性能を向上させることにある。一般にレジスタが最も高速であり、階層を下に行くほどアクセス時間が大きくなる。

[編集] メモリとCPUの速度差

CPUと主記憶装置のメモリの間の速度差は広がりつつある。最大の問題はチップとチップの間のデータ転送帯域幅に限界があることである。1986年から2000年まで、CPUの性能は年率平均で55%向上したのに対して、メモリの性能向上は年率で10%ほどである。この傾向から、メモリレイテンシがコンピュータ全体の性能においてボトルネックになるだろうと予想されていた[6]

その後、CPUの性能向上は鈍化した。これは1つには微細化による性能向上が物理的限界に近づいているということと、発熱の問題もあるが、同時にメモリとの速度差を考慮した結果でもある。インテルはその原因について次のように分析している[7]

まず第一に、チップが微細化しクロック周波数が上がると、個々のトランジスタのリーク電流が増大し、消費電力の増大と発熱量の増大を招く(中略)第二にクロック高速化による利点はメモリレイテンシによって一部相殺される。つまりメモリアクセス時間はクロック周波数の向上に合わせて短縮することができなかった。第三に、これまでの逐次的アーキテクチャでは、ある種のアプリケーションはプロセッサが高速化したほど性能が向上しなくなっている(フォン・ノイマン・ボトルネック)。さらに、集積回路が微細化するとコイルは場所をとるためインダクタンスを付与できず、信号伝送におけるRC遅延が大きくなる。これも周波数向上を阻害するボトルネックの1つである。

信号伝送におけるRC遅延については Clock Rate versus IPC: The End of the Road for Conventional Microarchitectures にもあり、2000年から2014年のCPUの性能向上は最大でも年率平均で12.5%という見積もりが示されている。インテルのデータを見ても[8]、2000年以降のCPUの性能向上が鈍化したことは明らかである。近年のインテルのプロセッサはクロック周波数を上げずに、その他のアーキテクチャ上の改良で性能を向上させている。

[編集] セキュリティ上の懸念

実は、SDRAMの記憶した内容は電源を切ってもすぐには消えない。それでも常温では数秒で消えてしまうが、より低温では数分にまで消えるのを延ばすことができる。そこで、この事実を利用して直前まで動作していたメモリ上のデータを復元して盗むという手法が考えられる[9]。これを「コールド・ブート攻撃」あるいは「アイスマン攻撃」などと呼ぶこともある。

[編集] "RAM" と言う用語のその他の用例

[編集] DVD-RAM

単にRAMといえば、暗黙のうちに半導体メモリのRAMを意味することが多い。ハードディスクなどの2次メモリは、RAMの定義を満たしていても、通常はRAMとは呼ばれない。しかし、DVD-RAMのような例外もある。

しかし、冒頭での「ランダム」の定義に照らせば、磁気ディスク光ディスクといった記憶媒体は物理的に回転させてヘッド部に該当箇所が来ないとアクセスできず、一定時間でのアクセスは保証できない。一般に実際のデータ転送よりも該当位置にアクセスできるようになるまでの時間のほうがかかり、その時間はそのときのヘッドとの物理的位置関係に依存する。

[編集] RAMディスク

ソフトウェアによりコンピュータの主記憶の一部を別個に確保し、高速なハードディスクのようにアクセスできるようにしたものをRAMディスクと呼ぶ。使われているメモリは揮発性なので、RAMディスクは電源を切ると内容が失われる。

[編集] シャドウRAM

ROMの内容をRAMにコピーしてアクセス時間を短縮することがある(ROMは一般に低速である)。コンピュータの電源投入時、メモリを初期化した後、ROMの配置されていたアドレス範囲をコピーしたRAMに切り替える。これをシャドウRAMと呼ぶ。これは組み込みシステムでもよく行われる技法である。

典型例として、パーソナルコンピュータのBIOSがあり、ファームウェアのなんらかのオプション設定でBIOSをシャドウRAMにコピーして使うことができる(システム内の他のROMをRAMにコピーして使うオプションもある)。それによって性能向上する場合もあるし、非互換問題が発生する場合もある。例えば、ある種のハードウェアはシャドウRAMが使われているとオペレーティングシステムにアクセスできない。また、ブート後は全くBIOSを使わないシステムなら、性能は向上しない。当然ながらシャドウRAMを使うと、主記憶の空き容量が少なくなる[10]

[編集] 関連項目

[編集] 脚注・出典

[編集] 外部リンク

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語