跳转到内容

微处理器设计/微代码

来自维基教科书,开放的书籍,为开放的世界

RISC单元通常比CISC单元更快、更高效。 出于这个原因,许多CISC处理器拥有复杂的指令解码器,实际上将CISC机器码转换为称为微代码的类似RISC的内部指令集。 然后,这些微代码被馈送到基于RISC设计的处理器的内部核心。

实现内存-内存体系结构CPU[需要引文] 的最常见方法(即使是单芯片微处理器,不仅仅是 线绕机)是使用一个小的“控制存储器”ROM。 控制存储器的输出数据位被锁存在微指令寄存器[1][2][3][4][5] 中(类似于从RAM获取的指令被锁存在指令寄存器中的方式)。 决定系统循环时间的时钟信号主要对微指令寄存器进行时钟控制。 存储在微指令寄存器中的位直接控制着CPU中发生的一切。(在一些处理器中,微指令寄存器是唯一与时钟信号相连的东西。 稍后我们将讨论“流水线”,这是一种涉及与时钟信号相连的流水线寄存器的技术)。

微指令寄存器中的一些位仅仅驱动控制存储器的一些地址位。 这些位——流水线寄存器的那个子字段——有时被称为“微程序计数器”,即使它仅仅是一个锁存器——通常对控制存储器进行编程,使得这些位在每个时钟周期递增,并在新的指令被加载到指令寄存器时复位为零。 指令寄存器直接驱动控制存储器ROM的一些地址线。 控制存储器ROM的另外一些地址线由状态位驱动,如Z标志位和C标志位。

一些CPU,如ECOMIPS[6]、英特尔酷睿2和英特尔至强[7],使用“可写微代码”——而不是将微代码存储在ROM或硬连线逻辑中,而是将微代码存储在一个称为可写控制存储器或WCS的RAM中。


进一步阅读

[编辑 | 编辑源代码]


  • "Viktor's Amazing 4-bit Processor" 的微代码,据他说,*可能*可以用传统二极管矩阵中的大约90个二极管来实现; 但是他用一个Flash存储器芯片实现了微代码,他可以使用手动开关在电路中重新编程。
  • Dieter Mueller 的 MT15 使用晶体管而不是二极管在一个大的AND-OR PLA(可编程逻辑阵列)矩阵中实现微代码。

参考文献

[编辑 | 编辑源代码]
  1. 美国专利5050073。 "用于减少计算微指令执行时间的微指令执行系统"。 1987年。
  2. Jonathan G. Campbell。 "中央处理单元(CPU)" 2000年。
  3. Patrick R. Schaumont。 "硬件/软件协同设计的实践介绍"。 2010年。
  4. Govindarajalu。 "计算机体系结构与组织:设计原理与应用"。 2004年。
  5. B. Govindarajalu。 "计算机体系结构与组织,第2版" 2010年。
  6. "ECOMIPS:FPGA上的经济型MIPS CPU设计",由李希芝和李铁财撰写。
  7. 维基百科:微代码#可写控制存储器
华夏公益教科书