Pentium在保护模式下的寻址机制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Pentium在保护模式下的寻址机制

姓名:郭丽娜专业:电子信息科学与技术2009学号:020242009005

工作模式

从80386开始,cpu有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,操作系统运行起来以后就运行在保护模式。

实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持; 支持多任务,能够快速地进行任务切换和保护任务环境; 4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密及任务的隔离; 支持虚拟8086方式,便于执行8086程序。虚拟8086模式是运行在保护模式中的实模式,为了在32位保护模式下执行纯16位程序。它不是一个真正的CPU模式,还属于保护模式。

保护模式同实模式的根本区别是进程内存受保护与否。CPU启动环境为16位实模式,之后可以切换到保护模式。但从保护模式无法切换回实模式寻址机制:

Pentium的存储单元的地址跟16位的cpu类似,也是由段基址和段内偏移量构成的,为此,pentium内部设置了6个16位的段寄存器。在实地址方式,每段的大小固定为64KB,寻址时,只要把段寄存器中的值左移4位,就得到对应段的基地址,再加上偏移量,就得到了存储单元的物理地址。在保护方式下,存储器单元的地址也是由段基址和段内偏移量构成,不过,为了得到更大的存储空间,在保护方式下,pentium采用了更巧妙的方法来得到段基址和段内偏移量。

Pentium的寻址机制,首先就是逻辑地址到线性地址的转换,这个转换是由分段部件完成的。在指令中,所用的是有16位段寄存器指出的段选择子和32位偏移量构成的逻辑地址。段选择子依据TI值选中GDT或LDT,再由高13位段描述符索引值在某个描述符表中选中一个描述符。再从段描述符中得到32位段基址,段基址加上偏移量就是线性地址。和实地址方式不同,实地址方式时段寄存器中的值左移4位就是段基址,再加上16位的偏移量即为线性地址。而保护方式下,段寄存器中的值内容为段选择子,而它又和描述符中的32位段基址相联系,不符合任何算法。

相关概念介绍:

段寄存器、段选择子和描述符

在保护方式下,程序中给出的48位的逻辑地址被分为段选择子和段内偏移量两部分,段寄存器中的内容就是段选择子,但用段选择子不能直接获得段基址,而是要用段选择子的值从描述符表中找到一个项。描述符表是由操作系统建立的,表内每一项称为描述符,每个描述符对应一个段。描述符中含有的对应段的起始地址即段基址,另外还含有相关段的其他信息。

线性地址到物理地址的转换

逻辑地址是程序员所看到的地址,也是编程中出现的地址,也叫虚拟地址。完整的逻辑地址一共48位,包括16位的选择子和32位偏移量。物理地址和芯片引脚上的地址信号相对应,它为每个存储单元在存储体中指定唯一的地址。分页部件将线性地址转换为物理地址,如果分页部件处于禁止状态,即段内不分页,那么,线性地址就是物理地址。

线性地址往物理地址的转换是由分页机构实现的。分页机构把32为的线性地址分为三个部分:最高10位作为进入页组目录的索引,从210项的页组目录项表中选取一个目录项,用高10位乘以4,即指向所要的页组目录项;线性地址的中间10位作为进入页表项的索引,也是210项,同样用这10位乘以4,即指向所要的页表项;最低12位作为页内偏移量,它和页表项提供的页基址(页表项的高20位)共同产生存储单元的物理地址。

描述符表

在pentium中有三种描述符表,全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。每个描述符表对应一个存储段。一个系统中,GDT和IDT都只能有一个,而LDT可以有多个,每个LDT对应一个任务。在多任务系统中,任务切换时,LDT也跟着切换,但GDT保持不变,一个任务运行时,与此相关的GDT和LDT映像的两部分地址空间可以达到64TB 虚拟存储器

按照对主存的划分方式,虚拟存储器有段式虚拟存储机制和页式虚拟存储机制两类。

段式虚拟存储机制把主存按段来进行管理,每段的长度不固定,每个段都是受到保护的独立空间,长处是段和程序模块相对应,易于管理和维护,缺点是由于各段长度不一,给主存空间的分配带来不便,且容易在段间留下碎片式的存储空间,造成存储器的浪费和效率降低。

页式虚拟存储机制按页来划分主存,页的长度一旦确定,在一个系统中的所有页面大小便固定,页面的起点和终点也随之固定。只有分页机制才支持虚拟储存。长处是存储器可充分利用,但不便于和模块化程序相衔接。

因此,pentium中多采用段页式虚拟存储机制,综合了两种方法的优点。

相关文档
最新文档