一种编码的方法、系统、设备和存储介质与流程



1.本发明涉及芯片设计领域,更具体地,特别是指一种编码的方法、系统、设备和存储介质。


背景技术:



2.集成电路功耗的动态功耗是由于信号翻转时产生的功耗。编码现有技术中的功耗计算模型可以计算出2位线的功耗数据,如图1所示。表格中包含λ的项即由耦合翻转造成的功耗(对耦合电容充放电造成的能量损失),常数项即为自翻转造成的功耗(对基底电容充放电造成的能量损失)。
3.现有技术的缺点:1、计算耦合翻转数目时必须实时的计算所有并行信号线(例如多位宽的地址线、数据线)的耦合翻转,导致会消耗额外的硬件资源,也会额外产生功耗,在很多情况下会导致总功耗超过未编码时本身功耗。
4.2、现有技术中只考虑了耦合翻转带来的功耗,并未考虑自身翻转的功耗,这会导致在某些工艺制程条件下计算不准确;3、在奇线和偶线翻转时,只能全部翻转信号线,这有可能导致原本长时间未发生变化的信号线产生额外的翻转,进而增加功耗。


技术实现要素:



5.有鉴于此,本发明的目的在于提出一种编码的方法、系统、计算机设备及计算机可读存储介质,本发明通过对数据变化特性检测、逐字节分段控制、改进动态功耗计算方法并优化其硬件实现过程,最大程度的降低了动态功耗,最终实现整个soc的低功耗设计。
6.基于上述目的,本发明的一方面提供了一种编码的方法,包括如下步骤:根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。
7.在本发明中,所述根据比特位的长度将并行的数据线分成多个小组包括:设置最小的分组长度为一比特,最大的分组长度为数据比特位的一半。
8.在本发明中,所述根据提取的特征计算每个小组的分组使能包括:根据前一个检测周期的数据变化率生成分组使能。
9.在本发明中,所述根据前一个检测周期的数据变化率生成分组使能包括:根据预设条件生成检测周期。
10.在本发明中,所述根据前一个检测周期的数据变化率生成分组使能包括:计算当前检测周期内数据变化的第一次数;计算当前检测周期内每个小组数据变化的第二次数;根据所述第一次数和所述第二次数计算每个小组的数据变化率;根据所述数据变化率确定
每个小组的分组使能。
11.在本发明中,所述计算当前检测周期内数据变化的第一次数包括:设置第一计数器,并响应于所有数据位中存在数据发生变化的数据位,对所述第一计数器加一。
12.在本发明中,所述计算当前检测周期内每个小组数据变化的第二次数包括:在每个小组内设置第二计数器,并响应于小组内存在数据发生变化的数据位,对对应小组的第二计数器加一。
13.在本发明中,所述根据所述第一次数和所述第二次数计算每个小组的数据变化率包括:使用所述第二次数与所述第一次数的比值作为每个小组的数据变化率。
14.在本发明中,所述根据所述数据变化率确定每个小组的分组使能包括:响应于所述数据变化率小于第一值,设置分组使能为第一使能值;响应于所述数据变化率在第一值和第二值之间,设置分组使能为第二使能值;响应于所述数据变化率大于第二值,设置分组使能为第三使能值,其中,所述第一使能值小于第二使能值,所述第二使能值小于第三使能值。
15.在本发明中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:判断每个小组的分组使能是否大于或等于阈值;响应于小组的分组使能大于或等于阈值,将所述小组的编码使能设置为一,并计算所述小组的耦合次数。
16.在本发明中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:设置所述阈值等于所述第二使能值。
17.在本发明中,方法还包括:响应于小组的分组使能小于阈值,将所述小组的编码使能设置为零。
18.在本发明中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:通过异或操作计算每两个相邻比特位之间的子耦合次数,并将小组内所有的子耦合次数相加得到耦合次数。
19.在本发明中,所述通过异或操作计算每两个相邻比特位之间的子耦合次数包括:将变化后的两个比特位记为新寄存器,将变化前的两个比特位记为老寄存器;响应于所述新寄存器和所述老寄存器异或的结果为11,记录子耦合次数为2;响应于所述新寄存器的第一比特位和第二比特位的数据异或的结果为一且所述老寄存器的第一比特位和第二比特位的数据异或的结果为零,记录子耦合次数为1;除了以上两种情况之外的其他情况记录子耦合次数为0。
20.在本发明中,所述根据所述耦合次数和分组使能的值进行翻转计算包括:根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线。
21.在本发明中,所述根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线包括:响应于耦合次数小于或等于第三值,将翻转标志位置零并不做翻转处理;响应于耦合次数大于第三值,根据分组使能确定翻转标志位的值和翻转操作的对象。
22.在本发明中,所述根据分组使能确定翻转标志位的值和翻转操作的对象包括:响应于分组使能为第三使能值,将翻转标志位置为一,并将组内偶线翻转;响应于分组使能为第二使能值,将翻转标志位置为二,并将组内奇线翻转;除以上两种情况之外的其他情况将翻转标志位置为零并不做翻转处理。
23.本发明的另一方面,提供了一种编码的系统,包括:分组模块,配置用于根据比特
位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;判断模块,配置用于根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;计算模块,配置用于计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;传输模块,配置用于将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。
24.本发明的又一方面,还提供了一种计算机设备,包括:至少一个处理器;存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
25.本发明的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
26.本发明具有以下有益技术效果:通过对数据变化特性检测、逐字节分段控制、改进动态功耗计算方法并优化其硬件实现过程,最大程度的降低了动态功耗,最终实现整个soc的低功耗设计。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
28.图1为现有技术中dsm总线功耗计算表;图2为本发明一些实施例提供的编码的方法的实施例的示意图;图3为本发明一些实施例提供的编码的架构示意图;图4为本发明一些实施例提供的λ计算表;图5为本发明一些实施例提供的计算耦合次数的示意图;图6为本发明一些实施例提供的编码的系统的实施例的示意图;图7为本发明一些实施例提供的编码的计算机设备的实施例的硬件结构示意图;图8为本发明一些实施例提供的编码的计算机存储介质的实施例的示意图。
具体实施方式
29.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
30.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
31.本发明实施例的第一个方面,提出了一种编码的方法的实施例。图2示出的是本发明提供的编码的方法的实施例的示意图。如图2所示,本发明实施例包括如下步骤:s1、根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;s2、根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于
阈值;s3、计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;s4、将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。
32.图3为本发明提供的编码的架构示意图,结合图3对本发明实施例进行说明。如图3所示,架构主要包括以下的3个部分:标示(mark),用于检测数据流变化,并提取特征信息;耦合器(coupler),用于实现有效bit位间的耦合计算;切换(toggle),进行对应bit翻转。
33.根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征。数据线是数据信号的另一种说法。地址线是地址信号的另一种说法。信号线包括地址线、数据线以及可能的其他控制信号。在数字电路中,内部的信号一般是通过连线进行传递的,因此信号有时也称为信号线。在数据传递过程中,一般是通过一个地址对应一组数据的方式进行传递,比如向地址12写数据45。因此表示地址的信号就称为地址线,其对应的数据信号就称为数据线。数据流检测是指对数据线中的数据流进行检测以确定数据流是否产生变化。提取特征并不是数字电路的专有名词,其就是广泛意义上的将需要的部分特征或者特性计算出来,比如本发明实施例中计算提取了数据变化次数t_total_cnt以及数据变化率t_rot等。
34.在一些实施方式中,所述根据比特位的长度将并行的数据线分成多个小组包括:设置最小的分组长度为一比特,最大的分组长度为数据比特位的一半。
35.本发明实施例可以进行模式配置,即将一组并行的数据线按照对应的byte(比特位)进行分组,最小的分组长度是1 byte,最大的分组长度即数据bit位的一半。例如,数据是32bit的,分组长度可以设置为1byte,共4个分组;也可以配置为分组长度为2byte,共2个分组。在本发明实施例中以32bit的数据,分组长度设置为1byte,共4个分组为例进行介绍,第一组:bit0-bit7;第2组:bit8-bit15;第3组:bit16-bit23;第4组:bit24-bit31。
36.根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值。
37.在一些实施方式中,所述根据提取的特征计算每个小组的分组使能包括:根据前一个检测周期的数据变化率生成分组使能。在数据流检测和提取特征时,每个组是完全独立和并行的,因此本发明实施例只介绍其中一组的处理方法,其他组处理方式相同。需要注意的是,本发明实施例使用前一个检测周期内的数据变化率生成分组使能,作为下一个检测周期内数据处理的依据。
38.在一些实施方式中,所述根据前一个检测周期的数据变化率生成分组使能包括:根据预设条件生成检测周期。本发明实施例中根据系统的工作频率生成检测周期,在其他实施例中可以设置其他检测周期。
39.在一些实施方式中,所述根据前一个检测周期的数据变化率生成分组使能包括:计算当前检测周期内数据变化的第一次数;计算当前检测周期内每个小组数据变化的第二次数;根据所述第一次数和所述第二次数计算每个小组的数据变化率;根据所述数据变化率确定每个小组的分组使能。
40.在一些实施方式中,所述计算当前检测周期内数据变化的第一次数包括:设置第
一计数器,并响应于所有数据位中存在数据发生变化的数据位,对所述第一计数器加一。
41.在一些实施方式中,所述计算当前检测周期内每个小组数据变化的第二次数包括:在每个小组内设置第二计数器,并响应于小组内存在数据发生变化的数据位,对对应小组的第二计数器加一。
42.在一些实施方式中,所述根据所述第一次数和所述第二次数计算每个小组的数据变化率包括:使用所述第二次数与所述第一次数的比值作为每个小组的数据变化率。
43.在一些实施方式中,所述根据所述数据变化率确定每个小组的分组使能包括:响应于所述数据变化率小于第一值,设置分组使能为第一使能值;响应于所述数据变化率在第一值和第二值之间,设置分组使能为第二使能值;响应于所述数据变化率大于第二值,设置分组使能为第三使能值,其中,所述第一使能值小于第二使能值,所述第二使能值小于第三使能值。例如,第一使能值可以是0,第二使能值可以是1,第三使能值可以是2。
44.具体过程可以如下:a、生成检测周期。根据系统的工作频率生成检测周期,例如,使用10ms作为一个检测周期;b、计算当前检测周期内数据变化的次数t_total_cnt,只要32bit数据位中有一位发生变化,即认为数据发生了变化,t_total_cnt即进行加1累加处理;c、同步计算当前检测周期内分组数据变化的次数t_cnt,只要对应的8bit数据位中有一位发生变化,即认为数据发生了变化,t_cnt即进行加1累加处理;d、计算每组的数据变化率在每个检测周期结束时计算,t_rot =t_cnt/t_total_cnt;e、计算每组的分组使能t_en,并将其作为下一个检测周期内每个组进行耦合计算的条件。
45.当t_rot 《0.2时,t_en = 0;当0.2《t_rot 《0.5时,t_en = 1;当0.5《t_rot时,t_en = 2。
46.计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算。翻转计算是指确定组内奇线和偶线是否需要翻转的运算。数字电路内部信号状态一般就是1和0两种状态,将其翻转就是对其取反,即1变成0,0变成1。
47.在一些实施方式中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:判断每个小组的分组使能是否大于或等于阈值;响应于小组的分组使能大于或等于阈值,将所述小组的编码使能设置为一,并计算所述小组的耦合次数。
48.在一些实施方式中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:设置所述阈值等于所述第二使能值。例如,阈值可以是1。
49.在一些实施方式中,方法还包括:响应于小组的分组使能小于阈值,将所述小组的编码使能设置为零。
50.将获得的各个组的分组使能分别记为t_en_1、t_en_2、t_en_3和t_en_4。当各个分组的使能信号均为0时,即认为数据变化很小,此时不启动后续的编码计算过程,编码使能code_en为0,每个组的数据翻转信号也均为0,即数据不进行处理直接传递给后级,后续的耦合计算及信号翻转模块的使能也关闭,以最大程度节省功耗;否则则启动后续的编码计
算过程,code_en为1,并进入后续步骤。
51.在一些实施方式中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:通过异或操作计算每两个相邻比特位之间的子耦合次数,并将小组内所有的子耦合次数相加得到耦合次数。
52.在一些实施方式中,所述通过异或操作计算每两个相邻比特位之间的子耦合次数包括:将变化后的两个比特位记为新寄存器,将变化前的两个比特位记为老寄存器;响应于所述新寄存器和所述老寄存器异或的结果为11,记录子耦合次数为2;响应于所述新寄存器的第一比特位和第二比特位的数据异或的结果为一且所述老寄存器的第一比特位和第二比特位的数据异或的结果为零,记录子耦合次数为1;除了以上两种情况之外的其他情况记录子耦合次数为0。
53.在计算每组的总的耦合次数时,其计算方法也是一样的,因此不再分开计算。具体过程如下:a.计算一组2bit信号间的耦合次数。
54.图1所示为标准的dsm模型下的功耗计算过程,其考虑自翻转和耦合翻转两种情况,其精度较高,但其计算过程还是过于复杂,特别是不利于芯片的实现。因此对这个模型进行改进,随着集成电路工艺制程的不断降低,耦合功耗所占比例越来越大,λ远大于1,因此耦合功耗可以近似为动态功耗,所以将图1中λ的次数提取出来,图4为本发明提供的λ计算表。如图4所示,v
1new
表示第一比特位变化后的数据,v
2new
表示第二比特位变化后的数据,v
1old
表示第一比特位变化前的数据,v
2old
表示第二比特位变化前的数据,本发明实施例中将[v
1new
,v
2new
]记为2bit位宽的寄存器reg_new,[v
1old
,v
2old
]记为2bit位宽的寄存器reg_old。
[0055]
1、如果reg_new ^ reg_old =11,则λ的次数为2,记为cp=2,否则进入步骤2;其中,^为verilog(芯片设计是使用的硬件描述语言)表示的异或操作;2、若reg_new[0] ^ reg_new[1] = 1,且同时满足reg_ old [0] ^ reg_ old [1] =0,此时λ为1,记为cp=1,其中,reg_new[0]代表reg_new中bit位0的数据,即v
1new
,reg_new[1]代表reg_new中bit位1的数据,即v
2new
,reg_ old [0]代表reg_old中bit位0的数据,即v
1old
,reg_ old [1]代表reg_old中bit位1的数据,即v
2old

