在系统对某一IP核功能进行调用时,密码算法IP核重构模块按如下步骤进行操作:a.根据系统的输入地址与读/写使能,将输入的待处理数据存储于 dual_ramx中;b.IP桥译码IP选择参数,重构选定IP核控制指令为输入的IP控制指令,dual_ramx为选定IP核数据处理区.c.选定 IP核将duaLramx中数据读入IP核内部,根据IP控制指令,完成数据处理;d.选定IP核将已处理数据输出到dual_ramx中,置相应状态完成信号为有效.e.系统判断状态信号有效,通过dual_ramx将处理完成数据读出,完成IP功能调用。
与本文第一部分中方法二相比较,IP桥接技术增加了IP_bridge对选定IP核重构数据处理区与控制指令这一过程。该设计可以实现不同IP核与 dual_ramx的动态重构,通过引入IP桥,对IP核调用指令进行解释,进而配置被调用IP核的地址、数据、指令与时钟等各种接口信号,完成系统对 IP核的功能调用。不同IP核与同一数据处理区的动态可重构可以有效节省片内存储资源,提高存储区利用效率。
采用IP桥接技术实现密码算法多IP核集成,不仅可能节省系统资源消耗,在密码服务提供方面也具有一定优势。密码服务通常是一个有序的过程,在提供密码服务时,由于减少了在不同IP专用数据处理区之间的数据转移操作,因而可以有效提高系统对数据的处理效率。例如,在完成一次签名服务时,一般先对签名数据进行杂凑值运算,再调用公钥密码算法对杂凑结果进行签名,完成对签名数据的签名服务。在这一过程中,将签名服务作为一个完整的基本服务功能进行调用,系统将签名数据写入dual_ramx后,仅需完成对IP选择参数的配置与完成信号的判断操作,便可实现数据签名,极大地简化了系统在向外提供密码服务时的软件控制过程,提高了服务的完成效率。相比较于方法二,所要完成的密码服务越复杂,这一优势越明显。
2.2 IP桥接技术具体实现
以2.1中IP桥接技术设计原理为指导,本文在一个8位SoC系统上实现了TDES、SHA1、RSA三个IP核的系统集成设计。为简化 IP_bridge设计,三个IP核的数据位宽均统一为32位,执行频率统一为50 MHz。图1为密码算法IP核重构区RTL图。
如图1所示,密码算法IP核重构区由TDES、SHA1、RSA三个IP核与IP_bridge、asis_ramx共同构成,根据输入的控制参数,完成同一双端口存储区与不同IP核之间的动态重构。其输入输出如表1所列。
以调用SHA1为例,系统完成对数据块杂凑值计算的操作步骤为:
①MCU执行指令
MOV FUNCCHOOSE,#05H
选择当前调用IP核为SHA1。
②将一个16字节待处理数据块输入双端口存储区asis_ramx中,此时输入数据长度必须为16字节。
③执行指令
MOV INSTUCT,#80H
MOV INSTRUCT,#01H
前一条指令将SHA1进行复位,后一条指令使能SHA1,将待处理数据读入IP核内部寄存器,进而对其进行SHA1运算处理。
④对FUNCSTATE最低位进行判断,为1时输入下一个16字节数据块,执行指令
MOV INSTRUCT,#01H
复位SHA1完成信号,继续进行SHA1运算处理。
⑤最后一个16字节数据块输入,执行指令
MOV INSTRUCT,#01H
判断FUNCSTATE最低位,为1时读出双端口存储区中处理完成数据。