1.一种基于掩码的数据反转桶形移位器,其特征在于:它包括三条数据通道,第一条数据通道为移位通道,数据先经过一次数据次序反转模块,对其循环右移,而后通过YMASK模块对其操作方式选择,接着通过TMASK模块对其实现操作类型选择,最后再通过数据次序反转模块,第二条数据通道为生成零标识位的数据通道,数据依次通过FMASK模块、PMASK模块以及ZMASK模块后生成零标识位,第三条数据通道为溢出标识位的数据通道。
2.根据权利要求1所述的基于掩码的数据反转桶形移位器,其特征在于所述FMASK模块的功能为:对于64×1操作,生成的64位输出fmask[63:0]由首b位‘0’和尾64-b位‘1’组成;对于32×2操作,生成的64位输出fmask[63:0]由2组首b位‘0’和尾32-b位‘1’组成;对于16×4操作,生成的64位输出fmask[63:0]由4组首b位‘0’和尾16-b位‘1’组成。
3、根据权利要求1或2所述的基于掩码的数据反转桶形移位器,其特征在于所述PMASK模块用来区分操作类型,即若是循环移位,则pmask为全1,若是算术和逻辑移位则pmask=fmask,如下式(1)
pmaski=fmaski+rotate (0≤i≤63) (1)。
4.根据权利要求3所述的基于掩码的数据反转桶形移位器,其特征在于所述ZMASK模块用来吸收未移出的数据,屏蔽已移出的数据,zmask模块中的算法可由式(2)至式(6)给出,其中en16、en32和en64分别表示16×4、32×2和64×1模式,p为表示pmask模块的简写:
(0<i≤63,且i≠16,32,48) (6)。
5.根据权利要求4所述的基于掩码的数据反转桶形移位器,其特征在于所述YMASK模块用来选择移位模式,即是64×1模式、32×2模式还是16×4模式,ymask模块中的算法可由下式(7)至式(10)给出,以下各式中,yrr表示循环右移后的输出,当i+32≥64时,则用对i+32以64为模取的余数代替,当i+48≥64时,则用对i+48以64为模取的余数代替:
y64i=yrri (7)
ymaski=y64i·en64+y32i·en32+y16i·en16 (0≤i≤63) (10)。