论文部分内容阅读
为提高嵌入式设备对多媒体应用的处理能力,多家处理器厂商都在其主处理器上增加SIMD协处理器指令子集。AltiVec就是PowerPC处理器的SIMD协处理器指令子集,用于提升PowerPC处理器的数据级并行处理能力。相比较于传统的PC设备,嵌入式设备对面积和功耗的需求更为苛刻,如何在速度、面积、功耗这三者进行折中就成为AltiVec的设计重点所在。向量浮点功能单元是AltiVec指令中重要的指令子集,其性能、面积和功耗直接决定了整个AltiVec的设计优劣。本文提出了一个可流水、四周期的向量浮点功能单元,该浮点功能单元以MAF为核心数据通路,整个MAF分为四个执行阶段:乘法阶段、加法阶段、规格化阶段和舍入阶段。其他大部分的指令会复用该MAF数据通路,保证性能的前提下尽可能的减少了面积开销。在面积和功耗方面,采取了两级面积复用策略来减少整个向量浮点功能单元的面积。通过两级面积复用策略,在保证向量浮点功能单元可流水的前提下,最大程度的减少了面积开销,功耗也随之降低。在功能单元的验证上,采用SystemVerilog验证平台对功能单元进行验证,确保每条指令的功能准确无误。最后,采用DesignCompiler,基于SMIC 0.13um工艺对功能单元进行综合,相比于未进行两级面积复用策略的方法相比,在速度相差不到3%的情况下,面积节省了24%。在顶层通路的设计中,AltiVec通过APU接口接收来自PowerPC主核的指令,译码时产生功能单元的片选信号,同时在译码时进行指令相关性检测、旁路控制检测。一个周期读操作数,若干周期执行,一个周期写回。AltiVec有独立的向量寄存器堆,向量寄存器堆中有32个128-bit的向量寄存器,三个读端口保证了同时可以读取三个向量操作数,五个写端口保证了峰值情况下可同时写回五个向量结果。