[0056]
3、其他情况下λ为0,记为cp=0。
[0057]
在一组相邻信号线的计算时,本发明实施例将复杂的4*4的查表简化为3个异或门运算,这样可以显著的降低资源消耗,同时也会降低功耗。
[0058]
b.计算一个组内的耦合总的次数。
[0059]
图5为本发明提供的计算耦合次数的示意图,如图5所示,计算相邻两个比特位之间的子耦合次数,再将子耦合次数相加得到本小组的耦合次数。根据步骤a中的计算方法,同时将一组内的7个耦合次数计算出来,记为cp_cnt=cp_0 + cp_1 + cp_2+ cp_3+ cp_4+ cp_5+ cp_6+ cp_7。
[0060]
在一些实施方式中,所述根据所述耦合次数和分组使能的值进行翻转计算包括:根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线。
[0061]
在一些实施方式中,所述根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线包括:响应于耦合次数小于或等于第三值,将翻转标志位置零并不做翻转处理;响应于耦合次数大于第三值,根据分组使能确定翻转标志位的值和翻转操作
的对象。
[0062]
在一些实施方式中,所述根据分组使能确定翻转标志位的值和翻转操作的对象包括:响应于分组使能为第三使能值,将翻转标志位置为一,并将组内偶线翻转;响应于分组使能为第二使能值,将翻转标志位置为二,并将组内奇线翻转;除以上两种情况之外的其他情况将翻转标志位置为零并不做翻转处理。
[0063]
当cp_cnt 》4且t_en =2时,此时将翻转标志位toggle_en置为1,同时将组内偶线翻转,奇线不做处理;当cp_cnt 》4且t_en =1时,此时将翻转标志位toggle_en置为2,同时将组内奇线翻转,偶线不做处理;其他情形下,不做翻转处理,翻转标志位toggle_en置为0。
[0064]
将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。
[0065]
需要特别指出的是,上述编码的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于编码的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
[0066]
基于上述目的,本发明实施例的第二个方面,提出了一种编码的系统。如图6所示,系统200包括如下模块:分组模块,配置用于根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;判断模块,配置用于根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;计算模块,配置用于计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;传输模块,配置用于将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。
[0067]
在一些实施方式中,所述分组模块配置用于:设置最小的分组长度为一比特,最大的分组长度为数据比特位的一半。
[0068]
在一些实施方式中,所述判断模块配置用于:根据前一个检测周期的数据变化率生成分组使能。
[0069]
在一些实施方式中,所述判断模块配置用于:根据预设条件生成检测周期。
[0070]
在一些实施方式中,所述判断模块配置用于:计算当前检测周期内数据变化的第一次数;计算当前检测周期内每个小组数据变化的第二次数;根据所述第一次数和所述第二次数计算每个小组的数据变化率;根据所述数据变化率确定每个小组的分组使能。
[0071]
在一些实施方式中,所述判断模块配置用于:设置第一计数器,并响应于所有数据位中存在数据发生变化的数据位,对所述第一计数器加一。
[0072]
在一些实施方式中,所述判断模块配置用于:在每个小组内设置第二计数器,并响应于小组内存在数据发生变化的数据位,对对应小组的第二计数器加一。
[0073]
在一些实施方式中,所述判断模块配置用于:使用所述第二次数与所述第一次数的比值作为每个小组的数据变化率。
[0074]
在一些实施方式中,所述判断模块配置用于:响应于所述数据变化率小于第一值,设置分组使能为第一使能值;响应于所述数据变化率在第一值和第二值之间,设置分组使能为第二使能值;响应于所述数据变化率大于第二值,设置分组使能为第三使能值,其中,所述第一使能值小于第二使能值,所述第二使能值小于第三使能值。
[0075]
在一些实施方式中,所述计算模块配置用于:判断每个小组的分组使能是否大于或等于阈值;响应于小组的分组使能大于或等于阈值,将所述小组的编码使能设置为一,并计算所述小组的耦合次数。
[0076]
在一些实施方式中,所述计算模块配置用于:设置所述阈值等于所述第二使能值。
[0077]
在一些实施方式中,系统还包括编码模块,配置用于:响应于小组的分组使能小于阈值,将所述小组的编码使能设置为零。
[0078]
在一些实施方式中,所述计算模块配置用于:通过异或操作计算每两个相邻比特位之间的子耦合次数,并将小组内所有的子耦合次数相加得到耦合次数。
[0079]
在一些实施方式中,所述计算模块配置用于:将变化后的两个比特位记为新寄存器,将变化前的两个比特位记为老寄存器;响应于所述新寄存器和所述老寄存器异或的结果为11,记录子耦合次数为2;响应于所述新寄存器的第一比特位和第二比特位的数据异或的结果为一且所述老寄存器的第一比特位和第二比特位的数据异或的结果为零,记录子耦合次数为1;除了以上两种情况之外的其他情况记录子耦合次数为0。
[0080]
在一些实施方式中,所述计算模块配置用于:根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线。
[0081]
在一些实施方式中,所述计算模块配置用于:响应于耦合次数小于或等于第三值,将翻转标志位置零并不做翻转处理;响应于耦合次数大于第三值,根据分组使能确定翻转标志位的值和翻转操作的对象。
[0082]
在一些实施方式中,所述计算模块配置用于:响应于分组使能为第三使能值,将翻转标志位置为一,并将组内偶线翻转;响应于分组使能为第二使能值,将翻转标志位置为二,并将组内奇线翻转;除以上两种情况之外的其他情况将翻转标志位置为零并不做翻转处理。
[0083]
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:s1、根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;s2、根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;s3、计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;s4、将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。
[0084]
在一些实施方式中,所述根据比特位的长度将并行的数据线分成多个小组包括:设置最小的分组长度为一比特,最大的分组长度为数据比特位的一半。
[0085]
在一些实施方式中,所述根据提取的特征计算每个小组的分组使能包括:根据前一个检测周期的数据变化率生成分组使能。
[0086]
在一些实施方式中,所述根据前一个检测周期的数据变化率生成分组使能包括:根据预设条件生成检测周期。
[0087]
在一些实施方式中,所述根据前一个检测周期的数据变化率生成分组使能包括:计算当前检测周期内数据变化的第一次数;计算当前检测周期内每个小组数据变化的第二次数;根据所述第一次数和所述第二次数计算每个小组的数据变化率;根据所述数据变化率确定每个小组的分组使能。
[0088]
在一些实施方式中,所述计算当前检测周期内数据变化的第一次数包括:设置第一计数器,并响应于所有数据位中存在数据发生变化的数据位,对所述第一计数器加一。
[0089]
在一些实施方式中,所述计算当前检测周期内每个小组数据变化的第二次数包括:在每个小组内设置第二计数器,并响应于小组内存在数据发生变化的数据位,对对应小组的第二计数器加一。
[0090]
在一些实施方式中,所述根据所述第一次数和所述第二次数计算每个小组的数据变化率包括:使用所述第二次数与所述第一次数的比值作为每个小组的数据变化率。
[0091]
在一些实施方式中,所述根据所述数据变化率确定每个小组的分组使能包括:响应于所述数据变化率小于第一值,设置分组使能为第一使能值;响应于所述数据变化率在第一值和第二值之间,设置分组使能为第二使能值;响应于所述数据变化率大于第二值,设置分组使能为第三使能值,其中,所述第一使能值小于第二使能值,所述第二使能值小于第三使能值。
[0092]
在一些实施方式中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:判断每个小组的分组使能是否大于或等于阈值;响应于小组的分组使能大于或等于阈值,将所述小组的编码使能设置为一,并计算所述小组的耦合次数。
[0093]
在一些实施方式中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:设置所述阈值等于所述第二使能值。
[0094]
在一些实施方式中,步骤还包括:响应于小组的分组使能小于阈值,将所述小组的编码使能设置为零。
[0095]
在一些实施方式中,所述计算分组使能大于或等于阈值的小组的耦合次数包括:通过异或操作计算每两个相邻比特位之间的子耦合次数,并将小组内所有的子耦合次数相加得到耦合次数。
[0096]
在一些实施方式中,所述通过异或操作计算每两个相邻比特位之间的子耦合次数包括:将变化后的两个比特位记为新寄存器,将变化前的两个比特位记为老寄存器;响应于所述新寄存器和所述老寄存器异或的结果为11,记录子耦合次数为2;响应于所述新寄存器的第一比特位和第二比特位的数据异或的结果为一且所述老寄存器的第一比特位和第二比特位的数据异或的结果为零,记录子耦合次数为1;除了以上两种情况之外的其他情况记录子耦合次数为0。
[0097]
在一些实施方式中,所述根据所述耦合次数和分组使能的值进行翻转计算包括:根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线。
[0098]
在一些实施方式中,所述根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线包括:响应于耦合次数小于或等于第三值,将翻转标志位置零并不做翻转处理;响应于耦合次数大于第三值,根据分组使能确定翻转标志位的值和翻转操作的对象。
[0099]
在一些实施方式中,所述根据分组使能确定翻转标志位的值和翻转操作的对象包括:响应于分组使能为第三使能值,将翻转标志位置为一,并将组内偶线翻转;响应于分组使能为第二使能值,将翻转标志位置为二,并将组内奇线翻转;除以上两种情况之外的其他情况将翻转标志位置为零并不做翻转处理。
[0100]
如图7所示,为本发明提供的上述编码的计算机设备的一个实施例的硬件结构示
意图。
[0101]
以如图7所示的装置为例,在该装置中包括一个处理器301以及一个存储器302。
[0102]
处理器301和存储器302可以通过总线或者其他方式连接,图7中以通过总线连接为例。
[0103]
存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的编码的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现编码的方法。
[0104]
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据编码的方法的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0105]
一个或者多个编码的方法对应的计算机指令303存储在存储器302中,当被处理器301执行时,执行上述任意方法实施例中的编码的方法。
[0106]
执行上述编码的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0107]
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行编码的方法的计算机程序。
[0108]
如图8所示,为本发明提供的上述编码的计算机存储介质的一个实施例的示意图。以如图8所示的计算机存储介质为例,计算机可读存储介质401存储有被处理器执行时执行如上方法的计算机程序402。
[0109]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,编码的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0110]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0111]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0112]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0113]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介
质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0114]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术特征:


