chiplet之AMBA CHI C2C协议杂谈
随着半导体先进制程和工艺的发展,摩尔定律的发展逐渐趋于极限。因此,chiplet的概念迅速发展起来。Chiplet(芯粒)是指预先制造好、具有特定功能、可组合集成的晶片(Die,也叫裸片)。通过Chiplet架构,可以将不同功能,不同工艺节点的裸片通过2D、2.5D或3D的封装方式,异构集成在一起。
为了适应和推动chiplet的发展,ARM推出了CHI C2C,即Chip(let)-to-Chip(let)规范,CHI C2C协议是AMBA CHI协议的扩展。CHI C2C允许构建具有多个cpu、加速器或其他设备的系统。CHI C2C关注于CHI消息的打包,使它们适合在芯片到芯片的链路上传输。分组格式针对链路利用率和延迟进行了优化,同时避免了复杂的打包和解包方案。
CHI C2C的两个典型使用场景如下图:SMP拓扑、加速器连接拓扑。
 
添加图片注释,不超过 140 字(可选)
1. C2C的接口结构
CHI C2C的接口结构如下,包括协议层、打包层、链路层和物理层。其中,协议层和物理层不是必需的。
 
添加图片注释,不超过 140 字(可选)
CHI C2C协议的message有以下几种: 
• Request, REQ • Response, RSP • Snoop, SNP • Data, DAT • Miscellaneous, MISC
CHI C2C的通道连接如下图:
 
添加图片注释,不超过 140 字(可选)
在两个chip之间可以使用一个C2C接口,也可以使用多个C2C接口来提供更高的吞吐率。当使用多个C2C接口时,需要满足以下要求:
- 
一个transaction的message必须使用相同的接口。例如跟request对应的data和response需要跟request使用相同的接口。
- 
到同一个地址的所有request和snoop必须使用相同的接口。
- 
所有endpoint order的request必须使用相同的接口。
- 
来自同一个source的DVMReq和DVMSync必须使用相同的接口。
- 
到同一个target的MISC message必须使用相同的接口。
2. 组包
CHI C2C的传输使用container。一个container是256字节,由Link Header、协议Header和message(即payload)组成。container有两种格式:Format X和Format Y,如下图所示。
 
添加图片注释,不超过 140 字(可选)
- 
Format X:用于chiplet-to-chiplet的UCIe传输,与UCIe 256B Latency Optimized Mode兼容。
- 
Format Y:用于chip-to-chip的CXL传输,与CXL 256B latency-optimized flit格式兼容。
3. message结构
CHI C2C的事务类型跟CHI基本类似,但是CHI C2C多了Misc和WrReqData,并且CHI C2C的Req、Resp、Data进一步分成了两种类型。此外,CHI C2C不支持retry、forward snoop等事务。
 
添加图片注释,不超过 140 字(可选)
4. 流控机制
从链路层或物理层来的packet必须接收,不能反压。为每个meaasge类型提供了单独的credit。
流控要求:
- 
每个message class必须独立控制。
- 
对于每个message class,每个接收方必须提供credit给发送方。
- 
Uncredited MISC message不需要credit。
- 
要发送WrReqDataS或WrReqDataL,发送方必须要有一个REQ credit和一个DAT credit。
credit授予有两种方式:使用Protocol header或者使用MiscU消息。
1. 使用Protocol header进行credit grant:
 
添加图片注释,不超过 140 字(可选)
2. 使用MiscU消息进行credit grant:
 
添加图片注释,不超过 140 字(可选)
 
添加图片注释,不超过 140 字(可选)
CHI C2C还支持request资源平面(Resource Plane, RP),来支持request之间的传输独立性。request message最多支持8个RP。
C2C接口必须保序。C2C接口接收container的顺序必须与远端的C2C接口发送container的顺序相同。
5. DVM事务
CHI C2C支持所有的CHI DVM事务。CHI C2C的DVM事务流程如下:
 
添加图片注释,不超过 140 字(可选)
 
添加图片注释,不超过 140 字(可选)
6. 接口状态管理
C2C的接口状态管理包括:接口activation和deactivation、Coherency connect和disconnect、DVM domain connect和disconnect。
1. 接口activation和deactivation:
接口activation和deactivation用于启用或禁用所有协议流量通过接口的传输。MiscU消息类型中的activation消息支持接口activation和deactivation。接口activity有四个状态:stop、run、activate、deactivate。
 
添加图片注释,不超过 140 字(可选)
2. Coherency connect和disconnect:
 
添加图片注释,不超过 140 字(可选)
3. DVM domain connect和disconnect:
 
添加图片注释,不超过 140 字(可选)
7. 协议层属性交换
接口初始化完成后,activation顺序需要进行属性交换,在发送任何协议message之前,每个逻辑链路必须在两个方向上进行接口属性通信。
接口属性分为三类:
- 
On-chip payload
- 
On-chip opcode/flow
- 
C2C specific
链路两侧通过发送MiscU.Properties message来指示他们的capability。
每个Propertie消息中的属性值是从一组寄存器驱动的,这些寄存器定义了芯片发送消息的能力。
- 
Property_Rx:chip作为接收方的能力。
- 
Property_Tx:chip作为发送方的能力。
当属性不同时,允许发送方相应地调整其行为。所需的调整取决于属性分类和在以下方面看到的差异。
下表为接收方和发送方的片上payload属性:
 
添加图片注释,不超过 140 字(可选)
 
添加图片注释,不超过 140 字(可选)
参考:
- 
AMBA CHI C2C Architecture Specification
- 
https://www.synopsys.com/blogs/chip-design/amba-chi-c2c-system-verification-solutions.html
    人工智能芯片与自动驾驶
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号