CHI属性、参数和广播信号

本文描述CHI协议的properties、parameters、broadcast signals,这些指定了一个interface支持的行为。

1. Interface properties and parameters

property用于描述一种能力,如果一个property没有声明,那么认为是False的,即不支持。
用于指定interface行为的properties和parameters有:
Atomic_Transactions:
Atomic_Transactions property用于指示一个component是否支持Atomic transactions:

  • 如果没有指定或者为False,Atomic transactions不支持;
  • 为True,Atomic transactions支持;

支持Atomic transactions的组件必须支持所有的Atomic transactions,然而,不要求支持Atomic transactions的组件支持所有memory types。
Cache_Stash_Transactions:
Cache_Stash_Transactions property用于指示一个组件是否支持Cache Stashing transactions:

  • 如果没有指定或设置为False,那么不支持Cache Stashing transactions;
  • 为True,支持Cache Stashing transactions。

Direct_Memory_Transfer:
Direct_Memory_Transfer property用于指示一个组件是否支持Direct Memory Transfer transactions:

  • 如果没指定或为False,则不支持DMT;
  • 为True,支持DMT;
  • DMT属性是在HN上为每个RN设置的。

Direct_Cache_Transfer:
Direct_Cache_Transfer property用于指示一个组件是否支持Direct Cache Transfer transactions:

  • 如果没有指定或为False,DCT transaction是不支持的;
  • 如果为True,支持DCT transactions
  • 是由HN-F来决定正确的snoop type。

Data_Poison:
Data_Poison property用于指示是否一个组件支持Posion:

  • 如果没有指定或为False,不支持Posion,且DAT packet中不存在Posion域段;
  • 如果为True,支持Posion,且DAT packet中存在Posion域段。

Data_Check:
Data_Check property用于指示是否支持Data Check:

  • 如果没有指定或为False,不支持Data Check,且DAT packet中不存在DataCheck域段;
  • 如果设置为Odd_Parity,则支持Data Check,且DAT packet中存在DataCheck域段。

CCF_Wrap_Order:
见博文《CHI协议层》的介绍。

Req_Addr_Width:
Req_Addr_Width parameter指示了一个组件支持的最高物理地址physical address:

  • 该参数的合法值为44~52;
  • 当Req_Addr_Width参数没有指定,默认值为44;

NodeID_Width:
NodeID_Width parameter用于标识一个组件的NodeID域段的宽度,它决定了系统中NodeID的最大允许值:

  • 所有相关的NodeID域段宽度都要统一;
  • NodeID_Width的合法值为7~11;
  • 如果NodeID_Width没有指定,默认值为7。

Data_Width:
Data_Width parameter用于标识一个组件的DAT通道的packet支持的data width:

  • Data_Width的合法值为128,256,512;
  • 当Data_Width没有指定时,默认值为128。

Enhanced_Features:
Enhanced_Features property标识CHI协议中其它features的组合,这些特性没有明确的property或parameter:

  • 如果Enhanced_Features property为True,组件支持下面的enhanced features:1. Data return from SC state. 2. I/O Deallocation transactions. 3. ReadNotSharedDirty transaction. 4. CleanSharedPersist transaction. 5. Receiving of Forwarding snoops;
  • 如果没有指定或为False,组件不支持没有明确定义的property和parameter的enhanced features。

2. Optional interface broadcast signals

CHI协议包含三组额外的pins管脚,用于决定在ICN上是否将一些特定transactions组进行广播。这些管脚在RN到ICN和ICN到SN接口上可选。这三组额外的broadcast管脚是:

  • BROADCASTINNER and BROADCASTOUTER.
  • BROADCASTCACHEMAINTENANCE and BROADCASTPERSIST.
  • BROADCASTATOMIC.

如果一个组件在interface上实现了这些信号管脚,那么必须确保在Reset释放后,这些信号的值是稳定不变的。
BROADCASTINNER和BROADCASTOUTER分别决定了inner和outer domain transactions是否需要广播。CHI协议要求这两个管脚的值必须一样,当设置为0的时候,inner和outer transactions的所有transactions都必须广播,除了Cache Maintaintenance Operations(CMO)。
BROADCASTCACHEMAINTENANCE和BROADCASTPERSIST接口信号用于有效维护ICN中的downstream caches。该broadcast用于:

  • BROADCASTCACHEMAINTENANCE:1. 置位时,为了维护downstream caches,CMO transactions必须要经过interface被广播至下游;如果BROADCASTPERSIST没有置位,CleanSharedPersist必须要转为CleanShared后,才能广播到下游downstream caches;2. 没有置位时,是否要通过interface broadcast Persist CMO(CleanSharedPersist)是取决于BROADCASTPERSIST信号。
  • BROADCASTPERSIST:1. 置位时,为了维护downstream caches,CleanSharedPersist必须通过ICN被广播;该要求和BROADCASTCACHEMAINTENANCE信号值互相独立;2. 没有置位时,是否需要通过ICN将Persist CMO广播至downstream cache取决于BROADCASTCACHEMAINTENANCE的值,但即使可以广播,也必须转为CleanShared。

