CPU——寻址空间

 前言:

  我们都熟知32为的操作系统的寻址空间的大小为4G,因此我们安装一个32位系统在配置4g的内存条,这似乎非常完美。但是当我们打开任务管理器发现我们的物理内存只有3g左右。

寻址空间:

  寻址空间一般指的是CPU对于内存寻址的能力。通俗地讲,就是最多能用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的,CPU在运算的时间需要把数据取出来,就必须 需要知道数据储存在哪里,这时我们需要挨家挨户地找(也就是在其能够寻址的空间进行查找),这就叫做寻址。

但是如果地址超出了CPU的寻址范围,CPU就无法找到数据了。CPU最大查找多大范围的地址叫做寻址能力,CPU的寻址能力以字节为单位。

  那么我们便可以推出,内存的容量并非需要无限的增大,虽然内存容量越大,处理数据的能力也就越强,但是它要受到系统结构,硬件设计,制造成本等多方面因素的影响。最直接的因素就是:系统地址总线的地址寄存器的宽度(位数)

  计算机的寻找范围由总线宽度(处理器的地址总线的位数)决定的,也可以理解为cpu寄存器位数,这二者一般是匹配的。

  Inter公司早期的CPU产品的地址总线和地址寄存器的宽度为20位,即CPU的寻址能力为:2^20 = 1024*1024(B*B)=1MB;也就是1M个字节;

286的地址总线和地址寄存器的宽度为24位,CPU的寻址能力为:16MB;

386及386往上的地址总线和地址寄存器的宽度为32位的,CPU的寻址能力2^32 = 4096M字节= 4G字节。

所以呢,早期的CPU即使有很大的内存也不能得到利用,而对于现在的PⅡ级的CPU,其寻址能力已经远远超过目前的内存容量。

  所以:地址总线为N位(N通常为8的整数倍;也说N根数据总线 )的CPU寻址范围是2的N次方字节,即2^N(B)。

16,32,64位通常指的是什么?

从CPU的发展史来看,从前的8位到现在的64位。

8位就是CPU在一个时钟周期内可以并行处理8位二进制字符0或1,那么16和64以此类推。

从计算的角度理论上来讲64位比32位快一半。但是因为电脑是软硬件相配合才能发挥最佳性能的,所以操作系统也必须从32位的到64位的,而且硬件驱动也必须是64位的。我们在64位CPU的计算机中安装64位的操作系统的32位硬件驱动是不能用的。如果64CPU装32的操作系统的话,那性能不会有明显提升。

为什么是2的N次方,而不是其他数的N次方

  因为计算机采用二进制计算的,一根地址总线,我们可想而知他最多能对2个存储单元进行寻址。因为在任何的二进制计算机中,所有物理元件只有0,1两种状态,所以对应这个例子,我们假设已经把这根唯一的地址总线与两个储存单元a和b连上了,那么究竟怎么确定何时读a何时读b?当地址线上的电压是高电压时我们读a,相反是低电压时,我们读b。如此一来,一根地址总线只能对2个存储单元进行寻址,以此类推那么2根就是对应4个储存单元,所以N根就是对应2^N个储存单元。

  一根地址总线是怎么连接到两个存储单元的??

什么是存储单元

  存储单元一般具有储存数据和读写数据的动能,一般以8位二进制作为一个储存单元,也就是一个字节。每个单元有一个地址,是一个整数编码,可以表示为二进制数。

什么是物理内存

  我们都知道32位的操作系统可以寻找4G大小的内存空间。因此我们安装一个32位系统在配置4G的内存条,看起来是一个完美的方案。可是,当我们安装好系统配好内存,打开任务管理器后,发现我们的物理内存只有3G左右,这是怎么回事呢?

  物理内存:在计算机体系中,物理内存不仅仅包括装在主板上的内存条(RAM),还包括主板BIOS芯片的ROM,显卡上的显存(RAM)和BIOS(ROM),以及各种设备上的储存空间。所以说我们的实际的物理内存空间达不到4G,也就是我们那1G空间是给一些输入输出缓存器等的不可访问的区域。

  

猜你喜欢

转载自blog.csdn.net/genzld/article/details/83590525