Random Access Memory

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

Random access memory(ランダムアクセスメモリ、RAM、ラム)とは、コンピュータで使用するメモリの一分類。

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

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

概説[編集]

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

本来、RAMという言葉には読み書き(Read/Write)可能という意味はない。しかし、ランダムアクセスで読み書き共に可能なメモリのことを指すことが多い。なお、正確を期すために、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と呼ばれるようになった。DRAMは、アドレスを指定してからデータを読み出すまでの時間がSRAMよりも若干遅いものの、記憶部の構造が単純であるため、容量あたりのコストが低いという特徴がある。また、常にリフレッシュを行っているため、SRAMに比べ消費電力が高い。DRAMのアクセス方式によってさまざまな種類のものが市販されている。

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) 方式がある。前者はベンチャー企業が単独で開発しているが、後者は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の性能向上は鈍化した。これには、微細化により性能向上が物理的限界に近づいていることや発熱の問題もあるが、同時にメモリとの速度差を考慮した結果でもある。インテルは、その原因について次のように分析している[7]

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

信号伝送における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]

関連項目[編集]

脚注・出典[編集]

外部リンク[編集]