欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编程启源 第二章 如厕真传

程序员文章站 2022-05-31 19:47:50
...
  古人云:“真传一句话,假传万卷书”。万有引力复杂不,只不过是一个苹果落地那么简单。拿最复杂的CPU来说吧,也只不过如同一座厕所而已。果真如此吗?计算机难学的原因在这里啊,太恶心了!出家人不打狂语,这是真的,有可能图灵大师就是在如厕时想出来的。

  例如:一座厕所里,有一个排队机,一个便池、一个洗手盆、一个烘手器。一个人如所的流程:首先是排号、其次是解手、再次是洗手、最后是烘手,如厕完毕,等待下一个人。这就如同执行一条CPU指令。即一个时钟周期。如厕的人就是CPU要处理的数据。厕所就是CPU,便池相当于ALU。最原始的CPU大体也就是这么个样子,基于顺序操作的。虽然能工作但是很慢,不太实用。因为一个时钟周期只能执行一条CPU指令,并且需要执行四步,排号、解手、洗手、烘手,所以时钟周期要足够长才可以,以保证这四步的执行。

  基于顺序设计的CPU,并没有发挥这座厕所的最大性能。一个更好的设计是在顺序设计的基础上,设计一个按流水线执行的CPU。既然是按顺,那顺序是不能变的,就是一个一个指令地执行。那要想使执行指令的时间减少(时钟周期),就要用到计算机中,亘古不变的真理:“以空间换时间”。我们把顺序执行的四步,看做一条流水线,按这个标准再增加三条流水线,总共四条,这样我们能同时执行四条指令,效率增加了四倍。等等,那顺序怎么办,好办,共用一台排队机就可以了。每一步的执行时间就是一个时钟周期了,代价就是增加了一些设施(空间)。这是一个多么精巧的设计啊!关于厕所文化,还没有完,它会始终与你同在。

  这是一个简单又形像的比喻,虽然任何修辞都会严重遮蔽科学那神圣的光环,但是足以作为一个模型,帮助我们分析解决编程可能遇到的问题,也足以说明“法于时空,和于数理”对编程的重要性。