内存寻址

本文详细介绍了内存寻址的过程,包括逻辑地址、线性地址和物理地址的概念。探讨了硬件层面的分段机制,解释了段选择符、段寄存器和段描述符的作用,并阐述了Linux中的分段特性。接着,文章讨论了分页技术,包括常规分页、扩展分页和硬件高速缓存(TLB)的角色,以及Linux系统中的分页实现,如物理内存布局、进程页表和内核页表等。
摘要由CSDN通过智能技术生成

1.内存寻址

  • 逻辑地址

包含在机器语言中用来 指定一个操作数或者一条指令的地址。

每个逻辑地址由一个段segment 和 偏移量offset 组成,偏移量表示从段开始的地方到实际地址之间的距离。

  • 线性地址(虚拟地址)

是一个32位无符号整数,可以用来表示高达4GB的地址,常用十六进制数表示,0x00000000~0xffffffff

  • 物理地址

用于内存芯片级内存单元的寻址,与从微处理器的地址引脚发送到内存总线上的电信号相对应。

 

内存控制单元MMU:

======逻辑地址 ====》 【分段单元】 ====线性(虚拟)地址====》【分页单元】===物理地址===》

 

2.硬件中分段

2.1段选择符和段寄存器

逻辑地址由 段标识符 和 一个指定段内相对地址的偏移量 组成。

段标识符是一个16位长的字段,称为段选择符。

偏移量时一个32位长的字段。

 

段寄存器目的是存放段选择符,有以下段寄存器:

CS:代码段寄存器 code

SS:栈段寄存器 stack 

DS:数据段寄存器 data

ES,FS,GS段寄存器一般用途,指向任意的数据段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值