内存物理地址

原创 2017年01月03日 17:02:10

CPU访问内存时要给出内存单元的地址(内存地址),每个内存单元都有一个唯一的地址,称之为物理地址。

首先给出一个公式:

物理地址=段地址x16+偏移地址

物理地址指的是cpu访问内存数据的内存地址,段地址指的是8086cpu的16位的地址总线,偏移地址也指的是16位的地址总线。

什么是段地址?

首先我们知道8086cpu有20位的地址总线,而8086机是16位机,也即字长是16位,16位机描述了:

  • 运算器一次最多处理16位的数据
  • 寄存器的最大宽度为16位
  • 寄存器和运算器之间的通路位16位

那么8086CPU是如何给出20位的物理地址呢?

首先对于16位机来说20位的地址总线多出了4条线,那么是否可以从这里下手呢?通过位运算,可以知道16位机比与20条地址总线的20位机来说少了四位,那么可以通过乘以16的方法,扩展为与20位机同等的大小,那么这时候的段地址可以作为基址地址,而另外的16位地址值可以作为偏移地址。

"段地址X16+偏移地址=物理地址"的本质含义是CPU在访问内存时用一个基础地址和一个相对于基础地址的偏移地址相加,给出内存单元的内存地址。

在内存栈结构中就是采用的这个思想。


Linux下直接读写物理地址内存

虚拟 转 物理地址  virt_to_phys( *addr ); 物理 转 虚拟地址  phys_to_virt( *addr ); --------------------------------...
  • fz835304205
  • fz835304205
  • 2013年11月26日 14:04
  • 5552

逻辑地址、虚拟地址、物理地址以及内存管理

本文涉及的硬件平台是X86。物理地址、虚拟地址、逻辑地址、线性地址之间的关系进行了细致分析。其实,内存资源在驱动设计中的地位是至关重要的,我们要对设备进行操作,首先要获取到设备的地址。在UIO用户态驱...
  • xy010902100449
  • xy010902100449
  • 2015年07月19日 17:27
  • 1379

逻辑地址、虚拟地址、物理地址以及内存管理

本文涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。 1、概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处...
  • newcong0123
  • newcong0123
  • 2016年10月11日 21:47
  • 4049

大块物理地址连续的内存分配

  • 2014年04月03日 20:57
  • 281KB
  • 下载

mips的内存管理-kseg0,kseg1虚拟和物理地址映射理解

《mips-24kf-manual.gliethttp.pdf》p89页 所以mips复位和中断发生,都会自动进入kernel模式 . The core enters Kernel mode bo...
  • nancygreen
  • nancygreen
  • 2013年08月07日 17:19
  • 950

Java千百问_01基本概念(017)_内存物理地址在CPU中如何形成

点击进入_更多_Java千百问1、什么是内存的物理地址我们通过8086CPU来说明内存地址是如何形成的。首先我们要了解物理地址,当CPU需要访问一个内存单元时,需要给出内存单元的地址,而每一个内存单元...
  • ooppookid
  • ooppookid
  • 2016年07月09日 09:20
  • 2819

内存管理:物理地址扩展(PAE)分页机制

摘要: Intel通过在处理器上把管脚数从32增加到36,以提高处理器的寻址能力,使其达到2^36=64GB,然而线性地址的位数仍然是32位,为此,需引入一种新的分页机制。从pentium pro处理...
  • trochiluses
  • trochiluses
  • 2013年10月18日 14:31
  • 3121

mips的内存管理-kseg0,kseg1虚拟和物理地址映射理解

《mips-24kf-manual.gliethttp.pdf》p89页 所以mips复位和中断发生,都会自动进入kernel模式 . The core enters Kernel mode bo...
  • mrwangwang
  • mrwangwang
  • 2013年03月03日 14:07
  • 1768

物理地址,虚拟内存,linux内存管理....

本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。 一、概念 物理地址(physical address) 用于内存芯片级的单元寻址...
  • killcpp
  • killcpp
  • 2012年01月05日 16:12
  • 513

Linux下访问内存物理地址

Linux内核里提供的/dev/mem驱动,为我们读写内存物理地址,提供了一个渠道。下面讲述2种利用mem设备文件进行物理地址读写的方法,一种是 设备驱动的方法,另一种是系统调用的方法。首先我们看下m...
  • nancygreen
  • nancygreen
  • 2011年06月20日 18:14
  • 636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内存物理地址
举报原因:
原因补充:

(最多只允许输入30个字)