JP2017534970A - 複数のスレッドを実行する方法、システム、およびコンピュータ・プログラム製品、ならびに複数のスレッドの待ち状態を実現する方法、システム、およびコンピュータ・プログラム - Google Patents
複数のスレッドを実行する方法、システム、およびコンピュータ・プログラム製品、ならびに複数のスレッドの待ち状態を実現する方法、システム、およびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2017534970A JP2017534970A JP2017516711A JP2017516711A JP2017534970A JP 2017534970 A JP2017534970 A JP 2017534970A JP 2017516711 A JP2017516711 A JP 2017516711A JP 2017516711 A JP2017516711 A JP 2017516711A JP 2017534970 A JP2017534970 A JP 2017534970A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- threads
- loop
- remaining
- execution start
- 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 90
- 238000004590 computer program Methods 0.000 title claims description 13
- 230000011664 signaling Effects 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 7
- 230000001902 propagating effect Effects 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 64
- 238000005192 partition Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000011160 research Methods 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
- 230000001360 synchronised effect 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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
- G06F9/522—Barrier synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (20)
- 第1のスレッドと1組の残りのスレッドとを含む複数のスレッドをコンピュータ・プロセッサ・コア上で実行する方法であって、
解釈実行開始出口条件が存在すると判断することと、
前記コンピュータ・プロセッサ・コアが猶予期間内にあると判断することと、
前記第1のスレッドによって、前記1組の残りのスレッドのいずれにも合図することなく解釈実行開始出口同期ループに入ることと、
前記猶予期間が満了するかまたは前記残りのスレッドのそれぞれが対応する解釈実行開始出口同期ループに入るまで、前記第1のスレッドによって前記解釈実行開始出口同期ループに留まることを含む方法。 - 前記第1のスレッドが警告追跡割込みのために保留中であると判断することと、
前記第1のスレッドによって、警告追跡割込み保留条件を残りのスレッドのそれぞれに伝播することと、
前記第1のスレッドによって、前記コンピュータ・プロセッサ・コアを前記猶予期間に入らせることをさらに含む、請求項1に記載の方法。 - 前記コンピュータ・プロセッサ・コアの前記猶予期間が満了したと判断することと、
前記第1のスレッドによって、前記猶予期間の満了に基づいて前記残りのスレッドのそれぞれに対して前記対応する解釈実行開始出口同期ループに移行するように合図することをさらに含む、請求項1に記載の方法。 - 前記第1のスレッドのために待ち状態が保留中であると判断することと、
前記第1のスレッドのために警告追跡割込み保留条件が存在すると判断することと、
前記警告追跡割込み保留条件が存在するとの前記判断に基づいて、前記解釈実行開始出口同期ループに入ることをさらに含む、請求項1に記載の方法。 - 前記警告追跡割込み保留条件が存在するとの前記判断に基づいて、警告追跡割込みを提示することなく、かつ前記残りのスレッドのそれぞれに合図することなく、前記解釈実行開始出口同期ループに入る、請求項4に記載の方法。
- 前記第1のスレッドは前記複数のスレッドのうちの一次スレッドである、請求項1に記載の方法。
- コンピュータ・プロセッサ・コア上で実行される複数のスレッドのために待ち状態を実現する方法であって、
第1のスレッドと1組の残りのスレッドとを含む前記複数のスレッドによって命令ストリームを実行することと、
前記第1のスレッドが第1の待ち状態ループに入ったと判断することと、
前記残りのスレッドのいずれかが対応する待ち状態ループに入っていないと判断することと、
前記残りのスレッドのそれぞれが前記対応する待ち状態ループに入るまで、前記第1のスレッドによって前記第1の待ち状態ループに留まることを含む方法。 - 前記第1のスレッドでの非同期割込み保留に応答して前記第1の待ち状態ループを出ることをさらに含む、請求項7に記載の方法。
- 前記残りのスレッドのうちの1つから解釈実行開始出口要求信号を受け取ることに応答して前記第1の待ち状態ループから出ることをさらに含む、請求項7に記載の方法。
- 第1のスレッドと1組の残りのスレッドとを含む複数のスレッドをプロセッサのコンピュータ・プロセッサ・コア上で実行するシステムであって、前記プロセッサとメモリとを含み、
前記プロセッサは、
解釈実行開始出口条件が存在すると判断し、
前記コンピュータ・プロセッサ・コアが猶予期間内にあると判断し、
前記第1のスレッドによって、前記1組の残りのスレッドのいずれにも合図することなく解釈実行開始出口同期ループに入り、
前記猶予期間が満了するかまたは前記残りのスレッドのそれぞれが対応する解釈実行開始出口同期ループに入るまで、前記第1のスレッドによって前記解釈実行開始出口同期ループに留まる
ように構成された、システム。 - 前記プロセッサは、
前記第1のスレッドが警告追跡割込みのために保留中であると判断し、
前記第1のスレッドによって前記残りのスレッドのそれぞれに警告追跡割込み保留条件を伝播し、
前記第1のスレッドによって前記コンピュータ・プロセッサ・コアを前記猶予期間に入らせる
ようにさらに構成された、請求項10に記載のシステム。 - 前記プロセッサは、
前記コンピュータ・プロセッサ・コアの前記猶予期間が満了したと判断し、
前記猶予期間の満了に基づいて、前記第1のスレッドによって前記残りのスレッドのそれぞれに対して前記対応する解釈実行開始出口同期ループに移行するように合図する
ようにさらに構成された、請求項10に記載のシステム。 - 前記プロセッサは、
前記第1のスレッドについて待ち状態が保留中であると判断し、
前記第1のスレッドについて警告追跡割込み保留条件が存在すると判断し、
前記警告追跡割込み保留条件が存在するとの前記判断に基づいて、前記解釈実行開始出口同期ループに入る
ようにさらに構成された、請求項10に記載のシステム。 - 警告追跡割込みを提示することなく、かつ、前記残りのスレッドのそれぞれに合図することなく、前記警告追跡割込み保留条件が存在するとの前記判断に基づいて前記解釈実行開始出口同期ループに入る、請求項13に記載のシステム。
- 前記第1のスレッドは前記複数のスレッドのうちの一次スレッドである、請求項10に記載のシステム。
- プロセッサのコンピュータ・プロセッサ・コア上で実行される複数のスレッドのために待ち状態を実現するシステムであって、前記プロセッサとメモリとを含み、
前記プロセッサは、
第1のスレッドと1組の残りのスレッドとを含む前記複数のスレッドによって命令ストリームを実行し、
前記第1のスレッドが第1の待ち状態ループに入ったと判断し、
前記残りのスレッドのいずれかが対応する待ち状態ループに入っていないと判断し、
前記残りのスレッドのそれぞれが前記対応する待ち状態ループに入るまで、前記第1のスレッドによって前記第1の待ち状態ループに留まる
ように構成された、システム。 - 前記プロセッサは、前記第1のスレッドでの非同期割込み保留に応答して前記第1の待ち状態ループから出るようにさらに構成された、請求項16に記載のシステム。
- 前記プロセッサは、
前記残りのスレッドのうちの1つからの解釈実行開始出口要求信号を受け取ることに応答して前記第1の待ち状態ループから出るようにさらに構成された、請求項16に記載のシステム。 - 第1のスレッドと1組の残りのスレッドとを含む複数のスレッドをプロセッサのコンピュータ・プロセッサ・コア上で実行するためのプログラム命令が具現化されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令は前記プロセッサに、
解釈実行開始出口条件が存在すると判断させ、
前記コンピュータ・プロセッサ・コアが猶予期間内にあると判断させ、
前記第1のスレッドによって、前記1組の残りのスレッドのいずれにも合図することなく解釈実行開始出口同期ループに入らせ、
前記猶予期間が満了するかまたは前記残りのスレッドのそれぞれが対応する解釈実行開始出口同期ループに入るまで、前記第1のスレッドによって前記解釈実行開始出口同期ループに留まらせる
ように前記プロセッサにより実行可能である、コンピュータ・プログラム製品。 - プロセッサのコンピュータ・プロセッサ・コア上で実行される複数のスレッドのために待ち状態を実現するためのプログラム命令が具現化されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令は前記プロセッサに、
第1のスレッドと1組の残りのスレッドとを含む前記複数のスレッドによって命令ストリームを実行させ、
前記第1のスレッドが第1の待ち状態ループに入ったと判断させ、
前記残りのスレッドのいずれかが対応する待ち状態ループに入っていないと判断させ、
前記残りのスレッドのそれぞれが前記対応する待ち状態ループに入るまで、前記第1のスレッドによって前記第1の待ち状態ループに留まらせる
ように前記プロセッサにより実行可能である、コンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/518,095 US9898289B2 (en) | 2014-10-20 | 2014-10-20 | Coordinated start interpretive execution exit for a multithreaded processor |
US14/518,095 | 2014-10-20 | ||
PCT/EP2015/070984 WO2016062460A1 (en) | 2014-10-20 | 2015-09-14 | Improved efficiency for coordinated start interpretive execution exit for a multithreaded processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017534970A true JP2017534970A (ja) | 2017-11-24 |
JP6537600B2 JP6537600B2 (ja) | 2019-07-03 |
Family
ID=54106366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017516711A Active JP6537600B2 (ja) | 2014-10-20 | 2015-09-14 | 複数のスレッドを実行する方法、システム、およびコンピュータ・プログラム製品、ならびに複数のスレッドの待ち状態を実現する方法、システム、およびコンピュータ・プログラム |
Country Status (7)
Country | Link |
---|---|
US (4) | US9898289B2 (ja) |
EP (1) | EP3210115B1 (ja) |
JP (1) | JP6537600B2 (ja) |
CN (1) | CN107077373B (ja) |
HU (1) | HUE046174T2 (ja) |
LT (1) | LT3210115T (ja) |
WO (1) | WO2016062460A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE488259T1 (de) | 2006-12-28 | 2010-12-15 | Boston Scient Ltd | Bioerodierbare endoprothesen und herstellungsverfahren dafür |
US20100217370A1 (en) | 2009-02-20 | 2010-08-26 | Boston Scientific Scimed, Inc. | Bioerodible Endoprosthesis |
US20110160839A1 (en) | 2009-12-29 | 2011-06-30 | Boston Scientific Scimed, Inc. | Endoprosthesis |
JP5834071B2 (ja) | 2010-05-14 | 2015-12-16 | ボストン サイエンティフィック サイムド,インコーポレイテッドBoston Scientific Scimed,Inc. | ステント |
US9898289B2 (en) | 2014-10-20 | 2018-02-20 | International Business Machines Corporation | Coordinated start interpretive execution exit for a multithreaded processor |
CN111723920B (zh) * | 2019-03-22 | 2024-05-17 | 中科寒武纪科技股份有限公司 | 人工智能计算装置及相关产品 |
CN110716755B (zh) * | 2019-10-14 | 2023-05-02 | 浙江诺诺网络科技有限公司 | 一种线程退出方法、装置、设备及可读存储介质 |
CN112182770A (zh) * | 2020-10-10 | 2021-01-05 | 中国运载火箭技术研究院 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185732A1 (en) * | 2012-01-18 | 2013-07-18 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US20140282564A1 (en) * | 2013-03-15 | 2014-09-18 | Eli Almog | Thread-suspending execution barrier |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060139A (en) | 1989-04-07 | 1991-10-22 | Tektronix, Inc. | Futurebus interrupt subsystem apparatus |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US6889319B1 (en) * | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
US6842796B2 (en) | 2001-07-03 | 2005-01-11 | International Business Machines Corporation | Information extraction from documents with regular expression matching |
US20050015768A1 (en) * | 2002-12-31 | 2005-01-20 | Moore Mark Justin | System and method for providing hardware-assisted task scheduling |
US7774585B2 (en) | 2003-11-12 | 2010-08-10 | Infineon Technologies Ag | Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation |
JP2005284749A (ja) | 2004-03-30 | 2005-10-13 | Kyushu Univ | 並列処理コンピュータ |
US7765547B2 (en) | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US7853960B1 (en) | 2005-02-25 | 2010-12-14 | Vmware, Inc. | Efficient virtualization of input/output completions for a virtual device |
US7493436B2 (en) | 2006-10-26 | 2009-02-17 | International Business Machines Corporation | Interrupt handling using simultaneous multi-threading |
US8060881B2 (en) * | 2007-05-15 | 2011-11-15 | Microsoft Corporation | Small barrier with local spinning |
US8826299B2 (en) * | 2007-08-13 | 2014-09-02 | International Business Machines Corporation | Spawned message state determination |
US9201673B2 (en) | 2008-07-30 | 2015-12-01 | Microsoft Technology Licensing, Llc | Efficient detection and response to spin waits in multi-processor virtual machines |
US9213586B2 (en) | 2009-03-18 | 2015-12-15 | Sas Institute Inc. | Computer-implemented systems for resource level locking without resource level locks |
JP2011150422A (ja) | 2010-01-19 | 2011-08-04 | Renesas Electronics Corp | データ処理装置 |
US8407701B2 (en) | 2010-06-24 | 2013-03-26 | International Business Machines Corporation | Facilitating quiesce operations within a logically partitioned computer system |
US8595469B2 (en) * | 2010-06-24 | 2013-11-26 | International Business Machines Corporation | Diagnose instruction for serializing processing |
US9110878B2 (en) | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
US8850450B2 (en) * | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
US9898289B2 (en) | 2014-10-20 | 2018-02-20 | International Business Machines Corporation | Coordinated start interpretive execution exit for a multithreaded processor |
-
2014
- 2014-10-20 US US14/518,095 patent/US9898289B2/en active Active
-
2015
- 2015-09-03 US US14/844,223 patent/US9898290B2/en active Active
- 2015-09-14 CN CN201580056502.9A patent/CN107077373B/zh active Active
- 2015-09-14 HU HUE15763327A patent/HUE046174T2/hu unknown
- 2015-09-14 EP EP15763327.2A patent/EP3210115B1/en active Active
- 2015-09-14 JP JP2017516711A patent/JP6537600B2/ja active Active
- 2015-09-14 WO PCT/EP2015/070984 patent/WO2016062460A1/en active Application Filing
- 2015-09-14 LT LTEP15763327.2T patent/LT3210115T/lt unknown
-
2017
- 2017-09-27 US US15/717,279 patent/US10908903B2/en active Active
- 2017-09-27 US US15/717,487 patent/US11150905B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185732A1 (en) * | 2012-01-18 | 2013-07-18 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US20140282564A1 (en) * | 2013-03-15 | 2014-09-18 | Eli Almog | Thread-suspending execution barrier |
Also Published As
Publication number | Publication date |
---|---|
US20160110195A1 (en) | 2016-04-21 |
US20160110218A1 (en) | 2016-04-21 |
US9898290B2 (en) | 2018-02-20 |
US11150905B2 (en) | 2021-10-19 |
CN107077373B (zh) | 2020-09-29 |
WO2016062460A1 (en) | 2016-04-28 |
CN107077373A (zh) | 2017-08-18 |
US20180018174A1 (en) | 2018-01-18 |
EP3210115B1 (en) | 2019-08-21 |
EP3210115A1 (en) | 2017-08-30 |
JP6537600B2 (ja) | 2019-07-03 |
US10908903B2 (en) | 2021-02-02 |
US20180018175A1 (en) | 2018-01-18 |
US9898289B2 (en) | 2018-02-20 |
LT3210115T (lt) | 2019-09-25 |
HUE046174T2 (hu) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6537600B2 (ja) | 複数のスレッドを実行する方法、システム、およびコンピュータ・プログラム製品、ならびに複数のスレッドの待ち状態を実現する方法、システム、およびコンピュータ・プログラム | |
US8935698B2 (en) | Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors | |
US8561070B2 (en) | Creating a thread of execution in a computer processor without operating system intervention | |
KR101884579B1 (ko) | 멀티스레드된 프로세서를 위한 효율적인 인터럽션 라우팅 | |
US9817696B2 (en) | Low latency scheduling on simultaneous multi-threading cores | |
US9766917B2 (en) | Limited virtual device polling based on virtual CPU pre-emption | |
US11243800B2 (en) | Efficient virtual machine memory monitoring with hyper-threading | |
JP2007157125A (ja) | サーバ内のブロック化された処理を安全に中断するための方法、システム、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190404 |
|
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: 20190514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190604 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6537600 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |