首页> 中国专利> 一种基于GPP和SIMD技术的信道编译码的数据格式转换方法

一种基于GPP和SIMD技术的信道编译码的数据格式转换方法

摘要

一种基于GPP和SIMD技术的信道编译码的数据格式转换方法,其中编码前的处理是先将字长为n个字节的输入数据流A

著录项

  • 公开/公告号CN103746771A

    专利类型发明专利

  • 公开/公告日2014-04-23

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201310729424.7

  • 发明设计人 牛凯;丁忆南;贺志强;

    申请日2013-12-26

  • 分类号H04L1/00;

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人夏宪富

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2024-02-19 23:32:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    授权

    授权

  • 2014-05-21

    实质审查的生效 IPC(主分类):H04L1/00 申请日:20131226

    实质审查的生效

  • 2014-04-23

    公开

    公开

说明书

技术领域

本发明涉及一种基于通用处理器GPP(General Purpose Processor)和单指 令多数据流SIMD(Single Instruction Multiple Data)技术的信道编译码的数据 格式转换方法,属于通信编译码的技术领域。

背景技术

在信道编码技术中,如Turbo码、低密度奇偶校验LDPC(Low Density Parity  Check)码和卷积码等,由于其纠错性能优越,近10年来在高速无线通信制式 (3G或4G的系统)中得到了广泛使用。例如,在长期演进技术LTE/长期演进 技术升级版LTE-A(Long Term Evolution/Long Term Evolution Advanced)的系 统中,使用了Turbo码和卷积码;在802.11系统中,使用了LDPC码和卷积码。

此类信道的编码译码具有极高的时间复杂度,即需要耗费大量的计算时间。 然而,新兴的无线通信制式又是面向大数据量的通信手段。传统的通信实现方 案大都是基于硬件处理平台,硬件平台具有下述多个问题:成本高,平台适用 范围局限,调试过程繁琐,开发周期长,程序升级不便等。

近5年来,以通用处理器GPP平台为基础的软件无线电正在逐渐成熟。在 克服了硬件平台上述缺点的同时,软件无线电技术在运算速度上也存在瓶颈。 如何减少信道编码译码带来的计算复杂度,降低时间延迟,已经成为打破通信 系统传输速率瓶颈的主要方法。

在GPP平台上,数据的传输和存储都是以字节为基本单位,因此在计算过 程中,大多以字节为最小计算单位。而在通信系统中,信息是以比特形式存储 或处理的,也就是按照比特执行:以一个比特表示一个单位信息,被称之为比 特形式。在GPP平台上,目前最高效的信道编译码实现算法都是以字节作为最 小计算单位,即以一个字节表示一个比特信息,被称之为字节形式。因此,信 道编码必须具有将数据流的比特形式转换为字节形式的数据格式转换功能。如 何完成数据流的比特形式与字节形式的相互转换功能,已经成为当前不可避免 的信道编码前端的数据格式转换功能和信道译码后端的数据格式转换功能。

信道编码的数据格式转换的目的是:将字长为n个字节的比特形式的输入 数据流A0A1A2...An-1转换为字长为8n个字节的字节形式的输出数据流B0B1B2...B8n-1。 因为任意一个Ag(0≤g≤n-1)和Bh(0≤h≤8n-1)都是1个字节,即字长为8个比特, 其下标数字越小,代表其完成的数据格式转换也越早。其中, Ag=(a8ga8g+1a8g+2a8g+3a8g+4a8g+5a8g+6a8g+7),因其中任意一个元素a都是1个比特,a的 下标数字越小,代表越靠近其所在字节的低位,Bh=(ah0000000),ah为输入数据 流A中的第h个比特,其位于Bh字节中的最低位。

信道译码的数据格式转换的目的是完成上述信道编码的逆操作:将字长为 8n个字节的字节形式的输入数据流C0C1C2...C8n-1转换为字长为n个字节的比特形 式的输出数据流D0D1D2...Dn-1。因为任意一个Cl(0≤l≤8n-1)和De(0≤e≤n-1)都是1 个字节,即字长为8个比特,其下标数字越小,代表其完成的数据格式转换也 越早。其中,Cl=(dl0000000),dl为输出数据流D中的第l个比特,其位于Cl字 节中的最低位;De=(d8ed8e+1d8e+2d8e+3d8e+4d8e+5d8e+6d8e+7),而其中任意一个元素d都是 1个比特,d的下标数字越小,代表其越靠近所在字节的低位。

