每日一课(11/75)CPU资源和存储器 之 80x86 内存管理 您所在的位置:网站首页 存储器管理单元 每日一课(11/75)CPU资源和存储器 之 80x86 内存管理

每日一课(11/75)CPU资源和存储器 之 80x86 内存管理

2023-07-08 04:04| 来源: 网络整理| 查看: 265

存储器的管理模式 intel公司的80x86系列的CPU对内存的管理采用的是内存分段的方式。

1. 存储器的分段 计算机的内存管理单元是以“字节”为最小单位进行线性编址的,字节是80x86CPU对内存管理的基元。为了标识每个存储单元,就给每个存储单元规定一个编号,该编号就是内存单元的物理地址。 存储单元的物理地址是一个16位的二进制数,物理地址通常采用16进制书写。

16位CPU内部拥有20根地址线,它的寻址范围就是2的20次方,也就是1M的内存空间。 但是16位CPU存放存储单元偏移量的寄存器(IP,SP,BP,SI,DI,BX)的编码范围仅为:00000H - 0FFFFH,也就是只能访问65536个存储单元,64K。 为了能够访问1M的内存空间,CPU就采用了内存分段的管理模式,并且在CPU内部加入了段寄存器。 16位CPU把内存空间分为若干个逻辑段,每个逻辑段的要求如下:  1) 逻辑段的起始地址(段地址)必须是16的倍数,即最后4个二进制位必须全为0。  2) 逻辑段的最大容量为64K,这由16位寄存器的寻址空间所决定。

2. 物理地址的形成方式 由于段地址必须是16的倍数,所以值的一般形式为XXXX0H,即前16位二进制位是变化的,后四位是固定的0,鉴于段地址的这种特性,可以只保存前16位二进制位来保存整个段地址,所以每次使用时要用段寄存器左移补4个0(乘以16)来得到实际的段地址。 在确定了某个存储单元所属的内存段后,我们也只是知道该存储单元所属的范围(段地址 到 段地址+65536),如果想确定内存单元的具体位置,还必须知道该单元距离该段地址有多远。我们通常把这个存储单元的实际地址和段地址之间的范围称为段内偏移,也称为有效地址(EF-Effective Address)或偏移量(Offset),有了段地址和偏移量,就可以唯一的确定某一内存单元在存储器的具体位置。

存储单元的逻辑地址分为两个部分 段地址:偏移量 由逻辑地址得到物理地址(PA - Physical Address)的公式为: PA = 段寄存器的值 * 16 + 偏移量(为什么要乘16,因为段寄存器没有保存段地址的后4位,所以要*16,或者用左移4位)。 实际在计算的时候,是用  PA = 段寄存器



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有