中文 英语

开源处理器会导致验证的转变吗?

工具和方法是存在的,但谁将实际进行验证尚不清楚。

受欢迎程度

虽然开源所承诺的灵活性可能为处理器和soc带来优势和可能性,但业界在验证方法和方法方面的立场如何?过去单一来源的isa依赖于一般的行业验证技术和方法,但基于开源isa的处理器用户和采用者将需要审查处理器和SoC的验证流程。

Imperas Software首席执行官Simon Davidmann上周在硅谷举行的RISC-V峰会上指出,基于RISC-V指令集架构的设计带来了有趣的验证挑战。

谷歌的首席工程师/总监Richard Ho也表达了同样的观点,他解释说谷歌对RISC-V和开源硬件的兴趣来自于该公司对开源的支持。“谷歌的很多基础设施和软件都是建立在开源基础上的,我们的目的是成为这个社区的强大贡献者。”

与此同时,Ho强调,对于任何一种开源的努力,特别是开源硬件,验证都是非常重要的——事实上,它应该是开源的。

“这是我们对开源社区的贡献,”他说。“我们的设计环境实际上是开源的,但我有点难过的是,在开源的部分并没有那么多其他的东西。很多工作都是在封闭的环境和封闭的工具中进行的,我希望看到更多的工作是开放的。为了拥有真正可以在任何地方重复使用的开源硬件,你希望能够测试它。你希望能像开源软件一样修改它RTL基于开源ISA的标准将被修改,所以这非常重要。”

验证和安全
何认为验证是ISA遵从性的超集。“我们需要遵从性,但我担心很多使用开源内核的用户可能会停在那里说,‘这个内核兼容RISC-V 64I指令集,也许这就足够了。“不,这还不够。你必须关心你的微架构。你必须关心你的管道阶段,你的旁路,以及所有这些细节,当你使用这个硬件时,这些细节可能会出现。仅仅用FPGA来做原型是不够的,或者在上面启动Linux是不够的。之后可能会有虫子出现。在我们使用过的核心中,可以肯定地说总是存在一些问题。大多数核心都会有一些问题,也许不是在核心表面,但通常是在调试部分或其中一个扩展指令集。”

他说,围绕开源的安全是一个巨大的担忧。“有了RISC-V,安全性变得很重要,原因是人们喜欢有一个开源的安全硬件,这样你就可以审查它。危险的是,坏人也可以审查它。如果您没有在所有级别上进行足够的安全验证,那么您只是告诉了坏人您可能在那里存在一些漏洞。虽然在安全嵌入式核心方面进行了一些工作,但还有很多工作要做。我们需要更多正式的分析。我们需要在黑客下手之前确定我们的漏洞是什么,因为有这么多的核心,只有有限的人能做这个分析。我们必须集中精力,做到这一点。”

OpenHW集团验证工程总监迈克尔·汤普森(Michael Thompson)对此表示同意。“在考虑如何处理处理器时,有一些问题需要解决。你如何处理开源处理器?如何处理易于扩展的处理器?这种可扩展性是内置在RISC-V的工作方式中的。这些问题在很长一段时间内都是工业界遇到的,如今已经有了一些行之有效的技术来解决这些问题,所以我们必须应用这些技术。此外,开源本质上是合作的,我们需要站在巨人的肩膀上。开源软件社区的人们已经解决了如何将分散的大型团队聚集在一起完成一项工作。你如何让一群不同的人,分散在世界各地,为不同的组织工作,都在为同一个问题工作?这也是一个已经解决的问题。 That was solved by the open-source software community.”

但并非所有问题都得到了解决。一个大问题是碎片化,这使得所有这些问题更加复杂。“RISC-V基金会密切关注着这里发生的事情,”RISC-V全球销售副总裁Jerry Ardizzone说Codasip.“你有一个被仔细锁定的基本整数指令。你有了标准的扩展空间,它受到了密切的监控,并且有一个非常好的批准过程。然后是可定制的空间。因此,我们所有人都要确保它不会变得过于分散和失控,因为如果它会失控,它就不会成功。作为供应商、第三方成员和用户,确保比特币不分散符合我们所有人的最大利益。”

验证的挑战
为了从采用的角度来面对这个问题,安第斯科技高级副总裁爱默生·萧(Emerson Hsiao)提供了一个类比。“假设你要从经销商那里买一辆新车。有人在买新车时打开引擎盖看看下面是什么吗?你不能那样做。为什么?因为你认为汽车制造商知道他们在做什么,如果有问题,汽车就会回到制造商那里。但我们在这里讨论的是另一种情况。在我看来,基于开源isa的IP验证环境的转变实际上是将责任更多地推到最终用户身上,这是一个问题,因为我们希望我们的用户知道在引子下面寻找什么。当然会有最终用户知道如何验证处理器IP并知道在哪里查找。但大多数终端用户可能不知道去哪里看或去哪里检查,所以挑战在于RISC-V的验证。”

