DSP开发宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.8 TMS320C64x控制寄存器扩展

TMS320C64x的一个新的控制寄存器是伽罗瓦(Galois)域多项式产生函数寄存器(GFPGFR)。

(1)伽罗瓦域

非理想信道条件下,现代数字通信系统通常使用纠错编码机制提高系统性能。最常用的编码是Reed-Solomon编码,因为该编码对猝发性错误具有鲁棒性并且易于实现。TMS320C64x DSP包含Galois域乘法硬件,可用于Reed-Solomon编码和解码。为了理解Galois域乘法硬件相关性,先定义一些数学概念。

在开发算法时常用整数和实数两种数字体系,对于整数,可以进行加法、减法、乘法运算,如果允许余数非零,也可以进行除法运算。对实数,可以进行全部四种算法,包括余数非零的除法运算。

实数可以被归属于称为域的数学结构。域由一组数据元素和加、减、乘、除运算组成。如果允许执行模运算,则可产生一个整数域。

下面给出以2为模的整数运算。先进行普通的整数运算,然后对结果取模2运算,如图2-12所示为以2为模的加法、减法和乘法运算。

图2-12 以2为模的加法、减法和乘法运算

值得注意的是,由图2-12可知,以2为模的加法和减法的结果是相同的,并且和二进制XOR(异或)运算结果相同;乘法结果和二进制的AND(与)的运算结果相同。这些性质是以2为模的运算所特有的,广泛地运用在纠错码中。另外的一个性质是任何非零元素的除法都是明确定义的。除零以外的每个元素对于乘法都有一个逆元素,这样除法总是可执行的,即

x×x-1=1

为了更清楚地说明这个概念,可以用以5为模的运算的例子来说明,如图2-13所示为以5为模的加法、减法和乘法运算。

图2-13 以5为模的加法、减法和乘法运算

从乘法表的各行中可以看出,元素1在每个非零的行和列中。每个非零的元素可以被至少一个其他元素相乘得到为1的结果。这样,除法总有效,且以5为模的整数运算形成一个域。以这种方式形成的域称为有限域或Galois域,记作GF(X),如GF(2)或GF (5)。此操作只在操作数为质数时有效。

如果使用多项式,Galois域也可以在元素是一个向量而不是整数的情况下产生。此时有限域的运算可以对一个质数的幂取模。以采用二进制运算的纠错码为例,Reed-Solomon编码系统中所有的域都有GF(2m)的形式。在加法运算时对向量的系数进行XORs运算,乘法运算时使用AND和XOR的联合。

最后以域GF(23)为例,这个域有8个元素。可以通过多项式取模的运算来产生。该域的元素看起来像3位向量,如图2-14所示为域GF(23)的加法和乘法运算。

图2-14 域GF(23)的加法和乘法运算

注:值1(001)出现在乘法图的每个非零行,说明这是一个有效域。

(2)Galois域多项式发生器函数寄存器(GFPGFR)

TMS320C64x的Galois域乘法硬件为GMPY4。此指令在.M单元上对8位打包数据执行4条并行操作。Galois域乘法器可以编程设定,以执行所有GF(2m)形式的Galois域乘法,m可以从1到8使用任意生成多项式。域的大小和多项式发生器由Galois域多项式发生器函数寄存器控制。

GFPGFR的格式如图2-15所示,包括Galois域多项式发生器和域大小控制位,这些控制位控制GMPY4指令的操作。这个寄存器只能通过MVC指令设置。

图2-15 Galois域多项式发生器函数寄存器(GFPGFR)格式

复位后GMPY4指令默认的函数域大小=7,多项式==oX1D。GFPGFR各字段功能描述参见表2-11。

表2-11 Galois域多项式发生器函数寄存器(GFPGFR)各字段功能