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

    文章

    19461

    浏览量

    231415
  • 漏洞
    +关注

    关注

    0

    文章

    205

    浏览量

    15454

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

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

收藏 人收藏

    评论

    相关推荐

    量子处理器是什么_量子处理器原理

    量子处理器(QPU)是量子计算机的核心部件,利用量子力学原理进行高速数学和逻辑运算、存储及处理量子信息。以下是对量子处理器的详细介绍:
    的头像 发表于 01-27 11:53 215次阅读

    光伏连接外壳:超越简单塑料的复杂性与重要

    将深入探讨光伏连接外壳的设计要求及其超越简单塑料的复杂性与重要。 一、光伏连接外壳的设计要求 材料选择 光伏连接的外壳并非简单的塑料
    的头像 发表于 11-04 14:50 250次阅读
    光伏连接<b class='flag-5'>器</b>外壳:超越简单塑料的<b class='flag-5'>复杂性</b>与重要<b class='flag-5'>性</b>

    处理器指令的获取过程

    处理器指令的获取是计算机执行程序过程中的关键环节,决定处理器如何对数据和指令进行处理。以下将详细阐述微
    的头像 发表于 10-05 15:16 478次阅读

    简述微处理器的指令集架构

    处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中的核心组成部分,定义计算机能够执行的指令集合、数据类型、寄存
    的头像 发表于 10-05 14:59 615次阅读

    处理器的指令集有哪些

    处理器的指令集是微处理器设计和功能实现的基础,决定处理器能够执行哪些操作以及这些操作如何
    的头像 发表于 10-05 14:58 405次阅读

    ARM处理器和CISC处理器的区别

    ARM处理器和CISC(复杂指令集计算机)处理器在多个方面存在显著的区别。这些区别主要体现在架构原理、性能与功耗、设计目标、应用领域以及市场生态等方面。
    的头像 发表于 09-10 11:10 597次阅读

    简述微处理器的发展历史

    处理器的发展历史是一部充满创新与突破的技术演进史,见证计算机技术的飞速发展和人类社会的巨大变革。以下是对微处理器发展历史的详细回顾,内容将涵盖其关键节点、重要里程碑
    的头像 发表于 08-22 14:22 3873次阅读

    处理器的指令集架构介绍

    处理器的指令集架构(Instruction Set Architecture,ISA)是计算机体系结构中至关重要的部分,定义处理器
    的头像 发表于 08-22 10:53 1655次阅读

    图像处理器是什么意思

    图像处理器(Image Processor)是一种专门用于图像处理和计算的硬件设备或芯片,通过高速数据传输、图像编解码、滤波、变换等多种技术手段,对输入的图像进行一系列复杂的操作,以
    的头像 发表于 08-14 09:28 1120次阅读

    处理器定义和种类

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

    嵌入式微处理器定义与发展 嵌入式微处理器种类和型号

    嵌入式微处理器定义与发展 嵌入式微处理器指的是以处理器为核心的专用集成电路芯片,用于实现特定任务的计算或控制功能。通常被嵌入在各种电子设
    的头像 发表于 05-04 15:43 2375次阅读

    什么是嵌入式微处理器? 嵌入式微处理器的区别

    的任务或控制其他硬件设备。 嵌入式微处理器的出现可以追溯到20世纪70年代末以及80年代初。嵌入式微处理器通过集成了处理器核心、内存、输入输出控制
    的头像 发表于 04-21 15:44 1703次阅读

    处理器属于专用集成电路吗对吗

    处理器定义、工作原理、制造工艺以及应用等方面进行详细介绍。 首先,我们来了解一下什么是微处理器。微处理器是一种能够执行各种算术和逻辑运算
    的头像 发表于 04-19 14:32 902次阅读

    C语言中的预处理器

    所有的预处理器命令都是以井号(#)开头。必须是第一个非空字符,为了增强可读,预处理器指令应从第一列开始。
    发表于 03-01 12:16 1014次阅读
    C语言中的预<b class='flag-5'>处理器</b>

    浅谈SoC中常用的处理器

    复杂系统执行多种多样的复杂任务。任务常因为市场需求而改变。处理器的软件可编程使得它可以实现更加快速的功能开发和提供更加敏捷的可适,已成为
    的头像 发表于 02-23 09:19 1418次阅读
    浅谈SoC中常用的<b class='flag-5'>处理器</b>