tilelink学习笔记(一)

五条通道

本文理解基于tilelink的spec 1.8.0:
https://sifive.cdn.prismic.io/sifive%2Fcab05224-2df1-4af8-adee-8d9cba3378cd_tilelink-spec-1.8.0.pdf

  • 关于5条通道
    每个网络链路中,TileLink 协议定义了五个逻辑上相互独立的通道,代理可通过它们传递消息。为了避免死锁,TileLink 强制规定了这五个通道上传输消息的优先级
    大部分通道包含控制传输的信号以及实际数据的副本。通道上消息的传递是单向的,主向从接口传送消
    息,或从向主接口传送消息。图 2.4 标明了五个通道的方向。
    任何访存操作都需要两个最基本的通道:

通道 A: 传送一个请求,访问指定的地址范围或对数据进行缓存操作。
通道 D: 向最初的请求者传送一个数据回复响应或是应答消息。

最高协议兼容层 TL-C 额外包含另外三个通道,具备管理数据缓存块权限的能力:

通道 B: 传输一个请求,对主代理已缓存的某个地址上的数据进行访问或是写回操作。
通道 C: 响应通道 B 的请求,传送一个数据或是应答消息。
通道 E: 传输来自最初请求者的缓存块传输的最终应答,用于序列化。

tilelink学习笔记(一)
各个通道传递消息的优先级顺序是 A << B << C << D << E 。设置优先级保证了消息在TileLink 网络的传输过程中不会进入路由环路或是资源死锁。换句话说,代理间消息在所有
通道上的传输过程仍然保持为有向无环图。这对 TileLink 保证无死锁来说是一个必要的特性

  • 信号描述
    以下用表格的形式介绍了 TileLink 五个通道使用到的所有信号,汇总在表 3.3。当结合
    每个通道的方向,表 3.2 的信号类型决定了信号的方向。这些信号的宽度由表 3.3 描述的值
    进行参数化。
    tilelink学习笔记(一)
    AD为必须实现,BDE为可选
    我理解TL-C独有部分是写回形式的实现,而如果只用A和D是直写式的实现
    tilelink学习笔记(一)