一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于深度流水电路的时序裕量监测与压缩方法和电路

2022-06-01 08:33:52 来源:中国专利 TAG:


1.本发明涉及深度流水电路领域,尤其是涉及一种用于深度流水电路的时序裕量监测与压缩方法和电路。


背景技术:

2.工艺、电压、温度(process,voltage,and temperature,pvt)偏差会造成集成电路不同晶圆间、同一晶圆不同时刻间的时序波动,从而导致电路的功能出错。为了确保集成电路芯片在所有的pvt情况下都能正确工作,传统的设计中通常按最坏pvt情况预留足够的时序裕量。由于芯片的最坏pvt情况极少出现,因而对大部分工作在正常情况下的芯片来说,预留的时序裕量存在大量的时序冗余,限制了其运行时的性能和能效。
3.针对上述问题,错误检测与校正(error detection and correction,edac)技术能够在时序错误发生时及时检测电路出现的错误并且进行校正,使电路的工作频率处于发生时序错误的临界点,有效消除正常pvt情况下电路预留的冗余时序裕量,从而提升电路的性能和能效。然而,edac技术在运用到深度流水线电路时存在着关键路径数量众多、流水线相邻级之间路径延迟较为均衡、多级路径存在同时出错的情况等问题,造成电路需要插入的edac数量显著增加、错误校正代价难以承受等难题,严重制约了电路性能和能效的提升。
4.除此之外,关键路径复制技术也受到大家的关注。然而,由于复制的关键路径和实际电路的关键路径之间存在着工艺、电压、温度的差异,为了保证复制的关键路径总是比实际电路的关键路径先发生时序错误,这一技术本身即需预留大量的时序裕量,不利于电路性能和能效的提升。


技术实现要素:

5.本发明的目的就是为了克服上述现有技术存在基于深度流水的各类集成电路芯片需要为工艺、电压、温度等波动设置大量时序裕量的缺陷而提供一种用于深度流水电路的时序裕量监测与压缩方法和电路,以准确地推断深度流水线电路当前的时序裕量,并对冗余的时序裕量进行实时压缩,从而有效提升电路运行时的性能和能效。
6.本发明的目的可以通过以下技术方案来实现:
7.一种用于深度流水电路的时序裕量监测与压缩方法,包括:对深度流水电路中的部分关键路径进行监测,判断是否发生时间借用事件,统计一段时间内监测到的时间借用事件的次数,从而推断该深度流水电路的当前时序裕量,将该当前时序裕量与预设的目标时序裕量对比,根据对比结果对深度流水电路的时钟频率进行自适应的实时调节。
8.进一步地,选取所述深度流水电路中触发频率最高、且达到预设的第一数量的关键路径进行监测。
9.进一步地,选取所述深度流水电路中触发频率最高、且达到预设的第一数量的关键路径进行监测,具体为:
10.根据所述深度流水电路的静态时序确定深度流水电路中待监测流水级的所有关
键路径;
11.对所述深度流水电路施加真实输入激励,进行动态仿真,统计所有关键路径被触发的概率,选取被触发的概率最高、且达到第一数量的关键路径进行监测,该第一数量的关键路径满足:被监测到的时间借用事件的次数与深度流水电路的时序裕量成单调递减关系。
12.进一步地,选取所述深度流水电路中三至五级连续流水级的最后一个流水级的关键路径进行监测。
13.进一步地,所述深度流水电路的当前时序裕量的推断过程具体为:
14.统计一段时间内监测到的时间借用事件的次数,然后与预先配置的时序裕量与对应监测时间内时间借用事件次数的对应关系对比,获取当前时序裕量;
15.监测的时间为一个或多个深度流水电路的时钟周期。
16.进一步地,若所述深度流水电路设置在不具有容错性的应用场景,则所述目标时序裕量的取值范围在0至2.5%范围以内;若所述深度流水电路设置在具有容错性的应用场景,则所述目标时序裕量的取值范围在-15%至2.5%范围以内。
17.进一步地,通过对深度流水电路的时钟频率进行自适应的实时调节,将深度流水电路的当前时序裕量维持在某一特定数值,从而控制深度流水线电路的错误率。
18.进一步地,将该当前时序裕量与预设的目标时序裕量对比,根据对比结果对深度流水电路的时钟频率进行自适应的实时调节,具体为:
19.若当前时序裕量大于目标时序裕量,则将深度流水电路的时钟频率提高一个调节步长;
20.若当前时序裕量小于目标时序裕量,则将深度流水电路的时钟频率降低一个调节步长;
21.若当前时序裕量等于目标时序裕量,则不对深度流水电路的时钟频率做调节。
22.进一步地,获取参考时钟信号,根据该参考时钟信号依次进行等量延时生成相位依次延后的多个时钟信号;
23.所述将深度流水电路的时钟频率提高一个调节步长具体为:
24.从参考时钟信号开始,在每次信号即将从低电平跳转到高电平时,从生成的多个时钟信号中从前往后依次进行切换选择,得到时钟周期延长后的时钟信号;
25.所述将深度流水电路的时钟频率降低一个调节步长具体为:
26.从生成的最后一个时钟信号开始,在每次信号即将从高电平跳转到低电平时,从生成的多个时钟信号中从后往前依次进行切换选择,得到时钟周期缩短后的时钟信号。
27.本发明还提供一种用于深度流水电路的时序裕量监测与压缩电路,包括:依次连接的时钟借用检测模块、时序裕量推断模块和时序裕量压缩模块;
28.所述时钟借用检测模块包括多个时间借用检测单元,每个时间借用检测单元均包括连接深度流水电路中主寄存器的影子寄存器和异或门,所述主寄存器和影子寄存器的输入均包括主寄存器的时钟信号和主寄存器的输入,所述主寄存器和影子寄存器的输出经过异或门后产生时间借用检测结果;
29.所述多个时间借用检测单元安装在深度流水电路中的多条关键路径上;
30.所述时序裕量推断模块包括依次连接的加法器、累加器、时序裕量查找表和比较
器,所述加法器的输入为所有时间借用检测单元的输出、输出为当前时钟周期检测到的时间借用事件次数;所述累加器将一个或多个时钟周期检测到的时间借用事件次数累加,得到某段监测时间检测到的时间借用事件次数;所述时序裕量查找表预先配置有时序裕量与对应监测时间内时间借用事件次数的对应关系,输出当前时序裕量;所述比较器将当前时序裕量与预设的目标时序裕量对比,生成冗余、不足和适量的对比结果;
31.所述时序裕量压缩模块包括依次连接的本地振荡环、相位产生器和相位选择器,所述本地振荡环产生有参考时钟信号,所述相位产生器根据参考时钟信号依次进行等量延时生成相位依次延后的多个时钟信号;所述相位选择器根据当前时序裕量与预设的目标时序裕量的对比结果,进行切换选择,具体为:若对比结果为冗余,则将深度流水电路的时钟频率提高一个调节步长;若对比结果为不足,则将深度流水电路的时钟频率降低一个调节步长;若对比结果为适量,则不对深度流水电路的时钟频率做调节。
32.与现有技术相比,对于深度流水电路,本发明的这种时序裕量监测与压缩技术以较小的硬件开销有效压缩了冗余的时序裕量,从而提升了硬件电路运行时的性能和能效;具体具有以下优点:
33.(1)通过对深度流水线电路的部分关键路径及近似关键路径进行监测,利用检测到的时间借用事件次数来反映当前的时序裕量,从而能准确地推断出电路当前实际的时序裕量;
34.(2)该技术仅监测深度流水的深度流水线电路中最经常被触发的部分关键路径和近似关键路径,通过插入检测单元检测其发生时间借用事件的次数,从而有效减少了所需的时间借用检测单元数量和硬件开销;
35.(3)该技术仅监测深度流水线多个相邻流水级中的一级,去除相邻流水级间路径相关性引起的冗余的时间借用事件检测信息,从而有效减少了所需的时间借用检测单元数量和硬件开销;
36.(4)该技术可针对不同的应用场景设置不同的目标时序裕量。对于不具有容错性的应用场景,目标时序裕量可配置为0至2.5%范围以内,对于有一定容错性的应用场景,目标时序裕量可配置为-15%至2.5%范围以内,从而在一定的计算准确率要求下实现电路性能和能效的提升;
37.(5)该技术对深度流水线电路的计算错误率是可控的,通过将时序裕量维持在某一特定数值,可将硬件电路的运行错误率控制在某一特定范围内;
38.(6)该技术通过对时钟频率进行自适应的调节来将时序裕量维持在某一特定数值,从而动态地压缩冗余的时序裕量,提升电路的性能和能效。
附图说明
39.图1为本发明实施例中提供的一种用于深度流水电路的时序裕量监测与压缩电路的原理示意图;
40.图2为本发明实施例中提供的一种基于双采样的时间借用检测单元的结构示意图;
41.图3为本发明实施例中提供的一种时间借用检测单元的时序波形图;
42.图4为本发明实施例中提供的一种时序裕量推断模块结构图;
43.图5为本发明实施例中提供的一种时序裕量压缩模块结构图;
44.图6为本发明实施例中提供的一种时序裕量压缩模块的相位选择过程示意图;
45.图7为本发明实施例中提供的一种以64级深度流水的sha256硬件加速器为例的技术示意图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
47.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
49.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
50.需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
51.实施例1
52.本实施例提供一种用于深度流水电路的时序裕量监测与压缩方法,包括:
53.时间借用检测步骤:对深度流水电路中的多条关键路径进行监测,判断是否发生时间借用事件;
54.时序裕量推断步骤:统计一段时间内监测到的时间借用事件的次数,从而推断该深度流水电路的当前时序裕量,将该当前时序裕量与预设的目标时序裕量对比;
55.时序裕量压缩步骤:根据对比结果对深度流水电路的时钟频率进行自适应的实时调节。
56.如图1所示,本实施例还提供一种用于深度流水电路的时序裕量监测与压缩电路,用于实现上述方法的步骤,该时序裕量监测与压缩电路包括依次连接的时钟借用检测模块,用于执行上述时间借用检测步骤;时序裕量推断模块,用于执行上述时序裕量推断步骤;以及时序裕量压缩模块,用于执行上述时序裕量压缩步骤。
57.下面对各步骤进行具体描述:
58.一、时间借用检测
59.时间借用检测模块包含n个时间借用检测单元,其功能为检测深度流水线电路的n条关键路径及近似关键路径(即关键路径)是否发生了时间借用事件。具体的,对于基于高电平透明锁存器的深度流水线电路,即检测这n条关键路径及近似关键路径的终点在时钟上升沿到来后是否发生了变化。
60.如图2所示为基于双采样的时间借用检测单元的结构,它对深度流水线电路中的主寄存器(高电平透明锁存器)的输入用影子寄存器(低电平透明锁存器)进行双采样。主寄存器和影子寄存器的输入均包括主寄存器的时钟信号clk和主寄存器的输入din,主寄存器的输出dout和影子寄存器的输出qs经过异或门dff后产生时间借用检测结果,即输出信号tb。其时序波形如图3所示,在时钟周期2,主寄存器的输入在主寄存器时钟信号的高电平期间发生翻转,则主寄存器和影子寄存器的输出经过一个异或门后为高电平,即时间借用检测单元的输出信号tb为高电平,代表该条被监测的路径发生了时间借用事件;在时钟周期1,主寄存器的输入在高电平期间没有发生翻转,则tb为低电平,即代表该条被监测的路径没有发生时间借用事件。随着时序裕量的减小,深度流水线电路中可能发生时间借用事件的关键路径及近似关键路径的数量增加,因而,n个时间借用检测单元检测到的时间借用事件次数ntb也随之增加,在一个时钟周期内,ntb的最小可能值为0,最大可能值为n。因此,时间借用事件次数ntb可以反映电路当前的时序裕量。
61.作为一种优选的实施方式,时间借用检测模块无需监测所有的关键路径及近似关键路径,即n小于深度流水线电路所有关键路径和近似关键路径的总数。所需的时间借用检测单元数量n只需满足n个时间借用检测单元可检测到的时间借用事件次数ntb与深度流水线电路的时序裕量满足单调递减关系即可。
62.即选取深度流水电路中触发频率最高、且达到预设的第一数量的关键路径进行监测。具体为:
63.根据深度流水电路的静态时序确定深度流水电路中待监测流水级的所有关键路径;
64.对深度流水电路施加真实输入激励,进行动态仿真,统计所有关键路径被触发的概率,选取被触发的概率最高、且达到第一数量的关键路径进行监测,该第一数量的关键路径满足:被监测到的时间借用事件的次数与深度流水电路的时序裕量成单调递减关系。
65.此处的单调递减关系可解释为:对于时序裕量ts1和ts2,有ts1《ts2,对应于ts1的时序裕量,n个时间借用检测单元可检测到的时间借用事件次数为ntb_ts1,对应于ts2的时序裕量,n个时间借用检测单元可检测到的时间借用事件次数为ntb_ts2,则ntb_ts1和ntb_ts2需满足ntb_ts1》ntb_ts2。
66.相当于,被监测的n条关键路径和近似关键路径由静态时序分析结合动态时序分析来确定。具体的,首先根据静态时序分析确定待监测流水级的所有关键路径及近似关键路径;然后,通过施加真实输入激励,进行动态仿真,统计所有关键路径及近似关键路径被触发的概率,并对这些关键路径及近似关键路径按照被触发的概率从高到低进行排序;接着,按序依次将关键路径及近似关键路径加入被监测路径集合,并判断当前被监测路径集合所能被检测到的时间借用事件次数ntb能否准确反映当前的时序裕量,即,被检测到的时间借用事件次数ntb是否与时序裕量成单调递减关系。若当前被监测路径集合所能被检测到的时间借用事件次数ntb可以准确反映当前的时序裕量,即可停止向被监测路径集合添
加新的关键路径或近似关键路径。此时被监测路径集合中的路径总数量即为n,需要n个时间借用检测单元对这n条关键路径及近似关键路径进行监测。因此,本发明有效地减小了所需的时间借用检测单元的数量和硬件开销。
67.作为一种优选的实施方式,选取深度流水电路中三至五级连续流水级的最后一个流水级的关键路径进行监测。具体优势如下:
68.由于相邻流水级间存在路径相关性,相邻流水级间检测到的时间借用事件次数含有冗余信息,因此,本发明时间借用检测模块无需监测所有流水级的关键路径及近似关键路径。具体的,对于连续的k个流水级,被监测的关键路径及近似关键路径仅分布于k个流水级中的的最后一级流水。以第1流水级、第2流水级至第k流水级为例,由于相邻流水级之间的路径相关性,在第1流水级至第(k-1)流水级中发生时间借用时间事件的路径极有可能将其时序波动累积至第k流水级,并被第k流水级的时间借用检测单元检测到;若在第1流水级至第(k-1)流水级中发生时间借用事件的路径的时序波动没有累积至第k流水级,则说明第1至第(k-1)流水级中路径的时序波动已通过锁存器流水线的时间借用能力自愈,时序裕量足够。因此,时间借用检测模块只需监测每k个连续流水级中的最后一级。
69.二、时序裕量推断
70.深度流水电路的当前时序裕量的推断过程具体为:
71.统计一段时间内监测到的时间借用事件的次数,然后与预先配置的时序裕量与对应监测时间内时间借用事件次数的对应关系对比,获取当前时序裕量;
72.监测的时间为一个或多个深度流水电路的时钟周期。
73.如图4所示,时序裕量推断模块包括依次连接的加法器、累加器、时序裕量查找表和比较器,加法器的输入为所有时间借用检测单元的输出、输出为当前时钟周期检测到的时间借用事件次数;累加器将一个或多个时钟周期检测到的时间借用事件次数累加,得到某段监测时间检测到的时间借用事件次数;时序裕量查找表预先配置有时序裕量与对应监测时间内时间借用事件次数的对应关系,输出当前时序裕量;比较器将当前时序裕量与预设的目标时序裕量对比,生成冗余、不足和适量的对比结果。
74.具体地,加法器将时间借用检测模块中n个时间借用检测单元的1比特输出相加,得到当前时钟周期检测到的时间借用事件次数ntb,ntb的最小可能值为0,最大可能值为n。累加器将tob个时钟周期内的时间借用事件次数进行累加,得到tob个时钟周期内检测到的时间借用事件次数ntb_tot。当tob为1时,ntb_tot即等于ntb。相对于tob=1时得到的ntb_tot,即ntb,tob大于1时得到的ntb_tot可以消除由输入激励的不同而引起的ntb波动,得到更加稳定的ntb_tot数值。在时序裕量推断模块中,tob是可调节的,针对不同的目标时序裕量,可选用不同的tob。具体的,当目标时序裕量较大时,发生时间借用事件的关键路径和近似关键路径数量较少,ntb的值受输入激励的不同引起的波动较大,此时,可选用较长的累加周期,即较大的tob,使得累加得到的时间借用总数量ntb_tot更稳定。当目标时序裕量较小时,发生时间借用事件的关键路径和近似关键路径数量较多,ntb的值受输入激励的不同引起的波动较小,此时,选用较短的累加周期,即较小的tob即可。时序裕量查找表中存储了预先配置的时序裕量与tob个时钟周期内时间借用事件次数的对应关系,根据累加器输出的ntb_tot和对应的累加周期tob,查找表可找出相对应的当前时序裕量(ts_cur)。比较器将查找表输出的当前时序裕量ts_cur与目标时序裕量ts_tag作比较,指明当前的时序裕量
与目标时序裕量相比,是冗余(ts_cur》ts_tag),不足(ts_cur《ts_tag)或适量(ts_cur=ts_tag),并将这三种情况转换为2比特的判断信号ts_state输出至时序裕量压缩模块。
75.作为一种优选的实施方式,若深度流水电路设置在不具有容错性的应用场景,则目标时序裕量的取值范围在0至2.5%范围以内;若深度流水电路设置在具有容错性的应用场景,则目标时序裕量的取值范围在-15%至2.5%范围以内。具体优势如下:
76.目标时序裕量是可配置的,针对不同的应用场景,可配置不同的目标时序裕量,从而达到在一定计算准确率要求下的性能及能效收益最大化。对于不具有容错性的应用场景,目标时序裕量应配置为略大于0,即在0至2.5%范围以内;对于具有一定容错性的应用场景,如神经网络加速、图像处理等,目标时序裕量可配置为在-15%至2.5%范围以内,以得到更高的性能和能效收益。特别的,目标时序裕量与深度流水线电路计算结果的错误率呈单调关系。具体的,对于时序裕量ts1和ts2,有ts1《ts2《0,对应于ts1的时序裕量,深度流水线电路计算结果的错误率为err1,对应于ts2的时序裕量,深度流水线电路计算结果的错误率为err2,则err1和err2满足err1》err2。因此,可以通过将深度流水线电路的时序裕量维持在某一特定数值,实现将深度流水线电路的错误率维持在某一可控范围内。
77.三、时序裕量压缩
78.时序裕量压缩步骤中,将该当前时序裕量与预设的目标时序裕量对比,根据对比结果对深度流水电路的时钟频率进行自适应的实时调节,具体为:
79.若当前时序裕量大于目标时序裕量,则将深度流水电路的时钟频率提高一个调节步长;
80.若当前时序裕量小于目标时序裕量,则将深度流水电路的时钟频率降低一个调节步长;
81.若当前时序裕量等于目标时序裕量,则不对深度流水电路的时钟频率做调节。
82.时序裕量压缩模块包括依次连接的本地振荡环、相位产生器和相位选择器,本地振荡环产生有参考时钟信号,相位产生器根据参考时钟信号依次进行等量延时生成相位依次延后的多个时钟信号;相位选择器根据对比结果,进行切换选择,具体为:若对比结果为冗余,则将深度流水电路的时钟频率提高一个调节步长;若对比结果为不足,则将深度流水电路的时钟频率降低一个调节步长;若对比结果为适量,则不对深度流水电路的时钟频率做调节。
83.作为一种优选的实施方式,时序裕量压缩步骤包括:获取参考时钟信号,根据该参考时钟信号依次进行等量延时生成相位依次延后的多个时钟信号;
84.将深度流水电路的时钟频率提高一个调节步长具体为:
85.从参考时钟信号开始,在每次信号即将从低电平跳转到高电平时,从生成的多个时钟信号中从前往后依次进行切换选择,得到时钟周期延长后的时钟信号;
86.将深度流水电路的时钟频率降低一个调节步长具体为:
87.从生成的最后一个时钟信号开始,在每次信号即将从高电平跳转到低电平时,从生成的多个时钟信号中从后往前依次进行切换选择,得到时钟周期缩短后的时钟信号。
88.相当于,时序裕量压缩模块根据时序裕量推断模块输出的2比特判断信号ts_state,对电路的时钟频率进行自适应的实时调节。如图5所示为时序裕量压缩模块的结构图,包含本地振荡环,相位产生器和相位选择器。本地振荡环产生参考时钟信号clk_ref,
clk_ref经由延时链组成的相位生成器,生成m个不同相位的时钟信号,相位选择器根据时序裕量推断模块所推断的当前时序裕量选择一个合适的时钟相位。具体的,若时序裕量推断模块提示当前时序裕量存在冗余(ts_cur》ts_tag),则时序裕量压缩模块将时钟频率提高一个步长;若时序裕量推断模块提示当前时序裕量不足(ts_cur《ts_tag),则时序裕量压缩模块将时钟频率降低一个步长;若时序裕量推断模块提示当前时序裕量适量(ts_cur=ts_tag),则时序裕量压缩模块不对时钟频率做调节。如图6所示的波形即对应当前时序裕量不足(ts_cur《ts_tag)的情况,此时,相位选择器将在每个时钟周期开始时,依次选择相位1(φ1),相位1(φ2),相位3(φ3)
……
由此所得到的经过调整的时钟clk_tuned的时钟周期即比参考时钟clk_ref的时钟周期t增加了

