【自我笔记之Linux】X86下的地址映射

本文详细介绍了CPU中的数据总线、地址总线和控制总线的作用与特性,探讨了不同位数CPU的寻址能力和历史演变,包括8080、8086到80286的寻址模式变化,以及实地址模式和保护模式下的内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入概念:

数据总线

(1) 是cpu与内存或其他器件之间的数据传送的通道。

(2)数据总线的宽度决定了cpu和外界的数据传送速度。

(3)每条传输线一次只能传输1位二进制数据。eg: 8根数据线一次可传送一个8位二进制数据(即一个字节)。

(4)数据总线是数据线数量之和。

地址总线

(1)cpu是通过地址总线来指定存储单元的。

(2)地址总线决定了cpu所能访问的最大内存空间的大小。eg: 10根地址线能访问的最大的内存为1024位二进制数据(1024个内存单元)

(3)地址总线是地址线数量之和。

控制总线

(1)cpu通过控制总线对外部器件进行控制。

(2)控制总线的宽度决定了cpu对外部器件的控制能力。

(3)控制总线是控制线数量之和。

 

CPU位数:ALU的宽度( ALU一次能处理的的数据宽度)  CPU的计算能力  数据总线的条数

 

CPU的数据位数和地址位数不对等

8080、8085 :8位芯片,地址总线都是16条,寻址2^16=64K

从8086开始,cpu增加了CS DS SS ES 四个(16位)寄存器

IP寄存器:16位,IP寄存器放偏移量:(偏移量,偏移地址,逻辑地址,一个内存段上的偏移量)

X86体系

8086、80186:16位芯片,地址总线是20位,寻址2^20=1M

80286、80386:32位芯片,地址总线为32位

1、实地址模式(下图)

 

2、保护模式:在保护模式下,段是通过一系列被称之为 “ 描述符表 ” 的表所定义的。段寄存器存储的是指向这些表的指针。用于定义内存段的表有两种:全局描述符表 (GDT) 和局部描述符表 (LDT) 。

 

保护模式下的分页的地址映射:

线性地址(段基址《这里的和实模式下的不一样,段选择子》+段内偏移地址)分三部分 (下图):

页目录PD:1024项   元素4Byte   大小  4k

页表PT:1024项   元素4Byte   大小  4k   最大 1024*4k=4M

物理页面PA:物理页面上的偏移量

 

二级映射:

一个PG有1024项,一个PG项映射了1024个PT,1个PT映射4K的物理页面     1024*1024*4K=4G

二级页目录页表映射能映射4G的物理内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值