JP2005514698A - マルチスレッドプロセッサのスレッドの実行のサスペンド処理 - Google Patents
マルチスレッドプロセッサのスレッドの実行のサスペンド処理 Download PDFInfo
- Publication number
- JP2005514698A JP2005514698A JP2003558678A JP2003558678A JP2005514698A JP 2005514698 A JP2005514698 A JP 2005514698A JP 2003558678 A JP2003558678 A JP 2003558678A JP 2003558678 A JP2003558678 A JP 2003558678A JP 2005514698 A JP2005514698 A JP 2005514698A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- processor
- instruction
- resources
- selected time
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims description 14
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 32
- 238000005192 partition Methods 0.000 claims description 15
- 239000000872 buffer Substances 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 7
- 230000010076 replication Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 238000007664 blowing Methods 0.000 claims 3
- 238000000137 annealing Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012360 testing method Methods 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 or look ahead
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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
-
- 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 or 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
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)
- Executing Machine-Instructions (AREA)
Abstract
Description
本出願は、以下すべてが本出願と同日に出願された出願整理番号第10/039,777号「マルチスレッドプロセッサのスレッドの実行のサスペンド処理(Suspending Execution of a Thread in a Multi−threaded Processor)」、出願整理番号第10/039,656号「特定のメモリアクセスの発生までスレッドの実行をサスペンドするコヒーレンシーテクニック(Coherency Techniques for Suspending Execution of a Thread Until a Specified Memory Access Occurs)」、及び出願整理番号第10/039,650号「特定のメモリアクセスの発生までスレッドの実行をサスペンドする命令シーケンス(Instruction Sequences for Suspending Execution of a Thread Until a Specified Memory Access Occurs)」に関連する。
[背景]
1.技術分野
本開示は、プロセッサの技術分野に関する。より詳細には、本開示は、マルチスレッドプロセッサ及びマルチスレッドプロセッサの1つのスレッドの処理を一時的にサスペンドする技術に関する。
2.関連分野の説明
マルチスレッドプロセッサは、複数の異なる命令シーケンスを同時処理することができる。1つのプロセッサにおいて複数の命令ストリームを実行する主要な動機的要因は、それによるプロセッサの利用効率の向上である。何年もの間、高度なパラレルアーキテクチャが開発されてきたが、複数の実行ユニットを利用する1つの命令ストリームから十分な並列性を抽出することはしばしば困難である。同時マルチスレッドプロセッサにより、複数の命令ストリームが異なる実行リソースにおいてこれらリソースのさらなる利用のため同時に実行されるとことを可能にする。マルチスレッド処理は、長い待ち時間による遅延が発生したり、あるいはイベントの発生を頻繁に待つプログラムに対して特に効果的である。あるスレッドが長い待ち時間を要するタスクが終了するのを待機したり、あるいは特定のイベントのため待機しているとき、他のスレッドが処理される。
[詳細な説明]
以下の説明では、マルチスレッドプロセッサのスレッドの実行をサスペンドする技術が示される。以下の説明では、本発明のより完全な理解を提供するため、論理実施形態、オペコード、オペランド指定手段、リソース分割/共有/重複実施形態、システム構成要素のタイプ及び相互関係、及び論理分割/統合選択などの様々な具体的詳細が与えられる。しかしながら、本発明はそのような具体的詳細なしに実践されうるということを当業者は認識するであろう。他の例では、本発明を不明瞭にしないように、制御構造、ゲートレベル回路及び完全なスフとウェア命令シーケンスは詳細には示されていない。当業者は与えられた説明により、過度の実験を行うことなく適切に機能の実現が可能であろう。
Claims (26)
- 各自が複数のスレッド間で分割可能な複数のスレッド分割可能リソースと、
前記複数のスレッドの第1スレッドからプログラム命令を受信し、前記プログラム命令に応答して、前記第1スレッドの実行をサスペンドさせ、前記複数のスレッドの他のスレッドによる利用のため、前記第1スレッドに関する前記複数のスレッド分割可能リソースの一部を放棄させる論理とを有することを特徴とするプロセッサ。 - 請求項1記載のプロセッサであって、前記プログラム命令はサスペンド命令であることを特徴とするプロセッサ。
- 請求項1記載のプロセッサであって、前記論理は該プロセッサに選択した時間前記第1スレッドをサスペンドさせることを特徴とするプロセッサ。
- 請求項3記載のプロセッサであって、前記選択した時間は固定された時間であることを特徴とするプロセッサ。
- 請求項3記載のプロセッサであって、該プロセッサは前記第1スレッドのサスペンド中第2スレッドからの命令を実行することを特徴とするプロセッサ。
- 請求項3記載のプロセッサであって、前記選択された時間は、
前記プログラム命令に関するオペランドの提供処理と、
前記選択された時間を設定するためのヒューズのブロー処理と、
前記プログラム命令の復号前に前記選択された時間の格納領域でのプログラム処理と、
前記選択された時間のマイクロコードでの設定処理とから構成されるセットから選ばれる少なくとも1つの技術によりプログラム可能であることを特徴とするプロセッサ。 - 請求項1記載のプロセッサであって、前記複数のスレッド分割可能リソースは命令キューとレジスタプールとを有することを特徴とするプロセッサ。
- 請求項7記載のプロセッサであって、さらに、
複数の実行ユニット、キャッシュ及びスケジューラを有する複数の共有リソースと、
複数のプロセッサ状態変数、命令ポインタ及びレジスタリネーム論理を有する複数の複製リソースとを有することを特徴とするプロセッサ。 - 請求項8記載のプロセッサであって、前記複数のスレッド分割可能リソースは、さらに、複数のリオーダーバッファと複数のストアバッファエントリとを有することを特徴とするプロセッサ。
- 請求項1記載のプロセッサであって、前記論理は、さらに、該プロセッサにイベントに応答して前記第1スレッドの実行を再開させることを特徴とするプロセッサ。
- 請求項3記載のプロセッサであって、前記論理は、さらに、該プロセッサに前記選択された時間が経過するまでイベントを無視させることを特徴とするプロセッサ。
- 請求項1記載のプロセッサであって、該プロセッサはコンピュータ読み出し可能媒体上でデジタルフォーマットにより実現されることを特徴とするプロセッサ。
- 実行の第1スレッドで第1オペコードを受け取るステップと、
前記第1オペコードに応答して選択された時間前記第1スレッドをサスペンドするステップと、
前記第1オペコードに応答して複数のスレッド分割可能リソースを放棄するステップとを有することを特徴とする方法。 - 請求項13記載の方法であって、前記放棄するステップは、より少ないスレッドによって利用可能なより大きな構成となるよう前記複数のスレッド分割可能リソースをアニールすることからなることを特徴とする方法。
- 請求項14記載の方法であって、前記放棄するステップは、命令キューの区画を放棄し、レジスタプールから複数のレジスタを放棄することからなることを特徴とする方法。
- 請求項15記載の方法であって、前記放棄するステップは、さらに、複数のストアバッファエントリを放棄し、複数のリオーダーバッファエントリを放棄することをからなることを特徴とする方法。
- 請求項13記載の方法であって、前記選択された時間は、
前記第1オペコードに関するオペランドの提供処理と、
前記選択された時間を設定するためのヒューズのブロー処理と、
前記プログラム命令の復号前に前記選択された時間の格納領域でのプログラム処理と、
前記選択された時間のマイクロコードでの設定処理とから構成されるセットから選ばれる少なくとも1つの技術によりプログラム可能であることを特徴とする方法。 - 第1命令を有する第1スレッドと第2スレッドとを有する複数のプログラムスレッドを格納するメモリと、
前記メモリに接続され、複数のスレッド分割可能リソースと複数の共有リソースとを備え、前記メモリからの命令を実行するプロセッサとを有するシステムであって、
前記プロセッサは前記第1命令の実行に応答して、前記第1スレッドをサスペンドし、前記複数のスレッド分割可能リソースの一部を放棄することを特徴とするシステム。 - 請求項18記載のシステムであって、前記プロセッサは、前記第1スレッドのサスペンド中、前記メモリからの前記第2スレッドを実行することを特徴とするシステム。
- 請求項19記載のシステムであって、前記プロセッサは前記第1命令に応答して選択された時間前記第1スレッドの実行をサスペンドし、前記選択された時間は、
前記プログラム命令に関するオペランドの提供処理と、
前記選択された時間を設定するためのヒューズのブロー処理と、
前記プログラム命令の復号前に前記選択された時間の格納領域でのプログラム処理と、
前記選択された時間のマイクロコードでの設定処理とから構成されるセットから選ばれる少なくとも1つの技術により選ばれることを特徴とするシステム。 - 請求項18記載のシステムであって、前記複数のスレッド分割可能リソースは、命令キューとレジスタプールとを有することを特徴とするシステム。
- 請求項21記載のシステムであって、さらに、
複数の実行ユニット、キャッシュ及びスケジューラを有する複数の共有リソースと、
複数のプロセッサ状態変数、命令ポインタ及びレジスタリネーム論理を有する複数の複製リソースとを有することを特徴とするシステム。 - 請求項22記載のシステムであって、前記複数のスレッド分割可能リソースは、さらに、複数のリオーダーバッファと複数のストアバッファエントリとを有することを特徴とするシステム。
- 第1スレッドから第1命令を受け取る手段と、
前記第1命令に応答して前記第1スレッドをサスペンドする手段と、
複数のリソースの複数の区画を放棄する手段と、
選択された時間後前記複数のリソースを再分割する手段とを有することを特徴とする装置。 - 請求項24記載の装置であって、前記第1命令はユーザ実行可能プログラムからのマクロ命令であることを特徴とする装置。
- 請求項25記載の装置であって、前記複数のリソースはレジスタプールと命令キューとを有することを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/039,777 US20030126416A1 (en) | 2001-12-31 | 2001-12-31 | Suspending execution of a thread in a multi-threaded processor |
PCT/US2002/039790 WO2003058434A1 (en) | 2001-12-31 | 2002-12-11 | Suspending execution of a thread in a multi-threaded |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005514698A true JP2005514698A (ja) | 2005-05-19 |
JP2005514698A5 JP2005514698A5 (ja) | 2005-12-22 |
Family
ID=21907295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003558678A Pending JP2005514698A (ja) | 2001-12-31 | 2002-12-11 | マルチスレッドプロセッサのスレッドの実行のサスペンド処理 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20030126416A1 (ja) |
JP (1) | JP2005514698A (ja) |
KR (1) | KR100617417B1 (ja) |
CN (1) | CN1287272C (ja) |
AU (1) | AU2002364559A1 (ja) |
DE (1) | DE10297597T5 (ja) |
HK (1) | HK1075109A1 (ja) |
TW (1) | TW200403588A (ja) |
WO (1) | WO2003058434A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007520825A (ja) * | 2004-02-04 | 2007-07-26 | インテル・コーポレーション | 待機状態にあるプロセッサ実行リソースの共有 |
WO2008155797A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算装置 |
WO2008155794A1 (ja) | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置 |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7127561B2 (en) * | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
US7216346B2 (en) * | 2002-12-31 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for managing thread execution in a multithread application |
US7496915B2 (en) | 2003-04-24 | 2009-02-24 | International Business Machines Corporation | Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
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 |
US7594089B2 (en) | 2003-08-28 | 2009-09-22 | Mips Technologies, Inc. | Smart memory based synchronization controller for a multi-threaded multiprocessor SoC |
US7321965B2 (en) | 2003-08-28 | 2008-01-22 | Mips Technologies, Inc. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US7836450B2 (en) * | 2003-08-28 | 2010-11-16 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US7376954B2 (en) | 2003-08-28 | 2008-05-20 | Mips Technologies, Inc. | Mechanisms for assuring quality of service for programs executing on a multithreaded processor |
US7711931B2 (en) * | 2003-08-28 | 2010-05-04 | Mips Technologies, Inc. | Synchronized storage providing multiple synchronization semantics |
US7849297B2 (en) | 2003-08-28 | 2010-12-07 | Mips Technologies, Inc. | Software emulation of directed exceptions in a multithreading processor |
US7418585B2 (en) * | 2003-08-28 | 2008-08-26 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US8533716B2 (en) | 2004-03-31 | 2013-09-10 | Synopsys, Inc. | Resource management in a multicore architecture |
US9189230B2 (en) | 2004-03-31 | 2015-11-17 | Intel Corporation | Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution |
GB0407384D0 (en) * | 2004-03-31 | 2004-05-05 | Ignios Ltd | Resource management in a multicore processor |
WO2006120367A1 (en) * | 2005-05-11 | 2006-11-16 | Arm Limited | A data processing apparatus and method employing multiple register sets |
WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US8032737B2 (en) * | 2006-08-14 | 2011-10-04 | Marvell World Trade Ltd. | Methods and apparatus for handling switching among threads within a multithread processor |
CN101595456A (zh) | 2006-12-27 | 2009-12-02 | 莫尔It资源有限公司 | 用于事务资源控制的方法和系统 |
US7975272B2 (en) * | 2006-12-30 | 2011-07-05 | Intel Corporation | Thread queuing method and apparatus |
US20080162858A1 (en) * | 2007-01-03 | 2008-07-03 | Freescale Semiconductor, Inc. | Hardware-based memory initialization with software support |
US8725975B2 (en) * | 2007-01-03 | 2014-05-13 | Freescale Semiconductor, Inc. | Progressive memory initialization with waitpoints |
US20080244242A1 (en) * | 2007-04-02 | 2008-10-02 | Abernathy Christopher M | Using a Register File as Either a Rename Buffer or an Architected Register File |
US7707390B2 (en) * | 2007-04-25 | 2010-04-27 | Arm Limited | Instruction issue control within a multi-threaded in-order superscalar processor |
US20090100249A1 (en) * | 2007-10-10 | 2009-04-16 | Eichenberger Alexandre E | Method and apparatus for allocating architectural register resources among threads in a multi-threaded microprocessor core |
US8131983B2 (en) * | 2008-04-28 | 2012-03-06 | International Business Machines Corporation | Method, apparatus and article of manufacture for timeout waits on locks |
US20120166777A1 (en) * | 2010-12-22 | 2012-06-28 | Advanced Micro Devices, Inc. | Method and apparatus for switching threads |
US9274793B2 (en) | 2011-03-25 | 2016-03-01 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
US8578394B2 (en) * | 2011-09-09 | 2013-11-05 | Microsoft Corporation | Exempting applications from suspension |
CN103389911B (zh) * | 2012-05-07 | 2016-08-03 | 启碁科技股份有限公司 | 节省系统资源的方法及运用其方法的操作系统 |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US9361116B2 (en) | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10346195B2 (en) * | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
CN103345422B (zh) * | 2013-07-02 | 2019-01-29 | 厦门雅迅网络股份有限公司 | 一种基于Linux的多线程硬实时控制方法 |
US10223026B2 (en) * | 2013-09-30 | 2019-03-05 | Vmware, Inc. | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments where dirty bit of page table entries in non-volatile memory are not cleared until pages in non-volatile memory are remotely mirrored |
US10140212B2 (en) | 2013-09-30 | 2018-11-27 | Vmware, Inc. | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments by remote mirroring memory addresses of nonvolatile memory to which cached lines of the nonvolatile memory have been flushed |
US9515901B2 (en) | 2013-10-18 | 2016-12-06 | AppDynamics, Inc. | Automatic asynchronous handoff identification |
US20160170767A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Temporary transfer of a multithreaded ip core to single or reduced thread configuration during thread offload to co-processor |
CN105843592A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种在预设嵌入式系统中实现脚本操作的系统 |
WO2016181554A1 (ja) * | 2015-05-14 | 2016-11-17 | 株式会社日立製作所 | サーバストレージシステムを含んだ計算機システム |
US11023233B2 (en) * | 2016-02-09 | 2021-06-01 | Intel Corporation | Methods, apparatus, and instructions for user level thread suspension |
US10353817B2 (en) * | 2017-03-07 | 2019-07-16 | International Business Machines Corporation | Cache miss thread balancing |
WO2018165952A1 (zh) * | 2017-03-16 | 2018-09-20 | 深圳大趋智能科技有限公司 | iOS线程恢复的方法及装置 |
TWI647619B (zh) * | 2017-08-29 | 2019-01-11 | 智微科技股份有限公司 | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 |
CN109471673B (zh) * | 2017-09-07 | 2022-02-01 | 智微科技股份有限公司 | 用来于电子装置中进行硬件资源管理的方法及电子装置 |
US10481915B2 (en) * | 2017-09-20 | 2019-11-19 | International Business Machines Corporation | Split store data queue design for an out-of-order processor |
GB201717303D0 (en) | 2017-10-20 | 2017-12-06 | Graphcore Ltd | Scheduling tasks in a multi-threaded processor |
GB2569098B (en) * | 2017-10-20 | 2020-01-08 | Graphcore Ltd | Combining states of multiple threads in a multi-threaded processor |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
JPH08320797A (ja) * | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
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 |
WO1998043193A2 (en) * | 1997-03-21 | 1998-10-01 | University Of Maryland | Spawn-join instruction set architecture for providing explicit multithreading |
US6401155B1 (en) * | 1998-12-22 | 2002-06-04 | Philips Electronics North America Corporation | Interrupt/software-controlled thread processing |
SG65097A1 (en) * | 1998-12-28 | 2001-08-21 | Compaq Computer Corp | Break event generation during transitions between modes of operation in a computer system |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6341347B1 (en) * | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread 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 |
US6496925B1 (en) * | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
US6357016B1 (en) * | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US6931639B1 (en) * | 2000-08-24 | 2005-08-16 | International Business Machines Corporation | Method for implementing a variable-partitioned queue for simultaneous multithreaded processors |
AU2002326378A1 (en) * | 2001-07-13 | 2003-01-29 | Sun Microsystems, Inc. | Facilitating efficient join operations between a head thread and a speculative thread |
-
2001
- 2001-12-31 US US10/039,777 patent/US20030126416A1/en not_active Abandoned
-
2002
- 2002-12-11 WO PCT/US2002/039790 patent/WO2003058434A1/en active Application Filing
- 2002-12-11 AU AU2002364559A patent/AU2002364559A1/en not_active Abandoned
- 2002-12-11 DE DE10297597T patent/DE10297597T5/de not_active Ceased
- 2002-12-11 JP JP2003558678A patent/JP2005514698A/ja active Pending
- 2002-12-11 CN CNB028261585A patent/CN1287272C/zh not_active Expired - Fee Related
- 2002-12-11 KR KR1020047010393A patent/KR100617417B1/ko not_active IP Right Cessation
- 2002-12-25 TW TW091137297A patent/TW200403588A/zh unknown
-
2005
- 2005-08-24 HK HK05107419A patent/HK1075109A1/xx not_active IP Right Cessation
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007520825A (ja) * | 2004-02-04 | 2007-07-26 | インテル・コーポレーション | 待機状態にあるプロセッサ実行リソースの共有 |
JP2012104140A (ja) * | 2004-02-04 | 2012-05-31 | Intel Corp | 待機状態にあるプロセッサ実行リソースの共有 |
WO2008155794A1 (ja) | 2007-06-19 | 2008-12-24 | Fujitsu Limited | 情報処理装置 |
KR101100144B1 (ko) | 2007-06-19 | 2011-12-29 | 후지쯔 가부시끼가이샤 | 정보처리장치 |
US8151097B2 (en) | 2007-06-19 | 2012-04-03 | Fujitsu Limited | Multi-threaded system with branch |
JP5104861B2 (ja) * | 2007-06-19 | 2012-12-19 | 富士通株式会社 | 演算処理装置 |
WO2008155797A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算装置 |
EP2423808A1 (en) | 2007-06-20 | 2012-02-29 | Fujitsu Limited | Arithmetic device |
JP5099131B2 (ja) * | 2007-06-20 | 2012-12-12 | 富士通株式会社 | 演算装置 |
US8407714B2 (en) | 2007-06-20 | 2013-03-26 | Fujitsu Limited | Arithmetic device for processing one or more threads |
Also Published As
Publication number | Publication date |
---|---|
KR20040069352A (ko) | 2004-08-05 |
AU2002364559A1 (en) | 2003-07-24 |
US20030126416A1 (en) | 2003-07-03 |
KR100617417B1 (ko) | 2006-08-30 |
CN1287272C (zh) | 2006-11-29 |
HK1075109A1 (en) | 2005-12-02 |
CN1608246A (zh) | 2005-04-20 |
WO2003058434A1 (en) | 2003-07-17 |
DE10297597T5 (de) | 2005-01-05 |
TW200403588A (en) | 2004-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005514698A (ja) | マルチスレッドプロセッサのスレッドの実行のサスペンド処理 | |
TWI590153B (zh) | 用於多線串處理之方法 | |
US7127561B2 (en) | Coherency techniques for suspending execution of a thread until a specified memory access occurs | |
US6256775B1 (en) | Facilities for detailed software performance analysis in a multithreaded processor | |
US8205204B2 (en) | Apparatus and method for scheduling threads in multi-threading processors | |
TWI266987B (en) | Method for monitoring locks, processor, system for monitoring locks, and machine-readable medium | |
JP5415069B2 (ja) | スレッドレベルの投機実行を拡張するためのプリミティブ | |
US7254697B2 (en) | Method and apparatus for dynamic modification of microprocessor instruction group at dispatch | |
US6334182B2 (en) | Scheduling operations using a dependency matrix | |
US7603543B2 (en) | Method, apparatus and program product for enhancing performance of an in-order processor with long stalls | |
EP0962856A2 (en) | A dual-mode VLIW architecture with software-controlled parallelism | |
US20050120194A1 (en) | Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor | |
KR100940956B1 (ko) | 다중 스레드 초장 명령어 프로세서 및 명령 처리 방법 | |
US20030126379A1 (en) | Instruction sequences for suspending execution of a thread until a specified memory access occurs | |
US6032244A (en) | Multiple issue static speculative instruction scheduling with path tag and precise interrupt handling | |
JP4956891B2 (ja) | 演算処理装置,情報処理装置および演算処理装置の制御方法 | |
JP3816844B2 (ja) | プロセッサ及び命令制御方法 | |
JP5104862B2 (ja) | 命令実行制御装置及び命令実行制御方法 | |
JPH09274567A (ja) | プログラムの実行制御方法及びそのためのプロセッサ | |
Lankamp | Developing a reference implementation for a microgrid of microthreaded microprocessors | |
JPH07244588A (ja) | データ処理装置 | |
JP2000020310A (ja) | プロセッサ | |
JPH02138625A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060404 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060703 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060710 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061004 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061205 |