t,

t的值即为相位产生器所产生的相邻两个时钟相位的延时差。经过时钟频率调节后的时钟clk_tuned将输出至深度流水线电路,作为其工作时钟。因此,时序裕量压缩模块可以将深度流水线电路的工作频率实时维持在使得深度流水线电路的时序裕量为适量状态所对应的工作频率,有效地压缩冗余的时序裕量。
89.下面提供本发明方案在一个64级深度流水的sha256硬件加速器中的具体实施。该64级深度线电路采用基于高电平透明的三相不重叠锁存器的流水线设计,有一定的时间借用能力。每一级流水的运算功能相同,均为两次哈希迭代计算,流水线高度平衡。
90.本具体实施实例中,被监测的关键路径及近似关键路径分布于每相邻3级流水级中的最后一级,即第3流水级、第6流水级、第9流水级等21个流水级。以第1流水级、第2流水级和第3流水级为例,由于相邻流水级之间存在路径相关性,在第1流水级和第2流水级中发生时间借用时间的路径极有可能将其时序波动累积至第3流水级,并被第3流水级的时间借用检测单元检测到;若在第1流水级和第2流水级中发生时间借用时间的路径的时序波动没有累积至第3流水级,则说明第1流水级和第2流水级中路径的时序波动已通过锁存器流水线的时间借用能力自愈,时序裕量足够。因此,对于第1流水级、第2流水级和第3流水级,时间借用检测模块只需监测第3流水级即可。
91.本实施实例中的时间借用检测模块含有294个时间借用检测单元,用于监测294条关键路径及近似关键路径上是否发生了时间借用事件。所监测的关键路径和近似关键路径仅占所有关键路径和近似关键路径的3.1%,时间借用检测单元的数量仅占流水线锁存器总数量的0.59%,硬件开销极小。上述294条被监测的关键路径和近似关键路径由静态时序分析结合动态时序分析选出。具体的,首先根据静态时序分析确定待监测的21个流水级的所有关键路径及近似关键路径;然后,通过施加真实输入激励,进行动态仿真,统计所有关键路径及近似关键路径被触发的概率,并对这些关键路径及近似关键路径按照被触发的概率从高到低进行排序;接着,按序依次将关键路径及近似关键路径加入被监测路径集合,并判断当前被监测路径集合在一段时间内所能被检测到的时间借用事件数量ntb能否准确反映当前的时序裕量,即,检测到的时间借用总次数ntb是否与时序裕量成单调递减关系。若当前被监测路径集合所能被监测到的时间借用总次数ntb可以准确反映当前的时序裕量,即可停止向被监测路径集合添加新的关键路径或近似关键路径,得到最终的被监测路径集合。对于本实施示例,每个待监测流水级含有14个时间借用检测单元,实时监测该流水级中14条最常被触发的关键路径及近似关键路径。
92.本实施实例中的时序裕量检测模块包括加法器、累加器、时序裕量查找表和比较
器。加法器将时间借用检测模块中294个时间借用检测单元的输出相加,得到当前时钟周期检测到的时间借用数量ntb,ntb的最小可能值为0,最大可能值为294。累加器将tob个时钟周期内的时间借用情况总次数进行累加,得到tob个时钟周期内的总时间借用总数量ntb_tot。
93.本实施实例中的tob是可调节的,针对不同的目标时序裕量ts_tag,可选用不同的tob。具体的,当目标时序裕量较大时,如ts_tag为2.5%的时钟周期时,发生时间借用事件的关键路径和近似关键路径数量较少,ntb的值受输入激励的不同引起的波动较大,此时,本实施示例选用较长的累加周期tob=1000,使得累加得到的时间借用时间总次数ntb_tot更稳定。当目标时序裕量较小时,如ts_tag为-5%的时钟周期时,发生时间借用事件的关键路径和近似关键路径数量较多,ntb的值受输入激励的不同引起的波动较小,此时,本实施示例选用较短的累加周期tob=250。特别的,小于0的ts_tag对应于一定的深度流水线电路计算错误率。在本实施实例中,ts_tag=-5%可将深度流水线电路的计算错误率控制在百分之1e-5以下。
94.时序裕量查找表中存储了预先配置的时序裕量与tob个时钟周期内时间借用事件总次数的对应关系,根据累加器输出的ntb_tot和对应的累加周期tob,查找表可找出相对应的当前时序裕量ts_cur。特别的,目标时序裕量是可配置的,针对不同的应用场景需求,可配置不同的目标时序裕量,从而达到在一定计算准确率要求下的性能及能效收益最大化。对于本实施实例,时序裕量可配置为-15%,-12.5%,-10%,-7,5%,-5%,-2.5%,0,2.5%,分别对应于计算错误率为1%,0.1%,0.01%,0.001%,0.0001%,0.00001%,0,以及留有2.5%冗余时序裕量的不同情况。
95.比较器将查找表输出的当前时序裕量ts_cur与目标时序裕量ts_tag作比较,指明当前的时序裕量与目标时序裕量相比,是冗余(ts_cur》ts_tag),不足(ts_cur《ts_tag)或适量(ts_cur=ts_tag),并将这三种情况转换为2比特的判断信号ts_state输出至时序裕量压缩模块。
96.本实施实例中的时序裕量压缩模块根据时序裕量推断模块的输出ts_state,对电路的时钟频率进行自适应的实时调节,从而达到对冗余时序裕量的压缩作用。时序裕量压缩模块包含本地振荡环,相位产生器和相位选择器。本地振荡环产生参考时钟信号clk_ref,clk_ref经由延时链组成的相位生成器,生成64个不同相位的时钟信号,相位选择器根据时序裕量推断模块所推断的当前时序裕量选择一个合适的时钟相位。具体的,若时序裕量推断模块提示当前时序裕量为冗余(ts_cur》ts_tag),则时序裕量压缩模块将时钟频率提高一个调节步长;若时序裕量检测模块提示当前时序裕量为不足(ts_cur《ts_tag),则时序裕量校正模块将时钟频率降低一个调节步长;若时序裕量检测模块提示当前时序裕量适量(ts_cur=ts_tag),则时序裕量校正模块不对时钟频率做调节。经过时钟频率调节后的时钟clk_tuned将输出至sha256硬件加速器,作为其工作时钟。因此,时序裕量压缩模块可以将当前时序裕量维持在目标时序裕量ts_tag附近,从而动态地对冗余的时序裕量进行实时压缩,提升电路的性能和能效。
97.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的
技术方案,皆应在由权利要求书所确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献