32位微处理器(2)综述_第1页
32位微处理器(2)综述_第2页
32位微处理器(2)综述_第3页
32位微处理器(2)综述_第4页
32位微处理器(2)综述_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

§11.332位微处理器的工作方式一、实地址方式:

自动特点:

①主要为386进行初始化用在实地址环境下,为386保护模式所需的数据结构做好各种配置和准备

实地址方式加电或复位②386类似于8086的体系结构a.操作数:16位,但允许使用32位寻址,但在指令前加上前缀--表示越权存取b.M:≤1MB,分段管理。段≤64KB此时,线性地址即为物理地址--CS×16+EA,无虚拟Mc.386中,M中保留两个固定存储区域初始化程序区:FFFFFFF0H~FFFFFFFFH中断向量区:00000~003FFH(1KB)最底层(16字节)

d.386具有特权级,在实模式下,程序在最高级(0级)上执行386的指令在实模式下均有效(少数除外)设置实模式:一为使80386和8086兼容二为可方便的从实模式转换到保护模式1、32位cpu的地址空间:

逻辑空间、线性空间、物理空间3种

①逻辑空间:程序员编程时所用的地址空间(虚拟、逻辑、编程地址)②线性空间:线性地址:由分段部件产生的地址线性地址或指令译码部件③物理空间:物理地址:在内存中可直接寻址的实际地址逻辑空间、线性地址、物理地址的转换逻辑地址线性地址物理地址段部件su页部件pu(不使用pu时,物理地址=线性地址)图示:32位有效地址P选择字RL

su

pu物理寄存器+463232逻辑地址线性地址物理地址321415210段寄存器(偏移地址)3).选择字选择一个对应的描述符(内含段基址),指向一个逻辑地址空间2).无论哪一种类型的程序在系统中运行,都由存储管理机制把虚拟地址转换成物理地址1).程序员编程时只关注有效地址4).偏移地址(由之算出最终的有效地址)指向一个逻辑地址空间5).su根据段描述符表算出32的线性地址(寻址机构算出有效地址)…………段描述符段描述符…………特权级界限值线性基址段描述符表一项64位,8字节段描述符(对应一个段)

⑥各机构操作为流水线操作:即:当前一个操作还在总线上进行时,下一个物理地址已经算出,并开始调入新的地址信息(可以认为转换时间几乎为0)2、描述符表1)描述符表保存在虚拟存储器中.4)由选择器(段寄存器)选中一描述符进行地址转换3)描述符由8各字节组成(段的信息)2)描述符表的每项为描述符选择字………描述符……………段……选择器M。描述符表描述符

8个字节∴先应知描述符的物理地址(选择字高13位×8+描述符表的起始地址)即:从描述符表中找到段的起始地址(段基址)

3、段寄存器

实模式下:与8086中的CS的使用相同.物理地址=CS×16+偏移地址16位64位CS段描述符寄存器段寄存器

保护模式下:CS为选择字,作为进入M中描述符表的变地址,由此值找到表中的一项(64位)对应一个段,该项由系统自动装入段描述符寄存器中4、描述符描述符用以描述段的信息(8个字节)其中:20位(1~19):段的大小32位(1~32)段的起始地址(物理地址)8位:段的有关特性4位:G.D.U.O

630属性(12位)起始地址(32位)大小(20位)描述符寄存器起始址(32)段大小(20位)属性(12位)新版:描述符寄存器从表中可见:①段限值占最低2个字节以及第7字节的低4位~~20位(记载段的大小,段的大小=字节数-1)使逻辑段的最大容量由64KB增为1MB(220=1MB)②段基址:共占4个字节(3、4、5、8)三处存放--32位∴可寻址232=4KM存储空间

③第6字节为访问权字节

④第7字节为高4位为语义控制段⑴G位:为界限域选择1或4K倍的倍数G=0则倍数为1,表示该段的段界限长度以字节为单位

∴段的大小220×倍数1=1MB

eg:某段的大小=1FFFFH,则:段的字节数=段的大小×倍数1+1=1FFFF×1B+1=20000H

最大值G=1,则倍数为4,表示该段的段界限长度以页面为单位

∴段的大小220×倍数4K=4KMB=4GB=1M页

