基于统一硬件任务接口的系统架构的重构方法

文档序号:6432064阅读:263来源:国知局
专利名称:基于统一硬件任务接口的系统架构的重构方法
技术领域
本发明涉及数据加密和嵌入式系统架构领域,特别涉及一种基于统一硬件任务接口的系统架构的重构方法。
背景技术
长期以来,人们对电子系统中计算密集型的工作往往会采用一些硬件的方法来实现,这种方式的主要特征是由特定的ASIC(Application Specific Integrated Circuit) 芯片来完成系统主要的计算工作。ASIC是用硬件结构直接体现算法,所以速度较快,但也有其无法克服的缺点。设计和开发ASIC往往意味着较高的的设计成本和较长的开发周期。 另外,ASIC —般都是为特定应用设计的,缺乏通用性。因而近来,随着微电子技术、计算机技术的发展,尤其是大规模高性能的可编程器件的出现,可重构计算技术(reconfigurable computing technology)逐渐成为国际上计算系统研究中的一个新热点。它的出现使过去传统意义上的硬件和软件界限变得模糊,使硬件系统具有像软件系统一样的灵活特性。计算密集型任务所面向的对象一般都具有数据量大,算法复杂,循环计算等特点。 这类应用主要面向如模式匹配、数据加密、滤波、图像处理、仿真等领域。在目前广泛使用的计算结构中,计算密集型任务主要由两类实现方式软件方式和硬件方式。软件的方式是采用通用处理器来做计算。其主要特点是根据处理器的指令集,编写相应的算法软件来实现不同的计算功能,而不用去改动底层的硬件环境。但处理器要事先把计算任务按时间进行分解,使之变成数条的指令序列,这些指令序列形成程序保存于存储器中,然后CPU读出存储器中的程序顺序执行。这样导致运算速度要比ASIC慢很多。 另外,处理器的指令集是由处理器自身体系结构决定的,没有用专门指令实现的操作只能使用已有的指令组合来处理,这也增加了执行的开销。硬件方式的主要特征是由特定的ASIC芯片来完成系统主要的计算工作,微处理器只起协调各部件工作的作用。但是硬件方法具有开发周期长,一次性投入大,缺乏灵活性,而且难以升级等缺点。

发明内容
本发明针对现有电子系统中计算密集型任务所采用的方法所存在的缺陷,而提供一种基于统一硬件任务接口的系统架构的重构方法。该方法能够实现对各种模块的状态控制,并向用户提供一个简单易用、与底层实现无关的接口。并且在系统运行时,可实现各个功能模块的实时在线切换,具备良好的通用性。为了达到上述目的,本发明采用如下的技术方案基于统一硬件任务接口的系统架构的重构方法,所述重构方法包括如下步骤(1)设计统一的硬件任务接口,用于连接总线和硬件模块,通过所述硬件任务接口实现对硬件模块的状态控制和向硬件模块提供一个与上层实现无关的接口;(2)模块功能设计,实现系统任务模块的组合和连接以及所有任务模块的功能;
(3)对任务模块占用的资源进行预估,并根据预估结果创建顶层设计的约束文件;(4)将每个任务模块单独实现,在指定约束下将描述任务模块的HDL语言或原理图转化成为对应FPGA内部资源设置和连接的文件;(5)任务模块集成,将各个单独的任务模块按顶层设计合并起来形成一个完整的 FPGA设计,生成完整地比特流文件。所述步骤(1)中统一的硬件任务接口通过三条可逆数据通路来完成数据通路, 密钥通路和状态控制通路。所述步骤⑵中任务模块之间的连接由总线宏完成。所述步骤(3)中进行预估时实现任务模块布局、IOB布局以及全局逻辑布局,所述任务模块布局把FPGA内部资源分配给每个任务模块,所述全局逻辑布局使得底层的非模块逻辑通过位置约束来指定逻辑在设备中具体的位置。所述约束文件包含所有全局的布局和时序约束。所述步骤(4)具体通过如下步骤实现(4-1)首先利用综合工具将HDL语言或原理图综合成网表,而后转换成能够映射入FPGA内部的初始数据库文件,(4-2)再对初始数据库文件进行解析,布局布线工具将其在FPGA内部实现,需要重构的模块还必须生成对应的部分比特流文件,实现运行时配置。本发明基于动态可重构技术,充分利用FPGA的并行处理能力,实现对数据加密算法的硬件加速。采用基于统一加密硬件任务接口模型的设计方法,实现对加密模块的状态控制,并向用户提供一个简单易用、与底层实现无关的接口。并且在系统运行时,可实现不同算法模块的实时在线切换。本发明利用可编程器件可多次配置逻辑状态的特性,在运行时根据需要改变系统的电路结构,从而使系统兼具灵活、简捷、硬件资源可复用、易于升级等多种优良性能。一方面可重构计算机可根据不同的计算任务对系统做出相应的算法配置,从而具有很强的通用性和灵活性;另一方面在重构时,非重构部分仍然在运行,其中相关寄存器的内容不会丢失,不需要在重构时将寄存器的内容保存到FPGA外的存储器中,从而缩短了系统重构的开销,提高系统的运行效率。本发明利用FPGA的并行处理能力,实现图像处理算法中的并行性。主要体现在两个方面空间并行性和时间并行性,其中多种数据加密算法的可以同时以并行方式在多个流水线上进行各自的处理。本发明提供了一个功能总线OPB BUS,基于该总线的功能模块能方便设计并灵活修改。本发明每个硬件任务在系统中分配唯一的地址标识,采用自顶而下的设计原则。 并且提供硬件任务的软件调用接口。通过本发明提供了一个重构的模块,一方面可重构模块可根据不同的计算任务对系统做出相应的算法配置,从而具有很强的通用性和灵活性;另一方面在重构时,非重构部分仍然在运行,其中相关寄存器的内容不会丢失,不需要在重构时将寄存器的内容保存到 FPGA外的存储器中,从而缩短了系统重构的开销,提高系统的运行效率。
以下结合附图和具体实施方式
来进一步说明本发明。

图1为本发明基于统一硬件任务接口的平台结构示意图;图2为本发明的统一硬件任务接口设计示意图;图3为AES加密模块结构示意图;图4为加密模块接口描述图;图5为AES加密控制信号映射示意图;图6为DES加密实现结构示意图;图7为加密系统重构流程示意图。
具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。本发明涉及一种基于统一硬件任务接口的系统架构的重构方法,通过其可实现对加密模块的状态控制,并向用户提供一个简单易用、与底层实现无关的接口。并且在系统运行时,可实现算法模块的实时在线切换,具备良好的通用性。为了实现上述的目的,本发明实现的方法如下首先是设计硬件任务接口,硬件任务接口(Hardware Module Interface,简称 HMI)是总线和硬件模块之间的桥梁。设计的统一 HMI,便于硬件模块的设计和操作系统对硬件模块的管理。设计的任务模块接口主要是实现以下的目标1、实现硬件模块的状态控制;2、向用户硬件模块提供一个与上层实现无关的,简单易用的接口。根据上述描述的加密模块的共性和要求,硬件接口的设计需要具有三条可逆数据通路来完成数据通路,密钥通路和状态控制通路。整个系统实现采用基于模块化的设计流程。模块化设计总体分功能设计、资源预估、模块实现、模块集成四个阶段进行。功能设计包括顶层设计和模块设计。顶层设计实现模块的组合和连接。项层逻辑在10、时钟逻辑和模块的实例化都要受到总线宏的约束,设计中必须保证模块间通信的信号由总线宏传递。每个总线宏提供4位的模块通信位。有多少位数据要进行通信,则必须要实例化相应个数的总线宏。模块设计是具体实现模块的功能。每个模块作为独立的工程, 相对顶层是“黑盒子”,只暴露和其它模块的接口。在逻辑层次上,必须是自包含的模块,所有的模块端口必须明确定义为输入或者输出并且不能出现端口缓冲。所有模块必须使用全局时钟,模块间不能直接共享除全局时钟之外的任何信号,包括复位、使能等。完成顶层设计和模块设计后就应该对模块占用的资源进行预估,并根据预估结果创建顶层设计的约束文件(user constrain file,UCF)。预估阶段必须实现模块布局、IOB 布局以及全局逻辑的布局。模块布局把FPGA内部资源分配给每个模块。根据不同FPGA 特性,分配资源时应注意几点资源的最小宽度;模块边界的对齐方式;部分可重构区域中配置的比特流属性在约束文件中描述。全局逻辑布局底层的非模块逻辑如总线宏必须通过位置约束来指定逻辑在设备中具体的位置,不允许存在非约束的非模块逻辑。所有模块的输入输出都与10、全局逻辑或者总线宏相连。预估阶段产生约束文件,包含所有全局的布局和时序约束,具体模块实现时还可能要修改约束文件来实现模块独立的布局和时序约
束ο模块功能设计和资源预估完成后,需要将每个模块单独实现,在指定约束下将描述模块的HDL语言或原理图转化成为对应FPGA内部资源设置和连接的文件。具体流程和一般模块实现方法类似,首先利用综合工具将HDL语言或原理图综合成网表,而后转换成能够映射入FPGA内部的初始数据库文件,再对此文件进行解析,布局布线工具将其在FPGA 内部实现,需要重构的模块还必须生成对应的部分比特流文件,实现运行时配置。每个模块进行布局布线时,必须受到项层约束的限制,只能添加模块内部的时序约束,不允许对顶层的约束进行改动。模块实现时只考虑模块内部的连接关系以及约束文件中规定的总线宏位置,不受其它模块的影响。模块集成时,因为重构模块只能在特定重构区域进行配置,所以首先设计一个顶层的模块,并在FPGA中正常运行,然后将所有的重构的逻辑放置并且锁定,重构模块才能正常运行在重构区域中。因此,必须将各个单独的模块按顶层设计合并起来形成一个完整的FPGA设计,生成完整地比特流文件。完成以上设计阶段后,下载运行重构系统。该平台的最大优点在于结合了通用处理器和ASIC两者的优点,它既能够提供硬件的效率又具备了软件的可编程性。上述方案在具体实施时,可形成加密重构系统的硬件平台,参见图1,该平台是采用XILINX的XUP (XiIinx University Program)开发板。重构的时候,首先将整个系统划分成两个大模块固定模块和重构模块。固定模块放置在固定区域,运行时不被重构,包含了程序运行的基本系统和所需的基本外设;而重构模块放置在重构区域中,用以实现不同的硬件加速算法。固定模块包含微处理器,以及系统运行所需的外设。当进行任务重构时,系统根据需求从CF(Compact Flash)卡中读取密码模块1和密码模块2的配置信息,通过ICAP (Internal Configuration Access Port)对重构区域进行配置。两个模块均由统一的通信接口来与总线通信。由于器件的特性要求,ICAP只能放置在FPGA的右下脚。如图1所示,系统结构图中的虚线为总线宏(Bus Marco)。它是通过硬件布线得到的宏,编译后放在固定的位置,它在重构时是固定不变,是模块间的通信通道。ICAP模块能够对FPGA进行自配置,该模块采用8位数据接口读取或改变FPGA配置信息。1、接口设计硬件任务接口(Hardware Module Interface,简称HMI)是总线和硬件模块之间的桥梁。设计的统一 HMI,便于硬件模块的设计和操作系统对硬件模块的管理。设计的硬件任务接口主要是实现以下的目标1、实现硬件模块的状态控制;2、向用户硬件模块提供一个与上层实现无关的,简单易用的接口。用模块化的方法设计重构系统时,整个FPGA被分多个区域,每个区域放置不同的任务模块。模块的接口布线是由总线宏来完成。总线宏是通过硬件布线得到的宏,它是手动指定的模块通信信道的物理连接。根据上述描述的加密模块的共性和要求,硬件接口的设计需要具有三条可逆数据通路来完成数据通路,密钥通路和状态控制通路。由此定义了 5个32位寄存器来实现这些接口。时钟统一采用系统时钟,状态控制需要根据具体的加密算法做部分修正。如图2 所示。图中从上至下依次为寄存器附、1 2、1 3、1 4、1 5针对加密算法有接口定义①寄存器1、2是用做数据的输入和输出;②寄存器3、4用作密钥的输入;③寄存器5用作状态控制。五个寄存器的地址分别定义为0X00-0X03、0X04-0X07、0X08-0X11、0X12-0X15、 0X16-0X19。其中Command寄存器信号的地址根据具体的密码算法可灵活定义,具体可参见以下AES实例。2、统一硬件任务接口验证本例用AES、DES两种加密算法对上述密码模块接口的功能进行了设计验证。基于验证过的密码模块接口,在可重构平台上对两种密码算法的重构进行了设计。其中详述了 AES加密算法在此模块接口中的设计与实现过程。DES算法可参照AES设计流程。(I)AES加密实现AES加密是美国的国家标准局所推荐的一种加密标准。AES模块的硬件设计采用 VHDL语言,运用全同步的外部时钟。该模块接口符合上述密码模块的两个共性。主要包含三个部分接口控制单元,加解解密运算单元,密钥扩展单元,总体的结构如下图3所示。图中粗线代表数据线,细线代表控制线。除了数据总线接口以外,该模块定义了 6个功能控制信号。具体的功能描述如图 4所示。由于AES的加密解密数据处理位数为1 位,但是在可重构系统接口中两个寄存器的位数和仅为64位。因此在AES模块的硬件设计中增加了一个“LOAD”信号作为前64 位数据和后64位数据位的标识。当“LOAD”为高时读取前64位数据,为低读取后64位数据。当1 位数据装载完成后,启动周期后加密完成。同时CPU也可以通过查询“DONE”信号的跳变来判断加密的进程。通过以上硬件任务接口的定义得到五个寄存器的地址。其中 Command寄存器定义了 5个控制状态信号,其bit位地址映射如图5所示。在重构平台XUP上完成AES对加密模块接口的连接和功能验证。首先构建一个基本系统,包含一些基本的外设如串口、定时器、片上内存等。然后通过修改用户逻辑(user_ logic)文件完成模块与接口的映射。最后下载运行验证。O) DES加密实现DES加密算法是其中一种常用的算法,主要由三个模块构成数据输入、密钥输入、控制信号线。其总体结构如图6所示。DES的数据位为64位,不需要有” LOAD”信号来做数据标识。寄存器1作为数据的输入输出,寄存器3作为密钥的输入输出,寄存器5作为控制信号的定义。首先完成地址映射,然后在系统平台上完成对DES加密的验证。(3)两种密码的重构设计本重构系统采用基于模块化的设计流程。模块化设计总体分功能设计、资源预估、 模块实现、模块集成四个阶段进行。首先进行硬件系统结构与模块划分,将AES、DES模块对应的设计文件分别存放在独立目录下,每个模块单独综合网表、布局布线。然后在FPGA编辑器中检查各个模块生成的文件,以保证每个模块都被限制在约束文件指定的区域内。总线宏也根据约束文件放在指定位置,且在每个模块的生成文件中其占用的长线位置总是不变的。最后将所有功能完好的模块通过顶层的设计封装起来。所有的模块对于顶层设计, 都是“黑盒子”。重构时首先初始化ACE (Advanced Configuration Environment)控制器和 ICAP0 然后从CF卡中选择所需的密码算法,并通过ICAP对重构区域进行配置。两个模块均由统一的密码模块接口与总线通信。具体重构流程如图7。当某种密码算法重构完成后,随即进入加密状态。如AES加密完成时,“DONE”信号变为“1”,同时加密后的结果将保存在四个32位的寄存器中。对DES 在读入数据后,经过16个时钟周期结束一次加密,结果保存前两个32位数据寄存器中。每次任务结束后,回到功能模块的选择状态。可重构计算技术在计算密集型中的应用结合了通用处理器和ASIC两者的优点。 它既能够提供硬件的效率又具备了软件的可编程性,因而广受瞩目。文章针对计算密集型中的加密计算设计了一种通用硬件任务接口。通过对AES、DES两种加密计算的功能验证和性能分析,可重构技术在计算密集型中的加速优势得到了体现。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
权利要求
1.基于统一硬件任务接口的系统架构的重构方法,其特征在于,所述重构方法包括如下步骤(1)设计统一的硬件任务接口,用于连接总线和硬件模块,通过所述硬件任务接口实现对硬件模块的状态控制和向硬件模块提供一个与上层实现无关的接口;(2)模块功能设计,实现系统任务模块的组合和连接以及所有任务模块的功能;(3)对任务模块占用的资源进行预估,并根据预估结果创建顶层设计的约束文件;(4)将每个任务模块单独实现,在指定约束下将描述任务模块的HDL语言或原理图转化成为对应FPGA内部资源设置和连接的文件;(5)任务模块集成,将各个单独的模块按顶层设计合并起来形成一个完整的FPGA设计,生成完整地比特流文件。
2.根据权利要求1所述的基于统一硬件任务接口的系统架构的重构方法,其特征在于,所述步骤(1)中统一的硬件任务接口通过三条可逆数据通路来完成数据通路,密钥通路和状态控制通路。
3.根据权利要求1所述的基于统一硬件任务接口的系统架构的重构方法,其特征在于,所述步骤O)中任务模块之间的连接由总线宏完成。
4.根据权利要求1所述的基于统一硬件任务接口的系统架构的重构方法,其特征在于,所述步骤(3)中进行预估时实现任务模块布局、IOB布局以及全局逻辑布局,所述任务模块布局把FPGA内部资源分配给每个任务模块,所述全局逻辑布局使得底层的非模块逻辑通过位置约束来指定逻辑在设备中具体的位置。
5.根据权利要求1所述的基于统一硬件任务接口的系统架构的重构方法,其特征在于,所述约束文件包含所有全局的布局和时序约束。
6.根据权利要求1所述的基于统一硬件任务接口的系统架构的重构方法,其特征在于,所述步骤(4)具体通过如下步骤实现(4-1)首先利用综合工具将HDL语言或原理图综合成网表,而后转换成能够映射入 FPGA内部的初始数据库文件,(4-2)再对初始数据库文件进行解析,布局布线工具将其在FPGA内部实现,需要重构的模块还必须生成对应的部分比特流文件,实现运行时配置。
全文摘要
本发明公开了基于统一硬件任务接口的系统架构的重构方法,该方法首先是设计硬件任务接口,其整个系统实现采用基于模块化的设计流程,模块化设计总体分功能设计、资源预估、模块实现、模块集成四个阶段进行。本发明针对数据加密应用中的大数据量处理和计算实时性需求,能够实现对加密模块的状态控制,并向用户提供一个简单易用、与底层实现无关的接口。并且在系统运行时,可实现算法模块的实时在线切换,具备良好的通用性。
文档编号G06F15/78GK102279838SQ20111025466
公开日2011年12月14日 申请日期2011年8月31日 优先权日2011年8月31日
发明者吴轶轩, 李万才, 梅林 , 沈冬青, 陈建永 申请人:公安部第三研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1