第5章 控制器逻辑_第1页
第5章 控制器逻辑_第2页
第5章 控制器逻辑_第3页
第5章 控制器逻辑_第4页
第5章 控制器逻辑_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章控制器逻辑第5章控制器逻辑Contents指令系统1

23对象矢量路径的操作微程序控制器组合逻辑控制器5.1处理器的外特性

——指令系统第7章控制器逻辑5.1.1指令1.指令的概念指令(instruction)是要求计算机完成某个基本操作的命令。2.指令的长度与指令码扩展一条指令的长度由操作码和各地址码的长度决定。操作码的长度由操作的种类决定,一个包含n位的操作码最多能表示2n种操作。指令地址码的长度由指令的寻址空间——存储器的容量决定。不同的计算机中,可以采用定长操作码——操作码占有固定长度的位数,也可以采用变长操作码——操作码的长度不固定。变长操作码可以用扩展窗口将部分地址作为操作码使用,以增加指令条数。第7章控制器逻辑5.1.2指令系统及其描述1.指令系统及其意义一个CPU所能承担的全部基本操作由一组对应的指令描述。这组完整地描述该CPU的指令就称为该CPU的指令系统(commandsystem,commandset,instructionsystem,instructionset)指令系统的意义:(1)用户编程的依据。(2)CPU设计的依据。2.指令系统的品质要求(1)最小完备性。(2)有效性。(3)规整性。(4)兼容性。第5章控制器逻辑3.指令系统的描述(1)机器语言(2)汇编语言第5章控制器逻辑4.汇编语言的基本语法1)数据类型2)运算符3)操作码4)地址码及寻址方式5)标号与注释第5章控制器逻辑第5章控制器逻辑指令系统被称为CPU的外特性。一方面因为指令系统表明了CPU能执行哪些基本操作。因此,指令系统是(系统)程序员在该CPU上进行程序设计的依据。另一方面,功能模拟和结构模拟是研究、制造任何一种机器的两个最重要的途径。20世纪60年代人们从程序员的角度观察机器属性,开始用“计算机体系结构”来统一功能和结构这两个方面。但是由于功能和结构两者仍然存在差别,通常把计算机的功能方面叫做外(宏)体系结构,把计算机的实现方面叫做内(微)体系结构。由于CPU的功能是取指令—分析指令—执行指令,所以一个CPU设计所依据的功能也来自指令系统,即指令系统是CPU设计的基本依据。要设计一个CPU,要先为它设计指令系统。第5章控制器逻辑3.指令系统的描述语言——机器语言与汇编语言机器语言就是用0,1码描述的指令系统。符号语言程序转换为机器语言程序的方法是查表。用符号语言描述并增加了指示性指令的的指令系统称为汇编语言。第5章控制器逻辑4.汇编语言的基本语法(1)数据类型Intel8086汇编语言中允许使用如下形式的数值数据。·

二进制数据,后缀B,如10101011B。·

十进制数据,后缀D,如235D。·

八进制数据,后缀Q(本应是O,为避免与数字0相混,用Q代),如235Q。·

十六进制数据,加后缀H,如BAC3H。用引号作为起止界符的一串字符称为字符串常量第5章控制器逻辑(2)运算符·

算术运算符:+,-,*,/。·

关系运算符:EQ(相等),NE(不相等),LT(小于),GT(大于),LE(小于等于),GE(大于等于)。·

逻辑运算符:AND(“与”),OR(“或”),NOT(“非”)。第5章控制器逻辑(3)操作码可以用算术算符,也可以用英文单词。如用SUB表示减去,用ADD表示相加等。(4)地址码与寻址方式指令中的地址码可以用十六进制、十进制表示,也可以用寄存器名或存储器地址名表示。为了能用有限的地址码访问大容量的存储器,人们研究出了多种寻址方式。(5)标号与注释汇编语言还允许使用标号及注释,以增加可读性。这部分与机器语言没有对应关系,仅用于使人阅读程序时容易理解。第5章控制器逻辑5.1.4CISC与RISC1.Neumann语义差距问题第5章控制器逻辑2.80-20规律表5.1Intel8088处理器各类指令使用频度统计应用程序号指令类型F1F2F3F4F5F6F7平均数据传输34.2535.8528.8420.1225.0524.3334.3130.25算术运算24.9722.3445.3243.6545.7245.4228.2836.24逻辑运算/位操作

