Skip to content

为什么32位处理器的最大内存是4G #247

@WGrape

Description

@WGrape

前言

本文原创,著作权归WGrape所有,未经授权,严禁转载

一、背景

我们大家都知道,在32位的处理器中,支持的最大内存是4G。但是为什么是4G呢 ?可能很多人已经想不起具体的原因,那么本文就会就这个问题,再次从底层开始讲起,详细的做出解释。

绘制底层原理图之探究CPU文章中,已经绘制了一张CPU内部简化模型图。如果不明白,看原图会更帮助你真正理解这个问题。

二、什么是32位处理器

32位处理器是指这个CPU的地址总线和数据总线都是32位(32根)

三、什么是寻址空间

寻址空间就是通过地址总线,所能访问到的内存范围。从内存地址0开始,至内存地址N结束

image

1、如何计算寻址空间

寻址空间和地址总线是线性关系,地址总线越多,寻址空间也越大,由于每一位只有0和1,那么每一根地址总线都有2种可能,所以关系为寻址空间 = 0 ~ 2^地址总线位数

比如8位地址总线,就是有8根地址总线,每一根只能表示0或1,那么8根总线一共有 2^8 方个组合,即256个组合,也就是说可以表示 0 ~ 255 之间的共计256个数字,每个数字都可以作为一个内存单元的地址,这个数字可以类比为数组的下标。
0 :0000 0000
1 :0000 0001
2 :0000 0010
3 :0000 0011
........
255 :1111 1111
所以8位地址总线寻址空间为0~255,内存单元的地址范围也是0~255,内存空间为256个内存单元,即256字节

四、什么是内存空间

内存空间由N个内存单元组成,每个内存单元占8位(1个字节),N个内存单元的地址范围是0~N-1

image

五、为什么32位处理器的最大内存是4G

(1) 32位处理器的地址总线为32位(32根地址总线)

(2) 每根地址总线有2个可能(0或1),所以32根共有 2^32 = 4294967296 个数值,寻址空间为0 ~ 4294967296-1

(3) 由于一共有 4294967296 个内存单元,每个内存单元为8位(1个字节)

(4) 所以32位处理器的内存一共有 4294967296 个字节 ,即 4G

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions