(57)【要約】【課題】接続されるバスマスタの個数によらず回路規模を略一定に保つとともに、バスリクエストの待ち時間を格段に短縮するメモリコントローラを提供する。【解決手段】バスマスタ３−１〜３−４からの各バスリクエストから１つを選択するセレクタ１５−１，１５−２，１６と、各セレクタで選択されるバスリクエストが重複しないように切換制御するアービタ１７と、セレクタ１５−１，１５−２に接続されて、バスマスタの個数分のアクセスデータ単位長の記憶容量をそれぞれ有するバッファメモリ１４−１，１４−２と、バッファメモリ１４−１，１４−２の各出力とセレクタ１６の出力とから、１つの出力を選択するためのセレクタ１２と、セレクタ１６からセレクタ１２に供給されるバスリクエストの出力優先順位を最も低くしてセレクタ１２から１つの出力を選択するアービタ１３とを具備した。【選択図】図２
2007172112.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタがそれぞれ接続されたデータバスと共有メモリとを中継接続して、前記複数のバスマスタから前記共有メモリへのアクセス系統をアービトレーション制御するメモリコントローラにおいて、
前記複数のバスマスタそれぞれからの前記アクセス系統からいずれか１系統を選択するための３つの第１セレクタと、
前記各第１セレクタで選択されるアクセス系統が重複しないように入力を切換制御するための第１アービタと、
前記３つの第１セレクタのうち２つの第１セレクタそれぞれに接続されて、前記複数分のアクセスデータ単位長の記憶容量をそれぞれ有する２つのバッファメモリと、
これら２つのバッファメモリの各出力といずれのバッファメモリも接続されていない１つの前記第１セレクタの出力とから、１つの出力を選択するための前記各バッファメモリの出力段に設けられた第２セレクタと、
前記１つの第１セレクタから前記第２セレクタに供給されるアクセス系統の出力優先順位を最も低くして前記第２セレクタから１つの出力を選択する第２アービタとを具備し、
前記複数のバスマスタからのアクセス系統が競合した場合に、前記第１及び第２のアービタが、前記２つのバッファメモリを介さないダイレクトパスと前記２つのバッファメモリを介したバッファドパスとのうち、前記ダイレクトパスを前記バッファドパスよりも優先順位を高くして各アクセス系統をアービトレーション制御するようにしたことを特徴としたメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタが共有メモリにアクセスする際のバス・アービトレーションを制御するメモリコントローラに係り、特にバスマスタからのライトアクセスにおいてバスリクエストの待ち時間を短縮することのできるメモリコントローラに関する。
【背景技術】
【０００２】
複数のプロセッサ等のバスマスタが共通のデータバスを介して共有メモリに接続された共有メモリシステムにおいては、一のバスマスタが共有メモリにアクセスする際に、他のバスマスタによるアクセスとの競合によるデータ・コンフリクトを避けるよう各バスマスタを制御する必要がある。このようなバス・アービトレーション制御を行う共有メモリシステムが特許文献１に記載されている。この特許文献１には従来から知られている共有メモリシステムについて記載されており（特に、図８を参照）、又共有メモリをより効率良くアクセス可能なように改良された共有メモリ制御装置について記載されている。
【特許文献１】特開平１１−３９２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１の図８に記載されたような共有メモリシステムにおいては、複数のバスマスタから一斉にアクセス要求が出力されると、ワーストケースにおいて（バスマスタの個数−１）回分のバス使用権の取得が待たされることとなる。この様子のタイミングの例を図６のタイミングチャートに示す。同図は、特許文献１の図８に記載されたような構成の共有メモリシステムであって、４つのバスマスタＢＭ１〜ＢＭ４が接続された場合について、これら４つのバスマスタが同時に共有メモリにライトアクセスを実行したときのバス・アービトレーションの例を示したタイミングチャートである。
【０００４】
前提として、各バスマスタのバス使用権の優先順位はＢＭ１＞ＢＭ２＞ＢＭ３＞ＢＭ４（ＢＭ１の優先順位が一番高い。）であるとし、各バスマスタからのライトデータは同じデータ長であるとする。バスマスタから共有メモリへのライトアクセスの基本的なシーケンスは次のとおりである。まず、バスマスタはデータバスを占有して使用するためにバス使用要求（バスリクエスト）をアービタに発行する。複数のバスマスタから同時にバスリクエストが出力された場合は、アービタは供給された各バスリクエストを調停し、そのうち１つのバスマスタに対してデータバスの使用を許可することを示すバス使用許可（バスアクノリッジ）を送信する。このバスアクノリッジを受信したバスマスタは、バス使用権を獲得した唯一のバスマスタとしてバスを占有してライトアクセスを実行する。
【０００５】
このような基本シーケンスで動作する共有メモリシステムにおいて、全てのバスマスタＢＭ１〜ＢＭ４が同時にバスリクエストを発行した場合、各バスマスタのバスリクエスト及びアービタからのバスアクノリッジのタイミングは図６のタイミングチャートのようになる。同図に示したように、４つのバスマスタの中で一番優先順位の低いＢＭ４に着目すれば、３回分のメモリアクセスが待たされていることが分かる。そして、同図は４つのバスマスタからのライトアクセスに続くＢＭ１の次のライトアクセスがアクセス開始タイミング６１から開始されていることを示している。
【０００６】
上述したようなバス・アービトレーション動作の説明から分かるように、従来の共有メモリシステムにおいては、バス競合が発生してアービタがバス使用権を調停している間、バス使用権の取得を待たされるバスマスタは、ずっとバスアクノリッジを待ち続けることになるために、非常にアクセス効率が悪いという問題があった。
【０００７】
また、従来の構成においては、待ち時間分だけデータを保持するバッファをバスマスタ側に備える必要があり、しかも１つのバスリクエストしか保持することができないため、バスマスタ側の処理負荷が大きいという問題があった。
【０００８】
さらに、特許文献１に記載された共有メモリ制御装置には、この装置の構成部である共有メモリコントローラ１０３の中に、バスマスタＢＭ１〜ＢＭ３から共有メモリ１０４へのライトアクセスに際してライトデータが格納されるライトバッファユニット（ＷＢＦＵ）７１１が示されている。しかし、この構成は各バスマスタが最低限必要とするメモリアクセスバンド幅を維持して共有メモリ１０４を効率良く使用するために必要とするものであり、この機能を達成する共有メモリ制御装置は複雑な構成となる欠点があった。
【０００９】
そこで、本発明は上記問題に鑑みてなされたものであり、その目的は、複数のバスマスタからのアクセスを調停するメモリコントローラであって、バスマスタの数によって回路構成が複雑にならずに、且つバスマスタ側に無駄なバスリクエスト保持時間を与えないバス・アービトレーションを可能とするメモリコントローラを提供することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、請求項１に記載の発明は、
複数のバスマスタ（３−１〜３−４）がそれぞれ接続されたデータバス（１）と共有メモリ（４）とを中継接続して、前記複数のバスマスタから前記共有メモリへのアクセス系統をアービトレーション制御するメモリコントローラにおいて、
前記複数のバスマスタそれぞれからの前記アクセス系統からいずれか１系統を選択するための３つの第１セレクタ（１５−１，１５−２，１６）と、
前記各第１セレクタで選択されるアクセス系統が重複しないように入力を切換制御するための第１アービタ（１７）と、
前記３つの第１セレクタのうち２つの第１セレクタ（１５−１，１５−２）それぞれに接続されて、前記複数分のアクセスデータ単位長の記憶容量をそれぞれ有する２つのバッファメモリ（１４−１，１４−２）と、
これら２つのバッファメモリの各出力といずれのバッファメモリも接続されていない１つの前記第１セレクタ（１６）の出力とから、１つの出力を選択するための前記各バッファメモリの出力段に設けられた第２セレクタ（１２）と、
前記１つの第１セレクタから前記第２セレクタに供給されるアクセス系統の出力優先順位を最も低くして前記第２セレクタから１つの出力を選択する第２アービタ（１３）とを具備し、
前記複数のバスマスタからのアクセス系統が競合した場合に、前記第１及び第２のアービタが、前記２つのバッファメモリを介さないダイレクトパスと前記２つのバッファメモリを介したバッファドパスとのうち、前記ダイレクトパスを前記バッファドパスよりも優先順位を高くして各アクセス系統をアービトレーション制御するようにしたことを特徴としたメモリコントローラ
を提供するものである。
【発明の効果】
【００１１】
本発明に係るメモリコントローラによれば、複数のバスマスタから共有メモリへのライトアクセスに際してアクセスの競合が発生した場合に、各ライトアクセスは、メモリコントローラ内部の２つのバッファが一旦ライトデータを保持してアービトレーションされるため、従来のように優先順位の低いバスマスタのバスリクエストがバスアクノリッジを待ち続けることがなく、ライトアクセスの効率が格段に良くなる。
【００１２】
また、本発明に係るメモリコントローラは、接続されるバスマスタの数によらずメモリコントローラ内部のバッファ及びセレクタの個数を固定とし、並びにアービタの回路を略一定規模に保つことが可能であるため、バスマスタの接続数が増えることによるシステム規模の拡大がされたとしても、メモリコントローラ自体の回路規模の増大を回避することができるとともに、アービタのアービトレーション制御を複雑化させないことが可能である。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。図１は本発明の一実施形態を説明するために示した共有メモリシステムの概略ブロック図である。同図に示すように、共有メモリシステムは、データバス１を介してメモリコントローラ２と４つのバスマスタ３−１〜３−４とがそれぞれ接続され、そしてメモリコントローラ２にはこれら全てのバスマスタによって共有使用される共有メモリ４が接続された構成である。
【００１４】
上記の構成において、データバス１は、バスマスタ３−１〜３−４のうちいずれか１つのバスマスタとメモリコントローラ２を介した共有メモリ４との間でデータが送受信されるデータ線であり、バスマスタ３−１〜３−４とメモリコントローラ２との共通端子が必要なバス幅に応じて接続されている。
【００１５】
メモリコントローラ２は、本発明に係る部分であり、バスマスタ３−１〜３−４のうちいずれか１つのバスマスタが共有メモリ４へのアクセス権を取得してデータバス１を占有使用するよう制御する機能を有している。
【００１６】
バスマスタ３−１〜３−４は、それぞれがデータバス１とメモリコントローラ２とを介して共有メモリ４とデータを送受するデバイスであり、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）デバイス等を指すものである。
【００１７】
共有メモリ４は、バスマスタ３−１〜３−４のうちいずれか１つのバスマスタによってアクセスされる全バスマスタ共有のメモリであり、ＤＲＡＭやＳＲＡＭ等のメモリの種類には限定されない。
【００１８】
なお、本実施形態では、共有メモリシステムは４つのバスマスタを使用した例について説明するが、この数は４に限定されず２つ以上のバスマスタが接続されるものであってよい。また、データバス１は、バスマスタ３−１〜３−４のインターフェース（Ｉ／Ｆ）及びメモリコントローラ２の内部構成によりデータラインとアドレスラインとがマルチプレックスされたアドレス／データバスであってもよい。
【００１９】
次に、メモリコントローラ２の内部構成について、図２の概略ブロック図を参照して説明する。メモリコントローラ２は、４つのバスマスタ３−１〜３−４から共有メモリ４へのデータ送信を中継するための内部パスとして、後述するバッファ１４−１，１４−２をそれぞれ介する２つのデータパス（バッファドパス）と、バッファ１４−１，１４−２のいずれも介さない１つのデータパス（ダイレクトパス）とを有する。
【００２０】
同図に示すように、メモリコントローラ２は、共有メモリ４に対する書き込み等のアクセスを直接制御するためのメモリアクセス制御部１１と、後述するセレクタ１６からのダイレクトパス及び２つのバッファ１４−１，１４−２それぞれからのバッファドパスのうち、いずれか１つのパスを切換えるためのセレクタ１２（第２セレクタ）と、ダイレクトパス及び２つのバッファドパスのうちいずれか１つのパスを選択するためのアービタ１３（第２アービタ）と、バスマスタ３−１〜３−４のうちいずれか３つ以内のバスマスタがそれぞれライトアクセスするデータを一時記憶するためのバッファ１４−１，１４−２（バッファメモリ）と、バスマスタ３−１〜３−４のうち前記いずれか３つ以内のバスマスタからのアクセスをバッファ１４−１，１４−２に接続させるためのセレクタ１５−１，１５−２（第１セレクタ）と、バスマスタ３−１〜３−４のうち前記３つのバスマスタを除いた残り１つのバスマスタをバッファ１４−１，１４−２のいずれのバッファをも介さずにセレクタ１２に接続するためのセレクタ１６（第１セレクタ）と、セレクタ１５−１，１５−２及びセレクタ１６のそれぞれについて、バスマスタ３−１〜３−４のうちいずれか１つをアービトレーションするためのアービタ１７（第１アービタ）とを備えている。
【００２１】
セレクタ１５−１，１５−２は、バッファ１４−１，１４−２にそれぞれ対応して設けられたものであるが、これらの各セレクタはバスマスタ３−１〜３−４の中からいずれか１つのバスマスタを選択可能なように構成されている。また、セレクタ１６はダイレクトパスに対応したセレクタであるが、これもバスマスタ３−１〜３−４の中からいずれか１つのバスマスタを選択可能なように構成されている。
【００２２】
以上の構成によるメモリコントローラ２において、アービタ１３は、バッファドパスをダイレクトパスよりも優先して制御するものであり、且つ２つのバッファドパスについては、説明の便宜上バッファ１４−１をバッファ１４−２よりも優先度を高く制御するものとする。また、アービタ１７は、セレクタ１６をセレクタ１５−１，１５−２よりも優先して制御するものであり、且つセレクタ１５−１をセレクタ１５−２よりも優先度を高く制御するものとする。
【００２３】
また、バッファ１４−１，１４−２それぞれは、少なくともバスマスタの単一ライトデータをバスマスタの個数分合計したデータ容量を有している。具体的には、例えばバスマスタ３−１〜３−４それぞれの単一ライトデータ長が３２ビット（４バイト）である場合は、バッファ１４−１，１４−２それぞれは、少なくとも４×４バイト＝１６バイトの容量を有する。
【００２４】
以上説明したように、メモリコントローラ２が備えるバッファとこのバッファに接続されるセレクタとの数は、データバス１に接続されるバスマスタの数によらず各２つ固定である。
【００２５】
次に、本実施形態における共有メモリシステムの処理動作について説明する。バスマスタ３−１〜３−４のうちいずれか１つのバスマスタとメモリコントローラ２との基本的なアクセスシーケンスは、前述したバスリクエスト及びバスアクノリッジによって実現されるものである。図３は、バスマスタ３−１〜３−４のうちいずれか１つのバスマスタがメモリコントローラ２に対してバスリクエストを発行した場合について、メモリコントローラ２の動作を説明するためのフローチャートである。
【００２６】
まず、バスマスタ３−１〜３−４のいずれか１つからライトアクセスのためのバスリクエストが発行される（ステップＳ３０１）。次に、メモリコントローラ２のアービタ１７は、バッファ１４−１，１４−２のいずれかに未処理のライトデータが格納されているか否かを判定する（ステップＳ３０２）。そして、いずれかのバッファに未処理のライトデータが格納されていた場合（ステップＳ３０２  Ｙｅｓ）は、バッファドパスによる処理をダイレクトパスによる処理よりも優先させるべくバッファドパスの処理（ステップＳ３０７以降）に移行する。
【００２７】
バッファ１４−１，１４−２のいずれにも未処理のライトデータが格納されてない場合（ステップＳ３０２  Ｎｏ）は、アービタ１７は、他のバスマスタからのバスリクエストが発行されているか否かを判定する（ステップＳ３０３）。
【００２８】
そして、これら他のバスマスタのいずれからもバスリクエストが発行されていない場合（ステップＳ３０３  Ｎｏ）は、前記バスリクエストを発行したバスマスタからのライトデータが、ダイレクトパスによって共有メモリ４に書き込まれる（ステップＳ３０４）。
【００２９】
より具体的には、バスリクエストを発行したバスマスタと供給メモリ４とのアクセス経路を確立するために、アービタ１７は、このバスマスタからのライトデータをダイレクトパスによって共有メモリ４に書き込み実行させるためにセレクタ１６を選択する。そして、前記バスマスタからセレクタ１６を通してセレクタ１２に供給されたバスリクエストは、アービタ１３によるアービトレーション（詳細は後述する。）によってメモリアクセス制御部１１に供給され、メモリアクセス制御部１１で共有メモリ４の書込み要求信号が生成されて供給メモリ４に出力される。このようにして、バスリクエストを発行したバスマスタと共有メモリ４との間にライトアクセス経路が確立されたのち、このバスマスタから供給メモリ４に所定のアドレスを指定してライトデータが転送される。
【００３０】
前記他のバスマスタのいずれかからバスリクエストが発行された場合（ステップＳ３０３  Ｙｅｓ）は、アービタ１７によるアービトレーションが実行される（ステップＳ３０５）。このアービトレーションでは、バスリクエストが発行された全てのバスマスタのいずれかについて、ダイレクトパスによるライトアクセスとバッファドパスによるライトアクセスとが予め設定された各バスマスタの優先順位に基づいて設定される。すなわち、バスリクエストを発行している各バスマスタのうち最も優先順位の高いバスマスタについてはダイレクトパスが設定され、それ以外のバスマスタについてバッファドパスが設定される。
【００３１】
そして、アービタ１７のアービトレーションによってダイレクトパスによるアクセス許可が与えられた場合（ステップＳ３０６  Ｙｅｓ）は、前述したステップＳ３０４によって共有メモリ４へのライトアクセスを実行する）。また、アービタ１７のアービトレーションによってバッファドパスによるアクセス許可が与えられた場合（ステップＳ３０６  Ｎｏ）は、アービタ１７は、バッファ１４−１，１４−２に空き容量があるか否かを判定する（ステップＳ３０７）。
【００３２】
そして、バッファ１４−１，１４−２ともに空き容量が無いと判定された場合（ステップＳ３０７  Ｎｏ）は、いずれかのバッファに空き容量が生じるまで待機する。また、いずれかのバッファに空き容量があると判定された場合（ステップＳ３０７  Ｙｅｓ）は、アービタ１７は、バッファドパスによるアクセス許可が与えられたバスマスタが複数あるか否かを判定する（ステップＳ３０８）。
【００３３】
そして、バッファドパスによるアクセス許可が与えられたバスマスタが１つである場合（ステップＳ３０８  Ｎｏ）は、アービタ１７は、バッファ１４−１，１４−２の空き容量を有しているバッファ（空きバッファ）に、各バッファの優先順位に基づいてライトデータを書き込むようセレクタ１５−１，１５−２を制御する（ステップＳ３０９）。
【００３４】
また、バッファドパスによるアクセス許可が与えられたバスマスタが複数ある場合（ステップＳ３０８  Ｙｅｓ）は、アービタ１７は、バスリクエストの数に対して空きバッファの数が足りているか否かを判定する（ステップＳ３１０）。そして、バスリクエスト数が空きバッファ数よりも少ない場合（ステップＳ３１０  Ｙｅｓ）は、空きバッファにライトデータを書き込むためにステップＳ３０９に移行する。一方、バスリクエスト数が空きバッファ数よりも多い場合（ステップＳ３１０  Ｎｏ）は、アービタ１７によるセレクタ１５−１，１５−２のアービトレーションを実行する（ステップＳ３１１）。
【００３５】
次に、アービタ１７によるアービトレーションで優先されたバッファドパスのアクセス（ステップＳ３１２  Ｙｅｓ）は、ステップＳ３０９による空きバッファへのデータライトを行う。また、アービタ１７によるアービトレーションで待機しているバッファドパスのアクセスは、バッファ１４−１，１４−２に空き容量が生じるまで待機する（ステップＳ３１３）。そして、バッファ１４−１，１４−２のいずれかに空き容量が生じた場合（ステップＳ３１３  Ｙｅｓ）は、その時点におけるバッファドパスによるアクセス許可が与えられたバスマスタが複数あるか否かを判定するためにステップＳ３０８に移行する。
【００３６】
次に、バスマスタ３−１〜３−４のうちいずれか１つのバスマスタから共有メモリ４にデータを書き込む場合のダイレクトパスと２つのバッファドパスとをアービトレーションするアービタ１３の動作について、図４のフローチャートを参照して説明する。同図において、アービタ１３は、バッファ１４−１，１４−２のうちいずれかのバッファにライトデータが格納されているか否かを判定する（ステップＳ４０１）。そして、バッファ１４−１，１４−２いずれにもライトデータが格納されていない場合（ステップＳ４０１  Ｎｏ）は、セレクタ１６からのダイレクトパスによるバスリクエストがあるか否かを判定する（ステップＳ４０２）。そして、ダイレクトパスの要求がない場合（ステップＳ４０２  Ｎｏ）は入力待ちとなり、ダイレクトパスの要求がある場合（ステップＳ４０２  Ｙｅｓ）はダイレクトパスによって共有メモリ４へのアクセスが実行される（ステップＳ４０３）。
【００３７】
バッファ１４−１，１４−２の少なくともいずれかにライトデータが格納されている場合（ステップＳ４０１  Ｙｅｓ）は、バッファ１４−１，１４−２ともにライトデータが格納されているか否かを判定する（ステップＳ４０４）。そして、ライトデータが格納されたバッファが１つである場合（ステップＳ４０４  Ｎｏ）は、バッファドパスによってその格納されたライトデータを共有メモリ４に書き込むアクセスが実行される（ステップＳ４０５）。また、バッファ１４−１，１４−２ともにライトデータが格納されていると判定された場合（ステップＳ４０４  Ｙｅｓ）は、アービタ１３によってアービトレーションが実行される（ステップＳ４０６）。そして、アービタ１３によって選択されたバッファからの共有メモリ４へのアクセスが実行されたのち（ステップＳ４０７）、ステップＳ４０４に移行する。
【００３８】
以上説明した共有メモリシステムにおいて、４つのバスマスタ３−１〜３−４が同時に共有メモリ４にライトアクセスを実行した場合のタイミングの例を図５のタイミングチャートに示す。同図によれば、バスマスタ３−１がダイレクトパスによる共有メモリ４へのアクセスを実行し、そしてバスマスタ３−２〜３−４がバッファドパスによるアクセスを実行した例である。前述した従来例のタイミングチャート（図６）と比べて各バスマスタの待ち時間が十分に短くなっている。
【００３９】
また、バスマスタ３−１の２回目のバスリクエストについても発行タイミング５１が図６に示した従来例のタイミングよりも早くなっている。
【００４０】
以上、詳述したように本実施形態の共有メモリシステムによれば、複数のバスマスタから共有メモリへのライトアクセスに際してアクセスの競合が発生した場合に、メモリコントローラが、各ライトデータを内部バッファに一旦格納してアービトレーションするため、従来のように優先順位の低いバスマスタのバスリクエストがバスアクノリッジを待ち続けることがなくライトアクセス効率が格段に改善される。また、このように各バスマスタ間のアービトレーションが効率化されることにより、１つのバスマスタの前回のアクセスから次のアクセスまでの待ち時間が飛躍的に短くすることができる。
【００４１】
さらには、接続されるバスマスタの数によらずメモリコントローラ内部のバッファ及びセレクタの個数を固定とし、並びにアービタの回路を略一定規模に保つことが可能であるため、バスマスタの接続数が増えることによるシステム規模の拡大がされたとしても、メモリコントローラ自体の回路規模の増大を回避することができるとともに、アービタのアービトレーション制御を複雑化させないことが可能である。
【００４２】
なお、本実施形態におけるメモリコントローラの動作説明においては、バスマスタ３−１〜３−４から共有メモリ４へのライトアクセスについてのみ具体的に説明したが、本発明の技術的思想は、バスマスタ３−１〜３−４から共有メモリへのリードアクセスについても適用できる。
【産業上の利用可能性】
【００４３】
本発明は、複数のプロセッサからなるマルチプロセッサシステムや複数のＤＭＡデバイス等からなるマルチバスマスタシステムにおいて、高速性が要求されるリアルタイムシステムに有用である。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態における共有メモリシステムの概略ブロック図である。
【図２】本発明の実施形態におけるメモリコントローラの概略内部構成を示した図である。
【図３】本発明の実施形態における、４つのバスマスタのうちいずれか１つのバスマスタがメモリコントローラに対してバスリクエストを発行した場合について、メモリコントローラの動作を説明するためのフローチャートである。
【図４】本発明の実施形態における共有メモリシステムにおいて、４つのバスマスタのうちいずれか１つから共有メモリにデータを書き込む場合の、ダイレクトパスと２つのバッファドパスとをアービトレーションするアービタの動作を説明するためのフローチャートである。
【図５】本発明の実施形態における共有メモリシステムにおいて、４つのバスマスタが同時に共有メモリにライトアクセスを実行した場合のタイミングの例である。
【図６】従来の共有メモリシステムにおいて、４つのバスマスタが同時に共有メモリにライトアクセスを実行したときのバス・アービトレーションの例を示したタイミングチャートである。
【符号の説明】
【００４５】
１  データバス
２  メモリコントローラ
３−１〜３−４  バスマスタ
４  共有メモリ
１１  メモリアクセス制御部
１２  セレクタ
１３  アービタ
１４−１，１４−２  バッファ
１５−１，１５−２  セレクタ
１６  セレクタ
１７  アービタ
【図１】
2007172112.tif 000003
【図２】
2007172112.tif 000004
【図３】
2007172112.tif 000005
【図４】
2007172112.tif 000006
【図５】
2007172112.tif 000007
【図６】
2007172112.tif 000008