生物行•生命百科  > 所属分类  >  交叉与基础学科   

微程序

目录

基本信息编辑本段

项目内容
中文名称微程序
外文名称Microprogram
提出者M.V. Wilkes(英国剑桥大学教授)
提出时间1951年
所属领域计算机组成原理、计算机体系结构
核心作用将机器指令分解为微操作序列,解释执行指令

概念来源编辑本段

微程序的概念由英国剑桥大学的M.V. Wilkes教授于1951年提出。在此之前,计算机的运行只有两个层次:编程层面(指令集架构ISA)和数字逻辑层面。Wilkes引入了第三个层次——微程序层,作为连接高级机器指令与底层硬件的桥梁。

ADSFAEQWER353423413434

这一思想的灵感来源于当时程序存储的概念——正如程序可以存储在存储器中并按顺序执行,控制信号也可以“存储”起来,按顺序读出以控制计算机的运行。这一创新极大地简化了计算机控制器的设计,将复杂的硬件逻辑设计转化为更易于管理的“软件式”编程任务。

ADFASDFAF23RQ23R

基本概念编辑本段

要理解微程序,首先需要掌握以下几个核心概念: ADSFAEQWER353423413434

微命令与微操作

  • 微命令:控制部件通过控制线向执行部件发出的各种控制命令,是构成控制信号的最小单元。例如“打开寄存器门”、“选择ALU加法运算”等。
  • 微操作:执行部件接受微命令后所进行的基本操作。微命令与微操作一一对应——微命令是控制信号,微操作是执行过程。

微指令

微指令是若干个微命令的集合,存放在控制存储器的特定单元中。一条微指令通常包含两大部分信息:

ADSFAEQWER353423413434

组成部分功能
操作控制字段(微操作码)产生本步操作所需的各种控制信号
顺序控制字段(微地址字段)控制下一条要执行的微指令地址

微程序

微程序是实现一条机器指令功能的若干条微指令组成的序列。换句话说,每条机器指令都对应一段微程序。计算机的程序由指令序列构成,而每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序。 ADFASDFAF23RQ23R

控制存储器

控制存储器(CM,Control Memory)是微程序控制器的核心部件,用于存放所有微程序。由于计算机的指令系统是固定的,实现指令系统的微程序也是固定的,因此控制存储器通常采用只读存储器(ROM)实现。在可写控制存储器(WCS)的支持下,可以实现动态微程序设计。 ADSFAEQWER353423413434

工作原理编辑本段

微程序控制的基本思想

微程序控制的基本思想是将操作控制信号编成“微指令”,存放到控制存储器中。当机器运行时,一条接一条地读出这些微指令,从而产生全机所需的各种操作控制信号。

ADFASDFAF23RQ23R

具体来说,控制部件通过控制线向执行部件发出各种控制命令,将一条机器指令分解为若干基本的微操作序列。这些微操作的控制信号以代码形式编成微指令,若干条微指令组成一段微程序,对应一条机器指令的功能。

ADSFAEQWER353423413434

微程序控制器的基本组成

微程序控制器主要由以下三大部分组成: ADSFAEQWER353423413434

组成部分功能
控制存储器(CM)存放实现全部指令系统的微程序
微指令寄存器存放由控制存储器读出的一条微指令信息
地址转移逻辑负责自动修改微地址,实现微程序的顺序执行或转移

工作过程

微程序控制器的工作过程可以描述如下: ADSFAEQWER353423413434

  1. 取指阶段:执行公共的取指微程序,从主存中取出机器指令送入指令寄存器(IR)
  2. 入口地址形成:由机器指令的操作码通过微地址形成部件产生该指令对应微程序的首地址
  3. 逐条执行:从控制存储器中逐条取出微指令并执行,每执行一条微指令完成一个或多个微操作
  4. 循环执行:执行完一条机器指令对应的微程序后,回到取指微程序入口,开始下一条指令的执行

微指令的编码方式编辑本段

微指令的编码方式是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。 ADSFAEQWER353423413434

直接编码(直接控制)方式

微指令中每一位直接代表一个微命令。这种方式的优点是简单直观、执行速度快、并行操作性好;缺点是微指令字长过长。 ADFASDFAF23RQ23R

字段直接编译方式

互斥性微命令编成一组,作为微指令字的一个字段,用二进制编码表示。这种方式可以缩短微指令字长,但需要译码电路。 ADSFAEQWER353423413434

字段间接编译方式

在字段直接编译法的基础上,规定一个字段的某些微命令需由另一字段中的某些微命令来解释。这种方式可进一步缩短微指令字长,但会削弱微指令的并行控制能力。

ADFASDFAF23RQ23R

水平型与垂直型微指令编辑本段

根据微指令的格式和并行控制能力,微程序设计分为两种类型: ADSFAEQWER353423413434

