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

阵列电路的输入控制方法和阵列电路

文献发布时间:2024-04-18 19:52:40


阵列电路的输入控制方法和阵列电路

技术领域

本申请涉及电路控制技术领域,具体而言,涉及一种阵列电路的输入控制方法和阵列电路。

背景技术

大规模乘法累加阵列硬件通常用来实现矩阵运算或者卷积计算,是人工智能(Artificial Intelligence)加速器和图形处理器(graphics processing unit,GPU)中占比较大的功能模块。

目前,因数据量规模较大,乘法累加阵列硬件启动时往往在极短的时间内提高整个电路的功耗,形成剧烈的电流变化率(current change rate)变化,造成电器条件失衡,进而导致电路功能错误。然而,目前尚未提供针对上述问题的改进方案。

发明内容

有鉴于此,本申请实施例提供了一种阵列电路的输入控制方法和阵列电路,以解决电流变化率过大导致电路功能错误的问题。

第一方面,本申请实施例提供了一种阵列电路的输入控制方法,应用于阵列电路中的控制模块,所述控制模块与所述阵列电路中的乘法累加阵列电连接,所述方法包括:

获取所述乘法累加阵列的功耗变化率;

若所述功耗变化率超出预设范围,则对所述乘法累加阵列进行输入控制,所述输入控制包括与所述功耗变化率对应的暂停或插入。

在该方案中,在乘法累加阵列的功耗变化率超出预设范围时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

在一可选的实施方式中,所述若所述功耗变化率超出预设范围,则对所述乘法累加阵列进行输入控制,包括:

在所述乘法累加阵列处于功耗上升阶段的情况下,若所述功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则暂停输入所述待进行乘法累加运算的数据序列至所述乘法累加阵列;

在所述乘法累加阵列处于功耗下降阶段时,若所述功耗变化率未超过第二功耗阈值,且未接收到所述待进行乘法累加阵列的数据序列,则插入预设数据序列至所述乘法累加阵列。

在该方案中,在确定乘法累加阵列处于功耗上升阶段的情况下,若乘法累加阵列的功耗变化率超过第一功耗阈值,且控制模块接收到待进行乘法累加运算的数据序列,则控制模块暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,以维持乘法累加阵列的功耗和电流的平滑上升。

在一可选的实施方式中,所述若所述功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则暂停输入所述待进行乘法累加运算的数据序列至所述乘法累加阵列,包括:

若所述功耗变化率超过所述第一功耗阈值,且接收到所述待进行乘法累加运算的数据序列,则确定当前时间是否处于所述功耗上升阶段的无效周期内;

若所述当前时间处于所述功耗上升阶段的无效周期内,则暂停输入所述待进行乘法累加运算的数据序列至所述乘法累加阵列,所述无效周期为在所述功耗上升阶段内不用于数据输入的时间段。

在该方案中,若当前时刻处于功耗上升阶段的无效周期内,说明当前时刻不用于数据输入,则可暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,以维持乘法累加阵列的功耗和电流的平滑上升,避免功耗和电流急剧上升。

在一可选的实施方式中,所述若所述功耗变化率未超过第二功耗阈值,且未接收到所述待进行乘法累加阵列的数据序列,则插入预设数据序列至所述乘法累加阵列,包括:

若所述功耗变化率未超过所述第二功耗阈值,且未接收到所述待进行乘法累加运算的数据序列,则确定当前时间是否处于所述功耗下降阶段的有效周期内;

若所述当前时间处于所述功耗下降阶段的有效周期内,则插入所述预设数据序列至所述乘法累加阵列。

在该方案中,若当前时刻处于功耗下降阶段的有效周期内,说明当前时刻用于数据输入,则可插入预设数据序列至乘法累加运算,以维持乘法累加阵列的功耗和电流的平滑下降,避免功耗和电流急剧下降。

在一可选的实施方式中,所述若所述功耗变化率超过所述第一功耗阈值,且接收到所述待进行乘法累加运算的数据序列,则确定当前时间是否处于所述功耗上升阶段的无效周期内之前,所述方法还包括:

将所述功耗上升阶段划分为多个子时间段,每个子时间段包括多个时钟周期;

从每个子时间段内的多个时钟周期中确定所述每个子时间段内的有效周期;

根据所述多个子时间段内的有效周期,获取所述功耗上升阶段的有效周期;

根据所述功耗上升阶段的有效周期,确定所述功耗上升阶段的无效周期。

在该方案中,功耗上升阶段为由低负载到过渡阶段再到高负载的时间段,将功耗上升阶段划分为多个子时间段,多个子时间段可以理解为n级台阶,对于每级台阶,可以包括不同数量的有效周期,这样可从台阶0按升序提升每级台阶的有效周期的数量,进一步使电流曲线更加平滑。

