什么是英特尔微code? [英] what is intel microcode?

查看:201
本文介绍了什么是英特尔微code?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我读过的用于固定在CPU的错误,而无需修改BIOS。
从我汇编的基本知识我知道汇编指令由CPU内部分为微codeS并据此执行。但英特尔在某种程度上可以访问做一些更新,在系统启动和运行。

From what i've read its used to fix bugs in the cpu without modifying the BIOS. From my basic knowledge of assembler i know that assembly instructions are split into microcodes internally by the CPU and executed accordingly. But intel somehow gives access to make some updates while the system is up and running.

任何人有他们的更多信息?有没有关于什么可以在微codeS和做任何文件可如何使用?

Anyone has more info on them? Is there any documentation regarding what can it be done with microcodes and how can they be used?

编辑:
我读过维基百科的文章。没弄明白我怎么可以写一些我自己的,什么使用它会有。

i've read the wikipedia article. Didn't figure out how can i write some on my own, and what uses it would have.

推荐答案

在旧时代,微code被大量使用在CPU:每单指令被分成微code。这使相对复杂的指令集的CPU适中(认为这是一个摩托罗拉68000 ,与它的许多操作模式和8个32位寄存器,适合在40000个晶体管,而单核心的现代86将有超过一百的数百万的)。这是不正确了。出于性能的考虑,大部分的操作现在硬连线:它们之间的相互pretation被僵化的电路进行的,任何微code之外

In older times, microcode was heavily used in CPU: every single instruction was split into microcode. This enabled relatively complex instruction sets in modest CPU (consider that a Motorola 68000, with its many operand modes and eight 32-bit registers, fits in 40000 transistors, whereas a single-core modern x86 will have more than a hundred millions). This is not true anymore. For performance reasons, most instructions are now "hardwired": their interpretation is performed by inflexible circuitry, outside of any microcode.

在最近的86,这是合理的,一些复杂的指令,如 FSIN (其计算的浮点值正弦函数)与微$ C $实施C,但简单的说明(包括 IMUL 整数乘法)都没有。这限制了可定制的微code来实现。

In a recent x86, it is plausible that some complex instructions such as fsin (which computes the sine function on a floating point value) are implemented with microcode, but simple instructions (including integer multiplication with imul) are not. This limits what can be achieved with custom microcode.

话虽这么说,微code格式不仅非常具体到特定的处理器型号(如微code的奔腾III和奔腾IV不能海誓山盟自由兑换 - ,当然,采用英特尔微code为AMD处理器是不可能的),但它也是一个严重保护的秘密。英特尔已经公布的由一个操作系统或主板BIOS可以更新微code方法(它必须在每个硬复位后进行;更新保存在非易失性RAM),但微code的内容的无证。该英特尔®64和IA-32架构软件开发人员手册(卷3A)描述了更新过程(第9·11的微code更新设备),但指出,实际微code为加密和时钟校验满的。措辞是含糊不清的,几乎任何类型的密码保护可能会被隐藏,但底线是,它是目前不可能,除英特尔外,编写和尝试一些自定义的微code的人。

That being said, microcode format is not only very specific to the specific processor model (e.g. microcode for a Pentium III and a Pentium IV cannot be freely exchanged with eachother -- and, of course, using Intel microcode for an AMD processor is out of the question), but it is also a severely protected secret. Intel has published the method by which an operating system or a motherboard BIOS may update the microcode (it must be done after each hard reset; the update is kept in volatile RAM) but the microcode contents are undocumented. The Intel® 64 and IA-32 Architectures Software Developer’s Manual (volume 3a) describes the update procedure (section 9.11 "microcode update facilities") but states that the actual microcode is "encrypted" and clock-full of checksums. The wording is vague enough that just about any kind of cryptographic protection may be hidden, but the bottom-line is that it is not currently possible, for people other than Intel, to write and try some custom microcode.

如果在加密不包括数字(非对称)签字和/或如果人民英特尔拙劣保护系统不知何故,那么它可能是可以想象的一些显着的逆向工程工作的可以有可能使一个生产这种微型code,但是,考虑到可能适用性有限(因为大多数指令是硬连接),没准这不会买太多,只要编程能力而言。

If the "encryption" does not include a digital (asymmetric) signature and/or if the people at Intel botched the protection system somehow, then it may be conceivable that some remarkable reverse-engineering effort could potentially enable one to produce such microcode, but, given the probably limited applicability (since most instructions are hardwired), chances are that this would not buy much, as far as programming power is concerned.

这篇关于什么是英特尔微code?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