eg:某段的大小=1FFFFH,则:段的字节数=段的大小×倍数4K+1=1FFFF×FFFH+1=20000,000H最大值段的起始地址是段的最低物理地址段的末地址(界限)是段的最高物理地址(段界限)所以:⑵D位:选择寄存器宽度,即操作数长度D=0,寄存器为16位默认值:16位地址or16位(8位)操作数D=1,寄存器为32位默认值:32位地址or32位(16,8位)操作数在实方式下:寄存器位16宽如果用32位,加前缀DOS的当前版本设为D=0⑶U位:表示描述符所描述的段可用,由操作系统使用⑷P位:存在位P=1,对应段存在,且已装入内存P=0,对应段目前不在内存,需从磁盘上调入内存⑸DPL:设置对应段的特权级:由高至低分别为00,01,10,11用来防止一般用户任意访问操作系统的对应数b.如果用一个比DPL低的特权级访问该段将发生越权中断⑺TYPE:(P300)⑹S:段位,指示描述符的类型S=0,为非代码段或数据段(对应一个系统段)S=1,为代码段或数据段(对应一般的存储器代码段和数据段)§11.5保护方式一、保护(对数据处理有保护的、可靠的运行方式)

不同任务之间的保护:给每个任务分配虚拟空间,每个任务有各自不同的虚拟--物理地址转换映射,因而可实现任务之间的完全隔离。

同一任务的保护:在一个任务内定义4种执行特权的级别pl,每个段都与一个特权级别pl相联系,由pl决定是否能访问(有规则,通过cup内硬件完成保护功能)

特点:M用三种地址空间描述,MMU将外存的虚拟空间有效地址映射到内存空间;4级保护二、保护方式下的寻址(在su上增加pu)32位有效地址P选择字RL

su

pu物理寄存器+463232逻辑地址线性地址物理地址321415210段寄存器(偏移地址)指令中的通过段描述表通过页目录表,页表1、有关地址计算

逻辑地址=16位选择字+32位有效地址

=48位(46位)

选择一个对应的描述符--描述符中含有段基址--段基址指向一个逻辑地址空间

由偏移地址算出--指向此逻辑空间中的一个待寻址的存储单元地址(有效地址由程序员关注)组合含义线性地址:在虚拟存储空间内是可定位的地址线性地址=段基地址+有效地址(偏移址)(32位)(32位)(32位)物理地址:低12位=线性地址低12位

(32位)高20位=f(线性的高20位)2、su的工作过程(变换地址)

根据16位段选择字从描述符表中选择一描述符从中得到一个32的段基址段基址+有效地址=线性地址(32)选择字32位有效地址………段描述符………32位段基址+线性地址描述符表

