各通道命令解析

read
readnosnp访问non-snoopable地址,返回对应数据;
返回的数据不会存入cache;
readonce访问snoopable地址,返回对应数据;
Data size is a cache line length
读回来的数据,不会存入RN的cache中;
RN-F, RN-D, RN-I to ICN(HN-F).
ReadOnceCleanInvalid 
访问snoopable地址,返回对应数据;
Data size is a cache line length
读回来的数据,不会存入RN的cache中;
 If a Dirty copy is invalidated, it must be written back to memory
RN-F, RN-D, RN-I to ICN(HN-F).
ReadOnceMakeInvalid 
访问snoopable地址,返回对应数据;
Data size is a cache line length
读回来的数据,不会存入RN的cache中;
 If a Dirty copy is invalidated, it does not need to be written back to memory
ReadClean
访问snoopable地址,返回对应数据;
Data size is a cache line length
Data must be provided to the Requester in clean state only
 UC, or SC
RN-F to ICN(HN-F).
Figure 5-7 ReadClean with partial data snoop response
ReadNotSharedDirty 
访问snoopable地址,返回对应数据;
Data size is a cache line length
Requester will accept the data in any valid state except SD
 UC, UD, SC.
就是说,share的数据,不要把dirty传给我;
ReadShared 
访问snoopable地址,返回对应数据;
Data size is a cache line length
Requester will accept the data in any valid state
 UC, UD, SC, or SD
RN-F to ICN(HN-F)
ReadUnique
访问snoopable地址,返回对应数据;
Data size is a cache line length
Data must be provided to the Requester in unique state only:
 UC, or UD
RN-F to ICN(HN-F)
All other cached copies must be invalidated.
dataless
CleanUnique
Figure 5-10 CleanUnique with memory update
访问snoopable地址,期望将自己的状态变成UC;
Any dirty copy of the cache line at a snooped cache must be written back to the next
level cache or memory
RN-F to ICN(HN-F)
makeunique
Figure 5-9 MakeUnique without memory update
Any dirty copy of the cache line at a snooped cache must be invalidated without
carrying out a data transfer
RN-F to ICN(HN-F)
Data is not included with the completion response
Comp Response must be UC;
evic
Used to indicate that a Clean cache line is no longer cached by an RN
Data is not sent for this transaction.
The cache line must not remain in the cache
— RN-F to ICN(HN-F)
StashOnceUnique 
Request to a Snoopable address region.
Request includes the Node ID of another RN and the Request can optionally include the ID of a Logical Processor within that node.
It is recommended, but not required, that the other agent is snooped to indicate that it reads the addressed cache line and ensures that it is in a cache state suitable for writing to the cache line
The expected Read request is ReadUnique, or CleanUnique
• Data is not included with the completion response.
— RN-F, RN-D, RN-I to ICN(HN-F).
StashOnceShared
Request to a Snoopable address region.
Request includes the Node ID of another RN and the Request can optionally include the ID of a Logical Processor within that node.
It is recommended, but not required, that the other agent is snooped to indicate that it reads the addressed cache line and ensures that it is in a cache state suitable for writing to the cache line
The expected Read request is ReadShared or ReadNotSharedDirty.
When a valid target is not specified, then the addressed cache line can be fetched to be cached at the request Completer.
• Data is not included with the completion response.
— RN-F, RN-D, RN-I to ICN(HN-F).
Cache maintenance transactions
CleanShared
Ensures that all cached copies are changed to a Non-dirty state and any Dirty copy is written
back to memory.
The Resp field value in the
completion, indicating cache state, must be ignored by both the Requester and the
Home
RN-F, RN-D, RN-I to ICN(HN-F, HN-I).
ICN(HN-F) to SN-F
ICN(HN-I) to SN-I
Data is not included with the completion response.
CleanSharedPersist
The completion response to a CleanSharedPersist request ensures that all cached copies are
changed to a Non-dirty state and any Dirty cached copy is written back to the Point of
Persistence (PoP)
Data is not included with the completion response.
The Resp field value in the
completion, indicating cache state, must be ignored by both the Requester and the
Home
RN-F, RN-D, RN-I to ICN(HN-F, HN-I).
ICN(HN-F) to SN-F
ICN(HN-I) to SN-I
CleanInvalid
Invalidates all cached copies and any Dirty copy is written to memory
 Data is not included with the completion response
