研究文章|开放获取
玛雅Moudgill安德烈•Iancu丹尼尔Iancu, ”在喷砂器2.0 Architectrue伽罗瓦域说明”,国际期刊的数字多媒体广播, 卷。2009年, 文章的ID129698年, 5 页面, 2009年。 https://doi.org/10.1155/2009/129698
在喷砂器2.0 Architectrue伽罗瓦域说明
文摘
本文提出一种新颖的方法来实现乘法的伽罗瓦字段。女朋友的元素()可以表示为多项式的程度小于N / GF (2)。操作执行模不可约多项式的n / GF(2)程度。我们的方法将伽罗瓦场将分为两个操作,polynomial-multiply和polynomial-remainder / GF (2)。我们展示了这两个操作可以使用相同的硬件实现。此外,我们表明,在许多情况下几个polynomial-multiply操作可以结合需要polynomial-remainder之前。喷砂器2.0是一个SIMD架构。SIMD poly-multiply的变体,poly-remainder指令。我们使用一个Reed-Solomon编码器和译码器来演示我们的方法的性能。我们的新方法达到11.5倍的加速比的标准SIMD处理机8 x。
1。介绍
伽罗瓦域算法广泛应用于应用程序纠错编码和加密等。通常,伽罗瓦GF(使用的字段)一些女朋友的n元素()可以表示为多项式的程度小于N / GF (2)。操作执行模有些多项式P, P是一个不可约多项式的N / GF(2)程度。P是被称为'多项式。两个元素的乘法可以实现X和Y乘以他们的多项式表示,然后计算剩余模P。
一般来说,这些多项式表示为二进制数字,项是代表通过设置th为1或0取决于这个词。因此,多项式x4 x1表示为10011。
的女朋友()值表示很简单;它仅仅是一个异(xor)的两个二进制数字。伽罗瓦域乘法(GFM),然而,要复杂得多。它包括以下步骤。
(我)做一个polynomial-multiply两个输入。(2)做一个产品的polynomial-remainder模第三个输入,总理多项式。在软件中,GF乘法通常使用查找表(附近地区)执行。对于大型N,就变得相当的大,要求禁止大内存大小。处理时间也变得高昂的高数据率。
进一步使问题复杂化,处理器需要能够处理不同长度的伽罗瓦领域。因此,几个处理器已经添加了伽罗瓦域乘法指令(GFM)。最具代表性的是TI C64x DSP。
通用GFM指令需要4输入,其中至少3必须在寄存器中,两个输入和多项式。因为大多数指令集不提供4输入字段,GFM指令通常使用一个专用寄存器提供长度或',或两者兼而有之。例如,TI C64x DSP中的GMPY4操作使用GFPGFR专用寄存器指定长度和'多项式(1]。
在本文中,我们描述了一个方法实现GFM使用两个指令,其中一个实现polynomial-multiply / GF(2),和其他的实现polynomial-remainder / GF (2)。在喷砂器2.0体系结构(2),这些指令被称为gfmul gfnormi,分别。这两个指令使用两个寄存器输入。gfnormi另外三分之一直接输入,多项式的长度。
喷砂器2.0有16路SIMD单位;因此,我们也有16个变种polynomial-multiply和叫做rgfmul rgfnorm polynomial-remainder指令。此外,单位支持SIMD polynomial-multiply-and-add和polynomial-multiply-and-reduce指令称为rgfmac和rgfmulred。
事实证明,可以指定gfmul和gfnormi操作以这样的方式,我们可以使用几乎相同的硬件来实现这两个功能。因此,没有硬件开销GFM操作分割成两个操作。
几个GFM的伽罗瓦域和操作可以简化多项式之和(即。xor)几个polynomial-multiplies,紧随其后的是一个多项式剩余。这是很常见的在几个使用伽罗瓦域运算的算法。在这些情况下,我们可以实现N GFM的和操作使用N polynomial-multiplies 1 polynomial-remainder,导致1因为我们的分割实现指令的开销。
部分2本文描述了GFM指令在喷砂器2.0体系结构。部分3重点是操作的实现。部分4检查的性能GFM指令Reed-Solomon编码/解码的上下文中。节中我们得出结论5。
2。伽罗瓦域乘法指令
喷砂器标量单位有16个32位通用寄存器。像大多数RISC架构,最多2每整数寄存器可以读和写操作。一个整数操作字段指定寄存器3。扩展指令的直接变量可以另外提供12位的直接数据。
2.1。多项式表示
惯常的二进制表示的GF(2)上的多项式,比特是右对齐,LSB位代表项系数x0,我代表项系数。相比之下,我们居左的系数,最大的项的多项式的系数是由最高有效位。N次多项式,咬我的通用寄存器代表项的系数。
请注意,在此表示,不知道多项式的长度,我们无法确定多项式表示的具体数字。例如,0 xb000_0000可以被解释为x3 x1如果多项式的学位3或x5 x3 x2如果学位的多项式是5。
我们选择这种表示方法,让它更容易计算其余。因为除数和被除数的高阶项是左对齐,我们可以开始减法不需要任何转向多项式的开始。
正确性,它假定所有未使用的寄存器的位0。polynomial-multiply和余数都实现,这样他们离开他们的结果与未使用左对齐位为0。
有一个皱纹表示。我们假设多项式剩余执行与左对齐除数MSB总是1。在这种情况下,代表主要的系数是多余的。所以,我们不代表主要的因子多项式。相反,MSB代表第二最高项的系数。例如,除数多项式x6 x3 1是表示为0 x2400_0000;与领先的,6位是001001。
2.2。多项式操作
gfmul poly-multiply指令在喷砂器体系结构,具有以下格式:
gfmul rc,风湿性关节炎,rb它一个多项式的乘法上8位ra和rb的上层8位,和智慧的15位结果poly-multiply上的目标寄存器rc。其余的rc置零。
gfnormi poly-remainder指令在喷砂器架构,有格式
gfnormi rt、rc、rp, J股息是32位数字由rc的上层16位填充为0。将形成的因子是17位数字1到上面的rp的16位。J是立即操作数从0到7。gfnormi指令执行J1 poly-division步骤,其余16 - (J1)上的目标寄存器rt。
2.3。伽罗瓦域乘法
实现一个GFM GF ()和K1位首相多项式P使用以下设置:
(我)产品输入存储在上层K两个寄存器,风湿性关节炎,rb,(2)领先的P K掉,剩下的是位存储在上层K位寄存器,rp,(3)所有未使用的位设置为0。执行下面的代码序列后,最终结果GFM将rt的上层K位:
gfmul rc,风湿性关节炎,rb gfnormi rt、rc、rp, k - 1表1显示了一个示例的伽罗瓦域乘法/ GF (26)101100年和011011年的两个数字'多项式1001001。这导致一个中间产品01111010100最后剩下101010。在表1,右边的列显示了如何将存储在相应的寄存器的值。
|
||||||||||||||||||||||||||||||||||||
2.4。SIMD
SIMD Sandbridge 2.0单位架构有8个1616位SIMD寄存器以及四个累加寄存器。SIMD指令编码的操作允许4输入字段。SIMD单位允许读和三个寄存器2是由一个指令。
SIMD单位支持GFM通过rgfmul rgfnorm指令,具有以下格式:
弗吉尼亚州rgfmul vc、vb 副总裁rgfnorm vt, vc, J这些指令做16 poly-multiplies / poly-remainders并行执行。自从SIMD注册元素是16位宽,rgfmul使用上的8位每一个元素,而rgfnorm使用元素的整个16位。除此之外,他们的行为是相同的gfmul / gfnormi指令。
高达三SIMD寄存器可以读取每周期;我们使用的额外read-port实现poly-multiply-and-add指令格式:
弗吉尼亚州rgfmac vc、vb vsrgfmac指令16 poly-multiplies va和vb的16个元素,然后poly-adds (xor) vs的产品对应的元素。
SIMD单元有一个成语的16结果element-wise操作(比如rgfmul)结合在一起,形成一个值写入到蓄电池。poly-multiply-and-sum-reduce指令遵循这个成语
rgfmulred行动,va、vb弗吉尼亚州的16个元素和vb poly-multiplied在一起,和16个产品poly-summed (xor-ed)在一起形成一个16位值写入累加寄存器。
3所示。实现
gfnormi和gfmul指令可以实现通过同一块很小的开销。我们可以看到从算法的伪代码1,两个涉及相同的算法计算内核和有不同的设置和控制。他们在下面详细描述。
|
||||||||||||||||||||||||||||||||||||||||||||
3.1。gfnormi
gfnormi指令计算其余使用多项式长除法。自从值左对齐,我们开始这个过程在31日的红利价值。因子由领先1和上层除数寄存器的16位。gfnormi直接参数指令指定的数量分步骤执行,J1。例如,011.1101.0100分工的5步骤100.1001将进行如下:
01111010100000000 00000000000000000 11110101000000000 10010010000000000 11001110000000000 10010010000000000 10111000000000000 10010010000000000 01010100000000000 00000000000000000 1010100000000000在每一步,结果与0 xor-ed或因子,根据主要是0/1。结果然后left-shifted 1,确保部门后的剩余步骤是左对齐的。注意,xor-ing 0是身份操作;这导致左移。这样做是在中间剩余小于除数。
3.2。gfmul
每个poly-multiply步骤需要遵循相同的模式poly-remainder这样的硬件是很常见的。如果我们要J1的步骤,我们做以下:
(我)部分结果被初始化为0,(2)“因子”的每一步是把输入前缀与J1 0,(3)控制选择xor是否与因子或0年代的第二把输入从方向上。下面的例子繁殖101100年和011011年使用6步骤。10110作为控制输入
0000000000000000 0000000110110000 0000001101100000 0000000000000000 0000011011000000 0000000110110000 0000111011100000 0000000110110000 0001111010100000 0000000000000000 0011110101000000 0000000000000000 0111101010000000gfmul指令总是8步骤的繁殖。因此,在实现,”:除数”是按8 0。
3.3。结果
统一块实现gfnormi和gfmul SB3500由一些设置8阶段计算内核紧随其后。这在每个阶段是一个xor-select计算,如图1。
在多项式剩余操作的情况下,gfnormi因此,(res)和因子(div)值设置从ra和rb寄存器的值。数(N)被设置为当前值中指定的操作1。的前N 8 xor-shift阶段,如果res的最高有效位是1,div的res andxor-ed转移有价值;否则只是转移1。
多项式的乘法操作,res设置为0和div设置为rb寄存器的值按8 0;数N总是8。rb的前8位寄存器用来控制8 xor-shift阶段;如果相应的位是1,res转移和xor-ed div的价值;否则只是转移1。
从图中所示的图1,很明显,关键路径的每个8 xor-select阶段使用两个2 - 1 mux天真的实现。添加初始设置,这使总延误整个17块2 - mux。台积电65海里低功率TSMC65LP过程中的关键路径是0.9在面积2856纳秒米2使用正则Vt晶体管和典型的时机。
SB3500实现是针对1.6纳秒的时钟。它有2段执行管道,所以gf-op块管线式在2阶段。这使合成工具3.3纳秒来实现。合成工具使用这个放松的时机选择能力和区域优化的实现。在这个实现gf-op块占地约2018米2,不包括管道寄存器。
可以实现各种预见性计划将减少关键路径的额外的逻辑。因为我们有足够的松弛,我们没有调查任何区域/速度权衡。
4所示。Reed-Solomon
我们实现了一个RS编码器/解码器设计成SIMD架构上实现。在本节中介绍的数字调谐的DVB数字视频广播标准。本标准使用RS(204188)编码;也就是说,它将16检查符号添加到一个188字节数据包导致总码字长度为204字节。
4.1。算法
本研究中使用的RS编码器做下面的步骤(3]:
(我)添加N 0数据块,(2)减少执行连续霍纳的多项式的系数是数据块+ 0获得余数,(3)余数乘以预计算系数和总和。所有操作在GF (28)。RS译码器(4从综合症开始计算,计算接收到的代码字母预先计算的综合症向量的点积(4]。如果症状都是零,然后没有错误。
我们的实现结合了许多技术改善错误解码能力。
(我)正确的码字使用Peterson-Gorenstein-Zieler (PGZ) [5)算法。(2)如果不纠正错误,先后应用2,4,6,8,推导一个错误定位多项式,直到一个错误定位多项式推导出正确的程度(6,7]。(3)如果一个错误定位确定多项式,试图解码一词使用Forney-Messey-Berlekamp (FMB)方法(8,9]。再一次,所有操作在GF (28)。这种方法的细节已经公布之前(6]。
4.2。结果
我们一开始用一个原始版本的代码是为了使用伽罗瓦域操作。然后这个基础代码重写使用SIMD polynomial-multiply和剩下的操作形式。
的实验运行编码一个RS(204188)包人为引入足够的错误需要8“抹除”然后解码数据包。注意,这是最坏的解码情况;在实践中98%的所有数据包都综合症等于零,所以不需要解码错误。
表2给我们的实验结果的细节。在编码器,poly-remainder操作的数量几乎是poly-multiplies一样。因此,SIMD只达到8倍加速,尽管多项式的SIMD变体指令并行执行16 poly-operations。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.3。端到端仿真结果
为优质的情况下,比特率最高的31.67 Mbps,译码器称为21 763次每秒。处理器周期花费的总数的女朋友矢量模式操作只是不到18 MHz (SBX处理器能力的一小部分),而在标量模式277 MHz。迭代解码算法进行端到端优质/ H模拟系统,由ETSI EN 744 V1.4.1指定(2001 - 01)。模拟使用墨进行模拟工具。使用我们的女朋友指令,总数SBX处理器周期每秒消耗的比特率最高的标准和假设中指定的每个包都有八个错误和八个“抹除”,如下:29日为31.67 Mbps优质MHz, 9 MHz 4.4 Mbps的dvb - h包括可选的第二个链接级别的RS译码器。
5。结论
我们已经介绍GFM的实现方法,实现一个GFM poly-multiply和poly-remainder使用2说明,允许添加GFM标准的体系结构,而不需要引入GFM的专用寄存器。此外,这两个指令可以使用相同的硬件实现。
我们已经表明,对于某些应用程序,没有必要执行poly-multiply和为每个GFM poly-remainder。在的情况下,结果几个GFM加在一起,相应的产品poly-multiplies总结然后使用单个poly-remainder。在一个特定的情况下,只有25%的poly-multiplies需要poly-remainder。我们的模拟结果表明11.5倍的加速扩展处理器与标准的处理器。
引用
- 德州仪器公司,”TMS320C64x / C64x + DSP处理器指令集参考指南,”2008年2月。视图:谷歌学术搜索
- m . Moudgill j . Glossner s Agrawal, g .该“喷砂器2.0架构和SB3500实现”程序的软件定义无线电(SDR技术论坛论坛08年)美国,华盛顿特区,2008年10月。视图:谷歌学术搜索
- d . Iancu j . Glossner和m . Moudgill Reed-Solomon编码和解码的方法,“欧洲专利EP1704647。视图:谷歌学术搜索
- s g·威尔逊,数字调制和编码美国,新世纪,上台北,1996年。
- s . b .柳条误差控制系统数字通信和存储新世纪,恩格尔伍德悬崖,新泽西,美国,1995年。
- d . Iancu m . Moudgill j . Glossner, j . Takala”高效Reed-Solomon迭代译码器使用伽罗瓦域指令集,”学报》第八届研讨会嵌入式计算机系统:架构、建模和仿真(萨摩斯的08年)卷,5114在计算机科学的课堂讲稿萨摩斯,页126 - 135年,希腊,2008年7月。视图:出版商的网站|谷歌学术搜索
- d . Iancu h .你们j . Glossner m·j·舒尔特s Mamidi和j . Takala”提高了频谱效率通过迭代级联卷积reed-solomon软件解码”联合学报》1日研讨会传感器网络与通信(SympoTIC 06年)趋势研讨会上布拉迪斯拉发,页1 - 5,斯洛伐克,2006年6月。视图:谷歌学术搜索
- j·l·梅西“移位寄存器合成和BCH译码、”IEEE信息理论,15卷,不。1,第127 - 122页,1969。视图:出版商的网站|谷歌学术搜索
- g·福尼Jr .)“解码BCH码。”IEEE交易信息理论,11卷,不。4、549 - 557年,1965页。视图:出版商的网站|谷歌学术搜索
版权
版权©2009玛雅Moudgill et al。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。