このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第95回

今さら聞けないメモリーの基礎知識 FP~BEDO DRAM編

2011年04月04日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

RASとCASを使ってアドレスを通知

 図1にある「RAS」と「CAS」とは、RASは「Row Address Strobe」、CASは「Column Address Strobe」の略で、アドレス線からどのタイミングでRow/Columnアドレスを取得するかを指示する信号である。

図2 DRAMからのリードサイクル

 図2は実際の信号の流れを時系列で示したものだ。時間は左から右に流れている。図2図1を合わせて、時系列でどういった手順でメモリーからデータが読み込まれるかを見ていこう。

  • ①CPUがアドレス線にRowアドレスを渡す。
  • ②CPUはRASを「Low」にして、Rowアドレスを渡したことをDRAMに通知する。
  • ③DRAMはRASがLowになったことを検出。Row Address Bufferがアドレス線からアドレスを取得し、RowアドレスとみなしてRow Decoderに渡す。
  • ④CPUがアドレス線にColumnアドレスを渡す。
  • ⑤CPUはCASをLowにして、Columnアドレスを渡したことをDRAMに通知する。
  • ⑥DRAMはCASがLowになったことを検出。Column Address Bufferがアドレス線からアドレスを取得し、ColumnアドレスとみなしてColumn Decoderに渡す。
  • ⑦CASをLowにしてから一定時間後に、DRAMからデータがデータ線に渡される。CPUはこれを取得する。

 もっとも、これはかなり端折った説明である。下の画像は実際のDRAMのリードサイクルの一例だが、「tAA」から「tWPZ」まで21ものタイミングパラメータが示されている。これをきちんと守らないと、正しく読み書きできない。

米マイクロン社が昔販売していた、「MT4LC4M4E8/9」という4Mbit EDO DRAMのデータシートから引用したリードサイクルの説明図。EDOあるいはFastPageの動作モードを使わない場合の図

 図2をよく見るとわかるが、このやり方ではDRAMをアクセスする効率は、あまりよくない。なにしろアクセスのたびにRow/Columnをそれぞれ送り、それから初めてデータが出てくるからだ。しかも上の画像のように、本当は図2よりももっと細かくディレイが入っているので、実際のメモリー読み込みはかなり遅くなる。

連続した同じRowを一度で済ます
Fast Page Mode

 これを解決する方法として最初に実装されたのが、「Fast Page Mode」である。DRAMセルアレイの1Row分(ページ、横方向の並び)をまとめてアクセスするという方法だ(図3)。

「Fast Page Mode」の仕組み

 一般的にCPUは、メモリーを「完全にランダムでアクセスする」ことは少なく、「連続したメモリーアドレスを順に読み出す」というパターンが多い。例えば最初に「0x100000H」をアクセスすると、次は「0x100001H」「0x100002H」という具合に連続してアクセスするわけだ。この場合、以下のように変化するのはColumnだけで、Rowは変化していない。

アドレス Row Column
0x100000 0x100 0x000
0x100001 0x100 0x001
0x100002 0x100 0x002
0x100003 0x100 0x003

 「そうであるなら、Rowを与えるのは1回でいいじゃないか」という発想が出てくるのは当然である。そこで、例えば図3の赤枠のように、1ページ内のセルを順にアクセスする場合は、図4のようなアクセスを可能としたのが、Fast Page Modeとなる。見ての通り、Rowアドレスを指定するのが1回だけで済むようになった分、読み込みの頻度が上がっている。

図4 Fast Page Modeでのリードサイクル。「Data」の送出回数が増えている

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン