ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 什么是Intel微码?

2019-09-28 06:02:02  阅读:352  来源: 互联网

标签:linux assembly intel


根据我的阅读,它用于修复CPU中的错误而无需修改BIOS.
根据我对汇编的基本知识,我知道汇编指令在内部由CPU分成微码并相应地执行.但是,在系统启动并运行时,intel会以某种方式提供访问以进行一些更新.

有人有更多的信息吗?有没有关于微码可以做些什么以及如何使用它们的文件?

编辑:
我已经阅读了维基百科的文章:我不知道如何自己写一些,以及它会有什么用处.

解决方法:

在较旧的时代,微代码在CPU中被大量使用:每条指令都被分成微码.这使得适度CPU中相对复杂的指令集成为可能(考虑到Motorola 68000具有多个操作数模式和8个32位寄存器,适合40000个晶体管,而单核现代x86将超过1亿个).这不再适用.出于性能原因,大多数指令现在都是“硬连线”:它们的解释是由任何微码之外的不灵活电路执行的.

在最近的x86中,有些复杂的指令(例如fsin(计算浮点值的正弦函数))是用微码实现的,但是简单的指令(包括与imul的整数乘法)不是.这限制了定制微码可以实现的目标.

话虽这么说,微代码格式不仅非常特定于特定的处理器型号(例如Pentium III和Pentium IV的微代码不能互相自由交换 – 当然,使用Intel微处理器的AMD处理器是问题),但它也是一个受到严密保护的秘密.英特尔发布了操作系统或主板BIOS可以更新微码的方法(必须在每次硬复位后完成;更新保存在易失性RAM中),但微代码内容没有记录. Intel® 64 and IA-32 Architectures Software Developer’s Manual(卷3a)描述了更新过程(第9.11节“微码更新设施”),但声明实际的微码是“加密的”并且时钟满了校验和.措辞很模糊,几乎可以隐藏任何类型的加密保护,但最重要的是,对于英特尔以外的人来说,目前不可能编写和尝试一些自定义微码.

如果“加密”不包括数字(非对称)签名和/或如果英特尔人以某种方式破坏保护系统,那么可以想象一些显着的逆向工程努力可能使人们能够生产这样的微码,但是鉴于可能有限的适用性(因为大多数指令都是硬连线的),就编程能力而言,可能性不会太大.

标签:linux,assembly,intel
来源: https://codeday.me/bug/20190928/1826429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有