CN105005465A - 基于比特或字节并行加速的处理器 - Google Patents
基于比特或字节并行加速的处理器 Download PDFInfo
- Publication number
- CN105005465A CN105005465A CN201510324754.7A CN201510324754A CN105005465A CN 105005465 A CN105005465 A CN 105005465A CN 201510324754 A CN201510324754 A CN 201510324754A CN 105005465 A CN105005465 A CN 105005465A
- Authority
- CN
- China
- Prior art keywords
- module
- interleaving network
- instruction
- data
- computing
- 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.)
- Granted
Links
Landscapes
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于比特或字节流并行加速的处理器,包括:代码区模块,取指与译码模块,地址生成模块、数据区模块、第一交织网络模块、数据通路模块、第二交织网络模块;所述代码区模块与所述取指与译码模块相连,所述取指与译码模块与所述地址生成模块相连,所述地址生成模块与所述数据区模块相连,所述数据区模块与所述第一交织网络模块相连,所述第一交织网络模块与所述数据通路模块相连,所述数据通路模块与所述第二交织网络模块相连。该处理器具有高并行度,高通量,硅面积开销小,功耗小能够提供足够灵活性,在应用需求发生变化时,通过软件编程就可以实现支持,使得产品的生命周期更长。
Description
技术领域
本发明涉及通信领域,具体涉及一种基于比特或字节流并行加速的处理器。
背景技术
目前针对比特流进行加速的电路设计功能较为单一,有的是专门针对加密类应用,主要是支持某一种加密算法。有的是专门用于进行CRC计算,有的专门对信道编码进行加速。实际上,智能设备对这些应用都有需求,如果采用传统方法就需要设计不同的加速模块分别对这些应用提供支持。这样智能设备的造价就会很高,另外由于ASIC方案的灵活性很低,当应用需求发生变化时就需要重新流片,导致芯片的生命周期较短。如果采用通用处理器或者数字信号处理器,可以支持各类算法,但是性能难以满足未来高速通信系统的需求,功耗和硅面积开销也是移动设备难以接受的。
采用多个ASIC模块构成的芯片对加密、CRC、RS解码和其他Galois运算进行加速,硬件设计成本高,灵活性不足,产品生命周期短。
发明内容
针对现有技术中的缺陷,本发明提供了一种基于比特或字节流并行加速的处理器,降低了数据处理的功耗,同时提高了数据处理的高灵活性。
第一方面,本发明提供一种基于比特或字节流并行加速的处理器,包括:
代码区模块,取指与译码模块,地址生成模块、数据区模块、第一交织网络模块、数据通路模块、第二交织网络模块;
所述代码区模块与所述取指与译码模块相连,所述取指与译码模块与所述地址生成模块相连,所述地址生成模块与所述数据区模块相连,所述数据区模块与所述第一交织网络模块相连,所述第一交织网络模块与所述数据通路模块相连,所述数据通路模块与所述第二交织网络模块相连。
可选的,所述取指与译码模块包括指令取指模块和指令译码模块;
所述指令译码模块存储有预设的指令集;
所述译码模块,用于对所述指令取指模块取得的指令进行译码。
可选的,所述地址生成模块包括:内层地址生成模块和外层地址生成模块。
可选的,所述地址生成模块,用于根据所述指令取值模块取得的指令生成待处理数据的地址。
可选的,所述第一交织网络模块和第二交织网络模块用于对输出数据的顺序进行重排。
可选的,所述数据通路模块包括:第三交织网络模块、第一运算模块、静态随机存储器、第四交织网络模块、第二运算模块、第五交织网络模块、第三运算模块、第四运算模块和输出控制模块;
所述第三交织网络模块分别与所述第一运算模块和静态随机存储器的输入端相连,所述第四交织网络模块分别与所述第一运算模块和静态随机存储器的输出端相连,所述第二运算模块与所述第四交织网络模块相连,所述第五交织网络模块与所述第二运算模块相连,所述第三运算模块与所述静态随机存储器和所述第五交织网络模块的输出端相连,所述第三运算模块与所述第四运算模块相连,所述第四交织网络模块、所述第五交织网络模块、所述第三运算模块和所述第四运算模块均与所述输出控制模块相连。
可选的,所述静态随机存储器为多个。
可选的,所有所述静态随机存储器的输出端与所述第四交织网络模块相连;
至少一个静态随机存储器的输出端与所述第三运算模块相连。
可选的,所述静态随机存储器中可用于存储查找表。
可选的,所述数据区模块包括:多个数据存储区域;
所述数据区模块,用于存储所述数据通路模块中的查找表初始化需要的数据以及暂存所述数据通路模块计算过程中输入输出的数据;
所述第三交织网络模块,用于对输入到数据通路模块的数据的顺序进行重排,然后输出至所述第一运算模块和静态随机存储器;
所述第四交织网络模块,用于对所述第一运算模块和静态随机存储器的输出数据的顺序进行重排,然后输出至所述第二运算模块;
所述第五交织网络模块,用于对所述第二运算模块的输出数据的顺序进行重排,然后输出至所述第三运算模块和静态随机存储器。
由上述技术方案可知,本发明提出了一种基于比特或字节流并行加速的处理器,该处理器具有高并行度(每个时钟可以处理128bit数据),高通量(达到100Gbps),硅面积开销小(与用多片ASIC分别加速相比),功耗小(与GPP,DSP相比)能够提供足够灵活性的、支持CRC、RS前向纠错解码、AES、ZUC、ARIA、Camillia,SNOW 3G等通信和加密领域常见算法。同时,当应用需求发生变化时,只需要通过软件编程就可以实现支持,使得产品的生命周期更长。另外,本发明还为比特处理领域的常见功能提供了一些SIMD加速指令,使得本发明可以对比特处理领域其他的应用提供加速支持。
附图说明
图1为本发明一实施例提供的基于比特或字节流并行加速的处理器的结构示意图;
图2为本发明一实施例提供的数据通路的结构示意图;
图3为本发明一实施例提供的基于比特或字节流并行加速的处理器处理数据的流程图;
图4至图16为本发明一实施例提供的基于比特或字节流并行加速的处理器根据加速指令映射到数据通路模块的示意图。
具体实施方式
下面结合附图,对发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种基于比特或字节流并行加速的处理器的结构示意图,如图1所示,该处理器包括:
代码区模块,取指与译码模块,地址生成模块、数据区模块、第一交织网络模块、数据通路模块、第二交织网络模块;
所述代码区模块与所述取指与译码模块相连,所述取指与译码模块与所述地址生成模块相连,所述地址生成模块与所述数据区模块相连,所述数据区模块与所述第一交织网络模块相连,所述第一交织网络模块与所述数据通路模块相连,所述数据通路模块与所述第二交织网络模块相连。
上述处理器具有高并行度(每个时钟可以处理128bit数据),高通量(达到100Gbps),硅面积开销小(与用多片ASIC分别加速相比),功耗小(与GPP,DSP相比),能够提供足够灵活性的、支持CRC、RS前向纠错解码、AES、ZUC、ARIA、Camillia,SNOW 3G等通信和加密领域常见算法。同时,当应用需求发生变化时,只需要通过软件编程就可以实现支持,使得产品的生命周期更长。另外,本发明还为比特处理领域的常见功能提供了一些SIMD加速指令,使得本发明可以对比特处理领域其他的应用提供加速支持。
其中,所述取指与译码模块包括指令取指模块和指令译码模块;
所述指令译码模块存储有预设的指令集;
所述指令译码模块,用于对所述指令取指模块取得的指令进行译码。
所述地址生成模块包括:内层地址生成模块和外层地址生成模块。
所述地址生成模块,用于根据所述指令取指模块取得的指令生成待处理数据的地址。
所述第一交织网络模块和第二交织网络模块用于对输出数据的顺序进行重排。
如图2所示,所述数据通路模块包括:第三交织网络模块、第一运算模块、静态随机存储器、第四交织网络模块、第二运算模块、第五交织网络模块、第三运算模块、第四运算模块和输出控制模块;
所述第三交织网络模块分别与所述第一运算模块和静态随机存储器的输入端相连,所述第四交织网络模块分别与所述第一运算模块和静态随机存储器的输出端相连,所述第二运算模块与所述第四交织网络模块相连,所述第五交织网络模块与所述第二运算模块相连,所述第三运算模块与所述静态随机存储器和所述第五交织网络模块的输出端相连,所述第三运算模块与所述第四运算模块相连,所述第四交织网络模块、所述第五交织网络模块、所述第三运算模块和所述第四运算模块均与所述输出控制模块相连。
其中,所述静态随机存储器为多个。
所有所述静态随机存储器的输出端与所述第四交织网络模块相连;
至少一个静态随机存储器的输出端与所述第三运算模块相连。
所述静态随机存储器可用于存储查找表。
所述数据区模块包括:多个数据存储区域;
所述数据区模块,用于存储所述数据通路模块中的查找表初始化需要的数据以及暂存所述数据通路模块计算过程中输入输出的数据;
所述第三交织网络模块,用于对输入到数据通路模块的数据的顺序进行重排,然后输出至所述第一运算模块和静态随机存储器;
所述第四交织网络模块,用于对所述第一运算模块和静态随机存储器的输出数据的顺序进行重排,然后输出至所述第二运算模块;
所述第五交织网络模块,用于对所述第二运算模块的输出数据的顺序进行重排,然后输出至所述第三运算模块和静态随机存储器。
所述第一运算模块,第二运算模块,第三运算模块和第四运算模块分别完成指令的第一级流水,第二级流水,第三级级流水和第四级流水对应的功能。包括普通逻辑运算和特殊加速功能,比如三角异或。
本发明首先对未来通信系统的应用场景进行分析,从中选择了应用范围广泛,有加速需求,通过算法变换能够在比特处理器上进行加速的算法。本发明支持的算法包括但不限于
CRC类,包括CRC8,CRC16,CRC-CCITT,CRC24,CRC32;
加密类,包括AES,ZUC,ARIA,Camillia,SNOW 3G;
Galois类,包括RS(255,223),RS(255,239),RS(255,247);
基本bit操作类,包括shuffle,punc。
本发明通过对这些算法进行分析,提出了一个高度融合的、硬件复用率高的数据通路结构,该结构的一个用例达到128bit并行,100Gbps的通量。
数据通路包括k个(例如4个)查找表,每个查找表包括N个(例如16个)M×8bit(例如256x 8bit)关键字的静态随机存储器,每个查找表可以同时读/写N个(例如16个)字节的数据;其中,k、N、M等表示不固定数字。
数据通路支持从1到4级的变长流水线深度,数据通路以查找表为基础,通过采用特定计算部件包括1个512bit的bit loadable register,三角异或电路,模块间的交织网络等提供高速数据处理能力,并行数据通道依次包括:并行查找表单元,由多个并行静态随机存储器构成,执行并行查找表操作;并行逻辑运算单元,包括多个算术逻辑单元,为由多级算术逻辑通道及由每层之间所述多个算术逻辑单元互联构成的交织网络连接,每一级算术逻辑通道由多个并行算术逻辑单元执行并行算术逻辑操作,上一级算术逻辑通道的运算结果可通过交织网络传递至下一级算术逻辑通道,每个算术逻辑单元用于进行基本运算,比如OR、AND、XOR、移位,或专用加速功能操作。
该数据通路模块对上述算法的支持方法如下:
对于CRC,本发明可以同时支持CRC32,CRC24,CRC16,CRC8等算法。它可以一次处理128bit数据。它首先把128bit数据分成16份,每份8bit;然后,用这8bit数据作为地址去静态随机存储器中读取关键字,然后将得到的16个关键字进行异或操作,最后得到一个字,即为128bit输入数据的CRC结果。此方案需要消耗16KB的静态随机存储器。
对于加密,本发明支持目前主流的各类加密算法包括AES,ZUC,Camilla,ARIA,SNOW 3G。通过对算法进行分析,它们都需要至少一个256字节的静态随机存储器进行查找表操作,这些操作可以通过复用CRC的静态随机存储器得以实现。通过对他们的运算部分进行功能融合,可以通过软件编程分别对这些算法进行加速。
对于RS,它主要是进行Galois域GF(28)基本运算,本发明可以同时对128bit的数据进行Galois运算。首先,用将要进行Galois运算的两个输入作为地址去查glog表,表可以事先存放在静态随机存储器中,然后用得到的索引值进行运算得到新的值,作为gexp表的地址,同时处理128bit数据需要8KB的静态随机存储器用于存放glog表和4KB的静态随机存储器用于存放gexp表。这些静态随机存储器可以复用CRC算法中用到的静态随机存储器。对于更高指数的Galois基本运算,比如GF(216),GF(232)可以通过运算变换,利用本发明的256字节的静态随机存储器进行加速。
本发明通过对上述三类算法的基本操作进行分析,通过功能融合,提出了一种并行度高,硬件复用率较高、灵活性较高的专用处理器数据通路,如图2所示。
本发明提出了一套针对上述算法的加速指令集,通过对这些指令集进行编程可以高速实现上述算法。为了保证处理过程的高效和有序,本发明提出了比特处理器的顶层结构和流水线方案,流水线如图3所示和顶层结构如图1所示。比特处理器顶层结构和流水线是专门为数据通路高效有序运行而设计的,能保证在不增加时钟数的情况下,指令递归执行多次。比特处理器采用特定的存储子系统和地址生成单元,为数据通路无冲突地提供128bit的输入输出操作数,保证了计算部件的性能可以充分发挥。本发明首先对算法进行变换,其次对算法进行kernel提取,再次将kernel映射到比特处理器的各级流水,得到相应加速指令。然后根据加速效果对指令功能进行调整,通过软硬件协同设计,最终得到了一个最佳的比特处理器的指令集的设计方案。
为了使数据通路模块可以顺利对数据进行高速处理,本发明设计了高并行度的存储子系统和地址生成单元。本发明的存储子系统包括数据区,用于存取查找表初始化时用到的表和计算过程中的输入输出操作数,每个时钟可以存取128bit数据;代码区,用于存放比特处理器的程序,每个时钟可以取一条指令。
比特处理器的数据通路模块设计方案。该数据通路模块以查找表为基础,通过采用相应的专用计算部件实现了对不同算法的高速处理,这些专用计算部件包括512bit的bit loadable register,16to 1的三角异或电路,对各级输入输出数据进行交织的交织网络等。
所述地址生成模块包括:内层地址生成模块和外层地址生成模块。地址生成模块用于支持基本寻址方式。基本寻址方式包括两个层次,内层的针对向量内的寻址,外层的向量间寻址。
总体寻址模式可以表示为:
base[vbase+vindex]
其中base是存储区名称,vbase为标量指向存储区的某一位置,作为待取向量的起始地址,vindex为长度为16个元素的向量,描述待取向量与vbase的偏移关系。比特处理器对内层寻址进行精简,只保留了递增寻址一种寻址模式。
例如:
dm0[ar0+=16%]
上例中,“,”前面的部分中,“dm0”为操作数存储器;“ar0”为外层地址寄存器。“16”是步长,“%”是循环寻址标记。因为内层寻址方式只有一种,所以内层寻址模式不需要在操作数中显性描述。该操作数的含义是:在dm0中,从ar0指向的地址开始;依次递增连续取够16个元素;然后ar0向前移16个位置,如果该位置超过了循环寻址的结束位置,则初始化为循环寻址的开始位置。
除了这一种模式的寻址方式,比特处理器支持的寻址模式还有以下几种。
其中,内层寻址模式包括:
递增寻址:该模式从起始位置连续取16个元素
外层寻址模式包括:
立即数寻址:将向量的起始地址直接设为立即数
保持寻址:寻址结束后,向量的起始地址保持不变
递增寻址:寻址结束后,向量的起始地址向前移1个元素
递减寻址:寻址结束后,向量的起始地址向后移1个元素
步长递增寻址:寻址结束后,向量的起始地址向前移1个步长,比特处理器支持的步长是任意16比特长度的数值
步长递减寻址:寻址结束后,向量的起始地址向后移1个步长,比特处理器支持的步长是任意16比特长度的数值
步长递增循环寻址:寻址结束后,向量的起始地址向前移1个步长,如果该地址超过了循环的结束位置,将其初始化为循环的起始位置,比特处理器支持的步长是任意16比特长度的数值
步长递减循环寻址:寻址结束后,向量的起始地址向后移1个步长,如果该地址超过了循环的结束位置,将其初始化为循环的起始位置,比特处理器支持的步长是任意16比特长度的数值
步长递增循环寻址外递增:寻址结束后,向量的起始地址向前移1个步长,如果该地址超过了循环的结束位置,将循环的起始位置和结束位置分别加1,再将向量的起始地址初始化为循环的起始位置,比特处理器支持的步长是任意16比特长度的数值
为了在硬件上实现这些寻址模式,本发明提出了一种特殊的向量寄存器,AR,它是64bit长的,包含以下内容:
top:循环寻址顶端,为16bit长,占用AR的[63:48]位置
bottom:循环寻址底端,为16bit长,占用AR的[47:32]位置
step:步长寻址步长值,为16bit长,占用AR的[31:16]位置
ari:初始地址,为16bit长,占用AR的[15:0]位置。
本发明中防护多模ASIP包括:加解密机、CRC并行机、比特并行处理机、通用Galois并行机(四机一体)的处理器设计方案。
本发明的一个实例效果如下。当采用16KB静态随机存储器,输入输出数据宽度为128bit时。本发明对CRC进行加速,通量超过100Gbps。对于其他算法的加速效果,性能比通用处理器高50倍以上。各条加速指令换算为通用指令后的指令执行次数如表1所示
表1
下面通过具体实施例对上述处理器进行详细说明。
本发明所涉及的主要加速指令映射到处理器的数据通路上,数据通路各级流水主要完成的操作如下:
指令名:zuclfsr
功能:该指令用于完成ZUC算法中函数LFSRWithInitialisationMode(w>>1)和LFSRWithWorkMode()的功能,
流水级:3
第一级:读LFSR,32bit移位、或运算,32bit加法
第二级:32bit加法
第三级:32bit加法,写回LFSR
指令名:zucbrf
功能:该指令用于完成ZUC算法中函数BitReorganization()和F()的功能
流水级:3
第一级:读LFSR,FR,32bit移位、或运算,32bit加法
第二级:32bit加法,32bit移位、或运算,三角异或运算
第三级:查表替换,写回FR
指令名:zucbrfx
功能:该指令用于完成ZUC算法中函数BitReorganization()和F()^x的功能
流水级:3
第一级:读LFSR,FR,32bit移位、或运算,32bit加法
第二级:32bit加法,32bit移位、或运算,三角异或运算,异或运算
第三级:查表替换,写回FR
指令名:camfld
功能:该指令用于完成Camellia解密算法中函数Camellia_FLlayer()的功能
流水级:1
第一级:32bit移位、与运算,或运算,异或运算
指令名:camfle
功能:该指令用于完成Camellia加密算法中函数Camellia_FLlayer()的功能
流水级:1
第一级:32bit移位、与运算,或运算,异或运算
指令名:camftf
功能:该指令用于完成Camellia算法中第一个Camellia_Feistel()函数的功能
流水级:2
第一级:异或运算,查找操作
第二级:三角异或运算
指令名:camft
功能:该指令用于完成Camellia算法中第二个Camellia_Feistel()函数的功能
流水级:2
第一级:异或运算,查找操作
第二级:三角异或运算
指令名:camsx
功能:该指令用于完成Camellia算法中函数SwapHalf,XorBlock的功能
流水级:1
第一级:交织,异或运算
指令名:camrb
功能:该指令用于完成Camellia算法中函数RotBlock的功能
流水级:1
第一级:32bit移位,异或
指令名:ariaof
功能:该指令用于完成ARIA算法中函数OF()的功能
流水级:2
第一级:异或运算,查表替换
第二级:三角异或运算
指令名:ariaef
功能:该指令用于完成ARIA算法中函数EF()的功能
流水级:2
第一级:异或运算,查表替换,交织
第二级:三角异或运算
指令名:ariaxs
功能:该指令用于完成ARIA算法中函数xor和SL2()功能
流水级:1
第一级:异或运算,查表替换,交织
指令名:ariadf
功能:该指令用于完成ARIA算法中函数A()的功能
流水级:2
第一级:不做处理
第二级:三角异或运算
指令名:ariarl
功能:该指令用于完成ARIA算法中函数Rotate left的功能
流水级:1
第一级:移位运算,或运算
指令名:snwlfsri
功能:该指令用于完成snow 3g算法中函数ClockLFSRInitializationMode(u32F)的功能
流水级:1
第一级:读LFSR,32bit移位运算,查找表操作,三角异或,写LFSR
指令名:snwlfsrk
功能:该指令用于完成snow 3g算法中函数ClockLFSRKeyStreamMode()的功能
流水级:1
第一级:读LFSR,32bit移位运算,查找表操作,三角异或,写LFSR,无输入
指令名:snwfsm
功能:该指令用于完成snow 3g算法中函数ClockLFSRKeyStreamMode()的功能
流水级:1
第一级:读LFSR,FR,32bit加法运算,异或运算,查找表操作,三角异或,写FR
指令名:snwfsmx
功能:该指令用于完成snow 3g算法中函数ClockLFSRKeyStreamMode()的功能
流水级:1
第一级:读LFSR,FR,32bit加法运算,异或运算,查找表操作,三角异或,异或,写FR
指令名:aesencf
功能:该指令完成AES加密的第一个回合,它实现子函数:AddRoundKey(round);ShiftRows();
流水级:1
第一级:异或运算,交织
指令名:aesenc
功能:该指令用于完成AES加密的一个回合,它依次实现子函数:SubBytes();ShiftRows();MixColumns();AddRoundKey(round);
流水级:2
第一级:查表替换,交织
第二级:移位,三角异或运算,异或运算
指令名:aesencl
功能:该指令完成AES加密的最后一个回合,它实现子函数:SubBytes();ShiftRows();AddRoundKey(round);
流水级:2
第一级:查表替换,交织
第二级:异或运算
指令名:aesdecf
功能:该指令完成AES解密的第一个回合,它实现子函数:InvShiftRows();InvSubBytes();AddRoundKey(round);
流水级:3
第一级:异或运算,交织
第二级:不做操作
第三级:查表替换
指令名:aesdec
功能:该指令完成AES解密的一个回合,它实现子函数:InvShiftRows();InvSubBytes();AddRoundKey(round);InvMixColumns()
流水级:3
第一级:异或运算,交织
第二级:移位,三角异或运算,
第三级:查表替换
指令名:aesdecl
功能:该指令完成AES解密的最后一个回合,它实现子函数:InvShiftRows();AddRoundKey(round);
流水级:1
第一级:异或运算,交织
指令名:rsgmul
功能:该指令完成Reed Solomon算法中的Galois乘法
流水级:3
第一级:实现src0,src1的glog查表操作
第二级:实现模255加法
第三级:实现gexp查表
指令名:rsgmac
功能:该指令完成Reed Solomon算法中的Galois乘法和异或
流水级:3
第一级:实现src0,src1的glog查表操作
第二级:实现模255加法
第三级:实现gexp查表,得到查表结果并与src2异或
指令名:rsgdiv
功能:该指令完成Reed Solomon算法中的Galois除法
流水级:3
第一级:实现src0,src1的glog查表操作
第二级:实现模255减法
第三级:实现gexp查表
指令名:rsginv
功能:该指令完成Reed Solomon算法中的Galois取反
流水级:3
第一级:实现src0的glog查表操作
第二级:取反
第三级:实现gexp查表
指令名:rsencf
功能:该指令完成Reed Solomon算法中的编码的第一步,完成Galois乘加法,源操作数和目的操作数是LFSR
流水级:3
第一级:完成用LFSR[33]^src0,src1进行查找表操作,得到索引值
第二级:实现模255加法
第三级:实现gexp查表,将该结果与src2进行异或,并将结果写回LFSR[32:17]
指令名:rsenc
功能:该指令完成Reed Solomon算法中的编码的第二步,完成Galois乘加法,源操作数和目的操作数是LFSR
流水级:3
第一级:完成用LFSR[33]^src0,src1进行查找表操作,得到索引值
第二级:实现模255加法
第三级:实现gexp查表,将该结果与src2进行异或,并将结果写回LFSR[16:1]
指令名:rsgtmac
功能:该指令完成Reed Solomon算法中的Galois乘法,将所有乘法结果异或成一个字节
流水级:4
第一级:实现src0,src1的glog查表操作
第二级:实现模255加法
第三级:实现gexp查表
第四级:三角异或
指令名:crc8f
功能:该指令完成8bit CRC算法的第一个回合
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc16f
功能:该指令完成16bit CRC算法的第一个回合
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc24f
功能:该指令完成24bit CRC算法的第一个回合
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc32f
功能:该指令完成32bit CRC算法的第一个回合
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc8b
功能:该指令完成8bit CRC算法的剩余回合,采用前一级计算的中间结果
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc16b
功能:该指令完成16bit CRC算法的剩余回合,采用前一级计算的中间结果
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc24b
功能:该指令完成24bit CRC算法的剩余回合,采用前一级计算的中间结果
流水级:1
第一级:异或,查找表操作,三角异或
指令名:crc32b
功能:该指令完成32bit CRC算法的剩余回合,采用前一级计算的中间结果
流水级:1
第一级:异或,查找表操作,三角异或
上述各条加速指令映射到数据通路的方法见附图,其中虚线部分为数据处理的流向图。
图4是crc8f、crc16f、crc24f、crc32f等指令的映射图;
图5是crc8b、crc16b、crc24b、crc32b等指令的映射图;
图6是rsgmul,rsgdiv,rsencf,rsenc等指令的映射图;
图7是rsginv等指令的映射图;
图8是rsgmac等指令的映射图;
图9是rsgme,aesdec,aesdecf,zucbrf,zucbrfx等指令的映射图;
图10是rsgtmac等指令的映射图;
图11是aesenc,aesencl,aessecl,camftf,camft等指令的映射图;
图12是aesencf,camfld,camfle,camsx,camrb,ariarl等指令的映射图;
图13是zuclfsr等指令的映射图;
图14是ariaof,ariaef等指令的映射图;
图15是ariaxs等指令的映射图;
图16是ariadf等指令的映射图;
以上所述各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于比特或字节流并行加速的处理器,其特征在于,包括:
代码区模块,取指与译码模块,地址生成模块、数据区模块、第一交织网络模块、数据通路模块、第二交织网络模块;
所述代码区模块与所述取指与译码模块相连,所述取指与译码模块与所述地址生成模块相连,所述地址生成模块与所述数据区模块相连,所述数据区模块与所述第一交织网络模块相连,所述第一交织网络模块与所述数据通路模块相连,所述数据通路模块与所述第二交织网络模块相连。
2.根据权利要求1所述的处理器,其特征在于,所述取指与译码模块包括指令取指模块和指令译码模块;
所述指令译码模块存储有预设的指令集;
所述指令译码模块,用于对所述指令取指模块取得的指令进行译码。
3.根据权利要求2所述的处理器,其特征在于,所述地址生成模块包括:内层地址生成模块和外层地址生成模块。
4.根据权利要求2所述的处理器,其特征在于,所述地址生成模块,用于根据所述指令取指模块取得的指令生成待处理数据的地址。
5.根据权利要求1所述的处理器,其特征在于,所述第一交织网络模块和第二交织网络模块用于对输出数据的顺序进行重排。
6.根据权利要求1所述的处理器,其特征在于,所述数据通路模块包括:第三交织网络模块、第一运算模块、静态随机存储器、第四交织网络模块、第二运算模块、第五交织网络模块、第三运算模块、第四运算模块和输出控制模块;
所述第三交织网络模块分别与所述第一运算模块和静态随机存储器的输入端相连,所述第四交织网络模块分别与所述第一运算模块和静态随机存储器的输出端相连,所述第二运算模块与所述第四交织网络模块相连,所述第五交织网络模块与所述第二运算模块相连,所述第三运算模块与所述静态随机存储器和所述第五交织网络模块的输出端相连,所述第三运算模块与所述第四运算模块相连,所述第四交织网络模块、所述第五交织网络模块、所述第三运算模块和所述第四运算模块均与所述输出控制模块相连。
7.根据权利要求6所述的处理器,其特征在于,所述静态随机存储器为多个。
8.根据权利要求7所述的处理器,其特征在于,所有所述静态随机存储器的输出端与所述第四交织网络模块相连;
至少一个静态随机存储器的输出端与所述第三运算模块相连。
9.根据权利要求8所述的处理器,其特征在于,所述静态随机存储器中可用于存储查找表。
10.根据权利要求9所述的处理器,其特征在于,所述数据区模块包括:多个数据存储区域;
所述数据区模块,用于存储所述数据通路模块中的查找表初始化需要的数据以及暂存所述数据通路模块计算过程中输入输出的数据;
所述第三交织网络模块,用于对输入到数据通路模块的数据的顺序进行重排,然后输出至所述第一运算模块和静态随机存储器;
所述第四交织网络模块,用于对所述第一运算模块和静态随机存储器的输出数据的顺序进行重排,然后输出至所述第二运算模块;
所述第五交织网络模块,用于对所述第二运算模块的输出数据的顺序进行重排,然后输出至所述第三运算模块和静态随机存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510324754.7A CN105005465B (zh) | 2015-06-12 | 2015-06-12 | 基于比特或字节并行加速的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510324754.7A CN105005465B (zh) | 2015-06-12 | 2015-06-12 | 基于比特或字节并行加速的处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105005465A true CN105005465A (zh) | 2015-10-28 |
CN105005465B CN105005465B (zh) | 2017-06-16 |
Family
ID=54378147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510324754.7A Expired - Fee Related CN105005465B (zh) | 2015-06-12 | 2015-06-12 | 基于比特或字节并行加速的处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105005465B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158757A (zh) * | 2019-12-31 | 2020-05-15 | 深圳芯英科技有限公司 | 并行存取装置和方法以及芯片 |
CN111651203A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量四则运算的装置和方法 |
CN111651204A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量最大值最小值运算的装置和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102221990A (zh) * | 2011-05-26 | 2011-10-19 | 山东大学 | 针对aes对称加密算法的指令优化方法及其处理器 |
CN202257543U (zh) * | 2011-05-26 | 2012-05-30 | 山东大学 | 针对aes对称加密算法的指令优化处理器 |
US20120185809A1 (en) * | 2011-01-19 | 2012-07-19 | Suresh Kadiyala | Architecture optimizer |
CN102662628A (zh) * | 2012-03-23 | 2012-09-12 | 山东大学 | Rsa加密算法的指令优化处理器 |
CN103150146A (zh) * | 2013-01-31 | 2013-06-12 | 西安电子科技大学 | 基于可扩展处理器架构的专用指令集处理器及其实现方法 |
-
2015
- 2015-06-12 CN CN201510324754.7A patent/CN105005465B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120185809A1 (en) * | 2011-01-19 | 2012-07-19 | Suresh Kadiyala | Architecture optimizer |
CN102221990A (zh) * | 2011-05-26 | 2011-10-19 | 山东大学 | 针对aes对称加密算法的指令优化方法及其处理器 |
CN202257543U (zh) * | 2011-05-26 | 2012-05-30 | 山东大学 | 针对aes对称加密算法的指令优化处理器 |
CN102662628A (zh) * | 2012-03-23 | 2012-09-12 | 山东大学 | Rsa加密算法的指令优化处理器 |
CN103150146A (zh) * | 2013-01-31 | 2013-06-12 | 西安电子科技大学 | 基于可扩展处理器架构的专用指令集处理器及其实现方法 |
Non-Patent Citations (1)
Title |
---|
ZHENZHI WU等: "Flexible multistandard FEC processor design with ASIP methodology", 《2014 IEEE 25TH INTERNATIONAL CONFERENCE ON APPLICATION SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS, PROCEEDINGS》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651203A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量四则运算的装置和方法 |
CN111651204A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量最大值最小值运算的装置和方法 |
CN111651204B (zh) * | 2016-04-26 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 一种用于执行向量最大值最小值运算的装置和方法 |
CN111651203B (zh) * | 2016-04-26 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种用于执行向量四则运算的装置和方法 |
CN111158757A (zh) * | 2019-12-31 | 2020-05-15 | 深圳芯英科技有限公司 | 并行存取装置和方法以及芯片 |
CN111158757B (zh) * | 2019-12-31 | 2021-11-30 | 中昊芯英(杭州)科技有限公司 | 并行存取装置和方法以及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN105005465B (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10705842B2 (en) | Hardware accelerators and methods for high-performance authenticated encryption | |
US10797858B2 (en) | Unified hardware accelerator for symmetric-key ciphers | |
US9960917B2 (en) | Matrix multiply accumulate instruction | |
JP5279843B2 (ja) | データの順列演算を実行するための装置および方法 | |
US11121856B2 (en) | Unified AES-SMS4—Camellia symmetric key block cipher acceleration | |
US20090310775A1 (en) | Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations | |
CN107133018B (zh) | 执行groestl散列的指令 | |
US9419792B2 (en) | Instruction for accelerating SNOW 3G wireless security algorithm | |
US20040078411A1 (en) | Galois field arithmetic unit for use within a processor | |
CN104395876B (zh) | 没有算术和逻辑单元的计算机处理器和系统 | |
US7895417B2 (en) | Select-and-insert instruction within data processing systems | |
US9490971B2 (en) | Instruction for fast ZUC algorithm processing | |
CN105005465A (zh) | 基于比特或字节并行加速的处理器 | |
CN114063973B (zh) | 伽罗华域乘法器及纠删编解码系统 | |
MX2008011985A (es) | Instruccion de paquete de viterbi. | |
CN111563281A (zh) | 一种支持多种加解密算法的处理器及其实现方法 | |
US9003259B2 (en) | Interleaved parallel redundancy check calculation for memory devices | |
CN110059493A (zh) | 基于粗粒度可重构计算单元的skinny-128-128加密算法实现方法及系统 | |
EP3671438B1 (en) | Systems and methods to transpose vectors on-the-fly while loading from memory | |
WO2013112118A2 (en) | Instructions to perform jh cryptographic hashing in a 256 bit data path | |
JP2007174312A (ja) | 符号化回路およびデジタル信号処理回路 | |
CN113485751B (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
Rizi et al. | Optimised AES with RISC-V Vector Extensions | |
Giard et al. | Low-latency software polar decoders | |
Shahverdi et al. | AVRprince-an efficient implementation of PRINCE for 8-bit microprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170616 Termination date: 20210612 |