JP5745868B2 - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム Download PDF

Info

Publication number
JP5745868B2
JP5745868B2 JP2011007547A JP2011007547A JP5745868B2 JP 5745868 B2 JP5745868 B2 JP 5745868B2 JP 2011007547 A JP2011007547 A JP 2011007547A JP 2011007547 A JP2011007547 A JP 2011007547A JP 5745868 B2 JP5745868 B2 JP 5745868B2
Authority
JP
Japan
Prior art keywords
resource
shared
function
multiprocessor system
processing means
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
Application number
JP2011007547A
Other languages
English (en)
Other versions
JP2012150583A (ja
JP2012150583A5 (ja
Inventor
益三 嵩本
益三 嵩本
哲 中嶋
哲 中嶋
優 長谷川
優 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toyota Motor Corp
Original Assignee
Toshiba Corp
Toyota Motor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toyota Motor Corp filed Critical Toshiba Corp
Priority to JP2011007547A priority Critical patent/JP5745868B2/ja
Priority to US13/979,425 priority patent/US9164799B2/en
Priority to PCT/JP2011/080547 priority patent/WO2012098821A1/en
Priority to EP11811172.3A priority patent/EP2666087A1/en
Priority to CN201180065391XA priority patent/CN103329102A/zh
Publication of JP2012150583A publication Critical patent/JP2012150583A/ja
Publication of JP2012150583A5 publication Critical patent/JP2012150583A5/ja
Application granted granted Critical
Publication of JP5745868B2 publication Critical patent/JP5745868B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、プログラムメモリに格納されたプログラムを実行する処理手段を複数備えるマルチプロセッサシステムに関する。
従来、複数の処理手段を備えるマルチプロセッサシステムが普及している。例えば、一パッケージ内に複数のプロセッサコア(CPUコア)を封入して各プロセッサ・コアが独立して処理を行うマルチコア・プロセッサ、CPU等のプロセッサを複数個備えるマルチプロセッサ処理装置等が知られている。
マルチプロセッサシステムでは、通常、各処理手段がアクセス可能な共有リソースを備えている。例えば、処理手段間で情報共有するためのRAMやI/O手段(I/Oポート及びその制御装置)、A/D変換器等が挙げられる。処理手段がこうした共有リソースにアクセスする際には、一定期間、その共有リソースへのアクセスを占有し、他の処理手段からのアクセスを排除する排他制御が行われる必要がある。アクセスの占有権は、セマフォ等とも称される。
特許文献1には、排他制御を行うと共に、デッドロックの発生を防止することを目的としたマルチプロセッサシステムについて記載されている。デッドロックとは、複数のプロセスが互いに相手の占有している資源の解放を待ってしまい、処理が停止してしまうことをいう。このマルチプロセッサシステムでは、共通資源(共有リソース)毎に、現在排他制御中のタスク名及び現在獲得待ち状態のタスク名を格納する排他制御管理テーブルと、タスク毎に、現在排他制御中の共通資源名を格納する排他制御共通資源情報テーブルを設けている。そして、あるタスクが共通資源獲得要求のシステムコールを発行した時には、排他制御管理テーブル及び排他制御共通資源情報テーブルの内容を参照してデッドロック状態が発生するか否かを事前に判定し、共通資源をそのまま獲得要求するとデッドロック状態になると判定した場合には共通資源獲得要求を行わないようにしている。
また、特許文献2には、単位プロセッサのうちの第1単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第2単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断し、セマフォ要求判断手段により、要求が取得中セマフォを要求するものであると判断された場合に第1単位プロセッサの要求を待機させるマルチプロセッサシステムについて記載されている。
特開平7−105152号公報 特開2007−188397号公報
ところで、近年、例えば車両に搭載される車載制御装置の分野では、ある車載機器を制御する制御装置と他の車載機器を制御する制御装置(例えば変速機の制御装置とエンジンの制御装置等)を統合して、コンピュータ・ハードウエアを縮小し、コストや重量の低減を図る動きが見られる。このようなハードウエアの統合に際し、複数の処理手段を備えるマルチプロセッサシステムが好適に用いられる。この場合、シングルプロセッサとして構成された複数の制御装置において実行されていた各プログラムを、マルチプロセッサシステムが有する複数の処理手段がそれぞれ実行することになる。
ここで、シングルプロセッサでは、一般的なソースコードの構成として、リソース(RAM等のアクセス対象)の一貫性を維持するために、当該リソースへの書き込み等のアクセスを行う間、DI(割り込み禁止)を実行している。図1は、シングルプロセッサにおけるファンクションA(図ではFuncA)がリソースにアクセスする間、割り込み禁止を行う様子を模式的に示す図である。本図において変数X、Y、Zは、例えばRAMに書き込まれるパラメータを示している。また、PEとは、Processor Elementの略であり、CPUその他の処理手段の一例である。
係る処理を、そのままマルチプロセッサシステムに適用しても、排他制御を実現することができない。PE1を割り込み禁止状態としても、他のPE2、3による共有リソースへのアクセスは可能だからである。図2は、PE1を割り込み禁止状態とした場合において、他のPE2、3による共有リソースへのアクセスが可能である様子を示す図である。
本来、マルチプロセッサシステムにおいて共有リソースの排他制御を行うためには、ソフトウエア開発工程のシステム設計レベルで排他設計を行う必要がある。ところが、現実的な問題として、シングルプロセッサ上で動作している複雑な制御ソフトウエアに対して排他設計を当てはめるのは容易ではない。
この点、図1で示したDI(割り込み禁止)とEI(割り込み許可)の間の区間を、PEによる共有リソースの占有区間にそのまま当てはめるのは容易である。しかしながら、この場合、共有リソースの区別が容易でなく、本来アクセス競合しないアクセス要求であるにも拘わらず、不要な待ち状態となるPEが生じうる。図3は、PE1のDI−EI間において共有リソースの占有が行われ、PE2のファンクションBが待ち状態となる様子を示す図である。本図の場合、ファンクションBはファンクションAがアクセスしない変数Zに対してアクセスを行うため、本来、ファンクションAのアクセスと並行して共有リソースへのアクセスを行うことが可能である。
このように、複数のシングルプロセッサにおいて実行されていたプログラムを、マルチプロセッサシステムに移植した場合、排他制御の設計に伴うプログラムの修正が煩雑なものとなる。
上記従来の各特許文献に記載のマルチプロセッサシステムでは、このような点についての考慮がなされておらず(既にマルチプロセッサシステム用に出来上がったプログラムを想定している)、シングルプロセッサからマルチプロセッサシステムへの移植に適した構成となっていない。また、これに伴い、新たなプログラム等が追加されて機能拡張が行われる場合に、プログラムの修正が煩雑なものとなってしまう。
本発明はこのような課題を解決するためのものであり、シングルプロセッサからマルチプロセッサへの移植を容易にすると共に、新たなプログラム等の追加を簡便に行うことが可能なマルチプロセッサシステムを提供することを、主たる目的とする。
上記目的を達成するための本発明の一態様は、
プログラムメモリに格納されたプログラムを実行する複数の処理手段を備えるマルチプロセッサシステムであって、
前記複数の処理手段によって共有される共有リソースと、
該共有リソースの占有状態が書き込まれるリソース状態テーブルと、
前記プログラムメモリにおける前記プログラムのファンクション毎のアドレス領域と前記共有リソースの占有予定とが対応付けられたリソース占有予定テーブルと、
前記リソース状態テーブル及び前記リソース占有予定テーブルを用いて、前記複数の処理手段による前記共有リソースの占有を伴うファンクションの実行可否を決定する制御手段と、
を備えるマルチプロセッサシステムである。
この本発明の一態様によれば、シングルプロセッサからマルチプロセッサへの移植を容易にすると共に、新たなプログラム等の追加を簡便に行うことが可能なマルチプロセッサシステムを提供することができる。
また、リソース状態テーブル及びリソース占有予定テーブルを用いて複数の処理手段による共有リソースの占有を伴うファンクションの実行可否を決定する制御手段を備えるため、複数の処理手段は、リソース占有を要求するための信号を送出する際に、共有リソースを特定するための情報を含める必要がなくなる。
なお、本発明における複数の処理手段は、ハードウエア・マルチスレッディングを行うマルチスレッド処理装置におけるスレッド等、仮想的な処理手段であっても構わない。
本発明の一態様において、
請求項1に記載のマルチプロセッサシステムであって、
前記リソース占有予定テーブルは、ROMに格納された固定データであり、
前記複数の処理手段に対応したプログラムカウンタを備え、
前記制御手段は、
前記プログラムカウンタの値と前記リソース占有予定テーブルにおけるアドレス領域を比較することにより、起床予定のファンクションによる前記共有リソースの占有予定を特定し、
該特定した前記共有リソースの占有予定と前記リソース状態テーブルが示す前記共有リソースの占有状態を比較することにより、前記複数の処理手段による前記共有リソースの占有を伴うファンクションの実行可否を決定する手段であるものとしてもよい。
また、本発明の一態様において、
前記制御手段は、前記複数の処理手段による前記共有リソースの占有を伴うファンクションの実行を否定した際には、該実行を否定したファンクションをキューイングする手段であるものとしてもよい。
また、本発明の一態様において、
前記リソース状態テーブル及び前記リソース占有予定テーブルにおける共有リソースは、部品単位から共有リソース全体までの間の粒度で設定されていることを特徴とするものとしてもよい。
また、本発明の一態様において、
前記リソース占有予定テーブルにおけるアドレス領域の範囲は、当該ファンクションがシングルプロセッサで実行されていた場合のDI(割り込み禁止)とEI(割り込み許可)の間の区間に相当するものとしてもよい。
また、本発明の一態様において、
前記複数の処理手段は、プロセッサ・コアであり、
マルチコア・プロセッサとして構成されるものとしてもよい。
本発明によれば、シングルプロセッサからマルチプロセッサへの移植を容易にすると共に、新たなプログラム等の追加を簡便に行うことが可能なマルチプロセッサシステムを提供することができる。
シングルプロセッサにおけるファンクションAがリソースにアクセスする間、割り込み禁止を行う様子を模式的に示す図である。 PE1を割り込み禁止状態とした場合において、他のPE2、3による共有リソースへのアクセスが可能である様子を示す図である。 PE1のDI−EI間において共有リソースの占有が行われ、PE2のファンクションBが待ち状態となる様子を示す図である。 本発明の一実施例に係るマルチプロセッサシステム1のシステム構成例である。 リソース競合判断部32Aによって共有リソースへのアクセス競合の有無が判定される様子を模式的に示す図である。 マイクロCPU30により実行される処理の流れを示すフローチャートである。 PE20AのファンクションAとPE20BのファンクションBが同じ共有リソースにアクセスしようとし、アクセス競合が発生する場面を示すシーケンス図である。 共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。 リソースステータステーブル50にファンクションAに関する情報がコピーされる様子を示す図である。 共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。 PE20AのファンクションAとPE20BのファンクションBが異なる共有リソースにアクセスしようとし、アクセス競合が発生しない場面を示すシーケンス図である。 共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。 リソースステータステーブル50にファンクションAに関する情報がコピーされる様子を示す図である。 共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。 リソースアクセステーブル40がマルチプロセッサ1に搭載される過程を模式的に示す図である。 ソースファイル70からリソースアクセステーブル40が生成される様子を模式的に示す図である。 共有リソース全体を一つの共有リソースとして取り扱う場合のリソースアクセステーブル40及びリソースステータステーブル50の設定を示す図である。 リソースアクセステーブル40及びリソースステータステーブル50における共有リソースの粒度を図17に比して小さくした場合の設定を示す図である。 リソースアクセステーブル40及びリソースステータステーブル50における共有リソースの粒度を図18に比して更に小さくした場合の設定を示す図である。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
以下、図面を参照し、本発明の一実施例に係るマルチプロセッサシステム1について説明する。
[構成]
図4は、本発明の一実施例に係るマルチプロセッサシステム1のシステム構成例である。マルチプロセッサシステム1は、主要な構成として、プログラムメモリ10と、データメモリ12と、PE(Processor Element)20A、20B、20C、20Dと、マイクロCPU30と、リソースアクセステーブル40と、リソースステータステーブル50と、INTC(割り込みコントローラ)60と、を備える、以下、PEを総称する際には、必要に応じて「各PE」等と表記する。
プログラムメモリ10は、例えばROM(Read Only Memory)やフラッシュROM、EEPROM(Electrically Erasable and Programmable Read Only Memory)等であり、各PEにより実行される命令がファンクション単位で格納されている。プログラムメモリ10は、命令バス10Aを介して各PEに接続されている。
データメモリ12は、例えばRAM(Random Access Memory)であり、各PEの演算結果等が格納される。データメモリ12は、データバス12Aを介して各PEに接続されている。
各PEは、プログラムカウンタ(図では、「PC」と略記した)20Aa、20Ba、20Ca、20Daの他、命令フェッチユニット、命令バッファ、命令デコーダ、演算器、LSU(Load Store Unit)、内部レジスタ等を備えるマイクロコンピュータである。各PEは、それぞれのプログラムカウンタが示すプログラムメモリ10のアドレスに格納された命令をフェッチしてデコード(解読)し、四則演算等を行う。四則演算の結果は、内部レジスタに格納する他、必要に応じてデータメモリ12に出力して記憶させる。データメモリ12に格納された命令は、各PEによって参照可能となっており、各PEは、情報を共有しつつ独自の処理を行うことができる。また、プログラムカウンタ20Aa、20Ba、20Ca、20Daの示す値は、マイクロCPU30によって参照可能となっている。
マイクロCPU30は、その内部機能として、リソースファサード31と、リソースロック制御部32と、通知部33と、セマフォレジスタ34#1〜34#nと、を備える。リソースロック制御部32は、リソース競合判断部32A、リソース取得/解放管理部32B、及びセマフォレジスタ管理部32Cを有する。セマフォレジスタ34#1〜34#nは、マルチプロセッサシステム1における共有リソースに対応して設けられている。
リソースファサード31は、各PEから入力されるリソース獲得要求、及びリソース解放要求を受け取る。
リソース競合判断部32Aは、プログラムカウンタ20Aa、20Ba、20Ca、20Daの値、リソースアクセステーブル40、及びリソースステータステーブル50を用いて対象リソース(リソース獲得要求がなされた共有リソース)の競合を判定し、判定結果をリソース取得/解放管理部32Bに出力する。
リソース取得/解放管理部32Bは、リソース競合判断部32Aによる判定結果が競合ありの場合には、各PEから入力されたリソース獲得要求を図示しない待ちキューに登録する。待ちキューは、セマフォレジスタ34#1〜34#nに付随したものであってもよいし、独立したレジスタ等に設定されてもよい。一方、リソース取得/解放管理部32Bは、リソース競合判断部32Aによる判定結果が競合なしの場合は、セマフォレジスタ34#1〜34#nのうち対象リソースに対応するものに、リソース獲得要求を出力したPEを登録し、通知部33に対象リソースを通知する。
リソース取得/解放管理部32Bは、更に、各PEからリソース解放要求が入力されたときに上記待ちキューを検索し、登録されたリソース獲得要求が存在する場合には、リソース獲得要求を出力したPEに対象リソースを確保する。すなわち、上記と同様に、セマフォレジスタ34#1〜34#nのうち対象リソースに対応するものに、リソース獲得要求を出力したPEを登録し、通知部33に対象リソースを通知する。一方、待ちキューに登録されたリソース獲得要求が存在しない場合は、該当するセマフォレジスタを解放する。
セマフォレジスタ管理部32Cは、リソース取得/解放管理部32Bからの指示に応じて、セマフォレジスタ34#1〜34#nの書き換え等を行う。
通知部33は、リソース獲得要求を出力したPEに対し、共有リソースが確保されたタイミングで、その旨を通知する。係る情報通知は、INTC60を介して割り込み通知として行われる。共有リソースが確保された旨を通知されたPEは、該当する共有リソースへのアクセスを開始する。
[マイクロCPU30による競合判定等の処理]
以下、リソースアクセステーブル40及びリソースステータステーブル50を用いた対象リソースの競合判定、及びこれに関連する処理について説明する。
リソースアクセステーブル40は、例えばプログラムメモリ10その他のROM(フラッシュROMやEEPROMを含んでよい)に格納された固定データであり、プログラムメモリ10におけるプログラムのファンクション毎のアドレス領域と、共有リソースの占有予定とが対応付けられている。図4に示すように、リソースアクセステーブル40は、ファンクション毎に、開始アドレスと終了アドレスを含む排他区間、共有RAMや周辺I/O等の共有リソースの種別を示すリソースアクセス情報が規定されている。リソースアクセステーブル40によって、プログラムメモリ10上のどの命令(ファンクション)を実行した際に、どの共有リソースが占有される予定であるのかを把握することができる。なお、リソースアクセステーブル40は、実際には、ROMに格納されたデータがRAMやフラッシュメモリ、レジスタ等にロードされたものであってもよい。
リソースステータステーブル50は、マイクロCPU30が内蔵するRAM、フラッシュメモリ、レジスタ等に領域設定され、随時書き換えられるデータであり、その時点における共有リソースの占有状態を示している。図4に示すように、リソースステータステーブル50は、その時点で実行されている共有リソースの占有を伴うファンクションを示すファンクションID毎に、排他区間、共有RAMや周辺I/O等の共有リソースの種別を示すリソースアクセス情報、当該ファンクションによって占有された共有リソースに対応したセマフォレジスタを特定するセマフォレジスタID等が書き込まれる。
リソース競合判断部32Aは、各PEからリソース獲得要求が入力されたときに、まず、当該PEのプログラムカウンタが示す値を取得する。そして、当該プログラムカウンタが示す値を用いてリソースアクセステーブル40を検索し、対象リソースを特定する。更に、リソースステータステーブル50を参照し、特定した対象リソースが他のPEによって占有中であるか否かに基づいて、対象リソースの競合判定を行う。図5は、リソース競合判断部32Aによって共有リソースへのアクセス競合の有無が判定される様子を模式的に示す図である。
図6は、マイクロCPU30により実行される処理の流れを示すフローチャートである。
まず、ファンクションNからリソース獲得要求がなされると、リソースアクセステーブル40からリソースアクセス情報を取得する(S100)。そして、該当する共有リソースが他のPEによって占有されているか否かを判定する(S102)。該当する共有リソースが他のPEによって占有されていない場合は、ファンクションNに共有リソースへのアクセス権を取得させる処理を行う(S104)。
一方、該当する共有リソースが他のPEによって占有されている場合は、他のPEから解放通知があるまでの間、ファンクションNを待ち状態とする(S106、S108)。
解放通知は、他のPEが実行しているファンクションMがリソース解放要求を出力したときに、リソース解放処理(S200)、解放通知(S202)の手順で行われる。
以下、より具体的に説明する。図7は、PE20AのファンクションAとPE20BのファンクションBが同じ共有リソースにアクセスしようとし、アクセス競合が発生する場面を示すシーケンス図である。
図7における時刻T1において、PE20Aからリソース獲得要求が入力されると、マイクロCPU30は上記のように、PE20Aのプログラムカウンタが示す値を取得し、対象リソースを特定する。更に、マイクロCPU30は、リソースステータステーブル50を参照し、特定した対象リソースが他のPEによって占有中であるか否かに基づいて、対象リソースの競合判定を行う。ここでは、共有RAMに対するリソース獲得要求がなされ、リソースステータステーブル50に共有RAMが登録されていないため、ファンクションAに共有RAMの占有が許可される。図8は、共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。この場合、リソースステータステーブル50にファンクションAに関する情報がコピーされると共に、セマフォレジスタ34#1〜34#nのうち共有RAMに対応するものにファンクションAが登録される。図9は、リソースステータステーブル50にファンクションAに関する情報がコピーされる様子を示す図である。
図7における時刻T2において、PE20Bからリソース獲得要求が入力されると、マイクロCPU30は、PE20Bのプログラムカウンタが示す値を取得し、対象リソースを特定する。ここでは、共有RAM及び周辺I/Oに対するリソース獲得要求がなされ、リソースステータステーブル50に共有RAMが登録されているため(ロック中であるため)、ファンクションBに共有RAM及び周辺I/Oの占有が許可されない。図10は、共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。
図7における時刻T3において、ファンクションAからリソース解放要求がなされると、マイクロCPU30は、セマフォレジスタ34#1〜34#nのうち共有RAMに対応するものからファンクションAを削除し、当該セマフォレジスタを解放する。そして、通知部33によってPE20Bに対して解放通知割り込みが発行される。この結果、PE20Bは、再度リソース獲得要求を出力することになる。
図11は、PE20AのファンクションAとPE20BのファンクションBが異なる共有リソースにアクセスしようとし、アクセス競合が発生しない場面を示すシーケンス図である。
図11における時刻T11において、PE20Aからリソース獲得要求が入力されると、マイクロCPU30は、上記のようにPE20Aのプログラムカウンタが示す値を取得し、対象リソースを特定する。更に、マイクロCPU30は、リソースステータステーブル50を参照し、特定した対象リソースが他のPEによって占有中であるか否かに基づいて、対象リソースの競合判定を行う。ここでは、共有RAMに対するリソース獲得要求がなされ、リソースステータステーブル50に共有RAMが登録されていないため、ファンクションAに共有RAMの占有が許可される。図12は、共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。この場合、リソースステータステーブル50にファンクションAに関する情報がコピーされると共に、セマフォレジスタ34#1〜34#nのうち共有RAMに対応するものにファンクションAが登録される。図13は、リソースステータステーブル50にファンクションAに関する情報がコピーされる様子を示す図である。
図11における時刻T12において、PE20Bからリソース獲得要求が入力されると、マイクロCPU30は、PE20Bのプログラムカウンタが示す値を取得し、対象リソースを特定する。ここでは、共有RAM2に対するリソース獲得要求がなされ、リソースステータステーブル50に共有RAM2が登録されていないため(ロック中でないため)、ファンクションBに共有RAM2の占有が許可される。図14は、共有RAMについての競合判定が行われたときの、リソースアクセステーブル40の該当部分とリソースステータステーブル50の状態を示す図である。
その後、ファンクションBからリソース解放要求がなされると、マイクロCPU30は、セマフォレジスタ34#1〜34#nのうち共有RAM2に対応するものからファンクションBを削除し、当該セマフォレジスタを解放する。また、ファンクションAからリソース解放要求がなされると、マイクロCPU30は、セマフォレジスタ34#1〜34#nのうち共有RAMに対応するものからファンクションAを削除し、当該セマフォレジスタを解放する。
[マルチプロセッサシステムの構築]
図15は、リソースアクセステーブル40がマルチプロセッサ1に搭載される過程を模式的に示す図である。リソースアクセステーブル40は、元々シングルプロセッサにより実行されていたプログラムのソースファイル70をアクセスアナライズツール80で処理することによってリソースアクセステーブルの元データ40*が生成され(ビルドフェーズ)、この元データ40*がファイルロードツール90によってROM等に書き込まれることにより、マルチプロセッサ1に搭載される(実行フェーズ)。
図16は、ソースファイル70からリソースアクセステーブル40が生成される様子を模式的に示す図である。図示するように、ソースファイルは、例えばファンクション定義、リソース取得命令、共有リソースの特定、リソース解放命令といった順に記述されている。アクセスアナライズツール80は、これにプログラムメモリ10におけるアドレスを付加してリソースアクセステーブル40を生成する。なお、ファンクションの範囲は、シングルプロセッサで実行されていた場合のDI(割り込み禁止)とEI(割り込み許可)の間の区間とすると好適である。
[テーブルにおける共有リソースの粒度]
このような態様で用いられるリソースアクセステーブル40及びリソースステータステーブル50における共有リソースの粒度は、システムの規模、要求される性能に応じて、部品単位から共有リソース全体までの間の粒度で設定され得る。
図17は、共有リソース全体を一つの共有リソースとして取り扱う(図ではGlobal空間と表記した)場合のリソースアクセステーブル40及びリソースステータステーブル50の設定を示す図である。この場合、リソースアクセステーブル40及びリソースステータステーブル50は、CAN(Controller Area Network)、CSI、ADC(Analog Digital Controller)、PWM(Pulse Width Modulation)等のGlobal I/O領域(ポート及びその制御をいう)と、Global RAM領域とを含む。この場合、リソースアクセステーブル40が占有するROM上の領域、及びこれがRAM等に展開された場合の当該領域を小さくすることができるものの、アクセス競合の可能性が高くなり、処理速度が低下する場合がある。
図18は、リソースアクセステーブル40及びリソースステータステーブル50における共有リソースの粒度を図17に比して小さくした場合の設定を示す図である。この場合、リソースアクセステーブル40が占有するROM上の領域、及びこれがRAM等に展開された場合の当該領域は大きくなるが、アクセス競合の可能性が低くなり、処理速度が向上する場合がある。
図19は、リソースアクセステーブル40及びリソースステータステーブル50における共有リソースの粒度を図18に比して更に小さくした場合の設定を示す図である。本図は、複数の端子を備える同一の共有リソースを分割し、複数の共有リソースであるかのように扱っている。この場合、リソースアクセステーブル40が占有するROM上の領域、及びこれがRAM等に展開された場合の当該領域は更に大きくなるが、アクセス競合の可能性が更に低くなり、処理速度が向上する場合がある。
[まとめ]
以上説明した本実施例のマルチプロセッサシステム1によれば、シングルプロセッサからマルチプロセッサへの移植を容易にすると共に、新たなプログラム等の追加を簡便に行うことができる。
また、リソースアクセステーブル40及びリソースステータステーブル50を用いて複数のPEによる共有リソースの占有を伴うファンクションの実行可否を決定するリソースロック制御部32を備えるため、複数のPEは、リソース獲得要求に共有リソースを特定するための情報を含める必要がなくなる。この結果、通信負荷やプログラムのサイズを低減することができる。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
1 マルチプロセッサシステム
10 プログラムメモリ
10A 命令バス
12 データメモリ
12A データバス
20A、20B、20C、20D PE
20Aa、20Ba、20Ca、20Da プログラムカウンタ
30 マイクロCPU
31 リソースファサード
32 リソースロック制御部
33 通知部
34#1〜34#n セマフォレジスタ
40 リソースアクセステーブル
40* 元データ
50 リソースステータステーブル
60 INTC
70 ソースファイル
80 アクセスアナライズツール
90 ファイルロードツール

Claims (6)

  1. プログラムメモリに格納されたプログラムであって、複数のファンクションを含むプログラムを実行する複数の処理手段と、
    前記複数の処理手段によって共有される複数の共有リソースと、
    前記複数の共有リソースのそれぞれについて前記共有リソースが占有されているか否かを表す前記共有リソースの占有状態を保持するリソース状態テーブルと、
    前記プログラムメモリにおける前記プログラムのファンクション毎に、ファンクションのアドレス領域と該ファンクション実行時の1つ以上の共有リソースの占有状態とが対応付けられたリソースアクセステーブルと、
    前記リソース状態テーブル及び前記リソースアクセステーブルを用いて、前記処理手段の1つによる前記1つ以上の共有リソースの占有を伴うファンクションの実行可否を決定する制御手段と、
    前記複数の処理手段に関連付けられたプログラムカウンタとを備え、
    前記制御手段は、前記プログラムカウンタの値と前記リソースアクセステーブルにおけるアドレス領域とに基づいて、起床予定のファンクションによる占有されることになる1つ以上の共有リソースを特定し、該特定した前記共有リソースが、前記リソース状態テーブルに基づいて占有されているか否かを判定することにより、前記処理手段による1つ以上の共有リソースの占有を伴うファンクションの実行可否を決定し、
    前記処理手段の1つによりリソース獲得要求が出されたとき、前記制御手段は、リソース獲得要求を行った処理手段に関連付けられた前記プログラムカウンタの値を用いて、前記プログラムカウンタの値と前記リソースアクセステーブルにおけるアドレス領域を比較し、
    前記共有リソースは、共有RAM及び周辺I/Oを含む、マルチプロセッサシステム。
  2. 前記制御手段は、ファンクション間の優先順位を用いず前記実行可否を決定する、請求項1に記載のマルチプロセッサシステム。
  3. 前記共有リソースは、第1共有RAM及び第2共有RAMを含む、請求項1に記載のマルチプロセッサシステム。
  4. 前記リソース状態テーブル及び前記リソースアクセステーブルに定義される前記複数の共有リソースの単位は、部品単位である、請求項1に記載のマルチプロセッサシステム。
  5. 前記リソースアクセステーブルにおけるアドレス領域は、当該ファンクションがシングルプロセッサで実行されていた場合のDI(割り込み禁止)とEI(割り込み許可)の間の区間に相当する、請求項1乃至4のうちのいずれか1項に記載のマルチプロセッサシステム。
  6. 前記複数の処理手段は、プロセッサ・コアであり、
    当該マルチプロセッサシステムは、マルチコア・プロセッサとして構成される、請求項1乃至5のうちのいずれか1項に記載のマルチプロセッサシステム。
JP2011007547A 2011-01-18 2011-01-18 マルチプロセッサシステム Expired - Fee Related JP5745868B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011007547A JP5745868B2 (ja) 2011-01-18 2011-01-18 マルチプロセッサシステム
US13/979,425 US9164799B2 (en) 2011-01-18 2011-12-21 Multiprocessor system
PCT/JP2011/080547 WO2012098821A1 (en) 2011-01-18 2011-12-21 Multiprocessor system
EP11811172.3A EP2666087A1 (en) 2011-01-18 2011-12-21 Multiprocessor system
CN201180065391XA CN103329102A (zh) 2011-01-18 2011-12-21 多处理器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011007547A JP5745868B2 (ja) 2011-01-18 2011-01-18 マルチプロセッサシステム

Publications (3)

Publication Number Publication Date
JP2012150583A JP2012150583A (ja) 2012-08-09
JP2012150583A5 JP2012150583A5 (ja) 2013-07-25
JP5745868B2 true JP5745868B2 (ja) 2015-07-08

Family

ID=45509602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011007547A Expired - Fee Related JP5745868B2 (ja) 2011-01-18 2011-01-18 マルチプロセッサシステム

Country Status (5)

Country Link
US (1) US9164799B2 (ja)
EP (1) EP2666087A1 (ja)
JP (1) JP5745868B2 (ja)
CN (1) CN103329102A (ja)
WO (1) WO2012098821A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734741B2 (en) 2004-12-13 2010-06-08 Intel Corporation Method, system, and apparatus for dynamic reconfiguration of resources
CN105808210B (zh) * 2014-12-31 2018-07-31 龙芯中科技术有限公司 共享资源的访问方法和装置
JP2017097633A (ja) * 2015-11-25 2017-06-01 日立オートモティブシステムズ株式会社 車両制御装置
JP6895719B2 (ja) * 2016-06-24 2021-06-30 日立Astemo株式会社 車両制御装置
US10592281B1 (en) * 2017-09-28 2020-03-17 Amazon Technologies, Inc. Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit
JP6995644B2 (ja) * 2018-01-23 2022-01-14 日立Astemo株式会社 電子制御装置
JP2019161714A (ja) * 2018-03-08 2019-09-19 株式会社東芝 モータ制御装置およびプログラム
JP6912421B2 (ja) * 2018-06-01 2021-08-04 ファナック株式会社 制御装置
JP7412235B2 (ja) * 2020-03-17 2024-01-12 本田技研工業株式会社 情報処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146153A (ja) 1986-12-09 1988-06-18 Nec Corp プロセツサ間排他制御処理方式
JPS63263557A (ja) 1987-04-13 1988-10-31 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 階層リレーテツド・リソースへの同時トランザクシヨンによるアクセスを調節する方法
JPH07105152A (ja) 1993-10-08 1995-04-21 Fujitsu Ltd マルチプロセッサシステムのデッドロック自動解除方法
US5940828A (en) * 1997-11-18 1999-08-17 International Business Machines Corporation Locking contention resolution for shared resources
JP4445621B2 (ja) * 1999-12-08 2010-04-07 名古屋電機工業株式会社 マルチプロセッサ型処理装置における共有メモリアクセス方法およびその装置
JP4257053B2 (ja) 2001-09-14 2009-04-22 日本電気株式会社 共有リソース排他制御方式および方法
US7418557B2 (en) * 2004-11-30 2008-08-26 International Business Machines Corporation Managing multiprocessor operations
JP4559958B2 (ja) * 2005-11-22 2010-10-13 株式会社日立国際電気 マルチコアプロセッサにおけるマルチコア制御方法
JP3976065B2 (ja) 2006-01-16 2007-09-12 セイコーエプソン株式会社 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
EP1953643A3 (en) * 2007-02-01 2009-12-16 Denso Corporation Calculation apparatus provided with a plurality of calculating units which access a single memory
JP5216700B2 (ja) 2009-06-24 2013-06-19 株式会社日立エンジニアリング・アンド・サービス 音源の寄与診断装置およびこれを用いた寄与診断方法
CN101937365B (zh) * 2009-06-30 2013-05-15 国际商业机器公司 并行程序的死锁检测方法和系统

Also Published As

Publication number Publication date
US20130298136A1 (en) 2013-11-07
US9164799B2 (en) 2015-10-20
JP2012150583A (ja) 2012-08-09
EP2666087A1 (en) 2013-11-27
WO2012098821A1 (en) 2012-07-26
CN103329102A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
JP5745868B2 (ja) マルチプロセッサシステム
US8875151B2 (en) Load balancing method and apparatus in symmetric multi-processor system
US8291431B2 (en) Dependent instruction thread scheduling
CN108920267B (zh) 任务处理装置
KR20180053359A (ko) 다중-버전형 태스크들의 효율적 스케줄링
KR100902977B1 (ko) 하드웨어 공유 시스템 및 방법
US9424103B2 (en) Adaptive lock for a computing system having multiple runtime environments and multiple processing units
US9588808B2 (en) Multi-core system performing packet processing with context switching
GB2453284A (en) Mechanism for notifying a kernel of a thread entering a critical section.
JP4457047B2 (ja) マルチプロセッサシステム
JPH1115793A (ja) 資源の保全性を保護する方法
US20090059951A1 (en) Program control device
WO2014170036A1 (en) Method and apparatus for exploiting data locality in dynamic task scheduling
JP2011170619A (ja) マルチスレッド処理装置
JP5699896B2 (ja) 情報処理装置、異常判定方法
CN112306703A (zh) 一种numa系统中的临界区执行方法及装置
JP2022079764A (ja) 同期制御システムおよび同期制御方法
JP2013061783A (ja) マルチコア・プロセッサ
US8977795B1 (en) Method and apparatus for preventing multiple threads of a processor from accessing, in parallel, predetermined sections of source code
US20080222336A1 (en) Data processing system
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2010176403A (ja) マルチスレッドプロセッサ装置
JP2012226709A (ja) 排他制御装置、マイコン
JP2007122337A (ja) 演算装置
JP2011248454A (ja) プロセッサ装置及びプロセッサ装置の制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150107

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150202

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: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150507

LAPS Cancellation because of no payment of annual fees