3.40

4.34

7.63

7.49

6.38

3.97

4.89

5.44字符串处理

2.42

4.22

2.72

2.01

2.10

2.35

2.10

2.86转移指令34.8432.9915.347.6320.5225.7230.2925.33处理器控制

0.13

0.26

0.15

0.10

0.24

0.19

0.14

0.19第5章控制器逻辑3.RISC的基本思想80-20规律启发了人们的某种思想:只留下最常用的20%的简单指令,通过优化硬件设计,把时钟频率提得很高,实现整个系统的高性能,靠速度取胜。这就是RISC技术的基本思想。第5章控制器逻辑4.RISC的外体系结构(1)指令种数较少(一般希望少于100种)(2)指令格式少(希望只有1~2种),而且要求长度一致,以便实现简单而又统一的译码。5.5.RISC与SISC比较RISCSISC指令数目一般少于100条一般大于200条寻址方式种类少多指令格式种类少多通用寄存器数量多少指令字长定长变长执行速度高较低不同指令的执行时间多数在一个周期内相差甚远各种指令的使用频率接近相差甚远设计及制造的方便性高低可靠性逻辑简单,可靠性高逻辑复杂,可靠性低控制器实现分时组合逻辑电路微程序5.2CISC的成功案例:80x86第5章控制器逻辑5.2.180x86技术概述(1)80x86架构最重要的特点是采用了可变指令长度的CISC。(2)80x86使用的是Intel和其他几家公司处理器所支持的一组机器指令系统,并且从8086到80186、80286、80386、80486,再到后来的Pentium系列以及现在的多核技术,都是使用一脉相承的80x86指令系统。(3)80X86采用CISC,具有大量的复杂指令、可变的指令长度、多种的寻址方式这些CISC的特点,也是CISC的缺点,这些大大增加了解码的难度。(4)80x86只有8个通用寄存器。(5)它的寻址范围小,约束了用户需要。第5章控制器逻辑第7章控制器逻辑5.2.2寻址方式1.立即寻址(immediateaddressing)第5章控制器逻辑2.寄存器直接寻址(registeraddressing)第5章控制器逻辑3.存储器直接寻址取出操作数到AX第5章控制器逻辑4.存储器间接寻址第5章控制器逻辑5.变址/基址寻址第5章控制器逻辑6.堆栈寻址第5章控制器逻辑7.8086的段寻址第5章控制器逻辑5.1.3Intel8086指令简介1.数据传送类指令数据传送指令用于寄存器、存储单元或输入输出端口之间的数据或地址传送。(1)通用数据传送指令MOV是最基本的通用数据传送指令。它可以在寄存器之间、寄存器和存储单元之间传送字节和字,也可以将一个立即数传送到寄存器或存储单元中。例如MOVAL,BL

;寄存器之间传送字节MOVSI,[BP+8AH]

;存储单元和寄存器之间传送数据;(基址寻址)MOVAL,06H;立即数传送到寄存器XCHG是一条数据交换指令。操作数可以是寄存器或存储单元,但不能是段寄存器或立即数,也不能同时为两个存储器操作。例如XCHGAL,CL ;字节交换XCHGBX,SI ;字交换XCHGAX,[BX+SI] ;寄存器和存储单元之间交换数据;(基址变址寻址)第5章控制器逻辑(2)输入输出指令这是专门用于累加器和输入输出端口之间进行数据传送的指令,而不是像通用数据传送指令那样只用于寄存器、存储单元或堆栈之间的数据传送。下面是输入输出指令的实例。INAL,05BH;字节输入(端口地址05BH)OUT0FAH,AX

