最近は専ら自作CPUの足回りをAXIに置き換える作業をしているのだが、それのせいでブログに書くことがあまりない...
AXI4の仕様を勉強しているが、後学のためにメモしておこうと思う。
- アトミックアクセスの場合の信号
AXI3 の場合:
AxLOCK[1: 0] | アクセスタイプ |
---|---|
0b00 | 通常アクセス |
0b01 | 排他アクセス |
0b10 | ロックアクセス |
0b11 | 予約 |
これ、別々のチャネルでも独立に設定するのかな?つまり、アドレスチャネルでロックをかければ、データチャネルも自動的にロックがかかるという理解で良いのかな。
AXI4の場合:
AxLOCK | アクセスタイプ |
---|---|
0b0 | 通常アクセス |
0b1 | 排他アクセス |
何故か縮退されている。
これはインタコネクトが中で保証するということでいいのかな。
- AxCACHE : バッファ可能かどうかを示す信号。 4ビットある。
AxCACHE | 値 | 転送属性 |
---|---|---|
[0] | 0 | バッファできない |
[0] | 1 | バッファできる |
[1] | 0 | キャッシュできない |
[1] | 1 | キャッシュできる |
[2] | 0 | Read-allocateできない |
[2] | 1 | Read-allocateできる |
[3] | 0 | Write-allocateできない |
[3] | 1 | Write-allocateできる |
Read-allocate と Write-allocate の意味がよく分からない。
- Read Allocate. This means that the read transfer, if it misses, must be allocated in the cache.
- Write Allocate. This means that the write transfer, if it misses, must be allocated in the cache.