下面我们来模拟一下,CPU内部如果有某个晶体管损坏了,会发生什么事情。看图说话:
简化的CPU结构示意图
这里要引入一个封装的概念(本文的封装,不是指CPU生产过程中的封装)。特定的一些晶体管堆积结构的封装,意味着对外来说是一个整体,输入数据,经过密封处理,计算出结果,再输出数据。就像一个黑盒子一样。就像上图所示,整个CPU对外界来说,只是一个输入数据后能输出数据的黑盒;CPU内部每个完整的功能模块,例如一个逻辑运算单元,也可以看做是一个封装过的黑盒模块。
假设这时有个晶体管损坏了,如果它位于逻辑运算单元,那么理论上,整个逻辑运算单元就无法正常工作了,还好聪明的设计师早有预防。例如,逻辑运算单元B中有个晶体管损坏了,结果就是备用逻辑运算单元,来顶替它的工作,损坏的逻辑运算单元B,就被屏蔽了。带来的坏处是,线路长度的变化,导致时序出现误差,这意味着会拖累其他正在运算的逻辑单元,它们只好等待数据,结果就是数据的处理周期变长了,也就是实际性能下降了。
如果很不幸,这个损坏的晶体管在逻辑运算单元A这样的没有备用线路的地方,那么我们的CPU就无法正常工作了。
假设这个损坏的晶体管,位于寄存器里,结果就是这个损坏的寄存器就被屏蔽了,实际可用寄存器,就变小了,这也意味着我们CPU性能的下降。
CPU的性能因为这些原因而下降了,这很好理解。