12.13
1.如今所使用的微处理器设备的种类多样,从只有几千个逻辑门且时钟频率低于 1MHz 的价
值 1 美元的嵌入式设备,到有数十亿逻辑门且时钟频率达到千兆赫兹级别的桌面级设备。
一台包含数千个独立执行单元的大型计算机的尺寸可以与一个大房间相当,它消耗的电力
足够点亮一座小城市中所有的电灯。这很容易让人误以为这些种类繁多的计算设备之间的
联系不具有一般性。 但事实上,它们之间是有可利用的相似点的。毕竟,如果没有任何相
似点的话,编译器就无法为这么多处理器编译 C++ 代码了
所有这些被广泛使用的计算机都会执行存储在内存中的指令。指令所操作的数据也是存
储在内存中的。内存被分为许多小的字(word),这些字由若干位(bit)组成。其中一
小部分宝贵的内存字是寄存器(register),它们的名字被直接定义在机器指令中。其他
绝大多数内存字则都是以数值型的地址(address)命名的。每台计算机中都有一个特
殊的寄存器保存着下一条待执行的指令的地址。如果将内存看作一本书,那么执行地
址(execution address)就相当于指向要阅读的下一个单词的手指。执行单元(execution
unit,也被称为处理器、核心、CPU、运算器等其他名字)从内存中读取指令流,然后执
行它们。指令会告诉执行单元要从内存中读取(加载,取得)什么数据,如何处理数据,
以及将什么结果写入(存储、保存)到内存中。计算机是由遵守物理定律的设备组成的。
从内存地址读取数据和向内存地址写入数据是需要花费时间的,指令对数据进行操作也
是需要花费时间的。
除了这条基本原则外,就如每个计算机专业新生都知道的,计算机体系结构的“族谱”也
会不断地扩大。因为计算机体系结构是易变的,所以很难严格地测量出硬件行为在数值上
的规律。现代处理器做了许多不同的、交互的事情来提高指令执行速度,导致指令的执行
时间实际上变得难以确定。还有一个问题是,许多开发人员甚至无法准确地知道他们的代
码会运行在什么处理器上,多数情况下只能用试探法。