具有功率节省的vliw处理器的制作方法

文档序号:6417911阅读:223来源:国知局
专利名称:具有功率节省的vliw处理器的制作方法
技术领域
本发明涉及一种数据处理设备,诸如VLIW(超长指令字)处理器,它能够并行执行指令字中的多个指令。
背景技术
VLIW处理器使之能够以高度的指令平行性执行程序。常规地,在每个指令周期内,VLIW处理器提取包含固定数目的大于一个的指令(通常称作操作)的指令字。VLIW处理器在同一指令周期(或多个周期)内并行执行这些操作。为此目的,VLIW处理器包含多个功能单元,每个都能够一次执行指令字中的操作之一。通常提供不同类型的功能单元,例如ALU(算术逻辑单元)、乘法器、转移(branch)控制单元和存储器存取单元等。通常还包括专用的功能单元,被设计为加速特定应用的程序。因而,例如,可以添加用于执行MPEG编码或解码的多个部分的功能单元。
在先进的VLIW处理器中,可能存在成百个功能单元。原理上,指令字可以包含并行的用于所有这些功能单元的指令。通常,将功能单元组织成一个或多个功能单元的组,指令字每组提供一个指令。当至少一些组包含一个以上的功能单元时,分组限制了指令字的长度而不减少功能单元的数量。
所有的功能单元都不可避免地消耗电源电流。当VLIW处理器包括并行操作的许多功能单元时,因而,出现相当大的功率消耗。这与电池操作设备的要求是不一致的。由于与功耗相关的加热,这还可能增加在单个封装内操作VLIW处理器所需要的冷却措施的成本。
美国专利US 5,815,725描述了使用时钟选通来降低微处理器内的功耗。监视器电路监视微处理器是否进入低活动性操作状态,并且如果是如此的话,它将时钟信号选通到微处理器。在US 5,815,725中,时钟选通涉及在唯一部分的时钟周期内禁止时钟信号,因为微处理器必须继续操作。美国专利US 5,661,751描述了期间完全禁止到微处理器的外围设备(UART)的时钟信号的时钟选通。类似地,美国专利US6,345,336描述了部分超高速缓冲存储器的时钟信号的禁止。
时钟选通降低了功耗,但是当应用于处理器的指令执行部分时,其缺点在于,它降低了执行指令的能力。显著地,US 5,661,751和US6,345,336将时钟选通应用于外围设备或辅助电路,而不应用于指令执行电路或整个指令存储器。US 5,815,725试图通过仅在部分时钟周期内禁止时钟信号来消除完全禁止微处理器的时钟信号的问题。

发明内容
特别地,本发明的一个目的是提供一种数据处理设备,其在指令执行期间使用功率节省措施来降低电源消耗,而不降低可以执行指令的速率。
本发明提供一种根据权利要求1的数据处理设备。该数据处理设备是这样一种类型的诸如VLIW处理器,它处理均包含多个指令的指令字。不同的功能单元并行执行指令字中的指令。根据本发明,构建该处理设备,以使之有可能应用功率节省措施,根据程序执行,例如选择性地时钟选通到部分的功能单元和/或存储单元,将指令提供给功能单元或功能单元组中的相应功能单元。在存储单元,尤其能够节省很多功率。
本发明基于这样的见识,即存在有用的应用程序,其中功能单元的使用随程序段而改变。在这样的应用中,可以事先确定在哪个程序段中将使用哪一些功能单元。例如,在涉及MPEG编码的程序中,仅在特定的程序段内使用用于这种编码内的特定任务的专用功能单元。当处理器执行来自程序段的指令字时,可以使用功率节省来禁止已知在该程序段内将不使用的功能单元和/或存储单元的时钟信号。
当指令字包含专用于其中应用功率节省措施的一个功能单元的指令的字段时,该设备也可以自动地将功率节省措施应用于指令存储器部分,当将时钟选通应用于该功能单元时所述指令存储器部分提供该字段。更普遍地,处理设备可以将功率节省措施应用于任何资源,例如专用于应用功率节省措施的功能单元的寄存器堆或外围电路。
已经发现在许多有用的应用程序中,不同功能单元的使用是相关的。在不使用一个功能单元的程序段内,也不使用某些相关的功能单元。因此,将这样的功能单元组合成一组并设置电路以致于时钟选通禁止时钟信号到该组内所有的功能单元是有利的。当该组不包含在一个程序段内使用的功能单元时,可以使用时钟选通来禁止时钟信号到该组的所有功能单元。而且,当在每组处理器中共享资源时,还可以将时钟选通应用于资源。


