而精简指令集与复杂指令集的区别,可以打篮球来的形容。
如复杂指令集的打篮球动作,如拿球→弯腰→抬头→跳跃→抛球→篮球正中球心→完成。
这一系列动作,如果是复杂指令集,那只需要一个指令就能完成这一系列动作。
但如果是精简指令集,那就是将那复杂的打篮球动作分成无数个动作。
如“拿球”是一个动作,“弯腰”是一个动作,“抬头”是一个动作。
所以所谓的精简指令集,就是一种将复杂的动作分解成若干的动作的指令集。
从理论上来说,复杂指令集似乎更难设计,而精简指令集的设计更加简单,但实际上却是相反的。
因为复杂指令集容易设置,只要不停的堆积指令集就行了。
而精简指令集看上去只是要设计一个“拿球”的动作,相比复杂指令集要完成一个系列的动作,这似乎更加轻松了许多。
但因为精简指令集追求高效率、高精简,所以精简指令集的设计是十分的慎重,需要考虑方方面面。
这方方面面的考虑下来,精简指令集就十分的难设计。
如果只是普通,甚至可能有略微冲突的指令集很容易设计,但想要设计得完美,这就不是那么容易了。
如果胡乱地硬塞很多指令下去,那么精简指令集也就不负请精简两个字。
而是变成的复杂指令集,那时的实际效率也许还比不上人家的复杂指令集呢。
所以精简指令集的指令,也就是拿球的动作是什么样子,怎么拿等等都是需要慎重考虑。
在这其中,精简指令集不可能一设计出来就是完美的。
后天经过时间与使用,肯定会发现有些指令是多余没有设计的必要,那么该指令集就会被剔除出去,然后通过软件层面解决。
这样的结果就是造成精简指令集不断的更新换代,精简指令集的设计也是一路突飞猛进。
来源4:http://www.31xiaoshuo.com/190/190175/72091348.html