CN1426553B - 用于暂停处理器中执行过程的方法和装置 - Google Patents

用于暂停处理器中执行过程的方法和装置 Download PDF

Info

Publication number
CN1426553B
CN1426553B CN01806539.2A CN01806539A CN1426553B CN 1426553 B CN1426553 B CN 1426553B CN 01806539 A CN01806539 A CN 01806539A CN 1426553 B CN1426553 B CN 1426553B
Authority
CN
China
Prior art keywords
instruction
thread
decoding unit
execution
processing
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.)
Expired - Fee Related
Application number
CN01806539.2A
Other languages
English (en)
Other versions
CN1426553A (zh
Inventor
D·T·马尔
D·罗德格斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1426553A publication Critical patent/CN1426553A/zh
Application granted granted Critical
Publication of CN1426553B publication Critical patent/CN1426553B/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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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

描述用于暂停来自一个线程的指令执行的方法和装置。在一种实施方案中,暂停指令作为两种指令或微指令来实现:SET指令和READ指令。当接收到用于指定线程的SET标志时,SET指令在存储器中设置一Bit标志表示已经暂停对该线程的执行。SET指令被放在流水线中以便执行。然而用于那个线程的READ指令被阻止进入流水线直到SET指令被执行且完成(由清除Bit标志引起)。一旦Bit标志被清除,READ指令被放在流水线中以便执行。在暂停一个线程的处理的时间中,其他线程的执行可能继续。

Description

用于暂停处理器中执行过程的方法和装置
发明领域
本发明涉及用于暂停在一处理器等中执行过程的方法和装置。更具体而言,本发明的实施方案涉及控制暂停多个线程中的一个的执行过程,以便将优先权给另一个线程或省电。
发明背景
如本领域所公知的,处理器包括许多子模块,每一子模块适用于执行特定任务。在一公知处理器中,这些子模块包括如下:指令高速缓冲存储器,取指令单元用于从指令高速缓冲存储器中取适当指令;译码逻辑,将指令译码成最后或中间格式;微操作逻辑,将中间指令转换成用于执行的最后格式;以及一执行单元,执行最后格式指令(在一些例子中来自译码逻辑,而在另外的例子中来自微操作逻辑)。
在时钟的操作下,处理器系统的执行单元执行提交给它的连续指令。如本领域所公知的,指令可提供给执行单元,该执行单元对处理器系统来说不产生重大的工作作用。例如,在处理器系统中,NOP(空操作)指令使执行单元不对“指令周期”采取行动。在此所使用的指令周期是处理器所需要的用于执行一指令的一设定的处理器时钟周期数。实际效果是,NOP指令处理器阻塞一个指令周期。
NOP指令的局限在于它使处理器阻塞一个设定的时间单位。因此,使用一个或多个NOP指令,处理器仅能被阻塞等于总的许多指令周期的一段时间。
NOP指令的另一个局限是处理器的执行单元不能进行任何其他指令执行。例如,由执行单元要执行的指令可被细分为两个或多个“线程”。每一线程是用来实现一指定任务的一组指令。因此,如果其中一个线程包括一NOP指令,该指令由执行单元执行并且阻塞整个处理器(即在NOP指令执行期间不能完成其他线程的执行)。
由上可知,需要一种避免这些局限的暂停处理器执行的改进的方法和装置。
发明内容
根据本发明的实施方案,一种暂停执行线程中指令的方法被提出。首先,确定用于第一线程的下一指令是否是第一种类型的指令。如果是,要执行的第一线程的指令将不被处理而要执行的来自第二线程的指令能被处理。
附图说明
图1是采用本发明附加实施方案处理器中一部分的方框图。
图2是根据本发明附加实施方案,表示实施方案方法的流程图。
图3是采用本发明附加实施方案的处理器的一部分的方框图。
图4是根据本发明附加实施方案,表示附加实施方案方法的流程图。
具体实施方式
参考图1,示出了采用本发明的实施方案的处理器系统10中一部分的例子。在该实施方案中,处理器是多线程处理器,其中执行理论上被细分为两个或多个逻辑处理器。在此,术语“线程”指的是指令码序列。
例如,在电视电话应用中,处理器可被要求执行代码来处理视频图像数据以及音频数据。可以是分开的代码序列,其执行被指定来逐个处理这些数据类型。因此,第一线程可包括用于视频图像数据处理的指令而第二线程可用于音频数据处理的指令。在该例中,有一个单独的执行单元(无次序的执行单元31),一次可执行一个指令。然而,处理器系统10可被视为两个逻辑处理器,第一逻辑处理器执行来自第一线程(线程0)的指令以及第二逻辑处理器执行来自第二线程(线程1)的指令。
在本处理器系统10的实施方案中,指令由取指令单元11抽取并提供给队列13并被存储为线程0队列或线程1队列的一部分。本领域的技术人员能理解在处理器系统10中,使用的队列可被用来存储多于两个线程。来自两个线程的指令被提供给复用器(MUX)15,以及控制逻辑17用来控制是线程0还是线程1的指令被提供给译码单元21。译码单元21可将指令转换成两个或多个微指令并将该指令提供给队列23。队列23的输出被提供给MUX,基于控制逻辑26的操作,MUX将来自线程0或线程1的指令提供给重命名/分配单元27。重命名/分配单元27依次将指令提供给队列28。基于进度控制逻辑30的操作,MUX29在线程0队列和线程1队列间选择。而进度控制逻辑30也接收与MUX29相同的输入。MUX29的输出被提供给执行指令的执行单元31。然后指令被放在队列33中。队列33的输出被提供给MUX34。基于控制逻辑35的操作,MUX34将来自线程0和线程1的指令发送给完成(retire)单元36。
根据本发明的第一实施方案,暂停指令被用来挂起线程的指令的处理。在图1例中,暂停指令由取指令单元11抽取并存储在线程0队列中。线程0队列的输出经MUX15被提供给译码单元21,译码单元21将暂停指令译码成两个微指令:SET指令和READ指令。在译码单元21,SET指令使一值(如位标志19)存储在存储器中,该值表示用于特定线程(在该实例中为线程0)的SET指令已经被接收。然后SET指令被送入“流水线”中。在该实施方案中,“流水线”包括重命名/分配单元27以及执行单元31以及相关队列。执行单元31不对SET指令采取行动(即将其视为已知的NOP指令)。只要SET指令由完成单元26完成,标志19被复位。
在译码单元21,READ指令不被放入流水线中直到标志19被复位。因此,如果在队列13中有来自线程1的指令,这些指令能被译码单元21译码并放入流水线中。因此,取决于队列23、28和33中线程1指令的数量将影响线程0的执行将被暂停多久(即,在流水线中线程1指令的数量越多,SET指令到达退役(retire)单元36的时间越长)。只要标志19被复位,READ指令被发送到队列23并最终被发送到执行单元31。使用SET指令,执行单元不采取行动,如同NOP指令一样。在本发明的实施例,译码单元21从线程0至线程1交替指令的译码。在用于线程0的SET指令后,例如,译码在译码线程1的指令和检验标志19的值直到它被复位间交替。
在该实施方案中译码单元21的操作的例子如图2所示。译码后,在块40中,下一线程的指令被确定。在判定块41中,判定该指令是否是SET指令。如果是,控制传送到块43,在该块处,设置存储器中的位标志。在块47中,SET指令被放入流水线中用于执行单元。然后,控制返回到块40来确定下一线程的下一指令。如果指令不是SET指令,控制传送到判定块45来确定该指令是否是READ指令。如果是,则控制传送到判定块49以确定存储器中适当的位标志是否被设置。如果存储器中位标志被设置,那么控制传送到块51,在该块处指令被从流水线阻止(因此,临时阻止执行来自那个特定线程的指令)。然后控制权被转移到块40来确定来自下一线程的下一指令。如果位标志未被设置(判定块49),那么控制传送到块53,在该块处指令(在这种情况下为READ指令)被放入流水线中用于执行。如上所述,在该实施例中当SET指令被退役时,位标志被复位。然后控制返回到块40来确定来自下一线程的下一指令。同样,如果指令既不是SET指令也不是READ指令,用一正常的方法将其放入流水线中用于执行。
如从上面所看到的,SET指令用来在线程的执行中引起一暂停直到该指令完成。这是因为下述的READ指令直到阻塞那个线程其后指令执行的SET指令有效地退役才被放入流水线中。在一个线程的暂停期间,那个线程用于执行的的指令不被处理(例如,放入流水线中,发送到执行单元等等)而来自另一线程用于执行的指令可被处理。当一个线程的执行被暂停时,用于处理系统的总的功耗可被降低。
根据本发明的另一实施方案,暂停指令用定时器或计数器来实现。如图3所示,图1的存储器标志19由计数器39代替。作为第一个例子,当译码单元21确定第一线程的下一指令是暂停指令(即具有特定位格式的指令),那么预定值被送入计数器39中。在该例子中,计数器39从预定值递减计数到0。当计数器递减计数到0时,第二线程(如线程1)的指令被译码并送入流水线中。在该例子中,译码单元21在检验计数器39的值(不是译码线程0的指令)和译码线程1的指令间交替执行。只要计数器结束(如到0),那个线程的下一指令能被装入流水线中。作为第二个例子,暂停指令包括一操作数(即载入到定时器中的值)。因此,这就允许译码单元21将该操作数值装入计数器39以便用于暂停指令的时间长度能被设置。
图3的处理系统的操作的例子如图4所示。在判定块60中,确定该计数器是否到达用于当前线程的预定值。如果没有设置计数器或该值已经到达预定值(如0),那么控制传送到块61以确定用于当前线程的下一指令。如果该指令是暂停指令(判定块63),那么控制传送到判定块65以确定操作数是否与暂停指令有关。如果操作数与暂停指令有关,那么控制传送到块67以将该值装入计数器(然后控制传送到块73以改变到下一线程)。如果操作数与暂停指令无关,那么控制传送到块71中以将预定值装入计数器(然后控制再次传送到块73以改变到下一线程)。如果在判定块63中,指令不是暂停指令,那么控制权传送到69以便将该指令送入流水线中。
根据本发明的实施方案,操作系统使用的暂停指令可作为一标识,表示处理系统硬件可进入一低功率模式。因此,在处理器系统的操作系统代码(或任何其他软件代码)的执行可使暂停指令转移到译码单元。如上所述,线程的暂停执行可导致在总的功耗上的降低。响应译码暂停指令,处理系统10按照需要可采取其他措施来进一步降低总功耗。
尽管在此特定解释和说明了几个实施方案,应能理解不脱离本发明的精神和想要的范围对本发明的修改和改变通过上述教导和附加权利要求的范围也将被包括。

Claims (33)

1.在线程中暂停执行指令的方法,包括:
在执行第一指令之前,确定用于第一线程的所述第一指令是否被解码为第一类型的指令;
如果所述第一指令被解码为第一类型,则在一时间周期不处理所述第一线程用于执行的指令,而能处理来自第二线程用于执行的指令;和
响应所述第一指令的执行恢复所述第一线程的执行。
2.权利要求1所述的方法,进一步包含将所述第一指令解码成第一微指令和第二微指令。
3.权利要求2所述的方法,其中所述第一微指令使用于所述第一线程的值存储在存储器中。
4.权利要求3所述的方法,进一步包括:
当存储在存储器中的所述值被复位时,处理用于执行的所述第二微指令。
5.权利要求4所述的方法,其中当所述第一微指令退役时,存储在存储器中的所述值被复位。
6.一种在线程中暂停执行指令的方法,包括:
在执行第一指令之前,确定用于第一线程的所述第一指令是否被解码为第一类型的指令;
启动一计数器来对时钟周期进行计数;以及
使所述第一线程的指令免于为执行而被处理,直到所述计数器达到预定值,而第二线程的指令为执行而被处理。
7.权利要求6所述的方法,其中所述第一指令包括一操作数,所述启动步骤包括将所述操作数装入所述计数器中。
8.权利要求6所述的方法,进一步包含在所述计数器到达所述预定值后恢复用于所述第一线程的执行指令的处理。
9.一种在线程中暂停执行指令的方法,包括:
在处理器系统中的译码单元接收来自第一线程的暂停指令;
在一时间周期不处理用于执行的所述第一线程的指令,而能处理来自第二线程要执行的指令;以及
响应所述暂停指令,为执行而恢复所述第一线程的处理。
10.权利要求9所述的方法,其中软件代码的执行使所述暂停指令在所述译码单元被接收。
11.一种暂停执行线程中的指令的装置,包括:
一译码单元,用于在执行之前确定用于第一线程的第一指令是否为第一类型的指令,所述译码单元使所述第一线程的指令在一时间周期免于为执行而被处理,而能处理来自第二线程要执行的指令,所述译码单元进一步响应所述第一指令的处理而使所述第一线程的指令得以恢复处理。
12.权利要求11所述的装置,其中所述第一指令被解码成第一微指令和第二微指令。
13.权利要求12所述的装置,进一步包括:
一存储器,其中所述第一微指令使所述第一线程的数值存储在存储器中。
14.权利要求13所述的装置,其中当存储在存储器中的所述值被复位时,所述译码单元处理要执行的所述第二微指令。
15.权利要求14所述的装置,进一步包括:
一退役单元,耦合到所述译码单元,其中当所述第一微指令由所述退役单元退役时,所述退役单元使存储在存储器的所述值复位。
16.一种暂停执行线程中的指令的装置,包括:
一译码单元,在执行之前确定用于第一线程的第一指令是否是第一类型的指令;
一计数器,连接至所述译码单元,如果所述第一线程的所述第一指令属于所述第一类型时,启动该计数器,所述译码单元不处理所述第一线程用于执行的指令直到所述计数器到达一预定值;和
其中第二线程的指令被处理执行,而所述第一线程的指令免于被处理,并且其中所述译码单元在所述计数器达到预定值之后恢复处理所述第一线程的指令。
17.权利要求16所述的装置,其中所述第一指令包括被载入到所述计数器的操作数。
18.权利要求16所述的装置,其中所述译码单元能继续操作而所述第一线程免于被处理。
19.用于降低功耗的装置,包括:
一处理器包括:
一译码单元,接收来自所述处理器中的第一线程的第一指令,在执行所述第一指令之前,响应所述第一线程的第一指令,所述译码单元不处理执行所述第一线程的指令一时间周期,而能处理用于执行的第二线程的指令,并且所述译码单元进一步在所述第一指令的所述执行之后恢复允许所述第一线程的指令被处理执行。
20.权利要求19所述的装置,其中软件代码在所述处理器的执行使所述第一指令在所述译码单元得以接收。
21.一种中止处理来自线程的指令的处理器,包括:
一译码单元,在执行之前从第一线程接收第一指令并响应在所述译码单元接收所述第一指令,而使所述处理器中止来自所述第一线程的指令的处理一时间周期,其中在所述时间周期期间,所述译码单元能处理来自第二线程的指令,以及在所述第一指令的执行之后,所述译码单元恢复处理来自所述第一线程的指令。
22.权利要求21所述的处理器,其中在所述时间周期期间所述译码单元允许执行来自所述第二线程的指令。
23.权利要求22所述的处理器,其中在所述时间周期期间,所述译码单元中止所述第一指令后的、来自所述第一线程的指令的处理。
24.权利要求23所述的处理器,其中所述译码单元通过防止所述第一线程的其他指令的调度来防止执行所述第一线程的指令直到所述第一指令退役。
25.权利要求21所述的处理器,其中所述时间周期是预定时间周期。
26.一种在线程中暂停执行指令的方法,包括:
接收用于第一线程的指令;
将所述第一线程的第一指令译码成第二指令和第三指令;
在执行所述第二指令之前设置一标志来表示所述第二指令的存在;
将所述第二指令发送到流水线中;
如果所述标志被设置,保持所述第三指令,以免它进入所述流水线,其中所述第一线程被暂停处理;
执行所述第二指令;
在所述第二指令退役时,重新设置所述标志;以及
在所述标志被重新设置后,将所述第三指令释放到所述流水线中,其中所述第一线程的处理被恢复。
27.权利要求26所述的方法,还包括:
释放处理资源来处理第二线程,同时所述第一线程被暂停;以及
处理所述第二线程的指令。
28.一种在线程中暂停执行指令的方法,包括:
将来自第一线程的第一指令译码成第二指令和第三指令;
在执行所述第二指令之前,保持所述第三指令,以免它进入指令流水线,直到所述第二指令退役;
执行所述第二指令;以及
将所述第三指令释放到所述指令流水线中。
29.权利要求28所述的方法,进一步包括:
中止所述第一指令后、来自所述第一线程的指令的处理;
处理来自所述第二线程的指令,同时中止所述第一线程;以及
响应所述第二指令的退役,恢复来自所述第一线程的指令的处理。
30.权利要求29所述的方法,进一步包括:
响应所述第二指令,设置一标志;以及
在所述第二指令退役时,重新设置所述标志。
31.一种在线程中暂停处理指令的方法,包括:
在执行所述第一指令之前,响应第一线程的第一指令,将第一值装入一计数器中;
暂停所述第一线程的处理,其中所述第一线程的所述第一指令后的指令被暂停进入流水线,直到所述计数器计数到一预定值;
处理第二线程,同时所述第一线程被暂停;以及
在所述计数器计数到所述预定值后恢复所述第一线程的处理。
32.权利要求31所述的方法,其中所述第一指令包括一操作数,所述操作数被装入所述计数器中作为所述第一值。
33.权利要求31所述的方法,其中所述第一值对应于预定时间周期。
CN01806539.2A 2000-01-21 2001-01-17 用于暂停处理器中执行过程的方法和装置 Expired - Fee Related CN1426553B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/489,130 2000-01-21
US09/489,130 US6671795B1 (en) 2000-01-21 2000-01-21 Method and apparatus for pausing execution in a processor or the like
PCT/US2001/001392 WO2001053935A1 (en) 2000-01-21 2001-01-17 Method and apparatus for pausing execution in a processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201110270809.2A Division CN102346689B (zh) 2000-01-21 2001-01-17 用于暂停处理器中执行过程的方法和装置

Publications (2)

Publication Number Publication Date
CN1426553A CN1426553A (zh) 2003-06-25
CN1426553B true CN1426553B (zh) 2011-11-09

Family

ID=23942534

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201110270809.2A Expired - Fee Related CN102346689B (zh) 2000-01-21 2001-01-17 用于暂停处理器中执行过程的方法和装置
CN01806539.2A Expired - Fee Related CN1426553B (zh) 2000-01-21 2001-01-17 用于暂停处理器中执行过程的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201110270809.2A Expired - Fee Related CN102346689B (zh) 2000-01-21 2001-01-17 用于暂停处理器中执行过程的方法和装置

Country Status (7)

Country Link
US (2) US6671795B1 (zh)
EP (2) EP1522917B1 (zh)
CN (2) CN102346689B (zh)
AU (1) AU2001229506A1 (zh)
DE (2) DE60143230D1 (zh)
RU (1) RU2271035C2 (zh)
WO (1) WO2001053935A1 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US20020184290A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation Run queue optimization with hardware multithreading for affinity
US7127561B2 (en) * 2001-12-31 2006-10-24 Intel Corporation Coherency techniques for suspending execution of a thread until a specified memory access occurs
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7805220B2 (en) 2003-03-14 2010-09-28 Sharper Image Acquisition Llc Robot vacuum with internal mapping system
US7376954B2 (en) 2003-08-28 2008-05-20 Mips Technologies, Inc. Mechanisms for assuring quality of service for programs executing on a multithreaded processor
US7836450B2 (en) 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US9032404B2 (en) 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7870553B2 (en) 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7418585B2 (en) 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7849297B2 (en) 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US7711931B2 (en) 2003-08-28 2010-05-04 Mips Technologies, Inc. Synchronized storage providing multiple synchronization semantics
EP1658563B1 (en) 2003-08-28 2013-06-05 MIPS Technologies, Inc. Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor
US7594089B2 (en) 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
US7373536B2 (en) * 2004-08-04 2008-05-13 Kabushiki Kaisha Toshiba Fine granularity halt instruction
US7203100B2 (en) 2004-11-01 2007-04-10 Sun Mircosystems, Inc. Efficient implementation of a read scheme for multi-threaded register file
US20060136919A1 (en) * 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
US7577762B1 (en) * 2005-02-01 2009-08-18 Nvidia Corporation Cooperative scheduling for multiple consumers
US7840845B2 (en) * 2005-02-18 2010-11-23 Intel Corporation Method and system for setting a breakpoint
US7266674B2 (en) * 2005-02-24 2007-09-04 Microsoft Corporation Programmable delayed dispatch in a multi-threaded pipeline
US7882381B2 (en) * 2006-06-29 2011-02-01 Intel Corporation Managing wasted active power in processors based on loop iterations and number of instructions executed since last loop
US8032737B2 (en) * 2006-08-14 2011-10-04 Marvell World Trade Ltd. Methods and apparatus for handling switching among threads within a multithread processor
US8566568B2 (en) 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
US8230203B2 (en) * 2007-03-30 2012-07-24 Intel Corporation Detecting spin loops in a virtual machine environment
US8639062B2 (en) * 2007-10-09 2014-01-28 Bank Of America Corporation Ensuring image integrity using document characteristics
US8502819B1 (en) 2007-12-17 2013-08-06 Nvidia Corporation System and method for performing ray tracing node traversal in image rendering
US8289324B1 (en) 2007-12-17 2012-10-16 Nvidia Corporation System, method, and computer program product for spatial hierarchy traversal
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
US8032716B2 (en) * 2008-02-26 2011-10-04 International Business Machines Corporation System, method and computer program product for providing a new quiesce state
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8140834B2 (en) 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
JP4897851B2 (ja) * 2009-05-14 2012-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム及びコンピュータ・システムの制御方法
US8533505B2 (en) * 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US8555036B1 (en) 2010-05-17 2013-10-08 Nvidia Corporation System and method for performing predicated selection of an output register
US8564589B1 (en) 2010-05-17 2013-10-22 Nvidia Corporation System and method for accelerated ray-box intersection testing
CN104011703B (zh) 2011-12-22 2017-04-12 英特尔公司 用于指定应用线程性能状态的指令的指令处理装置及相关方法
US9396020B2 (en) 2012-03-30 2016-07-19 Intel Corporation Context switching mechanism for a processing core having a general purpose CPU core and a tightly coupled accelerator
US9218288B2 (en) * 2012-06-15 2015-12-22 International Business Machines Corporation Monitoring a value in storage without repeated storage access
US9323535B2 (en) * 2013-06-28 2016-04-26 Intel Corporation Instruction order enforcement pairs of instructions, processors, methods, and systems
CN104298552B (zh) * 2013-07-15 2018-06-19 华为技术有限公司 多线程处理器的线程取指调度方法、系统和多线程处理器
GB2519103B (en) * 2013-10-09 2020-05-06 Advanced Risc Mach Ltd Decoding a complex program instruction corresponding to multiple micro-operations
US9396032B2 (en) * 2014-03-27 2016-07-19 Intel Corporation Priority based context preemption
US9778949B2 (en) * 2014-05-05 2017-10-03 Google Inc. Thread waiting in a multithreaded processor architecture
US10467011B2 (en) * 2014-07-21 2019-11-05 Intel Corporation Thread pause processors, methods, systems, and instructions
KR102476357B1 (ko) 2015-08-06 2022-12-09 삼성전자주식회사 클럭 관리 유닛과 이를 적용하는 집적 회로 및 시스템 온 칩 및 그 동작 방법
GB2544994A (en) 2015-12-02 2017-06-07 Swarm64 As Data processing
US10437778B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US10437880B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US10460296B2 (en) 2016-02-08 2019-10-29 Bank Of America Corporation System for processing data using parameters associated with the data for auto-processing
US9823958B2 (en) 2016-02-08 2017-11-21 Bank Of America Corporation System for processing data using different processing channels based on source error probability
US11023233B2 (en) 2016-02-09 2021-06-01 Intel Corporation Methods, apparatus, and instructions for user level thread suspension
US10067869B2 (en) 2016-02-12 2018-09-04 Bank Of America Corporation System for distributed data processing with automatic caching at various system levels
US9952942B2 (en) 2016-02-12 2018-04-24 Bank Of America Corporation System for distributed data processing with auto-recovery
CN108255516A (zh) * 2016-12-29 2018-07-06 展讯通信(上海)有限公司 顺序同步多线程处理器及其指令执行控制方法、装置
GB2563384B (en) 2017-06-07 2019-12-25 Advanced Risc Mach Ltd Programmable instruction buffering
GB2563589B (en) * 2017-06-16 2019-06-12 Imagination Tech Ltd Scheduling tasks
GB2563587B (en) 2017-06-16 2021-01-06 Imagination Tech Ltd Scheduling tasks
US10860618B2 (en) 2017-09-25 2020-12-08 Splunk Inc. Low-latency streaming analytics
CN109697084B (zh) * 2017-10-22 2021-04-09 刘欣 一个用于时分复用流水线处理器的快速访问存储器结构
US10997180B2 (en) 2018-01-31 2021-05-04 Splunk Inc. Dynamic query processor for streaming and batch queries
US10936585B1 (en) 2018-10-31 2021-03-02 Splunk Inc. Unified data processing across streaming and indexed data sets
US11238048B1 (en) 2019-07-16 2022-02-01 Splunk Inc. Guided creation interface for streaming data processing pipelines
US11614923B2 (en) 2020-04-30 2023-03-28 Splunk Inc. Dual textual/graphical programming interfaces for streaming data processing pipelines
US11636116B2 (en) 2021-01-29 2023-04-25 Splunk Inc. User interface for customizing data streams
US11687487B1 (en) * 2021-03-11 2023-06-27 Splunk Inc. Text files updates to an active processing pipeline
US11663219B1 (en) 2021-04-23 2023-05-30 Splunk Inc. Determining a set of parameter values for a processing pipeline

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0655673A1 (en) * 1993-11-15 1995-05-31 Cirrus Logic, Inc. Clock distribution control circuit for conserving power in computer systems
US5584031A (en) * 1993-11-09 1996-12-10 Motorola Inc. System and method for executing a low power delay instruction
EP0827071A2 (en) * 1996-08-27 1998-03-04 Matsushita Electric Industrial Co., Ltd. Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream
US5935705A (en) * 1997-10-15 1999-08-10 National Science Council Of Republic Of China Crystalline Six Cy Nz with a direct optical band gap of 3.8 eV
US5961639A (en) * 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59111526A (ja) 1982-12-16 1984-06-27 Fujitsu Ltd 信号処理方式
US4881194A (en) 1987-11-16 1989-11-14 Intel Corporation Stored-program controller for equalizing conditional branch delays
US5355457A (en) * 1991-05-21 1994-10-11 Motorola, Inc. Data processor for performing simultaneous instruction retirement and backtracking
US5357617A (en) 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
JP2866241B2 (ja) * 1992-01-30 1999-03-08 株式会社東芝 コンピュータシステムおよびスケジューリング方法
US5546593A (en) * 1992-05-18 1996-08-13 Matsushita Electric Industrial Co., Ltd. Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream
JP3678759B2 (ja) 1992-07-21 2005-08-03 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 割込を発生するための装置および割込を発生するための方法
US5632032A (en) * 1994-02-07 1997-05-20 International Business Machines Corporation Cross address space thread control in a multithreaded environment
US5748950A (en) 1994-09-20 1998-05-05 Intel Corporation Method and apparatus for providing an optimized compare-and-branch instruction
SE9404294D0 (sv) * 1994-12-09 1994-12-09 Ellemtel Utvecklings Ab sätt och anordning vid telekommunikation
JPH08320797A (ja) 1995-05-24 1996-12-03 Fuji Xerox Co Ltd プログラム制御システム
EP0847551B1 (en) 1995-08-31 2012-12-05 Intel Corporation A set of instructions for operating on packed data
US5933627A (en) 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US5872963A (en) * 1997-02-18 1999-02-16 Silicon Graphics, Inc. Resumption of preempted non-privileged threads with no kernel intervention
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US5784616A (en) * 1997-05-02 1998-07-21 Microsoft Corporation Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
KR100280460B1 (ko) * 1998-04-08 2001-02-01 김영환 데이터 처리 장치 및 이의 복수의 스레드 처리 방법
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6542921B1 (en) 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6889319B1 (en) 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6496925B1 (en) 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US6671795B1 (en) 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US6687838B2 (en) 2000-12-07 2004-02-03 Intel Corporation Low-power processor hint, such as from a PAUSE instruction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5584031A (en) * 1993-11-09 1996-12-10 Motorola Inc. System and method for executing a low power delay instruction
EP0655673A1 (en) * 1993-11-15 1995-05-31 Cirrus Logic, Inc. Clock distribution control circuit for conserving power in computer systems
EP0827071A2 (en) * 1996-08-27 1998-03-04 Matsushita Electric Industrial Co., Ltd. Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream
US5961639A (en) * 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US5935705A (en) * 1997-10-15 1999-08-10 National Science Council Of Republic Of China Crystalline Six Cy Nz with a direct optical band gap of 3.8 eV

Also Published As

Publication number Publication date
US7451296B2 (en) 2008-11-11
EP1522917B1 (en) 2010-10-06
CN1426553A (zh) 2003-06-25
RU2002122402A (ru) 2004-02-27
WO2001053935A1 (en) 2001-07-26
US20040117604A1 (en) 2004-06-17
AU2001229506A1 (en) 2001-07-31
DE60109748T2 (de) 2006-02-09
DE60109748D1 (de) 2005-05-04
CN102346689B (zh) 2013-10-16
DE60143230D1 (de) 2010-11-18
EP1522917A2 (en) 2005-04-13
EP1256054A1 (en) 2002-11-13
EP1522917A3 (en) 2007-11-28
US6671795B1 (en) 2003-12-30
RU2271035C2 (ru) 2006-02-27
EP1256054B1 (en) 2005-03-30
CN102346689A (zh) 2012-02-08

Similar Documents

Publication Publication Date Title
CN1426553B (zh) 用于暂停处理器中执行过程的方法和装置
US9823946B2 (en) Processor and program execution method capable of efficient program execution
US7010669B2 (en) Determining whether thread fetch operation will be blocked due to processing of another thread
US20110113222A1 (en) Method and apparatus for assigning thread priority in a processor or the like
US7836291B2 (en) Method, medium, and apparatus with interrupt handling in a reconfigurable array
EP2423808B1 (en) Arithmetic device
US20060288190A1 (en) Apparatus and method for switching threads in multi-threading processors
JP5413853B2 (ja) マルチスレッド型プロセッサのためのスレッドデエンファシス方法及びデバイス
US20120023502A1 (en) Establishing thread priority in a processor or the like
JP2017509059A (ja) 電力消費を低減するための割り込み処理の同期化
US20050149931A1 (en) Multithread processor architecture for triggered thread switching without any cycle time loss, and without any switching program command
JP4169931B2 (ja) 複数の回路ブロックにコマンドを配信する方法と装置
JP2009104611A (ja) プロセッサ
JP4196982B2 (ja) プロセッサ及びプログラム実行方法
JP4295792B2 (ja) プロセッサ及びプログラム実行方法
JP4238246B2 (ja) プロセッサ
JPH06337785A (ja) 情報処理装置およびその命令実行制御方法
JP2001084151A (ja) 中央処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1056635

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111109

Termination date: 20200117

CF01 Termination of patent right due to non-payment of annual fee