本发明专利技术提供一种多缓冲并行加密的软件调度方法,所述方法包括:(1)加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;(2)加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;(3)判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。本发明专利技术调整加密数据报文的结构,增加了对多缓冲区方式的识别,实现多个缓冲区传输数据,减少待加解密数据在传输过程中的时间。
【技术实现步骤摘要】
本专利技术涉及一种软件调度方法,具体涉及。
技术介绍
随着电力信息网络的发展,越来越多的电力业务应用通过信息网络系统调度运行。为了保证信息系统业务数据的安全,普遍采用数据加密方式保护数据。电力网络通信系统对密码设备加解密的性能要求呈现几何级数增长。然而加密芯片的性能升级受硬件技术发展的制约,性能增长难以满足电力网络通信系统的需求,需要通过其他途径提升密码设备的加密性能。由于在运行过程中大规模的数据在总线传输需要大量时间,加密程序在调度加密芯片加密的过程中存在效能浪费,因此加密芯片并非处于满负荷工作状态。可以通过研究高性能加密设备调度程序,提升加密芯片运行效率。如何对通过加密模块的处理器对多缓冲区进行调度是该技术实现的难点,需要设计专门的软件调度方法来实现对多个缓冲区的控制,并且需要对缓冲区的结构进行一定的调整,以便实现对每个缓冲区识别、读写以及调度。
技术实现思路
为了克服上述现有技术的不足,本专利技术提供,本专利技术调整加密数据报文的结构,增加了对多缓冲区方式的识别,实现多个缓冲区传输数据,减少待加解密数据在传输过程中的时间。为了实现上述专利技术目的,本专利技术采取如下技术方案:—种多缓冲并行加密的软件调度方法,所述方法包括如下步骤:(I)加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;(2)加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;(3)判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。优选的,所述步骤(I)中,所述数据包中包括缓冲区序号、状态标识、算法类型、加密解密方式、加密密钥、IV向量以及数据,所述状态标识用于标记数据包处理状态。优选的,所述数据包的处理无需等待数据包处理完成,直接处理下一个数据包,处理所述下一个数据包包括如下步骤:步骤1-1、判断DMA传输是否在使用,若是则等待直到所述DMA传输使用完成后,再启用DMA传输,否则直接通过DMA传输到缓冲区中;步骤1-2、继续读入下一个数据包,直到所有的缓冲区的数据包都为未处理状态。优选的,所述步骤(2)中包括如下步骤:步骤2-1、判断加密模块是否处于空闲状态,若是则将缓冲区的未处理数据送入加丰旲块;步骤2-2、所述加密模块中的加密芯片依次读取数据包内的明文,进行加密处理,所述加密处理是利用已设定的初始加密密钥,采用加密芯片的固定算法对数据进行加密或者解密操作;步骤2-3、加密模块加解密处理完后,将已处理数据包从加密模块中读出,存入缓冲区,并标记该数据包为已完成处理;步骤2-4、将所有缓冲区轮询一遍,是否有缓冲区中存在未处理的数据,若有则跳转至步骤2-1。优选的,所述步骤(3)中,所述缓冲区中标记为已完成处理的数据包则需要送出,通过DMA传输,将数据包发送给加密设备,并在传输完成后标记缓冲区为空,为接收下一组数据包做准备。优选的,所述DMA传输结束后,加密模块启动中断响应程序进行后续的传输控制操作,包括如下步骤:Α、判断本中断是否为主机中断,若是则清除当前指向的缓冲区数据包,准备接收下一组数据包;B、判断DMA传输是否结束,若结束则清除DMA标志位,准备启动下一组数据包传输;C、判断是否有数据包需要读入,如果是,则启动DMA传输,把数据包从加密设备读入到加密模块的对应缓冲区中;D、上述流程处理完成以后,结束中断响应程序。与现有技术相比,本专利技术的有益效果在于:本专利技术提出的多缓冲方式提高加密卡性能的软件调度方法,通过调整加密数据报文的结构,增加了对多缓冲区方式的识别,实现多个缓冲区传输数据,减少待加解密数据在传输过程中的时间,从而提高数据加密卡的加解密速度。【附图说明】图1是本专利技术提供的的流程图图2是本专利技术提供的一种中断响应程序的流程图【具体实施方式】下面结合附图对本专利技术作进一步详细说明。本实施例提出,通过采用本软件调度方法,可以实现加密模块的多缓冲区的并行调度,采用多个缓冲区并行调度的加密模块可以有效提高加密芯片的工作效率,使加密芯片处于满负荷工作状态,从而提高加密模块的加解密速度。加密模块检查缓冲区I数据是否是未处理的数据。如果是,判断加密芯片是否处于空闲状态,如果是空闲状态,将缓冲区的未处理数据送入加密芯片。加密芯片加密完成后,加密模块将已处理数据从加密芯片读出,存入缓冲区I中,并标识该数据包已完成处理。加密模块再检查缓冲区2,重复上述操作,并将所有的缓冲区轮询一遍。由于多个缓冲区中一定有待处理数据,所以加密芯片可以一直处于满负荷工作状态。通过实际测试检验,加密芯片的效率可以接近最大值,因此加密芯片实际可以处于饱和工作状态。如图1所示,,包括以下步骤:1、加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,读入数据子程序,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;所述数据包中包括缓冲区序号、状态标识、算法类型、加密解密方式、加密密钥、IV向量以及数据,所述状态标识用于标记数据包处理状态。加密模块不需要等待上一个数据包处理,可以直接返回,然后处理第二个数据包。这时候,判断DMA是否在使用,如果DMA在使用,则等待直到DMA使用完成后,再启动DMA传输。如此可以继续读入下一个数据包,直到所有的缓冲区的数据包都为未处理状态。2、加密模块判断缓冲区是否有数据包处于未当前第1页1 2 本文档来自技高网...
【技术保护点】
一种多缓冲并行加密的软件调度方法,其特征在于,所述方法包括如下步骤:(1)加密模块完成程序初始化后,判断是否有数据包需要读入缓冲区,若是则启动DMA传输,从加密设备中读入数据包,并保存到缓冲区,并将数据包标记为未处理状态;(2)加密模块判断缓冲区是否有数据包处于未处理状态,若是则运行数据加解密子程序,对数据包进行处理;(3)判断缓冲区是否有数据包需要送出,若有则通过DMA通道传输写出数据子程序。
【技术特征摘要】
【专利技术属性】
技术研发人员:曾荣,张涛,马媛媛,林为民,邵志鹏,费稼轩,华烨,时坚,张波,陈璐,黄秀丽,管小娟,何高峰,
申请(专利权)人:国网智能电网研究院,国家电网公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。