Benoit在互连IP、ASIC工程和半导体IP方面拥有三十年的经验。 他于2013年加入Arteris,担任负责全球应用工程的应用总监,并提升为负责FlexNoC产品开发的技术副总裁。 在加入Arteris之前,他曾在欧洲的Sonics和Thomson Multimedia工作。
Benoit拥有七项发明专利,获得巴黎Pierre et Marie Curie(UPMC)大学微电子学研究生学位。
1.什么是片上网络(NoC)?为什么系统级芯片(SoC)设计需要NoC?
在介绍NoC相关历史之前,我想提出一个观点:NoC是一种SoC架构。从字面上看,NoC是SoC架构师在其框图和平面图中绘制的IP模块之间连接的逻辑和物理实例。如此众多的SoC设计团队从Arm、Synopsys和Cadence等公司获得IP模块的授权许可,SoC设计趋向于同质化。实现SoC差异化设计的关键在于架构师如何选择和连接这些IP模块以满足他们的系统级要求。
2.片上网络(NoC)相比传统的总线接口通信有什么优点和缺点?
SoC所包含的IP模块数量不断增加,同时片上服务质量(QoS)、仲裁和数据流优化的复杂性越来越高, NoC逐渐取代总线和交叉开关(crossbar),而成为片上互连的行业标准。总线是共享的通信资源,除了最简单的系统之外,总线无法提供系统所需的带宽。交叉开关虽然可以提供足够带宽,但是其大小随着所连接的IP模块数量成倍增长,并且大型的交叉开关根本无法构建。 它们都不能很好地利用布线,而布线可是当今芯片技术中最为昂贵的东西。NoC可以极大地减少裸片面积(尤其是更少的布线),功耗更低,而且可以对片上数据流和服务质量进行微调优化,甚至可以提供数据保护功能以提高整个系统的功能安全性。
总线是系统级芯片发展的早期阶段所采用的标准,那时连接的IP模块(CPU、存储器和外围控制器等)可能不超过20个。 然而,随着更多IP模块连接到总线,它们开始争夺优先级和可用的带宽。总线需要集中的仲裁器和地址解码逻辑,而随着主机和从机数量的增加,大家竞争同一条总线资源,这反而成了SoC性能的瓶颈。
另一个问题是,针对总线定义的信令和事务没有与传输通信分开。总线不会区分通常归类为事务、传输和物理层的活动,因此总线结构无法适应系统架构的变化,或不能充分利用芯片工艺技术的迅速发展。
相反,片上网络(NoC)采用独立的事务、传输和物理层三层通信机制,来实现IP模块的通信。 事务层可以接受AMBA、OCP甚至用户定义的事务协议(读取、写入、响应等),然后将其发送到传输层以便转换为数据包。数据包转换可以使用任何能够支持的事务协议来混合数据流,从而实现SoC的IP“即插即用” 。 此外,数据包转换还可以灵活地为预期的系统级数据流特性而自定义物理层。 这样可以针对物理组件(如交换机、防火墙等)及其链接进行带宽、距离跨度、成本、所需功耗和数据完整性等方面的优化,而不会影响传输和事务层。
仍然有一些小型SoC设计会使用总线结构,例如基于Arm Cortex-M的MCU设计,其中集成的IP模块可能只有10来个。但是我们看到,即使是这些设计也开始往NoC互连转移,特别是那些有低功耗要求的设计,要求系统具有多个电源和时钟域,而且相互之间要通信。在处理不同的时钟和电源域方面,NoC比总线甚至交叉开关都要好得多。
3.高性能的SoC设计在性能、功耗和尺寸方面面临哪些挑战?
现在大多数高性能SoC设计均使用10 nm以下的先进工艺节点,其中晶体管的尺寸可缩小到令人难以置信的地步。这样就可以将数十亿个晶体管集成到一颗裸片上,而几年前同样尺寸的裸片只能容纳几亿个晶体管。然而,金属线宽还没有缩小到晶体管那么小,当系统中添加更多IP模块时,连接它们所需的金属线数量却随之增加,并且数据在片上传输所需的距离也增加了。对于5年前的SoC设计而言,NoC可能占裸片面积的10%,但在当今的先进高性能SoC中,这一面积比却在增加。但是,我们也在不断改进NoC技术,使其能够在高性能应用的高时钟频率和高电压下运行。而当NoC不需要大带宽时,我们能够非常快速、透明地“使之节流”至节能模式。NoC技术提供了很多“杠杆”,SoC架构师可以使用它们针对特定的性能、功耗和面积要求进行优化。
4. 5G、AI和自动驾驶等新兴应用对SoC设计提出了什么特别要求?
所有这些新兴应用都在创新的独特架构中使用人工智能/机器学习硬件加速器IP。 SoC架构师面临的首要挑战是如何为这些加速器提供高带宽数据流,这就要求优化NoC以提供所需的带宽而又不能阻塞整个系统其余部分的通信。
其实最具技术挑战性的AI / ML实施是在汽车和机器人领域,这些应用会使用神经网络边缘推理。但有一个问题,架构师必须同时满足实时要求(比如在击中目标对象之前对其进行检测和分类)和功能安全性(空气中一点辐射变化可不能导致机器人发疯或汽车碰撞)。NoC技术提供了基础技术,可确保整个SoC的通信延迟、带宽和仲裁优先级,同时还通过ECC、硬件复制和检查等技术手段来保护数据及避免信令硬件故障。
5.有哪些跟SoC设计相关的先进技术值得关注?
当我们为无人驾驶的自动驾驶汽车开发系统时,必须确保SoC即使出现故障也可以继续安全运行。在航空系统中,我们用到一些“宏观”级别的传统技术,会使用三重模式冗余和详尽的检查来确保安全。这些技术已被应用到“微观”的半导体级别,纳入到SoC设计中。但是,除了简单地三倍增加逻辑(以及导线和门)以满足要求之外,我们还需要做更多的事情,我相信在这一领域会有很多创新。
我们认为需要采用新技术的另一个领域是使用芯粒(chiplet)来扩展SoC。我们的客户已经表示出担心,对于某些用例,当前的标准(例如CXL和CCIX)对系统有多大的负担和影响。绝对需要低延迟、高带宽的芯粒互联,这种连接可以让单个NoC透明地跨越多个芯粒。
责编:Amy Guan