在GPP架构下的信道编码数据格式转换的传统方法是:使用基于移位和 “与”的操作完成的。以单字节A0为例,将其转化为8个字节B0B1B2B3B4B5B6B7时, 该字节A0=(a0a1a2a3a4a5a6a7)要循环执行8次下述操作:每次操作内容都是 Bf=(A0<<f)&1,其中,f为字节序号,且0≤f≤7;这样,当f=4时, B4=(A0<<4)&1=(a4a5a6a70000)&(10000000)=(a40000000)。因此,将输入数据流 A0A1A2...An-1转换成输出数据流B0B1B2...B8n-1时,就需要循环执行上述操作n次:每 次循环只是完成输入数据流中一个字节的转换,即第g(0≤g≤n-1)次循环是完成 前述将Ag转换为B8gB8g+1B8g+2B8g+3B8g+4B8g+5B8g+6B8g+7的操作;也就是上述第g次循环 都包含有8次子循环,每次子循环转换一个比特,即第f(0≤f≤7)次子循环完 成B8g+f=(Ag<<f)&1的操作。

在GPP架构下的信道译码的数据格式转换传统方法是:基于“移位”和“异 或”的操作完成的。以8个字节C0C1C2C3C4C5C6C7为例,将其转化为1个字节D0时, 其中的Cq=(dq0000000);先使得D0=0=(00000000),再循环执行8次下述操作: 每次操作内容为:D0=D0^(Cq>>q),其中,q为字节序号,且0≤q≤7。这样, 当q=4时,D0=D0^(C4>>4)=(d0d1d2d30000)^(0000d4000)=(d0d1d2d3d4000)。而将输 入数据流C0C1C2...C8n-1转换成输出数据流D0D1D2...Dn-1,就要循环执行n次上述操 作,每次循环完成输入数据流中的8个字节的转换,即第e(0≤e≤n-1)次循环是 完成将C8eC8e+1C8e+2C8e+3C8e+4C8e+5C8e+6C8e+7转换为De。上述的第e次循环操作内容是: 先将De=0,再进行8次子循环,每次子循环转换一个比特,即第q(0≤q≤7)次 子循环完成De=De^(C8e+q>>q)的操作。

上述两种传统方法的缺点是:每次运算的操作单位只有1个字节,进行“移 位”、“与”、“异或”等操作时,效率偏低。因此,如何提高编码和译码的操作效 率,解决处理速度问题,已经成为业内科技人员关注的焦点课题。

单指令流多数据流SIMD(Single Instruction Multiple Data)是一种采用一 个控制器来控制多个处理器,同时对一组数据(又称“数据矢量”)中的每一个 数据分别执行相同的操作,从而实现空间上的并行性处理的技术。在微处理器 中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元,例如Intel 的MMX或SSE以及AMD的3D Now技术。

发明内容

有鉴于此,本发明的目的是提供一种基于通用处理器GPP(General Purpose  Processor)和单指令多数据流SIMD(Single Instruction Multiple Data)技术的 信道编译码的数据格式转换方法,该方法在保证传输性能和编译码正确性的基 础上,重新设计SIMD适用的转换算法,使用SIMD并行操作指令,大大加快 转换速度;因本发明是采用GPP芯片实现的,具有成本低、可移植性好、调试 简单和升级简便等特点。

为了达到上述目的,本发明提供了一种基于通用处理器GPP(General  Purpose Processor)和单指令多数据流SIMD(Single Instruction Multiple Data) 的信道编码前的数据格式转换方法,其特征在于:先将字长为n个字节的输入 数据流A0A1A2...An-1封装为s个长度为M的SIMD格式数据,使其数据格式并行化, 能够适用于SIMD指令而对其执行并行的“映射”操作:将输入数据流的每个 字节复制为8个字节,即将其转换为第一中间数据流E0E1...E8n-1;再对第一中间 数据流E0E1...E8n-1执行并行的“与”操作,提取各个比特信息后,将其转换为第 二中间数据流F0F1...F8n-1;最后对第二中间数据流F0F1...F8n-1执行并行的“选取较 小值”操作,将各个比特信息移到其所在的字节的最低位,生成字长为8n个字 节的输出数据流B0B1B2...B8n-1;其中,字节长度n=M×s,自然数M和s分别是 SIMD封装数据的长度和个数。

所述方法包括下列操作步骤:

(1)执行并行的“映射”SIMD指令,完成数据复制操作:

依次对s个SIMD封装数据使用“映射”SIMD指令,“映射”SIMD指令的X 输入的SIMD封装数据为AtM+0,AtM+1,...,AtM+M-1,且每个X输入数据都要参与8次内 层循环;其中,t为执行“映射”SIMD指令外层循环的操作次数序号,其取值 范围是[0,s-1];u为执行“映射”SIMD指令内层循环的操作次数序号,其取值 范围是[0,7];则第t次外层循环的第u次内层循环的“映射”SIMD指令的Y输入 的SIMD封装数据为:

{M8u,M8u,M8u,M8u,M8u,M8u,M8u,M8u,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,...,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1},则完成该“映射”SIMD指令后,得到的第一中间数据流Z为:

E8tM+uM+0,E8tM+uM+1,...,E8tM+uM+M-1

(2)执行并行的“与”SIMD指令,完成提取比特位的操作:

依次对8s个封装数据执行并行的“与”SIMD指令,该“与”SIMD指令的X 输入的SIMD封装数据为第一中间数据流Z:ErM+0,ErM+1,...,ErM+M-1,“与”SIMD指 令的Y输入的SIMD封装数据为:

{1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,...,1,2,4,8,16,32,64,128};其中,r为执行“与” SIMD指令的操作次数序号,其取值范围是[0,8s-1];则完成该“与”SIMD指令 后,得到的第二中间数据流Z为:FrM+0,FrM+1,...,FrM+M-1

(3)执行并行的“选取较小值”SIMD指令,完成将有效比特位移到其所 在字节的最低位操作:

依次对8s个SIMD封装数据执行“选取较小值”SIMD指令,“选取较小值” SIMD指令的X输入的SIMD封装数据为FjM+0,FjM+1,...,FjM+M-1,再设置“选取较小 值”SIMD指令的Y输入的SIMD封装数据为{1,1,...,1};其中,j为执行“选取较小 值”SIMD指令的操作次数序号,其取值范围是[0,8s-1];则完成该“选取较小 值”SIMD指令后,得到的最终输出数据流Z为:BjM+0,BjM+1,...,BjM+M-1

为了达到上述目的,本发明还提供了一种基于GPP和SIMD的信道译码后 的数据格式转换方法,其特征在于:将字长为8n个字节的输入数据流C0C1C2...C8n-1封装为8s个长度为M的SIMD封装格式数据,使其数据格式并行化,能够适用 于SIMD指令结构而对其执行并行的“判断是否相等”操作,将各个比特信息 移到其所在的字节的最高位,从而将其转换为中间数据流G0G1...G8n-1;再对该中 间数据流G0G1...G8n-1执行并行的“选取最高位组合”操作,生成字长为n个字节 的输出数据流D0D1D2...Dn-1;其中,n=M×s,自然数M和s分别是SIMD封装数 据的长度和个数。

所述方法包括下列操作步骤:

(1)使用并行的“判断是否相等”SIMD指令,完成将有效比特位移到所 在字节的最高位的操作:

依次对8s个SIMD封装数据使用“判断是否相等”SIMD指令,“判断是否 相等”SIMD指令的X输入的封装数据为CkM+0,CkM+1,...,CkM+M-1,“判断是否相等” SIMD指令的Y输入的封装数据为{1,1,...,1};其中,k为执行“判断是否相等”SIMD 指令的操作次数序号,其取值范围是[0,8s-1];则完成该“判断是否相等”SIMD 指令后,得到的中间数据流Z为:GkM+0,GkM+1,...,GkM+M-1

(2)使用并行的“选取最高位组合”SIMD指令完成将连续的8个字节的 每个字节的最高位合并为1个字节的操作:

依次对s个SIMD封装数据使用“选取最高位组合”SIMD指令,“选取最 高位组合”SIMD指令的X输入的封装数据为G8wM+0,G8wM+1,...,G8wM+8M-1;其中,w 为执行“选取最高位组合”SIMD指令的操作次数序号,其取值范围是[0,s-1]; 则完成该“选取最高位组合”SIMD指令后,得到的最终输出数据流Z为: DwM+0,DwM+1,...,DwM+M-1

本发明方法的创新关键技术是:充分利用GPP芯片多核、多处理器的特点, 完成了高速、通用的信道编译码的优化处理。与传统的基于移位操作的方法相 比较,本发明的处理速度大大加快,其中信道编码前的数据转换是将输入数据 流进行映射操作,封装为SIMD数据格式,使其数据格式并行化,能够适用于 SIMD指令和执行SIMD算法,提高处理并行度。信道译码后的数据格式转换 方法的优点是节省存取操作,简化转换流程。

本发明的另一创新之处是:在GPP芯片下利用单指令多数据流SIMD技术, 使用并行计算处理,提高计算速度。因为每条SIMD指令都能够对两组(或只 对其中一组)各自包含M个数据元素的封装数据(X0,X1,...XM-1和Y0,Y1,...YM-1)执 行并行操作,使得每对数据元素Xi,Yi(0≤i≤M-1)同时执行相同操作(本发明方 法是包括映射、与、选取较小值、判断是否相等,选取最高位组合的其中之一)。 得到的M个计算结果,又被作为数据元素被封装于一组数据(Z0,Z1,...ZM-1)内, 因此,使用SIMD指令能明显提高数据在GPP芯片内的运算速度。

总之,本发明具有很好的推广应用前景。

附图说明

图1是本发明信道编码前的数据格式转换方法操作步骤流程图。

图2是“映射”SIMD指令的操作内容示意图。

图3是“与”SIMD指令的操作内容示意图。

图4是“选取较小值”SIMD指令的操作内容示意图。

图5是本发明信道译码后的数据格式转换方法操作步骤流程图。

图6是“判断是否相等”SIMD指令的操作内容示意图。

图7是“选取最高位组合”SIMD指令的操作内容示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作 进一步的详细描述。

单指令流多数据流SIMD(Single Instruction Multiple Data)是一种采用一 个控制器来控制多个处理器,同时对一组数据(又称“数据矢量”)中的每一个 数据分别执行相同的操作,从而实现空间上的并行性处理的技术。在微处理器 中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元,例如Intel 的MMX或SSE以及AMD的3D Now技术。

本发明方法中采用的SIMD技术在执行每条指令时,能够并行地对两组各 自包含M个元素的SIMD封装数据X0,X1,...XM-1和Y0,Y1,...YM-1执行包括判断是否 相等和选取最高位组合的各种操作(执行每条SIMD指令时,也能只处理一组 封装数据)。且此时,每对数据元素Xi和Yi同时执行相同操作,其中,i是SIMD 封装数据中的数据序号,其取值范围为[0,M-1];再将所得到的M个计算结果作 为数据元素被封装在一组SIMD格式封装数据Z0,Z1,...ZM-1中;其中,封装数据 的比特长度P=64×2p;数据元素类型为字节时,所对应的Q=8,其中,SIMD 封装数据的长度M取决于封装数据的比特长度P和数据元素类型所占的比特长 度Q,其计算公式为其中,封装数据的比特长度P=64×2p,p为自然数; 数据元素类型为字时,所对应的Q=8,数据元素类型为字节时,所对应的Q=16。

本发明基于GPP和SIMD技术的信道编码前的数据格式转换方法是:先将 字长为n个字节的输入数据流A0A1A2...An-1封装为s个长度为M的SIMD格式数 据,使其数据格式并行化,能够适用于SIMD指令而对其执行并行的“映射” 操作:将输入数据流的每个字节复制为8个字节,即将其转换为第一中间数据 流E0E1...E8n-1;再对第一中间数据流E0E1...E8n-1执行并行的“与”操作,提取各个 比特信息后,将其转换为第二中间数据流F0F1...F8n-1;最后对第二中间数据流 F0F1...F8n-1执行并行的“选取较小值”操作,将各个比特信息移到其所在的字节 的最低位,生成字长为8n个字节的输出数据流B0B1B2...B8n-1;其中,字节长度 n=M×s,自然数M和s分别是SIMD封装数据的长度和个数。

参见图1,介绍本发明上述方法的具体操作步骤:

步骤1,执行并行的“映射”SIMD指令,完成数据复制操作:

依次对s个SIMD封装数据使用“映射”SIMD指令,“映射”SIMD指令的X 输入的SIMD封装数据为AtM+0,AtM+1,...,AtM+M-1,且每个X输入数据都要参与8次内 层循环;其中,t为执行“映射”SIMD指令外层循环的操作次数序号,其取值 范围是[0,s-1];u为执行“映射”SIMD指令内层循环的操作次数序号,其取值 范围是[0,7];则第t次外层循环的第u次内层循环的“映射”SIMD指令的Y输入 的SIMD封装数据为:

{M8u,M8u,M8u,M8u,M8u,M8u,M8u,M8u,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,M8u+1,...,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1,M8u+M8-1},则完成该“映射”SIMD指令后,得到的第一中间数据流Z为:

E8tM+uM+0,E8tM+uM+1,...,E8tM+uM+M-1

以一个128比特的SIMD封装数据为实施例进行说明:“映射”SIMD指令 的X输入的SIMD封装数据为连续的16个字节的A路数据 A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15,进行8次循环,每次的映射SIMD指令的Y 输入的SIMD封装数据为:

Y={2u,2u,2u,2u,2u,2u,2u,2u,2u+1,2u+1,2u+1,2u+1,2u+1,2u+1,2u+1,2u+1},其 中,0≤u≤7,每次的映射SIMD指令的Z输出中间变量C路数据为:

E16uE16u+1E16u+2E16u+3E16u+4E16u+5E16u+6E16u+7E16u+8E16u+9E16u+10E16u+11E16u+12E16u+13E16u+14E16u+15, 其中前8个字节数据分别等于A2u,后8个字节数据分别等于A2u+1。这样就完成 了将原来的每个字节分别复制为8个字节、并连续存储于一起的操作。

步骤2,执行并行的“与”SIMD指令,完成提取比特位的操作:

依次对8s个封装数据执行并行的“与”SIMD指令,该“与”SIMD指令的X 输入的SIMD封装数据为第一中间数据流Z:ErM+0,ErM+1,...,ErM+M-1,“与”SIMD指 令的Y输入的SIMD封装数据为:

{1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,...,1,2,4,8,16,32,64,128};其中,r为执行“与” SIMD指令的操作次数序号,其取值范围是[0,8s-1];则完成该“与”SIMD指令 后,得到的第二中间数据流Z为:FrM+0,FrM+1,...,FrM+M-1

实施例中,“与”SIMD指令的X输入的SIMD封装数据为步骤1生成的E 路数据,Y输入的SIMD封装数据为Y={1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,...}, “与”SIMD指令的Z输出为中间变量F路数据。

步骤3,执行并行的“选取较小值”SIMD指令,完成将有效比特位移到其 所在字节的最低位操作:

依次对8s个SIMD封装数据执行“选取较小值”SIMD指令,“选取较小值” SIMD指令的X输入的SIMD封装数据为FjM+0,FjM+1,...,FjM+M-1,再设置“选取较小 值”SIMD指令的Y输入的SIMD封装数据为{1,1,...,1};其中,j为执行“选取较小 值”SIMD指令的操作次数序号,其取值范围是[0,8s-1];则完成该“选取较小 值”SIMD指令后,得到的最终输出数据流Z为:BjM+0,BjM+1,...,BjM+M-1

实施例中,“选取较小值”SIMD指令的X输入的SIMD封装数据为步骤2 生成的F路数据,Y输入的SIMD封装数据为Y={1,1,1,1,...},“选取较小值”SIMD 指令的Z输出就是最终的B路数据。

参见图2,介绍“映射”SIMD指令的操作内容:对输入的两组SIMD 封装数据X0,X1,...XM-1和Y0,Y1,...YM-1,并行地完成共M对数据执行“映射”SIMD 指令后,输出的SIMD封装数据为Z0,Z1,...ZM-1;其中,输出的SIMD封装数 据中的第i个元素是以Yi为下标,寻找X0,X1,...XM-1中的对应值,即其中,i是SIMD封装数据中的数据序号,其取值范围为[0,M-1]。

参见图3,介绍“与”SIMD指令的操作内容:对输入的两组封装数据 为X0,X1,...XM-1和Y0,Y1,...YM-1,并行地完成共M对数据执行“与”SIMD指令操 作后,输出的SIMD封装数据为Z0,Z1,...ZM-1;其中,Zi=Xi&Yi;其中,i是 SIMD封装数据中的数据序号,其取值范围为[0,M-1]。

参见图4,介绍“选取较小值”SIMD指令的操作内容:对输入的两组 封装数据为X0,X1,...XM-1和Y0,Y1,...YM-1,并行地完成共M对“选取较小值”SIMD 指令操作后,输出的SIMD封装数据为Z0,Z1,...ZM-1;其中,Zi=min(Xi,Yi);其 中,i是SIMD封装数据中的数据序号,其取值范围为[0,M-1]。

