广告

4种应该注意的CPU漏洞

2022-05-16 14:03:03 Philippe Luc,Codasip验证事业部总监 阅读:
在设计一个复杂的处理器内核时,可能会出现1000到2000个不等的bug,经验告诉我们这是事实,尽管这个数字听上去难以置信。而且并不是所有的bug都是一样的:它们的重要性和带来的后果有很大的不同。本文让我们来看看4种不同类型的CPU漏洞,如何找到它们?以及如果我们没有及时找到并击中它们,对用户来说会有着怎么样的后果?

在设计一个复杂的处理器内核时,可能会出现1000到2000个不等的bug,经验告诉我们这是事实,尽管这个数字听上去难以置信。而且并不是所有的bug都是一样的:它们的重要性和带来的后果有很大的不同。本文让我们来看看4种不同类型的CPU漏洞,如何找到它们?以及如果我们没有及时找到并击中它们,对用户来说会有着怎么样的后果?Fzbednc

类型一:验证工程师很容易发现的处理器漏洞!

类似在设计过程中忘记写入一个分号的漏洞类型非常容易发现,它通常是在编译时直接发现的。对于此类bug,除了睁大你的眼睛之外,没有其他办法来避免!Fzbednc

可能你会经常听到同事说"哦,这个规范的一部分没有被实现"。这其实是另一种极其容易发现的CPU漏洞,只要有一个明确的测试存在,你就可以用任何像样的测试平台找到它。在这种情况下,行使该功能的第一个简单测试将失败。那么此时处理器验证团队需要做什么?确保详尽健全的测试方式方法是一方面。另一方面,设计团队需要努力仔细阅读规范,并在开发过程中随时关注规范的任何变化。Fzbednc

换句话说,简单的bug是指仅仅通过运行该功能的测试就能发现。它的(坏)行为是系统性的,而不是一个时间条件。详尽的验证是找到这种CPU bug的关键。代码覆盖率可以帮助你,但绝对不够。如果一个功能没有在RTL中编码,覆盖率也就不可能报告它的缺失?此时需要在规范明确的情况下执行代码审查。Fzbednc

类型二:验证团队钟爱的极端案例!

极端案例下的CPU漏洞找起来比较复杂,需要一个强大的测试平台。行使该功能的简单测试用例在有随机延迟的情况下也可以通过。很多时候,当异步事件加入时,就可以发现这些bug。例如,一个中断正好在两条指令之间到达,时间很精确。或者当存储缓冲区想要合并的时候,缓存中的一行被驱逐时。为了解决这些问题,我们需要一个测试平台来处理指令、参数和延迟,从而使所有可能的指令和事件的交错都得到锻炼。很明显,一个好的检查器应该发现任何与预期不同的偏差项。Fzbednc

在这种情况下,不幸的是代码覆盖率完全没用。仅仅是因为bug的条件是几个事件的组合,而这些事件已经被单独覆盖。在这里,条件覆盖或分支覆盖可能会有帮助。但分析起来很痛苦,而且最终也不会有有效的结果。Fzbednc

Fzbednc

动画显示了4种类型的CPU bug演变过程Fzbednc

  • 测试平台已经发现了简单的bug和几个极端案例。
  • 我们从这些极端案例中汲取经验,以改进测试平台并扩大验证范围。这样做可以使我们发现隐藏漏洞,此时隐藏bug转变为极端bug(或较容易的bug)。
  • 随着bug成群结队的出现,我们可以根据最后发现的bug进一步扩大验证范围。
  • 当我们遇到一个“愚蠢”的bug时,就意味着我们的验证测试已经足够有效了。

类型三:偶然发现的隐匿式CPU漏洞——或由客户发现的漏洞!

最坏的情况是如果这种隐藏的bug是由客户发现的,或者是偶然发现的(团队内部或在发布之前)。出现这两种情况,这意味着目前的验证方法不足以击中它们。Fzbednc

如果使用不同的测试平台或环境,因为刺激的不同可以找到其他的漏洞。那么我们所说的 "偶然发现 "是什么意思?这里涉及到随机测试平台方法的限制。Fzbednc

在随机刺激下,测试平台通常会产生 "相同 "的东西。如果你掷骰子得到一个随机数,连续10次得到数字6的机会非常少。准确地说,是六千万分之一的机会。对于有100条不同指令的RISC-V CPU来说,一个(可等价的)随机指令发生器每10⁰次只有1次机会产生连续10次相同的指令,这种机率是魔方不同位置数量的两倍……在一个10级流水线处理器上,用所有流水线阶段的相同指令来测试它也不是不合理的。如果此时还不调整随机约束,那么只能祝你好运……Fzbednc

类型四:在现实生活中不会出现的“silly bugs”!

如果我们把极端漏洞和隐藏漏洞看得太重,那么最终创建的测试或许有点徒劳。Fzbednc

