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

    文章

    20149

    浏览量

    247189
  • 漏洞
    +关注

    关注

    0

    文章

    205

    浏览量

    15892

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于协处理器定义指令的实现

    ‘b1111011 ——— 7’h7b 随后的6表示指令的14到12位,即funct3, 协处理器的rtl代码中可见这个定义,这里的110的顺序对应顺序为rd,rs1,rs2,使用寄存的话就把对应
    发表于 10-31 06:36

    蜂鸟E203协处理器EAI指令及接口

    ,各种不同的组合代表不同的指令类型,我们用到了预定义的custom-3指令扩展协处理器指令,因此指令的opcode为7’b1111011。 由于蜂鸟E203处理器核基于Cus
    发表于 10-24 07:23

    医疗PCB供应链复杂性与风险管控

    印刷电路板(PCB)最初作为一种用于承载和连接电子元件的简单解决方案,并不需要复杂的点对点布线。如今,PCB已成为我们日常生活的重要组成部分,并且随着技术进步,以前的简单性逐步让位于复杂性。现在我们
    的头像 发表于 10-14 14:17 246次阅读

    DRA821U处理器技术文档总结

    Jacinto™ DRA821x 处理器基于 Armv8 64 位架构,针对具有云连接的网关系统进行了优化。片上系统 (SoC) 设计通过集成降低了系统级成本和复杂性,特别是系统 MCU、功能安全
    的头像 发表于 09-30 17:14 3882次阅读
    DRA821U<b class='flag-5'>处理器</b>技术文档总结

    Cadence推出对称多核处理器HiFi 5s SMP

    新一代消费电子及汽车音频系统的复杂性与日俱增,基于生成式 AI 的音频处理、沉浸式音效以及软件定义汽车中的高级信息娱乐系统等市场驱动因素,对音频 DSP 性能提出了更高的要求。然而,单
    的头像 发表于 07-16 14:43 2962次阅读

    聚徽——手持工业平板电脑处理器性能对工业场景复杂运算的影响

    起着决定性作用,进而影响整个工业生产流程的效率与质量。 处理器核心参数决定运算基础能力 核心数量与线程数 多核心处理器已成为工业平板电脑应对复杂运算的标配。以英特尔酷睿 i7-12700H 为例,
    的头像 发表于 06-04 14:38 452次阅读

    探讨汽车行业的漏洞管理

    推动软件定义汽车(SDV)发展的多重因素,正使现代车辆面临日益广泛的网络攻击威胁:更复杂的技术栈集成、不断增加的连接选项、电子控制单元(ECU)的集中化,以及自动驾驶和高级驾驶辅助功能带来的额外
    的头像 发表于 05-28 11:09 1200次阅读

    光子 AI 处理器的核心原理及突破进展

    ,光子 AI 处理器依靠光信号的传输、调制及检测来完成计算任务,因其具备高速、低功耗、高带宽等突出优势,被视作突破现有计算瓶颈的关键技术之一。 核心原理及面临的技术挑战 光子 AI 处理器的核心原理,是用光子取代电子进行运算。具
    的头像 发表于 04-19 00:40 3642次阅读

    异形拼接处理器支持哪些显示技术?

    异形拼接处理器是专门用于实现异形拼接屏功能的设备,支持多种显示技术,以满足不同场景下的展示需求。以下是对异形拼接处理器所支持的显示技术的详细归纳: 一、液晶显示技术 1、应用广泛: 异形拼接
    的头像 发表于 04-01 09:48 540次阅读

    Marvell展示2纳米芯片3D堆叠技术,应对设计复杂性挑战!

    随着现代科技的迅猛发展,芯片设计面临着前所未有的挑战。特别是在集成电路(IC)领域,随着设计复杂性的增加,传统的光罩尺寸已经成为制约芯片性能和功能扩展的瓶颈。为了解决这一问题,3D堆叠技术应运而生
    的头像 发表于 03-07 11:11 894次阅读
    Marvell展示2纳米芯片3D堆叠技术,应对设计<b class='flag-5'>复杂性</b>挑战!

    RV1109处理器概述

    ),为用户提供高效的多任务处理能力和灵活的编程环境。ARM Cortex-A7核心以其出色的能效比和广泛的应用基础,确保处理器处理
    的头像 发表于 02-08 17:04 1895次阅读

    低功耗处理器的优势分析

    随着科技的飞速发展,电子设备的种类和数量不断增加,人们对设备的能效要求也越来越高。低功耗处理器因其在节能、环保和成本效益方面的优势而受到广泛关注。 低功耗处理器定义 低功耗处理器是指
    的头像 发表于 02-07 09:14 1797次阅读

    处理器和芯片的区别是什么 处理器是指cpu吗

    一、处理器和芯片的区别 处理器和芯片是两个在电子领域中经常出现的术语,它们虽然有一定的联系,但在定义、功能、结构及应用场景等方面存在显著的差异。 定义与构成
    的头像 发表于 02-01 14:59 7829次阅读

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

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

    EE-312:使用Blackfin处理器构建复杂的VDK/LwIP应用

    电子发烧友网站提供《EE-312:使用Blackfin处理器构建复杂的VDK/LwIP应用.pdf》资料免费下载
    发表于 01-06 15:45 0次下载
    EE-312:使用Blackfin<b class='flag-5'>处理器</b>构建<b class='flag-5'>复杂</b>的VDK/LwIP应用