4.2 システム改良方針
4.2.1 メモリ
メモリをSRAMからDRAMに変更するときの改良方針を述べる。この評価基板で 使われているSRAMとDRAMを比較すると、表4.1のような違いがあげられる。
SRAM DRAM
アクセス速度 数ns以下 60ns アクセス手続 1,2回 6回 データ容量(32bit当り) 512kByte 16MByte
記憶できる行列の次数 256次 2048次 リフレッシュ 不要 必要
表4.1: SRAMとDRAMの比較
アクセス速度についてはSRAMの方が高速だが、このFPGAのシステムクロック
(4MHz〜20MHz)の範囲では問題にはならない。しかし、アクセスの手続きについ
ては、SRAMはアドレス指定とライトイネーブルもしくはアウトプットイネーブル を設定すれば、メモリの読み書きを始めるのに対し、DRAMでは行列の2つのアド レス設定とそれぞれのアドレス指定命令を出力しなければならず、データのアクセス とメモリの読み書きサイクルの終了を含め、最低6回の手続きが必要となる。
しかし、アクセスの手続きが複雑な反面、DRAMでは使えるアドレスの空間が広 く、少ないピン数でも大容量のデータが記憶できる。そのため、DRAMのデータ容 量はSRAMの32倍で、記憶可能な行列の次数は2048次と、SRAMの8倍となって いる。
DRAMを使用するにあたり、問題点として、リフレッシュを行なう必要がある。
このリフレッシュとはDRAMに記憶してあるデータが消去しないように、15.6s以 内に再書き込みを行なうことである。そのため、DRAMコントローラを設計するた めに、図4.1のような動作ができるようにする必要がある。
a. 書き込みサイクル(SRAM) b. 読み込みサイクル(SRAM)
c.連続読み込みサイクル(SRAM) d.書き込みサイクル(DRAM)
e.読み込みサイクル(DRAM) f.リフレッシュサイクル(DRAM) 図4.1: 各メモリの動作1
次に、この図4.1のサイクルの動作について述べる。
a. 書き込みサイクル(SRAM)
SRAMにデータを書き込む場合には、アドレスをレジスタに格納してから、SCS を立ち下げる。これによりSRAMのアドレスが指定される。そして、しばらく してからSWEを立ち下げる。これによりSRAMにデータが書き込まれる。
b. 読み込みサイクル(SRAM)
SRAMからデータを読み込ませる場合には、書き込みサイクルと同様に、SCS を立ち下げてアドレスを指定する。これと同時にSOEを立ち下げることで、SRAM からデータを読み込ませることができる。
c. 連続読み込みサイクル(SRAM)
上の読み込みサイクルの時に、アドレスを別の番地に変えると、読み込まれる データもその指定した番地のものに変わる。このアドレスの部分をカウンタで1 クロックずつに変えてゆけば、データも連続的に読み込むことができる。
d. 書き込みサイクル(DRAM)
DRAMの場合には、行および列の2つのアドレスを指定する必要がある。まず、
行および列アドレスをそれぞれのレジスタに格納する。そして、RAS を立ち下 げて行アドレスを指定する。次にCAS を立ち下げて列アドレスを指定する。ま た、このCASを立ち下げる前に、ライトイネーブル信号であるWEを立ち下 げる必要がある。これによりCASが立ち下がったときにDRAMにデータが書 き込まれる。
1ファイル名: a.:./g/SRAM-write.eps,b.:./g/SRAM-read.eps, c.:./g/SRAM-contread.eps,d.:./g/DRAM-write.eps,
e.:./g/DRAM-read.eps,f.:./g/DRAM-refresh.eps
e. 読み込みサイクル(DRAM)
DRAMからデータを読み込ませる場合には、書き込みサイクルと同様に、R AS、
CASを順に立ち下げる。また、データのポートはハイインピーダンス状態にし なければならない。CASが立ち下がってから、15ns後にDRAMからデータ が読み込まれる。
f. リフレッシュサイクル
DRAMのデータの保持に必要なリフレッシュは、CASビフォアR ASリフレッ シュで行なわれる。この方法だとリフレッシュアドレスカウンタがDRAM側に あるので、それをFPGAで設ける必要がない分、ゲート数を減らすことができ る。動作としては、R ASの前にCASを立ち下げればよい。