掌桥专利:专业的专利平台
掌桥专利
首页

实现流水线调度的方法、装置、计算机存储介质及终端

文献发布时间:2023-06-19 11:44:10


实现流水线调度的方法、装置、计算机存储介质及终端

技术领域

本文涉及但不限于芯片处理技术,尤指一种实现流水线调度的方法、装置、计算机存储介质及终端。

背景技术

在主机与加解密芯片通信中,在相同硬件资源前提下,采用流水线方式对从通信接口开始到加解密处理的数据调度处理,可以大大提升系统带宽,实现数据的高速传输处理。

要使流水线中包含的各个流水级运行达到最大效率,需要保证各流水级的运行时间相同或大致相同,若各流水级运行时间不同,则需要通过设置空等(空闲等待)方式,确保各流水级运行时间保持相同,这会延长处理芯片所需时间,造成资源浪费。以串行外设接口(SPI)作为通信接口的加解密芯片为例,图1为相关技术实现加解密芯片数据处理的系统组成示意图,如图1所示,系统包括SPI、四通道直接存储器访问(DMA)和用于加解密处理的加解密模块;其中,四通道直接存储器访问(DMA)包括:第一内置式远端监控(EDMAC)、第二EDMAC、第一静态随机存取存储器(SRAM)发送模块、第二SRAM发送模块,第一SRAM接收模块、第二SRAM接收模块;第一EDMAC与SPI接口连接,接收待运算数据,第一EDMAC通过发送通道一传输待运算的数据到第一SRAM发送模块,通过发送通道三将数据发送至第二EDMAC,经由第二EDMAC发送至加解密模块;同样的,第一EDMAC通过发送通道二传输待运算的数据到第二SRAM发送模块,通过发送通道四将数据发送至第二EDMAC,经由第二EDMAC发送至加解密模块;DMA在传输数据过程中对待运算数据进行预处理;加解密模块对接收到的预处理数据进行加解密处理后,第二EDMAC通过接收通道三传输加解密后的数据到第一SRAM接收模块,通过接收通道一将加解密后的数据发送至第一EDMAC,完成加解密数据回传;同样的,第二EDMAC通过接收通道四传输加解密后的数据到第二SRAM接收模块,通过接收通道二将加解密后的数据发送至第一EDMAC,完成加解密数据回传;基于图1的系统,外部主机通过SPI将待运算数据传输给加解密芯片,加解密芯片对待运算数据进行预处理后再执行加解密处理;一般的,相关技术通过包括国产哈希算法(SM3)在内的算法对待运算数据进行预处理;采用包括非对称加解密算法(SM2)在内的算法对数据进行加解密处理;上述待运算数据的数据量一般符合加解密处理的数据长度要求,如摘要验签、消息验签、长数据验签分别对应不同的一百~几百比特(Byte)字节。待运算数据进行预处理后经过DMA传输,通过SM2进行加解密处理;为实现大数据量运算高速处理,一般需要设置多个用于运行SM2的流水级同时工作,假设设置有三个运行SM2的流水级,通过下划线和编号定义为SM2_0、SM2_1和SM2_2,则SM2_0、SM2_1和SM2_2分别进行一部分加解密处理。SM2对预处理后的数据进行加解密处理后,通过DMA和SPI将加解密处理后的数据回传给外部主机,从而完成一次加解密芯片的数据处理。除流水级SM2_0、SM2_1和SM2_2以外,相关技术一般将通过SM3进行的预处理通过一个流水级实现。在流水线运行时,各流水级执行时间相等的流水线称为对齐流水线,对齐流水线可以获得最大加速比。各流水级用时不相等的流水线称为非对齐流水线;为实现非对齐流水线的正常工作,相关技术一般对用时较少的流水级需进行空等设置,流水线会因此损失部分运行效率。以包含四个流水级的流水线为例,图2为对齐流水线的工作示意图,如图2所示,图中S1、S2、S3和S4表示四个流水级,每一行按照时间排序的S1、S2、S3和S4表示一个加解密芯片的完整的数据加解密处理过程;纵向上按照流水线空间排布的S1在时间上连续,表示的是对不同的加解密芯片通过SM3执行预处理;纵向上按照流水线空间排布的每个S2在时间上连续,分别表示SM2_0、SM2_1和SM2_2对其所在行的预处理后的数据进行加解密处理;图中的四个流水级的执行时间相同,每个流水级的运算时间均为△T。图3为非对齐流水线的工作示意图,如图3所示,S1运算时间为△T,大于与S2、S3和S4的运算时间,为保证流水线正常工作,S2~S4均需进行空等设置,将运算时间扩展至△T,才可以实现流水级对齐,进而保证流水线的正常工作。流水线中的流水级运算时间不相同,会导致流水级的运算速度不匹配,进行空等设置虽然可以实现流水级对齐,降低了对加解密芯片进行调度处理的传输带宽,此外,在该传输带宽下过多的加解密模块的运行也增大了系统的功耗。若将加解密模块设置在较慢的运算速率或未将预处理模块配置在最佳的运算速率上,也将降低加解密芯片的数据传输带宽。

发明内容

以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本发明实施例提供一种实现流水线调度的方法、装置、计算机存储介质及终端,能够降低流水线的功率消耗,提升流水线的传输带宽和运行效率。

本发明实施例提供了一种实现流水线调度的方法,包括:

流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;

根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。

另一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述实现流水线调度的方法。

再一方面,本发明实施例还提供一种终端,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,

处理器被配置为执行存储器中的计算机程序;

所述计算机程序被所述处理器执行时实现如上述实现流水线调度的方法。

还一方面,本发明实施例还提供一种实现流水线调度的装置,包括:获取单元和调整单元;其中,

获取单元设置为:流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;

调整单元设置为:根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。

本发明实施例流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。实现了实时的流水线的自动调度,降低了流水线的功率消耗,提升了流水线的传输带宽和运行效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为相关技术实现加解密芯片数据处理的系统组成示意图;

图2为对齐流水线的工作示意图;

图3为非对齐流水线的工作示意图;

图4为本发明实施例实现流水线调度的方法的流程图;

图5为本发明实施例实现流水线调度的装置的结构框图;

图6为本发明应用示例加解密系统的组成示意图;

图7为本发明应用示例一系统运行示意图;

图8为本发明应用示例另一系统运行示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请发明人发现,由技术人员根据流水级的运算性能设置各流水级的运行时钟频率,从而实现运算时间的控制;由于业务差异,外部主机发送给加解密芯片的数据的码流长度会存在差异,流水线运行后一般不对流水级的运行时钟频率进行调整,当流水线中包含的流水级不对齐时,通过空等设置实现流水级对齐,会造成系统功耗增大和数据传输带宽的降低;如果想要不通过设置空等实现流水级对齐,需要技术人员将重新确定的流水级的运行时钟频率手动写入系统中,实时性差,影响了流水线的运行效率。

图4为本发明实施例实现流水线调度的方法的流程图,如图4所示,包括:

步骤401、流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;

步骤402、根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。

本发明实施例流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。实现了实时的流水线的自动调度,降低了流水线的功率消耗,提升了流水线的传输带宽和运行效率。

在一种示例性实例中,本发明实施例在流水线出现通过设置空等进行流水级对齐时,通过是否需要空等设置确定流水级是否对齐。

在一种示例性实例中,本发明实施例根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,包括:

根据外部主机传输的数据量确定各流水级的运行时间信息;

根据确定的各流水级的运行时间信息,确定用于对数据进行运算处理的流水级;

在流水级的运算速率范围内,遍历确定一组以上流水线运行时钟频率;

根据预先设置的性能、功耗和面积(PPA)信息,从遍历确定的一组以上流水线运行时钟频率中选择其中之一,作为实现流水级对齐的流水线运行时钟频率;

其中,每一组流水线运行时钟频率包括:可实现确定的用于对数据进行运算处理的流水级对齐的一个以上流水级的运行时钟频率。

需要说明的是,外部主机传输的数据量为流水线运算处理的数据的数据量。

本发明实施例PPA指加解密芯片的性能、功耗和面积,为本领域技术人员公知的定义;在一种示例性实例中,本发明实施例可以根据PPA中的部分信息,确定一组流水线运行时钟频率作为实现流水级对齐的流水线运行时钟频率。一组流水线运行时钟频率是指可以使流水线中包含的流水级实现对齐的各流水级的运行时钟频率。

在一种示例性实例中,本发明实施例确定用于对数据进行运算处理的流水级,包括:

根据各流水级的运行时间信息,确定对数据进行的每一项运算处理的总时长信息;

根据确定的总时长信息,确定对数据进行的每一项运算处理所需要的流水级的个数;

其中,运算处理包括:预处理和/或加解密处理。

需要说明的是,对于数据的一项运算处理,本发明实施例可以通过调用一个流水级的方式确定采用流水级最高运算速率时所需时长;在确定的数据的一项运算处理的总时长信息后,通过总时长和最高运算速率时所需时长的商,可以确定进行数据的该项运算处理所需流水级的最小个数。在一种示例性实例中,本发明实施例加解密处理包括以下任意之一的处理:加密处理、解密处理、以及加密和解密处理。

