专利名称:一种微处理器硬件多线程动态变频控制装置及其应用方法
技术领域:
本发明涉及微处理器设计领域,尤其是涉及硬件多线程的动态控制领域,具体为微处理器硬件多线程动态切换控制装置及其应用方法。
背景技术:
微处理器的硬件多线程体系结构,可支持多线程并行处理,这种硬件多线程结构可以避免软件多线程中线程切换带来的功耗代价,具备负载分流、并行处理的能力。但是由于负载流量的不确定性,会导致硬件多线程微处理器的性能损失,即当负载流量变小时,硬件线程一部分处于空跑状态。如何在提高微处理器吞吐率并满足实时性需求的同时消耗更少的功耗是硬件多线程微处理器设计中的一个挑战,比如网络处理器面对的网络系统中网络流量和实时性需求都是实时变化的,如何根据外部环境对系统设备需求的变化合理的调整系统以降低系统功耗。为避免硬件线程的空跑消耗,需要处理器能够根据负载情况动态改变处理器的硬件线程数量,也即动态改变处理器的频率。由于多个硬件线程是同时存在于处理器的流水线之上的,因此硬件多线程的变频不同于通常的处理器变频,需要保证变频后多个线程都正确执行。简单的处理办法是在变频时将处理器的流水线排空,变频后重新填满,这样即浪费时间,又会占用额外的存储资源。
发明内容
为解决硬件多线程动态变频的现有开销问题,本发明提供一种微处理器硬件多线程动态变频控制装置,及一种硬件线程数量动态切换的时钟变频方法。一个微处理器硬件多线程动态变频控制装置,包括一个时钟参数寄存器,一个变频标志寄存器,一个变频模式寄存器,一个时钟产生状态机,N个多路选通器,一组倍频时钟信号,可支持最多N个硬件线程(其中N为2的整数次幂N=2m);
所述时钟参数寄存器的输出端连接到时钟产生状态机其中一个输入端,用于非变频阶段的时钟信号选择;
所述变频标志寄存器的输出端连接到时钟产生状态机其中一个输入端,变频标志寄存器有效时用于使时钟产生状态机进入变频阶段控制,时钟产生状态机进入变频阶段后将变频标志寄存器复位为无效;
所述变频模式寄存器的输出端连接到时钟产生状态机其中一个输入端,用于选择变频阶段的时钟信号;
所述时钟产生状态机输出的N个选通控制信号连接到一组(N个)多路选通器的选通控制端。时钟产生状态机产生N个变频阶段的时钟信号输出到一组(N个)多路选通器的多路输入端,用于产生一组供硬件多线程处理器流水线上使用的时钟信号。时钟参数寄存器的值会输出到时钟产生状态机,时钟产生状态机在变频后产生新的时钟参数输入到时钟参数寄存器对时钟参数寄存器进行修改。时钟产生状态机进入变频阶段后输出信号到变频标志寄存器更新变频标志信息;
所述一组倍频时钟信号分别连接到不同多路选通器的多路输入端,所述一组倍频时钟信号是由基准时钟逐级倍频产生的一组倍频时钟信号,包括基准时钟和逐级倍频的时钟, 分别提供给不同数量硬件多线程时段使用;
所述一组多路选通器用于产生N个硬件线程需要的一组工作时钟信号,该多路选通器为N个M+2选1的选通器,每个多路选通器的输入端为从一组倍频时钟信号中选出的一组时钟信号(M+1个),和由时钟产生状态机产生的时钟信号(1个)。所述时钟产生状态机包含一个多位选通控制寄存器用于控制一组多路选通器的选通控制,一组时钟模式用于时钟产生状态机按步骤产生变频期间的时钟信号,和一套状态转换逻辑用于根据变频模式寄存器的值,按步骤产生变频期间的时钟信号。所述一组倍频时钟信号为由基准时钟逐级倍频产生的一组倍频时钟信号,包括一个频率为F的基准时钟clk,两个频率为(F/2)、相位相隔(360度/2)的倍频时钟 clk_2T_l和clk_2T_2,22个频率为(F/22)、相位相隔(360度/22)的倍频时钟clk_4T_l、 clk_4T_2、clk_4T_3 和 clk_4T_4,…,N (=2M)个频率为(F/2M)、相位相隔(360 度 /2M)的倍频时钟 clk_NT_l、clk_NT_2、clk_NT_3、…、clk_NT_N。共计(2M+1_1)个,分别提供给不同数量硬件多线程时段使用。所述一组多路选通器为N个(M+2)选1的选通器,用于产生N个硬件线程需要的时钟信号(clk_l、clk_2、…、clk_N),每个多路选通器的输入端为从一组倍频时钟信号中选出的一组时钟信号(M+1个),和由时钟产生状态机产生的时钟信号(1个)。所述每个多路选通器输入端的一组时钟信号(M+1个)为频率F、F/2、…、F/2M的时钟信号各一个。其中, elk连接到每一个多路选通器的输入端;clk_2T_l和clk_2T_2分别连接到奇数序号的多路选通器的输入端和偶数序号的多路选通器的输入端;clk_4T_l、clk_4T_2、clk_4T_3和 clk_4T_4分别连接到4i+l序号、4i+2序号、4i+3序号和4i+4序号的多路选通器的输入端 (i>=0) ;clk_NT_l、clk_NT_2、clk_NT_3、…、clk_NT_N 分别连接到 1 号、2 号、3 号、.-、N 号多路选通器的输入端。所述时钟产生状态机的一组时钟模式是按照硬件多线程的数量和线程切换情况预先定义的,根据时钟产生状态机中状态转换逻辑按步骤选择产生变频期间的时钟信号。所述时钟产生状态机的一套状态转换逻辑用于根据变频模式寄存器的值,按步骤产生变频期间的时钟信号,该变频期间的时钟信号不同于一组倍频时钟信号。变频期间的时钟信号用于延迟流水线上的某些寄存器,使得频率切换后流水线上需要保留的线程的寄存器值和上下文不会被丢失或覆盖。上述微处理器硬件多线程动态变频控制装置的应用方法具体为通过微处理器硬件多线程动态变频控制装置实现硬件线程数量动态切换的时钟变频方法,该方法包括以下步骤
1)根据当前时钟参数寄存器的状态从一组倍频时钟信号中选择相应的硬件多线程时钟频率,所述一组倍频时钟信号包括基准时钟和逐级倍频的时钟;
2)变频标志寄存器中变频标志位有效,进入变频时钟控制阶段;
3)按照变频模式寄存器的值,配合硬件线程数量的切换,选择合适的时钟模式执行状态转换过程,产生变频时期的时钟信号,保证硬件线程能够正确运行;4)变频完成后,更新时钟参数寄存器;
5)退出变频阶段,根据新的时钟参数寄存器状态选择相应的硬件多线程时钟频率,硬件多线程正常工作。本发明的优点是通过微处理器硬件多线程动态变频控制装置,可以在硬件多线程的线程数量切换时避免了流水线排空现象,基本实现了无缝切换,大大节省了时间,提高了处理器的执行效率并同时降低功耗。
图1为微处理器硬件多线程变频控制装置图。图2为硬件多线程处理器流水线时钟结构图。图3为通过微处理器硬件多线程动态变频控制装置实现硬件线程数量动态切换的时钟变频方法的步骤图。图4为硬件4线程下变频阶段待选择时钟模式图。图5为硬件4线程下非变频阶段时钟的工作模式图。图6为硬件4线程时从硬件4线程变频为硬件2线程时的一种情况。
具体实施例方式为讨论方便,下面以硬件4线程为例,结合附图,对本发明的实现进行详细描述。N 等于4,即M等于2。硬件4个线程为满负荷,根据处理器负载的情况,可选择硬件4线程、硬件2线程、 硬件1线程这3种工作模式中的一种使得处理器正常运行,在处理器负载发生变化需要进行硬件线程数量的切换时,由本发明的变频控制装置完成处理器频率的转换,其中也包括必要的线程迁移,当变频阶段结束后,处理器继续正常运行,由于变频阶段只有几个时钟周期,且不需要额外的存储资源,因此可将本发明的硬件线程切换视为无缝切换。图1所示为本发明微处理器硬件多线程变频控制装置图。变频控制装置100包括时钟参数寄存器101,变频标志寄存器102,变频模式寄存器103,时钟产生状态机104,一组多路选通器105,一组倍频时钟信号106。时钟产生状态机104产生多位选通控制信号S_l、…、S_N,连接到N个多路选通器的选通控制端,产生N个变频期间的时钟信号clk_G_l、…、clk_G_N,分别连接到N个多路选通器的多路输入端,用于产生一组供硬件多线程处理器流水线上使用的时钟信号。时钟参数寄存器101的值会输出到时钟产生状态机104,时钟产生状态机104在变频后产生新的时钟参数输入到时钟参数寄存器101对时钟参数寄存器101进行修改。时钟产生状态机 104进入变频阶段后输出信号到变频标志寄存器102,用来修改变频标志寄存器的值,更新变频标志信息。整个过程是变频标志寄存器102值有效时,进入变频阶段,并将变频标志寄存器102的值改为无效。一组倍频时钟信号106包括一个基准时钟(频率为F)clk,两个频率为(F/2)、相位相隔(360度的倍频时钟clk_2T_l和clk_2T_2,22个频率为(F/^22)、相位相隔(360度/22)的倍频时钟 clk_4T_l 和 clk_4T_2 和 clk_4T_3 和 clk_4T_4,…,N 个频率为(F/N)、 相位相隔(360度/N)的倍频时钟clk_NT_l和clk_NT_2直到clk_NT_N,总计(2M+1_1)个, 分别提供给不同数量硬件多线程时段使用。一组多路选通器105为N个(M+2)选1的选通器,用于产生N个硬件线程需要的工作时钟信号(clk_l、clk_2、…、clk_N),每个多路选通器的输入端为一组时钟信号(M+1 个),和由时钟产生状态机产生的时钟信号(1个)共同构成多路输入端的输入信号,分别连接到多线程流水线中对应的硬件线程寄存器上。其中,每个多路选通器输入端的一组时钟信号为频率F、F/2、…、F/2M的时钟信号各一个,共计M+1个。其中,elk连接到每一个多路选通器的输入端;clk_2T_l和clk_2T_2分别连接到奇数序号的多路选通器的输入端和偶数序号的多路选通器的输入端;clk_4T_l、clk_4T_2、clk_4T_3和clk_4T_4分别连接到4i+l序号、4i+2序号、4i+3序号和4i+4序号的多路选通器的输入端(i>=0) ;clk_NT_U clk_NT_2、clk_NT_3、…、clk_NT_N分别连接到1号、2号、3号、…、N号多路选通器的输入端。硬件多线程处理器正常运行时,由时钟参数寄存器101的值控制从一组倍频时钟 106信号中选择合适的时钟作为多线程流水线的时钟信号。当负载的变化需要硬件线程的数量发生切换时,变频标志寄存器102有效,时钟产生状态机104控制进入变频阶段,在变频阶段,一套状态转换逻辑根据变频模式寄存器103的值,按步骤产生变频期间的时钟信号。进入变频阶段后,时钟产生状态机104复位变频标志寄存器102无效。变频阶段结束后,时钟产生状态机104更新时钟参数寄存器101为新的工作模式。图2为本发明变频控制装置所适用的硬件多线程处理器流水线时钟结构图。变频控制装置100产生一组工作时钟信号{0让1、0让2、(让3、(3让4},提供肌?3体系结构硬件多线程处理器流水线使用,在硬件4线程下该流水线的每个阶段(包括MIPS典型流水的取指阶段、译码阶段、执行阶段、访存阶段和写回阶段)被划分为4级流水,4个时钟信号分别连接到每单个阶段的4级流水寄存器上。多个硬件线程共享整条流水线,当满负荷4线程时, 每个时钟线所连接的各阶段的1级寄存器对应为一个硬件线程。图3为通过微处理器硬件多线程动态变频控制装置实现硬件线程数量动态切换的时钟变频方法步骤图。步骤301根据当前时钟参数寄存器101的状态从一组倍频时钟106 信号中选择相应的硬件多线程时钟频率;步骤302表示当变频标志寄存器102中变频标志位有效时,时钟产生状态机104进入变频时钟控制阶段;步骤303按照变频模式寄存器103 的值,配合硬件线程数量的切换,选择合适的时钟模式执行状态转换过程,产生变频阶段的时钟信号,保证硬件线程能够正确迁移和正确运行;步骤304变频完成后,更新时钟参数寄存器101的值;步骤5是变频阶段结束,系统根据新的时钟参数寄存器101的值选择相应的硬件多线程时钟频率,硬件多线程正常工作。 图4为硬件4线程下变频阶段待选择时钟模式图。在满负荷为4个线程的情况下, 共有10种不同的时钟模式,时钟模式用于时钟产生状态机104按步骤产生变频期间的时钟信号,时钟产生状态机104按照预先定义的状态转换逻辑根据变频模式寄存器103的值,按步骤选择不同的时钟模式,产生变频期间的时钟信号,以保证线程正确迁移;
图5为硬件4线程下非变频阶段时钟的工作模式图。当变频阶段结束后,硬件多线程正常运行,将根据时钟参数寄存器101的值,从一组倍频时钟106信号中选择合适的时钟作为多线程流水线的时钟信号,其组合方式有3种{工作频率1、工作频率2、工作频率3},工作频率1的4个工作时钟信号{clkUclk2.clk3.clk4}与原始基准时钟elk相同,工作频率 2的4个工作时钟信号{clkl、clk2、clk3、clk4}频率为基准时钟elk的二分之一,相位相差180度,工作频率3的4个工作时钟信号{clkl、clk2、clk3、clk4}频率为基准时钟elk 的四分之一,相位相差90度。图6为硬件4线程时从硬件4线程变频为硬件2线程时的一种情况(3线程发出关闭指令要求关闭3、4线程),IF0、IF1、IF2、IF3为流水线上取值阶段硬件4个线程分别对应的寄存器,IDO、IDl、ID2、和ID3分别和IFO、IFl、IF2、IF3的硬件线程相对应,Tl到T2 的时间段为变频阶段,期间的时钟信号可能不规则,为时钟产生状态机根据当前情况产生, clkO和clkl被延时,以保证线程2保留下来而不被覆盖。其中Sm_n代表第m号软件线程的第η条指令。本发明通过微处理器硬件多线程动态变频控制装置,可以在硬件多线程的线程数量切换时避免了流水线排空现象,基本实现了无缝切换,大大节省了时间,提高了处理器的执行效率并同时降低功耗。
权利要求
1.一个微处理器硬件多线程动态变频控制装置,其特征在于,所述变频控制装置包括一个时钟参数寄存器,一个变频标志寄存器,一个变频模式寄存器,一个时钟产生状态机,N 个多路选通器,一组倍频时钟信号,可支持最多N个硬件线程(其中N为2的整数次幂N=2m); 所述时钟参数寄存器的输出端连接到时钟产生状态机,用于非变频阶段的时钟信号选择;所述变频标志寄存器的输出端连接到时钟产生状态机,变频标志寄存器有效时用于使时钟产生状态机进入变频阶段控制,时钟产生状态机进入变频阶段后将变频标志寄存器复位为无效;所述变频模式寄存器的输出端连接到时钟产生状态机,用于选择变频阶段的时钟信号;所述时钟产生状态机输出的N个选通控制信号连接到一组(N个)多路选通器的选通控制端并由多路选通器输出时钟信号到N个硬件线程;时钟产生状态机产生N个变频阶段的时钟信号输出到一组(N个)多路选通器的多路输入端,用于产生一组供硬件多线程处理器流水线上使用的时钟信号;时钟产生状态机在变频后产生新的时钟参数输入到时钟参数寄存器对时钟参数寄存器进行修改;时钟产生状态机进入变频阶段后输出信号到变频标志寄存器更新变频标志信息;所述一组倍频时钟信号分别连接到不同多路选通器的多路输入端,所述一组倍频时钟信号是由基准时钟逐级倍频产生的一组倍频时钟信号,包括基准时钟和逐级倍频的时钟, 分别提供给不同数量硬件多线程时段使用;所述一组多路选通器用于产生N个硬件线程需要的一组工作时钟信号,该多路选通器为N个M+2选1的选通器,每个多路选通器的输入端为从一组倍频时钟信号中选出的一组时钟信号(M+1个),和由时钟产生状态机产生的时钟信号(1个)。
2.如权利要求1中所述的微处理器硬件多线程动态变频控制装置,其特征在于,所述时钟产生状态机包含一个多位选通控制寄存器用于控制一组多路选通器的选通控制,一组时钟模式用于时钟产生状态机按步骤产生变频期间的时钟信号,和一套状态转换逻辑用于根据变频模式寄存器的值,按步骤产生变频期间的时钟信号。
3.如权利要求1中所述的微处理器硬件多线程动态变频控制装置,其特征在于,所述一组倍频时钟信号为由基准时钟逐级倍频产生的一组倍频时钟信号,包括一个频率为F的基准时钟clk,两个频率为(F/2)、相位相隔(360度/2)的倍频时钟clk_2T_l和 clk_2T_2, 22 个频率为(F/22)、相位相隔(360 度 /22)的倍频时钟 clk_4T_l、clk_4T_2、 clk_4T_3和clk_4T_4,…,N (=2M)个频率为(F/^)、相位相隔(360度/^m)的倍频时钟 clk_NT_l、clk_NT_2、clk_NT_3、-,clk_NT_N ;共计(2M+1_1)个,分别提供给不同数量硬件多线程时段使用。
4.如权利要求1或3中所述的微处理器硬件多线程动态变频控制装置,其特征在于, 所述一组多路选通器为N个(M+2)选1的选通器,用于产生N个硬件线程需要的时钟信号 (clk_l、clk_2、…、clk_N),每个多路选通器的输入端为从一组倍频时钟信号中选出的一组时钟信号(M+1个)和由时钟产生状态机产生的时钟信号(1个)组成;所述每个多路选通器输入端的一组时钟信号(M+1个)为频率F、F/2、…、F/2m的时钟信号各一个;其中,elk连接到每一个多路选通器的输入端;clk_2T_l和clk_2T_2分别连接到奇数序号的多路选通器的输入端和偶数序号的多路选通器的输入端;clk_4T_l、clk_4T_2、clk_4T_3和clk_4T_4分别连接到4i+l序号、4i+2序号、4i+3序号和4i+4序号的多路选通器的输入端(i>=0); clk_NT_l、clk_NT_2、clk_NT_3、…、clk_NT_N 分别连接到 1 号、2 号、3 号、…、N 号多路选通器的输入端。
5.如权利要求2中所述的微处理器硬件多线程动态变频控制装置,其特征在于,所述的时钟产生状态机的一组时钟模式是按照硬件多线程的数量和线程切换情况预先定义的, 根据时钟产生状态机中状态转换逻辑按步骤选择产生变频期间的时钟信号。
6.如权利要求2中所述的微处理器硬件多线程动态变频控制装置,其特征在于,所述的时钟产生状态机的一套状态转换逻辑用于根据变频模式寄存器的值,按步骤产生变频期间的时钟信号,该变频期间的时钟信号不同于一组倍频时钟信号;变频期间的时钟信号用于延迟流水线上的某些寄存器,使得频率切换后流水线上需要保留的线程的寄存器值和上下文不会被丢失或覆盖。
7.一种如权利要求1至6中任一项所述的微处理器硬件多线程动态变频控制装置的应用方法,其特征在于,所述应用方法为通过微处理器硬件多线程动态变频控制装置实现硬件线程数量动态切换的时钟变频方法,该方法包括以下步骤1)根据当前时钟参数寄存器的状态从一组倍频时钟信号中选择相应的硬件多线程时钟频率,所述一组倍频时钟信号包括基准时钟和逐级倍频的时钟;2)变频标志寄存器中变频标志位有效,进入变频时钟控制阶段;3)按照变频模式寄存器的值,配合硬件线程数量的切换,选择不同的时钟模式执行状态转换过程,产生变频时期的时钟信号,保证硬件线程能够正确运行;4)变频完成后,更新时钟参数寄存器;5)退出变频阶段,根据新的时钟参数寄存器状态选择相应的硬件多线程时钟频率,硬件多线程正常工作。
全文摘要
本发明涉及微处理器硬件多线程动态变频控制装置及其应用方法。所述变频控制装置包括一时钟参数寄存器,一变频标志寄存器,一变频模式寄存器,一时钟产生状态机,N个多路选通器和一组倍频时钟信号,可支持最多N个硬件线程的变频控制。通过所述变频控制装置实现硬件线程数量动态切换的时钟变频方法包括根据时钟参数寄存器值确定硬件多线程的工作频率;进入变频时钟控制阶段;产生变频时期的时钟信号;变频完成后,更新时钟参数寄存器;退出变频阶段。通过本发明所述控制装置,可在硬件多线程的线程数量切换时避免流水线排空现象,基本实现无缝切换,大大节省时间,提高了处理器的执行效率并同时降低功耗。
文档编号G06F1/32GK102253708SQ201110217898
公开日2011年11月23日 申请日期2011年8月1日 优先权日2011年8月1日
发明者王沁, 王磊, 罗新强, 齐悦 申请人:北京科技大学