
也许每个人都熟悉这个问题. 实际安装了系统并使用计算机的朋友可能会遇到这种情况: 他们的计算机配备了4G记忆棒,但是安装系统后,他们发现计算机仅显示3.2可用内存,其他内存在哪里. 走?互联网上的许多朋友也提供了一些说明,我认为其中大部分都没有清楚地说明. 今天,我们将探讨具体原因.
在此之前,让我们学习一些有关计算机系统结构和PC硬件的知识.
公交车结构和主板组成
说到公共汽车,每个人对它都不陌生,每个人都必须对付它. 使用USB闪存驱动器复制数据时,必须首先通过USB接口将USB闪存驱动器连接到计算机以进行复制. USB接口实际上是一种总线,通常称为USB总线(也称为通用串行总线). 很久以前没有USB总线了. 那时,每个设备都使用自己的接口标准. 举一个最简单的例子: 鼠标制造商使用特定于鼠标的接口,而键盘制造商使用特定于键盘的接口. 如果是这样,则PC必须提供许多接口,这会增加硬件设计的难度和成本. 在USB接口出现之前,它统一了许多设备接口的标准,这不仅使用户可以轻松连接某些设备,而且还增强了PC的可扩展性. 因此,现在可以将您看到的鼠标,键盘,U盘,打印机等通过USB接口直接插入计算机.
总线是计算机系统中非常重要的概念. 正是由于总线,所有组件才能一起工作并正常协作. 早在PC中,就采用了三总线结构,即: 数据总线,地址总线和控制总线. 它们用于传输不同类型的数据,数据总线用于传输数据,地址总线用于传输地址,控制总线用于传输某些控制信号. 下图清楚地显示了三总线结构:

img
随着时代的发展,这种简单的总线结构逐渐被淘汰. 下图是现代计算中使用的结构:
img
实际上,这也是现代主板采用的结构. 当然,某些部分可能会略有不同(总体结构相似). 仔细观察主板组成的朋友可能对上图很熟悉. 主板上有两个主要部分: 北桥(也称为主机桥)和南桥. 北桥主要负责CPU,内存和图形卡的数据传输,而南桥主要负责I / O设备,外部存储设备和BIOS之间的通信. 现在有些主板没有北桥,因为芯片制造商已经将北桥的功能直接集成到了CPU中(但暂时,我们将在上图中讨论该模型).
在上图中,我没有画数据总线和地址总线等,因为它们集成在某些总线标准中,例如PCI总线,地址总线和数据总线始终是分时复用的使用(即,如果PCI总线具有32位数据总线,则此32位总线可以在某一时刻充当数据总线,并在下一时刻充当地址总线). 有些总线同时提供数据总线和地址总线.

让我们谈谈主要巴士和南北桥的功能:
FSB总线: 前端总线(Front Side Bus),CPU和北桥之间的桥接器,CPU和北桥所传输的所有数据都必须通过FSB总线. 可以说,FSB总线的频率直接影响CPU访问内存的速度.
北桥: 北桥是CPU,内存,图形卡和其他组件之间进行数据交换的唯一桥,这意味着CPU必须通过北桥才能与任何其他部件通信. 存储器控制器通常集成在北桥芯片中,以控制与存储器的通信. 北桥在当前主板上不再可见,其功能已集成到CPU中.
PCI总线: PCI总线是一种高性能的本地总线,不受CPU的限制,并在CPU和设备之间形成高速通道. 例如,当前的图形卡通常使用PCI插槽,并且PCI总线具有较快的传输速度,可以很好地允许图形卡和CPU交换数据.
南桥: 主要负责I / O设备之间的通信. 如果CPU要访问设备,则必须通过南桥芯片.
了解了这些基本知识之后,我们来解释一下为什么32位系统仅支持最大4GB的内存.

原因
使用计算机时,支持的最大内存由操作系统和硬件确定.
让我们先谈谈硬件因素. 上面已经提到了地址总线. 计算机中CPU地址总线的数量决定了CPU的寻址范围. 对应于地址总线的该地址称为物理地址. 如果CPU具有32条地址总线(通常32位CPU的地址总线为32位,而某些32位CPU地址总线为36位,例如服务器的CPU),则可寻址物理地址范围是232 = 4GB(此处要注意一点,我们通常指的32位CPU和64位CPU指的是CPU一次可以处理的数据宽度,即位宽度,而不是数字地址总线). 由于出现了64位CPU,因此可以一次处理64位数据. 地址总线通常使用36位或40位(即CPU可以寻址的物理地址空间为64GB或1T). 当CPU访问任何其他组件时,它需要一个地址,就像传递快递的快递员一样. 没有地址,他不知道送货到哪里. 例如,如果CPU要从视频存储单元读取数据,则它必须知道可以读取读取的视频存储单元的实际物理地址. 同样,要从存储条上的存储单元读取数据,还必须知道存储单元的物理地址. 换句话说,CPU必须知道其物理地址才能访问任何存储单元.
用户使用计算机时可以访问的最大内存不仅取决于CPU地址总线的位数,还取决于操作系统的实现. 实际上,当用户使用计算机时,进程访问的地址是逻辑地址,而不是实际的物理地址. 该逻辑地址由操作系统提供. 在执行指令之前,CPU需要将指令的逻辑地址转换为物理地址. 仅用于向相应的存储单元读取或写入数据(请注意,逻辑地址和物理地址是一一对应的).
对于32位Windows操作系统,逻辑地址编码中使用的地址位数为32位,因此操作系统提供的逻辑地址寻址范围为4GB,并且在intel x86架构下,内存为使用的映射技术(内存映射的I / O,MMIO),也就是说,应该划分4GB逻辑地址的一部分,并与BIOS ROM,CPU寄存器,I / O设备和则逻辑地址可以为. 映射内存条物理地址的空间绝对不是4GB. 请看下面的图片以了解:

img
因此,当我们安装32位Windows操作系统时,即使我们购买了4GB的记忆棒,操作系统的实际访问量也必须小于4GB,一般情况下约为3.2GB. 如果地址总线位数不是32位(例如20位),则CPU可以寻址1MB的物理地址空间. 这时,即使操作系统可以支持4GB的逻辑地址空间,并且假设记忆棒为4GB,也可以将其设置为: 用户访问的空间不会大于1MB(当然,虚拟内存技术不是因此,用户可以访问的最大内存空间由硬件和操作系统共同决定,并且都有限制.
对于64位操作系统,其逻辑地址编码中使用的地址位数为40位,最多可支持1T逻辑地址空间. 考虑一种情况. 如果CPU是64位,地址总线位是40位,操作系统也是64位,逻辑地址编码使用的地址位也是40位,并且记忆棒的大小是64GB,那么记忆棒?可以使用全部64GB吗?答案并不一定,因为要考虑的另一个因素是内存控制器,该内存控制器位于北桥(现在基本上位于CPU中),连接到内存的内存控制器的实际地址线决定了支持的内存容量,即如果实际连接到内存控制器和内存插槽之间的地址线没有40位,则64GB内存条的存储空间将无法充分利用. 当然,几乎不考虑内存控制器,因为现在大多数内存控制器至少使用40位地址总线.
关于这个问题已经讲了很多,对进一步研究感兴趣的朋友可以自己检查更多信息.
参考地址
如果您喜欢我的文章,可以关注您的个人订阅号. 请随时留言和交流. 如果您想加入微信小组一起讨论,请添加管理员Jane Stack Culture-Little Assistant(lastpass4u),他将把您加入小组.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-302697-1.html
╯□╰)o