在一种示例性实例中,基于流水线处理的加解密芯片一般仅存在业务场景的差异,因此,同一流水线上进行的数据的运算处理,同一运算处理所需的流水级的个数一般只有出现增减一个单位的变化,例如、由技术人员确定的流水级对齐时采用三个流水级进行加解密处理,则在检测到流水级不对齐时,确定的用于加解密处理的流水级的个数为2~4之间。假设流水级包含第一运算处理和第二运算处理;其中,第一运算处理采用一个流水级,第二运算处理采用三个流水级;假设第一运算处理的运行时间为X,第二运算处理时各个流水级的运行时间为Y;当2X大于3Y,且通过调整第一运算处理的流水级的运算速率,可以实现2X等于2Y时,本发明实施例可以确定第一运算处理采用一个流水级,第二运算处理采用两个流水器,通过调整运行时钟频率实现运算速率的调整,在满足2X等于2Y时实现流水级的对齐;为便于理解,可以拟定流水级不对齐时X的初始等于150微秒,Y的初始值等于80微秒;在流水级的运行速率范围内,调整至第一运算处理的运行时间为120微秒,第二运算处理的240微秒,第二运算处理采用两个流水级进行运算。

在一种示例性实例中,本发明实施例遍历确定一组以上流水线运行时钟频率,包括:

根据确定对数据进行的每一项运算处理所需要的流水级的个数,确定一组以上可实现对数据进行运算处理的流水级对齐的流水级的组合;

对每一组可实现对数据进行运算处理的流水级对齐的流水级的组合,在流水级的运算速率范围内确定各流水级的运行时钟频率。

在一种示例性实例中,用于进行相同运算处理的流水级的运行时钟频率相同,即用于进行相同运算处理的流水级的运算速率(所需运行时间)相同。

需要说明的是,在设定满足流水级对齐的条件下,在确定进行运算处理所需要的流水级的个数之后,本发明实施例可以通过逐步调整用于进行各运算处理的流水级的运算速率的方式,确定各流水级的运行时钟频率。

在一种示例性实例中,本发明实施例可以根据功耗和传输带宽等设定流水级的最小运算速率,根据流水级的运算性能设定流水级的最大运算速率。根据确定的最小运算速率和最大运算速率可以确定流水级的运算速率范围。

在一种示例性实例中,确定对数据进行的每一项运算处理所需要的流水级的个数之后,本发明实施例还包括:通过将流水级的运行时钟频率由非零调整为零的方式增加流水级,或者,通过将流水级的运行时钟频率由零调整为非零的方式减少流水级。

本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述实现流水线调度的方法。

本发明实施例还提供一种终端,包括:存储器和处理器,存储器中保存有计算机程序;其中,

处理器被配置为执行存储器中的计算机程序;

计算机程序被处理器执行时实现如上述实现流水线调度的方法。

图5为本发明实施例实现流水线调度的装置的结构框图,如图5所示,包括:获取单元和调整单元;其中,

获取单元设置为:流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;

调整单元设置为:根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。

本发明实施例流水级不对齐时,获取流水线运算数据的各流水级的运行时间信息;根据获取的各流水级的运行时间信息调整一个以上流水级的运行时钟频率,以实现流水级对齐。实现了实时的流水线的自动调度,降低了流水线的功率消耗,提升了流水线的传输带宽和运行效率。

在一种示例性实例中,本发明实施例调整单元是设置为:

根据外部主机传输的数据量确定各流水级的运行时间信息;

根据确定的各流水级的运行时间信息,确定用于对数据进行运算处理的流水级;

在流水级的运算速率范围内,遍历确定一组以上流水线运行时钟频率;

根据预先设置的性能、功耗和面积(PPA)信息,从遍历确定的一组以上流水线运行时钟频率中选择其中之一,作为实现流水级对齐的流水线运行时钟频率;

其中,每一组流水线运行时钟频率包括:可实现确定的用于对数据进行运算处理的流水级对齐的一个以上流水级的运行时钟频率。

在一种示例性实例中,本发明实施例调整单元是设置为确定用于对数据进行运算处理的流水级,包括:

根据各流水级的运行时间信息,确定对数据进行的每一项运算处理的总时长信息;

根据确定的总时长信息,确定对数据进行的每一项运算处理所需要的流水级的个数;

其中,运算处理包括:预处理和/或加解密处理。

在一种示例性实例中,本发明实施例调整单元是设置为遍历确定一组以上流水线运行时钟频率,包括:

根据确定对数据进行的每一项运算处理所需要的流水级的个数,确定一组以上可实现对数据进行运算处理的流水级对齐的流水级的组合;

对每一组可实现对数据进行运算处理的流水级对齐的流水级的组合,在流水级的运算速率范围内确定各流水级的运行时钟频率。

应用示例

图6为本发明应用示例加解密系统的组成示意图,如图6所示,系统包括:SPI接口、预处理模块、三个加解密模块和实现流水线调度的装置组成;预处理模块包括一组串联的:第一DMA、运行SM3算法的模块和第二DMA组成,第一DMA用于将来自SPI接口的数据传输至运行SM3算法的模块,第二DMA用于将加解密模块处理后的数据发往SPI接口;三个加解密模块为三个并行的运行SM2算法的流水级分支,将三个流水级分支分别表示为:SM2_00、SM2_20和SM2_30;三个流水级分支独立工作,分别处理经由预处理模块预处理后的三份需要加解密处理的数据;即串联的预处理模块的运算效率可以满足三个独立的加解密模块的工作效率。若图6所示系统中实现流水线调度的装置未工作,在外部主机进行长数据验签时,下发一帧数据经过预处理模块,在系统时钟、运行SM3算法的模块均为普通速率下用时为150微秒,而单个加解密模块执行一帧数据的加解密处理用时约为240微秒。若系统不做适应性调整,SM2_00、SM2_10和SM2_20并行运算;若在流水线工作时,将预处理模块进行的运算处理通过一个流水级S1实现,每一个加解密模块进行的运算处理通过S2、S3和S4三个流水级实现,则本发明应用示例系统运行的流水线调度如图7所示,其中,为清楚示意对应图6各组成部分的运行时间,预处理模块的流水级的运行时间通过SPI+DMA+SM3标识显示,SM2_00流水级分支的流水级S2、流水级S3和流水级S4的工作时长分别通过SM2_01、SM2_02和SM2_03表示;SM2_10流水级分支的流水级S2、流水级S3和流水级S4的工作时长分别通过SM2_11、SM2_12和SM2_13表示;SM2_20流水级分支的流水级S2、流水级S3和流水级S4的工作时长分别通过SM2_21、SM2_22和SM2_23表示;流水线S1总用时为150微秒,各加解密处理的流水级分支中的流水级S2、流水级S3和流水级S4的运算时间均包含工作时间80微秒和空等时间70微秒;由图7所示,系统会出现三个加解密模块相对运行较快,设置了空等时间,系统的数据吞吐率并不是最佳,且三个加解密模块中的流水级均处于工作状态,使得加解密芯片的功耗较大,资源利用率低。

当图6所示系统中的实现流水线调度的装置开启,对各个流水级的运行时钟频率进行调整以实现流水级对齐;流水线调度的装置对流水级的运行时钟频率的调整包括:对DMA的工作时钟(sys_clk),SM3运算的时钟(sm3_clk),加解密处理的各流水级的运行时钟频率(sm2_clk);在一种示例性实例中,实现流水线调度的装置还通过配置集成的门控时钟(ICG)的开启和关断来控制用于加解密处理的流水级的个数。本应用示例可以通过对时钟源做频率的分频后,将各流水级配置在适合的运行时钟频率上。ICG可直接从加工工艺的标准单元库中调用;当ICG配置为不使能,其控制流水级无时钟,流水级处于关断状态,可以节省功耗。

本应用示例通过实现流水线调度的装置开启实现了流水级对齐;通过提升运算SM3的运行时钟频率、DMA运行时钟频率,使流水级S1的运行时间缩短至120微秒,每一个加解密模块开启两个流水级工作,每个流水级用时120微秒,共3个流水级完成一次完整的数据的加解密;图8为本发明应用示例另一系统运行示意图,如图8所示,采用本发明应用示例系统开启实现流水线调度的装置后,流水级用时相等,均为120微秒;并行的加解密模块由三个调整为SM2_00和SM2_10两个,每一个加解密模块的流水级也由三个变为两个,SM2_00包含的两个流水级的工作时长通过SM2_01和SM2_02表示,SM2_10包含的两个流水级的工作时长通过SM2_11和SM2_12;降低了加解密芯片的动态功耗。此外,本应用示例在SM2算法运行相对较慢的情况下,调整SM2算法运行在较高运算频率,降低运处理模块的运行时钟频率,使流水线包含的流水级在对齐状态,提升了系统的工作效能,实现了加解密芯片系统高速数据传输中硬件资源的合理匹配。

“本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。”

相关技术
  • 实现流水线调度的方法、装置、计算机存储介质及终端
  • 实现服务器集群流量调度处理的系统、方法、装置、处理器及其计算机可读存储介质
技术分类

06120113034468