0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

这4种CPU错误该如何找到,没找到会有什么后果

eeDesigner 来源:物联网评论 作者:物联网评论 2022-04-29 15:28 次阅读

Codasip 验证总监 Philippe Luc 分享了他对验证工程师应注意哪些错误的看法。

您是否知道在设计复杂的处理器内核时可能会出现 1,000 到 2,000 个错误?真的,一千个虫子?嗯,这就是经验告诉我们的。并非所有的错误都是生来平等的:它们的重要性和后果可能会有很大差异。让我们来看看 4 类CPU 错误,如何找到它们,如果我们没有找到它们会给用户带来什么后果。

类型 1:验证工程师容易发现的处理器 BUG

“哦,我忘记了分号”。是的,这是一个错误。很容易检测到,通常是您在编译时直接发现的错误。除了睁大眼睛,没有其他办法可以避免这些.

“哦,原来规范的一部分没有实现”。这是另一个容易找到的 CPU 错误,您可以通过任何体面的测试平台找到 - 前提是存在显式测试。在这种情况下,执行该功能的第一个简单测试将失败。您的处理器验证团队需要做什么?确保你有详尽的测试。另一方面,设计团队需要努力仔细阅读规范,并在开发过程中遵循规范中的任何更改。

换句话说,简单的错误是通过运行一个测试该功能的测试来发现的。它的(坏)行为是系统性的,而不是时间条件。详尽的验证是找到此类 CPU 错误的关键。代码覆盖率会帮助你,但绝对不够。如果 RTL 中没有对某个特性进行编码,那么覆盖率如何报告它缺失?代码审查- 手头有规范 - 绝对有帮助。

类型 2:验证团队喜欢找到的极端案例

极端情况下的CPU 错误更难找到,需要强大的测试平台。运行该功能的简单测试用例正确通过,即使有随机延迟。很多时候,当异步事件加入聚会时,您会发现这些错误。例如,一个中断恰好在 2 条指令之间以精确的时间到达。或者缓存中的一行在存储缓冲区想要合并时被驱逐。要解决这些错误,您需要一个能够兼顾指令参数和延迟的测试平台,以便执行所有可能的指令和事件交错。显然,一个好的检查者应该发现任何与预期的偏差。

在这种情况下,代码覆盖率有帮助吗?不幸的是没有。仅仅因为错误的情况是已经单独涵盖的几个事件的组合。在这里,条件覆盖分支覆盖可能会有所帮助。但分析起来很痛苦,而且最终很少有好处。

动画展示了 4 种 CPU 错误的演变过程

1. 测试台发现了简单的错误和一些极端情况。2.我们从这些极端案例中学习,以改进测试平台并扩大验证范围。这样做,我们会发现隐藏的案例变成了极端案例(或简单的错误)。3. 由于Bug“成群结队”,我们可以根据最后发现的Bug进一步扩大我们的验证范围。当我们遇到一个愚蠢的错误时,我们知道我们的测试已经足够远了。

类型 3:意外发现的隐藏 CPU 错误 - 或由客户发现

隐藏的错误是由客户发现的(这是不好的),或者是偶然发现的(在内部,在发布之前)。在这两种情况下,这意味着验证方法无法找到它们。

如果您使用不同的测试台或环境,您可能会因为刺激不同而找到其他案例。很公平。那么,我们所说的“偶然发现”是什么意思?这是随机测试平台方法的限制。

对于随机刺激,测试平台通常会生成“相同”的东西。如果你掷骰子得到一个随机数,那么连续 10 次得到数字 6 的机会很少。准确地说,6000 万分之一的机会。对于具有 100 条不同指令的RISC-V CPU,(等概率的)随机指令生成器每 10²⁰ 次只有 1 次机会连续生成 10 次相同的指令。只是魔方不同位置数量的两倍……在 10 级流水线处理器上,使用所有流水线级上存在的相同指令对其进行测试并非不合理。如果你不调整你的随机约束,祝你好运......

类型 4:现实生活中不会发生的愚蠢错误

您可能会过度寻找极端案例和隐藏案例,最终创建的测试太愚蠢了。

在连接调试器的同时在每个周期来回更改字节顺序可能永远不会在消费产品上发生,如果 CPU 错误的后果对客户来说永远不可见,那么它就不是真正的错误。如果您在复制文件时故意拔下 U 盘,而文件已损坏,我认为这不是错误。如果某些操作导致 USB 控制器挂起,那么是的,这是一个错误。

谨防扩大验证范围。当发现愚蠢的案例时,您可能将工程工作投入到错误的地方。

