D4.5.1 ReadNoSnoop
ReadNoSnoop is a read transaction that is used in a region of memory that is not Shareable with other masters. The transaction response requirements are:
| 对非共享区域的都,不发snoop的读。 |
D4.5.2 ReadOnce
ReadOnce is a read transaction that is used in a region of memory that is Shareable with other masters. This transaction is used when a snapshot of the data is required. The location is not cached locally for future use. | 读,但不分配cache |
The transaction response requirements are: • The IsShared response indicates that the cache line is shared or unique. • The PassDirty response must be deasserted. | passdirty必须为0 |
D4.5.3 ReadClean
ReadClean is a read transaction that is used in a region of memory that is Shareable with other masters. A ReadClean transaction is guaranteed not to pass responsibility for updating main memory to the initiating master. | 读,但cache要处于clean状态 |
Typically, a ReadClean transaction is used by a master that wants to obtain a clean copy of a cache line, for example a master with a write-through cache. | 一般被write-through的master使用 |
The transaction response requirements are: • The IsShared response indicates that the cache line is shared or unique. • The PassDirty response must be deasserted. |
D4.5.4 ReadNotSharedDirty
ReadNotSharedDirty is a read transaction that is used in a region of memory that is Shareable with other masters. A ReadNotSharedDirty transaction can complete with any combination of the IsShared and PassDirty responses except for IsShared and PassDirty asserted. | 读,返回不允许是dirty & shared |
Typically, the transaction is used by a cached master that is carrying out a load operation and can accept the cache line in any state except the SharedDirty state. | |
The transaction response requirements are: • The IsShared response indicates that the cache line is shared or unique. • The PassDirty response indicates that the cache line is clean or dirty. • If the IsShared response indicates that the cache line is shared, then the PassDirty response must indicate that the cache line is clean. |
D4.5.5 ReadShared
ReadShared is a read transaction that is used in a region of memory that is Shareable with other masters. A ReadShared transaction can complete with any combination of the IsShared and PassDirty responses. | 最普通的读命令,可接受任何状态 |
Typically, the ReadShared transaction is used by a cached master that is carrying out a load operation and can accept the cache line in any state. | |
D4.5.6 ReadUnique
A ReadUnique transaction is used in a region of memory that is Shareable with other masters. The transaction gets a copy of the data and also ensures that the cache line can be held in a Unique state. This permits the master to carry out a store operation to the cache line. | 读,保证此master的cache是unique的。 |
Typically, a ReadUnique transaction is used when the initiating master is carrying out a partial cache line store and does not have a copy of the cache line. | readunique一般后面跟着一个partial write操作。 |
总结:
ReadNoSnoop | 不跟其他master共享 |
ReadOnce | 不放入cache,只使用一次 |
ReadClean | clean,write through的cache会使用 |
ReadNotSharedDirty | shared和dirty不能同时置位 |
ReadShared | 普通读,当前cache可为任何状态 |
ReadUnique | 是当前cache为unique,一般后面跟 write partial |