您的位置首页>互联网>

AMD交付的Ryzen 3000在其随机数生成器中存在严重的微代码错误

导读 这个周末,我很高兴在自己的家庭办公室中部署我的第一个Ryzen 3000驱动的工作站。不幸的是,一个微代码错误(最初在7月份发现,但仍然在野

这个周末,我很高兴在自己的家庭办公室中部署我的第一个Ryzen 3000驱动的工作站。不幸的是,一个微代码错误(最初在7月份发现,但仍然在野外漂浮着)破坏了我的美好时光。我最终使我的Ryzen 3700X系统正常工作,而且速度肯定很快。但是不幸的是,它仍然存在错误,并且没有简单的方法来修复它。

产品发布后不久,AMD Ryzen 3000客户开始注意到其闪亮的新CPU出现的问题。Windows用户无法成功启动Destiny 2(由于电源管理错误,与我的系统无关),并且Linux用户在许多情况下甚至无法启动系统。杰森Evangelho覆盖的bug最初发现并报告在福布斯早在7,和AMD的代表通过电子邮件声明中提供了他:

这听起来很高兴和乐观,但现实并非如此简单。当CPU微代码中存在错误时,您将由主板供应商决定发布一个新的系统BIOS来为您更新它-您不能单单通过AMD的一些下载链接自行进行修复。

AMD于7月对该错误做出了回应。据我所知,AMD仅通过直接电子邮件回复来做到这一点。没有任何新闻发布-该公司的回应听起来似乎一切都将在一两周内解决。

三个月后,我有责任向您报告事实并非如此。

什么是RDRAND?

有问题的微代码错误是对RDRAND指令的错误响应。从Intel的Broadwell和AMD的Zen架构开始的现代x86_64 CPU应该具有高质量的板载随机数生成器(RNG),这些生成器使用热“噪声”可以非常快速地向具有内核级访问权限的任何人提供高熵的伪随机数谁想要。反过来,RDRAND是提供这些随机数的指令。

所有这些都应该是相当安全的。有一个CPUID函数调用检查的可用性RDRAND,并且从调用的返回值中还有一个“进位”,RDRAND这应该让调用的应用程序知道CPU的RNG是否无法生成足够的随机数。不幸的是,未打补丁的Ryzen 3000对CPUID 01H呼叫说“是”,将进位设置为1,表明它已成功创建了最手工的,有机的高质量随机数...并0xFFFFFFFF每次给您一个“随机”数。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。