JP6639488B2 - マルチスレッド・プロセッサにおける制御を容易にする方法、システム、およびコンピュータ・プログラム - Google Patents
マルチスレッド・プロセッサにおける制御を容易にする方法、システム、およびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP6639488B2 JP6639488B2 JP2017518811A JP2017518811A JP6639488B2 JP 6639488 B2 JP6639488 B2 JP 6639488B2 JP 2017518811 A JP2017518811 A JP 2017518811A JP 2017518811 A JP2017518811 A JP 2017518811A JP 6639488 B2 JP6639488 B2 JP 6639488B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- register
- thread
- interlock
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 23
- 238000004590 computer program Methods 0.000 title claims description 9
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 238000005192 partition Methods 0.000 description 15
- 230000001276 controlling effect Effects 0.000 description 13
- 238000012360 testing method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 101100310513 Botryococcus braunii SMT-2 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation 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
- G06F9/3824—Operand accessing
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
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)
- Advance Control (AREA)
Description
(A)インターロックは、例えば、以下の場合に、パイプ0によって設定することができる。
−インターロックを設定する必要がある命令が、パイプ0内に存在し、それが、単独で発行される。
−インターロックを設定する必要がある命令が、パイプ0内に存在し、ロックを設定することを望まない別の命令が、パイプ1内に存在し、両方の命令は、同じスレッドからのものである。
−インターロックを設定する必要がある命令が、パイプ0内に存在し、ロックを設定する必要がある別の命令が、パイプ1内に存在するが、パイプ0内の命令のほうが、古く、両方の命令は、同じスレッドからのものである。
−インターロックを設定する必要がある命令が、パイプ0内に存在し、ロックを設定することを望まない別の命令が、パイプ1内に存在し、両方の命令は、異なるスレッドからのものである。
−インターロックを設定する必要がある命令が、パイプ0内に存在し、ロックを設定する必要がある別の命令が、パイプ1内に存在し、両方の命令は、異なるスレッドからのものであり、LFSR(線形フィードバック・シフト・レジスタ)が、パイプ0を指し示す。LFSRは、疑似乱数を生成するために使用され、その数の最上位ビットを取ることによって、疑似ランダム選択が、2つのパイプの間において提供される(すなわち、どちらのパイプがインターロックを設定するかをランダムに選択する)。
−有効な命令が、パイプ内に存在する、かつ
−ILOCKが、設定されている、かつ
−predec_rd(すなわち、読み込み(RSR)タイプの命令の初期指示)、またはpredec_wr(すなわち、書き込み(WSR)タイプの命令の初期指示)が、設定されている、かつ
−パイプ内の命令が、フラッシュ/xcondされていない、かつ
−そのパイプによって((A)に従って)インターロックを設定することができる、かつ
−インターロックが、まだ設定されていない。
−有効な命令が、パイプ内に存在する、かつ
−ILOCKが、設定されている、かつ
−predec_rd、またはpredec_wrが、設定されている、かつ
−パイプ内の命令が、フラッシュ/xcondされていない、かつ
−インターロックが、すでに設定されている、かつ
−命令.GTAG(命令を含むディスパッチ・グループの識別子)=インターロック.GTAGである(すなわち、命令と関連付けられた識別子が、インターロックを設定した識別子に等しい)、かつ
−命令.th_id(スレッドid)=インターロック.th_idである。
−インターロックが、すでに設定されている、かつ
−(C)からの更新がない、かつ
(
ロックを握った命令が、完了しつつある、
−それをロックした読み込み命令が、完了しつつある、かつ
−これは、CSGRUの第1のグループの完了ではない、
または
(
ロックを握った命令が、チェックポイントに達しつつある、
−それをロックした書き込み命令が、チェックポイントに達しつつある、かつ
−インターロック.GTAG=命令.GTAG
または
−これが、CSGRUの第2のグループの完了である場合、それがチェックポイントに達するのを待つ、かつ
−インターロック.GTAG+1=命令.GTAG
)
または
ロックを握ったμopが拒否され、そのグループ内に他の保持者がいない、
または
ロックを握ったμopが撤回され、そのグループ内に他の保持者がいない、
または
ロックを握ったμopがフラッシュ/xcondされ、そのグループ内に他の保持者がいない、
または
リカバリ進行中
)
1)インターロックがロックされている、かつ
命令.th_id !=(等しくない) インターロック.th_id、かつ
命令.GTAG != インターロック.GTAG
両方のパイプ内でILOCKがオンである、かつ
現在のパイプがより新しい命令を保持する、
=>(やはりインターロック・ビットがより古い命令によってまだオンにされていない場合は)現在のより新しい命令は拒否されるべきである。
両方のパイプ内でILOCKがオンである、かつ
現在のパイプ番号が(パイプ0の場合は0、パイプ1の場合は1である)LFSRの値と等しくない=>(やはりインターロック・ビットがより古い命令によってまだオンにされていない場合は)現在のパイプxの命令は拒否されるべきである。
Claims (7)
- マルチスレッド・プロセッサにおける制御を容易にする方法であって、
前記マルチスレッド・プロセッサによって、オペレーションを実行するための命令を獲得するステップであって、前記命令が、前記マルチスレッド・プロセッサのスレッドによって開始される、前記ステップと、
前記マルチスレッド・プロセッサの前記スレッドによって、前記オペレーションを実行するために前記命令の実行を開始するステップと、
前記開始された命令の実行を続行するべきかどうかを、当該命令が前記スレッドおよび他のスレッドによって共有される共有レジスタへのアトミック・アクセスを有するかどうかを判定するインターロッキング・プロトコルを使用して判定するステップと、
前記判定するステップにおける前記インターロッキング・プロトコルが、
(1)前記命令が前記共有レジスタへのアトミック・アクセスを有するか否かを示すロック・インジケータが当該命令内に設定されているかどうかを判定するステップと、
(2)前記ロック・インジケータが設定されていることを前記判定が示すことに基づいて、前記他のスレッドの1つまたは複数の他の命令のためにインターロックが前記共有レジスタに設定されているかどうかをチェックするステップと、
(3)前記1つまたは複数の他の命令のために前記インターロックが設定されていないことを前記チェックが示すことに基づいて、前記スレッドの前記命令のために前記インターロックを前記共有レジスタに設定するステップと、を含み、
前記インターロックを設定したことに基づいて、前記命令の実行を続行するステップであって、実行を続行する前記ステップが、前記共有レジスタを使用して、前記オペレーションを実行することを含む、前記ステップと、
を含む方法。 - 前記オペレーションの実行は、前記共有レジスタを排他的に使用して実行される、請求項1に記載の方法。
- 前記命令の完了または前記命令のチェックポイントの一方に基づいて、前記インターロックをリセットするステップをさらに含む、請求項1に記載の方法。
- 前記命令を続行するべきかどうかを判定する前記ステップが、前記インターロックが前記1つまたは複数の他の命令のために設定されていることを前記チェックが示すことに基づいて、前記命令の続行を拒否するステップをさらに含む、請求項1に記載の方法。
- 前記命令が、レジスタ比較およびスワップ命令、レジスタ・ロードおよび論理積命令、またはレジスタ・ロードおよび論理和命令のうちの1つを含む、請求項1に記載の方法。
- 請求項1ないし5のいずれかに記載の方法のすべてのステップを実施する手段を備えるシステム。
- コンピュータ・システム上で実行されたときに請求項1ないし5のいずれかに記載の方法のすべてのステップを実施するための命令を含むコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/525,850 US11080064B2 (en) | 2014-10-28 | 2014-10-28 | Instructions controlling access to shared registers of a multi-threaded processor |
US14/525,850 | 2014-10-28 | ||
PCT/EP2015/074335 WO2016066487A1 (en) | 2014-10-28 | 2015-10-21 | Instructions controlling access to shared registers of a multi-threaded processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017536611A JP2017536611A (ja) | 2017-12-07 |
JP6639488B2 true JP6639488B2 (ja) | 2020-02-05 |
Family
ID=54361064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017518811A Active JP6639488B2 (ja) | 2014-10-28 | 2015-10-21 | マルチスレッド・プロセッサにおける制御を容易にする方法、システム、およびコンピュータ・プログラム |
Country Status (5)
Country | Link |
---|---|
US (2) | US11080064B2 (ja) |
EP (1) | EP3213188B1 (ja) |
JP (1) | JP6639488B2 (ja) |
CN (1) | CN107111483B (ja) |
WO (1) | WO2016066487A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898348B2 (en) | 2014-10-22 | 2018-02-20 | International Business Machines Corporation | Resource mapping in multi-threaded central processor units |
US10866900B2 (en) * | 2017-10-17 | 2020-12-15 | Samsung Electronics Co., Ltd. | ISA extension for high-bandwidth memory |
CN109614148B (zh) * | 2018-12-11 | 2020-10-02 | 中科驭数(北京)科技有限公司 | 数据逻辑运算方法、监测方法及装置 |
GB2580327B (en) * | 2018-12-31 | 2021-04-28 | Graphcore Ltd | Register files in a multi-threaded processor |
CN112395093A (zh) * | 2020-12-04 | 2021-02-23 | 龙芯中科(合肥)技术有限公司 | 多线程数据处理方法、装置、电子设备及可读存储介质 |
US20230342158A1 (en) * | 2022-04-21 | 2023-10-26 | Microchip Technology Incorporated | Atomic Instruction Set and Architecture with Bus Arbitration Locking |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341482A (en) | 1987-03-20 | 1994-08-23 | Digital Equipment Corporation | Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions |
US6128710A (en) * | 1997-05-28 | 2000-10-03 | International Business Machines Corporation | Method utilizing a set of blocking-symbol resource-manipulation instructions for protecting the integrity of data in noncontiguous data objects of resources in a shared memory of a multiple processor computer system |
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 |
US7496915B2 (en) | 2003-04-24 | 2009-02-24 | International Business Machines Corporation | Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes |
US7873785B2 (en) | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
US7802255B2 (en) | 2003-12-19 | 2010-09-21 | Stmicroelectronics, Inc. | Thread execution scheduler for multi-processing system and method |
US7676655B2 (en) | 2004-06-30 | 2010-03-09 | Sun Microsystems, Inc. | Single bit control of threads in a multithreaded multicore processor |
US8719819B2 (en) | 2005-06-30 | 2014-05-06 | Intel Corporation | Mechanism for instruction set based thread execution on a plurality of instruction sequencers |
US7664936B2 (en) | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7350034B2 (en) | 2005-06-20 | 2008-03-25 | International Business Machines Corporation | Architecture support of best-effort atomic transactions for multiprocessor systems |
US7624257B2 (en) | 2005-11-30 | 2009-11-24 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads |
US8838940B2 (en) | 2006-06-07 | 2014-09-16 | Azul Systems, Inc. | CPU utilization metering on systems that include multiple hardware threads per core |
WO2008120367A1 (ja) | 2007-03-29 | 2008-10-09 | Fujitsu Limited | 並列化プログラム生成方法、並列化プログラム生成装置、及び並列化プログラム生成プログラム |
US7917900B2 (en) | 2007-03-30 | 2011-03-29 | Microsoft Corporation | Enabling analysis of software source code |
US7853950B2 (en) | 2007-04-05 | 2010-12-14 | International Business Machines Corporarion | Executing multiple threads in a processor |
CN101681261B (zh) | 2007-06-20 | 2014-07-16 | 富士通株式会社 | 运算处理装置及其控制方法 |
US8347312B2 (en) | 2007-07-06 | 2013-01-01 | Xmos Limited | Thread communications |
US8078843B2 (en) | 2008-01-31 | 2011-12-13 | International Business Machines Corporation | Facilitating processing in a computing environment using an extended drain instruction |
JP2010039536A (ja) | 2008-07-31 | 2010-02-18 | Panasonic Corp | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム |
US8219994B2 (en) * | 2008-10-23 | 2012-07-10 | Globalfoundries Inc. | Work balancing scheduler for processor cores and methods thereof |
GB2466984B (en) * | 2009-01-16 | 2011-07-27 | Imagination Tech Ltd | Multi-threaded data processing system |
JP5463076B2 (ja) | 2009-05-28 | 2014-04-09 | パナソニック株式会社 | マルチスレッドプロセッサ |
US8695002B2 (en) | 2009-10-20 | 2014-04-08 | Lantiq Deutschland Gmbh | Multi-threaded processors and multi-processor systems comprising shared resources |
US8612978B2 (en) | 2009-12-10 | 2013-12-17 | Oracle America, Inc. | Code execution utilizing single or multiple threads |
JP2011170619A (ja) | 2010-02-18 | 2011-09-01 | Toyota Motor Corp | マルチスレッド処理装置 |
US9047079B2 (en) | 2010-02-19 | 2015-06-02 | International Business Machines Corporation | Indicating disabled thread to other threads when contending instructions complete execution to ensure safe shared resource condition |
US8615644B2 (en) | 2010-02-19 | 2013-12-24 | International Business Machines Corporation | Processor with hardware thread control logic indicating disable status when instructions accessing shared resources are completed for safe shared resource condition |
US8560814B2 (en) | 2010-05-04 | 2013-10-15 | Oracle International Corporation | Thread fairness on a multi-threaded processor with multi-cycle cryptographic operations |
US8468531B2 (en) | 2010-05-26 | 2013-06-18 | International Business Machines Corporation | Method and apparatus for efficient inter-thread synchronization for helper threads |
US8713290B2 (en) | 2010-09-20 | 2014-04-29 | International Business Machines Corporation | Scaleable status tracking of multiple assist hardware threads |
BRPI1005341B1 (pt) | 2010-12-02 | 2016-12-20 | Bosch Do Brasil | galeria de combustível de material plástico com sistema de aquecimento |
US20130080738A1 (en) | 2011-09-23 | 2013-03-28 | Qualcomm Incorporated | Processor configured to perform transactional memory operations |
US20130246761A1 (en) | 2012-03-13 | 2013-09-19 | International Business Machines Corporation | Register sharing in an extended processor architecture |
US10430190B2 (en) | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US9652300B2 (en) | 2012-06-28 | 2017-05-16 | Intel Corporation | Systems, methods, and computer program products for preemption of threads at a synchronization barrier |
US9110718B2 (en) | 2012-09-24 | 2015-08-18 | Oracle International Corporation | Supporting targeted stores in a shared-memory multiprocessor system |
US9116738B2 (en) | 2012-11-13 | 2015-08-25 | International Business Machines Corporation | Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system |
US9678897B2 (en) | 2012-12-27 | 2017-06-13 | Nvidia Corporation | Approach for context switching of lock-bit protected memory |
GB2509755B (en) * | 2013-01-14 | 2015-07-08 | Imagination Tech Ltd | Partitioning a shared cache using masks associated with threads to avoiding thrashing |
US9612811B2 (en) | 2014-01-21 | 2017-04-04 | Nvidia Corporation | Confluence analysis and loop fast-forwarding for improving SIMD execution efficiency |
JP6330569B2 (ja) | 2014-08-14 | 2018-05-30 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US9424103B2 (en) | 2014-09-30 | 2016-08-23 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive lock for a computing system having multiple runtime environments and multiple processing units |
-
2014
- 2014-10-28 US US14/525,850 patent/US11080064B2/en active Active
-
2015
- 2015-09-08 US US14/847,157 patent/US11061680B2/en active Active
- 2015-10-21 JP JP2017518811A patent/JP6639488B2/ja active Active
- 2015-10-21 CN CN201580058173.1A patent/CN107111483B/zh active Active
- 2015-10-21 EP EP15787164.1A patent/EP3213188B1/en active Active
- 2015-10-21 WO PCT/EP2015/074335 patent/WO2016066487A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2017536611A (ja) | 2017-12-07 |
EP3213188B1 (en) | 2022-03-16 |
CN107111483B (zh) | 2021-04-02 |
CN107111483A (zh) | 2017-08-29 |
US20160117169A1 (en) | 2016-04-28 |
WO2016066487A1 (en) | 2016-05-06 |
US11080064B2 (en) | 2021-08-03 |
US11061680B2 (en) | 2021-07-13 |
EP3213188A1 (en) | 2017-09-06 |
US20160117170A1 (en) | 2016-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6639488B2 (ja) | マルチスレッド・プロセッサにおける制御を容易にする方法、システム、およびコンピュータ・プログラム | |
JP6580134B2 (ja) | コンピューティング環境におけるスレッドの実行を制御する方法、システム、およびコンピュータ・プログラム | |
TWI551986B (zh) | 用於自較低特殊權限狀態控制執行階段檢測設施之操作之電腦程式產品、方法及其系統 | |
JP6509248B2 (ja) | コンピュータ内の複数のスレッドを管理する制御エリアを提供するためのシステム、方法、およびコンピュータ・プログラム製品 | |
TWI534613B (zh) | 用於執行階段檢測導向取樣的計算機程式產品、方法及系統 | |
JP6556748B2 (ja) | コンピュータにおいて複数のスレッドをディスパッチするための方法、システム、およびコンピュータ・プログラム | |
JP6501791B2 (ja) | マルチスレッド・ゲスト仮想マシン(vm)をディスパッチするためのシステム、方法およびコンピュータ・プログラム製品 | |
US11182168B2 (en) | Post completion execution in an out-of-order processor design | |
TW201403314A (zh) | 執行階段檢測報告 | |
US20190187993A1 (en) | Finish status reporting for a simultaneous multithreading processor using an instruction completion table | |
US10296348B2 (en) | Delayed allocation of an out-of-order queue entry and based on determining that the entry is unavailable, enable deadlock avoidance involving reserving one or more entries in the queue, and disabling deadlock avoidance based on expiration of a predetermined amount of time | |
WO2018100456A1 (en) | Memory access control for parallelized processing | |
KR102597201B1 (ko) | 트랜잭션 네스팅 심도 시험 명령 | |
US11144238B1 (en) | Background processing during remote memory access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170629 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180627 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190423 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190718 |
|
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: 20191203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191224 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6639488 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |