CN1426553B - 用于暂停处理器中执行过程的方法和装置 - Google Patents
用于暂停处理器中执行过程的方法和装置 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 238000005096 rolling process Methods 0.000 claims 2
- 230000015572 biosynthetic process Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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所述的方法,其中所述第一值对应于预定时间周期。
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)
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)
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)
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 |
-
2000
- 2000-01-21 US US09/489,130 patent/US6671795B1/en not_active Expired - Lifetime
-
2001
- 2001-01-17 DE DE60143230T patent/DE60143230D1/de not_active Expired - Lifetime
- 2001-01-17 EP EP05000364A patent/EP1522917B1/en not_active Expired - Lifetime
- 2001-01-17 WO PCT/US2001/001392 patent/WO2001053935A1/en active IP Right Grant
- 2001-01-17 EP EP01942736A patent/EP1256054B1/en not_active Expired - Lifetime
- 2001-01-17 AU AU2001229506A patent/AU2001229506A1/en not_active Abandoned
- 2001-01-17 CN CN201110270809.2A patent/CN102346689B/zh not_active Expired - Fee Related
- 2001-01-17 DE DE60109748T patent/DE60109748T2/de not_active Expired - Lifetime
- 2001-01-17 RU RU2002122402/09A patent/RU2271035C2/ru not_active IP Right Cessation
- 2001-01-17 CN CN01806539.2A patent/CN1426553B/zh not_active Expired - Fee Related
-
2003
- 2003-12-08 US US10/728,962 patent/US7451296B2/en not_active Expired - Fee Related
Patent Citations (5)
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 |