微指令
在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令 。所以微指令就是把同时发出的控制信号的有关信息汇集起来而形成的。将一条指令分成若干条微指令,按次序执行这些微指令,就可以实现指令的功能。
若干条微指令可以构成一个微程序,而一个微程序就对应了一条机器指令。 因此,一条机器指令的功能是若干条微指令组成的序列来实现的。简而言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
从指令与微指令,程序与微程序,地址与微地址的一一对应关系上看,前者与内存储器有关,而后者与控制存储器(它是微程序控制器的一部分。微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三部分组成。其中,微指令寄存器又分为微地址寄存器和微命令寄存器两部分)。同时从一般指令的微程序执行流程图可以看出。每个 CPU 周期基本上就对应于一条微指令。
微指令的编译方法
决定微指令格式的主要因素 . 考虑到速度、成本等原因,在设计计算机时采用不同的编译法 . 因此微指令的格式大体分成两类 : 水平型微指令和垂直型微指令。
水平型微指令
一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令 .
水平型微指令的一般格式如 : 控制字段 判别测试字段 下地址字段
按照控制字段的编码方法不同,水平型微指令又分为三种 : 一种是全水平型 ( 不译法 ) 微指令,第二种是字段译码法水平型微指令,第三种是直接和译码相混合的水平型微指令。
垂直型微指令
微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。
垂直型微指令的结构类似于机器指令的结构 . 它有操作码,在一条微指令中只有 l-2 个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多 . 它是采用较长的微程序结构去换取较短的微指令结构。
水平型微指令与垂直型微指令的比较
(1) 水平型微指令并行操作能力强,指令高效,快速,灵活,垂直型微指令则较差。
(2) 水平型微指令执行一条指令时间短,垂直型微指令执行时间长。
(3) 由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。
(4) 水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
指令 :计算机执行某种操作的命令。
计算机的指令有:微指令、机器指令和宏指令之分。
微指令 :微程序级的命令,它属于硬件;
宏指令 :由若干条机器指令组成的软件指令,它属于软件;
机器指令 (指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算。
指令系统: 一台计算机中所有机器指令的集合。 包括:复杂指令系统计算机 (CISC) 、精简指令系统计算机( RISC )。
指令系统的性能要求
一个完善的指令系统应满足如下四方面的要求:
完备性
用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性:要求指令系统丰富、功能齐全、使用方便。
有效性
利用该指令系统所编写的程序能够高效率的运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。
规整性
规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。
对称性指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;
匀齐性指一种操作性质的指令可以支持各种数据类型;
指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。
兼容性
系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。
低级语言与硬件结构的关系
计算机语言具有高级语言和低级语言之分。
高级语言:其语句和用法与具体机器的指令系统无关。
低级语言:包括:机器语言(二进制语言)和汇编语言(符号语言)。机器语言是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。
高级语言与计算机的硬件结构及指令系统无关,在编写程序方面比汇编语言优越。但是高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。
指令格式
指令字(简称指令)即表示一条指令的机器字。
指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。
操作码字段表征指令的操作特性与功能;地址码字段通常指定参与操作的操作数或操作数的地址。
地址码字段又称为操作数字段,一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。在此基础上,后来又发展成二地址格式、一地址格式和零地址格式
指令字长度
指令字长度:一个指令字中包含二进制代码的位数。
机器字长度:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。
单字长指令:指令字长度等于机器字长度的指令。
半字长指令:指令字长度等于半个机器字长度的指令。
双字长指令:指令字长度等于两个机器字长度的指令。
使用多字长指令的目的在于,提供足够的地址位来解决访问内存任何单元的寻址问题。但其主要缺点是必须两次或者多次访问内存以取出整条指令,这就降低了微处理器的运算速度,同时又占用了更多的存储空间。
在一个指令系统中,如果各种指令字长度是相等的,则称为等长指令字结构。如果指令字长度随着不同指令功能而异,则称为边长指令字结构,指令的控制较为复杂。
指令和数据的寻址方式
形成指令地址和操作数地址的方式成为寻址方式。
操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号。在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。
寻址方式分为两类,既指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。
1 )隐含寻址 特点是:在指令中不明显的给出而是隐含着操作数的地址。
2 )立即寻址 特点是:指令的地址字段指出的不是操作数的地址,而直接是操作数本身。
3 )直接寻址 特点是:在指令格式的地址字段中直接指出操作数在内存的地址 D 。
4 )间接寻址 特点是:指令地址字段中的形式地址 D 不是操作数的真正地址,而是操作数地址的指示器, D 单元的内容才是操作数的有效地址。
5 )寄存器寻址方式和寄存器间接寻址方式
当操作数不放在内存中,而是放在 CPU 的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。
寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
6 )相对寻址方式
相对寻址是把程序计数器 PC 的内容加上指令格式中的形式地址 D 而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。
7 ) 基址寻址方式
特点是:将 CPU 中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。它的优点是可以扩大寻址能力
8 )变址寻址方式
变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把 CPU 中某个变址寄存器的内容与偏移量 D 相加来形成操作数有效地址。 但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。
9 )块寻址方式
块寻址方式经常用在输入输出指令中,以实现外存储器或外围设备同内存之间的数据块传送。
10 )段寻址方式
这种寻址方式的实质还是基址寻址,方法上采用段寄存器数据自动左移若干位,然后与偏移量相加,进而形成所需的内存地址。
11 )堆栈寻址方式包括:串联堆栈、存储器堆栈
一些计算机的 CPU 中有一组专门的寄存器,有 16 个或更多,它们称为串联堆栈,其中每一个寄存器能保存一个字的数据。数据的入栈或出栈遵循“后进先出”的原则。
存储器堆栈
由程序员设指出一部分主存储器来作为堆栈,称为存储器堆栈。
这种堆栈有三个优点:
⑴堆栈能够具有程序员要求的任意长度;
⑵只要程序员喜欢,愿意建立多少堆栈,就能建立多少堆栈;
⑶可以用对存储器寻址的任何一条指令来对堆栈中的数据进行寻址。
注意到:存储器堆栈中,进栈时先存入数据,后修改堆栈指示器;出栈时,先修改堆栈指示器,然后取出数据。
典型指令
包括:指令的分类、基本指令系统、精简指令系统( RISC )
[ 指令的分类 ]
主要包括:数据传送指令、算术运算指令、逻辑运算指令、程序控制指令、输入输出指令、字符串处理指令以及特权指令和其他指令。
[ 基本指令系统 ]
这些指令的功能具有普遍意义,几乎所有计算机的指令集中都能找到这些指令。
[ 精简指令系统 RISC]
RISC 指令系统的最大特点是:
⑴选区使用频率最高的一些简单指令,指令条数少;
⑵指令长度固定,指令格式种类少;
⑶只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。
时钟周期
时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如 12M 的晶振,它的时钟周期就是 1/12us ),是计算机中的最基本的、最小的时间单位。
在一个时钟周期内, CPU 仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。
8051 单片机把一个时钟周期定义为一个节拍(用 P 表示),二个节拍定义为一个状态周期(用 S 表示)。
机器周期
计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。 8051 系列单片机的一个机器周期由 6 个 S 周期(状态周期)组成。一个 S 周期 =2 个节拍( P ),所以 8051 单片机的一个机器周期 =6 个状态周期 =12 个时钟周期。
如:写一个 word 数据需要占用 DSP 的一个机器周期
如:外接 24M 晶振的单片机,他的一个机器周期 =12/24M 秒;
指令周期
执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。
总线周期
通常用内存中读取一个指令字的最短时间来规定 CPU 周期。 ( 也就是计算机完成一个基本操作所花费的时间 )
总线周期程序存储器中读取指令,对存储器存取数据,对外设端口读写数据等,都须执行总线周期。
总线周期通常包含 4 个 T 状态: T1 , T2 , T3,T4 。所谓一个 T 状态就是一个时钟周期。它是 CPU 执行操作的最小时间单位。
指令与周期解释
最新推荐文章于 2024-08-31 09:49:26 发布