片内互联技术发展概述
先提两个问题。
Q1. 什么是总线?什么是片上总线?什么是互联?
Q2.为什么要制定互联技术标准?
-------------------------------------- 以下为正文 --------------------------------
一个运行的系统主要承担两项任务,一是数据处理,二是数据通信。这里不讨论处理,只讨论通信。按照距离划分,由远及近依次包括远程设备间通信,主要采用网络通信技术(如互联网、物联网、卫星通信、移动通信等);近距设备间通信,主要采用区域通信技术(如Wifi、蓝牙、USB、UART等);板内芯片间通信,主要采用片间互联技术(如PCIe、以太网、RapidIO、SPI等);片内Die间通信,主要采用Die间互联技术(如XSR/SIP SERDES、AIB/MDIO、LIPINCON、BoW等);Die内IP间通信,主要采用IP互联技术(如总线、Crossbar、NoC等)。
这里不讨论设备间的通信,只聚焦于片内,即Die间和IP间的互联。互联包括物理层、接口层、通信层和协议层,其中IP间互联属于Die内互联,不涉及物理层。互联技术的演进由系统架构驱动,因此在讨论互联技术之前先回顾一下系统架构的发展。
在摩尔定律驱使下,芯片发展的目标永远是高性能、低成本和高集成。随着单芯片可集成的晶体管数量越来越多,工艺节点越来越小,隧穿效应逐渐明显,漏电问题越发凸显,导致频率提升接近瓶颈,为进一步提升系统性能,芯片由单核向多核系统发展;
随着市场需求日趋多样化,特殊场景对算力要求的不断攀高,同时在摩尔定律接近失效的今天,先进工艺所带来的性能提升越来越小,导致通用计算已力不从心,需要针对每种计算设计专用处理模块,才能达到系统整体性能提升的目标,这就是异构计算的思想,自此芯片系统也逐渐进化到多核异构系统;
在后摩尔时代,先进工艺的研发成本过高,而市场需求变化又太快,导致应用碎片化严重,很难确保一颗大而全的芯片可以成功覆盖所有需求,而过高的研发成本和因Die面积过大造成的良率下降也导致芯片成本大幅飙升,为延续摩尔定律,采用多芯片异构集成的方式取代单一大芯片,以确保在可接受的成本下进一步提升集成度和性能,因此芯片系统也逐渐演进到众核/众核异构系统(当前最热门的就是Chiplet,小芯片系统)。
芯片系统以处理器为核心,主要分为面向PC机和服务器应用的CPU(x86指令集,Inte和AMD为主)系统,以及面向移动终端应用的SoC(ARM指令集,ARM为主)系统两大阵营。
从上面两个分支又分别形成两种多核系统,一是源于SMP(Symmetric Multi-Processing System)系统的CMP(Chip Multi Processors),即单芯片多处理器,主要用于高性能通用计算领域,如Intel、AMD等;另一种是由SoC(System on Chip)演进而来的MPSoC(Multi-Processors System on Chip),主要作为高端的嵌入式处理器,应用于通信、信号处理和多媒体处理等领域,如ARM等。
到了众核时代,两大阵营又有融合的趋势,真所谓“天下大势,分久必合”也。
下面就两大阵营分别介绍其在单核和多核时代出现过的互联技术,以及众核时代来临后的技术趋势。
①CPU系统,以Intel和AMD为主
面向单核系统,有FSB技术,早期CPU与内存之间的通信总线,采用星型结构,Intel和AMD均曾使用;
面向多核系统,有多核通信总线技术(Hyper Transport,HT),采用Crossbar结构,由AMD提出并公开,NV、ATI和IBM均曾使用;多核点对点通信总线技术(QPI),采用环形结构,由Intel提出并独享;CCX技术,由HT总线演进而来,可用于多核及多核异构通信,采用Crossbar结构,由AMD提出并独享;Mesh技术,用于12核以上的系统,采用Mesh结构,使用NoC技术,由Intel提出(技术主要来自于其收购的NoC IP公司NetSpeed)并独享。
②SoC系统,以ARM为主
接口层和协议层采用AMBA协议标准、通信层可采用多种拓扑结构,如总线型、Ring型、Crossbar型和Mesh型等。
面向单核系统,有APB协议,采用总线结构,用于低速外设连接;AHB/AHB-Lite/AXI协议,采用总线结构,用于高速外设连接;
面向多核系统,有NIC技术,采用Crossbar结构,没有固定拓扑,不支持一致性,适用于简单场景;NoC技术,采用Mesh结构,没有固定拓扑,采用小路由器作为节点,连线更少频率更高,支持一致性,可以连接大量设备;CCI技术,采用Crossbar结构,固定拓扑,支持一致性,适用于少量处理器;CCN技术,采用Ring结构,通过固定交叉点连成一个环,延迟大但频率高,支持一致性,适用于16核以上处理器;CMN技术,采用mesh结构,通过固定交叉点形成N x N网络,支持一致性,适用于更多处理器核。
③众核时代
进入到众核时代,两大阵营不约而同采用了多Die扩展的技术路线,Die内的IP互联仍然沿用多核时代的互联技术,而Die间互联则通过在物理层、接口层、通信层和协议层制定一系列标准来实现。
物理层,有基板封装技术(MCM),通过基板走线的方式进行Die间互联,如低功耗超短距离(ultra-short reach,USR)SerDes就采用此方式;硅中介层技术(silicon interposer),在Die的底部加入一层硅,作为中介层连接多个Die,如HBM就采用此方式;嵌入式多芯互连桥技术(Embedded Multi-die Interconnect Bridge,EMIB),在基板制作过程中嵌入具有多个布线层的电桥,通过这些桥实现多Die间的互连,如AIB就采用此方式;
接口层,有超短距离连接接口(extra short reach,XSR)或112G USR,采用串行接口,由光学互联网络论坛(Optical Internetworking Forum,OIF)推动;开放式高带宽互连接口(Open High Bandwidth Interconnect,OpenHBI),采用并行接口,由开放计算项目(Open Compute Project’s,OCP)的开放领域专用体系结构(Open Domain-Specific Architecture,ODSA)子项目推动;高级接口总线(Advanced Interface Bus,AIB),采用并行接口,目前已演进到2.0版本,单线速率为4GBps,接口带宽为7.6TBps,能耗为0.1pJ/bit(1pJ=10-12 x 焦耳=10-12 x 1Ws),由Intel开发;电线束接口(Bunch Of Wires,BOW),采用并行接口,引用了模块间的无差错通信,在距离1mm时两端全双工带宽为0.7Tbps,能耗为0.25pJ/bit,下一代产品预计实现1.3Tbps的无错全双工带宽,由GUC发布;
通信层,有点对点拓扑,延迟小,设计简单,但扩展性差;总线拓扑(Bus),通过全局总线与各个Die连接,当连接数量过多时总线频率无法进一步提升;网络拓扑(Mesh),以路由和包转发为特点,可以灵活扩展,适用于大数量的Die间互联;
协议层,有计算表示连接协议(Compute Express Link,CXL),用于处理器、内存扩展和加速器的缓存一致性互连,目前已更新至2.0版本,通过保持CPU内存空间与连接设备上的内存之间的内存一致性,来实现资源共享并降低软件堆栈的复杂性;高速缓存一致性互连协议(Cache Coherent Interconnect for Accelerator,CCIX),是一种能够将两个或两个以上器件通过缓存一致性的方式来共享数据的片间互联标准,由CCIX 联盟提出;一致性网格网络协议(Coherent Mesh Network,CMN),也开始增加Die间互联的协议。
至此,做一个小结:
- 互联技术发展由系统架构驱动,而系统架构的演进则依赖于应用需求的不断变化;
- 互联技术涵盖物理层、接口层、通信层和协议层等多个层面;
- 未来应用要求多样化和高能效,芯片系统向众核异构发展,新一代互联技术则以NoC和Die间互连(Chiplet)为主。