类型特点优点缺点
水平型微指令一次能定义并并行执行多个微命令并行操作能力强、效率高、执行一条机器指令所需微指令数目少微指令字长较长、设计复杂
垂直型微指令一次只能执行一个微命令微指令字短、与机器指令相似、易于掌握并行操作能力差、效率低

实际应用中常采用混合型微指令,综合两者的特点。 ADFASDFAF23RQ23R

动态微程序设计编辑本段

通常,对应于一台计算机的指令系统有一系列固定的微程序,这种设计称为静态微程序设计。若一台计算机能根据不同应用目标的要求改变微程序,则具有动态微程序设计功能。 ADFASDFAF23RQ23R

动态微程序设计需要可写控制存储器(WCS)的支持,可以在不改变硬件结构的前提下,使计算机适应不同的应用目标。

ADSFAEQWER353423413434

应用与发展编辑本段

在CISC架构中的应用

微程序技术是复杂指令集计算机(CISC)的关键使能技术。CISC架构师希望用强大的机器指令来弥合高级编程语言与硬件之间的差距,而微程序设计将复杂的硬件设计任务转变为更易于管理的“软件开发”问题,极大地缩短了CISC处理器的设计时间。 ADFASDFAF23RQ23R

RISC的关系

精简指令集计算机(RISC)采用相反的哲学——保持指令简单、长度固定,大多数指令能在单个时钟周期内执行完毕。对于RISC架构,硬布线控制单元的原始速度更为理想,微程序设计带来的额外开销成为不可接受的代价。 ADFASDFAF23RQ23R

现代处理器中的应用

尽管RISC架构兴起后微程序设计的“黄金时代”已过,但微代码在现代处理器中仍然普遍存在,尤其是在CISC架构(如x86)中。微代码由CPU厂商开发并嵌入内部CPU ROM中,通过固件或操作系统更新来修复已知硬件问题或增强功能。

ADFASDFAF23RQ23R

实际应用案例编辑本段

经典案例:IBM 360系统

1964年,IBM 360/20计算机首次采用微程序技术以降低硬件成本。IBM 360系列的成功展示了微程序设计的工程价值——通过改变控制存储器中的微代码,可以在不修改硬件的情况下改进计算机的指令集。

ADSFAEQWER353423413434

现代案例:Intel处理器微码更新

在Intel系统中,BIOS需要在启动早期加载多种微码更新,以修复硅片中的已知错误。这种机制允许CPU厂商在硬件发布后通过软件更新的方式解决处理器中的bug。

ADSFAEQWER353423413434

微程序与程序的对比编辑本段

对比项微程序程序
存储位置控制存储器(CPU内部ROM)主存储器(RAM)
对应关系每段微程序对应一条机器指令程序由若干机器指令组成
编写者CPU设计工程师软件程序员
可见性对程序员透明,不可修改用户可读可写
执行频率在每条指令执行时被调用按程序流程执行

常见问题编辑本段

Q:微程序和机器指令是什么关系?

ADFASDFAF23RQ23R

A:一条机器指令对应一段微程序。机器指令是程序员看到的指令,而微程序是CPU内部解释执行这条指令的“工作程序”。执行一条机器指令的过程,就是执行一个相应微程序的过程。
ADFASDFAF23RQ23R

Q:微程序存放在哪里?
A:微程序存放在CPU内部的控制存储器(CM)中。由于微程序是固定的,控制存储器通常采用只读存储器(ROM)实现。

ADFASDFAF23RQ23R

Q:普通程序员需要了解微程序吗?
A:不需要。对于程序员来说,微程序是完全透明的,无需了解其细节。只有在进行计算机组成原理学习或CPU设计时才会涉及微程序设计。

ADFASDFAF23RQ23R

Q:为什么CISC架构需要微程序而RISC不需要?
A:CISC架构的指令复杂,用硬布线逻辑实现会非常复杂;微程序设计将复杂指令分解为简单微操作,简化了设计。RISC架构指令简单,用硬布线控制可以获得更高的速度。 ADFASDFAF23RQ23R

参考资料编辑本段

  • Wilkes, M.V. (1951). The Best Way to Design an Automatic Computing Machine. Report of Manchester University Computer Inaugural Conference.
  • Tanenbaum, A.S. (2012). 计算机组成原理(第6版). 机械工业出版社.
  • Stallings, W. (2019). Computer Organization and Architecture (11th ed.). Pearson.
  • 王爱英. (2013). 计算机组成与结构(第5版). 清华大学出版社.
  • Hennessy, J.L. & Patterson, D.A. (2017). Computer Architecture: A Quantitative Approach (6th ed.). Morgan Kaufmann.
  • 雷思磊. (2018). 从微程序到微架构:CPU设计实践. 电子工业出版社.

附件列表


0

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

如果您认为本词条还有待完善,请 编辑

上一篇 微积分学    下一篇 微粒