您可以应用不同的验证技术在客户之前有效地发现 CPU 错误。在 Codasip,我们使用多个组件测试平台、各种随机测试生成器、随机刺激器和其他几种技术来验证我们的产品。随着项目的发展,我们开发了这些技术以拥有强大的验证方法。在我们的博客文章中了解更多信息,其中我们解释了我们如何不断改进我们的验证方法。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211118
  • 服务器
    +关注

    关注

    12

    文章

    9015

    浏览量

    85171
  • 错误
    +关注

    关注

    0

    文章

    10

    浏览量

    17353
收藏 人收藏

    评论

    相关推荐

    找不到这个啊?在哪里能找到图标

    找不到这个图标到处也没找到 求大师们知道小的一下
    发表于 04-23 21:37

    这是什么函数,没找到?

    请问高手们,这是什么函数,没找到?
    发表于 10-09 12:11

    请教各位大神,在proteus中绘制LM3409HV调光电路时,怎么找到LM3409HV这个芯片,找了好久没找到

    请教各位大神,在proteus中绘制LM3409HV调光电路时,怎么找到LM3409HV这个芯片,找了好久没找到
    发表于 07-11 21:03

    请教各位大神,在proteus中绘制LM3409HV调光电路时,怎么找到LM3409HV这个芯片,找了好久没找到

    请教各位大神,在proteus中绘制LM3409HV调光电路时,怎么找到LM3409HV这个芯片,找了好久没找到
    发表于 07-15 18:55

    求助,急,找了好多都没找到

    导入3D图片控件时,导入的wrl格式的文件,但是我想改变这个wrl格式的文件属性颜色,没有找到,不知道是为什么,stl格式和ase格式的都可以改变颜色属性,就是wrl没找到,不知道哪位大神知道可以更改wrl格式的颜色属性。下面是ase和stl格式更改颜色属性的,太急了,求
    发表于 08-26 22:31

    Labview 测量I/O里面没找到研华的信息?

    各位大神最近安装了Labview2012和研华的采集卡PCI1716L驱动,同时安装DAQNavi SDK 3.1版本。但是在函数面板-测量I/O里面没找到研华的信息,这是什么问题??谢谢
    发表于 08-10 18:36

    请问在CCS3.3里,运行时有一个菜单“Animate”,CCS4.2里没找到对应的菜单是我没找到还是没有?

    在CCS3.3里,运行时有一个菜单“Animate”,设个断点,可以连续运行到断点,可以在CCS里看连续的波形。我在CCS4.2里没找到对应的菜单。请问高手,是我没找到还是没有,谢谢!
    发表于 07-30 08:46

    请问TMDSCNCD28035图纸没找到是在哪里

    我手里有TMDSCNCD28035 + TMDSHVMTRPFCKIT套件,TMDSHVMTRPFCKIT的图纸在controlsuite里面有,TMDSCNCD28035没找到,是否可以帮忙找一下,谢谢!
    发表于 09-11 11:21

    没找到STM8S库中的ABS(X)功能

    您好,我是STM8S用户。我在stm8s代码示例中找到了STM8S math.h,math.s但是我没找到它,我想在math.h中使用ABS(X),ABS(X)吗?以上来自于谷歌翻译以下为原文
    发表于 01-15 15:30

    如何找到错误的符号?

    --------------------错误表明下面列出的信号有错误,我无法找到这些错误下列出的任何信号。如何
    发表于 06-27 09:08

    C6748没找到它的CSL文件怎么办?

    路过的大侠:小弟刚入手C6748,准备在上面开发应用程序。但一直没找到它的CSL文件,有没有人有链接啊?能不能发一个,谢谢!
    发表于 08-11 08:17

    如何找到所需网站的IP地址以及如何找到IP地址的来源

    要跟踪信号的来源,请使用类似的网站,网站会告诉您信号的来源,但是要找到公司和关于他们的其他事情也使用这个。
    的头像 发表于 12-10 16:48 5891次阅读
    如何<b class='flag-5'>找到</b>所需网站的IP地址以及如何<b class='flag-5'>找到</b>IP地址的来源

    如何找到烧坏电阻的值

    今天给大家分享一点简单的:4方法,帮你找到烧坏电阻的值。
    的头像 发表于 02-16 09:12 2137次阅读

    如何快速找到PCB中的GND?

    如何快速找到PCB中的GND?
    的头像 发表于 12-07 14:26 1294次阅读
    如何快速<b class='flag-5'>找到</b>PCB中的GND?

    西门子博途中CPU错误的反应

    如果CPU的操作系统检测到错误,它会以OB调用的形式搜索适当的错误处理。如果找到了相应的OB,则执行OB并完成
    的头像 发表于 12-11 17:12 854次阅读
    西门子博途中<b class='flag-5'>CPU</b>对<b class='flag-5'>错误</b>的反应