如果我理解这两篇文章,那么最低级别的英特尔架构已经过渡到使用RISC指令,而不是英特尔着名的传统CISC指令集:
http://www.hardwaresecrets.com/article/235/4
http://www.tomshardware.com/reviews/intel,264-6.html
如果是这种情况,那么x86 / x64芯片是否仍然采用微程序设计,或者它是否像传统的RISC芯片一样使用硬连线控制?我猜它仍然是微程序设计但想要验证。
答案 0 :(得分:4)
Microcode已经存在了很长时间,如果这就是你所指的。所以我不知道HardwareSecrets的文章是什么,除非英特尔现在在CISC处理器之上构建RISC处理器。
即使是HardwareSecrets文章也称它们为Micro-Instructions。马铃薯,potahto。
答案 1 :(得分:3)
刚刚找到答案。参考Andrew Tanenbaum的“计算机系统组织”,第54页至第59页。 英特尔芯片是基于CISC的,所有基于CISC的芯片都有一个解释器(微码),可以将复杂的指令分解成小步骤。之前所有芯片都包含微程序。直到1980年David Patterson和Carlo Sequin引入RISC概念时才有CISC术语。 RISC代表精简指令集计算机。在今天的时间内,指令集的大小无关紧要。 RISC设计中最重要的是指令的简单性,但名称“简化”。 RISC设计是关于快速发布越来越简单的指令。指令花费的时间长度少于每秒启动的数量。 此外,使用速度更快的CPU ROM而不是更慢的主存储器CISC设计的优势也随着同样更快的主存储器的出现而消失。 RISC肯定比CISC性能更好。那么为什么芯片制造商英特尔没有转向RISC?有两个原因。首先,存在向后兼容性的问题,数十亿美元的公司已投资于英特尔线路的软件。其次,英特尔可以设法在其CISC芯片中使用RISC的概念。从486开始,intel CPU包含一个RISC内核,它在单个数据路径周期中执行最简单和最常见的指令,同时以通常的CISC方式解释更复杂的指令。 我认为英特尔表面上采用了混合方法,以保持市场上的表面/名望/商誉符合技术进步。我会把intel芯片仅作为CISC。
答案 2 :(得分:2)
在现代x86处理器上,大多数指令在没有微代码(*)的情况下执行,但是一些复杂或不经常执行的指令确实使用微代码。
(*)不要与微操作混淆 - 在x86无序处理器中,x86指令通常被解码为一个或多个微操作,然后排队等待执行(无微码!)无序执行管道。
值得注意的是,现代x86处理器具有修补/更新微码的功能,以便在现场修复勘误表。
答案 3 :(得分:1)
当前的x86 CPU仍然使用微代码,因为x86指令集相对于典型的RISC处理器非常复杂。至少对于一些指令来说这是真的。
在内部,复杂的指令被分解为简单的RISC类指令,然后由类似RISC的复杂核心处理。类似RISC的指令有时会被重新排序或并行执行。
答案 4 :(得分:0)
微编码指令的典型示例是除法和乘法,这是CISC和RISC的情况。考虑到(相对)很少使用它,在硬件中实现除法是不值得的。乘法更容易实现,但也是微编码的,但当然不是相同程度。根据该文档Instruction Latencies and Throughput for ... x86 Processors,K10处理器的mul和div的延迟为5和77或15.4X。对于intel SBR(?),相应的值为4和92或23X。关于它们相对复杂性的另一个见解是它们各自的吞吐量:在K10上,每隔一个时钟周期可以保持乘法(2.5 - 5/2 - 同时运行),但每77个时钟周期仅维持一个除法(与除法延迟相同)
其他例子是sh?d(shift?double)和bs? (位扫描?)。