版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章CPUCPU及其控制器及其控制器 第1页/共127页 CPU CPU概述概述 指令周期指令周期 8086 8086微处理器微处理器 第第4 4 章章 C CP PU U及及其其控控制制器器 控制单元的设计控制单元的设计 微处理器技术的发展微处理器技术的发展 第2页/共127页本章要点本章要点lCPUCPU的功能、组成和寄存器组的功能、组成和寄存器组l一条运算指令的完整执行过程一条运算指令的完整执行过程l80868086微处理器的功能结构,微处理器的功能结构,80868086的的寄存器组,寄存器组,80868086的存储器组织的存储器组织l组合逻辑控制器的结构和基本原理组合逻辑控制
2、器的结构和基本原理l微程序控制的基本原理微程序控制的基本原理第3页/共127页4.1 CPU4.1 CPU概述概述 CPU CPU的功能的功能 CPU CPU的寄存器的寄存器 CPU CPU的组成的组成 第4页/共127页4.1.1 CPU4.1.1 CPU的功能的功能 程序是指令的有序集合。 程序被装入主存。 运行程序时,CPU自动地、逐条从内存取出指令并解释指令,形成一组控制信号,去指挥操作部件实现相应的操作,完成对数据的加工和处理。 同时,CPU自动修改指令地址,给出后继指令地址在内存中的位置,以便连续取指令并分析执行,直到该程序执行结束。 在运行过程中CPU还能自动处理某些紧急的异常事
3、件。 CPU在计算机系统中起着核心的作用,它的功能具体可归结为5个方面。 第5页/共127页4.1.1 CPU4.1.1 CPU的功能的功能 (1) (1) 指令控制:指令控制: 严格控制程序的执行顺序,保证机器按照规定执行是CPU的首要任务。 (2) (2) 操作控制:操作控制: 一条指令的执行,要涉及计算机中的若干个部件。CPU能够对指令进行译码产生一组控制和操作信号,传送给被控部件,并能检测各个部件发送的信号,从而协调各个工作部件实现指令所规定的操作。第6页/共127页片内数据总线BAFECD.图4.1 A寄存器中的数据传送到B寄存器示意图中小箭头为门控信号举例:实现指令举例:实现指令M
4、OV B,AMOV B,A 第7页/共127页 (3) (3) 时序控制:时序控制: 对由指令译码所得的各种操作信号的产生时间、稳定时间、撤销时间及相互之间的关系都应有严格的要求。对操作信号施加时间上的控制,称为时序控制。只有严格的时序控制,才能保证各功能部件组合构成有机的计算机系统。 (4) (4) 数据加工处理:数据加工处理:即在前三种控制的条件下,对数据进行算术运算和逻辑运算,以及其他非数值数据的处理,并将处理结果送到指令规定的地方存储。数据加工处理,是完成程序功能的基础,是CPU的根本任务。 (5) (5) 异常事件处理:异常事件处理:在程序的正常运行过程中,可能出现机器本身的异常情况
5、,如掉电、复位、以零做除数等,也可能有外部设备要求紧急处理比如键盘中断等情况,这时CPU必须具有以某种方式比如中断处理的方式来停下当前执行的程序,转而处理突发的重要的事件的能力。 第8页/共127页4.1.2 CPU4.1.2 CPU的组成的组成 传统CPU主要由控制器和运算器两大部件组成,为了配合这两部分工作,一般CPU内部还包含有一些寄存器。 控制器由程序计数器PC、地址寄存器AR、指令寄存器IR、指令译码器ID、时序产生器和操作控制器等部分组成。 运算器由算术逻辑部件ALU、累加器AC、数据缓冲寄存器、寄存器组和程序状态寄存器PSW组成,它是数据加工处理部件。运算器接受控制器的命令完成具
6、体的数据加工任务。 第9页/共127页算术逻辑部件ALU累加器AC寄存器组状态寄存器PSW地址寄存器AR缓冲寄存器DR指令寄存器IR指令译码器ID操作控制器时序产生器CCCCCC程序计数器PCCCC时钟存储器M输入输出接口数据总线状态反馈地址总线微操作信号图4.2 CPU主要组成部件逻辑结构示意图(图中C为来自控制器的控制信号)CPU第10页/共127页4.1.3 CPU4.1.3 CPU的寄存器的寄存器 寄存器用来保存运算和控制过程中的中间结果、最后结果、控制信息和状态信息。各种CPU的寄存器可能有所差异,一般CPU都具有数据缓冲寄存器、指令寄存器、程序计数器、地址寄存器、累加寄存器和状态寄
7、存器等6种寄存器。 第11页/共127页4.1.3 CPU4.1.3 CPU的寄存器的寄存器 数据和指令缓冲寄存器DR用来存放CPU从主存读来的一个指令字或一个数据字,简称缓冲寄存器。当CPU要将数据传送给主存时,也先将数据保存到缓冲寄存器中,再通过DR将数据经数据总线送到内存储器中。 可见,缓冲寄存器作为CPU与主存、外围设备之间的信息中转,对数据起缓冲作用,平衡CPU与主存、外围设备之间的操作时间差异;同时,数据缓冲寄存器为算术逻辑部件ALU提供另一个操作数。 1. 1. 数据和指令缓冲寄存器数据和指令缓冲寄存器DR DR 第12页/共127页4.1.3 CPU4.1.3 CPU的寄存器的
8、寄存器 程序计数器PC存放要取的指令地址,它具有自动计数的功能。当CPU按照程序计数器的内容取来指令到指令缓冲寄存器中后,程序计数器PC自动修改计数,指出下一条要执行的指令在主存中的存放地址。有两种修改计数值的情况: (1)当CPU顺序执行指令时,程序计数器根据当前已取指令的长度(字节数),自动计数。 (2)当CPU执行分支转移指令时,如果是相对寻址,程序计数器的值修改为当前地址加上一个偏移量(有符号数),得到转移目的指令在主存中的地址;如果是直接寻址,则将转移指令中的绝对转移地址送给程序计数器。这样,CPU便按照PC寄存器的内容去取得转移目标的第一条指令。 2. 2. 程序计数器程序计数器P
9、CPC 第13页/共127页4.1.3 CPU4.1.3 CPU的寄存器的寄存器 CPU取得的指令经缓冲寄存器转送给指令寄存器IR,由指令寄存器保存当前CPU要执行的一条指令,为指令译码与分析作准备。一条指令由地址码和操作码两部分组成。指令寄存器中操作码部分送指令译码器ID译码,地址码部分送程序计数器(对程序转移指令)或地址寄存器(以便取操作数)。 3. 3. 指令寄存器指令寄存器IRIR 第14页/共127页4.1.3 CPU4.1.3 CPU的寄存器的寄存器 地址寄存器AR用来存放当前CPU所要访问的主存单元或I/O端口的地址。当CPU要对主存或外围设备的信息进行存取时,必须进行地址定位。
10、地址定位是CPU将地址寄存器AR中的地址信息传送到地址总线上,再由主存中的地址译码电路实现对要访问的主存单元定位。在地址定位的过程中,地址信号必须稳定。因此,地址信息要由一个寄存器来保存,这个寄存器就是地址寄存器。在CPU访问外设的过程中,地址寄存器AR同样实现对I/O端口的定位。 4. 4. 地址寄存器地址寄存器ARAR 第15页/共127页4.1.3 CPU4.1.3 CPU的寄存器的寄存器 简称累加器。累加器的入口是从缓冲寄存器取得要运算的源数据,或者存放来自算术逻辑单元的运算结果数据。它的数据出口是算术逻辑单元,即为算术逻辑单元提供一个操作数。之所以命名累加器,是因为算术逻辑单元最基本
11、的操作是加法。一个运算器至少有一个累加器。有的甚至更多,如采用2个、4个、8个等多累加器结构。在多累加器结构的运算器中,累加器也可作通用寄存器,这些寄存器都可以为算术逻辑单元提供操作数,或存放操作结果。 5. 5. 累加寄存器累加寄存器ACAC 第16页/共127页4.1.3 CPU4.1.3 CPU的寄存器的寄存器 状态寄存器用来反映执行算术逻辑运算指令及各类测试指令时的运算结果状态,这些结果状态主要包括运算结果进位标志、运算结果为零标志、运算结果溢出标志、运算结果符号标志、运算结果奇偶标志等。状态寄存器与运算器直接相连,自动产生并保存各类状态标志,这些标志为后续指令的执行提供判断条件。状态
12、寄存器还保存一些控制标志,如中断允许标志、单步标志、方向标志等。控制标志是通过专用指令设置的。 6. 6. 状态寄存器状态寄存器PSWPSW 第17页/共127页(1 1)取指令)取指令 程序计数器PC存放要取的指令地址,经地址寄存器AR在地址总线上发出地址信号,存储器中的指令由数据总线进入CPU的缓冲寄存器,存放到指令寄存器IR中。同时,程序计数器PC自动修改计数,指出下一条要执行的指令在主存中的存放地址。一条运算指令的完整执行过程一条运算指令的完整执行过程 第18页/共127页 (2 2)分析指令)分析指令 CPU对指令译码器IR中的指令操作码进行识别和解释,通过操作控制器产生相应的微操作
13、信号,并由时序产生器产生相应的时序信号,控制微操作信号的作用时序。同时指令中的操作数地址码被分离出,若是存储器操作数,则将操作数地址送地址寄存器AR,在地址总线上发出地址信号,存储器中的数据由数据总线进入CPU的缓冲寄存器,并送到ALU输入端的数据暂存器。若是寄存器操作数,则直接送到ALU输入端。一条运算指令的完整执行过程一条运算指令的完整执行过程 第19页/共127页(3 3)执行指令)执行指令 由微操作信号按照相应的时序,启动算术逻辑运算部件ALU,完成指令规定的动作,并建立相应的状态标志存放到状态寄存器中。如果结果是存储器操作数,还要将数据通过数据缓冲寄存器写回存储器。 CPU就是这样不
14、断地取指令、分析指令、执行指令,如此周而复始,除非遇到停机指令,否则直到执行完一个程序的指令序列的最后一条指令。早期的CPU就是这样以顺序解释方式来完成程序的执行的。现代CPU往往基于流水解释方式,CPU执行程序速度快。 一条运算指令的完整执行过程一条运算指令的完整执行过程 第20页/共127页4.2 4.2 指令周期指令周期 指令周期的基本概念指令周期的基本概念 指令执行的微操作流程指令执行的微操作流程 几个典型的机器周期几个典型的机器周期 第21页/共127页4.2.1 4.2.1 指令周期的基本概念指令周期的基本概念 时钟信号CLK的周期长度称为时钟周期T,一般是机器主频的倒数。 机器周
15、期,又称为CPU周期,是微处理器完成各种类型操作所花费的时间,它由若干时钟周期T组成。因此,时钟周期是处理操作的最基本的时间单位,它又被称为节拍脉冲或T周期。通常用从主存中取出一条指令的最短时间来规定机器周期。 这就是说,取指所需的时间为一个机器周期。执行一条速度最快的指令的时间,也至少需要一个机器周期。对于一些操作相对复杂的指令,则需要更多的机器周期。1. 1. 微处理器的基本时序微处理器的基本时序 第22页/共127页8086的一个典型的访存读机器周期的一个典型的访存读机器周期, 它需要它需要4个个T周期周期 第23页/共127页 (1)T1周期。地址线有效,AD0AD15、A16A19输
16、出20位地址信号,并维持一个T周期。此时ALE有效,输出一个正脉冲,在其下降沿将地址信号锁存入地址锁存器。 (2)T2周期。地址信号消失,CPU发出RD有效信号,并一直保持到T3周期结束。 (3)T3周期。存储器在收到地址信号,并在RD信号作用下,内部对地址译码选中要访问的存储单元,并将访存的16位数据信号送到地址/数据复用总线AD0AD15上。CPU在RD信号的上升沿将16位数据读入CPU内的数据缓存器。 (4)T4周期。完成读存储器数据的任务,所有信号恢复为无效状态。1. 1. 微处理器的基本时序微处理器的基本时序 第24页/共127页 插入等待周期TW,平衡CPU和主存速度。 通过总线对
17、存储器或IO接口进行一次访问所需的时间也是一个机器周期,叫做总线周期。CPU每执行一条指令至少要访问一次存储器(取指令),即至少要进行一次读存储器操作,占用一个读总线周期。 总线操作主要有:存储器读和IO读操作、存储器写和IO写操作、中断响应操作、总线请求等。 1. 1. 微处理器的基本时序微处理器的基本时序 第25页/共127页 指令周期就是CPU从取指令到执行完一条指令的时间,它包括取指周期和执行周期两部分。对于相同的CPU结构,各条指令的取指过程相同,都有访存周期。 一般地,指令周期包括若干个机器周期,而一个机器周期又由若干个时钟周期构成。但是由于各种指令操作功能不同,指令的操作数不同,
18、使得指令周期长短不一,有的甚至没有执行周期。如无条件转移指令“JMP Label” 指令执行如果涉及到访存操作,将使得指令的执行时间要比不需访存的指令长,如果操作数是寄存器操作数,几乎不要一个T就可以取得操作数进入运算;而对存储器操作数的读写访问要花费至少4个T的访存周期,时间要长得多。 CISC(复杂指令计算机)指令指令周期较长2. 2. 指令周期的基本概念指令周期的基本概念 第26页/共127页4.2.2 4.2.2 几个典型的机器周期几个典型的机器周期 取指令周期的操作过程是: PC AR,PC+nPC; Read M,指令IR。 其中,PC+nPC表示程序计数器PC自动修改计数,指出下
19、一条要执行的指令在主存中的存放地址。PC总是指向下一条要执行的指令的地址。 1. 1. 取指令周期取指令周期 第27页/共127页4.2.2 4.2.2 几个典型的机器周期几个典型的机器周期 所谓间址,是指指令中只给出存储器操作数的地址的地址。也就是说,指令不直接给出操作数的地址,而是给出存放操作数地址的地方。例如存放在某个寄存器中,因此要取得这个操作数,必须先访问存放操作数地址的地方,即访问相关的寄存器,从而取得操作数的主存地址,这样才能访问主存取得真正的操作数。 寄存器间址周期的操作过程是: R(IR(OPDAD) AR; Read M,MDR。 其中,R(IR(OPDAD)表示指令寄存器
20、IR的操作数地址OPDAD所指示的寄存器。 2. 2. 间址间址周期周期 第28页/共127页4.2.2 4.2.2 几个典型的机器周期几个典型的机器周期 IR(OP)CUALU ALUR/M 其中,指令的操作码部分OP经译码后,启动算术逻辑运算部件ALU,完成运算后的结果送入到寄存器或者存储器。 例如,指令ADD AL, 10H; 它的功能是:将寄存器AL的内容与立即数10H相加,结果存入寄存器AL。即:(AL)+10HAL。该加法指令的指令周期由取指令周期和执指周期两个机器周期组成。 3. 3. 执指执指周期周期 第29页/共127页在取指令周期,CPU将指令ADD AL,10H(其指令机
21、器码为00000100 00010000,两个字节)取出IR,进行译码。在执指周期,指令的操作码部分00000100经译码后,启动算术逻辑运算部件ALU进行加法运算,此时两个加数,寄存器AL和立即数10H(由指令的操作数部分00010000分离出)已进入运算器的两个输入端,完成运算后的结果送入到寄存器AL中,同时对标志寄存器设置相应的标志位 3. 3. 执指执指周期周期 第30页/共127页4.2.2 4.2.2 几个典型的机器周期几个典型的机器周期 总之,指令周期由若干个机器周期组成,所有指令周期的第一个机器周期为取指周期,每个机器周期又由若干个T周期组成。根据指令操作的复杂程度不同,各个机
22、器周期所需的T周期数也不相同。 每种指令所需的机器周期也不相同。 第31页/共127页4.2.3 4.2.3 指令执行的微操作流程指令执行的微操作流程 每条指令的执行实际上是在时钟周期的节奏控制下,执行一组微操作序列。 一条指令的完整执行过程可分为取指令、分析指令和执行指令三个阶段。 下面结合图举例说明一条指令执行的微操作流程。设R1 R2为寄存器组中的寄存器,M为寻址的存储器单元。 第32页/共127页4.2.3 4.2.3 指令执行的微操作流程指令执行的微操作流程 例例 加法指令ADD R1,R2,功能为:R1R1+R2,该指令长度为1字节。 解解:加法指令ADD R1,R2的操作流程如下
23、: 取指令: PC AR,PC+1PC; Read M,指令IR。 分析指令: IR(OP)CU, IR(OPDAD),即R1,R2ALU 执行指令:R1+R2R1第33页/共127页4.2.3 4.2.3 指令执行的微操作流程指令执行的微操作流程 例例 加法指令ADD R1,(R2),功能为:R1R1+(R2),(R2)表示用R2间址,即R2的内容是存储器地址,该指令长度为1字节。 解:解:加法指令ADD R1,(R2)的操作流程如下: 取指令: PC AR,PC+1PC; Read M,指令IR。 分析指令: IR(OP)CU, IR(OPDAD),即R1ALU,R2AR; Read M,
24、MDRALU。 执行指令:R1+(R2)R1第34页/共127页4.2.3 4.2.3 指令执行的微操作流程指令执行的微操作流程 例例 加法指令ADD (R1),100H,功能为:(R1)(R1)+100H,(R1)表示用R1间址,即R1的内容是存储器地址,该指令长度为2字节。 解解:加法指令ADD R1,(R2)的操作流程如下: 取指令: PC AR,PC+2PC; Read M,指令IR。 分析指令: IR(OP)CU, IR(OPDAD),即100HALU,R1AR; Read M,MDRALU。 执行指令: (R1)+100HDR Write M,DRM。第35页/共127页4.3 8
25、0864.3 8086微处理器微处理器 8086 8086微型计算机系统的硬件结构微型计算机系统的硬件结构 8086 8086的寄存器组的寄存器组 8086 8086微处理器的功能结构微处理器的功能结构 8086 8086的存储器组织的存储器组织 8086 8086外部引脚及功能外部引脚及功能 第36页/共127页4.3.1 80864.3.1 8086微型计算机系统的硬件结构微型计算机系统的硬件结构 微型计算机系统包括硬件子系统和软件子系统。 CPU总线控制逻辑内存储器接口接口外存储器I/O设备图4.4 4.4 微型计算机系统的硬件结构ABABDBDBCBCB系统总线输入输出子系统由于总线是
26、共享的传输通道,任意时刻只能有一个器件负责发送数据,所以需要总线控制逻辑来控制总线上传输信号的时序。当发生多个设备需要使用总线时,总线逻辑应具有总线仲裁功能。 第37页/共127页 总线控制逻辑 8086 总线执行部件EU 总线接口部件BIU 状态标志寄存器 AH BL CL DL BH CH DH AX BX CXDX SP BP SI DI ALU数据总线(1616位) 暂存器 ALU EU 控制电路 1 2 3 4 5 6 CS DS SS ES 内部通用寄存器 IP 地址加法器 指令队列AL 图4.5 8086CPU功能结构框图 第38页/共127页 BIU担承着CPU通过总线与存储器
27、和外设接口的联系。它由四个段寄存器CS、DS、SS和ES,指令指针寄存器IP、指令队列、地址加法器以及总线控制逻辑组成,主要负责CPU与存储器及外设之间的信息传送。具体过程是,BIU发出地址信号,从内存的指定部分取出指令,送至指令队列中排队;在执行指令时所需要的操作数,也由BIU从内存的指定区域取出,送至EU部分去执行。 1. 1. 总线接口单元总线接口单元BIUBIU 4.3.2 80864.3.2 8086微处理器的功能结构微处理器的功能结构 第39页/共127页 8086 BIU维护着长度为6个字节的指令队列(8088的指令队列是4个字节),该队列按照先进先出的方式工作。当指令队列中出现
28、两个字节空缺时,BIU会自动通过总线取指令送入指令队列,当EU单元对一条转移指令进行译码执行跳转时,BIU会自动清空指令队列,通过重新读取指令来形成新的指令队列。在大多数情况下,指令队列中至少应有一个字节的指令,这样EU就不必等待BIU去取指令。 1. 1. 总线接口单元总线接口单元BIUBIU 4.3.2 80864.3.2 8086微处理器的功能结构微处理器的功能结构 第40页/共127页 EU负责执行指令,它由算术逻辑单元ALU、通用寄存器组、16位标志寄存器(Flag)、EU控制电路等组成。EU在工作时直接从指令队列中取指令代码,对其译码后产生完成指令所需要的控制信息。ALU进行数据的
29、运算,运算结果的状态保留在标志寄存器Flag中。 算术逻辑单元ALU实际上是计算机的运算器,负责CPU所有计算任务,主要是算术运算和逻辑运算。ALU有两个操作数入口。通常由累加器提供一个操作数,暂存器提供另外一个操作数,运算结果返回到累加器,而反映运算结果状态的信息被记录在标志寄存器中。 2. 2. 执行单元执行单元EUEU 4.3.2 80864.3.2 8086微处理器的功能结构微处理器的功能结构 第41页/共127页 8086共有14个寄存器供系统使用,它们分为 通用寄存器(包括AX、BX、CX、DX等4个16位数据寄存器)、 指针变址寄存器(包括SP、BP、SI和DI等4个16位寄存器
30、)、 控制寄存器(包括IP和Flag等两个16位寄存器)、 段寄存器(包括CS、DS、SS、ES等4个16位段寄存器)等四类。 4.3.3 80864.3.3 8086的寄存器组的寄存器组 第42页/共127页 AX、BX、CX及DX等4个通用寄存器,用来暂存操作数。其中,每个寄存器可以作为一个16位的寄存器使用,也可以作为两个8位寄存器单独使用。 如AX寄存器的低8位寄存器的名称是AL,高8位寄存器的名称是AH。类推,BX寄存器可分为BL和BH寄存器,CX寄存器可分为CL和CH寄存器,DX寄存器可分为DL和DH寄存器。作为通用寄存器,这些寄存器以字节或字为单位参加算术运算或逻辑运算,而且这些
31、寄存器又有各自的习惯用法。 4.3.3 80864.3.3 8086的寄存器组的寄存器组 1. 1. 通用寄存器通用寄存器 第43页/共127页 AX(Accumulator)称为累加器,所有的I/O指令都使用该寄存器与外设接口传送信息。 BX(Base)称为基址寄存器,在计算机寻址时,常用来存放基地址。 CX(Count)称为计数寄存器,在循环和串操作指令中用作计数器。 DX(Data)称为数据寄存器,在寄存器间接寻址的I/O指令中,存放I/O端口的地址。在做双字长乘除法运算时,DX与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位。4.3.3 80864.3.3
32、 8086的寄存器组的寄存器组 1. 1. 通用寄存器通用寄存器 第44页/共127页 指针与变址寄存器为SP、BP、SI、DI。虽然这组寄存器也可以用来存放数据,实际上常用来存放不同用途的地址信息,经常使用它们提供段内寻址的偏移地址。 SP(Stack Pointer)堆栈指针寄存器。用它指出当前堆栈的栈顶位置,必须与堆栈段寄存器SS联合使用才能确定堆栈的物理地址,进行堆栈操作。 BP(Base Pointer)为基址指针寄存器。与SS联用,确定堆栈段中某一存储单元的物理地址,用于堆栈区中的数据进行操作,即作为堆栈中的一个基地址,访问堆栈的任意位置的存储单元,然而它不具有SP始终指向堆栈顶的
33、功能。 4.3.3 80864.3.3 8086的寄存器组的寄存器组 2. 2. 指针与变址寄存器指针与变址寄存器 第45页/共127页 SI(Source Index)为源变址寄存器,与数据段寄存器DS联用,用于确定数据段中某一存储单元的地址。 DI(Destination Index)为目的变址寄存器,与数据段寄存器DS或辅助段寄存器ES联用,用于确定数据段中某一存储单元的地址。对SI和DI这两个变址寄存器进行增量或减量计数,作为变址寻址很方便。4.3.3 80864.3.3 8086的寄存器组的寄存器组 2. 2. 指针与变址寄存器指针与变址寄存器 第46页/共127页 BIU中有4个1
34、6位段寄存器,即 CS(Code Segment,代码段寄存器)、 DS(Data Segment,数据段寄存器)、 SS(Stack Segment,堆栈段寄存器) ES(Extra Segment,附加数据段寄存器)。 CS存放当前代码段,即程序所在段的首地址。CS内容左移四位(即乘16),再加上指令指针寄存器中的内容,即是下一条要取出的指令地址。 DS保存当前程序所用数据段的首地址,数据段用来保存当前程序的操作数据和变量数据。DS内容左移四位,再加上操作数据或变量在数据段中的有效地址(即偏移地址)EA,即为数据段指定操作单元的地址。串操作处理时DS作为源串所在段的段基址。 3. 3. 段
35、寄存器段寄存器 4.3.3 80864.3.3 8086的寄存器组的寄存器组 第47页/共127页 SS存放当前程序所用堆栈段的首地址。 所谓“堆栈”是指这样一段指定的内存区域:其存取原则是“后进先出”,即先进栈的数据后出栈。堆栈是一种非常有用的数据结构,它为保护数据、调度数据提供了重要的手段。 SS左移四位,再加上SP形成堆栈栈顶的物理地址。 ES存放辅助数据所在段的首地址。附加段在进行串操作时,作为目的段地址使用。附加段是一种附加的数据区。在串操作时,若要将串从源数据区传送到目的数据区,则DS保存源数据段首地址,SI保存源数据段偏移地址;而目的数据区在附加段中,即ES保存附加段首地址,DI
36、保存附加段偏移地址。 3. 3. 段寄存器段寄存器 4.3.3 80864.3.3 8086的寄存器组的寄存器组 第48页/共127页 指令指针寄存器IP(Instruction Pointer),它是取指令专用的16位地址寄存器,有时也被称为“程序计数器”PC(Program Counter),它存放下一条要执行指令的有效地址EA(即指令在代码段的偏移地址)。 IP内容由BIU自动修改,通常是进行加计数修改。当执行转移指令和子程序调用指令时,BIU将转移的目的地址装入IP中。 4. 4. 指令指针寄存器指令指针寄存器 4.3.3 80864.3.3 8086的寄存器组的寄存器组 第49页/共
37、127页 标志寄存器(Flag Register)是一个16位的寄存器,用来存放程序状态字PSW (Program Status Word),所以该寄存器又称状态字寄存器。 PSW中一共定义了9个有效位,用来存放状态标志和控制标志。 其中状态标志有6个,它们分别是:CF、PF、AF、ZF、SF和OF,用来反映运算结果的状态特征,它将影响后面的操作或者作为条件转移的依据。状态标志一般是算术或逻辑运算指令执行后根据运算结果设置的。 控制标志有3个,它们分别是:IF、DF、TF,用来控制CPU的操作。控制标志可以用指令设置,如IF、DF标志,也可以人为通过操作设置,如TF标志。控制标志一旦设置,便对
38、处理器的操作产生控制作用。5. 5. 标志寄存器标志寄存器 4.3.3 80864.3.3 8086的寄存器组的寄存器组 第50页/共127页15 14 13 12 11109876543210OFDFIFTF SFZFAFPFCF标志寄存器的具体格式 状态标志位:CF(Carry Flag)进位标志位: 加/减法运算时最高位产生了进位或产生了借位:CF=1,否则CF=0。PF( Parity Flag)奇偶标志位: 运算结果中的低8位含“l”个数为偶数时,PF=1;为奇数时PF=O。AF(Auxiliary Flag)辅助标志位: 运算过程中若第3位向第4位有进位或借位时,AF=1,否则,A
39、F=0。该标志用于BCD运算中的十进制调整。第51页/共127页状态标志位:ZF(Zero Flag)零标志位: 运算结果为0时,ZF=1;否则,ZF=0。SF(Sign Flag)符号标志位: 运算结果的最高位为1,则SF=1;否则,SF=0。常用来表示带符号数本次运算结果的正负。OF(Overflow Flag)溢出标志位: 当带符号数运算结果超出了目标单元所能表示的数值范围时,OF=1,否则,OF=0。带符号数字节运算的结果超出了-128+127的范围,或者字运算的结果超出了-32768+32767的范围时称为溢出。第52页/共127页控制标志位:IF(Interrupt Flag)中断
40、允许标志位: 这是控制可屏蔽中断的标志,IF=1,允许CPU响应可屏蔽中断;IF=0,CPU禁止可屏蔽中断。用STI指令可使IF置1,CLI指令可使IF清零。DF(Direction Flag)方向标志位: 若DF=0,使串操作自动按增地址方式进行;若DF=1,使串操作自动按减地址方式进行。用STD指令可使DF置l, CLD指令可使DF清零。TF(Trap Flag)单步跟踪标志位: 调试程序时,可将CPU设置为单步工作方式:TF=l,即每执行完一条指令就自动产生一次内部中断,使用户可跟踪程序进行调试。若TF=0时,CPU为连续工作方式。第53页/共127页 例例 将63B5H与749CH两数
41、相加,并说明其标志位状态。 0110 0011 1011 0101 63B5H + 0111 0100 1001 1100 749CH 1101 1000 0101 0001 D851H 运算结果为:D851H。结果对状态标志的影响如下: SF=1;ZF=0;PF=0;CF=O;AF=l;OF=1。 大多数情况下,执行指令后,并不对所有标志位进行改变;程序也不需要对所有标志进行检测,一般只需对其中一个或几个进行检测。 5. 5. 标志寄存器标志寄存器 4.3.3 80864.3.3 8086的寄存器组的寄存器组 第54页/共127页 8086系统中存储器按字节编址 地址编号共有20位物理地址,
42、可寻址的存储器空间为220=1MB 为了用16位地址表示整个1MB的存储空间,8086系统的1MB空间被分为若干个逻辑段,每个逻辑段容量为64KB,段内地址,也就是段内偏移地址可从0号开始,最高为FFFFH。各个逻辑段的起始地址的低4位默认为0000。这样就可以用16位信息表示20位逻辑段起始地址。 1. 1. 存储器的分段存储器的分段 4.3.4 80864.3.4 8086的存储器组织的存储器组织 第55页/共127页 8086对逻辑段按其存储内容和功能分为4类: 代码段:存储程序代码。当前运行程序的代码段起始地址保存在CS中。 数据段:存储数据。当前程序所读写的操作数的数据段起始地址,一
43、般保存在DS中。 堆栈段:存储以堆栈方式读取的数据。其起始地址保存在SS中。 附加段:存储辅助当前程序所读写的操作数据。其起始地址保存在ES中。 逻辑段之间允许部分重叠(一个段的起始地址在另一个段中)、完全重叠(两个段起始地址相同)、连续排列(一个段的起始地址紧挨着在另一个段末地址)、分离排列(两个段既不重叠也不连续)。1. 1. 存储器的分段存储器的分段 4.3.4 80864.3.4 8086的存储器组织的存储器组织 第56页/共127页 某个存储单元在存储器中的位置可以用两种方法来表示。 : 一是逻辑地址,由16位段地址和16位段内偏移地址两部分组成, 表示为: 段地址:段内偏移地址 二
44、是直接用20位物理地址表示。 二者之间的关系是: 物理地址=段地址10H+段内偏移地址 2. 2. 存储器中的逻辑地址和物理地址存储器中的逻辑地址和物理地址 4.3.4 80864.3.4 8086的存储器组织的存储器组织 举例 第57页/共127页 程序中指令的逻辑地址,可用CS:IP表示。 数据段中操作数的逻辑地址,可用DS:EA表示。 堆栈段中数据的逻辑地址,可用SS:SP表示。 附加段中操作数的逻辑地址,可用ES:EA表示。 要注意的是,一个物理地址所对应的逻辑地址不是唯一的。例如物理地址为217A8H的存储单元的逻辑地址,也可以是: 2100H:07A8H 或者 1B6AH:6108
45、H 等等。 2. 2. 存储器中的逻辑地址和物理地址存储器中的逻辑地址和物理地址 4.3.4 80864.3.4 8086的存储器组织的存储器组织 第58页/共127页 这种采用段加偏移寻址的方法的优点,除了可用较短的地址位数来表示较长的地址位数外,就是允许程序在存储器内重定位。因为段内偏移总是相对段起始地址的,所以只要程序中不使用绝对地址(物理地址)访问存储器,就可以把一个程序作为一个整体移到另一个区域。在DOS系统中,程序载入到内存时由操作系统来指定段寄存器的内容,而程序中的代码和数据的地址只是偏移地址,因此很容易实现程序的重定位。 2. 2. 存储器中的逻辑地址和物理地址存储器中的逻辑地
46、址和物理地址 4.3.4 80864.3.4 8086的存储器组织的存储器组织 第59页/共127页 有效电平指引脚起作用时的逻辑电平。为了区别,低电平有效的引脚信号在其名字上加一条上划线。 三态是指引脚除了能正常的输入或输出高、低电平之外,还能输出高阻状态。 分时复用在不同时刻,引脚上的信号具有不同的意义。这样,部分引脚具有多种功能。 信号传输方向分双向引脚和单向引脚两种。双向引脚指该引脚即可输入又可输出,如数据线引脚,单向引脚指该引脚上的信号只能输入或者只能输出。如地址线引脚是输出引脚。为了节省引脚的数目,有的双向引脚作输出时和作输入时的含义不一样。 1. 1. 有关概念有关概念 4.3.
47、5 80864.3.5 8086外部引脚及功能外部引脚及功能 第60页/共127页2. 80862. 8086外部引脚及其功能外部引脚及其功能 GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVccAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN (S0)ALE(QS0)INTA(QS1)TESTREADYRESET1 402 393 384 375 366 357 348 3
48、39 3210 8086 3111 3012 CPU 2913 2814 2715 2616 2517 2418 2319 2220 21图4.8 8086外部引脚图第61页/共127页 (1)AD0AD15(Address Data Bus)这16个引脚为分时复用的地址/数据线。 (2)A16A19S3S6(Address/Status)分时复用的地址状态信号线,三态输出。 (3)RD(Read)读信号,三态输出控制信号,低电平有效。 (4)WR(Write)写信号,三态输出控制信号,低电平有效。(5)IO/ M(IO/Memory) 三态输出状态信号,表示CPU当前正在访问的对象。2. 8
49、0862. 8086外部引脚及其功能外部引脚及其功能 第62页/共127页 (6)INTR(Interrupt Request)中断请求信号,外部输入,高电平有效。外部设备通过它向CPU请求中断。 (7)INTA(Interrupt Acknowledge)中断响应输出信号,低电平有效。它作为对INTR的应答信号。 (8)NMI(Non-Maskable Interrupt request)不可屏蔽中断请求信号,外部输入,高电平有效。 (9)RESET复位信号,外部输入,高电平有效。RESET信号来到时(至少延续4个时钟周期),将使系统复位到初始状态并重新启动。复位后的寄存器状态如下: 标志寄
50、存器置成0000H,禁止中断和单步方式。 DS、SS、ES和IP寄存器置成0000H CS寄存器置成FFFFH2. 80862. 8086外部引脚及其功能外部引脚及其功能 第63页/共127页 (10)HOLD(HOLD request) 总线请求信号,外部输入,高电平有效。 (11)HLDA(HOLD Acknowledge) 总线请求响应信号,输出,高电平有效。CPU检测到HOLD有效后,在当前总线周期结束时,使HLDA有效,并立即让出总线使用权。这一过程直到HOLD无效,此时CPU收回总线控制权,并使HLDA无效。 (12)一些公用引脚的含义。 GND:地线。 Vcc:电源引线(+510
51、)V。 CLK:用来同步所有8086逻辑的时钟信号。该信号一般由8284时钟发生器输出。8086CPU的时钟频率为5MHz。2. 80862. 8086外部引脚及其功能外部引脚及其功能 第64页/共127页 8086具有两种工作模式:最小模式和最大模式。 最小模式又称为单微处理器模式。在这种模式下,CPU仅支持单微处理器系统而不支持多微处理器结构,所有的总线信号都由8086提供。前面介绍的引脚功能基本上都是最小模式下,8086引脚本身提供的功能。 最大模式又称为多微处理器模式。在最大模式下,8086CPU通过总线控制器8288来提供8086引脚本身提供的所有功能。主处理器不用耗时处理复杂运算和
52、IO操作,因此可以大大提高主处理器的运行效率。 两种工作模式可以通过在MNMX输入引脚加上不同的电平来进行选择。 实际构成系统时,IBM-PC计算机是按最大模式来组织的。3. 80863. 8086的工作模式的工作模式 第65页/共127页4.4 4.4 控制单元的设计控制单元的设计 组合逻辑方式组合逻辑方式 微程序方式微程序方式 第66页/共127页 控制器就是根据输入的时钟信号、指令信息以及各种状态信号,经过指令译码产生相应的微操作控制信号去控制各个部件完成特定的操作。控制器的设计包括时序逻辑(控制微操作的时序关系)、译码逻辑(对指令操作码进行译码分析)、执行逻辑(按一定的顺序执行微操作)
53、和决策逻辑(根据ALU产生的标志信号来决定下一步的动作)。控制器的实现方法主要有两种:组合逻辑方式和微程序方式。近年来,又出现了综合这两种方式的门阵列实现方式。 组合逻辑方式组合逻辑方式 第67页/共127页采用组合逻辑电路来产生各种微操作信号的部件称作组合逻辑控制器,它直接由各种类型的逻辑门、触发器和寄存器等构成,又称为硬布线逻辑控制器,。组合逻辑控制器包括组合逻辑电路N、模k时序计数器和k中取1译码器等部件。 1. 1. 组合逻辑控制器的结构组合逻辑控制器的结构 组合逻辑方式组合逻辑方式 第68页/共127页组合逻辑电路N1/k译码器模k时序计数器指令译码器指令寄存器ALU反馈信号启动停止
54、时钟复位I1ImB1BnT1.T2Tk.微操作控制信号图4.9 组合逻辑控制器原理图第69页/共127页 组合逻辑电路N的输入信号有3类。 (1)来自指令译码器的输出信号I1. Im。指令译码器分离出指令的操作码部分,并对其译码。一个n位输入的译码器可以识别2n条不同的指令操作码,为每一个操作码产生不同的输出信号。 (2)来自执行部件主要是ALU部件的反馈信号B1. Bn。这些信号将影响有些指令的执行。 (3)来自时序产生器的时序信号,包括节拍电位信号(机器周期信号)M和节拍脉冲信号(时钟周期信号)T。1. 1. 组合逻辑控制器的结构组合逻辑控制器的结构 第70页/共127页 模k时序计数器的
55、输出和一个k中取1的时钟译码器相连。当时钟信号输入到时序计数器时,计数器周期性地经历k个状态,从而使译码器在输出线上产生k个脉冲信号T1. Tk;两两脉冲之间相距一个时钟周期,如图所示。 由于在一个规定的机器周期中进行计数,因此一个机器周期被有效地划分成k个相同的时间间隔。T1. Tk通常称为相位信号。比如某个机器周期被分成4个时间间隔,则有4相的节拍脉冲信号。 1. 1. 组合逻辑控制器的结构组合逻辑控制器的结构 第71页/共127页第72页/共127页 组合逻辑电路N的输出信号就是微操作信号,它用来对执行部件进行控制。除了微操作信号外,组合逻辑电路N根据具体的条件产生信号来改变模k计数器的
56、计数顺序,以便跳过某些状态,从而缩短指令周期。 1. 1. 组合逻辑控制器的结构组合逻辑控制器的结构 第73页/共127页 组合逻辑控制器的基本原理,可概括为:某一微操作控制信号C是指令译码器输出Ii、反馈信息Bj和节拍脉冲Tk的布尔函数,即 C=f ( Ii , Bj , Tk )。 这个控制信号是由门电路、触发器等许多器件采用组合逻辑设计方法来实现的。当机器加电工作时,某一操作控制信号C在某条特定指令和状态条件下,在某一序号的特定节拍电位和节拍脉冲时间间隔中起作用,从而激活这条控制线,对执行部件实现控制。 2. 2. 组合逻辑电路的基本原理和设计过程组合逻辑电路的基本原理和设计过程 第74
57、页/共127页 组合逻辑控制器的设计过程分三步。 第一步进行微操作综合。具体做法是将指令操作流程中各条指令在不同机器周期的不同节拍中产生的同一个微操作控制信号集中到一起形成一个逻辑表达式。这样,由于每一个微操作控制信号都会有对应的一个逻辑表达式,集中起来很可能有数百个逻辑表达式。 第二步是将这些逻辑表达式化简为最简单的表达式。 第三步是用逻辑电路去实现所有的逻辑表达式。2. 2. 组合逻辑电路的基本原理和设计过程组合逻辑电路的基本原理和设计过程 第75页/共127页 与微程序控制器相比,组合逻辑控制是用硬接线的方法实现,速度较快。 组合逻辑控制器是早期设计计算机的一种方法。组合逻辑控制器用不同
58、的逻辑电路产生固定的时序控制信号,从而来实现不同的指令操作。一旦逻辑电路设计好后,其操作功能就固定不变。也就是说,组合逻辑控制器中无法实现新的逻辑操作功能。这是组合逻辑电路设计方法的一大缺陷。 随着计算机技术的发展,CPU的结构日趋复杂,用布尔函数来描述控制其行为的方法变得非常复杂且难以调试,硬件代价很高。因此,组合逻辑控制器的设计方法逐渐被微程序控制器取代。2. 2. 组合逻辑电路的基本原理和设计过程组合逻辑电路的基本原理和设计过程 第76页/共127页 一条机器指令的执行过程可细分为若干个基本的微过程,每一个微过程的实现是由许多微操作信号来控制有关电路完成的。 通常把一个微操作控制信号叫作
59、一个微命令,它是构成控制信号序列的最小单位。 一个微过程要实现的操作称为微指令。 一条机器指令的执行过程显然可由一组微指令来实现。 而每一条微指令将由几个或几十个微命令组成。 这样,一条机器指令的执行过程就成为一个微指令序列的执行过程。1. 1. 微程序控制的概念微程序控制的概念 微程序方式微程序方式 第77页/共127页 基于程序控制的概念,这种解释一条机器指令的微指令序列称为微程序。 不同的机器指令,对应的微程序是不同的。 于是,一个机器语言程序的执行过程,转化为与之对应的微程序的执行过程,机器指令执行过程中需要的微操作便由构成各条微指令的微命令来产生。这种控制方式称作微程序方式,其相应的
60、部件就是微程序控制器。 微程序设计技术是利用软件方法来设计硬件的一门技术。1. 1. 微程序控制的概念微程序控制的概念 微程序方式微程序方式 第78页/共127页 微程序控制器主要由微指令地址形成部件、微指令寄存器和控制存储器等3部分组成。 微指令地址形成部件又称微指令地址发生器,用来形成将要执行的下一条微指令的地址(简称微地址) ,从而控制微指令序列。其入口和指令寄存器IR的操作码OP部分相连。当取指令公共操作完成后,可以用操作码去产生执行阶段的微指令入口地址。出口是将产生的微地址送微地址寄存器。一般情况下,下一条微指令的地址由上一条微指令的下址字段直接决定。但当微程序出现分支时,将由状态条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省阳江市教育局教研究室重点名校2025-2026学年初三下学期第七次月考生物试题试卷含解析
- 2026年生态保护修复与矿山生态修复工程实施方案
- 2026年科学施肥增效与农药减量使用行动计划
- 2026年基带电路AI自动设计工具链需求转化为电路代码
- 2026年优化战略投资者认定标准与完善锁价定增机制实施方案
- 大连万达商管法务安排与流程优化
- 文化传媒公司内容策划岗位详解
- 教育机构校园安全风险评估报告
- 社群运营方法与用户关系管理
- 公司利润最大化策略探讨
- 2026年九江职业大学单招职业适应性测试题库含答案详解(研优卷)
- 2026届高三二轮复习全攻略:精准提分与高效备考
- 遗传学视角下的哮喘精准诊疗策略
- 网络数据中心运维规范手册(标准版)
- 法拍培训教学课件
- 绿电直连政策及新能源就近消纳项目电价机制分析
- 2026年常州工程职业技术学院单招综合素质考试模拟测试卷新版
- 腹膜透析室规范制度
- 《中国养老金精算报告2025-2050》原文
- 宫颈癌根治性放疗指南2026
- 2026年春节后复工复产安全培训试题(附答案)
评论
0/150
提交评论