异步时钟控制的寄存器堆读隔离方法

文档序号:6508470阅读:237来源:国知局
异步时钟控制的寄存器堆读隔离方法
【专利摘要】本发明属于微处理器【技术领域】,具体为一种异步时钟控制的寄存器堆读隔离方法。本发明基于一个包含基本流水线结构的微处理器构架,在访问寄存器堆流水级时,检测是否需要对寄存器堆进行读操作,如果发现对寄存器堆的读操作是无用的(无用的读操作包括两种情况:指令本身不需要访问寄存器堆,以及所需要的操作数可以通过反馈网络获取),则通过一个局部的异步时钟网络来保持住给寄存器堆的读地址,使之不变,由于寄存器堆的读操作是异步读出,则若地址保持不变,相应的逻辑就不会翻转,从而降低了无用的读寄存器堆功耗。
【专利说明】异步时钟控制的寄存器堆读隔离方法
【技术领域】
[0001]本发明属于微处理器【技术领域】,具体涉及一种异步时钟控制的寄存器堆读隔离方法。
【背景技术】
[0002]寄存器堆是处理器中第一级存储单元,是现代微处理器的核心部件,由于对寄存器堆的访问呈现出高速、高频的特点,是的寄存器堆的功耗和功耗密度都相当大,以至于成为了微处理器的能量消耗主要部件和功耗热点。高能耗对微处理器特别是嵌入式应用领域的微处理器提出了挑战,而功耗热点更会导致电路稳定性和寿命下降。因此,研究降低寄存器堆功耗有十分重要的现实意义。
[0003]图1展示了传统的6级流水线的微处理器结构图。包括了取指令级、译码级、执行级、访存储器级、对齐级和写回级。
[0004]在传统的微处理器架构中,对于寄存器堆的读没有专门的电路进行隔离,就算实际指令执行过程中发现了无用的读操作,也不会屏蔽对寄存器堆的读操作,从而导致了不必要的能量消耗,针对这个缺点,需要对寄存器堆的读进行检测,一旦发现无用的读操作则对寄存器堆的读进行屏蔽,降低功耗。

【发明内容】

[0005]本发明的目的在于提供一种能够降低寄存器堆读功耗的异步时钟控制的寄存器堆读隔离方法。
[0006]本发明通过检测无用的寄存器堆读操作,然后利用局部的异步时钟网络进行寄存器堆读地址的维持,减少逻辑的翻转,从而降低寄存器堆的读功耗,同时也降低寄存器堆的功耗密度,提高电路的稳定性和寿命。
[0007]本发明提供的异步时钟控制的寄存器堆读隔离方法,是基于一个包含基本流水线结构的微处理器构架,该微处理器包括取指令级、译码级、执行级、访存储器级、对齐级和写回级(如图1所示);本发明方法的基本思路是:在访问寄存器堆流水级时,检测是否需要对寄存器堆进行读操作,如果发现对寄存器堆的读操作是无用的(无用的读操作包括两种情况:指令本身不需要访问寄存器堆,以及所需要的操作数可以通过反馈网络获取),则通过一个局部的异步时钟网络来保持住给寄存器堆的读地址,使之不变,由于寄存器堆的读操作是异步读出(换言之,给地址即可读出数据),则若地址保持不变,相应的逻辑就不会翻转,从而降低了无用的读寄存器堆功耗。
[0008]为此,在上述微处理器架构的基础上,在译码级增加一个判断逻辑,如在图2中,指令中的两个源操作数为Rs和Rt。以Rs为示例,“需要读取Rs”这个逻辑给出O (当需要读取Rs),否则这一逻辑给出I (当不需要读取Rs),“Rs反馈得到”这个逻辑给出I (当可以反馈得到Rs),否则这一逻辑给出0(当不可以反馈得到Rs),然后再将这两个逻辑的输出结果进行一个“或”操作;Rt与Rs类似;以此做为译码级增加的是否需要访问寄存器堆判断逻辑;同时还需要在译码级增加一个控制寄存器堆地址输入端口的控制逻辑和局部的异步时钟网络,如在图2中,所述的控制逻辑由一个2选I的数据选择器和一个触发器DFF构成,选择器的“ I ”输入端选择DFF的输出端Q的值,而“O”输入端选择“Rs/Rt地址值”,选择器的控制端信号来自上述的“或”逻辑门的输出端,选择器的选择结果输入到DFF的数据输入端D ;局部时钟加在DFF的时钟输入端(DFF框中左下角三角形所示的输入端),如图2下方的波形所示,局部时钟与系统时钟有一个与设计时序相适应的固定相差延迟。于是,所述的异步时钟控制的寄存器堆读隔离方法,具体步骤为:
由译码级的判断逻辑,判断指令中的两个源操作数(如Rs和Rt)是否需要从寄存器堆中获取,判断的依据为:一种情况是指令执行本身不需要用到两个源操作数(如Rs或者Rt),另一种情况是所需要的操作数能够从执行级、访存级或者对齐级反馈,一旦这两种情况中的任何一种被确认,则对两个源操作数(如Rs和Rt)的寄存器堆读操作进行屏蔽;
所述屏蔽的具体措施是,通过局部的异步时钟网络将译码级割裂成两段,给寄存器堆的地址输入信号由局部的异步时钟控制,在需要屏蔽寄存器堆时,将相应的地址信号进行隔离。
[0009]本发明中,所述隔离的具体方法是,基于选择器-触发器的保持电路,当需要隔离时,给寄存器堆的地址选择其前一个时钟周期的值,否则选择由译码电路给出的地址值。
[0010]本发明中,局部异步时钟网络的生成采用全定制的方法,利用反相器链手工搭建这个局部的时钟网络,生成的本地时钟与全局时钟具有与设计时序要求相适应的固定相位偏差。
[0011]本发明方法可以进一步归纳为:
(1)由译码级的判断逻辑,判断是否需要对两个源操作数进行读取,不需要读取则认为对寄存器堆进行屏蔽,屏蔽的条件为:(i),指令本身不需要该操作数,(ii),所需要的操作数可以从后面的执行级、访存级或对齐级反馈得到;
(2)如果确认上述的隔离条件成立,则采用基于选择器-触发器的保持电路,当需要隔离时,该保持电路将给寄存器堆的地址值保持不变,否则选择由译码电路给出的地址值;
(3 )触发(2 )中所述的保持电路的时钟由本地异步时钟网络产生,本地异步时钟网络由手工定制得到,采用反相器链形式搭建,生成的时钟网络与全局时钟网络具有与设计要求相适应的固定相位偏差。
[0012]本发明方法能够在译码级检测到不必要的寄存器堆读操作。
[0013]与现有的架构相比,本发明提供的异步时钟控制的寄存器堆读隔离方法,能够有效地检测并隔离无用的寄存器堆读操作,从而降低了寄存器堆的功耗和功耗密度,在硬件上开销是少量的寄存器(用以搭建选择器-触发器的隔离电路)和简单的逻辑,实验表明这些开销均可以忽略不计。
【专利附图】

