|
|
マルチポートメモリの作り方
|
|
|
==========================
|
|
|
|
|
|
スーパスカラプロセッサを作る場合、1 cycleに二要素以上を書き換えられるメモリが欲しくなることがあるかと思います。例えばレジスタファイルなどがそれに該当するはずです。1 cycleに二命令処理するためには、レジスタファイルにwrite portが2つ必要です(そのような場合はストールするという戦略も可能ですが、性能が大きく低下します)。
|
|
|
スーパスカラプロセッサを作る場合、1 cycleに二要素以上を書き換えられるメモリが欲しくなることがあるかと思います。例えばレジスタファイルなどがそれに該当するはずです。1 cycleに二命令処理するためには、レジスタファイルにwrite portが2つ必要です(レジスタに書き込む命令が二つ来た場合はストールするという戦略も可能ですが、性能が大きく低下します)。
|
|
|
|
|
|
このような時、以下のようにレジスタファイルを記述すると、分散RAMに推論されずフリップフロップ(とツリー状の選択回路)に合成されてしまいます。これに必要なフリップフロップは1000個程度(32bit×31要素)です。この規模の論理回路の合成は十分可能であり、またそれなりの速度で動作します。
|
|
|
|
... | ... | |