第13部分(第1/5 页)
在兼容的压力之下,各大公司设计新一代计算机的时候,不得不保留前代计算机的指令,在此基础上又要增加新指令。
如此一代代的传下来,计算机的指令集臃肿不堪,复杂无比,形成了一个流派叫做复杂指令集计算机(cisc)。
cisc的指令很多,最高可达800多条,源自于人们早期想将硬件软件化的想法。
当时硬件制造便宜,软件的费用越来越高,最终导致了软件危机。人们就梦想能制造一种机器,可以无障碍的识别、运行高级语言。
因此人们就不断的给计算机增加指令,好处是明显的,软件编译变的简单,整个六、七十年代是cisc的天下。
物极必反,cisc解决了软件危机,却没有想到便成了另一个怪物。
大量指令的存在极大的增加了系统的硬件复杂性,要知道多一个指令就得多上一对控制逻辑。
硬件开销太大,最终超过了当时科技的极限,硬件成本高不可攀。
穷则思变,有识之士开始反思这条路是不是错了。
正如兼容概念的提出一样,依然是ibm走在了前面,提出了著名的80/20法则,即20%的指令使用频度超过了80%,而其它80%的指令只有20%的使用率。
基于这个原理,各家宗师就提出了精简指令集电脑(risc)的概念
……公告:网文联赛本赛季海选阶段最后三周!未参加的小伙伴抓紧了!重磅奖金、成神机会等你来拿!点此参与……》
二十九
鱼冒泡:罪过,昨天喝了一天的酒!
risc宗师奉行简单就是美,,所有一干功能相似、特性重复的指令一概不要,而且所有长短不一的指令全部删除,指令定长,按使用率高低划分cpu处理优先级。
如果说risc但指令是正规军,精悍而有效率,那么cisc的指令就只能算是山寨了。
cisc的指令不分重要与否,一概取相同的cpu使用权限,也就是说cpu无论什么时候接受到请求,都得听下来处理,大大降低了效率。
等长的risc指令大大降低了硬件的复杂度,而且可以实现一项非常重要的技术——流水线。
普通的计算机处理数据的时候,就像工厂只有一个工人,来一个任务做一个任务,直到这件事完成,否则就得等待,浪费大量的cpu时间。
流水线技术则是将一件事情分为至少两个以上的步骤,risc一般则分为4到5个,如取指令、执行、输出等等,流水线是现代risc核心的一个重要设计,它极大地提高了性能。
对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(alu),写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。
按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作,完成第二条指令的前三步,在是运算器,完成第二条指令的后两部……很明显,当指令控制器工作时运算器基本上在休息,而当运算器在工作时指令控制器却在休息,造成了相当大的资源浪费。
解决方法很容易想到,当指令控制器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是。这样就形成了流水线系统,这是一条2级流水线。
这样cpu永远处于繁忙的状态,这就是流水线的原理,虽然执行一条指令的时间没有减少,但是输出结果的时间减少了很多,理论速度是不用流水线的2倍。
只要流水线不断,cpu就可以不停的输出结果。