基于MIPS32架构三角函数指令集扩展的设计与实现
2021-06-01李正平
合肥工业大学学报(自然科学版) 2021年5期
李正平,高 杨
(安徽大学 电子信息工程学院,安徽 合肥 230601)
0 引 言
电子通信技术的迅速发展使得人们对数字系统实时性和准确性提出了更高的要求,人们需要精度更高,频率更快的系统来处理数字信号。然而,基于软件处理数字信号会消耗大量的时钟周期,无法满足实时性要求;使用硬件加速器虽然能够减少时钟周期,但是加速器缺乏灵活性且硬件资源消耗得比较多,在通用的处理器上针对特定的应用领域扩展指令集已经成为了两者折中的方式[1-2]。本文提出了基于MIPS商用处理器架构,CORDIC算法指令集扩展的设计与实现。
1 CORDIC算法及其特点
CORDIC算法的主要思想是在坐标系中不断旋转特定的角度,使得旋转角度的累加值不断逼近待计算的角度[3]。该算法的最大优势在于可以通过简单移位运算替代复杂的数学运算,便于硬件实现[4]。文献[5]对CORDIC算法进行统一的整理,给出求解初等函数的统一公式,即
xi=K{xi-1cos(αm1/2)+yi-1m1/2sin(αm1/2)},
yi=K{yi-1cos(αm1/2)-xi-1m-1/2sin(αm1/2)},
zi=zi-1+α
(1)
αi=tan-1(2-i)
(2)
(3)
其中:α为每次逼近时需要旋转的角度;i≥0为迭代的次数;K为初值常数,和迭代的次数相关;x0、y0为旋转起始点的坐标;z0为旋转起始点与x轴的夹角;zn为迭代n次角度的累加值。
2 cordic指令集扩展
2.1 MIPS32商用处理器流水线结构
处理器的内部结构如图1所示,和经典的五级流水[6]不同的是,该处理器采用了四级流水,将五级流水的译码和执行2个步骤合并成一步完成,可以同时处理4条指令的4个不同阶段。处理器内部含有多个功能部件,比如乘法部件、除法部件以及本文新增加的三角运算部件。……
登录APP查看全文