首页 文章

x86 / x64芯片还在使用微程序吗?

提问于
浏览
6

如果我理解这两篇文章,那么最低级别的英特尔架构已经过渡到使用RISC指令,而不是英特尔着名的传统CISC指令集:

http://www.hardwaresecrets.com/article/235/4

http://www.tomshardware.com/reviews/intel,264-6.html

如果是这种情况,那么x86 / x64芯片是否仍然采用微程序设计,还是像传统的RISC芯片一样使用硬连线控制?我猜它仍然是微程序设计,但想验证 .

5 回答

  • 4

    Microcode已经存在了很长时间,如果这就是你所指的 . 所以我不知道HardwareSecrets的文章是什么,除非英特尔现在在CISC处理器之上构建RISC处理器 .

    甚至HardwareSecrets文章也称它们为Micro-Instructions . 土 beans ,potahto .

    http://en.wikipedia.org/wiki/Microcode

  • 1

    刚刚找到答案 . 参考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 .

  • 0

    在现代x86处理器上,大多数指令在没有微代码(*)的情况下执行,但是一些复杂或不经常执行的指令确实使用微代码 .

    (*)不要与微操作相混淆 - 在x86无序处理器中,x86指令通常被解码为一个或多个微操作,然后排队等待执行(无微码!) . - 顺序执行管道 .

    值得注意的是,现代x86处理器具有修补/更新微码的功能,以便在现场修复勘误表 .

  • 2

    当前的x86 CPU仍然使用微代码,因为x86指令集相对于典型的RISC处理器非常复杂 . 至少对于一些指令来说这是真的 .

    在内部,复杂的指令被分解为简单的RISC类指令,然后由类似RISC的复杂核心处理 . 类似RISC的指令有时是重新排序或并行执行的 .

  • 3

    微编码指令的典型示例是除法和乘法,这是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? (位扫描?) .

相关问题