一致性系统中,需要 memroy model 使用 multi-copy atomicity;
一致性系统中,使用三种保序方式;
================Completion response===================
□ Comp 响应 表示当前的请求,己经达到了 POC/POS, POC/POS 将保证其命令的执行顺序和接收的顺序是一致的:
□ 即:当某个 component 能够保证,所有的 observers 可以看到这个操作的结果的时候,就会返回 comp/CompDBIDResp;
□ A component must only give a Comp or CompDBIDResp response when it is guaranteed that
all observers will see the result of the atomic operation;
上表中的comp resp分为四类:
□ comp;
□ repseqdata;
□ compdata;
□ persist resp;
⭕ Conbined owo write request, 如果发送了writedatacancel,那么这个命令将不会进行cache maintain 的处理;RN如果要继续,则需要重新发送写和cmno 操作;
⭕ 如果 combined 请求,是一个带cmo 的写请求,并且data cancel 了,那么这个命令的cmo 操作都不执行,RN必须重新发送cmo,要么还是发一个 comnied cmo 操作,要么等写了之后,再发送cmo:
⭕ 如果上述条件中,是一个PCMO 操作,那么 persist resp 不代表数据己经到达了persistent, RN 需要重新发送:
⭕ 对于 atomic 操作,返回compiconpdbidresp 意味着,其他人都可以观察到这次操作,
⭕ Write 操作,结果 writedatacancel,此时的comp resp,只表示 trans loop 结束了,这个命令对应的一致性操作还可能没有结束,因此,对于completer 而言,只要收到了writedatacancle,就可以发送comp,而不需要依赖 Write 请求的处理,或者write 产生的snoop 都完成;
1. 读操作有3种响应:
Compdata/RespSepData/DatasepResp;
2. 写操作有两类响应:
Comp/CompDBIDResp;
3. Comp:
当completion 需要分开返回 comp 和 dbidresp/dbidrespord 时,使用:
4. Compdbidresp:.
当 completion 需要和 dbidresp/dbidrespord 合并返回时使用;
5. Comp/compDBIDResp 的选择:
所有 copyback 的请求,必须使用 COMpDBIDResp 的响应:
Non-copyback 和 AtomicStore,两者都可以使用:
Comp 响应的局限性:
1.对于读访问,Comp 通过 DATA 通道返回,必须是在获得数据后再返回的,相当于有保序要求的 transaction 的 outstanding 深度是 1,尤其是需要 SN 侧取数据的时候,效率很低;
2. 对于写访问,WriteUnique 需要等待监听结束:(可能不止?看具体命令的 fow)