Chiplet(芯粒)已经成为设计师的战略资产,他们将其应用于各种应用中。到目前为止,Chiplet的验证环节一直被忽视。ESD联盟的执行董事Robert(Bob)Smith与Breker Verification Systems的首席执行官Dave Kelf就该话题进行了讨论。 01 Chiplet的验证需求有哪些变化? 对单个零部件的功能验证不会发生改变,但在封装中使用Chiplet时与单个芯片不同,它对验证提出了新的要求。我认为这对整个SoC验证过程都有着重大而戏剧性的影响! 02 您能具体谈一下吗? Chiplet具有许多优势,包括极大地提高了灵活性,因为在一个封装中,芯片可以来自不同的制造商甚至采用不同的技术。例如,英特尔的处理器可以是一个Chiplet,另一家公司的专用IP也可以是另一个Chiplet。每个Chiplet制造商都只负责制造他们自己的小芯片,因此最终封装中可以包含来自不同代工厂制造的、具有不同功率、性能等参数的器件。 虽然Chiplet为半导体行业带来了巨大飞跃,但其最主要的复杂性来自于Chiplet中各芯片之间的接口或连接。这可能会让Chiplet的验证更困难。 当单个芯片进行封装时,芯片的I/O需要连接到封装的引脚,这种互连可能存在延迟的问题。通常,在片外时,对性能要求则较低。因此,芯片到引脚的互连不是一个问题。 通过连接多个Chiplet来构建系统与考虑单个芯片大不相同,因为设计者通常所需处理的信号都只是在一个SoC内流动。在SoC中,设计者可能需要有高性能的片上网络或结构,考虑到设计中的复杂性和各个不同分区,他们需要这种性能。 将SoC分解为不同的Chiplet意味着信号将从一个Chiplet转移到另一个,这很像引脚互连。但可能导致系统内存在潜在的延迟和功率问题,因为信号必须从一个Chiplet传递到另一个Chiplet。这些连接的信号延迟是至关重要的。 在设计基于Chiplet的系统之前,工程师无需应对单个Chiplet之间存在的高性能、低延迟连接的挑战。 此外,从一个Chiplet到另一个Chiplet的延迟可能会导致定时危害,从而导致整个系统中数据一致性问题的增加。这也是需要面对的一个复杂的验证挑战。 03 Chiplet的验证要怎样变化来支持这一需求? 首先是如何处理Chiplet-to-Chiplet的接口问题。PCI Express互连标准(PCIe)是一种用于互连组件的通用标准。CXL是一种建立在PCIe之上的较新标准,专注于将处理器或计算单元与存储或内存单元进行连接。它在PCIe的基础上,还添加了一致性协议。 一致性是指确保设备中存在于不同区域的相同数据保持一致。一个很好的例子就是多个内存级别之间的经典缓存一致性问题,如位于处理器旁边的高速缓存、多个处理器之间共享的低速内存以及片外存储。这三个级别的缓存在各自的地址位置中必须具有相同的数据。当执行存储系统时,数据页在各存储器级别之间进行交换。在不同内存级别定义不同数据,可能会丢失一致性。再加上位于同一总线上的多个处理器,都对这些存储器进行读取和写入,其他I/O组件或专门的IP块也需对存储器进行读取或写入,有时它们还会绕过处理器。 随着系统变得越来越复杂,出现一致性问题的几率也越来越大。在复杂的SoC中保持一致性是一个大问题,目前它通过处理器和结构使用各种协议来进行处理,例如Arm的ACE协议。 再来看一下Chiplet和Chiplet之间的接口延迟问题。处理这些接口涉及的额外延迟导致的一致性问题,让原本的问题更复杂,原本的设备之间就已经存在违反一致性的问题。 一种名为UCIe的新标准已经出现,可以帮助解决这一问题。研究Chiplet的公司也正参与开发该标准,在CXL和PCIe的基础上,添加更多协议,以实现这些需保持一致性、低延迟、高性能的接口。UCIe将是处理低延迟和高性能问题的重要标准,同时它也可确保同一封装中多个Chiplet的一致性。 那么,如何验证这些多Chiplet系统之间的一致性呢?业界已经开发了一系列一致性测试协议,以一种旨在梳理一致性问题的方式来锻炼系统。同时也围绕SoC构建了一个测试系统,该系统在整个芯片上进行读取和写入,充分发挥了一致性。这些公共协议的一个典型例子就是Dekker算法,它为存储器子系统和结构的各个区域提供了在特定范围内的不同读取和写入。 除了这些公共算法外,还需要针对多Chiplet系统中的Chiplet和数据流开发特定方法。新的专有算法已经在开发中,它将被用来执行适用于多Chiplet系统的负载存储运行测试。 与进行常规功能验证的验证平台不同,多Chiplet系统需要专用验证平台来测试其中的“管道”,以确保系统周围不存在数据风险或不一致性。 04 看起来Chiplet验证范围比传统功能验证更广泛 这是肯定的。测试系统基础架构变得非常重要。以性能和功率测试为例,我们在SoC级别看到了这种需求,性能问题可能会导致棘手的bug,而对于基于Chiplet的系统来说,这更具挑战性。同时运行多个测试以验证整个系统性能的机制是必须的。 再来看一下三维覆盖的概念。维度一是一个区域在一瞬间的规则组合覆盖或功能验证。覆盖检查特定部件的范围也已被同时覆盖。维度二将是顺序覆盖,其中时间上的组合覆盖元素序列被确认为被正确覆盖。第三个维度是并发覆盖,以确保这些序列中的几个序列可以在设备上同时并发操作。 为了测试一个复杂系统,特别包含多个具有快速和慢速接口的Chiplet,验证工程师需要在整个系统上同时运行许多操作。该设计可能有一个处理器通过一个接口与内存通信,运行一组测试,同时第二个处理器还与I/O进行通信。第三个测试可能是另一个I/O对Chiplet上的其他地方的另一个存储器执行直接存储器访问功能。 所有这些数据都在同一组接口中流动,因此并行测试可以解决这些接口中的性能和潜在的电源问题。它会发现系统中的瓶颈,例如,当多个操作正在运行时,有一个接口可能已被过度使用。这一点很难被发现,除非在软件模拟器或硬件模拟器上运行完整的并发执行视图。 05 并发是一个主要因素。Chiplet的验证工具还需要具备什么功能? 还有就是一些核查项目,但它们也不属于传统意义上核查进程的一部分。例如,安全测试已成为许多系统的必要测试项目,以确保设备不会被恶意入侵。某些设备的安全测试也很重要。很长一段时间以来,行业在早期就讨论了软硬件测试的重要性,现在这也成为这些新系统的强制性要求。 例如,有两个不同来源的Chiplet。一个Chiplet会使用敏感数据,安全性在其整个开发过程中都显得非常重要。假设第二个Chiplet可以对第一个Chiplet进行读写,并且访问安全区域的协议尚未被完全验证。那在Chiplet的新世界里,第二个Chiplet有可能会被用来为另一块安全功能Chiplet增添漏洞。这听起来有些异想天开,但国防领域已经就预防该问题进行了数百万美元的投资。 06 你认为这会是一个新领域吗? 肯定是的。功能缺陷通常是在功能块级别才被发现,但性能和瓶颈问题通常仍然是系统级别的问题。它们不是一类bug,是基础架构错误。 基础架构验证是一个新类别,它属于SoC验证,我们在我们合作的公司中已经看到了更多。我们讨论过的无法在功能块级别进行测试的系统级错误正变得越来越普遍。Chiplet与其使用的UCIe接口使这种情况变得更糟。 07 对于Chiplet,我们需要新的验证标准吗,如UVM或便携激励(Portable Stimulus)? 我认为不需要。Accellera的便携刺激标准(PSS)在系统层面就处理了这些需求。它允许定义一个图形模型,该模型描述了系统中的交互及其应用场景,可用于生成并发测试。UVM在功能块级别表现很好,但很难扩展到系统级别。PSS也能处理系统级别的必要重用,从而能够为许多场景创建可配置的SystemVIP。 08 你是否看到有很多公司已经开始采用Chiplet设计? 是的。生产各类半导体系统的公司,尤其是处理器公司,都对Chiplet很感兴趣。大多数重要的半导体公司都已经加入了UCIe标准联盟。他们都认为Chiplet将是未来半导体行业发展的关键。 09 Chiplet适用于所有的市场和应用吗? 我认为是的,尽管有些领域会需要更长时间才能使用Chiplet。半导体应用最多的市场将首先受益,包括服务器市场和所有的通信和移动电话基站、大型汽车芯片以及人工智能芯片。Chiplet的应用领域是没有限制的。
|