Random Access Memory

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

Random Access Memory(ランダムアクセスメモリ、RAM、ラム)は、コンピュータで使用するメモリの一分類。 (本来はRandom Access read/write Memoryの略であったが、RAMから予想されるRandom Access Memoryと間違われることが多く、やがて間違いの方が定着したもの)

本来は随時アクセスメモリのことで、格納されたデータに任意の順序でアクセスできる(ランダムアクセス)メモリの意味である。「ランダム」ということは、データのどんな断片でも、その物理的位置や前後のデータとの関係に関わらず、一定の時間で参照できることを本来は意味しており、対になるのはシーケンシャルアクセスメモリである。

しかし、ROM(読み出し専用メモリ)に対して、書き込みできるメモリの意であることが専らである。

概説[編集]

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

本来はRAMという言葉には読み書き(Read/Write)可能という意味はないが、ランダムアクセスで読み書き共に可能なメモリを、ROMに対して、RAMとされることが多い。正確を期すためRWM(Read write memory)と呼ばれることもある。ROMは電源を供給しなくても記憶内容を保持する不揮発メモリ(NVM: Non Volatile Memory)であるが、RAMはほとんどが(MRAM, FeRAMなどを除き)電源の供給を絶つと記憶内容が失われる揮発メモリ(Volatile Memory)である。

半導体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の性能向上が鈍化したことは明らかである。近年のインテルのプロセッサはクロック周波数を上げずに、その他のアーキテクチャ上の改良で性能を向上させている。

その他[編集]

DVD-RAM[編集]

一般にRAMといえば、暗黙のうちに半導体メモリのRAMを意味することが多い。ハードディスクなどの2次メモリは、RAMの定義を満たしていても、通常はRAMとは呼ばれない。しかし、DVD-RAMのような(もっぱら「ROM」の対置語として使われているためによる)例外もある。

RAMディスク[編集]

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

シャドウRAM[編集]

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

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

関連項目[編集]

脚注・出典[編集]

外部リンク[編集]