在一可选的实施方式中,所述若所述功耗变化率超过所述第一功耗阈值,且接收到所述待进行乘法累加运算的数据序列,则确定当前时间是否处于所述功耗上升阶段的无效周期内之前,所述方法还包括:

对所述每个子时间段进行多次重复,得到所述每个子时间段对应的重复时间段;

根据所述多个子时间段对应的重复时间段,重新确定所述功耗上升阶段。

在该方案中,根据子时间段对应的重复时间段,重新确定功耗上升阶段,实现了基于原有子时间段进行时间扩展的目的,使得功耗上升阶段可以灵活调整。

在一可选的实施方式中,所述从每个子时间段内的多个时钟周期中确定所述每个子时间段内的有效周期,包括:

对所述多个时钟周期进行计数,得到多个时钟周期计数结果;

获取所述每个子时间段在所述多个子时间段中的排序计数结果;

根据所述多个时钟周期计数结果和所述排序计数结果,从所述多个时钟周期中确定所述每个子时间段内的有效周期。

在该方案中,通过简单计数能够实现从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,对电路要求不高,实现简单,并可实现有效周期的离散化需求。

在一可选的实施方式中,所述根据所述多个时钟周期计数结果和所述排序计数结果,从所述多个时钟周期中确定所述每个子时间段内的有效周期,包括:

对所述多个时钟周期计数结果分别进行逆序处理,得到多个二进制逆序结果;

根据所述多个二进制逆序结果和所述排序计数结果,从所述多个时钟周期中确定所述每个子时间段内的有效周期。

在该方案中,通过逆序处理和排序计算结果确定有效周期,使得有效周期的选取更加合理。

在一可选的实施方式中,所述根据所述多个二进制逆序结果和所述排序计数结果,从所述多个时钟周期中确定所述每个子时间段内的有效周期,包括:

根据所述多个二进制逆序结果和所述排序计数结果,从所述多个时钟周期中确定所述每个子时间段内的候选有效周期;

根据所述多个子时间段中相邻子时间段之间的预设间隔数,从所述候选有效周期中确定所述每个子时间段内的有效周期,所述预设间隔数用于指示所述相邻子时间段之间有效周期的数量差。

在该方案中,通过逆序处理、排序计算结果以及预设间隔数确定有效周期,使得有效周期的选取更加合理。

在一可选的实施方式中,所述若所述当前时间处于所述功耗上升阶段的无效周期内,则暂停输入所述待进行乘法累加运算的数据序列至所述乘法累加阵列,包括:

若所述当前时间处于所述功耗上升阶段的目标无效周期内,则暂停输入所述待进行乘法累加运算的数据序列至所述乘法累加阵列,所述目标无效周期为所述多个子时间段中预设子时间段之后时间段内的无效周期。

在该方案中,在接收待进行乘法累加运算的数据序列后,若当前时间处于功耗上升阶段的预设子时间段之后时间段内的无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,使电流曲线更加平滑。

在一可选的实施方式中,所述获取所述乘法累加阵列的功耗变化率,包括:

根据输入至所述乘法累加阵列的数据序列的数量,计算所述乘法累加阵列的功耗变化率。

在该方案中,输入至乘法累加阵列的数据序列的数量,计算乘法累加阵列的功耗变化率,提高了功耗变化率的准确度。

在一可选的实施方式中,所述获取所述乘法累加阵列的功耗变化率,包括:

获取针对所述乘法累加阵列设置的电路传感器采集的所述乘法累加阵列的电流值或电压值;

根据所述电流值或所述电压值,计算所述乘法累加阵列的功耗变化率。

在该方案中,根据乘法累加阵列的电流值或电压值,计算乘法累加阵列的功耗变化率,提高了功耗变化率的准确度。

第二方面,本申请实施例还提供了一种阵列电路,包括:控制模块以及和所述控制模块电连接的乘法累加阵列,所述控制模块用于执行第一方面任一所述的阵列电路的输入控制方法。

在该方案中,阵列电路中的控制模块在乘法累加阵列的功耗变化率超出预设范围时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

第三方面,本申请实施例还提供了一种控制模块,包括:控制器和存储器,存储器存储有所述控制器可执行的机器可读指令,当控制模块运行如实施例中的阵列电路的输入控制方法时,所述控制器执行机器可读指令,以执行第一方面中任一所述的阵列电路的输入控制方法。

在该方案中,阵列电路中的控制模块在乘法累加阵列的功耗变化率超出预设范围时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面中任一所述的一种阵列电路的输入控制方法。

在该方案中,在处理器执行阵列电路的输入控制方法时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

本申请提供了一种阵列电路的输入控制方法和阵列电路,其中,该方法应用于阵列电路中的控制模块,控制模块与阵列电路中的乘法累加阵列电连接,该方法包括:获取乘法累加阵列的功耗变化率,若功耗变化率超出预设范围,则对乘法累加阵列进行输入控制,输入控制包括与功耗变化率对应的暂停或插入。在本申请中,在乘法累加阵列的功耗变化率超出预设范围时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的阵列电路的结构示意图一;

图2为本申请实施例提供的阵列电路的输入控制方法的流程示意图一;

图3为本申请实施例提供的阵列电路的结构示意图二;

图4为本申请实施例提供的乘法累加阵列工作过程的示意图;

图5为现有电流曲线的示意图;

图6为本申请的电流曲线的示意图;

图7为本申请实施例提供的阵列电路的输入控制方法的流程示意图二;

图8为本申请实施例提供的阵列电路的输入控制方法的流程示意图三;

图9为本申请实施例提供的阵列电路的输入控制方法的流程示意图四;

图10为本申请实施例提供的阵列电路的输入控制方法的流程示意图五;

图11为本申请实施例提供的重复时间段的示意图;

图12为本申请实施例提供的阵列电路的输入控制方法的流程示意图六;

图13为本申请实施例提供的阵列电路的输入控制方法的流程示意图七;

图14为本申请实施例提供的预设间隔数的示意图;

图15为本申请实施例提供的阵列电路的输入控制方法的流程示意图八;

图16为本申请实施例提供的阵列电路的输入控制装置的结构示意图;

图17为本申请实施例提供的控制模块的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

大规模乘累加阵列可以是大量乘加器堆积,也可以是脉动阵列,因为规模大,逻辑复杂,一般可以分为多个通道,各个通道为多级流水线设计。针对数据量规模较大时,乘法累加阵列硬件启动时往往在极短的时间内提高整个电路的功耗,形成剧烈的电流变化率(一般记作DIDT)变化,造成电器条件失衡,进而导致电路功能错误的问题,本申请提供了一种阵列电路的输入控制方法,在乘法累加阵列的功耗变化率超出预设范围时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

下面结合几个具体实施例对本申请提供的阵列电路的输入控制方法进行说明。

图1为本申请实施例提供的阵列电路的结构示意图一,图2为本申请实施例提供的阵列电路的输入控制方法的流程示意图一。

如图1所示,阵列电路包括:控制模块10和乘法累加阵列11,控制模块10和乘法累加阵列11电连接。

其中,乘法累加阵列11可以包括:多个阵列模块,乘法累加阵列11可以为流水线阵列,控制模块10可以提供数据输入端,当有需要进行乘法累加运算的数据序列时,可以通过该数据输入端将数据序列输入至控制模块10,控制模块10再将该输入至乘法累加阵列11,经由多个阵列模块进行数据运算。

如图2所示,该方法可以包括:

S101、获取乘法累加阵列的功耗变化率。

在乘法累加阵列运算的过程中,功耗变化率越大,说明乘法累加阵列所运算的数据序列越多,即乘法累加阵列处于高负载状态;功耗变化率越小,说明乘法累加阵列所运算的数据序列越少,即乘法累加阵列处于低负载状态。

在一可选的实施方式中,根据输入至乘法累加阵列的数据序列的数量,计算乘法累加阵列的功耗变化率。

其中,在乘法累加阵列运算工作中,根据输入至乘法累加阵列的数据序列的数量,可以计算乘法累加阵列的功耗值,为计算功耗变化率,可以根据不同时刻输入至乘法累加阵列的数据序列的数量,计算各时刻下乘法累加阵列的功耗值,并根据各时刻下乘法累加阵列的功耗值,计算乘法累加阵列的功耗变化率,功耗变化率可以为不同时刻下功耗值的差值。

其中,阵列电路还可以设有电路传感器,例如,电流传感器、电压传感器,分别用于采集乘法累加阵列的电流值和电压值。

在另一可能的实施方式中,获取针对乘法累加阵列设置的电路传感器采集的乘法累加阵列的电流值或电压值,根据电流值或电压值,计算乘法累加阵列的功耗变化率。

其中,针对乘法累加阵列设置的电路传感器用于采集乘法累加阵列的电流值或电压值,并将采集到的电流值或电压值发送给控制模块,控制模块根据电流值或电压值,可以计算乘法累加阵列的功耗值,为计算功耗变化率,可以根据不同时刻下乘法累加阵列的电流值或电压值,计算各时刻下乘法累加阵列的功耗值,并根据各时刻下乘法累加阵列的功耗值,计算乘法累加阵列的功耗变化率,功耗变化率可以为不同时刻下功耗值的差值。

在图1的基础上,图3为本申请实施例提供的阵列电路的结构示意图二,如图3所示,阵列电路还包括:电路传感器12,电路传感器12和控制模块10、乘法累加阵列11分别连接,电路传感器12用于采集乘法累加阵列11的电流值或电压值,并将采集到的电流值或电压值返回给控制模块10。

S102、若功耗变化率超出预设范围,则对乘法累加阵列进行输入控制,输入控制包括与功耗变化率对应的暂停或插入。

在功耗变化率超出预设范围的情况下,对乘法累加阵列进行输入控制,输入控制包括与功耗变化率对应的暂停或插入,暂停可以理解为暂停输入数据序列至乘法累加阵列,用于减小乘法累加阵列的功耗,防止功耗上升过快,插入可以理解为插入预设数据序列至乘法累加阵列,用于维持乘法累加阵列的功耗,防止功耗下降过快。

其中,预设范围具有上限值和下限值,若功耗变化率超过上限值,或功耗变化率未超出下限值,均表明功耗变化率超出预设范围。

与功耗变化率对应的暂停或插入可以理解为功耗变化率为正时,说明乘法累加阵列处于功耗上升阶段(低负载到高负载),功耗变化率超出预设范围说明功耗变化率超过上限值,则暂停输入数据序列至乘法累加阵列;功耗变化率为负时,说明乘法累加阵列处于功耗下降阶段(高负载到低负载),功耗变化率超出预设范围说明功耗变化率未超过下限值,则插入预设数据序列至乘法累加阵列,预设数据序列可以为预设无效数据,用于维持乘法累加阵列的功耗,且不输出运算结果。

也就是说,在乘法累加阵列的功耗变化率未超过预设范围的下限值时,通过插入预设数据序列,拉长了整个输入过程以及乘法累加阵列由高负载到低负载的时间段,以在高负载到低负载之间插入一个过渡状态,减小电路功耗和电流变化率,使电路电流曲线缓慢上升,得到平滑;类似地,在乘法累加阵列的功耗变化率超过预设范围的上限值时,通过暂停输入数据序列,拉长了整个输入过程以及乘法累加阵列由低负载到高负载的时间段,以在低负载和高负载之间插入一个过渡状态减小电路功耗和电流变化率,直到负载填满乘累加阵列流水线,达到电流和功耗峰值(此后电流和功耗稳定,变化率为零,直到输入的数据序列发生变化),使电路电流曲线缓慢下升,得到平滑。

在图3的基础上,图4为本申请实施例提供的乘法累加阵列工作过程的示意图,如图4所示,检测到输入变化时,且检测到DIDT风险,则电路传感器触发告警至控制模块,控制模块对乘法累加阵列进行输入控制,直至DIDT风险解除,乘法累加阵列进入正常工作.

以低负载到高负载为例,图5为现有电流曲线的示意图,图6为本申请的电流曲线的示意图,如图5、图6所示,电流曲线的横坐标为时间,纵坐标为电流值,可以看出,现有电流曲线由低负载状态到高负载状态的时间段(0-10)小于本申请的电流曲线从低负载状态到高负载状态的时间段(0-20),由于本申请的电流曲线在低负载状态和高负载状态具有过渡阶段,故本申请的电流曲线的电流变化率较小,而现有电流曲线的电流变化率较大。

需要说明的是,控制模块直接计算功耗变化率的方式属于采用主动防御的方式来解除DIDT风险,通过传感器采集的数据计算功耗变化率的方式属于采用被动防御的方式来解除DIDT风险。

在本实施例的阵列电路的输入控制方法中,控制模块获取乘法累加阵列的功耗变化率,若功耗变化率超出预设范围,则对乘法累加阵列进行输入控制,输入控制包括与功耗变化率对应的暂停或插入。在本申请中,在乘法累加阵列的功耗变化率超出预设范围时,通过暂停数据序列或插入预设数据序列至乘法累加阵列来减小电流变化率,平滑电流变化曲线,使大规模乘法累加阵列满足电器物理设计要求。

图7为本申请实施例提供的阵列电路的输入控制方法的流程示意图二,如图7所示,若功耗变化率超出预设范围,则对乘法累加阵列进行输入控制,可以包括:

S201、在乘法累加阵列处于功耗上升阶段的情况下,若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列。

其中,根据乘法累加阵列的功耗变化率可以确定乘法累加阵列处于功耗上升阶段还是功耗下降阶段,若功耗变化率为正,说明乘法累加阵列处于功耗上升阶段,若功耗变化率为负,说明乘法累加阵列处于功耗下降阶段。

在确定乘法累加阵列处于功耗上升阶段的情况下,若乘法累加阵列的功耗变化率超过第一功耗阈值,且控制模块接收到待进行乘法累加运算的数据序列,则控制模块暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,第一功耗阈值可以为功耗上升阶段对应的功耗变化率阈值,且为正,若超过该阈值,说明乘法累加阵列的功耗急剧上升,为平滑电流曲线,则在接收到待进行乘法累加运算的数据序列时,暂停输入该数据序列至乘法累加阵列,以维持乘法累加阵列的功耗和电流的平滑上升。

S202、在乘法累加阵列处于功耗下降阶段时,若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加阵列的数据序列,则插入预设数据序列至乘法累加阵列。

在确定乘法累加阵列处于功耗下降阶段的情况下,若乘法累加阵列的功耗变化率未超过第二功耗阈值,且控制模块未接收到待进行乘法累加运算的数据序列,则控制模块暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,第二功耗阈值可以为功耗下降阶段对应的功耗变化率阈值,且为负,若未超过该阈值,说明乘法累加阵列的功耗急剧下降,为平滑电流曲线,则在未接收到待进行乘法累加运算的数据序列时,插入预设数据序列至乘法累加阵列,以维持乘法累加阵列的功耗和电流的平滑下降。

图8为本申请实施例提供的阵列电路的输入控制方法的流程示意图三,如图8所示,若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,可以包括:

S301、若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗上升阶段的无效周期内。

S302、若当前时间处于功耗上升阶段的无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列。

其中,无效周期为在功耗上升阶段内不用于数据输入的时间段,功耗上升阶段由无效周期和有效周期组成,有效周期为在功耗上升阶段用于数据输入的时间段,其中,有效周期和无效周期的数量可以为多个,且可以是离散分布的,这样可通过间歇性输入数据序列来平滑电流曲线,使之缓慢上升,直到最大负载。

在乘法累加阵列的功耗变化率超过第一功耗阈值时,且接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗上升阶段的无效周期内,若当前时刻处于功耗上升阶段的无效周期内,说明当前时刻不用于数据输入,则可暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,以维持乘法累加阵列的功耗和电流的平滑上升,避免功耗和电流急剧上升。

图9为本申请实施例提供的阵列电路的输入控制方法的流程示意图四,如图9所示,若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加阵列的数据序列,则插入预设数据序列至乘法累加阵列,可以包括:

S401、若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗下降阶段的有效周期内。

S402、若当前时间处于功耗下降阶段的有效周期内,则插入预设数据序列至乘法累加阵列。

其中,有效周期为在功耗下降阶段内用于数据输入的时间段,功耗下降阶段由无效周期和有效周期组成,无效周期为在功耗下降阶段不用于数据输入的时间段,其中,有效周期和无效周期的数量可以为多个,且可以是离散分布的,这样可通过间歇性输入数据序列来平滑电流曲线,使之缓慢下降,直到负载为0。

在乘法累加阵列的功耗变化率未超过第二功耗阈值时,且接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗下降阶段的有效周期内,若当前时刻处于功耗下降阶段的有效周期内,说明当前时刻用于数据输入,则可插入预设数据序列至乘法累加运算,以维持乘法累加阵列的功耗和电流的平滑下降,避免功耗和电流急剧下降。

下面结合图10-图13对功耗上升阶段中有效周期和无效周期的划分方式进行说明。

图10为本申请实施例提供的阵列电路的输入控制方法的流程示意图五,如图10所示,若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗上升阶段的无效周期内之前,该方法还可以包括:

S501、将功耗上升阶段划分为多个子时间段。

将功耗上升阶段划分为多个子时间段,每个子时间段内包括多个时钟周期,例如m个时钟周期,多个子时间段的长度可以相同。

S502、从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期。

S503、根据多个子时间段内的有效周期,获取功耗上升阶段的有效周期。

从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,每个时钟周期由有效周期和无效周期组成,然后确定多个子时间段内的有效周期为功耗上升阶段的有效周期,功耗上升阶段内的有效周期可以包括:多个子时间段内的有效周期。

S504、根据功耗上升阶段的有效周期,确定功耗上升阶段的无效周期。

功耗上升阶段由无效周期和有效周期组成,确定出功耗上升阶段的有效周期后,可以确定功耗上升阶段中除了有效周期之外的周期为功耗上升阶段的无效周期。

需要说明的是,功耗上升阶段为由低负载到过渡阶段再到高负载的时间段,将功耗上升阶段划分为多个子时间段,多个子时间段可以理解为n级台阶,例如台阶0对应最低功耗(即低负载),台阶n对应最大功耗(即高负载),对于每级台阶,可以包括不同数量的有效周期,这样可从台阶0按升序提升每级台阶的有效周期的数量,进一步使电流曲线更加平滑。

