CN101110015B - 基于掩码的数据反转桶形移位方法 - Google Patents

基于掩码的数据反转桶形移位方法 Download PDF

Info

Publication number
CN101110015B
CN101110015B CN2007100356529A CN200710035652A CN101110015B CN 101110015 B CN101110015 B CN 101110015B CN 2007100356529 A CN2007100356529 A CN 2007100356529A CN 200710035652 A CN200710035652 A CN 200710035652A CN 101110015 B CN101110015 B CN 101110015B
Authority
CN
China
Prior art keywords
module
data
centerdot
fmask
data channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007100356529A
Other languages
English (en)
Other versions
CN101110015A (zh
Inventor
陈吉华
喻仁峰
李少青
张民选
赵振宇
陈怒兴
马剑武
徐炜遐
吴宏
孙岩
贺鹏
董兰飞
刘婷
欧阳干
何小威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN2007100356529A priority Critical patent/CN101110015B/zh
Publication of CN101110015A publication Critical patent/CN101110015A/zh
Application granted granted Critical
Publication of CN101110015B publication Critical patent/CN101110015B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于掩码的数据反转桶形移位方法,它包括三条数据通道,第一条数据通道为移位通道,数据先经过一次数据次序反转模块,对其循环右移,而后通过YMASK模块对其操作方式选择,接着通过TMASK模块对其实现操作类型选择,最后再通过数据次序反转模块,第二条数据通道为生成零标识位的数据通道,数据依次通过FMASK模块、PMASK模块以及ZMASK模块后生成零标识位,第三条数据通道为溢出标识位的数据通道。本发明是一种结构简单、适用范围广、可配置性好、移位速度快、精度高的基于掩码的数据反转桶形移位方法。

Description

基于掩码的数据反转桶形移位方法
技术领域
本发明主要涉及到微处理器中关键运算部件-移位器的设计领域,特指一种基于掩码的数据反转桶形移位器。
背景技术
移位器被集成在各类微处理器中,用来完成微处理器中要执行的各种移位指令和微操作。移位器被集成在处理器中的主要作用有:完成地址产生以及算术逻辑运算等功能,在浮点运算、多媒体数字信号处理、加密/解密、串/并转换、随机数生成以及校验都有广泛的应用。移位运算既属于算术运算,又属于逻辑运算。任何计算机都含有移位指令。作为一种指令,它可以独立地被执行;作为一种微操作,它又可以伴随其他运算型指令之中被执行。移位指令或操作主要包括算术左移和右移、逻辑左移和右移以及循环左移和右移。
当前高性能移位器主要有桶形移位器和对数移位器。桶形移位器如图1所示,对数移位器如图2所示。这类移位器主要是基于选择开关实现的。在这两种移位器中,桶形移位器是目前各种微处理器中最常用的功能单元。
但是,当前的桶形移位器和对数移位器有以下缺点:
(1).一般只适合于单一移位的功能,对于多种移位功能实现复杂;
(2).为了在一个移位器中实现多种移位功能,需要通过对基于选择开关移位器作一定的修改来实现,这种实现方法代价较高,结构复杂。
发明内容
本发明要解决的问题就在于:针对现有技术存在的技术问题,本发明提供一种结构简单、适用范围广、可配置性好、移位速度快、精度高的基于掩码的数据反转桶形移位器。
为解决上述技术问题,本发明提出的解决方案为:一种基于掩码的数据反转桶形移位器,其特征在于:它包括三条数据通道,第一条数据通道为移位通道,数据先经过一次数据次序反转模块,对其循环右移,而后通过YMASK模块对其操作方式选择,接着通过TMASK模块对其实现操作类型选择,最后再通过数据次序反转模块,第二条数据通道为生成零标识位的数据通道,数据依次通过FMASK模块、PMASK模块以及ZMASK模块后生成零标识位,第三条数据通道为溢出标识位的数据通道。
所述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’组成。
所述PMASK模块用来区分操作类型,即若是循环移位,则pmask为全1,若是算术和逻辑移位则pmask=fmask,如下式(1)
pmaski=fmaski+rotate    (0≤i≤63)                            (1)。
所述ZMASK模块用来吸收未移出的数据,屏蔽已移出的数据,zmask模块中的算法可由式(2)至式(6)给出,其中en16、en32和en64分别表示16×4、32×2和64×1模式,p为表示pmask模块的简写:
z 0 = sla ‾ · p 15 · en 16 + sla ‾ · p 31 · en 32 + sla ‾ · p 63 · en 64 - - - ( 2 )
z 16 = sla ‾ · p 31 · en 16 + ( sla · p 48 + sla ‾ · p 47 ) · en 16 ‾ - - - ( 3 )
z 32 = sla ‾ · ( p 47 · en 16 + p 63 · en 32 ) + ( sla · p 32 + sla ‾ · p 31 ) · en 64 - - - ( 4 )
z 48 = sla ‾ · p 63 · en 16 + ( sla · p 16 + sla ‾ · p 15 ) · en 16 ‾ - - - ( 5 )
z i = sla · p n - i + sla ‾ · p n - 1 - i (0<i≤63,且i≠16,32,48)               (6)。
所述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)
y 32 i = yrr i · fmask i + yrr i + 32 · fmask i ‾ - - - ( 8 )
y 16 i = yrr i · fmask i + yrr i + 48 · fmask i ‾ - - - ( 9 )
ymaski=y64i·en64+y32i·en32+y16i·en16  (0≤i≤63)           (10)。
与现有技术相比,本发明的优点就在于:
1、本发明功能强大,适用范围广,可配置性好,克服了普通桶形移位器和对数移位器只适合于单一移位功能的缺点;
2、本发明实现相对容易,与传统经过修改可支持多模式的移位器相比,本发明的移位器代价较低,结构相对简单;
3、本发明由于结构相对简单,实现较容易,可以达到很快的速度。
附图说明
图1是现有技术中桶形移位器的结构示意图;
图2是现有技术中对数移位器的结构示意图;
图3是本发明的结构示意图;
图4是本发明实施例中32位ymask实现16×2模式示意图;
图5是一种8位溢出标识位的实现方法示意图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
如图3、图4和图5所示,本发明的基于掩码的数据反转桶形移位器包括三条数据通道,第一条数据通道为移位通道,数据先经过一次数据次序反转模块,对其循环右移,而后通过YMASK模块对其操作方式选择,接着通过TMASK模块对其实现操作类型选择,最后再通过数据次序反转模块,第二条数据通道为生成零标识位的数据通道,数据依次通过FMASK模块、PMASK模块以及ZMASK模块后生成零标识位;第三条数据通道为溢出标识位的数据通道。本发明基于掩码的数据反转桶形移位器先对待移位的数据作循环右移,之后,再对循环右移的结果用掩码来修正。其中,主要数据通道是移位通道,具体步骤为:它先经过一次数据次序反转模块,而后对其循环右移,而后用YMASK模块对其操作方式选择,即分清是64位操作还是16×4/32×2的SIMD操作,而后用TMASK模块对其实现操作类型选择,即分清是循环移位、逻辑移位还是算术移位,最后再通过数据次序反转模块。本发明基于掩码的数据反转桶形移位器先对待移位的数据作循环右移,之后,再对循环右移的结果用掩码来修正。本发明要用到2个数据次序反转模块,当为左移时,通过2次次序反转,即可得到正确的次序,当为右移时,2次次序都不变。其中,FMASK模块、ZMASK模块及PMASK模块的作用是生成以上3条数据通道要用到的中间结果。
下面分别逐一对各个模块进行详细介绍。
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’组成。表1为b=3时的各组fmask真值表:
表1  b=3时的各种模式的fmask真值表
  工作模式   fmask[63:0]
  64×1(Fmode[1:0]=1x)   0001111................................................1
  32×2(Fmode[1:0]=01)   0001111..................10001111..................1
  16×4(Fmode[1:0]=00)   0001111...10001111...10001111...10001111...1
