首页 / 一种多协议密码算法处理器及片上系统

一种多协议密码算法处理器及片上系统失效专利 实用

技术领域

[0001] 本实用新型涉及集成电路设计领域,尤其涉及的是,一种多协议密码算法处理器,可应用于集成电路片上系统(system on chip,SOC),以及一种片上系统。

相关背景技术

[0002] 集成电路是所有电子产品的核心部件,随着技术的发展,各厂商已经将处理器,存储器及接口电路集成到同一颗芯片内,成为片上系统。这样,采用一颗SOC芯片即可实现电子产品所要求的计算,处理,通信,存储等功能,缩小了产品的体积和增强了可靠性。伴随SOC在金融支付、身份识别领域的广泛应用,如金融卡,身份证,U盾等,密码算法运算成为芯片的核心功能之一。
[0003] 在上述应用领域的SOC内,往往需要支持SHA-1/256,SM4,SM1,SM3等多种密码算法,以满足各类应用的需求。
[0004] 对上述需求通常有两个解决方案:
[0005] 一是硬件IP(individual processor)方案,为每个密码算法单独设计一个硬件计算模块IP,挂载到SOC内的总线上,由处理器进行配置和调度。它的缺点一是电路面积大,造成芯片成本明显增加;二是算法固化,不能随应用进行升级改良,如支持新的参数或安全性升级等。
[0006] 二是软件算法方案,通过SOC内处理器上的软件程序实现这些算法。它的缺点是计算性能极低,往往不能满足应用要求或降低产品的竞争力。
[0007] 因此,现有技术存在缺陷,需要改进。实用新型内容
[0008] 为解决上述方案存在的问题,本实用新型提出了一种新的多协议密码算法处理器及片上系统。
[0009] 本实用新型的技术方案如下:一种多协议密码算法处理器,其包括总线接口模块、指令处理器及存储器切换模块;所述总线接口模块分别与所述指令处理器及所述存储器切换模块连接,用于连接总线并解析其读写时序,并与所述指令处理器及所述存储器交互。
[0010] 优选的,所述存储器切换模块还用于连接双端口静态随机存储器。
[0011] 优选的,还包括所述双端口静态随机存储器。
[0012] 优选的,所述双端口静态随机存储器设置指令存储器与数据存储器。
[0013] 优选的,所述双端口静态随机存储器设置程序区模块。
[0014] 优选的,所述程序区模块通过所述存储器切换模块连接所述总线接口模块。
[0015] 优选的,所述总线接口模块设置命令寄存器。
[0016] 优选的,所述命令寄存器与所述指令处理器连接。
[0017] 优选的,所述总线接口模块还设置读写电路,其与所述存储器切换模块连接,用于通过所述存储器切换模块连接所述双端口静态随机存储器。
[0018] 一种片上系统,其包括总线及与所述总线连接的上述任一多协议密码算法处理器。
[0019] 采用上述方案,本实用新型通过把上述密码及计算用同一套电路支持,并采用指令序列控制的方式进行运算,支持用户修改指令序列,解决了硬件IP方案的面积和升级问题;同时,对指令的实现做了硬件优化,解决了软件算法方案的性能问题。

具体实施方式

