第3版第4章指令系统层



《第3版第4章指令系统层》由会员分享,可在线阅读,更多相关《第3版第4章指令系统层(161页珍藏版)》请在文档大全上搜索。
1、1 计算机的基本工作主要体现为执行指令。计算机的基本工作主要体现为执行指令。一台计算机所能执行的全部指令,称为该一台计算机所能执行的全部指令,称为该机的指令系统或指令集,具体内容包括指机的指令系统或指令集,具体内容包括指令格式、寻址方式、指令类型与功能。令格式、寻址方式、指令类型与功能。 相对微体系结构层,指令系统层是一个抽相对微体系结构层,指令系统层是一个抽象的层次,它是硬件和软件之间的接口,象的层次,它是硬件和软件之间的接口,其主要特征就是指令系统。其主要特征就是指令系统。 本章将以本章将以80 x86为背景讨论指令系统层。为背景讨论指令系统层。第第4 4章章 指令系统层指令系统层2本章主
2、要内容:本章主要内容: 4.1 80 x86 CPU 4.2 CPU的寄存器和主存储器的寄存器和主存储器 4.3 80 x86指令系统。指令系统。34.1 80 x86 CPU 型号型号 发布发布 年代年代字长(位)字长(位)晶体管数晶体管数(万个)(万个)主频主频(MHz)内部数内部数据总线据总线宽度宽度(位)(位)外部数外部数据总线据总线宽度宽度(位)(位)地址总地址总线宽度线宽度(位)(位)寻址寻址空间空间片内片内高速高速缓存缓存80861978162.94.771616201MB无无80881979162.94.77168201MB无无8028619821613.46201616241
3、6 MB无无8038619861627.512.5333232324GB无无8048619891612016025503232324GB8KB80 x86 CPU概况如下表所示:概况如下表所示:4 型号型号 发布发布 年代年代字长字长(位)(位)晶体管数晶体管数(万个)(万个)主频主频(MHz)内部数内部数据总线据总线宽度宽度(位)(位)外部数外部数据总线据总线宽度宽度(位)(位)地址总地址总线宽度线宽度(位)(位)寻址寻址空间空间片内高片内高速缓存速缓存Pentium (586)199332310330601666464324GB8KB数据数据8KB指令指令Pentium Pro (P6)1
4、99532550+155016020064643664GB8KB数据数据8KB指令指令256KB 二二级高级缓级高级缓存存Pentium II19973275023333364643664GB32KB512KB 二二级高速缓级高速缓存,有独存,有独立封装和立封装和独立总线独立总线5 本节主要介绍本节主要介绍8086/8088、80386/80486、Pentium、Pentium Pro和和Pentium CPU的内部的内部结构及特点。结构及特点。 4.1.1 8086/8088 CPU 8086 CPU是是16位微处理器,即位微处理器,即CPU的内外数据总线为的内外数据总线为16位,一个总线
5、周期可以传送一个字(位,一个总线周期可以传送一个字(16位)数据。而位)数据。而8088是准是准16位微处理器,其位微处理器,其CPU的内部总线为的内部总线为16位,外部位,外部数据总线为数据总线为8位,因此一个总线周期只能传送一个字节。但位,因此一个总线周期只能传送一个字节。但是两者的内部结构基本上是相同的,其地址引脚均为是两者的内部结构基本上是相同的,其地址引脚均为20位,位,可寻址可寻址1MB主存空间。主存空间。8086/8088的指令系统完全相同,在的指令系统完全相同,在软件上是完全兼容的。软件上是完全兼容的。 618086/8088 CPU内部结构内部结构 模型机模型机CPU的指令之
6、间的衔接采用串行的顺序处理方式,即必的指令之间的衔接采用串行的顺序处理方式,即必须在一条指令执行完后,才能从主存中读取下一条指令。在须在一条指令执行完后,才能从主存中读取下一条指令。在CPU执行指令时,系统总线与主存可能空闲,因此程序执行效率不高。执行指令时,系统总线与主存可能空闲,因此程序执行效率不高。 下图(下图(a)给出了)给出了3条指令的执行过程:条指令的执行过程:7 8086/8088 CPU采用了指令流水线结构,将取指令(或取操采用了指令流水线结构,将取指令(或取操作数)与执行指令的功能分别由两个独立部件实现,即总线接口作数)与执行指令的功能分别由两个独立部件实现,即总线接口部件部
7、件BIU(Bus Interface Unit)与执行部件)与执行部件EU(Execute Unit)。)。因此,当因此,当EU执行某条指令时,执行某条指令时,BIU同时完成从主存中预取后继指同时完成从主存中预取后继指令,两个部件并行地工作,使指令的读取与执行可以部分重叠,令,两个部件并行地工作,使指令的读取与执行可以部分重叠,从而提高了指令的执行速度。从而提高了指令的执行速度。8086/8088 CPU的指令执行过程如的指令执行过程如图(图(b)所示。)所示。8 8086 CPU内部结构如下图所示内部结构如下图所示:9下面讨论下面讨论EU和和BIU的功能的功能:(1)执行部件)执行部件EU
8、包括一个包括一个16位算术逻辑运算部件位算术逻辑运算部件ALU、一组、一组通用寄存器、暂存器、标志寄存器,以及通用寄存器、暂存器、标志寄存器,以及EU控制器。各寄存控制器。各寄存器和内部数据通路都是器和内部数据通路都是16位。位。EU的主要任务是执行指令,其的主要任务是执行指令,其功能为:功能为:从指令队列中取出指令代码,由从指令队列中取出指令代码,由EU控制器进行译码后产生对应的控制信号到各部控制器进行译码后产生对应的控制信号到各部件以完成指令规定的操作。件以完成指令规定的操作。对操作数进行算术和逻辑运算,并将运算结果的特征状态存放在标志寄存器中。对操作数进行算术和逻辑运算,并将运算结果的特
9、征状态存放在标志寄存器中。由于由于EU不直接与系统总线连接,因此当需要与主存储器或不直接与系统总线连接,因此当需要与主存储器或I/O端口传送数据时,端口传送数据时,EU向向BIU发出命令,并提供给发出命令,并提供给BIU 16位有效地址与传送的数据。位有效地址与传送的数据。(2)总线接口部件)总线接口部件BIU 包括一组段寄存器、指令指针、包括一组段寄存器、指令指针、6字节字节的指令队列(的指令队列(8088是是4字节)、字节)、20位总线地址形成部件,以及位总线地址形成部件,以及总线控制逻辑。总线控制逻辑。BIU的主要任务是完成的主要任务是完成CPU与主存储器或与主存储器或I/O端口之间的信
10、息传送,其功能为:端口之间的信息传送,其功能为:从主存取出指令送到指令队列中排队。从主存取出指令送到指令队列中排队。从主存或从主存或I/O端口取操作数或存放运算结果。端口取操作数或存放运算结果。计算并形成访问主存的计算并形成访问主存的20位物理地址。位物理地址。10段基值:段基值:20位段起始地址的高位段起始地址的高16位,称位,称为段基值(为段基值(Segment Base Value),存),存放在放在BIU的相应段寄存器中。的相应段寄存器中。偏移地址(偏移量):偏移地址(偏移量):一个主存单一个主存单元与所在段的段基址之间的字节距离。元与所在段的段基址之间的字节距离。 当当CPU访问某个
11、主存单元时,访问某个主存单元时,必须指明由哪个段寄存器提供段基值,必须指明由哪个段寄存器提供段基值,同时又给出偏移地址。然后由同时又给出偏移地址。然后由BIU将将16位段基值左移位段基值左移4位后与位后与16位偏移地址位偏移地址相加,形成相加,形成20位主存单元的物理地址。位主存单元的物理地址。2. 8086/8088 主存地址的形成主存地址的形成 段基址:段基址:将将1 MB主存空间划分为若干段主存空间划分为若干段,每个段的最大长度为,每个段的最大长度为64 KB。段的。段的20位段位段起始地址称为段基址。起始地址称为段基址。114.1.2 80386/80486 CPU 1Intel 80