购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 计算机只会算加法

和很多人想象的不一样,如此强大的计算机,其实只会做加法运算,并不支持减法、乘法和除法的运算。当时,设计计算机有两个方案:一是计算机的运算器只支持加法;二是运算器同时支持加减乘除。

瑞说:“当然是同时支持加减乘除的运算器厉害呀!”

并不是,只支持加法的运算器在结构上要简单多了。结构简单意味着设计CPU的时候可以容纳更多的运算单元,这样就能让加法的运算速度加快很多很多。那是因为,CPU本身支持的每个功能对应地给程序员提供了一个指令,你可以理解为CPU提供的命令。这样的指令,CPU甚至会提供300~500个!早期的CPU倾向于提供更多的指令,后来发现这样做并不值得,有些指令用处不大,却占用了CPU宝贵的空间——去掉不常用的功能,可以给常用的部件留出更多的空间,加快运行速度。

还有一个问题,为了区分更多种类的指令,连标识每个指令的名字都会占用更多的空间,这样就造成运行程序变大、传输变慢。

瑞说:“所以,CPU功能强大,反倒会让运行变慢。”

是的,后来的CPU便努力减少指令的数量,支持很多指令的CPU被称为复杂指令系统。相应地,经过优化,只支持很少指令的CPU叫作精简指令系统。问题是,指令精简了,是不是很多功能就没有了?其实,那些CPU不支持的功能是可以用程序模拟出来的,模拟不出来的功能当然不能去掉。例如,CPU支持加法运算,但不支持乘法运算,我们是不是可以用多加几次来模拟出乘法呢?

瑞问:“本来乘法就是从加法发展出来的,减法也简单,加一个负数就是减法,可是除法没法用加法模拟吧?”

减法的模拟没有想象的那么简单,因为计算机存储器本身也存不了负数,所以需要特别处理。除法是可以用加法模拟的。现在我们不研究这个问题了,回头再来讨论。 TeA5cU8SDiTCnYWOFBlmXsiEdtjfsWqORvb/p8vo9CpQ7NVcUq6h9jrjbnXe2GGP

点击中间区域
呼出菜单
上一章
目录
下一章
×