专利名称:使时钟脉冲停止用的控制方法及控制电路的制作方法
技术领域:
本发明涉及时钟信号控制方法,尤其涉及使时钟信号停止用的方法和电路。本发明可用于对中央处理装置提供时钟脉冲的控制电路及控制方法。
背景技术:
通常称为CPU或MPU的中央处理装置的性能有令人吃惊的提高,最快的器件的工作频率达到GHz的数量级。今后该频率还将进一步提高,但由于中央处理装置通常是MOS器件,其耗电会随工作频率变大。因此,追求动作性能会招致耗电增大,缩短用中央处理装置的设备的电池工作时间。为此,近来往往努力对中央处理装置进行时钟脉冲控制,例如已知采用根据处理内容大幅度减低时钟脉冲频率的低耗电设计。
日本专利特开平8-314716号记载的时钟脉冲控制方法公开了如下所述的技术,即时钟脉冲停止控制器响应对规定的地址的写入要求,与总线控制器协力继续执行总线要求信号的主张,以此停止对中央处理装置核心供给中央处理装置时钟脉冲信号。又,从时钟脉冲停止模式的返回,利用对应于规定的非同步输入信号,发布肯定应答信号,使中央处理装置时钟脉冲信号的禁止解除的方法进行。
但是,在这一技术中,要对本来与中央处理装置的时钟脉冲控制无关的总线控制器进行变动。从设计工作的效率及缩短开发周期的角度看,最好保持中央处理装置的周边电路不变,只对与时钟脉冲控制直接相关的电路进行改造或追加。自然不希望中央处理装置本身为时钟脉冲控制而有特殊变动。
发明内容
本发明是鉴于以上课题而作出的,其目的是,在不变动中央处理装置或其周边电路的情况下对中央处理装置的时钟脉冲进行控制。另一目的是,采用适合于以规定的规格、例如不含可轻易停止时钟脉冲的HALT指令等的指令集为前提设计的中央处理装置的方法控制时钟脉冲。又另一目的是,当对时钟脉冲进行停止控制时,避免不小心使时钟脉冲的停止的情况发生。又另一目的是,有效地重开停止的时钟脉冲。
本发明的实施方式是与中央处理装置连接,对相关装置供给时钟脉冲的时钟脉冲控制电路,具备在中央处理装置执行向规定地址进行写入的指令后,检测中央处理装置的周期成为内部周期的情况的检测部,以及在检测部检测出内部周期后停止对中央处理装置输出时钟脉冲的时钟脉冲输出部。
所谓“内部周期”,通常指的是在中央处理装置内部进行处理的周期,但本说明书不限于此,它指的是中央处理装置的空闲状态等,也就是不对外部发生总线访问的期间。“指令”以例如时钟脉冲停止为目的,指示向规定地址写入。由于利用该指令使时钟脉冲停止的处理启动,在没有HALT指令等使中央处理装置的动作停止用的特别指令的情况下时钟脉冲也容易停止。
“向规定地址写入”有需要把规定的数据写入该地址的情况和以任意数据写入即可的情况。后者以写入该地址的动作本身为契机启动时钟脉冲停止的处理。以上各种情况下,本时钟脉冲控制电路都可以具备作为其写入对象的寄存器。
如果设置该时钟脉冲控制电路,则不用改制中央处理装置及其周边电路就能够实现时钟脉冲的停止控制。
本发明的另一方式是控制从时钟脉冲控制电路向中央处理装置供给时钟脉冲的方法,该方法包括在中央处理装置执行向规定地址进行写入的指令后,检测中央处理装置的周期为内部周期的情况的工序,以及在检测出内部周期后,停止对所述中央处理装置供给时钟脉冲的工序;将所述指令记录在起动对中央处理装置的软件中断的中断处理程序内。
采用这一方法,用于使中央处理装置的时钟脉冲停止的起动是以软件中断实现的,其过程简单。在中断处理程序中,也可以利用暂时对中断加以屏蔽的方法,防止该中断处理中的无意造成的时钟脉冲的停止。
此外,以上构成要素的任意的组合、以及在方法、装置、系统、记录媒体、计算机程序等之间变换本发明的表现,作为本发明的方式都是有效的。
图1表示实施形态的时钟脉冲控制电路的插脚属性。
图2表示实施形态的时钟脉冲控制电路具有的时钟脉冲停止指示寄存器的规格。
图3是实施形态中的时钟脉冲控制电路与中央处理装置的信号连接图。
图4是内部周期检测电路及时钟脉冲停止用的电路图。
图5是时钟脉冲停止及再开用的电路图。
图6是时钟脉冲输出部分的电路图。
图7是表示从外部看中央处理装置及时钟脉冲控制电路的传输类型的信号的生成电路图。
图8是表示实施形态的时钟脉冲控制电路的动作的时序图。
具体实施形态图1表示实施形态的时钟脉冲控制电路(以下,称为“本电路”)的插脚属性。CLK是向本电路的时钟脉冲输入。CLKEN是对于本电路的时钟脉冲输出的时钟脉冲启动信号。nRESET是低活性的复位信号(下面在低活性的情况下就在信号名前面附加n)。CLKOUT是从本电路向中央处理装置等其他装置输出的时钟脉冲输出信号。nIRQ及nFIQ分别是常规和高速的中断请求信号。ADDR[310]是32位的地址输入。WRITE是表示以高电位写入的指令信号。SIZE[10]是表示数据存取字节宽度的信号。TRANS[10]是以2位表示中央处理装置的传输类型的信号。WDATA_0是写数据的位0。TRANSOUT[10]是将下述处理加于TRANS[10]的输出信号。nFIQ为时间上紧急的中断处理而设置,在中央处理装置20中以高于nIRQ的优先度处理。此外,CLKEN及使它延迟1时钟脉冲份额的下述CLKEN_DLY,为简单起见,在下面都固定于高电位。此外,也有把[310][10]加以省略的情况。
图2表示时钟脉冲控制电路为内藏的系统寄存器的“时钟脉冲停止指示寄存器”的规格。该寄存器被映射于I/O区域,其地址为14003000h。如在该寄存器写“1”,则它作为时钟脉冲停止指示起作用。在实施形态中,利用软件中断作为时钟脉冲停止的触发器。如果执行软件中断指令,则时钟脉冲控制电路10将进入中断处理程序。在该程序最初位置设置“向时钟脉冲停止指示寄存器写入“1”的指令”。
还有,由该程序进行的处理进入正常,时钟脉冲正确停止前有时发生别的中断。在这样的状况下,为正确处理中断,应避免因以前的软件中断无意中使时钟脉冲停止,为此,最好是在中断处理程序的至少最初部分把中断加以屏蔽,即防止中断发生。
图3是时钟脉冲控制电路10及中央处理装置20的信号连接图。在时钟脉冲控制电路10与中央处理装置20之间,图1中所述的信号相互传送,而且必要的信号被连接到外部电路。例如CLKEN、nRESET、nIRQ、nFIQ被从外部电路输入到时钟脉冲控制电路10及中央处理装置20,CLK同样被从外部电路只输入到时钟脉冲控制电路10,ADDR[310]、WRITE、SIZE[10]、WDATA
也由中央处理装置20提供给外部电路。
图4~7都表示时钟脉冲控制电路10的内部电路。
图4及图5相当于从时钟脉冲停止的指示到该指示实际上被确认的“确认电路”。如图4所示,地址“14003000h”的译码信号、CLKEN为高电位时以D型触发器(以下用“DFF”表示)锁住WRITE的WRITE_PP,CLKEN以及下述TRANS_PP1被输入到与门电路32,其输出成为选择器33的选择信号。该选择信号为“0”时,选择与门电路31的输出,为“1”时选择WDATA_0。被选中的信号被送到DFF34的数据输入。该DFF34具有“时钟脉冲停止指示寄存器”的功能。以下(虽然未画出)只要不特意断开,DFF的复位端子上连接着nRESET信号,时钟脉冲输入端子上连接着CLK。该DFF34的输出成为信号CKSTOP。CKSTOP被送到选择器33的前级的与门电路31的一个输入上,对该与门电路31的另一输入提供CKSTOPOK的反转信号。
TRANS_PP是CLKEN为高电位时由DFF将TRANS锁住的信号,使中央处理装置20的总线周期与其时序一致地进行表示。TRANS_PP0、1被输入到或非门30,其输出I-CYC被输入到3输入的与门电路36。I-CYC在中央处理装置20处于内部周期时是有效的。在这里,TRANS_PP0、1同时为0的时间段被定义为内部周期。
这个与门电路36的其他输入是CKSTOP及用DFF使CLKEN延迟的CLKEN_DLY,输出为CKSTOPOK。这个信号仅在时钟脉冲有效停止的最初的1时钟脉冲期间是有效的,表示时钟脉冲停止的开始。CKSTOP被输入到反相器38,其输出被输入到所述与门电路31。因此,作为时钟脉冲停止指示寄存器的DFF34在被中央处理装置20写入时,设定为WDATA_0。否则CKSTOPOK为高电位时,DFF 34设定为“0”,不为高电位则保持前值。此外,3输入与门电路36的输入中,相当于I-CYC与CLKEN_DLY的逻辑积的部分意味着“在片刻前的周期中CLKEN为高电位,且TRANS表示的周期是内部周期I”。这电路用于在后面的图8中、周期C4了解周期3中已满足上述条件。
图5接收CKSTOPOK,然后在时钟脉冲停止时生成有效的CKSTOPPED。在3输入的与门电路40输入nIRQ、nFIQ及CKSTOPPED,其输出成为或门42的一个输入。在该或门42的另一输入加上CKSTOPOK。该或门42的输出在DFF44中被保持1时钟脉冲周期,形成CKSTOPPED。还有,nIRQ及nFIQ的一方如被维持,则3输入与门电路40产生低电位输出,此外,CKSTOPOK也只有最大1时钟脉冲期间为高电位,所以,CKSTOPPED将迅速回到低电位。结果,时钟脉冲的停止被解除,回到通常动作。
图6表示中央处理装置20的内部周期被检测出后,停止对中央处理装置20供给时钟脉冲的时钟脉冲输出部的构成。CKSTOPOK经延迟门电路50成为CKSTOPOK_DDLY。CKSTOPPED也同样经延迟门电路54成为CKSTOPPED_DDLY。这些延迟量将在下面进行叙述。2个延迟信号及CKSTOPPED被输入到3输入的或门52,其输出CKMASK用2输入的或门56与CLK取或,所得输出经输出缓冲器58作为CLKOUT被输出到中央处理装置20。CKMASK是屏蔽时钟脉冲,也就是使其停止用的信号。
图7表示生成在外部使用的TRANSOUT的电路。TRANS_PP0、1分别被提供给2输入的与门电路60、64的一个输入端,在另一输入端,同样地加上由反相器68使CKMASK反转的信号。两个与门电路60、64的输出分别经输出缓冲器62、66作为TRANSOUT0、1向外部输出。中央处理装置20以TRANS表示该总线周期,但在该实施形态中,从外部看中央处理装置20及时钟脉冲控制电路10,这两个部件实现的总线周期利用TRANSOUT表示。
采用以上构成的时钟脉冲停止及重新打开如下所述。
时钟脉冲停止利用中央处理装置20的程序进行。如发生软件中断,则在状态寄存器、软件中断处理器内使用的寄存器、以及表示返回地址序号的链接寄存器的内容被积累在堆栈中。在软件中断处理时,nIRQ被自动禁止。另一方面,为了避免中断处理期间在时钟脉冲完全停止前nFIQ引起非所需的中断,nFIQ预先受禁止。接着,在时钟脉冲停止指示寄存器写入“1”。时钟脉冲控制电路10根据该指示将时钟脉冲停止。CLKOUT被固定于高电位。在时钟脉冲停止时,TRANSOUT0、1被固定,从外部看中央处理装置20及时钟脉冲控制电路10的总线周期继续为内部周期。这样,能够避免内部周期意外发生从中央处理装置20向外部的存取等麻烦。
时钟脉冲重新打开处理和上面所述相似,以nFIQ或nIRQ的发生开始。首先,从堆栈读取状态寄存器以外的寄存器的内容,处理从软件中断处理器返回。此时,利用中央处理装置20的构成,nFIQ及nIRQ的启动/禁止自动地回到移至软件中断处理前夕的状态,如果中断不禁止,则进行中断处理。即使在一开始就禁止中断的情况下,也将重新打开时钟脉冲。
图8是利用以上电路的时钟脉冲控制电路10的时钟脉冲停止及再启动的时序图。这里为了方便把时钟脉冲周期记为C1~C13。图中,TRANS中出现的“N”是中央处理装置20对某一产生总线访问的地址进行存取的周期。另外,“I”表示中央处理装置20的内部周期,例如在中央处理装置20内部处理乘法运算指令的情况与此相当。当CLKEN为高电位时,用DFF将该信号锁定,成为TRANS_PP。由TRANS_PP代表的“N”和“I”的长度与实际的总线周期一致。
图8中,在C2期间,CKSTOP变为高电位。此变化表示发生向时钟脉冲停止指示寄存器写入“1”的情况。因此,C1、C2期间是中断处理程序正在进行处理的时段。
接着,利用图4的电路使CKSTOPOK在C4期间处于高电位。这与TRANS_PP在同一期间成为“I”的情况对应。由于CKSTOPOK为高电位,CKSTOP在C5期间的开始时刻返回到低电位。
利用图5的电路,使CKSTOPOK成为高电位后,在C5期间CKSTOPPED变成高电位。CKSTOPPED的延迟信号表示为CKSTOPED_DDLY。nFIQ或nIRQ在C10期间的最初时刻如被维持,则利用图5的电路使CKSTOPPED在C11期间的最初时刻变成低电位。通过以上的动作,使CKMASK在C4~C10期间为高电位,CLKOUT被固定在高电位。
此实施例中,设计所述延迟量,使得在时钟脉冲屏蔽的时间不发生危险。即,从作为到达CKSTOPOK的定时路径的开始点的所有的DFF的时钟脉冲CLK开始,通过该DFF、CKSTOPOK_DDLY,到CLKOUT的定时路径的最大延迟为T1,则以下关系成立T1<(CLK为高电位的期间)—(时滞)又如从DFF44的CLK通过CKSTOPPED,不通过CKSTOPOK_DDLY用的延迟门电路54,到达CKMASK的定时路径的最大延迟为T2,从到达CKSTOPOK的所有定时路径的起点的DFF的时钟脉冲CLK,通过该DFF、CKSTOPOK到达CKMASK的持续时间的最小延迟为T3,则以下关系成立,即
T2<T3-(时滞)又,如从CLK仅通过图6的或门56及输出缓冲器58,到达CLKOUT的定时路径的最大延迟记为T4,从DFF44的CLK通过CKSTOPOK_DDLY用的延迟门电路54到达CLKOUT的定时路径的最小延迟记为T5,则以下关系成立T4<T5-(时滞)通过以上时序设计,可避免发生危险。此外,所谓时滞,是指时钟脉冲控制电路10内产生的CLK的时滞。
以上,根据实施形态对本发明进行了说明。该实施形态是例示,这些构成要素及各处理过程的组合可以有种种变形,这些变形例也是本发明范围内的技术,这一点本行业的技术人员是能够理解的。例如,在实施形态中,仅将向时钟脉冲停止指示寄存器写入“1”看作时钟脉冲停止的主要因素。但是,其他软件或硬件方面的事件也可促使时钟脉冲停止。
权利要求
1.一种时钟脉冲控制电路,与中央处理装置连接,对该装置供给时钟脉冲,其特征在于,具备在中央处理装置执行向规定地址进行写入的指令后,检测中央处理装置的周期成为内部周期的情况的检测部,以及在检测部检测了内部周期后,停止对所述中央处理装置提供时钟脉冲的时钟脉冲输出部。
2.如权利要求1所述的时钟脉冲控制电路,其特征在于,还包括实际向所述规定地址进行写入的寄存器。
3.如权利要求1所述的的时钟脉冲控制电路,其特征在于,所述内部周期对应于中央处理装置不对外部发总线访问的期间。
4.如权利要求1所述的的时钟脉冲控制电路,其特征在于,对表示中央处理装置的传输类型的信号进行监视以判断是否正在发生所述内部周期。
5.如权利要求1所述的的时钟脉冲控制电路,其特征在于,所述指令被记录在对中央处理装置的软件中断启动的中断处理程序内。
6.如权利要求1所述的的时钟脉冲控制电路,其特征在于,具备对表示中央处理装置的传输类型的信号进行加工并输出,使得在时钟脉冲停止期间能从外部观察到中央处理装置的内部周期的延长的电路。
7.如权利要求1所述的的时钟脉冲控制电路,其特征在于,所述检测部是检测停止时钟脉冲的要求被接收的情况的确认电路。
8.如权利要求1所述的的时钟脉冲控制电路,其特征在于,具有在中断信号被维持时将时钟脉冲停止解除的电路。
9.如权利要求1所述的的时钟脉冲控制电路,其特征在于,在时钟脉冲停止时能安全地调整电路定时。
10.一种时钟脉冲控制方法,是控制从时钟脉冲控制电路向中央处理装置供给时钟脉冲的控制方法,其特征在于,包括在中央处理装置执行向规定地址进行写入的指令后,检测所述中央处理装置的周期为内部周期的情况,以及在检测出内部周期后,停止对所述中央处理装置供给时钟脉冲;其中,将所述指令记录在对所述中央处理装置的软件中断启动的中断处理程序内。
11.如权利要求10所述的的时钟脉冲控制方法,其特征在于,在所述中断处理程序中,暂时将中断加以屏蔽。
12.如权利要求10所述的的时钟脉冲控制方法,其特征在于,对表示中央处理装置的传输类型的信号进行监视以判断是否正在发生所述内部周期。
13.如权利要求10所述的的时钟脉冲控制方法,其特征在于,还包括检测中断信号被维持的情况,以及当中断信号被维持时使停止的时钟脉冲重新打开。
14.如权利要求10所述的的时钟脉冲控制方法,其特征在于,对表示中央处理装置的传输类型的信号进行加工并输出,使得在时钟脉冲停止期间,能从外部观察到中央处理装置的内部周期延长。
全文摘要
本发明涉及使时钟脉冲停止用的控制方法及控制电路。在控制中央处理装置等的时钟脉冲时,避免本来与该控制无关的已有的电路的变更。时钟脉冲控制电路接收时钟脉冲输入CLK,对其进行处理,为中央处理装置生成时钟脉冲输出CLKOUT。在时钟脉冲控制电路中,通过向内部寄存器的写入对CLK进行屏蔽,使CLKOUT停止。谨慎设计屏蔽操作,使其在检测到中央处理装置内部周期时开始。时钟脉冲的重新开始利用中断等方法进行。
文档编号G06F9/30GK1439962SQ0310606
公开日2003年9月3日 申请日期2003年2月20日 优先权日2002年2月22日
发明者藤井善也 申请人:三洋电机株式会社