32表基址计算逻辑地址`另:描述符在表中的物理地址:

(由选择字的D3位决定)T1位T1=0,在GDT中T1=1,在LDT中(段的描述符的索引值确定位置)另:逻辑地址中实际上包含了段选择字和有效地址,所以常说su将逻辑地址线性地址选择字高13位×8+表的起始地址3、pu的工作过程(变换地址)1)分页机制的启动:当CR0中的PG=1,系统启动分页机制(由cup内部的CR和pu控制与实现)2)分页管理的对象:大小固定的4KB的存储块(页),在4KB的边界上对齐即:每页的开始地址都能被4K整除。∴232=4KMB的线性空间220个页面

(1M个页面)划分3)页结构:386采用两级表结构:页目录表、页表

a、页目录(表):Ⅰ、表中每项(条目)--页目录描述符(页目录条目)Ⅱ、每项由4字节组成(32位)表共有1024个项∴表长度为1024×4=4KB长(一页)……………………页目录描述符……………………页目录(表)Ⅲ、页目录描述符(页目录条目)结构:页表地址(20位)控制位3112110Ⅳ、页目录描述符(页目录条目)选取:由线性地址的高10位(变址)选取和CR3

目录CR3………页目录条目………+页目录基址寄存器线性地址3122高10位称目录×4b、页表:Ⅰ、表中每项(条目)--页描述符(页条目)Ⅱ、每项由4字节组成(32位)共有1024个项∴表长度为1024×4=4KB长(一页)……………………页描述符……………………页表Ⅲ、页描述符(页条目)结构页面地址(20位)控制位3112110Ⅳ、页描述符(页条目)选取:由线性地址的中10位选取和页目录条目的高20位

表(10位)………页描述符………+页目录条目线性地址2112×43112110页表地址(20)页表(页目录描述符)4)pu的工作过程:3个步骤

①、线性地址的高10位×4+CR3=值--选中页目录表中的一个条目(页目录描述符)

②、线性地址的中10位×4+页目录条目中的20位页表地址(扩展成32位)=值--选中页表中的一项(页描述符)③、线性地址低12位+页描述符中的

页面地址=页物理地址扩展成32位,后添设03112可见:

页目录(表)映射页表,页表映射页。

偏移………………………+页描述符线性地址110

12位页面地址(20)物理地址用户内存被访问的页

eg.把线性地址=04834056H转换成物理地址已知:CR3=05000000H,(页目录基址寄存器)低12位为0

解:线性地址=00000100100000110100000001010110

012H034H

056H(10位)(10位)(12位)1)页目录描述符物理地址=线性地址高10位×4+CR3=012H×4+CR3=05000048H设对应该地址的页目录描述符的32位为0000BXXXH则页表地址=0000BH(扩展成32位为0000B000H,低12位为0)2)线性地址的中10位:034H页描述符物理地址=线性地址中10位×4+页表地址=034×4+0000B000=0000B0D0H设:对应该物理地址的页描述符的32位为03000XXXH则:页面地址=03000H(扩展成32位为03000000H)3)页物理地址=线性地址低12位+页面地址=056+03000000=03000056H4、几点说明

1)386在执行每条指令时,硬件将自动的进行复杂的地址计算

3个操作的重叠,对程序员而言,转换时间几乎为02)各机构按地址流水线的执行过程:有效地址计算逻辑地址线性地址线性地址物理地址3)分段:把虚拟M组织成其容量大小可变的区间的集合,这些区间称为段.段的信息段描述符编成表,以便硬件查找识别存入内M中,其位置由3个寄存器来确定系统有3张:定义所有段中断GDTLDT

1DT4)分页:大小固定的存储块(4KB)线性空间、物理空间以页为单位来组织即:pu只需把每个活动任务当前所需的少量页面放在内M中,可提高存取效率§11.6虚拟8086方式(V86模式)概述:虚拟8086方式是既能有效利用保护功能,又能执行8086代码的工作方式,它使386可快速地同时执行多个8086的应用程序.又述:V86是在保护模式中引入了虚拟8086工作模式,也可以理解为V86模式是运行在保护环境中的8086模式.一、V86模式特点:1)V86模式是让386模拟1MB空间的寻址环境,但不限于1MB的存储空间(因为它可以同时支持几个虚拟8086环境)2)在多用户系统中,每一个虚拟8086环境都可有自己的操作系统和应用程序eg.有3个任务:操作系统为每个任务分配时间片(1ms)一个任务另一个任务另一个任务每个任务都得到Cpu的运行时间,系统好像同时执行多个任务切换切换(时间片技术:允许多个应用程序同时执行)则:每过1ms4)V86模式是面向任务的,它允许386生成多个模拟的8086微处理器eg.386的操作系统是UNIX,但用户可以在V86窗口下执行8086的操作系统和用户程序,使得每个任务认为它正在一台独立的8086计算机上运行3)在保护模式下,386的EFR中的VM=0,若使VM=1,则进入V86模式3、有pu,则pu将线性地址物理地址,且物理地址可定位于4GB内存中的386可寻址的任何地方(但程序访问的仍然是1MB以内的存储器)二、V86模式的寻址

1、段寄存器的意义同8086相同段寄存器左移4位+偏移地址=线性地址2、可寻址的最大空间为00000H~FFFFFH的1MB存储器页表三、V86模式下的分页

分页:当虚拟任务的地址空间大于1MB的物理空间时,需要分页1、在保护模式下,CR0中的PG位是1,启动分页机制(V86下不能对CR0进行修改)2、∵使用A的A19~A0又∵线性地址为:①∴线性地址高10位全为0即:系统只能访问页目录表的第一个页目录描述符00031222120120高10位中间10位低12位②又∵A21,A20常为0(线性地址中10位只有8位有效地址)即:系统只能访问28=256个页表项(页描述符)即20位线性地址(高位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论