您好,欢迎访问三七文档
第4章(1)计算机的基本工作主要体现为执行指令。一台计算机所能执行的全部指令,称为该机的指令系统或指令集,具体内容包括指令格式、寻址方式、指令类型与功能。相对微体系结构层,指令系统层是一个抽象的层次,它是硬件和软件之间的接口,其主要特征就是指令系统。本章将以80x86为背景讨论指令系统层,主要内容包括:•80x86系列CPU的结构特点;•80x86主存储器和寄存器组织;•80x86指令系统。第4章指令系统层4.180x86CPU80x86CPU概况如下表所示:型号发布年代字长(位)晶体管数(万个)主频(MHz)内部数据总线宽度(位)外部数据总线宽度(位)地址总线宽度(位)寻址空间片内高速缓存80861978162.94.771616201MB无80881979162.94.77168201MB无8028619821613.46~2016162416MB无8038619861627.512.5~333232324GB无80486198916120~16025~503232324GB8KB型号发布年代字长(位)晶体管数(万个)主频(MHz)内部数据总线宽度(位)外部数据总线宽度(位)地址总线宽度(位)寻址空间片内高速缓存Pentium(586)199332310~33060~1666464324GB8KB数据8KB指令PentiumPro(P6)199532550+1550160~20064643664GB8KB数据8KB指令256KB二级高级缓存PentiumII199732750233~33364643664GB32KB512KB二级高速缓存,有独立封装和独立总线本节主要介绍8086/8088、80386/80486、Pentium、PentiumPro和PentiumⅡCPU的内部结构及特点。4.1.18086/8088CPU8086CPU是16位微处理器,即CPU的内外数据总线为16位,一个总线周期可以传送一个字(16位)数据。而8088是准16位微处理器,其CPU的内部总线为16位,外部数据总线为8位,因此一个总线周期只能传送一个字节。但是两者的内部结构基本上是相同的,其地址引脚均为20位,可寻址1MB主存空间。8086/8088的指令系统完全相同,在软件上是完全兼容的。1.8086/8088CPU内部结构模型机CPU的指令之间的衔接采用串行的顺序处理方式,即必须在一条指令执行完后,才能从主存中读取下一条指令。在CPU执行指令时,系统总线与主存可能空闲,因此程序执行效率不高。下图(a)给出了3条指令的执行过程:8086/8088CPU采用了指令流水线结构,将取指令(或取操作数)与执行指令的功能分别由两个独立部件实现,即总线接口部件BIU(BusInterfaceUnit)与执行部件EU(ExecuteUnit)。因此,当EU执行某条指令时,BIU同时完成从主存中预取后继指令,两个部件并行地工作,使指令的读取与执行可以部分重叠,从而提高了指令的执行速度。8086/8088CPU的指令执行过程如图(b)所示。8086CPU内部结构如下图所示:下面讨论EU和BIU的功能:(1)执行部件EU包括一个16位算术逻辑运算部件ALU、一组通用寄存器、暂存器、标志寄存器,以及EU控制器。各寄存器和内部数据通路都是16位。EU的主要任务是执行指令,其功能为:从指令队列中取出指令代码,由EU控制器进行译码后产生对应的控制信号到各部件以完成指令规定的操作。对操作数进行算术和逻辑运算,并将运算结果的特征状态存放在标志寄存器中。由于EU不直接与系统总线连接,因此当需要与主存储器或I/O端口传送数据时,EU向BIU发出命令,并提供给BIU16位有效地址与传送的数据。(2)总线接口部件BIU包括一组段寄存器、指令指针、6字节的指令队列(8088是4字节)、20位总线地址形成部件,以及总线控制逻辑。BIU的主要任务是完成CPU与主存储器或I/O端口之间的信息传送,其功能为:从主存取出指令送到指令队列中排队。从主存或I/O端口取操作数或存放运算结果。计算并形成访问主存的20位物理地址。段基值:20位段起始地址的高16位,称为段基值(SegmentBaseValue),存放在BIU的相应段寄存器中。偏移地址(偏移量):一个主存单元与所在段的段基址之间的字节距离。当CPU访问某个主存单元时,必须指明由哪个段寄存器提供段基值,同时又给出偏移地址。然后由BIU将16位段基值左移4位后与16位偏移地址相加,形成20位主存单元的物理地址。2.8086/8088主存地址的形成段基址:将1MB主存空间划分为若干段,每个段的最大长度为64KB。段的20位段起始地址称为段基址。4.1.280386/80486CPU1.Intel803861985年Intel公司推出了其第一片32位微处理器80386。它的主要性能如下:32位地址,可直接寻址的物理存储空间为4GB。具有片内存储管理部件,使虚拟存储空间(逻辑地址空间)可达64TB。字长32位,系统总线的数据通路宽度32位。采用多级流水线结构。平均运算速度约为4MIPS。2.Intel804861989年Intel公司又推出了80486。它相当于一个增强型的80386、一个增强型的80387数值协处理器(也称浮点部件FPU)、一个8KB的高速缓存(Cache)的集成,基本上沿用了80386的体系结构,内部结构如下图。下面分别简单介绍各部件的功能:①总线接口部件BIU:BIU包含地址驱动器、数据收发器、总线控制器。它是CPU与存储器及I/O设备之间的高速接口。其功能是:当取指令、取数据或写数据、响应分页部件或分段部件请求时,能有效地满足CPU对系统总线的传送要求。②指令部件:它包含指令预取部件、指令译码部件、产生微命令的控制部件、高速缓存Cache。它完成预取指令、分析指令,然后产生指令所需的微命令去控制相应部件操作。③执行部件:执行部件包含数据部件和浮点部件FPU。数据部件包括通用寄存器、一个有乘除功能的ALU、一个64位的桶形移位器。它执行控制部件所指定的数据操作。由于浮点部件FPU和浮点寄存器组集成在80486芯片内,缩短了FPU与处理器各部件之间的距离,因此FPU的执行速度比80386和80387组成的系统快3倍。④存储器管理部件MMU在80486中,将存储器按段来组织,以适应用户程序的逻辑结构。段的大小可变,最大可达到4GB。针对主存物理空间的组织,又将存储器划分为页,每页大小均为4KB。存储器管理部件设置了分段部件与分页部件:分段部件按控制部件的要求计算有效地址,并且将逻辑地址(由段基值和偏移地址组成)转换成线性地址,即:线性地址=段基址+有效地址(即偏移地址)分页部件通过页变换,将来自分段部件或指令预取部件的线性地址转换成主存的物理地址。上述9个部件可以独立操作,也能与其他部件并行工作。在取指令和执行指令的过程中,每个部件都完成一部分功能,因此80486可以同时对不同指令进行操作。80486具有5级流水线,使不同指令的操作重叠程度更高,从而允许一些常用指令在一个时钟周期内完成。尽管这些指令的读取、译码和执行实际上占用了多个时钟周期,但由于这些指令与其他指令的译码和执行相重叠,因此平均每条指令的执行时间只占一个时钟周期。4.1.3Pentium系列CPU1.PentiumCPU(1)概述PentiumCPU是Intel80x86系列微处理器的第五代产品,其性能比它的前一代产品又有较大的提高,但它仍保持与Intel8086、80286、80386、80486兼容。PentiumCPU是第一个实现系统管理方式的高性能微处理器,它能很好地实现PC机系统的能耗与安全管理。PentiumCPU之所以有如此高的性能,在于该微处理器体系结构采用了一系列新的设计技术,如超标量体系结构、集成浮点部件、64位数据总线、指令动态转移预测、回写数据高速缓存、错误检测与报告等。(2)PentiumCPU的功能结构如下图所示:①超标量体系结构PentiumCPU具有三条指令执行流水线:两条独立的整数指令流水线(U流水线和V流水线)与一条浮点指令流水线。两条整数指令流水线都拥有独立的算术逻辑运算部件、地址生成逻辑和高速数据缓存接口。每一个时钟周期可以同时执行两条简单指令,因而相对同一频率下工作的80486来说,其性能几乎提高了1倍。通常把这种能一次同时执行多条指令的处理器结构称为超标量体系结构。②浮点指令流水线与浮点指令部件浮点指令流水线具有8级,实际上它是U流水线的扩充。U流水线的前4级用来准备一条浮点指令,浮点部件中的后4级执行特定的浮点运算操作并报告执行错误。此外在浮点部件中,对常用的浮点指令(加、减、除)采用专用硬件电路执行,而不像其他指令由微码来执行。因此,大多数浮点指令都可以在一个时钟周期内完成,这比相同频率下的80486浮点处理性能提高了4倍。③指令转移预测部件PentiumCPU提供了一个小型的1KB高速缓存(称为转移目标缓冲器BTB)来预测指令转移。它记录正在执行的程序最近所发生的几次转移,这就犹如一张指令运行路线图,指明转移指令很可能会引向何处。BTB将进入流水线的新指令与它所存储的有关转移信息进行比较,以确定是否将再次执行转移。由于程序局部性原则,指令的历史本身会经常重复,因而使转移预测部件在大多数情况下的预测是正确的,这就足以将微处理器的性能提高很多。④数据和指令高速缓存Pentium芯片内部有两个超高速缓冲存储器Cache。一个是8KB的数据Cache,另一个是8KB的指令Cache,它们可以并行操作。这种分离的高速缓存结构可减少指令预取和数据操作之间可能发生的冲突,提高微处理器的信息存取速度。2.PentiumProCPUPentiumProCPU即P6,中文名称为高能奔腾处理器,是Intel公司继Pentium之后于1995年推出的又一种新型高性能奔腾微处理器。PentiumProCPU主要特点如下:(1)三路发布超标量微结构,14级超流水线,使一个时钟周期内可同时执行三条简单指令。(2)5个并行处理单元:两个整数运算部件,一个装入部件,一个存储部件,一个浮点运算部件(FPU)。(3)8KB两路组相关指令高速缓存,8KB四路组相关数据高速缓存。(4)专用全速总线上的256KBSRAM使二级高速缓存与微处理器紧密相联。(5)事务处理I/O总线和非封锁高速缓存分级结构。(6)乱序执行,动态分支预测和推理执行。3.PentiumⅡCPU(1)概述PentiumⅡ(PⅡ)CPU采用了与PentiumProCPU相同的核心结构。同时,增加了对多媒体的支持和对16位代码优化的特性,它能够同时处理两条MMX多媒体指令。PentiumⅡ的显著特点有:①双重独立总线DIB体系结构,能同时使用具有纠错功能的64位系统总线和具有可选纠错功能的64位Cache总线。②多重跳转分支预测。③数据流分析。分析哪一条指令依赖于其他指令的结果或数据,由此来优化指令调度。根据分析结果来重排指令,使指令以优化的顺序执行,而与原始程序的顺序无关。④指令推测执行。使用转移预测和数据流分析,让指令在程序实际执行之前就“推测执行”,并把结果暂时存储起来。通过执行可能需要的指令,使处理器的执行机制尽可能地保持繁忙。⑤采用IntelMMX技术。它包括57条增强的MMX指令,可处理视频、声频及图像数据。(2)PentiumⅡCPU的内部结构PⅡ有3条指令流水线,每条指令流水线共有14级如右图所示:PⅡCPU在体系结构上较以前的处理器有很大变化,一个最明显的技术特征就是其核心完全采用RISC微结构,为了保持与80x86其他处理器兼容,仍继续采用CISC指令集,因此内部增加了RISC与CISC之间的转换硬件。PⅡ与P6一样采用*BE7~*BE0作为8个存储体的选择信号对存储器的访问加以控制。它们在非流水线的地址方式下需要两个时钟周期进行总线操作,在P6和早期PⅡ系统中,系统总线的速度为66MHz,主频为250MHz,以后的Pe
本文标题:汇编与组成第4章1
链接地址:https://www.777doc.com/doc-3264342 .html