目前,RISC-V基金会网站上大约有100个RISC-V IP核。这个数字还会增长,萧认为应该为那些创建这些ip的公司提供某种类型的检查清单,以及测试和检查的历史或文件。这样,当在开源实现中使用IP时,采用者就知道他们正在承担什么样的风险。

他说:“这是我们作为知识产权提供商目前面临的问题。”“我们是一个商业RISC-V IP提供商,所以我们实际上采取了一种非常不同的方法。我们确保IP在发货前经过测试和验证。但有一个问题。RISC-V拥有自定义扩展这个惊人的特性,这是验证的一个主要挑战。任何做过定制指令或扩展的人都知道其中的困难。甚至从设计到验证的需求识别也是一个重大挑战。从IP的角度来看,除了为设计自己扩展的客户提供一个设计环境外,我们还在尝试模块化,以完成验证任务。”

Breker Verification Systems的首席营销官Dave Kelf表示,目前真正的前沿领域将是将处理器集成到SoC基础设施中,实现缓存一致性,确保中断得到正确管理。“这将是一种需要大量核实帮助的事情,这是一个整个便携式刺激标准是专注。看看RISC-V是如何发展的,以及基于它的平台是如何发展的,这将是一件很有趣的事情,但如果你能想象一个带有开放指令集的新处理器,将其放在各种SoC平台上,然后再向其添加指令的复杂性,显然在验证过程中需要很多帮助,尤其是在SoC平台上。”

这种转变有多大震撼力?
Frank Schirrmeister,系统与验证组产品管理和系统开发高级集团总监节奏他不相信这种变化的幅度如此之大。“我同意这是一个转变,这是毫无疑问的。验证正在发生转变,尤其是在SoC级别,这非常重要。我的问题是它有多抗震,因为处理器验证本身已经进行了相当长的一段时间,无论是固定isa还是可变isa,如ARC和Tensilica等等。商业供应商甚至已经发布了关于他们如何验证这些处理器的文章,它看起来非常像IP的便携式刺激。大量软件驱动的验证非常重要。”

一些SoC开发人员表示,他们使用的模拟器周期平均为5万亿到6万亿,基于fpga的验证周期为2到3千万亿。Schirrmeister说,真正发生变化的是谁来进行核查。

“随着硬件的开放,最终用户进行修改,谁来验证的责任就发生了转移。对于我们EDA来说,新的和更新的验证工具有大量的机会,特别是当涉及到与SoC的其他部分更紧密地集成时,这分为七个领域。首先,是软件带大。这就是我们与Imperas等公司合作开发处理器模型的地方。这也适用于其他isa,我们已经有了相应的工具。其次,围绕便携式刺激存在一些问题,因为拥有支持特定处理器的库非常重要。第三是围绕处理器的功率分析,这在RISC-V上下文中发生了变化。第四,您需要调试硬件和软件,因此您需要获取跟踪。你需要做JTAG。五是整合,如IP-XACT建模。第六是性能分析,这是互连IP适合的地方。在RISC-V环境中,这与在ARC、MIPS或Tensilica环境中明显不同。第七是校验IP,校验所有这些协议。因此,就地震事件而言,这是一个变化,是一个补充,毫无疑问。这是我们在其他领域已经使用的许多技术的扩展。这就像在淘金热中,有镐和铲子要卖,这些铲子与Arm、MIPS、ARC、Tensilica以及RISC-V一起工作。”

那么开源的影响到底是什么呢?Imperas的Davidmann说:“我真的不确定开源是否会加入进来。“我们通过RISC-V所拥有的是人们做新事情和改变它的能力。这并不像你得到一个Arm,它是预先验证的,你插入它,你做一些集成测试,然后你就完成了。你已经设计了成千上万的门,我不知道开源能不能进入。事实上,你正在设计一个新的处理器,或者你正在购买一个,这是不同的。但是你有了这个处理器,RISC-V的全部目的就是创新和改变它的自由。所以你必须做出改变。这意味着您需要一个验证环境,这是您以前没有的。你买了一个Arm,它可以工作,你只需要插上电源,这就是任何与开源相关的挑战。 It’s related to the fact that it’s an extendible ISA.”

