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

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

3天内不再提示

是什么定义了处理器漏洞的复杂性以及如何检测它?

Codasip 科达希普 来源:Codasip 科达希普 作者:Codasip 科达希普 2022-11-01 15:50 次阅读

作为一个验证工程师我经常被问到这样的问题:"处理器的验证什么时候完成?"或者换句话说,"我该如何衡量测试平台的效率,我如何对验证的质量建立信心?"。当然这一问题没有简单的答案。业界有几个常用的指标可以参考,如覆盖率和错误曲线。虽然这些指标是绝对必要的,但它们并不足以达到尽可能高的处理器品质。事实上,这些指标并不能真正揭示验证方法找到最后一个bug的能力。随着经验的积累,我了解到检测处理器漏洞的复杂性是一个很好的指标,并可以在项目的整个开发过程中使用。

是什么定义了处理器漏洞的复杂性以及如何检测它?

经验告诉我,我们可以通过计算击中漏洞所需的独立事件或条件的数量来定义一个漏洞的复杂性。

那么“事件”又如何定义呢?

让我们举一个简单的例子。当缺少所需的警告时,一个典型的bug会在缓存中发现一个典型的漏洞。此时数据损坏可能发生在以下情况:

A cache line at address @A is Valid and Dirty in the cache.

A load at address @B causes an eviction of line @A.

Another load at address @A starts.

The external write bus is slower than the read, so the load @A completes before the end of the eviction.

External memory returns the previous data because the most recent data from the eviction got lost, causing data corruption.

在这个例子中,我们需要4个事件或条件来击中这个漏洞。这4个事件给这个bug打了4分,也就是说漏洞的复杂性为4。

对处理器漏洞进行分类?

为了衡量一个漏洞的复杂性,我们可以对漏洞进行分类,供整个处理器验证团队来使用。在之前的一篇博文中,我们讨论了4种类型的bug,并解释了我们如何使用这些分类来提高测试平台和验证的质量。此时我们可以再进一步,即将这种方法与漏洞的复杂性结合起来处理问题。

一个简单的漏洞可能需要触发1到3个事件。那么第一个简单的测试就会失败,而一个极端案例可能会需要4个或更多的事件。

回到我们上面的例子,我们有一个复杂性为4的bug,如果四个条件中的任何一个不存在,那么这个bug就不会被击中。

一个受限的随机测试平台需要几个功能,以便能够击中上文例子中的漏洞。地址序列应该足够聪明,可以重用之前请求的地址,外部总线上的延迟也应该足够非典型,以便有足够快/慢的读写。

而一个隐藏比较深的案例可能需要更多的事件来触发。假定一个更微妙的bug与我们的例子有相同的条件,但是它只发生在缓存上发现ECC错误的时候,与中断发生的时间完全一致,并且只发生在内核完成FPU操作导致除以0错误出现的时候。在典型的随机测试平台上,所有这些条件同时出现的概率是非常低的,这使得它成为一个 "隐藏 "的终极漏洞。

为了使得这些隐藏的bug在测试平台上更容易被发现,提高验证的质量是重点。它包括使隐藏的个例成为极端的个例此种情况。

b0e504ee-5942-11ed-a3b6-dac502259ad0.jpg

如图所示,4只红色昆虫分别代表4种类型的CPU漏洞

这种分类没有任何限制。经验告诉我们,一个能够找到8分或9分漏洞的测试平台本身就是一个强大的模拟测试平台,是提供高质量RTL的关键。根据我们的观察,今天最先进的仿真测试平台可以找到复杂度高达10的漏洞。幸运的是,形式化验证的使用使我们更容易找到复杂度更高的bug,为更好的设计铺平道路,并为仿真中需要改进的地方提供线索。

使用漏洞的复杂性分类来提高验证测试平台的质量

这种分类和方法只有在验证开始时和整个项目开发过程中使用才有效,原因有二:

漏洞必须在被发现时即时修复。留下一个2级或3级的bug而不即时修复,则意味着在启动大型浸泡测试(soak test)时会出现大量的失误。据统计,一个需要更多事件的类似bug(来自同一漏洞集群)可能会被忽略。

漏洞的复杂性被用来改善和衡量测试平台的质量。复杂性水平与触发漏洞所需的事件数量越匹配,复杂性得分越高,测试平台的压力越大。追踪和分析触发漏洞的事件对于了解如何调整随机约束或创建新的功能覆盖点来说非常有用。

最后,通过将这种方法与Codasip的验证方法结合起来,包括猎杀以集群为单位的bug,确保了高水平的验证质量,帮助我们确信并超越验证验收标准。

审核编辑 :李倩

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

    关注

    68

    文章

    18608

    浏览量

    224490
  • 漏洞
    +关注

    关注

    0

    文章

    203

    浏览量

    15162

