(57)【要約】【課題】マルチプロセッサシステムにおける共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置を備えたマルチプロセッサシステムを提供すること。【解決手段】複数のプロセッサ１０〜１３が共有するメモリ４を備えるマルチプロセッサシステム１００は、メモリ４の所定領域４０〜４３に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段２１とアクセス権限に関する情報に基づいて各プロセッサによるメモリ４へのアクセスを管理するメモリ管理手段２０とを備える。また、メモリ４の所定領域は、複数のプロセッサからのアクセスを許容する。【選択図】図１
2008123031.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサにより共有されるメモリを備えるマルチプロセッサシステムであって、
前記メモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、
前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、
を備えることを特徴とするマルチプロセッサシステム。
【請求項２】
前記メモリの所定領域は、複数のプロセッサからのアクセスを許容する、
ことを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記アクセス権限情報保持手段は、前記メモリの所定領域に対する各プロセッサのアクセス権限をアクセス内容毎に設定する、
ことを特徴とする請求項１又は２に記載のマルチプロセッサシステム。
【請求項４】
複数のプロセッサにより共有されるメモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、
前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、
を備えることを特徴とする共有メモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムにおける共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムに関し、特に、共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムに関する。
【背景技術】
【０００２】
近年、コンピュータシステムの性能及び信頼性を向上させるため、複数のプロセッサがメインメモリを共有する密結合マルチプロセッサシステムがコンピュータシステムの構築に採用されている。
【０００３】
かかる密結合マルチプロセッサシステムの中には、プロセッサ及び共有メモリに汎用品を使用したためにプロセッサ又は共有メモリに専用の排他制御装置を備えることができなくなったが、複数のプロセッサとインタコネクションとの間に排他制御バッファを備え、そのバッファのエントリに共有メモリ内のブロック位置を示すアドレスとそのブロックの排他的占有状態を示すフラグ（ビット）とを記憶させるようにし、汎用品を利用しながらもメインメモリの排他制御を可能としたマルチプロセッサシステムが知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００３−１７３３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のマルチプロセッサシステムは、フラグを用いて排他制御を行っているので、フラグ処理においてエラーが発生した場合に共有メモリの内容を破壊させてしまうおそれがあり、信頼性の点で問題がある。
【０００５】
上述の点に鑑み、本発明は、マルチプロセッサシステムにおける共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の目的を達成するために、第一の発明に係るマルチプロセッサシステムは、複数のプロセッサにより共有されるメモリを備えるマルチプロセッサシステムであって、前記メモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、を備える。
【０００７】
また、第二の発明は、第一の発明に係るマルチプロセッサシステムであって、前記メモリの所定領域は、複数のプロセッサからのアクセスを許容することを特徴とする。
【０００８】
また、第三の発明は、第一又は第二の発明に係るマルチプロセッサシステムであって、前記アクセス権限情報保持手段は、前記メモリの所定領域に対する各プロセッサのアクセス権限をアクセス内容毎に設定することを特徴とする。
【０００９】
また、第四の発明に係る共有メモリ管理装置は、複数のプロセッサにより共有されるメモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、を備える。
【発明の効果】
【００１０】
上述の手段により、本発明は、マルチプロセッサシステムにおける共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
【実施例１】
【００１２】
図１は、本発明に係るマルチコアシステムの構成例を示す図である。なお、「マルチコア」とは、マイクロプロセッサの中で、命令発行器や演算器などの集合であり独立した部品として動作するプロセッサコアが、一個のパッケージに二つ以上集積されているプロセッサのことをいう。
【００１３】
また、マルチコアシステムは、マルチプロセッサシステムの一形態であり、それぞれのプロセッサコアを独立させることで、一個のプロセッサコアに対する処理負荷を分散させ、システム全体の性能を向上させることができる。
【００１４】
本発明に係るマルチコアシステム１００は、マルチコアプロセッサ１、アドレスレコーダ２、メモリコントローラ３及びメインメモリ４から構成される。
【００１５】
マルチコアプロセッサ１は、第一ＣＰＵ（Central  Processing  Unit）１０、第二ＣＰＵ１１、第三ＣＰＵ１２及び第四ＣＰＵ１３の四つのＣＰＵを有し、破線で示す制御信号線（アドレスバス）によりアドレスデコーダ２を介してメモリコントローラ３を制御し、実線で示すデータ転送線（データバス）によりアドレスデコーダ２が制御するメモリコントローラ３を介してメインメモリ４からデータを読み出したり、メインメモリ４にデータを書き込んだりする。
【００１６】
アドレスデコーダ２は、ＣＰＵ１０〜１３がメインメモリ４からデータを読み出したり、メインメモリ４にデータを書き込んだりする場合にメインメモリ４におけるアドレスを指定するための電子回路であり、アドレスを保持するためのレジスタ、メモリ管理機構２０及びアクセス権限情報保持機構２１を実装し、マルチコアプロセッサ１が出力する第一制御信号に基づいてアドレスを取得し、取得したアドレスを第二制御信号に含めてメモリコントローラ３に出力する。
【００１７】
メモリコントローラ３は、マルチコアプロセッサ１によるメインメモリ４からのデータの読み出しやメインメモリ４へのデータの書き込み等、マルチコアプロセッサ１とメインメモリ４との間のインターフェースを統括する電子回路であり、例えば、アドレスデコーダ２が出力する第二制御信号（データのアドレス情報を含む。）を受けて、マルチコアプロセッサ１とメインメモリ４との間のデータのやりとりを制御する。
【００１８】
メインメモリ４は、第一ＣＰＵ１０〜第四ＣＰＵ１３によって共有される主記憶装置であり、例えば、半導体素子を利用して電気的にデータを記憶する揮発性記憶装置である。
【００１９】
メモリ管理機構２０は、複数のＣＰＵ１０〜１３によるメインメモリ４へのアクセスをＣＰＵ毎に管理するための電子回路であり、例えば、マルチコアプロセッサ１が出力する第一制御信号を受けて、メインメモリ４の所定領域に対するＣＰＵ１０〜１３それぞれのアクセス権限に関する情報（以下、「アクセス権限情報」という。）を取得し、取得したアクセス権限情報に従ってＣＰＵ１０〜１３がデータ処理を実現できるよう、メモリコントローラ３に第二制御信号を出力する。
【００２０】
アクセス権限情報保持機構２１は、メインメモリ４の所定領域に対するＣＰＵ１０〜１３それぞれのアクセス権限情報を保持するための電子回路であり、例えば、ＣＰＵ番号（ＣＰＵを特定するための識別番号をいう。）とメインメモリ４におけるアドレスとを入力するとＣＰＵ番号が示すＣＰＵのアクセス権限を出力するよう構成される。
【００２１】
アクセス権限情報保持機構２１は、ＦＰＧＡ（Field  Programmable  Gate  Array）によりプログラマブルとすることで、保持するアクセス権限情報の設定を変更できるようにしてもよい。また、アクセス権限情報保持機構２１は、不揮発性レジスタで構成されてもよい。
【００２２】
ここで、図２は、メインメモリ４の構成例を示す図であり、メインメモリ４は、例えば、アドレス番地「０ｘ００００〜０ｘ００ＦＦ」の領域４０、アドレス番地「０ｘ０１００〜０ｘ０１ＦＦ」の領域４１、アドレス番地「０ｘ０２００〜０ｘ０２ＦＦ」の領域４２、及び、アドレス番地「０ｘ１０００〜０ｘＦＦＦＦ」の領域４３から構成される。
【００２３】
また、図３は、アクセス権限情報の設定例を示す表であり、アドレス欄５０及びアクセス権限情報欄５１から構成される。
【００２４】
アドレス欄５０は、メインメモリ４のメモリ空間における領域を指定するアドレス範囲から構成される。
【００２５】
アクセス権限情報欄５１は、アクセス権限の種類欄、第一ＣＰＵ欄、第二ＣＰＵ欄、第三ＣＰＵ欄及び第四ＣＰＵ欄を有し、アクセス権限の種類と各ＣＰＵに認められたアクセス権限との関係を示す。
【００２６】
「アクセス権限の種類」には、例えば、「リード」、「ライト」、「バースト転送」、「コード転送」及び「データ転送」があり、「リード」とは、読み込み権限、「ライト」とは、書き込み権限を意味する。
【００２７】
また、「バースト転送」とは、1つのアドレス情報をもとにして複数のデータを連続して転送する権限をいい、「コード転送」とは、ＣＰＵがメモリから命令文を取り出し（フェッチし）、レジスタに転送する権限をいい、「データ転送」とは、ＣＰＵがメモリからデータを取り出し（フェッチし）、レジスタに転送する権限をいう。
【００２８】
図３の表は、領域４０に対して、全てのＣＰＵにフルアクセス（アクセス権限の種類全てを許可することを意味する。）の権限を付与していることを示す。
【００２９】
また、図３の表は、領域４１に対して、第一ＣＰＵ１０にフルアクセスの権限を付与し、他のＣＰＵ１１〜１３には、「コード転送」の権限だけを付与していることを示す。
【００３０】
さらに、図３の表は、領域４２に対して、第一ＣＰＵ１０にフルアクセスの権限を付与し、他のＣＰＵ１１〜１３によるアクセスを禁止していることを示し、領域４３に対して、第一ＣＰＵ１０及び第二ＣＰＵ１１にフルアクセスの権限を付与し、第三ＣＰＵ１２及び第四ＣＰＵ１３によるアクセスを禁止していることを示す。
【００３１】
次に、メモリ管理機構２０がマルチコアプロセッサ１によるメインメモリ４へのデータ書き込みの可否を判定する処理について説明する。
【００３２】
図４は、判定処理の流れを示すフローチャートであり、最初に、メモリ管理機構２０は、マルチコアプロセッサ１により第一制御信号が送信されるのを監視している（ステップＳ１）。
【００３３】
図５は、第一制御信号の構成例を示す図であり、第一制御信号は、制御内容部、デバイス番号部、対象アドレス部及びＣＰＵ番号部から構成される。
【００３４】
「制御内容部」は、リード、ライト等、要求する制御の内容を示す部分であり、「デバイス番号部」は、要求の対象となるデバイス（ハードディスク等をいう。）を特定するための識別番号を示す部分である。また、「対象アドレス部」は、要求の対象となるデバイスにおけるアドレスを示す部分であり、「ＣＰＵ番号部」は、要求を発したＣＰＵを特定するための識別番号を示す。
【００３５】
メモリ管理機構２０は、第一制御信号を受信するまでそのまま待機し（ステップＳ１のＮＯ）、第一制御信号（例えば、書き込み要求をいう。）を受信した場合（ステップＳ１のＹＥＳ）、第一制御信号の「デバイス番号部」に基づいて書き込み先がメインメモリ４であるか否かを判定する（ステップＳ２）。
【００３６】
書き込み先が外部記憶装置等の他のデバイスであると判定した場合（ステップＳ２のＮＯ）、メモリ管理機構２０は、書き込み処理を外部記憶装置ドライバ等の他の管理機構に担当させ、再度、マルチコアプロセッサ１により第一制御信号が送信されるのを監視する。
【００３７】
書き込み先がメインメモリ４であると判定した場合（ステップＳ２のＹＥＳ）、メモリ管理機構２０は、第一制御信号の「対象アドレス部」に基づいて書き込み先のアドレスを取得し（ステップＳ３）、かつ、第一制御信号の「ＣＰＵ番号部」に基づいて書き込み要求を発したＣＰＵを特定する（ステップＳ４）。
【００３８】
その後、メモリ管理機構２０は、書き込み先のアドレス及び書き込み要求を発したＣＰＵに関する情報をアクセス権限情報保持機構２１に入力し、書き込み要求を発したＣＰＵによる書き込み先のアドレスが示すメモリ領域に対するアクセス権限情報を取得する（ステップＳ５）。
【００３９】
例えば、アクセス権限情報保持機構２１が図３に示すようなアクセス権限情報を保持している場合であって、第二ＣＰＵ１１がメインメモリ４のアドレス番号０ｘ０１００に書き込み要求を発したとき、アクセス権限情報保持機構２１は、アクセス権限情報「ライト（書き込み）不可」をメモリ管理機構２０に対して出力する。
【００４０】
メモリ管理機構２０は、上述のように、アクセス権限情報に基づいてＣＰＵの要求（書き込み要求）を満たすことができるか否かを判定し（ステップＳ６）、判定結果を第二制御信号としてメモリコントローラ３に出力する。
【００４１】
図６は、第二制御信号の構成例を示す図であり、第二制御信号は、制御内容部、許否部、対象アドレス部及びＣＰＵ番号部から構成され、許否部以外は、第一制御信号と共通する。
【００４２】
「許否部」は、ＣＰＵ番号部によって特定されるＣＰＵによる、対象アドレス部によって特定されるアドレスに対する、制御内容部によって特定される要求内容が許可されるか否かを示す部分である。
【００４３】
メモリ管理機構２０は、ＣＰＵの要求を満たすことができると判定した場合（ステップＳ６のＹＥＳ）、メモリコントローラ３に第二制御信号を出力してＣＰＵによるメインメモリ４への書き込みを実行させる（ステップＳ７）。
【００４４】
一方、ＣＰＵの要求を満たすことができないと判定した場合（ステップＳ６のＮＯ）、メモリ管理機構２０は、メモリコントローラ３に第二制御信号を出力してＣＰＵによるメインメモリ４への書き込みを禁止し、かつ、マルチコアプロセッサ１に第三制御信号を出力しその旨をマルチプロセッサ１に通知する（ステップＳ８）。なお、第三制御信号の内容は、第二制御信号の内容と同じである。
【００４５】
また、メインコントローラ３は、マルチコアプロセッサ１から受信した、ＣＰＵ番号部、要求内容部及びデータ本体部を有するデータ信号と、アドレスデコーダ２から受信した第二制御信号とに基づいて、メインメモリ４に対するＣＰＵのアクセスを制御する。
【００４６】
以上の構成により、マルチコアシステム１００は、メモリ管理機構２０により各ＣＰＵのメインメモリ４に対するアクセスを管理するので、ソフトウェアの誤作動により別のＣＰＵが使用するデータを上書きにより破壊してシステム全体を暴走させてしまうような不具合を回避することができる。
【００４７】
また、マルチコアシステム１００は、車載システムに採用された場合には、追従走行制御システムや制動力制御システム等の制御系ソフトウェアと、ナビゲーションシステムや情報検索システム等の情報系ソフトウェアとを単一のマルチプロセッサシステム上で作動させる等、求められる品質（堅牢性や応答性等の度合いをいう。）が異なる複数のソフトウェアを単一のマルチコアシステム１００上で確実に動作させることができる。
【００４８】
また、マルチコアシステム１００は、特定のＣＰＵにはフルアクセスを許可しながら、他のＣＰＵにはメモリを破壊する心配のないリード（読み出し権限）だけを許可する等の設定が可能であり、メモリ破壊を回避しながらも、より柔軟な排他制御及び同期制御を実現させることができる。
【００４９】
また、マルチコアシステム１００は、特定のメモリ領域に対して複数のＣＰＵによるアクセスを許可できるので、一のＣＰＵが特定のメモリ領域を利用していない場合であっても、他のＣＰＵにその特定のメモリ領域を利用させることができ、メモリ領域の有効活用を図ることができる。
【実施例２】
【００５０】
図７は、本発明に係るマルチプロセッサシステムの構成例を示す図であり、マルチプロセッサシステム２００は、マルチコアプロセッサ１の代りに３つのシングルコアプロセッサ６０〜６２を備える点で図１のマルチコアシステム１００と異なり、その他の点において共通する。従って、共通する構成要素については同じ参照番号を用いて説明する。
【００５１】
マルチプロセッサ２００は、シングルコアプロセッサ６０〜６２、アドレスデコーダ２、メモリコントローラ３及びメインメモリ４から構成される。
【００５２】
３つのシングルコアプロセッサ６０〜６２のそれぞれは、破線で示す制御信号線（アドレスバス）によりアドレスデコーダ２を介してメモリコントローラ３を制御し、実線で示すデータ転送線（データバス）によりアドレスデコーダ２が制御するメモリコントローラ３を介してメインメモリ４でデータを読み書きする。
【００５３】
以上の構成により、マルチプロセッサシステム２００は、メモリ管理機構２０により各ＣＰＵのメインメモリ４に対するアクセスを管理するので、ソフトウェアの誤作動により別のＣＰＵが使用するデータを上書きにより破壊してシステム全体を暴走させてしまうような不具合を回避することができる。
【００５４】
また、マルチプロセッサシステム２００は、求められる品質（堅牢性や応答性等の度合いをいう。）が異なる複数のソフトウェアを単一のマルチプロセッサシステム２００上で確実に動作させることができる。
【００５５】
また、マルチプロセッサシステム２００は、特定のＣＰＵにはフルアクセスを許可しながら、他のＣＰＵにはメモリを破壊する心配のないリード（読み出し権限）だけを許可する等の設定が可能であり、メモリ破壊を回避しながらも、より柔軟な排他制御及び同期制御を実現することができる。
【００５６】
また、マルチプロセッサシステム２００は、特定のメモリ領域に対して複数のＣＰＵによるアクセスを許可できるので、一のＣＰＵが特定のメモリ領域を利用していない場合であっても、他のＣＰＵにその特定のメモリ領域を利用させることができ、メモリ領域の有効活用を図ることができる。
【００５７】
また、図１のマルチコアシステム１００は、メモリ管理機構２０が要求発信元のＣＰＵを特定できるように「ＣＰＵ番号部」を第一制御信号の一部に包含するが、マルチプロセッサシステム２００は、アドレスデコーダ２とシングルコアプロセッサ６０〜６２のそれぞれとの間に専用の制御信号線を有するため、「ＣＰＵ番号部」を第一制御信号に包含させる必要がなく、同様に、メモリコントローラ３とシングルコアプロセッサ６０〜６２のそれぞれとの間に専用のデータ信号線を有するため、「ＣＰＵ番号部」をデータ信号に包含させる必要がなく、第一制御信号及びデータ信号を簡素化することができる。
【００５８】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【００５９】
例えば、上述の実施例では、単一のマルチコアプロセッサ１を用いたマルチコアシステム１００及び複数のシングルコアプロセッサ６０〜６２を用いたマルチプロセッサシステム２００について説明するが、複数のマルチコアプロセッサ１を備えたシステムにメモリ管理機構２０を適用するようにしてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明に係るマルチコアシステムの構成例を示す図である。
【図２】メインメモリの構成例を示す図である。
【図３】アクセス権限情報の設定例を示す表である。
【図４】メモリ管理機構がマルチコアプロセッサによるメインメモリへのデータ書き込みの可否を判定する処理の流れを示すフローチャートである。
【図５】第一制御信号の構成例を示す図である。
【図６】第二制御信号の構成例を示す図である。
【図７】本発明に係るマルチプロセッサシステムの構成例を示す図である。
【符号の説明】
【００６１】
１      マルチコアプロセッサ
２      アドレスデコーダ
３      メモリコントローラ
４      メインメモリ
１０〜１３  ＣＰＵ
２０    メモリ管理機構
２１    アクセス権限情報保持機構
４０〜４３  メモリ領域
５０    アドレス欄
５１    アクセス権限情報欄
６０〜６２  シングルコアプロセッサ
１００  マルチコアシステム
２００  マルチプロセッサシステム
【図１】
2008123031.tif 000003
【図２】
2008123031.tif 000004
【図３】
2008123031.tif 000005
【図４】
2008123031.tif 000006
【図５】
2008123031.tif 000007
【図６】
2008123031.tif 000008
【図７】
2008123031.tif 000009