(57)【要約】【課題】従来のマルチプロセッサシステムでは、共有リソースに対するアクセス権を柔軟に変更することができなかった。【解決手段】本発明にかかるマルチプロセッサシステムは、第１プロセッサエレメントＰＥ−Ａ、第２のプロセッサエレメントＰＥ−Ｂを有し、それぞれが独立してプログラムを実行するマルチプロセッサシステムであって、第１のプロセッサエレメントＰＥ−Ａは、プログラムに基づき演算処理を行う中央演算装置ＣＰＵａと、第１のプロセッサエレメントＰＥ−Ａと第２のプロセッサエレメントＰＥ−Ｂの間で共有される共有リソース１８ａと、中央演算装置ＣＰＵａが指定するアクセス保護範囲設定値に基づき第２のプロセッサエレメントＰＥ−Ｂから共有リソース１８ａへのアクセス要求を制限するガードユニット１６ａと、を有するものである。【選択図】図１
2008242593.tif 000002
【特許請求の範囲】
【請求項１】
第１、第２のプロセッサエレメントを有し、前記第１、第２のプロセッサエレメントが独立してプログラムを実行するマルチプロセッサシステムであって、
前記第１のプロセッサエレメントは、
プログラムに基づき演算処理を行う中央演算装置と、
前記第１、第２のプロセッサエレメントの間で共有される共有リソースと、
前記中央演算装置が指定するアクセス保護範囲設定値に基づき前記第２のプロセッサエレメントから前記共有リソースへのアクセス要求を制限するガードユニットと、
を有するマルチプロセッサシステム。
【請求項２】
前記共有リソースは、メモリであって、前記アクセス保護範囲設定値に基づき設定される前記第１のプロセッサエレメントのための専用領域と前記第１、第２のプロセッサエレメントで共有される共有領域とを有する請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記共有リソースは、前記アクセス保護範囲設定値に基づきアクセス権が設定される前記第１のプロセッサエレメントのための専用外部インタフェースを有する請求項１に記載のマルチプロセッサシステム。
【請求項４】
前記ガードユニットは、前記中央演算装置から保護情報設定バスを介して送信される前記アクセス保護範囲設定値を保持する保護設定ユニットと、前記保護設定ユニットに保持されている情報に基づき前記アクセス要求が前記アクセス保護範囲設定値の範囲内か否かを判断する判定ユニットと、を有する請求項１乃至３のいずれか１項に記載のマルチプロセッサシステム。
【請求項５】
前記保護設定ユニットは、それぞれに異なる設定を保持する複数の設定情報保持レジスタを有し、前記複数の設定情報保持レジスタは、それぞれ保護するアクセス範囲を保持する保護範囲設定レジスタと、前記設定情報保持レジスタの値の有効・無効を示すフラグ値を保持するイネーブルフラグレジスタとを有する請求項４に記載のマルチプロセッサシステム。
【請求項６】
前記保護設定ユニットは、さらに前記アクセス範囲に対するアクセス属性を保持する保護属性レジスタを有する請求項５に記載のマルチプロセッサシステム。
【請求項７】
前記判定ユニットは、前記複数の設定情報保持レジスタのうち前記フラグ値が有効を示すレジスタに保持されたアクセス保護範囲設定値に基づき前記アクセス要求を判断し、全ての前記フラグ値が無効を示す場合、前記ガードユニットによるアクセス要求の制限を解除する請求項５に記載のマルチプロセッサシステム。
【請求項８】
前記ガードユニットは、前記アクセス要求が前記アクセス保護範囲設定値の範囲内であった場合に前記中央演算装置に例外アクセス通知信号を出力する例外アクセス発生通知ユニットを有し、前記例外アクセス発生通知信号は、前記中央演算装置において割り込み処理される請求項１乃至７のいずれか１項に記載のマルチプロセッサシステム。
【請求項９】
前記ガードユニットは、前記アクセス要求が前記アクセス保護範囲設定値の範囲内であった場合に前記アクセス要求に代えてアクセス無効値を当該第１のプロセッサエレメント内に出力し、前記アクセス要求が前記アクセス保護範囲設定値の範囲外であった場合に前記アクセス要求を通過させる無効化ユニットを有する請求項１乃至８のいずれか１項に記載のマルチプロセッサシステム。
【請求項１０】
前記ガードユニットは、前記アクセス要求が前記アクセス保護範囲設定値の範囲外であった場合に前記共有リソースが出力するレスポンス情報を通過させ、前記アクセス要求が前記アクセス保護範囲設定値の範囲内であった場合にアクセス違反値を前記第２のプロセッサエレメントに対して出力するレスポンス生成ユニットを有する請求項１乃至９のいずれか１項に記載のマルチプロセッサシステム。
【請求項１１】
前記第２のプロセッサエレメントは、前記第１のプロセッサエレメントから前記アクセス違反値が返信された場合、前記中央演算処理装置が実行中の処理にかかわらず前記アクセス違反値に基づく処理を優先的に割り込み処理する請求項１０に記載のマルチプロセッサシステム。
【請求項１２】
前記第１のプロセッサエレメントは、前記中央演算装置と、前記共有リソースと、前記ガードユニットとが同一の半導体基板上に形成される請求項１乃至１１のいずれか１項に記載のマルチプロセッサシステム。
【請求項１３】
前記第１のプロセッサエレメントと前記第２のプロセッサエレメントとが同一の半導体基板上に形成される請求項１乃至１２のいずれか１項に記載のマルチプロセッサシステム。
【請求項１４】
第１、第２のプロセッサエレメントを有し、前記第１、第２のプロセッサエレメントが独立してプログラムを実行するマルチプロセッサシステムにおけるアクセス保護方法であって、
前記第２のプロセッサエレメントは、前記第１のプロセッサエレメントが有する共有リソースに対してアクセス要求を送信し、
前記第１のプロセッサエレメントは、ガードユニットにて前記アクセス要求を受信し、前記アクセス要求が前記第１のプロセッサエレメント内の中央演算装置が指定するアクセス保護範囲設定値の範囲内である場合、
前記第２のプロセッサエレメントに対してアクセス違反値の返信と、
前記アクセス要求の無効化と、
前記中央演算装置に対する例外アクセス発生の通知と、
を行うマルチプロセッサシステムにおけるアクセス保護方法。
【請求項１５】
前記ガードユニットは、前記中央演算装置から保護情報設定バスを介して送信される前記アクセス制限設定値を保持する保護設定ユニットと、前記保護設定ユニットに保持されている情報に基づき前記アクセス要求が前記アクセス制限設定値の範囲内か否かを判断する判定ユニットと、を有する請求項１４に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【請求項１６】
前記保護設定ユニットは、それぞれに異なる設定を保持する複数の設定情報保持レジスタを有し、前記複数の設定情報保持レジスタは、それぞれ保護するアクセス範囲を保持する保護範囲設定レジスタと、前記設定情報保持レジスタの値の有効・無効を示すフラグ値を保持するイネーブルフラグレジスタとを有する請求項１５に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【請求項１７】
前記保護設定ユニットは、さらに前記アクセス範囲に対するアクセス属性を保持する保護属性レジスタを有する請求項１６に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【請求項１８】
前記判定ユニットは、前記複数の設定情報保持レジスタのうち前記フラグ値が有効を示すレジスタに保持されたアクセス保護範囲設定値に基づき前記アクセス要求を判断し、全ての前記フラグ値が無効を示す場合、前記ガードユニットによるアクセス要求の制限を解除する請求項１６に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【請求項１９】
前記ガードユニットは、前記アクセス要求が前記アクセス保護範囲設定値の範囲内であった場合に前記中央演算装置に例外アクセス通知信号を出力する例外アクセス発生通知ユニットを有し、前記例外アクセス発生通知信号は、中央演算装置において割り込み処理される請求１４乃至１８のいずれか１項に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【請求項２０】
前記ガードユニットは、前記アクセス要求が前記アクセス保護範囲設定値の範囲内であった場合にアクセス無効値を出力し、前記アクセス要求が前記アクセス保護範囲設定値の範囲外であった場合に前記アクセス要求を通過させる無効化ユニットを有する請求項１４乃至１９のいずれか１項に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【請求項２１】
前記ガードユニットは、前記アクセス要求が前記アクセス保護範囲設定値の範囲外であった場合に前記共有リソースが出力するレスポンス情報を通過させ、前記アクセス要求が前記アクセス保護範囲設定値の範囲内であった場合にアクセス違反値を出力するレスポンス生成ユニットを有する請求項１４乃至２０のいずれか１項に記載のマルチプロセッサシステムにおけるアクセス保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス保護方法に関し、特に各プロセッサが他のプロセッサと共有される共有リソースを有するマルチプロセッサシステム及び当該マルチプロセッサシステムにおけるアクセス保護方法に関する。
【背景技術】
【０００２】
近年、複数のプロセッサの間でメモリ等のリソースを共有するマルチプロセッサシステムが多く用いられている。このようなマルチプロセッサシステムでは、他プロセッサが実行しているタスクの暴走によって、自プロセッサが利用するメモリ領域の情報を誤って上書きしてしまう問題が発生する。このような問題が発生すると、自プロセッサが実行しているタスクの正常な動作が阻害され、システムの動作に不具合が生じる。
【０００３】
そこで、複数のプロセッサ間においてタスクの暴走の影響を互いに防ぐマルチプロセッサシステムに関する技術が特許文献１（以下、従来例１と称す）に開示されている。従来例１に開示されているマルチプロセッサシステム１００のブロック図を図９に示す。図９に示すように、マルチプロセッサシステム１００は、第１のプロセッサ１０１Ａと第２のプロセッサ１０１Ｂとがシステムバス１０５で接続される。そして、第１のプロセッサ１０１Ａと第２のプロセッサ１０１Ｂは、それぞれＣＰＵボード１０１、メモリボード１０３を有している。ＣＰＵボード１０１は、アドレス生成部１０２を含み、メモリボード１０３とローカルバス１０４で接続される。マルチプロセッサシステム１００では、第１のプロセッサ１０１Ａから第２のプロセッサ１０１Ｂのメモリボード１０３にアクセスを行う場合、このアドレス生成部１０２にてアドレス変換を行う。これによって、第２のプロセッサ１０１Ｂに搭載されるメモリボード１０３において第２のプロセッサ１０１Ｂが使用する領域を、第１のプロセッサ１０１Ａからのアクセスによって侵害しないように制御する。
【０００４】
従来例１では、レジスタに予め固定的に設定されたアクセス保護範囲設定値を参照してアドレス生成部が他のプロセッサ上のメモリボードへのアクセスを制御する。また、特許文献２（以下、従来例２と称す）には、従来例１のレジスタとしてＰＬＤ（Programmable Logic Device）を利用して、製造後であってもアクセス保護範囲設定値を変更できる構成が開示されている。
【特許文献１】特開平９−２９７７１１号公報
【特許文献２】特開２００２−３２３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来例２におていも、プロセッサの利用状況に応じてアクセス保護範囲設定値を変更することができない。つまり、プロセッサが実行するプログラムに応じて動的にアクセス保護範囲を設定することができない。このようなことから、従来例１、２で開示されるマルチプロセッサシステムでは、柔軟なリソースの共有ができない問題がある。
【課題を解決するための手段】
【０００６】
本発明にかかるマルチプロセッサシステムは、第１、第２のプロセッサエレメントを有し、前記第１、第２のプロセッサエレメントが独立してプログラムを実行するマルチプロセッサシステムであって、前記第１のプロセッサエレメントは、プログラムに基づき演算処理を行う中央演算装置と、前記第１、第２のプロセッサエレメントの間で共有される共有リソースと、前記中央演算装置が指定するアクセス保護範囲設定値に基づき前記第２のプロセッサエレメントから前記共有リソースへのアクセス要求を制限するガードユニットと、を有するものである。
【０００７】
本発明にかかるマルチプロセッサシステムは、中央演算装置が指定するアクセス範囲設定値に基づきガードユニットが第２のプロセッサエレメントからのアクセスを制限する。つまり、アクセス保護範囲設定値を中央演算装置が実行するプログラムに応じて変更することが可能である。このことより、本発明にかかるマルチプロセッサシステムによれば、第２のプロセッサエレメントから第１のプロセッサエレメント内の共有リソースへのアクセス制限を第１のプロセッサエレメントが実行している処理に基づき設定することが可能である。また、共有リソースにおいて第１のプロセッサエレメントが使用する領域を第２のプロセッサエレメントで実行されているプログラムによって侵害されることを防ぐことが可能である。
【０００８】
また、本発明にかかるマルチプロセッサシステムにおけるアクセス保護方法は、第１、第２のプロセッサエレメントを有し、前記第１、第２のプロセッサエレメントが独立してプログラムを実行するマルチプロセッサシステムにおけるアクセス保護方法であって、前記第２のプロセッサエレメントは、前記第１のプロセッサエレメントが有する共有リソースに対してアクセス要求を送信し、前記第１のプロセッサエレメントは、ガードユニットにて前記アクセス要求を受信し、前記アクセス要求が前記第１のプロセッサエレメント内の中央演算装置が指定するアクセス保護範囲設定値の範囲内である場合、前記第２のプロセッサエレメントに対してアクセス違反値値の返信と、前記アクセス要求の無効化と、前記中央演算装置に対する例外アクセス発生の通知と、を行うものである。
【０００９】
本発明にかかるマルチプロセッサシステムにおけるアクセス保護方法は、アクセス要求がアクセス保護範囲内にある場合、アクセス要求を送信した第２のプロセッサエレメントに対してアクセス違反値を返信する。これによって、第２のプロセッサエレメントは、第２のプロセッサエレメントにおいて実行しているプログラムに基づくタスクに違反が生じていることを検出することができる。また、本発明にかかるマルチプロセッサシステムにおけるアクセス保護方法は、アクセス要求がアクセス保護範囲内にある場合、アクセス要求を無効化して、さらに第１のプロセッサエレメントに対して例外アクセス発生を通知する。これによって、第１のプロセッサエレメントは、第２のプロセッサエレメントから例外アクセスがあったことを知ることが可能になる。
【発明の効果】
【００１０】
本発明にかかるマルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス保護方法によれば、プロセッサエレメントでそれぞれ実行されるプログラムの信頼性を向上させることが可能である。
【発明を実施するための最良の形態】
【００１１】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。図１に実施の形態１にかかるマルチプロセッサシステム１のブロック図を示す。図１に示すように、マルチプロセッサシステム１は、第１のプロセッサエレメントＰＥ−Ａと第２のプロセッサエレメントＰＥ−Ｂとがバスを介して接続される。
【００１２】
第１のプロセッサエレメントＰＥ−Ａは、中央演算装置ＣＰＵａ、ＲＯＭ（Read Only Memory）１５ａ、ガードユニット１６ａ、リソースコントローラ１７ａ、共有リソース１８ａを有している。なお、本実施の形態では、第２のプロセッサエレメントＰＥ−Ｂは、第１のプロセッサエレメントＰＥ−Ａと同一の構成を有するものである。第２のプロセッサエレメントＰＥ−Ｂにおいて中央演算装置ＣＰＵｂは中央演算装置ＣＰＵａに対応するものであり、ＲＯＭ１５ｂはＲＯＭ１５ａに対応するものであり、ガードユニット１６ｂはガードユニット１６ａに対応するものであり、リソースコントローラ１７ｂは、リソースコントローラ１７ａに対応するものであり、共有リソース１８ｂは共有リソース１８ａに対応するものである。従って、本実施の形態では、第１のプロセッサエレメントを例にプロセッサエレメントの構成について説明する。なお、上記プロセッサエレメントは、それぞれ中央演算装置、ガードユニット、共有リソースが同一の半導体基板上に形成されたものであっても良く、複数のプロセッサエレメントが同一の半導体基板上に形成されるものであっても良い。
【００１３】
中央演算装置ＣＰＵａは、制御部１１ａと実行部１２ａを有している。制御部１１ａは、例えば実行部１２ａで実行されるプログラムの実行単位であるタスクが使用するデータが格納されるメモリ領域を指定し、データ保存領域の管理を行う。この管理は、ＭＭＵ（Memory Management Unit）１３ａが行う。実行部１２ａは、プログラムを読み込んでタスク毎に各種処理を行う。また、実行部１２ａは、ロード／ストアユニット（図中のＬＯ／ＳＴユニット）１４ａを有している。ロード／ストアユニット１４ａは、ＭＭＵ１３ａの指示するメモリ管理情報に従い判断し、リソースコントローラ１７ａに対してタスクが使用するデータのリード又はライトのアクセスを行う。
【００１４】
ＲＯＭ１５ａは、中央演算装置ＣＰＵａが読み込むプログラムの格納領域である。なお、本実施の形態では、プログラム格納領域としてＲＯＭ１５ａを用いるが、プログラム格納領域はＲＯＭ１５ａに限らず、ＣＰＵａがアクセス可能な領域であれば良い。
【００１５】
ガードユニット１６ａは、第２のプロセッサエレメントＰＥ−Ｂとバスを介して接続されており、第２のプロセッサエレメントから送信されるアクセス要求を受信する。また、ガードユニット１６ａは、中央演算装置ＣＰＵａから保護情報設定バスを介してアクセス保護範囲設定値ＳＥａが入力される。アクセス保護範囲設定値ＳＥａは、保護情報設定バスを介して第１のプロセッサエレメントＰＥ−Ａからのみ設定可能である。ガードユニット１６ａは、このアクセス保護範囲設定値ＳＥａとアクセス要求から得られる情報とに基づき、第２のプロセッサエレメントＰＥ−Ｂから送信されたアクセスが許可されるべきものなのか、拒絶すべきものなのかを判断する。つまり、ガードユニット１６ａは、第２のプロセッサエレメントＰＥ−Ｂから第１のプロセッサエレメントＰＥ−Ａへのアクセスを制御する。ガードユニット１６ａは、このアクセス制御に加えて、アクセス制御に基づいてアクセスが拒絶するものであると判断した場合、第１のプロセッサエレメントＰＥ−Ａと第２のプロセッサエレメントＰＥ−Ｂとの双方に例外アクセスの発生を例外アクセス通知Ｅａなど用いて通知する。ガードユニット１６ａについての詳細は後述する。
【００１６】
リソースコントローラ１７ａは、共有リソース１８ａの制御装置であって、本実施の形態ではＲＡＭ（Random Access Memory）を制御する。リソースコントローラ１７ａは、中央演算装置ＣＰＵａから送信されるアクセス要求又はガードユニット１６ａを通過して受信したアクセス要求とに基づき共有リソース１８ａへの制御信号を生成する。このとき、リソースコントローラ１７ａは、中央演算装置ＣＰＵａから送信されるアクセス要求とガードユニット１６ａを通過して受信したアクセス要求との間の調停処理と、アクセス要求に含まれる情報から共有リソース１８ａに対する制御信号の生成を行う。アクセス要求に含まれる情報としては、例えばアクセスアドレス情報、リードやライトなどのアクセス属性を指定する情報がある。また、中央演算装置ＣＰＵａから送信されるアクセス要求が第２のプロセッサユニットＰＥ−Ｂへのアクセス要求であった場合、第２のプロセッサユニットＰＥ−Ｂに対してアクセス要求を送信する。
【００１７】
共有リソース１８ａは、第１のプロセッサエレメントＰＥ−Ａと第２のプロセッサエレメントＰＥ−Ｂとの間で共通して用いられるリソースである。本実施の形態ではメモリを共有リソースとして使用する。従って、本実施の形態にかかる共有リソース１８ａは、ＲＡＭ１８１ａを有している。またＲＡＭ１８１ａには、ＰＥ−Ａ専用領域１８２ａが定義されている。ＰＥ−Ａ専用領域１８２ａは、上記アクセス保護範囲設定値ＳＥａによって定義される保護領域であって、アクセス保護範囲設定値ＳＥａの値によって変動する。
【００１８】
ここで、ガードユニット１６ａについて詳細に説明する。図２にガードユニット１６ａのブロック図を示す。図２に示すように、ガードユニット１６ａは、保護設定ユニット２１、判定ユニット２２、アクセス無効化ユニット２３、レスポンス生成ユニット２４、例外アクセス発生通知ユニット２５を有している。
【００１９】
保護設定ユニット２１は、複数の設定情報保持レジスタを有している。そして、複数の設定情報保持レジスタには、中央演算装置ＣＰＵａが出力するアクセス保護範囲設定値ＳＥａの情報がそれぞれ記憶される。この保護設定ユニット２１の概略図を図３に示し、複数の設定情報保持レジスタについてさらに詳細に説明する。図３の例は、１６個の設定情報保持レジスタを有する場合について示している。図３に示すように、複数の設定情報保持レジスタは、それぞれ保護範囲設定レジスタ、イネーブルフラグレジスタ、保護属性レジスタを有している。保護範囲設定レジスタには、アクセス保護範囲であるメモリ上のアドレス値の範囲が格納される。この保護範囲設定レジスタで示される保護範囲を第１のプロセッサエレメントＰＥ−Ａの専用領域とする。イネーブルフラグレジスタには、フラグ値ＥＮが格納される。例えば、フラグ値ＥＮが"１"であれば当該保護範囲設定レジスタに格納された保護範囲の設定が有効であることを示し、フラグ値ＥＮが"０"であれば当該保護範囲設定レジスタに格納された保護範囲の設定が無効であることを示す。保護属性レジスタは、保護範囲設定レジスタに格納されるアドレス範囲に対して行われたアクセス要求がどのようなアクセス属性であった場合にアクセスを拒否するかを設定するためのアクセス属性が格納される。アクセス属性としては、例えばＷｒｉｔｅ（書き込み）、Ｒｅａｄ（読み出し）、Ｒｅａｄ／Ｗｒｉｔｅ（読み書き）などがある。この保護属性レジスタの設定内容は、必ずしも変更可能である必要はなく、例えば書き込み属性などに固定されていても良い。
【００２０】
判定ユニット２２は違反検出器２２１を有している。違反検出器２２１は、有効である保護設定範囲レジスタの値と、入力されるアクセス要求（アクセスアドレス及びストローブ）とを比較して、アクセス要求がアクセス保護範囲内であるか否かを判定する。この判定の結果、アクセス要求がアクセス保護範囲内である場合、違反検出器２２１は、エラー通知信号を拒否状態とする。なお、全ての保護設定範囲レジスタ内のイネーブルフラグレジスタのフラグ値が無効を示す場合、違反検出器２２１は、エラー通知信号を出力せずに、ガードユニット１６ａのアクセス制御機能は無効となる。
【００２１】
アクセス無効化ユニット２３は、エラー通知信号に応じて第２のプロセッサエレメントＰＥ−Ｂから送信されるアクセス要求を通過させるか、アクセス無効値を出力するかを選択するセレクタＳＥＬ１を有している。セレクタＳＥＬ１は、エラー通知信号が許可状態である場合に、第２のプロセッサエレメントＰＥ−Ｂから送信されるアクセス要求を通過させる。一方、セレクタＳＥＬ１は、エラー通知信号が拒否状態である場合、アクセス無効値を出力する。アクセス無効値は、例えばリソースコントローラ１７ａに接続されるバス上のＩｄｌｅコマンドなどであって、リソースコントローラ１７ａにアクセスがないことを示すコマンドである。
【００２２】
レスポンス生成ユニット２４は、エラー通知信号に応じて第１のプロセッサエレメントＰＥ−Ａの共有リソース１８ａから出力されるメモリレスポンスを通過させるか、アクセス違反値を出力するかを選択するセレクタＳＥＬ２を有している。セレクタＳＥＬ２は、エラー通知信号が許可状態である場合に、リソースコントローラ１７ａから出力されるレスポンス情報（例えば、ｒｅａｄｙ、メモリアクセスエラー、データなどのメモリレスポンス）を通過させる。一方、セレクタＳＥＬ２は、エラー通知信号が拒否状態である場合、アクセス違反値を出力する。このアクセス違反値は、メモリレスポンスの１つであるメモリアクセスエラーとは異なる値であって、第２のプロセッサエレメントＰＥ−Ｂにアクセス要求がアクセス違反であったことを通知する値である。第１のプロセッサエレメントＰＥ−Ａ、又は、第２のプロセッサエレメントＰＥ−Ｂが、アクセス違反値を受信すると、アクセス違反値に基づく処理が当該プロセッサエレメントで実行中の処理にかかわらず優先的に割り込み処理される。
【００２３】
例外アクセス発生通知ユニット２５は、エラー通知信号に応じて中央演算装置ＣＰＵａに対して例外アクセスが発生したことを通知する割り込み要求信号などの例外アクセス発生通知信号を生成する。この割り込み要求信号は、中央演算装置ＣＰＵａが実行している処理に応じて適切な時期に受け付けられる。
【００２４】
また、ガードユニット１６ａは、アクセス要求とともに送信される共有リソース１８ａへの書き込みデータを通過させる配線を有する。この配線は、データ入力端子ＤＩＮと内部入力端子ＤＩＩＮとの間に接続される。
【００２５】
次に、第１のプロセッサエレメントＰＥ−Ａでアクセス要求が発生した場合におけるマルチプロセッサシステム１の動作を例にしてマルチプロセッサシステムの動作について説明する。この場合におけるマルチプロセッサシステム１の動作を示すフローチャートを図４に示す。図４に示すように、中央演算装置ＣＰＵａ内部のＬＯ／ＳＴユニット１４ａからアクセス要求が発生すると、ＭＭＵ１３ａが発生したアクセスが許可されるものか否かを判断する（ステップＳ１）。ステップＳ１にてアクセスが違反するものであると判断された場合、アクセス違反が発生したことを通知する例外発生通知が中央演算装置ＣＰＵａに対して行われる。これによって、中央演算装置ＣＰＵａは、例えば実行中のタスクを再起動する、あるいは実行しているプログラム自体を再起動する。一方、ステップＳ１にてアクセス要求が許可された場合、リソースコントローラ１７ａにてアクセスの対象メモリが判定される（ステップＳ２）。
【００２６】
ステップＳ２にて対象メモリが第１のプロセッサエレメントＰＥ−Ａ上のＲＡＭ１８１ａと判断されると、リソースコントローラ１７ａは、ＲＡＭ１８１ａにデータを書き込む。一方、ステップＳ２にて対象メモリが第２のプロセッサエレメントＰＥ−Ｂ上のＲＡＭ１８１ｂと判断されると、リソースコントローラ１７ａは、第２のプロセッサエレメントＰＥ−Ｂ上のガードユニット１６ｂにアクセス要求を送信する。
【００２７】
ガードユニット１６ｂでは、第１のプロセッサエレメント側から送信されたアクセス要求が第２のプロセッサエレメントＰＥ−Ｂの中央演算装置ＣＰＵｂが指定するアクセス保護範囲内であるかどうかを判断する（ステップＳ３）。ステップＳ３にて、第１のプロセッサエレメント側から送信されたアクセス要求がアクセス保護範囲外（許可）であった場合、第１のプロセッサエレメントＰＥ−Ａは第２のプロセッサエレメントＰＥ−ＢのＲＡＭ１８１ｂにアクセスを行う。一方、第１のプロセッサエレメント側から送信されたアクセス要求がアクセス保護範囲内（違反）であった場合、ガードユニット１６ｂは、第２のプロセッサエレメントＰＥ−Ｂのリソースコントローラ１７ｂにアクセス無効値を出力し、中央演算装置ＣＰＵｂに例外アクセス発生通知を行う。また、これらの処理を行うとともに、ガードユニット１６ｂは、第１のプロセッサエレメントＰＥ−Ａにアクセス違反値を出力する。第１のプロセッサエレメントＰＥ−Ａがアクセス違反値を受信すると、中央演算装置ＣＰＵａに通知され、中央演算装置ＣＰＵａは、実行中の処理にかかわらず、アクセス違反値に基づく割り込み処理を優先実行する。これによって、第１のプロセッサエレメントＰＥ−Ａは、違反の発生を検知して実行中のタスクを再起動（もしくは停止）する、あるいは実行しているプログラム自体を再起動（もしくは停止）する。また、第２のプロセッサエレメントＰＥ−Ｂは、第１のプロセッサエレメントＰＥ−Ａで異常が発生していることを検出できるため、異常発生に対して保護範囲を広げる、あるいは保護範囲を利用するタスクのみを継続する等の処理を行うことが可能である。
【００２８】
上記ステップＳ３のガードユニット１６ｂにおいて行われる処理のフローチャートを図５に示す。この図５を参照して、ガードユニット１６ｂの動作について詳細に説明する。まず、ガードユニット１６ｂに対するアクセス要求が発生すると違反検出器２２１は、全ての保護範囲設定レジスタを参照し、有効であるレジスタの値を読み込む（ステップＳ４）。このとき、全ての保護範囲設定レジスタが無効であった場合（ＹＥＳの枝）、ガードユニット１６ｂは、第１のプロセッサエレメントＰＥ−Ａからのアクセス要求を第２のプロセッサエレメントＰＥ−Ｂのリソースコントローラ１７ｂに通過させる（ステップＳ６）。次に、リソースコントローラ１７ｂは、アクセス要求の実行結果をメモリレスポンスとしてガードユニット１６ｂを介して第１のプロセッサエレメントＰＥ−Ａに返信する（ステップＳ７）。これによって、第１のプロセッサエレメントＰＥ−Ａのバスサイクルが完了する（ステップＳ８）。
【００２９】
一方、ステップＳ４で有効な保護範囲設定レジスタがあった場合（ＮＯの枝）、違反検出器２２１は、有効な保護範囲設定レジスタの値を参照して、アクセス要求がアクセス許可範囲内かを判断する（ステップＳ５）。ステップＳ５にて、アクセス要求がアクセス許可範囲内であった場合（ＹＥＳの枝）、上記ステップＳ６〜Ｓ８を実行する。一方、ステップＳ５にて、アクセス要求がアクセス許可範囲外であった場合（ＮＯの枝）、アクセス無効化ユニット２３は、アクセス要求に変えてアクセス無効値をリソースコントローラ１７ｂに送信することでアクセス要求を無効化する（ステップＳ９）。また、レスポンス生成ユニット２４は、アクセス違反値を第１のプロセッサエレメントＰＥ−Ａに返信する（ステップＳ１０）。さらに、例外アクセス発生通知ユニット２５は、例外アクセス通知信号を中央演算装置ＣＰＵｂに出力する（ステップＳ１１）。
【００３０】
上記説明より、本実施の形態にかかるプロセッサエレメントは、同じプロセッサエレメントに配置される中央演算装置によってアクセス保護範囲が設定されるガードユニットを有している。そして、ガードユニットよって他のプロセッサエレメントからのアクセス要求がアクセス保護範囲内であるか否かを判断して、制限すべきアクセス要求を遮断する。これによって、それぞれのプロセッサエレメントは、自プロセッサエレメントが使用する専用のメモリ領域を確保しながら、専用領域として使用されない領域を共有領域として他のプロセッサエレメントと共有することができる。また、本実施の形態にかかるプロセッサエレメントでは、アクセス保護範囲設定値を自プロセッサエレメントが指定し、それを格納する保護情報設定レジスタを有している。このようなことから、本実施の形態にかかるプロセッサエレメントは、柔軟に保護範囲の設定を変更することが可能である。例えば、自プロセッサエレメントで行われている処理の状態に応じて、保護範囲を変更することが可能である。
【００３１】
さらに、専用領域に対して発行されるアクセス要求はガードユニットにて無効化されるため、専用領域に格納されるデータが他のプロセッサエレメントで実行されるタスクによって侵害されることがない。このようなことから、本実施の形態のプロセッサエレメントは、自プロセッサエレメントで実行しているタスクの信頼性を向上させることが可能である。
【００３２】
また、従来のマルチプロセッサシステムでは、他プロセッサエレメントが自プロセッサエレメントに対して起こしたアクセス違反を他プロセッサエレメントに通知することができなかった。このようなことから、従来のマルチプロセッサシステムでは、他プロセッサエレメントは、プロセッサエレメント間で発生した異常に対して、タスクの再起動などを行って動作を復旧することができなかった。
【００３３】
これに対して、本実施の形態にかかるガードユニットは、他プロセッサエレメントから例外アクセスが生じた場合に、自プロセッサエレメントに対して例外アクセス発生通知信号を生成し、さらに他プロセッサエレメントに対してアクセス違反値を返信する。このことから、自プロセッサエレメント及び他プロセッサエレメントはともに例外アクセスの発生を知ることができる。このように例外アクセスの発生を検知できれば、それぞれのプロセッサエレメントは例外アクセスに対して、それぞれ異常拡大の防止、異常タスクの復旧、又は、安全と判明しているタスクのみによる継続動作を行うことが可能である。つまり、自プロセッサエレメントにおいては他プロセッサエレメントで発生した異常に対する防御レベルの変更を行い自プロセッサエレメントで実行しているタスクを保護することが可能である。また、他プロセッサエレメントにおいては、タスクに異常が発生した時点でそのタスクを再起動するなどして、早期に異常状態からシステムを復旧することが可能である。このようなことから、本実施の形態にかかるプロセッサエレメントを有するマルチプロセッサシステムは、信頼性を向上させることが可能である。
【００３４】
実施の形態２
実施の形態２にかかるマルチプロセッサシステム２のブロック図を図６に示す。図６に示すように、マルチプロセッサシステム２では、第１のプロセッサエレメントＰＥ−Ａ２が共有リソース１８ａとしてＩ／Ｏインタフェース１８３ａを有している。マルチプロセッサシステム２においても、第２のプロセッサエレメントＰＥ−Ｂの構成は実施の形態１と同じである。
【００３５】
実施の形態２におけるリソースコントローラ１７ａは、Ｉ／Ｏインタフェース１８３ａをアクセスアドレスに基づき制御する。Ｉ／Ｏインタフェース１８３ａには、例えばエアバッグなどの被制御デバイス３０が接続される。ここで、第２のプロセッサエレメントＰＥ−Ｂは、Ｉ／Ｏインタフェース１８３ａに対するアクセス権を有していないものとする。
【００３６】
このようなマルチプロセッサシステム２に搭載される第１のプロセッサエレメントＰＥ−Ａ２に対してガードユニット１６ａを設けることで、第２のプロセッサエレメントＰＥ−Ｂのタスクが暴走してＩ／Ｏインタフェース１８３ａに対するアクセス要求が発生したとしても、このアクセス要求はガードユニット１６ａで無効化される。これによって、マルチプロセッサシステム２は、他プロセッサエレメントのタスクの暴走に対して、エアバッグが誤動作することを防止することが可能である。
【００３７】
つまり、共有リソース１８ａとしては、メモリだけに限られず様々なリソースを設定することが可能である。また、このような共有リソースを有するマルチプロセッサシステムにおいてガードユニットを設けることでマルチプロセッサシステムの信頼性を向上させることが可能である。
【００３８】
実施の形態３
実施の形態３にかかるマルチプロセッサシステム３のブロック図を図７に示す。図７に示すように、マルチプロセッサシステム３では、第１のプロセッサエレメントＰＥ−Ａと同じ構成を有する第２のプロセッサエレメントＰＥ−Ｂ及び第３のプロセッサエレメントＰＥ−Ｃを有している。そして、第１のプロセッサエレメントＰＥ−Ａ、第２のプロセッサエレメントＰＥ−Ｂ及び第３のプロセッサエレメントＰＥ−Ｃは、互いにバスを介して接続される。このような場合であっても、カードユニットによって、実施の形態１と同様にシステムの信頼性を向上させることが可能である。
【００３９】
マルチプロセッサシステム３ように、２つ以上のプロセッサエレメントを接続する場合、バス構造として複数のプロセッサエレメントがそれぞれマスタとなるマルチマスタバス等を用いることが可能である。
【００４０】
実施の形態４
実施の形態４にかかるマルチプロセッサシステム４のブロック図を図８に示す。図８に示すようにマルチプロセッサシステム４は、第２のプロセッサエレメントとしてガードユニット及び共有リソースを有さないコプロセッサ４０を使用する。この場合、コプロセッサにて実行されるタスクに異常が発生して、アクセス保護範囲に対してアクセス要求がであっても、第１のプロセッサエレメントＰＥ−Ａのガードユニットがこのアクセス要求を無効化する。本実施の形態では、第１のプロセッサエレメントＰＥ−Ａがガードユニットを有していることで、第１のプロセッサユニットＰＥ−Ａで実行されるタスクを保護される。
【００４１】
つまり、本発明にかかるマルチプロセッサシステムは、複数のプロセッサエレメントによって構成されるマルチプロセッサシステムにおいて、少なくとも１つのプロセッサエレメントに対してガードユニットが搭載されていれば、マルチプロセッサシステムの信頼性の向上が可能である。
【００４２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、保護設定ユニットに格納される保護情報は、上記実施の形態のアクセス保護範囲設定値に限られず、システムに応じて適宜変更することが可能である。
【図面の簡単な説明】
【００４３】
【図１】実施の形態１にかかるマルチプロセッサシステムのブロック図である。
【図２】実施の形態１におけるガードユニットのブロック図である。
【図３】実施の形態１にかかる保護情報保持ユニットの概略図である。
【図４】実施の形態１にかかるマルチプロセッサシステムの動作を示すフローチャートである。
【図５】実施の形態１におけるガードユニットの動作を示すフローチャートである。
【図６】実施の形態２にかかるマルチプロセッサシステムのブロック図である。
【図７】実施の形態３にかかるマルチプロセッサシステムのブロック図である。
【図８】実施の形態４にかかるマルチプロセッサシステムのブロック図である。
【図９】従来例にかかるマルチプロセッサシステムのブロック図である。
【符号の説明】
【００４４】
１、２、３、４    マルチプロセッサシステム
１１ａ、１１ｂ    制御部
１２ａ、１２ｂ    実行部
１３ａ、１３ｂ    ＭＭＵ
１４ａ、１４ｂ    ロード／ストアユニット
１６ａ、１６ｂ、１６ｃ    ガードユニット
１７ａ、１７ｂ、１７ｃ    リソースコントローラ
１８１ａ、１８１ｂ、１８１ｃ    ＲＡＭ
１８２ａ、１８２ｂ    専用領域
１８３ａ    Ｉ／Ｏインタフェース
２１    保護設定ユニット
２２    判定ユニット
２２１    違反検出器
２３    アクセス無効化ユニット
２４    レスポンス生成ユニット
２５    例外アクセス発生通知ユニット
３０    被制御デバイス
４０    コプロセッサ
ＣＰＵａ、ＣＰＵｂ、ＣＰＵｃ    中央演算装置
ＳＥａ、ＳＥｂ、ＳＥｃ    アクセス保護範囲設定値
Ｅａ、Ｅｂ、Ｅｃ    例外アクセス発生通知
ＰＥ−Ａ、ＰＥ−Ｂ、ＰＥ−Ｃ    プロセッサエレメント
ＳＥＬ１、ＳＥＬ２    セレクタ
ＳＷａ〜ＳＷｃ    バススイッチ
【図１】
2008242593.tif 000003
【図２】
2008242593.tif 000004
【図３】
2008242593.tif 000005
【図４】
2008242593.tif 000006
【図５】
2008242593.tif 000007
【図６】
2008242593.tif 000008
【図７】
2008242593.tif 000009
【図８】
2008242593.tif 000010
【図９】
2008242593.tif 000011