广告

4种应该注意的CPU漏洞

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

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

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

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

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

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

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

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

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

k98ednc

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

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

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

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

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

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

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

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

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

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

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

k98ednc

作者:k98ednc

k98ednc

Philippe Luck98ednc

Codasip验证事业部总监k98ednc

责编:Franklin
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • Nothing Phone 1 官方承认品控缺陷,但拆解后有新发现 前一加手机联合创始人裴宇创立的 Nothing 公司在国外备受关注,但Nothing Phone 1发布之后却被网友爆料大量翻车现场。目前官方也已承认了Nothing Phone 1 在前摄开孔位置附近出现了坏点或绿晕的问题。但Nothing Phone 1也并非一无是处,著名的 JerryRigEverything 耐用性测试就称其“超级坚固”。
  • 拆解一个中国产的“树莓派”开发笔记本,售价279美元值 “树莓派”在全球市越来越受欢迎,甚至有家长开始让孩子用树莓派学习开发产品。有中国厂商嗅到,率先开发出了基于“树莓派”笔记本——CrowPi L ,外观看和普通笔记本差不多, 但却是基于树莓派Raspberry Pi 4B 开发板的套件,专为 STEM 教育而设计,带有可选的电子模块和教程。EDN发现有外媒对其进行了拆解,接下来将这篇拆解文章分享给大家:
  • 售价将超50万美元,乔布斯的Apple-1原型机电路板长什么 这块在 1976 年由史蒂夫-沃兹尼亚克手工焊接的 Apple Computer A 印刷电路板被史蒂夫-乔布斯用来向保罗-特雷尔演示 Apple-1 电脑,后者是加州山景城 The Byte Shop 的老板。这台原型机在“苹果车库”里保存了很多年,然后在大约 30 年前由史蒂夫-乔布斯交给了它现在的主人。当时,乔布斯已被苹果公司赶走。乔布斯当时认为这个原型不是要供奉的东西,而是要被重新利用的东西。
  • iFixit 拆解M2 MacBook Ai:没有散热器,但有用途不明的加 日前,iFixit发表了M2 MacBook Air的拆解视频,表示在M2 MacBook Air 中发现了新增的端口,以及加速度计。
  • M2 Pro 和 M2 Max 或是苹果首款采用台积电3nm 工艺的 M1 Pro 和 M1 Max 最多可配置 10 核 CPU 和 32 核 GPU。借助 M2 Pro 和 M2 Max,Apple 有望突破这一门槛,为这两个领域带来更多的核心数量。目前M2 Pro相关的爆料很少,但据称M2 Max 有12 核 GPU 和 38 核 GPU。12 核 CPU 将包括 10 个性能核心和两个能效核心。
  • “智能家居”未来将可通过呼吸控制操作 凯斯西储大学的研究人员创造了一个简单的原型设备,使用户能够通过改变他们的呼吸模式来控制“智能家居”。这种自供电装置可放入鼻孔,并有可能提高行动不便或无法清晰说话的人的生活质量。如果个人呼吸困难,它也可以编程为医务人员提供自动警报。
  • 适用于CSP GaN FET的简单高性能散热管理解决方案 本文将演示芯片级封装(CSP) GaN FET提供的散热性能为什么至少能与硅MOSFET相当,甚至更胜一筹。GaN FET由于其卓越的电气性能,尺寸可以减小,从而能在不违背温度限制的同时提高功率密度。本文还将通过PCB布局的详细3D有限元仿真对这种行为进行展示,同时还会提供实验验证,对分析提供支持。
  • 研究人员开发出新设计框架,用于构建下一代模拟计算芯片 印度科学研究所 (IISc) 的研究人员开发了一种设计框架,用于构建下一代模拟计算芯片组,与目前大多数电子设备中的数字芯片相比,该芯片组速度更快、功耗更低。
  • 小米12s系列发布:首款徕卡品牌、1 英寸摄像头传感器、 继一加牵手哈苏(HASSELBLAD)以及 Vivo 牵手蔡司之后,小米和徕卡在今年早些时候也宣布建立合作伙伴关系。小米在六月底宣布,小米 12S 系列将成为该交易的第一批手机,就在昨日,小米举办了小米12S系列新品发布会,包括小米12S、小米12S Pro、小米12S Ultra三款手机,这三款手机均提供徕卡 Summicron 镜头以减少眩光并提高透光率,同时还提供徕卡成像配置文件。
  • 拆解最新款M2 MacBook Pro ,苹果用旧硬件改造的“新” iFixit指出,即使是新款 M2 MacBook Pro 的底盖也与 2020 年推出的版本相同。两款机型的底部均刻有型号“A2338”以及相同的 FCC ID。这意味着苹果只是简单地回收了旧硬件,并在板上安装了新芯片。
  • 雷军官宣自研电池管理芯片“澎湃 G1”,及小米 12S系列 今日(7月1日),雷军在个人微博官宣新的自研芯片——小米澎湃G1电池管理芯片,该芯片将于7月4日与小米12S系列共同发布。此外,还分享了小米电池技术新进展、小米自研FBO焕新存储技术以及最新升级的叶脉冷泵散热技术。
  • AI视觉芯片如何赋能两轮车出行? 6月29日,在由全球领先的专业电子机构媒体AspenCore和深圳市新一代信息通信产业集群联合主办的“2022国际AIoT生态发展大会-智慧两轮车分论坛”中,嘉楠科技副总裁汤炜伟以《勘智AI视觉芯,赋能智眼两轮行》为主题,向大家分享了嘉楠地芯片设计创新历程,及其RISCV架构AI芯片技术路线图,并以具体案例展示AI视觉芯片如何赋能两轮车出行。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了