公司还需要足够的工具来为不同的应用程序提供选择。Codasip的Ardizzone表示:“我们一直在考虑工具。“这不仅仅是硬件或实现的问题。例如,它有很多关于C编译器的内容。我们在这方面进行了投资。我们雇佣了很多人,专注于为RISC-V构建我们希望成为世界上最好的C编译器,但我们不能独自完成。整个行业需要为不同的客户提供不同的选择。以LLVM为例。有些人想使用GNU编译器。所以不管你喜欢什么,不管你的内部策略是什么。 And we need to support them all.”

这些投资背后也必须有商业理由。谷歌的Ho指出,开放和免费是非常不同的。“‘免费’就是‘自由’,自由意味着你可以用RISC-V和你可以扩展的ISA做不同的事情。您可以使用特定的微架构实现创建自己的处理器。但这只有在你能进行验证的情况下才算成功,这意味着你需要有抵押品才能做到这一点。按照行业规范的处理器设计周期需要验证,这才是真正的IP所在。如果这是在一个封闭的专有系统中完成的,那并不能真正解决我们面临的挑战。这就是为什么它具有震撼性。它具有震撼性,因为我们实际上是在挑战这个概念,即你必须为你几乎无法控制的特定事物付费。付钱是可以的,但如果你不能以你想要的方式控制它,那就不能真正为你买到RISC-V的真正好处和开放ISA的影响。”

同时,这也涉及到可配置性。“我们的一个合作伙伴说,他们能够在pci类型的RISC-V环境中节省一半的内存,因为他们添加了一条指令,而且不需要任何地方的内存帮助。这些类型的更改是典型的协同设计更改。你在处理器端做出改变,然后你如何优化、平衡它,然后验证它。”Schirrmeister说道。

对开源架构的支持?
就今天对开源架构设计的支持而言,今天的验证技术足够了吗?

OpenHW Group的汤普森在回复中引用了蜘蛛侠的说法:“能力越大,责任越大。我这么说很轻率,但这是真的。这就是开源给验证带来的问题。现在,突然之间,我要做验证。我不从Tensilica或Arm或其他公司购买验证。其实我得自己来。而且许多组织以前都没有这样做过。他们缺乏这样做的技能和经验,这为EDA供应商和其他人创造了机会。”

执行验证的用户正在发生变化。Schirrmeister说:“基于开源的设计在验证方面最大的转变实际上不在于SoC验证要求,而在于谁来进行验证。”“如果我查看在哪里进行了验证,以及正在运行的FPGA周期的petacycles数字,就会发现有人在出售IP。作为个人终端用户,我是否必须进行相同级别或深度的集成验证,以便我必须预见各种情况?也许吧,但也可能不是。所以结构很重要。有意思的是,五年后,经过内部验证的设计中有多少是学术方面的,或者它们是否会得到公司的验证,公司会给你一个RISC-V模板来生成处理器,他们会承担验证的责任。”

这种转变会有多大还不完全清楚。“我们正在处理一个开放的ISA,而ISA本身只是另一个处理器,”Ho说。“但是有很多ISA的开放实施。一旦你进入开放实现的领域,在那里微架构完全暴露给所有人,安全验证是我们作为一个行业做得不太好的事情。我们专注于功能验证,这意味着设备做正确的事情,但我们没有做很多分析,你是否可以访问你不应该访问的数据。这需要正式的验证,但这是一个我们没有花太多时间研究的领域。这就是为什么它是来自开源部分的要求,而不是ISA的要求。但一旦你对RTL开放了实现,那么它就变得绝对重要,因为任何人都可以分析它的弱点和数据损坏。”

结论
在一天结束的时候,SoC设计师对他们的IP提供商的验证过程进行盘问并不罕见,有时要求覆盖报告和其他文件作为包的一部分,Nicolae Tusinschi指出OneSpin解决方案.“当涉及到实现复杂的RISC-V ISA的处理器核心时,用户将会期望和要求更多。商业核心供应商将不得不对这些要求做出回应,即使是在存储库中放置开源核心的设计师也必须更好地进行验证,以鼓励采用。”

Tusinschi认为,无论RISC-V内核的来源是什么,许多SoC团队都希望自己重新验证设计,而来自EDA供应商的第三方RISC-V解决方案将发挥重要作用,因为供应商和用户都可以运行验证。“所要求的严格程度意味着必须采用正式核查;只有正式的工具才能提供正确性的证明,并确保设计不会因糟糕的编码实践、安全漏洞或故意插入硬件木马而受到损害。”

对这种解决方案的需求已经很明显。OneSpin正式分析了多个RISC-V核心实现,并发现了许多问题。其中包括可能被利用的代码、安全风险和未记录的指令,这是一个严重的信任漏洞。该公司在一个流行核心中发现了十多个设计漏洞。幸运的是,现有的工具和技术可以验证RISC-V内核达到用户期望和供应商要求的水平。



留下回复


(注:此名称将公开显示)

Baidu