1.一种编码的方法,其特征在于,包括如下步骤:根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。2.根据权利要求1所述的方法,其特征在于,所述根据比特位的长度将并行的数据线分成多个小组包括:设置最小的分组长度为一比特,最大的分组长度为数据比特位的一半。3.根据权利要求1所述的方法,其特征在于,所述根据提取的特征计算每个小组的分组使能包括:根据前一个检测周期的数据变化率生成分组使能。4.根据权利要求3所述的方法,其特征在于,所述根据前一个检测周期的数据变化率生成分组使能包括:根据预设条件生成检测周期。5.根据权利要求4所述的方法,其特征在于,所述根据前一个检测周期的数据变化率生成分组使能包括:计算当前检测周期内数据变化的第一次数;计算当前检测周期内每个小组数据变化的第二次数;根据所述第一次数和所述第二次数计算每个小组的数据变化率;根据所述数据变化率确定每个小组的分组使能。6.根据权利要求5所述的方法,其特征在于,所述计算当前检测周期内数据变化的第一次数包括:设置第一计数器,并响应于所有数据位中存在数据发生变化的数据位,对所述第一计数器加一。7.根据权利要求5所述的方法,其特征在于,所述计算当前检测周期内每个小组数据变化的第二次数包括:在每个小组内设置第二计数器,并响应于小组内存在数据发生变化的数据位,对对应小组的第二计数器加一。8.根据权利要求5所述的方法,其特征在于,所述根据所述第一次数和所述第二次数计算每个小组的数据变化率包括:使用所述第二次数与所述第一次数的比值作为每个小组的数据变化率。9.根据权利要求5所述的方法,其特征在于,所述根据所述数据变化率确定每个小组的分组使能包括:响应于所述数据变化率小于第一值,设置分组使能为第一使能值;响应于所述数据变化率在第一值和第二值之间,设置分组使能为第二使能值;响应于所述数据变化率大于第二值,设置分组使能为第三使能值,其中,所述第一使能值小于第二使能值,所述第二使能值小于第三使能值。
10.根据权利要求9所述的方法,其特征在于,所述计算分组使能大于或等于阈值的小组的耦合次数包括:判断每个小组的分组使能是否大于或等于阈值;响应于小组的分组使能大于或等于阈值,将所述小组的编码使能设置为一,并计算所述小组的耦合次数。11.根据权利要求10所述的方法,其特征在于,所述计算分组使能大于或等于阈值的小组的耦合次数包括:设置所述阈值等于所述第一使能值。12.根据权利要求11所述的方法,其特征在于,方法还包括:响应于小组的分组使能小于阈值,将所述小组的编码使能设置为零。13.根据权利要求11所述的方法,其特征在于,所述计算分组使能大于或等于阈值的小组的耦合次数包括:通过异或操作计算每两个相邻比特位之间的子耦合次数,并将小组内所有的子耦合次数相加得到耦合次数。14.根据权利要求13所述的方法,其特征在于,所述通过异或操作计算每两个相邻比特位之间的子耦合次数包括:将变化后的两个比特位记为新寄存器,将变化前的两个比特位记为老寄存器;响应于所述新寄存器和所述老寄存器异或的结果为11,记录子耦合次数为2;响应于所述新寄存器的第一比特位和第二比特位的数据异或的结果为一且所述老寄存器的第一比特位和第二比特位的数据异或的结果为零,记录子耦合次数为1;除了以上两种情况之外的其他情况记录子耦合次数为0。15.根据权利要求1所述的方法,其特征在于,所述根据所述耦合次数和分组使能的值进行翻转计算包括:根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线。16.根据权利要求15所述的方法,其特征在于,所述根据所述耦合次数和分组使能的值设置翻转标志位,并相应处理组内的奇偶线包括:响应于耦合次数小于或等于第三值,将翻转标志位置零并不做翻转处理;响应于耦合次数大于第三值,根据分组使能确定翻转标志位的值和翻转操作的对象。17.根据权利要求16所述的方法,其特征在于,所述根据分组使能确定翻转标志位的值和翻转操作的对象包括:响应于分组使能为第三使能值,将翻转标志位置为一,并将组内偶线翻转;响应于分组使能为第二使能值,将翻转标志位置为二,并将组内奇线翻转;除以上两种情况之外的其他情况将翻转标志位置为零并不做翻转处理。18.一种编码的系统,其特征在于,包括:分组模块,配置用于根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;判断模块,配置用于根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;计算模块,配置用于计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦
合次数和分组使能的值进行翻转计算;传输模块,配置用于将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。19.一种计算机设备,其特征在于,包括:至少一个处理器;存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-17任意一项所述方法的步骤。20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-17任意一项所述方法的步骤。

技术总结


本发明涉及芯片设计领域。本发明提供一种编码的方法、系统、设备和存储介质,方法包括:根据比特位的长度将并行的数据线分成多个小组,并对每个小组进行数据流检测和提取特征;根据提取的特征计算每个小组的分组使能,并判断分组使能是否大于或等于阈值;计算分组使能大于或等于阈值的小组的耦合次数,并根据所述耦合次数和分组使能的值进行翻转计算;将翻转计算后的第一数据与分组使能小于阈值的小组的第二数据传输到下一级。本发明通过对数据变化特性检测、逐字节分段控制、改进动态功耗计算方法并优化其硬件实现过程,最大程度的降低了动态功耗,最终实现整个SOC的低功耗设计。最终实现整个SOC的低功耗设计。最终实现整个SOC的低功耗设计。


技术研发人员:

孙旭 杨琳琳

受保护的技术使用者:

山东云海国创云计算装备产业创新中心有限公司

技术研发日:

2022.11.10

技术公布日:

2022/12/23

本文发布于:2024-09-20 13:46:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/47828.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   小组   数据   次数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议