;字输出(端口地址0FAH)MOVDX,0358H;设置端口地址(端口地址超出8位时,;必须先将端口地址送入DX寄存器,;再进行输入输出)INAX,DX;字输入第5章控制器逻辑(3)地址传送指令地址传送指令是传送操作数的地址。LEA用来将源操作数(必须是存储器操作数)的偏移地址传送到通用寄存器、指针或变址寄存器。例如LEASI,[BX+36H]LDS是一条取(地址)指针到数据段寄存器和数据寄存器的指令。它要求源操作数是一个双字长存储器操作数,目的操作数是16位通用寄存器、指针或变址寄存器,但不能是段寄存器。指令执行时,双字长存储器操作数中的低地址字传送到指定的数据寄存器中,高地址字传送到数据段寄存器DS中。该指令用来设置字符串传送的源地址是非常方便的,例如指令LDSSI,SRC是把双字节(地址)指针变量SRC的低16位送到SI,高16位送DS。LES是一条取(地址)指针到附加段寄存器的指令。该指令的操作与LDS指令基本类似,不同的只是把32位(地址)指针的高16位送到ES寄存器中,例如LESDI,DST第5章控制器逻辑(4)标志传送指令这种数据传送指令专门用于对标志寄存器进行操作。8086指令系统提供了以下4条标志传送指令:LAHF ;标志寄存器的低8位送AHSAHF ;AH中的内容送标志寄存器PUSHF ;标志寄存器内容进栈POPF ;栈顶内容送标志寄存器注意,SAHF和POPF指令直接影响标志位,其他传送指令均不会对标志位产生影响。第5章控制器逻辑2.算术运算指令1)加法指令(1)加法指令ADD(2)带进位加法指令ADC(3)增1指令INC(4)加后二—十进制调整指令DAA第5章控制器逻辑2)减法指令(1)减法指令SUB(2)求补指令NEG(3)两操作数比较指令CMP3)乘法指令4)除法指令第5章控制器逻辑3.逻辑运算指令(1)逻辑“非”指令NOT(2)逻辑“与”指令AND(3)逻辑“异或”指令XOR(4)检测与逻辑比较指令TEST4.移位指令和循环移位指令(1)移位指令(2)循环移位第5章控制器逻辑5.串操作指令数据串是存储器中一个连续字节或字的序列。这个序列可以是数字值(二进制或BCD码),也可以是字母或数字(如ASCII字符)。串操作就是对数据串中每一个元素进行的操作。例如,数据传送就是把一个数据串的全部元素从存储器的一个区域传送到另一个区域。第5章控制器逻辑6.程序控制指令(1)无条件转移指令JMP(2)过程调用指令CALL(3)过程返回指令RET5.3RISC的成功案例:ARM第5章控制器逻辑5.3.1ARM技术概述1.ARM充分利用了RISC的特性(1)寻址方式灵活简单。(2)固定的32b

操作码(opcode)长度,可以降低编码数量所产生的耗费,减轻解码和流水线化的负担。(3)设置了大量的16

×

32寄存器阵列(registerfile),并采用Load_store结构使大多数数据操作都能在寄存器中完成。(4)大多数指令的执行仅需一个CPU周期。第5章控制器逻辑2.ARM特色技术(1)使用条件执行指令来提高代码密度和性能,使大部分指令可以条件式地执行,降低在分支时产生的负重,弥补分支预测器(branchpredictor)的不足。算数指令只会在要求时更改条件编码(conditioncode)。(2)有两种指令系统,有对应的两种工作状态:ARM。这是ARM处理器自身的、字对齐的32b指令系统。Thumb。这是ARM为提高指令密度而开发的一个全16b、半字对齐的指令系统。从而弥补了定长指令的一些不足。同时提高了代码密度,大大地节省系统的存储空间。(3)增加了32b的桶形移位器器(barrelshifter),来扩展执行大部分的算术指令和寻址计算的功能,使它们不损失效能。(4)强大的索引寻址模式(addressingmode)。(5)精简但快速的双优先级中断子系统,具有可切换的暂存器组。(6)允许一些特定指令的执行周期数字可变,以降低功耗,减小面积和代码尺寸。第5章控制器逻辑5.3.2ARM的运行模式(1)用户模式(usr,UserMode)。ARM处理器正常的程序执行状态。(2)快速中断模式(fiq,FastInterruptRequestMode)。用于高速数据传输或通道处理。当触发快速中断时进入此模式。(3)外部中断模式(irq,InterruptRequestMode)。用于通用的中断处理。当触发外部中断时进入此模式。(4)管理模式(svc,SupervisorMode)。操作系统使用的保护模式。在系统复位或者执行软件中断指令SWI时进入。(5)数据访问终止模式(abt,AbortMode)。当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。(6)系统模式(sys,SystemMode)。运行具有特权的操作系统任务。(7)未定义指令中止模式(und,UndefinedMode)。第5章控制器逻辑5.3.3ARM处理器的寄存器ARM处理器共有37个32位的寄存器,其中包括31个通用寄存器(含程序计数器PC)和6个状态寄存器。在ARM工作状态下,这些寄存器分为如下5类:(1)未分组寄存器R0~R7,可以工作在所有的处理器模式下,没有隐含的特殊用途。(2)分组寄存器R8~R14,属于不同的模式专用,用于快速异常处理。(3)程序计数器PC(R15)。(4)程序状态寄存器CPSR(CurrentProgramStatusRegister)(R16),CPSR包含条件码标志、中断禁止位、当前处理器状态和模式以及其他控制信息,可以工作在所有处理器模式下。(5)每种异常模式都有一个程序状态保存寄存器SPSR(SavedProgramStatusRegister),。当异常出现SPSR用于保留CPSR的状态。在Thumb状态下,SP对应ARM状态下的R13,LR对应ARM状态下的R14,PC对应ARM状态下的R15。第5章控制器逻辑5.3.4ARM寻址方式目前ARM处理器支持9种寻址方式,分别是:立即数寻址寄存器寻址寄存器偏移寻址寄存器间接寻址基址变址寻址多寄存器寻址相对寻址堆栈寻址块拷贝寻址。第5章控制器逻辑5.3.5ARM指令的基本格式与数据类型1.ARM指令的基本格式<Opcode>

{<Cond>}

{S}

<Rd>,

<Rn>

[,Rm]{,<Opcode2>}其中,<

>内的项是必需的,{

}内的项是可选的。第5章控制器逻辑2.ARM的数据类型ARM体系结构中,存储器的存储器格式有三种类型,即字节(Byte)、半字(Half-Word)和字(Word)。其中,字节的长度为8位。半字为16位,在内存中占用2个字节空间。字的长度为32位,占用4个字节空间。第5章控制器逻辑5.3.6ARM指令简介(1)跳转指令;(2)数据处理指令;(3)程序状态寄存器(PSR)处理指令;(4)加载/存储指令;(5)协处理器指令;(6)异常产生指令。第5章控制器逻辑例5.2比较两个值大小,并进行相应加1处理,C语言代码为:if(a>b)

a++;else

b++;对应的ARM指令如下(其中R0中保存a的值,R1中保存b的值):CMP

R0,R1

;R0与R1比较,做R0-R1的操作ADDHI

R0,R0,#1

;若R0>R1,则R0=R0+1ADDLS

R1,R1,#1

;若R0<=R1,则R1=R1+1第5章控制器逻辑5.4组合逻辑控制器第5章控制器逻辑采用逻辑电路的方法设计微操作控制线路应包括如下工作:(1)分解每条指令,归纳成若干基本操作;(2)将各微操作落实到指令周期的不同节拍中去──编排操作时间表;(3)对全部指令的操作时间表进行综合、分析,求出各相同的微操作产生条件的逻辑表达式,并画出操作控制线路。第5章控制器逻辑5.2.1指令的微操作分析取指周期是否间址执行周期有无中断间址周期中断周期是否无有第5章控制器逻辑1.取指周期(FetchingCycle)取指周期包含了如下的微操作:①程序计数器PC的内容被装入地址寄存器MAR。②向存储器发出读信号。③MAR中的地址经地址译码,驱动所指向的单元,从中读出数据送存储器的数据寄存器MDR中。④将MDR中内容送指令寄存器IR中。⑤指令的操作码送CU译码或测试。⑥程序计数器内容加1,为取下一条指令做好准备。任何一条指令都是从取指令开始,所以取指令称为公共操作。第5章控制器逻辑2.间址周期(ExecutionCycle)间接访内指令是采用间址方式取操作数的指令。这种指令比直接访存指令要多一个间址周期,用于获取操作数的有效地址。具体操作如下。第5章控制器逻辑①将指令中的形式地址送MAR。②向存储器发送读信号。③从MAR所指向的存储单元中保存的数据(有效地址)读到MDR中。④将有效地址送指令寄存器中的地址字段。第5章控制器逻辑3.执行周期(executecycle)任何指令都含有执行周期。但是不同的指令的执行周期所进行的操作是不同的。下面介绍几种典型指令的执行周期中的操作。(1)加法指令中的执行周期设加法指令是把指令所指的内存单元的数据加到累加器中——即累加器内容与指定单元内容相加,结果送累加器。所进行的操作如下。①指令地址码送MAR。②向存储器发读信号。③从指定单元读出数据送MDR。④向ALU发加操作信号,将累加器内容与MDR内容相加,结果送累加器。第5章控制器逻辑(2)写存储器指令中的执行周期设写存储器命令是将累加器中数据送到存储器的某单元X中。所进行的操作如下。①将指令的地址码X送MAR.②向存储器发写信号。③将累加器中数据送MDR.④将MDR中数据写到MAR指示的内存单元X中。第5章控制器逻辑(3)非访存指令中的执行周期非访存指令指该指令执行过程中不需要访问存储器。清除累加器指令、累加器取反指令、停机指令等都是非访存指令。第5章控制器逻辑由于不需要访问存储器,所以执行的操作比较简单。例如停机指令的执行周期只需要执行如下操作:将运行标志触发器置0(运行时该触发器为1)。(4)转移类指令中的执行周期转移类指令也不需要在执行周期中访问存储器。其操作也比较简单:修改PC的值为指令中指定的目标地址。第5章控制器逻辑4.中断周期每条指令即将结束时,CPU都要检测有无中断请求,若有就要执行下列操作。①将一个特定地址(用于保存断点的单元地址)送MAR。②将PC内容(断点)送MDR。③向存储器发送写信号。④将MDR内容(断点)写到MAR指示单元。⑤将中断服务程序入口地址送PC。⑥关中断——将中断允许触发器EINT置0。第5章控制器逻辑5.2.2指令的时序控制与时序部件1.微操作的时序控制方式同步控制方式的特点是,在任何情况下每一条指令的执行所需的CPU时序信号周期(T周期)是固定不变的。每个时序信号的结束标志着这个时序信号所代表的时间段中的操作已完成,可以开始后继的微操作。简单地说,这是一种“以时定序”的方法。异步控制方式的特点是“以序定时”,也就是说,一个微操作是用其前一个微操作的结束信号启动的,而不是由统一的周期和节拍来控制。这样,每条指令、每个操作控制信号需要多少时间就占用多少时间,即每条指令的指令周期可由多个不等的机器周期数组成。异步控制方式一般用于各自具有不同的时序系统的设备。这时,各设备之间的信息交换采取应答方式,如CPU要从设备中读数据,则CPU发读信号,然后等待;设备把数据准备好后,就向CPU发“准备好”信号,CPU将数据读入。第5章控制器逻辑2.同步时序控制方式中的节拍分配(1)定长CPU周期(统一节拍)法。这是一种“统一划齐”的集中控制方式。即不管何种指令,都以最长的指令周期为标准分配相同的节拍数。这种时序电路简单,但将造成大量时间浪费。图5.13为采用4个时钟周期的定长CPU周期示例。第5章控制器逻辑(2)不定长CPU周期(分散节拍)法。这是一种“按需分配”的方式,即根据不同类型的指令所包含的微操作的种类、数目的不同,控制器在解释、执行时按实际所需,分配相应数目的节拍,使不同的指令占用不同的机器周期。这种方式可以有效地提高运行速度,但将增加时序部件的复杂性。第5章控制器逻辑(3)延长节拍法。第5章控制器逻辑3.时序部件时序部件是控制器的关键部件,它的功能是对各种操作实施时间上的严格控制。时序部件主要由主时钟源、节拍发生器和启停控制逻辑组成。其中的关键部件是节拍发生器。节拍发生器可以是一个环形计数器,也可以是一个计数译码电路。第5章控制器逻辑环形计数器组成的节拍发生器第5章控制器逻辑节拍发生器的连接第5章控制器逻辑5.2.3硬布线操作控制器设计举例1.指令译码器设计2.组合逻辑网络的设计

OP

AD表5.4一个模型机的指令系统操作码符号二进制代码LDA0000ADD0001SUB0010OUT1110HLT1111第5章控制器逻辑图5.18组合逻辑控制器框图

返回第5章控制器逻辑图

模型机的组合控制逻辑网络

&&&&&&&&&&&&T0T1T2T3T4T5T6LDAADDSUBOUTHALTEPL1ML1E1RCPHALTE1AL0L2ME1IL2AE2RL3ME2IL4ME3IL1BE3RL2BE4RE2AE1BE3AE2BSUL2AE1UL3AE2U返回第5章控制器逻辑第5章控制器逻辑ADD指令含有的微操作及其实现如下所述。

取指令T0:Ep;IP送出指令地址LM1→LM;指令地址→MART1:ER1→ER;读出指令LI;把指令送指令寄存器IRT2:CP;程序指针自动加1

执行指令T3:EI2→EI;IR分两部分送出LM3→LM;把操作数地址送MART4:ER3→ER;内存输出操作数

LB1→LB;把操作数送B寄存器T5:EA2→EA;数A送ALUEB1→EB;B数送ALUT6:EU1→EU;ALU送出结果LA2→LA;结果送累加器A第5章控制器逻辑5.5微程序控制器第5章控制器逻辑5.3.1概述微程序控制方法,是由英国剑桥大学的M.V.Wilkes教授于1951年提出的。它的基本思想是将程序存储控制原理引入到操作控制部件的设计中,即把一条指令看做是由一个微指令系列组成的微程序。这样执行一条指令的过程,就成为取一条微指令→分析微指令→执行微指令→再取下一条微指令的过程。这种方法相当于把控制信号存储起来,所以又称存储控制逻辑的方法。它的好处是使操作控制部件的设计规整化,使操作控制部件的功能具有可修改性和可扩充性。第5章控制器逻辑5.3.2微程序操作控制部件的组成图5.20微程序控制器结构框图第5章控制器逻辑返回

1.控制存储器控制存储器(CM)是微程序操作控制部件的核心,一般由ROM(或EPROM)构成,它存放机器指令系统中各条指令所对应的微程序。每条指令的操作码被译码为所对应的微程序的首地址。2.微指令寄存器和微地址形成电路第5章控制器逻辑垂直型控制又称软办法。这种微指令与机器指令很相似,每条指令只能完成对少量微操作的控制,并行能力差、微程序长度长、执行速度慢,但微指令码较短。实际应用中,多是水平与垂直两种方法的结合。微地址码的作用是形成下一条微指令的微地址。后继微地址有两种形成方法:一种是增量方式,它与后继指令地址的形成方式相同,即无转移时,微指令指针增1;有转移时,微指令中要指定所转向微地址;另一种是判定方式,下一条微指令的微地址,必须由前一条指出。第5章控制器逻辑3.指令操作码译码器在微程序操作控制部件中,指令操作码译码器的功能实际上是指出该指令所对应的微程序的首地址。第5章控制器逻辑5.3.3微程序操作控制部件设计举例1.分析每条指令的基本微操作将指令系统中每条指令按执行流程进行分析、分解,形成综合的指令流程图。图模型机5条指令的指令流程图

AR←ADDRR

AR←ADDRR

AR←ADDRR

AR←ADDR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论