多元化配置信息压缩方法及装置转让专利

申请号 : CN201610097052.4

文献号 : CN105760784B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘雷波朱敏吴有余罗凯尹首一魏少军

申请人 : 清华大学无锡应用技术研究院

摘要 :

本发明公开了一种多元化配置信息压缩方法及装置,其中,该方法包括:对密码算法进行规划并生成密码算法对应的数据流图;根据数据流图的重复特性提取公因子,并确定公因子的公因子冗余度;根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分;以及根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式,并通过配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。

权利要求 :

1.一种多元化配置信息压缩方法,其特征在于,包括以下步骤:

对密码算法进行规划并生成所述密码算法对应的数据流图;

根据所述数据流图的重复特性提取公因子,并确定所述公因子的公因子冗余度;

根据可重构密码处理器硬件特性和所述公因子冗余度对所述数据流图进行子图划分;

以及

根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式,并通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置;其中,所述配置压缩方式包括:可重构运算单元配置压缩方式、行配置压缩方式和多个可重构运算单元作为整体的配置压缩方式。

2.如权利要求1所述的多元化配置信息压缩方法,其特征在于,针对划分后的每个子图,如果子图中的所有可重构运算单元的运算操作相同,并且互联结构相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述可重构运算单元配置压缩方式,其中,所述通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,包括:针对每个子图,将对应的可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息存储于配置存储器中,并保存所述配置信息的索引号与使用所述配置信息的所述可重构运算单元的编号的对应关系。

3.如权利要求1所述的多元化配置信息压缩方法,其特征在于,如果划分后的各个子图的结构均相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述行配置压缩方式,其中,所述通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,包括:将一个子图的子图配置信息存储于配置存储器中,并保存子图的编号与所述子图配置信息的索引号的对应关系,其中,所述子图配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。

4.如权利要求1所述的多元化配置信息压缩方法,其特征在于,针对划分后的每个子图,如果子图中的行与行之间的运算操作相同,且行与行之间的互联结构相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述多个可重构运算单元作为整体的配置压缩方式,其中,所述通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,包括:针对每个子图,将一行的行配置信息压缩存储于配置存储器中,并保存行号与所述行配置信息的索引号的对应关系,其中,所述行配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。

5.一种多元化配置信息压缩装置,其特征在于,包括:

生成模块,用于对密码算法进行规划并生成所述密码算法对应的数据流图;

第一确定模块,用于根据所述数据流图的重复特性提取公因子,并确定所述公因子的公因子冗余度;

划分模块,用于根据可重构密码处理器硬件特性和所述公因子冗余度对所述数据流图进行子图划分;

第二确定模块,用于根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式;其中,所述配置压缩方式具体包括:可重构运算单元配置压缩方式、行配置压缩方式和多个可重构运算单元作为整体的配置压缩方式;

压缩模块,用于通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。

6.如权利要求5所述的多元化配置信息压缩装置,其特征在于,针对划分后的每个子图,如果子图中的所有可重构运算单元的运算操作相同,并且互联结构相同,则所述第二确定模块根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述可重构运算单元配置压缩方式,其中,所述压缩模块,具体用于:

针对每个子图,将对应的可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息存储于配置存储器中,并保存所述配置信息的索引号与使用所述配置信息的所述可重构运算单元的编号的对应关系。

7.如权利要求5所述的多元化配置信息压缩装置,其特征在于,多元化配置信息压缩方法,其特征在于,如果划分后的各个子图的结构均相同,则所述第二确定模块根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述行配置压缩方式,其中,所述压缩模块,具体用于:

将一个子图的子图配置信息存储于配置存储器中,并保存子图的编号与所述子图配置信息的索引号的对应关系,其中,所述子图配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。

8.如权利要求5所述的多元化配置信息压缩装置,其特征在于,针对划分后的每个子图,如果子图中的行与行之间的运算操作相同,且行与行之间的互联结构相同,则所述第二确定模块根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述多个可重构运算单元作为整体的配置压缩方式,其中,所述压缩模块,具体用于:

针对每个子图,将一行的行配置信息压缩存储于配置存储器中,并保存行号与所述行配置信息的索引号的对应关系,其中,所述行配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。

说明书 :

多元化配置信息压缩方法及装置

技术领域

[0001] 本发明涉及电子技术领域,尤其涉及一种多元化配置信息压缩方法及装置。

背景技术

[0002] 可重构密码处理器(PRU_CRYPTO),使用了一种粗粒度可重构处理器构架,结合了软件的灵活性和硬件的高效性,通过对通用可重构运算单元阵列RCA(Reconfigurable Computing Array)进行动态配置不仅可以改变控制流,还可以改变数据通路,动态实现不同的密码算法,并且可重构密码处理的硬件资源本身不含任何安全信息。可重构密码处理具有高性能、低功耗、灵活性好、扩展性好的优点,适合于处理计算密集型的密码算法,例如,高级加密标准(Advanced Encryption Standard,AES),SM3,ZUC,安全散列算法SHA256(Secure Hash Algorithm,SHA)等。因此,可重构密码处理器具有很好的应用前景,也能满足不同密码用户多层次的安全性需求和密码算法不断升级换代的需求。
[0003] 可重构密码处理器的运算主体为可重构运算单元阵列,在可重构密码处理器的RCA中,通过配置参数来决定可重构运算单元RC(Reconfigurable Computing)实现的功能,RC之间也可以通过配置参数来确定其互联结构。通过对算法在RCA上映射的规划,确定各RC实现何种功能,以及RC间互联是怎样的,并生成相应的配置参数,能很好地实现数据流的高速并行处理。但不同密码算法具有不同程度的重复结构,例如,很多RC所使用的功能完全一样,这时仍对每个RC采用单独的配置参数就会造成参数重复和冗余,从而严重影响配置效率,进而影响动态实现密码算法的效率,即影响可重构密码处理器的执行效率。
[0004] 为了减小配置信息的尺寸,提高配置效率,相关技术中提出一种层次化配置的压缩方法,如图1所示,图1展示了一种层次化配置的压缩方法,其压缩方法如下:
[0005] 假定核心算法对应的完整数据流图(DFG,Data Flow Graph)分割成多个子图,子图自上而下分别对应配置1、2、3。而每个配置都包括输入、计算、输出三个部分。其中,通过图1可以看出,配置1的输出和配置2的输入,它们之间的依赖关系明确,配置2的数据输入地址就是配置1的数据输出地址,为了减少配置信息的尺寸,可以省略这部分配置,通过系统自动分配。设置一个内部的配置存储器存储配置1、2、3的具体内容,外部就只需要告诉可重构处理器(RPU,Reconfigurable Processing Unit):阵列输入1和输出3的地址,以及配置索引的调用顺序列表(配置1、2、3的地址列表)。这些信息就构成了配置组。完整数据流图对应的是配置组,因此配置组合算法相对应,是配置系统的一级抽象。这些配置组的信息同样可以存储在可重构处理器内部,外部只需要通过写入数据输入输出地址和配置组序号。配置组的序列集和应用对应,此为配置系统的二级抽象。外部写入配置字的集合,通过配置来索引中间层配置信息(具体的算法、配置组),再由中间层配置信息来索引底层配置信息(具体映射实现,包括算子、路由功能的选择等内容)。
[0006] 这种方法可以大量压缩RPU接口处需要读取的配置数据量,从而将原来海量的底层配置信息调用编程二级索引表。然而,这种方法的整个压缩方式相对较为单一,在可重构密码处理器仅采用对配置参数进行配置组划分的方式,没有针对不同密码算法各自的计算特性来进行配置信息压缩存储,在某些应用场合下,其底层配置参数的数据总量并不能最优化地减少,一些重复结构的配置信息可能仍然以展开的形式存在,从而造成配置信息冗余。

发明内容

[0007] 本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
[0008] 为此,本发明的第一个目的在于提出一种多元化配置信息压缩方法。该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0009] 本发明的第二个目的在于提出了一种多元化配置信息压缩装置。
[0010] 为达上述目的,本发明第一方面实施例的多元化配置信息压缩方法,包括:对密码算法进行规划并生成所述密码算法对应的数据流图;根据所述数据流图的重复特性提取公因子,并确定所述公因子的公因子冗余度;根据可重构密码处理器硬件特性和所述公因子冗余度对所述数据流图进行子图划分;以及根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式,并通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。
[0011] 本发明实施例的多元化配置信息压缩方法,通过对密码算法进行规划得到相应的数据流图,然后根据数据流图的重复特性提取公因子并确定公因子冗余度,再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式对其可重构运算单元的配置信息和互联的配置信息进行压缩配置,该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0012] 在本发明的一个实施例中,所述配置压缩方式包括:可重构运算单元配置压缩方式、行配置压缩方式和多个可重构运算单元作为整体的配置压缩方式。
[0013] 在本发明的一个实施例中,所述的多元化配置信息压缩方法,针对划分后的每个子图,如果子图中的所有可重构运算单元的运算操作相同,并且互联结构相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述可重构运算单元配置压缩方式,其中,所述通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,包括:针对每个子图,将对应的可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息存储于配置存储器中,并保存所述配置信息的索引号与使用所述配置信息的所述可重构运算单元的编号的对应关系。
[0014] 在本发明的一个实施例中,所述的多元化配置信息压缩方法,如果划分后的各个子图的结构均相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述行配置压缩方式,其中,所述通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的信息进行压缩配置,包括:将一个子图的子图配置信息存储于配置存储器中,并保存子图的编号与所述子图配置信息的索引号的对应关系,其中,所述子图配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。
[0015] 在本发明的一个实施例中,所述的多元化配置信息压缩方法,针对划分后的每个子图,如果子图中的行与行之间的运算操作相同,且行与行之间的互联结构相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述多个可重构运算单元作为整体的配置压缩方式,其中,所述通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,包括:针对每个子图,将一行的行配置信息压缩存储于配置存储器中,并保存行号与所述行配置信息的索引号的对应关系,其中,所述行配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联配置信息。
[0016] 为达上述目的,本发明第二方面实施例的多元化配置信息压缩装置,包括生成模块,用于对密码算法进行规划并生成所述密码算法对应的数据流图;第一确定模块,用于根据所述数据流图的重复特性提取公因子,并确定所述公因子的公因子冗余度;划分模块,用于根据可重构密码处理器硬件特性和所述公因子冗余度对所述数据流图进行子图划分;第二确定模块,用于根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式;压缩模块,用于通过所述配置压缩方式对所述子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。
[0017] 本发明实施例的多元化配置信息压缩装置,通过生成模块对密码算法进行规划得到相应的数据流图,然后第一确定模块根据数据流图的重复特性提取公因子并确定公因子冗余度,划分模块再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后第二确定模块根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式利用压缩模块对其可重构运算单元的配置信息和互联的配置信息进行压缩配置,该装置结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0018] 在本发明的一个实施例中,所述配置压缩方式具体包括:可重构运算单元配置压缩方式、行配置压缩方式和多个可重构运算单元作为整体的配置压缩方式。
[0019] 在本发明的一个实施例中,所述的多元化配置信息压缩装置,针对划分后的每个子图,如果子图中的所有可重构运算单元的运算操作相同,并且互联结构相同,则所述第二确定模块根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述可重构运算单元配置压缩方式,其中,所述压缩模块,具体用于:针对每个子图,将对应的可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息存储于配置存储器中,并保存所述配置信息的索引号与使用所述配置信息的所述可重构运算单元的编号的对应关系。
[0020] 在本发明的一个实施例中,所述的多元化配置信息压缩装置,多元化配置信息压缩方法,如果划分后的各个子图的结构均相同,则所述第二确定模块根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述行配置压缩方式,其中,所述压缩模块,具体用于:将一个子图的子图配置信息存储于配置存储器中,并保存子图的编号与子图配置信息的索引号的对应关系,其中,所述子图配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联配置信息。
[0021] 在本发明的一个实施例中,所述的多元化配置信息压缩装置,针对划分后的每个子图,如果子图中的行与行之间的运算操作相同,且行与行之间的互联结构相同,则所述第二确定模块根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为所述多个可重构运算单元作为整体的配置压缩方式,其中,所述压缩模块,具体用于:针对每个子图,将一行的行配置信息压缩存储于配置存储器中,并保存行号与所述行配置信息的索引号的对应关系,其中,所述行配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。
[0022] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0023] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0024] 图1是根据本发明一个实施例的层次化的配置参数压缩形式的示意图;
[0025] 图2是根据本发明一个实施例的可重构密码处理器配置控制框架的示意图;
[0026] 图3是根据本发明一个实施例的可重构密码处理器三种配置信息及其作用的示意图;
[0027] 图4是根据本发明一个实施例的多元化配置信息压缩方法的流程图;
[0028] 图5是根据本发明一个实施例的可重构运算单元配置压缩方式的多元化配置信息压缩方法的流程图;
[0029] 图6是根据本发明一个实施例的可重构运算单元配置压缩方式的示意图;
[0030] 图7是根据本发明一个实施例的行配置压缩方式的多元化配置信息压缩方法的流程图;
[0031] 图8是根据本发明一个实施例的行配置压缩方式的示意图;
[0032] 图9是根据本发明一个实施例的多个可重构运算单元作为整体的配置压缩方式的多元化配置信息压缩方法的流程图;
[0033] 图10是根据本发明一个实施例的多个运算单元作为整体的配置压缩方式的示意图;
[0034] 图11是根据本发明一个实施例的多元化配置信息压缩装置的结构示意图。

具体实施方式

[0035] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0036] 本发明提供在可重构密码处理器上的多元化配置信息压缩方法,如图2所示,可重构密码处理器采用可重构技术设计,可在一块硬件上通过配置信息的切换来支持多种密码算法(如AES,SM3,ZUC,SHA256等)。其中主要由可重构配置控制器模块10、可重构计算模块20和可重构数据控制模块30三个部分组成,这三个部分在本质上都是由配置参数作为信息源,用以决定可重构密码处理器能实现什么样的功能。
[0037] 其中,配置信息中载有目标密码算法在硬件上实现所需的全部映射信息。配置信息到可重构密码处理器硬件功能的映射的过程为:首先,配置信息通过接口进入可重构配置控制器模块10,该可重构配置控制器模块10对输入的配置信息进行解析,并生成相应的配置参数和控制信号,然后将所生成的配置参数和控制信息发送至可重构计算模块20和可重构数据控制模块30。
[0038] 在可重构密码处理器中,被配置的对象主要是可重构计算模块20中的可重构运算单元阵列RCA和可重构数据控制模块30,其中,RCA的功能描述主要包括各个RC实现的功能和RC之间互联结构这两部分。
[0039] 下面结合图3对可重构密码处理器中的三种配置信息及其作用进行介绍。
[0040] 如图3所示,可重构密码处理器中配置层面而言,整个可重构密码处理器中所需的配置信息可以抽象为三个组成部分:1.RC的配置信息;2.互联的配置信息;3.数据传输的配置信息。
[0041] 其中,可重构运算单元RC的配置信息主要包括目标算法在可重构密码处理器上映射时,RCA上各个RC实现的功能(例如算术加减乘除运算、移位运算、逻辑运算或者查表运算),这类配置信息在参数上表现为不同的编码对应不同的运算功能。
[0042] 其中,互联的配置信息主要包括目标算法在可重构密码处理器中上映射时,RC之间的输入输出具有怎样一个互联关系,这类配置信息在参数上表现为各个RC输入接口有一个对应的数据输入编码,不同的编码对应不同的RC数据来源。
[0043] 其中,数据传输的配置信息主要描述运算过程中的输入数据、运算中间数据和输出数据的去向,如传输至RC内部寄存器,数据缓存通道、公用堆寄存器或者输出寄存器等。
[0044] 在对可重构密码处理器进行配置时,可重构运算单元RC的配置信息、互联的配置信息和数据传输的配置信息这三部分中,数据传输的配置信息量较小,且一般不含有重复部分,因此,对配置信息的压缩主要针对的是可重构运算单元RC的配置信息、互联的配置信息。由于二者配置信息量很大,且重复部分非常多,具有很强的压缩空间,故为了减少配置信息的冗余,可对可重构运算单元RC的配置信息与互联的配置信息进行压缩处理。
[0045] 下面参考附图描述本发明实施例的多元化配置信息压缩方法及装置。
[0046] 图4是根据本发明一个实施例的多元化配置信息压缩方法的流程图。
[0047] 如图4所示,该多元化配置信息压缩方法可以包括:
[0048] S41,对密码算法进行规划并生成密码算法对应的数据流图。
[0049] 可以理解的是,在对密码算法映射规划时,往往需要结合阵列的规模特性,设计出密码算法对应的数据流图(DFG,Data Flow Graph),数据流图可以很直观地表明映射结构,即,数据流图可以很直观地表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。
[0050] S42,根据数据流图的重复特性提取公因子,并确定公因子的公因子冗余度。
[0051] 具体而言,先对密码算法规划并得到相应的数据流图,然后针对所得的数据流图的重复特性对数据流图中重复度较高的部分进行提取,也就是提取公因子,并确定提取出的公因子的公因子冗余度。
[0052] S43,根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分。
[0053] S44,根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式,并通过配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。
[0054] 具体地,根据划分后的子图的结构特征信息和互联特征信息,选择几种压缩方式中最合适的一种对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。
[0055] 需要说明的是,划分好的子图的结构特征信息可以是子图中可重构运算单元的运算操作、连续数行可重构运算单元之间的行和行的结构和子图中部分可重构运算单元作为整体,其中,各个整体之间的具有完全相同的可重构运算单元结构等。
[0056] 其中,划分好的子图的互联特征信息可以是子图中可重构运算单元的互联情况、子图中连续数行可重构运算单元之间的行和行的互联结构和子图中部分可重构运算单元作为整体及其整体之间的互联结构。
[0057] 在本发明的一个实施例中,配置压缩方式包括:可重构运算单元配置压缩方式、行配置压缩方式和多个可重构运算单元作为整体的配置压缩方式。
[0058] 本发明实施例的多元化配置信息压缩方法,通过对密码算法进行规划得到相应的数据流图,然后根据数据流图的重复特性提取公因子并确定公因子冗余度,再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0059] 图5是根据本发明一个实施例的可重构运算单元配置压缩方式的多元化配置信息压缩方法的流程图。
[0060] 需要说明的是,可重构密码处理器在执行密码算法时具有高度的并行特征,在做算法映射的时候经常会有很多RC单元执行同样的功能,并且输入输出互联也是一样的,也就是其对应的RC的配置信息和互联的配置信息也完全一样。
[0061] 针对划分后的每个子图,如果子图中的所有可重构运算单元的运算操作相同,并且互联结构相同,则根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为可重构运算单元配置压缩方式。
[0062] 其中,通过配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置如图5所示,该配置压缩方式为可重构运算单元配置压缩方式的多元化配置信息压缩方法可以包括:
[0063] S51,对密码算法进行规划并生成密码算法对应的数据流图。
[0064] 可以理解,在做算法映射规划的时候,往往需要结合阵列的规模特性,设计出算法对应的数据流图(DFG),数据流图可以很直观地表明映射结构。
[0065] S52,根据数据流图的重复特性提取公因子,并确定公因子的公因子冗余度。
[0066] 具体而言,先对密码算法规划并得到相应的数据流图,然后针对所得的数据流图的重复特性对数据流图中重复度较高的部分进行提取也就是提取公因子,并确定提取出的公因子的公因子冗余度。
[0067] S53,根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分。
[0068] S54,针对每个子图,将对应的可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息存储于配置存储器中,并保存配置信息的索引号与使用配置信息的可重构运算单元的编号的对应关系。
[0069] 本发明实施例的多元化配置信息压缩方法,通过对密码算法进行规划得到相应的数据流图,然后根据数据流图的重复特性提取公因子并确定公因子冗余度,再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式为可重构运算单元配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0070] 图6是根据本发明一个实施例的运算单元配置压缩方式的示意图。
[0071] 如图6所示,在对算法做RCA上的映射规划时,可将该映射抽象成DFG(图6中左图),在得到DFG之后,可以通过子图划分的方式,图中将DFG划分为子图1与子图2,其中子图1中的所有RC均具有同样的运算操作,并且这些RC的互联情况也完全一样。结合这样的DFG划分,可以将子图对应的RC的配置信息和子图对应的互联的配置信息存储于配置存储器中,在进行RC配置时只需要读入存储该配置信息的索引,以及使用该配置的RC编号,不同RC通过同一个索引就可以访问配置存储器中的完整配置,而索引加上RC的编号所需的配置信息量远远小于他们的完整配置信息量,进一步使得整体读取的配置信息量大大减小。
[0072] 需要理解的是,图6中将数据流图DFG划分为两个子图仅是出于示例目的,该实施例中不对划分子图的个数进行限定,在实际应用中,可根据可重构密码处理器硬件特性和公因子冗余度将数据流图划分为其他数量个子图,例如,可将数据流图划分三个子图,或者四个子图等。
[0073] 图7是根据本发明一个实施例的行配置压缩方式的多元化配置信息压缩方法的流程图。
[0074] 需要说明的是,可重构密码处理器上的RCA可以按行进行划分,在对密码算法的映射过程中,通过对DFG的划分,使得一些子图中各行与行之间的RC功能,以及其间的互联结构完全一样。这时它们对应的几个可重构运算单元的配置信息和互联的配置信息也完全相同,这时候如果还是采用RC配置压缩方式,会增加读取配置存储器的次数,从而降低配置效率,因此,在这种情况下可以采用行配置压缩的方式,压缩量不变的同时,可以有更高的配置效率。如图7所示:
[0075] S71,对密码算法进行规划并生成密码算法对应的数据流图。
[0076] 可以理解,在做算法映射规划的时候,往往需要结合阵列的规模特性,设计出算法对应的数据流图(DFG),数据流图可以很直观地表明映射结构。
[0077] S72,根据数据流图的重复特性提取公因子,并确定公因子的公因子冗余度。
[0078] 具体而言,先对密码算法规划并得到相应的数据流图,然后针对所得的数据流图的重复特性对数据流图中重复度较高的部分进行提取也就是提取公因子,并确定提取出的公因子的公因子冗余度。
[0079] S73,根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分。
[0080] S74,将一个子图的子图配置信息存储于配置存储器中,并保存子图的编号与子图配置信息的索引号的对应关系,其中,子图配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。
[0081] 本发明实施例的多元化配置信息压缩方法,通过对密码算法进行规划得到相应的数据流图,然后根据数据流图的重复特性提取公因子并确定公因子冗余度,再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式为行配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0082] 图8是根据本发明一个实施例的行配置压缩方式的示意图。
[0083] 如图8所示,对一个算法的DFG通过划分变成图8左图所示的两个子图后,连续数行RC之间,行与行的结构和功能完全一样,结合这样的DFG子图,可以把一行的配置信息压缩存储于配置存储器中,在配置时只需读入该行配置对应与配置存储器的索引,数行RC用同一索引,达到重复单元压缩的目的,进一步大大减小了配置信息总量。在行内几个RC单元所用功能不一样的情形下,相比可重构运算单元压缩方式中的RC配置压缩有更高的配置效率。
[0084] 需要理解的是,图8中将数据流图DFG划分为两个子图仅是出于示例目的,该实施例中不对划分子图的个数进行限定,在实际应用中,可根据可重构密码处理器硬件特性和公因子冗余度将数据流图划分为其他数量个子图,例如,可将数据流图划分三个子图,或者四个子图等。
[0085] 图9是根据本发明一个实施例的多个可重构运算单元作为整体的配置压缩方式的多元化配置信息压缩方法的流程图。
[0086] 需要说明的是,针对一些循环部分比较多的密码算法,为了保证加密流水线操作的效率,会对密码算法中循环部分进行展开映射到RCA上,循环部分对应的配置信息往往是一样的。有时候即使是非循环部分,把映射抽象成DFG后,仍然可以通过对DFG进行子图划分,把一部分RC作为一个整体,不同的整体之间具有完全一样的可重构运算单元结构和互联结构,它们具有同样的配置信息。这样的DFG划分能很好地提供压缩空间。
[0087] S91,对密码算法进行规划并生成密码算法对应的数据流图。
[0088] 可以理解,在做算法映射规划的时候,往往需要结合阵列的规模特性,设计出算法对应的数据流图(DFG),数据流图可以很直观地表明映射结构。
[0089] S92,根据数据流图的重复特性提取公因子,并确定公因子的公因子冗余度。
[0090] 具体而言,先对密码算法规划并得到相应的数据流图,然后针对所得的数据流图的重复特性对数据流图中重复度较高的部分进行提取也就是提取公因子,并确定提取出的公因子的公因子冗余度。
[0091] S93,根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分。
[0092] S94,针对每个子图,将一行的行配置信息压缩存储于配置存储器中,并保存行号与行配置信息的索引号的对应关系,其中,行配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。
[0093] 本发明实施例的多元化配置信息压缩方法,通过对密码算法进行规划得到相应的数据流图,然后根据数据流图的重复特性提取公因子并确定公因子冗余度,再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式为多个可重构运算单元作为整体的配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置,该方法结合密码算法的计算特征来选择配置信息压缩方式,并基于所选择的配置信息压缩方式对配置信息进行压缩,去除冗余的配置信息,进而可提高可重构密码处理器的执行效率。
[0094] 图10是根据本发明一个实施例的多个可重构运算单元作为整体的配置压缩方式的示意图。
[0095] 如图10所示,最简单的情形是以循环展开为例,RPU_CRYPTO配置加密算法,DFG划分为子图1和子图2,分别执行循环部分展开后的一次操作,图中的各字母(A、B….)代表着一种算术运算,两个子图的结构完全一样,映射到RCA上,第1~3行RC执行子图1,第4~6行RC执行子图2。它们所需的配置参数是完全一样的,这种情况下把一次循环所需要的配置信息(包括运算单元配置信息和互联配置信息)存储于配置存储器,因此,采用索引的方式就可以实现对该循环配置信息的共用,大大压缩了配置信息量。
[0096] 需要理解的是,图10中将数据流图DFG划分为两个子图仅是出于示例目的,该实施例中不对划分子图的个数进行限定,在实际应用中,可根据可重构密码处理器硬件特性和公因子冗余度将数据流图划分为其他数量个子图,例如,可将数据流图划分三个子图,或者四个子图等。
[0097] 为了实现上述实施例,本申请还提出了一种多元化配置信息压缩装置。
[0098] 图11是根据本发明一个实施例的多元化配置信息压缩装置的结构示意图。如图11所示,该多元化配置信息压缩装置包括:生成模块110、第一确定模块111、划分模块112、第二确定模块113和压缩模块114,其中:
[0099] 生成模块110用于对密码算法进行规划并生成密码算法对应的数据流图。
[0100] 第一确定模块111用于根据数据流图的重复特性提取公因子,并确定公因子的公因子冗余度。
[0101] 划分模块112用于根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分。
[0102] 第二确定模块113用于根据划分后的子图的结构特征信息和互联特征信息确定配置压缩方式。
[0103] 压缩模块114用于通过配置压缩方式对子图所对应的可重构运算单元的配置信息和互联的配置信息进行压缩配置。
[0104] 在本发明的一个实施例中,配置压缩方式包括:可重构运算单元配置压缩方式、行配置压缩方式和多个可重构运算单元作为整体的配置压缩方式。
[0105] 在本发明的一个实施例中,多元化配置信息压缩装置,针对划分后的每个子图,如果子图中的所有可重构运算单元的运算操作相同,并且互联结构相同,则第二确定模块113根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为可重构运算单元配置压缩方式,其中,压缩模块114具体用于:针对每个子图,将对应的可重构运算单元的配置信息和各个可重构运算单元之间的互联配置信息存储于配置存储器中,并保存配置信息的索引号与使用配置信息的可重构运算单元的编号的对应关系。
[0106] 在本发明的一个实施例中,多元化配置信息压缩装置,多元化配置信息压缩方法,如果划分后的各个子图的结构均相同,则第二确定模块113根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为行配置压缩方式,其中,压缩模块114具体用于:将一个子图的子图配置信息存储于配置存储器中,并保存子图的编号与子图配置信息的索引号的对应关系,其中,子图配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联的配置信息。
[0107] 在本发明的一个实施例中,多元化配置信息压缩装置,针对划分后的每个子图,如果子图中的行与行之间的运算操作相同,且行与行之间的互联结构相同,则第二确定模块113根据划分后的子图的结构特征信息和互联特征信息所确定的配置压缩方式为多个可重构运算单元作为整体的配置压缩方式,压缩模块114具体用于:针对每个子图,将一行的行配置信息压缩存储于配置存储器中,并保存行号与行配置信息的索引号的对应关系,其中,行配置信息包括可重构运算单元的配置信息和各个可重构运算单元之间的互联配置信息。
[0108] 需要说明的是,前述对多元化配置信息压缩方法实施例的解释说明也适用于该实施例的多元化配置信息压缩装置,此处不再赘述。
[0109] 本发明实施例的多元化配置信息压缩装置,通过生成模块对密码算法进行规划得到相应的数据流图,然后第一确定模块根据数据流图的重复特性提取公因子并确定公因子冗余度,划分模块再根据可重构密码处理器硬件特性和公因子冗余度对数据流图进行子图划分,最后第二确定模块根据划分好的子图的结构特征信息和互联特征信息确定配置压缩方式利用压缩模块对子图的可重构运算单元的配置信息和互联的配置信息进行压缩配置,该方法实现了能够选择最佳的配置信息压缩方式,在减少配置信息量的同时提高配置效率。
[0110] 在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0111] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0112] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0113] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0114] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0115] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0116] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。