PMASK的功能为:区分操作类型,即若是循环移位,则pmask为全1,若是算术和逻辑移位则pmask=fmask,如下式(1)。
pmaski=fmaski+rotate    (0≤i≤63)                        (1)
零标识位生成需先计算zmask,生成的zmask与第一次数据反转的结果
Figure GSB00000706832300041
按位相与,得到的结果再或非即为零标识位(zero)。ZMASK模块的功能为:吸收未移出的数据,屏蔽已移出的数据。zmask可由式(2)至式(6)给出,其中en16、en32和en64分别表示16×4、32×2和64×1模式,p为表示pmask简写,下同。
z 0 = sla ‾ · p 15 · en 16 + sla ‾ · p 31 · en 32 + sla ‾ · p 63 · en 64 - - - ( 2 )
z 16 = sla ‾ · p 31 · en 16 + ( sla · p 48 + sla ‾ · p 47 ) · en 16 ‾ - - - ( 3 )
z 32 = sla ‾ · ( p 47 · en 16 + p 63 · en 32 ) + ( sla · p 32 + sla ‾ · p 31 ) · en 64 - - - ( 4 )
z 48 = sla ‾ · p 63 · en 16 + ( sla · p 16 + sla ‾ · p 15 ) · en 16 ‾ - - - ( 5 )
z i = sla · p n - i + sla ‾ · p n - 1 - i (0<i≤63,且i≠16,32,48)            (6)
经过循环右移模块的结果只能完成64×1模式的左右移操作,YMASK模块的功能为选择移位模式,即是64×1模式、32×2模式还是16×4模式。ymask可由式(7)至式(10)给出,以下各式中,yrr表示循环右移后的输出。当i+32≥64时,则用对i+32以64为模取的余数代替,当i+48≥64时,则用对i+48以64为模取的余数代替。由式(7)至式(10)可以看出,先对循环右移结果用掩码fmask过滤,然后根据工作模式选择正确的结果。图4为32位ymask实现16×2模式示意图,该图中,将32位数据(input y1)整体右移6位后,a与b各自移出的结果(result2)易位,可用ymask将该结果的数据位置修正,得到正确的结果(output y2)。
y64i=yrri                                                (7)
y 32 i = yrr i · fmask i + yrr i + 32 · fmask i ‾ - - - ( 8 )
y 16 i = yrr i · fmask i + yrr i + 48 · fmask i ‾ - - - ( 9 )
ymaski=y64i·en64+y32i·en32+y16i·en16    (0≤i≤63)             (10)
实现了移位模式后,接着便要实现移位类型。移位类型可由TMASK模块实现。对YMASK模块生成的ymask通过TMASK模块,便是tmask,tmask可由式(11)至式(15)得到。由式(11)至式(15)同样可以看出,经过移位模式实现后生成的ymask,通过pmask及操作类型的控制符号sra和sla等过滤后,就可实现移位类型的选择。
t 0 = sla · an _ 1 [ 0 ] + sl a ‾ · y 0 - - - ( 11 )
t 16 = ( sla · an _ 1 [ 1 ] + sla ‾ · y 16 ) · en 16 + ( y 16 · p 16 + s 1 · p 16 ‾ ) · en 16 ‾ - - - ( 12 )
t 32 = ( sla · an _ 1 [ 2 ] + sla ‾ · y 32 ) · en 64 ‾ + ( y 32 · p 32 + s 2 · p 32 ‾ ) · en 64 - - - ( 13 )
t 48 = ( sla · an _ 1 [ 3 ] + sla ‾ · y 48 ) · en 16 + ( y 48 · p 48 + s 3 · p 48 ‾ ) · en 16 ‾ - - - ( 14 )
t i = y i · p i + s 0 · p i ‾ ( 1 ≤ i ≤ 15 ) t i = y i · p i + s 1 · p i ‾ ( 17 ≤ i ≤ 31 ) t i = y i · p i + s 2 · p i ‾ ( 33 ≤ i ≤ 47 ) t i = y i · p i + s 3 · p i ‾ ( 49 ≤ i ≤ 64 ) - - - ( 15 )
上述式(11)至式(15)中,sj=an_1[j]·sra、(0≤j≤3),an_1的取值根据移位模式的不同而不同,不同模式下an_1的取值如下表2。Tmask之后,最后再通过一次数据次序反转,即得到最终的移位结果。
表2  基于掩码的数据反转的桶形移位器结构不同模式下an_1的取值
Figure GSB00000706832300057
要计算溢出标识位,对于64×1模式,可将符号位a[63]与剩下的输入相异或,得出的n-1位结果再和fmask的首n-1位相与,再将得出的结果再相或,由于只有算术左移才产生溢出标识位,故相或的结果还要与sla相与即得溢出标识位。一种8位溢出标识位计算的示意如下图5。而对于SIMD模式的移位操作,可分别对各个分数据进行计算,得到的溢出标识位再相或,最终只有一个溢出标识位。

