具有低电耗指令高速缓冲存储器的数据处理器的制作方法

文档序号:6608385阅读:156来源:国知局
专利名称:具有低电耗指令高速缓冲存储器的数据处理器的制作方法
技术领域
本发明一般涉及一种数据处理器,特别涉及一种这样的数据处理器,比如包括指令高速缓冲存储器的微处理器和图象处理器。
背景技术
传统的各种处理器从外存储器(RAM)接收指令,并且由一个执行单元执行该指令。


图1给出了这种微处理器的方块图。微处理器10具有一个执行单元11。执行单元11按照下述过程执行存储在一个外部RAM12中的指令,外部RAM作为一个外部存储器。首先执行单元11向外部RAM输出一指令地址(步骤1),并接收一个相应的指令(步骤2)。然后执行单元11分析并且执行这个指令(步骤3)。在那个时候,执行单元11向外部RAM12输出数据地址(步骤4)以便进行读写数据,并且执行单元11读和写数据(步骤5)。在这里,步骤4和步骤5的操作根据指令而可能被省略。
如图1所示的结构,每次执行指令时都必须访问外部RAM12,导致执行指令费时的问题。
为了解决这个问题,实际在微处理器10A中提供一个指令高速缓冲存储器13,如图2所示,当指令高速缓冲存储器13不包含请求的指令时,根据步骤1和2的过程从外部RAM12中读取指令并且提供给执行单元11,指令是存储在指令高速缓冲存储器13中的。当所述执行单元11在此后请求相同的指令,相应的指令从指令高速缓冲存储器13中读出,指令高速缓冲存储器13接收指令地址,并且指令被提供给执行单元11。因为访问指令高速缓冲存储器13的时间通常比访问外部RAM12的时间短,所以指令被读取和执行之前的那段时间可以缩短。
图3是如图2所示的指令高速缓冲存储器13的结构方块图。指令高速缓冲存储器13具有一个指令地址寄存器14,两个标记RAM单元15和16,两个高速缓冲RAM单元17和18,两个比较器19和20,一个命中/未命中检测逻辑电路21,以及一个选择器22。标记RAM 15和高速缓冲RAM 17是互锁的(系统# 0),标记RAM 16和高速缓冲RAM 18是互锁的(系统#1)。
如图2所示指令缓冲存储器13从执行单元11接收指令地址,并通过选择器22输出相应的指令。指令地址被发送到外部RAM 12,并且从外部RAM接收相应的程序块。这个程序块是由连续的地址所指定的一组多个指令。
图4表示顺序执行的指令。在图4中,除转移指令(分支)外,指令是由连续的指令地址表示。指令按图4右侧箭头所示的顺序执行。例如,由连续地址表示的四个指令被视为一个程序块。
如图3中的指令地址寄存器14被分成程序块偏移量区域,一个行地址和一个标记地址。两个高速缓冲RAM17和18按行地址和程序块地址被访问,并且输出一个指定指令。行地址用于限定高速缓冲RAM17和18中的区域。其中存储了来自外部RAM12中的指令。例如,存储在外部RAM12中地址xxxx为和yyyy的一个指令被存储在高速缓冲RAM17或18的zzz中。若指令允许被存储在高速缓冲RAM17或18的任意的存储区,那么访问高速缓冲RAM17和180将要花费时间。
在这里,从外部RAM12读出的指令可以被存储在两个高速缓冲17和18中。在这种情况下,一般认为该关联度是2。高速缓冲RAM17和18可能按不连续的存储器芯片或打乱一个存储器芯片的存储区而配置。
所述程序块偏移量表示从行地址开始的程序块内的指令。例如,添加在图4的第一行的“加”指令是由行地址指定的,并且“加”,“减”,“或”,以及“设置”指令通过从“00”到“01”,“10”和“11”改变偏移量而指定的。
标记RAM15以及16根据行地址输出一个标记地址。比较器19和20将从标记RAM15和16读出的标记地址分别同从指令地址寄存器14读出的标记地址相比较,以确定它们是否匹配。当由行地址指定的指令存储在高速缓冲RAM17中时,比较器19的比较结果是匹配的(高速缓存命中)。相反,当由行地址指定的指令存储在高速缓冲RAM 18中时,比较器20的比较结果是匹配的(高速缓存命中)。
命中/未命中检测逻辑电路21根据比较器19和20的输出控制选择器22。若比较器19输出一个匹配信号,选择器22将选择高速缓冲RAM 17,若比较器20输出一个匹配信号,选择器22将要选择高速缓冲RAM 18。所选择的指令提供给执行单元11。
图5表示如上所述的处理过程,在这个过程中从标记RAM 15读出的标记地址以及从指令地址寄存器14读出标记地址是一致的。在图中,粗线表示用在读出操作中的地址,指令以及信号等的信号流。
图6给出了两个比较器19和20的比较结果都是负值(高速缓存未命中)的一个例子。在图中,粗线表示用在写入操作中的地址、指令以及信号等的信号流。在这种情况下,指令从外部RAM 12读出,并且被写入高速缓冲RAM 17或高速缓冲RAM 18中。图6给出了指令被写入高速缓冲RAM 17中的一个例子。此外,未命中的指令地址的标记地址被写入对应于高速缓冲RAM 17的标记RAM 15中。而且,存储在高速缓冲RAM 17中的指令被读出,并且通过选择器22提供给执行单元11。
然而,上述传统的指令高速缓冲存储器存在一个问题。
图7表示指令从图3所示的指令高速缓冲存储器13读出指令序列的方块图。为了清楚地说明地址以及类似信号的流动,省略了图3中一些部件的附图标记。在图7中,一个指令由4个字节组成,1个程序块由4条指令组成(也就是说,1个程序块有16个字节)。此外,行数为128。读出顺序以步骤(a)开始,以步骤(e)结束。
假设“0x00000000”的指令地址由执行单元11提供,并且储存在指令地址寄存器14中。在这种情况下,行地址是“0000000”并且程序块偏移量是“00”。在步骤(a),假定指令地址的标记地址与从标记RAM 15读出的标记地址相同。因此,命中/未命中检测逻辑电路21通过控制选择器22而选择高速缓冲RAM 17。例如,图4中的加法指令“加”是从高速缓冲存储器RAM 17中读出。
接下来,“0x00000004”的指令地址在步骤(b)被存储在指令地址寄存器14中。在这种情况下,程序块偏移量对“00”增加1,并且它被设置为“01”。因为行地址不变化,高速缓冲RAM 17保持选通,并且与相偏移量“01”相应的指令被选择(图4中减法指令“减”)。
另外,程序块偏移量根据指令地址“0x0000008”和“ox0000000c”分别被设置为“10”和“11”,并且一个“或”指令“OR”和一个设置指令“SET”分别从高速缓冲RAM17中读出(步骤(c)和(d))。然而行地址与此同时没有变化。
接下来,当指令地址在步骤(e)变为“0x00000010”,行地址将通过增加1而变成“0000001”。在步骤(e),假定指令地址的标记地址与从标记RAM 16出的标记地址相同。因此,命中/未命中检测逻辑电路21通过控制选择器22选择高速缓冲RAM18。
从步骤(a)到(e)由表示连续指令的地址指定,高速缓冲RAM 18执行读出操作,虽然它没有被选择。一个或多个高速缓冲RAM用粗线作为标记在图中圈出,它表示高速缓冲RAM处于启用状态(也被称为活动状态)。因此,存在消耗了无效的能源的问题。
本发明的特征和优点将在随后的被说明,并且其中一部分将通过所述说明和相关的附图变得直观,或根据说明书提供的教导通过实践对本发明有更清楚的理解。本发明的目的以及其它特征和优点将通过一个装置实现并且获得,所述特定的装置通过在说明书中完整、清楚、简明的说明以及确切的术语,使本领域的普通技术人员能够实现本发明。
为了获得根据本发明目的中所述的以及其它有益效果,如本说明书所述的实施例以及其描述,本发明提供一种具有指令高速缓冲存储器的数据处理设备,所述指令高速缓冲存储器可以在低电耗下操作,从而解决上述传统技术的所述问题,避免所述无效的电力消耗。
以上所描述的目的可以由一个具有多个高速缓冲存储器单元的数据处理器实现,其中只有一个存储所需指令的高速缓冲存储器是起作用的,而其它高速缓冲存储器单元则被禁用(也叫做处于禁用状态)。因为不存储所需指令的高速缓冲存储器被禁用,所以电力没有消耗。也就是说,只有存储了所需指令的高速缓冲存储器消耗电力。因此,避免了其它存储单元的无用的电力消耗并实现了具有低电耗的指令高速缓冲存储器。
优选实施例的说明在下面,将参考相关附图对本发明的实施例进行描述。
图8是用于描述本发明原理的图。为了阐明与如图7所示的读出序列的不同,用于图7结构的本发明的读出序列在图8中进行了说明。因此,为方便起见,如图8所示的指令高速缓冲存储器的结构同传统的如图3或图7所示的结构是相同的。
根据本发明,不存储步骤(b)(c)和(d)所需要指令的高速缓冲RAM是处于禁用状态(禁用状态的高速缓冲RAM 18没有用粗环线标记)。换句话说,只有存储步骤(b)(c)和(d)所需要指令的高速缓冲RAM 17是处于启用状态(处于启用状态的RAM17是用粗环线标记)。由此,可以减少指令高速缓冲存储器的电力消耗。
停止给没有存储步骤所需要指令的存储器单元提供地址恰恰是必须的,以便禁用高速缓冲存RAM。
如上所述,用于禁用没有存储步骤所需要指令的存储单元的机制是基于同一程序块中的指令具有相同的行地址,以及同一程序块中的指令存储在相同的高速缓冲RAM单元中。在步骤(a),读取程序块的第一个指令。在这种情况下,不但高速缓冲存储器单元被激活,而且高速缓冲存储器RAM17被命中。虽然禁用高速缓冲RAM 18在理论上来说是可能时,但需要大量的时间,增加了存取时间。因此,为了缩短存取时间,在步骤(a)两个高速缓冲RAM都是启用的。
在步骤(b),行地址保持相同。也就是说,在步骤(b),与步骤(a)相同的高速缓冲RAM17肯定被命中。因此,没有存储步骤(a)需要指令的高速缓冲RAM18是禁用的,因为行地址在步骤(c)也是保持相同,所以高速缓冲RAM18保持禁用状态。因为行地址在步骤(d)仍然保持相同,所以高速缓冲RAM18保持禁用状态。
在步骤(e),行地址改变,两个高速缓冲RAM17和18同步骤(a)一样处于启用状态。
因比,当读取同一个程序块剩余指令时,通过禁用没有存储指令的高速缓冲RAM,而降低电力消耗,尽管当读取程序块的第一条指令时所有的高速缓冲RAM均为启用状态。
图9是本发明实施例的指令存储器的结构方框图。在图中,与如图3所示的相同部件使用相同的附图标记。图9所示的结构包括在如图2所示的指令高速缓冲存储器13中,系统由一个数据处理器构成,数据处理器的例子有,包括这个指令高速缓冲存储器以及外部RAM 12的微处理器等等。
如图9所示的指令高速缓冲存储器包括代替图3所示的命中/未命中检测逻辑电路21的命中/未命中检测逻辑电路21A。命中/未命中检测逻辑电路21A除了控制选择器22之外,还通过检查行地址是否有变化来控制没有存储需要指令的高速缓冲RAM的禁用状态,若行地址没有变化则保持禁用状态,如图8所示。而且,依据该检测结果,高速缓冲RAM读出的有效信号23和24被分别输出到高速缓冲RAM17和18,因此用于设置高速缓冲RAM为启用状态或禁用状态。
高速缓冲RAM读出的有效信号23和24提供给逻辑门17a和18a。当高速缓冲RAM读出的有效23和24是启用(ON)时,地址则被提供给高速缓冲RAM17和18,若信号是禁用(OFF),地址则不提供给高速缓冲RAM17和18。在这里,当高速缓冲RAM17和18是由单独的芯片组成的,高速缓冲RAM读出的有效信号23和24提供给片选端或每个芯片的类似端。
图10是命中/未命中检测逻辑电路21A的示意结构电路图。所述的命中/未命中检测逻辑电路21A具有“与”门25和26,一个触发器27和“或”门28,30及31,以及一个或非门29。输入到命中/未命中检测逻辑电路21A的信号是比较器19和20的比较结果,输入有效信号32和33表示有效的指令是否存储在从标记RAM15和16读出的地址中,信号34表示相同行地址中的程序块的第一个指令,分支检测信号35表示一个转移指令的一个新的地址。而且,命中/未命中检测逻辑电路21A的输出是一个高速缓冲存储器未命中信号36,高速缓冲RAM读出的有效信号23和24,以及一个选择器控制信号37。
参考图8和图9对图10中的检测逻辑进行描述。
首先,当指令地址表示程序块的前部或它通过一个转移指令而变成一个新的地址时,信号34或信号35设置为ON(高),并通过“或”门28提供给“或”门30和31。然后,“或”门30和31设置高速缓冲RAM的读出有效信号23和24为ON(高)。由此,高速缓冲RAM17和18为启用。当输入有效信号32和33是OFF(低)时,“与”门25和26输出为低。并且低电平的高速缓冲存储器未命中信号36通过“或”门输出。若将其输出,如图2所示的外部RAM12将被访问,且指令的写入操作将被执行(图12的操作将在以下进行描述)。
相反,当比较器19或20的输出表示一个匹配的标记地址,并且相应的输入有效信号32或33为高(ON),表示有效,高速缓冲存储器未命中信号为高,表示一个高速缓存存储器命中。例如,如果比较器19的输出显示与标记地址匹配,同时与门25的输出将变成高,且控制信号37被提供给选择器22,高速缓冲RAM17被选中,则触发器27设置为1。由此,通过触发器27存储系统#0(高速缓冲RAM 17)检测到高速缓冲存储器命中。相反,如果比较器20的输出显示与标记地址匹配,则与门26的输出将变成高。在这时候,控制信号37仍为低。选择器22选择高速缓冲RAM 18。另外,触发器27被置0。也就是说,触发器27作为一个存储装置以存储表示高速缓冲存储器命中的数据。上述操作在图8步骤(a)执行。
接下来,当指令地址不在程序块的前部时或当不存在转移指令时,“或”门输出为低。然后,利用存储在触发器27中的值,高速缓冲RAM中的一个是启用的。若所述的触发器27设置为1,“或”门30的输出是高,“或”门31的输出是低,高速缓冲RAM读出的有效信号23是OFF,且高速缓冲RAM读出的有效信号24是ON。另一方面,若所述的触发器27设置为0,“或”门30的输出是低,“或”门31的输出是高,高速缓冲RAM读出的有效信号23是OFF,且高速缓冲RAM读出的有效信号24是ON。选择器22根据控制信号37选择其中一个高速缓冲RAM。在图8中的步骤(b)至(d),因为操作是用于相同的行地址,与门25的输出,也就是说控制信号37是高。因此,选择器22选择高速缓冲RAM17。此外,在步骤(b)至(d),因为触发器27设置为1,高速缓冲RAM读出的信号23保持被接通。
因此,命中/未命中检测逻辑电路21A提出了一个具有多个高速缓冲存储器单元的指令高速缓冲存储器的控制方式,并实现了启用存储所需指令的高速缓冲存储器,且禁用其它高速缓冲存储器的控制方法。
图11表示根据以上描述的检测逻辑电路怎样从一个指令高速缓冲存储器读出指令的图,该图与上面给出的图5相对应。此外,图12表示根据以上描述的检测逻辑电路当高速缓冲存储器命中信号36被接通时的操作,该图与上面给出的图6相对应。一个指令从如图2所示的外部RAM 12中读出,并被写入高速缓冲RAM(在图12所述的例子中的高速缓冲RAM 17)中的一个,操作如图6所述。
如上所述,描述了本发明的实施例。本发明不仅限于以上描述的实施例。例如,高速缓冲RAM的数目可以是三个或更多。换句话说,关联度可以是三或更多。
根据在上面解释的本发明,因为没有存储处理器的执行单元所需要的指令的高速缓冲存储器被禁用,无用的电力消耗可以被避免,并且可以提供一个具有低电耗指令高速缓冲存储器的数据处理器。
另外,本发明不限于这些实施例,不脱离本发明所述的范围内的各种各样的变化和修改都是可以的。
本申请是基于向日本专利局提出的在先的日本专利申请,申请号为NO.2000-391369,申请日为2000年12月22日;该优先权文本在这里全文引用做为参考。
权利要求
1.一个具有指令高速缓冲存储器的数据处理器,包括多个高速缓冲存储器单元,其中只有一个存储了所需指令的高速缓冲存储器单元是启用的,而其它高速缓冲存储器单元则是禁用的。
2.具有一个指令高速缓冲存储器的数据处理器,包括多个高速缓冲存储器单元,以及一个检测电路,用于控制高速缓冲存储器单元的启用和禁用,以便当读取的指令位于连续指令的程序块的第一位置时,所有的所述单元都是启用的,且当程序块中的后续指令被读出时,只有存储第一指令的高速缓冲存储器单元是启用的,而其它高速缓冲存储器单元则是禁用的。
3.如权利要求2所述的数据处理器,其中所述的检测电路根据标识程序块的程序块地址来控制多个高速缓冲存储器单元的启用和禁用。
4.如权利要求2所述的数据处理器,其中所述的检测电路包括一个存储装置,用于存储表示命中的高速缓冲存储器的数据,并利用存储装置中的数据控制多个高速缓冲存储器单元的启用和禁用。
5.一个系统,包括一个处理器;以及一个外部储存器,与包括指令高速缓冲存储器的处理器相连,所述的指令高速缓冲存储器包括多个高速缓冲存储器单元,其中一个存储了所需指令的高速缓冲存储器单元是启用的,而其它超高速缓冲存储器单元则是禁用的。
6.一个对包括多个高速缓冲存储器单元的指令高速缓冲存储器的控制方法,其中一个存储了所需指令的高速缓冲存储器单元是启用的,而其它高速缓冲存储器单元则是禁用的。
全文摘要
本发明提供了一个数据处理器,该处理器包括一个可以在低电耗下操作的指令高速缓冲存储器,避免了无用的电力消耗。数据处理器包括多个高速缓冲存储单元,其中只有一个存储了所需指令的高速缓冲存储单元是启用的,而其它存储单元是禁用的。
文档编号G06F12/08GK1367428SQ0114576
公开日2002年9月4日 申请日期2001年12月21日 优先权日2000年12月22日
发明者山崎恭启, 佐藤泰造, 内海祐之, 依田齐 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1