本文选自与非网深度原创系列专题
《e世绘》
人才短缺 成本高昂 流程繁琐
验证成为CPU开发落地痛点之一
而当开源照进现实 难度倍增
RISC-V处理器阵营能否顺利过关
开源验证是否为最后救命稻草
随着 RISC-V 的成功,许多公司都开始对开发自己的处理器打起了主意。但是,处理器的验证是一项艰巨的挑战。
过去二十年曾经出现在市场上的专业经验和工具,现在都已经集中到了少数出售处理器芯片或 IP 核的公司手中。
CPU验证 核心难点
图源 | AnandTech
处理器可以运行任何软件,也是配置性最好的深能态器件之一。如果完成了对 CPU 的验证,那就意味着运行了可在该 CPU 上运行的所有软件,但现实的情况是很少有厂商会达到此标准。
在硬件必须灵活的时代,在软件中执行尽可能多的操作是趋势所在。Imperas 软件首席执行官 Simon Davidmann 表示:“如果在 Verilog 中构建状态机,当错误发生时,必须重新烧录芯片。但是,如果构建小型控制器并在进行编程,当出现问题时可有时间缓冲,进行修复。”
但这带来两个问题:首先是软硬件的融合。在最近的处理器验证项目中,必须让软件团队参与验证过程。这种做法带来了一系列全新的挑战,因为软件人员无论是在技术上还是思维层面,和验证人员不在同一频道。
第二个问题是验证。西门子业务部门 Mentor 的首席技术专家 Duaine Pryor 说:“处理器的水准取决于它验证到什么程度,采用暴力算法进行验证并不可行。”
处理器验证可以分为控制和数据路径验证两个部分, Arm 架构师兼研究员 Daniel Schostak 认为。“前者主要挑战来自于交互组件的数量,因为需要确保覆盖所有极端情况;后者挑战来自于确定边界情况,以及如何正确地覆盖这些边界。有关面积、性能或功率的微体系结构特征,也会使这些挑战进一步复杂化。”
开源加持 难度攀升
图源 | riscv.org
在开源领域,尤其是在 RISC-V 方面,这些问题变得更为复杂。一方面,工程师可进行功能验证,但随后还将进行合规性测试,且所有的定制指令均需要与源代码兼容。这会影响覆盖模型,并且目前在该领域还没有工具流程。
尽管自 2000 年左右以来处理器性能没有显著的提升,但仍然可以发现,处理器的复杂性在不断增加,人们越来越渴望挖掘出一个工艺的潜力,而且强烈希望能够拥有某种形式的独特指令集,或者以独特的方式实现某项功能。
对独特性的渴望正在推动着当下的趋势。对于边缘设备等低端产品方面,它的功耗和成本约束更加严格、价格更低,这意味着更紧密耦合的加速算法,可定制性甚至支持删除某些指令都非常有价值。与高端产品相比,较小的设计规模和专属软件有助于降低重新验证的成本。RISC-V 以较低的成本提供了易于定制的平台。总而言之,定制系统利大于弊。
图源 | AnandTech
高端产品方面,始于更复杂指令的处理器架构开始向 RISC 的方向迁移,并开始进入多核领域,而在多核上进行扩展的难度逐渐增加。到了无法增加的临界点上,所有功能围绕定制的系统结构展开,比如 AI、图形或视频等。内核流水线的潜在复杂性可能变化得没有那么快,但是它依然在变化。另外,在推测执行上,也存在安全性的问题。
推测执行是一种优化技术,现在人们已经把它和许多著名的处理器漏洞(例如幽灵和熔断)联系在了一起。处理器的安全性是一个持续性的挑战,这是一个仍然需要强化设计要求的领域。
对此,相关业内人士对与非网表示,“安全性是衡量现代处理器的一个新维度,确保处理器启用有效的硬件信任根(HRoT)是其中的关键。为了验证安全性,反向验证(证明除了规定的机制之外,没有其他任何方法可以访问相关区域)非常重要。在这种情况下,允许指定和分析系统状态空间的工具将成为处理器验证团队工具箱里的重要组件。”
通用处理器有望支持操作系统以及最顶层的应用程序,但大多需要硬件的支持,比如用于虚拟内存的 TLB / MMU、用于虚拟化的虚拟机管理程序以及用于浮点计算的 FPU。考虑到用例、处理器单元和向量叉乘单元的数量,与其他设计相比,验证通用处理器是一项更具挑战性的任务。
验证费用 直面现实
低成本是RISC-V官方宣传特色之一
图源 | AnandTech
处理器内核验证的费用不可忽视。你要么直接自己支付,要么付钱给他人替你支付这个费用。
Cunningham 说:“RISC-V 只是个指令集,并不是 CPU 的实体落地。该过程需要验证,而且必须保证足够高的质量,并满足某些功能、性能和面积目标。相比之下,Arm 不仅仅是一个指令集,他们提供了整个生态系统,他们为此花费了几亿美元。”
许多 RISC-V 项目都非常小,而且其复杂性可以控制。与验证相关的开销不会很大。但是,当开始提高性能或者添加多线程或者并行化等复杂的东西时,验证费用可能会迅速增长。尝试设计复杂处理器的公司中会有一半觉得验证的挑战太大,而这条产业链上游的人会停止资金支持,因为成本太昂贵了,而且还不一定能正常工作。
Codasip 副总裁 Jerry Ardizzone 对此表示赞同。他举例说:“有一位客户打算使用 RISC-V 内核,他们创建了 108 个可重复的协处理器,然后就遇到了一些问题。首先,该内核只有一套开源的测试套件,都在由 Arm、Codasip、MIPS 和 Synopsys 等公司开发的工具包中。然后,处理器都实现特定的加速,靠开源很难实现。当用户可从 ARM 购买所有产品。”
“验证是创建处理器的工作中最困难的部分,也是开销最大的部分,”Ardizzone 说。“这是瓶颈所在,它至少需要占去四分之三的工作量。而且,每当您开始进行到硬件环节时,都必须重新验证它。”
降低成本是开源硬件关键卖点之一。Intel 和 Arm 非常擅长降成本,当处理器的内核集成到 SoC 中后,可验证其是否有效。现在,业内人士说验证并非易事。如果把眼光投向开源社区,会发现很多事情都是基于预算。但是,整个过程需要把很多部分结合在一起。这个行业需要建立一个端到端的流程,只有更多的合作才能实现这点。
痛点背后 专业匮乏
RISC-V教育资源列表(节选)
图源 | riscv.org
二十年前,有几家公司做处理器验证工具。当时,大多数系统公司都拥有自己专有的处理器内核。从那之后,做验证工具的公司都渐渐成为了大型处理器公司的一个部门,现在,验证专业知识都集中在了这些公司中。
多年的经验和方法学在可靠地验证处理器方面发挥了巨大优势,而处理器公司在验证流程中推动创新和提高效率的方式,令人印象深刻。
VTool公司高管表示, 该公司20 年前就开始从事处理器验证工作,即使处理器复杂程度不高,设计验证团队也需要具备对应专业知识。针对特定应用,有几种可能的解决方案,可能没有找出最佳方案。但是,与竞争者其它类型的设计相比,肯定需要以不同的方式解决问题。
McKellar 表示同意这个观点。“如果专业知识与验证人员,工具可能发挥不出太大价值,反之,如果没有工具,专家们也会因为工具包太差劲而生出巧妇难为无米之炊的慨叹。这个世界上缺少足够数量的高级验证工程师,许多公司都会相互争抢拥有这些技能的人才。另一方面,很多验证工程师的水平不够深,无法应对需要完成的任务。
值得一提的是,想获得处理器验证的专业知识比较困难。关于如何测试处理器的专业知识基本上已经封锁在三到四家头部厂商内部,这个领域没有多少可以提供帮助的论文、出版物或者工具。
建议
对于高效推进处理器的开发与验证,相关业内人士也为与非网提供了部分建议。
首先,聘请相关专业人士,确保清楚自己是否真的需要构建自己的处理器,如果需要,请认真对待这件事情。
然后,一切都始于计划。请将可以实现的目标以及所需的上市时间铭记于心。把精力集中于尝试功能组合并减少功能特性上。某些所谓的高级功能或功能组合对最终客户而言可能不是那么有价值,但却会花费你大量的时间和精力来正确地验证它们。
另外,保持开放的心态,因为答案可能不止一个,没有任何一样事物能够满足所有人的需要。进行独立的审查并接受批评,而且要注意要尽早测试。您应该尽早制作并把大量的时间和精力放在新的硬件上。
最后,反观初心。Davidmann 认为:“除非真的想做创新和定制的事情,否则好的解决方案已经存在了,根本不用您劳心。如果您想添加一些非常有趣的架构或者定制指令,那也许您应该走 RISC-V 路线。越来越多的人正在构建或者配置自己的处理器,这意味着验证行业需要面对更复杂的任务,进行更多的验证,当然也意味着更多的机会。”
互动
开源验证是否可行?
图源 | electrodealpro.com
有人在想开源验证会不会在 RISC-V 架构上实现。
SmartDV 总监 Bipul Talukdar 表示:“开源模式的成功需要一个基础架构,可以在此基础架构上创建真实的设计和产品,并将其投入生产并交付市场。这个必要的基础架构的关键部分是 RISC-V 验证平台,该平台可以使用执行 ISA 的 CPU 的开源规范,以准确地验证设计。”
尽管如此,核心的 EDA 工具仍不太可能被开源工具替代。在处理器的创建过程中,真正的成本不在于 EDA 工具,而在于处理器本身的复杂性,尽管大型处理器供应商在处理这些问题上有多年的经验,但是错误和漏洞依然会出现。
领取专属 10元无门槛券
私享最新 技术干货