微机原理及应用第二章微处理器与系统结构2.1微处理器的基本结构及主要性能指标2.28086/8088微处理器2.38086系统的组成2.4存储器组织2.58086总线时序微机原理及应用2.1微处理器的基本结构微机的运算器和控制器集成在一个芯片,称中央处理器CPU或微处理器MPUCPU按字长:4位、8位、16、32和64位按结构分类:单片微处理器和位片微处理器微处理器内部基本结构一般由算术逻辑单元、寄存器阵列、控制单元、总线和总线缓冲器四个部分组成。有些还集成有存储器和I/O接口微机原理及应用算术逻辑单元ALU有加、与、或、非、移位硬件操作功能可完成加、减、乘、除、求补,逻辑与、或、非、异或,移位,BCD调整,定点/浮点运算输出结果和结果状态微机原理及应用控制与定时部件—控制器微机原理及应用控制器的一般组成控制器任务:逐渐取出指令、分析指令、执行指令。指令:操作码+地址码/操作数由指令部件、时序部件和微操作控制电路组成指令部件程序计数器PC:给出待执行指令的首地址指令寄存器IR:存放当前要执行的指令码,包括操作码和地址码(操作数)指令译码器ID:分析操作码并经译码后产生相应操作的控制信号微机原理及应用控制器的一般组成时序部件:产生微机各部件所需定时信号时钟系统脉冲源:用外接晶振产生一定周期和宽度的脉冲信号。时钟周期或T状态是CPU操作的最小时间单位时钟启/停逻辑:按指令的控制要求,准确地开/关时钟脉冲时钟脉冲分配器:产生微机各部分所需要的能按一定顺序逐个出现的节拍脉冲信号,以控制和协调CPU各微操作有节奏地动作微机原理及应用指令周期、总线周期与时钟周期的关系机器周期(总线周期,M周期):一般由3~5个时钟周期组成,期间可完成一个基本操作,如存储器读/写、I/O读/写指令周期:一般为1~5个机器周期,包括一条指令的取出和执行所需的时间微机原理及应用控制器的一般组成微操作控制部件:由指令译码器、节拍发生器、节拍脉冲及外部状态信号等组合而产生的控制微机各部件的部件组合逻辑控制:用组合逻辑实现的微操作控制。修改不方便,快微程序控制(存储逻辑控制):将每条指令的微程序存放在只读存储器中,并由CPU逐条取出执行以实现微操作控制。便于检查修改,慢可编程逻辑阵列控制:通过程序设计而执行特定逻辑功能的组合逻辑结构。兼有两种控制的优点微机原理及应用总线与总线缓冲器总线是微机部件间传送信息的导线集合内总线连接累加器、ALU、R与FLAG等。有单总线、双总线和多总线结构片外总线可分为片间总线、系统总线和外总线。前两种用来连接CPU、M、I/O等。通常又分为AB、DB和CB总线缓冲器通过三态逻辑电路将挂在总线上的某些部件在电气连接上与总线脱开微机原理及应用寄存器阵列存放待处理数据的寄存器:累加器和通用寄存器存放地址的寄存器:PC、SP、指针和变址寄存器存放控制和状态信息的寄存器:IR和FLAG起数据缓冲作用的寄存器:数据和地址总线缓冲器微机原理及应用微处理器主要性能指标主频:即微处理器时钟频率。如Pentium42GHz同系列的微处理器,主频越高,速度越快。但主频相同的微处理器,速度不一定都相同,因结构有差异外频:微处理器外部总线工作频率。如Pentium42GHz的外频为400MHz地址线宽度:决定访存空间。如36位地址线访问236=64GB存储单元数据线宽度:决定微处理器与外部存储器、输入/输出部件之间一次交换的二进制数据位数。如8、16、32、64位。微机原理及应用微处理器主要性能指标高速度缓存(CACHE):L1/L2Write-through缓存,只对读有效write-back缓存,对读写都有效内置协处理器:加快数值运算超标量结构:一个时钟周期内执行一条以上的指令。低标量结构:一条指令至少需要一个以上的时钟周期工作电压:微处理器正常工作所需要的电压,早期为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(个人计算机、微机)微机原理及应用2.2.18086CPU功能结构图EU控制器ALU暂存器标志寄存器8位队列总线总线控制逻辑内部总线16位地址加法器20位地址总线16位数据总线执行部件EU总线接口部件BIU123456指令队列通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISICSDSSSES80888086IP暂存器8086总线微机原理及应用一、8086执行部件EU算术逻辑单元ALU(ArithmeticandLogicUnit)进行所有的算术和逻辑运算计算寻址单元的十六位偏移地址EA(EffectAddress)EU控制器接收指令队列中的指令,进行指令译码、分析,形成各种控制信号,实现EU各个部件完成规定动作的控制标志寄存器F通用寄存器微机原理及应用标志寄存器F唯一能按位操作的寄存器只定义了其中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位88微机原理及应用通用寄存器一般,通用寄存器可以用于任何指令的任意操作,可以相互替换16位的数据寄存器可分解为2个8的使用,是同一个物理介质。如果存储了一个16位的数据,不能同时存储另外的1个或2个8位数地址寄存器不能分解为8位使用有些操作规定只能使用某个寄存器,即寄存器的特殊用法微机原理及应用通用寄存器的特殊用法(默认用法)寄存器特殊用法AX,AL乘法/除法指令,作累加器;I/O操作时,作数据寄存器AH在LAHF指令中用作目的寄存器((AH)←标志)AL在BCD码及ASCII码运算指令中作为累加器;在XLAT指令中作为累加器(AL)←((AL)+(BX))BX在间接寻址中作为基址寄存器和变址寄存器CX在循环程序中,作循环次数计数器CL在移位和循环移位指令中,作为移位位数和循环移位次数的计数寄存器(指令执行后,(CL)不变)DXI/O指令间接寻址时,作为地址寄存器;在乘法指令中作为辅助累加器(当乘积或被除数为32位时,存放高16位数)BP在间接寻址中,作为基址寄存器SP在堆栈操作中,作为堆栈指针SI间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作为源变址寄存器DI在间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作为目的变址寄存器微机原理及应用8086CPU功能结构图8位队列总线总线控制逻辑内部总线