RN-F, RN-D, RN-I to ICN(HN-F, HN-I).
ICN(HN-F) to SN-F
ICN(HN-I) to SN-I
MakeInvalid
Invalidates all cached copies and any Dirty copy can be discarded
Data is not included with the completion response
RN-F, RN-D, RN-I to ICN(HN-F, HN-I).
ICN(HN-F) to SN-F
ICN(HN-I) to SN-I
所有上述的命令,都需满足如下:
Sending of xxx to the interconnect from an RN and from the interconnect to
an SN is controlled by the BP and BCM interface signals
ExpectCompAck must not be asserted in CleanShared, CleanInvalid, MakeInvalid, and CleanSharedPersist transactions for any Requester type
A CMO intended for a particular address must not be sent to the interconnect before all previous transactions sent
to the same address have completed.
Write transactions
WriteNoSnpFull
Write a full cache line of data to a Non-snoopable address region
Data size is a cache line length.
All byte enables must be asserted
RN-F, RN-D, RN-I to ICN(HN-F, HN-I)
ICN(HN-F) to SN-F.
ICN(HN-I) to SN-I.
WriteNoSnpPtl
Write to Non-snoopable address region.
Data size is up to a cache line length
Byte enables must be asserted for the appropriate byte lanes within the specified data
size and deasserted in the rest of the data transfer
RN-F, RN-D, RN-I to ICN(HN-F, HN-I)
ICN(HN-F) to SN-F.
ICN(HN-I) to SN-I.
WriteUniqueFull 
Write to a Snoopable address region
Write a full cache line of data to the next-level cache
or memory when the cache line is Invalid at the Requester
Data size is a cache line length, All byte enables must be asserted
 RN-F, RN-D, RN-I to ICN(HN-F).
WriteUniquePtl 
Write to a Snoopable address region
Write up to a cache line of data to the next-level cache
or memory when the cache line is Invalid at the Requester
Data size is up to a cache line length
 RN-F, RN-D, RN-I to ICN(HN-F)
WriteUniqueFullStash
Write to a Snoopable address region
Write a full cache line of data to the next-level cache
or memory when the cache line is Invalid at the Requester
Also includes a request to the
Stash target node to read the addressed cache line
The expected Read request is
ReadUnique
 RN-F, RN-D, RN-I to ICN(HN-F)
