JP5300005B2 - スレッド実行制御方法、およびシステム - Google Patents
スレッド実行制御方法、およびシステム Download PDFInfo
- Publication number
- JP5300005B2 JP5300005B2 JP2008304369A JP2008304369A JP5300005B2 JP 5300005 B2 JP5300005 B2 JP 5300005B2 JP 2008304369 A JP2008304369 A JP 2008304369A JP 2008304369 A JP2008304369 A JP 2008304369A JP 5300005 B2 JP5300005 B2 JP 5300005B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- core
- lock
- complex
- complex core
- 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
Images
Landscapes
- Multi Processors (AREA)
Description
処理1:現在のシンプルコア30を特定する情報を、スレッドローカルな記憶領域(スタック領域)に記憶する(102)。
処理2:スレッドローカルな記憶領域に記憶されているネストカウンタを1にセットする(103)。
処理3:スレッド60が自身をコンプレックスコア50へ移送する(105)。
S20:スレッドは、ネストカウンタをインクリメントし、ステップS70へ処理を移す。
S40:スレッドは、自身がすでにコンプレックスコアにいるか否かを判断する。判断結果が、YESの場合にはすでにコンプレックスコアにいるスレッドについてステップS70へ処理を移し、NOの場合にはステップS50へ処理を移す。
S60:スレッドは、ロックの取得を試みる。スレッドがロックの取得に成功した場合には、処理は完了し、コンプレックスコアにてクリティカルセクションが実行される。一方、スレッドがロックの取得に失敗した場合には、ステップS70へ処理を移す。
S120:スレッドは、スレッドローカルな記憶領域のネストカウンタが0であるか否かの判断を行う。判断結果が、YESの場合には処理を完了し、NOの場合にはステップS130へ処理を移す。
S130:スレッドは、ネストカウンタをデクリメントする。
S150:スレッドは、スレッドローカルな記憶領域に記憶されている元のシンプルコアを特定する情報に基づいて、システムコールを呼び出す。システムコール内で、システムコールを呼び出したスレッドは、自身を元のシンプルコアへ移送する。
本発明の実装例として、Java(登録商標)のsynchronizedブロックにおけるロック取得待ち時間を削減するために、Linux2.6が提供するスレッド移送のためのシステムコールを用いるプログラム例について説明する。
10 ヘテロジニアス・マルチコアプロセッサ
20 移動制御部
30 シンプルコア
40 OSカーネル
50 コンプレックスコア
60 スレッド
Claims (7)
- ヘテロジニアス・マルチコアプロセッサのスレッド実行制御方法であって、
前記ヘテロジニアス・マルチコアプロセッサは、複数のシンプルコアと少なくとも1つのコンプレックスコアとを搭載し、
前記スレッド実行制御方法は、
前記複数のシンプルコアそれぞれまたは前記少なくとも1つのコンプレックスコアそれぞれにて実行されているスレッドのうち、一のスレッドがクリティカルセクションのロックを取得するステップと、
前記複数のシンプルコアにて実行されている他のスレッドが、前記一のスレッドによって取得されたロックと同一のロックの取得を試みるステップと、
前記同一のロックの取得を試みた他のスレッドが、前記一のスレッドとのロック競合に遭遇したことに応じて、スレッド自身を前記コンプレックスコアに移送するステップと、
前記コンプレックスコアに移送された他のスレッドが、前記同一のロックの取得を試み、前記同一のロックを取得するステップと、
前記同一のロックを取得した前記移送された他のスレッドが、前記コンプレックスコアにて、クリティカルセクションを実行するステップと、
を含むスレッド実行制御方法。 - 一定時間間隔毎に、前記複数のシンプルコアのうち特定のシンプルコアにて実行されるスレッドが、前記シンプルコアの負荷と前記コンプレックスコアの負荷とを比較し、比較結果に基づいて、前記シンプルコアから前記コンプレックスコアへのスレッド移送を許可するか否かを許可情報として記憶するステップを更に含み、
前記コンプレックスコアに移送するステップは、前記許可情報がスレッド移送可となっている場合に、移送する、請求項1に記載のスレッド実行制御方法。 - スレッドはネストカウンタを有し、
前記コンプレックスコアに移送するステップは、
前記ロック競合に遭遇した他のスレッドが、スレッド自身を前記コンプレックスコアに移送する際に、前記ネストカウンタを1にセットするステップと、
前記ロック競合に遭遇した他のスレッドが、スレッド自身が存在するシンプルコアを特定する情報をスレッド自身のスタック領域に記憶するステップと、
を更に含む請求項1に記載のスレッド実行制御方法。 - 前記実行するステップは、
前記コンプレックスコアに移送された他のスレッドが、前記コンプレックスコアによりクリティカルセクションが完了したことに応じて、ロックを解放するステップと、
前記コンプレックスコアに移送された他のスレッドが、スレッド自身を、当該スレッド自身のスタック領域に記憶されている移送元のシンプルコアを特定する情報に基づいて、前記移送元のシンプルコアに移送するステップと、
を更に含む請求項3に記載のスレッド実行制御方法 - 前記ロックを解放するステップは、
前記コンプレックスコアに移送された他のスレッドが、前記ロックを解放した後に、前記ネストカウンタをデクリメントし、前記ネストカウンタが0であるか否か判断するステップと、
前記判断するステップにて、前記ネストカウンタが0であると判断した場合に、前記コンプレックスコアに移送された他のスレッドが、スレッド自身を前記移送元のシンプルコアに移送するステップと、
を更に含む請求項4に記載のスレッド実行制御方法。 - ヘテロジニアス・マルチコアプロセッサを備えるコンピュータに、請求項1に記載の方法の各ステップを実行させるためのスレッド実行制御プログラム。
- ヘテロジニアス・マルチコアプロセッサを備えるコンピュータにおける、スレッド実行制御システムであって、
前記ヘテロジニアス・マルチコアプロセッサは、複数のシンプルコアと少なくとも1つのコンプレックスコアとを搭載し、
前記複数のシンプルコアにてそれぞれ実行されるスレッドは、
クリティカルセクションのロックを取得する手段と、
前記複数のシンプルコアのうちの一のシンプルコアにて実行されているスレッドによって取得されたロックと同一のロックの取得を試みる手段と、
前記同一のロックの取得を試み、ロック競合に遭遇したことに応じて、スレッド自身を前記コンプレックスコアに移送する手段と、を備え、
前記コンプレックスコアに移送されたスレッドは、
前記同一のロックの取得を試み、前記同一のロックを取得する手段と、
前記コンプレックスコアにて、クリティカルセクションを実行する手段と、
を備えるスレッド実行制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008304369A JP5300005B2 (ja) | 2008-11-28 | 2008-11-28 | スレッド実行制御方法、およびシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008304369A JP5300005B2 (ja) | 2008-11-28 | 2008-11-28 | スレッド実行制御方法、およびシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010128895A JP2010128895A (ja) | 2010-06-10 |
JP5300005B2 true JP5300005B2 (ja) | 2013-09-25 |
Family
ID=42329232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008304369A Active JP5300005B2 (ja) | 2008-11-28 | 2008-11-28 | スレッド実行制御方法、およびシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5300005B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024177197A1 (en) * | 2023-02-21 | 2024-08-29 | Samsung Electronics Co., Ltd. | Method and electronic device for data packet flow distribution in multi-core processor |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8683468B2 (en) | 2011-05-16 | 2014-03-25 | Advanced Micro Devices, Inc. | Automatic kernel migration for heterogeneous cores |
JP5773065B2 (ja) * | 2012-03-19 | 2015-09-02 | 富士通株式会社 | スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法 |
US9378069B2 (en) | 2014-03-05 | 2016-06-28 | International Business Machines Corporation | Lock spin wait operation for multi-threaded applications in a multi-core computing environment |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159220B2 (en) * | 2001-09-28 | 2007-01-02 | Intel Corporation | Flexible acceleration of java thread synchronization on multiprocessor computers |
US7234143B2 (en) * | 2002-06-20 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Spin-yielding in multi-threaded systems |
US20040019722A1 (en) * | 2002-07-25 | 2004-01-29 | Sedmak Michael C. | Method and apparatus for multi-core on-chip semaphore |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US7509463B2 (en) * | 2005-12-01 | 2009-03-24 | Sony Computer Entertainment, Inc. | Cell processor atomic compare and swap using dedicated synergistic processor element |
-
2008
- 2008-11-28 JP JP2008304369A patent/JP5300005B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024177197A1 (en) * | 2023-02-21 | 2024-08-29 | Samsung Electronics Co., Ltd. | Method and electronic device for data packet flow distribution in multi-core processor |
Also Published As
Publication number | Publication date |
---|---|
JP2010128895A (ja) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314562B2 (en) | Systems and methods for performing concurrency restriction and throttling over contended locks | |
US7603502B2 (en) | Resource accessing with locking | |
US8875151B2 (en) | Load balancing method and apparatus in symmetric multi-processor system | |
US7844973B1 (en) | Methods and apparatus providing non-blocking access to a resource | |
JP4759273B2 (ja) | データ処理装置及び共用資源へのアクセス制御方法 | |
US7653791B2 (en) | Realtime-safe read copy update with per-processor read/write locks | |
US8713573B2 (en) | Synchronization scheduling apparatus and method in real-time multi-core system | |
Attiya et al. | Transactional scheduling for read-dominated workloads | |
JPH07191944A (ja) | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 | |
CN110727675B (zh) | 一种链表的处理方法及装置 | |
TW200540705A (en) | Methods and apapratus for processor task migration in a multi-processor system | |
JP2007537504A (ja) | コンピュータ装置用のオペレーティング・システムの、またはそれに関する改良 | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
WO2009113381A1 (ja) | マルチプロセッサシステム、マルチプロセッサシステムのos間デバイス共有方法 | |
JP5516728B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
US8495642B2 (en) | Mechanism for priority inheritance for read/write locks | |
JP5300005B2 (ja) | スレッド実行制御方法、およびシステム | |
KR100850387B1 (ko) | 패시브 스레드 및 액티브 세마포어를 갖는 처리 아키텍쳐 | |
US9047121B2 (en) | System and method for scheduling jobs in a multi-core processor | |
US7984444B1 (en) | Composite abortable locks | |
EP2256627A2 (en) | Queuing for locks on data | |
CN117707798A (zh) | 多线程并发状态下的死锁消除方法、装置、设备及介质 | |
JP2011175378A (ja) | マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法 | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
US20170236062A1 (en) | Thread coordination in a rule engine using a state machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110908 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130219 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130513 |
|
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: 20130528 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20130529 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130613 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5300005 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |