资源描述:
《基于AltiVec技术的浮点乘加单元的设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机测量与控制.2010.18(1)设计与应用ComputerMeasurement&Control153文章编号:16714598(2010)01015304中图分类号:TP39文献标识码:A基于AltiVec技术的浮点乘加单元的设计赵明亮,樊晓桠,黄小平,姚涛(西北工业大学航空微电子中心,陕西西安710065)摘要:AltiVec技术是为提高PowerPC的向量处理能力而对PowerPC指令集体系结构的扩展;浮点乘加单元是向量处理单元的主要构成部分,设计一种基于AltiVec技术
2、的向量浮点乘加单元;在基本浮点乘加器的基础上,提出了java模式下对非规格化数的预规格化处理;设计采用了一种半并行的结构,与传统的全并行结构相比可以节省一半的硬件面积;时钟频率为266MHz时,java模式下5拍可以完成,非java模式下4拍可以完成。关键词:AltiVec;浮点乘加器;java模式;预规格化DesignofFloatingPointMultiplyAddFusedUnitBasedonAltiVecTechnologyZhaoMingliang,FanXiaoya,HuangXiaoping,Y
3、aoTao(AviationMicroelectronicsCenterinNorthwesternPolytechnicalUniversity,Xian710065,China)Abstract:AltiVectechnologyisanextensiontothePowerPCInstructionSetArchitecturetoenhancetheperformanceinvectorprocessing.Floatingpointmultiplyaddfused(MAF)unitisamainc
4、omponentofthevectorprocessingunit.ThispaperpresentsavectorfloatingpointMAFunitbasedonAltiVectechnology.Prenormalizationlogicisaddedtotraditionalfloatingpointstructuretodealwithdenormalizednumberinjavamode.Italsoproposesasemiparallelstructuretoconstructtheve
5、ctorfloatingpointMAFunit,anditwillhavea50%reductioninareacomparedwithtraditionalfullparallelstructure.Itneedfiveclockcyclesinjavamode,fourclockcyclesinnonjavamode,underclockrateof266MHZ.Keywords:AltiVec;floatingpointmultiplyaddfused;javamode;prenormalizat
6、ion0引言1单精度浮点乘加部件设计AltiVec技术是对PowerPC指令集体系结构的扩展,其目先设计一个单精度的浮点乘加部件,然后以此来搭建向量的是提高PowerPC的向量处理能力以提供对多媒体处理的支浮点乘加单元。持。该技术采用128位的数据宽度,所以提供了一个新的寄存11乘加操作简介器文件,包含32个128位的面向向量处理的寄存器。其128乘加融合操作就是将A+BC看作一个整体的、不需要位数据宽度可分为16个字节、8个半字、4个字以及4个单精中间结果舍入的操作。在本文中A、B、C都是符合IEEE75
7、4度浮点数。AltiVec技术在PowerPC原有指令集的基础上增加标准的单精度浮点数,即浮点数M表示为1位符号位sm,8了162条向量处理指令,包括乘加融合(MultiplyAddFused)位偏移指数位em,以及24位尾数位X。指令等。乘加融合操作有以下3个特点:在向量处理中矩阵相乘和求点积的运算是很常见的,而这(1)做A+BC运算只需要进行1次舍入,而不是通常些运算最终都可以归结为乘加操作。IBMRS/6000系统首先采用的先做乘法再做加法时的两次。提供了乘加融合指令。现在很多浮点处理单元中也都普遍采用(2
8、)相对于单独做乘法和加法而言,通过共享部分硬件乘了乘加部件。由于在AltiVec向量处理单元中数据宽度大,一加融合操作的执行延迟会较小并且所需要的硬件面积也会条指令要对4个单精度浮点数进行操作,所以对乘加单元的面较小。积要求尤其重要。如何设计一个在时序和功能上满足要求,同(3)通过将操作数A设置为0可以实现浮点乘法运算;时又充分节省面积的向量浮