Figure 5-20 WriteUniqueStash with Data Pull
WriteUniquePtlStash
Data size is up to a cache line length.
CopyBack transactions
CopyBack transactions are a subclass of Write transactions.
CopyBack transactions move coherent data from a
cache to the next level cache or memory. 
CopyBack transactions do not require the snooping of other agents in the system
WriteBackFull
Write-back a full cache line of Dirty data to the next level cache or memory
Data size is a cache line length
All byte enables must be asserted.
The cache line must not remain in the cache
RN-F to ICN(HN-F).
Figure 5-14 WriteBackFull returning Data Buffer Identifier
WriteBackPtl 
Write-back up to a cache line of Dirty data to the next level cache or memory
Data size is a cache line length
All appropriate byte enables, up to all 64, must be asserte
The cache line must not remain in the cache
RN-F to ICN(HN-F).
WriteCleanFull
Write-back a full cache line of Dirty data to the next level cache or memory and retain a
Clean copy in the cache
Data size is a cache line length
All byte enables must be asserted.
The cache line is expected to be in Clean state at completion of the transaction
RN-F to ICN(HN-F)
WriteEvictFull
Write-back of UniqueClean data to the next-level cache
Data size is a cache line length
All byte enables must be asserted.
The cache line must not remain in the cache
he cache line must not propagate(传播) beyond its Snoop domain.
除了WriteEvictFull命令,CopyBack操作通常用于更新主存或下游cache,WriteEvictFull单单用于更新下游cache,该命令产生的效果不会超过它的snoop domain
Atomic transactions
Atomic operation 
The execution of a function involving multiple data values such that
the loading of the
original value, the execution of the function, and the storing of the updated value, occurs in
an atomic manner
no other agent has access to the location during the entire
operation
Atomic transaction
A transaction that is used to pass an atomic operation, along with the data values required
for the execution of the atomic operation
from one agent in a system to another, so that the
atomic operation can be carried out by a different component in the system
than the
component that requires the operation to be performed
AtomicStore 
Figure 5-17 AtomicStore executed at HN-F
Sends a single data value with an address and the atomic operation to be performed
The target, an HN or an SN, performs the required operation on the address location
specified with the data supplied in the Atomic transaction
The target returns a completion response without data.
The target returns a completion response without data.
— RN-F, RN-D, RN-I to ICN(HN-F, HN-I). 
— ICN(HN-F) to SN-F.
— ICN(HN-I) to SN-I.
AtomicLoad
Sends a single data value with an address and the atomic operation to be performed
The target, an HN or an SN, performs the required operation on the address location
specified with the data supplied in the Atomic transaction
 The target returns the completion response with data. The data value is the original
value at the addressed location
Data will not be cached at the Requester
Communicating node pairs: 
— RN-F, RN-D, RN-I to ICN(HN-F, HN-I). 
— ICN(HN-F) to SN-F.
— ICN(HN-I) to SN-I.
AtomicSwap
AtomicCompare 
Figure 5-15 AtomicLoad, AtomicSwap, or AtomicCompare executed at HN-F
DVM transactions
DVM Operation. Actions include the passing of messages between components within a distributed
virtual memory system
— RN-F, RN-D to ICN(MN)
 prefetch transactions
