VEX解决x86 CPU瓶颈
AVX的VEX的编码系统,从某一侧面上也反应了Intel处理器今后的进化趋势,因为它解决了x86系列CPU在decoding上的不足。Core MA有着4条命令的执行通道,不过front end却存在着不足,首先L1缓存fetch端口也有着16字节的长度。而fetch的命令次数也被得到了限制。首先IA-32/Intel 64命令的puridekodo也有着先天的瓶颈,而操作数和地址长度的指令prefix“LCP(Length Changing Prefixes),使得puridekodo变得更慢,所以必须要改变长标注的算法。
fetch&puridekodo的最优化设计
Core MA在puridekodo&decoding方面的不足,从根本上来看是IA-32/Intel 64指令集架构本身的问题。IA-32/Intel 64架构为了增强长命令而增设的缓存,使命令fetch拜年的更长,并且更加复杂的命令格式也由此产生。RISC(Reduced Instruction Set Computer)的命令格式也决定了其长度,decoding虽然容易,但x86系CPU也就要以牺牲资源为代价,同时也带来了电力的额外消耗。
实际上最新的Nehalem也有着类似Core MA的不足,从某种程度上来看也延续了其不足,如果明确了这一问题的话,那么Nehalem就必须要改进,其中16bytesfetch和puridekodo等方面的改进就势在必行了。而改进所需要的庞大晶体管增加,也会带来功耗的增加。
Nehalem的fetch&decoding
Nehalem的设计其实存在着疑问,不过从VEX格式来分析的话其意图就非常明确了。Intel在完善了CPU的puridekodo&decoding硬件设计的同时,必须要改进指令格式本身。fetch的指令变短的同时,指令的标注却更加复杂了,而解决的唯一办法就是改进指令格式。