这些信号在RN连接到ICN接口上,在RN上是输入信号,ICN是输出信号;在ICN连接到SN接口上,在ICN上是输入信号,在SN上是输出信号。
表1为这些broadcast信号的含义。
BI : BROADCASTINNER.
BO : BROADCASTOUTER.
BCM : BROADCASTCACHEMAINTENANCE.
BP : BROADCASTPERSIST.
表1 CMO broadcast at the interface with unspecified BI and BO


BROADCASTATOMIC:

  • 置位时,interface允许产生Atomic transactions;
  • 不置位时,interface不允许产生Atomic transactions;

如果RN不需要使用Atomic transactions,RN不需要增加Atomic transactions功能,即便ICN支持;
如果RN支持atomic operations,但是不包含对atomic operations执行的支持,那么它必须支持发送Atomic transactions。

 

3. Atomic transaction support

对于Atomic transactions,CHI协议有如下需求。

3.1 Request Node support

如果系统不支持Atomic transactions,Requester必须有能力抑制这些Atomic transactions的产生。Requester可以使用BROADCASTATOMIC来决定atomic transactions是否需要被传输。
如果RN不需要使用Atomic transactions,RN不需要增加Atomic transactions功能,即便ICN支持;
如果RN支持atomic operations,但是不包含支持atomic operations的执行部分,那么它必须支持发送Atomic transactions。
如果RN既支持执行atomic operations,也支持发送Atomic transactions,那么:

  • 对于Cacheable地址,不管是Snoopable还是Non-snoopable,RN可以在本地执行atomic operation,而不需要在interface上发送atomic transactions。为了达到这个,Requester必须在本地cache获得该地址的数据。

带有cache的Requester在处理访问Snoopable地址空间的Atomic transactions请求时:

  • 如果cacheline是Unique态,那么不需要产生一笔atomic transaction,就可以在本地执行atomic operation;
  • 如果cacheline是Shared态,但不是Dirty,有以下两种方式:1. 产生ReadUnique或CleanUnique来获取该cacheline的Unique态,然后在本地执行atomic operation;2. 失效掉本地的cacheline,然后通过interface发送Atomic transaction到ICN上;
  • 如果cacheline是Shared Dirty态,有以下两种方式:1. 产生ReadUnique或CleanUnique来获取该cacheline的Unique态,然后在本地执行atomic operation;2. 采用WriteBack命令将该cacheline写回memory,无效化本地cacheline,然后通过interface发送Atomic transactions到ICN上;
  • 可选的,除了以上各种,Requester允许发送SnoopMe置位的Atomic transaction操作直接访问ICN,ICN会发送一笔Snoop request给该Requester将cacheline失效掉。

3.2 Interconnect support

ICN对于是否支持Atomic transactions是可选的。Atomic_Transactions property用于指示ICN是否支持Atomic transactions。如果ICN不支持的话,那么所有连接到该ICN的RNs都必须配置为不支持Atomic transactions,采用BROADCASTATOMIC可以达到该目的。
对于支持Atomic transaction的ICN,可以在ICN内的任何节点执行atomic operation,包括将Atomic transaction传递给下游SN去执行。
Atomic transactions不需要支持每个地址空间。
如果对于一个Snoopable地址支持Atomic transactions,那么它们必须支持Snoopable地址空间。
如果一个地址不支持atomic transactions,那么必须回error response。
如果Atomic transaction是访问Device设备,那么必须传播给合适的endpoint slave,但如果该slave配置为不支持Atomic transactions,那么ICN对于atomic transactions的访问必须返回error response。
对于Non-snoopable transactions,atomic transactions必须在:1. 对其它agent可见的节点上处理;2. 在endpoint上处理。
对于Snoopable transactions,ICN可以:1. 在ICN内执行atomic operation,这需要ICN执行合适的Read、Write和Snoop transaction来完成Atomic transaction;2. 如果endpoint slave支持处理Atomic transactions,那么ICN可以将atomic transaction传递给Slave,但是ICN在传递transactions给SN之前,仍然必须执行合适的Snoop和Write transaction。

3.3 Slave Node support

SN是否支持atomic transactions是可选的。Atomic_Transactions property用于指示SN是否支持Atomic transactions。如果对于特定的memory type或地址范围,SN支持atomic transactions,在接收到一笔它不支持的atomic transaction,SN必须返回error response。
————————————————

版权声明:本文为CSDN博主「谷公子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接: https://blog.csdn.net/W1Z1Q/article/details/104252613

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值