首页 > 编程知识 正文

内存地址是什么意思(理解内存地址)

时间:2023-05-04 20:46:21 阅读:121928 作者:347

物理内存和物理地址

物理内存:记忆棒实际提供的内存空间内存地址:查找和访问内存中正确位置的过程! --more--内存地址:如何在内存空间中描述位置

物理内存地址:无符号整数。 以字节分隔,从0开始编号,逐渐线性增大

硬代码:从物理地址操作物理内存的代码写入方式

线性存储器和线性地址线性存储器和物理存储器:

相似之处:从0开始编号,直线增加

差异:1.物理地址一对一地对应于实际物理存储器空间中的位置,而线性地址多对一(多个线性地址对应于一个物理地址)2.物理地址的增加总是线性地对应于存储器空间中的位置; 然而,线性地址的增加对应于物理地址,并且可以逐步跳转。

逻辑内存(虚拟内存)和逻辑地址(虚拟地址)段)不同级别的程序、程序的不同数据类型存储在不同的“段”上,用于定义在“段”上的偏移。 在现代程序中看到的地址都不是线性的,而是分段的地址,例如segment:offset。

逻辑内存空间:由段偏移构成的空间

te-space:pre-wrap;background-color:rgb(252,252,252);">逻辑地址:二元组

宽度

宽度:位宽;某东西在同一时刻能处理的数据量;单位:位(bit)

CPU寻址能力

对于 xx 位 CPU 来说,它一次性能够表示的无符号数的范围是 0,2x−1。因此,对这枚 CPU 来说,它以字节(Byte)为单位寻址时,最多能在 2x Bytes2x Bytes 的内存空间中找到它需要的数据。如果在寻址时,不加入其它信息,那么这是它的寻址能力上限。

CPU 需要通过地址总线去内存寻址。若地址总线的带宽为 yy 位,那么在地址总线中传输的物理内存地址的范围是 0,2y−1。也就是说,地址总线的可寻址空间是 2y Bytes2y Bytes。地址总线中的地址,是与物理内存地址保持一致的。

因此,如果在寻址时,不加入其它信息,CPU 具体的寻址能力取决于 CPU 本身的位宽和它连接的地址总线的带宽:2min(x,y) Bytes2min(x,y) Bytes。

内存分页

分页就是人为地在逻辑上将连续的内存空间,按照固定大小切分成一段一段。对于线性内存来说,这样切分出来的固定大小叫做「页(Page)」;对于物理内存来说,这样切分出来的固定大小叫做「页帧(Page Frame)」。

分页机制将线性内存分为若干页,将物理内存分为若干帧,并建立从页到帧的映射关系。这个映射关系,是一个「多对一」的映射。

高速缓存

高速缓存将最近的访存页面对应的内容保存其中。当 CPU 访存时,首先在缓存中查询是否有目标页内容:若有,则直接存取内容;否则,再进行二级页表的查询,到内存中存取内容。如果缓存存满了,则根据一定的算法(退场机制),将缓存中的过期数据退场。

根据 Intel 自己的统计,大约 98% 的访存请求可以通过高速缓存处理。亦即,只有 2% 的访存请求,需要进行两次页表查询。可见,高速缓存的存在,大大降低了数据交换的量和频次。因此,高速缓存大大提升了寻址/访存速度。



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。