第2章16位 32位微处理器.ppt_第1页
第2章16位 32位微处理器.ppt_第2页
第2章16位 32位微处理器.ppt_第3页
第2章16位 32位微处理器.ppt_第4页
第2章16位 32位微处理器.ppt_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 16位和32位微处理器,本次课重点 :,CPU的编程结构 标志寄存器的含义 CPU的操作时序,第2章 16位和32位微处理器,微型计算机是由具有不同功能的一些部件组成的,包含运算器和控制器电路的大规模集成电路,称为“微处理器”,又称“中央处理器(CPU)”,其职能是执行算术/逻辑运算,并负责控制整个计算机系统,使之能自动协调地完成各种操作。 微处理器的性能指标: 字长:CPU同时能处理的数据位数,也称数据宽度。字长越长计算能力越高速度越快。 主频: CPU的时钟频率,主频越高运算速度越快。,2.1 16位微处理器8086,8086基本性能指标 16位微处理器; 采用高速运算性能的HMO

2、S工艺制造,芯片上集成了2.9万只晶体管; 使用单一的+5V电源,40条引脚双列直插式封装; 时钟频率为5MHz10MHz,基本指令执行时间为0.3ms0.6ms 16根数据线和20根地址线,可寻址的地址空间达1MB 8086可以和浮点运算器、I/O处理器或其他处理器组成多处理器系统,从而极大地提高了系统的数据吞吐能力和数据处理能力。,2.1.1 8086的编程结构,编程结构:是指从程序员和使用者的角度看到的结构,与CPU内部的物理结构和实际布局是不同的,从功能上,8086分为两部分,即 1.总线接口部件(bus interface unit,BIU) 2.执行部件(execution uni

3、t,EU),1. 总线接口部件,总线接口部件BIU主要功能:根据执行部件EU的请求,负责完成CPU与存储器或I/O设备之间的数据传送。由下列4部分组成: 4个段地址寄存器(CS、DS、ES、SS) 16位的指令指针寄存器 IP(Instruction Pointer) 20位的地址加法器 6字节的指令队列缓冲器,2. 执行部件,功能:从BIU的指令队列中取出指令代码,经指令译码器译码后执行 指令所规定的全部功能。执行指令所得结果或执行指令所需 的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作。由下列4部分组成: 4个通用寄存器,即AX、BX、CX、DX; 4个专用寄存器,即

4、 基数指针寄存器BP(base pointer) 堆栈指针寄存器SP(stack pointer) 源变址寄存器SI(source index) 目的变址寄存器DI(destination index); 标志寄存器; 算术逻辑部件(arithmetic logic unit)。,传统微处理器的指令执行过程,8086CPU的指令执行过程,8086CPU的寄存器结构,8086CPU中可供编程使用的有14个16位寄存器,按其用 途可分为3类:通用寄存器、段寄存器、指针和标志寄存器,如图所示。,累加器,AH,AL,BH,BL,CL,DH,DL,CH,SP,SI,DI,IP,FLAGS,CS,DS,S

5、S,ES,BP,基址寄存器,计数寄存器,数据寄存器,堆栈指针寄存器,基址指针寄存器,源变址寄存器,目的变址寄存器,指令指针寄存器,标志寄存器,代码段寄存器,段寄存器,附加段寄存器,堆栈段寄存器,数据寄存器,地址指针和,变址寄存器,控制寄存器,通用寄存器,数据段寄存器,8086CPU内部寄存器结构,1通用寄存器,通用寄存器用于传送和暂存数据,也可参与运 算。 通用寄存器包括4个16位的寄存器AX、BX、CX和 DX,一般用来存放16位数据,故又称为数据寄存器。 其中的每一个又可根据需要将高8位和低8位分成独 立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、 BL、CL、DL两组,用于存

6、放8位数据,它们均可独立 寻址、独立使用。,2.专用寄存器,专用寄存器包括指针寄存器SP、BP和变址寄存器SI、DI,都是16位寄存器 ,一般用来存放地址的偏移量。 BP基数指针寄存器 SP堆栈指针寄存器:指向堆栈的栈顶 SI源地址寄存器,目的变址寄存器DI:用来进行串操作。说一下串操作,假设把内存中一串连续的数据从这里挪到那里,怎么办?能够想到的是,把这一串连续的数据中第一个数据在内存中的地址(源地址)移到一个寄存器中(比如SI),然后把要到的地方在内存中的地址(目的地址)移到另一个寄存器中(比如DI)。然后把SI所指的数据挪到AX,再把AX中的数据挪到DI所指的地方。让SI和DI指向下一个

7、数据。这种操作叫做串操作,就是把一串连续的数据挪到另一个连续的内存处。 IP16位的指令指针寄存器:存放下条待执行的指令在该段的偏移量。 这8个16位寄存器都具有通用性,从而提高了指令系统的灵活性。但在有些指令中,这些寄存器还各自有特定的用法 ,见下表。,表1 通用寄存器的特定用法,3.段地址寄存器,功能:用来存放每一个逻辑段的段起始地址。 8086CPU共有4个16位的段寄存器: (1)代码段寄存器CS (2)数据段寄存器DS (3)堆栈段寄存器SS (4)附加段寄存器ES,标志寄存器用来反映EU执行算术和逻辑运算以后的结果特征。共有16位,其中7位未用,所用的各位含义如下: CF:进位标志

8、 ;PF:奇偶标志 ;AF:辅助进位标志 ZF:零标志 ;SF:符号标志 ;OF:溢出标志 TF:陷阱标志或单步操作标志 :IF:中断允许标志 DF:方向标志,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,根据功能,8086的标志可以分为两类: 1.状态标志:表示前面的操作执行后,算术逻辑部件处在怎样一种状态。 2.控制标志:人为设置,每个控制标志都对某一种特定的功能起控制作用。,状态标志有6个,即SF、ZF、PF、CF、AF和OF 符号标志SF(sign flag ) :和运算结果的最高位相同。 零标志ZF(zero flag) :运算结果为0,则ZF为1否则Z

9、F为0 奇偶标志PF(parity flag) 进位标志CF(carry flag) 辅助进位标志(auxiliary carry flag) 溢出标志(overflow flag),控制标志有3个,即 方向标志DF(direction flag) 中断允许标志IF(interrupt enable flag) 跟踪标志TF(trap flag)又称为单步标志,3. 8086的总线周期的概念,典型的8086总线周期序列:, T1状态,发地址信息,以指出要寻址的存储单元或外设端口的地址。 T2状态,撤销地址,使总线低16位浮置成高阻状态为传输数据做准备,总线的高4位输出状态信息,用来表示中断允许

10、状态以及当前正在使用的段寄存器名等。 T3状态,高4位 提供状态信息,低16位数据 T3之后,可能插入TW 在T4状态,结束。,2.1.2 8086的引脚信号和工作模式,1.最小模式和最大模式的概念 (1)最小模式: 所谓最小工作方式,就是系统中只有8086一个微处理器,是一个单微处理器系统。在这种系统中,所有的总线控制信号都直接由8086CPU产生,系统中的总线控制逻辑电路被减到最少。 当把8086的33脚MN/接+5V时,8086CPU就处于最小工作方式了 (2)最大模式: 当把8086的33脚MN/接地时,这时的系统处于最大工作方式。最大工作方式是相对最小工作方式而言的,它主要用在中等或

11、大规模的8086系统中。在最大方式系统中,总是包含有两个或多个微处理器,是多微处理器系统。其中必有一个主处理器8086,其他的处理器称为协处理器,2. 8086/8088的引脚信号和功能,注意点: 8086/8088的数据线和地 址线复用 8086有16根数据线 第21脚(RESET)为输入 复位信号 第22引脚为“准备好” (READY)信号 高4位地址和状态线复用,GND,INTR,NMI,CLK,GND,19,INTA,(,QS,1,),TEST,READY,RESET,2 39,1 40,3 38,4 37,5 36,6 35,7 34,8 33,9 32,10 31,11 30,12

12、 29,13 28,14 27,15 26,16 25,17 24,18 23,19 22,20 21,AD,14,AD,11,AD,10,AD,9,AD,8,AD,7,AD,6,AD,5,AD,4,AD,3,AD,2,AD,1,AD,0,RD,MN/MX,HOLD,(,RQ/GT,0,),BHE,/,S,6,A,A,17,/,S,4,A,18,/,S,5,/,S,A,16,/,S,3,AD,15,),V,CC,(,+5V,M/IO,(,S,2,),WR,(,LOCK,),HLDA,(,RQ/GT,1,),DT/R,(,S,1,),DEN,(,S,0,),ALE,(,QS,0,),AD,12,

13、13,AD,各引脚信号: GND、V地和电源 AD15AD0地址/数据复用,这16条信号线是分时复用的双重总线,在每个总线周期开始(T1)时,用作地址总线的低16位(A15-A0),给出内存单元(或I/O端口)的地址;其它时间为数据总线,用于数据传输。 A19/S6A16/S3 地址/状态复用这4条信号线也是分时复用的双重总线,在每个总线周期开始(T1)时,用作地址总线的高4位,在总线周期的其余时间,这4条信号线指示CPU的状态信息。4位状态信息如下: S6-恒为低电平; S5-反映标志寄存器中中断允许标志IF的当前值; S3、S4-表示正在使用哪个段寄存器。 BHE/S7 高8位数据总线允许

14、/状态复用,输出;在T1状态在该引脚输出BHE信号,表示高位地址、数据线上的高8位数据有效;在T2、T3、T4、TW状态输出状态信号S7 NMI 非屏蔽中断,输入,上升沿触发, INTR可屏蔽中断请求信号,输入,高电平有效 RD读信号,输出 CLK时钟,输入 RESET 复位信号,输入,4个时钟周期的高电平,复位信号变为低电平时,CPU从FFFF0开始执行程序 READY “准备好”信号,输入 ,高电平有效 TEST测试信号输入 MN/MX最小和最大模式控制输入,3. 最小模式,引脚信号: INTA中断响应信号,输出,用来对外设的中断请求作出响应。 ALE 地址锁存允许信号,输出,8086提供

15、给地址锁存器8282/8283的控制信号,高电平有效。在总线周期的T1状态,ALE输出有效电平,以表示当前在总线上输出的是地址信息,地址锁存器将ALE作为锁存信号,对地址进行锁存。 DEN数据允许信号,表示CPU当前准备发送或接收一个数据。 DT/R数据收发信号,输出 , 若DT/R为高电平,则进行数据发送,若DT/R为低电平,则进行数据接收, M/IO存储器/输入输出控制信号输出 WR写信号输出 HOLD总线保持请求信号输入 HLDA总线保持响应信号输出,8086在最小模式下的典型配置 :,4. 最大模式,引脚信号: QS1、QS0指令队列状态信号输出 S2#、S1#、S0#总线周期状态信号

16、输出 LOCK#(lock)总线封锁信号输出 RQ#/GT1#、RQ#/GT0#总线请求信号输入、总线授权信号输出,8086在最大模式下的典型配置 :,2.1.3 8086的操作和时序,什么是CPU的时序? 所谓时序,就是指CPU执行各种操作时,引脚信号随时钟而变化的顺序和 时间长短的安排。 一个微计算机系统为了完成自身的功能,需要执行许多操作,这些操作均在 时钟的同步下,按时序一步步地执行,在执行过程中,引脚信号会发生有规律 的变化,这样,就构成了CPU的操作时序。了解CPU的操作时序是构成微计算 机系统的重要基础,也可进一步了解系统总线的功能。 8086的主要操作: 系统的复位和启动操作;

17、 暂停操作; 总线操作; 中断操作; 最小模式下的总线保持; 最大模式下的总线请求/允许。,1. 系统的复位和启动操作,系统复位是上电以后,系统所执行的第一个操作,它给CPU一个确定的初始 状态。 正确的复位是CPU正确运行的基础。复位以后CPU内部寄存器的状态及引脚 状态是系统以后运行的基础条件。 8086的复位和启动操作是由外部逻辑(例如8284A时钟发生器)向其RESET复 位引脚输入一个触发信号而执行。8086要求此复位信号至少维持4个时钟周期的 高电平。如果是初次加电引起的复位(又称“冷启动”),则要求此高电平持续期不 短于50us。 当RESET信号一进入高电平,8086 CPU就

18、结束现行操作,进入复位状态,直 到RESET信号变为低电平时为止。在复位状态下,CPU内部的各寄存器被置为初 态。其初态已示于前面的表26。从该表可见:由于复位时,代码段寄存器CS 和指令指针寄存器IP分别被初始化为FFFFH和0000H,所以8086复位后重新启动 时,便从内存的FFFF0H处开始执行指令。 一般在FFFF0H处存放一条无条件转移指令,用以转移到系统程序的入口处, 这样,系统一旦被启动仍自动进入系统程序,开始正常工作。 复位时,由于标志寄存器F被清零,其中的中断允许标志IF也清为零。这样,从INTR端 输入的可屏蔽中断就不能被接受。因此,在设计程序时,根据情况,可在程序中设置

19、一条 开放中断的指令STI,使 IF=1,以开放中断。,8086的复位操作时序如图所示。由图可见:当RESET信号有效后,再经一个状态,将执行: l)把所有具有三态的输出线-包括 AD15AD0, A19/S5A16/S3,BHE/S7, M/IO, DT/R,DEN,WR,RD和INTA等都置成浮空状态,直到RESET回到低电平,结束复位操作为止。还可看到:在进入浮空前的半个状态(即时钟周期的低电平期间),这些三态输出线暂为不作用状态。 2)把不具有三态的输出线-包括ALE,HLDA,RQ/GT0,RQ/GT1,QS0和QS1都置为无效状态。,2. 总线操作,(1) 最小方式下的总线读操作

20、(2) 最小方式下的总线写操作 (3) 最大模式下的总线读操作 (4) 最大模式下的总线写操作 (5) 总线空操作,(1) 最小方式下的总线读操作,(1) 最小方式下的总线读操作,T1状态: (1)CPU根据执行的是访问存储器还是访问I/O端口的指令,首先在 M/IO两线上发有效电平。若为高电平,表示从存储器读;若为低电平,则表示从I/O端口读。此信号将持续整个周期。 (2)从地址/数据复用线AD15AD0和地址状态复用线发存储器单元地址(20位)或发I/O端口地址(16位)。这类信号只持续T1状态,因此必须进行锁存,以供整个总线周期使用。 (3)为了锁存地址信号, CPU在T1状态从ALE引

21、脚上输出一个正脉冲作地址锁存器(例如8282)的地址锁存信号。在 ALE的下降沿到来之前, M/IO和地址信号均已有效。因此,地址锁存器(如8282)是用ALE的下降沿对地址进行锁存的。 (4)为了实现对存储体的高位字节库(即奇地址库)的寻址,CPU在此状态通过BHE/S7引脚发BHE有效信号(低电平)。BHE和地址线A0则分别用来对奇、偶地址库进行寻址。 (5)为了控制数据总线传输方向,使DT/R变为低电平,以控制数据总线上的双向收发器(例如8286)为接收数据方向。,(1) 最小方式下的总线读操作,T2状态: (1)地址信号消失,此时AD15AD0进入高阻缓冲期,以便为读入数据作准备。 (

22、2)A19S6 A16S3及BHES7线开始输出状态信息S7 S3,持续到T4。前面已指出,在8086中,S7未赋实际意义。 (3)DEN信号开始变为低电平(有效),此信号是用来开放数据总线上的双向收发器(例如8286)的。这样,就可以使8286提前在T3状态,即数据总线上出现输入数据前获得开放。/DEN维持到T4的中期结束有效。 (4)RD信号开始变为低电子有效。此信号被接到系统中所有存储器和IO端口。用来打开数据输出缓冲器,以便将数据送上数据总线。 (5)DTR继续保持低电子有效的接收状态。,(1) 最小方式下的总线读操作,T3状态: 经过 T1,T2后,存储器单元或I/O端口把数据送上数

23、据总线 AD15AD0, 以供 CPU读取。 Tw状态: 当系统中所用的存储器或外设的工作速度较慢,不能在基本总线周期规定的四个状态 完成读操作时,它们将通过8284A时钟产生器给CPU送一个READY=0信号。CPU在T3的前 沿(下降沿)采样READY。当采到的READY=0时(表示“未就绪”),就会在T3和T4之间插入等 待状态Tw。在Tw内,CPU所有信号都延续T3内的状态,实际上就是增加对存储器或外设 的访问时间。Tw可以为1个或多个。以后,CPU在每个Tw的前沿(下降沿)去采样READY, 直采到的READY=1(表示“已就绪”)时,就在本Tw完结时,脱离Tw而进入T4状态。在最后

24、 一个Tw,数据已出现在数据总线上,所以,Tw等待状态的作用是,延长CPU读写内存(或 I/O口)的时间,以便速度较慢的内存(或I/O口)芯片能在规定的总线周期的时间内,完成数 据的存取,以实现与CPU的正确接口。 T4状态: 在T4状态和前一状态交界的下降沿处,CPU对数据总统上的数据进行采样,完成读取 数据的操作。,(1) 最小方式下的总线读操作,总结:在总线读操作周期中, 8086在T1从分时复用的地址数据线 AD和地址状态线上输出地址;T2时使AD线浮空,并输出RD;在T3、T4时,外界将欲读入的数据送至AD线上;在T4的前沿,将此数据读入CPU。 应该注意,教材中我们只是定性地说明了

25、各种操作时序引脚信号的变化,实际上,时序变化还需要定量说明,才能成为设计的依据。而各生产厂商也在其产品的技术资料中,详细给出了各种时间数据,,(2) 最小方式下的总线写操作,(2) 最小方式下的总线写操作,8086CPU对存储器或I/O端口写入数据的时序。 和读操作一样,基本写操作周期也包含4个状态T1, T2,T3和T4。当存储器或外设速度较慢时,在T3和 T4之间插入1个或多个Tw。 在总线写操作周期中,8086在T1时,将地址信号 送至地址数据复用的 AD总线上,并于T2开始直 到T4,将数据输出到AD线上,等到存储器或IO端 口的输入数据缓冲器被打开,便将AD线上的输出数 据写入存储器

26、单元或IO端口。存储器或IO端口 的输入数据缓冲器是利用在T2出现的写控制信号 WR打开的。,总线写周期和总线读周期操作不同的地方有:,写周期下,AD线上因输出的地址和输出的数据为同方向,因此,T2时不再需要象读周期时要维持一个周期的浮空状态以作缓冲; 对存储器芯片或IO端口发出的控制信号是WR,而不是RD,但它们出现的时序类似,也是从T2开始; 在DTR引脚上发出的是高电平的数据发送控制信号DT,此信号被送到类似于8286那样的总线收发器控制其为数据输出方向。,(3) 总线空操作,CPU只有在和存储器或 IO端口之间交换数据,或装填指令队列时,才由总统接口部件BIU执行总线周期,否则,BIU

27、将进入总线的空闲周期Ti。Ti一般包含1个或多个时钟周期。在空闲周期中,CPU对总线进行空操作,但状态信息S6S3和前一个总线周期相同;而地址数据线AD上则视前一总线周期是读或是写而有区别。若前一周期为读周期,则AD15AD0在空闲周期中处于浮空,若为写周期,则AD15AD0仍继续保留着CPU输出数据D15D0。 空闲周期是指对总线操作空闲,对CPU内部,仍可进行有效操作,如执行部件EU进行计算或内部寄存器间进行传送等。因此,空闲周期又可视为是BIU对EU的等待。,3.暂停操作,当CPU执行一条暂停指令HLT(Halt)时, 就停止一切操作,进入暂停状态。暂停状态 一直保持到发生中断或对系统进

28、行复位时为 止。在暂停状态下,CPU可接收HOLD线上 (最小方式下)或RDGT线上(最大方式下)的 (总线)保持请求。当保持请求消失后,CPU回 到暂停状态。,4中断操作和中断系统,(1)8086的中断分类,8086/88系统可处理256个中断源。,编号为0255中断类型号,分为:硬件(外部)中断 软件(内部)中断,8086/8088的中断分类 :,1、硬件中断,分为 非屏蔽中断 可屏蔽中断,1)、非屏蔽中断,从NMI引脚(17脚)输入 不受IF控制,一旦NMI有中断请求,CPU在当前指令执行完成后,必须立即响应。主要用于处理非常重要或非常紧急的事件(如电源掉电、存储器故障等),,触发方式:

29、上升沿,且高电平持续2T。 类型号:2,2)、可屏蔽中断,从INTR 引脚(18脚)输入 受IF控制,IF=1,中断允许;IF=0,中断被屏蔽。,触发方式:高电平 。 类型号:32(20H)255(FFH),说明:,一个系统中,通过中断控制器8259A的配合,可屏蔽中断源可以有多达几十个。,2、软件中断,1)、除法出错 原因:除法指令中,若除数为0或商溢出。 类型号:0 作用:监控程序执行过程中是否除法出错。 2)、单步中断 中断原因:TF=1。 类型号:1 作用:单步工作方式:,3) 断点中断 原因:执行插入的INT3(INT)指令。 类型号:3 作用:设置断点以调试程序。 单字节指令。 4

30、) 运算溢出中断 原因:(OF)=1时,执行INTO指令。 类型号:4 作用:编程时,进行溢出监控。,5) 指令中断 原因:执行一条INT n。 类型号:n 作用:调用系统中相应的中断处理程序。 PC机中,由于类型号0H7H已定义为CPU内部中断,08H0FH已定义为硬件中断,所以INT n指令中n值(类型码)可以为10H到FFH。,(2) 中断向量与中断向量表,中断向量:中断服务程序的入口地址。,问题:中断请求 类型号 中断向量,问题2:类型号 中断向量,中断向量表:存放所有中断向量某一存储器区域。,8086/88系统中断向量表为存储器的最低端1KB单元中。,中断向量表,中断向量表1,中断向

31、量表2,1)、每个中断向量占4B。 偏移地址占低字节单元 段地址占高字节单元 2)、4256=1K 00000H003FFH 3)、向量地址: 中断向量的地址。 =4 n ; n为中断类型号,例1:求 INT 12H 的向量地址 中断向量。,中断响应后 (CS)及(IP)的内容 ? (SP)的内容 ? (执行前(SP)=122AH),例2:某段内存单元内容(16进制数)如下: 0000:00b0H AA 22 23 56 78 9A AB 11 56 3D BC 2A 2D 20 0000:00c0H BB 11 21 5B 18 9A 00 35 67 3D A1 6A 7D BB 则执行I

32、NT 31h 的中断服务程序的入口地址为_ A、 5611H:2D2AH B、 A13DH:7D6AH C、 3500H:9A18H D、 0000H:00C4H,A,总之:类型号 中断向量,类型号4 =向量地址连续4个单元 存放中断向量,8086系统的256个中断源分为三类: 第一类:专用中断 04号,系统定义。 第二类:系统保留的中断 531号,共27个,为保持系统间的兼容及与将来Intel系统的兼容。 第三类:用户定义 32255号,共224个,原则上可由用户定义为软中断(INT n),或硬中断(通过INTR引入,使用时要用户装入相应的中断向量)。 在这类中断中断中,有的系统已分配有固定

33、的用处,如类型号20H3FH为DOS软中断,用户应避开。,(3) 8086/88中断响应过程,1、获得中断类型号,2、准备好后转到入口,1、问题1:中断请求 类型号,1)、软件中断获得中断类型号方法: 专用中断(包括除法出错、单步、断点、溢出中断) CPU自动形成。 INT n 由指令提供。,2)、硬件中断获得中断类型号方法: NMI 由CPU内部自动形成。 INTR CPU通过DB获得由外部硬件提供。,2、准备好后转到入口 1)、软件中断的处理过程 :,(1) (FR)入栈 (2) 断点入栈 当前(CS)入栈 当前(IP)入栈 由CPU完成。 (3) 清除IF和TF标志,以禁止可屏蔽中断和单

34、步中断。 (4) 从中断向量表中取中断向量给IP 和CS,中断服务和返回,(5) 中断服务程序:保护现场、中断处理、恢复现场 (6) IRET ; (IP)(SP+1),(SP) (SP)(SP+2) (CS) (SP+1), (SP) (SP)(SP+2) (FR) (SP+1), (SP) (SP)(SP+2),软件中断特点: 用一条指令进入中断处理子程序,并且,中断类型码由指令提供。 不执行中断响应总线周期,也不从数据总线读取中断类型码。 不受中断允许标志IF的影响 执行过程中可响应外部硬件中断 软件中断没有随机性,2)、 NMI中断的处理过程 :,同内部中断,3)、 INTR中断的处理

35、过程 :,两个连续的总线周期: 第一个周期,发第一个 负脉冲,通知外设接口,请求已被响应。 第二个周期,发第二个 负脉冲,从DB上读中断类型号(接口提供)。 (FR)入栈: IF0,TF0 保护断点 从中断向量表中取中断向量给IP 和CS,8088CPU中断响应周期时序,中断服务和返回,(5) 中断服务程序:保护现场、中断处理、恢复现场 (6) IRET ; (IP)(SP+1),(SP) (SP)(SP+2) (CS) (SP+1), (SP) (SP)(SP+2) (FR) (SP+1), (SP) (SP)(SP+2),3、各类中断的优先级,查询中断的顺序, 决定了各种中断源的优先权 软

36、件中断 除法错中断 指令中断 溢出中断 非屏蔽中断 可屏蔽中断 单步中断,以后备用,需要说明,中断向量表虽然设置在RAM的低端存储区(第0段中的0000H03FFH单元)内,但它并非常驻内存,而是每次开机上电后,在系统正式工作之前都必须对其进行初始化,即由程序将相应的中断服务程序的入口地址装入指定的中断向量表区中。PC系统各机型启动过程中,首先由ROM BOIS自测试代码对ROM BIOS控制的中断向量进行初始化装入077H共120个中断向量。若用户自行开发的应用程序采用INT n形式调用,则要自己将中断服务程序入口地址装入或重新装入中断向量表中所选定的单元中。,2.1.4 8086的存储器编

37、址和I/O编址,8086有20条地址线,寻址能力为1MB 字节地址:能存储一个字节的存储单元的地址 字地址:占用两个相邻字节单元的地址数值较小的单元地址(低字节地址) 字符串地址:存放在最低地址单元的第一个字节地址 字的存储:低字节在较低地址单元,高字节在较高的相邻地址单元 指针的存储:偏移地址在低地址字单元,段地址在较高地址单元,内存单元既可以存放数据,也可以存放地址指针(包括偏移地址和段地址),此时地址也可以看成是数据,1. 存储器编址,分段原因: 8086有20根地址线,但其内部可以表示的地址最多只能是16位。 为了能寻址1MB空间,8086对存储器进行逻辑分段,每个段最大为64KB,最

38、小为16B(此时最多64K个段)。,存储器分段示例,存储器的逻辑地址和物理地址,8086物理地址PA的形成, 其中的16位偏移量也称为有效地址EA(出现在指令中),物理地址PA与逻辑地址LA的对应,0000,存储器段操作,四个段寄存器(CS、DS、SS、ES)指示四个现行段的段地址。段和段之间可以相互分离、连接、部分重叠或完全重叠。,* 由指令给的出寻址方式所指定的地址,逻辑地址源,物理地址的生成,取指令时:由代码段寄存器CS,再加上IP的16位偏移量 堆栈操作时:由堆栈段寄存器SS,再加上SP所决定的16位偏移量 取数据:ES或DS再加寻址的偏移地址 程序所需的存储空间不超过64KB(包括程

39、序、堆栈和数据),可使CS、SS、DS、ES相等 任务的程序、堆栈以及数据分别不超过64KB,CS,DS,SS可分别置初值,否则用子程序结构,2 I/O端口的编址,1统一编址 又称“存储器映射方式”。在这种编址方式下 ,I/O端 口地址置于1MB的存储器空间中,在整个存储空间中划 出一部分空间给外设端口 ,端口和存储单元统一编址。 优点:无需专门的I/O指令,对端口操作的指令 类型多,从而简化了指令系统的设计。 缺点:端口占用存储器的地址空间,使存储器容量更 加紧张,同时端口指令的长度增加,执行时间较长,端 口地址译码器较复杂。,2独立编址 又称“I/O映射方式”。这种方式的端口单独编址构成一

40、 个I/O空间,不占用存储器地址空间。 优点:端口所需的地址线较少,地址译码器较简单, 采用专用的I/O指令,端口操作指令执行时间少,指令长度 短 。 缺点:输入输出指令类别少,一般只能进行传送操作。,2.2 32位微处理器Pentium的先进技术,1、先进的体系结构:,(1) 64位数据总线。 (2)分离式的8KB的指令Cache和数据Cache。 (3)使用两条指令流水线并执行指令。 (4)内部集成了增强型浮点处理部件。 (5)对一些常用指令采用硬件实现,提高这些指令的执行速度。 (6)采用分段和分页两级存储管理机制。 (7)增强了信息传输准确性的检测能力和机器异常事件的处理能力。 (8)

41、为系统扩展提供了很好的检测和调试能力。,2、CISC和RISC相结合的技术,CISC:复杂指令集计算机技术,RISC:简化指令集计算机技术,采用RISC技术的CPU的特点:, 指令系统只含简单而常用的指令,指令长度较短,且每条指令的长度 相同, 采用流水线机制来执行指令。, 大多数指令利用内部寄存器来执行,3、超标量流水线技术,流水线(Pipeline)技术是Intel首次在80486芯片中采用的一项技术。在Pentium微处理机上继承并发展了流水线技术。其实,流水线的工作方式与汽车生产上的装配流水线非常相似。在CPU中,指令流水线是由五六个能执行不同功能的部件组成,再将一条80X86指令分解

42、成由五六个操作步骤完成,然后再将一条80X86指令的五六个操作步骤按其操作的先后顺序,分配给这些具有不同功能的部件去分别执行,这样就能实现在一个CPU时钟周期内完成一条指令的操作目标,在时间和空间上挖掘CPU潜在的资源。 超标量:微处理机配备有多条相互独立的指令流水线,每条流水线均由多个操作步骤组成,每条流水线能同时加工处理多条指令。 超标量这一技术术语在1987年就被提出来,是为改善标量指令执行性能而设计的一种高性能的计算机,是高性能微处理机的标志之一。 超标量执行,其实就是在不同的流水线中各自执行指令的能力。也就是说,程序在一条流水线中的执行顺序,并不是以源程序的顺序来执行。在流水线结构中

43、配备有多个功能部件,每个功能部件的操作均以流水线的方式进行,几条指令可以并行的方式进行操作。,流水线中的5个操作步骤,PF 指令预取。 D1 指令译码(首次译码)。 D2 地址生成(二次译码)。 EX 执行指令ALU和Cache存取。 WB 写回。,Pentium整数指令的执行要经过流水线中5个操作步骤,流水线中的5个操作步骤分别是:,4、先进的分支预测技术,分支预测在指令预取PF操作步骤进行。两个各自独立的Cache预取缓冲器与分支转移目标缓冲器一起操作。 但在任一时刻,只有一个预取缓冲器要求预取操作,要求的预取操作是顺序预取,直至取到一条分支转移指令。当一条分支转移指令被取出来时,分支转移

44、目标缓冲器(BTB)就要预测是否需要进行分支转移。 若预测不需进行分支转移,预取就会继续直线进行。当预测到需要进行分支转移时,另一个预取缓冲器就被允许开始预取工作,就如同出现了分支转移一样进行预取。如果发现一个分支转移被错误预测,则刷新该指令流水线,并且重新开始预取工作。,2.3 Pentium的指令流水线技术,1、指令流水线的组成,总线接口部件:连接CPU和其他部件,控制数据 总线和地址总线的信息传输,指令预取部件:在总线空闲时从存储器读取指令放入指令预取对列,,指令译码部件:对指令进行译码,执行部件:根据指令译码启动对应得程序,2、指令流水线的运行,在流水线方式下操作,虽然一条指令的执行时

45、间仍然是5个时钟周期时间,但执行前六条指令却仅需10个时钟周期时间,如图所示。站在流水线的角度上来说,在经过了第一个指令周期的5个时钟之后,每个时钟周期都有一条指令进入流水线操作,且每一个时钟周期都会有一条指令被执行完后退出流水线。从这一点上来说,在流水线方式下,每一个时钟就可以执行完一条指令,即执行一条指令仅需1个时钟时间。,当第一个时钟CP1来到之际,第一条指令I1进入指令流水线的第一个操作步骤(指令预取)PF,如图4.9(a)所示。,当第二个时钟CP2来到之际,此时第一条指令I1进入到指令流水线的第二个操作步骤D1,执行指令首次译码操作,第二条指令I2则进入指令流水线的第一个操作步骤执行

46、的是指令预取操作PF,如图4.9(b)所示。,当第三个时钟CP3来到之际,此时第一条指令I1进入到指令流水线的第三个操作步骤D2,执行指令二次译码操作,第二条指令I2则进入指令流水线的第二个操作步骤D1,执行的是指令的首次译码,而第三条指令I3则是进入了指令流水线的第一个操作步骤PF执行指令预取操作,如图4.9(c)所示。,当第四个时钟CP4来到之际,此时第一条指令I1进入到指令流水线的第四个操作步骤EX,执行指令规定的操作。第二条指令I2则进入指令流水线的第三个操作步骤D2,进行的是指令的二次译码,而第三条指令I3则是进入了指令流水线的第二个操作步骤D1,执行指令首次译码操作;而第四条指令I

47、4则是进入了指令流水线的第一个操作步骤PF,执行指令预取操作,如图4.9(d)所示。,当第五个时钟CP5来到之际,此时第一条指令I1进入到指令流水线的第五个操作步骤WB,执行写回操作。第二条指令I2则进入指令流水线的第四个操作步骤EX,进行的是指令规定的操作,而第三条指令I3则是进入了指令流水线的第三个操作步骤D2,执行指令二次译码操作。而第四条指令I4则是进入了指令流水线的第二个操作步骤D1,执行指令首次译码操作。而第五条指令I5则是进入了指令流水线的第一个操作步骤PF,执行指令预取操作,如图4.9(e)所示。,当第六个时钟CP6来到之际,此时第一条指令I1已经执行完指令流水线规定的5个操作

48、步骤而退出了流水线。第二条指令I2进入到指令流水线的第五个操作步骤WB,执行写回操作。第三条指令I3则进入指令流水线的第四个操作步骤EX,进行的是指令规定的操作,而第四条指令I4则是进入了指令流水线的第三个操作步骤D2,执行指令二次译码操作。而第五条指令I5则是进入了指令流水线的第二个操作步骤D1,执行指令首次译码操作。而第六条指令I6则是进入了指令流水线的第一个操作步骤PF,执行指令预取操作,如图4.9(f)所示。,4.超标量流水线的运行 Pentium微处理器是一种能够以并行方式同时执行两条指令的超标量机。两条指令按照流水线操作的5个操作步骤以并行方式执行操作,使得整数指令能够在一个时钟里

49、,在两条流水线上同时执行,图展示出了Pentium微处理器中的指令流从开始在经历第五个时钟周期时,流水线中各条指令即时的执行状态。,指令配对规则 Pentium微处理机每个时钟可以发出一条或两条指令。要同时发出两条指令,必须满足下列配对规则: (1)配对两条指令必须是所谓的“简单”指令。 (2)两条指令之间不得存在“写后读”或“写后写”这样的寄存器相关性。 (3)一条指令不能同时既包含位移量(Displacement)又包含立即数。 (4)带前缀(JCC指令的OF除外)的指令只能出现在U流水线中。,2.4 Pentium的工作方式,1.实地址方式 2.保护方式 3. 虚拟8086方式 4. 系

50、统管理方式,1. 实地址方式,在实地址方式下的存储器寻址与8086是一样的,32位地址线中的A31A20不起作用。由段寄存器(CS、SS、DS、ES)的内容作为段基地址,加上16位的段内偏移量形成20位的物理地址。在实地址方式下,每一个段最大可达64K字节。所有的段都是可读、写和可执行的。在实地址方式下的内存是不能分页的,故线性地址和物理地址是统一的。,2.保护方式,通常开机或复位后,先进入实地址方式完成初始化,便立即转入保护方式。,保护方式提供了多任务环境中的各种复杂功能以及对庞大的存储器组织的管理机制,使各个任务的有关数据互相独立,并各自进行不同级别的保护。,保护方式特点: 存储器用逻辑地

51、址空间、线性地址空间和物理地址空间三种方式描述 在保护方式中,借助于映像机制将磁盘的存储空间有效的影像到内存,使逻辑地址空间大大超过实际的内存空间 能进行16位运算也能进行32位运算,3. 虚拟8086方式,虚拟8086方式是保护方式下的一种工作方式,也称为 V8086方式,或简称V86方式.虚拟8086方式的特点:寻址的地址空间是1M字节,在分段基础上分页,每页4KB;可执行8086的应用程序;20位存储单元地址由段值乘16加偏移构成.在虚拟8086方式下,可以运行DOS及以其为平台的软件,但 V86毕竟是虚拟8086的一种方式,所以不完全等同于8086.,4. 系统管理模式,用来增强对系统

52、的管理,包括对操作系统的管理、对运行的程序的管理、对电源的管理,并为RAM子系统提供有效的安全性。此外还提供软件关机的功能,2.5 Pentium的原理结构(略)自己看,2.6 Pentium的寄存器和相关机制,Pentium微处理机配备的寄存器种类和数量非常之多,按类可分为如下几类: (1)基本体系结构寄存器: 通用寄存器。 指令指针寄存器 标志寄存器 段寄存器 (2)系统级寄存器。 控制寄存器。 系统地址寄存器。 (3)调试和测试寄存器: (4)浮点寄存器:,2.6.1 基本寄存器组,1通用寄存器 通用寄存器共有8个,它们全部是32位寄存器,而且应用程序设计人员可以随意使用这8个32位通用

53、寄存器。这8个通用寄存器的名字分别是: 累加寄存器EAX、 基地址寄存器EBX、 计数寄存器ECX、 数据寄存器EDX、 基址指针寄存器EBP、 堆栈指针寄存器ESP、 源变址寄存器ESI 和目标变址寄存器EDI。,通用寄存器,2.指令指针寄存器和标志寄存器,指令指针寄存器EIP内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程序员使用,它由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。,标志寄存器,标志寄存器EFLAGS,IOPL(Input/Output Privilege Level):I/O特权级标志 用于保护方式。 用于指示I/O设备的特权级,IOP

54、L的2位代码决定4级特权级。 如果当前特权级(Current Privilege Level,CPL)高于IOPL,则I/O指令能顺利执行;否则产生中断(异常13故障),使任务挂起。 NT(Nested Tast):嵌套任务标志。 指示当前执行的任务是否嵌套在另一任务中,该位的置位和复位通过向其它任务的控制转移来实现。IRET指令会检测NT的值。若NT=0,则执行中断的正常返回;若NT1,则执行任务切换操作。用于保护方式。,标志寄存器EFLAGS,RF(Resume):恢复标志。 控制处理器对调试异常的响应。 RF标志与调试寄存器断点一起使用,断点处理前在指令边界上检查该位。 如果RF=1,则

55、下条指令的任何调试故障都被忽略,调试失败后,强迫程序恢复执行;若RF=0,调试故障被接受,指令断点可以产生调试异常。 每条指令成功执行完毕,如无故障出现,则RF自动被清0。但IRET、POPF以及引起任务切换的JMP、CALL、和INT指令除外,这些指令将RF置成存储器映象指定的值。,标志寄存器EFLAGS,VM(Virtual 8086 Mode):V86方式。 VM1,指示处理器在V86模式下工作; VM0,则工作于保护模式。 VM位只能在保护方式中由IRET指令置位(如果当前特权级为0),以及在任何特权级上通过任务切换而置位。,标志寄存器EFLAGS,AC(Alignment Check

56、):对界检查。仅用于80486 CPU,供80487sx协处理器使用,用作同步。进行字或双字操作时,用于检测地址是否处于字或双字的边界上。AC=1,地址不处于字或双字的边界上,否则在边界上。 VIF:虚拟中断标志。Pentium Pro新增加的标志位。虚拟方式下中断允许标志位的复本。,标志寄存器EFLAGS,VIP:虚拟中断挂起标志。 Pentium Pro新增加的标志位。 在多任务环境下,为操作系统提供虚拟中断挂起信息。 此标志置位指示有一个中断被挂起。 ID:标识标志。 用来指示Pentium/Pentium Pro对CPUID指令的支持状态。,2.6.2段寄存器和描述符以及保护方式的寻址

57、机制,1段寄存器 Pentium微处理机配有6个16位的段寄存器。它们的名字和用途分别是: (1)代码段寄存器CS。 (2)数据段寄存器DS。 (3)堆栈段寄存器SS。 (4)附加数据段寄存器ES。 (5)附加数据段寄存器FS。 (6)附加数据段寄存器GS。,段寄存器,段寄存器,段寄存器,在80286以上的处理器中,每一个段寄存器都有一个与之相对应的段描述符寄存器。 段寄存器:程序员可见。 段描述符寄存器:对程序员透明,又称段高速缓存器(Cache)。,2.6.3 系统寄存器组,系统级寄存器包括4个系统地址寄存器、8个调 试寄存器、5个控制寄存器和18个测试寄存器。,1系统地址寄存器,Pent

58、ium微处理机由于系统存储管理的需要, 又配备了系统地址寄存器。 4个系统地址寄存器分别是 全局描述符表寄存器GDTR、 中断描述符表寄存器IDTR 、 局部描述符表寄存器LDTR 任务状态寄存器TR。,(1)全局描述符表寄存器GDTR:全局描述符表寄存器GDTR是48位的寄存器,用来保存全局描述符表GDT的32位线性基地址和16位的段界限。 (2)中断描述符表寄存器IDTR:中断描述符表寄存器IDTR是48位寄存器。它用来保存中断描述符表IDT的32位线性地址和16位的中断描述符表IDT的段界限。 (3)局部描述符表寄存器LDTR:局部描述符表寄存器LDTR内保存着32位的基地址、32位的段界限、描述符属性以及16位的局部描述符表LDT的段选择符。 (4)任务寄存器TR:任务寄存器TR内保存着32位的基地址、32位的段界限、描述符属性以及当前正在执行任务的16位段选择符

温馨提示

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

评论

0/150

提交评论