电子说
以下为译文:
RISC-V处理器指令集体系结构(ISA)的问世和最初的成功重新激发了人们对定制处理器设计的兴趣,但是业界现在正在努力解决如何验证它们的问题。过去20年来,市场上曾经存在的专业技术和工具已经被少数几家生产处理器芯片或IP内核的公司所掌握。
处理器的验证不同于其他IP的验证,甚至不同于SoC的验证。处理器是通用硬件的终极组成部分,它会产生自己的独特问题。
Cadence Design Systems公司副总裁兼总经理Paul Cunningham说:“它可以运行任何软件程序。” “它是您可以想象到的最可配置的深度状态设备之一。确切地说,我已经完成了对CPU的验证,就是说您已经运行了所有可能在CPU上运行的软件程序。当然这是非常棘手的。CPU验证是非常困难的。”
在一个硬件必须尽可能灵活的时代,在软件中尽可能多地进行操作是明智的。Imperas软件首席执行官Simon Davidmann表示:“一家公司发现,在处理器中使用一些软件来构建状态机要比在Verilog中创建状态机要好得多。” “如果您在Verilog中构建状态机并发现错误,则必须重新改造芯片。但是,如果您使用状态机编程构建小型控制器,则可以在出现问题后再进行解决。”
但这带来了两个问题。VTool的首席执行官Hagai Arbel说:“在最近的一个处理器验证项目发现,您必须让软件团队参与这个过程。”“这带来了一系列全新的挑战,因为他们说的是一种完全不同的语言,无论是技术上还是心理上。”
第二个问题是验证。西门子业务部门Mentor的首席技术专家Duaine Pryor表示:“处理器的好坏取决于它的验证。” “暴力算法进行验证的办法是不可行的,虽然我们在高端和低端市场都看到了这种趋势。”
无论处理器内核是基于RISC-V还是独特的指令集体系结构(ISA),全面的验证都是至关重要的。OneSpin Solution的设计验证专家Nicolae Tusinschi表示:“用户再也不能指望使用传统处理器在硅芯片上进行数十年的验证了。” “ RISC-V采纳者没有特别通行证;经验表明,许多开源内核都经过了弱验证,并且包含许多基本的bug。所有处理器开发人员必须广泛验证其核心设计,记录所实现的过程和覆盖范围,并使用户能够利用此验证来处理包含核心的整个系统芯片(SoC)设计。”
处理器的某些方面是通用的,与项目规模无关。“处理器验证可以大致分为控制验证和数据路径验证,” Arm的架构师和中央工程小组成员Daniel Schostak说,“这两者都不简单,都面临着挑战。对于控制验证,主要挑战是交互组件的数量并确保覆盖所有极端情况;而对于数据路径验证,主要挑战在于确定边界情况,以便能够正确覆盖这些情况。面积、性能或功率的微体系结构特征会使这些挑战进一步复杂化。”
在开源领域,尤其是在RISC-V方面,这个问题更加复杂。“一方面,您可以进行功能验证,” Aldec市场营销总监Louie De Luna说,“但是随后您还将进行合规性测试,您需要确保任何自定义指令均与源代码兼容。这会影响您的覆盖率模型,并且实际上还没有工具流程,所以在这方面仍有许多工作要做。除了学习如何使用所有工具外,您还必须了解如何将其用于测试。”
持续变化的复杂性
尽管自2000年以来处理器性能没有显着提高,但这并不意味着复杂性保持不变。“我们仍然看到处理器的复杂性在增加,” Imagination Technologies的验证平台副总裁Colin McKellar说,“人们越来越希望从处理器中榨取更多,强烈希望拥有某种形式的独特功能集或独特的做事方式。”
对独特性的渴望正在驱动当前的趋势。“在低端市场,特别是对于边缘设备,功耗和成本约束更加严格;价格更低。” Mentor的Pryor说,“这意味着更紧密耦合的加速、可定制性、甚至删除指令都非常有价值。与高端产品相比,较小的设计和专属软件有助于降低重新验证成本,RISC-V就以较低的成本提供了易于定制的平台。总而言之,自定义的优点大于缺点,并且在更小、更封闭的系统上,推动产生了一群新的验证工程师来面对处理器(重新)验证问题。”
在高端市场,其他力量也在发挥作用。Cadence的Cunningham说:“处理器架构始于向RISC迁移更复杂的指令。” “这一趋势开始趋平,我们开始进入多核系统。然后,我们无法在多核上进行扩展。在这一点上,所有新的复杂性级别都围绕着定制的特定体系结构——针对特定垂直行业而定制的不同类型的计算引擎,例如AI、图形或视频。核心管道的潜在复杂性可能变化的速度并不快,但是仍然存在。还有更多关于安全的、有关推测执行的方面内容。”
推测执行是一种优化技术,已与许多著名的处理器漏洞(例如Spectre和Meldown)相关联。安全性是一个持续的挑战,在这个领域,设计需求仍然在增加。
“安全性是现代处理器的新维度,确保处理器启用有效安全的硬件Hardware root of trust (HRoT)是关键,” Breker Verification Systems副总裁兼首席营销官Dave Kelf说。为了验证这一点,负面验证(证明除了规定的机制之外没有其他方法可以访问区域)非常重要。正式版对此有好处,但在系统级别上容量不足。因此,允许指定和分析系统状态空间的工具将成为处理器验证团队的重要工具箱组件。”
如果期望在处理器上运行操作系统,则必须提供其他级别的支持。Valtrix Systems的联合创始人Shubhodeep Roy Choudhury说:“通用处理器有望支持所有现代操作系统以及最顶层的许多应用程序。” 这些用例中的大多数都需要硬件的支持,例如用于虚拟内存的TLB / MMU,用于虚拟化的虚拟机管理程序以及用于浮点计算的FPU,对并行执行线程的支持涉及内存顺序和缓存一致性。考虑到用例、处理器单元和交叉产品的数量,与其他设计相比,验证通用处理器是一项更具挑战性的任务。”
为验证计价
不必逃避执行处理器内核验证所必须支付的价格,您可以直接自己支付费用,也可以付钱给其他人替您支付费用。
Cunningham说:“顶级处理器公司已经进行了巨额投资,并且拥有大量的专业知识,因此他们可以提供出色的产品。” “必须记住,RISC-V是一个指令集,它不是CPU的实际实现。实施必须经过验证,并且必须具有足够的质量,并满足一定的功能,性能和区域目标。Arm不仅仅是一个指令集,他们提供了整个生态系统,为此花费了数百万美元。”
质量对处理器很重要。“Arm在每个核心上运行大约1015条指令,” Imperas的Davidmann说,“一般的RISC-V开发人员或IP提供商甚至都没有硬件仿真器,他们无法进行任何数量的验证。多年来,当人们购买Arm或MIPS和Power处理器时,他们依赖于IP供应商进行验证。”
但是,并非所有内核都那么大或那么复杂。Imagination的McKellar说:“如今,许多RISC-V项目规模都很小,而且复杂性是可以控制的。” “与验证相关的费用不会很大。但是,当您开始提高性能或添加多线程等并行化的方式增加复杂性时,它可能会迅速增长。我可以想象,半数试图制造复杂处理器的公司将会发现这是一个太大的挑战,而食物链上的人们将会停止与之相关的资金,因为它很昂贵,而且不一定能正常工作。”
Codasip副总裁Jerry Ardizzone对此表示赞同。“我们的一个客户打算使用开源的RISC-V内核和开源工具,创建108个可重复的协同处理器,但遇到了一些问题。首先,他们必须证明核心功能有效。然后,他们意识到该内核可用的唯一测试套件是开源的,因为所有其他商业工具都在由Arm,Codasip,MIPS和Synopsys等公司开发的工具包中。然后,他们必须证明所有这些处理器都可以处理35条指令以实现特定的加速,这在开源软件中非常困难。您可以从Arm购买所有产品,并确保它能正常工作。您还可以构建自己的核心,前提是您知道如何构建处理器,并可以确保它不会被锁定。但是验证始终是最大的瓶颈。”
这也可能被证明是相当昂贵的。“验证是最困难也是最昂贵的部分,”Ardizzone说,“这是一个瓶颈,至少需要几个季度的工作。每次你接触硬件,你都必须重新验证它。”
对于开源硬件,降低成本是关键卖点之一。Aldec的De Luna表示:“像Intel和Arm这样的公司确实非常擅长此事,并且您知道,将其集成到SoC中后,您将能够验证其是否有效。” “现在,业内人士说这并非易事。如果您考虑开源社区,那么很多事情都是基于预算。该行业需要建立一个端到端的流程,只有更多的合作才能实现。”
验证技术
二十年前,有多家公司生产用于处理器验证的工具。当时,大多数系统公司都拥有自己的专有处理器内核。从那时起,他们都迁移到了大型处理器公司之一,如今,专业知识已集中在这些公司中。
“多年的经验和方法学开发在能够可靠地验证和验证处理器方面具有巨大优势,” Pryor说,“我们对处理器厂商在验证流程中推动创新和提高效率的方式一直印象深刻。”
最近帮助其他人验证处理器内核的咨询公司谈论了这种体验的重要性。“我们的经验和知识至关重要,” VTool的Arbel说,“我20年前就开始进行处理器验证,但是如果这是第一次谈论此类问题,我在解决这些问题时就会遇到麻烦。即使您的处理器很小或很简单,设计验证团队也需要具备这种知识。有几种可能的解决方案,我们可能没有做到最好的方式。但是与其他类型的设计相比,您肯定需要以不同的方式解决问题。”
McKellar表示同意。“您需要专业知识和方法。它们是相辅相成的。如果没有专家,这些工具可能没有太大价值。没有工具,专家们将为之苦恼,因为工具包太弱了。世界上缺乏一流的验证工程师,许多公司正在相互竞争所需的技能。他们中的许多人没有足够的深度去完成他们需要做的事情。”
获得这些知识是困难的。Davidmann说:“如何测试一个处理器基本上已经变得封闭起来,封装在三、四家大厂商的产品中。”“只是没有很多论文、出版物或工具可以提供帮助。”
有用的建议
Cunningham提供了以下建议。“首先,也是最重要的,去雇人。确保您知道是否真的要构建自己的处理器,如果需要,请认真对待。你需要有人来领导它。”
这一切都始于计划。McKellar说:“要对自己的实际业绩和上市所需的时间表保持清醒的头脑。” “专注于尝试限制组合并减少功能。一些高级功能或功能组合对最终客户而言可能不那么有价值,但会花费大量时间和精力来正确验证它们。保持开放的心态,因为没有统一的答案。进行独立审查并接受批评非常重要,并且要非常注意尽早测试新事物。您应该尽早解决新的困难等事情,花大量的时间和精力在上面,少花时间和精力在老的事情上。”
并问自己为什么这样做。Davidmann说:“除非您试图真正做一些创新和定制的事情,否则好的解决方案已经存在。” “如果您想添加一些非常有趣的面料或自定义说明,那么也许这就是为什么您应该走RISC-V路线的原因。越来越多的人正在构建自己的或配置自己的处理器,这意味着更多的复杂性,更多的验证以及验证行业的更多机会。”
开源验证
RISC-V显然已经提高了开源硬件的概念,一些人质疑他们是否也可以期待开源验证从这里出现。SmartDV应用工程总监Bipul Talukdar表示:“开放源代码模型的成功需要一个基础架构,该基础架构才能创建真实的设计和产品,并将其投入制造并交付市场。” “必要基础架构的关键部分是RISC-V验证平台,该平台可以使用开放源代码规范以及执行ISA的CPU来准确地验证设计。”
一些人看到了希望。“ RISC-V社区正在共同努力,以帮助找到解决方案,” Imperas Software市场营销副总裁Kevin McDermott说,“也许谷歌云使用免费的riscvOVPsim参考模型开发和增强RISC-V随机指令流生成器的开源项目能够最好地说明了这一点。”
尽管如此,核心EDA工具仍不太可能被开源替代。尽管有多年处理这些问题的经验,大型处理器供应商仍然在寻找意料之外的bug和漏洞。
全部0条评论
快来发表一下你的评论吧 !