Claims (2)

1.一种基于掩码的数据反转桶形移位方法,其特征在于步骤:
(1)设置三条数据通道:第一条数据通道为移位通道,第二条为生成零标识位的数据通道,第三条数据通道为溢出标识位的数据通道;
(2)数据输入第一条数据通道中,先经过一次数据次序反转模块,对其循环右移,而后通过YMASK模块对其操作方式选择,即分清是64位操作还是16×4/32×2的SIMD操作,接着通过TMASK模块对其实现操作类型选择,即分清是循环移位、逻辑移位还是算术移位,最后再通过数据次序反转模块;在第二条数据通道中,数据依次通过FMASK模块、PMASK模块以及ZMASK模块后生成零标识位,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’组成,其中b是指从最高位到第一个非0位之前的位数。
CN2007100356529A 2007-08-29 2007-08-29 基于掩码的数据反转桶形移位方法 Expired - Fee Related CN101110015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100356529A CN101110015B (zh) 2007-08-29 2007-08-29 基于掩码的数据反转桶形移位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100356529A CN101110015B (zh) 2007-08-29 2007-08-29 基于掩码的数据反转桶形移位方法

Publications (2)

Publication Number Publication Date
CN101110015A CN101110015A (zh) 2008-01-23
CN101110015B true CN101110015B (zh) 2012-05-23

