扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共6页)
●用VEX编码作为单独前缀
VEX的另一个优点就是前缀部分的命令格式是固定的,据称这使得命令解码比以前更容易。要是C4h是第4字节的话,C5h能必定处于ModRM,这样简单地计算出到第3字节的命令长度。同样为了今后命令格式的扩展,就不能让解码器的命令扩展更复杂。
实际AMD的SSE5格式也是基于相同理念的。SSE5格式使用3字节编码方式,最初的2b字节成为新的前缀,同样也使得命令解码比以前更容易。
但是SSE5的3字节编码方式不同于Intel的VEX编码方式。SSE5和AVX两种方式让解码器的互换变得更加复杂了,因此,这导致本来就功率消耗很大的解码器更加复杂。因此,AMD表示如果不普及SSE5的话,仍然存在SSE5和AVX相互转换的问题。
AMD考虑到这样的结果最终决定完全放弃SSE5编码,转而支持VEX编码方式。另外,AMD单独扩展XOP指令集,不用SSE5编码方式实现XOP,而是更接近VEX方式。总之,命令解码算法的转移很大程度上是针对CPU硬件方面来说的。
为了丰富Intel VEX编码,AMD将VEX作为扩展XOP的方式。但是AMD避开了在VEX中增加XOP的方法。
取而代之的是,AMD采用了与VEX相同的编码方式,使用了另外的前缀。对于VEX来说,前缀部分使用的是C4h或者C5。而XOP前缀字节改成了8Fh。虽然前缀不同,但是有效负载部分的格式与VEX是相同的。
而且,可以根据8Fh下面字节的mmmmm值来判断是POP命令还是XOP(不到8就是POP命令)。基本上两种编码方式是大体相同的。XOP的解码命令能兼容像VEX这样的算法。前缀字节如果是C4h或者8Fh的话(且mmmmm值在8以上),可以判定之后的格式大体是相同的,且使用对应的相同算法。因此,增加新的XOP指令集,相应地可以提高简化性。
AVX和XOP的命令格式(点击放大)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者