... | ... | @@ -88,7 +88,7 @@ Vivadoは、このレプリケーションを自動で適用することで、re |
|
|
もしかしたら、データメモリを構成するために、アドレスの下位2ビットが`2'b00`であるデータを保存するメモリ、`2'b01`用のメモリ、`2'b10`用のメモリ、`2'b11`用のメモリ、のようにメモリアドレス全体を4分割するような方法を使った人がいるかもしれません。
|
|
|
このようなものもバンク化の一種です。
|
|
|
|
|
|
バンク化で問題を解決できるのは、「`2'b00`用のメモリ、`2'b01`用のメモリ、`2'b10`用のメモリ、`2'b11`用のメモリのそれぞれ(各バンク)の高々一エントリに書き込む」といった場合です。
|
|
|
バンク化で問題を解決できるのは、「`2'b00`用のメモリ、`2'b01`用のメモリ、`2'b10`用のメモリ、`2'b11`用のメモリのそれぞれ(各バンク)の**高々一エントリに**書き込む」といった場合です。
|
|
|
レジスタファイルの問題は、このようなバンク化により解決することはできません。
|
|
|
二命令のデスティネーションレジスタ番号が4と8であれば、どちらも`2'b00`用のメモリに書き込まなければいけませんが、それはできません(バンク衝突と言います。そのような場合にストールするという戦略もあります)。
|
|
|
二命令のデスティネーションレジスタの組み合わせは任意の組み合わせが来うるため、どのようにメモリを分割してもバンク衝突が常に発生しないことを保証することが不可能な点に注意してください。
|
... | ... | |