本技术公开了一种兼容CHI协议的芯粒互联接口协议层电路及芯片,本发明的芯粒互联接口协议层电路包括与适配器层和物理层相连接的协议层中的发送单元和接收单元,发送单元包括依次相连的发送端虚通道管理模块、发送缓冲单元和打包模块,发送缓冲单元用于缓存各个通道的微包且分别包括并行的请求‑监听发送缓冲、响应发送缓冲、调测试发送缓冲和数据发送缓冲,接收单元包括依次相连的解析模块、接收缓冲单元和接收端虚通道管理模块,所述接收缓冲单元包括并行的请求‑监听接收缓冲、响应接收缓冲、调测试接收缓冲和数据接收缓冲。本发明旨在使得芯粒互联接口可以兼容CHI协议,使得ARM架构实现的芯粒可以通过CHI协议实现一致性互联。
背景技术
为满足日益增加的算力需求,芯片性能不断提升。但随着摩尔定律逐渐失效,为进一步增加芯片中的晶体管数量,单个芯片的面积不断扩大。目前单芯片面积已经逼近掩模极限,采用芯粒技术将多个裸芯(die)封装在一起构建芯片逐渐成为芯片扩展面积的主要途径。芯粒技术将芯片划分成多个小芯粒,再通过封装的方式将它们连接集成,形成集成芯片。相比单个大芯片,芯粒的面积更小、良率更高,多个芯粒组合的方式可以将集成芯片的面积做得更大、构建芯片的方式更加灵活、成本更低。在芯粒互联研究及工程实现领域,如何实现原本位于片上网络(Network On Chip,NOC)间或者芯片之间(Chip to Chip,C2C)互联协议的跨芯粒(Die to Die,D2D)传输,成为实现芯粒间高效传输的关键。
目前的芯粒互联接口电路或者芯粒互联标准采用对传统的NOC通信协议或者C2C的协议进行继承性支持的方式,以简化芯粒通信协议设计,实现对原有协议的兼容性支持,便于在芯粒间和芯粒间不同层次采用统一的实现机制。以Intel提出的PCIe(PeripheralComponent Interconnect Express)协议为例,PCIe协议主要用于CPU和外部IO设备之间实现高带宽互联,例如实现英特尔CPU与英伟达GPU之间的互联,GPU作为CPU的IO设备与CPU进行数据通信。如果芯粒与芯粒之间也支持PCIe协议,那么CPU与GPU可以各自作为芯粒,封装在同一个芯片中,两个芯粒间互联通过D2D接口实现,协议层采用与芯片间互联完全相同的PCIe协议。目前国内外已发布的主要芯粒互联接口标准有:中国Chiplet产业联盟牵头发布的Advanced Cost-driven Chiplet Interface(ACC)标准、中国计算机互连技术联盟发布的《小芯片接口总线技术要求》、中国电子科技集团公司第五十八研究所牵头发布的Chiplets Interconnect Protocol(CIP)协议、Intel牵头发布的 Universal ChipletInterconnect Express(UCIe)标准、OCP ODSA组发布的Bunch of Wires(BoW)UCIe标准规范等。这些标准及对应的接口电路支持的协议有PCIe协议、CXL协议(包括CXL.MC和CXL.IO)、AXI协议、NVLINK协议等。
CHI(Coherent Hub Interface)协议是ARM核之间常用的一致性互联协议,基于ARM架构实现的计算芯粒之间可通过CHI协议互联形成集成芯片,还可通过CHI协议形成多个集成芯片组成的处理器,也能通过CHI协议将集成芯片与未采用芯粒技术的芯片实现一致性互联。CHI协议主要用于ARM架构处理器的片上网络中,当一个ARM处理器被切分为多个芯粒后,原本在一个芯片中通过支持CHI互联协议的NOC进行通信的多个部件,将通过芯粒互联接口互联,且要求芯粒互联接口支持CHI协议。目前对于芯粒互联接口如何支持ARM的CHI协议的具体方法,无论是在芯粒接口标准中还是芯粒接口电路中研究都较少,成为ARM架构处理器采用芯粒技术扩展规模与提升性能的瓶颈。
如图1所示,芯粒互联接口标准从上至下分为协议层、适配器层和物理层三个层次。物理层包含芯粒互联接口物理链路。协议层实现对不同通信协议报文的打包与解包,在发送方将各类协议报文打包为统一的微包(Flit)格式,在接收方从微包中解析出各个类型的协议报文。适配器层作为协议层和物理层的中间层,主要负责微包数据的可靠性传输。芯粒互联接口支持CHI协议时,需要将CHI协议中不同通道的报文打包到现有芯粒互联接口协议已经定义的标准微包格式,兼容现有芯粒互联接口流量控制机制,以实现能够利用现有互联接口的适配器层和物理层的目的。
CHI协议的通道数为4,包括请求(Req)通道、监听(Snp)通道、响应(Rsp)通道和数据(Data)通道。CHI协议公开发表的第3版中规定,请求通道位宽范围为117-169位,监听通道位宽范围为51-59位,响应通道位宽范围为81-100位。数据位宽取128位时,数据通道位宽范围为202-214位。另外为便于调试,通常还会增加一条调测试Csc(CoreSight)通道(37位)。以采用UCIe标准实现的芯粒互联接口为例,一种最直观的支持CHI协议的方式是将CHI的不同通道进行多路选择,以公平轮转的方式打包为UCIe协议的512位微包,以实现复用UCIe协议的适配器层和物理层。如图2所示,每个不足512位的通道报文都要占用一个512位微包来传输,不能充分利用微包的有效负载宽度,造成带宽浪费。
综上,芯粒互联接口支持CHI协议存在两个难题:首先,如何复用现有芯粒互联接口标准及电路的适配器层和物理层,最大化资源复用,实现对现有芯粒互联生态的兼容;其次,如何高效实现CHI报文到适配器层微包格式的打包,最大化CHI报文在芯粒互联接口传输的带宽利用率。如何解决芯粒互联接口支持CHI协议的上述两个难题,已成为一项亟待解决的关键技术问题。
实现思路