[0023] 为了便于理解本实用新型,下面结合附图和具体实施例,对本实用新型进行更详细的说明。但是,本实用新型可以采用许多不同的形式来实现,并不限于本说明书所描述的实施例。需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
[0024] 除非另有定义,本说明书所使用的所有的技术和科学术语与属于本实用新型的技术领域的技术人员通常理解的含义相同。本说明书中在本实用新型的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本实用新型。本说明书所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0025] 在片上系统中,通常以主处理器为中心,包含指令及数据存储器、功能模块与接口模块,各电路模块通过总线互相连接。本实用新型的一个实施例是,一种多协议密码算法处理器,也可以称为多协议算法处理器或算法处理器,其包括总线接口模块、指令处理器及存储器切换模块;所述总线接口模块分别与所述指令处理器及所述存储器切换模块连接,用于连接总线并解析其读写时序,并与所述指令处理器及所述存储器交互;也就是说,多协议密码算法处理器通过其总线接口模块连接总线。例如,如图1所示,多协议密码算法处理器包括总线接口模块及分别与其连接的指令处理器、存储器切换模块。
[0026] 优选的,所述存储器切换模块还用于连接双端口静态随机存储器。优选的,所述多协议密码算法处理器还包括所述双端口静态随机存储器,所述存储器切换模块连接所述双端口静态随机存储器。
[0027] 优选的,所述双端口静态随机存储器设置指令存储器与数据存储器;例如,所述双端口静态随机存储器设置存储空间互调的指令存储器与数据存储器。例如,所述双端口静态随机存储器的存储空间的一部分设置为所述指令存储器,其余部分设置为所述数据存储器,当调整存储空间的任一部分时,另一部分对应调整;例如,当所述指令存储器增加某一值时,所述数据存储器对应减少该值。例如,所述双端口静态随机存储器设置调整模块,用于根据片上系统的主处理器或所述多协议密码算法处理器的控制指令,调整所述指令存储器与所述数据存储器的存储空间;又如,调整模块用于调整所述指令存储器与所述数据存储器其中一存储器的存储空间,另一存储器的存储空间自动调整。例如,所述数据存储器设置计算数据寄存器、计算结果寄存器、第一地址偏移量寄存器、第二地址偏移量寄存器、第一指令地址寄存器、第二指令地址寄存器、第一标志寄存器及第二标志寄存器;例如,计算数据寄存器及计算结果寄存器为32位,第一地址偏移量寄存器、第二地址偏移量寄存器、第一指令地址寄存器及第二指令地址寄存器为8位,第一标志寄存器及第二标志寄存器为1位。优选的,所述双端口静态随机存储器设置程序区模块。例如,所述程序区模块通过所述存储器切换模块连接所述总线接口模块。
[0028] 如图1所示,本实用新型的多协议算法处理器位于总线上,连接一个双端口静态随机存储器或拥有一个双端口静态随机存储器,用于存放指令序列和数据,在主处理器的命令下进行配置、启动或停止工作。算法处理器内包含三个模块,分别是总线接口模块、指令处理器、存储器切换模块。优选的,所述总线接口模块设置命令寄存器。例如,所述命令寄存器与所述指令处理器连接。例如,所述命令寄存器位于所述总线接口模块靠近所述指令处理器且远离所述双端口静态随机存储器的位置。
[0029] 优选的,所述总线接口模块还设置读写电路,其与所述存储器切换模块连接,用于通过所述存储器切换模块连接所述双端口静态随机存储器。例如,所述读写电路位于所述总线接口模块靠近所述双端口静态随机存储器且远离所述指令处理器的位置。
[0030] 例如,总线接口模块连接总线,解析总线的读写时序,总线接口模块内部包括一个命令寄存器,操纵指令处理器启动(start),重启动(restart),并锁存指令处理器提供的工作状态标识pause和busy,供主处理器查询。总线接口模块还提供了主处理器访问双端口静态随机存储器的读写电路,支持主处理器对存储器进行读写。例如,所述总线接口模块的命令寄存器设置用于操纵指令处理器启动的启动指令寄存单元及用于操纵指令处理器重启动的重启动指令寄存单元;又如,所述总线接口模块还设置状态寄存器,用于锁存指令处理器提供的工作状态标识pause和busy;例如,所述状态寄存器设置用于在接收指令处理器提供的工作状态标识pause时记录指令处理器处于暂停状态的暂停寄存单元及用于在接收指令处理器提供的工作状态标识busy时记录指令处理器处于忙碌状态的忙碌寄存单元。
[0031] 例如,指令处理器包含处理逻辑,在接收到启动命令后,busy设置为1。自动通过Inst_if从双端口SRAM(Static Random Access Memory,静态随机存储器)取出指令码,进行译码,并通过Data_if取出待处理数据,进行相应处理后,再写回双端口SRAM。指令处理器还用于识别暂停指令,并设置Pause标志,在识别到结束指令后,busy由1设置为0。本实用新型及其各实施例中,通过指令序列的组合,可以支持的运算包括:SM1、SM3、SM4、SHA1和SHA256、以及其它自定义的算法。
[0032] 例如,所述指令处理器设置接收单元、设置单元、指令取出单元、译码单元、数据取出单元、处理单元及写入单元;所述接收单元分别与所述设置单元、所述指令取出单元连接,用于接收启动命令,通过所述设置单元设置指令处理器的忙碌状态,并由所述指令取出单元从双端口静态随机存储器中取出指令码;所述指令取出单元还与所述译码单元连接,用于通过所述译码单元对所述指令码进行译码操作,所述译码单元、所述数据取出单元、所述处理单元及所述写入单元顺序连接,用于通过所述数据取出单元取出待处理数据,由所述处理单元处理后,通过所述写入单元写入到双端口静态随机存储器。优选的,所述指令处理器还设置忙碌存储单元,用于存储所述指令处理器的忙碌状态或其标记,例如,设置busy=0或busy=1。
[0033] 存储器切换模块对总线模块的bus_if,指令处理器的inst_if,data_if进行切换,形成两路到双端口静态随机存储器的存取信号。例如,存储器切换模块用于采用以下切换规则实现:
[0034] 当指令处理器的busy=0或pause=1时,将bus_if切换到双端口静态随机存储器的端口A;
[0035] 当指令处理器的busy=1且pause=0时,inst_if切换到双端口静态随机存储器的端口A,data_if切换到双端口静态随机存储器的端口B。
[0036] 下面再给出一个片上系统的整体工作流程示例。例如,一种多协议密码算法的处理方法,其采用任意实施例所述多协议密码算法处理器或所述片上系统,该处理方法包括以下步骤:
[0037] 1.主处理器写入指令码序列到双端口静态存储器(即双端口静态随机存储器)内;
[0038] 2.主处理器写入计算待处理的数据到双端口静态存储器内;
[0039] 3.主处理器向算法处理器发送启动命令;
[0040] 4.算法处理器自动进行指令序列执行及数据处理;
[0041] 5.算法处理器设置结束标志;
[0042] 6.主处理器获得结束标志后,从双端口静态存储器取出结果。
[0043] 这样,主处理器与算法处理器采用总线连接,通过把密码及计算用同一套电路支持,并采用指令序列控制的方式进行运算,能够支持后台修改指令序列,解决了硬件IP方案的面积和升级问题。
[0044] 例如,多协议密码算法处理器的实现分为三部分,一是定义寄存器模型和指令格式,二是设计硬件电路结构,三是组合指令实现高层密码算法。
[0045] 例如,算法处理器支持256个word(32位)的存储空间,分为指令和数据两部分,二者的分配大小可任意调整;例如包括指令寄存器与数据寄存器,二者的分配大小可任意调整。内部建立2个32位的通用寄存器,分别是R0与R1,用于存放计算数据和结果;2个8位的指针寄存器BP和BR,用于指示地址偏移量;2个8位的指令寄存器PC(或const)和SP,用于指示执行的指令地址;2个1位的标志寄存器zero flag和neg flag,指示计算结果的状态。
[0046] 例如,寄存器及存储模型如图2所示,其中,指令分为传送指令、计算指令、分支指令三类,说明如下表所示。
[0047]
[0048] 例如,所有指令采用16位统一编码,格式如下表所示。
[0049]
[0050] 下面继续对硬件架构实现说明。例如,所述指令处理器设置读写(memif)模块、寄存(regfile)模块、运算(ALU)模块、获取(fetch)模块及解码(decode_execute)模块。例如,读写模块与寄存模块相连接,还分别与解码模块、运算模块相连接,用于实现对数据的写入和读取,其中,由解码模块获得对数据的写入和读取的控制信号、操作地址及选择信号,根据所述选择信号从寄存模块中选择计算数据寄存器、计算结果寄存器、第一指令地址寄存器或第二指令地址寄存器,并将读取的数据发送到寄存模块;还从运算模块获得其运算结果。例如,读写模块设置读写控制单元、写数据选择单元及地址产生单元,分别用于实现读写控制、写数据选择及地址产生。获取模块与解码模块相连接,用于指示当前指令地址,从双端口静态随机存储器内取出相应指令码给解码模块,并自动进行递增或由解码模块控制递增;例如,获取模块设置用于指示当前指令地址的当前指令地址指示寄存器,获取模块用于从双端口静态随机存储器内取出相应指令码给解码模块时,所述当前指令地址指示寄存器自动进行递增或由解码模块控制递增。解码模块还分别与寄存模块、运算模块相连接,用于对指令进行译码,根据指令产生控制信号,并完成指令的执行。例如,解码模块设置指令译码单元及指令执行单元,分别用于对指令进行译码、执行指令。寄存模块还连接运算模块,用于根据解码模块的控制信号,受控写入寄存及发送用于运算的两个操作数到运算模块。例如,寄存模块设置计算数据寄存器、计算结果寄存器、第一地址偏移量寄存器、第二地址偏移量寄存器、第一指令地址寄存器、第二指令地址寄存器、第一标志寄存器及第二标志寄存器;又如,寄存模块还设置两个选择器,分别用于发送第一操作数、第二操作数。运算模块设置用于运算的加减法器,移位器和逻辑运算器;例如,所述逻辑运算器为与或非逻辑计算器。
[0051] 例如,如图3所示,指令处理器分为五个模块实现,分别是memif、regfile、ALU、fetch、decode_execute。
[0052] fetch模块内包含PC寄存器,指示当前指令地址,通过inst_if从SRAM内取出指令码inst给decode_execute模块,pre_inst是预取的下一条指令。Decode_execute模块可以通过set_pc和set_val对PC的值进行设定,其余情况下PC自动进行递增。
[0053] Decode_execute模块对指令进行译码,根据指令的含义,产生对memif,regfile,ALU,fetch的控制信号,完成指令的执行。
[0054] Memif通过data_if完成对数据的写入和读取。操作地址由Decode_execute给出的adr和mode得到,读出的数据送给regfile模块,写入的数据根据decode_execute给出的dsel选择信号,从R0,R1,BP,BR内进行选择。读写控制信号由decode_execute给出。
[0055] Regfile模块包括R0,R1,bp,br,SP寄存器,其写入受decode_excute的信号控制,根据op_sel信号产生两个操作数送给ALU模块。
[0056] ALU模块包括一个加减法器,移位器和逻辑运算器,安装decode_execute给出的opcode操作码,对操作数做相应运算,结果送给regfile和memif模块,最终根据指令控制写入寄存器或存储器。
[0057] 指令序列根据SHA1,SHA256,SM3,SM4算法规范进行组合,采用指令说明表的标记格式进行记录,然后通过perl脚本自动生成二进制的程序码,由主处理器写入双端口SRAM的程序区内。除上述几个算法外,通过指令的组合,还可以实现自己定义的专用算法,应用方便、灵活。
[0058] 下面以SHA256算法为例,指令序列及对应二进制码说明如下:
[0059]
[0060]
[0061]
[0062] SM1,SM3,SM4,SHA1的指令序列制定方法和SHA256雷同,在此不再赘述。
[0063] 本实用新型的其他实施例还包括,一种片上系统,其包括总线及与所述总线连接的上述任一实施例所述多协议密码算法处理器。例如,如图1所示,所述片上系统包括主处理器、指令及数据存储器、多协议密码算法处理器、双端口静态随机存储器等,例如还包括片上系统内的其他电路,主处理器、指令及数据存储器、多协议密码算法处理器以及片上系统内的其他电路通过总线连接。
[0064] 采用上述各实施例,本实用新型具备下述优势:
[0065] 1、性能明显优于SOC内通用处理器的软件方案,SOC内通用处理器如arm cortex M0/3,一般软件方案在48M工作频率下的性能低于500Kbps。
[0066]
[0067] 2、面积小,成本低:本实用新型及其各实施例的逻辑门数约7K门,而算法硬件IP方案实现sha-1/256,SM3,SM4,SM1的门数将超过25K门。
[0068] 3、本实用新型及其各实施例的芯片出厂后,还可根据应用需求进行算法的升级或扩展。
[0069] 进一步地,本实用新型的实施例还包括,上述各实施例的各技术特征,相互组合形成的多协议密码算法处理器及片上系统,通过把密码及计算采用同一套电路支持,并采用指令序列控制的方式进行运算,支持用户修改指令序列,解决了硬件IP方案的面积和升级问题;同时,对指令的实现做了硬件优化,解决了软件算法方案的性能问题。
[0070] 需要说明的是,上述各技术特征继续相互组合,形成未在上面列举的各种实施例,均视为本实用新型说明书记载的范围;并且,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本实用新型所附权利要求的保护范围。

当前第1页 第1页 第2页 第3页