码流加载系统和方法与流程
- 国知局
- 2024-11-06 14:46:26
本发明涉及fpsoc,尤其涉及一种码流加载系统和方法。
背景技术:
1、随着soc(system on chip,片上系统)和fpga(field-programmable gate array,现场可编程门阵列)的发展,soc和fpga集成在一起的fpsoc应用领域愈发广泛。fpsoc中分为处理器系统部分和现场可编程逻辑部分。系统启动后,现场可编程逻辑部分需要将逻辑码流数据加载到现场可编程逻辑部分以实现所需的功能,为保证数据安全,不被盗取或篡改,通常使用加密码流数据,且对码流数据进行签名验证。
2、现有的与本发明最接近的方案为xilinx zynq7000系列soc所采用的安全启动方案。该安全启动系统从非易失存储器启动,解密模块、验签模块和哈希模块均处于现场可编程逻辑部分侧,待解密的数据通过可编程配置存取接口从非易失存储器的内存送往现场可编程逻辑侧进行解密运算,数据全部解密完成后配置现场可编程逻辑侧,又通过可编程配置存取接口送回处理器系统侧内存,处理器系统侧内存将解密后的数据进行保存。其解密、签名验证和计算哈希的操作均是独立完成的。
3、由上述可知,xilinx zynq7000系列需先从内存中提取码流数据,码流数据提取完成后,再进行解密操作,解密完成后再加载到可编程逻辑部分。因此,xilinx zynq7000系列码流加载技术至少需要三步加载才能完成,码流加载效率偏低。
技术实现思路
1、本发明的目的在于提供一种能够提高码流加载效率的码流加载方法和系统。
2、技术方案:本发明提供了一种码流加载系统,包括哈希模块、加解密模块和直接内存访问模块,
3、所述直接内存访问模块以分段加载的方式加载码流数据,并将加载到的码流数据段同步传输给所述加解密模块,所述加解密模块对接收到的所述码流数据段进行解密,得到解码结果,并将所述解码结果同步传输给所述哈希模块,所述哈希模块对所述解码结果进行哈希运算,得到哈希结果;
4、所述加解密模块解密完成一个码流数据段后,分别同步发送解码完成信号给所述直接内存访问模块和所述哈希模块,并继续读取下一个码流数据段进行解密。
5、进一步地,包括第一数据通路和第二数据通路,所述加解密模块通过所述第一数据通路与所述直接内存访问模块交互连接,并通过所述第二数据通路与所述哈希模块交互连接。
6、进一步地,包括第一通信线路和第二通信线路,所述加解密模块通过所述第一通信线路与所述直接内存访问模块连接,并通过所述第二通信线路与所述哈希模块连接。
7、进一步地,还包括第一处理模块、第二处理模块、中断处理模块、第三通信线路和第四通信线路,所述中断处理模块分别与所述第一处理模块和所述第二处理模块交互连接,所述第一处理模块与所述第三通信线路交互连接,所述第二处理模块分别与所述第三通信线路和所述第四通信线路交互连接。
8、进一步地,所述加解密模块、所述哈希模块和所述直接内存访问模块分别与所述第四通信线路交互连接,所述直接内存访问模块还与所述第三通信线路交互连接。
9、进一步地,还包括现场可编程逻辑模块、配置模块和接口模块,所述配置模块分别与所述接口模块和所述现场可编程逻辑模块交互连接,所述接口模块分别与所述第三通信线路和所述第四通信线路交互连接;
10、所述配置模块通过所述接口模块同步接收所述解码结果,并将所述解码结果同步传输给所述现场可编程逻辑模块,用于配置所述现场可编程逻辑模块。
11、进一步地,还包括随机存取存储器,所述随机存取存储器分别与所述第三通信线路和所述第四通信线路交互连接,所述随机存取存储器用于第一处理模块向第二处理模块发送程序指令和程序运行所需的数据,以及用于第二处理模块向第一处理模块返回程序指令执行结果。
12、进一步地,还包括签名验证模块,所述签名验证模块与所述第四通信线路交互连接,所述签名验证模块用于对所述解码结果或者哈希结果进行签名验证或哈希验证。
13、进一步地,还包括非易失存储器、数据缓存器和非易失存储控制器,
14、所述非易失存储控制器分别与所述第三通信线路和所述非易失存储器交互连接,所述数据缓存器与所述第三通信线路连接,所述非易失存储控制器用于将所述非易失存储器中的码流数据读取到所述数据缓存器中。
15、一种码流加载方法,应用于码流加载系统,
16、在码流加载过程中,直接内存访问模块将加载到的码流数据同步传输给所述加解密模块,所述加解密模块对接收到的所述码流数据进行解密,得到解码结果,并将所述解码结果同步传输给哈希模块,所述哈希模块则对所述解码结果进行哈希运算,得到哈希结果;
17、所述加解密模块完成一个码流数据解密操作后,将解码完成信号分别同步发送给所述直接内存访问模块和所述哈希模块,并继续读取下一个码流数据进行解密。
18、进一步地,码流加载过程启动前,包括步骤:
19、第一处理模块先向随机存取存储器发送写入控制指令,然后通过中断处理模块向第二处理模块发送核间中断指令;
20、所述第二处理模块接收到所述核间中断指令后,读取随机存取存储器中的控制指令,根据控制指令内容,与直接内存访问模块将加载到的码流数据同步传输至加解密模块。
21、进一步地,第一处理模块向随机存取存储器发送写入控制指令之前,还包括步骤:
22、所述第一处理模块通过接口模块发送码流头,使接口模块与配置模块、现场可编辑逻辑模块之间建立同步关系;
23、所述第一处理模块发送配置模块配置指令,进行所述配置模块的初始化设定。
24、进一步地,进行配置模块的初始化设定之后,还包括步骤:
25、所述第一处理模块读取所述配置模块的状态,所述配置模块的状态正确后,再执行所述第一处理模块向所述随机存取存储器发送写入控制指令。
26、进一步地,码流加载过程还包括步骤:
27、所述直接内存访问模块将所述解码结果通过接口模块加载至配置模块,所述配置模块根据所述解码结果配置现场可编程逻辑模块。
28、进一步地,码流加载过程结束时,还包括步骤:
29、所述第二处理模块将所述哈希结果写入所述随机存取存储器,并通过所述中断处理模块向所述第一处理模块发送核间中断指令;
30、所述第一处理模块接收所述核间中断指令,并将码流结束指令通过所述接口模块加载至配置模块,所述配置模块根据所述码流结束指令配置现场可编程逻辑模块,结束码流加载。
31、进一步地,所述第一处理模块接收所述核间中断指令之后,还包括步骤:
32、所述第一处理模块开始读取码流数据的加载结果,并判断所述码流数据是否加载正确,若所述码流数据加载正确,则第一处理模块读取所述码流数据和所述配置模块的配置状态,若所述码流数据加载不正确,则复位现场可编程逻辑模块,结束码流加载。
33、进一步地,所述第一处理模块判断所述码流数据加载正确后,还包括验证步骤,所述验证步骤包括:
34、所述第一处理模块判断所述码流数据是否需要签名验证或哈希验证,若所述码流数据需要签名验证或哈希验证,所述第一处理模块向所述随机存取存储器写入发起签名验证或哈希验证的指令,并通过所述中断处理模块向所述第二处理模块发送核间中断指令;
35、所述第二处理模块接收所第一处理模块述核间中断指令后与签名验证模块执行签名验证或哈希验证,然后将验证结果写入所述随机存取存储器,并通过所述中断处理模块向所述第一处理模块发送核间中断指令;
36、所述第一处理模块接收所述第二处理模块发送的核间中断指令后,从所述随机存取存储器读取所述验证结果;
37、若所述码流数据不需要签名验证或哈希验证,则所述第一处理模块向所述接口模块发送码流结束指令。
38、进一步地,所述第一处理模块从所述随机存取存储器读取验证结果之后,还包括步骤:所述第一处理模块判断所述验证结果是否通过验证,所述第一处理模块判断所述验证结果通过验证后,所述第一处理模块向所述接口模块发送码流结束指令;
39、若所述验证结果不通过,则复位现场可编程逻辑模块,结束码流加载。
40、进一步地,所述第一处理模块将码流结束指令通过接口模块加载至配置模块,还包括步骤:所述第一处理模块读取所述码流数据和所述配置模块的状态,并判断所述配置模块状态是否正确,若判断所述配置模块状态正确,则结束码流加载;若所述配置模块状态不正确,则复位现场可编程逻辑模块,结束码流加载。
41、进一步地,所述第一处理模块向所述随机存取存储器写入控制指令之前,还包括步骤:
42、所述第一处理模块和非易失存储控制器读取码流数据或部分码流数据,并保存至数据缓存器中。
43、进一步地,所述第一处理模块判断所述码流数据是否加载正确后,还包括步骤:所述第一处理模块判断所述码流数据是否全部加载完成,
44、若所述码流数据没有全部加载完成,则所述第一处理模块和所述非易失存储控制器再次读取部分码流数据,并保存至数据缓存器中;
45、若所述码流数据全部加载完成,再判断所述码流数据是否需要签名验证或哈希验证。
46、有益效果:本发明的有益之处在于,直接内存访问模块在加载码流数据的同时,能够同步直接将数据加载至加解密模块和哈希模块,实现数据加载、解密及哈希计算的并行处理,从而提升加载效率。
47、本发明的有益之处在于,第一处理模块和第二处理模块之间的通信机制采用高效的核间中断协议,以减少通信延迟,加快码流处理速度。
本文地址:https://www.jishuxx.com/zhuanli/20241106/324061.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。