所谓虚拟地址空间,就是程序可以使用的虚拟地址的有效范围。虚拟地址和物理地址的映射关系由操作系统决定,相应地,虚拟地址空间的大小也由操作系统决定,但还会受到编译模式的影响。
这节我们先讲解 CPU,再讲解编译模式,让大家了解编译器是如何配合 CPU 来提高程序运行速度的。
CPU 的数据处理能力
CPU 是计算机的核心,决定了计算机的数据处理能力和寻址能力,也即决定了计算机的性能。CPU 一次(一个时钟内)能处理的数据的大小由寄存器的位数和数据总线的宽度(也即有多少根数据总线)决定,我们通常所说的多少位的 CPU,除了可以理解为寄存器的位数,也可以理解数据总线的宽度,通常情况下它们是相等的。
数据总线位于主板之上,不在 CPU 中,也不由 CPU 决定,严格来讲,这里应该说 CPU 能够支持的数据总线的最大根数,也即能够支持的最大数据处理能力,为了表达方便,本文才使用“CPU 的数据总线”这一说法。
数据总线和主频都是 CPU 的重要指标:数据总线决定了 CPU 单次的数据处理能力,主频决定了 CPU 单位时间内的数据处理次数,它们的乘积就是 CPU 单位时间内的数据处理量。
我们常常听说,CPU 主频在计算机的发展过程中飞速提升,从最初的几十 KHz,到后来的几百 MHz,再到现在的 4GHz,终于因为硅晶体的物理特性很难再提升,只能向多核方向发展。在这个过程中,CPU 的数据总线宽度也在成倍增长,从早期的 8 位、16 位,到后来的 32 位,现在我们计算机大部分都在使用 64 位 CPU。
需要注意的是