文章目录
- CHI 版本介绍
- 1.1 CHI 链路层介绍
- 1.1.1 Flit 切片介绍
- 1.1.2 link layer credit(L-Credit)机制
- 1.1.3 Channel
- 1.1.4 Port
- 1.1. RN Node 接口定义
- 1.1.6 SN Node 接口定义
- 1.2 Channel interface signals
- 1.2.1 Request, REQ, channel
- 1.2.2 Response, RSP, channel
- 1.2.3 Snoop, SNP, channel
- 1.2.4 Data, DAT, channel
- 1.3 Flit packet definitions
- 1.3.1 Request flit
CHI 版本介绍
目前有六个版本的 CHI 协议,CHI-A 是 CHI 协议的第一个版本。它提供了一个传输层,具有减少拥塞的功能。
-
CHI-A 规范描述了 CHI 的基本行为:
- 新通道、CHI 术语和组件命名的定义;
- 请求、监听过滤器和缓存状态转换的示例;
- 事务排序、独占访问和分布式虚拟内存(DVM)操作的规则;
-
CHI-B 问题扩展了 CHI-A,但不能直接向后兼容 CHI-A。它添加了支持 Armv8.1 和 Armv8.2 系统扩展的功能,例如:
- 更大的物理地址宽度;
- 原子事务;
- DVM 的 VMID 扩展;
- 通道字段、事务结构和可靠性、可用性和可维护性(RAS)特性的描述;
- 直接内存传输和直接缓存传输功能,减少内存和监听访问延迟;
-
CHI-C 问题是 CHI-B 的次要扩展。此扩展主要添加了减少请求危险生命周期的功能。CHI-C 还添加了两个操作码,以减少完成确认的时间,并对协议进行了更改以支持这些操作码。
1.1 CHI 链路层介绍
链路层(link layer) 提供了数据传输的通道,链路层定义了:
- Packet 和 flit 的格式;
- 数据的流控。
下图显示了一个典型的 链路层的连接图:
1.1.1 Flit 切片介绍
一个 message 可以是 transaction request,data response,snoop request,由一个或多个packet 构成;packet 是 ICN和端点间的传输粒度。
- 一个 packet 由一个或多个flit组成;flit是最小的流控单位;
- 一个 flit 由一个或多个phit 组成;phit 是物理层传输单位,被定义为两个相邻网络设备之间的一次传输。
有两种类型的 flits:
- protocol flit: 在 flit的 payload中携带 protocol packet 数据,可以理解为各种类型transaction,比如request,read, write,snoop等;
- link flit:在link断链过程中,link flit用于返回 L-Credit 给receiver,Link flits 产生于 transmitter,截止于另一侧的receiver;link flit的Opcode域为0,TxnID域为0,其它剩余的域段可以为任意值。
1.1.2 link layer credit(L-Credit)机制
使用 L-Credits,信息可以在interface channel上传输。从transmitter往receiver发送一个 flit 必须要先获得一个L-Credit。
receiver 通过将 LCRDV 信号拉高一拍表示给 transmitter 发送一个 L-Credit,每个通道都有一个 LCRDV 信号。每次从 transmitter 往receiver 的一个flit传输都需要消耗一个 L-Credit。receiver最小能提供的 L-Credit是1个,最大是15个。receiver必须保证有能力接受所有已经发送L-Credit的flits。
当 link 为 active 时,receiver 必须及时提供 L-Credit,不能和 transmitter 的其它组件功能有任何耦合关系。L-Credit不能在同一个周期被收到就马上使用。
是什么是 Link?
如下图所示,发送端和传输端之间的flit传输即是在link上进行的:
什么是 Outbound Link 和 inbound links?
如下图所示:
1.1.3 Channel
链路层提供一组channel用于 flit 的传输, 每种channel都有固定的格式,这些格式还有多个域。
Channel | Description | Usage | RN Channel | SN Channel |
---|---|---|---|---|
Req | such as Read requests and Write requests | All Requests | TXREQ | RXREQ |
RSP | response messages, do not have a data payload such as write completion messages | Responses from the Completer Snoop Response and Completion Acknowledge | RXRSP TXRSP | TXRSP |
SNP | Snoop and SnpDVM |