微处理器设计/微代码
外观
< 微处理器设计
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(可编程逻辑阵列)矩阵中实现微代码。
- ↑ 美国专利5050073。 "用于减少计算微指令执行时间的微指令执行系统"。 1987年。
- ↑ Jonathan G. Campbell。 "中央处理单元(CPU)" 2000年。
- ↑ Patrick R. Schaumont。 "硬件/软件协同设计的实践介绍"。 2010年。
- ↑ Govindarajalu。 "计算机体系结构与组织:设计原理与应用"。 2004年。
- ↑ B. Govindarajalu。 "计算机体系结构与组织,第2版" 2010年。
- ↑ "ECOMIPS:FPGA上的经济型MIPS CPU设计",由李希芝和李铁财撰写。
- ↑ 维基百科:微代码#可写控制存储器