13-- System Coherency Interface
1. Overriew
CHI协议定义了两根信号,这两组信号只有RN-F & RN-D节点使用,用来表示
- RN-F是否支持Coherency和DVM domain
- RN-D是否支持DVM domain
这两根信号为:SYSCOREQ、SYSCOACK;
两根信号与CLK为同步关系。

2. 握手
SYSCOREQ由RN-F/RN-D控制是否拉高;拉高是表示该RN节点参与到coherency;
SYSCOACK为RN-F/RN-D的输入信号,该信号拉高表示该节点的coherency被使能;
进入和退出coherency,均有RN-F/RN-D节点主动发起。

两根信号需要遵守:
- SYSCOREQ和SYSCOACK值相等时,RN节点才允许改变SYSCOREQ的值
- SYSCOACK和SYSCOREQ值不等时,ICN才允许改变SYSCOACK的值
2.1 RN节点规则
- SYSCOREQ拉高开始(上图T1时刻后),该RN开始处理SNP请求
- SYSCOACK拉高后(上图T2时刻后),RN节点才可以发起cache 数据相关transaction
- SYSCOREQ拉低之前(T3时刻之前),需要确保所有允许cache缓存数据的transactions都完成了
- SYSCOACK拉低之前(T4时刻之前),RN节点需要持续支持SNP请求
- 在系统一致性连接转换中,SACTIVE必须置位来保证SYSCOACK转换可以发生;
SYSCOREQ拉低之前,需要保证所有cache相关transaction都完成了,具体包括
- 以下请求的数据都被RN节点收到
- ReadUnique
- ReadPreferUnique
- ReadClean
- ReadNotSharedDirty
- ReadShared
- MakeReadUnique completes with a data transfer
- 以下请求都收到Comp
- CleanUnique
- MakeUnique
- MakeReadUnique completes without a data transfer
- CopyBack请求completed with a data transfer
- CompAck is sent for a CopyBack transaction that completes without a data transfer.
- SNP和Forwarding SNP的data packets都发送完成
2.2 ICN规则
当ICN检测到SYSCOREQ拉高时
- 无需等待之前SNP的response,可以立即拉高SYSCOACK
- SYSCOACK拉高后,就可以接受对应RN节点的一致性请求
当ICN检测到SYSCOREQ拉低时:
- 立即停止向该节点的SNP请求
- 需要等到所有向该节点的SNP请求完成后,才能拉低SYSCOACK
2.3 状态及对应规则

