SiFive TileLink 规格书
1.7.1 草案 预发布版本(中文)
©SiFive, Inc.1
2019-06-21
1
SiFive TileLink规格书(中文版)
版权声明
Copyright © 2016, SiFive Inc. All rights reserved.
变更历史
版本
日期
修改
1.7.1-draft
2017年8月22日 预发布版
早期预览版注意事项
此早期预览版只是为了方便早期的审校,且因为其内容可能修改故可能并不适合用作具
体的实现
中文翻译团队
• 翻译:刘鹏 林容威 李沛南
• 校对:宋威 郭雄飞
ii
目录
SiFive TileLink规格书(中文版)
目录
1 介绍
1.1 协议扩展级别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 文档概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 架构
2.1 网络拓扑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 通道优先级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 地址空间属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
i
iii
1
1
2
3
3
5
6
3 信号描述
7
8
3.1 信号命名惯例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2 时钟、复位和电源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2.1 时钟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2.2 复位 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2.3 电源或跨时钟(Clock Crossing) . . . . . . . . . . . . . . . . . . . . . .
3.3 通道 A(强制) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.4 通道 B(TL-C独有) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 通道 C(TL-C独有) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.6 通道 D(强制的) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.7 通道 E(TL-C独有) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 序列化
13
4.1 流程控制规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 无死锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.1 规则中使用的定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.2 代理的转发规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.3 网络的拓扑规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3 请求-响应消息排序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.1 簇发响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3.2 簇发请求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3.3 簇发请求与响应 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4 与旧式(legacy)总线的连接接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.5 错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
iv
目录
4.6 字节通路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5 操作与消息
23
5.1 操作分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 消息分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 寻址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.4 源与目的地标识符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.5 操作排序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6 TileLink 无缓存轻量级(TL-UL)
29
6.1 数据流与波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.1 读(Get): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2.2 完整写(PutFullData): . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2.3 部分写(PutPartialData): . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.2.4 无数据确认(AccessAck): . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.2.5 带数据确认(AccessAckData): . . . . . . . . . . . . . . . . . . . . . . . 34
7 TileLink 无缓冲重量级 (TL-UH)
37
7.1 消息流图和信号波形图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.2 消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.2.1 算术数据(ArithmeticData) . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.2.2 逻辑数据(LogicalData) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.2.3 预处理(Intent)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.2.4 预处理确认(HintAck) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.3 簇发(burst)消息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
8 TileLink 缓存支持级 (TL-C)
45
8.1 使用 TileLink 实现缓存一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.1.1 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.1.2 Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.1.3 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.1.4 Permissions Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.2 数据流与波形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.3 TL-C Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.3.1 Acquire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.3.2 Probe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.3.3 ProbeAck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.3.4 ProbeAckData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.3.5 Grant
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.3.6 GrantData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.3.7 GrantAck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3.8 Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3.9 ReleaseData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3.10 ReleaseAck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.4 TL-UL and TL-UH Messages on Channel B and Channel C . . . . . . . . . . . . 60
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.4.1 Get
8.4.2 PutFullData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.4.3 PutPartialData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.4.4 AccessAck
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.4.5 AccessAckData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.4.6 ArithmeticData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4.7 LogicalData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4.8 Intent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4.9 HintAck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
目录
SiFive TileLink 规格书
1.7.1 草案 预发布版本(中文)
vi