零壹与或非分享 http://blog.sciencenet.cn/u/dthome9180 站得更高,才能望得更;远看得更细,才能找到好草

博文

微处理器指令系统漫谈(10):并行

已有 7597 次阅读 2019-8-29 14:48 |个人分类:观点评述|系统分类:科普集锦| 处理器, 指令

PowrPC在1993年发布后,基本上就没有面向桌面和服务器市场的新型指令系统出现了。各大处理器厂商开始在三个方面展开竞争,提高处理器的性能,主要是多发射推测式乱序执行机制(指令级并行ILP)、Cache层次结构(存储级并行MLP)和SIMD扩展指令(数据并行)。前两个属于处理器微体系结构的范畴,可参考John P. Shen和M. Lapasti的《Modern Processor Design: Fundamentals of Superscalar Processor》一书。

2003年CAQA第3版仍然将指令系统原理这部分放在了正文的第二章,第4版之后所有指令系统的内容都放在附录中了。CAQA第3版还有一个比较大的变化,就是增加了DSP/Media处理器指令的介绍,在第二章专门介绍了Trimedia TM32这个多媒体处理器,而在第4版之后这部分又消失了。另外在附录的RISC综述中增加了各大指令系统SIMD扩展指令的内容,如下图所示。

image.png

我们看到5大RISC指令系统都增加了SIMD指令扩展,最早的是1995年PA-RISC MAX2,最晚的是2000年PowerPC AltiVec。这类指令的特点是数据并行,32位字可以包含4个1字节数据和2个半字数据,在一个操作码的命令下并行运算,产生多个结果放入一个32位字中。如果是64位指令系统,可以放更多的字节数据和半字数据。这样做的背景是,在数字信号处理、图形计算和多媒体应用中,数据往往是比较短的1字节或2字节类型,而相邻数据的计算往往相同。这样做的好处是提高性能,一条指令做以往多个指令的事情,还可以提高访存带宽。

最早出现的文章是之前提过的HP的Ruby Lee,在1995年IEEE Micro杂志上发表的论文【1】。之后Sparc、Intel和PowerPC也分别提出了自己的SIMD扩展指令【2】。从上表中我们还能看出,又是Alpha的指令扩展最简单,“频率至上”的大旗抗上就不放下了。Intel也对MMX非常重视,分别在IEEE Micro和ACM通讯上发表两篇文章介绍MMX扩展指令,而且MMX也大受欢迎,取得了商业上巨大的成功和社会影响力。【3】【4】Intel在后继相继推出SSE系列和AVX指令系统扩展。

image.png

数据并行的好处一幕了然,2000年代后期兴起的GPGPU(向量计算)和2010年中期兴起的TPU(张量/矩阵计算)等等都是数据并行的进一步发展。

SIMD扩展指令的另一个好处是代码密度大,之前需要多次循环的功能,现在一条指令就实现了,静态和动态指令数目等大大降低。SIMD扩展指令可谓有百利而无一害,可能编译稍微难做一些,但问题不大,大不了手写汇编加速函数库。

SIMD扩展指令一条指令进行多个数据计算,包括CICS指令也是一条指令多个操作。那么前面讲过的CPU性能公式就不太适合比较不同指令系统处理器的性能了,IPC或CPI中I指的是简单RISC单周期指令。有学者撰文解决了这个问题【5】。对于相同算法和相同高级语言写出的程序,不同指令系统的指令(4字节)条数不一样,但总体上所需要做的基本操作数量几乎是恒定的,因此CPU性能公式可以写成

Perf. = 1/Time = f / (#instr X OPI X CPO)= f X OPC / ( #instr X OPI)

这里OPI是每条指令字(4字节)包含的基本运算操作,是指令系统本身特有特性。

OPC和CPO指得处理器每周期完成的基本操作数,是微结构所带来的性能。

Intel这种CISC处理器就前端将复杂指令翻译成简单RISC微操作然后再用RISC超标量执行的。用这个公式我们就可以比较不同指令系统处理器之间的性能了。可以看出在微操作发射宽度和流水线深度和频率相似的情况下,往往复杂指令代码密度大,取指带宽利用率高,会获得更好的性能,当前仅存的x86/arm/power都有类似的特性,每指令字的平均基本操作数目多。


【1】Lee, R. B. 1995. "Accelerating multimedia with enhanced microprocessors." IEEE Micro 15(2): 22-32.

【2】Diefendorff, K., et al. 2000. "AltiVec extension to PowerPC accelerates media processing." IEEE Micro 20(2): 85-95.

【3】Peleg, A. and U. Weiser. 1996. "MMX technology extension to the Intel architecture." IEEE Micro 16(4): 42-50.

【4】Peleg, A., et al. 1997. "Intel MMX for multimedia PCs." Commun. ACM 40(1): 24-38.

【5】Sima, D. 2004. "Decisive aspects in the evolution of microprocessors." Proceedings of the IEEE 92(12): 1896-1926.



https://blog.sciencenet.cn/blog-102148-1195751.html

上一篇:处理器指令系统漫谈(9):老大
下一篇:处理器指令系统漫谈(11):功耗
收藏 IP: 114.246.164.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-24 01:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部