【附图说明】
[0014]图1是传统的6级流水线微处理器架构。
[0015]图2是异步时钟控制的寄存器堆读隔离方法的总体架构。
[0016]图3是无用的寄存器堆读操作的具体判断逻辑。
[0017]图4是确定局部时钟网络与系统时钟偏差的参数t_delay的确定。[0018]图5是局部异步时钟网络的电路图和仿真结果。
【具体实施方式】
[0019]下面通过实例进一步描述本发明提供的异步时钟控制的寄存器堆读隔离方法。
[0020]图2展示了异步时钟控制的寄存器堆读隔离方法的总体架构。与图1传统的结构相比,该结构增加了无用读的判断逻辑,从而决定是否对寄存器堆进行读操作,增加了一个局部的异步时钟网络,进行控制对寄存器堆的地址输入信号,如果断言某一个读操作无效,则通过选择器-触发器的电路将相应的寄存器堆地址输入端口的地址保持住,从而无用的逻辑翻转被屏蔽,避免了无用的功耗开销。
[0021]图3展示了对无用的寄存器堆读逻辑的判断。实际的逻辑设计中,主要要对两种情况进行区分,其一是指令执行本身不需要读取寄存器堆,在本发明中,我们对R型指令和I型指令进行区分,对于R型指令,其两个操作数均要从寄存器堆中获取,而对于I型指令,由于其中一个操作数来自立即数,只有一个操作数Rs需要访问寄存器堆。第二种情况是,所需要的操作数可以从后面的反馈网络中获取,在图3中,给出了一个利用反馈网络获取操作数的例子,简而言之,只要当前指令在译码级,而其前导指令还在执行级、访存级或者对齐级,并且前导指令的目的操作寄存器作为当前译码级指令的源操作寄存器,那么当前指令的源操作寄存器就被认为可以从前馈网络中获取(图3中,$1分别在执行级、访存级和对齐级被反馈到其后续指令的译码级)。这两种情况只要任何一种产生就可以屏蔽掉对寄存器堆的读操作。
[0022]图4展示了确定局部的异步时钟网络与全局系统时钟网络的时间偏差的参数七_delay的计算。如图4所示,t_delay包括了流水线级间寄存器的时钟到数据的延迟时间clk_Q,判断是否需要读寄存器堆的逻辑时间logic,寄存器堆地址控制寄存器的建立时间setup,另外一般为了保证时序的正确,需要留一定的时间余量margin。因此,这里的t_delay = clk_Q + logic + setup + margin ;每个参数的确定要根据实际的工艺特征以及要求实现的系统性能指标来综合确定。
[0023]图5展示了在图4基础上进行设计的局部时钟网络,可以采用小规模的全定制电路设计策略,或者直接在布局不线后的网表上进行手工的添加buffer (由反相器拼凑)来达到与系统时钟偏差为t_delay的目标,具体设计需要根据实际的参数进行仿真确定。本发明中所确定的t_delay为300ps,相应的实验仿真结果也在图5中展示了。
【权利要求】
1.一种异步时钟控制的寄存器堆读隔离方法,基于一个包含基本流水线结构的微处理器构架,该微处理器包括取指令级、译码级、执行级、访存储器级、对齐级和写回级,其特征在于:在上述微处理器架构的基础上,在译码级增加一个判断逻辑,用于是否需要访问寄存器堆的逻辑判断;同时还提供一个在译码级控制寄存器堆地址输入端口的控制逻辑和局部的异步时钟网络,于是,所述方法的具体步骤为: 由译码级的判断逻辑,判断指令中的两个源操作数是否需要从寄存器堆中获取,判断的依据为:一种情况是指令执行本身不需要用到两个源操作数,另一种情况是所需要的源操作数能够从执行级、访存级或者对齐级反馈,一旦这两种情况中的任何一种被确认,则对两个源操作数的寄存器堆读操作进行屏蔽: 屏蔽的具体措施是,通过局部的异步时钟网络将译码级割裂成两段,给寄存器堆的地址输入信号由局部的异步时钟控制,在需要屏蔽寄存器堆的读操作时,将相应的地址信号进行隔离。
2.根据权利要求1所述的异步时钟控制的寄存器堆读隔离方法,其特征在于所述将相应的地址信号进行隔离的具体措施是:采用基于选择器-触发器的保持电路,如果上述隔离条件成立,则该保持电路给寄存器堆的地址保持不变,从而寄存器堆不会被读访问。
【文档编号】G06F12/14GK103440210SQ201310365831
【公开日】2013年12月11日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】虞志益, 俞政, 于学球, 张家杰, 曾晓洋 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1