资源描述
第四章中央处理器与指令系统,本章要点CPU的内部组成及控制器的实现方法。8086/8088微处理器的结构,Pentium和Pentium4CPU的特点及采用的新技术。指令系统中指令格式及指令功能的分类,指令的寻址方式。精简指令系统的特点。,中央处理器(CPU)是计算机系统的核心部件。它控制程序的执行,完成数据的处理和输入输出设备的控制,具有以下基本功能:,(1)对指令译码、寄存并执行。(2)算术运算和逻辑运算。(3)暂存少量的数据。(4)在存储器、输入/输出接口之间传送数据。(5)响应输入/输出设备的中断请求。(6)为系统提供定时和控制信号。,CPU的组成包括运算器、寄存器、控制器、时钟电路,(某些CPU中还包括一定容量的ROM、RAM存储器),见下图:,4.1.1运算器,运算器是加工处理数据的功能部件。运算器主要由下列部件组成:算术逻辑单元(ALU)完成二进制信息的定点算术运算、逻辑运算、移位操作通用寄存器和状态标志寄存器存放数据,运算的中间、最后结果,各种状态标志有的CPU中包含浮点处理单元算术逻辑单元和通用寄存器的位数决定了CPU的字长。,4.1.2寄存器组(Register),寄存器:是CPU中的重要组成部分,是CPU内部的临时存储单元。存放内容:数据、地址、控制信息、CPU的工作状态信息。寄存器增加可以提高CPU运行速度。分类:数据寄存器、地址寄存器、标志状态寄存器、控制寄存器和一些其它作用的寄存器。但总体可分为通用寄存器和专用寄存器两大类。,一、通用寄存器组,在运算中存储数据与地址Intel8086/8088(16位)机有:AX,BX,CX,DX,BP,SP,SI,DIIntel80486(32位)机有:EAX,EBX,ECX,EDXEBP,ESP,ESI,EDI,IntelPentiumCPU有以下8个32位的通用寄存器,EAX:累加器,存放算术和逻辑运算的操作数。EBX:基址寄存器,可以暂存数据,也可以在访问内存时存放基地址。ECX:计数寄存器,在循环和字符串操作指令中存放循环次数。EDX:数据寄存器,暂存数据。ESP:堆栈指针寄存器,每执行一次进栈或出栈操作后,SP就自动增减,使堆栈指针寄存器的内容始终指向内存堆栈区的栈顶地址。EBP:基址指针寄存器,可以暂存数据,也可以在访问内存时存放基地址。ESI:源变址指针寄存器,在字符串操作指令中存放源操作数的内存地址。EDI:目标变址指针寄存器,在字符串操作指令中存放目标操作数的内存地址。,二、专用寄存器保存系统运行必需的重要数据。,标志寄存器(FlagRegister)用于存放ALU工作时产生的状态信息。,进位标志位,奇偶标志位,辅助进位位,零标志位,结果符号位,单步标志位,中断允许位,方向标志位,溢出标志位,每一位单独使用,称为标志位。状态标志:反映了ALU当前的工作状态,可作为条件转移指令的转移条件;控制标志:用于控制CPU的某种操作。下图给出了8086的标志寄存器的标志位信息。,注:可通过看书上的图进一步理解CPU标志寄存器的发展演化和每个标志位的作用。,指令寄存器IR(InstructionRegister)用于存放将要执行的指令。指令指针寄存器IP,又称指令计数器。用于产生和存放下条待取指令的地址。堆栈指针寄存器SP指示堆栈栈顶的地址。变址寄存器变址寻址中存放基础地址的寄存器,其它的专用寄存器,3.段寄存器,现在的计算机内存容量比较大,可以采用分段管理,就是把内存的存储空间分成段,例如将64KB存储空间分为一段,以段为单位为用户分配存储空间。存储单元的地址是由它所在逻辑段的段基地址和段内偏移地址两部分组成,段寄存器就是存放段基地址的。如IntelPentiumCPU有6个32位的段寄存器:CS代码段寄存器。存放当前执行程序所在的代码段基地址,与指令指针IP一起指向下一条要取出指令的物理地址。DS数据段寄存器。用来存放数据段基地址和基址寄存器BX一起指向要访问的内存单元地址。SS堆栈段寄存器。是在存储器中开辟的一个特殊存储区域,堆栈操作遵循先进后出的原则。SS存放的堆栈段基地址可以和堆栈指针SP一起指向栈顶地址,也可以和基址指针BP一起指向要访问的内存单元地址。ES、FS、GS都称为附加段寄存器。,一、控制器的功能和组成,1、基本功能:取指令、指令译码、执行指令。,2、组成:一般由指令指针寄存器IP、指令寄存器IR、指令译码器ID、控制逻辑电路和时钟控制电路等组成。,控制器是指挥与控制整台计算机各功能部件协同工作、自动执行计算机程序的部件。,4.1.3控制器,时钟控制电路由时钟脉冲发生器(石英晶体振荡器)和启停控制电路组成。1、石英晶体振荡器产生一定频率的时钟脉冲信号,作为整个机器的时间基准源。2、主频称为主机振荡频率,它的高低取决于这台计算机的CPU的适应能力。3、时钟周期:主频的倒数,表示相邻脉冲的时间间隔。4、指令周期:执行一条指令所需要的时间。5、机器周期:将指令周期划分成几个时间段,每个阶段称为一个机器周期。一般:时钟周期机器周期指令周期,二、时钟控制电路为每条指令按时间顺序执行提供基准信号。,控制逻辑电路:用来管理执行每条指令时所产生的一系列基本动作,指挥各部件协同动作完成指令规定的功能。微程序控制固化软件的微程序控制方法优:充分利用当前系统的硬件,指令修改调试方便。缺:每条指令由多条微指令实现,多次访问控制存储器,缓慢、费时。复杂指令系统计算机(CISC)多用。硬布线控制逻辑硬件控制指令执行的方法优:速度快缺:不容易修改和扩展精简指令系统计算机(RISC)采用。,三、控制逻辑电路的实现微程序控制和硬布线逻辑,1、冯诺依曼型计算机工作原理按顺序依序逐条、串行执行指令。例如:加法指令执行过程:,取指1译码1取数1运算1存数1取指2译码2取数2运算2存数2.,2、流水线思想的提出:把程序中的多条指令在时间上重叠起来执行,能否显著提高机器速度呢?,特点:控制简单,速度低,机器各部件利用率低。,4.1.4流水线工作原理,3、指令的重叠执行流水线工作原理,五条指令重叠执行情况:1T2T3T4T5T机器执行时间取指1译码1取数1运算1存数1取指2译码2取数2运算2存数2取指3译码3取数3运算3存数3取指4译码4取数4运算4存数4取指5译码5取数5运算5存数5可见,若将一条指令的执行时间分为五段,每段所用时间为T,则一条指令执行时间为5T。系统工作正常后每隔T时间就得到一条指令的处理结果。平均速度提高了4倍。这种工作方式称为流水线处理。优点:流水线把取指与执行分开,使取指与执行同时进行,减少了取指等待时间,大大提高了CPU的利用率。同时降低了对与之匹配的存储器的存取速度要求。问题:可能出现数据相关现象;频繁执行条件转移指令或中断指令会影响机器速度。,当遇到条件转移指令时,确定转移与否的条件码往往是由条件转移指令的条件来决定下条指令的地址,因此当条件转移指令进入流水线后直到确定下一地址以前,流水线不能继续处理后面的指令而处于等待状态,因而影响流水线效率。在某些计算机中,采用“猜测法”解决此问题,即计算机先选定转移分支中一种情况取指令处理。假如条件码生成后说明猜测是正确的,则继续执行下去。假如猜错了,则要返回程序的分支点,重新执行正确的分支程序。猜测过程如图4-4所示。,4、处理条件转移的方法,一种是“不精确断点法”,即对于中断请求后的后续指令不允许再进入流水线,已在流水线中的所有指令仍然执行完毕,然后才转入中断处理程序;另一种方法是当前大部分流水线计算机采用的“精确断点法”,即当第i条指令不论在流水线的哪一个阶段发出中断请求,中断处理程序的现场对应的都是第i条指令的,在第i条之后进入流水线的指令的原有现场都能恢复。“精确断点法”需要采用很多的后援寄存器,以保证流水线内的各条指令的原有状态的保存和恢复。,5、处理中断的方法,当IO设备有中断请求或计算机有故障时,要求中止当前程序的执行而转入中断处理程序,但是在流水线中往往还存在几条正在处理的指令,那么就有一个如何断流的问题。流水线计算机处理中断的方法有两种:,4.2.18086微处理器,Intel公司1978年研制成功时钟频率:4.7MHz10MHz2.9万个晶体管、91种指令由EU执行单元和BIU总线接口单元组成20位地址总线,寻址能力220=1048576=1(MB)16位数据总线4个16位通用寄存器:AX,BX,CX,DX,5个16位地址指针寄存器:IP,BP,SP,SI,DI4个16位段基址寄存器:CS,DS,SS,ES1个16位标志寄存器:FR,4.2Intel80X86微处理器,一、8088微处理器的内部结构,8086/8088CPU对可寻址的1MB空间划分为很多个逻辑段,每个逻辑段小于64KB,段内地址是连续的。1、段基址CS指示当前的代码段;DS指示当前的数据段;SS指示当前的堆栈段;ES指示当前的附加段。2、逻辑地址对存储器的任一位置的访问都是在该位置所在的段基址下进行的。逻辑地址形式为:段基址:段内位移例如,位于数据段DS=2000H,偏移地址为109AH的存储单元的逻辑地址为:2000:109A,二、存储器的分段结构,3、物理地址,4、堆栈堆栈是由若干个连续的存储单元组成的先进后出(FILO)存储区,常用堆栈指针寄存器SP指示栈顶位置。数据进栈时SP-2,出栈时SP+2。堆栈主要用于保护现场,保护断点。,物理地址=(段基址)16+(段内偏移)如存储单元2000:109A对应的物理地址为:20000H+109AH=2109AH,CPU完成一次对存储器或I/O端口访问所需要的时间8086/8088一个基本总线周期由4个时钟周期组成,习惯上称4个T状态.分别为T1,T2,T3,T4状态。T1状态,CPU往多路复用总线上发地址信息;T2状态,CPU从总线上撤销地址,总线的高4位输出本总线周期的状态信息,低16位高阻态;T3状态,多路总线的高4位继续提供状态信息,低16位传输数据;TW状态,等待状态,总线上信息与T3状态信息相同,此状态为配合CPU和外设数据传输,外设通过READY线发“数据未准备好”,CPU则在T3状态后插入TW状态,外设通过READY线发“准备好”,CPU则脱离TW状态,进入T4状态;T4状态,总线周期结束。,三、8086/8088的总线周期,(1)字长:是计算机一次可以处理的二进制数的最大位数,单位bit。实际上它取决于CPU内部算术逻辑单元、通用寄存器和数据总线的位数。(2)主频:也称时钟频率,是CPU的工作频率,单位MHz。主频越高,指令的执行速度越快,但是CPU的运算速度不仅与主频有关,还与流水线等有关。(3)外频:是CPU与外部器件通信的系统总线(也称前端总线,Front-SideBus,简写FSB)的工作频率,单位MHz。由于CPU外部器件的速度低于CPU的速度,系统总线的速度就低于CPU的速度,因此外频与主频的关系是:主频=外频倍频,其中倍频系数指外频与主频的比例关系。(4)数据最大带宽:是数据的最大传输速率,即每秒钟传送的数据的字节数,单位MB/s。数据最大带宽(MB/s)=总线频率(MHz)数据宽度(bit)8该公式中的数据宽度指的是能够同时传输的二进制数的位数。例如,当CPU的总线频率400MHz、外部数据总线64位,则CPU系统总线的数据最大带宽=400MHz64bit8bit=3200MB/s3.2GB/s(5)高速缓存:是为解决内存与CPU的数据传送速度差距,IntelX86系列微处理器从80486开始在CPU与内存之间插设一个容量不大速度却很快的高速缓存(也称为Cache),它先于内存与CPU交换数据。,CPU的有关性能指标,4.4指令系统和寻址方式,本节要点1了解指令的格式与分类。2了解指令的寻址方式。3.了解CISC与RISC的主要特点。,指令:命令计算机直接进行某种基本操作的二进制代码串,也叫机器语言代码。指令系统:一台计算机能直接理解与执行的全部指令的集合称为该机的指令系统。指令系统是进行计算机逻辑设计和编制程序的基本依据。它直接说明了这台计算机的功能。不同类型CPU的指令系统是不能混用与兼容的,但同一系列的CPU一般升级后指令都有扩充,并可兼容。目标程序:为解决某一实际问题而编制的有序的指令集合。它们一般是由语言处理程序转换得到的,而并非是直接编写出来的。语言处理程序:即汇编、编译或解释等程序。它们把BASIC等高级语言程序通过一定方式转换为目标程序。,指令系统名词解释:,4.4.1指令的结构典型的指令格式,一般由两部分组成:操作码和操作数的地址码:,操作码OP指明操作性质的命令码,提供指令的操作控制信息。操作对象A说明操作数存放的地址,有时则就是操作数本身。,4.4.1指令的结构及其分类,一个指令系统常有几十、几百条指令(Intel8086具有133条指令),但按功能可以划分为如下几大类:1、数据传送指令用以实现给寄存器或存储单元赋值,寄存器与寄存器之间、寄存器与内存单元之间等的数据传送。数据能够从源地址被传送到目的地址,而源地址中数据不变拷贝。,例:MOVAX,5MOVEAX,12345678HMOVDS,AX,4.4.2指令的分类,算术运算指令:一般包括定点、浮点的加、减、乘、除运算。根据运算结果改变标志寄存器的状态位。助记符:ADD,ADC,SUB,SBB,INC,DEC,DIV,MUL,CMP,逻辑运算:一般包括逻辑与,逻辑或,逻辑非,逻辑异或等运算,是以二进制为单位按位进行运算。OR,AND,XOR,NOT等,2、算术与逻辑运算指令,算术移位:左移时空位补0而符号位进标志位,右移时空位复制符号位,而移出位进标志位。逻辑移位:整体移位,空位补0,移出位进标志位。循环移位:有不带进位循环和带进位循环。前者循环后的移出位进标志位,后者与标志位一起循环。,3、移位指令,无条件转移指令:强迫CPU运行程序地址转移至新地址开始执行程序。有条件转移指令:根据当前运算的结果进行逻辑判断,符合判断条件则转移到指令表明的新地址处执行程序,否则继续按原顺序执行原来的程序。,5、调用指令和返回指令,调用指令实现从一个程序转去执行子程序的操作;返回指令则使CPU结束执行子程序而返回执行原程序。,4、转移指令,堆栈是由若干个连续的存储单元组成的先进后出(FILO)存储区,第一个送入堆栈中的数据存放栈底,新送入堆栈的数据存放在栈顶。栈底是固定不变的,而栈顶却是随数据的入栈和出栈在不断变化。在计算机中常用一个专用寄存器即堆栈指针SP(StackPoint)来指示栈顶位置。堆栈主要用来暂存中断、子程序调用时现场数据及程序返回地址,还有选择地保护某些寄存器的内容。用于堆栈访问的指令只有进栈(PUSH)和出栈(POP)两种。一般计算机中堆栈是从高地址向低地址扩展(也有少数计算机刚好相反),栈底的地址总是大于或等于栈顶地址。当执行进栈操作时首先自动将栈顶指针SP减量,然后把数据送入SP所指定的单元;当执行出栈操作时,首先将SP所指定的单元的数据取出,然后根据数据的大小自动对SP增量。,6、堆栈操作指令,输入/输出指令的功能是完成中央处理器和外部设备之间的数据交换。数据由外设传送到中央处理器称为输入(Input)数据由中央处理器传送给外设称为输出(Output)有的计算机采用存储器与I/O端口统一编址,所以不需要专用的I/O指令。,7.输入/输出指令,由于某些指令使用不当会破坏系统或其他用户信息,因此为了安全起见,这类指令只能用于操作系统或其他系统软件,而不提供给用户使用,称为特权指令。在多任务多用户系统中,特权指令主要用于系统资源的分配和管理,限制用户的使用和访问权限,防止系统资源或其他用户程序遭受破坏。另外还有其他一些指令,如向量运算指令、多处理指令和控制指令等。总之,计算机种类繁多,指令系统也不尽相同,指令助记符和指令功能、数目也有差别。要想使用某种计算机的指令编程就要参考其指令系统手册。,8.特权指令,需要说明的是:计算机种类不同其指令系统包括数量与功能有所不同,用其编程时务必参照相应的指令系统手册。,寻址方式:指令中如何提供操作数或操作数地址。,不同类型计算机的寻址方式有所差别,但大多可以归结为立即寻址、直接寻址、间接寻址、变址寻址以及相对寻址等几种寻址方式,或者这几种方式的组合与变形。,4.4.3指令的寻址方式,指令的地址码部分就是指令的操作数。优点:取指同时取得操作数,提高指令的运行速度。缺点:操作数的长度受指令长度的影响,且不便修改。适合操作数固定的情况。例:MOVAX,1AH的结果:(AX)1AH,一、立即寻址,指令的地址码部分给出的就是操作数在存储器中的地址。,存储器,OPA,操作数0110H,特点:简单直观,便于硬件实现,但操作数地址是指令的一部分,只能用于访问固定的存储器单元。,例:MOVAX,0110H,二、直接寻址,在指令的地址码部分给出某一寄存器的名称,而所需的操作数就在这个寄存器中。特点:数据传送快,计算机中多用。,例:MOVAX,BXBX为源操作数地址,AX为目的操作数地址,操作的结果为将BX中的数据传送(拷贝)到AX中。,三、寄存器寻址,在指令的地址码部分直接给出的是操作数在寄存器中的地址。,存储器,OPRn,A:,操作数,Rn:,A,优点:改变寄存器Rn中的内容就可访问内存的不同地址。修改十分方便。缺点:二次寻址速度慢。例:MOVAX,BX,四、寄存器间接寻址,操作数的有效地址是:一个变址寄存器的内容加上偏移量。,五、变址寻址方式,例:8086的变址寄存器为SI和DI。MOVAX,SI+100H;(AX)(SI)+100H),例:MOVAX,BP+SI+6;(AX)(BP)+(SI)+6),操作数的有效地址是:基址寄存器、变址寄存器和偏移量三者相加产生。,六、基址变址寻址,基址变址寻址:面向系统,解决程序的存储定位问题;变址寻址:面向用户,用以访问字串和数组。,有效地址,是指令中地址码部分给出的形式地址(偏移量Disp)与程序计数器PC的内容之和。即有效地址是以当前PC的内容为基准浮动的,浮动的距离就是偏移量。偏移量可正可负,通常用补码表示。相对寻址方式主要应用于相对转移指令。由于目的地址随PC变化不固定,所以非常适用于浮动程序的装配与运行。,七、相对寻址,一、RISC由来计算机的不断升级扩充,同时又兼容过去产品使指令系统日趋复杂,形成了“复杂指令系统计算机(CISC)”。复杂指令系统增加硬件复杂性,降低机器运行速度。经实际分析发现:1、各种指令使用频率相差悬殊。80%指令使用很少。2、指令系统的复杂性带来系统结构的复杂性,增加了设计时间和售价,也增加了VLSI设计负担,不利于微机向高档机器发展。3、复杂指令操作复杂、运行速度慢。由此提出“精简指令系统计算机(RISC)”的概念。,4.4.4精简指令系统计算机(RISC)简介,RISC不是简单地简化指令系统,而是通过简化指令使计算机的结构更加简单合理,从而提高运算速度。1、仅选使用频率高的一些简单指令和很有用但不复杂的指令。2、指令长度固定,指令格式少,寻址方式少。3、只有取数、存数指令访问存储器,其余指令都在寄存器中进行,即限制内存访问。4、CPU中通用寄存器数量相当多。5、大部分指令都在一个机器周期内完成。6、采用流水线组织。7、以硬布线逻辑为主,不用或少用微程序控制。8、特别重视编译工作,以简单有效的方式支持高级语言,减少程序执行时间。,二、RISC的特点,
展开阅读全文