为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现?

2024-01-04

为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现?

近 20 年来,这些错误一直存在于 CPU 中,考虑到对所有使用这些处理器的计算机的严重影响,为什么不尽早发现呢?


答案非常简单:现代 CPU 拥有数十亿个晶体管。例如,最新的英特尔 Skylake 架构的容量约为 20 亿。每个晶体管可能具有影响其他晶体管状态的状态(即这些晶体管以某种方式连接)。

基本上,这意味着现代 CPU 存在多种可能的排列或状态,我们根本无法在一生中进行测试。因此,我们(或者更确切地说是生产者)仅测试某些状态和某些场景,从而为危险的极端情况留下了潜在的空间。

Spectre 和 Meltdown 是未经测试的极端情况,但由于现代 CPU 的复杂性,可能还有更多情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现? 的相关文章

  • 是否可以暂时抑制单个 ret 指令的英特尔 CET,或者以其他方式使用 retpolines?

    英特尔 CET 控制流执行技术 由两部分组成 SS 影子堆栈 和 IBT 间接分支跟踪 如果您需要间接分支到您无法放置的某个地方endbr64由于某种原因 您可以抑制 IBT 一次jmp or call指令与notrack 有没有等效的方法
  • 使用 AVX 一次性进行 4 个水平双精度求和

    该问题可以描述如下 Input m256d a b c d Output m256d s a 0 a 1 a 2 a 3 b 0 b 1 b 2 b 3 c 0 c 1 c 2 c 3 d 0 d 1 d 2 d 3 到目前为止我所做的工作
  • 如何生成符号信息以与 Linux 版本的英特尔 VTune Amplifier 一起使用?

    我正在使用英特尔 VTune Amplifier XE 2011 来分析我的程序的性能 我希望能够在分析结果中查看源代码 文档说我需要提供符号信息 不幸的是 它没有说明在编译我的程序时如何生成该符号信息 在 VTune 的 Windows
  • 在 Fortran 中传递不连续的数组部分

    我正在使用 intel fortran 编译器和 intel mkl 进行性能检查 我将一些数组部分传递给 Fortran 77 接口 调用如下 call dgemm transa transb sz s P P a Ts tilde sz
  • Android 模拟器的虚拟机加速 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试配置新的 Android 虚拟机加速 我正在按照概述的步骤进行操作here http dev
  • Intel芯片上的半精度浮点运算

    Intel芯片上可以进行半精度浮点运算吗 我知道如何加载 存储 转换半精度浮点数 1 但我不知道如何在不转换为单精度浮点数的情况下对它们进行加 乘 1 https software intel com en us articles perf
  • Android Studio 和 Ryzen CPU?

    我知道它可能会被标记为重复 但没有一个线程对我有帮助 所以我决定自己做一个 I m a Java后端开发人员我决定学习一些 Android 的东西 几年前我在 Android Studio 工作过i5 4570处理器 然后我放弃了 现在我发
  • 如何将两个 SSE 寄存器加在一起

    我有两个 SSE 寄存器 128 位是一个寄存器 我想将它们相加 我知道如何在其中添加相应的单词 例如我可以这样做 mm add epi16如果我在寄存器中使用 16 位字 但我想要的是类似的东西 mm add epi128 不存在 它将使
  • 对于尚未在缓存中的地址,CLFLUSH 如何工作?

    我们正在尝试使用 Intel CLFLUSH 指令在用户空间刷新 Linux 中进程的缓存内容 我们创建一个非常简单的 C 程序 首先访问一个大数组 然后调用 CLFLUSH 刷新整个数组的虚拟地址空间 我们测量 CLFLUSH 刷新整个数
  • 英特尔“退休”是什么意思?

    In the 英特尔手册 http www intel com content www us en architecture and technology 64 ia 32 architectures software developer
  • 写入和读取的持久内存缓存策略

    有谁知道尝试使用的任何缺点英特尔傲腾 DC 内存 https itpeernetwork intel com intel optane dc persistent memory operating modes gs pu5agg DCPMM
  • 64位汇编介绍

    我正在寻找一篇介绍 Intel 64 位处理器和汇编的文章 x64 寄存器列表 命令语法等 供熟悉 32 位汇编的程序员使用 有点像 64 位处理器的 新增功能 The Intel 64 和 IA 32 架构软件开发人员手册 http ww
  • 模拟器:错误:x86 模拟当前需要硬件加速

    我尝试在 Android Studio 中运行我的 Hello World 应用程序 我收到以下错误 模拟器 错误 x86 模拟当前需要硬件 加速 请确保英特尔 HAXM 已正确安装且可用 CPU加速状态 HAX内核模块未安装 你能告诉我如
  • 了解微架构原因,使更长的代码执行速度提高 4 倍(AMD Zen 2 架构)

    我有以下 C 17 代码 是在 x64 模式下使用 VS 2019 版本 16 8 6 编译的 struct declspec align 16 Vec2f float v 2 struct declspec align 16 Vec4f
  • 循环地址对齐如何影响 Intel x86_64 上的速度?

    我发现相同的 C 代码编译为完全相同的机器指令但位于不同对齐的地址时性能下降了 15 当我的小主循环从 0x415220 开始时 它比从 0x415250 开始时要快 我在 Intel Core2 Duo 上运行它 我在 x86 64 Ub
  • 如何使用汇编程序从英特尔处理器中获取随机数?

    我需要从处理器 英特尔酷睿 i3 中的英特尔随机生成器获取随机数 我不想使用任何图书馆 我想在 C 中使用汇编程序粘贴 但我不知道应该使用哪些寄存器和指令 呼叫RDRAND支持的 CPU 目前仅 Ivy Bridge 和 Haswell I
  • 写组合缓冲区位于哪里? x86

    Write Combine 缓冲区在物理上是如何连接的 我见过说明许多变体的框图 L1 和内存控制器之间 CPU 的存储缓冲区和内存控制器之间 CPU 的 AGU 和 或存储单元之间 它依赖于微架构吗 写缓冲区在不同的处理器中可以有不同的目
  • Intel x86 与 AMD x86 CPU 上的访问性能不一致

    我已经实现了一个带有结构内存布局数组的简单线性探测哈希图 该结构包含键 值和指示条目是否有效的标志 默认情况下 该结构体由编译器填充 因为键和值是 64 位整数 但该条目仅占用 8 个布尔值 因此 我也尝试以未对齐访问为代价来打包结构 由于
  • 以编程方式禁用 AMD 系统上的硬件预取

    有没有一种方法可以像在 Intel 系统中那样以编程方式禁用 AMD 系统上的硬件预取器 如这个话题 https stackoverflow com questions 784041 how do i programatically dis
  • 混洗两个 __m128i 的 64 位部分的最佳方法

    我有两个 m128is a and b 我想进行洗牌 以便高 64 位a落在低 64 位dst和低 64 位b落在上64dst i e dst 0 63 a 64 127 dst 64 127 b 0 63 相当于 m128i dst mm

随机推荐

  • aurelia-fetch-client 动态创建请求标头

    我正在使用 aurelia fetch client 将一些数据发送到 web api 在注册方法中 headers Headers register this headers new Headers this headers append
  • Composer 安装“无法打开流”

    每当我运行安装程序 甚至手动安装 Composer 时 我都会收到一条错误 不允许我完成安装 这很烦人 在 Laragon 中 一个程序用于使用 Composer 及其包创建许多不同的项目 它不允许我使用 Laravel 因为 Compos
  • .NET Core 实体框架存储过程

    我正在尝试将 ASP NET 4 5 应用程序移植到 NET Core 但有一个我似乎无法解决的实际问题 我现有的应用程序执行存储过程 该存储过程返回具有多个数据表的数据集 实体框架可以自动将返回的字段映射到我的实体属性 但仅适用于数据集中
  • 为什么 Chrome 开发者工具会自动阻止请求?

    我正在尝试构建一个 PWA 渐进式 Web 应用程序 但 Chrome 开发工具控制台警告说它正在阻止我的 css 和图标文件 Request was blocked by DevTools https example com styles
  • 在 Laravel 中一起使用 React.js 和 Vue.js

    我真的很想知道 是否可以在 Laravel 中同时使用 React js 和 vue js 例如 使用 ReactJs 作为管理仪表板 使用 VueJs 作为客户端仪表板 我知道使用其中之一在技术上和逻辑上更好 你怎么认为 我们可以一起使用
  • 使用 ExecuteStreamCommand 的 Python 脚本

    在尽我所能找到以前的问题和与此问题相关的示例后 仍然没有找到我正在寻找的答案 我想我会自己提交一个问题 由于以下原因 ExecuteStreamCommand 对我来说似乎是完美的处理器 我能够执行任何 Python 脚本并避免使用 Jyt
  • 使用 TeamCity 和 Fakes Framework 进行构建和测试

    我们正在运行 TeamCity 8 1 4 构建服务器 计算机上安装了 VS2013 我最近介绍了依赖于 Microsoft Fakes Framework 的测试 因此 我必须添加一些对新 Fake 程序集和Microsoft Visua
  • SQLiteException:未知错误(代码0):本机无法创建新字节[]

    当尝试查询最多 30 个对象时 我收到此错误 每个对象都有字段字节 其权重为 100x100 ARGB 8888 位图数据 39kb 我使用的是 OrmLite 4 45 版本 在 Samsung GT n8000 平板电脑上 最大堆大小
  • 如何检测用户何时按下 Android 设备上的“菜单”键?

    我知道我可以覆盖onBackPressed 在更高的 API 级别上检测是否按下了后退键 对于菜单按钮有类似的方法吗 我不太喜欢在 KeyEvents 中检查键码 谢谢 您在寻找这个吗 public boolean onKeyDown in
  • R函数返回值以及警告消息

    我调用了其他库函数 它执行计算并抛出警告消息 我尝试使用 tryCatch 捕获消息 但不知道如何保留计算值和警告消息 这是示例 简化 代码 我希望 mydiv 函数同时具有计算值和警告消息 现在 mydiv 调用将返回除法值或警告 但不会
  • 如何在 Alamofire 中使用 PUT 请求

    我是 swift 的新手 我也尝试使用 Alamofire 从 API 调用数据 我对如何使用它感到很困惑放置请求更新数据 我已经在这里阅读了一些解决方案 但我不知道如何在我的应用程序上应用 我正在创建一个事件应用程序 场景应该是 当参与者
  • 模块“AppModule”导入了意外值“MyCustomModule”

    我正在尝试将我的 angular2 自定义库之一迁移到 RC 6 Webpack 我的目录结构是 src source TS files lib transpiled JS files definition files dev develo
  • 使用 gcc 使用 gets 函数编译我的程序[重复]

    这个问题在这里已经有答案了 每当我尝试这样做时 我都会得到 警告 gets 函数很危险 不应使用 现在 我知道为什么这个功能很糟糕了 但是为了编译我已经编写的程序 我必须使用这个函数 我应该怎么做才能不出现此警告 或具有完全相同属性的函数
  • 以编程方式查找应用程序的 URL

    我需要从我自己的应用程序中启动另一个应用程序 但我没有它的 URL 所以我的问题是 有没有办法根据另一个应用程序的包标识符或 trackid 以编程方式查找其 url 如果你只想启动其他应用程序 你可以使用ios私有api interfac
  • ORA-02303: 无法删除或替换具有类型或表相关项的类型

    我是甲骨文新手 我尝试改变varchar 50 to 250 CREATE OR REPLACE TYPE CEQ OWNER TYPE REC PARAE2 AS OBJECT BONETAT DESC VARCHAR2 250 我收到
  • Android recyclerview v.23.2.0 和设计库 v.23.2.0 已损坏

    更新到 v23 2 0 后 recyclerview 项目有奇怪的行为 非常大 但空间空白 更新到设计库 23 2 0 后 菜单溢出图标变成黑色 应用程序有黑色操作栏 UPDATE在我的 Nexus 5 上 溢出图标和回收器视图行已修复 但
  • 在 jinja for 循环中调用 JavaScript 函数[重复]

    这个问题在这里已经有答案了 我有一个 HTML 页面 在变量中schedule具有以秒为单位的连续十进制数 我的目的是创建一个函数 使用 JavaScript jQuery 及时转换所有这些数字 但我无法理解 如何调用我的函数来转换所有项目
  • WPF 中的命令链接

    有人可以告诉我如何在 WPF 窗口中添加 CommandLink 控件吗 这就是我所说的 CommandLink 的意思 http msdn microsoft com en us library aa511455 aspx http ms
  • CouchDB 组级别和键范围

    谁能向我解释为什么以下不起作用 假设以下文档结构 id 520fb089a6cb538b1843cdf3cca39a15 rev 2 f96c27d19bf6cb10268d6d1c34799931 type nosql location
  • 为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现?

    为什么 Meltdown 和 Spectre 错误这么长时间都没有被发现 近 20 年来 这些错误一直存在于 CPU 中 考虑到对所有使用这些处理器的计算机的严重影响 为什么不尽早发现呢 答案非常简单 现代 CPU 拥有数十亿个晶体管 例如