出品 | CSDN(ID:CSDNnews)

译者 | Arvin,责编 | 郭芮

以下为译文:

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和漏洞。

原文:https://semiengineering.com/why-its-so-hard-to-create-new-processors/

本文为CSDN翻译文章。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

为什么很难创造出新的处理器?相关推荐

  1. Ruby之父:写Ruby时工作特别闲,总加班的人很难做出创造

    上个月 Ruby 之父松本行弘来到中国参加 Ruby Conf 大会,期间他接受了二叉树视频的采访,我们很荣幸获得了二叉树视频的授权,转载了这篇文章,希望各位读者看到一个不一样的松本行弘. 视频丨二叉 ...

  2. 为什么移动处理器和桌面处理器很难直接通过跑分来比较

    你知道不同公司出品的处理器的架构不一样,也就是说内部电路不相同,自然他们的指令集也不相同.最开始的时候,处理器支持的指令很少,可能只支持加法,减法,跳转,赋值等操作.但是随着时间的推移,无限制的提高某 ...

  3. 人机融合很难,恰当的人机分离更难

    人类社会是一个多领域的复杂系统,所以不但需要智能化,更需要智慧化.智能化一般指利用人工智能技术来处理信息.决策和控制,针对特定问题的表现出了很高的效率和准确性,可以应用在很多领域.但是,在复杂系统中, ...

  4. 面试Java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:hsm_computer 链接:https://www.cn ...

  5. 为什么一线互联网公司的校招高薪都是算法类,工程岗校招很难拥有高薪吗?...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达本文整理自知乎问答,仅用于学术分享,著作权归作者所有.如有侵权,请联系后台作删文处理. 观点一 作者|知 ...

  6. 5 个被忽视的习惯,决定了你很难成为高级开发工程师!

    整理 | 张仕影  责编 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 每个初级程序员都希望有一天能成为一名高级开发工程师. 当程序员想要转向更高需求以及更高层次的角色时,他们的能力也必须 ...

  7. 高端android手机,高端机型很难选择?这几款手机就很不错,你肯定有中意的

    高端机型很难选择?这几款手机就很不错,你肯定有中意的 2020-09-01 13:42:20 1点赞 1收藏 2评论 对于那些*级水准的手机来说,虽然它们距离真正的旗舰只差那么一点点,但是性能方面可不 ...

  8. 做技术的为什么很难发财?

    ‍ ‍ 大家经常说一个观点,做技术的很难发财.你去观察统计下身边老板,好像大多数也不是做技术出身. 那为什么做技术的人很难发财呢?是不是技术不重要? 我个人觉得这个问题可以从以下几个角度分析.本文仅供 ...

  9. 为什么哲学是最难的学科_什么是哲学哲学对大师来说可能非常理论化,没有一定哲学基础肯能很难 爱问知识人...

    我的总结是 科学哲学是从哲学角度考察科学的一门学科.它以科学活动和科学理论为研究对象,探讨科学的本质.科学知识的获得和检验.科学的逻辑结构等有关科学认识论和科学方法论的基本问题. 哲学是什么? 这是一 ...

最新文章

  1. Maven出现User setting file does not exist ...\.m2\setting.xml的问题解决(同时也解决用户.m2目录下无setting.xml文件)
  2. sklearn自学指南(part1)--Machine Learning in Python
  3. HashMap是如何工作的
  4. tohexstring方法_Java Long类toHexString()方法的示例
  5. iPhone8 和 X 买哪个?听我的
  6. GMIC来了 HTC VIVE细化VR梦
  7. 图解23种设计模式,不信你学不会!(建议收藏)
  8. Android_Kotlin原生开发_声明变量与内置数据类型---Kotlin工作笔记002
  9. AngularJS中$apply
  10. 计算机二级在线练,计算机二级操作练习题.doc
  11. 程序员英文简历范例(前端)
  12. 51单片机用HS0038B读取遥控按键码
  13. matlab 求隐含波动率,matlab求解资产隐含波动率及无风险利率初探.doc
  14. SSM SpringBoot vue快递柜管理系统
  15. python对excel分列转多行
  16. NODEJS day_04(5.24)Express-2
  17. 手写HashMap,快手面试官直呼内行
  18. 电脑微信多开营销号养成技术详细教程
  19. 利用frm和idb文件恢复mysql数据
  20. C语言笔记——题目“股神”

热门文章

  1. spring整合mybatis(入门级简单教程4)--扫描mapper类
  2. 比利时皇家科学院院士Luc De Raedt:从统计关系人工智能到神经符号计算
  3. 干货 | 22道机器学习常见面试题目
  4. 数据蒋堂 | SQL是描述性语言?
  5. 我离开Uber,开始自主创业后......
  6. 成本砍砍砍!不用数据也能用 BERT 做对比学习?
  7. 清华姚校友陈丹琦斩获2022斯隆奖!博士论文是近十年最热之一!共计27位华人入选...
  8. 院士:国内科研目前内卷太严重,勿简单“抬轿子”
  9. AI顶会组团“改版”:NeurIPS 2020宣布deadline延期三周
  10. 北京大学年度人物揭榜!发论文、搞科研,看“学神打架”!