Family

ID=39042104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100356529A Expired - Fee Related CN101110015B (zh) 2007-08-29 2007-08-29 基于掩码的数据反转桶形移位方法

Country Status (1)

Country Link
CN (1) CN101110015B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782843B (zh) * 2009-01-20 2012-05-30 雷凌科技股份有限公司 桶式移位器的分解方法及分解电路和其控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1559109A (zh) * 2001-08-22 2004-12-29 尤比尼蒂克斯有限公司 产生掩码的设备和方法
CN1783763A (zh) * 2004-11-30 2006-06-07 中兴通讯股份有限公司 扰码相位偏移中伪掩码寄存器生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1559109A (zh) * 2001-08-22 2004-12-29 尤比尼蒂克斯有限公司 产生掩码的设备和方法
CN1783763A (zh) * 2004-11-30 2006-06-07 中兴通讯股份有限公司 扰码相位偏移中伪掩码寄存器生成方法

Also Published As

Publication number Publication date
CN101110015A (zh) 2008-01-23

Similar Documents

Publication Publication Date Title
EP2235622B1 (en) Apparatus and method for performing permutation operations on data
US8495116B2 (en) Circuit and method converting boolean and arithmetic masks
Vorobets et al. On a free group of transformations defined by an automaton
Kim et al. A carry-free 54b/spl times/54b multiplier using equivalent bit conversion algorithm
CN102866878A (zh) 加速对特性2椭圆曲线密码系统的计算的方法
CN104011665A (zh) 超级乘加(超级madd)指令
US9021000B2 (en) High speed and low power circuit structure for barrel shifter
Chen et al. On the $ k $-error linear complexity of binary sequences derived from polynomial quotients
CN1781076A (zh) 组合多项式和自然乘法的乘法器架构
CN101295237B (zh) 求商和余数的高速除法器
CN115801244A (zh) 用于资源受限处理器的后量子密码算法实现方法及系统
CN101110015B (zh) 基于掩码的数据反转桶形移位方法
CN105354008A (zh) 一种随机数生成器的输出电路及输出方法
Barua et al. Binary arithmetic for DNA computers
US11714604B2 (en) Device and method for binary flag determination
Song et al. A general construction and encoder implementation of polar codes
CN104158648B (zh) 用于生成哈希值的方法和装置
Zhang et al. Linear complexity of a family of binary pq 2-periodic sequences from Euler quotients
CN102244555B (zh) 一种Turbo码编码参数的盲识别方法
CN105468330A (zh) 一种基于条件进位选择原理的16位加法器
GB2130771A (en) Incrementer for operating on N- digit operands
Cheng et al. High speed VLSI architecture for general linear feedback shift register (LFSR) structures
CN205210867U (zh) 一种随机数生成器的输出电路
US9785405B2 (en) Increment/decrement apparatus and method
CN1099161C (zh) 数据移位部件

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20120829