JP2007141155A - マルチコアプロセッサにおけるマルチコア制御方法 - Google Patents
マルチコアプロセッサにおけるマルチコア制御方法 Download PDFInfo
- Publication number
- JP2007141155A JP2007141155A JP2005337271A JP2005337271A JP2007141155A JP 2007141155 A JP2007141155 A JP 2007141155A JP 2005337271 A JP2005337271 A JP 2005337271A JP 2005337271 A JP2005337271 A JP 2005337271A JP 2007141155 A JP2007141155 A JP 2007141155A
- Authority
- JP
- Japan
- Prior art keywords
- core
- exclusive control
- core processor
- processor
- control target
- 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 description 36
- 230000015654 memory Effects 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Abstract
【解決手段】コアプロセッサ11〜13には、L1メモリ21〜23がそれぞれ付属している。コアプロセッサ11〜13は、シングルスタックのOSで動作するもので、その優先度は例えば「コア0<コア1<コア2」に設定され、内部バス14及び外部バス15に接続される。内部バス14には、複数個のL2メモリ31〜34が接続される。上記コアプロセッサ11〜13とL2メモリ31〜34は、内部バス14を空間的に多重接続されており、コアプロセッサ11がL2メモリ31にアクセス中に、コアプロセッサ12がL2メモリ32に、コアプロセッサ13がL2メモリ34に同時にアクセスが可能なように接続される。
【選択図】 図1
Description
これに対し、マルチコアプロセッサの構成をとれば、動作周波数を高くすることなく処理能力を向上でき、熱、消費電力の面でシングルコアプロセッサより有利である(例えば、特許文献1参照。)。
図1は、本発明の一実施形態に係るマルチコアプロセッサの構成を示すブロック図である。図1において、11は第1のコアプロセッサ(コア0)、12は第2のコアプロセッサ(コア1)、13は第3のコアプロセッサ(コア2)で、L1メモリ21〜23がそれぞれ付属している。このL1メモリ21〜23の一部には、キャッシュメモリが配置される。また、上記コアプロセッサ11〜13は、シングルスタックのOSで動作するもので、その優先度は例えば「コア0<コア1<コア2」に設定される。
上記内部バス14には、複数個例えば4個のL2メモリ(0)31、L2メモリ(1)32、L2メモリ(2)33、L2メモリ(3)34が接続される。また、上記L2メモリ31〜34には、セマフォ管理テーブルが設けられる。この場合、セマフォ管理テーブルは、L2メモリ31〜34の何れに配置しても良い。
図2は、上記実施形態におけるマルチタスク構成例を示したものである。上記各コアプロセッサ11〜13は、それぞれ1つのタスク(Task 0、Task 1、Task 2)と、複数のソフトウェア割込(SWI 0、SWI 1)と、複数のハードウェア割込(HWI)を備えると共に共通部50としてライブラリ(Library)51、IPL(Initial Program Loader)52、OS(Operating System)53、ドライバ(Driver)54を備えている。一般に1つのコアプロセッサでマルチタスクを実行する場合、タスクを切替える際にタスクコンテキスト(レジスタやスタック)を切替える必要がある。この実施形態では、上記したように各コアプロセッサ11〜13にそれぞれ1つのタスク(Task 0、Task 1、Task 2)を割り当てることにより、同一のコアプロセッサ内ではタスクコンテキストの切替えを不要にしている。
[コア内排他制御処理]
例えば関数の引数で各コアプロセッサ11〜13内のセマフォを指定するIDが付与されている場合は、図3に示すように排他制御対象61へのアクセスを割込み禁止処理と割込み禁止解除処理で挟むことにより、排他制御対象61へのアクセスを排他する。図3はコアプロセッサ11内における排他制御処理を示したもので、ソフトウェア割込SWI 0がソフトウェア割込SWI 1の起動の禁止/解除を管理している。
上記のように各コアプロセッサ11〜13内において、排他制御対象61に対するアクセスの排他制御処理が行なわれる。
また、コアプロセッサ11〜13において、2つのコア間のセマフォを指定するIDが指定されたときは、図4に示すようにL2メモリ31〜34に配置するセマフォ管理テーブル62を各コアプロセッサ11〜13で監視することによって排他制御を実現する。図4は、コアプロセッサ11、12間における排他制御対象61に対する排他制御を行なう場合について示したもので、セマフォ管理テーブル62にはコア0状態エリア62a、コア1状態エリア62bが設けられている。
先ず、コアプロセッサ11の動作手順について図5のフローチャートを参照して説明する。
コアプロセッサ11は、セマフォ管理テーブル62のコア1状態エリア62bからコアプロセッサ12の使用状態を読出し(ステップB1)、「空き」であるか使用中であるかを判断する(ステップB2)。コアプロセッサ12が空いている場合は、コア0状態エリア62aに「使用中」を書込み(ステップB3)、排他制御対象61をアクセスする(ステップB4)。ステップB5では、上記排他制御対象61に対する処理が終了したかどうかを判断し、排他制御対象61へのアクセスが終了すると、コア0状態エリア62aに「空き」を書込み(ステップB6)、処理を終了する。
次に、コアプロセッサ12の動作手順について図6のフローチャートを参照して説明する。
コアプロセッサ12は、セマフォ管理テーブル62のコア0状態エリア62aからコアプロセッサ11の使用状態、即ち「コア0状態」を読出し(ステップC1)、「空き」であるか使用中であるかを判断する(ステップC2)。コアプロセッサ11が空いている場合は、コア1状態エリア62bに「使用中」を書込み(ステップC3)、排他制御対象61をアクセスする(ステップC4)。ステップC5では、上記排他制御対象61に対する処理が終了したかどうかを判断し、排他制御対象61へのアクセスが終了すると、コア1状態エリア62bに「空き」を書込み(ステップC6)、処理を終了する。
次に全コア間の排他制御処理について説明する。
コアプロセッサ11〜13において、全コア間のセマフォを指定するIDが指定されたときは、L2メモリ31〜34に配置する図7に示すセマフォ管理テーブル63を各コアプロセッサ11〜13で監視することによって排他制御を実現する。ここで、上記したように各コアプロセッサ11〜13に
コア0<コア1<コア2
の優先度を与えることによって、優先度の高いコアの処理を優先的に短いオーバヘッドで行なう。
先ず、コアプロセッサ(コア0)11の動作手順について図8のフローチャートを参照して説明する。
コアプロセッサ11は、セマフォ管理テーブル63のコア0状態エリア63bに「待ち」を書込み(ステップD1)、次いでコア1状態エリア63c及びコア2状態エリア63dからコア1とコア2の状態を読み込んで、両方が「空き」となっているかどうかを判断する(ステップD2、D3)。上記コア1とコア2の状態が両方とも「空き」であれば、排他制御対象状態エリア63aにおける排他制御対象状態が「空き」になるまで、スピンロックで待つ(ステップD4)。
次にコアプロセッサ(コア1)12の動作手順について図9のフローチャートを参照して説明する。
コアプロセッサ12は、セマフォ管理テーブル63のコア1状態エリア63cに「待ち」を書込み(ステップE1)、次いでコア2状態エリア63dからコア2の状態を読み込んで、「空き」となっているかどうかを判断する(ステップE2、E3)。上記コア2の状態が「空き」であれば、排他制御対象状態エリア63aにおける排他制御対象状態が「空き」になるまで、スピンロックで待つ(ステップE4)。
次にコアプロセッサ(コア2)13の動作手順について図10のフローチャートを参照して説明する。
コアプロセッサ13は、セマフォ管理テーブル63のコア2状態エリア63dに「待ち」を書込み(ステップF1)、その後、排他制御対象状態エリア63aにおける排他制御対象状態が「空き」になるまで、スピンロックで待つ(ステップF2)。
図12のフローチャートに示すように、コアプロセッサ11は、コア0ライトポインタ64a及びコア1リードポインタ64bを読出し(ステップG1)、コア0ライトポインタ64aが1周回ってコア1リードポインタ64bに追いついたかどうかを判断する(ステップG2)。コア0ライトポインタ64aがコア1リードポインタ64bに追いついていなければ、コア0ライトポインタ64aが指す固定長データの次のエリアにデータを書込み(ステップG3)、コア0ライトポインタ64aを次のエリアを指すように更新し(ステップG4)、データの書込み処理を終了する。
図13のフローチャートに示すように、コアプロセッサ12は、コア0ライトポインタ64a及びコア1リードポインタ64bを読出し(ステップH1)、コア1リードポインタ64bが1周回ってコア0ライトポインタ64aに追いついたかどうかを判断する(ステップH2)。コア1リードポインタ64bがコア0ライトポインタ64aに追いついていなければ、コア1リードポインタ64bが指す固定長データエリアを読出し(ステップH3)、コア1リードポインタ64bを次のエリアを採用に更新する(ステップH4)、その後、ステップH1に戻り、上記した処理を繰り返して実行する。
Claims (1)
- 複数のコアプロセッサからなるマルチコアプロセッサにおいて、前記複数のコアプロセッサに内部バスにより複数のメモリを空間的に多重接続して任意のメモリをアクセスできるように構成し、前記メモリに前記複数のコアプロセッサの使用状態を示すセマフォ管理テーブルを設け、各コアプロセッサ内、各コアプロセッサ間、全コアプロセッサ間の排他制御にそれぞれセマフォIDを付与し、前記各コアプロセッサは前記セマフォIDにより識別した排他制御に切替えて前記セマフォ管理テーブルを監視し、排他制御対象へのアクセス割込みを排他することを特徴とするマルチコアプロセッサにおけるマルチコア制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005337271A JP4559958B2 (ja) | 2005-11-22 | 2005-11-22 | マルチコアプロセッサにおけるマルチコア制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005337271A JP4559958B2 (ja) | 2005-11-22 | 2005-11-22 | マルチコアプロセッサにおけるマルチコア制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007141155A true JP2007141155A (ja) | 2007-06-07 |
JP4559958B2 JP4559958B2 (ja) | 2010-10-13 |
Family
ID=38203904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005337271A Expired - Fee Related JP4559958B2 (ja) | 2005-11-22 | 2005-11-22 | マルチコアプロセッサにおけるマルチコア制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4559958B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070014A (ja) * | 2007-09-12 | 2009-04-02 | National Institute Of Advanced Industrial & Technology | マルチタスク処理装置、及びマルチタスク処理方法、並びに、プログラム |
WO2010013443A1 (ja) * | 2008-07-31 | 2010-02-04 | パナソニック株式会社 | リソース排他制御システム、装置、方法およびプログラム |
WO2011121730A1 (ja) * | 2010-03-30 | 2011-10-06 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
JP2012150583A (ja) * | 2011-01-18 | 2012-08-09 | Toyota Motor Corp | マルチプロセッサシステム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348661A (ja) * | 1993-06-11 | 1994-12-22 | Fujitsu Ltd | マルチプロセッサ間排他制御方式 |
JP2004506981A (ja) * | 2000-08-15 | 2004-03-04 | エス・アール・シィ・コンピューターズ・インコーポレイテッド | マルチプロセッサにおけるセマフォおよびアトミック動作の管理のためのシステムおよび方法 |
-
2005
- 2005-11-22 JP JP2005337271A patent/JP4559958B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348661A (ja) * | 1993-06-11 | 1994-12-22 | Fujitsu Ltd | マルチプロセッサ間排他制御方式 |
JP2004506981A (ja) * | 2000-08-15 | 2004-03-04 | エス・アール・シィ・コンピューターズ・インコーポレイテッド | マルチプロセッサにおけるセマフォおよびアトミック動作の管理のためのシステムおよび方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070014A (ja) * | 2007-09-12 | 2009-04-02 | National Institute Of Advanced Industrial & Technology | マルチタスク処理装置、及びマルチタスク処理方法、並びに、プログラム |
WO2010013443A1 (ja) * | 2008-07-31 | 2010-02-04 | パナソニック株式会社 | リソース排他制御システム、装置、方法およびプログラム |
JP2010039582A (ja) * | 2008-07-31 | 2010-02-18 | Panasonic Corp | リソース排他制御システム、装置、方法およびプログラム |
CN102112968A (zh) * | 2008-07-31 | 2011-06-29 | 松下电器产业株式会社 | 资源排他控制***、装置、方法以及程序 |
US8447899B2 (en) | 2008-07-31 | 2013-05-21 | Panasonic Corporation | System, device, method and program for exclusively controlling resources |
WO2011121730A1 (ja) * | 2010-03-30 | 2011-10-06 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
JP5673672B2 (ja) * | 2010-03-30 | 2015-02-18 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
US9092255B2 (en) | 2010-03-30 | 2015-07-28 | Fujitsu Limited | Multi-core processor system, computer product, and control method for interrupt execution |
JP2012150583A (ja) * | 2011-01-18 | 2012-08-09 | Toyota Motor Corp | マルチプロセッサシステム |
US9164799B2 (en) | 2011-01-18 | 2015-10-20 | Toyota Jidosha Kabushiki Kaisha | Multiprocessor system |
Also Published As
Publication number | Publication date |
---|---|
JP4559958B2 (ja) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI537831B (zh) | 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法 | |
US6820187B2 (en) | Multiprocessor system and control method thereof | |
TWI520056B (zh) | Virtual queue processing circuit and work processing device | |
CN108920267B (zh) | 任务处理装置 | |
JP2007079789A (ja) | 計算機システム及びイベント処理方法 | |
US20110265093A1 (en) | Computer System and Program Product | |
JP4559958B2 (ja) | マルチコアプロセッサにおけるマルチコア制御方法 | |
CN113946445A (zh) | 一种基于asic的多线程模块及多线程控制方法 | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
JP2002297556A (ja) | マルチプロセッサシステム,マルチプロセッサ制御方法,マルチプロセッサ制御プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体 | |
JP4734348B2 (ja) | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 | |
JP3893136B2 (ja) | 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム | |
JP4017005B2 (ja) | 演算装置 | |
JP4818820B2 (ja) | バスシステムおよびバススレーブならびにバス制御方法 | |
JP2008276322A (ja) | 情報処理装置、情報処理システムおよび情報処理方法 | |
JP4631442B2 (ja) | プロセッサ | |
JP2010044703A (ja) | マルチタスクosにおけるタスク切り替え方法及びプログラム | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
JP2007087244A (ja) | コプロセッサ及びコンピュータシステム | |
JPH01137359A (ja) | プロセッサの制御方法 | |
JPS62177653A (ja) | 共有メモリ制御方式 | |
JPH1021203A (ja) | I/o装置のアクセス方法およびそのためのマルチプロセッサシステム | |
WO2019188180A1 (ja) | スケジューリング方法、スケジューリング装置 | |
JP2007280209A (ja) | マルチコアプロセッサの監視方法 | |
CN118227344A (zh) | 一种共享内存保护方法和微处理芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080922 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100609 |
|
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: 20100706 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100723 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4559958 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140730 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |