《指令系统层》PPT课件.ppt
《《指令系统层》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《指令系统层》PPT课件.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机系统结构计算机系统结构系统的层次结构系统的层次结构 面向问题语言层面向问题语言层汇编语言层汇编语言层操作系统层操作系统层指令系统层指令系统层微体系结构层微体系结构层5层4层3层2层1层硬件硬件-机器语言机器语言机器与人的界面机器与人的界面符号化的机器语言符号化的机器语言面向用户的语言面向用户的语言硬件硬件/固件固件(微程序微程序)翻译翻译(编译器编译器)翻译翻译(汇编器汇编器)部分解释部分解释(操作系统操作系统)直接执行直接执行/解释解释(微程序微程序)一台计算机所能执行的全部指令,称为该机的一台计算机所能执行的全部指令,称为该机的指令系统指令系统或或指令集指令集,具体内容包括,具体内容
2、包括指令格式、指令格式、寻址方式、指令类型与功能寻址方式、指令类型与功能。相对微体系结构层,指令系统层是一个抽象的相对微体系结构层,指令系统层是一个抽象的层次,它是层次,它是硬件和软件之间的接口硬件和软件之间的接口,其主要特,其主要特征就是指令系统。征就是指令系统。本章将以本章将以80 x86为背景讨论指令系统层,主要为背景讨论指令系统层,主要内容包括:内容包括:80 x86系列系列CPU的结构特点;的结构特点;80 x86主存储器和寄存器组织;主存储器和寄存器组织;80 x86指令系统。指令系统。第第4 4章章 指令系统层指令系统层 典型典型CPU漫谈漫谈 从从 Intel 4004Pent
3、ium IV:4004 80088086/8088802868038680486 (IAIA3232位结构位结构)Pentium Pentium Pro Pentium MMX Pentium II Pentium III CeleronPentium IV (IAIA准准6464位结构位结构)Pentium D(2005-4发布)发布)Pentium 6470 2.4G3.8G4.1 80 x86 CPU 80 x86 CPU概况如下表所示:概况如下表所示:型号型号 发布发布 年代年代字长(位)字长(位)晶体管数晶体管数(万个)(万个)主频主频(MHz)内部数内部数据总线据总线宽度宽度(位)
4、(位)外部数外部数据总线据总线宽度宽度(位)(位)地址总地址总线宽度线宽度(位)(位)寻址寻址空间空间片内片内高速高速缓存缓存80861978162.94.771616201MB无无80881979162.94.77168201MB无无8028619821613.462016162416 MB无无8038619861627.512.5333232324GB无无8048619891612016025503232324GB8KB 型号型号 发布发布 年代年代字长字长(位)(位)晶体管数晶体管数(万个)(万个)主频主频(MHz)内部数内部数据总线据总线宽度宽度(位)(位)外部数外部数据总线据总线宽度
5、宽度(位)(位)地址总地址总线宽度线宽度(位)(位)寻址寻址空间空间片内高片内高速缓存速缓存Pentium(586)199332310330601666464324GB8KB数据数据8KB指令指令Pentium Pro(P6)199532550+155016020064643664GB8KB数据数据8KB指令指令256KB 二级高级二级高级缓存缓存Pentium II19973275023333364643664GB32KB512KB 二级高速二级高速缓存,有缓存,有独立封装独立封装和独立总和独立总线线4.1.1 8086/8088 CPU80868086是是1616位,即位,即CPUCPU的
6、内外数据总线为的内外数据总线为1616位,位,一个总线周期可以传送一个字(一个总线周期可以传送一个字(1616位)数据。位)数据。80888088是准是准1616位,内部总线为位,内部总线为1616位,外部为位,外部为8 8位,位,因此一个总线周期只能传送一个字节。因此一个总线周期只能传送一个字节。地址地址2020位,可寻址位,可寻址1MB1MB主存空间。主存空间。8086/80888086/8088的指令系统完全相同,完全兼容的指令系统完全相同,完全兼容.18086/8088 CPU内部结构内部结构 模模型型机机CPU指指令令串串行行执执行行。在在CPU执执行行指指令令时时,系系统统总总线线
7、与与主主存存可可能能空空闲闲,因因此此程程序序执执行行效效率率不不高高。8086/8088CPU8086/8088CPU采用采用指令流水线结构指令流水线结构 总线接口部件总线接口部件BIUBIU(Bus Interface UnitBus Interface Unit)取指令(或取操作数)取指令(或取操作数)执行部件执行部件EUEU(Execute UnitExecute Unit)执行指令执行指令 EU EU和和BIUBIU两个部件两个部件并行工作并行工作,指令的读取与执行指令的读取与执行部分重叠,从而提高了指令的执行速度。部分重叠,从而提高了指令的执行速度。8086 CPU内部结构如下图所
8、示内部结构如下图所示:下面讨论下面讨论EU和和BIU的功能的功能:(1)执行部件)执行部件EU:执行指令执行指令从指令队列中取出指令代码,由从指令队列中取出指令代码,由EU控制器进行译码控制器进行译码后产生对应的控制信号到各部件以完成指令规定的操后产生对应的控制信号到各部件以完成指令规定的操作。作。对操作数进行算术和逻辑运算,并将运算结果的特征对操作数进行算术和逻辑运算,并将运算结果的特征状态存放在标志寄存器中。状态存放在标志寄存器中。由于由于EU不直接与系统总线连接,因此当需要与主存不直接与系统总线连接,因此当需要与主存储器或储器或I/O端口传送数据时,端口传送数据时,EU向向BIU发出命令
9、,并发出命令,并提供给提供给BIU 16位有效地址与传送的数据。位有效地址与传送的数据。(2)总线接口部件)总线接口部件BIU:完成完成CPU与主存或与主存或I/O端口之间的信息传送端口之间的信息传送从主存取出指令送到指令队列中排队。从主存取出指令送到指令队列中排队。从主存或从主存或I/OI/O端口取操作数或存放运算结果。端口取操作数或存放运算结果。计算并形成访问主存的计算并形成访问主存的2020位物理地址。位物理地址。2.8086/8088 主存地址的形成主存地址的形成段基址:段基址:将将1 MB主存空间划分为若干段,主存空间划分为若干段,每个段的最大长度为每个段的最大长度为64 KB。段的
10、。段的20位段位段起始地址称为段基址。起始地址称为段基址。段基值:段基值:20位段起始地址的高位段起始地址的高16位位偏移地址(偏移量):偏移地址(偏移量):一个主存单元与一个主存单元与所在段的段基址之间的字节距离。所在段的段基址之间的字节距离。逻辑地址逻辑地址:(段基址段基址:偏移地址偏移地址)物理地址物理地址:将将16位段基值左移位段基值左移4位后与位后与16位偏移地址相加,形成位偏移地址相加,形成20位主存单元。位主存单元。有效地址有效地址?4.1.2 80386/80486CPU(过渡产品过渡产品)1Intel 8038632位地址,寻址空间为位地址,寻址空间为4GB。具有片内存储管理
11、部件,使虚拟存储空间(逻辑具有片内存储管理部件,使虚拟存储空间(逻辑地址空间)可达地址空间)可达64TB。字长字长32位,系统总线的数据通路宽度位,系统总线的数据通路宽度32位。位。采用多级流水线结构。采用多级流水线结构。平均运算速度约为平均运算速度约为4 MIPS。2Intel 80486 4.1.3 Pentium系列系列CPU(Pentium CPU的功能结构图的功能结构图)4.2.1 80 x86 CPU的寄存器的寄存器 180 x86 CPU的寄存器分类的寄存器分类(3大类大类)基本结构寄存器组基本结构寄存器组 :通用寄存器、通用寄存器、IP、FR、段寄存器。、段寄存器。系统级寄存器
12、组系统级寄存器组 :(不能访问不能访问)系统地址寄存器、控制寄存器、测试寄存器、调试寄存器。系统地址寄存器、控制寄存器、测试寄存器、调试寄存器。浮点寄存器组浮点寄存器组 :(不讲不讲,不做要求不做要求)数据寄存器、标记字寄存器、指令和数据指针寄存器、控制数据寄存器、标记字寄存器、指令和数据指针寄存器、控制字寄存器。字寄存器。4.2 80 x86 CPU的寄存器和主存储器的寄存器和主存储器2基本结构寄存器组基本结构寄存器组 通用寄存器;通用寄存器;指令指针寄存器指令指针寄存器IP;标志寄存器标志寄存器FR;段寄存器段寄存器(16位位)。(1 1)通用寄存器)通用寄存器 AXAX(Accumula
13、torAccumulator)作为累加器用。)作为累加器用。在乘除等指在乘除等指令中指定用来存放操作数。另外,所有的令中指定用来存放操作数。另外,所有的I/O I/O 指指令都使用这一寄存器与外部设备传送信息。令都使用这一寄存器与外部设备传送信息。eg1eg1 MUL SRC AX MUL SRC AXAL*SRCAL*SRC eg2eg2 DIV SRC AL DIV SRC ALAX/SRC AX/SRC 商商 AHAHAX/SRC AX/SRC 余数余数 eg3eg3 MOV AH,4CH MOV AH,4CH INT 21H INT 21H 返回返回DOSDOS BXBX(BaseBa
14、se)可以作为通用寄存器使用。)可以作为通用寄存器使用。此外,在此外,在计算存储器地址时,它经常用作计算存储器地址时,它经常用作基址寄存器基址寄存器。CX CX(CountCount)可以作为通用寄存器使用。)可以作为通用寄存器使用。此外,它还此外,它还常用来保存计数值,如在移位指令、循环(常用来保存计数值,如在移位指令、循环(LOOPLOOP)和串处理指令中用作隐含的计数器。和串处理指令中用作隐含的计数器。DX DX可以作为通用寄存器使用。可以作为通用寄存器使用。一般在做双字长运算一般在做双字长运算时把时把DXDX和和AXAX组合在一起存放一个双字长数,组合在一起存放一个双字长数,DXDX用
15、来用来存放高位字。此外,对某些存放高位字。此外,对某些I/O I/O 操作,操作,DXDX可用来存可用来存放放I/O I/O 的端口地址。的端口地址。SPSP、BPBP、DIDI、SISI 这这4 4个个1616位寄存器可以像数据寄存位寄存器可以像数据寄存器一样在运算过程中存放操作数,但它们只能以字器一样在运算过程中存放操作数,但它们只能以字(1616位)位)为单位使用。此外,它们更经常的用途是为单位使用。此外,它们更经常的用途是在存储器寻址时,提供偏移地址。因此,可称它们在存储器寻址时,提供偏移地址。因此,可称它们为指针或变址寄存器。为指针或变址寄存器。(2 2)指令指针寄存器和标志寄存器)
16、指令指针寄存器和标志寄存器IPIP(Instruction PointerInstruction Pointer)为指令指针寄存器,)为指令指针寄存器,它用来存放代码段中的偏移地址。它用来存放代码段中的偏移地址。IPIP作为指令的地作为指令的地址指针,其作用类似于其他计算机中的程序计数器址指针,其作用类似于其他计算机中的程序计数器PCPC,当现行指令执行完毕时,由,当现行指令执行完毕时,由IPIP提供下一条指令提供下一条指令地址。地址。FLAGSFLAGS为标志寄存器,又称为标志寄存器,又称PSWPSW(Program Status Program Status WordWord),即程序状态
17、寄存器。),即程序状态寄存器。这是一个存放条件码这是一个存放条件码标志、控制标志和系统标志的寄存器。标志、控制标志和系统标志的寄存器。8038680386及其后继机型及其后继机型的指令指针寄存器的指令指针寄存器EIPEIP和标志寄和标志寄存器存器EFLAGSEFLAGS是是3232位位的,其作用和相应的的,其作用和相应的1616位寄存器位寄存器相同。相同。下图说明了下图说明了80 x86 CPU中标志寄存器的内容中标志寄存器的内容:条件码标志包括以下条件码标志包括以下6位:位:OF(Over Flow Flag)溢出标志。溢出标志。将将参加算术运算的数看作带符号数,如参加算术运算的数看作带符号
18、数,如运算结运算结果果超出补码表示数的范围超出补码表示数的范围N,即溢出时,则,即溢出时,则OF置置1;否则;否则OF置置0。SF(Sign Flag)符号标志。符号标志。把指令执把指令执行结果看作带符号数,如结果为负,则行结果看作带符号数,如结果为负,则SF置置1;结果为正,则;结果为正,则SF置置0。ZF(Zero Flag)零标志。零标志。如指令执行如指令执行结果各位全为结果各位全为0时,则时,则ZF置置1;否则;否则ZF置置0。CF(Carry Flag)进位标志。进位标志。在进行算术在进行算术运算时,如最高位(对字操作是第运算时,如最高位(对字操作是第15位,对字节位,对字节操作是第
19、操作是第7位)产生进位或借位时,则位)产生进位或借位时,则CF置置1;否;否则置则置0。在移位类指令中,。在移位类指令中,CF用来存放移出的代用来存放移出的代码(码(0或或1)。)。AF(Auxiliary Carry Flag)辅助进位标辅助进位标志。志。在进行算术运算时,如低字节中低在进行算术运算时,如低字节中低4位(第位(第3位)产生进位或借位时,则位)产生进位或借位时,则AF置置1;否则;否则AF置置0。PF(Parity Flag)奇偶标志。奇偶标志。用来为机器用来为机器中传送信息时可能产生的代码出错情况提供检验中传送信息时可能产生的代码出错情况提供检验条件。当运算结果中条件。当运算
20、结果中1的个数为偶数时置的个数为偶数时置1,否则,否则置置0。控制标志位控制标志位1位位 DF(Direction Flag)方向标志,用来在串)方向标志,用来在串处理指令中控制处理信息的方向。处理指令中控制处理信息的方向。当当DF位为位为1时,每次操作后使变址寄存器时,每次操作后使变址寄存器SI和和DI减小,这减小,这样就使串处理从高地址向低地址方向处理。当样就使串处理从高地址向低地址方向处理。当DF位为位为0时,则使时,则使SI和和DI增大,使串处理从低增大,使串处理从低地址向高地址方向处理。地址向高地址方向处理。eg MOVSB 若若DF=0,则则 ES:DI(DS:SI)SI (SI)
21、+1 DI (DI)+1 系统标志位有系统标志位有1010位:位:TFTF(Trap FlagTrap Flag)陷阱标志)陷阱标志,用于调试时的单步方式操作。,用于调试时的单步方式操作。IFIF(Interrupt FlagInterrupt Flag)中断标志)中断标志 。IOPLIOPL(I/O Privilege LevelI/O Privilege Level)I/OI/O特权级标志特权级标志 。NTNT(Nested TaskNested Task)嵌套任务标志)嵌套任务标志,用来表示当前的任务是,用来表示当前的任务是否嵌套在另一任务内。否嵌套在另一任务内。RF RF(Resume
22、 FlagResume Flag)恢复标志位,)恢复标志位,它与调试寄存器的断点一它与调试寄存器的断点一起使用,以保证不重复处理断点。起使用,以保证不重复处理断点。VMVM(Virtual-8086 ModeVirtual-8086 Mode)虚拟)虚拟80868086模式位模式位 。AC AC(Alignment Check modeAlignment Check mode)对准检查方式位)对准检查方式位 。VIF VIF(Virtual Interrupt FlagVirtual Interrupt Flag)虚拟中断标志。)虚拟中断标志。VIP VIP(Virtual Interrupt
23、 Pending flagVirtual Interrupt Pending flag)虚拟中断未决标)虚拟中断未决标志。志。ID ID(IDentification flagIDentification flag)标识标志,)标识标志,程序有设置和清除程序有设置和清除IDID标识的能力,以指示处理机对标识的能力,以指示处理机对CPU IDCPU ID指令的支持。指令的支持。在调试程序在调试程序DEBUG中提供了测试标志位的手段,它中提供了测试标志位的手段,它用符号表示某些标志位的值:用符号表示某些标志位的值:标志名标志名标志为标志为1标志为标志为0 OF 溢出(是溢出(是/否)否)OV(ov
24、erflow)NV DF 方向(增量方向(增量/减量)减量)DN(down)UP IF 中断(允许中断(允许/关闭)关闭)EI(enable)DI(disable)SF 符号(负符号(负/正)正)NG(negative)PL(plus)ZF 零(是零(是/否)否)ZR(zero)NZ AF 辅助进位(是辅助进位(是/否)否)AC(auxiliary carry)NA PF 奇偶(偶奇偶(偶/奇)奇)PE(even)PO(odd)CF 进位(是进位(是/否)否)CY(carry)NC(3 3)段寄存器)段寄存器1616位位 段寄存器用于存储器寻址,用来直接或段寄存器用于存储器寻址,用来直接或 间
25、接地存放段地址间接地存放段地址(段基值或段选择器段基值或段选择器)代码段代码段CSCS(Code SegmentCode Segment)数据段数据段DSDS(Data SegmentData Segment)堆栈段堆栈段SSSS(Stack SegmentStack Segment)附加段附加段ESES(Extra SegmentExtra Segment)FSFS和和GSGS,附加的数据段附加的数据段(80386(80386以后以后)4.2.2 80 x86的主存储器的主存储器 1存储单元的地址和内容存储单元的地址和内容计算机存储信息的计算机存储信息的基本单位基本单位是是一个二进制一个二进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统层 指令系统 PPT 课件
限制150内