《第2章微处理器.ppt》由会员分享,可在线阅读,更多相关《第2章微处理器.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微微 机机 原原 理理 与与 接接 口口 技技 术术第第2章章 微处理器微处理器【任务驱动】本章主要介绍8086微处理器的相关知识,通过本章的学习,让学生掌握8086的内部结构及外部引脚定义,掌握8086存储器的组织形式,理解8086微处理器的工作模式和总线时序。【重点难点】18086CPU内部并行结构及外部引脚28086CPU的存储器组织及地址变换38086CPU的基本时序1微微 机机 原原 理理 与与 接接 口口 技技 术术2.1 微处理器概述微处理器概述2.2 Intel 8086/8088 CPU结构结构2.3 Intel 8086/8088 CPU的引脚的引脚2.4 Intel 80
2、86/8088 的典型时序分析的典型时序分析2微微 机机 原原 理理 与与 接接 口口 技技 术术微处理器(Microprocessor),又称中央处理器(Central Processing Unit,CPU)。是采用大规模或超大规模集成电路(LSI/VLSI)技术做成的半导体芯片,集成了计算机的主要部件:控制器、运算器和寄存器组等,是微机的核心部件。主要完成各种算术及逻辑运算,并控制计算机各部件协调地工作。CPU是微机的核心芯片,是整个系统的运算和指挥控制中心。不同型号的微机,其性能的差别首先在于其CPU性能的不同,而CPU的性能又与它的内部结构有关,每种CPU都有其特有的指令系统。但无论
3、哪种CPU,其内部基本结构总是相近的,都有控制器、运算器和寄存器组3大主要部件。2.1 微处理器概述微处理器概述3微微 机机 原原 理理 与与 接接 口口 技技 术术1运算器:又称为算术逻辑单元(Arithmetic and Logic Unit,ALU),它是以加法器为基础,辅之以移位寄存器及相应控制逻辑组合而成的电路,在控制信号的作用下,可完成加、减、乘、除四则运算和各种逻辑运算,以及浮点运算。2控制器:一般由指令寄存器、指令译码器、时序和控制逻辑电路组成。控制器是整个CPU的指挥控制中心,对协调整个微机有序工作极为重要。它从存储器中依次取出程序的各条指令,并根据指令的要求,向微机的各个部
4、件发出相应的控制信号,使各部件协调工作,从而实现对整个微机系统的控制。4微微 机机 原原 理理 与与 接接 口口 技技 术术3寄存器组:实质上是CPU内部的若干个的高速存储单元,在汇编语言中通常是按名字来访问它们。寄存器可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,如堆栈指针、程序计数器、标志寄存器、地址寄存器等。而通用寄存器则可由程序员规定其用途。通用寄存器的数目因CPU的不同而异,8088/8086 CPU中有8个16位的通用寄存器,缩短了指令的长度和指令的执行时间。微处理器中还有一些不能直接为程序员所用的寄存器,如累加锁存器、暂存器和指令寄存器等,它们仅受内部定时和控制逻辑的控
5、制。我们通常说的Z80、8086、80286、80386、80486指的是Z80处理器、8086微处理器、80286微处理器、80386微处理器和80486微处理器。在这一章中,我们将学习8086处理器及其系列芯片的内部结构、操作与时序等。5微微 机机 原原 理理 与与 接接 口口 技技 术术8086/8088 是Intel系列的16位微处理器,它是采用HMOS工艺制造的,内部包含约29000个晶体管,用单一的+5V电源,时钟频率为 5MHz10MHz。8086有16根数据线和20根地址线,其寻址空间达1M字节;8088是一种准16位微处理器,它的内部寄存器、内部运算部件以及内部操作都是按16
6、位设计的,但对外的数据总线只有8条。8086/8088 芯片内设有硬件乘除指令部件和串处理指令部件,可对位、字节、字串、BCD码等多种数据类型进行处理。8086/8088的指令系统完全相同,在软件上完全兼容。2.2 Intel 8086/8088 CPU结构结构6微微 机机 原原 理理 与与 接接 口口 技技 术术8086 CPU采用了一种较先进的指令流水线结构,取指令(或取操作数)与执行指令的功能分别由两个独立部件实现,即总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。因此,当EU执行某条指令时,BIU同时完成从主存中预取后续指令,两
7、个部件并行地工作,使指令的读取与执行可以部分重叠,从而指令的执行速度。为此,将8086 CPU结构从功能上划分为两个逻辑单元,即总线接口单元BIU和执行单元EU,其内部组成结构如图2.1所示。7微微 机机 原原 理理 与与 接接 口口 技技 术术2.2.1 总线接口单元总线接口单元BIU和执行单元和执行单元EU 图图2.1 8086CPU内部结构图内部结构图8微微 机机 原原 理理 与与 接接 口口 技技 术术(一)总线接口单元(一)总线接口单元BIUBIU是8086 CPU与存储器或I/O设备之间的接口部件,负责全部引脚的操作。具体来说,BIU负责:(1)取指令。产生指令地址,根据指令地址从
8、存储器取出指令,送到指令队列中排队或直接送给EU去执行;(2)取操作数。从存储器的指定单元或外设端口中取出指令规定的操作数传送给EU;(3)传送结果。把EU的操作结果传送到指定的存储单元或外设端口中。BIU内部设有:1 4个16位的段寄存器:代码段寄存器CS(Code Segment)数据段寄存器DS(Data Segment)堆栈段寄存器SS(Stake Segment)附加段寄存器ES(Extra Segment)9微微 机机 原原 理理 与与 接接 口口 技技 术术2一个16位的指令指针寄存器IP(Instruction Pointer)。36字节指令队列缓冲器。8086的指令队列缓冲器
9、为六个字节,8088的指令队列缓冲器为四个字节。无论8086还是8088,都会在执行指令的同时,从内存中取下一条指令或几条指令,取来的指令就放在指令队列缓冲器中。这样,一般情况下,CPU执行完一条指令就可以立即执行下一条指令,称为流水线技术,减少了CPU为取指令而等待的时间,从而提高了CPU的效率。420位地址加法器和总线控制电路。地址加法器用来产生20位地址。上面已提到8086可用20位地址寻址1MB的内存空间,但8086内部所有的寄存器都是16位的,所以需要一个附加的机构来根据16位寄存器提供的信息计算出20位的物理地址,这个机构就是20位的地址加法器。10微微 机机 原原 理理 与与 接
10、接 口口 技技 术术(二)执行单元(二)执行单元EU执行单元(EU)的作用是:(1)从指令队列中取出指令;(2)对指令进行译码,发出相应的传送数据或算术运算的控制信号;(3)接收由总线接口部件传送来的数据,或把数据传送到总线接口部件;(4)进行算术运算。执行部件由下列部分组成:14个通用寄存器AX,BX,CX,DX四个通用寄存器既可作为16位寄存器用,也可以作为8位寄存器使用,分别为AH,AL,BH,BL,CH,CL,DH,DL。AX寄存器又称为累加器,8086指令系统中有许多指令都通过累加器的动作来执行。AX为16位累加器,AL为8位累加器。11微微 机机 原原 理理 与与 接接 口口 技技
11、 术术2专用寄存器4个专用寄存器,基址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。4个专用寄存器的用法将在指令系统有专门的论述。3算术逻辑单元ALU它是16位的运算器,可用于8位或16位二进制算术和逻辑运算,也可按指令的寻址方式计算寻址存储器单元所需的16位偏移量。4数据暂存寄存器它协助ALU完成运算,暂存参加运算的数据。5EU控制电路从总线接口单元的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据的流向。如果是运算操作,操作数经过暂存寄存器送入ALU,运算结果经过ALU数据总线送到相应的寄存器,同时标志寄存器F根据运算结果改变状态。1
12、2微微 机机 原原 理理 与与 接接 口口 技技 术术6标志寄存器标志寄存器共有16位,其中7位未用,所用的各位含义如图2.2所示。6个状态标志,反映CPU指令运行后的运行状态信息,分别为SF、ZF、PF、CF、AF和OF。这些标志位根据指令执行后的操作结果进行变化,然后判断转移等。3个控制标志,分别为DF、IF和TF。控制标志与状态标志的区别是,控制标志可由编程员通过指令进行设置,有专门的指令对控制标志置0或置1;状态信息是由中央处理器执行运算指令,并根据运算结果而自动设置。6个状态标志位的职能是:CF进位标志位。做加法时出现进位或做减法时出现借位,该标志位置1;否则清0。PF奇偶标志位。当
13、结果的低8位中1的个数为偶数时,则该标志位置1;否则清0。AF半加标志位。在做加法时,当位3需向位4进位,或在做减法时位3需向位4借位,该标志位就置1;否则清0。该标志位通常用于对BCD算术逻辑结果的调整。13微微 机机 原原 理理 与与 接接 口口 技技 术术ZF零标志位。运算结果各位都为0时,该标志位置1;否则清0。SF符号标志位。当运算结果的最高位为1时,该标志位置1;否则清0。OF溢出标志位。在算术运算中,当带符号的数的运算结果超出了8位或16位带符号数所能表达的范围时,即字节运算大于+127或小于-128时,字运算大于+32 767或小于-32 768时,该标志位置位。14微微 机机
14、 原原 理理 与与 接接 口口 技技 术术图图2.2标志寄存器各位的含义标志寄存器各位的含义15微微 机机 原原 理理 与与 接接 口口 技技 术术3个控制标志位的控制职能如下:(1)DF(Direction Flag):方向控制标志位决定变址寄存器SI、DI的变化方向,即是增量变化还是减量变化。一般用于串处理指令,控制从前往后、还是从后往前对字符串进行操作处理。(2)IF(Interupt Flag):中断允许/禁止标志位IF=1,允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。IF=0,关闭中断。CPU禁止响应可屏蔽中断请求。(3)TF(Trap Flag):跟踪(陷阱)标志位TF=1,
15、每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。TF=0,CPU正常工作,不产生中断。16微微 机机 原原 理理 与与 接接 口口 技技 术术2.2.2 8086/8088 的存储器组织的存储器组织(一)(一)存储器的标准结构存储器的标准结构8086 CPU有20根地址线,可寻址1MB存储空间。存储器按字节编址,从00000HFFFFFH,每个字节用惟一的地址表示。存放的数是字节形式,存储器单元按顺序排列存放。如图2.3所示,存放的数为一个字时,将字的高位字节放在高地址中,将低位字节放在低地址中,高低地址连续。对于存放的字,其低位字节
16、可以在奇数地址中(即从奇地址开始)存放,这种方式称为非规则存放,这样存放的字称为非规则字,CPU需要两次访问存储器才能存取该字。也可以在偶数地址中(即从偶地址开始)存放,这是规则存放,这样存放的字称为规则字,CPU一次便可对该字所在的两个存储单元进行存取。为加快程序的运行速度,编程时应注意用规则字。8088系统外部数据总线只有8位,CPU每次访问存储器只读写一个字节,如果要读写一个字,CPU需要访问两次存储器 17微微 机机 原原 理理 与与 接接 口口 技技 术术左图中,地址为00102H单元中存放的字数据是285BH,地址为00106H单元中存放的字数据是0AF6DH。图图2.3内存中数据
17、存储格式内存中数据存储格式18微微 机机 原原 理理 与与 接接 口口 技技 术术(二)存储器的分段(二)存储器的分段前面我们已经提到8086/8088可以具有1 MB的内存空间,可是其内部结构以及内部数据的直接处理能力和寄存器都只有16位,故只能直接提供16位地址,寻址64KB存储空间,很显然,不采取特殊措施,是不能寻址1 MB存储空间的。为此,我们引入了分段的概念,如图2.4所示,将1MB字节的存储器空间分成若干逻辑段,每个段最长为64KB,段内地址是连续的。逻辑段之间可以是连续的,也可以是分开的或重叠的。段的首地址必须能被16整除,即每段首地址的低4位必须为0,高16位就是段基础地址(简
18、称段基址)。段内任一存储单元与它所在段的段基值之间的距离称为偏移量或偏移地址。段基值存放在段寄存器CS、SS、DS、ES中,程序可以从4个段寄存器给出的逻辑段中存取代码和数据。19微微 机机 原原 理理 与与 接接 口口 技技 术术20微微 机机 原原 理理 与与 接接 口口 技技 术术(三三)物理地址和逻辑地址物理地址和逻辑地址物理地址(Physical Address)又叫实际地址,是CPU和存储器进行数据交换时使用的地址,在8086/8088系统的存储器中每个单元有惟一的一个20位的物理地址,CPU访问存储器必须按这个物理地址去进行。但总线接口单元得到的往往是其段基址和偏移地址,那么已知
19、一个存储单元的段基值和它的偏移量,如何计算其物理地址呢?物理地址(20位)=段基值10H+偏移地址段寄存器的内容16(10H,相当于左移4位)变为20位,再在低端16位上加上16位的偏移地址(也叫做有效地址),便可得到20位的物理地址,其产生过程如图2.5所示。16位的偏移地址有多种产生方法,在下一篇中再详细说明。21微微 机机 原原 理理 与与 接接 口口 技技 术术图图2.5.2.5.物理地址的形成过程物理地址的形成过程22微微 机机 原原 理理 与与 接接 口口 技技 术术逻辑地址由两部分组成:段基值和偏移量。它们都是用无符号的16位二进制数或4位十六进制数表示。逻辑地址的一般表示形式为
20、:段基值:偏移量这里仅以8086 CPU复位后如何形成启动地址为例,说明物理地址的计算方法。一条指令的物理地址是根据代码段寄存器CS和指令指针寄存器IP的内容得到的,复位时CS的内容为FFFFH,IP的内容为0000H。复位后的启动地址由CS段寄存器和IP的内容(作为偏移量)共同决定,即启动地址=CS16+IP=FFFF0H+0000H=FFFF0H23微微 机机 原原 理理 与与 接接 口口 技技 术术段寄存器的设立不仅使8086的存储空间扩大到1 MB,而且为信息按特征分段存储带来了方便。在存储器中,信息按特征可分为程序代码、数据、微处理器状态等。为了操作方便,存储器可以相应地划分为:程序
21、区,用来存放程序的指令代码;数据区,用来存放原始数据、中间结果和最后运算结果;堆栈区,用来存放压入堆栈的数据和状态信息。只要修改段寄存器的内容,就可将相应的存放区设置在存储器的任何位置上。这些区域可以通过段寄存器的设置使之相互独立,也可将它们部分或完全重叠。需要注意的是,改变这些区域的地址时,是以16个字节为单位进行的。表2.1表示了各段寄存器的使用情况。24微微 机机 原原 理理 与与 接接 口口 技技 术术表表2.1 8086/8088中段寄存器使用的基本约定中段寄存器使用的基本约定25微微 机机 原原 理理 与与 接接 口口 技技 术术(四)堆栈(四)堆栈所谓堆栈(Stack)是为保护数
22、据、调度数据而开辟的特殊数据区域。堆栈的一端是固定的(栈底),另一端是浮动的(栈顶),正常的堆栈操作,其信息的存取在浮动的一端进行。堆栈中的数据严格按照“先进后出(First In Last Out或FILO)”的原则进行存取操作,即数据是由栈顶压入和弹出的。由堆栈段寄存器SS提供段基值,堆栈指针寄存器SP提供偏移地址,每当压入或弹出数据时,SP的内容会自动修改,它始终指向堆栈的顶部。计算物理地址的公式是:物理地址(PA)=(SS)10H+(SP)当需要对堆栈段中的某个单元的数据进行操作时,还可使用BP寄存器通过各种寻址方式得到有效地址EA作为偏移地址,这样其物理地址是:物理地址(PA)=(S
23、S)10H+EA26微微 机机 原原 理理 与与 接接 口口 技技 术术(五)(五)8086系统存储区的分配系统存储区的分配1 00000H003FFH共1KB区域用来存放中断矢量,这一区域称为中断矢量表。中断矢量表的定义和作用参阅中断一章的有关内容。2 B0000HB0F9FH是单色显示器的显示缓冲区,存放单色显示器当前屏幕显示字符所对应的ASCII码和属性。3B8000HBBF3FH约16KB是彩色显示器的显示缓冲区,存放彩色显示器当前屏幕像点所对应的代码。4FFFF0HFFFFFH共16个单元,一般用来存放一条无条件转移指令,转到系统的初始化程序。这是因为系统加电或者复位时,会自动转到F
24、FFF0H执行。27微微 机机 原原 理理 与与 接接 口口 技技 术术2.3.1 8086/8088CPU引脚特性引脚特性8086/8088 CPU采用双列直插式的封装形式,有40条引脚,如图2.6所示。为了适应不同的应用环境,8086/8088 CPU有两种工作方式:最大方式和最小方式,这由引脚加以控制。最小方式适用于单微处理器组成的小系统,在这种系统中,所有的总线控制信号都直接由8086/8088产生;最大方式适用于多微处理器组成的大系统,它包含两个或多个微处理器,其中一个就是8086/8088,称为主处理器,其他的处理器则称为协处理器。8088是一种准16位微处理器,它的内部数据总线是
25、16位,外部数据总线是8位,在软件上8088与8086直接兼容,在硬件上除指令队列、第15引脚第18引脚、第34引脚、第28引脚外,其他基本相同。我们主要了解最小模式下的8086CPU引脚。2.3 Intel 8086/8088 CPU的引脚的引脚28微微 机机 原原 理理 与与 接接 口口 技技 术术图图2.6 8086CPU 和和8088CPU引脚图引脚图29微微 机机 原原 理理 与与 接接 口口 技技 术术(一)地址/数据总线AD15AD0(Address Data Bus)这是分时复用的存储器或I/O端口地址和数据总线,双向工作,三态。在总线周期的T1状态作为地址线,输出要访问的存储
26、器或I/O端口的地址;在总线周期的T2T3状态作为数据线传输数据。(二)地址/状态线A19/S6A16/S3(Address Status)地址/状态复用引脚,输出,三态。在总线周期的T1状态,用来输出地址的最高4位.在总线周期的T2、T3、TW和T4状态时,用来输出状态信息。当S6为0时,表示8086/8088 CPU当前与总线连接。S5表明中断允许标志的当前设置,为1时,表示当前允许可屏蔽中断请求,为0则禁止一切可屏蔽中断请求。状态信号中的S4和S3用来指示当前使用哪一个段寄存器,具体规定如表2.2所示。30微微 机机 原原 理理 与与 接接 口口 技技 术术S4S3当前正使用的段寄存器0
27、0ES01SS10CS/不需要用段寄存器11DS表表2.2 当前使用的段寄存器的指示当前使用的段寄存器的指示31微微 机机 原原 理理 与与 接接 口口 技技 术术(三)控制总线 1/BHE/S7 (Bus High Enable/Status)高8位数据总线允许/状态复用引脚,输出,三态。在总线周期的T1状态,8086在/BHE/S7引脚输出 信号,为0表示高8位数据线D15D8上的数据有效。在T2,T3,TW和T4状态,/BHE/S7 引脚输出状态信号,在8086设计中,S7为备用信号,其内容不固定。通过/BHE/S7 信号和A0的组合就可以告诉连接在总线上的存储器,当前的数据在总线上将以
28、何种形式出现。表2.3已归纳出4种读/写格式。32微微 机机 原原 理理 与与 接接 口口 技技 术术/BHE/S7 A0操操 作作所使用的数据引所使用的数据引脚脚00从偶地址开始读/写一个字AD15AD010从偶地址开始读/写一个字节AD7AD001从奇地址开始读/写一个字节AD15AD810从奇地址开始读/写一个字(需要两个周期完成,第一个周期将低8位数据送AD15AD8,第二个周期将高8位数据送AD7AD0)AD15AD8AD7AD011无存取操作表表2.3 /BHE/S7和和A0编码的含义编码的含义33微微 机机 原原 理理 与与 接接 口口 技技 术术2/RD (Read)读信号输出
29、,三态。信号指出将要执行一个对存储器或I/O端口的读操作。低电平有效,在一个执行读操作的总线周期中,信号 在T2、T3和TW状态均为低电平。3READY 等待状态控制(输入,高电平有效),表示数据传送已结束的信号8086 CPU与存储器或I/O相配时,当CPU发出读/写操作,因后者速度慢,来不及响应时,CPU通常在T3之后,检测READY引脚上的信号如果READY为0,则自动插入一个等待时钟周期,然后再检测READY的状态,如果还是0,则再插入等待周期,直到READY=1时为止当READY=1时,通知CPU数据传输完成,结束等待进入T4状态。34微微 机机 原原 理理 与与 接接 口口 技技
30、术术4/TEST等待测试(输入,低电平有效),当CPU在执行WAIT指令时,每隔5个时钟周期对该线的输入进行一次测试。为0 时,CPU进入等待,重复执行WAIT指令,直到 为1,再继续执行WAIT后的下一条指令,等待期间允许外部中断。5INTR(Interrupt Request)屏蔽中断请求信号输入端,高电平有效。CPU在执行每条指令的最后一个时钟周期时,会对INTR引脚的信号进行采样。若CPU的中断允许标志为1,且又接收到INTR信号,则CPU会在执行完当前指令后,响应中断请求,执行一个中断处理子程序。35微微 机机 原原 理理 与与 接接 口口 技技 术术6NMI(Non-Maskabl
31、e Interrupt)非屏蔽中断请求信号输入。NMI不受中断允许标志IF的影响,也不能用软件进行屏蔽。每当NMI端输入一个正沿触发信号时,CPU会在执行完当前指令后,执行对应的不可屏蔽中断处理程序。7RESET复位信号输入,高电平有效。RESET将使8086 CPU立即结束当前操作。CPU内部进入复位工作。CPU要求复位信号至少要保持4个时钟周期的高电平,才能结束正在进行的操作。当RESET信号变为低电平时,CPU就开始执行再启动过程。复位后CPU内部各寄存器的状态如表2.4所示。36微微 机机 原原 理理 与与 接接 口口 技技 术术寄寄 存存 器器内内 容容状态标志寄存器F清 零指令指针
32、IP0000H代码段寄存器CSFFFFH数据段寄存器DS0000H堆栈段寄存器SS0000H附加段寄存器ES0000H指令流队列清 空表表2.4 复位后复位后CPU中寄存器状态中寄存器状态37微微 机机 原原 理理 与与 接接 口口 技技 术术8CLK(Clock)系统时钟输入。8086/8088 要求时钟信号的占空比为33%,即1/3周期为高电平,2/3周期为低电平,即时钟信号的低、高之比采用21时为最佳状态。9.MN/MX最小/最大方式信号输入。当 接+5V电压时,CPU工作于最小方式;接地时,CPU工作于最大方式。38微微 机机 原原 理理 与与 接接 口口 技技 术术2.3.2 808
33、6最小工作方式时的系统总线结构最小工作方式时的系统总线结构8086/8088 CPU最小工作方式用于单片微处理器组成的小系统,在这种方式中,由8086/8088 CPU直接产生小系统所需要的全部控制信号。当 接+5V电压时,CPU工作于最小方式,引脚2431的控制功能有变化。最小工作方式,就是系统中只有一个微处理器(如8086)。在这种系统中,所有的总线控制信号都直接由8086产生,系统中总线控制逻辑电路减少到最少。最小工作方式系统适合于较小规模的应用,其典型系统结构图如图2.7所示。39微微 机机 原原 理理 与与 接接 口口 技技 术术图图2.7 8086最小方式典型系统结构最小方式典型系
34、统结构40微微 机机 原原 理理 与与 接接 口口 技技 术术了解微处理器的时序对于进一步理解微处理器执行指令的过程,各部件与系统总线的连接及硬件系统的调试都十分有意义。所谓时序就是计算机完成操作的时间顺序,相当于学校的作息时间表,学校的正常教学活动都按作息时间表有条不紊地进行。计算机系统为了完成自身的功能,需要执行各种操作,这些操作与时钟同步,按时序一步一步地执行,这就构成了CPU的操作时序。时钟周期是时钟脉冲产生的,一个时钟周期又叫T周期,它是计算机中的基本时间单位,象我们的作息时间都以分钟来计算一样;微处理器访问存储器或外设都要通过总线,完成一次总线操作所需的时间称为总线周期,它由几个T
35、周期组成;一个最基本的总线周期是由4个时钟周期组成,常将4个时钟周期称为4个状态T1、T2、T3 和T4。指令周期是执行一条指令所需的时间,它由一个至几个总线周期组成。2.4 Intel 8086/8088 的典型时序分析的典型时序分析41微微 机机 原原 理理 与与 接接 口口 技技 术术归纳起来,8086的主要操作有如下一些:系统的复位和启动操作总线操作暂停操作中断操作总线保持或总线请求/允许操作。42微微 机机 原原 理理 与与 接接 口口 技技 术术2.4.1 系统的复位和启动操作系统的复位和启动操作8086/8088的复位和启动操作是通过RESET引脚触发执行的。要求复位信号RESE
36、T至少维持4个时钟周期的高电平,当该信号一旦进入高电平,8086/8088 CPU就会结束现行操作,保持在复位状态,直到RESET变为低电平为止。在复位状态时,CPU内部各寄存器的内容如表2.5所示。寄存器名FLAGIPCSDSSSES指令队列其他寄存器复位状态0000H0000HFFFFH0000H0000H0000H清 空0000HRESET变高电平后,再过一个时钟周期,所有三态输出线被设成高阻状态,并一直保持,直到RESET回到低电平43微微 机机 原原 理理 与与 接接 口口 技技 术术寄存器名FLAGIPCSDSSSES指令队列其他寄存器复位状态0000H0000HFFFFH0000
37、H0000H0000H清空0000H表表2.5 8086/8088 CPU复位时寄存器状态复位时寄存器状态44微微 机机 原原 理理 与与 接接 口口 技技 术术2.4.2 8086 CPU最小方式时总线时序最小方式时总线时序8086/8088 CPU与存储器及I/O端口交换数据需要执行一个总线周期。它可分为两部分,即读总线周期和写总线周期。前者是CPU从存储器或I/O端口读取一个数据。后者是CPU将一个数据写入存储器单元或I/O端口。(一)读总线周期时序(一)读总线周期时序一个最基本的读总线周期包含4个状态,即T1、T2、T3、和T4。在存储器和外设速度较慢时,要在T3之后插入一个或几个等待
38、状态TW。如图2.8所示为8086 CPU最小方式时读总线周期时序图。图中画了4个T状态即一个总线周期,且每个T状态都是一个占空度约33%的时钟周期,全部时序图都以这个时钟作为基准。45微微 机机 原原 理理 与与 接接 口口 技技 术术图图2.8 8086 CPU的读总线周期的读总线周期 46微微 机机 原原 理理 与与 接接 口口 技技 术术1T1状态当CPU准备开始一个总线读周期时,用信号指出当前执行的读操作是从存储器读,还是从I/O端口读。如果从存储器读,则为高电平,如果是从I/O端口读,则为低电平。信号的有效电平一直保持到整个总线周期的结束。在T1状态,CPU经地址/数据复用线AD1
39、5AD0和地址/状态复用线A19/S7A16/S3发出20位地址信息,发出地址信息的同时和ALE控制信号有效,信号用来表示高位数据线上的信息可以使用,用该信号作为奇地址存储体的选择信号,配合地址信号来实现对存储单元的寻址。ALE信号作为地址锁存信号,启动锁存器8212,在ALE信号下降沿将20位地址和BHE信号锁存,从而把地址信息和数据状态信息分开。另外,在T1状态信号变为低电平,表示CPU这次是从内存或外设端口读取数据,即表明数据的传送方向。47微微 机机 原原 理理 与与 接接 口口 技技 术术2T2状态在T2状态时,A19/S7A16/S3上的地址信号消失,而出现S6S3状态信号,这些状
40、态信号保持到读周期结束,状态信号用来表明当前正在使用哪一个段寄存器,指示可屏蔽中断允许标志IF的状态,以及表明8086 CPU当前是连在总线上。AD15AD0变成高阻状态,为读入数据作准备。有效信号为由高电平变成低电平,送至存储器或I/O端口,开始从被选中的存储单元或I/O端口读取数据。也变成低电平有效信号,启动收发器8286,与在T1状态时已有效的信号一样,做好了接收来自存储器或I/O端口的数据。48微微 机机 原原 理理 与与 接接 口口 技技 术术3T3状态如果存储器或I/O端口已做好了数据准备而不需要等待状态时,则在T3状态期间将数据放到数据总线上,在T3结束时,CPU从AD15AD0
41、上读取数据。4TW状态在总线读周期,若存储器或I/O设备来不及把数据放到数据总线上,则发出一个低电平信号到CPU的READY端,使CPU在T3和T4之间插入一个或几个TW状态,来等待存储器或I/O端口的数据。8086 CPU这时的工作过程是:在T3状态开始测试READY引脚信号,若发现READY信号有效,则表示存储器或I/O端口能按时将数据送上数据总线,T3状态之后即进入T4状态;若测试到READY为低电平,则在T3状态结束后,不进入T4状态,而插入一个或几个TW状态,在每个TW状态开始,CPU都测试READY线,只有发现它为高电平后,才在该TW结束后进入T4状态。49微微 机机 原原 理理
42、与与 接接 口口 技技 术术在最后一个TW状态,数据已经出现在数据总线上。所以,在最后一个TW状态中,总线的动作和基本总线周期中T3状态所完成的动作完全一样。而在其他的TW状态,所有控制信号的电平和T3状态的一样,但数据尚未出现在数据总线上。5T4状态在T4状态和前一个状态交界的下降沿处,CPU对数据总线进行采样,读取数据。50微微 机机 原原 理理 与与 接接 口口 技技 术术(二)写总线周期时序(二)写总线周期时序和读操作一样,最基本的写操作周期也包含4个T状态,若存储器或I/O端口来不及接收数据,也是在T3和T4状态之间插入一个或几个等待时钟TW。如图2.9所示为8086 CPU最小方式
43、写总线周期时序图。1T1状态:T1时刻需要的操作大部分同读周期时T1状态相同,不同的是在T1状态要使控制数据收发器方向的信号信号为高电平,指出将要传送的数据流方向,收发器8286发送数据,进行写操作。51微微 机机 原原 理理 与与 接接 口口 技技 术术图图2.9 8086 CPU的读总线周期的读总线周期52微微 机机 原原 理理 与与 接接 口口 技技 术术2T2状态:在T2状态,由AD15AD0复用引脚发出将要写到存储单元或I/O端口的16位数据,此数据一直保持到T4状态的中间。同时由CPU的引脚发出写信号,该信号送到存储器或I/O接口,并保持到T4状态的中间。此时写操作已准备就绪,只等
44、待将数据写入存储单元或I/O接口。3T3状态:在写周期中,CPU也将在T3上升沿测试READY信号,若READY为低电平,则表明将访问的存储单元或I/O接口未准备好接收数据,CPU将在T3与T4状态之间插入TW等待状态,以等待存储器或I/O接口做好准备工作。如果测试到READY为高电平,则在T3和T4状态交接处,或是TW与T4状态交接处将数据写入存储单元或I/O接口。4T4状态:在T4状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态,CPU完成了对存储单元或I/O接口的写操作。53微微 机机 原原 理理 与与 接接 口口 技技 术术2.4.3 中断响应周期时序中断响应周期时序当
45、CPU检测出外部中断源通过INTR引线向CPU发出中断请求信号后,如果标志寄存器的中断允许标志位IF=1,则CPU在当前指令执行完以后,进入中断响应过程。通过执行两个连续的总线周期进行中断响应,CPU转去执行中断服务程序。中断响应周期时序如图2.10所示:图图2.10 中断响应周期时序中断响应周期时序54微微 机机 原原 理理 与与 接接 口口 技技 术术2.4.4 空闲周期空闲周期8086只有在CPU与存储器或外设传送指令或操作数时,才执行总线周期。CPU在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期,即一系列的T1状态。CPU空闲周期是指CPU对总线进行空操作,但
46、CPU内部仍然进行着有效的操作 55微微 机机 原原 理理 与与 接接 口口 技技 术术8086微处理器从功能上分为执行单元(EU)和总线接口单元(BIU)两个部分,EU负责指令的执行,BIU部件负责与存储器、I/O端口数据的传送。EU和BIU相互配合实现指令级流水线,访问存储器与执行指令并行操作,执行指令的过程比传统的8位微处理器有了明显的改善,成为8086CPU的突出特点。8086引入存储器分段的概念,通过段寄存器和偏移量寄存器共同实现对存储单元物理地址的访问,内存的分段还为程序的浮动装配创造了条件。8086在不同工作模式下部分引脚定义有所不同,总体上的引脚分为地址和数据信号、控制和系统信号两部分。理解引脚信号定义和作用,是配置典型系统和理解计算机工作原理的基础。在取指或传送数据时,CPU通过BIU与存储器或I/O端口交换信息,BIU执行总线周期,完成对存储器和I/O的访问。一个总线周期一般由T1T4这四个状态组成。总线操作时序是分析系统,进行系统设计的依据。本章小结本章小结56