JP5710434B2 - アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ - Google Patents
アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ Download PDFInfo
- Publication number
- JP5710434B2 JP5710434B2 JP2011202136A JP2011202136A JP5710434B2 JP 5710434 B2 JP5710434 B2 JP 5710434B2 JP 2011202136 A JP2011202136 A JP 2011202136A JP 2011202136 A JP2011202136 A JP 2011202136A JP 5710434 B2 JP5710434 B2 JP 5710434B2
- Authority
- JP
- Japan
- Prior art keywords
- assist
- hardware thread
- thread
- assist hardware
- executing
- 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 description 30
- 230000010365 information processing Effects 0.000 title claims description 14
- 230000004913 activation Effects 0.000 claims description 61
- 230000004044 response Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 11
- 230000003213 activating effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 34
- 238000004590 computer program Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000000977 initiatory effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
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)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
105 命令
110 ソフトウエア・プログラム
115 ソフトウエア状態ストア
120 起動ハードウエア・スレッド
125 ハードウエア状態ストア
130 アシスト・スレッド状態レジスタ
140 起動スレッド・レジスタ
145 命令
150 アシスト・ハードウエア・スレッド
160 アシスト・スレッド状態レジスタ
170 アシスト・スレッド・レジスタ
Claims (12)
- 起動ハードウエア・スレッドによって第一アシスト・ハードウエア・スレッドを起動するステップであって、前記第一アシスト・ハードウエア・スレッドは第一コード・セグメントを実行する、前記起動するステップと、
一つ以上の実行中のアシスト・ハードウエア・スレッドを示す、アシスト・スレッド実行インジケータを設定するステップと、
第二アシスト・ハードウエア・スレッドを起動するステップであって、前記第二アシスト・ハードウエア・スレッドは第二コード・セグメントを実行する、前記起動するステップと、
前記第一アシスト・ハードウエア・スレッドおよび前記第二アシスト・ハードウエア・スレッドの両方が終了していることを示す、前記アシスト・スレッド実行インジケータの変化を識別するステップと、
前記アシスト・スレッド実行インジケータの前記変化を識別するのに応じて、アシスト・ハードウエア・スレッドの実行結果を処理するステップと、
前記アシスト・スレッド実行インジケータを包含するアシスト・スレッド状態レジスタが、前記第一アシスト・ハードウエア・スレッドの実行を完了するステップと、
前記第一アシスト・ハードウエア・スレッドが前記第二アシスト・ハードウエア・スレッドはまだ実行中であることを検知するのに応じて、前記第一アシスト・ハードウエア・スレッドによって、前記アシスト・ハードウエア・スレッドのビットを変更しない決定をするステップと、
前記第一アシスト・ハードウエア・スレッドの前記完了の後、前記第二アシスト・ハードウエア・スレッドの実行を完了するステップと、
前記第二アシスト・ハードウエア・スレッドが前記第一アシスト・ハードウエア・スレッドは実行していないことを検知するのに応じて、前記第二アシスト・ハードウエア・スレッドによって、前記アシスト・ハードウエア・スレッドのビットを変更する決定をするステップと、
前記第二アシスト・ハードウエア・スレッドによって、前記アシスト・スレッド状態レジスタに包含されるアシスト・スレッド状態フィールド中に終了インジケータを格納するステップであって、前記終了インジケータは前記第二アシスト・ハードウエア・スレッドが終了した理由を表す、前記格納するステップと、
を含む、マシン実装された方法。 - 前記第一アシスト・ハードウエア・スレッドを起動する前記起動ハードウエア・スレッドを呼び出すソフトウエア・プログラムは、前記アシスト・スレッド実行インジケータへの一回の読み取りオペレーションを実行することによって、前記第一アシスト・ハードウエア・スレッドおよび前記第二アシスト・ハードウエア・スレッドの両方が実行を停止したことを判定する、請求項1に記載の方法。
- 前記第二アシスト・ハードウエア・スレッドが前記第一アシスト・ハードウエア・スレッドは実行していないのを検知するのに応じて、前記方法は、
前記第二アシスト・ハードウエア・スレッドによって、前記アシスト・スレッド状態レジスタに包含される停止アシスト・スレッド状態フィールド中に停止アシスト・スレッド・パラメータ値を格納するステップ、
をさらに含み、
前記停止アシスト・スレッド・パラメータ値は、前記第二アシスト・ハードウエア・スレッドが前記第二コード・セグメントの実行を成功裏に完了したかどうかを表す、
請求項1に記載の方法。 - 前記第一コード・セグメントおよび前記第二コード・セグメントはソフトウエア・プログラムに包含され、前記方法は、
前記起動ハードウエア・スレッドによって、前記ソフトウエア・プログラムに包含されている、アシスト・スレッドが実行中である条件での分岐(BCE)命令を実行するステップをさらに含み、
前記実行するステップは、
前記BCE命令から複数の汎用レジスタ番号を抜き出すステップであって、前記複数の汎用レジスタ番号は、アシスト・プロセッサ番号およびターゲット・アドレスを包含する複数の汎用レジスタを識別する、前記抜き出すステップと、
前記複数の汎用レジスタから、前記アシスト・プロセッサ番号および前記ターゲット・アドレスを読み出すステップと、
前記読み出されたアシスト・プロセッサ番号が、前記第一アシスト・ハードウエア・スレッドに対応することの判定に応じて、前記第一アシスト・ハードウエア・スレッドが実行中かどうかを判定するステップと、
前記第一アシスト・ハードウエア・スレッドが実行中との判定に応じて、前記ターゲット・アドレスに分岐するステップと、
前記第一アシスト・ハードウエア・スレッドが実行していないとの判定に応じて、前記BCE命令に続く次の命令を実行するステップと、
をさらに含む、
請求項1に記載の方法。 - 前記起動ハードウエア・スレッドは、第一実行ユニットを包含し、
前記第一アシスト・ハードウエア・スレッドは、前記第一実行ユニットとは異なる第二実行ユニットを包含する
請求項1に記載の方法。 - 前記第一コード・セグメントおよび前記第二コード・セグメントはソフトウエア・プログラムに包含されており、前記方法は、
前記起動ハードウエア・スレッドによって、前記ソフトウエア・プログラムに包含されている、アシスト・スレッドが実行中ならば状態レジスタを設定する(CRSE)命令を実行するステップをさらに含み、
前記実行するステップは
前記CRSE命令から複数の汎用レジスタ番号を抜き出すステップであって、前記複数の汎用レジスタ番号は、アシスト・プロセッサ番号および状態レジスタ・ビット番号を包含する複数の汎用レジスタを識別する、前記抜き出すステップと、
前記複数の汎用レジスタから、前記アシスト・プロセッサ番号および前記状態レジスタ・ビット番号を読み出すステップと、
前記読み出されたアシスト・プロセッサ番号が、前記第一アシスト・ハードウエア・スレッドに対応することの判定に応じて、前記第一アシスト・ハードウエア・スレッドが実行中かどうかを判定するステップと、
前記第一アシスト・ハードウエア・スレッドが実行中であるとの判定に応じて、前記読み出された状態ビットレジスタ番号に対応する状態ビットを、状態レジスタにおいて設定するステップと、
前記第一アシスト・ハードウエア・スレッドが実行していないとの判定に応じて、前記読み出された状態ビットレジスタ番号に対応する前記状態ビットを、前記状態レジスタ中においてクリアするステップと、
をさらに含む、
請求項1に記載の方法。 - 前記ソフトウエア・プログラムによって、前記状態ビットが設定されていることを検知するステップと、
前記状態ビットが設定されていることの検知に応じて、ソフトウエア・コードを実行するステップと、
をさらに含む、請求項6に記載の方法。 - 前記第一アシスト・ハードウエア・スレッドが前記第二アシスト・ハードウエア・スレッドを呼び出す、請求項1に記載の方法。
- 前記起動ハードウエア・スレッドが前記第二アシスト・ハードウエア・スレッドを呼び出す、請求項1に記載の方法。
- 一つ以上のプロセッサ、
前記プロセッサの少なくとも一つに連結されたメモリ、および
前記メモリに格納される命令のセット、
を含む情報処理システムであって、
前記請求項1乃至請求項7のいずれかに記載の方法のすべてのステップの処理を遂行するため、前記プロセッサの少なくとも一つによって実行される、
前記情報処理システム。 - 起動ハードウエア・スレッドと、
前記起動ハードウエア・スレッドに起動された第一アシスト・ハードウエア・スレッドであって、前記第一アシスト・ハードウエア・スレッドは第一コード・セグメントを実行する、前記第一アシスト・ハードウエア・スレッドと、
前記第一アシスト・ハードウエア・スレッドを起動するのに応じて、前記起動ハードウエア・スレッドによって設定されるアシスト・スレッド実行インジケータと、
前記起動ハードウエア・スレッドによって起動された第二アシスト・ハードウエア・スレッドであって、前記第二アシスト・ハードウエア・スレッドは第二コード・セグメントを実行する、前記第二アシスト・ハードウエア・スレッドと、
を含むプロセッサであって、
前記起動ハードウエア・スレッドは、前記アシスト・スレッド実行インジケータの変化を検知し、前記変化は、前記第一アシスト・ハードウエア・スレッドおよび前記第二アシスト・ハードウエア・スレッドの両方が終了したことを示すことと、
前記アシスト・スレッド実行インジケータが前記変化を識別することと、
前記アシスト・スレッド実行インジケータが前記変化を識別するのに応じて、アシスト・ハードウエア・スレッドの実行結果を処理することと、
前記アシスト・スレッド実行インジケータを包含するアシスト・スレッド状態レジスタが、前記第一アシスト・ハードウエア・スレッドの実行を完了することと、
前記第一アシスト・ハードウエア・スレッドが前記第二アシスト・ハードウエア・スレッドはまだ実行中であることを検知するのに応じて、前記第一アシスト・ハードウエア・スレッドによって、前記アシスト・ハードウエア・スレッドのビットを変更しない決定することと、
前記第一アシスト・ハードウエア・スレッドの前記完了の後、前記第二アシスト・ハードウエア・スレッドの実行を完了することと、
前記第二アシスト・ハードウエア・スレッドが前記第一アシスト・ハードウエア・スレッドは実行していないことを検知するのに応じて、前記第二アシスト・ハードウエア・スレッドによって、前記アシスト・ハードウエア・スレッドのビットを変更する決定することと、
前記第二アシスト・ハードウエア・スレッドによって、前記アシスト・スレッド状態レジスタに包含されるアシスト・スレッド状態フィールド中に終了インジケータを格納するステップであって、前記終了インジケータは前記第二アシスト・ハードウエア・スレッドが終了した理由を表す、前記格納をする、
前記プロセッサ。 - ソフトウエア・プログラムが、前記アシスト・スレッド実行インジケータへの一回の読み取りオペレーションを実行することによって、前記第一アシスト・ハードウエア・スレッドおよび前記第二アシスト・ハードウエア・スレッドの両方が実行を停止したことを判定する、請求項11に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/886,149 US8713290B2 (en) | 2010-09-20 | 2010-09-20 | Scaleable status tracking of multiple assist hardware threads |
US12/886149 | 2010-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012064215A JP2012064215A (ja) | 2012-03-29 |
JP5710434B2 true JP5710434B2 (ja) | 2015-04-30 |
Family
ID=45818793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011202136A Expired - Fee Related JP5710434B2 (ja) | 2010-09-20 | 2011-09-15 | アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (2) | US8713290B2 (ja) |
JP (1) | JP5710434B2 (ja) |
CN (1) | CN102411512B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8793474B2 (en) | 2010-09-20 | 2014-07-29 | International Business Machines Corporation | Obtaining and releasing hardware threads without hypervisor involvement |
CN104424027B (zh) * | 2013-08-22 | 2018-07-13 | 华为技术有限公司 | 线程运行方法及装置 |
US9898348B2 (en) | 2014-10-22 | 2018-02-20 | International Business Machines Corporation | Resource mapping in multi-threaded central processor units |
US9575802B2 (en) | 2014-10-28 | 2017-02-21 | International Business Machines Corporation | Controlling execution of threads in a multi-threaded processor |
US11080064B2 (en) | 2014-10-28 | 2021-08-03 | International Business Machines Corporation | Instructions controlling access to shared registers of a multi-threaded processor |
US10031753B2 (en) * | 2015-05-22 | 2018-07-24 | Nxp Usa, Inc. | Computer systems and methods for executing contexts with autonomous functional units |
US9977677B2 (en) * | 2016-04-07 | 2018-05-22 | International Business Machines Corporation | Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port |
CN106528049B (zh) * | 2016-11-17 | 2019-06-11 | 上海兆芯集成电路有限公司 | 在多存储体条件分支预测器中用于更新事件的随机数产生 |
GB2569098B (en) | 2017-10-20 | 2020-01-08 | Graphcore Ltd | Combining states of multiple threads in a multi-threaded processor |
GB2569269B (en) * | 2017-10-20 | 2020-07-15 | Graphcore Ltd | Synchronization in a multi-tile processing arrangement |
US11921843B2 (en) * | 2021-09-26 | 2024-03-05 | Ceremorphic, Inc. | Multi-threaded secure processor with control flow attack detection |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247676A (en) * | 1989-06-29 | 1993-09-21 | Digital Equipment Corporation | RPC based computer system using transparent callback and associated method |
US6233599B1 (en) | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
US5978857A (en) | 1997-07-22 | 1999-11-02 | Winnov, Inc. | Multimedia driver having reduced system dependence using polling process to signal helper thread for input/output |
US6105055A (en) | 1998-03-13 | 2000-08-15 | Siemens Corporate Research, Inc. | Method and apparatus for asynchronous multimedia collaboration |
US6438671B1 (en) | 1999-07-01 | 2002-08-20 | International Business Machines Corporation | Generating partition corresponding real address in partitioned mode supporting system |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6952824B1 (en) | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US6629237B2 (en) | 2000-09-01 | 2003-09-30 | Intel Corporation | Solving parallel problems employing hardware multi-threading in a parallel processing environment |
US6742146B2 (en) | 2001-02-14 | 2004-05-25 | Emc Corporation | Techniques for providing data within a data storage system |
US6928645B2 (en) | 2001-03-30 | 2005-08-09 | Intel Corporation | Software-based speculative pre-computation and multithreading |
CA2346762A1 (en) | 2001-05-07 | 2002-11-07 | Ibm Canada Limited-Ibm Canada Limitee | Compiler generation of instruction sequences for unresolved storage devices |
US20020199179A1 (en) | 2001-06-21 | 2002-12-26 | Lavery Daniel M. | Method and apparatus for compiler-generated triggering of auxiliary codes |
JP3632635B2 (ja) * | 2001-07-18 | 2005-03-23 | 日本電気株式会社 | マルチスレッド実行方法及び並列プロセッサシステム |
US7398518B2 (en) * | 2002-12-17 | 2008-07-08 | Intel Corporation | Method and apparatus for measuring thread wait time |
US7587584B2 (en) | 2003-02-19 | 2009-09-08 | Intel Corporation | Mechanism to exploit synchronization overhead to improve multithreaded performance |
US7849465B2 (en) | 2003-02-19 | 2010-12-07 | Intel Corporation | Programmable event driven yield mechanism which may activate service threads |
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 |
US7404067B2 (en) | 2003-09-08 | 2008-07-22 | Intel Corporation | Method and apparatus for efficient utilization for prescient instruction prefetch |
US20050071438A1 (en) | 2003-09-30 | 2005-03-31 | Shih-Wei Liao | Methods and apparatuses for compiler-creating helper threads for multi-threading |
US20050071841A1 (en) * | 2003-09-30 | 2005-03-31 | Hoflehner Gerolf F. | Methods and apparatuses for thread management of mult-threading |
US7631307B2 (en) | 2003-12-05 | 2009-12-08 | Intel Corporation | User-programmable low-overhead multithreading |
US7676655B2 (en) | 2004-06-30 | 2010-03-09 | Sun Microsystems, Inc. | Single bit control of threads in a multithreaded multicore processor |
US20060080661A1 (en) | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | System and method for hiding memory latency |
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US8230422B2 (en) | 2005-01-13 | 2012-07-24 | International Business Machines Corporation | Assist thread for injecting cache memory in a microprocessor |
US20070055852A1 (en) | 2005-09-06 | 2007-03-08 | Alcatel | Processing operation management systems and methods |
WO2007043130A1 (ja) * | 2005-10-03 | 2007-04-19 | Fujitsu Limited | 描画装置、半導体集積回路装置及び描画方法 |
WO2007084700A2 (en) * | 2006-01-19 | 2007-07-26 | University Of Maryland Office Of Technology Commercialization | System and method for thread handling in multithreaded parallel computing of nested threads |
US8595744B2 (en) * | 2006-05-18 | 2013-11-26 | Oracle America, Inc. | Anticipatory helper thread based code execution |
US8041929B2 (en) | 2006-06-16 | 2011-10-18 | Cisco Technology, Inc. | Techniques for hardware-assisted multi-threaded processing |
US20080046689A1 (en) * | 2006-08-21 | 2008-02-21 | Tien-Fu Chen | Method and apparatus for cooperative multithreading |
CN101529377B (zh) | 2006-10-27 | 2016-09-07 | 英特尔公司 | 处理器中多线程之间通信的方法、装置和系统 |
US8296775B2 (en) | 2007-01-31 | 2012-10-23 | Microsoft Corporation | Efficient context switching of virtual processors by managing physical register states in a virtualized environment |
US8214808B2 (en) | 2007-05-07 | 2012-07-03 | International Business Machines Corporation | System and method for speculative thread assist in a heterogeneous processing environment |
US7779234B2 (en) | 2007-10-23 | 2010-08-17 | International Business Machines Corporation | System and method for implementing a hardware-supported thread assist under load lookahead mechanism for a microprocessor |
US8775778B2 (en) | 2008-02-01 | 2014-07-08 | International Business Machines Corporation | Use of a helper thread to asynchronously compute incoming data |
CN101477458A (zh) | 2008-12-15 | 2009-07-08 | 浙江大学 | 基于处理器和fpga混合架构的硬件线程执行方法 |
US20100162247A1 (en) | 2008-12-19 | 2010-06-24 | Adam Welc | Methods and systems for transactional nested parallelism |
US8423750B2 (en) | 2010-05-12 | 2013-04-16 | International Business Machines Corporation | Hardware assist thread for increasing code parallelism |
US8667253B2 (en) | 2010-08-04 | 2014-03-04 | International Business Machines Corporation | Initiating assist thread upon asynchronous event for processing simultaneously with controlling thread and updating its running status in status register |
-
2010
- 2010-09-20 US US12/886,149 patent/US8713290B2/en not_active Expired - Fee Related
-
2011
- 2011-09-15 JP JP2011202136A patent/JP5710434B2/ja not_active Expired - Fee Related
- 2011-09-19 CN CN201110288515.2A patent/CN102411512B/zh active Active
-
2013
- 2013-01-23 US US13/748,540 patent/US8719554B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012064215A (ja) | 2012-03-29 |
CN102411512A (zh) | 2012-04-11 |
US8719554B2 (en) | 2014-05-06 |
US8713290B2 (en) | 2014-04-29 |
US20130139168A1 (en) | 2013-05-30 |
CN102411512B (zh) | 2015-04-08 |
US20120072707A1 (en) | 2012-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5710434B2 (ja) | アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ | |
KR102496402B1 (ko) | 사용자-레벨 포크 및 조인 프로세서, 방법, 시스템, 및 명령어 | |
JP6837011B2 (ja) | アルゴリズム整合、機能無効化、または性能制限による後方互換性 | |
JP6430970B2 (ja) | 異なる命令セットアーキテクチャを有するプロセッサ上におけるオペレーティングシステムの実行 | |
EP2609500B1 (en) | Obtaining and releasing hardware threads without hypervisor involvement | |
US9043789B2 (en) | Managing safe removal of a passthrough device in a virtualization system | |
JP6501791B2 (ja) | マルチスレッド・ゲスト仮想マシン(vm)をディスパッチするためのシステム、方法およびコンピュータ・プログラム製品 | |
JP6556747B2 (ja) | コンピュータ内の複数のスレッドをエグジットするための方法、システム、およびコンピュータ・プログラム | |
US10402218B2 (en) | Detecting bus locking conditions and avoiding bus locks | |
US10983847B2 (en) | Dynamically loadable unikernel binaries | |
US20160253196A1 (en) | Optimized extended context management for virtual machines | |
US7698547B1 (en) | Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware | |
US11182168B2 (en) | Post completion execution in an out-of-order processor design | |
WO2019212696A1 (en) | Multithread framework for use in pre-boot environment of a system-on-chip | |
JP2022060151A (ja) | 低レイテンシのブート性能を可能にするファームウェアのブートタスクの分配 | |
US9886327B2 (en) | Resource mapping in multi-threaded central processor units | |
US8694832B2 (en) | Assist thread analysis and debug mechanism | |
CN114610492A (zh) | 乱序执行资源的回收方法、装置、电子设备和存储介质 | |
CN117075973A (zh) | 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140409 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150129 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150304 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5710434 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |