説明

共有メモリ管理装置及び該装置を備えたマルチプロセッサシステム

【課題】マルチプロセッサシステムにおける共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置を備えたマルチプロセッサシステムを提供すること。
【解決手段】複数のプロセッサ10〜13が共有するメモリ4を備えるマルチプロセッサシステム100は、メモリ4の所定領域40〜43に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段21とアクセス権限に関する情報に基づいて各プロセッサによるメモリ4へのアクセスを管理するメモリ管理手段20とを備える。また、メモリ4の所定領域は、複数のプロセッサからのアクセスを許容する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサシステムにおける共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムに関し、特に、共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムに関する。
【背景技術】
【0002】
近年、コンピュータシステムの性能及び信頼性を向上させるため、複数のプロセッサがメインメモリを共有する密結合マルチプロセッサシステムがコンピュータシステムの構築に採用されている。
【0003】
かかる密結合マルチプロセッサシステムの中には、プロセッサ及び共有メモリに汎用品を使用したためにプロセッサ又は共有メモリに専用の排他制御装置を備えることができなくなったが、複数のプロセッサとインタコネクションとの間に排他制御バッファを備え、そのバッファのエントリに共有メモリ内のブロック位置を示すアドレスとそのブロックの排他的占有状態を示すフラグ(ビット)とを記憶させるようにし、汎用品を利用しながらもメインメモリの排他制御を可能としたマルチプロセッサシステムが知られている(例えば、特許文献1参照。)。
【特許文献1】特開2003−173326号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のマルチプロセッサシステムは、フラグを用いて排他制御を行っているので、フラグ処理においてエラーが発生した場合に共有メモリの内容を破壊させてしまうおそれがあり、信頼性の点で問題がある。
【0005】
上述の点に鑑み、本発明は、マルチプロセッサシステムにおける共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述の目的を達成するために、第一の発明に係るマルチプロセッサシステムは、複数のプロセッサにより共有されるメモリを備えるマルチプロセッサシステムであって、前記メモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、を備える。
【0007】
また、第二の発明は、第一の発明に係るマルチプロセッサシステムであって、前記メモリの所定領域は、複数のプロセッサからのアクセスを許容することを特徴とする。
【0008】
また、第三の発明は、第一又は第二の発明に係るマルチプロセッサシステムであって、前記アクセス権限情報保持手段は、前記メモリの所定領域に対する各プロセッサのアクセス権限をアクセス内容毎に設定することを特徴とする。
【0009】
また、第四の発明に係る共有メモリ管理装置は、複数のプロセッサにより共有されるメモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、を備える。
【発明の効果】
【0010】
上述の手段により、本発明は、マルチプロセッサシステムにおける共有メモリ上のデータを確実に保護しながら共有メモリの効率的な利用を可能とする共有メモリ管理装置及び該装置を備えたマルチプロセッサシステムを提供することができる。
【発明を実施するための最良の形態】
【0011】
以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
【実施例1】
【0012】
図1は、本発明に係るマルチコアシステムの構成例を示す図である。なお、「マルチコア」とは、マイクロプロセッサの中で、命令発行器や演算器などの集合であり独立した部品として動作するプロセッサコアが、一個のパッケージに二つ以上集積されているプロセッサのことをいう。
【0013】
また、マルチコアシステムは、マルチプロセッサシステムの一形態であり、それぞれのプロセッサコアを独立させることで、一個のプロセッサコアに対する処理負荷を分散させ、システム全体の性能を向上させることができる。
【0014】
本発明に係るマルチコアシステム100は、マルチコアプロセッサ1、アドレスレコーダ2、メモリコントローラ3及びメインメモリ4から構成される。
【0015】
マルチコアプロセッサ1は、第一CPU(Central Processing Unit)10、第二CPU11、第三CPU12及び第四CPU13の四つのCPUを有し、破線で示す制御信号線(アドレスバス)によりアドレスデコーダ2を介してメモリコントローラ3を制御し、実線で示すデータ転送線(データバス)によりアドレスデコーダ2が制御するメモリコントローラ3を介してメインメモリ4からデータを読み出したり、メインメモリ4にデータを書き込んだりする。
【0016】
アドレスデコーダ2は、CPU10〜13がメインメモリ4からデータを読み出したり、メインメモリ4にデータを書き込んだりする場合にメインメモリ4におけるアドレスを指定するための電子回路であり、アドレスを保持するためのレジスタ、メモリ管理機構20及びアクセス権限情報保持機構21を実装し、マルチコアプロセッサ1が出力する第一制御信号に基づいてアドレスを取得し、取得したアドレスを第二制御信号に含めてメモリコントローラ3に出力する。
【0017】
メモリコントローラ3は、マルチコアプロセッサ1によるメインメモリ4からのデータの読み出しやメインメモリ4へのデータの書き込み等、マルチコアプロセッサ1とメインメモリ4との間のインターフェースを統括する電子回路であり、例えば、アドレスデコーダ2が出力する第二制御信号(データのアドレス情報を含む。)を受けて、マルチコアプロセッサ1とメインメモリ4との間のデータのやりとりを制御する。
【0018】
メインメモリ4は、第一CPU10〜第四CPU13によって共有される主記憶装置であり、例えば、半導体素子を利用して電気的にデータを記憶する揮発性記憶装置である。
【0019】
メモリ管理機構20は、複数のCPU10〜13によるメインメモリ4へのアクセスをCPU毎に管理するための電子回路であり、例えば、マルチコアプロセッサ1が出力する第一制御信号を受けて、メインメモリ4の所定領域に対するCPU10〜13それぞれのアクセス権限に関する情報(以下、「アクセス権限情報」という。)を取得し、取得したアクセス権限情報に従ってCPU10〜13がデータ処理を実現できるよう、メモリコントローラ3に第二制御信号を出力する。
【0020】
アクセス権限情報保持機構21は、メインメモリ4の所定領域に対するCPU10〜13それぞれのアクセス権限情報を保持するための電子回路であり、例えば、CPU番号(CPUを特定するための識別番号をいう。)とメインメモリ4におけるアドレスとを入力するとCPU番号が示すCPUのアクセス権限を出力するよう構成される。
【0021】
アクセス権限情報保持機構21は、FPGA(Field Programmable Gate Array)によりプログラマブルとすることで、保持するアクセス権限情報の設定を変更できるようにしてもよい。また、アクセス権限情報保持機構21は、不揮発性レジスタで構成されてもよい。
【0022】
ここで、図2は、メインメモリ4の構成例を示す図であり、メインメモリ4は、例えば、アドレス番地「0x0000〜0x00FF」の領域40、アドレス番地「0x0100〜0x01FF」の領域41、アドレス番地「0x0200〜0x02FF」の領域42、及び、アドレス番地「0x1000〜0xFFFF」の領域43から構成される。
【0023】
また、図3は、アクセス権限情報の設定例を示す表であり、アドレス欄50及びアクセス権限情報欄51から構成される。
【0024】
アドレス欄50は、メインメモリ4のメモリ空間における領域を指定するアドレス範囲から構成される。
【0025】
アクセス権限情報欄51は、アクセス権限の種類欄、第一CPU欄、第二CPU欄、第三CPU欄及び第四CPU欄を有し、アクセス権限の種類と各CPUに認められたアクセス権限との関係を示す。
【0026】
「アクセス権限の種類」には、例えば、「リード」、「ライト」、「バースト転送」、「コード転送」及び「データ転送」があり、「リード」とは、読み込み権限、「ライト」とは、書き込み権限を意味する。
【0027】
また、「バースト転送」とは、1つのアドレス情報をもとにして複数のデータを連続して転送する権限をいい、「コード転送」とは、CPUがメモリから命令文を取り出し(フェッチし)、レジスタに転送する権限をいい、「データ転送」とは、CPUがメモリからデータを取り出し(フェッチし)、レジスタに転送する権限をいう。
【0028】
図3の表は、領域40に対して、全てのCPUにフルアクセス(アクセス権限の種類全てを許可することを意味する。)の権限を付与していることを示す。
【0029】
また、図3の表は、領域41に対して、第一CPU10にフルアクセスの権限を付与し、他のCPU11〜13には、「コード転送」の権限だけを付与していることを示す。
【0030】
さらに、図3の表は、領域42に対して、第一CPU10にフルアクセスの権限を付与し、他のCPU11〜13によるアクセスを禁止していることを示し、領域43に対して、第一CPU10及び第二CPU11にフルアクセスの権限を付与し、第三CPU12及び第四CPU13によるアクセスを禁止していることを示す。
【0031】
次に、メモリ管理機構20がマルチコアプロセッサ1によるメインメモリ4へのデータ書き込みの可否を判定する処理について説明する。
【0032】
図4は、判定処理の流れを示すフローチャートであり、最初に、メモリ管理機構20は、マルチコアプロセッサ1により第一制御信号が送信されるのを監視している(ステップS1)。
【0033】
図5は、第一制御信号の構成例を示す図であり、第一制御信号は、制御内容部、デバイス番号部、対象アドレス部及びCPU番号部から構成される。
【0034】
「制御内容部」は、リード、ライト等、要求する制御の内容を示す部分であり、「デバイス番号部」は、要求の対象となるデバイス(ハードディスク等をいう。)を特定するための識別番号を示す部分である。また、「対象アドレス部」は、要求の対象となるデバイスにおけるアドレスを示す部分であり、「CPU番号部」は、要求を発したCPUを特定するための識別番号を示す。
【0035】
メモリ管理機構20は、第一制御信号を受信するまでそのまま待機し(ステップS1のNO)、第一制御信号(例えば、書き込み要求をいう。)を受信した場合(ステップS1のYES)、第一制御信号の「デバイス番号部」に基づいて書き込み先がメインメモリ4であるか否かを判定する(ステップS2)。
【0036】
書き込み先が外部記憶装置等の他のデバイスであると判定した場合(ステップS2のNO)、メモリ管理機構20は、書き込み処理を外部記憶装置ドライバ等の他の管理機構に担当させ、再度、マルチコアプロセッサ1により第一制御信号が送信されるのを監視する。
【0037】
書き込み先がメインメモリ4であると判定した場合(ステップS2のYES)、メモリ管理機構20は、第一制御信号の「対象アドレス部」に基づいて書き込み先のアドレスを取得し(ステップS3)、かつ、第一制御信号の「CPU番号部」に基づいて書き込み要求を発したCPUを特定する(ステップS4)。
【0038】
その後、メモリ管理機構20は、書き込み先のアドレス及び書き込み要求を発したCPUに関する情報をアクセス権限情報保持機構21に入力し、書き込み要求を発したCPUによる書き込み先のアドレスが示すメモリ領域に対するアクセス権限情報を取得する(ステップS5)。
【0039】
例えば、アクセス権限情報保持機構21が図3に示すようなアクセス権限情報を保持している場合であって、第二CPU11がメインメモリ4のアドレス番号0x0100に書き込み要求を発したとき、アクセス権限情報保持機構21は、アクセス権限情報「ライト(書き込み)不可」をメモリ管理機構20に対して出力する。
【0040】
メモリ管理機構20は、上述のように、アクセス権限情報に基づいてCPUの要求(書き込み要求)を満たすことができるか否かを判定し(ステップS6)、判定結果を第二制御信号としてメモリコントローラ3に出力する。
【0041】
図6は、第二制御信号の構成例を示す図であり、第二制御信号は、制御内容部、許否部、対象アドレス部及びCPU番号部から構成され、許否部以外は、第一制御信号と共通する。
【0042】
「許否部」は、CPU番号部によって特定されるCPUによる、対象アドレス部によって特定されるアドレスに対する、制御内容部によって特定される要求内容が許可されるか否かを示す部分である。
【0043】
メモリ管理機構20は、CPUの要求を満たすことができると判定した場合(ステップS6のYES)、メモリコントローラ3に第二制御信号を出力してCPUによるメインメモリ4への書き込みを実行させる(ステップS7)。
【0044】
一方、CPUの要求を満たすことができないと判定した場合(ステップS6のNO)、メモリ管理機構20は、メモリコントローラ3に第二制御信号を出力してCPUによるメインメモリ4への書き込みを禁止し、かつ、マルチコアプロセッサ1に第三制御信号を出力しその旨をマルチプロセッサ1に通知する(ステップS8)。なお、第三制御信号の内容は、第二制御信号の内容と同じである。
【0045】
また、メインコントローラ3は、マルチコアプロセッサ1から受信した、CPU番号部、要求内容部及びデータ本体部を有するデータ信号と、アドレスデコーダ2から受信した第二制御信号とに基づいて、メインメモリ4に対するCPUのアクセスを制御する。
【0046】
以上の構成により、マルチコアシステム100は、メモリ管理機構20により各CPUのメインメモリ4に対するアクセスを管理するので、ソフトウェアの誤作動により別のCPUが使用するデータを上書きにより破壊してシステム全体を暴走させてしまうような不具合を回避することができる。
【0047】
また、マルチコアシステム100は、車載システムに採用された場合には、追従走行制御システムや制動力制御システム等の制御系ソフトウェアと、ナビゲーションシステムや情報検索システム等の情報系ソフトウェアとを単一のマルチプロセッサシステム上で作動させる等、求められる品質(堅牢性や応答性等の度合いをいう。)が異なる複数のソフトウェアを単一のマルチコアシステム100上で確実に動作させることができる。
【0048】
また、マルチコアシステム100は、特定のCPUにはフルアクセスを許可しながら、他のCPUにはメモリを破壊する心配のないリード(読み出し権限)だけを許可する等の設定が可能であり、メモリ破壊を回避しながらも、より柔軟な排他制御及び同期制御を実現させることができる。
【0049】
また、マルチコアシステム100は、特定のメモリ領域に対して複数のCPUによるアクセスを許可できるので、一のCPUが特定のメモリ領域を利用していない場合であっても、他のCPUにその特定のメモリ領域を利用させることができ、メモリ領域の有効活用を図ることができる。
【実施例2】
【0050】
図7は、本発明に係るマルチプロセッサシステムの構成例を示す図であり、マルチプロセッサシステム200は、マルチコアプロセッサ1の代りに3つのシングルコアプロセッサ60〜62を備える点で図1のマルチコアシステム100と異なり、その他の点において共通する。従って、共通する構成要素については同じ参照番号を用いて説明する。
【0051】
マルチプロセッサ200は、シングルコアプロセッサ60〜62、アドレスデコーダ2、メモリコントローラ3及びメインメモリ4から構成される。
【0052】
3つのシングルコアプロセッサ60〜62のそれぞれは、破線で示す制御信号線(アドレスバス)によりアドレスデコーダ2を介してメモリコントローラ3を制御し、実線で示すデータ転送線(データバス)によりアドレスデコーダ2が制御するメモリコントローラ3を介してメインメモリ4でデータを読み書きする。
【0053】
以上の構成により、マルチプロセッサシステム200は、メモリ管理機構20により各CPUのメインメモリ4に対するアクセスを管理するので、ソフトウェアの誤作動により別のCPUが使用するデータを上書きにより破壊してシステム全体を暴走させてしまうような不具合を回避することができる。
【0054】
また、マルチプロセッサシステム200は、求められる品質(堅牢性や応答性等の度合いをいう。)が異なる複数のソフトウェアを単一のマルチプロセッサシステム200上で確実に動作させることができる。
【0055】
また、マルチプロセッサシステム200は、特定のCPUにはフルアクセスを許可しながら、他のCPUにはメモリを破壊する心配のないリード(読み出し権限)だけを許可する等の設定が可能であり、メモリ破壊を回避しながらも、より柔軟な排他制御及び同期制御を実現することができる。
【0056】
また、マルチプロセッサシステム200は、特定のメモリ領域に対して複数のCPUによるアクセスを許可できるので、一のCPUが特定のメモリ領域を利用していない場合であっても、他のCPUにその特定のメモリ領域を利用させることができ、メモリ領域の有効活用を図ることができる。
【0057】
また、図1のマルチコアシステム100は、メモリ管理機構20が要求発信元のCPUを特定できるように「CPU番号部」を第一制御信号の一部に包含するが、マルチプロセッサシステム200は、アドレスデコーダ2とシングルコアプロセッサ60〜62のそれぞれとの間に専用の制御信号線を有するため、「CPU番号部」を第一制御信号に包含させる必要がなく、同様に、メモリコントローラ3とシングルコアプロセッサ60〜62のそれぞれとの間に専用のデータ信号線を有するため、「CPU番号部」をデータ信号に包含させる必要がなく、第一制御信号及びデータ信号を簡素化することができる。
【0058】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【0059】
例えば、上述の実施例では、単一のマルチコアプロセッサ1を用いたマルチコアシステム100及び複数のシングルコアプロセッサ60〜62を用いたマルチプロセッサシステム200について説明するが、複数のマルチコアプロセッサ1を備えたシステムにメモリ管理機構20を適用するようにしてもよい。
【図面の簡単な説明】
【0060】
【図1】本発明に係るマルチコアシステムの構成例を示す図である。
【図2】メインメモリの構成例を示す図である。
【図3】アクセス権限情報の設定例を示す表である。
【図4】メモリ管理機構がマルチコアプロセッサによるメインメモリへのデータ書き込みの可否を判定する処理の流れを示すフローチャートである。
【図5】第一制御信号の構成例を示す図である。
【図6】第二制御信号の構成例を示す図である。
【図7】本発明に係るマルチプロセッサシステムの構成例を示す図である。
【符号の説明】
【0061】
1 マルチコアプロセッサ
2 アドレスデコーダ
3 メモリコントローラ
4 メインメモリ
10〜13 CPU
20 メモリ管理機構
21 アクセス権限情報保持機構
40〜43 メモリ領域
50 アドレス欄
51 アクセス権限情報欄
60〜62 シングルコアプロセッサ
100 マルチコアシステム
200 マルチプロセッサシステム

【特許請求の範囲】
【請求項1】
複数のプロセッサにより共有されるメモリを備えるマルチプロセッサシステムであって、
前記メモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、
前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、
を備えることを特徴とするマルチプロセッサシステム。
【請求項2】
前記メモリの所定領域は、複数のプロセッサからのアクセスを許容する、
ことを特徴とする請求項1に記載のマルチプロセッサシステム。
【請求項3】
前記アクセス権限情報保持手段は、前記メモリの所定領域に対する各プロセッサのアクセス権限をアクセス内容毎に設定する、
ことを特徴とする請求項1又は2に記載のマルチプロセッサシステム。
【請求項4】
複数のプロセッサにより共有されるメモリの所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、
前記アクセス権限に関する情報に基づいて各プロセッサによる前記メモリへのアクセスを管理するメモリ管理手段と、
を備えることを特徴とする共有メモリ管理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−123031(P2008−123031A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2006−302920(P2006−302920)
【出願日】平成18年11月8日(2006.11.8)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】