
CHI
文章平均质量分 90
CHI协议学习
Bug_Killer_Master
以Bug为伴,以Bug为生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CHI 协议介绍
一致性总线接口(CHI)是AXI一致性扩展(ACE)协议的演进。它是Arm的AMBA总线的一部分。AMBA是一种免费可用、全球采用的开放标准,用于SoC中功能模块的连接和管理。它有助于一次性正确开发具有大量控制器和外设的多处理器设计。CHI适用于需要一致性的各种应用,包括移动、网络、汽车和数据中心。AMBA CHI旨在维护组件数量和流量不断增长的系统中的性能。CHI旨在实现可扩展性,用于构建小型、中型或大型系统。转载 2024-04-25 16:59:58 · 4493 阅读 · 0 评论 -
CHI协议(6)
举个简单例子,假设在银行的服务器上,一个进程负责处理某个用户的账户余额,如果别的进程也来修改这段的数据,那么就需要一定的机制保证这段数据不会乱掉。其中一个比较常见的算法是CAS(Compare And Set),顾名思义,就是读出某段内存地址的数据,如果跟期望值一样,那么就改写该数据,如果与期望值不一样,就认为此次操作失败。对应到处理器端的操作,最简单的机制是先读出数据,计算新的数据值,再次读出该地址数据,如果与第一次读出的值一样,就认为这段时间内没有其它访问,可以把新数据写回,完成此次操作;转载 2024-04-28 16:08:23 · 451 阅读 · 0 评论 -
CHI协议(5)
但是如果缓存中的数据(可能)不唯一,就牵扯到了缓存一致性,修改它的处理器必须通知其它也拥有该拷贝的缓存控制器并得到响应,要么无效掉(invalidate)其它的拷贝,要么更新(update)其它的拷贝,这些就是高速缓存的“写无效”和“写更新”策略,忘了的同学可以看看前面讲cache的文章《必须对其它缓存的该缓存行进行无效后,获得U态后才能将该缓存行进行改写。UCE:Unique Clean Empty,该缓存行的数据只在当前缓存中,但是所有的数据都是无效的,可以不知会其它RN就对该缓存行的数据进行修改。转载 2024-04-28 16:07:12 · 496 阅读 · 0 评论 -
CHI协议(4)
当Completer对request进行retry,它需要记录该笔request的来源,也需要决定和记录Protocol Credit的类型,因为后续PCrdGrand的P-Credit type要和RetryAck中的一致。对于访问Non-cacheable或Device memory的read transaction,RespSepData或CompData响应可以保证对同一端点地址范围的transaction会被任何agent随后的transaction观测到,端点的地址范围取决于具体实现;转载 2024-04-28 16:05:55 · 445 阅读 · 0 评论 -
CHI协议(3)
通过node ID可以在ICN路由,RN和HN,HN和SN之间有不同的通道,每个通道有自己字段(fields),对于transaction request,data,snoop request和response来说,包含的字段不一样。也可以直接跳过HN,返回数据给原始Requester,这样可以减少读数据的延时。在基于CHI的系统中,处理器的读请求可以通过很多种来源得到数据,比如:互连中的cache(一般是last level cache),SN(存储设备)或者其它的RN-F(拥有该数据的缓存行)。转载 2024-04-28 16:04:01 · 724 阅读 · 0 评论 -
CHI协议(2)
CHI协议支持的NodeID字段宽度在7~11bits之间,由具体实现决定,且一个系统中所有组件的NodeID字段宽度必须一样,至于每个组件的NodeID值也是由具体实现决定的。首先,CHI协议规定,系统中的每个节点必须有一个节点号(Node ID)。链路层,基于flit。CHI的通道,有收/发两个方向,在发送方向上,有三个通道分别是REQ,WDAT和SRSP;我们知道在AXI和ACE协议中,处理器和ICN,或者ICN与从设备之间的数据传输是通过通道(channel)完成的,同样在CHI中也有通道的概念。转载 2024-04-28 16:02:12 · 381 阅读 · 0 评论 -
CHI协议(1)
目前常用的SoC互连是下图中的方式:交叉开关(crossbar),这种结构相对简单,互连部分延时小,多用于数量不多的组件互连,缺点是如果互连组件太多,这种结构的内部走线会非常多,不利于物理实现,比较常见的crossbar类型IP如ARM公司的NIC-400;二维网格(mesh),这种拓朴结构可以提供更大的带宽,而且是可以模块化,通过增加网格的行或列来增加更多的节点,ARM的CMN-600就是基于mesh的互连IP。除去自夸部分,首先我们能看出来,从CHI开始协议分层了,这是跟以往的总线协议不同的;转载 2024-04-28 15:57:40 · 546 阅读 · 0 评论