在一可选的实施方式中,若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗上升阶段的无效周期内之前,该方法还可以包括:

对每个子时间段进行多次重复,得到每个子时间段对应的重复时间段,根据多个子时间段对应的重复时间段,重新确定功耗上升阶段。

对每个子时间段进行多次重复可以理解为根据预设重复次数,对每个子时间段进行多次重复,这样即可得到每个子时间段对应的重复时间段,根据多个子时间段对应的重复时间段,重新确定功耗上升阶段,功耗上升阶段可以为多个子时间段对应的重复时间段所组成的时间段。

其中,对于重新确定的功耗上升阶段而言,有效周期的数量基于预设重复次数相应增加,例如,重新确定的功耗上升阶段的子时间段内的有效周期数量为1个,则重复3次之后,对应重复时间段内的有效周期的数量为3个。

需要说明的是,预设重复次数可以为预先配置的每级台阶重复停留的次数p,例如,每级台阶的时钟周期的数量为m,则在每级台阶共停留m*p个时钟周期,并且多次重复之后,台阶的级数(子时间段的排序)不变。

图11为本申请实施例提供的重复时间段的示意图,如图11所示,子时间段1的时钟周期的数量为m,重复次数为p,则对子时间段1重复p次,重复时间段1的时钟周期的数量为m*p。

若功耗上升阶段包括子时间段1-4,类似地,对于子时间段2-4,则均按照该方式进行多次重复,得到子时间段2-4的重复时间段2-4,则重新确定的功耗上升阶段包括:重复时间段1-4。

其中,重复时间段1的起始时间点可以和子时间段1的起始时间点相同,重复时间段1的终止时间点可以相应延长,类似地,重复时间段2-4的起始时间点和终止时间点均相应延长。

图12为本申请实施例提供的阵列电路的输入控制方法的流程示意图六,如图12所示,从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,包括:

S601、对多个时钟周期进行计数,得到多个时钟周期计数结果。

采用计数器,对每个子时间段内的多个时钟周期进行计数,得到多个时钟周期计数结果,该时钟周期计数结果可以为二进制计数结果,例如4个时钟周期,时钟周期计数结果分别为:0b00,0b01,0b10,0b11。

S602、获取每个子时间段在多个子时间段中的排序计数结果。

将功耗上升阶段划分为多个子时间段,每个子时间段在多个子时间段中具有一个排序计数结果,排序计数结果用于指示每个子时间段在多个时间段中按照时间从小到大的排序,该时间排序计数结果可以为二进制计数结果,例如4个时间段,排序计数结果分别为:0b00,0b01,0b10,0b11。

S603、根据多个时钟周期计数结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期。

通过多个时钟周期计数结果和排序计数结果的相对大小,根据比对结果,从每个时间段内的多个时钟周期中确定每个时间段内的有效周期,在一些实施例中,可以对多个时钟周期计数结果分别进行逆序处理,得到多个二进制逆序结果,根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期。

例如,二进制转换得到0b00,0b01,0b10,0b11,对多个时钟周期计数结果进行逆序处理,得到的多个二进制逆序结果分别为0b00,0b10,0b01,0b11。

需要说明的是,可以使用logn比特的正向计数器,计数器值记为X0X1X2…Xm,并使用逆序排列计数器进行逆序得到XmXm-1…X1X0,并使用另一正向计数器,对每个子时间段在多个子时间段中的排序进行计数,得到排序计数结果X0X1X2…Xn。

针对每个子时间段而言,使用比较器比对多个二进制逆序结果和排序计数结果的相对大小,从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,其中,若排序计数结果大于二进制逆序结果,则可以确定对应时钟周期为有效周期,若排序计数结果小于二进制逆序结果,则可以确定对应时钟周期为无效周期。

以4个子时间段、4个时钟周期为例,表1为离散分布的有效周期,参考表1,2进制表示0-3,0b00,0b01,0b10,0b11,逆序排列后变为0b00,0b10,0b01,0b11,4级台阶(即4个子时间段)等级为0b00,0b01,0b10,0b11。

若排序计数结果大于二进制逆序结果,则时钟周期的值为1,表示该时钟周期为有效周期;若排序计数结果小于二进制逆序结果,则时钟周期的值为0,表示该时钟周期为无效周期。

表1

在该实施例中,通过简单计数能够实现从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,对电路要求不高,实现简单,并可实现有效周期的离散化需求。

图13为本申请实施例提供的阵列电路的输入控制方法的流程示意图七,如图13所示,根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期,包括:

S701、根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的候选有效周期。

通过比对多个二进制逆序结果和排序计数结果的相对大小,可从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,其中,若排序计数结果大于二进制逆序结果,则可以确定对应时钟周期为后续有效周期,若排序计数结果小于二进制逆序结果,则可以确定对应时钟周期为无效周期。

S702、根据多个子时间段中相邻子时间段之间的预设间隔数,从候选有效周期中确定每个子时间段内的有效周期。

预设间隔数用于指示相邻子时间段之间有效周期的数量差,即每级台阶之间的间隔数,例如,预设间隔数为1,第一级台阶有0个有效周期数,则第二级台阶、第三级台阶……第n+1级台阶的有效周期数可以为1/m、2/m、…、n/m,a/m表示每个子时间段的m个时钟周期内有a个有效周期,a的取值可以为0、1…n。

需要说明的是,预设间隔数的具体取值可以根据实际需求设置,本实施例对此不做特别限定,例如,在每次台阶上升时,例如从台阶1到台阶2时,可以线性或非线性增加或减少。

图14为本申请实施例提供的预设间隔数的示意图,如图14所示,预设间隔数为1,图中的n表示台阶级数,1/m表示m个时钟周期中有1个有效周期,即相邻两个台阶之间的间隔数为1。

图15为本申请实施例提供的阵列电路的输入控制方法的流程示意图八,如图15所示,若当前时间处于功耗上升阶段的无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,包括:

S801、若当前时间处于功耗上升阶段的目标无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列。

目标无效周期为多个子时间段中预设子时间段之后时间段内的无效周期,预设子时间段可以为预先设置的过渡阶段的初始时间段,即初始台阶b,b可以为0、1、2,b的具体取值可以根据实际需求设置,本实施例对此不做特别限定。

在一些情况中,为避免由于使用过渡阶段对乘法累加阵列性能的影响,例如,由于在过渡阶段的无效周期暂停数据序列的输入,导致功耗上升阶段刚开始的很长一段时间内乘法累加阵列都在很低负载下工作,对性能造成不好影响,则可以根据实际情况设置初始时间段的具体取值,也就是说,对于n个子时间段,忽略0到b-1个时间段之间的时间段,直接从b开始过渡阶段。

在接收待进行乘法累加运算的数据序列后,若当前时间处于功耗上升阶段的预设子时间段之后时间段内的无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列。

需要说明的是,若当前时刻处于预设子时间段之前的时间段内,则按照正常操作输入至数据序列至乘法累加阵列进行乘法累加运算。

在图10-图13的基础上,还可以参考图10-图13的方式对功耗下降阶段中有效周期和无效周期进行划分。

在一些实施例中,若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗下降阶段的有效周期内之前,该方法可以包括:

将功耗下降阶段划分为多个子时间段,从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,根据多个子时间段内的有效周期,获取功耗下降阶段的有效周期。

在一些实施例中,若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗下降阶段的有效周期内之前,该方法还可以包括:

对每个子时间段进行多次重复,得到每个子时间段对应的重复时间段,根据多个子时间段对应的重复时间段,重新确定功耗下降阶段。

在一些实施例中,从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期,包括:

对多个时钟周期进行计数,得到多个时钟周期计数结果,获取每个子时间段在多个子时间段中的排序计数结果,根据多个时钟周期计数结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期。

在一些实施例中,根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期,包括:

根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的候选有效周期,根据多个子时间段中相邻子时间段之间的预设间隔数,从候选有效周期中确定每个子时间段内的有效周期。

在一些实施例中,若当前时间处于功耗下降阶段的有效周期内,则插入预设数据序列至乘法累加阵列,包括:

若当前时间处于功耗下降阶段的目标有效周期内,则插入预设数据序列至乘法累加阵列,目标有效周期为多个子时间段中预设子时间段之后时间段内的有效周期,预设子时间段可以为预先设置的过渡阶段的初始时间段。

关于上述步骤的具体实施过程与图10-图13所描述的功耗上升阶段的类似,在此不再一一赘述。

需要说明的是,功耗下降阶段为由高负载到过渡阶段再到低负载的时间段,将功耗下降阶段划分为多个子时间段,多个子时间段可以理解为n级台阶,例如台阶0对应最低功耗(即低负载),台阶n对应最大功耗(即高负载),对于每级台阶,可以包括不同数量的有效周期,这样可从台阶0按降序减少每级台阶的有效周期的数量,进一步使电流曲线更加平滑。

