Random Access Memory

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

Random access memory(ランダムアクセスメモリ、RAM、ラム)とは、コンピュータで使用するメモリの一分類である。本来は、格納されたデータに任意の順序でアクセスできる(ランダムアクセス)メモリといった意味で、かなりの粗粒度で「端から順番に」からしかデータを読み書きできない「シーケンシャルアクセスメモリ」と対比した意味を持つ語であった。しかし本来の意味からズレて、ROM(読み出し専用メモリ)に対して、任意に[1]書き込みできるメモリの意で使われていることが専らである。

概説[編集]

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

読み書き(Read/Write)可能という意味ではRWM(Read write memory)という表現がある。しかし実際上はほとんど全く使われていない。

DRAMとSRAM(と、その他)[編集]

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

SRAMは、記憶部にフリップフロップを用いており、リフレッシュ動作を必要としない。また、DRAMより高速動作させることができるが、記憶部の回路が複雑になるため、容量あたりのコストが高い。リフレッシュ動作を必要としないため、リフレッシュ動作による電力の消費が無い。

DRAMもSRAMも揮発性メモリである。揮発性でないメモリとして、不揮発性メモリがある。

歴史[編集]

最初期(1940年代)の電子計算機の時点で、当時の主力素子である真空管で1ビット1ビットメモリを作っていたのでは高価につきすぎることから、いくつかの記憶装置に特化した素子や機器が考案された。アタナソフ&ベリー・コンピュータではリフレッシュ操作を機械的に行う、キャパシタによる一種のDRAMのような装置が考案された。1949年に稼働したEDSACで使われた水銀遅延記憶装置などの信号の遅延を利用するものは、原理上シーケンシャルアクセスである。EDSACは初の「実用的な」プログラム内蔵方式のコンピュータだとされているが、プログラム内蔵方式の実用性のためにはある程度多くのメモリが必要であり(EDSACでは1024短語)、水銀遅延記憶装置は同機の成功の重要な要素であった。当時の他の素子では、ブラウン管面の帯電を利用するウィリアムス管は、ランダムアクセスでリフレッシュを必要とするなどDRAMに近い性格を持つ。

その後、1949年から1952年に磁気コアを用いた磁気コアメモリが開発された。コアメモリでは、格子状に配置した磁気コアと呼ばれるリング状の磁性体に、縦と横方向から電線を貫いた構造をしていた。磁気コアメモリは、集積回路によるRAMが登場する1960年代末から1970年代初頭まで、広く使われていた。特には、放射線などの影響を受けにくいという特性から、宇宙機用などでは1980年代でも用いられていた例がある[3]。また、破壊読み出しなので読み出したら書き戻す必要がある一方、ドーナツ状のフェライトコアの磁性を利用しているため不揮発という特性がある。

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

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

RAMの種類[編集]

メモリの階層[編集]

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

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

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

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

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

信号伝送におけるRC遅延については Clock Rate versus IPC: The End of the Road for Conventional Microarchitectures にもあり、2000年から2014年のCPUの性能向上は、最大でも年率平均で12.5%という見積もりが示されている。インテルのデータを見ても[11]、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を使うと、主記憶の空き容量が少なくなる[12]

関連項目[編集]

脚注・出典[編集]

  1. ^ 「フラッシュROM」などは逆に、ブロック単位ではあるが書き込みできるのに「ROM」と呼ばれており、やはりネジレがある。
  2. ^ ウィリアムス管などが、半導体DRAMよりも古くからあるダイナミックメモリである。
  3. ^ 『困ります、ファインマンさん』でスペースシャトルのコンピュータに使われていることが語られているのがよく知られている。
  4. ^ データを「10億年」保持可能:カーボン・ナノチューブ利用 WIRED.jp、2009年6月3日
  5. ^ The Emergence of Practical MRAM CROCUS Technology
  6. ^ Tower invests in Crocus, tips MRAM foundry deal EETimes、2009年6月18日
  7. ^ "EcoRAM held up as less power-hungry option than DRAM for server farms" by Heather Clancy 2008
  8. ^ Spansion社が「EcoRAM」の詳細を明らかに、サーバーのメインメモリー用途を狙う EDN Japan、2008年11月
  9. ^ Wm. A. Wulf, Sally A. McKee, Hitting the Memory Wall: Implications of the Obvious (PDF). 1994
  10. ^ Platform 2015 documentation (PDF) Intel
  11. ^ Microprocessor Quick Reference Guide Intel
  12. ^ Shadow Ram”. 2007年7月24日閲覧。

外部リンク[編集]