微机原理及接口技术幻灯片.ppt
微机原理及接口技术2023/4/101第1页,共44页,编辑于2022年,星期六2023/4/102第2页,共44页,编辑于2022年,星期六 地址总线传输地址信息,用来寻址存储器单元和I/O接口。地址总线”宽度”决定系统内存的最大容量。8086有20根地址线,可寻址1M内存。80486有32根地址线,可寻址4G内存。奔腾有64根地址线,可寻址内存。存储容量单位 1TB=1024GB 1GB=1024MB 1MB=1024KB 1KB=1024字节 1字节=二进制8位 微处理器的三总线2023/4/103第3页,共44页,编辑于2022年,星期六数据总线传输数据,用来与存储器单元和I/O接口交换数据。8086/80286CPU内/外数据线都是16位。80386/80486CPU数据线是32位。奔腾CPU数据线是64位。控制总线对于不同的CPU来讲,其条数是不一样控制线向系统各部件发出(或接收)控制信号。的。控制线向系统各部件发出(或接收)控制信号。2023/4/104第4页,共44页,编辑于2022年,星期六通通用寄存器用寄存器 有有8个个16位通用寄存器位通用寄存器AX、BX、CX、DX、SI、DI、BP、SP。这些寄存器可以存放数据和地址,并能。这些寄存器可以存放数据和地址,并能进行进行16位运算。其中位运算。其中AX、BX、CX、DX的低位字节或的低位字节或高位字节也可作为独立的高位字节也可作为独立的8位寄存器使用,低位字节的寄位寄存器使用,低位字节的寄存器分别称作存器分别称作AL、BL、CL和和DL,高位字节的寄存,高位字节的寄存器分别称作器分别称作AH、BH、CH和和DH。2023/4/105第5页,共44页,编辑于2022年,星期六段寄存器有4个16位段寄存器CS、DS、ES、SS。段寄存器主要解决20位地址形成和程序中指令代码与数据分开存放。此4个段寄存器名称为代码段、数据段、附加数据段、堆栈段。除CS是用于指示指令代码的地址空间之外,其它段寄存器都用于指示数据的地址空间。指令指针IP16位的IP总是保存着下一次将要从主存中取出指令的偏移地址,其值为该指令到所在段首址的字节距离2023/4/106第6页,共44页,编辑于2022年,星期六标志寄存器FLAG16位标志寄存器用来保存在一条指令执行之后,CPU所处状态的信息及运算结果的特征。如有进位/借位CF=1、运算溢出OF=1、运算结果为零ZF=1等9个标志。2023/4/107第7页,共44页,编辑于2022年,星期六 二。8086的物理地址的形成的物理地址的形成 (段寄存器)(CS)(DS)(SS)(ES)16偏移地址20位物理地址偏移地址由IP,SP或寻址方式提供2023/4/108第8页,共44页,编辑于2022年,星期六三。三。80486 微处理器结构框图微处理器结构框图高速缓存管理8K CACHE2023/4/109第9页,共44页,编辑于2022年,星期六n基本部件n运算部分:进行定点运算时需要算术逻辑运算单元、移位器和寄存器组;进行浮点运算时需要浮点运算单元和浮点寄存器组。n高速缓存:用来存放最近运行程序所需要的指令代码和数据。减少访问内存次数从而提高CPU运行速度。n存储器段页管理:为实现虚以存储器而设置。n指令译码与控制:根据指令的信息产生微指令对CPU内部进行控制。n80486外部地址线有32根,主存空间为4GB。数据线有32根,同时可访问4个字节的内存数据。2023/4/1010第10页,共44页,编辑于2022年,星期六n基本结构寄存器n8个32位的通用寄存器,6个16位的段寄存器,1个32位的指令指针,1个32位的标志寄存器n80486的工作模式n80486有两种工作模式,一种是实地址模式,一种是保护虚拟模式。n80486实地址模式与它的前辈16位的8086完全兼容,在8086和80286编写的程序不需作任何修改,就可以在80486的实地址模式下运行。n保护虚拟模式为多用户操作系统的设计提供必要条件,在保护虚拟模式下,80486可为每一个任务提供4GB的物理空间,并允许程序在64TB的虚拟空间内运行。n80486虚地址、线性地址和物理地址的关系图:2023/4/1011第11页,共44页,编辑于2022年,星期六 第二节第二节 Intel80X86微处理器体系结构微处理器体系结构继78年8086之后,Intel公司与81年推出了80286CPU,它也是16位微机,与8086向上兼容。而在85年和89年,Intel又分别推出了80386和80486CPU,这两者均为32位微处理器。80286CPU是在8086的基础上改进和发展而来,其主要特色是:1.片内具有存贮器管理和保护机构2.正式的在存贮器中引入虚拟地址的概念3.CPU内部的硬件结构支持了CPU采用了快速的并行流水线操作方式。80286的这些特点在的这些特点在80386/80486中体现的更加完善和进一优中体现的更加完善和进一优化,而奔腾化,而奔腾CPU的内部结构又是在的内部结构又是在80486的基础上有更进一的基础上有更进一步的发展。步的发展。2023/4/1012第12页,共44页,编辑于2022年,星期六80X86的体系结构特点的体系结构特点一。有关大型机的优化的体系结构1。片内集成有存贮器管理部件(MMU)可支持对存贮器进行分页管理:将指令指定的逻辑地址变换为线性地址。(段长度可变,但不好管理。所以引入了分页管理)存贮器管理的具体含义:80X86支持多任务、多道程序运行,每个任务、每道程序均需占用一定字节的存贮空间,如何将有限的物理空间有效地分配给多个任务即实现虚、实空间的转换,这就是存贮器管理要解决的问题。可支持对存贮器进行分页管理:将线性地址变换为物理地址。由OS进行具体管理,但CPU内部有硬件支持这种管理。2023/4/1013第13页,共44页,编辑于2022年,星期六可用于进行快速的实、虚地址转换一个段R(选择器)2.片上设有高速缓冲寄存器/存储器(CACHE)对应于一个64位(8个字节)的段描述符缓冲寄存器。可用于暂时存放数据和指令于高速缓存中,以加快CPU执行指令的速度。2023/4/1014第14页,共44页,编辑于2022年,星期六3。采用高速流水线结构CPU由多个部件组成,各部件在CPU内部分别同步的,相互独立的并行操作。(实现了高效的流水作业,避免了顺序处理,最大限度地发挥了CPU的性能,是总线利用率达到最佳状态。指令流水线技术:总线接口、指令予取、指令予译码。地址流水线技术:采用流水线地址寻址两个连续的总线周期部分重叠。超标量流水线技术:多条指令并行执行。BIU总线接口部件EU执行部件SU段管理部件CPU代码予取部件PU页管理部件IDU指令译码部件2023/4/1015第15页,共44页,编辑于2022年,星期六二、80X86是灵活的全32位微处理器(MPVP)数据总线DB32位可处理8位、16位和32位数据类型,通用寄存器及操作数为32位。支持动态总线宽度控制(动态切换16/32位数据总线)通过引脚BS16,由外部送来信号通知80X86总线改变情况:0以16位数据总线操作1以32位数据总线操作2023/4/1016第16页,共44页,编辑于2022年,星期六三、具有对存贮器及特权层的保护功能CPU内部具有保护机构:1。对特权层的保护功能:禁止程序的非法操作如:向代码段进行写入操作,访问段限以外的存贮区域等。2。对特权层的保护功能:特权层分为4级:0级1级2级3级OS核系统服务程序应用服务程序应用程序应用程序2023/4/1017第17页,共44页,编辑于2022年,星期六四、80X86有大的存贮器空间:实地址空间可直接寻址的地址空间为2=4千兆(4GB)虚拟存贮空间可直接寻址的地址空间为2=64MM字节(14+32=2=64MM)46328028668条AB:24条DB:16条 80486168条AB:32条DB:32条Pentium273条AB:32条DB:32条462023/4/1018第18页,共44页,编辑于2022年,星期六280X86的内部结构80X86CPU由多个部件构成多个部件在CPU内部分别同步独立并行地进行操作,避免了顺序处理,实现了高效的流水化作业,最大限度地发挥了CPU的性能,使总线的利用率达到最佳状态。一、80X86的内部各部件及其功能2023/4/1019第19页,共44页,编辑于2022年,星期六二、80X86的内部寄存器1。通用RD31D0EAXEBXECXEDXESPEBPESIEDI“E”Expand8086的16位通用R扩展为32位,他们可以按8位、16位和32位使用。2023/4/1020第20页,共44页,编辑于2022年,星期六CSDSSSESFSGS80386新增加了两个数据段,以满足程序和任务对多数据段的需要。程序不可访问(64位)注意:在进行8位或16位R运算操作时,只影响FR中的相应位,如8位加法进行,起进位不是送到第19位,而是送到FR中的CF位。1。段位置:由16位的段R和64位的描述符在高速缓冲寄存器中构成。高速缓冲寄器(16位)2023/4/1021第21页,共44页,编辑于2022年,星期六FRIPEFREIPCPU可以使用它的低16位/32位。3.标志寄存器(EFR)4。指令指示器(EIP)31150311502023/4/1022第22页,共44页,编辑于2022年,星期六关于标志R(32位)8086比8位微机,增加了3个控制标志和1个算术运算标志:分别为DF、IF和OF。80286比8086又增加了2个控制标志:NT嵌套(14位)NE1表示当前任务嵌套于另一任务中,执行完当前任务后需返回原任务。0表示无效。有IOPL特权标志(位12、13)用以指定I/O操作处于03特权层中的那一层。80386、80486公使用了15个标志,占用16位(IOPL占2位)2023/4/1023第23页,共44页,编辑于2022年,星期六31191817161514131211109876543210AC VM RFNTIPPL OFDFIF TFSF IFAFDFCSAFD4SCFD0SPFD2SSFD7SIFD6CDFD10CIFD9SOFD11XTFD8XNTD14XIOPLD12XRFD16XVMD17XACD188080所用标志8086所用标志80286所用标志80386所用标志80486所用标志所有标志位分为三类:S状态标志C控制标志X系统标志2023/4/1024第24页,共44页,编辑于2022年,星期六4。系统表R:用于进行从虚拟地址向实际物理地址的转换。1。功能:主要用于在保护模式下,管理4个系统表,这4个系统表为:GDT(GlobalDescriptorTable)全局描述符表LDT(LocalDescriptorTable)局部描述符表IDT(InterruptDescriptorTable)中断描述符表TSS(TaskStateSegment)任务状态段2023/4/1025第25页,共44页,编辑于2022年,星期六系统地址R:表R为GDTRGDTLDTR分别用来指定LDT的大小在M中的位IDIRIDT 置。TR用以指定TSS任务状态段,只用来存放任务环境的,其在M中的位置和大小由TR指定。其中:GDTR和IDTR共48位:32位的表基地址字段+16位的表边界字段。310150表基址表限2023/4/1026第26页,共44页,编辑于2022年,星期六可在实模式方式下,通过编程对GDTR和IDTR加载,以实现对GDT和IDT在保护方式下的初始化操作。150150310150选择器字段属性字段表基址字段边界字段LDTR和TSR共80位:32位的表基址字段+20位的边界字段+12位的访问权字段+16位的选择器字段。对对LDTR和和TR的说明的说明:这两个寄存器只能在保护方式下使用。在保护模式下程序可访问字段仅限于段选择器字段,即只能用指令加载段选择器。2023/4/1027第27页,共44页,编辑于2022年,星期六用LLDT和LT指令可设置成改变相应的选择器字段,依选择器字段可从全局描述符表中找到指定的基地址描述符和任务状态段描述符,在将描述符中的32位段基址和16位的段限及16位的属性字段加载到LDTR和TR的64位高速缓冲寄存器中。2023/4/1028第28页,共44页,编辑于2022年,星期六5。控制R(CR0CR3)(32位)(8086CPU中无)其中:CR1备用CR3用于提供页目录的基地址CR2用于提供页故障线性地址。CR0其低16位与80286CPU中一样,是机器状态字R。CR0功能:作为MSW用以表示比FLAG对CPU影响更大的标志,这些标志反映了系统的工作状态。2023/4/1029第29页,共44页,编辑于2022年,星期六CR0的控制位分为如下五大类:1。与CPU工作模式有关的控制位PG(分页)、PG(置CPU为虚拟地址保护方式)2。与CPU片内的CACHE有关的控制位:CE、WT3。与协处理器或浮点运算部件有关的控制位:TS、EM、MPNE。4。对唯控制位:AM5。页的写保护控制位:WP2023/4/1030第30页,共44页,编辑于2022年,星期六实模式REALPROTECTED保护模式VIRTUAL虚拟8086LMSW指令修改CR0指令RRESET位好修改CR0的PE=0的PE位=1通过中断执行IRETD指令RESET信号RESET对CPU复位三种模式之间的转换见图:Intel80X86微处器有三种工作模式:实模式、保护模式和虚拟86模式2023/4/1031第31页,共44页,编辑于2022年,星期六4.80X86的存贮器布局 一、布局要点 1、80X86的存贮器有三种工作方式:实地址方式 虚地址保护方式 虚拟86模式 所以其地址空间分为:物理存贮空间和虚拟存贮空间 实际物理地址空间是 CPU可直接访问存贮空间,其 存贮空间范围由CPU的地址总线位数决定。虚拟存贮空间即程序占有的存贮空间,其存贮量由CPU的体系结构确定。2023/4/1032第32页,共44页,编辑于2022年,星期六 任务N 任务N-1 任务X(虚拟虚拟空间)由磁盘等外 存支撑 任务1 任务2存贮器管理部件物理地物理地 址空间址空间 ROR.RAM 任务XD15 D2 D1 D0 46:索引值 TI RPL 偏移 2、二者存贮空间示意图如下:每个任务使用64TB字节的存贮空间(2 )索引值TIRPL32位偏移地址462023/4/1033第33页,共44页,编辑于2022年,星期六 3、存贮空间的划分:在实模式下:与8086相同,以64KB为一个逻辑地址段,段长度固定。在虚地址保护模式下:启动页功能时,一个逻辑段最大可分为2的32次 方个字节。不启动页功能时,一个逻辑段最大可分为2的20 次方字节。4、CPU在执行指令时,对存贮器操作数所在实际物理地址的求法:段基址+偏移地址=PA(32位)段基址的提供:虚拟86模式:实地址方式 由段R提供 虚地址保护模式 由段选择器索引段2023/4/1034第34页,共44页,编辑于2022年,星期六 二、虚地址保护方式 1、从实地址向虚地址保护模式的转换 使用“LMSW”指令置位控制寄存器CR。的D。位以后(即 PE位被置为“1”),由CPU内部的MMU(存储器管理部件)自 动完成转换。由实地址 虚拟地址2023/4/1035第35页,共44页,编辑于2022年,星期六 2、虚地址保护方式下CPU进行存贮器寻址时所采取的数据结构:采用了段选择器与描述符的数据结构,使寻址过程有了一个间接层,为80386内部的MMU和保护机构有了一个活动的空间,使多任务在80X86中运行方便、灵活、可靠。(1)80X86的段选择器 即8086中的段寄存器,亦是16位,由三个字段组成:D15 D3 D2 D1 D0索引值 TI RPL 14位2023/4/1036第36页,共44页,编辑于2022年,星期六 指令操作:AX:段R:FS XX选择器字段描述符描述表 描述符缓存器 M(2)段选择器的加载及加载的具体操作 即段R的初始化操作 例:指令:MOV FS,AX;2023/4/1037第37页,共44页,编辑于2022年,星期六(3)80X86的段R的构成 15 0 63 0 段选择器 属性 段基址 段边界 描述符变速缓冲存贮器2023/4/1038第38页,共44页,编辑于2022年,星期六 二、80X86在虚拟方式下的寻址过程:示意图见下页2023/4/1039第39页,共44页,编辑于2022年,星期六段描述符GDT段描述符LDT基地址边界描述符高速缓冲器描述符索引号段选择器TITI=0TI=1M基地址边界1532 1 0段选择器和描述符缓冲器作用段选择器和描述符缓冲器作用2023/4/1040第40页,共44页,编辑于2022年,星期六 分页物理地址15 031 0段选地址偏移地址31 0线性地址31 000000000HFFFFFFFFH000000000FFF属性段基地址段边界段边界80X86在虚拟模式下的地址变换实存空间2023/4/1041第41页,共44页,编辑于2022年,星期六 线性地址31 0目录引索值 页表引索值 页内偏移量31 22 21 12 11 0 页表基址 页表项页基址 31 0实存B页基址CR3 X X 00 031 12 11 0(+)(+)三、页管理部件功能:1、允许分页时,线性地址与物理地址的转换过程 条件(1)当将CR0控制寄存器中的第31位PG置位时,则页功能有效。(2)由CR3提供页表目录基地址。2023/4/1042第42页,共44页,编辑于2022年,星期六n用户按段址和偏址组成48位虚地址存储空间编程。n程序运行前CPU将所有的段值生成段表保存在主存中,每个段值对应段表中一个段表项,主要描述本段基值、段长度和本段访问权限。n程序运行时由当前段对应的段表项与偏移地址生成32位的线性地址。n由32位线性地址的高位生成的页表保存在主存中,其虚页号大小与主存实际页号大小相同。n程序运行到某页号程序位置时在页表中查询,若此页不在主存则根据一定算法将辅存中虚页调入主存置换成实页号,若此页已在主存则按实页号和页内偏址进行处理。80486虚拟存储器管理过程:2023/4/1043第43页,共44页,编辑于2022年,星期六 2、从线性地址、物理地址实例:CR3 5000H15 0 0000BX X XH03000X X XH0000010010 0000110100 00000101011031 22 21 12 11 0 页表50+48H (+)0B0DOH (+)3000000H 56H(+)2023/4/1044第44页,共44页,编辑于2022年,星期六