The prefetch target transaction is used to speculatively read data from main memory
PrefetchTgt 
A Request to a shareable memory address, sent from a Request Node directly to a Slave Node
• The PrefetchTgt transaction does not include a response.
• The request can be used by the Slave Node to fetch the data from off-chip memory and buffer
it in anticipation of a subsequent Read request to the same location.
• The request does not include a response, therefore the Requester can deallocate the request
as soon as the request is sent.
• The Transaction ID field is inapplicable and must be set to zero.
• The Receiver must not send any response, including RetryAck.
• The Receiver is permitted to initiate an internal action or discard the request without any
further action.
• Data read from off-chip memory using PrefetchTgt must not hold Slave Node resources
waiting indefinitely for a future Read request to the same address.
RN-F, RN-D, RN-I to SN-F
snoop requests
The ICN generates a snoop request either in response to a request from an RN or due to an internal cache or snoop
filter maintenance operation
A snoop transaction, except for SnpDVMOp, operates on the cached data at the RN-F.
This specification permits snoops to Non-snoopable address locations.   ? DVM?
SnpOnceFwd, SnpOnce
Snoop request to obtain the latest copy of the cache line, preferably without changing the
state of the cache line at the Snoopee
• SnpOnceFwd is permitted to be sent only to one RN-F.
• Expected not to change cache state.
SnpStashUnique
Snoop request recommending that the Snoopee obtains a copy of the cache line in a Unique
state
• Permitted to be sent to only one RN-F
• This specification recommends not sending the snoop for a StashOnceUnique request
if the cache line is cached in Unique state at the Stash target.
•Permitted to send the snoop to the Stash target for WriteUniqueFullStash and
WriteUniquePtlStash only if the Snoopee does not have a cached copy of the cache
line.
• The Snoopee must not return data with the Snoop response.
• Permits the Snoop response to include a Data Pull if the value of the DoNotDataPull field is 0b0 in the Snoop request.
• If not using Data Pull, then this specification recommends, but it is not required, that the Snoopee uses ReadUnique to prefetch the cache line.
• Must not change the cache line state at the Snoopee.
SnpStashShared 
Snoop request recommending that the Snoopee obtains a copy of the cache line in a Shared
state
• Permitted to be sent to only one RN-F
• This specification recommends not sending the snoop if the cache line is cached at the target.
• The Snoopee must not return data with the Snoop response.
• Permits the Snoop response to include a Data Pull if the value of the DoNotDataPull field is 0b0 in the Snoop request.
• If not using Data Pull, then this specification recommends, but it is not required, that the Snoopee uses ReadShared, or ReadSharedNotDirty to prefetch the cache line.
• Must not change the cache line state at the Snoopee.
Figure 5-21 StashOnceShared with Data Pull
SnpCleanFwd, SnpClean
Snoop request to obtain a copy of the cache line in Clean state while leaving any cache copy in Shared state
• SnpCleanFwd is permitted to be only sent to one RN-F.
• Must not leave the cache line in Unique state.
SnpCleanFwd
• Snoopee must forward the cache line in SC state.
• Snoopee must transition to either SD, SC or I state
SnpNotSharedDirtyFwd, SnpNotSharedDirty
Snoop request to obtain a copy of the cache line in SharedClean state while leaving any cached copy in a Shared state
SnpNotSharedDirtyFwd is permitted to be sent only to one RN-F.
SnpNotSharedDirtyFwd
• Snoopee must forward the cache line in SC state.
• Snoopee must transition to SD, SC or I state.
SD state transition is not permitted if DoNotGoToSD is asserted.
SnpSharedFwd, SnpShared
Snoop request to obtain a copy of the cache line in Shared state while leaving any cached copy in Shared state
• SnpSharedFwd is permitted to be only sent to one RN-F.
• Must not leave the cache line in Unique state.
Figure 5-3 Direct Cache Transfer from cache line in UC state
SnpUniqueFwd, SnpUnique
Snoop request to obtain a copy of the cache line in Unique state while invalidating any cached copies
• SnpUniqueFwd is permitted to be sent to only one RN-F.
• Must change the cache line to Invalid state
SnpUniqueStash
Snoop request to invalidate the cached copy at the Snoopee and recommends that the Snoopee obtains a copy of the cache line in Unique state:
• Permitted to be sent to only one RN-F.
• Snoop response can include data.
• Permits the Snoop response to include a Data Pull if the value of the DoNotDataPull field in the Snoop request is 0b0.
• If not using Data Pull, then this specification recommends, but it is not required, that the Snoopee uses ReadUnique to prefetch the cache line.
SnpCleanShared
Snoop request to remove any Dirty copy of the cache line at the Snoopee:
• Snoop response can include data.
• Must not leave the cache line in a Dirty state.
SnpCleanInvalid
Snoop request to Invalidate the cache line at the Snoopee and obtain any Dirty copy. Might also be generated by the ICN without a corresponding request
• Snoop response can include data.
• Must change the cache line to Invalid state.
Figure 5-10 CleanUnique with memory update
SnpMakeInvalid
Snoop request to Invalidate the cache line at the Snoopee and discard any Dirty copy:
• Does not return data with the Snoop response, Dirty data is discarded.
• Must change the cache line to Invalid state.
SnpMakeInvalidStash
Snoop request to invalidate the copy of the cache line and recommends that the Snoopee obtains a copy of the cache line in Unique state:
• Permitted to be sent to only one RN-F.
• Snoopee must not return data with the Snoop response, Dirty data must be discarded.
• Permits the Snoop response to include a Data Pull if the value of the DoNotDataPull field in the Snoop request is 0b0.
• If not using Data Pull, then this specification recommends, but it is not required, that the Snoopee uses ReadUnique to prefetch the cache line.
SnpDVMOp
Generated at the ICN, initiated by the DVMOp request:
• A single DVMOp request generates two snoop requests.
• Returns a single Snoop response for the two snoop requests
Table 4-3 Request types and the corresponding snoop requests

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值