CN1664777A - 用于控制信息处理设备的内部状态的装置和方法 - Google Patents

用于控制信息处理设备的内部状态的装置和方法 Download PDF

Info

Publication number
CN1664777A
CN1664777A CN200510051058XA CN200510051058A CN1664777A CN 1664777 A CN1664777 A CN 1664777A CN 200510051058X A CN200510051058X A CN 200510051058XA CN 200510051058 A CN200510051058 A CN 200510051058A CN 1664777 A CN1664777 A CN 1664777A
Authority
CN
China
Prior art keywords
information
state
microprocessor
instruction
control device
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
CN200510051058XA
Other languages
English (en)
Other versions
CN100363888C (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 CN1664777A publication Critical patent/CN1664777A/zh
Application granted granted Critical
Publication of CN100363888C publication Critical patent/CN100363888C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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

Abstract

用于控制信息处理设备的内部状态的状态控制装置,包括场景表,信息记录器,信息播放器和状态改变控制器。信息记录器从信息处理设备获得同步信息和一项或多项状态信息,并且将获得的同步信息和状态信息相互关联地记录在场景表中。信息播放器从信息处理设备接收同步信息,从场景表获得与场景表中存储的同步信息之中的与所接收的同步信息对应的同步信息相关联的状态信息,并且将获得的状态信息供给状态改变控制器。状态改变控制器根据从信息播放器接收的状态信息,控制信息处理设备的内部。同步信息是用于识别在给定时间点的信息处理设备的执行状态的信息,以及状态信息是表示在与同步信息同步的给定时间点的信息处理设备的内部状态的信息。

Description

用于控制信息处理设备的内部状态的装置和方法
相关申请的交叉参考
本申请要求于2004年3月2日在日本提交的专利申请号2004-58056的优先权,其全部内容通过参考引入本申请。
技术领域
本发明涉及一种状态控制装置和方法,用于信息处理设备,例如由单个处理器或多个处理器、序列发生器和静态配置/动态可重新配置逻辑所组成的微处理器(包括微计算机、微控制器和数字信号处理器),该微处理器按照一个基本状态元素(例如,程序计数器值、计数器值和序列发生器状态值)和该状态元素的变化来执行顺序处理。虽然这里主要将处理器作为示例,但是本发明适用于如上一般限定的信息处理设备。
背景技术
按常规,为了用硬件实现软件处理,一般地使用信息处理设备例如微处理器。为了提高软件生产率,常规自定义硬件取向现在正转向这样的硬件风格,它们具有作为中心的微处理器,该微处理器由单个处理器或多个处理器、序列发生器、高级合成静态配置/动态可重新配置逻辑等组成,其中软件处理映射到硬件并且执行,虽然软件驱动本质上是主流。
近年来,在硬件中,如多媒体处理例如声音和移动图像为代表,电路规模和工作频率随软件处理的请求的增加而保持增加。电路规模和工作频率的增加使功率消耗增加,并且由于管道级增加而使各种类型的处理代价增加。
为了减小功率,按常规在硬件中的各执行周期中使指令和状态信息解码,以完成时钟选通和电路操作停止控制。
为了抑制在各周期中解码的指令,例如,一般地执行如日本专利号1959871公开的控制,其中指定处理频率高的重复(循环)部分,并且在循环单元中使循环的处理期间未使用的电路部分的操作停止。
为了抑制由于增加管道级而引起的处理代价,通过指令的明确指定来预加载存储器数据。
而且,在包含条件执行的分支指令例如条件分支指令下,一般地执行分支目标指令的推测读取和预取,以隐藏代价。
然而,在通过对上述的指令和状态解码来减小功率消耗的常规方法中,功率由解码电路本身以及通过电路的解码逻辑块加速的插入来消耗。特别地,在管道的上游级,其中严格地限制可用于低功率电路的逻辑级的数量,在考虑到速度下功率控制非常困难。
为了克服以上问题,在上述日本专利号1959871公开的方法中,例如,将循环单元作为功率控制的对象来处理,以解决与各周期中的解码和解码速度有关的问题。就将一个高频率进行处理的循环用作控制对象来说,本方法是有利的。
然而,在以上方法中整个循环是控制的对象,该方法不能使当前信息处理设备达到足够的功率减小。原因是当整个循环是控制的对象时,如果循环包括一条性能重要的指令,则达不到有效的功率减小控制。而且,复杂循环不能作为控制的对象。
在以最近多媒体处理中的那些为代表的实际应用中,如以下例子那样,达不到足够的停止控制。当在作为处理单元的循环中不包括作为对象的特定指令时,可以停止相关指令解码器和有关块。
然而,在打算提高性能的信息处理设备中,在循环单元中从不使用的指令固有地是不大必要的指令,并且不受电路规模影响,因而通过停止相关电路所得到的功率减小效果将较小。相反,很少发生一种情况,允许停止高频率使用的指令,例如数据存储器存取和倍增累加操作的指令。
图42A表示与循环处理有关的示例汇编程序。在本例中,应用LOOP指令,重复地执行从下一条指令直到L_END标记的指令的范围。
如图42A所示,仅在五个周期之中的两个周期中执行存储器存取(LD指令),因此存储器存取在剩余三个周期中是不必要的。同样地,倍增累加操作(MAC指令)在五个周期之中的四个周期中是不必要的。然而,在任何情况下,在循环中出现一次的指令不能用作批量控制的对象。
如上所述,正是像存储器存取指令那样的指令将通过执行循环单元停止而实际有效。没有能有效控制的许多其他对象。
作为另一种方法,在允许指令的并行执行的信息处理设备中,可以根据循环中每个周期所发布的最大指令数,在各循环中停止不必要指令的发布。在这种情况下,如上述情况那样,在打算提高性能的信息处理设备中,总存在一个在循环中几乎发布最大指令数的周期。因此,即使其他周期发布少量的指令,循环也受到最大发布周期的限制,并且因而整个循环的控制在实际应用中并不有效地工作。
例如,在图42B中,其中最大并行度为2,然而在大多数周期中并行度为1,用循环单元中最大数量控制每个周期发布的指令数并不有效。
循环单元控制方法还在指令集和指令控制方面有问题。
一般地,数字信号处理器(DSP)具有一个重复地执行特定指令串的循环专用指令(与图42A的例子中的LOOP指令对应)。
然而,当前以RISC处理器为代表的主流处理器一般不具有循环专用指令,但是形成一个具有分支指令的循环结构(图42C表示一个示例程序)。在这种情况下,难以确定当前是否正在处理一个循环,并且因而在识别处理当前在一个循环之内的情况下,不允许执行功率减小控制。
当在一个循环中存在改变处理流的指令例如条件分支指令时,也难以进行循环控制。当满足一条分支指令时,必须抑制状态控制。因此,一般地,当在一个循环中存在分支指令时,难以执行功率减小控制。如图43A和图43B所示,在循环中存在分支指令绝不是特殊情况。
如上所述,应用这样的简单循环单元控制,在包括多媒体应用的许多应用中,停止控制并不有效地工作。
循环单元控制例如也不能为一种软件结构而不是一种简单的循环结构提供足够的停止控制,例如一个对包括频繁使用分支的可变长度代码进行解码的应用,其中控制流频繁地改变,但是平均个别指令本身高频率执行。
关于操作速度减小的问题,按常规考虑一种方法,预先将指令代码解码,并且将解码结果存储在管道的上游级,像预解码高速缓冲存储器那样。然而,这种方法对于个别指令仅仅增加信息解码速度,而不能执行依赖于内部指令连续性的控制,像数据冒险检测那样。
而且,以上方法只能检索与程序计数器值对应的指令解码信息,也就是,指令地址值。在给定其程序计数器值之前,决不供给信息。
因此,预解码高速缓冲存储器法也不能用作应对管道的上游级中操作速度减小的主要措施。
预解码法自然要求投入相当大的电路规模,并且这将不利于所打算的功率减小和电路规模减小。
关于处理代价,已知一种方法,其中软件开发者明确地描述预先获得存储器存取数据的预取指令。
然而,以上方法对于提高性能给软件开发者带来很大负担。另外,由于明确指令插入本身引起的性能降低不可忽略。
应用最近的编译器技术,已经提出一种静态地调度和定位预取指令的方法。然而,由本方法得到的结果包括一种复杂分支结构,不一定提供如汇编程序开发者所得到那样的相同性能。
为了使分支指令中的代价最小,有一种方法,其中推测地读取分支目标指令,而不管是否满足条件分支的条件。在使代价进一步减小的另一种方法中,预先在称为分支目标缓冲器的缓冲器中存储分支目标指令组,并且必要时检索。
以上方法中的任何一个都要求相当大的电路规模的投资,并且这不利于所预计的功率减小和电路规模减小。
如上所述,由于操作频率的增加引起的管道级增加使各种处理代价增加。这个问题以及其他问题,例如信息处理设备的扩展加速器的驱动和动态可重新配置逻辑的状态改变,是软件处理型硬件中共同的问题。
发明内容
本发明的目的是提供一种状态控制装置和方法,它能在提高软件生产率的同时,改变信息处理设备的状态,而不引起扩充电路增加或操作速度的减小,从而达到功率减小和处理性能的提高。
本发明的状态控制装置是一种用于控制信息处理设备的内部状态的装置,包括一个场景表,一个信息记录器,一个信息播放器和一个状态改变控制器。信息记录器从信息处理设备获得同步信息和一项或多项状态信息,并且将获得的同步信息和状态信息相互关联地记录在场景表中。信息播放器从信息处理设备接收同步信息,从场景表获得与场景表中存储的同步信息之中的与所接收的同步信息对应的同步信息相关联的状态信息,并且将获得的状态信息供给状态改变控制器。状态改变控制器根据从信息播放器接收的状态信息,控制信息处理设备的内部。同步信息是用于识别在给定时间点的信息处理设备的执行状态的信息,以及状态信息是表示在与同步信息同步的给定时间点的信息处理设备的内部状态的信息。
应用上述状态控制装置,预言在各处理周期中所必需的信息,能够实现状态的同步、选择和连续改变,而不必要求如相关周期中的计算和解码那样的信息处理,由此仅使本质上必要的部分有效,或预先在各处理周期中准备本质上必要的信息/状态,并且顺序地执行这个处理。
特别地,在不同类型的信息处理设备之中,本发明使用处理器的特征,即对于给定指令串经常唯一地确定指令执行格式。这种情况不仅适用于静态指令可调度单指令发布处理器和VLIW处理器,而且适用于超标量处理器。
例如,在本发明方法中,完全状态解码和逻辑计算是不必要的。可以仅记录必定能停止的状态,并且如果认为不必要,能放弃预先记录的信息。因此,保证用小电路规模的有效实现。
本发明对于多媒体处理和大规模计算中的局部高负载部分,例如所谓的热点特别有效。
在这样热点中,其中高频率局部执行从几个周期到几十个周期的范围,实际上仅记录/播放几组场景信息就能得到较大的效果。
如上所述,按照本发明,能在提高软件生产率的同时改变信息处理设备的状态,而不引起扩充电路增加或操作速度的减小,从而达到功率减小和处理性能的提高。
必要的硬件操作能在获得个别信息之前和没有获得个别信息下开始。而且,主要硬件驱动能用最小工作部分实现,而不用大规模逻辑激活,从而达到处理性能的提高和功率减小。
本发明可以独立于硬件基本配置而广泛地应用。因此,容易对硬件添加实现或从硬件除去实现,使软件兼容性得到保持,软件生产率得到提高,并且还能以更安全的方式容易地达到功率减小和处理性能的提高。
附图说明
图1是本发明的实施例1中的微处理器的状态控制装置的方块图。
图2是说明图1所示微处理器和场景控制部分中的信息记录的操作概念的视图。
图3是用于演示图1所示微处理器和场景控制部分的操作的定时图。
图4是用于演示在设置有本发明的实施例1的状态控制装置的微处理器中,用场景控制部分控制微处理器的状态的操作概念的视图。
图5是表示场景表的示例逻辑布局的视图。
图6是表示场景表的示例逻辑布局的视图。
图7是表示场景表的示例逻辑布局的视图。
图8是用于演示从微处理器得到的同步信息与从场景控制部分得到的控制信息之间的定时关系的视图。
图9是用于演示从微处理器得到的同步信息与从场景控制部分得到的控制信息之间的定时关系的视图。
图10是用于演示从微处理器得到的同步信息与从场景控制部分得到的控制信息之间的定时关系的视图。
图11是表示从场景控制部分供给的控制信息与微处理器的详细操作之间的定时的例子的视图。
图12是在执行微处理器中的管道级之间的定时调整之后,记录和播放场景信息的操作的定时图。
图13是表示使场景控制部分中的所记录场景信息无效的机制的视图。
图14是用于实现场景控制部分中的场景信息的推测和条件播放的定时图。
图15是用于实现场景控制部分中的已经记录的场景信息的校正和重新记录(后备注释)的定时图。
图16是用于执行合成的定时图,其中根据已经记录的场景信息来给定信息的表示。
图17是表示实施例1中假定的微处理器中的管道级的视图。
图18是表示在本发明的状态控制装置中,通过场景控制部分和微处理器与信息供给和控制方法有关的示例概观配置的视图。
图19是表示在微处理器中在ID级的指令发布图形和在各自时间的指令发布图形的视图。
图20是表示与场景控制部分一起的图19中的微处理器的指令发布和有关解码的部分的视图。
图21是表示在设置有实施例1的状态控制装置的微处理器中,与数据存储器存取有关的分支控制和地址计算的状态控制的例子的视图。
图22是表示在设置有实施例1的状态控制装置的微处理器中,用于数据冒险控制和数据转发控制的状态控制的例子的视图。
图23是表示在设置有实施例1的状态控制装置的微处理器中,用于数据转发的数据流控制的状态控制的例子的视图。
图24是表示在设置有实施例1的状态控制装置的微处理器中,用于数据存储器存取的状态控制的例子的视图。
图25A是表示在设置有实施例1的状态控制装置的微处理器中,用于缺省/路线选择的状态控制的例子的视图。
图25B是表示在设置有实施例1的状态控制装置的微处理器中,用于计算定位的状态控制的例子的视图。
图26是表示场景表的示例逻辑布局的视图。
图27是表示场景表的示例逻辑布局的视图。
图28是表示场景表的示例逻辑布局的视图。
图29是表示用于一个例子的指令程序的视图,以演示在微处理器和场景控制部分中,硬件内部状态的转变以及记录和播放信息的细节和定时。
图30A至30D是表示在微处理器中图29的指令程序的时间序列执行时,各自时间周期的操作定时的例子的视图。
图31是表示图1中场景控制部分的细节的一个例子的视图。
图32是表示图1中场景控制部分的细节的另一个例子的视图。
图33表示用于自动检测高负载状态、根据自动检测激励并且开始记录和播放操作的最有效方法的一个例子。
图34A至图34D是用于演示场景控制部分中对于特定程序部分,选择地执行记录和播放操作的技术的视图。
图35A表示一个例子,其中用一般指令而不是专用指令执行与图34D中的SET_COOL_STREAM指令对应的操作。图35B表示一个例子,其中将特定指令用作一个确定是否开始记录/播放或终止记录/播放的事件。图35C表示一个例子,其中用一个编译器的编译部分指定用于状态改变的使能控制的执行或不执行。图35D表示一个例子,其中用源程序中给定的指示指定用于状态改变的使能控制的执行或不执行。
图36A和图36B是表示微处理器中用于条件执行指令的控制的配置的视图。
图37是表示通过判断方法的指令的条件执行的例子的视图。
图38是表示实施例1中的场景控制部分,特别是其记录控制器的操作过程的流程图。
图39是表示本发明实施例2中微处理器的状态控制装置的配置的例子的视图。
图40是实施例2中微处理器的状态控制装置的操作的定时图。
图41是表示实施例2中微处理器的状态控制装置的配置的另一个例子的视图。
图42A至42C表示与循环处理有关的示例汇编程序。
图43A和43B表示与循环处理有关的示例汇编程序。
具体实施方式
以下,将参照附图详细描述本发明的优选实施例。在全部附图中相同或等效部件用同样标号表示,并且不重复其描述。
(实施例1)
图1是本发明实施例1中的微处理器的状态控制装置的方块图。
场景控制部分ZA101与微处理器ZA120连接,用于执行微处理器ZA120的状态控制。自然,场景控制部分ZA101能布置在微处理器ZA120内部。场景控制部分ZA101包括一个场景表ZA102,一个信息记录器ZA103,一个记录控制器ZA104,一个信息播放器ZA105和一个播放控制器ZA106。
在微处理器ZA120内部布置一个状态改变控制器ZA107。另外可以将状态改变控制器ZA107布置在场景控制部分ZA101内部。
场景表ZA102是一种装置,它可重写地存储作为微处理器ZA120的第一状态信息的一组或多组同步信息ZA110(例如,程序计数器值),以及与同步信息ZA110同步的、在微处理器ZA120的相同周期或多个不同周期中的一组多单元的第二状态信息ZA111(这里,该组关联信息称为场景信息)。
在例子的以下描述中,程序计数器值用作同步信息ZA110。然而,按照本发明,除程序计数器值外的值,例如状态值和计数器值也能用作同步信息。
信息记录器ZA103是一种装置,它在根据要求调整周期定时并且如果必要校正第二状态信息组之后,在场景表中记录第一状态信息和第二状态信息组,作为关联场景信息。
记录控制器ZA104是一种装置,它在给定的决定性或可配置条件匹配的时候以及在给定周期中,选择地指令信息记录器ZA103对场景表ZA102开始和终止记录。
信息播放器ZA105是一种装置,它能与微处理器ZA120的同步信息ZA110同步,根据场景表ZA102中记录的同步信息ZA110所关联的第二状态信息组ZA111,在相同周期或在一个周期或更多周期之前的周期中,向微处理器ZA120供给预言的控制信息ZA112。
播放控制器ZA106是一种装置,它在给定的决定性或可配置条件匹配的时候以及在给定周期中,选择地指令信息播放器ZA105开始和终止控制信息ZA112的供给(这里将这个供给称为播放)。
状态改变控制器ZA107是一种装置,它根据从信息播放器ZA105供给的控制信息ZA112,控制微处理器ZA120的内部,而不必要求微处理器ZA120中的相关周期的信息处理结果。状态改变控制器ZA107不必以微处理器ZA120中的局部块的形式布置,而一般以分散方式与各种解码器和控制电路整体地布置。
图2是表示由微处理器ZA120和场景控制部分ZA101执行的信息记录的操作概念的视图。
图2的上部中的定时图表示微处理器ZA120的同步信息ZA110和状态信息ZA111的时间序列改变。
例如,在时间ZA201,微处理器ZA120的同步信息ZA110指示与第N条指令对应的程序计数器值,并且作为状态信息ZA111的例子,状态信息1(在说明例子中,每个周期发布的指令数)、状态信息2(在说明例子中,发生或不发生冒险)和状态信息3(在说明例子中,发生或不发生存储器存取)分别指示与第N条指令、第(N-1)条指令和第(N-2)条指令对应的状态。
场景控制部分ZA101的信息记录器ZA103在时间ZA201获得微处理器ZA120中的同步信息ZA110和状态信息ZA111,并且在调整级定时和执行处理例如信息确认之后,将上述信息作为场景信息ZA210存储在场景表ZA102中。
场景控制部分ZA101允许检索与同步信息ZA110对应的场景信息ZA210,作为用作关键信息的微处理器ZA120的内部信息,并且在根据要求执行输出启动处理和定时调整之后,在微处理器ZA120需要信息之前,将对应场景信息中记录的控制信息ZA112供给微处理器ZA120。
如上所述,按照微处理器ZA120的同步信息ZA110的状态,根据要求通过即刻和预先向微处理器ZA120供给预先记录的场景信息ZA210,能改变微处理器ZA120的内部状态,而不必要求微处理器的处理,并且结果,能达到功率减小和处理性能的提高。
注意按照本发明,如图3所示,作为场景信息获得的微处理器ZA120的同步信息ZA110和状态信息ZA111不必是相同时间的信息。在图3的例子中,作为状态信息ZA111之中的状态信息2和状态信息3,可以分别获得一个周期之后和两个周期之后的状态,并且在经受定时调整之后作为场景信息供给。
图4说明在设置有本发明实施例1的状态控制装置的微处理器ZA120中,用场景控制部分ZA101控制微处理器ZA120的状态的操作概念。
场景控制部分ZA101输出与从微处理器ZA120输出的同步信息ZA110对应的控制信息ZA112。在图4的例子中,输出起动信息ZA401、停止信息ZA402、选择信息ZA403和停止信息ZA404,作为控制信息ZA112。
例如,起动信息ZA401用来控制微处理器ZA120中的一个功能电路组ZA410。在图4的例子中,仅当微处理器ZA120的同步信息ZA110处在与场景表ZA102中的同步信息3对应的状态时,起动信息ZA401才有效。因而,仅当微处理器ZA120的同步信息ZA110处在与同步信息3对应的状态时,才允许功能电路组ZA410用起动信息ZA401执行特定操作。这样能够实现在所述的指令处理开始前的周期中,对功能电路组ZA410执行起动控制,而不必要求对微处理器120的内部状态例如指令处理的细节进行解码。使用这个能力,如后面将要描述的那样,能达到预先数据获得等。
停止信息ZA402用来抑制其操作不要求那么频繁的功能电路组ZA411的电路激活。在说明例子中,当同步信息ZA110是除同步信息2外的任何信息时,停止信息ZA402有效。因而,当同步信息是除同步信息2外的任何信息时,能用停止信息ZA402稳定地抑制功能电路组ZA411的激活。这样能够实现功率减小。
同样地,对微处理器ZA120中的多路复用器ZA412供给选择信息ZA403。例如,多路复用器ZA412是一个4输入选择器,使它总在不要求选择器输出的周期中,选择一个将不会激活选择器输出的输入,从而减小功率消耗。在说明例子中,当微处理器ZA120的同步信息ZA110处在与同步信息3、4或5对应的状态时,选择输入改变小的“11”的路线,从而达到功率减小。
应用停止信息ZA404,将一个写使能信号供给触发器(FF)ZA413。例如,在电路实现中,停止信息ZA404是一个供给各FF的时钟的时钟选通信号。在说明例子中,对FF ZA413执行时钟选通控制,以当微处理器ZA120的同步信息ZA110与同步信息1或5对应时,抑制对FF的数据写入,从而达到功率减小。
参照图4描述了对微处理器ZA120中的电路进行控制的例子。自然,该控制不限于逻辑电路的起动、停止和选择。
以下,将参照图5至图7,描述场景表ZA102的逻辑布局的例子。
图5表示场景表ZA102的一般布局。场景表ZA102至少存储由同步信息ZA110和控制信息ZA112组成的一个单元的场景信息ZA210。
图6表示场景表ZA102的布局的一个例子,其中同步信息ZA110和控制信息ZA112的所记录信息字段用一般术语来表示。
特别地,同步信息的各项(与图5中的同步信息i(i=1,2,…)对应)包括一个触发字段,其中归纳并且存储同步信息,一个属性字段,其中存储同步信息的同步类型,和一个有效字段,指示存储的场景信息本身是否为有效数据。属性字段和有效字段根据实际配置可以省略。
控制信息的各项(与图5中的控制信息i(i=1,2,…)对应)包括控制信息字段,其中根据要求在处理之后存储状态信息ZA111,和指示信息类型的条件字段。该条件字段根据实际配置可以省略。在一个例子中,条件字段可以用来存储所存储信息的供给风险信息(风险位),后面将要描述。
图7表示场景表ZA102的一个特定例子。在本例中,同步信息由一个触发字段和一个有效字段组成,并且控制信息仅由控制信息字段组成。在说明例子中,将微处理器的程序计数器(PC)值用作触发信息。控制信息字段表示在微处理器中发布的指令数(发布的指令数),发生或没发生冒险(冒险信息),以及发生或没发生数据存储器存取(存储器使用)。后面将要描述使用本表的操作的例子。
上述场景表ZA102的例子不过是逻辑布局的一个例子,并且因而不要求在硬件配置中采用所说明布局。后面将要描述硬件配置的一个特定例子。
其次,参考图8至图10,将描述从微处理器ZA120得到的同步信息ZA110与由场景控制部分ZA101给定的控制信息之间的定时关系。
图8表示一个例子,其中在相同周期输出与同步信息ZA110对应的控制信息ZA112。
在图8的例子中,在相同周期中响应微处理器ZA120的同步信息ZA110,场景控制部分ZA101向微处理器ZA120供给控制信息ZA112。
在以上例子中,在场景控制部分ZA101中记录来自微处理器ZA120的状态信息时,以及在从场景控制部分ZA101向微处理器ZA120供给控制信息ZA112时,都不必有FF来调整微处理器ZA120中管道级之间的定时。这样能提供一种紧凑电路配置。
然而,在相同周期中供给信息会以高可能性引起微处理器ZA120的操作速度减小。
即使不发生操作速度的问题,也发生下列问题。因为控制信息在相同周期中通过传播输出,所以在周期中场景控制部分的输出具有最小的信号不确定时段。这个信号不确定状态与具有CMOS晶体管的电路配置中重复充电/放电的状态对应,例如带来功率消耗增加,并且因而从功率减小的观点来说是不利的。
图9表示一个例子,其中在一个周期或更多周期之后输出与同步信息ZA110对应的控制信息ZA112。
与图8的例子比较,在图9的例子中,虽然在信息的记录和供给时必需一个用于级定时调整的管道FF,但是因为信号能在高速下供给,所以防止了操作速度减小。而且,最差能在各周期中将信号改变限制为仅一次,并且因而从功率减小的观点来说本方法是有利的。
然而,在以上定时方法中,仅可能在其中获得微处理器ZA120的同步信息ZA110的周期之后一个周期或更多周期的周期中供给信息。因此,例如不能控制在与同步信息产生的相同定时所执行的微处理器ZA120的功能,例如产生同步信息本身的功能。
图10表示一个例子,其中预先输出与同步信息ZA110对应的控制信息ZA112。应用这种定时方法,对于图9所示的配置能执行包括对管道上游级进行控制的控制。在本例中,同步信息ZA110和控制信息ZA112定时调整并且预先存储。例如,在图10的例子中,当同步信息ZA110指示时间N-1的状态时,记录时间N的信息。这样,作为同步信息ZA110,例如,在程序计数器变为原始要求值之前,能预先供给程序计数器所要求的信息。这就允许对管道上游中的速度关键级进行控制。而且,能远在给定指令的执行之前准备给定指令所必需的状态。因此这在提高处理性能和减小功率方面是有效的。
图11表示从场景控制部分ZA101供给控制信息ZA112与微处理器ZA120的详细操作之间的定时的例子。
在图11中,部分(1)表示由微处理器ZA120执行指令的定时,部分(2)表示场景控制部分ZA101记录/播放图8所示定时的信息的情况,以及部分(3)表示场景控制部分ZA101记录/播放图10所示定时的信息的情况。
在图11的部分(2)中,场景控制部分ZA101按照来自微处理器ZA101的同步信息,在时间t4输出一个有关分支的停止指示控制信号。同样地,在时间t5输出一个有关分支的停止指示控制信号。
在以上定时方法中,当来自微处理器ZA101的同步信息通过场景控制部分达到有关分支的功能组时,由于信号发生的逻辑延迟和传播延迟,在各周期的最小头部时段内产生一个信号不确定时间。在这个时段内,如上所述,由于信号转变,可能会重复地发生充电/放电。因此这种定时方法从功率消耗来说是不利的。
在图11的部分(3)中,按照微处理器ZA101的同步信息,预先在时间t3用信息播放器ZA105中用于定时调正的触发器来延迟并且稳定场景表ZA102中的信息,然后供给微处理器ZA101。
而且,在以上定时方法中,发生由于信号延迟而引起的转变,但是这实质上仅在信号值的转变发生时。例如,在时间t4与t5之间的边界,与图11的部分(2)的情况不同,不发生由于信号转变引起的浪费功率消耗。
如上所述,场景控制部分ZA101的信息记录器ZA103和信息播放器ZA105中的触发器不是简单地布置用于定时调整,而且特意准备为达到功率减小起到非常重要作用。
本发明的效果是能够实现上述图11的部分(3)中所示的预先信息供给。
其次,将描述由场景控制部分ZA101对场景信息的记录/播放的重要操作概念。
如前所述,图12表示在记录和播放场景信息ZA210之前执行的微处理器ZA120中管道级之间的定时调整。应用这个调整,能实现预先信息供给、稳定信号信息供给和高速信号信息供给。另外,如后面将要描述的,能记录和播放与循环的头部和尾部有关的绕回信息。而且,作为后面描述的风险位,能实现条件播放控制操作。
图13表示使场景控制部分ZA101中的场景信息ZA210的记录无效的机制。应用这个无效手段,能安全地记录和播放场景信息ZA210,并且能容易地抑制信息处理设备的故障。此外,应用选择记录手段,即使当可记录场景数小时,也能达到有效的信息记录。
图14表示场景控制部分ZA101中的场景信息ZA210的推测和条件播放。应用条件执行功能,能更安全地播放场景信息ZA210。而且,因为能加宽所要记录和播放的对象的范围,所以更能提高性能。
图15表示对场景控制部分ZA101中已经记录的场景信息ZA210进行信息校正和重新记录(后备注释)。应用后备注释,能进行已经记录的条目的反馈,为提高性能增加信息,从而提供有效播放。而且,应用后备注释能使不必要的场景信息ZA210无效,以保证安全操作,并且使得有效使用场景表的空间。自然,应用后备注释功能,能实现放弃所有单元的场景信息的刷新操作。
图16表示合成,其中根据已经记录的场景信息ZA210给定代表信息。应用合成,使得能有效使用场景表的空间,并且因而能在更宽范围内增加所要控制的对象。
其次,将描述在本发明的状态控制装置中,由场景控制部分ZA101和微处理器ZA120采用信息供给和控制方法的配置的例子。
图17示意表示本实施例中假定的微处理器ZA120中的管道级。
图18表示在本发明的状态控制装置中,由场景控制部分ZA101和微处理器ZA120与信息供给和控制方法有关的示例概观配置。
自然,提出图17和图18所示的管道配置仅用于描述本发明的一个例子,并且本发明的可应用范围不限于图17所示的例子。
从微处理器ZA120向场景控制部分ZA101供给同步信息ZA110。在场景控制部分ZA101中,从场景表ZA102检索与所供给同步信息ZA110对应的场景信息ZA210。
在播放控制器ZA106的控制下,信息播放器ZA105对从与所供给的同步信息对应的场景信息ZA210得到的用于控制微处理器ZA120的控制信息ZA112,给定适当管道延迟,并且执行信息校正,例如使能状态反射,而且将所得到的控制信息ZA112作为状态控制信息供给微处理器ZA120。
将来自场景控制部分ZA101的控制信息ZA112供给微处理器中各自管道级的功能电路组。如早先参照图4所述的,根据供给的控制信息ZA112,功能电路组执行各种状态改变,例如起动、停止和选择控制,以达到功率减小和处理性能的提高。
以下,参照图19和图20,将描述通过本发明的状态控制方法对微处理器ZA120的指令发布进行控制的例子。
图19的部分(1)表示微处理器ZA120中的ID级中的指令发布图形。例如,在时间t1,在第0条指令发布管道issue#0中分配SUB指令。同样地,在issue#1和issue#2中分别地分配MAC指令和LD指令。在DC级中对所分配的指令进行解码。在图19的部分(2)中,用一串位来表示每次的指令发布图形。在场景控制部分ZA101的场景表中记录每次的指令发布图形信息。
图20表示与场景控制部分一起的图19中的微处理器ZA120的指令发布和有关解码的部分。
指令分配部分ZC221从所供给的指令组解码出与指令发布图形有关的信息,适当地分类指令组,并且将结果供给四个指令寄存器ZC231,作为要发布的指令。指令寄存器ZC231在DC级的开始接收要发布的指令,并且指令解码器ZD301对指令进行解码。
按照本发明,指令分配部分ZC221能应用从场景控制部分ZA101发送的控制信息ZA112,选择和供给所接收的指令组,而不必解码出与指令发布图形有关的信息。
而且,指令寄存器ZC231能用从场景控制部分ZA101供给的FF更新信息,抑制在其中写入指令,而不必解码出与指令发布图形有关的信息。
如上所述,因为能防止指令分配部分ZC221和指令寄存器ZC231中的信号激活,所以能达到功率减小。
特别地,因为必须立即对所获得的指令组进行解码,所以要求位于管道上游的ID级在高速下操作。为了加速操作,一般增加了功率消耗。
按照本发明,通过预先获得指令发布图形和与指令发布有关的依赖关系,进行播放控制。因此,达到功率减小,而不降低操作速度。
指令解码和预解码功能也能作为所要控制的对象。图18表示预解码电路ZC222。在图18中,表示一个分支控制器ZC233和一个存储器控制器ZC234,作为指令解码器的例子。
分支控制器ZC233根据来自场景控制部分ZA101的控制信息执行状态控制。例如,当来自场景控制部分ZA101的控制信息指示分支控制器ZC233的停止时,分支控制器ZC233按照这个停止指令抑制其电路操作。
场景控制部分ZA101可以配置为保持解码结果的解码图形,但不是必须要求这样。
例如,如果一个控制状态不以高频率发生,仅通过把这个状态的解码本身作为对象记录为不必要,则将达到有效状态控制。也就是,应用小规模电路实现,达到有效功率减小。
关于停止信息,不必要求产生满足所有条件的停止信息。仅仅通过在场景控制部分中记录只是频繁发生的条件,效果就将会高。
例如,如果通过仅提出用于匹配的所有条件的约20%,达到就发生频率而言约80%满足,则从投入性能的观点来说,不必要求产生100%条件满足的请求逻辑。
以上所述也适用于其他电路功能。也就是,不必在场景控制部分ZA101中记录相关周期的全部控制信息。
不仅单指令的解码,而且与指令之间的链接有关的控制都能作为场景控制部分ZA101的控制对象。
在图18中,作为例子示出一个依赖数据的冒险检测控制器ZC235和一个数据转发控制器ZC236。可以记录各周期中的转发图形和冒险发生图形。然而,如上述解码器的情况那样,如果这样状态的发生频率低,则在场景控制部分ZA101中作为场景信息记录无转发或冒险发生是有效的。
在上述情况下,应用来自场景控制部分ZA101的停止控制,能在大多数周期中抑制冒险控制器ZC235和转发控制器ZC236的电路操作。
如果冒险检测和转发控制是必需的,则根据场景控制部分ZA101中的场景信息,使停止控制无效。因而,应用冒险控制器ZC235和转发控制器ZC236,能执行校正控制操作。
图21表示在一个设置有实施例1的状态控制装置的微处理器中,用于与数据存储器存取有关的分支控制和地址计算的状态控制的一个例子。
图22表示在一个设置有实施例1的状态控制装置的微处理器中,用于数据冒险控制和数据转发控制的状态控制的一个例子。
图23表示在一个设置有设施例1的状态控制装置的微处理器中,用于数据转发的数据流控制的状态控制的一个例子。
图24表示在一个设置有实施例1的状态控制装置的微处理器中,用于数据存储器存取的状态控制的一个例子。
图25A表示在一个设置有实施例1的状态控制装置的微处理器中,用于缺省/路线选择的状态控制的一个例子。
图25B表示在一个设置有实施例1的状态控制装置的微处理器中,用于计算定位的状态控制的一个例子。
其次,参照图26至图28,将描述场景表ZA102的逻辑布局的例子。
图26表示图6所示的归纳场景表ZA102的一个特定例子,其中同步信息包括一个用于存储基本同步信息的触发信息字段(PC值),一个用于存储同步信息的同步类型的属性字段,和一个指示所存储场景信息是否有效的有效字段(v/-)。本例特征在于触发信息字段和属性字段。
虽然在以上例子中将程序计数器值(PC值)用作同步信息,但是可以使用前述的任何同步信息来提供一个相当的配置。
属性字段指示触发字段中记录的值是否包含同步信息即程序计数器值的全部(full)或部分(sub)。
在图26的例子中,与程序计数器值“80000000”对应的同步信息包含如“80000000”的整个信息,并且因而属性字段的值为“ full”。
相反,与地址“80000001”对应的同步信息记录为低序部分信息“0001”,并且因而属性字段的值为“sub”。
在以上例子中,配置场景控制部分ZA101,以便例如仅对其属性字段为“full”的场景信息,进行作为开始点的同步信息的比较。在本例中,三个场景“80000000”、“80001000”和“ 90000000”经受同步比较。
在“full”信息的匹配之后,仅使在比较中已经匹配的具有“full”属性的场景信息和与以上“full”属性有关的具有“sub”信息的场景信息经受同步比较。
因此,在“80000000”的同步匹配之后,仅具有“0001”、“0002”和“0004”的程序计数器值的低序位的场景信息能经受比较,并且因而能减小电路规模和功率消耗。
在以上方法中,其中仅比较程序计数器的部分信息,则出现这样可能性,即可能错误地把具有相同低序位但高序位不同的程序计数器值确定为匹配。为了防止这个问题,例如可以检测分支,以仅当程序计数器值没有跳出假定范围之外时执行播放控制。通过采用这种方法,能提供一种花费不多的状态控制装置。
图27表示一个也以属性字段为特征的例子。在本例中,属性字段具有“adrs”属性,指示对于作为同步信息的程序计数器执行完全匹配,和“time”属性,指示在具有“adrs”属性的场景信息在同步比较中匹配之后,继续周期单元中的比较用于同步。
如图26的例子那样,在以上例子中,对具有“adrs”属性的场景信息进行作为开始点的同步信息的比较。在同步匹配之后,将已经匹配的场景信息之后的具有“time”属性的场景信息用于各时间周期中的播放控制。
如早先所述的场景表布局的例子那样,所说明的表是逻辑布局的一个例子。物理上,不要求采用这种布局。后面参照图32,将描述一种用于实现这种逻辑布局的示例硬件配置。
作为使用“time”属性的另一种情况,考虑一种在每个特定事件发生时而不是在每个周期来播放下一个场景信息的方法。在任何情况下,能提供一种花费不多的方法,以用小规模硬件配置形成一个场景表。
图28表示图6所示的归纳场景表ZA102的一个例子,其中控制信息由控制信息字段和指示信息类型的条件字段组成。在本例中,作为条件字段,存储条件分支的风险信息(分支风险)。后面将描述实现这种逻辑布局的状态控制装置的操作。
参考图29和图30A至图30D,将描述硬件内部状态的转变,以及微处理器ZA120和场景控制部分ZA101中记录和播放信息的细节和定时。
图29表示用于以上例子中的指令程序,其中重复从LD指令直到BR指令的指令串。注意在本例中,使用条件分支(BR)指令以给定一种循环结构,并且在该循环中还包括一个条件分支。
图30A表示在微处理器ZA120中指令程序(图29)的时间序列执行时,在各自时间周期中管道级的操作定时的例子。例如,地址1000中的LD指令在时间t2处作为管道级的DC的执行之下。例如,就时间而言,在时间t3,正是地址1003中的SUB指令处在ID级,也就是,处在指令分配之下。
图30B表示微处理器ZA120中资源的内部状态。例如,多行资源R1表示微处理器ZA120中ID级中的指令分配状态。例如,在时间t2,分别在ID级的issue#0和issue#1中分配LD指令和ADD指令。
同样地,资源R3表示ID级中程序计数器的状态,R4表示ID级发布的指令数,R5表示DC级中数据冒险发生状态,R6表示DC级中存储器存取的发生或不发生,以及R7表示DC级中分支指令的发生或不发生的状态。
例如,发布的指令数R4指示在时间t2发布两条指令。在这个周期中,发布LD指令和ADD指令。关于作为存储器存取控制的资源R6,仅在时间t2和t3发生与存储器存取有关的处理。同样地,在作为分支控制的资源R7中,在时间t7和t1可能会发生分支。
在说明例子中,在循环中无数据冒险发生。因此,通过使用本发明的状态控制装置,能在循环中停止与数据冒险的检测有关的所有控制电路。
同样地,仅在时间t2和t3必需DC级中的存储器存取控制。因此,通过使用本发明的状态控制装置,在其他时间,能在稳态下停止存储器存取,并且能停止与存储器存取有关的其他解码和控制逻辑。
图30C表示场景表ZA102的记录内容,其中S0至S8表示场景表ZA102中记录的各自场景。例如,场景S0包括作为同步信息(Sync)的“0”和指示作为信息1(Infol)的所发布指令数的“2”。
在以上例子中,记录控制器ZA103执行同步调整,以使作为同步信息的程序计数器值(PC)延迟一个周期,并且将延迟数据与一个周期以后得到的微处理器ZA102的信息关联地记录。在说明例子中,有效信息字段(valid)中的值仅在场景S5是“0”,指示场景信息为无效。
为了说明,说明例子表示一种情况,如果条件执行指令出现在重复部分内部而不在循环结束,使场景信息无效,以避免可能的控制失败。不是必须要求分支指令的这种无效。
在场景S8中,获得并且记录下一个周期中的循环头部信息,作为与用作同步信息的程序计数器值“9”对应的信息。
如上所述,即使在循环执行期间,在对信息执行同步调整之后,信息记录器ZA103以绕回方式将信息记录在场景表ZA102中。因此,能在循环中不中断地进行状态记录和播放控制。
在说明例子中,场景表ZA102中的控制信息包括一个条件字段,它用作风险信息字段。后面将描述风险信息的作用。
图30D表示场景表ZA102中场景信息的播放定时。例如,当微处理器ZA120的同步信息(Sync)ZA110在时间t1为“0”时,场景表ZA102输出“2”作为在ID级发布的指令数(Infol)。作为发布的指令数的输出值“2”由信息播放器ZA105延迟一个周期,以准备好在时间t2的头部立即供给。
作为同步信息的程序计数器值由信息记录器ZA103延迟调整。因此,能在先前周期得到发布指令数信息“2”,它首先将在时间t2原始得到,在该时间t2作为同步信息的程序计数器为“1”,与图30B的发布指令数信息相同。
将描述在循环结束时的播放控制。在说明例子中,在循环结束时的指令是一个包含条件确定的分支指令。因此,如果条件满足,在循环结束时的下一条指令将是在循环头部的LD指令。然而,如果条件不满足,将执行循环之后的MOV指令和ADD指令。
当条件不满足时,如果使用场景表ZA102的信息字段1中记录的发布指令数信息“1”,则发生操作失配。因为发布了两条指令MOV和ADD,所以发布指令数信息原始应该为“2”。
为了避免以上操作失配,使用条件字段。在说明例子中,作为条件字段的风险信息仅在循环结束的场景S9为“1”。在本例中,当从场景控制部分ZA101供给的风险位信息为“1”时,根据微处理器的确定结果,微处理器不使用从场景控制部分ZA101供给的控制信息ZA112。
通过采用上述的方法,只要满足分支条件,状态控制就在循环中连续地执行。当要执行循环的最后迭代之后的下一条指令时,抑制用场景控制部分ZA101的控制,以启动电路操作的安全执行。
如果有可能发生一个例外事件,即使用条件字段也将不使其恢复,则可以产生一个可重新执行的中断/例外请求,以允许在安全操作条件下的重新执行。
其次,参考图31和图32,将描述场景控制部分ZA102的一个示例硬件配置。
图31表示图1中场景控制部分ZA101的详细配置的一个例子。场景表ZA102的逻辑布局与图7所示的相同。将描述场景控制部分ZA101的配置和操作的例子。
从微处理器ZA120输出的同步信息ZA110和状态信息ZA210由信息记录器ZA103接收。在信息记录器ZA103中,根据同步信息ZA110和状态信息ZA210的细节,用一个记录定时调整器ZF1031对同步信息ZA110和状态信息ZA210进行有关级的定时调整,并且然后作为处理过的同步信息ZF1100和处理过的状态信息ZF1110输出给场景表ZA102。虽然在说明例子中未表示,信息记录器ZA103除定时调整外,自然还可以用逻辑操作来执行信息处理,例如编码和解码,以使随后信息的播放/供给方便。
场景表ZA102包括多个场景存储器ZF1020。在说明例子中,一个场景存储器ZF1020实质上由用于记录处理过的同步信息ZF1100的同步信息存储器单元ZF1021,用于记录处理过的状态信息ZF1110的状态信息存储器单元ZF1022至ZF1024,和用于保持指示各场景的记录是否有效的信息的有效信息存储器单元ZF1025组成。为了描述简单,在说明例子中,场景表表示为存储总计四组各由同步信息和状态信息组成的场景信息ZA210。换句话说,能存储并且控制微处理器ZA120的四个状态(场景)。
在说明例子中,其中用轮循型指针控制器ZF1026控制应该在四个场景存储器ZF1020中的哪一个中,记录从信息记录器ZA103输出的信息。指针控制器ZF1026顺序地指向四个场景存储器ZF1020中的一个作为记录的目标。虽然在图31中未示出,但是使用记录请求和有效信息进行控制。虽然在说明例子中在场景表ZA102中进行控制,但是另外可以通过信息记录器ZA103对场景表ZA102进行控制。为了简单,使所说明指针控制器ZF1026配置为允许同步信息的重叠记录。自然,如在一般高速缓冲存储器系统的标记存储器配置中那样,可以对同步信息执行更复杂的记录控制。然而,这里,为了容易实现装置,按优先级解码器格式进行输出选择(图31中没有明显地表示)。
关于记录的定时,在由记录控制器ZA104产生的记录请求信号ZF1040所给定,发生对场景表ZA102的记录请求时,将信息写入由指针控制器ZF1026指向的场景存储器ZF1020中。为了描述简单,图31省略了用于记录请求信号ZF1040的定时调整的FF。
在记录控制器ZA104中,根据记录条件确定器ZF1041的输出和记录使能信号ZF1042,产生记录请求信号ZF1040。记录使能信号ZF1042可以是一个从微处理器ZA120中设置的控制寄存器供给的信号。自然,可以根据配置省略这个信号。
记录条件确定器ZF1041将在后面描述,它确定在微处理器ZA120的操作中相关周期是否满足用作记录对象的条件,这个条件能是各种条件中的任何条件。如果确定满足,记录条件确定器ZF1041供给一个条件满足信号。
将描述场景信息ZA210中有效信息的记录。
在说明例子中,根据记录请求信号ZF1040在有效信息存储器单元ZF1025中记录有效信息,该有效信息指示场景存储器ZF1020中保持的信息是否有效。有效信息由一个有效信息产生器ZF1032产生。在说明例子中,只要从记录控制器ZA104输出的无效请求信号ZF1043不指示无效状态,就将记录请求信号ZF1040的状态值供给有效信息存储器单元ZF1025(冗余配置)。
应用无效请求信号ZF1043,能对各场景控制在有效信息存储器单元ZF1025中的记录。虽然图31中未示出,但是使场景表ZA102中多个或全部有效信息存储器单元ZF1025的内容无效的控制同样必要(因为控制简单,所以未说明)。这是因为使所有单元的场景信息无效至少在复位时是必要的。
而且,在这样情况下,即由于在微处理器ZA120的操作状态下发生例外事件,引起场景表ZA102的内容不符合,必须丢弃信息,以及记录内容将不用于播放已经变得显而易见时,可以使多个或全部单元的有效信息无效(刷新)。应用这样的无效化,能有效地通过场景控制部分执行状态控制,而没有不符合。
在信息播放操作中,场景表ZA102的四个同步信息比较器ZF1720分别地把从四个同步信息存储器单元ZF1021输出的同步信息与从微处理器ZA120的同步信息ZA110比较,并且输出结果作为比较信号ZF1721。
与作为比较结果匹配的同步信息对应,多路复用器ZF1722至ZF1724在四个状态信息存储器单元ZF1022之中分别选择来自状态信息存储器单元的输出,并且把结果作为一个预处理控制信号组ZF1120输出给信息播放器ZA105。
同样地,多路复用器ZF1725从四个有效信息存储器单元ZF1025中选择一个与匹配同步信息对应的有效ID信号,并且把结果作为一个选择的有效信号ZF1121输出给信息播放器ZA105。
信息播放器ZA105对从场景表ZA120输出的预处理控制信号组ZF1120,使用相同预处理信号组ZF1120和从播放控制器ZA106输出的播放请求信号ZF1060,执行有效性逻辑处理(在说明例子为AND操作),对结果执行给定定时调整,并且把调整结果作为控制信息ZA112输出给微处理器ZA120。
在播放控制器ZA106中,根据播放条件确定器ZF1061的输出和播放使能信号ZF1062,产生播放请求信号ZF1060。与记录使能信号ZF1042同样,播放使能信号ZF1062例如可以是一个从微处理器ZA120中设置的控制寄存器供给的信号。自然,可以根据配置省略这个信号。播放条件确定器ZF1061确定在微处理器ZA120的操作中的相关周期是否满足用作播放对象的条件,这个条件能是各种条件中的任何一个。如果确定满足,播放条件确定器ZF1061供给一个条件满足信号。
图32表示图1中场景控制部分ZA101的详细配置的另一个例子。场景表ZA102的逻辑布局与图27所示的相同,虽然在本例中与属性“adrs”和“time”对应的场景数分别仅为1和3。
应用说明配置,能用比较小规模硬件配置一种在实际软件处理中有效的状态控制装置。
在说明配置中,其中在场景表ZA102中没有个别地记录和保持同步信息,图31中的个别同步信息存储器单元ZF1021和同步信息比较器ZF1720两者都不是必要的。这样能够实现硬件规模和功率消耗的减小。
在场景表ZA102的同步信息存储器ZF2021中代表性地记录同步信息。在记录操作中同步信息存储器ZF2021与图33所示的一个保持程序计数器ZG1111等效。
同样地,记录条件确定器ZF2041具有图33所示的状态比较器ZG120和状态计数器ZG130的条件确定功能。因此,应用说明配置,一旦同步信息存储器ZF2021中的值满足一个记录使能条件,在随后周期中将场景信息记录在状态信息存储器单元ZF2022至ZF2024和有效信息存储器单元ZF2025中。虽然图32没有明显地示出,但是一旦记录指针控制器ZF2022检测到指针的一个轮回,就终止记录操作。
而且,在播放操作中,一旦使用同步信息存储器ZF2021在播放控制器ZA106中进行了播放使能确定,播放指针控制器ZF2023就顺序地选择用于播放的场景信息,并且向信息播放器输出控制信息ZA112。
应用上述配置,能得到一个具有小规模硬件配置的场景表。
本发明的场景控制部分的配置不限于上述那些。类似地能容易推断出所说明配置的扩展和应用,例如对于场景表,一种搜索无效场景并且执行选择记录的方法,和一种检测所有记录场景并且执行状态转变的方法。
其次,将参照相关附图描述本发明的状态控制装置中用于记录和播放状态信息的选择操作控制。
在按照本发明的状态控制装置的最容易例子中,在各周期总可以执行状态信息的记录和播放的控制。也就是,在一个简单例子中,在消去对微处理器ZA120的复位之后,不变地执行状态信息的记录和播放的控制。
然而,在以上简单方法中,即使对一个重复发生频率低的指令串,也总执行记录。在最坏情况下,指令串可以继续总被记录,但是根本不用于播放而被丢弃。这仅仅徒劳地增加了功率消耗,并且因而从功率减小的观点来说不是优选的。
而且,在完全时间记录方法中,重要场景信息可能从存储器中溢出,并且因而相继被排出。因此,为了实现预定目标,必须提供一个能够记录大量场景信息的大电路规模存储器,并且这将增加成本和功率消耗。
因此,从功率消耗的观点来说,希望减小记录的次数,并且尽可能经常地使用播放的记录状态。为了实现这样,必须用场景控制部分选择性地对特定程序部分执行记录和播放操作。
以上的第一技术如图34A所示,其中对微处理器的控制寄存器(在说明例子中为PCR)设置用于启动记录和播放的使能信息。上述图31中的记录使能信号ZF1042和播放使能信号ZF1062是使用来自这个寄存器的信号的例子。
在以上技术中,对控制寄存器的设置必须由软件开发者实现,并且这将给软件开发者带来很重负担。而且,所得到的开发软件将不具有一般通用性,而是取决于特定微处理器的实现。即使对控制寄存器的设置通过使用编译器等自动进行,使软件开发者的负担最小,但是将出现与性能降低有关的问题。也就是,在重复频率高的程序部分中插入一条对控制寄存器设置的指令,导致增加了对于执行程序不必要的指令周期。这将使处理性能降低。另外可以远在重复频率高的程序部分之前的一个步骤中,执行对控制寄存器设置的指令。然而,在这种情况下,将不会解决上述存储器的溢出问题。因此必须提供一种方法,用于对重复频率高的程序部分适当地指示记录和播放操作的开始和终止。
图34B表示一种解决存储器的溢出问题的方法,其中借助于一条特定指令(在本例中为SET_RECORD指令)的执行,在周期单元中指定对其应用记录和播放操作的程序范围。
在以上例子中,把从SET_RECORD指令开始的十个周期的处理器状态确定为本发明的状态控制装置的控制对象。自然,与本方法类似,将容易推断出一种方法,其中使用本指令同样指定在其之后开始记录/播放的周期数。例如,可以在5个周期之后开始记录,并且记录可以一直继续到15个周期的结束。就电路来说使用一个简单计数器作为中心,能容易地实现这些。
图34C表示另一种方法,其中指定用于记录/播放开始的同步信息(本例中为程序计数器)的状态。
在说明例子中,用SET_START_PC指令指定在其应该开始记录/播放的程序计数器值。与图34B的方法不同,不必用绝对周期数严格地指定设置指令的开始和终止。因此,本方法针对周期的偏差是安全的,并且阻止软件的改变,而且能提高可维护性。另外,例如,因为能远在多个循环之外指示设置指令的执行,所以能有效地抑制处理性能的降低。自然,与本方法类似,容易推断能按类似方式指定对记录/播放的终止。
图34D还示出了另一种方法,其中当在一个设置指令(本例中为SET_COOL_STREAM指令)之后满足一个特定条件时,开始记录/播放。
在说明例子中,“程序计数器的加载的检测”给定为特定条件。通过执行“BR neg,L_INNER”指令,发生在SET_COOL_STREAM指令的执行之后程序计数器的第一加载。因此,能自动地发现L_INNER标记的指令,也就是,循环的头部。这是一种用于检测高负荷部分的非常有效并且花费不多的方法。也就是,通过本方法,能在许多没有复杂分支结构的一般软件程序中自动地发现最内部的循环。而且,对于软件生产,本方法是一种更通用的设置方法,与图34C的方法不同,不必要直接或间接地指定记录/播放的开始或终止部分。
图35A表示一个例子,其中用一般指令而不是专用指令来执行与图34D中的SET_COOL_STREAM指令等效的操作。在作为开始点的地址映射控制寄存器中应用写操作,能执行与SET_COOL_STREAM指令等效的操作。将容易推断出这适用于图34A至图34D的方法中任何一个。
图35B表示一个例子,其中将一条特定指令的发生用作一个确定是否应该开始和终止记录/播放的事件。例如,可以将分支指令、循环专用指令本身和高负荷部分中高度可能发生的指令用作这种事件,以达到有效的转变确定。图35B的方法将固定点倍增累积(FMAC)指令的出现用作开始记录/播放的确定条件。这种FMAC指令在高速计算部分例如信息处理中高度可能出现。因此合理地确定这条指令的执行意指高负荷部分。
其次,将描述一种通过图34A至图34D、图35A和图35B所示的软件,使设置信息的描述简化的方法。
图35C表示一个例子,其中用编译器的编译选项指定用于状态改变的使能控制的执行或不执行。在本例中,将一条用于状态改变的设置指令插入源文件“kernel.cpp”中。当指定这个选项(本说明例中-CS_on)时,例如,编译器插入图34A所示用于执行状态改变的设置指令。应用本方法,软件开发者能在编译模块单元中选择状态控制的执行或不执行,而不改变源程序,并且这能提高软件的生产率和一般通用性。自然,可以在编译中对选项给定级别,以使执行的状态改变控制的级别可选择。
图35D表示一个例子,其中用在源程序中给定的指示来指定用于状态改变的使能控制的执行或不执行。应用本方法,能在高级语言例如C语言的开发阶段,适当地指定一个控制执行部分,而不必要求在汇编级软件中直接描述。在说明例子中,用C语言的pragma指示对for循环执行按照本发明的状态控制。编译器在指定软件部分中插入一条用于状态改变的使能控制的设置指令,以使性能的降低最小。例如,通过分析循环结构,有可能在目标循环之前的一个步骤插入一条设置指令,从而抑制处理性能的降低。
以下,参照图33,将描述一种不用由软件预先执行一条设置指令而开始或终止记录和播放操作的方法。图33表示使记录和播放操作开始的最有效方法的一个例子,其中自动地检测高加载状态,并且在检测时自动激励带来记录和播放操作的开始。本方法使软件开发者的负担最小化,使成本减小,也就是,使功率消耗减小,对电路操作速度的影响最小,并且使电路规模减小,而且还能实现预定目标。在以下描述中,将程序计数器值用作条件检测的对象。自然,也能提供除程序计数器外的使用各种事件和条件的配置。
当产生一个用于不连续更新程序计数器的PC加载信号ZG102时,微处理器ZA120中的程序计数器ZG101读出一个新程序计数器值ZG103。虽然没有说明,随着程序的进行,程序计数器ZG101还执行正常递增操作。
在状态保持部分ZG110中,将上次产生PC加载信号ZG102时所得到的程序计数器值保持在保持程序计数器ZG111中。
一旦最近产生PC加载信号ZG102,在状态比较部分ZG120中的状态比较器ZG121就把程序计数器ZG101的值与保持程序计数器ZG111的值相比较,并且当两个值相互匹配时,产生计数器匹配信号ZG122。
而且,在状态比较部分ZG120中,计算用于启动比较的比较使能信号ZG123、PC加载信号ZG102和计数器匹配信号ZG122之间的OR,并且作为一个状态匹配信号ZG124输出。因此状态匹配信号ZG124是在产生PC加载信号并且启动比较的条件下,在当前PC值与最近PC值匹配时所产生的信号。
能省略比较使能信号ZG123,并且可以代替使用微处理器ZA120中一个控制寄存器的位信息。
在状态计数部分ZG130中,在生成状态匹配信号ZG124下使计数器ZG132递增其值。计数比较器ZG134把计数器ZG132的值与一个计数条件指定寄存器ZG133的值相比较。计算比较结果与计数使能信号ZG135之间的OR,并且作为一个条件满足信号ZG136输出结果。
自然,代替计数比较,可以根据配置使用一个可初始设置的向下计数器。
如上所述,在说明例子中,一旦使相同PC加载重复指定次数,就生成条件满足信号ZG136。例如,条件满足信号ZG136可以用作图31中记录条件确定器ZF1041的输出信号,从而仅当满足使PC加载重复指定次数的条件时,启动记录和播放操作的执行。
以上方法在检测频繁迭代的高加载软件部分时非常有效。例如,可以将一个具有十个或更多循环次数的分支控制结构确定为要控制的对象。
作为另一个例子,可以进行控制,以便跳过循环的第一迭代,并且使第二迭代经受记录。应用这种控制,即使对于在用条件执行功能例如判断功能进行的软件管道结构中的prolog消去描述,也能记录电路操作时有效的信息。
图34D的方法是一种通用技术,它能与图33的配置结合。
虽然参照图34D描述了使用程序计数器使记录和播放操作开始和终止的方法,但是也能使用除程序计数器外的内部状态。记录和播放操作的开始和终止也能使用程序ID来确定,以识别微处理器ZA120中执行的软件,以及特权级的改变及其值,作为开始点。应用这种信息,例如,仅能将特定程序ID用作按照本发明的状态控制的对象,并且这在性能和软件设计的安全性两方面都有效。
如果微处理器具有一个形成循环结构的专用循环指令,循环迭代值可以直接用作转变对象。否则,用于存取数据存储器的地址和存取间隔可以用作确定的对象,以用作操作状态的转变的条件。
在另一个例子中,可以将特定事件的检测用作确定的对象。例如,DMA完全中断的N次执行可以用作操作状态的转变的条件。使用这样条件,也可能预言程序已进入高加载部分。
以下,将描述本发明在除微处理器外的设备中的应用。
例如,作为一种方法,把软件处理静态地分配给硬件结构,以将软件改变为硬件。作为另一种方法,用软件映射信息在动态可重新配置的硬件设备中执行软件处理。这些不限于高级合成技术。在任何一种方法中,有一个与程序计数器等效的状态资源,它是常规微处理器所使用的基本因素,以控制软件执行的流程。例如,序列发生器和简单计数器中的状态值能是一个状态源。应用状态值和计数器,大体上唯一地确定硬件的内部状态,并且即刻控制执行。因此,这样的状态值和计数器值能用作场景控制部分的同步信息。
按照本发明,如上述微处理器那样,在除微处理器外的任何设备中,能适当地控制作为控制对象的电路结构。
本发明的适用范围不限于单个微处理器。例如,本发明还适用于一种由多个处理器组成的并行处理器配置。使用多个处理器的PC值、程序ID、操作方式等作为同步信息,记录在同步信息的状态下的有效内部状态,并且一旦发生相同同步状态,就能播放信息。例如,可以记录在其很少发生外部存储器存取的程序ID的组合,并且可以在随后条件匹配的时候停止存储器控制器,从而减小功率。
可以使任何确定信息可重写,以适应各种软件部分。一般地,即使在一个程序之内,高加载部分例如重复部分的特性也随软件部分相互不同。因此,为了改进性能,用一个可重写条件来控制这些选项是有效的。能使上述条件可重写。例如,在图33的例子中,可以使计数条件指定寄存器ZG133可重写。在图35B的例子中,可以使用作确定对象的指令类型可重写。
如上所述,通过根据软件处理的部分和类型来设置转变条件,能以较高频率执行按照本发明的状态控制。
应用上述程序计数器值的操作状态的转变技术适用于对记录操作和播放操作两者的开始和终止。
有一种用于检测播放操作的终止的方法,其中检测同步信息ZA110的值是否属于预置程序计数器值范围之外。例如,当检测到程序计数器值在使用程序计数器加载作为开始点而确定的预定范围之外时,能停止播放操作。应用这种方法,检测不再执行一个作为场景控制部分ZA101的播放控制的对象的循环,并且例如在检测时抑制播放操作,从而减小功率。
在另一种方法中,把指示在播放操作期间同步信息ZA110和场景表ZA102中的同步信息相互没能匹配的播放同步失败的检测次数,或发生播放同步失败的间隔,用作播放终止条件。应用这种方法,例如,当播放同步失败发生连续N次时,能抑制播放操作。
例如,假定经受场景控制部分ZA101的控制的软件程序,其中循环的每次迭代的周期数是十个周期,并且用场景控制部分ZA101记录的场景数是十个场景。
在以上例子中,如果连续十次检测到播放同步失败,则应该已经终止循环的处理,并且除循环外的软件部分应该在高可能性下执行。因此,在这种情况下,通过检测连续十次播放同步失败,并且在检测时抑制播放操作,能有效地得到功率减小。
其次,参照图36A和图36B,将描述在把微处理器ZA120的状态信息ZA111写入场景控制部分ZA101中的记录时,周期单元中的选择记录。
首先,将描述条件执行指令。
一般地,微处理器具有执行条件执行指令和称为判断的条件指定指令的功能。特别在由于管道级数的增加引起最近增加代价的趋势,以及在执行指令的并行度高的处理器中,条件执行功能非常重要。图3 7表示通过判断方法的指令的条件执行的一个例子。在本例中,仅当满足“c0”时,SUB指令和CMP指令才有效。
图36A表示一种用于与微处理器ZA120中条件执行指令有关的控制的配置。条件确定器ZF301确定是否满足指令执行的条件。解码器ZF302对指令进行解码,并且产生一个控制信号。
根据由条件确定器ZF301产生的条件确定信号ZF311,与由解码器ZF302通过对指令ZF310进行解码和使用相关控制信号产生的无条件控制信号ZF313之间的逻辑操作(在本说明例中为AND),产生一个用于控制功能组的控制信号ZF312。
在上述配置中,作为与同步信息ZA110对应的状态信息ZA111,必须从微处理器ZA120向场景控制部分ZA101供给无条件控制信号ZF313,而不是条件反射控制信号ZF312。
以上的理由如下。在场景控制部分ZA101中记录信息期间,如果在微处理器ZA120中指令执行时的条件确定为假,并且记录这个信息,则控制信号在随后播放操作中将总无效,并且这会引起故障。例如,假定仅在循环的第一迭代中无效化存储器存取指令。一旦记录在循环的第一迭代中的简单存储器存取控制信号ZF312,在循环的第二和随后迭代中将总执行停止控制,断定无存储器存取,因为场景控制部分ZA101根据这个记录来执行对存储器存取控制的播放控制。
图36B表示用于与微处理器ZA120中的条件执行指令有关的控制的另一种配置。在本配置中,与上述图36A的情况不同,其中条件确定器ZF301和解码器ZF302串联连接,没有得到与无条件控制信号ZF313等效的信号。如果把条件反射控制信号ZF312用作供给场景控制部分ZA101的状态信号ZA111,则发生上述引起故障的问题。在本配置中,作为避免发生故障的手段,用无效信号进行校正。
特别地,如说明的那样,为了处理控制信号ZF312很可能是错误信息的问题,产生一个无效信号ZF314,并且供给场景控制部分ZA101,以使微处理器ZA120输出的状态信号ZA111中可能发生的风险无效。
例如,无效信号ZF314可以与图31的例子中的无效请求信号ZF1043连接,以使相关场景信息无效,并且以此能防止用于播放控制的信息的错误使用。
考虑本发明的要旨,优选图36A的配置。然而,特别地在使用最近逻辑合成的电路设计技术中,不一定以其优化形式得到图36A的配置。因此,虽然在相关周期中可能没达到正状态控制,例如停止,但是图36B的配置对于安全电路操作仍有效。
关于流程控制指令例如分支指令的处理,使用上述场景表的条件字段的功能是有效的。
无效信号ZF314对于除条件确定外的情况也是有效的。例如,在一个微处理器中,在很少发生的例外状态下,例如当预定指令包在指令读取操作下不可用时发生的指令校准失败的情况下,可以产生无效信号。应用这个无效信号,能将相关周期中处理器状态的记录抑制为不稳定场景状态。
用指令和处理器状态可以产生无效信号ZF314。例如,可以在其中状态不值得记录并且优先级低的周期中产生无效信号,以抑制在场景表ZA102中记录状态,从而使得有效使用场景表ZA102的容量,并且抑制控制操作。
特别地,例如,当在执行一条简单转移(MOV)指令期间,用无效信号ZF314抑制记录的同时,对存储器存取指令和具有大操作范围的倍增累加指令的记录给予优先级。
作为另一个例子,当发布的指令数是最大的一个时,因为记录这个最大数效率低,所以可以停止这个数的记录。
可以确定微处理器ZA120的另一个内部状态,以执行无效控制。例如,把分配给微处理器ZA102中执行的各软件程序的程序ID用作微处理器ZA120的内部状态,可以执行条件控制。
最近的微处理器通过即刻在多个软件程序之间转换,能执行这些程序。通过根据程序ID执行无效控制,例如,在以时分方式在短时间单元内并行执行的一组程序之间,能选择性地仅使具有特定程序ID的程序经受按照本发明的状态控制。
不使用无效信号ZF314,而通过由场景控制部分ZA101基于多个周期确定状态,使场景控制部分ZA101另外可以产生无效请求信号ZF1043。
例如,当本发明的状态控制装置用于低功率控制时,低功率控制最理想地应该基于周期连续地执行。如果低功率控制每隔一个周期发生,会执行停止控制,并且在这种情况下,电路激活将在每个周期发生。即使在这种情况下,就功率来说也可以得到效果,而且还可能检测这样情况,并且抑制低功率控制。
特别地,基于三个周期观察一个状态,并且当发现该状态的低功率控制在各自周期中是“可能、不可能、可能”时,否定在开头周期中场景信息中的无效信息。
如上所述,按照本发明,也能进行对过去记录的场景信息的后备注释(向后反射),并且实际上有效。
以下,参照图38的流程图,将特别描述场景控制部分ZA101中记录控制器ZA104的操作过程。
在条件确定ZH102中,确定是否发生作为开始点的条件。在图33的例子中,这对应于程序计数器中加载的发生。
在条件确定ZH103中,确定条件是否与最后记录的开始条件相同。例如,把PC加载与用于匹配的最后程序计数器相比较,并且如果不匹配,记录当前程序计数器,用于处理ZH104中的下一个比较。
在条件确定ZH105中,确定开始点的匹配的次数是否达到一个固定数或一个任意可设置数。
在其中总执行记录的系统和其中明确指示记录开始的系统中,能省略处理ZH102、ZH103、ZH104和ZH105。
在条件确定ZH107中,确定是否满足特定记录终止条件。这种条件的一个例子是明确指定的记录次数。
在条件确定ZH108中,确定场景表ZA102的容量对于记录是否用完,并且如果是,则终止记录状态。例如,如果场景表ZA102中可记录的场景数是四,并且作为控制对象的软件重复部分具有六个周期,则对六个周期之中的四个周期进行控制。与根本不执行控制的情况比较,这样有助于性能的提高。不是必须要求记录重复部分例如循环结构的全部作为播放的前提条件。而且,确定是否由于一个事件例如中断和例外条件的发生而引起持续记录无用。如果是,则按照各例子的结构丢弃全部记录内容(ZH109)。
在条件确定ZH110中,确定是否应该记录微处理器ZA120的当前状态。例如,如果确定状态的播放无价值或播放有风险,则使相关周期撤出不再作为记录的对象。
在条件确定ZH111中,确定是否已经发生开始事件。例如,在说明例子中,确定是否发生程序计数器的重新加载。
如果发生了开始事件,在条件确定ZH112中确定当前事件是否与开始条件相同。如果是,这就意指已经进行循环的一次迭代,则终止记录,并且进行向播放操作的转变。
如果开始事件不与开始条件相同,则记录不必立即终止。例如,在开始事件是程序计数器的加载的情况下,当开始事件以一条分支指令发生时,分支不必在循环结构外部。
当事件分支到循环结构外部,记录内容可能没用于播放的可能性高,但是这样将不引起操作中的问题。具有引起操作中的问题的可能性的例外操作如关于条件确定ZH109所述。
在说明例子中,与开始事件的分支条件不匹配的分支将很可能是至循环内部的分支。理由是在直到条件确定ZH105的过程中,保证不发生跳跃到循环外部。
因而,例如,在重复结构中能包括一个条件分支。
在说明例子中,记录状态和播放状态相互分开,并且在记录的终止之后假定向播放状态的转变。自然,也能提供一种方法,其中同时执行记录和播放。
在条件确定ZH104中,可以使得能够存储多个开始条件,以启动与条件确定ZH103中的多个条件比较。应用这个设置,本发明的状态控制装置将能够执行对更复杂控制结构的状态控制。
例如,本发明适用于这种情况,在循环中频繁地使用至循环内部的分支,和这种情况,在循环中经常发生控制改变,该循环不是结构简单,而是频繁地使用分支,并且结果频繁地执行一个给定指令部分。
(实施例2)
图39是表示本发明的实施例2中的微处理器的状态控制装置的配置的一个例子。场景控制部分ZA101的配置与实施例1所述的相同。
在实施例1中,信息处理设备的状态改变主要描述为使功率减小。在本实施例中,将主要集中在提供处理性能的措施进行描述。
在图39中,使用本发明的场景控制部分ZA101控制微处理器ZA120。在微处理器ZA120中,存储器存取控制器ZJ103对从一个指令寄存器ZJ101供给的指令ZJ102进行解码,并且用控制信号ZJ104执行对数据存储器ZJ105的加载或存储存取。
场景控制部分ZA101按照来自微处理器ZA120的同步信息ZA110输出控制信号ZA112。注意在本例中将程序计数器值用作同步信息ZA110。
将控制信号ZA112供给一个构成状态控制器ZA107的预加载控制器ZJ106。预加载控制器ZJ106按照控制信号ZA112向存储器控制器ZJ103输出一个预加载请求ZJ107。
在接收到预加载请求ZJ107时,存储器控制器ZJ103控制对数据存储器ZJ105的数据加载的执行。
图40是表示在本发明的实施例2中微处理器的状态控制装置的操作的定时图。
在图40的部分(1)中,示出指令的执行定时。在说明例子中,在时间t2开始作为第N条指令的LD指令,并且在时间t5执行存储器存取。
在图40的部分(2)中,示出场景控制装置中同步信息和播放控制信息的操作定时。在说明例子中,与LD指令有关的指示与N-2内的同步信息相关联,并且作为场景信息记录。因此,在时间t1,微处理器ZA120的同步信息ZA110处在N-2的状态,此时将与LD指令有关的信息作为控制信息ZA112输出。
在图40的部分(3)中,示出微处理器ZA120中控制状态的定时。与在时间t1从场景控制装置ZA101输出的LD指令有关的控制信号在时间t1由预加载控制器ZJ106接收。存储器控制器ZJ103用来自预加载控制器ZJ106的预加载请求在时间t2开始存储器存取,并且在说明例子中在时间t4完成存储器存取。使用这种预先存储器存取机制,例如,能预先填满数据高速缓冲存储器。在说明例子中,能预先在时间t5之前三个周期的时间t2开始存储器存取,在时间t5开始原始LD指令的存储器存取。而且,在开始LD指令的存储器存取的时间t5,存储器已经填满数据。因此,不发生LD指令的未填满代价,并且因而不发生性能的降低。自然,因为能预先分开地计算所要存取的地址的递增,所以可以在早先周期中进行存储器存取请求,并且这样提高性能。
如上所述,通过使用按照本发明的状态控制方法,能对信息处理设备进行预先状态改变控制,并且因而能提高处理性能。
图41表示本发明的实施例2中用于微处理器的状态控制装置的另一个例子。
参考图41,分支控制器ZJ305能预先用从分支预取控制器ZJ306供给的预取请求ZJ307,预取分支目标指令。如图40的例子那样,根据来自场景控制部分ZA101的控制信息ZA112,分支预取控制器ZJ306执行控制。
而且,在说明例子中,能在相关分支指令的执行之前获得分支目标指令。因此,即使用小规模硬件也能提高处理性能,而不降低软件生产率。
在实施例2中,描述了与数据存储器存取和分支目标指令的读取有关的预先操作。自然,本发明也适用于除以上外的各种操作。
按照本发明,一般对信息处理设备即刻执行预先和选择信息供给,以执行设备的状态改变,并且因而达到性能的提高。因此,能推断处理器本身的状态改变、动态可重新配置逻辑的状态改变、外围扩展机的驱动等。
尽管已经就优选实施例描述了本发明,但是对本领域技术人员来说将会显而易见的是,所公开的发明可以按许多方式变更,并且可以假定除特别提出和以上描述外的许多实施例。因此,打算由所附的权利要求来包括属于本发明的真正精神和范围的本发明的所有变更。

Claims (35)

1.一种用于控制信息处理设备的内部状态的状态控制装置,包括:
场景表;
信息记录器;
信息播放器;和
状态改变控制器,
其中所述信息记录器从所述信息处理设备获得同步信息和一项或多项状态信息,并且将所获得的同步信息和相互关联的状态信息记录在所述场景表中,
所述信息播放器从所述信息处理设备接收同步信息,从所述场景表获得与所述场景表中存储的所述同步信息之中的与所述接收的同步信息相应的同步信息相关联的状态信息,并且将所述获得的状态信息供给所述状态改变控制器,
所述状态改变控制器根据从所述信息播放器接收的所述状态信息,控制所述信息处理设备的所述内部,
所述同步信息是用于识别在给定时间点的所述信息处理设备的执行状态的信息,以及
所述状态信息是表示在与所述同步信息同步的给定时间点的所述信息处理设备的内部状态的信息。
2.根据权利要求1的状态控制装置,其中所述信息记录器在将所述信息记录在所述场景表中之前,对所述获得的同步信息和/或所述获得的状态信息执行同步调整和/或信息校正。
3.根据权利要求1的状态控制装置,其中所述信息播放器在将所述状态信息供给所述状态改变控制器之前,对所述获得的状态信息执行同步调整和/或信息校正。
4.根据权利要求2的状态控制装置,其中所述信息记录器将所述获得的同步信息和在与所述同步信息相同的周期中的一项或多项相互关联的状态信息记录在所述场景表中。
5.根据权利要求2的状态控制装置,其中所述信息记录器将所述获得的同步信息和在与所述同步信息不同的周期中的一项或多项相互关联的状态信息记录在所述场景表中。
6.根据权利要求1的状态控制装置,还包括:
记录控制器,用于在预定条件匹配的时候和/或在预定周期内,指令所述信息记录器开始和/或终止所述信息在所述场景表中的记录;和
播放控制器,用于在预定条件匹配的时候和/或在预定周期内,指令所述信息播放器开始和/或终止所述状态信息的供给。
7.根据权利要求6的状态控制装置,还包括:
无效控制器,用于当所述记录/播放状态离开预定状态时,指令所述记录控制器使记录无效,或指令所述播放控制器使供给无效。
8.根据权利要求6的状态控制装置,其中所述记录控制器和所述播放控制器根据一次或给定次数对所述信息处理设备的给定内部状态的检测,开始或终止记录和供给。
9.根据权利要求8的状态控制装置,其中由所述记录控制器和所述播放控制器检测的所述内部状态包括所述信息处理设备中的处理流程改变。
10.根据权利要求8的状态控制装置,其中所述信息处理设备包括微处理器,并且
由所述记录控制器和所述播放控制器检测的所述内部状态包括下述中的至少一个:
所述微处理器中程序计数器的不连续改变,
与所述微处理器中所述程序计数器的给定值或给定值范围的比较,
与所述微处理器中软件状态例如程序识别号和特权级值的比较,
与所述微处理器中重复指令执行时段内的迭代状态的比较,
用于所述微处理器中内部状态的转变的专用指令,
在所述微处理器中以高可能性在指令重复部分中出现的指令的指定,
在所述微处理器中的事件例如中断的发生,和
在所述微处理器中预定定时的指定。
11.根据权利要求8的状态控制装置,其中条件确定的开始等到给定设置指令的执行之后。
12.根据权利要求8的状态控制装置,其中由所述记录控制器和所述播放控制器检测的所述内部状态包括下述中的至少一个:
所述信息处理设备中状态机的状态值,
所述信息处理设备中计数器的计数值,
在以给定次数或给定间隔发生同步信息比较失配的情况下,播放的终止,和
在发生中断或例外的情况下,记录或播放的终止。
13.根据权利要求8的状态控制装置,其中所述信息处理设备包括并行处理器,并且
由所述记录控制器和所述播放控制器检测的所述内部状态包括所述并行处理器的多个处理器的操作状态。
14.根据权利要求8的状态控制装置,其中要检测的所述确定条件是可重写的。
15.根据权利要求8的状态控制装置,其中所述信息处理设备包括微处理器,并且
由所述记录控制器和所述播放控制器检测的所述内部状态包括在所述微处理器中的所述程序计数器值在给定范围之外的情况下,播放的终止。
16.根据权利要求8的状态控制装置,其中如果发生由于不正确播放状态引起的控制状态,则执行例外操作。
17.根据权利要求1的状态控制装置,其中所述信息处理设备包括微处理器,并且
在所述场景表或要由所述状态改变控制器控制的对象中记录的所述状态信息包括下述中的至少一个:
所述微处理器中发布的指令数,
所述微处理器中发布的指令组合的信息,
所述微处理器中发布的指令之间的依赖性,
所述微处理器中的指令解码状态,
所述微处理器中的寄存器存取状态,
所述微处理器中的冒险检测状态,
所述微处理器中的数据转发检测状态,
所述微处理器中的数据路线选择状态,
所述微处理器中的功能停止信息,
所述微处理器中的时钟停止信息,
所述微处理器中的条件执行状态,
所述微处理器中的分支指令发布状态,和
所述微处理器中的存储器存取状态。
18.根据权利要求1的状态控制装置,其中所述信息处理设备包括动态可重新配置逻辑,并且
在所述场景表或要由所述状态改变控制器控制的对象中记录的所述状态信息,包括所述动态可重新配置逻辑的内部配置状态。
19.根据权利要求1的状态控制装置,其中所述场景表对于各条目,至少保持无效信息、条件信息和属性信息中的一个,作为所述同步信息的类型。
20.根据权利要求1的状态控制装置,其中所述场景表至少保持所述程序计数器值、所述计数器值、状态机的所述状态值和所述信息处理设备中的事件值中的一个,作为所述同步信息。
21.根据权利要求1的状态控制装置,其中所述场景表保持所述程序计数器的全部或部分位,作为按照属性信息的所述同步信息。
22.根据权利要求1的状态控制装置,其中所述场景表使用各条目的所述同步信息,作为按照属性信息的程序计数值或周期时间信息。
23.根据权利要求1的状态控制装置,其中所述场景表使用各条目的所述同步信息,作为按照属性信息的程序计数值或状态改变发生信息。
24.根据权利要求1的状态控制装置,其中用指令类型、条件指令执行中的条件状态、软件状态例如程序标识号和特权级值、以及例外发生状态中的任何一个,确定是否应该执行在所述场景表中的记录。
25.根据权利要求1的状态控制装置,其中在所述场景表中进行记录时,能校正和重新记录当前在有效状态下的任何条目。
26.根据权利要求1的状态控制装置,其中在所述场景表中进行记录时,一次使全部或多个条目无效。
27.根据权利要求1的状态控制装置,其中能个别地或与记录/播放使能/禁止指定信息一起停止记录或播放操作。
28.根据权利要求1的状态控制装置,其中对于各软件状态例如程序标识号和特权级值,能个别地或与个别使能/禁止指定信息一起停止记录或播放操作。
29.根据权利要求1的状态控制装置,其中能任意地改变所述场景表中记录的信息的组合。
30.根据权利要求1的状态控制装置,其中能根据所述场景表中记录的信息提取给定软件部分的特征。
31.根据权利要求17的状态控制装置,其中所述同步信息与存储器存取信息相关联,以启动信息供给。
32.一种用于控制信息处理设备的内部状态的方法,包括步骤:
(a)准备场景表,用于可重写地记录用于识别所述信息处理设备的执行状态的至少一组同步信息,和在与所述同步信息同步的所述信息处理设备的相同周期或多个不同周期中的至少一项状态信息;
(b)使所述同步信息与所述状态信息相关联,按要求执行同步调整,如果必要校正所述状态信息,并且将所述结果记录在所述场景表中;
(c)在给定条件匹配的时候或在给定周期中,选择地允许所述场景表中的所述记录的开始和终止;
(d)在相同周期或在一个周期或更多周期之前,预言性地供给与所述信息处理设备中的所述同步信息同步、并且与所述场景表中记录的所述同步信息相关联的状态信息;
(e)在给定条件匹配的时候或在给定周期中,选择地允许所述步骤(d)的所述信息供给的开始和终止;和
(f)根据所述步骤(d)中供给的状态信息组,控制所述信息处理设备的所述内部,而不必要求所述信息处理设备中所述相关周期的所述信息处理结果。
33.一种状态控制方法,包括步骤:
(a)记录与给定周期中给定同步信息有关的内部状态;
(b)选择地检索所记录的信息,并且允许预先供给所述信息;和
(c)如果条件不满足,取消所述记录或所述供给。
34.一种指令翻译方法,用在一种用于权利要求1的状态控制装置的指令翻译器例如编译器中,其中可用所述指令翻译器中的选项指示作出选择,是否插入执行所述状态控制装置的状态改变的指令。
35.一种指令翻译方法,用在一种用于权利要求1的状态控制装置的指令翻译器例如编译器中,其中可用源程序中的指示作出选择,是否插入执行所述状态控制装置的状态改变的指令。
CNB200510051058XA 2004-03-02 2005-03-01 用于控制信息处理设备的内部状态的装置和方法 Expired - Fee Related CN100363888C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004058056A JP4784912B2 (ja) 2004-03-02 2004-03-02 情報処理装置
JP058056/2004 2004-03-02

Publications (2)

Publication Number Publication Date
CN1664777A true CN1664777A (zh) 2005-09-07
CN100363888C CN100363888C (zh) 2008-01-23

Family

ID=34909089

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200510051058XA Expired - Fee Related CN100363888C (zh) 2004-03-02 2005-03-01 用于控制信息处理设备的内部状态的装置和方法

Country Status (3)

Country Link
US (2) US20050198546A1 (zh)
JP (1) JP4784912B2 (zh)
CN (1) CN100363888C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108572613A (zh) * 2017-03-14 2018-09-25 欧姆龙株式会社 控制装置、信息处理方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698542B2 (en) * 2006-08-25 2010-04-13 Infineon Technologies Ag Circuit and method for comparing program counter values
EP2402859A1 (en) * 2010-07-02 2012-01-04 STMicroelectronics (Grenoble 2) SAS Die and package comprising a plurality of dies
CN102419714B (zh) * 2010-09-28 2015-01-07 程碧波 程序编译方法、编译器及计算机
WO2013080289A1 (ja) * 2011-11-28 2013-06-06 富士通株式会社 信号処理装置及び信号処理方法
CN103577156B (zh) * 2012-08-06 2017-05-24 联想(北京)有限公司 一种信息处理的方法及电子设备
CN103853308B (zh) * 2012-12-04 2018-08-31 联想(北京)有限公司 用于信息处理的方法和装置
CN103559013A (zh) * 2013-11-04 2014-02-05 北京旋极信息技术股份有限公司 一种电子签名设备及其指令处理方法
CN106200851A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种信息处理方法和电子设备
CN111966075B (zh) * 2020-08-07 2023-08-15 珠海格力电器股份有限公司 设备诊断方法、装置、存储介质及控制设备
US20220107738A1 (en) * 2020-10-06 2022-04-07 Kioxia Corporation Read controller and input/output controller
CN112579334B (zh) * 2020-12-08 2023-04-25 海光信息技术股份有限公司 基于以太网的面向处理器的信号记录方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US5909573A (en) * 1996-03-28 1999-06-01 Intel Corporation Method of branch prediction using loop counters
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
JPH11212788A (ja) * 1998-01-28 1999-08-06 Toshiba Corp プロセッサのデータ供給装置
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
KR20020050270A (ko) * 1999-11-09 2002-06-26 토토라노 제이. 빈센트 환경에 따른 프로세서의 작동 파라미터의 동적 조절방법
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
JP2001306321A (ja) * 2000-04-19 2001-11-02 Matsushita Electric Ind Co Ltd プロセッサ
GB2363480B (en) * 2000-06-13 2002-05-08 Siroyan Ltd Predicated execution of instructions in processors
US6662294B1 (en) * 2000-09-28 2003-12-09 International Business Machines Corporation Converting short branches to predicated instructions
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7363467B2 (en) * 2002-01-03 2008-04-22 Intel Corporation Dependence-chain processing using trace descriptors having dependency descriptors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108572613A (zh) * 2017-03-14 2018-09-25 欧姆龙株式会社 控制装置、信息处理方法

Also Published As

Publication number Publication date
JP4784912B2 (ja) 2011-10-05
US20050198546A1 (en) 2005-09-08
US20100005278A1 (en) 2010-01-07
JP2005250697A (ja) 2005-09-15
CN100363888C (zh) 2008-01-23

Similar Documents

Publication Publication Date Title
CN1664777A (zh) 用于控制信息处理设备的内部状态的装置和方法
CN1202470C (zh) 处理器
CN1303536C (zh) 执行自高速缓存的快速推测式加载运算的微处理器及方法
CN1153155C (zh) 装有高效利用主处理器中的寄存器数据的协处理器的信息处理装置
CN1264089C (zh) 编译设备和编译方法
CN1260646C (zh) 附有第二预测装置的假想分支目标地址高速缓存
CN1280714C (zh) 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器
CN1217262C (zh) 假想分支目标地址高速缓存中置换目标地址的装置及方法
CN1154908C (zh) 数据输入存贮器并对存储器内存入的数据进行运算输出并能高速操作的数据输入输出装置
CN1472646A (zh) 适应性强具备最佳化功能的编译装置
CN1175034A (zh) 存储器控制器和存储器控制系统
CN1612088A (zh) 处理器系统、指令序列优化装置和指令序列优化程序
CN1632877A (zh) 可变延滞时间堆栈快取存储器及提供资料的方法
CN1498367A (zh) 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法
CN1217271C (zh) 假想分支目标地址高速缓存
CN1934543A (zh) 高速缓冲存储器及其控制方法
CN1226026A (zh) 数据处理装置
CN1469241A (zh) 处理器、程序变换装置和变换方法以及计算机程序
CN1641567A (zh) 自堆栈快取存储器进行快速推测性弹出操作方法及装置
CN1086521C (zh) 减小时钟信号和数据信号间失真的集成电路、系统和方法
CN1942869A (zh) 组合存储器装置、数据写入方法和程序
CN1577291A (zh) 程序调试装置、程序调试方法及程序
CN1991798A (zh) 半导体存储装置
CN1137421C (zh) 可编程控制器
CN1758222A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080123

Termination date: 20130301