CN1426553A - 用于暂停处理器中执行过程的方法和装置 - Google Patents
用于暂停处理器中执行过程的方法和装置 Download PDFInfo
- Publication number
- CN1426553A CN1426553A CN01806539.2A CN01806539A CN1426553A CN 1426553 A CN1426553 A CN 1426553A CN 01806539 A CN01806539 A CN 01806539A CN 1426553 A CN1426553 A CN 1426553A
- Authority
- CN
- China
- Prior art keywords
- instruction
- thread
- carry out
- decoding unit
- pause
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000015572 biosynthetic process Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 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
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 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
发明领域
本发明涉及用于暂停在一处理器等中执行过程的方法和装置。更具体而言,本发明的实施方案涉及控制暂停多个进程中的一个的执行过程,以便将优先权给另一个进程或省电。
发明背景
如本领域所公知的,处理器包括许多子模块,每一子模块适用于执行特定任务。在一公知处理器中,这些子模块包括如下:指令高速缓冲存储器,取指令单元用于从指令高速缓冲存储器中取适当指令;译码逻辑,将指令译码成最后或中间格式;微操作逻辑,将中间指令转换成用于执行的最后格式;以及一执行单元,执行最后格式指令(在一些例子中来自译码逻辑,而在另外的例子中来自微操作逻辑)。
在时钟的操作下,处理器系统的执行单元执行提交给它的连续指令。如本领域所公知的,指令可提供给执行单元,该执行单元对处理器系统来说不产生重大的工作作用。例如,在IntelX86处理器系统中,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。分配单元可依次将指令提供给队列28。基于进度控制逻辑30的操作MUX29,在线程0队列和线程1队列间选择。而进度控制逻辑30也接收与MUX相同的输入。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),那么控制权传送到块43,在该块处指令(在这种情况下为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以改变到下一线程)。如果操作数与暂停指令无关,那么控制权传送到块65中以将预定值送入计数器(然后控制权再次传送到块73以改变到下一线程)。如果在判定块63中,指令不是暂停指令,那么控制权传送到块71以将该指令送入流水线中。
根据本发明的实施方案,操作系统使用的暂停指令可作为一标识,表示处理系统硬件可进入一低功率模式。因此,在处理器系统的操作系统代码(或任何其他软件代码)的执行可使暂停指令移动到译码单元。如上所述,线程的暂停执行可导致在总的功耗上的降低。响应译码暂停指令,处理系统10按照需要可采取其他措施来进一步降低总功耗。
尽管在此特定解释和说明了几个实施方案,应能理解不脱离本发明的精神和范围的对本发明的修改和改变通过上述教导和附加权利要求的范围也将被包括。
Claims (20)
1、在线程中暂停指令执行的方法,包括:
确定如果用于第一线程的下一指令是第一种类型的指令;以及
在一时间周期不处理所述第一线程用于执行的指令同时可处理来自第二线程用于执行的指令。
2、权利要求1所述的方法,其中所述第一种类型的下一指令是SET指令以及下一指令是READ指令。
3、权利要求2所述的方法,其中所述SET指令使用于所述第一线程的值存储在存储器中。
4、权利要求3所述的方法,进一步包括:
当存储在存储器中的所述值被复位时,处理用于执行所述的READ指令。
5、权利要求4所述的方法,其中当所述SET指令完成(retire)时,存储在存储器中的所述值被复位。
6、在线程中暂停指令执行的方法,包括:
确定如果用于第一线程的下一指令是第一种类型的指令;
启动一计数器;以及
阻止用于所述第一线程指令的执行直到所述计数器达到预定值。
7、权利要求6所述的方法,其中所述指令包括一操作数,所述启动步骤包括将操作数装入所述计数器中。
8、权利要求6所述的方法,其中包括处理用于执行第二线程的指令同时不执行所述第一线程的指令。
9、在处理器系统中降低功耗的方法,包括:
在所述处理器系统中的译码单元接收来自第一线程的暂停指令;
在一时间周期不处理用于所述第一线程的指令同时处理第二线程用于执行的指令。
10、权利要求9所述的方法,其中软件代码的执行使在所述译码单元接收所述暂停指令。
11、在线程中暂停指令执行的装置,包括
一译码单元,用于确定如果用于第一线程的下一指令是否为第一种类型的指令,所述译码单元在一时间周期不处理所述第一线程用于执行的指令同时处理第二线程用于执行的指令。
12、权利要求11所述的装置,所述第一种类型的下一指令是SET指令以及下一指令是READ指令。
13、权利要求12所述的装置,进一步包括:
一存储器,其中用于所述第一线程的所述SET指令将一值存储在存储器中。
14、权利要求13所述的装置,其中当存储在存储器中的所述值被复位时,所述译码单元处理所述用于执行的READ指令。
15、权利要求14所述的装置,进一步包括:
一完成单元,耦合到所述译码单元,其中当所述SET指令由所述完成(retire)单元完成时,完成单元使存储在存储器的所述值复位。
16、在线程中暂停指令执行的装置,包括
一译码单元,确定用于第一线程的下一指令是否是第一种类型的指令;
一计数器,当用于第一线程的所述下一指令是第一种类型的指令时,启动该计数器,所述译码单元不处理所述第一线程用于执行的指令直到所述计数器到达一预定值。
17、权利要求16所述的装置,其中所述指令包括被载入到所述计数器的操作数。
18、权利要求16所述的装置,其中处理用于执行第二线程的指令同时不执行所述第一线程的指令。
19、用于降低处理器系统中功耗的装置,包括:
处理器系统,包括:
一译码单元,接受来自所述处理器系统中的第一线程的暂停指令,所述译码单元不处理用于执行的所述第一线程的指令一周期时间同时处理用于执行的第二线程的指令。
20、权利要求19所述的装置,其中所述处理器系统的软件代码的执行使所述译码单元接收所述暂停指令。
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 true CN1426553A (zh) | 2003-06-25 |
CN1426553B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298552A (zh) * | 2013-07-15 | 2015-01-21 | 华为技术有限公司 | 多线程处理器的线程取指调度方法、系统和多线程处理器 |
CN104572016A (zh) * | 2013-10-09 | 2015-04-29 | Arm有限公司 | 对应于多个微操作的复杂程序指令的译码 |
CN103207803B (zh) * | 2007-03-30 | 2016-09-21 | 英特尔公司 | 一种用于执行虚拟化的处理器和平台虚拟化的系统 |
CN108255516A (zh) * | 2016-12-29 | 2018-07-06 | 展讯通信(上海)有限公司 | 顺序同步多线程处理器及其指令执行控制方法、装置 |
CN109697084A (zh) * | 2017-10-22 | 2019-04-30 | 刘欣 | 一个用于时分复用流水线处理器的快速访问存储器结构 |
Families Citing this family (63)
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 |
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 |
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 |
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 |
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 |
Family Cites Families (30)
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 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 割込を発生するための装置および割込を発生するための方法 |
US5584031A (en) | 1993-11-09 | 1996-12-10 | Motorola Inc. | System and method for executing a low power delay instruction |
US5546037A (en) | 1993-11-15 | 1996-08-13 | Cirrus Logic, Inc. | NAPNOP circuit for conserving power in computer systems |
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 |
KR100500002B1 (ko) | 1996-08-27 | 2005-09-08 | 마츠시타 덴끼 산교 가부시키가이샤 | 복수의명령흐름을독립적으로처리하고,명령흐름단위로처리성능을유연하게제어하는멀티스레드프로세서 |
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 |
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 |
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 |
-
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
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207803B (zh) * | 2007-03-30 | 2016-09-21 | 英特尔公司 | 一种用于执行虚拟化的处理器和平台虚拟化的系统 |
CN104298552A (zh) * | 2013-07-15 | 2015-01-21 | 华为技术有限公司 | 多线程处理器的线程取指调度方法、系统和多线程处理器 |
CN104298552B (zh) * | 2013-07-15 | 2018-06-19 | 华为技术有限公司 | 多线程处理器的线程取指调度方法、系统和多线程处理器 |
CN104572016A (zh) * | 2013-10-09 | 2015-04-29 | Arm有限公司 | 对应于多个微操作的复杂程序指令的译码 |
US9934037B2 (en) | 2013-10-09 | 2018-04-03 | Arm Limited | Decoding a complex program instruction corresponding to multiple micro-operations |
CN104572016B (zh) * | 2013-10-09 | 2019-05-31 | Arm 有限公司 | 对应于多个微操作的复杂程序指令的译码 |
CN108255516A (zh) * | 2016-12-29 | 2018-07-06 | 展讯通信(上海)有限公司 | 顺序同步多线程处理器及其指令执行控制方法、装置 |
CN109697084A (zh) * | 2017-10-22 | 2019-04-30 | 刘欣 | 一个用于时分复用流水线处理器的快速访问存储器结构 |
CN109697084B (zh) * | 2017-10-22 | 2021-04-09 | 刘欣 | 一个用于时分复用流水线处理器的快速访问存储器结构 |
Also Published As
Publication number | Publication date |
---|---|
US7451296B2 (en) | 2008-11-11 |
EP1522917B1 (en) | 2010-10-06 |
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 |
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 |
---|---|---|
CN1426553A (zh) | 用于暂停处理器中执行过程的方法和装置 | |
CN100361073C (zh) | 多线程流水线指令解码器的方法和设备 | |
US8850165B2 (en) | Method and apparatus for assigning thread priority in a processor or the like | |
US7134002B2 (en) | Apparatus and method for switching threads in multi-threading processors | |
US8407454B2 (en) | Processing long-latency instructions in a pipelined processor | |
US20120023502A1 (en) | Establishing thread priority in a processor or the like | |
JP5413853B2 (ja) | マルチスレッド型プロセッサのためのスレッドデエンファシス方法及びデバイス | |
CN86107934A (zh) | 具有指令预取转向中断服务的数据处理器控制部件 | |
CN1811699A (zh) | 用于解决多线程处理器中指令饥饿的方法及设备 | |
JPS633337B2 (zh) | ||
US10049043B2 (en) | Flushing control within a multi-threaded processor | |
JP5104861B2 (ja) | 演算処理装置 | |
US7213134B2 (en) | Using thread urgency in determining switch events in a temporal multithreaded processor unit | |
EP1579315A2 (en) | Method and apparatus for processing multiple instruction strands | |
WO2005013129A1 (ja) | 情報処理装置並びに命令処理制御装置,命令処理制御方法,命令処理制御プログラム及び命令処理制御プログラムを記録したコンピュータ読取可能な記録媒体 | |
JP2002007119A (ja) | 例外処理システム及び方法、並びに、プロセッサ | |
JPH06337785A (ja) | 情報処理装置およびその命令実行制御方法 | |
JPH01140374A (ja) | マルチスカラベクトル演算処理装置におけるベクトル命令処理方式 | |
JPH03196220A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111109 Termination date: 20200117 |