CN104317361B - 一种基于指针延迟更新的循环缓冲器 - Google Patents
一种基于指针延迟更新的循环缓冲器 Download PDFInfo
- Publication number
- CN104317361B CN104317361B CN201410581623.2A CN201410581623A CN104317361B CN 104317361 B CN104317361 B CN 104317361B CN 201410581623 A CN201410581623 A CN 201410581623A CN 104317361 B CN104317361 B CN 104317361B
- Authority
- CN
- China
- Prior art keywords
- pointer
- buffer
- circuit
- freeze
- frozen state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
Abstract
一种基于指针延迟更新的循环缓冲器,包括:缓冲器模块,包括缓冲单元、满比较器和空比较器;创建指针电路,用于选择写入数据的缓冲单元;读取指针电路,用于选择读出数据的缓冲单元;所述循环缓冲器还包括:创建指针冻结电路,连接于创建指针电路,冻结创建指针的移动;读取指针冻结电路,连接于读取指针电路,冻结读取指针的移动;所述创建指针冻结电路和读取指针冻结电路接收冻结启动/结束请求,输出创建指针延迟更新信号和读取指针延迟更新信号,进而冻结所述创建指针和读取指针在接收所述循环缓冲器创建请求和读取请求时的移动。本发明有效控制峰值功耗和平均功耗、资源利用效率较高。
Description
技术领域
本发明涉及一种数据处理器领域,尤其是一种循环缓冲器。
背景技术
数据处理器中存在大量功能不同的循环缓冲器,例如取指阶段用于缓存预取指令的指令循环缓冲器(Instruction Buffer)、回写阶段用于控制指令按序提交的重排序循环缓冲器(Reorder Buffer)和总线接口单元中用于加速存储指令回写的回写循环缓冲器(Write Buffer)。传统循环缓冲器无论是创建指针还是读取指针采用的都是实时更新机制。
参照图1所示,传统循环缓冲器10包括缓冲器12,创建指针电路14与读取指针电路16。在缓冲器12接收到创建请求时,将该请求保存到创建指针18所选择的缓冲单元26中,然后利用加法单元20将创建指针18加1后更新创建指针18;在接收到读取请求时,获取读取指针22所选择的缓冲单元20,然后利用加法单元24将读取指针22加1后更新读取指针22。另外,缓冲器的空/满信息分别通过满比较器28和空比较器30通过比较创建指针18与读取指针22的相等性获得。当创建指针18与读取指针22相等,表征缓冲器为空。当读取指针22经过MSB反相器32与创建指针相等,表征缓冲器为满。
数据处理器为了抵御功耗分析,通常需要削平程序运行过程中产生的峰值功耗。而采用指针实时更新机制的循环缓冲器存在峰值功耗不易隐藏的问题。例如,取指阶段设置的指令循环缓冲器,每次指令从指令循环缓冲器中获取后需要进行预译码等一系列组合电路后发送给后级流水线,因此需要消耗较大的组合逻辑翻转功耗。一旦指令能发送给后级流水线,更新读取指针,选择新的指令存储单元。这样,后级流水线和当前流水线的组合逻辑同时在翻转,从而导致较大的峰值功耗。另外,基于指令实时更新的指令循环缓冲器在指令流发生变化时,需要清除当前指令缓冲器选择的指令,从而产生无效的动态功耗,影响处理器的平均功耗。
发明内容
为了克服已有循环缓冲器无法控制峰值功耗和平均功耗、资源利用效率较低的不足,本发明提供了一种有效控制峰值功耗和平均功耗、资源利用效率较高的基于指针延迟更新的循环缓冲器。
本发明解决其技术问题所采用的技术方案是:
一种基于指针延迟更新的循环缓冲器,包括:缓冲器模块,包括缓冲单元、满比较器和空比较器;创建指针电路,用于选择写入数据的缓冲单元;读取指针电路,用于选择读出数据的缓冲单元;所述循环缓冲器还包括:创建指针冻结电路,连接于创建指针电路,冻结创建指针的移动;读取指针冻结电路,连接于读取指针电路,冻结读取指针的移动;
所述创建指针冻结电路和读取指针冻结电路接收冻结启动/结束请求,输出创建指针延迟更新信号和读取指针延迟更新信号,进而冻结所述创建指针和读取指针在接收所述循环缓冲器创建请求和读取请求时的移动。
进一步,所述创建指针冻结电路包括一个冻结启动信号接收器,一个冻结结束信号接收器,一个冻结状态机和一个指针延迟更新信号发生器;冻结启动信号接收器用于接收循环缓冲器的创建信号和冻结启动信号;冻结结束信号接收器用于接收到冻结结束信号;冻结状态机连接于冻结启动信号接收器和冻结结束信号接收器的输出端,接收状态转换请求,完成在空闲态和冻结态之间的状态转换;指针延迟更新信号发生器实时监测冻结状态机,在冻结状态机接收从空闲态进入冻结态的状态转换请求时开始输出创建指针延迟更新信号,直到冻结状态机接收到冻结结束信号接收器输出的从冻结态回到空闲态的状态转换请求。
再进一步,所述读取指针冻结电路包括一个冻结启动信号接收器,一个冻结结束信号接收器,一个冻结状态机和一个指针延迟更新信号发生器。所述读取指针冻结电路具有和所述创建指针冻结电路相同的电路结构。
所述循环缓冲器还包括创建请求屏蔽电路,接收所述创建指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器创建冻结信号,用于屏蔽此时循环缓冲器的创建请求,避免对所述创建指针选择的缓冲单元内容的覆盖。
所述循环缓冲器还包括创建请求合并电路,接收所述创建指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器创建冻结信号,用于完成循环缓冲器的创建请求和所述创建指针选择的缓冲单元内容的合并。
所述循环缓冲器还包括读取请求屏蔽电路,接收所述读取指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器读取冻结信号,用于屏蔽循环缓冲器的读取请求,避免反复获取所述读取指针选择的缓冲单元内容。
所述循环缓冲器还包括读取请求拆分电路,接收所述读取指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器读取冻结信号,用于完成所述读取指针选择的缓冲单元内容的拆分。
本发明的技术构思为:在通过监测循环缓冲器的运行环境控制创建指针、读取指针的移动;当检测到循环缓冲器需要屏蔽后续创建请求或者当前的创建请求可以和后续创建请求进行合并时,延迟创建指针的更新;当检测到循环缓冲器的读取请求需要保持不变时,冻结读取指针的移动。从而有效控制数据处理器的峰值功耗或平均功耗,提高缓冲单元的资源利用效率。
本发明的有益效果主要表现在:有效控制峰值功耗和平均功耗、资源利用效率较高。
附图说明
图1为传统基于指针实时更新的循环缓冲器的示意图。
图2为基于指针延迟更新的循环缓冲器的一个实例图。
图3为创建指针冻结电路的一个实例图。
图4为缓冲器的一个实例,即指令缓冲器的示意图。
图5为缓冲器的另一个实例,即回写缓冲器的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图2~图5,一种基于指针延迟更新的指令循环缓冲器,包括:
缓冲器模块12,包括缓冲单元26、满比较器28和空比较器30;
创建指针电路14,用于选择写入数据的缓冲单元;
创建指针冻结电路40,连接于创建指针电路14,冻结创建指针18的移动;
读取指针电路16,用来选择读出数据的缓冲单元;
读取指针冻结电路42,连接于读取指针电路16,冻结读取指针22的移动;
其中,所述创建指针冻结电路40和读取指针冻结电路42接收冻结启动请求和冻结结束请求,输出创建指针延迟更新信号和读取指针延迟更新信号,进而冻结所述创建指针18和读取指针22在接收所述循环缓冲器创建请求和读取请求时的移动。
进一步,所述创建指针冻结电路40包括一个冻结启动信号接收器60,一个冻结结束信号接收器62,一个冻结状态机64和一个指针延迟更新信号发生器66;冻结启动信号接收器60用于接收缓冲器12的创建信号和冻结启动信号;冻结结束信号接收器62用于接收到冻结结束信号;冻结状态机64连接于冻结启动信号接收器60和冻结结束信号接收器62的输出端,接收状态转换请求,完成空闲态和冻结态之间的状态转换。指针延迟更新信号发生器实时监测冻结状态机,当检测到冻结状态机64从空闲态进入冻结态时开始输出创建指针延迟更新信号,直到检测到冻结状态机64从冻结态恢复到空闲态时结束创建指针延迟更新信号的输出。
所述读取指针冻结电路42具有和所述创建指针冻结电路40相同的电路结构,包括一个冻结启动信号接收器60,一个冻结结束信号接收器62,一个冻结状态机64和一个指针延迟更新信号发生器66。
一个实施例:所述指令缓冲器34包括创建请求屏蔽电路50,接收所述创建指针冻结电路40在所述冻结状态机64处于冻结态时输出的缓冲器创建冻结信号,用于屏蔽此时指令缓冲器34的创建请求,避免对所述创建指针18选择的缓冲单元内容的覆盖;所述指令缓冲器还包括读取请求屏蔽电路52,接收所述读取指针冻结电路42在所述冻结状态机处于冻结态时输出的缓冲器读取冻结信号,用于屏蔽指令缓冲器34的读取请求,避免反复获取所述读取指针22选择的缓冲单元内容。
另一个实施例:所述回写缓冲器36包括创建请求合并电路44,接收所述创建指针冻结电路40在所述冻结状态机64处于冻结态时输出的缓冲器创建冻结信号,用于完成回写缓冲器36的创建请求和所述创建指针18选择的缓冲单元内容的合并;所述回写缓冲器还包括读取请求拆分电路46,接收所述读取指针冻结电路42在所述冻结状态机64处于冻结态时输出的缓冲器读取冻结信号,用于完成所述读取指针22选择的缓冲单元内容的拆分。
图2显示了基于指针延迟更新的循环缓冲器结构。在图1显示的基于指针实时更新的循环缓冲器结构基础上,增加了创建指针冻结电路40和读取指针冻结电路42。创建指针18在创建指针冻结电路40的控制下选择是否使用加法器20的输出结果更新创建指针18;同样,读取指针22在读取指针冻结电路42的控制下选择是否使用加法器24的输出结果更新读取指针22。
图3显示了创建/读取指针冻结电路结构。创建指针冻结电路40包括冻结启动信号接收器60、冻结结束信号接收器62、冻结状态机64和指针冻结信号发生器66。其中,冻结启动信号接收器60用于接收缓冲器12的创建信号和冻结启动信号;冻结结束信号接收器62用于接收到冻结结束信号;冻结状态机64连接于冻结启动信号接收器和冻结结束信号接收器的输出端,接收冻结启动信号接收器60输出的从空闲态进入冻结态的状态转换请求和冻结结束信号接收器62输出的从冻结态恢复到空闲态的状态转换请求,完成空闲态和冻结态之间的状态转换。指针延迟更新信号发生器66实时监测冻结状态机64,当检测到冻结状态机从空闲态进入冻结态时开始输出创建指针延迟更新信号,直到检测到冻结状态机64从冻结态恢复到空闲态时结束创建指针延迟更新信号的输出。另外,指针延迟更新信号发生器66输出缓冲器创建冻结信号,用于缓冲单元对创建请求的处理。
图4显示了缓冲器的一个实例——指令循环缓冲器34。指令缓冲器34包括缓冲单元26、创建请求屏蔽电路50、读取请求屏蔽电路52、创建使能单元54和数据选择器56。创建请求屏蔽电路50由一个非门和与门构成,接收来自创建指针冻结电路40输出的创建冻结信号WR_FROZEN,控制是否屏蔽创建使能信号WR_EN。创建使能单元54接收缓冲单元26最终的创建请求,并根据创建指针WR_PTR 18选择写入的缓冲单元26。读取请求屏蔽电路52与创建请求屏蔽电路50拥有相同的电路结构,根据读取冻结信号RD_FROZEN产生最终读取请求有效信号RD_VLD。数据选择器56根据读取指针RD_PTR 22选择读取的缓冲单元。
图5显示了缓冲器的另一个实例——回写缓冲器36。回写缓冲器36与指令缓冲器34不同之处在于:合并电路44取代了创建请求屏蔽电路50,拆分电路46取代了读取请求屏蔽电路52,另外增加了一个写数据选择器58用于选择需要合并的缓冲单元26。合并电路44负责控制当前创建请求和创建指针18选择的缓冲单元26的合并,而拆分电路46在处理读取请求时,完成将读取指针22选择的缓冲单元26重新拆分为两次独立的请求。
Claims (6)
1.一种基于指针延迟更新的循环缓冲器,包括:缓冲器模块,包括缓冲单元、满比较器和空比较器;创建指针电路,用于选择写入数据的缓冲单元;读取指针电路,用于选择读出数据的缓冲单元;其特征在于:所述循环缓冲器还包括:创建指针冻结电路,连接于创建指针电路,冻结创建指针的移动;读取指针冻结电路,连接于读取指针电路,冻结读取指针的移动;
所述创建指针冻结电路和读取指针冻结电路接收冻结启动/结束请求,输出创建指针延迟更新信号和读取指针延迟更新信号,进而冻结所述创建指针和读取指针在接收所述循环缓冲器创建请求和读取请求时的移动;
所述创建指针冻结电路包括一个冻结启动信号接收器,一个冻结结束信号接收器,一个冻结状态机和一个指针延迟更新信号发生器;冻结启动信号接收器用于接收循环缓冲器的创建信号和冻结启动信号;冻结结束信号接收器用于接收到冻结结束信号;冻结状态机连接于冻结启动信号接收器和冻结结束信号接收器的输出端,接收状态转换请求,完成在空闲态和冻结态之间的状态转换;指针延迟更新信号发生器实时监测冻结状态机,在冻结状态机接收从空闲态进入冻结态的状态转换请求时开始输出创建指针延迟更新信号,直到冻结状态机接收到冻结结束信号接收器输出的从冻结态回到空闲态的状态转换请求。
2.如权利要求1所述的基于指针延迟更新的循环缓冲器,其特征在于:所述读取指针冻结电路包括一个冻结启动信号接收器,一个冻结结束信号接收器,一个冻结状态机和一个指针延迟更新信号发生器。
3.如权利要求2所述的基于指针延迟更新的循环缓冲器,其特征在于:所述循环缓冲器还包括创建请求屏蔽电路,接收所述创建指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器创建冻结信号,用于屏蔽此时循环缓冲器的创建请求,避免对所述创建指针选择的缓冲单元内容的覆盖。
4.如权利要求2所述的基于指针延迟更新的循环缓冲器,其特征在于:所述循环缓冲器还包括创建请求合并电路,接收所述创建指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器创建冻结信号,用于完成循环缓冲器的创建请求和所述创建指针选择的缓冲单元内容的合并。
5.如权利要求2所述的基于指针延迟更新的循环缓冲器,其特征在于:所述循环缓冲器还包括读取请求屏蔽电路,接收所述读取指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器读取冻结信号,用于屏蔽循环缓冲器的读取请求,避免反复获取所述读取指针选择的缓冲单元内容。
6.如权利要求2所述的基于指针延迟更新的循环缓冲器,其特征在于:所述循环缓冲器还包括读取请求拆分电路,接收所述读取指针冻结电路在所述冻结状态机处于冻结态时输出的缓冲器读取冻结信号,用于完成所述读取指针选择的缓冲单元内容的拆分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410581623.2A CN104317361B (zh) | 2014-10-27 | 2014-10-27 | 一种基于指针延迟更新的循环缓冲器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410581623.2A CN104317361B (zh) | 2014-10-27 | 2014-10-27 | 一种基于指针延迟更新的循环缓冲器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104317361A CN104317361A (zh) | 2015-01-28 |
CN104317361B true CN104317361B (zh) | 2017-08-04 |
Family
ID=52372601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410581623.2A Active CN104317361B (zh) | 2014-10-27 | 2014-10-27 | 一种基于指针延迟更新的循环缓冲器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317361B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941177A (zh) * | 2005-09-29 | 2007-04-04 | 海力士半导体有限公司 | 延迟锁定回路电路 |
CN101714399A (zh) * | 2008-09-30 | 2010-05-26 | 恩益禧电子股份有限公司 | 存储器接口及其操作方法 |
CN102270011A (zh) * | 2010-06-04 | 2011-12-07 | 智微科技股份有限公司 | 校准多个数据信道的数据传输时序的时序校准电路及时序校准方法 |
CN102484757A (zh) * | 2009-09-03 | 2012-05-30 | 罗伯特·博世有限公司 | 用于会议音频系统的延迟单元、用于延迟音频输入信号的方法、计算机程序以及会议音频系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676663B2 (en) * | 2004-03-09 | 2010-03-09 | International Business Machines Corporation | Method, system and program product for pipelined processor having a branch target buffer (BTB) table with a recent entry queue in parallel with the BTB table |
US8593474B2 (en) * | 2005-12-30 | 2013-11-26 | Intel Corporation | Method and system for symmetric allocation for a shared L2 mapping cache |
-
2014
- 2014-10-27 CN CN201410581623.2A patent/CN104317361B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941177A (zh) * | 2005-09-29 | 2007-04-04 | 海力士半导体有限公司 | 延迟锁定回路电路 |
CN101714399A (zh) * | 2008-09-30 | 2010-05-26 | 恩益禧电子股份有限公司 | 存储器接口及其操作方法 |
CN102484757A (zh) * | 2009-09-03 | 2012-05-30 | 罗伯特·博世有限公司 | 用于会议音频系统的延迟单元、用于延迟音频输入信号的方法、计算机程序以及会议音频系统 |
CN102270011A (zh) * | 2010-06-04 | 2011-12-07 | 智微科技股份有限公司 | 校准多个数据信道的数据传输时序的时序校准电路及时序校准方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104317361A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394655B2 (en) | Method for detecting abnormal application and mobile terminal | |
CN105159776B (zh) | 进程处理方法及装置 | |
JP5853216B2 (ja) | 集積回路、コンピュータシステム、制御方法 | |
US8214662B2 (en) | Multiprocessor control unit, control method performed by the same, and integrated circuit | |
US10318297B2 (en) | Method and apparatus for operating a self-timed parallelized multi-core processor | |
US9274970B2 (en) | Method and apparatus for handling processor read-after-write hazards with cache misses | |
US20150177811A1 (en) | Power management for in-memory computer systems | |
US10007613B2 (en) | Reconfigurable fetch pipeline | |
US9606931B2 (en) | Indicating a length of an instruction of a variable length instruction set | |
TW201426242A (zh) | 在時脈來源的時脈網格之自動時脈閘控方法及系統 | |
CN114168202B (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
KR101722413B1 (ko) | 부하 라인 최적화를 위한 그래픽 전압 감소 | |
CN104317361B (zh) | 一种基于指针延迟更新的循环缓冲器 | |
CN111008042B (zh) | 基于异构流水线的高效通用处理器执行方法及系统 | |
US10127040B2 (en) | Processor and method for executing memory access and computing instructions for host matrix operations | |
TWI570543B (zh) | 用於與圖形核心相關聯的能量節省之方法及系統 | |
US20220027278A1 (en) | Techniques for core-specific metrics collection | |
KR20110075638A (ko) | 저 전력 트레이스 캐쉬 및 명령어 세트 예측기를 구비한 프로세서 시스템 | |
JP2022505016A (ja) | 深層学習トレーニングタスクに向けたプロセッサメモリを最適化するための方法及び装置 | |
US10776139B2 (en) | Simulation apparatus, simulation method, and computer readable medium | |
CN113407239B (zh) | 一种基于异步单轨的流水线处理器 | |
CN114356416B (zh) | 处理器及其控制方法、装置、电子设备和存储介质 | |
Trudeau et al. | A low-latency, energy-efficient L1 cache based on a self-timed pipeline | |
TW201310220A (zh) | 節能系統以及節能方法 | |
CN109614146B (zh) | 一种局部跳转指令取指方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |