物理地址与内存大小的关系
前言
在计算机中,访问外设都是通过地址来访问的。如果给出存储外设的物理地址,要如何算出储存外设的内存呢?
计算
首先我们要搞懂下面的几个概念:
1、字节,一个字节8bit
2、字长,字长的长度并不固定,32位机,一次处理4个字节,字长为32bit;64位机,一次处理8个字节,字长为64bit。
3、一个物理地址等于一个字节,如,物理地址从0x00到0x01(包括0x01),共有2个字节的内存大小。
4、通过物理地址得到的内存大小为实际空间大小;像32位机,寻址空间为2^32,该空间为虚拟空间,如下图。
5、1KB=1024Byte, 1MB=1024KB.
其次,我们该如何通过物理地址计算出内存大小呢?
以上图为例,内存大小为:
0x9FFF FFFF - 0x8000 0000 + 1 = 536,870,912 byte = 512MB.