支持媒体处理的子字绝对值单元设计与实现*
2012-07-25开耀文高德远
微处理机 2012年4期
开耀文,高德远,张 萌
(西北工业大学计算机学院,西安710129)
1 前言
当前,为了满足多媒体应用的需要,很多通用处理器提供了针对多媒体应用的扩展指令。如Intel的MMX,AMD 的3DNow!,以及 Motorola的 AltiVec等。
多媒体应用具有两个基本特点:数据并行度高和数据精度要求低[1]。子字并行技术是一种单指令流多数据流技术,它的原理是一条指令中的数据可以拆分成多个子字并行执行。例如AltiVec指令集中,参与计算的操作数位数为128位,这些操作数可以选择4个32位字的,或者8个16位半字,或者16个8位字节进行运算。子字并行运算的特点正好与多媒体应用的特点相符合,是一种有效提高多媒体应用性能的手段。
在图像处理中,两个数的绝对值运算|A-B|得到了广泛应用,例如视频中的运动估计和预测算法中就采用了大量的这种绝对值运算。在没有实现绝对值单元的通用处理器中,实现一个无符号绝对值运算需要进行A-B和B-A运算,并将结果相或,实现一个有符号绝对值运算则需要更复杂的步骤。而采用了绝对值单元的处理器只需要一条指令就能实现通用处理器中需要多条指令实现的绝对值运算。绝对值单元在减少计算指令数的同时减少了访存次数,因为绝对值运算只需要一次取出操作数做运算,而不用像通用处理器那样需要多次取数。绝对值运算是建立在普通减法运算基础上的,通过扩展原有加法器实现绝对值单元可以使普通的加法器与绝对值单元共享一个计算单元,这样实现绝对值单元的代价是较小的。……
登录APP查看全文
