CN102184161B - 基于余数系统的矩阵求逆装置及方法 - Google Patents
基于余数系统的矩阵求逆装置及方法 Download PDFInfo
- Publication number
- CN102184161B CN102184161B CN2011101356950A CN201110135695A CN102184161B CN 102184161 B CN102184161 B CN 102184161B CN 2011101356950 A CN2011101356950 A CN 2011101356950A CN 201110135695 A CN201110135695 A CN 201110135695A CN 102184161 B CN102184161 B CN 102184161B
- Authority
- CN
- China
- Prior art keywords
- matrix
- rns
- residue number
- remainder
- module
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种基于余数系统的矩阵求逆装置及方法,它是通过特定的余数基,将传统的基于二进制补码数值表征系统的矩阵求逆的运算划分为多个并行独立的数据通道,以减小系统复杂度和关键路径时延。基于此,本发明公开的基于余数系统的矩阵求逆运算结构包括映射与解映射模块、余数系统与二进制系统转换模块、基于余数系统的n阶伴随矩阵运算模块、n阶行列式运算单元、以及用于RNS整数的符号检测和数值缩放模块。本发明以四阶正定Hermite矩阵求逆为例设计了其基于余数系统的实现结构,最后根据逆矩阵的定义,仅输出原矩阵的行列式值及其伴随矩阵。
Description
技术领域
本发明属于信号处理领域,具体地说,涉及用于通信及信号处理中的基于余数系统(RNS)的矩阵求逆(MI)的方法和实现结构。
背景技术
当代在许多信号处理、图像处理和通信方面的操作和运算,都要求有很高的吞吐量,而且许多操作都要求实时完成,这样对于算法的实现速度就有很高的要求。在数字信号处理中,有许多信号和图像处理的算法具有运算局部化、计算密集以及大多数是矩阵运算等特点,而矩阵运算的难点在于矩阵求逆。传统的矩阵求逆算法大多用处理器串行计算来实现,严重制约着计算速度的提高。
传统的矩阵求逆运算单元的VLSI实现均基于二进制权重数值表征系统,其特点是成熟、简单,但随着处理位宽的增大,其基本运算单元——乘法器和加法器的复杂度增加,关键路径长度增加,从而降低了系统的工作频率。余数系统是一种并行数值表征系统,它利用几个互为质数的余数基可将矩阵求逆中基本的乘加运算划分为几个独立、并行的处理通道,以减小各处理通道的复杂度和关键路径长度。基于RNS的矩阵求逆运算在算法的最前端考虑系统的并行实现,它以改善单个运算单元的性能为目标,而非传统的以增加处理单元个数和规模来增强系统并行度。
一个余数系统由一组给定的相互独立的余数基{m1,m2,...,mL}确定,GCD(mi,mj)=1(i,j∈{1,2,...,L},i1 j),其中GCD(mi,mj)表示mi和mj的最大公因子。对于整数X,其RNS可表示为X={x1,x2,...,xL},其中xi为X对mi的余数。例如,整数11用余数基为{3,4,5}的RNS表示为{2,3,1}。对于基为{m1,m2,...,mL}的RNS所能表示的整数动态范围为令[0,M)范围内的整数a、b、c的RNS表示分别为{a1,a2,...,aL}、{b1,b2,...,bL}和{c1,c2,...,cL},根据高斯模运算准则,若ci=(aiΔbi)mod mi,则c=<aΔb>M,其中“Δ”表示加、减及乘法运算。
发明内容
本发明的目的是提供一种基于余数系统的矩阵求逆装置及方法,以及基于RNS的矩阵求逆实现基本结构。该发明是在传统的基于二进制系统的矩阵求逆结构上加以改进,即利用一个互质的多通道余数基,将矩阵求逆中的加法器、乘法器和存储器划分为几个相互独立运算的数据通道。
为了达到上述目的,本发明采用如下技术方案:
一种基于余数系统的矩阵求逆装置,包含:
映射模块,将二进制补码系统TCS的整数映射到余数系统RNS表示范围中,使上述整数在RNS中正负整数表示与TCS一致;
二进制到余数系统转换模块B2R,实现余数基为{m1,m2,...,mL}的二进制整数到RNS整数的转换,其中L为正整数;
基于RNS的多通道n阶矩阵求逆运算单元;
符号检测模块;
数值缩放模块;
余数系统到二进制转换模块R2B,实现余数基为{m1,m2,...,mL}的RNS整数到二进制整数的转换;
解映射模块,将R2B模块转换的结果映射到与TCS一致的整数表示范围内,使在RNS中正负整数表示与TCS一致。
一种基于余数系统的矩阵求逆装置,基于传统的矩阵求逆算法所对应的控制逻辑,按特定的余数基{m1,m2,...,mL}将其划分为L个独立计算的余数通道,各通道运算的基本操作为模加法和模乘法运算。
一种基于余数系统的矩阵求逆装置,所述映射模块包括:加法器和数据选择器,所述加法器将输入的整数与M相加,若结果的符号为1则所述选择器将加法器的运算结果输出,否则,所述选择器直接将输入值作为输出,其中,M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围,
一种基于余数系统的矩阵求逆装置,所述二进制到余数系统转换模块B2R,依据通用B2R公式进行转换,选择余数基为{215,216-1,215-1}。
一种基于余数系统的矩阵求逆装置,所述基于RNS的多通道n阶矩阵求逆运算单元基于传统的矩阵求逆算法所对应的控制逻辑,包括乘法器和加法器,并按特定的余数基{m1,m2,...,mL}将其划分为L个独立计算的余数通道,上述各通道运算的基本操作为模加法和模乘法运算。
一种基于余数系统的矩阵求逆装置,所述多通道n阶矩阵求逆运算单元,是n阶正定Hermite矩阵的求逆运算单元,由n阶伴随矩阵A*和n阶行列式|A|,依据求逆,最后仅输出矩阵所需的行列式值及原矩阵的伴随矩阵,该单元包括:映射模块与解映射模块、B2R转换单元与R2B转换单元、RNS整数符号检测单元、RNS数值缩放单元、n阶伴随矩阵运算单元和n阶行列式运算单元、截位单元,其中,n阶伴随矩阵运算单元和n阶行列式运算单元采用余数基{m1,m2,...,mL}进行余数通道处理。
一种基于余数系统的矩阵求逆装置,所述多通道n阶矩阵求逆运算单元是四阶正定Hermite矩阵的求逆运算单元,由n阶伴随矩阵A*和n阶行列式|A|,依据求逆,最后仅输出矩阵所需的行列式值及原矩阵的伴随矩阵,该单元包括:
映射模块与解映射模块、B2R转换单元与R2B转换单元、RNS整数符号检测单元、RNS数值缩放单元、四阶伴随矩阵运算单元和四阶行列式运算单元、截位单元,所述四阶伴随矩阵运算单元和所述四阶行列式运算单元采用余数基{m1,m2,...,mL}进行余数通道处理;所述求逆运算单元所选择的余数基为{215,216-1,215-1};所述求逆运算单元,其中:
所述四阶伴随矩阵运算单元,包含3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1的实现二阶和三阶行列式运算,通过加法器和乘法器组合实现;
所述四阶行列式运算单元,包含3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1在三阶行列式输出的基础上计算得到,通过加法器和乘法器组合实现;
上述乘法器均为复数模215、模216-1和模215-1乘法器,上述各余数处理通道的基本单元,对两个RNS复整数进行模乘运算;
RNS符号检测模块,对余数基为{215,216-1,215-1}的RNS整数进行符号判断,若为负数则输出“1”,否则输出“0”。
RNS数值缩放模块,对余数基为{215,216-1,215-1}的RNS整数进行215除法,使其运算结果在RNS表示的动态范围内;
R2B变换模块;
解映射模块;
第一截位模块和第二截位模块;
经过所述B2R转换后的余数值输入所述数据运算模块计算后,经过R2B变换模块、解映射模块和第一截位模块处理得到第一输出值,记为原矩阵的行列式值输出;
并且,经过所述数据运算模块计算后,符号检测、三级寄存器和数值缩放处理后得到的数值,再由R2B变换模块、解映射模块和第二截位模块处理得到第二输出值,即为原矩阵的伴随矩阵输出。
一种基于余数系统的矩阵求逆装置,所述余数系统到二进制转换模块R2B依据通用R2B公式进行转换,所述余数系统到二进制转换模块R2B,选择余数基{m1,m2,m3}为{215,216-1,215-1},其中
输入为x1、x2和x3;
x1通过二级寄存器得到X1=x1;
用于计算的模块,其中k1满足k1×m3=1 mod m2;
一种基于余数系统的矩阵求逆装置,所述解映射模块包括:比较器,加法器和数据选择器,其中,所述比较器判断输入的数值X在RNS数域范围内的符号特性,所述加法器是二进制补码加法器,对输入的整数减去常数M,若X的符号sign(X)为1,所述选择器将所述加法器的运算结果作为输出,否则直接将输入的整数作为输出,其中,M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围,
一种基于余数系统的矩阵求逆方法,包含如下步骤:
映射步骤,将二进制补码系统TCS的整数映射到余数系统RNS表示范围中,使上述整数在RNS中正负整数表示与TCS一致;
二进制到余数系统转换B2R步骤,实现余数基为{m1,m2,...,mL}的二进制整数到RNS整数的转换,其中L为自然数;
基于RNS的多通道n阶矩阵求逆运算的步骤;
符号检测步骤;
数值缩放步骤;
余数系统到二进制转换R2B步骤,实现实现余数基为{m1,m2,...,mL}的RNS整数到二进制整数的转换;
解映射步骤,将R2B模块转换的结果映射到与TCS一致的整数表示范围内,使在RNS中正负整数表示与TCS一致。
本发明所述的n阶矩阵求逆结构中,包括映射与解映射、二进制与余数系统转换和基于余数通道运算的n阶伴随矩阵和n阶行列式运算单元,以及与之对应的RNS整数符号检测和数值缩放单元。本发明设计的基于RNS的矩阵求逆实现结构,并不限定具体的余数基形式和矩阵的维数。
对n阶矩阵求逆,使用余数基为{m1,m2,...,mL}。将二进制补码系统(TCS)的数值动态范围映射到余数系统(RNS)的数值动态范围,映射后的整数对各余数基进行模运算转换到RNS,对余数基mi所取的余数作为第i个通道的运算数据(通道数即余数基的个数L),L个运算通道的计算结果经过符号检测和数值缩放后,从余数系统整数转换为二进制整数,再进行动态范围映射,调整使之与TCS相同。对应余数基mi的第i个运算通道完成RNS运算。
对四阶正定Hermite矩阵基于RNS的矩阵求逆,采用的余数基为{m1,m2,...,mL},并采用了基于伴随矩阵的算法,一个n阶可逆矩阵A的逆矩阵可表示为:
按照式(1),逆矩阵由两部分组成:n阶伴随矩阵A*和n阶行列式|A|。其控制逻辑部分与采用相同算法的基于TCS的矩阵求逆运算的相同。在该实例中,将矩阵求逆中的乘法和加法运算划分为L个相互独立的运算通道,各通道的基本运算为模m1、模m2……模mL加法和乘法运算。
本发明是通过特定的余数基,将传统的基于二进制补码数值表征系统的矩阵求逆的运算划分为多个并行独立的数据通道,以减小系统复杂度和关键路径时延。
附图说明
图1是基于RNS的矩阵求逆运算实现结构示意图;
图2是TCS到RNS动态范围映射模块示意图;
图3是RNS到TCS解映射模块示意图;
图4是按照本发明实施例配置的基于RNS的四阶正定Hermite矩阵求逆示意图;
图5是按照本发明实施例配置的二进制系统到余数系统转换模块示意图;
图6是按照本发明实施例配置的余数系统到二进制系统转换模块示意图;
图7是按照本发明实施例配置的基于RNS的数据运算单元示意图;
图8是按照本发明实施例配置的二阶行列式计算单元示意图;
图9是按照本发明实施例配置的三阶行列式计算单元示意图;
图10是按照本发明实施例配置的复数模乘法器示意图。
具体实施方式
下面结合具体实施方式对本发明的上述发明内容作进一步的详细描述。
但不应将此理解为本发明上述主题的范围仅限于下述实施例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的范围内。
见图1、一种基于余数系统的矩阵求逆装置,包含:
映射模块,将二进制补码系统TCS的整数映射到余数系统RNS表示范围中,使上述整数在RNS中正负整数表示与TCS一致;
二进制到余数系统转换模块B2R,实现余数基为{m1,m2,...,mL}的二进制整数到RNS整数的转换,其中L为正整数;
基于RNS的多通道n阶矩阵求逆运算单元;
符号检测模块;
数值缩放模块;
余数系统到二进制转换模块R2B,实现余数基为{m1,m2,...,mL}的RNS整数到二进制整数的转换;
解映射模块,将R2B模块转换的结果映射到与TCS一致的整数表示范围内,使在RNS中正负整数表示与TCS一致。
基于余数系统的矩阵求逆装置,是基于传统的矩阵求逆算法所对应的控制逻辑,按特定的余数基{m1,m2,...,mL}将其划分为L个独立计算的余数通道,各通道运算的基本操作为模加法和模乘法运算。
基于余数系统的矩阵求逆装置,其中所述映射模块包括:加法器和数据选择器,所述加法器将输入的整数与M相加,若结果的符号为1则所述选择器将加法器的运算结果输出,否则,所述选择器直接将输入值作为输出,其中,M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围,
基于余数系统的矩阵求逆装置,其中所述二进制到余数系统转换模块B2R,依据通用B2R公式进行转换,所述的二进制到余数系统转换模块B2R,选择余数基为{215,216-1,215-1}。
基于余数系统的矩阵求逆装置,其中所述基于RNS的多通道n阶矩阵求逆运算单元基于传统的矩阵求逆算法所对应的控制逻辑,包括乘法器和加法器,并按特定的余数基{m1,m2,...,mL}将其划分为L个独立计算的余数通道,上述各通道运算的基本操作为模加法和模乘法运算。
基于余数系统的矩阵求逆装置,所述的多通道n阶矩阵求逆运算单元,是n阶正定Hermite矩阵的求逆运算单元,由n阶伴随矩阵A*和n阶行列式|A|,依据求逆,最后仅输出矩阵所需的行列式值及原矩阵的伴随矩阵,该单元包括:映射模块与解映射模块、B2R转换单元与R2B转换单元、RNS整数符号检测单元、RNS数值缩放单元、n阶伴随矩阵运算单元和n阶行列式运算单元、截位单元,其中,n阶伴随矩阵运算单元和n阶行列式运算单元采用余数基{m1,m2,...,mL}进行余数通道处理。
基于余数系统的矩阵求逆装置,所述的n阶矩阵求逆运算单元,其中,所述对应余数基mi的运算通道包括:
数据分配模块;
二阶行列式计算模块;
n阶行列式计算模块。
基于余数系统的矩阵求逆装置,所述的n阶矩阵求逆运算单元中的n阶行列式计算模块,
基于余数系统的矩阵求逆装置,所述的多通道n阶矩阵求逆运算单元是四阶正定Hermite矩阵的求逆运算单元,由n阶伴随矩阵A*和n阶行列式|A|,依据求逆,最后仅输出矩阵所需的行列式值及原矩阵的伴随矩阵,该单元包括:
映射模块与解映射模块、B2R转换单元与R2B转换单元、RNS整数符号检测单元、RNS数值缩放单元、数据运算单元(包括四阶伴随矩阵运算单元和四阶行列式运算单元)、截位单元,所述四阶伴随矩阵运算单元和所述四阶行列式运算单元采用余数基{m1,m2,...,mL}进行余数通道处理。
基于余数系统的矩阵求逆装置所述的求逆运算单元,所选择的余数基为{215,216-1,215-1}。
基于余数系统的矩阵求逆装置,所述的求逆运算单元,其中:
所述四阶伴随矩阵运算单元,包含3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1的实现二阶和三阶行列式运算,通过加法器和乘法器组合实现;
所述四阶行列式运算单元,包含3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1在三阶行列式输出的基础上计算得到,通过加法器和乘法器组合实现;
所述数据运算步骤,包含四阶伴随矩阵运算和四阶行列式运算,运算过程中分3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1的现实二阶和三阶行列式运算,三阶行列式的输出即为四阶伴随矩阵的元素,在三阶行列式输出的基础上计算得到四阶行列式,这些运算均可通过加法和乘法组合实现;
上述乘法器均为复数模215、模216-1和模215-1乘法器,上述各余数处理通道的基本单元,对两个RNS复整数进行模乘运算;
RNS符号检测模块,对余数基为{215,216-1,215-1}的RNS整数进行符号判断,若为负数则输出“1”,否则输出“0”。
RNS数值缩放模块,对余数基为{215,216-1,215-1}的RNS整数进行215除法,使其运算结果在RNS表示的动态范围内;
R2B变换模块;
解映射模块;
第一截位模块和第二截位模块;
经过所述B2R转换后的余数值输入所述数据运算模块计算后,经过R2B变换模块、解映射模块和第一截位模块处理得到第一输出值,记为原矩阵的行列式值输出;
并且,经过所述数据运算模块计算后,符号检测、三级寄存器和数值缩放处理后得到的数值,再由R2B变换模块、解映射模块和第二截位模块处理得到第二输出值,即为原矩阵的伴随矩阵输出。
经过所述数据运算步骤,包含四阶伴随矩阵运算和四阶行列式运算,运算过程中分3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1的现实二阶和三阶行列式运算,三阶行列式的输出即为四阶伴随矩阵的元素,在三阶行列式输出的基础上计算得到四阶行列式,这些运算均可通过加法和乘法组合实现。
基于余数系统的矩阵求逆装置,所述的基于余数系统的矩阵求逆装置,其中所述余数系统到二进制转换模块R2B依据通用R2B公式进行转换。
基于余数系统的矩阵求逆装置,所述的余数系统到二进制转换模块R2B,选择余数基{m1,m2,m3}为{215,216-1,215-1},其中
输入为x1、x2和x3;
x1通过二级寄存器得到X1=x1;
T2经过一级寄存器后的值与T3输入加法器得到的和值经过一级寄存器输出,其中k2满足k2×m2×m3=1 mod m1。
基于余数系统的矩阵求逆装置,其中所述解映射模块包括:比较器,加法器和数据选择器,其中,所述比较器判断输入的数值X在RNS数域范围内的符号特性,所述加法器是二进制补码加法器,对输入的整数减去常数M,若X的符号sign(X)为1,所述选择器将所述加法器的运算结果作为输出,否则直接将输入的整数作为输出,其中,M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围,
一种基于余数系统的矩阵求逆方法,包含如下步骤:
映射步骤,将二进制补码系统TCS的整数映射到余数系统RNS表示范围中,使上述整数在RNS中正负整数表示与TCS一致;
二进制到余数系统转换B2R步骤,实现余数基为{m1,m2,...,mL}的二进制整数到RNS整数的转换,其中L为正整数;
基于RNS的多通道n阶矩阵求逆运算的步骤;
符号检测步骤;
数值缩放步骤;
余数系统到二进制转换R2B步骤,实现实现余数基为{m1,m2,...,mL}的RNS整数到二进制整数的转换;
解映射步骤,将R2B模块转换的结果映射到与TCS一致的整数表示范围内,使在RNS中正负整数表示与TCS一致。
一种基于余数系统的矩阵求逆方法,基于传统的矩阵求逆算法所对应的控制逻辑,按特定的余数基{m1,m2,...,mL}将其划分为L个独立计算的余数通道,各通道运算的基本操作为模加法和模乘法运算。
一种基于余数系统的矩阵求逆方法,其中所述映射步骤包括:将输入的整数与M相加,若结果的符号为1则相加运算的结果输出,否则直接将输入的值作为输出,其中,M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围,
一种基于余数系统的矩阵求逆方法,其中所述二进制到余数系统转换模块B2R,依据通用B2R公式进行转换。
一种基于余数系统的矩阵求逆方法,所述的二进制到余数系统转换模块B2R,选择余数基为{215,216-1,215-1}。
一种基于余数系统的矩阵求逆方法,其中所述基于RNS的多通道n阶矩阵求逆运算基于传统的矩阵求逆算法所对应的控制逻辑,按特定的余数基{m1,m2,...,mL}将其划分为L个独立计算的余数通道,上述各通道运算的基本操作为模加法和模乘法运算。
映射和B2R步骤;
数据运算步骤,其中包括n阶伴随矩阵运算和n阶行列式运算;
RNS整数符号检测步骤;
RNS数值缩放步骤;
R2B转换和解映射步骤;
截位步骤;
其中,数据运算单元采用余数基{m1,m2,...,mL}进行余数通道处理。
一种基于余数系统的矩阵求逆方法,所述的n阶矩阵求逆运算,其中,所述对应余数基mi的运算通道执行的运算步骤包括:
数据分配;
二阶行列式计算;
n阶行列式计算步骤依据通用公式运算。
一种基于余数系统的矩阵求逆方法,所述的n阶矩阵求逆运算单元中的n阶行列式计算步骤,执行通用公式运算。
映射和B2R步骤;
数据运算步骤,其中包括四阶伴随矩阵运算和四阶行列式运算;
RNS整数符号检测步骤;
RNS数值缩放步骤;
R2B转换和解映射步骤;
截位步骤;
其中,所述数据运算单元采用余数基{m1,m2,...,mL}进行余数通道处理。
一种基于余数系统的矩阵求逆方法,所述的求逆运算单元,所选择的余数基为{215,216-1,215-1}。
一种基于余数系统的矩阵求逆方法,所述的求逆运算,其中:
所述数据运算步骤,包含四阶伴随矩阵运算和四阶行列式运算,运算过程中分3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1的现实二阶和三阶行列式运算,三阶行列式的输出即为四阶伴随矩阵的元素,在三阶行列式输出的基础上计算得到四阶行列式,这些运算均可通过加法和乘法组合实现;
上述乘法均为复数模215、模216-1和模215-1乘法,对两个RNS复整数进行模乘运算;
RNS符号检测步骤,对余数基为{215,216-1,215-1}的RNS整数进行符号判断,若为负数则输出“1”,否则输出“0”。
RNS数值缩放步骤,对余数基为{215,216-1,215-1}的RNS整数进行215除法,使其运算结果在RNS表示的动态范围内;
R2B变换步骤;
解映射步骤;
第一截位步骤和第二截位步骤;
经过所述B2R转换后的余数值进行所述的数据运算,得到四阶行列式值,经由所述R2B变换和所述解映射、第一截位处理得到第一输出值,即为原矩阵的行列式值;
并且,所述B2R转换后的余数值进行所述的数据运算后,得到三阶行列式值,经由所述符号检测、三阶寄存器和数值缩放后,再经由所述R2B变换、解映射、第二截位处理得到第二输出值,即为原矩阵的伴随矩阵输出。
一种基于余数系统的矩阵求逆方法,所述的基于余数系统的矩阵求逆方法,其中所述余数系统到二进制转换R2B步骤依据通用R2B公式进行转换。
一种基于余数系统的矩阵求逆方法,所述的余数系统到二进制转换R2B步骤,选择余数基{m1,m2,m3}为{215,216-1,215-1},其中
输入为x1、x2和x3;
x1通过二级寄存器得到X1=x1;
计算 ;
计算 ;
一种基于余数系统的矩阵求逆方法,其中所述解映射步骤包括:比较判断输入的数值X在RNS数域范围内的符号特性,执行二进制补码加法,对输入的整数减去常数M,若X的符号sign(X)为1,将所述加法的运算结果作为输出,否则直接将输入的整数作为输出,其中,M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围,
本发明是一种用于数字系统的矩阵求逆运算的装置和方法。本发明可在信号处理、图像处理和通信等系统中应用。
在本实例中,取余数基{215,216-1,215-1}为例,设计了映射和解映射、二进制与余数系统转换、RNS整数数值缩放以及RNS整数符号检测等,详细描述对四阶正定Hermite矩阵RNS矩阵求逆。
图1示出了基于RNS的矩阵求逆运算实现结构。由于在同等位宽下,RNS的动态范围、有符号数表示范围与传统的二进制补码系统(TCS)不同,映射模块101完成两者的动态范围映射,使得RNS和TCS的正负数表示在数值上保持一致。二进制到余数系统转换器(B2R)102将映射后的整数转换到余数系统,其基本操作为用映射后的整数对各余数基进行模运算,取余数作为各通道的运算数据。在B2R模块中所采用的余数基个数决定了基于RNS的数据处理单元103的独立运算通道个数,每个独立运算通道均由模加法器、模乘法器和控制逻辑构成。在本实施例中,实现四阶正定Hermite矩阵求逆运算,需要完成分别完成二阶、三阶和四阶行列式的运算,之后,要对处理后的数据进行符号检测104和数值缩放105。余数系统到二进制转换模块(R2B)106将103的计算结果转换为二进制整数,解映射模块107根据RNS的有符号数表示范围进行调整使之与TCS相同。
图1与图4——图1中,数据处理单元103输出连接符号检测104和数值缩放105,然后直接输入R2B106;图4是基于RNS的四阶正定Hermite矩阵求逆结构,其中,信号clk、rst和en分别为全局的时钟、复位和使能信号,在数据运算403完成后,输出两个数据,一是三阶行列式值Mdet3,另一个是四阶行列式值Mdet4;然后,四阶行列式值Mdet4直接输入到R2B模块407和解映射模块408,最后再经第一截位模块409(1)处理,得到最终的原矩阵的四阶行列式值DET;而三阶行列式值Mdet3输入到三级寄存器404、符号检测405和数值缩放模块406处理后,再输入到R2B模块407和解映射模块408,最后再经第二截位模块409(2)处理,得到最终的原矩阵的伴随矩阵元素输出AMT。
图4与图7——图7是基于RNS的数据运算单元,对应于图4中403模块,它主要用于完成三阶和四阶行列式的计算,四阶行列式是在三阶的基础上计算得到的,而三阶又是在二阶的基础上计算得到的,因此,最初先完成二阶行列式的计算。
图2示出了TCS到RNS动态范围映射模块。加法器201对输入的整数X加上常数M(M是余数基为{m1,m2,...,mL}的RNS所能表示的整数动态范围),若X的符号sign(X)为1(即为负数),则选择器202将加法器201的运算结果作为输出,否则直接将X作为输出。
图3示出了RNS到TCS解映射模块。解映射模块与映射模块101实现的操作相反,首先经R/B转换后得到二进制无符号整数X,比较器301判断X在RNS数域范围内的符号特性。二进制补码加法器302对输入的整数X减去常数M,若X的符号sign(X)为1(即为负数),则选择器303将加法器302的运算结果作为输出,否则直接将X作为输出。
图4是根据本实例配置的基于RNS的四阶正定Hermite矩阵求逆实现结构示意图。本实施例中选择的余数基为{215,216-1,215-1},经映射模块401后的整数位宽为46比特(所选余数基的动态范围为46比特,所以这里的经401后出来的结果也对应的是46比特),结合余数基{215,216-1,215-1},则映射模块401和解映射模块408中的M取值为70365522984960。B2R模块402实现对输入二进制整数的余数基,也即对模215、模216-1和模215-1进行运算。数据运算模块403用于依次完成二阶、三阶和四阶行列式的计算,其输出分为两部分,一部分是三阶行列式值Mdet3,另一部分是四阶行列式值Mdet4。对于模块403的输出Mdet3做三级寄存404、符号检测405和数值缩放406,防止后续运算出现溢出。R2B模块407分别将伴随矩阵和四阶行列式运算得到的RNS整数转换为二进制整数。截位模块409根据性能需求对解映射的输出做相应的截位操作。
图5是根据本实施例配置的B2R模块示意图。本实施例中选择的余数基为{215,216-1,215-1},经映射模块101后的整数位宽为46比特(所选余数基的动态范围为46比特,所以这里的经401后出来的结果也对应的是46比特)。501完成模215运算,直接取输入数据的低15比特作为该通道的余数x1;502和503分别对输入数据最高位补2个0和14个0,使扩展后的数据宽度分别为16和15的整数倍;N21为502输出数据的第47~32比特,N22为502输出数据的第31~16比特,N23为502输出数据的第15~0比特;N31为503输出数据的第59~45比特,N32为503输出数据的第44~30比特,N33为503输出数据的第29~15比特,N34为503输出数据的第14~0比特。模216-1加法器504对N21、N22和N23进行模加运算得到该通道的余数x2;模215-1加法器505对N31、N32、N33和N34进行模加运算得到该通道的余数x3,选择器510对N31和N34的和做一个选通,如果它们的和为全1,则输出0,否则输出为该和。延迟单元506为一级寄存器,延迟单元507为二级寄存器,延迟单元508为三级寄存器。
图6是根据本实施例配置中的余数系统到二进制系统转换(R2B)单元示意图。在本发明实施例中,先将选定的余数基排序为{215,216-1,215-1}(用{m1,m2,m3}来表示),在R2B模块中各余数通道对应的输入为x1、x2和x3。令X1=x1,模块614用于计算式(2):
式(2)中的k1为满足k1×m3=1 mod m2,在此算得k1=65533。最终的R2B输出可由下式算得:
其中公式(3)中的k2为满足k2×m2×m3=1 mod m1,在此算得k2=1。式(3)可化简为:
X=T2+T3 (4)
其中
模块615用于计算T1,模块606用于计算T2,模块616用于计算T3。延迟单元604为一级寄存器。延迟单元601为二级寄存器。
图7是根据本实施例配置的基于RNS的某一数据通路的数据运算单元示意图,用来计算二阶,三阶和四阶的行列式,对应于图4中403。模块701实现对输入数据的分配操作。模块702实现单个二阶行列式的计算;704实现单个三阶行列式的计算,其输出即为伴随矩阵的输出;709用于计算四阶行列。模块707用于计算全部的二阶行列式,708用于计算全部的三阶行列式。707和708模块的实现结构分别见图8和图9。延迟单元703为一级寄存器。根据Hermite矩阵的性质,Hermite矩阵的伴随矩阵还是Hermite矩阵,因此,对于四阶的伴随矩阵,仅输出其下三角的10个元素。设原矩阵为A=(aij)4×4,其伴随矩阵可表示为A*=(Aji)4×4,其中aij为矩阵A的第i行第j列的元素,Aji为aij的代数余子式。伴随矩阵的下三角十个元素的计算公式如式(9)~式(18),以A11为例,其中a22表示矩阵A第二行第二列的元素,DET3434表示原矩阵A第三行第四行第三列第四列交叉得到的二阶子式,即如式(8)所示。
A11=a22×DET3434-a32×DET2434+a42×DET2334 (9)
A12=-(a12×DET3434-a32×DET1434+a42×DET1334) (10)
A13=a12×DET2434-a22×DET1434+a42×DET1234 (11)
A14=-(a12×DET2334-a22×DET1334+a32×DET1234) (12)
A22=a11×DET3434-a31×DET1434+a41×DET1334 (13)
A23=-(a11×DET2434-a21×DET1434+a41×DET1234) (14)
A24=a11×DET2334-a21×DET1334+a31×DET1234 (15)
A33=a11×DET2424-a21×DET1424+a41×DET1224 (16)
A34=-(a11×DET2324-a21×DET1324+a31×DET1224) (17)
A44=a11×DET2323-a31×DET1323+a31×DET1223 (18)
数据运算模块首先对前一模块送来的信源数据进行第一数据分配模块701(1),分别用于计算后续的二阶行列式702,所得结果再经第二数据分配模块701(2)进行分配,与矩阵A的相应元素进行乘加运算,在模块704中完成三阶行列式值的计算,三阶行列式值与矩阵A相应元素再经第三数据分配模块701(3)处理后,输入到709模块中完成四阶行列式的计算。伴随矩阵元素计算分配方案参见表1。
表1伴随矩阵元素计算分配方案
如表1所示,设计需要计算互不相同的三阶行列式10个,在4个时钟周期全部完成,前三个时钟周期每次完成3个三阶行列式计算,最后一个时钟内完成1个三阶行列式计算。下面以计算第一组伴随矩阵元素A14,A24,A34为例说明如何对输入信源数据分配。计算上述三个伴随矩阵元素需要用到的六个二阶行列式如表1所示,对应需要的不重复的信源矩阵元素为a32,a42,a33,a43,a22,a41,a31,a21,数据分配模块即选择上述八个元素对应地输入到各二阶行列式计算模块D2中,二阶行列式计算完毕后,再一次的数据分配执行选择信源数据的延时数据与上述二阶行列式计算结果,进行各三阶行列式计算。各组数据选择原理与之类似。
四阶行列式的计算如式(19)所示。前三个时钟周期每次有3个三阶行列式的计算结果到达图4中的模块STORE_DET3中的数据选择模块,数据选择模块依次选出A14,A13,A12和A11,与STORE_DET3中输出的信源矩阵的时延数据一并送入乘法器,计算结果存入寄存器,在以后的三个时钟周期内,每个时钟周期得到一个类似的结果,均存入寄存器,最后将四个寄存器的值相加即可得四阶行列式的值。
|A|=a11×A11+a21×A21+a31×A31+a41×A41 (19)
依此类推,对比图7和图8可以看出,N阶行列式的结构是在N-1阶行列式结构的基础上,再分别在下面增加一个模乘法器和一个模加法器。
图8是根据本实施例配置的基于RNS的二阶行列式运算模块707中运算单元DET2示意图。其中,模乘法器801为各余数运算通道中的模乘法器,输入与该通道的余数分量有关,mi通道中实现模mi乘法运算,例如:215通道中实现模215乘法运算、215-1通道中实现模215-1乘法运算。模减法器802用模加法器来实现,对输入的减数根据余数通道做相应的变换,mi通道中,若mi=2P,则减数应为P比特的补码,而若mi=2P-1,则减数为P比特的反码,例如:215通道中减数应该为其15比特的补码,215-1通道中减数为其15比特的反码,216-1通道中减数为其16比特的反码。(图7中DET2的输入就是映射之后的输出,801(2)的输出为减数)。
图9是根据本实例配置的基于RNS的三阶行列式运算模块708中运算单元DET3示意图。模乘法器901为各余数运算通道中的模乘法器,输入与该通道的余数基mi有关,其中的一个输入为二阶行列式的输出DET2_1、DET2_2、DET2_3,另外一个输入为经延迟后的B2R的输出a1、a2、a3(a1、a2、a3是相同的)。模减法器902用模加法器来实现,对输入的减数根据余数通道做相应的变换,mi通道中,若mi=2P,则减数应为P比特的补码,而若mi=2P-1,则减数为P比特的反码,例如:215通道中减数应该为其15比特的补码,215-1通道中减数为其15比特的反码。模加法器903为各余数通道的模加法器。(901(2)的输出为减数)。
图10是根据本实施例配置中的复数模乘法器示意图。与TCS中的复数乘法器类似,1001完成特定余数运算通道的模乘法运算,最后1002和1003分别完成模减法和模加法运算。(1001(2)的输出为减数)。
基于RNS的矩阵求逆运算可以用DSP、FPGA或ASIC等大规模集成电路或是专用数字处理器、通用计算机结合算法软件、计算机代码来实现。
B2R
从普通二进制到到余数系统的转换称为“余数系统的前向转换(B2R)”。余数系统与普通二进制系统之间的转换,均依赖于一定的余数基。本模块中采用的余数基就为{2n,2n+1-1,2n-1},其中n=15。本模块的功能就是用于得到基于这组余数基的余数。B2R模块的输入数据是一个46比特的二进制数据datin,得到的输出是15比特的rem32768、16比特的rem65535和15比特的rem32767,分别代表模32768、65535和32767之后的余数。具体算法如下:
①模32768
要得到模32768的余数,只需要截取输入数据的低15位作为输出即可,即。
rem32768=datin[14:0] (0-20)
②模65535
将输入的datin高位补零扩为48位的datin_new然后进行如下式(0-21)的操作。
rem65535=<N21+N22+N23>65535 (0-21)
其中N1、N2、N3均为16比特的二进制流:
要完成式(0-21)的操作,需要两个模65535的加法器。
③模32767
将输入的datin高位补零扩为60位的datin_new1然后进行如式(0-23)的操作。
rem32767=<N31+N32+N33+N34>32767 (0-23)
其中N1、N2、N3、N4均为15比特的二进制流:
由于N1的最大值是二进制流000_0000_0000_0001,可以用一个简单的选择器和二进制加法器来替代一个模32767的加法器。
在这里需要用到两个模32767的加法器和一个15-bit二进制加法器。
R2B
由于在矩阵求逆的RNS设计时,我们采用了{215,216-1,215-1}这样的一组余数基,用{m1,m2,m3}表示,其动态范围为[0,M-1],其中M=215×(216-1)×(215-1)。一个在动态内的二进制数X可以表示为(x1,x2,x3)。x1、x2、x3的值由以下式子给出:
R2B的算法如下:
X1=x1 (0-28)
其中公式(0-29)中的k1为满足k1×m3=1 mod m2,在此算得k1=65533。
其中公式(0-30)中的k2为满足k2×m2×m3=1 mod m1,在此算得k2=1,X则为R2B的最终输出。
而公式(0-29)可以做如下简化:
Claims (4)
1.一种基于余数系统的矩阵求逆装置,其特征在于,包含:
映射模块,将二进制补码系统TCS的整数映射到余数系统RNS表示范围中,使上述整数在RNS中正负整数表示与TCS一致;
二进制到余数系统转换模块B2R,实现余数基为{m1,m2,...,mL}的二进制整数到RNS整数的转换,其中L为正整数,选择余数基{m1,m2,...,mL}为{215,216-1,215-1};
基于RNS的多通道n阶矩阵求逆运算单元;
符号检测模块;
数值缩放模块;
余数系统到二进制转换模块R2B,实现余数基为{m1,m2,...,mL}的RNS整数到二进制整数的转换;
解映射模块,将R2B模块转换的结果映射到与TCS一致的整数表示范围内,使在RNS中正负整数表示与TCS一致;
所述多通道n阶矩阵求逆运算单元是四阶正定Hermite矩阵的求逆运算单元,由n阶伴随矩阵A*和n阶行列式|A|,依据求逆,最后仅输出矩阵所需的行列式值及原矩阵的伴随矩阵元素,所述四阶正定Hermite矩阵的求逆运算单元包括四阶伴随矩阵运算单元和四阶行列式运算单元;所述四阶伴随矩阵运算单元和所述四阶行列式运算单元采用余数基{215,216-1,215-1}进行余数通道处理;其中:
所述四阶伴随矩阵运算单元包含3个余数运算通道,所述每个余数运算通道分别进行模215、模216-1和模215-1的二阶和三阶行列式运算,得到三阶行列式值,通过加法器和乘法器组合实现;
所述四阶行列式运算单元包含3个余数运算通道,所述每个余数运算通道在三阶行列式输出的基础上分别进行模215、模216-1和模215-1的四阶行列式运算,得到四阶行列式值,通过加法器和乘法器组合实现;
所述乘法器均为复数模215、模216-1和模215-1乘法器,所述各余数通道对两个RNS复整数进行模乘运算;
所述符号检测模块,对余数基为{215,216-1,215-1}的RNS整数进行符号判断,若为负数则输出“1”,否则输出“0”;
所述数值缩放模块,对余数基为{215,216-1,215-1}的RNS整数进行215除法,使其运算结果在RNS表示的动态范围内;
经过所述二进制到余数系统转换模块B2R转换后的余数值输入四阶正定Hermite矩阵的求逆运算单元计算后,得到的四阶行列式值经过余数系统到二进制转换模块R2B、解映射模块和第一截位模块处理得到第一输出值,即为原矩阵的行列式值;
并且,经过四阶正定Hermite矩阵的求逆运算单元计算后,得到的三阶行列式值经过符号检测模块、三级寄存器和数值缩放处理模块后得到的数值,再由余数系统到二进制转换模块R2B、解映射模块和第二截位模块处理得到第二输出值,即为原矩阵的伴随矩阵元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101356950A CN102184161B (zh) | 2011-05-24 | 2011-05-24 | 基于余数系统的矩阵求逆装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101356950A CN102184161B (zh) | 2011-05-24 | 2011-05-24 | 基于余数系统的矩阵求逆装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184161A CN102184161A (zh) | 2011-09-14 |
CN102184161B true CN102184161B (zh) | 2013-11-20 |
Family
ID=44570338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101356950A Expired - Fee Related CN102184161B (zh) | 2011-05-24 | 2011-05-24 | 基于余数系统的矩阵求逆装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184161B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662918B (zh) * | 2012-04-28 | 2015-04-22 | 电子科技大学 | 基于伴随矩阵的四阶以下正定Hermite矩阵求逆的硬件架构及实现方法 |
CN102880594B (zh) * | 2012-10-17 | 2015-11-18 | 电子科技大学 | 基于多核dsp的并行矩阵全选主元高斯约旦求逆方法 |
CN102930097B (zh) * | 2012-10-29 | 2014-11-05 | 电子科技大学 | 一种rns比较器 |
CN104536943B (zh) * | 2015-01-13 | 2017-08-29 | 江苏中兴微通信息科技有限公司 | 一种低除法量的矩阵求逆定点实现方法及装置 |
CN105278923B (zh) * | 2015-10-22 | 2017-10-03 | 合肥工业大学 | 一种基于aic信息准则的信号源个数估计硬件电路及其实现方法 |
CN110263295B (zh) * | 2019-05-18 | 2023-06-23 | 南京惟心光电系统有限公司 | 一种基于光电计算阵列的矩阵向量乘法器的运算优化方法 |
CN112614079B (zh) * | 2020-12-31 | 2023-06-16 | 东方红卫星移动通信有限公司 | 一种基于余数系统的光斑图像处理方法、系统及计算机存储介质 |
US20230221927A1 (en) * | 2022-01-12 | 2023-07-13 | Kneron Inc. | K-cluster residue number system capable of performing complement conversion, sign detection, magnitude comparison and division |
CN114417250B (zh) * | 2022-01-24 | 2024-03-08 | 合肥工业大学 | 一种面向FPGA结构的高效capon计算方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043760A (zh) * | 2010-12-27 | 2011-05-04 | 上海华为技术有限公司 | 数据处理方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100943514B1 (ko) * | 2007-12-18 | 2010-02-22 | 한국전자통신연구원 | 역행렬의 행벡터 크기 비교 장치 및 방법 |
-
2011
- 2011-05-24 CN CN2011101356950A patent/CN102184161B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043760A (zh) * | 2010-12-27 | 2011-05-04 | 上海华为技术有限公司 | 数据处理方法及系统 |
Non-Patent Citations (2)
Title |
---|
基于余数系统的数字信号处理VLSI关键技术研究;马上;《中国博士学位论文电子期刊网》;20110515;全文 * |
马上.基于余数系统的数字信号处理VLSI关键技术研究.《中国博士学位论文电子期刊网》.2011,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102184161A (zh) | 2011-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102184161B (zh) | 基于余数系统的矩阵求逆装置及方法 | |
Vun et al. | A new RNS based DA approach for inner product computation | |
Takagi et al. | Modular multiplication hardware algorithms with a redundant representation and their application to RSA cryptosystem | |
KR100756137B1 (ko) | 제산 및 제곱근 연산 유닛 | |
WO2001046795A2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
KR100591761B1 (ko) | 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법 | |
CN101295237B (zh) | 求商和余数的高速除法器 | |
CN111401533B (zh) | 一种神经网络专用计算阵列及其计算方法 | |
CN104699452A (zh) | 一种素域gf(p)下实现位宽可变的模乘法器 | |
Didier et al. | A generalization of a fast RNS conversion for a new 4-modulus base | |
CN102184160B (zh) | 基于余数系统的快速傅立叶变换系统 | |
Rafiq et al. | An efficient architecture of modified booth multiplier using hybrid adder | |
CN109284085A (zh) | 一种基于fpga的高速模乘和模幂运算方法及模型 | |
CN115268839A (zh) | 一种以2为基的蒙哥马利模乘方法及装置 | |
Premkumar et al. | High-speed and low-cost reverse converters for the (2n-1, 2n, 2n+ 1) moduli set | |
JP3660075B2 (ja) | 除算装置 | |
CN113791753A (zh) | 一种基于fpga的支持快速除法的可编程dsp | |
Rezai et al. | Algorithm design and theoretical analysis of a novel CMM modular exponentiation algorithm for large integers | |
Liang et al. | An innovative Booth algorithm | |
Stamenković et al. | Constant-coefficient FIR filters based on residue number system arithmetic | |
Moayedi et al. | Design and evaluation of novel effective Montgomery modular multiplication architecture | |
Nibouche et al. | New architectures for serial-serial multiplication | |
Vishwanath | Optimized Counter Design for Accelerated Summation in Digital Signal Processing Systems | |
Vidyadhar et al. | Even-Odd Sorting Network for Fast Binary Counters | |
Balamanikandan et al. | Approximate Binary Stacking Counters For Error Tolerant Computing Multipliers |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |