第2章 80868088的系统结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章8086/8088的系统结构1978年,Intel公司制造出第一个16位的微处理器8086/8088,它是80X86微处理器系统结构的基础。8086/8088CPU的主要特点是:第一,CPU数据总线是16位的,就是说,它一次最多能处理16位的数据;第二,CPU地址总线是20位的,存储器的空间是1MB;第三,CPU采用了流水线处理技术,当数据总线和地址总线忙于传输数据时,CPU可以同时处理其它信息,使处理器的效率提高。Intel以后研制出的所有的CPU都是建立在8086/8088指令集基础之上。新的微处理器都能运行原来8086/8088的程序,同时又增加了新的功能和指令。计算机的系统结构(systemarchitecture)也称为系统架构,经典的系统结构定义是指计算机系统的多层次结构中机器语言机器级的结构,它是软件和硬件/固件的主要交界面,是由机器语言程序、汇编语言源程序和高级语言源程序翻译生成的机器语言目标程序能在机器上正确运行所应具备的界面结构和功能。随着计算机技术、微电子技术等不断发展,系统结构的概念和内涵也在演变,对于计算机或CPU设计、应用人员来说,计算机系统结构是硬件和软件的综合技术,往低层看,是CPU、存储器、接口等的硬件电路系统设计,和指令系统的设计和优化等,是计算机的基础级。往上层看,是如何构造出性能更快、更优的计算机系统,提高计算机系统的并行性,包括指令级的并行、操作系统级的并行、和多处理器的并行,这涉及到许多并行的新算法,结构和编程等技术,这些内容本书涉及。2-18086/8088CPU结构微处理器就是中央处理单元(centralprocessingunit),一般简称为CPU。它的内部有一个算数和逻辑单元(ALU),它主要功能是对数据进行运算和逻辑控制。8086/8088CPU结构有二种含义,一是指物理结构,另一个是指编程结构。物理结构是指在硅片上设计和制造CPU时,各个功能单元部分的电路版图(layout)怎样设计,放置在何处,单元之间的联线怎样安排等,对于一块已经封装好的集成电路,一般是无法从外部看到芯片的内部的。编程结构是指从编程人员或使用人员的角度出发,所看到的结构。物理结构是设计CPU芯片时所能看到的真实性结构,而编程结构是对计算机编程时所看到的原理性结构,它与真实结构是有区别的。本书介绍的8086/8088CPU结构,是指CPU的编程结构。5第2章8086/8088CPU的体系结构图2-18086CPU图2-2PentiumCPU图2-38088芯片图2-1和图2-2分别是8086CPU和Pentium®CPU芯片的内部版图结构,图2-3是一个实际的8088芯片。以上图片来源于“ReachingNewMilestones-25YearsofIntelArchitecture”,。2-1-18086/8088CPU内部结构8086/8088CPU是16位的微处理器芯片,它采用了3μm线宽、NMOS半导体工艺制造技术,在芯片上集成了约29000个晶体管,工作电压+5V,时钟频率5MHZ,计算速度达2.5MIPs(millionsofinstructionspersecond)。它有16位数据线,有20位地址线,所以可以寻址的存储地址空间是2021M字节。在推出8086CPU的同时,intel公司还推出了一种准16位微处理器8088CPU。推出8088的主要目的是为了与当时已有的外围接口芯片直接兼容使用,8088的主要特点是:内部寄存器、内部运算部件以及内部操作都被设计成16位的,但对外的数据总线只有8条。微型计算机是以微处理器为核心的、硬件和软件技术的综合,掌握了微处理器的原理和使用方法,就能更好的使用微型计算机。要掌握一个CPU的工作原理,就应该了解它的编程结构,即编程时所看到的原理性结构,它与真实结构是有区别的。我们分析的8086/8088CPU结构,是指CPU的编程结构。从微处理器功能上分析,8086/8088CPU可分成两部分,即总线接口部件(BIU)和执行部件(EU)。见图2-4。工作时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结果送到指定的内存单元或外设端口中。微型机原理及应用6AHBLALBHCHCLDHDLBPDISISPIPDSSSESCSALU运算数地址生成及控制总线指令队列FR 分时复用总线执行单元(EU)总线接口单元(BIU)说明AX,BX,CX,DX-16位通用寄存器BP-16位基址指针寄存器DI-16位目标变址寄存器SI-16位源变址寄存器SP-16位堆栈指针寄存器FR-16位标志位寄存器AXBXCXDXCS-16位代码段寄存器ES-16位附加段寄存器SS-16位堆栈段寄存器DS-16位数据段寄存器IP-16位指令指针寄存器8086/8088CPU内部原理框图图2-48086/8088CPU内部结构框图总线接口部件(BIU)的功能就是负责CPU与存储器、I/O端口传送数据。总线接口部件(BIU)由下列各部分组成:①有4个段地址寄存器,即CS、ES、SS、DS;②1个16位的指令指针寄存器IP;③有1个20位的地址加法器。由于8086/8088内部的寄存器都是16位的,所以需要一个附加的机构,它可根据寄存器中的16位数据,计算出20位的存储器地址;④有1个4或6字节(byte)的指令队列(Queue)或指令缓存(Cache),由于指令队列中放有1条或几条指令,所以CPU执行完一条指令后,就可以立即执行下一条指令,不需要再到内存中去取指令,提高了CPU的效率。8086/8088中的指令队列或缓存提高了顺序指令的执行速度,在现代微处理器中设计了更大的缓存(Caches)。执行部件(EU)的功能就是负责指令的执行。执行部件由以下部分组成:①4个通用寄存器,即AX、BX、CX、DX;7第2章8086/8088CPU的体系结构②4个专用寄存器,即BP、DI、SI、SP;③标志位寄存器FR;④算数逻辑单元ALU。2-1-2寄存器结构①8086/8088CPU中的寄存器可以分为6类,通用寄存器、段寄存器、指针寄存器、指令寄存器、变址寄存器、标志寄存器,它们都是16位的寄存器。通用寄存器AX,BX,CX,DX可以存储16位数据,也可以按AH/AL,BH/BL,CH/CL,DH/DL分别存储高8位数据,低8位数据。16位的通用寄存器AX,高8位AH寄存器和低8位AL寄存器中,数据存储方式如图所示,其中DLn是低8位数据,DHn是高8位数据。如图2-5所示。AHALAXD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0DH7DH6DH5DH4DH3DH2DH1DH0DL7DL6DL5DL4DL3DL2DL1DL0图2-5通用寄存器中数据存储方式②AX寄存器也称为累加器(Accumulator),许多指令都是通过累加器的动作来执行的。累加器可以按字操作,作为16位来使用。也可按字节操作,作为8位来使用。③算数逻辑单元ALU主要是加法器,绝大数指令的执行都是由加法器完成。④标志位寄存器是16位的,其中有7位未被使用。如图2-6。CFPFAFZFSFIFTFDFOF1514131211109876543210图2-68086/8088CPU的状态标志寄存器8086/8088的标志可以分成两类:一类叫状态标志,另一类叫控制标志。状态标志表示前面的操作执行后,算数逻辑部件处在何种状态,这种状态会像某种先决条件一样,对后面的操作产生影响。控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除,每个控制标志都对某一个特定的功能起控制作用。状态标志位有6个,既SF、ZF、PF、CF、AF和OF。符号标志SF(SignFlag):就是运算结果的最高符号位。SF=0,数据是正。SF=1,数据是负。零标志ZF(ZeroFlag):当运算结果为零时,ZF=1;当运算结果非零时,ZF=0。奇偶标志PF(ParityFlag):如果运算结果的低8位中所含有的1的个数为偶数,PF=1;否则PF=0。进位标志CF(CarryFlag):当执行加法运算使最高位产生进位时,或执行减法运算时向最高位产生借位时,则CF=1。此外,循环指令也会影响这一标志。微型机原理及应用8辅助进位标志AF(AuxiliaryCarryFlag):当加法运算时,如果第三位往第四位有进位,或减法运算时,如果第三位从第四位有借位,则AF=1。溢出标志OF(OverflowFlag):当运算过程中产生溢出时,会使OF=1。所谓溢出,就是运算后的字节的结果超出了范围-128~+127,或运算后的字的结果超出了范围-32768~+32767时,就称为溢出。计算机机在进行加法运算时,每当判断出低位往最高有效位产生进位,而最高有效位往前没有进位时,便得知产生了溢出,于是OF=1;或者反过来,每当判断出低位往最高位无进位时,而最高位往前却有进位时,便得知产生了溢出,则OF=1。在减法运算时,每当判断出最高位需要借位,而低位并不向最高位产生借位时,OF=1;或者反过来,每当判断出低位从最高位有借位,而最高位并不需要从更高位借位时,OF=1。控制标志有3个,即DF、IF、TF。方向标志DF(DirectionFlag):它是控制串操作指令用的标志。如果DF=0,则串操作过程中地址会不断增值;相反,DF=1,则操作过程中,地址会不断减值。中断标志IF(InterruptEnableFlag):它是控制可屏蔽中断的标志。如果IF=0,则CPU就无法对可屏蔽中断申请作出响应;如果IF=1,则CPU就可以接受可屏蔽中断的请求。跟踪标志(TrapFlag):如果TF=1,则CPU按跟踪方式执行指令。总线接口部件(BIU)和执行部件(EU)在时间上并不是同步工作的,而是按一定的时序进行工作的。其特点是:①每当8086/8088的指令队列(指令缓存)中有2个空字节,或者8088的指令队列中有1个空字节时,总线接口部件就会自动把指令取到指令队列中。②每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前边取出指令代码,然后去执行指令。当在执行指令的过程中,如果要访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件进入总线周期去完成访问内存或者输入/输出端口的操作。如果这时总线接口正好处于空闲状态,那么会立即响应执行部件的总线请求。但有时会遇到这种情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令字节取到指令队列中,这时总线接口部件将首先完成这个取指令的总线周期,然后再去响应执行部件发出的访问总线的请求。③当指令队列已满时,而且执行部件对总线接口部件又没有访问请求时,总线接口部件就进入空闲状态。④在执行转移指令,调用指令和返回指令时,接着要执行的指令就不是在程序中的紧接着排列的那条指令了,而总线接口部件往队列装入指令时,总是按顺序进行的,这样,指令队列中的已装入的字节就没有用了。当这种情况发生时,队列中的原有内容被自动清除,总线接口部件会接着指令队列9第2章8086/8088CPU的体系结构中转入另一个程序段中的指令。⑤8086/8088CPU的流水线技术:提高计算机的运行速度一般有两种方法:一是提高CPU的主频时钟频率,二是改进CPU的系统结构。第一种方法依赖硬件的设计、半导体工艺、和物理方法实现。第二种方法与CPU的内部工作机制、过程、架构有很大关系。流水线技术思想并不是计算机的专利,在很多企业的生产线上,普遍采用了流水线技术。在8086/8088微处理器中,内部的工作是由两个部分来完成的:执行单元(EU)和总线接口单元(BIU)。在时钟作用下,这两部分是严格按时序进行工作的,即当BIU访问存储器和外围设备时,EU处理已经取回的指令。CPU在工作是,BIU超前EU,在此8086/8088CPU中的BIU单元,有6字节的指令缓存,或称为指令队列,当某条指令执行的时间很长时,缓存会被后来的新

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功