鱼冒泡:罪过,昨天喝了一天的酒!
risc宗师奉行简单就是美,,所有一干功能相似、特性重复的指令一概不要,而且所有长短不一的指令全部删除,指令定长,按使用率高低划分cpu处理优先级。
如果说risc但指令是正规军,精悍而有效率,那么cisc的指令就只能算是山寨了。
cisc的指令不分重要与否,一概取相同的cpu使用权限,也就是说cpu无论什么时候接受到请求,都得听下来处理,大大降低了效率。
等长的risc指令大大降低了硬件的复杂度,而且可以实现一项非常重要的技术——流水线。
普通的计算机处理数据的时候,就像工厂只有一个工人,来一个任务做一个任务,直到这件事完成,否则就得等待,浪费大量的cpu时间。
流水线技术则是将一件事情分为至少两个以上的步骤,risc一般则分为4到5个,如取指令、执行、输出等等,流水线是现代risc核心的一个重要设计,它极大地提高了性能。
对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(a),写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。
按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作,完成第二条指令的前三步,在是运算器,完成第二条指令的后两部……很明显,当指令控制器工作时运算器基本上在休息,而当运算器在工作时指令控制器却在休息,造成了相当大的资源浪费。
解决方法很容易想到,当指令控制器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是。这样就形成了流水线系统,这是一条2级流水线。
这样cpu永远处于繁忙的状态,这就是流水线的原理,虽然执行一条指令的时间没有减少,但是输出结果的时间减少了很多,理论速度是不用流水线的2倍。
只要流水线不断,cpu就可以不停的输出结果。
计算所制造的757样机就是基于这个原理设计的,它排除了通常的两级微码控制方式,取而代之的是在硬件中直接执行一组精选的简单指令和优化的编译程序.这种特殊的编译程序通过对程序详细执行步骤进行重新安排,以便更有救地利用cpu资源来提高程序的运行速度,因为它放弃了对复杂指令系统执行微码的方式,这就有利于用硬连线控制系统来执行为数不多的简单指令。
虽然依然没有使用精简指令,但是流水的思想已经体现,貌似已经有了现代计算机的雏形。
曹长久一直试图影响王所,让他接受risc的思想,可惜王所总是用许多现实的问题难倒长久,让他哑口无言。
明明事先想好的先进的思想、充分地理由,却每每被王所轻易的驳倒,长久别提多郁闷了,索性不再参加757的硬件设计工作,只作编译器,落得个清闲,可以做自己的事情。
如果说cisc技术的复杂性在于硬件,在于处理单元控制器部分的设计与实现。risc技术的复杂性就在于软件,在于编译程序的编写与优化。
曹长久的编译程序就有效的弥补了757样机的缺点,将笨拙的程序组成了流水线能够识别的指令流,使得757样机从普通千万次每秒的计算速度稳定在了两千五百万次每秒。而且限于机器的速度极限,无法再提高,只能寄希望于757完全体了。