精简指令集,计算机CPU的一种设计模式,也被称为RISC(Reduced Instruction Set Computing 的缩写)。这种CPU指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、CPU的实现细节对于机器级程序是可见的等等。RISC设计的根本原则是针对流水线的优化。
复杂指令集,计算机CPU的一种设计模式,也被称为CISC(Complex Instruction Set Computer的缩写)。这种CPU指令集的特点是指令数目较多,每条指令专有功能、执行时间较长。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。
以上看出 流水线级越多似乎性能也是越好。大概是如此的,但是凡事必有利有弊。
比如流水线如果无限的增大,那么管理和调度起来就越困难。当遇到资源冲突的时候需要等待的步骤和时间也越久。流水线的状态也越混乱。一旦出现错误,需要处理的资源和数据也越多。
所以要根据流水的管理技术,电路的承载能力来搭配流水线的数量。
。
目前在CPU技术中 还有一向能力叫代码预处理。就是在代码执行之前,先预先优化和准备一下资源,或者编排一些不会冲突资源的并行代码。比如我们要准备做饭了,无论我们从库存(缓存,内存)中运输米或者菜到厨房都是需要时间和动作的。那么我们如果预先审视一下菜单,在厨房(CPU寄存器)控件允许的情况下一次性多拿米菜出来,那么我们以后的流水线就可以省去一些取材料的时间。高级的预处理还可以判断米菜的比例。或者可以预见在什么时候流水线会出现空闲,此时让这个流水线去继续搬运米和菜。越高级的架构,这个预处理的能力也越好,当然也需要编译的程序遵循一个预处理的规则。比如我们要作的菜叫“青椒尖椒伴香菜”,我们可以预先准备青椒尖椒和香菜。但是如果叫“老虎菜”可能就会出现预处理失败,到了运行的时候才发现老虎没用,再去取青椒尖椒和香菜。还有就是比如做菜和温酒并不冲突。在程序里做菜和温酒可能是有前后顺序的,但是CPU的预处理能力可以改变它们,使做菜的同时去温酒。
所以相当多的游戏和一些高性能的程序在开发完成后并不是使用通用的编译器去编译。而是使用针对性的编译器去处理,这样出来的程序会更快的执行。所以我们可以在很多游戏的LOGO见到 NV is mean the way。