在连接调试器时,每个周期来回改变字节数,这可能是永远不会出现在消费者产品上的案例,如果一个CPU漏洞的后果对客户来说是不可见的,那么它就不是一个真正的漏洞。如果你在复制文件时故意拔掉U盘,而导致文件被损坏,我认为这不是一个bug。如果某些操作导致USB控制器挂起,那么此时这是一个不容无视bug。Fzbednc

当我们试图扩大验证的范围时,如果出现“silly bugs”,那么我们可能是在错误的地方投入了太多的努力。Fzbednc

应用不同的验证技术,在客户之前有效地发现CPU漏洞,是Codasip应用的验证方法。我们使用多个组件测试平台,各种随机测试生成器,随机刺激器,以及其他一些技术来验证我们的产品。并随着项目的发展,发展完善这些技术以拥有一个强大的验证方法。更多关于处理器验证方法,请关注我们的系列博文,了解Codasip如何不断改进验证方法,以获得最高品质的处理器产品。Fzbednc

Fzbednc

作者:Fzbednc

Fzbednc

Philippe LucFzbednc

Codasip验证事业部总监Fzbednc

责编:Franklin
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 高通推断:苹果成功自研5G基带芯片,明年见 高通CEO兼总裁克里斯蒂亚诺·阿蒙表示,苹果与高通至今尚未讨论过2024年的5G基带芯片订单一事,他推测这可能代表苹果打算在2024年推出的iPhone 16系列中,开始采用自家研发的5G基带芯片。
  • 风禾尽起!忆芯科技高端企业级主控芯片及方案全球首发! 忆芯科技在国产高端企业级SSD赛道上,再迎来新里程碑——“风禾尽起  忆芯科技高端企业级芯片及方案发布会”在合肥天鹅湖大酒店隆重举行,面向全球正式首发全新一代高端企业级SSD主控芯片及方案。
  • MWC 2023落下帷幕,盘点国产厂商的那些亮眼表现 MWC 2023(世界移动通信大会2023)于2月27日在巴塞罗那正式向全球移动产业伙伴开启,大会也于3月2日正式落下帷幕。展会持续五天,根据官方数据统计,2023年MWC有2000多家全球厂商参展,中国有以OPPO、荣耀为代表的共计28个国产厂商参展。本次展会,各大厂商纷纷拿出自己的看家本领,可谓是亮点多多,今天就带大家一起看看展会上国产厂商展现的那些亮眼技术吧~
  • 维持ChatGPT运行将需要超过3万块Nvidia显卡 据TrendForce的最新预测,人工智能(AI)将成为Nvidia的最大收入来源之一。该研究公司估计,OpenAI的ChatGPT最终将需要超过3万块Nvidia显卡的算力以维持运行。
  • 中国芯发展新模式:在高质量、高增长内需中发现机会并建 集成电路产业从诞生开始历来都是全球化和生态化的行业。全球化是为了摊销其高额的研发费用和制造成本,以及不低的市场营销(试错)支出;而生态化是因为芯片行业本身并不面向最终用户,全球电子制造产业链和最重要的消费市场与芯片产业发展密切相关。
  • 谷歌达成量子计算机第二里程碑,实现量子计算纠错 2月24日,谷歌CEO Sundar Pichai撰写博客,称公司量子计算又向前迈了一大步。谷歌量子AI团队有史以来首次通过实验证明:可以通过增加量子比特的数量来减少错误。在其最新的研究中,谷歌用49个物理量子比特制作的逻辑量子比特超越了用17个量子比特制作的逻辑量子比特。
  • NVIDIA:超级算力,赋能整车中央计算 由全球电子技术领域知名媒体集团AspenCore主办的“中国国际汽车电子高峰论坛”于2023年2月23日正式拉开帷幕。会上,NVIDIA中国区软件解决方案总监卓睿分享了题为“超级算力,赋能整车中央计算”的主题演讲。
  • “IDM929”14nm工艺自研国产GPU芯片即将流片 2月14日消息,据智绘微电子官方消息,该公司自研国产GPU芯片“IDM929”已完成设计,即将进入流片阶段。
  • “清华系”企业北极雄芯发布国内首款基于Chiplet架构 启明930为北极雄芯开发的首款基于Chiplet异构集成的智能处理芯片,该芯片采用12nm工艺生产,该芯片中央控制芯粒采用 RISC-V CPU 核心……
  • 模拟计算重新定义边缘AI性能新境界 传统的数字计算扩展方法,即转向更先进的半导体工艺节点,显然已经达到物理极限(即摩尔定律已经失效),而不断攀升的制造成本则限制了只有少数几家最富有的公司才能使用该技术。下一代的人工智能处理亟需采用新的方法。
  • 全球首个5G Advanced基带,高通骁龙X75发布 2月15日,高通宣布推出新一代5G基带和射频解决方案,包括骁龙X75、骁龙X72,以及新一代5G固定无线接入平台,其中骁龙X75格外引人注目。
  • 可食用的传感器 麻省理工学院和加州理工学院的工程师展示了一种可食用的传感器,当它在消化道中移动时可以监测其位置,这一进步可以帮助医生更容易地诊断胃肠运动障碍,如便秘、胃食管反流病和胃轻瘫。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了