本发明基于GPP和SIMD技术的信道译码后的数据格式转换方法是:将字 长为8n个字节的输入数据流C0C1C2...C8n-1封装为8s个长度为M的SIMD封装格式 数据,使其数据格式并行化,能够适用于SIMD指令结构而对其执行并行的“判 断是否相等”操作,将各个比特信息移到其所在的字节的最高位,从而将其转 换为中间数据流G0G1...G8n-1;再对该中间数据流G0G1...G8n-1执行并行的“选取最高 位组合”操作,生成字长为n个字节的输出数据流D0D1D2...Dn-1;其中,n=M×s, 自然数M和s分别是SIMD封装数据的长度和个数。

参见图5,介绍信道译码后的数据格式转换方法的下列具体操作步骤:

步骤1,使用并行的“判断是否相等”SIMD指令,完成将有效比特位移到 所在字节的最高位的操作:

依次对8s个SIMD封装数据使用“判断是否相等”SIMD指令,“判断是否 相等”SIMD指令的X输入的封装数据为CkM+0,CkM+1,...,CkM+M-1,“判断是否相等” SIMD指令的Y输入的封装数据为{1,1,...,1};其中,k为执行“判断是否相等”SIMD 指令的操作次数序号,其取值范围是[0,8s-1];则完成该“判断是否相等”SIMD 指令后,输出得到的中间数据流Z为:GkM+0,GkM+1,...,GkM+M-1

步骤2,使用并行的“选取最高位组合”SIMD指令完成将连续的8个字节 的每个字节的最高位合并为1个字节的操作:

依次对s个SIMD封装数据使用“选取最高位组合”SIMD指令,“选取最 高位组合”SIMD指令的X输入的封装数据为G8wM+0,G8wM+1,...,G8wM+8M-1;其中,w 为执行“选取最高位组合”SIMD指令的操作次数序号,其取值范围是[0,s-1]; 则完成该“选取最高位组合”SIMD指令后,得到的最终输出数据流Z为: DwM+0,DwM+1,...,DwM+M-1

以一个128比特的SIMD封装为实施例,“选取最高位组合”SIMD指令 的X输入的封装数据为G路数据G0G1G2G3G4G5G6G7G8G9G10G11G12G13G14G15,执行完成 “选取最高位组合”SIMD指令后,得到的Z输出为D路数据;

D0D1=(d0d1d2d3d4d5d6d7)(d8d9d10d11d12d13d14d15),其中do为Go字节中的最高位, 0≤o≤15。

参见图6,介绍“判断是否相等”的SIMD指令的操作内容:对输入的两 组封装数据为X0,X1,...XM-1和Y0,Y1,...YM-1,并行地完成共M对数据执行“判断是否 相等”SIMD指令操作后,输出SIMD封装数据为Z0,Z1,...ZM-1;其中, Zi=Xi==Yi?255:0,“=”号右侧的公式Xi==Yi?255:0为计算机语言中的条件运算 符,表示:若Xi==Yi成立,则Zi=255,即Xi与Yi相等时,Zi赋值为255;若Xi==Yi不成立,则Zi=0,即Xi与Yi不相等时,Zi赋值为0;式中,i是SIMD封装数据 中的数据序号,其取值范围为[0,M-1];

参见图7,介绍“选取最高位组合”的SIMD指令的操作内容:对输入的 封装数据为X0,X1,...X8M-1,并行地完成M对选取最高位组合操作后,输出的封装 数据为Z0,Z1,...ZM-1;其中,

Zi=((X8i&0x80)<<7)^((X8i+1&0x80)<<6)^((X8i+2&0x80)<<5)^((X8i+3&0x80)<<4)                                                                             ;式 ^((X8i+4&0x80)<<3)^((X8i+5&0x80)<<2)^((X8i+6&0x80)<<1)^(X8i+7&0x80)

中,i是SIMD封装数据中的数据序号,其取值范围为[0,M-1]。

本发明已经进行了多次实施试验,仿真实验的参数是:CoreTMi7-3610QM、主频为2.3GHz的CPU芯片上进行传统移位算法和本发明方法的 比较,共处理了655360个比特信息的信道编码前的数据转换和信道译码后的数 据转换所需要的时间:信道编码前的数据转换,传统查表方法共计耗时299纳 秒,本发明方法耗时31纳秒。信道译码后的数据转换,传统查表方法耗时317 纳秒,本发明方法耗时73纳秒。从速度上来看,本发明方法与传统移位算法相 比较,处理速度有了显著提高。

总之,本发明实施例验证了该数据转换方法的良好性能,实验结果是成功 的,实现了发明目的。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发 明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号