Compiler construction 编译器能否直接生成微程序级而不是指令集级的输出?

Compiler construction 编译器能否直接生成微程序级而不是指令集级的输出?,compiler-construction,computer-architecture,instruction-set,Compiler Construction,Computer Architecture,Instruction Set,我想知道是否任何给定的编译器都可以直接生成微体系结构级别的输出,而不是ISA级别的输出。据我所知,微程序设计级别目前通常不被使用,硬件直接在ISA级别执行指令。但这有可能吗?为什么这些天没有做那么多?谢谢。CPU通常不会公开让您直接访问微程序指令的接口,事实上,这些指令没有二进制格式。因此,编译器不可能以它们为目标,这样做也没有意义,因为没有人能够使用生成的二进制文件 即使有可能,这也不是一个好主意——ISA是保证保持向后兼容的标准,而内部微码可供处理器供应商随时更改。它的压缩程度也可能比ISA

我想知道是否任何给定的编译器都可以直接生成微体系结构级别的输出,而不是ISA级别的输出。据我所知,微程序设计级别目前通常不被使用,硬件直接在ISA级别执行指令。但这有可能吗?为什么这些天没有做那么多?谢谢。

CPU通常不会公开让您直接访问微程序指令的接口,事实上,这些指令没有二进制格式。因此,编译器不可能以它们为目标,这样做也没有意义,因为没有人能够使用生成的二进制文件


即使有可能,这也不是一个好主意——ISA是保证保持向后兼容的标准,而内部微码可供处理器供应商随时更改。它的压缩程度也可能比ISA低很多,因此二进制文件会更大,并且会损失指令缓存的性能。

CPU通常不会公开一个接口,让您直接访问微程序指令——实际上,这些指令没有二进制格式。因此,编译器不可能以它们为目标,这样做也没有意义,因为没有人能够使用生成的二进制文件


即使有可能,这也不是一个好主意——ISA是保证保持向后兼容的标准,而内部微码可供处理器供应商随时更改。它也可能比ISA压缩得少很多,因此二进制文件会更大,并且会损失指令缓存的性能。

简单的答案是肯定的。微码的生成只是在更底层生成代码。Ganesh提出了一些原因来解释为什么这不受欢迎,简单的答案是肯定的。微码的生成只是在更底层生成代码。Ganesh提出了一些不受欢迎的原因,“你会失去性能”——以及CPU型号和制造商之间的兼容性。AMD的微码可能不同于英特尔的s&c,“你会失去性能”,以及CPU型号和制造商之间的兼容性。AMD的微码可能不同于英特尔的s&c。