网站大量收购闲置独家精品文档,联系QQ:2885784924

(微机原理与接口技术)第3章微处理器存储管理技术.ppt

(微机原理与接口技术)第3章微处理器存储管理技术.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.1.1 段地址和偏移地址   8086/8088的可寻址空间为1 MB,因此,对整个存储器空间寻址需要20位的地址码,而8086/8088 CPU内的所有寄存器都是16位的,只能寻址64 KB。为了能对1 MB的存储器进行寻址(即访问每个存储单元),8086/8088系统采用了存储器分段技术,即将1 MB的存储器空间分成若干个逻辑段,每个段最长64 KB,段内地址是连续的,仍可采用16位寻址方法。逻辑段可在整个存储空间内浮动,段与段之间可以是连续的,也可以是分开的或重叠的,但段的起始地址(称为段地址或段基地址)必须从能被16位整除的地址开始,即每个段的首地址的低4位必须为0。这样便可将段地址的高16位放在CS、DS、SS和ES这四个段寄存器中。   由上述分段概述可知,任何一个存储单元可以被唯一地包含在一个逻辑段中,也可以被包含在两个相互重叠的逻辑段中。存储单元的地址可以用相对于段地址的位移量来表示。这个位移量称为“偏移地址”,其最大长度为16位。因此,只要得到一个存储单元的段地址和偏移地址,就可以对该单元进行访问。段地址(高16位)存放在段寄存器中,偏移地址可以放在指令指示器IP中,或存放在16位的通用寄存器中。对任何一个存储单元进行访问时,都必须用20位地址,那么对每个存储单元存在两种地址:一是由段地址和偏移地址组成的地址(逻辑地址);另一个地址就是我们所说的20位的实际访问地址(物理地址)。   所谓逻辑地址,就是程序中使用的地址,它由段地址和偏移地址组成。在逻辑地址中,段地址和偏移地址都是16位的无符号二进制数。程序设计时使用逻辑地址。所谓物理地址,就是存储器的绝对地址(实际地址),它从00000H~0FFFFFH,是CPU访问存储器时由地址总线发出的地址。显然,实际工作时,CPU访问存储器时要使用物理地址。那么,如何从16位段地址和16位偏移地址组成的逻辑地址中得到20位的物理地址呢?所谓存储器管理,就是能将程序中的逻辑地址转移为物理地址的机构,由它实现从逻辑地址到物  理地址的变换。  存储单元物理地址的计算如图3.1(a)、(b)所示,即:     物理地址?=?段地址?*?16位?+?偏移地址 3.1.2 程序重定位的实现   段加偏移寻址机制似乎非常复杂,但它给系统带来了许多优点。这种复杂的段加偏移的寻址机制允许程序在存储器内重定位,允许为在实模式下运行而编写的程序在保护模式下也可以运行。可重定位程序是一个可以放在内存任何区域,不加修改而仍能执行的程序。可重定位的数据是可以放在内存任何区域,且不需要修改就可以被程序应用的数据。在段加偏移寻址机制下,程序在逻辑段中的逻辑地址不具有实际意义,只有对应起具体的段地址才能映射到具体的物理空间。   因此,程序在不同的计算机系统中,不需要考虑段内地址,而只需将段地址重定位,即可在新的计算机系统中运行,而这可以在硬件和操作系统中实现,对程序员可以是透明的。段加偏移寻址机制对包含不同存储器区域的通用计算机系统是非常理想的,因为各种微机的存储器结构并不相同,但要求软件和数据能够重新定位。若没有这样的特性,则一个程序在移动之前必须大范围地重写或更改,或为许多不同配置的计算机系统设计许多程序文本,因而需要大量的时间。   在80286以后的处理器中,出于扩展存储空间的需要,系统地址线也在不断的增加。80286为24条,寻址空间16 MB,可以采用虚拟存储器的工作方式;80386以后的处理器全面进入32位时代,地址线扩展到32条,寻址空间达4 GB。在这种情况下,实模式除去兼容性外,已不再适应计算机的发展要求,由此产生了保护模式。   在保护模式下,一个存储单元的地址也由段地址和偏移地址两部分组成。从段内偏移量来说,除能扩展到全地址(32位)外,与实模式区别不大,寻址方式的根本区别在于如何圈定段地址。在实模式下,段寄存器(16位)的内容乘以24作为段地址,故段地址是20位的,只能寻址1 MB。在保护模式下,段寄存器出于兼容性考虑延续了16位结构,而段地址为32位,此时无法用段寄存器存储内容表示。   为了解决这个问题,段寄存器内存放的内容不再为段地址,而是包括选择子(Selector)和其他字段的数据组合。选择子(13位)用于选择内存描述表内的一个描述符,描述表内最多可包含16384个描述符。描述符(Descriptor)是用于描述存储器段的地址(32位)、长度和访问权限的数据结构,每一个描述符可对应一个存储段。保护模式下的存储器寻址示意图如图3.2所示。   由段地址(32位)和偏移地址(32位)形成的地址称为线性地址(32位),若不采用分页机制,则此线性地址即为物理地址。微处理器片内有分页的MMU,当启用分页机制时,经过分页机制可以把线性地址转换为存储器的物理地址。

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档