将参考图1更详细地描述根据本发明的处理设备和处理方法的这些和其它的目的与优点,其中图1图示一种处理设备。
具体实施例方式
图1图示一种处理设备,它包含具有存储单元12a-g的存储器系统10、控制器14和指令执行单元7,其中指令执行单元7包含功能单元18a-c的组70a-g、寄存器堆72和指令地址计数器单元74。指令地址计数器单元74具有耦合到控制器14的指令地址输出。控制器14具有耦合到存储单元12a-g和组70a-g的选择输出16。此外,控制器14具有耦合到存储单元12a-g的地址输出。存储单元12a-g具有耦合到相应组70a-g和寄存器堆72的指令输出。寄存器堆具有耦合到组70a-g的操作数/结果输出/输入端口(未单独图示)。组70a-g均包含一个或多个功能单元18a-c(仅明确图示一组功能单元),所有功能单元均具有耦合到控制器14的选择输出16的时钟选通输入、耦合到存储单元12a-g的操作代码输入、耦合到寄存器堆72的操作数输入和耦合到寄存器堆72的结果输出(除了用存储单元12a-g、功能单元18a-c的组70a-g和寄存器堆72之间的单个连接表示的时钟选通输入之外,全部未图示)。这些组中的一组70a-g具有耦合到指令地址计数器单元74的转移地址输出。
在操作中,处理设备操作在连续指令周期内。在连续的指令周期内,地址计数器单元74将连续指令的地址输出给控制器14(这些指令将被称为“连续的”,因为连续地执行相应的指令,尽管在转移的情况下地址可能是不连续的)。控制器将从指令地址中推导出的进一步指令地址输出到存储单元12a-g。这些进一步指令地址寻址在存储单元12a-g内的指令存储位置(memory location)。存储单元12a-g将来自这些地址的指令输出给指令执行单元7。从存储单元12a-g输出的指令的组合构成具有用于各种指令的字段的指令字。
控制器14还输出被应用于存储单元12a-g的选择信号。每个选择信号表示来自相应存储单元12a-g的指令是否是当前指令周期所需要的。当选择信号表示不需要来自特定存储单元12a-g的指令时,将该存储单元切换到功率节省状态,例如通过禁止在该特定存储单元12a-g内的时钟信号。这些时钟信号包括例如通知存储单元的输出驱动器改变从特定存储单元12a-g输出的指令的时钟信号,或者用于预先充电比特线和/或字线等的时钟信号。当禁止这些时钟信号时,节省了功率,例如因为不需要充电电流用于输出、比特线和/或字线。其它的节省功率的方式包括从功率节省期间不需要保持状态的电路中断开电源。
功能单元18a-c的每一组70a-g接收来自相应一个存储单元12a-g的指令和被应用于那个存储单元12a-c的选择信号。该选择信号控制是否将该组功能单元切换到功率节省状态,例如通过禁止在组70a-g中的功能单元18a-c内的时钟信号。被禁止的时钟信号包括例如在来自功能单元18a-c的输出驱动器的输出信号中引起逻辑转换的时钟信号,或者在预先充电的信号线内涉及的时钟信号。而且,某个功能单元包含在禁止时钟时消耗较少功率的数据存储器。当禁止这些时钟信号时,节省了功率,例如因为不需要用于输出或信号线的充电电流。
在其中选择信号并不表示应当禁止时钟信号的那些组中,该组70a-g的功能单元18a-c确定该组70a-g的哪一个功能单元18a-c应当执行来自相应存储单元12a-g的指令,并且该功能单元读取通过来自寄存器堆72(如果有的话)的指令所寻址的操作数,并将结果提供给寄存器堆72(如果有的话)。
尽管最好在协作存储单元12a-g和组70a-g内禁止时钟,但将理解当仅在它们之一内禁止时钟信号时,已经获得功率优点。
控制器14能够独立于其它存储单元12a-g和/或组70a-g选择和取消选择存储单元12a-g和/或组70a-g。可以以多种方式来控制选择。在一种实施例中,在执行存储单元12a-g中的指令字的程序之前,使用装载到控制器14内的控制存储器(未图示)中的存储映射信息。在这种情况下,存储映射信息表示对于来自指令地址计数器单元74的指令地址的多个地址范围来说应当启动哪一个选择信号。当控制器14接收来自指令地址计数器单元74的指令地址时,它检测包含该指令地址的地址范围,并提供为该地址存储的选择信号。
在另一种实施例中,从由执行单元7执行的指令字中命令选定的选择信号的后续关闭或开启。为此目的,可以在组70a-c之一内提供特殊的选择控制功能单元,它执行包含应当接收选择信号的组70a-g的指示的指示。这样的指令的形式例如可以是带有用于不同组的相应比特的掩码(mark)以表示是否应当选择该组,或者形式是表示应当启动或停止其选择的组的编号。因而,可以选择其中将禁止时钟信号的不同子集(组)的功能单元。在一个极其简单的实施例中,其中可以仅在一个这样的子集内禁止时钟信号,该命令不需要指定子集。
尽管图1图示所有的组70a-g接收选择信号,但将理解本发明并不限于对所有组使用选择信号。实际上,控制器14可以不具有用于一些组70a-g的选择输出,并且这些组中的一些组可以不具有选择输入。因而,这些组始终是活动的。优选地,至少一个组始终是活动的。而且,尽管图示每组接收它自己的可独立设置的选择信号,但将理解实际上一些组可以接收共享的选择信号。此外,尽管已经无区别地图示所有的组,但将理解这些组实际上可以是不同的在一些组内的功能单元可以接收文字数据,例如来自存储单元12a-g的转移地址或常数,而其它的组仅接收从寄存器堆72提供的操作代码、数据,一些组可以比其他组接收更大数量的操作数,或者产生更大数量的结果。
如图所示,组70a-g之一具有来自转移功能单元(未图示)的连接,以响应于指令而更新指令地址计数器单元74内的指令地址。转移功能单元例如在它确定已经满足某个条件时执行这个更新。更新可以是绝对的(替换地址计数器单元74内的程序计数器值)或相对的(对程序计数器值的增加)。这通过例子来图示。实际上,一个以上的组70a-g可以包含耦合到指令地址计数器单元74的一个或多个转移功能单元。
此外,尽管对于相应组的功能单元70a-g图示了单独的存储单元12a-g,但将理解一些组可以共享存储单元12a-g,所以存储单元并行地生成用于这些组的指令(通常,这些存储单元将具有比其它存储单元12a-g更宽的指令输出)。当然,仅当连接到存储单元12a-g的功能单元组70a-g中没有一个需要指令时,才在这样一个存储单元内完全禁止时钟信号。这可以使用检测器来确定是否没有一个相关组的功能单元需要指令来实现,或者可以通过来自程序的指令来表示。
此外,在一些设计中,可以将寄存器堆72划分成多个寄存器堆,其中一些仅耦合到功能单元18a-c的组70a-g的子集,有时甚至仅耦合到一组70a-g,在这种情况下,可以将寄存器堆视为相关组的一部分。在后一情况下,可以将功率节省应用于仅连接到当前未被选择的组70a-g之一的寄存器堆,例如通过禁止在该寄存器堆内的时钟信号。当一个以上的组访问寄存器堆时,在来自控制器14的选择信号禁止在已访问该寄存器堆的所有组内的时钟信号时,可以将功率节省应用于该寄存器堆。为此目的,控制器14可以提供有用于此寄存器堆的单独选择输出,以便能够清楚地控制该寄存器堆内的功率节省。可选择地,可以提供检测电路,以检测所有涉及的组70a-g的选择信号是否通知应当应用功率节省,并且如果是的话,则检测电路还通知应当将功率节省也应用于该寄存器堆。
实际上,处理设备可以使用指令执行的流水线操作。即,在同一指令周期内,控制器14可以处理一个指令地址,存储单元12a-g可以检索用于在前指令地址的指令,并且功能单元18a-c可以处理用于一个或多个其他另外的前面的指令地址的一个或多个处理级。在这种情况下,功率节省或更具体地说时钟信号的禁止也可以进行流水线操作,例如通过将来自控制器14的选择信号对于存储单元12a-g和功能单元18a-c的不同流水线级延迟不同数量的指令周期。
在程序执行之前,最好应当确定哪一些程序部分需要哪一些组70a-g的功能单元。这是考虑功能单元18a-c的专用功能的问题,但是这还可以取决于在程序的不同部分内不同要求的平行性的数量。例如,在内部循环中可能需要更高数量的平行性。
数据处理设备的程序设计开始于确定例如从高级计算机语言的程序中编译得出的必须执行的操作的描述。随后,执行步骤,以便将这些操作映射到功能单元。这一映射步骤允许某种映射自由度。例如,可以在一个算术逻辑功能单元上顺序地或者在不同的算术逻辑功能单元上并行地执行一些算术和逻辑操作。在映射步骤期间,可以识别出内部循环和程序的周围部分(这在每次执行程序时可以分别被执行许多次、仅一次或若干次)。在这种情况下,最好映射内部循环的操作,以允许不同功能单元内的并行执行,而最好使用顺序执行将来自周围部分的操作映射到一个或有限子集的功能单元。而且,在映射步骤期间,可以仅将一些操作映射到专用功能单元或一组功能单元。某些MPEG编码或编码功能是这样的示例。
在选择步骤中,识别在程序的相应段内使用的功能单元(组)的组合,并编译表示在哪一些段内使用哪一些组合的信息。随后,在程序的执行期间使用此信息来选择性地在执行来自一个程序段的指令时在该程序段内不被使用的那些功能单元(组)内禁止时钟信号,例如以存储映射信息的形式,或者以命令的形式,以禁止或启用在选定的功能单元内的时钟信号。
权利要求
1.一种数据处理设备,该设备包括指令存储器系统,被安排为输出指令字,能够包含多个指令,相应的指令字响应于相应的指令地址而被输出;指令执行单元,包括多个功能单元,每个功能单元能够与通过其他功能单元对指令字中的其它指令的执行并行执行该指令字中的相应指令;功率节省电路,被安排为在程序执行期间将可选择子集的功能单元和/或将指令字中的指令提供给功能单元的指令存储器的部分切换到功率节省状态,该功率节省电路被安排为根据程序执行来选择该子集内的功能单元和/或指令存储器的部分。
2.根据权利要求1的数据处理设备,其中在所述功率节省状态中禁止时钟信号到该子集内的功能单元和/或指令存储器的部分。
3.根据权利要求1的数据处理设备,其中功能单元被组成一个或多个功能单元的组,在每个相应组内的一个或多个功能单元从指令字内的相应指令字段接收指令,每次对于通过该组内的功能单元之一的执行,该功率节省电路选择每组中被切换到功率节省状态的功能单元。
4.根据权利要求1的数据处理设备,其中指令存储器系统包括多个存储单元,每个存储单元对于相应功能单元或功能单元组提供指令的指令字内相应的指令字段,时钟选通电路被安排为将这样的存储单元切换到功率节省状态,其中这样的存储单元对于被切换到功率节省状态的可选择功能单元提供指令字段。
5.根据权利要求4的数据处理设备,其中仅对于相应指令地址范围内的指令字,存储单元均包括用于每个指令字的至少一部分的存储位置,该指令存储器系统允许不同存储单元的相应范围的部分重叠。
6.根据权利要求1的数据处理设备,其中该功率节省电路被安排为根据与指令字相关的指令地址来选择子集。
7.根据权利要求1的数据处理设备,其中该功率节省电路被安排为在由该数据处理设备执行的程序内包含的一个或多个指令的控制下选择该子集。
8.根据权利要求7的数据处理设备,其中所述一个或多个指令指定该子集。
9.一种使用根据权利要求1的数据处理设备执行指令程序的方法,该方法包括识别程序的一部分,其中指令字并不包含用于特定一组内的功能单元的指令;和在执行该程序的所述识别部分期间,使用功率节省电路将并未包含在特定一组内的功能单元和/或耦合到该特定一组的存储单元切换到功率节省状态。
全文摘要
一种数据处理设备具有指令存储器系统,其被安排为输出能够包含多个指令的指令字,相应的指令字响应于相应的指令地址而被输出。指令执行单元包括多个功能单元,每个能够单元能够与其他的功能单元对指令字中的其它指令的执行并行地执行指令字中的相应指令。提供功率节省电路,以便在其它的功能单元和指令存储器的部分在正常的功率消耗状态内继续处理指令时,将可选择子集的功能单元和/或指令存储器部分切换到功率节省状态。功率节省电路根据程序执行来选择功能单元和/或指令存储器部分。
文档编号G06F1/32GK1688965SQ03823968
公开日2005年10月26日 申请日期2003年9月17日 优先权日2002年10月11日
发明者C·A·阿巴平托, R·塞图拉曼, B·斯里尼瓦桑, H·J·A·M·佩特斯, R·佩塞特洛皮斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1