Dynamic Random Access Memory
出典: フリー百科事典『ウィキペディア(Wikipedia)』
DRAM(Dynamic Random Access Memory、ダイナミックランダムアクセスメモリー)、 ダイナミックRAM( - ラム)は、キャパシタに電荷を蓄えることによりデータを記憶するRAM。主に主記憶装置に用いられる。
キャパシタは放電により電荷が失われるため、1秒に数回データを読み、再び記録し直すリフレッシュ操作が必要となる。ニュースなどの解説では、「記憶保持動作が必要な随時書き込み読み出しできる半導体記憶回路」などと紹介される。
なお、現在では記憶セルがDRAMセルの構造で、インターフェースがSRAMと同じ疑似SRAMも存在する。
目次 |
[編集] 構造
記憶セルの最小単位は、キャパシタ1個と、それに隣接するスイッチ用のFET1個から構成される。記憶セルは碁盤の目のように並べて配置され、横方向の行アドレスと縦方向の列アドレスを指定してその中から1つを選択する。記憶セルアレイ1枚あたり1ビット分のデータとして使用するが、複数枚を同一チップ上に用意して、8ビット用や16ビット用などとしているものが現在では一般的である。
データの内容は、記憶セルのキャパシタに電荷がある場合は論理1、無い場合は論理0というように決定される。 データの読み書きをする時には、1行分のデータを列の数だけ用意されたセンスアンプで一度に取り込み、その中から必要とするビットのデータを読み込むか、データの書き換えを行う。センスアンプで読み込む時にキャパシタの電荷は失われるので、再び1行分のデータを記憶セルに書き戻して読み書きを終了する。
SRAMが全てトランジスタ(と若干の抵抗)で作られていてプロセス微細化によるスイッチング速度向上がアクセス速度を向上させているのに対して、DRAMではキャパシタと回路に存在する寄生抵抗による時定数回路が存在する為プロセスの微細化やトランジスタのスイッチング速度向上はメモリのアクセス速度向上に寄与しない。キャパシタの容量を小さくすれば高速化できるが信頼性が下がる。微細化によってキャパシタを作りこめる面積が小さくなったのを補う為に、キャパシタを立体構造にして容量不足を補うようにしている。
[編集] データアクセスの方法
DRAMの記憶セルを指定するためのアドレスデータ線は、行アドレスと列アドレスとで共通になっていて、行アドレスと列アドレスを時分割で設定するようになっている。 データアクセスの高速化のため、同じ行アドレスで列アドレスが違うデータを次々に読み書きする方法が考案されており、これをページモードと呼ぶ。
ページモードは高速ページモード(Fast page mode)、そしてEDO(EDO-DRAM)と進化し、現在はSynchronous DRAM(SDRAM)と呼ばれる、行アドレス内容を同期転送(バーストモード)で高速に入出力する機構を搭載した物が主流となっている。全く工夫のないDRAMでは100nsec以上かかっていた物が、最新のDRAMでは2.5nsec前後まで高速化されている。ただし、列・行アドレス共に指定してセットアップ・プリチャージの時間を含むアクセスタイム自体は、それほど短縮されていない。この10年間で1/3程度高速化されただけである。
また、読み込みと書き込みを全二重で行う事ができるDual Port DRAMがある。PC用途ではヘテロジニアス(異種)であるCPU-GPU間共有メモリに用いられたり、あるいは全く互換性のないマルチプロセッサ構成のPCやワークステーション、PCI-PCI間メモリ転送デバイスなど様々な用途に使われる。このメモリの歴史は古く、アクセスタイムの向上以外は主だった変化はない。最も多い使用用途はVRAMであろう。この用途もそう大きく変化していない。
[編集] リフレッシュ
記憶セルに蓄えられた電荷は、素子内部の漏れ電流によって徐々に失われていき、電荷の無い状態との区別が困難になってくる。そこで、定期的に電荷を補充する操作が必要となり、この操作をリフレッシュと呼ぶ。リフレッシュは、行単位にアクセスすることで実施され、規定された時間内に全ての行について行わなければならない。
[編集] リフレッシュアドレス指定方法
リフレッシュを行う行アドレスを指定するには、外部の回路から直接行アドレスを指定してアクセスする方法もあるが、特定のタイミングで制御信号を入力することで内部のカウンタを動作させ、必要な行アドレスを順番に発生させる方法もある。
[編集] リフレッシュのタイミング
代表的な方法として、以下の二つがある。
- 集中リフレッシュ:規定された時間毎に全ての行を一度にリフレッシュする。
- 分散リフレッシュ:規定された時間を行の数で割った周期で一行ずつリフレッシュする。