当然,本领域技术人员需要理解,为降低乘法累加阵列的电流变化率,则还可以在空间上将乘法累加阵列分割为多个小模块,在数据进入阵列或退出阵列时,每个时钟周期只开启或关闭部分模块,即可避免整个乘法累加阵列同时开启或关闭(开启或关闭部分阵列会将每个时钟周期的功耗变化率降低为整个电路功耗的一部分),从而造成巨大功耗和电流变化。

基于同一发明构思,本申请实施例中还提供了与阵列电路的输入控制方法对应的阵列电路的输入控制装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述阵列电路的输入控制方法相似,因此阵列电路的实施可以参见方法的实施,重复之处不再赘述。

图16为本申请实施例提供的阵列电路的输入控制装置的结构示意图,该装置可以集成在控制模块中。如图16所示,该装置可以包括:

获取模块901,用于获取乘法累加阵列的功耗变化率;

控制模块902,用于若功耗变化率超出预设范围,则对乘法累加阵列进行输入控制,输入控制包括与功耗变化率对应的暂停或插入。

在一可选的实施方式中,控制模块902,具体用于:

在乘法累加阵列处于功耗上升阶段的情况下,若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列;

在乘法累加阵列处于功耗下降阶段时,若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加阵列的数据序列,则插入预设数据序列至乘法累加阵列。

在一可选的实施方式中,控制模块902,具体用于:

若功耗变化率超过第一功耗阈值,且接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗上升阶段的无效周期内;

若当前时间处于功耗上升阶段的无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,无效周期为在功耗上升阶段内不用于数据输入的时间段。

在一可选的实施方式中,控制模块902,具体用于:

若功耗变化率未超过第二功耗阈值,且未接收到待进行乘法累加运算的数据序列,则确定当前时间是否处于功耗下降阶段的有效周期内;

若当前时间处于功耗下降阶段的有效周期内,则插入预设数据序列至乘法累加阵列。

在一可选的实施方式中,该装置还包括:

处理模块903,用于将功耗上升阶段划分为多个子时间段,每个子时间段包括多个时钟周期;

处理模块903,还用于从每个子时间段内的多个时钟周期中确定每个子时间段内的有效周期;

获取模块901,还用于根据多个子时间段内的有效周期,获取功耗上升阶段的有效周期;

处理模块903,还用于根据功耗上升阶段的有效周期,确定功耗上升阶段的无效周期。

在一可选的实施方式中,处理模块903,还用于

对每个子时间段进行多次重复,得到每个子时间段对应的重复时间段;

处理模块,还用于根据多个子时间段对应的重复时间段,重新确定功耗上升阶段。

在一可选的实施方式中,处理模块903,具体用于:

对多个时钟周期进行计数,得到多个时钟周期计数结果;

获取每个子时间段在多个子时间段中的排序计数结果;

根据多个时钟周期计数结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期。

在一可选的实施方式中,处理模块903,具体用于:

对多个时钟周期计数结果分别进行逆序处理,得到多个二进制逆序结果;

根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的有效周期。

在一可选的实施方式中,处理模块903,具体用于:

根据多个二进制逆序结果和排序计数结果,从多个时钟周期中确定每个子时间段内的候选有效周期;

根据多个子时间段中相邻子时间段之间的预设间隔数,从候选有效周期中确定每个子时间段内的有效周期,预设间隔数用于指示相邻子时间段之间有效周期的数量差。

在一可选的实施方式中,控制模块902,具体用于:

若当前时间处于功耗上升阶段的目标无效周期内,则暂停输入待进行乘法累加运算的数据序列至乘法累加阵列,目标无效周期为多个子时间段中预设子时间段之后时间段内的无效周期。

在一可选的实施方式中,获取模块901,具体用于:

根据输入至乘法累加阵列的数据序列的数量,计算乘法累加阵列的功耗变化率。

在一可选的实施方式中,获取模块901,具体用于:

获取针对乘法累加阵列设置的电路传感器采集的乘法累加阵列的电流值或电压值;

根据电流值或电压值,计算乘法累加阵列的功耗变化率。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

图17为本申请实施例提供的控制模块的结构示意图,如图17所示,控制模块10包括:控制器1001和存储器1002,存储器1003存储有控制器1001可执行的机器可读指令,当控制模块运行如实施例中的阵列电路的输入控制方法时,控制器1001执行机器可读指令,以执行上述方法实施例提供的阵列电路的输入控制方法。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被控制器运行时执行,以执行上述方法实施例提供的阵列电路的输入控制方法。

在本申请实施例中,该计算机程序被控制器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种硬盘阵列供电电路及控制方法
  • 传感器电路阵列、操纵传感器电路阵列的控制设备及传感器系统
  • 传感器电路阵列、操纵传感器电路阵列的控制设备及传感器系统
技术分类

06120116333018