计算机可以执行各种指令,而每一条指令都是以不同的数字为对象进行加、减、乘、除的操作。即使那些看上去与数学运算毫无关系的应用程序最终也是被转化成不同的数字进行处理。以字处理程序的单词拼写检查功能为例,如果我们错误的输入“teh”,计算机会提示正确的拼写形式应当为“the”。那么这一功能是如何转化成数字的呢?原来,我们所输入的每一个字母,包括空格在内,都被映射成不同的计算机代码。在ASCII代码中,字母“t”对应数字116,字母“e”和“h”分别对应数字101和104,这样,当我们输入“teh”时,计算机就会将其转化为数字序列116 101 104。而字处理程序的拼写检查功能就是针对不同的单词数字序列编写的检测程序,它会根据预先的设定,自动的把上述序列中的101和104的位置进行替换。CPU本身虽然不能识别任何单词,但是借助于快速和准确的数字运算能力,完全可以胜任任何复杂的文字处理操作。
知道了计算机完全是和数字打交道,也许我们会认为计算机的速度应当由数字运算的速度来决定。其实不然。在现实生活中,我们对2+2和154373 + 382549这两组不同的加法运算的反应时间会有相当大的不同,但是对计算机来说数字运算是其拿手好戏,无论多么复杂的运算,都可以在瞬间完成。
事实上,CPU的速度不是由处理单一指令所占用的时间来衡量,而是根据在一秒钟的时间内可以处理多少条指令来确定。以快餐店为例,在柜台前有多个顾客服务专柜,可以同时服务多位顾客。快餐店一般都是根据在一段时间内能够为多少为顾客提供服务来衡量自己的工作效率。也许某个顾客来到柜台前发现暂时没有自己所点的食品,只能先让排在后面的顾客购买。对这位顾客来说,快餐店的服务很慢,但是从整个快餐店的角度来看,并没有耽误对其他顾客的服务。
与上述方式相同,CPU被设计成可以传送各种程序,数据和指令。当处理某条指令所需的数据目前无法得到时,处理器会暂时把该指令放置在一旁等候相应的处理数据,而同时继续执行其它的程序指令。因此,CPU的速度是按照整个数据的吞吐量来确定的。


