第二章微处理器与系统结构2.1微处理器主要性能指标2.28086/8088微处理器2.38086系统的组成2.4存储器组织2.58086总线时序第二章学习要点重点掌握内容:1.微处理器的基本结构。2.Intel8086微处理器的基本结构,包括:功能结构、寄存器结构和总线结构。3.Intel8086微处理器系统的组成:控制核心单元+存储器组织+I/O端口组织4.Intel8086微处理器在最小模式下的典型总线操作和时序。5.几个重要概念:时钟周期,总线周期,指令周期。了解内容:1.Intel8088微处理器与Intel8086微处理器的不同之处。2.Intel8086微处理器在最大工作模式下的典型总线操作和时序。3.高档微处理器的体系结构与特点。2.1微处理器主要性能指标主频:即微处理器时钟频率。如Pentium42GHz同系列的微处理器,主频越高,速度越快。但主频相同的微处理器,速度不一定都相同,因结构有差异外频:微处理器外部总线工作频率。如Pentium42GHz的外频为400MHz地址线宽度:决定访存空间。如36位地址线访问236=64GB存储单元数据线宽度:决定微处理器与外部存储器、输入/输出部件之间一次交换的二进制数据位数。如8、16、32、64位。微处理器主要性能指标内置协处理器:加快数值运算超标量结构:一个时钟周期内执行一条以上的指令。低标量结构:一条指令至少需要一个以上的时钟周期工作电压:微处理器正常工作所需要的电压,早期为5V,后来有3.3V,2.8V,1.5V等。制造工艺:晶体管之间的最小线距,0.35m,0.25m,0.18m,0.13m等微处理器微处理器类型(Intel)4004:4位8085/8088:8位8086、80286:16位80386、80486、80586:32位Pentium、PentiumPRO、PentiumII、PentiumIII、Pentium4:32/64位2.28086/8088微处理器INTEL78年推出(79年推出8088)4万多个晶体管(8088为2.9万个晶体管)时钟频率4.77MHZ数据线16位(8088的数据线8位)地址线20位40脚DIP封装81年推出PersonalComputer(个人计算机、微机)组成:算术逻辑部件、控制器、寄存器阵列、总线及总线缓冲器。算术逻辑部件ALU:用硬件实现算术运算、移位、布尔运算等基本运算功能。控制器:逐一取出指令、分析指令、执行指令。指令部件:程序计数、指令寄存、指令译码;时序部件:产生操作序列的定时信号;微操作控制部件:根据指令产生控制信号。2.2.1有关微处理器的一些概念一、微处理器的基本结构总线及总线缓冲器按照总线所连接的对象,有4级总线:片内总线:连接CPU内的各个电路部分。片间总线:指主板上各芯片之间的总线,用于连接CPU与主板上的其他芯片。按总线中各信号线功能的不同,又分为地址总线、数据总线和控制总线,即所谓的三总线。(系统)内总线:指主板与I/O扩展板之间的总线,一般都遵循一定的标准,如目前多采用的ISA标准、EISA标准和PCI标准等。外总线:指微机与其他设备、系统之间的总线,一般也遵循一定的标准,习惯上又称为接口,如串行接口、并行接口、USB接口等。总线缓冲器:如地址锁存器、数据缓冲器、总线收/发器等。运算器寄存器控制器CPU存储芯片I/O芯片主板扩展接口板扩展接口板微机系统④①②③其他微机系统其他仪器系统微机系统的四级总线示意图寄存器阵列——用于存放临时数据和地址。数目多少不定,因处理器而异。累加器:数据运算的场所。其长度即微机的字长。通用数据寄存器:存放运算数据或结果;存放数据的地址指针。堆栈指针:专门指示堆栈的栈顶,辅助完成堆栈操作。程序计数器(指令指针):指向将要执行的下一条指令,实现顺序执行。指令寄存器:即指令队列,暂存预取指令的代码,直至完成译码。标志寄存器:记录当前执行结果的各种状态。2.2.28086CPU功能结构图EU控制器ALU暂存器标志寄存器8位队列总线总线控制逻辑内部总线16位地址加法器20位地址总线16位数据总线执行部件EU总线接口部件BIU123456指令队列通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISICSDSSSES80888086IP暂存器8086总线1.执行部件EU执行部件中包含一个16位的算术逻辑单元(ALU),8个16位的通用寄存器,一个16位的状态标志寄存器,一个数据暂存寄存器和执行部件的控制电路。功能:从BIU的指令队列中取出指令代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行指令所需的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作。2.总线接口部件BIU总线接口部件BIU内部设有四个16位段地址寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES,一个16位指令指针寄存器IP,一个6字节指令队列缓冲器,20位地址加法器和总线控制电路。主要功能:根据执行部件EU的请求,负责完成CPU与存储器或I/O设备之间的数据传送。一、8086执行部件EU组成:算术逻辑部件、控制器、寄存器阵列、总线及总线缓冲器。算术逻辑单元ALU(ArithmeticandLogicUnit)进行所有的算术和逻辑运算计算寻址单元的十六位偏移地址EA(EffectAddress)EU控制器接收指令队列中的指令,进行指令译码、分析,形成各种控制信号,实现EU各个部件完成规定动作的控制。标志寄存器F通用寄存器标志寄存器标志(Flag)用于反映指令执行结果或控制指令执行形式。8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器)。OF111512DF10IF9TF8SF7ZF65AF43PF21CF0程序设计需要利用标志的状态标志寄存器Flags唯一能按位操作的寄存器只定义了其中9位,另外7位未定义(保留)6位状态标志:OF、SF、ZF、PF、CF、AF3位控制标志:DF、IF、TFOFDFIFTFSFZFAFPFCFD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0状态标志反映指令对数据作用之后,结果的状态(不是结果本身)。这些状态将控制后续指令的执行OF(OverflowFlag):溢出标志(指补码),F.11OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。求解方法:最高位进位次高位进位字节允许范围:-128—+127字允许范围:-32768—+32767状态标志CF(CarryFlag):进位/借位标志,F.0CF=1:最高位需要向前产生进位/借位。CF=0:最高位不会向前产生进位/借位。AF(AuxiliaryCarryFlag):辅助进位标志,F.4AF=1:数据的第3位(半个字节)需要向前产生进位/借位。AF=0:数据的第3位(半个字节)不会向前产生进位/借位。状态标志SF(SignFlag):符号标志,F.7SF=1:运算结果的最高位为1,如果为带符号数,则为负数。SF=0:运算结果的最高位为0,如果为带符号数,则为正数。带符号数的最高位为符号位;而无符号数的最高位为数值位。ZF(ZeroFlag):全零标志,F.6ZF=1:运算结果为全0。不包括进位的情况ZF=0:运算结果不为0。状态标志PF(ParityFlag):奇偶标志PF=1:结果的低8位中有偶数个1。PF=0:结果的低8位中有奇数个1。有些运算操作将影响全部状态标志,如加法、减法运算有些操作影响部分状态标志,如移位操作有些指令的操作不影响任何状态标志,如数据传送指令10001101001101100011001000011001+0110011010101001运算结果最高位为1∴SF=1;例:2个数相加后,分析各标志位的值第三位向第四位有进位∴AF=1;次高位向最高位有进位,最高位向前没有进位,∴OF=10=1最高位没有进位∴CF=0;低8位中1的个数为偶数个∴PF=1;运算结果本身≠0∴ZF=0;10001101001101100011001000011001-0010110010001100运算结果最高位为0∴SF=0;例:2个数相减后,分析各标志位的值第三位向第四位没有借位∴AF=0;次高位向最高位没有借位,最高位向前没有借位,∴OF=00=0最高位没有借位∴CF=0;低8位中1的个数为奇数个∴PF=0;运算结果本身≠0∴ZF=0;控制标志控制标志位的值不由数据运算的结果决定,而由指令直接赋值控制标志决定后续指令的执行情况DF(DirectionFlag):方向控制标志位用于串处理指令,控制从前往后、还是从后往前对字符串进行操作处理DF=1,每次串处理操作后使变址寄存器SI和DI的值递减,使串处理从高地址向低地址方向处理。DF=0,每次串处理操作后使变址寄存器SI和DI的值递增,使串处理从低地址向高地址方向处理。控制标志IF(InteruptFlag):中断允许/禁止标志位IF=1,允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。IF=0,关闭中断。CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断和内部软中断没有影响。TF(TrapFlag):跟踪(陷阱)标志位TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。TF=0,CPU正常工作,不产生陷阱。控制标志与状态标志的区别控制标志的值:由系统程序或用户程序根据需要用指令设置。状态信息:由中央处理器执行运算指令,并根据运算结果而自动设置。X86CPU也提供了直接设置状态标志之值的指令标志名标志为1标志为0OF溢出(是/否)OVNVDF方向(减量/加量)DNUPIF中断(允许/关闭)EIDISF符号(负/正)NGPLZF零(是/否)ZRNZAF辅助进位(是/否)ACNAPF奇偶标志(偶/奇)PEPOCF进位标志(是/否)CYNC调试状态时,标志位之值的符号表示AXBXCXDX8086的通用寄存器目的变址指针(DestinationIndex)DI源变址指针(SourceIndex)SI基址指针(BasePointer)BP堆栈指针(StackPointer)SP数据寄存器(Data)DLDHDX计数寄存器(Count)CLCHCX基址寄存器(Base)BLBHBX累加器(Accumulator)ALAHAX数据寄存器可分为两个8位,主要用于数据操作地址指针主要用于地址操作16位888086的16位通用寄存器是:AXBXCXDXSIDIBPSP其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器8086的8位通用寄存器是:AHBHCHDHALBLCLDL对其中某8位的操作,并不影响另外对应8位的数据数据寄存器数据寄存器用来存放计算的结果和操作数,也可以存放地址每个寄存器又有它们各自的专用目的AX--累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX--基址寄存器,常用做存放存储器地址;CX--计数器,作为循环和串操作等指令中的隐含计数器;DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器,指示栈顶的偏移地址SP不能再用于其他目的,具有专用目的BP为基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址变址寄存器变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器串操作类指令中,SI和DI具有特别的功能通用寄存器一般,通用寄