CN1435755A - 指令变换装置和变换方法 - Google Patents

指令变换装置和变换方法 Download PDF

Info

Publication number
CN1435755A
CN1435755A CN03103420A CN03103420A CN1435755A CN 1435755 A CN1435755 A CN 1435755A CN 03103420 A CN03103420 A CN 03103420A CN 03103420 A CN03103420 A CN 03103420A CN 1435755 A CN1435755 A CN 1435755A
Authority
CN
China
Prior art keywords
instruction
power control
hardware resource
repertorie
microprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN03103420A
Other languages
English (en)
Other versions
CN1200342C (zh
Inventor
谷丈畅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1435755A publication Critical patent/CN1435755A/zh
Application granted granted Critical
Publication of CN1200342C publication Critical patent/CN1200342C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

一种转换指令的指令转换装置和方法,其提供了具有功率控制信息的目标程序,而没有增加硬件的规模,也没引起用户太多的开发重任,同时保证软件很宽的范围。上述目的是由指令变换装置来完成的,当编译或汇编程序时,它静态地分析程序,并在分析的基础上,提供有功率控制指令的程序。上述指令变换装置很容易提供硬件资源是否投入运行的信息,它是借助于指令程序中的一条指令预先存在指令式的硬件资源表中,因此,检测不为某一专用指令区域工作的某一专门硬件资源,同时微处理器处于工作状态。

Description

指令变换装置和变换方法
技术领域
本发明涉及指令变换装置和变换指令的方法,该指令提供了具有功率控制信息的目标程序,实现指令变换的程序和电路,以及执行变换指令的微处理器,在微处理器(包括微计算机,微控制器和数字信号处理器)中,它从指令存储单元(指令存储器,指令高速存储器,等等)读出目标程序,在解码器对其进行解码,根据内容控制硬件资源(处理单元,输入单元,输出单元,存储单元,控制单元,等)并顺序处理。
背景技术
在微处理器中,有两种控制电力节少功耗的方法:一种通过硬件,另一种通过软件。
首先,描述通过硬件控制功率的常规方法,在典型的微处理器工作中,指令解码器根据程序的进程,从指令存储单元获得指令码,对指令码解码,并根据各指令控制处理操作。在通过硬件的功率控制中,提取功率控制信息的指令解码器内置于微处理器中。
图14表示在微处理器中通过硬件控制功率的电路的例子。一旦指令解码器1401从指令存储器接收到指令码,它指令寄存器之间相加,解码器判断数据存储器和外部接口将不进行工作,同时有关的指令码被执行了。当指令解码器1401每次接收到寄存器之间相加指令时,它对各电路发布停止数据存储器、外部接口操作的指令。这样,功率控制相对于寄存器之间加的指令而进行。此外,解码器还这样构建,使它能根据指令码的种类解码功率控制信息,例如减指令,读出指令等。因此,在每次解码各种指令码时,发布功率控制指令以减少功耗。
接下来,描述通过软件控制功率的常规方法,在这方法中,用户描述程序判断哪一个硬件资源暂停工作而微处理器正执行目标程序,把功率控制指令直接写入程序。
图15是在微处理器中通过软件控制功率的程序的例子。在这一例中,数据存储器没有用在区域1501中。用户在点1502插入暂停数据存储器(减少数据存储器的功率)的指令,并在1503点插入免除数据存储器暂停(增加数据存储器的功率)的指令,1503点正好是数据存储器再次起动前的点。这样,数据存储器根据上面两条指令在1501区暂停工作。虽然上面只以数据存储器举例说明,微处理器的其它电路也可以此方式控制,这些电路包括数据寄存器,数据总线,外部接口,甚至于电路的元件级,例如与(AND)元件。甚至在通过软件的功率控制法中,在微处理器内实际功率控制是由写在功率控制寄存器中的功率控制指令来实行的,该指令在指令解码器解码。
在通过硬件的功率控制法中,解码器需这样构建,使它能解码相应于各种指令码的功率控制信息。如果要执行彻底的功率控制,就自然地使硬件的尺寸扩大到很大的规模。此外,如果存在多个可解码的指令,则用于解码操作的功耗增加。这就可能增加微处理器的总功耗。再有,因为功率控制信息只能在每一指令码单元提取,因此,对于随后的指令不可能实行预先的功率控制。
在通过软件的功率控制法中,需要用户判断功率控制什么时候开始和结束,因此把功率控制指令写入程序。这样,用户开发的重任是明显的。此外,当控制点数增加时,写全部指令变得很困难。再有,功率控制的目标依照微处理器结构可以不同,即存储器结构,外部接口端数等。在这种情况下,每种模型将需要专用的程序,所以,共享一种程序,或用一种程序于其它应用是困难的。此外,当功率控制指令数写在多环的某一点或经常执行时,程序执行的速度下降。
发明内容
本发明解决了上面的问题并实现了功率完全控制的目的,而不增加硬件的规模,不引起用户太多的开发重任,同时保证软件很宽范围的可用性。
上述目标是由指令变换装置来完成的,当编译或汇编程序时,它静态地分析程序,并在分析的基础上,提供有功率控制指令的程序。
上述指令变换装置很容易提供硬件资源是否投入运行的信息,它是借助于指令程序中的一条指令预先存在指令式的硬件资源表中,因此,检测不为某一专用指令区域工作的某一专门硬件资源,同时微处理器处于工作状态。
至于提供功率控制指令的实际方法,它可借助于插入关于功率控制的指令,或借助于包含功率控制指令的指令代替不包含功率控制指令的指令的方法来实现。
在用插入指令实现节省功耗的方法中,处理速度可能由于插入许多指令,增加循环数而降低。由于插入指令的结果,代码的长度增加了。但是这些缺点可借助于构建上述的指令变换装置来改善,所以,用户可用编译或汇编时的选项来确定功率控制电平,即代码尺寸和功率控制可用在几个步骤中选择一组插入的功率控制指令来调节。
本发明的另一目的是解码前分析目标程序并提供关于功率控制的指令。从而,提供了实现低功耗而又能控制硬件的增加在一定规模内的指令变换电路。
上述目的可由指令变换电路来实现,该电路包括指令式硬件资源存储器,用于预先存储某个专门的硬件资源是否由目标程序中的指令码运转的信息,该目标程序中的指令由微处理器执行;功率控制信息分析电路,用于根据存储在指令或硬件资源存储器中的信息,检测在某一个微处理器工作的指令区内没有工作的硬件资源;功率控制指令提供电路,用于根据指令式硬件资源分析电路检测的结果,提供具有功率控制指令的目标程序。
本发明的另一目的是提供一种微处理器,它能执行上面指令变换设备产生的功率最优化的目标程序而没有招致操作错误,甚至当发生如中断、分支、异常等专门处理时。
上述目标可借助于微处理器装备条件复位电路来实现,该电路在检测到任何中断、分支、异常时复位功率控制寄存器的条件于全部硬件资源工作的初始状态。
附图说明
图1表示本发明第一实施例的指令变换设备。
图2是在本发明的指令式硬件资源表的例子。
图3是在投入运用的指令式硬件资源上的数据例子。
图4是本发明的功率控制信息检测单元的例子。
图5表示插入指令程序中的功率控制指令的例子。
图6表示本发明第一实施例的微处理器。
图7表示用含有功率控制指令的指令代替指令程序中的指令的例子。
图8表示本发明第一实施例的其它微处理器。
图9表示本发明第二实施例的指令变换设备。
图10表示本发明第三实施例的指令变换设备。
图11表示在第三例中,机器语言指令如何提供功率控制信息的。
图12表示本发明第四实施例的指令变换设备。
图13表示本发明第五实施例的指令变换设备。
图14表示通过硬件控制功率的常规方法。
图15表示通过软件控制功率的常规方法。
具体实施方式
在下面各节中,用于操作微处理器的指令行称为“指令程序”,与所用的语言无关。解码前的机器语言行,它作为指令程序向机器语言翻译的结果而产生,由微处理器执行,称为“目标程序”。“目标程序”是一类“指令程序”,当从指令程序产生目标程序时产生的所有中间程序也包括在指令程序中。
现在,参考附图详细描述本发明的第一实施例。
指令变换设备的总结构
图1表示根据本发明的第一实施例的指令变换设备。在该图中,指令程序101由微处理器执行。程序101可以是记忆描述的指令行或由高级语言(例如C语言或FORTRAN语言)描述的指令行。在本实施例中,作为例子,使用描述记忆的指令行。
指令式硬件资源表103预先存储信息,以便微处理器中的哪个硬件资源由某一专门指令运行。
指令式硬件资源分析单元102接收指令程序101作为输入,为了提取哪个硬件资源将投入运行的信息,在指令程序101中的每条指令,指令式硬件资源分析单元102参考指令式硬件资源表103。它输出指令式操作硬件资源的数据104。
功率控制信息检测单元105接收指令式操作硬件资源的数据104作为输入,在进行时间顺序分析之后,为减少功耗,判断如暂停或重新起动硬件资源的功率控制指令应插入的地方,它输出功率控制指令数据106。
根据功率控制指令数据106,功率控制指令提供单元107把暂停(减少功率)硬件资源,重新起动(增加功率)硬件资源或类似指令提供给指令程序101。功率控制指令提供单元产生功率最优化的指令程序108。
由功率控制指令提供单元107产生的功率最优化指令程序108的内容输入到指令翻译单元109。指令翻译单元109产生并输出功率最优化目标程序110,它是由微处理器执行的机器语言指令行。
指令式硬件资源表的详细结构
指令式硬件资源表103参考图2进行说明。表103是二维表,包括指令模式字段201和表示微处理器中硬件资源的字段202。表中的数值代表当执行某一指令模式时,某一硬件资源工作或不工作。数值“1”表示有关的硬件资源工作,而数值“0”表示该硬件资源不工作。在“ADDRx,Ry,Rz”的情况下,它表示寄存器之间的附加指令,只有“处理器A操作”,“数据寄存器R0-R15”和“数据寄存器R16-R31”工作,同时微处理器在工作,所以,表的相应空间填以“1”。因为剩下的硬件资源没有工作,表的相应空间填以“0”。同样,对于“LD Ra,MEMY”,它是存储器读指令,只有相应空间填以“1”的“存储器读操作”和“块A操作”投入运行。这里的绝对值,“0”和“1”,本身没有实质意义,但重要的是以表的形式提供操作信息。
指令式硬件资源分析单元的工作说明
参考图3,指令式硬件资源分析单元102的工作,用指令程序301作为例子进行说明。图3表示本实施例中的指令式操作硬件资源的数据104。根据接收的指令程序301作为输入,指令式硬件资源分析单元102在每条指令用指令式硬件资源表103的指令模式字段201进行图型对应搜索。进行搜索,以判断相关指令对应的指令模式,并以表302的形式输出判断结果。在列表在302的硬件资源中,在微处理器工作时,相应于数值“1”的硬件资源工作。指令式硬件资源分析单元102在指令程序中的每条指令进行上述的分析,并产生指令式操作硬件资源的数据104。
功率控制信息检测单元的工作
参考图4,描述功率控制信息检测单元105的工作。功率控制信息检测单元105在指令方向(时间顺序方向)分析从指令式硬件资源分析单元102提供的指令式操作硬件资源的数据104是否硬件资源在工作。作为例子,描述了检测连续的“0”的方法。在本实施例的指令式操作硬件资源的数据104中,信息“0”指示微处理器在执行指令时并没有让有关的硬件资源投入运行。功率控制信息检测单元105借助于搜索指令式硬件资源的数据104来检测连续的、例如三个或更多个指令区的“0”能检测在某一专门的指令区没有工作的硬件资源。
用“存储器读操作”作为例子来说明检测三个或更多个指令区没有工作的硬件资源的情况。在相应于“存储器读操作”的数据行401中,在4个指令项期间(从SUB指令到STR指令)不需要“存储器读操作”。功率控制信息检测单元105检测这种情况。有关被检测硬件资源的信息和可暂停区作为功率控制指令数据106提供给功率控制指令提供单元107。
功率控制指令提供单元的例子
功率控制指令提供单元107用图4所示的同样指令程序作为例子来描述。图5表示插入的功率控制指令的例子。从图5可见,功率控制指令提供单元107根据由功率控制信息检测单元105提供的功率控制指令数据106已插入指令码,它在SUB指令前请求立刻暂停(减少功率)有关“存储器读操作”的电路,和在STR指令后请求重新起动(增加功率)该电路。因此,对于上述区域,它能暂停有关“存储器读操作”的功能,而不需要在每一指令的任何解码。这样,消耗于“存储器读操作”的电力被节省了。
图4中所示的例子,从SUB指令到MVL指令的三个指令区使用无“存储器写操作”。在本例中,借助于检测上述信息,比起功率控制只对每一硬件资源的情况,功率控制可在上游数据流阶段进行,即不仅把关于“存储器读操作”和“存储器与操作”的控制指令供给指令程序,还提供完全停止存储器以及存储器控制电路本身的控制指令。
上述指令变换设备以计算机程序的形式实现,并作为汇编程序提供给微处理器用户。借助于简单编辑或汇编指令程序101,用户尽可能提供功率最优化目标程序101。用这样的方法,用户可简单描述指令程序并对它进行汇编,而不需要特殊的功率控制考虑,结果,微处理器的功耗低于常规情况下的功耗。
微处理器中功率控制的方法
借助于执行由上面提供的指令变换设备产生的功率最优化目标程序110减小了常规的功耗。图6表示本实施例中的微处理器结构。
指令存储单元602存储功率最优化程序110,它由本实施例的指令变换设备产生。程序计数器601规定指令的地址,该指令是下一步要在微处理器中执行的。指令解码器603从指令存储单元602获得由指令计数器601规定地址的指令,并对它解码。由指令解码器603解码的有关功率控制的指令被写入(608)功率控制寄存器604中。功率控制执行单元605依据功率控制寄存器604的状况进行微处理器内的功率控制(暂停时钟,改变时钟频率,断电,改变电源电压,抑制信号变化等)。例如,当暂停数据存储器的指令由指令解码器603解码时,暂停数据存储器的指令被写入功率控制寄存器604中。然后,微处理器在执行前参照功率控制寄存器604的状态,并暂停数据存储器。如果在暂停后,该存储器再次使用,释放暂停的指令再写入功率控制寄存器604,然后,微处理器在执行前参照功率控制寄存器的状态,并释放存储器暂停。
即,借助于提供功率最优化程序110给指令解码器603,取出有关功率控制的指令并写入功率控制寄存器604,功率控制就能完全进行,而没有增加硬件的规模,微处理器的功耗就能减小。
在有专门的指令给微处理器的情况中,微处理器由于执行功率最优化目标程序110而可能引起操作错误。这种情况详细描述如下。
在正常程序执行期间,执行指令的顺序是已经固定的,所以,通过解码功率最优化目标程序110,有关功率控制的指令能准确地写入功率控制寄存器604。但是,当专门的指令,例如中断、分支、异常等发生时,指令执行的顺序转到与正常顺序不同,程序不必按写的次序执行。即,即使为ADD指令要按写的次序提供时,中断可能需要STR指令。在这种情况中,使用存储器的指令可能导致专门指令,中断、分支、异常的结果,虽然在功率最优化目标程序110解码后,功率控制寄存器604设置到暂停存储器。于是,存储器未能工作,且微处理器可能没有正常工作。
为了避免上述情况的发生,本实施例中的微处理器提供PCR条件复位电路606,因此,微处理器不会引起操作错误,即使给出专门指令的情况下,也能执行完全的功率控制。
一旦检测到因子信号607、中断、分支、异常时,PCR条件复位电路606规定功率控制寄存器604使全部硬件资源处于运行状态的条件(以下称为预定值)。因子信号607可以是特殊处理计算结果的信号(例如对溢出结果请求异常的信号),请求中断微处理器本身的信号(例如DMA传送中断,定时器中断和根据内容发出请求的同类信号),从外面提供的输入信号(例如请求改变外部终端的信号)等等。当功率控制寄存器604被置于预定值时,微处理器能使全部硬件资源工作。这样,即使发生中断、分支、异常或类似的专门指令时,微处理器也不会引起操作错误。
虽然上面的说明是基于本发明的第一实施例做的,但并不是说本发明的应用范围限于上述例子。
第一实施例中的指令变换设备,在用户使用高级语言的情况下,例如C语言,FORTLAN语言,可以作为编译提供给用户。这样,用户可用高级语言很容易地来写程序。
在第一例中的指令变换设备可作为独立的功率控制程序提供,而不是汇编或编译。借助于执行功率控制程序,用户首先可提供功率最优化指令程序108,然后用汇编提供功率最优化目标程序110。在这种情况下,用比较用户写的指令程序101与功率最优化指令程序108的方法,用户很容易确认提供的功率控制指令。
功率控制信息分析单元111并不限于上述结构。能通过指令程序的静态分析检测功率可控指令区的任何单元都能完成。例如,需要由功率控制信息检测单元105检测的功率控制指令区并不需要多于三个区组成,但它可以是包括一个或更多个指令区,它可依据功率控制电平对工作于微处理器的各应用程序和系统最佳来选择确定。
功率控制指令提供单元107并不限于如上述的插入指令。能根据功率控制指令数据106提供功率控制信息的任何单元都能完成。功率控制指令提供单元107可以是例如图7所示的形式,即,在图5表示的新指令插入功率控制指令提供单元107时,如果包含功率控制信息的指令预先在微处理器的指令规范中确定,那么某些已存在的指令可用包含功率控制信息的独立指令代替,如图7所示。在后一种情况中,没有因微处理器工作期间插入附加指令而增加操作周期。所以,功率控制可在不降低速度的情况下实现。
如果包含功率控制信息的指令是预先确定的,则执行替换当然是可能的,而对未确定的指令执行插入。
PCR条件复位电路106可以是使微处理器进入正常工作条件范围内的任何电路。例如,虽然在第一例中的复位电路是检测中断,分支和异常的,但它可以是只检测中断和异常。即使在这种情况下,如果指令变换设备这样设置,使它插入用于正好在分枝指令后复位功率控制寄存器的指令,则微机能正常工作,PCR条件复位电路606可以是根据由指令解码器解码的结果609,检测中断,分支,异常的电路。
此外,PCR条件复位电路606可以是根据由指令解码器解码的结果609和因子信号607检测中断,分支,异常的电路。这两项一起对检测使用,使中断、分支、异常检测比只用一项容易。
再进一步,PCR条件复位电路606可以是根据程序计数器条件中的变化进行中断、分支、异常的检测的电路,如图8所示。
实施例2
参考附图描述本发明第二实施例。
图9是本实施例的指令变换设备,在图9中,与图1相同的组成部分用同样的符号代表。为了功率控制的目的插入指令时,它增加了机器语言程序的代码长度,该程序最终安装在微处理器中。它也增加了指令执行周期,减低了微处理器处理速度。在某些情况下,用户可对低功率损耗设置代码长度或处理速度。本发明的第二实施例解决了上面描述的问题,即,给用户提供一种选项,当汇编或编译时来选择功率控制的电平。用于在汇编或编辑时加一选项,“-P1”或“-P2”。由用户输入的选项存入选项寄存器902。功率控制判断单元901参照选项寄存器902的值,输出参照结果到功率控制信息检测单元105。当选项为“-P1”时,功率控制信息检测单元105检测在三个或更多区不工作的硬件资源,当选项为“-P2”时,它检测五个或更多个区不工作的硬件资源,以提供功率控制指令数据106。
所以,根据图4的指令或操作硬件资源的数据,当选项为“-P1”时,“存储器读操作”作为在多于三个区(从SUB指令到STR指令)不工作的硬件资源被检测。但是,当选项为“-P2”时,“存储器读操作”未被检测。
在上述结构中,用户能在选项选择所要的功率控制电平的地方,要插入的功率控制指令数可以调节。因此,用户可考虑代码大小和执行周期来选择最佳功率控制电平。
功率控制电平判断单元901并不限于上述结构,其中功率控制电平是由选项来判断的。允许用户规定其一组电平中的一个判断电平的任何其它单元都能完成。虽然在本实施例2中的功率控制信息检测单元105借助于改变指令区的长度来控制功率控制电平,该指令区为要判断为可暂停的指令区。其它方法的例子是:当选项为“-P1”时,对全部硬件资源进行检测,而当选项为“-P2”时,只对存储器和数据寄存器进行检测,也就是说,功率控制信息检测单元105根据功率控制电平改变了用于功率控制的硬件资源目标。
在功率控制指令提供单元107既能插入指令又能替代的情况下,它可这样构成,使当选项为“-P1”时,既可进行插入,也可替代,而当选项为“-P2”时,只能进行替代。因为既不是代码尺寸也不是执行周期会因替代而增加,选项“-P2”只提供最小功率控制,它不会带来任何缺点。
实施例3
参考附图描述本发明第三实施例。
图10是根据第三实施例的指令变换装置。在图10中,与图1相同的组成部分用同样的符号。在第一实施例中,功率最优化指令程序108是由用户以插入或替代有关功率控制的指令写的指令程序产生。但在本例中,用户写的指令程序101首先由指令翻译单元109翻译成目标程序1001,它是由微处理器执行的机器语言指令行,然后,根据目标程序1001产生功率最优化目标程序110。
在这种情况下,如图11所示,指令码配备有有关功率控制的指令,它是借助于在功率控制指令提供单元(图10中的107)中,机器语言写的部分指令行内插入有关功率控制的位来实现。在这一阶段,用户要看哪里提供功率检测指令可能是很困难的,借助于解汇编的功率最优化目标程序110才可能知道。
在本实施例3中的功率控制指令提供单元107并不限于上述位的插入。能根据功率控制指令数据106提供功率控制信息的任何其它单元都能完成,例如,它可以是插入机器语言指令本身。
本实施例3中的指令变换装置可以以计算机程序的形式实现。如同实施例1,它可向微处理器用户提供汇编/编辑或者独立的功率控制程序。
此外,它可配备功率控制电平判断单元,如同实施例2,所以,用户可选功率控制的电平。
因为本实施例3中的指令变换装置照原样变换目标程序,它能提供给用户广泛有用的编辑程序/汇编程序,用于最优化功耗,它与用户编写程序的语言无关。
本实施例3中的微处理器,当然可包括PCR条件复位电路606,如同实施例1。
实施例4
结合附图说明本发明的第四实施例。
图12表示本发明第四实施例的指令变换电路的结构。在图12中,指令码提供源1200把由常规方法产生的非功率最佳化目标程序提供给微处理器中的指令存储单元1205。可重写存储器,如闪存器或者不可重写的ROM都可用于指令存储单元1205。常规上,目标程序直接供给指令存储单元1205。但在本例4中,它在通过本发明的指令变换电路1207之后供给指令存储单元1205,且重新写入功率最优化目标程序。指令变换电路1207包括指令式硬件资源存储器1201、指令式硬件资源分析电路1202、功率控制信息检测电路1203和功率控制指令提供电路1204。指令式硬件资源存储器1201是一种存储器,它存储实施例1的指令式硬件资源表103。指令式硬件资源分析电路1202对应于实施例1的指令式硬件资源分析单元102。它参照存在指令式硬件资源存储器1201中的指令式硬件资源表在每一指令码判断硬件资源工作/暂停,并输出指令式硬件资源操作数据。功率控制信息检测电路1203相应于实施例1的功率控制信息检测单元105,它根据从指令式硬件资源分析电路1202输出的指令式硬件资源操作数据提取使暂停某一规定的指令区的硬件资源,并输出功率控制指令数据。功率控制指令提供电路1204相应于实施例1的功率控制指令提供单元107。根据功率控制信息检测电路1203输出的功率控制指令数据,功率控制指令提供电路1204提供具有功率控制指令的目标程序,该目标程序从指令码源1200提供给指令存储单元1205,以便产生功率最优化目标程序。指令存储单元1205存储功率最优化目标程序。借助于执行功率最优化目标程序,微处理器减少了功耗。
这样,本发明的指令变换方法也能以电路形式实现。
实施例5
结合附图说明本发明第五实施例。
图13表示本发明第五实施例的指令变换电路的结构。在图13中,与图12共同的组成单元用图11中同样的符号来代表。在实施例4中,当目标程序从指令码提供源1200存入指令存储单元1205时,提供功率控制指令。但在本例中,存在指令存储单元1205中的目标程序直接供给本发明的指令变换电路1207,然后,在提供有关功率控制的指令后,再次存入指令存储单元1205。与实施例3的不同点在于已存入指令存储单元1205的目标程序在实施例5中也具有功率控制的指令。本例5中的指令存储单元1205需要是可重写的那种。
实施例4和实施例5也可具有PCR条件复位电路。借助这样做,即使专门指令序列发生时微处理器也能正常工作。
本发明能进行应用程序的开发,它是一种内在的活动,并作为独立的活动进行功率控制。这就减轻了用户软件开发的重任。此外,用本发明,很容易实现完全的功率控制,保持软件的广泛可用性而没有引起软件规模的增加。

Claims (25)

1.一种指令变换装置,用于最优化由一组适合微处理器执行的指令组成的指令程序,它有一组硬件资源,包括:
功率控制信息分析单元,用于检测功率可控的硬件资源,该硬件资源在所说的指令程序中的某一规定的指令区内不工作,而同时微处理器在工作;
功率控制指令提供单元,根据功率控制信息分析单元检测的结果提供具有功率控制指令的指令程序。
2.根据权利要求1所述的指令变换装置,其特征在于还包括:
指令式硬件资源表存储单元,用于存储关于由指令程序中的每一指令使哪一个硬件资源投入运行的信息,其中
功率控制信息分析单元,根据存在指令式硬件资源表存储单元中的信息,检测在微处理器工作的同时,在规定的指令区内不工作的硬件资源,作为功率可控的硬件。
3.根据权利要求2所述的指令变换装置,其特征在于:
功率控制指令提供单元,通过插入指令提供具有功率控制信息的指令程序,以便暂停或重新起动硬件资源的操作。
4.根据权利要求2所述的指令变换装置,其特征在于:
通过在所述指令程序中插入指令,功率控制指令提供单元提供具有功率控制的指令,以便在某一规定的指令区前的位置暂停硬件资源的操作,并在该规定的指令区末尾处重新起动该硬件资源的操作。
5.根据权利要求2所述的指令变换装置,其特征在于:
通过用所述指令程序中的某些规定指令代替包含指令的指令,功率控制指令提供单元提供有关功率控制的指令,以便暂停或重新起动硬件资源。
6.根据权利要求2所述的指令变换装置,其特征在于:
功率控制指令提供单元提供有关功率控制的指令,通过用定位在某一规定指令区之前的所述指令程序中的某些指令代替包含指令的指令,以便暂停硬件资源,通过用定位在某一规定指令区末尾处的所述指令程序中的某些指令代替包含指令的指令,以便重新启动硬件资源。
7.根据权利要求1所述的指令变换装置,其特征在于还包括:
功率控制电平判断单元,用于判断功率控制的电平,并输出判断结果给功率控制信息分析单元;其中
功率控制信息分析单元,考虑功率控制电平判断单元判断的结果,检测功率可控的硬件。
8.根据权利要求7所述的指令变换装置,其特征在于:
所说的功率控制电平相应于所说的某一规定指令区的长度。
9.根据权利要求7所述的指令变换装置,其特征在于:
所说的功率控制电平相应于哪些硬件资源是功率控制的目标。
10.根据权利要求1所述的指令变换装置,其特征在于还包括:
功率控制电平判断单元,用于判断功率检测电平并输出判断结果给功率控制信息分析单元;其中
功率控制信息分析单元,考虑功率控制电平判断单元判断的结果,转换某一规定指令区的长度。
11.一种微处理器,用于执行权利要求1的指令变换装置变换的指令程序。
12.一种指令变换方法,用于最优化由一组适合于微处理器执行的指令形成的指令程序,包括下列步骤:
检测在微处理器工作的同时,在指令程序中的某一规定的指令区内不工作的硬件资源;
根据检测步骤的结果,提供具有功率控制指令的所述指令程序。
13.一种指令变换方法,用于最优化由一组适合微处理器执行的指令形成的指令程序,包括下列步骤:
在指令程序中检测功率可控的指令区;
判断功率控制电平;
根据检测步骤和判断步骤的结果,提供具有功率控制指令的所述指令程序。
14.根据权利要求13所述的指令变换方法,其特征在于:
功率控制电平相应于某一规定指令区的长度。
15.根据权利要求13所述的指令变换方法,其特征在于:
功率控制电平相应于哪些硬件资源是功率控制的目标。
16.一种指令变换方法,它把指令程序变换成由微处理器执行的目标程序,包括下列步骤:
预先存储关于哪些硬件资源在指令式硬件资源表中由指令程序中的指令操作的信息。
17.根据权利要求16所述的指令变换方法,其特征在于包括下列步骤:
参照指令式资源表,检测在微处理器工作的同时,在某一规定的指令区内不工作的硬件资源;
根据检测的结果,提供具有功率控制指令的所述指令程序。
18.根据权利要求17所述的指令变换方法,其特征在于:
有关功率控制的指令由插入指令提供,以便在指令程序中暂停或重新起动硬件资源。
19.根据权利要求17所述的指令变换方法,其特征在于:
有关功率控制的指令是在指令程序中,恰在硬件资源可以停止的区域前位置,插入暂停硬件资源的指令来提供的,并在硬件资源可以停止的区域末尾位置,插入重新启动硬件资源的指令来提供的。
20.根据权利要求17所述的指令变换方法,其特征在于:
通过用指令程序中的指令代替含有指令的指令提供有关功率控制的指令,以便暂停或重新起动硬件资源。
21.根据权利要求17所述的指令变换方法,其特征在于:
通过用定位在硬件资源可被停止的区域之前的指令程序中的指令代替含有指令的指令提供有关功率控制的指令,以便暂停硬件资源,通过用定位在硬件资源可被停止的区域末尾处指令程序中的指令代替含有指令的指令提供有关功率控制的指令,以便重新启动硬件资源。
22.一种指令变换电路,包括:
指令式硬件资源存储器,用来预先存储关于硬件资源是否由微处理器执行的目标程序中的指令码起动或暂停的信息;
功率控制信息分析电路,用来根据存在指令式硬件资源存储器中的信息,在微处理器工作的同时,检测在某一规定的指令区内不工作的硬件资源;
功率控制指令提供电路,用于根据指令式硬件资源分析电路检测的结果,把有关功率控制的指令提供给目标程序。
23.一种微处理器,用于执行权利要求22的指令变换电路变换的程序。
24.根据权利要求11所述的微处理器,其特征在于包括:
功率控制寄存器,用于根据指令解码器解码的结果存储关于功率控制的信息;
条件复位电路,用于检测中断,分支,异常和把功率控制寄存器根据中断,分支,异常的检测设置成所有硬件资源投入运行的状态。
25.一种存储在计算机中的可读存储器中的程序,用于操作计算机起如下作用:
功率控制信息分析电路,它参照指令式硬件资源表,该表预先存储关于硬件资源是否由微处理器执行的指令程序中的指令投入运行或不运行的信息,用来检测在微处理器工作的同时,在某一规定的指令区内不工作的硬件资源;
功率控制指令提供单元,用于根据指令或硬件资源分析单元检测的结果,把有关功率控制的指令提供给指令程序。
CNB031034209A 2002-01-30 2003-01-28 指令变换装置和变换方法 Expired - Fee Related CN1200342C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002021479 2002-01-30
JP200221479 2002-01-30

Publications (2)

Publication Number Publication Date
CN1435755A true CN1435755A (zh) 2003-08-13
CN1200342C CN1200342C (zh) 2005-05-04

Family

ID=27654399

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031034209A Expired - Fee Related CN1200342C (zh) 2002-01-30 2003-01-28 指令变换装置和变换方法

Country Status (2)

Country Link
US (2) US7191350B2 (zh)
CN (1) CN1200342C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1322397C (zh) * 2003-10-27 2007-06-20 松下电器产业株式会社 处理器系统、指令序列优化装置和指令序列优化程序
CN103544003A (zh) * 2012-07-16 2014-01-29 三星电子株式会社 基于数据管理功率的设备和方法
CN104793559A (zh) * 2014-01-20 2015-07-22 Dmg森精机株式会社 考虑省电的nc程序产生装置
WO2017128160A1 (zh) * 2016-01-28 2017-08-03 深圳配天智能技术研究院有限公司 加工复位实现方法、编译器、机器人、数控系统及机床

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004318502A (ja) * 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd 電力制御機能を備えたマイクロプロセッサ及び命令変換装置
FR2867873A1 (fr) * 2004-03-18 2005-09-23 St Microelectronics Sa Dispositif et procede de gestion d'un etat d'attente d'un microprocesseur
FR2867872A1 (fr) * 2004-03-18 2005-09-23 St Microelectronics Sa Dispositif et procede de gestion d'un etat d'attente d'un microprocesseur
JP2006107127A (ja) * 2004-10-05 2006-04-20 Nec Electronics Corp 半導体集積回路装置
US7313709B2 (en) * 2004-11-05 2007-12-25 International Business Machines Corporation Instruction set with thermal opcode for high-performance microprocessor, microprocessor, and method therefor
WO2008028105A2 (en) * 2006-08-31 2008-03-06 Ati Technologies Ulc Video decoder and/or battery-powered device with reduced power consumption and methods thereof
US7941641B1 (en) 2007-10-01 2011-05-10 Yong-Kyu Jung Retargetable instruction decoder for a computer processor
TWI442317B (zh) * 2011-11-07 2014-06-21 Ind Tech Res Inst 可重新配置的指令編碼方法及處理器架構
KR20140140609A (ko) * 2012-03-29 2014-12-09 가부시키가이샤 한도오따이 에네루기 켄큐쇼 프로세서 및 전자 기기
KR102063716B1 (ko) * 2013-05-14 2020-02-11 삼성전자주식회사 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법
US10180828B2 (en) * 2014-04-29 2019-01-15 Significs And Elements, Llc Systems and methods for power optimization of processors
JP6528531B2 (ja) 2015-05-12 2019-06-12 富士通株式会社 コンパイラプログラム、コンパイル方法、及び情報処理装置
US10114649B2 (en) 2015-05-26 2018-10-30 International Business Machines Corporation Thermal availability based instruction assignment for execution

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2762670B2 (ja) * 1990-03-30 1998-06-04 松下電器産業株式会社 データ処理装置
US5790874A (en) * 1994-09-30 1998-08-04 Kabushiki Kaisha Toshiba Information processing apparatus for reducing power consumption by minimizing hamming distance between consecutive instruction
US5557557A (en) * 1994-10-04 1996-09-17 Texas Instruments Incorporated Processor power profiler
JP3520611B2 (ja) * 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
US6105141A (en) * 1998-06-04 2000-08-15 Apple Computer, Inc. Method and apparatus for power management of an external cache of a computer system
US6438700B1 (en) * 1999-05-18 2002-08-20 Koninklijke Philips Electronics N.V. System and method to reduce power consumption in advanced RISC machine (ARM) based systems
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
US6993669B2 (en) * 2001-04-18 2006-01-31 Gallitzin Allegheny Llc Low power clocking systems and methods
US6775787B2 (en) * 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US7206950B2 (en) * 2004-06-16 2007-04-17 Matsushita Electric Industrial Co., Ltd. Processor system, instruction sequence optimization device, and instruction sequence optimization program

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1322397C (zh) * 2003-10-27 2007-06-20 松下电器产业株式会社 处理器系统、指令序列优化装置和指令序列优化程序
CN103544003A (zh) * 2012-07-16 2014-01-29 三星电子株式会社 基于数据管理功率的设备和方法
CN103544003B (zh) * 2012-07-16 2018-09-21 三星电子株式会社 基于数据管理功率的设备和方法
CN104793559A (zh) * 2014-01-20 2015-07-22 Dmg森精机株式会社 考虑省电的nc程序产生装置
CN104793559B (zh) * 2014-01-20 2019-11-26 Dmg森精机株式会社 考虑省电的nc程序产生装置
WO2017128160A1 (zh) * 2016-01-28 2017-08-03 深圳配天智能技术研究院有限公司 加工复位实现方法、编译器、机器人、数控系统及机床

Also Published As

Publication number Publication date
CN1200342C (zh) 2005-05-04
US20070208959A1 (en) 2007-09-06
US20030182589A1 (en) 2003-09-25
US7191350B2 (en) 2007-03-13

Similar Documents

Publication Publication Date Title
CN1200342C (zh) 指令变换装置和变换方法
CN1222868C (zh) 多线程流水线指令解码器的方法和设备
CN1308826C (zh) 用于smt处理器上的cpi调度的系统和方法
CN1129843C (zh) 使用组合的数据处理器系统和指令系统
CN101464721B (zh) 控制流水线型处理器中的功率消耗的方法和系统
CN1725175A (zh) 分支目标缓冲器及其使用方法
US7278136B2 (en) Reducing processor energy consumption using compile-time information
CN1677364A (zh) 对代码覆盖使用硬件辅助的自主测试用例反馈的方法和设备
CN1853165A (zh) 用于多线程的编译器创建辅助线程的方法和装置
CN1292343C (zh) 处理器及处理管线中例外反应的装置与方法
CN1614555A (zh) 用于自主硬件辅助的线程栈跟踪的装置与方法
CN1853166A (zh) 用于多线程的线程管理的方法和装置
CN101916180A (zh) Risc处理器中执行寄存器类型指令的方法和其系统
CN1655118A (zh) 处理器和编译器
CN1825276A (zh) 多线程管道中的可编程延迟分派
CN1508690A (zh) 使能跟踪重复指令的方法和系统
CN1310116C (zh) 具有功率控制功能的微处理器以及指令转换装置
CN1142485C (zh) 流水线控制相关延迟消除方法
CN1763729A (zh) 用于闪速存储器的数据处理设备和方法
CN1287287C (zh) 基于控制系统实现在线更新数据的方法
CN1144124C (zh) 程序执行方法及利用该方法的装置
CN1119473A (zh) 包含指令调度和取消控制的超级标量微处理器指令流水线
CN101076780A (zh) 针对程序中循环的编译方法、编译设备和计算机系统
CN100346305C (zh) 编译器和操作系统内核协同的节能方法
CN1249952C (zh) 自动维护系统及其自动维护通信设备的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050504

Termination date: 20190128