㈠ 微程序控制器中,机器指令与微指令的关系
微程序控制器中,机器指令与微指令的关系如下。
微程序控制器中,机器指令与微指令的关系是汪睁每一条机器指令由若干微指令组成的微程序来解释执行粗渗。在一个CPU周期中,一组实现一定功能的微命令的组合构成一条微指令,有序的微指令序列构成一段微程序,微程序的作用是实现一条对应的机器指令。
机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数困凳岁两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。
㈡ 微程序运行的依据是什么
微程序(microprogram)是英国剑桥大学教授M.V.Wilkes在1951年首先提出的,它是实现程序的一种手段,具体就是将一条机器指令编写成一段微程序。每一个微程序包含若干条微指令,每一条微指令对应一条或多条微操作。在有微程序的系统中,CPU内部有一个控制存储器,用于存放各种机器指令对应的微程序段。当CPU执行机器指令时,会在控制存储器里寻找与该机器指令对应的微程序,取出相应的微指令来控制执行各个微操作,从而完成该程序语句的功能。微程序设计技术,指的是利用软件技术来实现硬件设计的一门技术。
微程序控制方法由于规整性好,灵活方便,通用性强,因此在包括计算机在内的各种复杂数字系统控制器的设计中得到了广泛应用,成为控制器的主流设计方法之一。
程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的控制命令信号汇集在一起编码成所谓的微指令,存放在一个EPROM里。系统运行时,一条又一条地读出这些微指令,从而产生执行部件所需要的各种控制信号,以控制各逻辑部件执行所规定的操作。
一个数字系统基本上可以划分成两大部分——控制部件和执行部件,如图6.26所示。控制器就是控制部件。而ALU、寄存器组、存储器RAM等,相对控制器来讲,就是执行部件。那么两者之间是如何进行联系的呢?
控制部件与执行部件的联系之一,是通过控制线。控制部件通过控制线向执行部件发出各种控制命令,我们把这种控制命令称为微命令,而执行部件接受微命令所执行的操作叫作微操作。
控制部件与执行部件之间的另一联系是反馈信息。例如由于运算处理中正在处理的数据因其结果特征(正、负、进位、溢出等)而影响下一个操作的执行,因此就需要规定条件测试或状态测试。执行部件通过反馈线向控制部件反映当前操作的结果情况,以便使控制部件根据执行部件的“状态”标志下达新的微命令。
在系统的一个基本周期(又称机器周期,一般由几个时钟周期组成)中,一组实现一定操作功能的微命令的组合,构成一条微指令。
这里要强调两点:
第一,一条微指令的有效持续时间为一个系统基本周期,它表示从R0M中读出微指令与执行这条微指令的时间总和。当从ROM中读出下一条微指令后,当前的这条微指令即失效。
第二,一条微指令中包含若干个微命令,它们分头并行地控制执行部件进行相应的微操作。
微指令除给出微命令信息外,还应给出测试判别信息。一旦出现此信息,执行这条微指令时要对系统的有关“状态标志”进行测试,从而实现控制算法流程图的条件分支。微指令中还包含一个下址字段,该字段将指明ROM中下一条微指令的地址。
图6.27 微指令的典型结构
图6.27示出了微指令的典型结构,长条框内的符号X表示一个二进制位(bit)。其中微命令字段给出执行部件的控制信号:X编码为1,表示有微命令,X编码为0表示无微命令。测试判别字段和下一地址字段一起实现顺序控制:当测试判别字段无效时(X编码为0),下址字段信息即是下条微指令的地址;当判别测试字段有效时(其中一个X编码为1),根据执行部件反馈线上的标志信息对下址字段信息进行修改,修改好的地址即为下条微指令的地址。
微程序是由若干条微指令组成的序列。在计算机中,一条机器指令的功能可由若干条微指令组成的序列来解释和执行,因此机器执行一条指令的过程,也就是执行一个相应的微程序的过程。就一般数字系统而言,按照我们在第6.5节中使用的概念,微程序实质上就是将控制算法流程图用EPROM等来实现。
微程序概念的引入使大型复杂数字系统控制器的设计发生了革命性的变化。因为微程序技术可代替硬件布线的控制技术,即由门电路和触发器等组成的硬件网络可被存有控制代码的EPROM存储器所取代[1]
。
㈢ 简述程序和微程序两个的概念和区别。
程序是一系列机器指令的有序集合,用于解决实际问题,有子程序、分支、循环等结构,存放在主存中,可以更新修改;
微程序是一系列微指令的有序集合,微程序设计是将传统的程序设计方法运用到控制逻辑的设计中,因此在微程序中也可以有微子程序、分支、循环等结构。
区别:
1、体系不同
程序它以某些程序设计语言编写,运行于某种目标结构体系上。微程序存储在控制存储器CM中,只能读出,不能更改,CM中的所有微程序解释执行整个指令系统中的所有机器指令。
2、编译不同
一般的,程序是由高级语言编写,然后在编译的过程中,被编译器/解释器转译为机器语言,从而得以执行。
有时,也可用汇编语言进行编程,汇编语言在机器语言上进行了改进,以单词代替了0和1,例如以Add代表相加,Mov代表传递数据等。
微程序的设计技术:
微程序设计技术,指的是利用软件技术来实现硬件设计的一门技术。优点:微程序设计克服了组合逻辑控制单元线路庞杂的缺点,同硬布线比较具有规整性,灵活性,可维护性等一系列优点。缺点:由于增加了到控制存储器中读取微指令的时间导致执行速度慢。
程序的运行:
为了使计算机程序得以运行,计算机需要加载代码,同时也要加载数据。从计算机的底层来说,这是由高级语言(例如Java,C/C++,C#等)代码转译成机器语言而被CPU所理解,进行加载。
㈣ 程序与微程序的区别
微代码和汇编都是低级语言,但是微代码比汇编更底层。微代码和汇编都和硬件有着紧密的联系,但是对于同一产品系列的不同代产品来说,汇编可以完全相同,微代码可能有着巨大的区别,因为微代码是完全依赖于芯片内部的硬件连接。
对于同样一句c语言,在不同的处理器上会生成不同的汇编语言。每一条汇编语言的执行时间也许是一个或者两个时钟周期,甚至更多。微代码和汇编的关系,就像c
与汇编的关系,也就是说一条汇编也许会生成一条或多条微代码。所谓微代码,或者微指令,是处理器内部最小的操作原语,控制着诸如门电路(gates)开关等专门动作,和组成一条指令的微操作的序列。例如,对于一个加法"add"的简单动作,微代码可以决定接受哪两个寄存器或总线为输入,输出到什么总线或者寄存器里,标志寄存器要保存还是丢弃,根据条件进行跳转或者直接执行下一条微代码。一个内部只有8位宽的数据总线完全可以支持32位整数的汇编操作,就是因为有微代码。
微代码原来只是用来开发计算机的逻辑控制。古老的cpu往往都是“硬连线”,每个机器指令(加法,移动)都是由电路实现,虽然有着高性能的优点,但随着指令复杂度的增长,也带来了研发和debug的困难,以及电路的复杂性。微代码的出现让cpu的设计者可以通过写一个微程序的方式来实现一条机器指令,而不是设计电路来实现它。在将来的开发设计过程中,微代码可以很容易地改变,硬件电路却不可更改,否则带来的将是巨大的商业损失。这种灵活的cpu设计导致了今天日益复杂的指令集。