原文标题:处理器验证系列之四:系统Bug猎杀-检测处理器漏洞的复杂性以提高测试平台的质量!

文章出处:【微信号:Codasip 科达希普,微信公众号:Codasip 科达希普】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    处理器定义和种类

    处理器,作为计算机系统的核心部件,承载着执行指令、处理数据的重要任务。随着信息技术的飞速发展,处理器的种类和性能也在不断提升。本文将对处理器定义
    的头像 发表于 05-12 18:12 1294次阅读

    青稞处理器资料分享

    简介 青稞处理器是沁恒微电子自研的32位微处理器,遵循和兼容开源的RISC-V指令集架构规范,并提供可选的功能扩展。支持IMAFC指令集和自定义压缩指令,并提供硬件压栈(HPE)、免表中断(VTF
    发表于 10-11 10:42

    ARM Cortex-M3定义指南

    的用户的推动下,一般应用程序的复杂性正在增加接口、多媒体需求、系统速度和功能融合。 ARM Cortex-M3处理器,Cortex第一代处理器发布ARM在2006年推出的微处理器主要是
    发表于 10-11 06:08

    M051通过检查自定义UID来确定IO是否被切换的示例代码

    提供自定义识别复杂性的示例。 开发者可以基于微处理器 UID 进行定制操作, 并使用计算出来的 UID 来确定更好的安全 。 您可以在下列时间下载样本代码http://www.nu
    发表于 08-30 08:51

    推测处理器漏洞常见问题

    以下信息提供有关推测处理器漏洞的常见问题解答。 你能用通俗易懂的话解释这个问题吗? ·这两种攻击都利用了现有的旁路技术,并可能导致通过使用恶意软件访问少量数据。 ·使用这种方法并在
    发表于 08-25 07:15

    Arm Cortex-M7处理器产品介绍

    ARM Cortex-M7处理器是Cortex-M系列中性能最高的处理器,可用于设计复杂的MCU和SoC。 Cortex-M7提供业界领先的5.01核心标记/MHz标量性能,同时保持
    发表于 08-25 06:25

    通过检查自定义UID来确定IO是否被切换的示例代码

    提供自定义识别复杂性的示例。 开发者可以基于微处理器 UID 进行定制操作, 并使用计算出来的 UID 来确定更好的安全 。 您可以在下列时间下载样本代码http://www.nu
    发表于 08-23 06:20

    ARM体系结构、处理器和设备开发文章

    ARM不生产处理器硬件。 相反,ARM创造的微处理器设计被授权给我们的客户,他们将这些设计集成到片上系统(SoC)设备中。 为了保证互操作并在不同实现之间提供通用的程序员模型,ARM定义
    发表于 08-21 07:28

    ARM Cortex-R7 MPCore处理器技术参考手册

    ,并且提供可选的硬件加速一致端口(ACP),以减少与其他主机共享存储区域时的软件高速缓存维护操作。 中断延迟通过中断和重新启动加载-存储多条指令
    发表于 08-18 06:34

    基于ARMv8-M处理器的安全堆叠密封

    本建议概括介绍软件对识别为CVE-2020-16273的漏洞的影响和缓解措施。 本咨询中讨论的方案涉及基于ARMv8-M的处理器,包括Cortex-M23、Cortex M33
    发表于 08-17 06:31

    针对ARM Cortex处理器的CoreMark基准测试应用笔记

    嵌入式系统中的处理器变得越来越复杂。随着处理器复杂性的增加,我们需要更复杂的基准测试来正确地练习和分析这些
    发表于 08-10 07:45

    ARM946E-S (Rev1)系统单片DSP增强处理器产品概述

    的可配置,允许您根据嵌入式应用程序定制硬件。这个ARM946E-S提供完整的高性能处理器解决方案在芯片复杂性和面积、芯片系统设计、电源方面节省了大量成本消费和上市时间
    发表于 08-08 07:33

    ARM946E-S (Rev0) 片上系统DSP增强处理器产品概述

    嵌入式应用程序定制硬件。ARM946E-S提供一个完整的高性能处理器解决方案,在芯片复杂性和面积、芯片系统设计、功耗和上市时间方面都有相当大的节省。
    发表于 08-02 17:50

    ARM920T处理器技术参考手册

    处理器核心是一种哈佛体系结构的设备,使用由Fetch、Decode、Execute、Memory和Write阶段组成的五级流水线实现。它可以作为一个独立的核心提供,可以嵌入到更复杂的设备中。独立内核有一个
    发表于 08-02 13:05

    ARMv8-M处理器故障处理检测

    特定功能。ARMv8‑M处理器的体系结构包含故障通过异常处理功能,以及用于处理系统级的非屏蔽中断(NMI) 错误,例如,褐化检测。特定于实现
    发表于 08-02 06:28