• 検索結果がありません。

4.2 システム改良方針

4.2.1 メモリ

メモリをSRAMからDRAMに変更するときの改良方針を述べる。この評価基板で 使われているSRAMDRAMを比較すると、表4.1のような違いがあげられる。

SRAM DRAM

アクセス速度 ns以下 60ns アクセス手続 1,2 6 データ容量(32bit当り) 512kByte 16MByte

記憶できる行列の次数 256 2048 リフレッシュ 不要 必要

4.1: SRAMDRAMの比較

アクセス速度についてはSRAMの方が高速だが、このFPGAのシステムクロック

(4MHz〜20MHz)の範囲では問題にはならない。しかし、アクセスの手続きについ

ては、SRAMはアドレス指定とライトイネーブルもしくはアウトプットイネーブル を設定すれば、メモリの読み書きを始めるのに対し、DRAMでは行列の2つのアド レス設定とそれぞれのアドレス指定命令を出力しなければならず、データのアクセス とメモリの読み書きサイクルの終了を含め、最低6回の手続きが必要となる。

しかし、アクセスの手続きが複雑な反面、DRAMでは使えるアドレスの空間が広 く、少ないピン数でも大容量のデータが記憶できる。そのため、DRAMのデータ容 量はSRAM32倍で、記憶可能な行列の次数は2048次と、SRAM8倍となって いる。

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を立ち下げればよい。