JP5447666B2 - マルチプロセッサシステムおよびスケジューリング方法 - Google Patents
マルチプロセッサシステムおよびスケジューリング方法 Download PDFInfo
- Publication number
- JP5447666B2 JP5447666B2 JP2012521255A JP2012521255A JP5447666B2 JP 5447666 B2 JP5447666 B2 JP 5447666B2 JP 2012521255 A JP2012521255 A JP 2012521255A JP 2012521255 A JP2012521255 A JP 2012521255A JP 5447666 B2 JP5447666 B2 JP 5447666B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- processor
- flag
- state
- accepted
- 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 27
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000001994 activation Methods 0.000 description 23
- 230000004913 activation Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000002360 preparation 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
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
・マルチプロセッサシステムの説明
図1は、実施例1にかかるマルチプロセッサシステムを示すブロック図である。図1に示すように、マルチプロセッサシステムはマスタープロセッサ1、一つ以上のスレーブプロセッサ2および同期部3を備える。
図2は、実施例1にかかるスケジューリング方法を示すフローチャートである。図2に示すように、タスク起動処理が開始されると、マスタープロセッサ1において自プロセッサで処理するタスク量に応じた頻度で第1のフラグ4の状態が繰り返し更新される(ステップS1)。
・マルチプロセッサシステムの説明
図3は、実施例2にかかるマルチプロセッサシステムを示すブロック図である。図3に示すように、マルチプロセッサシステムはマスタープロセッサとしてのプロセッサ#0_21、特に限定しないが、例えば二つのスレーブプロセッサとしてのプロセッサ#1_22およびプロセッサ#2_23、並びに同期部としてのスヌープコントローラ24を備える。各プロセッサ(#0、#1および#2)21〜23はバスネットワーク25を介してメモリなどの共有資源26にアクセス可能となっている。各プロセッサ(#0、#1および#2)21〜23によって並列処理が行われる。
図4は、実施例2にかかるマルチプロセッサシステムにおけるタスク受付スレッドによる処理を示すフローチャートである。図4に示すように、タスク受付スレッドがディスパッチされると、タスク受付スレッドはディスパッチの開始時に、ディスパッチされたプロセッサの受付フラグ(F0、F1およびF2)38,45,55をセットする(ステップS11)。次いで、タスク受付スレッドはディスパッチの終了時、例えばディスパッチの終了直前に、ディスパッチの開始時にセットした受付フラグ(F0、F1およびF2)38,45,55をアンセットする(ステップS12)。そして、タスク受付スレッドによる処理が終了する。
初期状態では、各プロセッサ(#0、#1および#2)21〜23のランキュー33,43,53は空である。また、F0、F1およびF2の各受付フラグ38,45,55はアンセットの状態であり、各プロセッサ(#1および#2)22,23に対応したF’1およびF’2の各受付フラグ37もアンセットの状態であるとする。
次に、タスクを起動する際の各プロセッサ(#0、#1および#2)21〜23の動作の一例について説明する。図6は、実施例2にかかるスケジューリング方法によるタスクの起動例を示す説明図である。図6に示すように、マスターとなるプロセッサ#0_21のタスクランチャー35によってスケジューリング処理が開始され、ある時刻t0における各プロセッサ(#0、#1および#2)21〜23の状態が次の通りであるとする。
プロセッサ#0_21では実行タスク31としてタスク受付スレッドがディスパッチされている。プロセッサ#0_21ではタスク受付スレッドによりプロセッサ#0_21の受付フラグF0_38がセットされる。プロセッサ#0_21のランキュー33にはタスク#1が格納されている。
タスクランチャー35はウェイトキュー34からキューの先頭にあるタスク#7を取り出し、ウェイトキュー34からタスク#7を削除する。そして、タスクランチャー35は、取り出したタスク#7にタグ情報があるか否かを調べる。タスク#7にはタグ情報が付加されていないので、タスクランチャー35は、各プロセッサ(#0、#1および#2)21〜23に対応したF0、F’1およびF’2の受付フラグ37,38の状態を調べる。
プロセッサ#0_21に対応したF0の受付フラグ38がセットされているので、タスクランチャー35はプロセッサ#0_21にタスク#7を起動する。それによって、タスク#7はプロセッサ#0_21のランキュー33の最後に格納されるので、ランキュー33にはタスク#1およびタスク#7がこの順にタスクスイッチによる実行再開を待って格納されることになる。プロセッサ#0_21ではタスク受付スレッドのディスパッチ終了時に受付フラグF0_38がアンセットされる。
プロセッサ#0_21では実行タスク31としてウェイトキュー34の先頭に格納されていたタスク#1がディスパッチされる。プロセッサ#0_21のランキュー33にはタスク#7およびタスク受付スレッドがこの順にタスクスイッチによる実行再開を待って格納されている。
マスターとなるプロセッサ#0_21に対応したF0の受付フラグ38とスレーブとなる各プロセッサ(#1および#2)22,23に対応したF’1およびF’2の受付フラグ37とにおいて複数のフラグがセットされている場合、例えばタスクランチャー35はプロセッサ番号の小さいプロセッサにタスクを起動するとする。ここでは、タスクランチャー35は、プロセッサ#1_22およびプロセッサ#2_23のうち、プロセッサ番号がより小さいプロセッサ#1_22にタスク#8を起動する。それによって、タスク#8はプロセッサ#1_22のランキュー43の最後に格納されるので、ランキュー43にはタスク#2、タスク#3およびタスク#8がこの順にタスクスイッチによる実行再開を待って格納されることになる。
プロセッサ#0_21では実行タスク31としてタスク#1がディスパッチされている。プロセッサ#0_21のランキュー33にはタスク#7およびタスク受付スレッドがこの順にタスクスイッチによる実行再開を待って格納されている。
タスクランチャー35は、タスク#9のタグ情報に基づいてプロセッサ#0_21にタスク#9を起動する。それによって、タスク#9はプロセッサ#0_21のランキュー33の最後に格納されるので、ランキュー33にはタスク#7、タスク受付スレッドおよびタスク#9がこの順にタスクスイッチによる実行再開を待って格納されることになる。
2 スレーブプロセッサ
3 同期部
4 第1のフラグ
5 第2のフラグ
6 第3のフラグ
Claims (9)
- マスタプロセッサと、
前記マスタプロセッサからタスクを割り当てられるスレーブプロセッサとを有し、
前記マスタプロセッサは、前記マスタプロセッサでのタスク割り当ての受付可否を示す値を繰り返し更新する第1のフラグと、前記スレーブプロセッサでのタスク割り当ての受付可否を示す値を繰り返し更新する第3のフラグに同期する第2のフラグを有し、前記第1のフラグがタスク割り当ての受付可能を示す頻度を前記マスタプロセッサで処理中のタスク量に応じて設定し、前記第1のフラグがタスク割り当ての受付不可である場合に、前記第2のフラグの値に応じて前記スレーブプロセッサにタスクを割り当て、
前記スレーブプロセッサは、前記スレーブプロセッサで処理中のタスク量に応じて前記第3のフラグがタスク割り当ての受付可能を示す頻度を設定する
マルチプロセッサシステム。 - 前記第1のフラグおよび前記第2のフラグは前記マスタプロセッサ内のキャッシュに設けられており、前記第3のフラグは前記スレーブプロセッサ内のキャッシュに設けられており、前記同期は、前記マスタプロセッサ内のキャッシュと前記スレーブプロセッサ内のキャッシュとの間の同一性を制御するスヌープコントローラで行われる請求項1に記載のマルチプロセッサシステム。
- 前記マスタプロセッサでは前記第1のフラグの状態を更新するタスク受付スレッドが、前記マスタプロセッサで処理するタスク量に応じた頻度でディスパッチされ、前記スレーブプロセッサでは前記第3のフラグの状態を更新するタスク受付スレッドが、前記スレーブプロセッサで処理するタスク量に応じた頻度でディスパッチされる請求項1に記載のマルチプロセッサシステム。
- 前記タスク受付スレッドは、前記マスタプロセッサおよび前記スレーブプロセッサがタスク割り当ての受付可能な状態にあるか否かを示すフラグの状態を、ディスパッチ後にタスク割り当ての受付不可能な状態からタスク割り当ての受付可能な状態に変更し、ディスパッチ終了前にタスク割り当ての受付不可能な状態に戻す動作を各プロセッサに行わせる請求項3に記載のマルチプロセッサシステム。
- 前記マスタプロセッサは、予め起動先のプロセッサが指定されていないタスクを、前記
第1のフラグの状態がタスク割り当ての受付可能な状態にあるときに前記マスタプロセッサに起動し、前記第2のフラグに反映された前記第3のフラグの状態がタスク割り当ての受付可能な状態にある前記スレーブプロセッサに起動する請求項4に記載のマルチプロセッサシステム。 - マスタプロセッサが、前記マスタプロセッサでのタスク割り当ての受付可否を示す値を繰り返し更新する第1のフラグと、前記マスタプロセッサからタスクを割り当てられるスレーブプロセッサでのタスク割り当ての受付可否を示す値を繰り返し更新する第3のフラグに同期する第2のフラグを有し、前記第1のフラグがタスク割り当ての受付可能を示す頻度を前記マスタプロセッサで処理中のタスク量に応じて設定し、前記第1のフラグがタスク割り当ての受付不可である場合に、前記第2のフラグの値に応じて前記スレーブプロセッサにタスクを割り当て、
前記スレーブプロセッサが、前記スレーブプロセッサで処理中のタスク量に応じて前記第3のフラグがタスク割り当ての受付可能を示す頻度を設定する
スケジューリング方法。 - 前記マスタプロセッサでは前記第1のフラグの状態を更新するタスク受付スレッドが、前記マスタプロセッサで処理するタスク量に応じた頻度でディスパッチされ、前記スレーブプロセッサでは前記第3のフラグの状態を更新するタスク受付スレッドが、前記スレーブプロセッサで処理するタスク量に応じた頻度でディスパッチされる請求項6に記載のスケジューリング方法。
- 前記マスタプロセッサおよび前記スレーブプロセッサは前記タスク受付スレッドを実行することによって、前記マスタプロセッサおよび前記スレーブプロセッサがタスク割り当ての受付可能な状態にあるか否かを示すフラグの状態を、ディスパッチ後にタスク割り当ての受付不可能な状態からタスク割り当ての受付可能な状態に変更し、ディスパッチ終了前にタスク割り当ての受付不可能な状態に戻す請求項7に記載のスケジューリング方法。
- 前記マスタプロセッサは、予め起動先のプロセッサが指定されていないタスクを、前記第1のフラグの状態がタスク割り当ての受付可能な状態にあるときに前記マスタプロセッサに起動し、前記第2のフラグに反映された前記第3のフラグの状態がタスク割り当ての受付可能な状態にある前記スレーブプロセッサに起動する請求項8に記載のスケジューリング方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/060913 WO2011161831A1 (ja) | 2010-06-25 | 2010-06-25 | マルチプロセッサシステムおよびスケジューリング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011161831A1 JPWO2011161831A1 (ja) | 2013-08-19 |
JP5447666B2 true JP5447666B2 (ja) | 2014-03-19 |
Family
ID=45371042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012521255A Expired - Fee Related JP5447666B2 (ja) | 2010-06-25 | 2010-06-25 | マルチプロセッサシステムおよびスケジューリング方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9367326B2 (ja) |
JP (1) | JP5447666B2 (ja) |
WO (1) | WO2011161831A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10175885B2 (en) | 2015-01-19 | 2019-01-08 | Toshiba Memory Corporation | Memory device managing data in accordance with command and non-transitory computer readable recording medium |
CN105808444B (zh) * | 2015-01-19 | 2019-01-01 | 东芝存储器株式会社 | 存储装置及非易失性存储器的控制方法 |
US10671444B2 (en) * | 2016-12-07 | 2020-06-02 | Tata Consultancy Services Limited | Systems and methods for scheduling tasks and managing computing resource allocation for closed loop control systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63208154A (ja) * | 1987-02-25 | 1988-08-29 | Mitsubishi Electric Corp | マルチプロセツサスケジユ−ル方式 |
JPH07141302A (ja) * | 1993-11-17 | 1995-06-02 | Agency Of Ind Science & Technol | 並列計算機における負荷分散方法 |
JPH11120147A (ja) * | 1997-10-17 | 1999-04-30 | Hitachi Ltd | 負荷分散制御方法 |
JPH11195007A (ja) * | 1998-01-07 | 1999-07-21 | Sanyo Electric Co Ltd | 分散処理システム及び分散処理方法 |
JP2009251997A (ja) * | 2008-04-08 | 2009-10-29 | Renesas Technology Corp | 情報処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099236A (en) * | 1977-05-20 | 1978-07-04 | Intel Corporation | Slave microprocessor for operation with a master microprocessor and a direct memory access controller |
JPS6413864A (en) | 1987-07-08 | 1989-01-18 | Hitachi Ltd | Original reader |
JPH05189390A (ja) | 1992-01-14 | 1993-07-30 | Nec Corp | トランザクションスケジューリング方式 |
JPH06139209A (ja) | 1992-10-29 | 1994-05-20 | Toshiba Corp | 疎結合マルチプロセッサシステム |
JP2882475B2 (ja) * | 1996-07-12 | 1999-04-12 | 日本電気株式会社 | スレッド実行方法 |
US6272602B1 (en) * | 1999-03-08 | 2001-08-07 | Sun Microsystems, Inc. | Multiprocessing system employing pending tags to maintain cache coherence |
US20030184960A1 (en) * | 2002-03-28 | 2003-10-02 | Compaq Information Technologies Group, L.P. | Enumeration, manageability, and security of a KVM extension device |
US8381212B2 (en) * | 2007-10-09 | 2013-02-19 | International Business Machines Corporation | Dynamic allocation and partitioning of compute nodes in hierarchical job scheduling |
-
2010
- 2010-06-25 JP JP2012521255A patent/JP5447666B2/ja not_active Expired - Fee Related
- 2010-06-25 WO PCT/JP2010/060913 patent/WO2011161831A1/ja active Application Filing
-
2012
- 2012-12-18 US US13/718,694 patent/US9367326B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63208154A (ja) * | 1987-02-25 | 1988-08-29 | Mitsubishi Electric Corp | マルチプロセツサスケジユ−ル方式 |
JPH07141302A (ja) * | 1993-11-17 | 1995-06-02 | Agency Of Ind Science & Technol | 並列計算機における負荷分散方法 |
JPH11120147A (ja) * | 1997-10-17 | 1999-04-30 | Hitachi Ltd | 負荷分散制御方法 |
JPH11195007A (ja) * | 1998-01-07 | 1999-07-21 | Sanyo Electric Co Ltd | 分散処理システム及び分散処理方法 |
JP2009251997A (ja) * | 2008-04-08 | 2009-10-29 | Renesas Technology Corp | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US9367326B2 (en) | 2016-06-14 |
WO2011161831A1 (ja) | 2011-12-29 |
US20130185521A1 (en) | 2013-07-18 |
JPWO2011161831A1 (ja) | 2013-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3678414B2 (ja) | 多重プロセッサ・システム | |
WO2015096656A1 (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
US8549524B2 (en) | Task scheduler for cooperative tasks and threads for multiprocessors and multicore systems | |
KR101626378B1 (ko) | 병렬도를 고려한 병렬 처리 장치 및 방법 | |
JP5445669B2 (ja) | マルチコアシステムおよび起動方法 | |
WO2009101563A1 (en) | Multiprocessing implementing a plurality of virtual processors | |
JP2011065645A (ja) | マルチコアプロセッサシステム | |
CN110990154B (zh) | 一种大数据应用优化方法、装置及存储介质 | |
CN103067425A (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
JP2011028559A (ja) | 中継プログラムおよび電子制御装置 | |
JP2010267025A (ja) | ジョブスケジューリングプログラム、ジョブスケジューリング装置及びジョブスケジューリング方法 | |
CN110955501B (zh) | 服务请求处理方法、装置、电子设备及可读介质 | |
WO2007020739A1 (ja) | スケジューリング方法およびスケジューリング装置 | |
JP2008186136A (ja) | 計算機システム | |
JP2010128664A (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
JP2012108576A (ja) | マルチコアプロセッサ、処理実行方法、プログラム | |
US9740530B2 (en) | Decreasing the priority of a user based on an allocation ratio | |
JP5790758B2 (ja) | スケジューリング方法およびスケジューリングシステム | |
JP5447666B2 (ja) | マルチプロセッサシステムおよびスケジューリング方法 | |
JP6372262B2 (ja) | 印刷装置、およびプログラム | |
JP5397544B2 (ja) | マルチコアシステム、マルチコアシステムのスケジューリング方法およびマルチコアシステムのスケジューリングプログラム | |
JP2010170320A (ja) | プログラム、及び制御装置 | |
US20130298132A1 (en) | Multi-core processor system and scheduling method | |
WO2022160628A1 (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
JP4862770B2 (ja) | 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130528 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130827 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131028 |
|
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: 20131203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131216 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |