SDRAMロジックの調整を始めた私は、何度も挫折しそうになりました。
そのうちの一つは、アドレスの指定です
前回PCIのロジックで説明したのと同じように、アドレスを指定した後で、続くアドレスに、連続してデータを送って行きます
このアドレスの指定が難しくて、同じアドレスバスを使って、カラム・ロウを指定します
RAS#とCAS#と言う信号が用意されていて、RAS#がアクティブ(=low)になっている時はrawアドレス(行アドレス)を指定し、CAS#がアクティブになっている時は、columnアドレス(列アドレス)を指定します。
この様にして、少ないアドレスバスで、大きいアドレス空間を制御できるように
同じアドレスバスを使って二つのアドレスを指定できるようにしてあります
例えるなら、1個が4096のアドレスを持ったボックスを1024個用意すると、4GBのアドレスを表現できます
と言った感じです
また、PCIバスで学習した様に、アドレスを指定した後は、データを連続的に書き込み/読み出しをします
これにより、アドレスを指定するオーバーヘッドは限りなくゼロに近づきます
また、データバスは、書き込み・読み出し、双方向で行える様になっており
同じバスを共有します
この為、書き込み・読み出しが重複するとデータレートが圧迫されますが
実際には、ここが大きなボトルネックになる事はありません
特にハイスピードなカメラを作っていると、高速に動作しなければいけないのは
一方的に書き込む時は、高速性が求められますが、読み出しは、それ程即応しなくても
問題にはなりませんでした