- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我想修改现有指令的实现。例如,假设我想更改在获取和解码后执行“mov”指令时由我的处理器执行的微码。我该怎么做?
此外,假设我想向 ISA 添加一条新指令。例如,假设有一个当前未使用的操作码,我希望我的处理器能够在获取它后解码和执行。我该怎么做?
老实说,我什至不知道从哪里开始,这就是我询问堆栈溢出的原因。我没有任何编写微代码的经验,我只从我的计算机体系结构课上知道这个术语。我知道查找 x86 指令列表非常容易,但我不知道在哪里查找微指令列表。我什至不知道英特尔是否公开了他们的微码列表。我不知道我需要使用什么程序来将这些新的微程序加载到我 CPU 内的适当内存中。我认为可能涉及引导加载程序,但我对此可能完全错了。如果我拥有我的 CPU,我认为我可以合法地修改它的微码并对它的指令进行逆向工程,但是通过现有文档而不是通过逆向工程,会更容易理解我的 CPU 是如何工作的以及它的微码是如何被改变的。
我知道有一些较小的硬件供应商生产开源 ISA——所以如果我想试验一下,从这些供应商之一购买 CPU 可能会很好?但我不知道替代供应商的哪种 CPU 最适合。但实际上,我不认为购买新的 CPU 对于我正在尝试做的事情是必要的,因为如果必须的话,我可以使用现有的 CPU 在虚拟机中运行开源 ISA(我是从软件角度而非硬件角度对微指令和微程序感兴趣)。
最佳答案
For instance, suppose I wanted to change the microcode that is executed by my processor when a "mov" instruction is executed after being fetched and decoded. How would I do that?
你会:
a) 获得计算机工程、计算机科学和/或电气/电子工程硕士学位。
b) 申请 Intel(或 AMD)的工作,并得到它
c) 在公司结构中一路向上,到达能够影响 future 产品设计的位置
请注意,简单的 mov
指令不会使用微代码,因此您必须先更改它。
I don't have any experience writing microcode
微码被加密并被视为商业 secret ;所以“地球上几乎没有人”(我猜可能有 20 名英特尔员工?)有为英特尔 CPU 编写微代码的经验。
I know there are some smaller hardware vendors that make open source ISAs--so maybe buying a CPU from one of those vendors would be good if I want to experiment with this?
“开源 ISA”主要意味着一家大公司能够花费数百万美元制造自己的芯片,从而节省大约 50 美分的许可费用。
实际的替代方案是使用 FPGA(但成本和性能远不及您从定制 ASIC 获得的成本和性能)。
关于x86 - 如何使用微程序修改 Intel CPU 的指令集架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74282231/
我想开始使用一些 AVX(高级矢量扩展)指令。我知道英特尔提供了一个模拟器来测试包含这些指令的软件(请参阅 this question ),但由于我不想手动编写十六进制代码,因此出现了关于 的问题。哪
假设我使用的是基于 Intel x64 的笔记本电脑,没有专用的 GPU。 我必须有一些板载 GPU 否则我的屏幕将无法工作,对吗? 板载 GPU 通常是否嵌入到 CPU 中? 英特尔是否有单独的 G
我遇到了这个错误:“SSE 指令集未启用”。我该如何解决这个问题? 我有 ACER i7,Ubuntu 11.10,请问有人能帮帮我吗? 任何帮助将不胜感激! 同时运行: sudo cat /pro
我希望创建一个最小的、计算通用的字母数字 x86 操作码子集。最终我希望子集包含尽可能少的指令,如果有多个最小子集,我也想知道。该子集应该能够模拟可以用整个字母数字指令集编写的任何程序。说明应仅涵盖与
COM 文件中使用了哪些指令集?我以为是 8086,但似乎我错了。在我发现的 8086 手册中,shl 的第二个参数只能接受 1 或 cl,而 1 以外的立即值对我来说很好用。如果重要,我正在使用 N
在“ARM11TechnicalRefManual”第 1-34 节的“Thumb 指令集”下,它说: “Thumb 指令集是最常用的 32 位 ARM 指令的子集。Thumb 指令长 16 位,并且
Java Virtual Machine Instruction Set页面提供aaload、aastore...等助记词信息 然而,既没有提到这些助记符占用的CPU周期,也没有任何关于这些助记符的字
在任何编程环境中,无论我选择何种数据类型,最终 CPU 都只会执行算术运算(加法/逻辑运算)。 这种转变(从用户定义的数据类型/操作到 CPU 指令集)是如何发生的,编译器、解释器、汇编器和链接器在这
Raspberry Pi 3 uses a Broadcom SoC with and ARMv8 A53 core .它还使用基于 Debian Jessie 的 32 位操作系统。根据 ARM 的
这个问题在这里已经有了答案: How to create a lightweight C code sandbox? (13 个答案) 关闭 9 年前。 我正在开发一个类似于 hackerrank.
下面的代码是否可以用来检查 CPU 是否支持 SSE3 指令集? 使用 IsProcessorFeaturePresent()该功能显然不适用于 Windows XP。 bool CheckSSE3(
我想编译一个包含大量 32 位静态库的程序,由于缺少 makefile,我无法将其重新编译为 64 位,但我应该编译一些库以获得一些静态库以与它们一起使用。 我要编译的库之一有一个 Makefile,
我知道 SSE 是 x87 浮点指令的替代方法,但 x87 FPU 是否仍在 Ivy-Bridge 或 Haswell 等现代 CPU 中实现? SSE 是否取代了 x87 指令集? 最佳答案 x87
我知道这个问题已经有一些答案,但我似乎不明白为什么我一直收到这个错误。 下面是解释:我有 64 位机器,其中安装了 Windows 7 x64。我在 Windows 上的 GCC (CodeBlock
我们有一个要用 AVX2 编译的翻译单元(只有那个):它在文件的第一行预先告诉 GCC: #pragma GCC target "arch=core-avx2,tune=core-avx2" 这曾经适
我想使用 mfoc library使用我的 Galaxy Nexus 手机,但 NFC Android API 中缺少某些方法。所以我想实现这些方法并构建我自己的 ROM。 使用 NFC pn512
我希望以快速高效的方式用 C 语言编写 Morton Z 顺序编码和解码的两个函数,即。 uint64_t morton_encode(uint32_t xindex, uint32_t yindex
我在 Visual C++ 2010 中使用 OpenCV 中的 BRIEF 描述符来匹配两个图像中的点。 在the paper关于 BRIEF-descriptor 的内容是可以加快速度: "The
我正在尝试制作一个对 2 个 CGVectors 求和的函数。 这是我的尝试: 包括: @import GLKit; @import Foundations; // Defenition of
所以,这就是我要完成的工作。在我的 C++ 项目中,必须使用 Microsoft Visual Studio 2015 或更高版本编译,我需要一些代码具有不同的版本,具体取决于用户 CPU 中可用的最
我是一名优秀的程序员,十分优秀!