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

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

Info

Publication number
CN102346689B
CN102346689B CN201110270809.2A CN201110270809A CN102346689B CN 102346689 B CN102346689 B CN 102346689B CN 201110270809 A CN201110270809 A CN 201110270809A CN 102346689 B CN102346689 B CN 102346689B
Authority
CN
China
Prior art keywords
instruction
thread
execution
decoding unit
processed
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
CN201110270809.2A
Other languages
English (en)
Other versions
CN102346689A (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 CN102346689A publication Critical patent/CN102346689A/zh
Application granted granted Critical
Publication of CN102346689B publication Critical patent/CN102346689B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Abstract

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

Description

用于暂停处理器中执行过程的方法和装置
技术领域
本发明涉及用于暂停在处理器等中执行过程的方法和装置。更具体而言,本发明的实施方案涉及控制暂停多个线程中的一个的执行过程,以便将优先权给另一个线程或省电。
背景技术
如本领域所公知的,处理器包括许多子模块,每一子模块适用于执行特定任务。在公知处理器中,这些子模块包括如下:指令高速缓冲存储器,取指令单元用于从指令高速缓冲存储器中取适当指令;译码逻辑,将指令译码成最后或中间格式;微操作逻辑,将中间指令转换成用于执行的最后格式;以及执行单元,执行最后格式指令(在一些例子中来自译码逻辑,而在另外的例子中来自微操作逻辑)。
在时钟的操作下,处理器系统的执行单元执行提交给它的连续指令。如本领域所公知的,指令可提供给执行单元,该执行单元对处理器系统来说不产生重大的工作作用。例如,在
Figure BSA00000573185900011
X86处理器系统中,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 (20)

1.在线程中暂停指令执行的方法,包括:
确定用于第一线程的下一指令是否是第一种类型的;以及
在一时间周期防止所述第一线程的指令被处理以供执行,同时可处理来自第二线程的指令以供执行;以及
在由所述第一种类型的所述下一指令确定的时间,恢复处理所述第一线程的指令以供执行。
2.如权利要求1所述的方法,其中所述第一种类型的所述下一指令是SET指令以及接下来的指令是READ指令。
3.如权利要求2所述的方法,其中所述SET指令使用于所述第一线程的值存储在存储器中。
4.如权利要求3所述的方法,进一步包括:
当存储在所述存储器中的所述值被复位时,处理所述READ指令以供执行。
5.如权利要求4所述的方法,其中当所述SET指令退役时,存储在所述存储器中的所述值被复位。
6.在线程中暂停指令执行的方法,包括:
确定用于第一线程的下一指令是否是第一种类型的;
如果所述用于第一线程的下一指令是第一种类型的,则启动计数器;以及
防止所述第一线程的指令被处理以供执行,直到所述计数器达到预定值。
7.如权利要求6所述的方法,其中所述用于第一线程的下一指令包括操作数,以及所述启动计数器包括将所述操作数装入所述计数器中。
8.如权利要求6所述的方法,其中,在防止所述第一线程的指令被处理以供执行的同时,用于第二线程的指令可被处理以供执行。
9.在处理器系统中降低功耗的方法,包括:
在所述处理器系统中的译码单元接收来自第一线程的暂停指令;
在一时间周期防止所述第一线程的指令被处理以供执行,同时能够处理来自第二线程的指令以供执行;以及
在由所述暂停指令确定的时间,停止防止所述第一线程的指令被处理以供执行。
10.如权利要求9所述的方法,其中软件代码的执行使在所述译码单元接收所述暂停指令,以及其中所述译码单元执行所述防止。
11.用于在线程中暂停指令执行的装置,包括:
译码单元,用于确定用于第一线程的下一指令是否是第一种类型的,所述译码单元在一时间周期防止所述第一线程的指令被处理以供执行,同时能够处理来自第二线程的指令以供执行,并且在由用于所述第一线程的所述下一指令确定的时间停止所述防止。
12.如权利要求11所述的装置,所述第一种类型的所述下一指令是SET指令以及接下来的指令是READ指令。
13.如权利要求12所述的装置,进一步包括:
存储器,其中所述SET指令使用于所述第一线程的值存储在所述存储器中。
14.如权利要求13所述的装置,其中当存储在所述存储器中的所述值被复位时,所述译码单元处理所述READ指令以供执行。
15.如权利要求14所述的装置,进一步包括:
退役单元,耦合到所述译码单元,其中当所述SET指令由所述退役单元退役时,所述退役单元使存储在所述存储器中的所述值复位。
16.用于在线程中暂停指令执行的装置,包括:
译码单元,确定用于第一线程的下一指令是否是第一种类型的;
计数器,当用于所述第一线程的所述下一指令是所述第一种类型的时,启动该计数器,所述译码单元防止所述第一线程的指令被处理以供执行,直到所述计数器到达预定值。
17.如权利要求16所述的装置,其中所述下一指令包括要装入所述计数器中的操作数。
18.如权利要求16所述的装置,其中,在防止处理所述第一线程的指令以供执行的同时,能够处理用于第二线程的指令以供执行。
19.用于降低处理器系统中功耗的装置,包括:
译码单元,接收来自所述处理器系统中的第一线程的暂停指令,所述译码单元在一周期时间防止所述第一线程的指令被处理以供执行,同时能够处理来自第二线程的指令以供执行,并且在从所述暂停指令译码的指令退役之后,恢复处理所述第一线程的指令以供执行。
20.如权利要求19所述的装置,其中在所述处理器系统的软件代码的执行使在所述译码单元接收所述暂停指令,并且其中响应于从所述暂停指令译码的指令的退役,恢复所述第一线程的指令的处理。
CN201110270809.2A 2000-01-21 2001-01-17 用于暂停处理器中执行过程的方法和装置 Expired - Fee Related CN102346689B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/489130 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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
CN102346689A CN102346689A (zh) 2012-02-08
CN102346689B true CN102346689B (zh) 2013-10-16

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 After (1)

Application Number Title Priority Date Filing Date
CN01806539.2A Expired - Fee Related CN1426553B (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
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
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
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
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
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
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor

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
CN1426553B (zh) 2011-11-09
DE60109748D1 (de) 2005-05-04
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
CN102346689B (zh) 用于暂停处理器中执行过程的方法和装置
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
US8006076B2 (en) Processor and program execution method capable of efficient program execution
US7134002B2 (en) Apparatus and method for switching threads in multi-threading processors
CN100361073C (zh) 多线程流水线指令解码器的方法和设备
CN101464819B (zh) 进入低功率模式前的硬件驱动处理器状态存储
TWI512448B (zh) 用以啟用處理器等待狀態之指令
CN100557564C (zh) 分配优先级的方法和多线程处理器
JP5413853B2 (ja) マルチスレッド型プロセッサのためのスレッドデエンファシス方法及びデバイス
TWI401564B (zh) 預測處理器組件懸置用之方法與處理器
JP2748822B2 (ja) 情報処理装置
WO2003001367A1 (en) Method and apparatus for assigning thread priority in a multi-threaded processor
US8041754B1 (en) Establishing thread priority in a processor or the like
US20050149931A1 (en) Multithread processor architecture for triggered thread switching without any cycle time loss, and without any switching program command
JP4169931B2 (ja) 複数の回路ブロックにコマンドを配信する方法と装置
JPH01243167A (ja) データ処理装置
KR100301112B1 (ko) 단일칩다중프로세서에서그래픽처리기의스케쥴러및스케쥴링방법
TW200825907A (en) Method of assigning thread priority in a multi-threaded processor, multi-threaded processor, computer system and storage medium
JPH06337785A (ja) 情報処理装置およびその命令実行制御方法
JP2001084151A (ja) 中央処理装置
JPH04148236A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131016

Termination date: 20180117