(57)【要約】【課題】既存の情報処理ブロック自体の構成を変更することなく、複数の情報処理ブロック間で大容量のデータをバスを介して伝送する情報処理装置を提供する。【解決手段】データを伝送する複数のバス１１と、任意のバス１１に接続されている他の情報処理ブロックに対してアクセスを行うマスターブロック２１と、任意のバス１１に接続されているマスターブロック２１からのアクセスを行わせるスレイブブロック３１とを備え、複数のバス１１のそれぞれには、１つのマスターブロック２１にスレーブブロック３１に対するアクセスを許可するかどうかを制御するとともに、この制御に応じたバスの状態を示す状態情報を接続されている全てのマスターブロック２１に供給するバスアービタ１２が設けられており、マスターブロック２１には、各バスアービタ１２から供給される状態情報に応じてアクセスを行うバス１１を選択するマスターセレクターブロック２２が設けられている。【選択図】  図１
2009070269.tif 000002
【特許請求の範囲】
【請求項１】
情報処理ブロック間においてアクセスを行うためのデータを伝送する複数のバスと、
上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている他の情報処理ブロックに対してアクセスを行う第１の情報処理ブロックと、
上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている上記第１の情報処理ブロックからのアクセスを行わせる第２の情報処理ブロックとを備え、
上記複数のバスのそれぞれには、上記第１の情報処理ブロックのうち何れか１つの第１の情報処理ブロックに、上記第２の情報処理ブロックに対するアクセスを許可するかどうかを制御するとともに、該制御に応じたバスの状態を示す状態情報を接続されている全ての第１の情報処理ブロックに供給するバスアービタが設けられており、
上記第１の情報処理ブロックには、該第１の情報処理ブロックに接続されている各バスのバスアービタから供給される状態情報に応じてアクセスを行うバスを選択する第１の選択手段が設けられている情報処理装置。
【請求項２】
上記バスアービタは、上記状態情報として、該バスアービタが設けられたバスを介してアクセスを行うのを待機している上記第１の情報処理ブロックの数を示す待機情報を、該バスに接続されている全ての第１の情報処理ブロックに供給し、
上記第１の選択手段は、上記待機情報に応じて、待機している数が最も少ないバスを選択して該第１の選択手段が設けられた上記第１の情報処理ブロックにアクセスを行わせることを特徴とする請求項１記載の情報処理装置。
【請求項３】
上記第２の情報処理ブロックには、上記複数のバスから同時にアクセスされるとき、先にアクセスされた方のバスからのアクセスのみを許可し、後からアクセスされたバスにアクセスを待機させる待機指令情報を供給する第２の選択手段が設けられていることを特徴とする請求項１記載の情報処理装置。
【請求項４】
上記バスアービタは、他のバスアービタから状態情報が供給され、供給された状態情報に応じて、上記複数のバスから同一の上記第２の情報処理ブロックに対するアクセスが同時に発生しないように、該第２の情報処理ブロックに対して第１の情報処理ブロックが行うアクセスの許可する制御を行うことを特徴とする請求項１記載の情報処理装置。
【請求項５】
情報処理を行う情報処理ブロック間においてアクセスを行うための複数のバスと、
上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている他の情報処理ブロックに対してアクセスを行う第１の情報処理ブロックと、
上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている上記第１の情報処理ブロックからのアクセスを行わせる第２の情報処理ブロックとを備える情報処理装置の制御方法において、
上記複数のバスのそれぞれに設けられるバスアービタにより、上記第１の情報処理ブロックのうち何れか一の第１の情報処理ブロックに、上記第２の情報処理ブロックに対するアクセスを許可するかどうかを制御するとともに、該制御に応じたバスの状態を示す状態情報を上記第１の情報処理ブロックに供給し、
上記第１の情報処理ブロックに設けられている選択手段により、該第１の情報処理ブロックに接続されている各バスのバスアービタから供給される状態情報に応じてアクセスを行うバスを選択することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介して情報処理ブロック間でアクセスを行う情報処理装置、及び、この情報処理装置の制御方法に関するものである。
【背景技術】
【０００２】
半導体チップにおいて各機能モジュールを接続するための手段として、様々な種類のバスが従来から考案されている。
【０００３】
各機能モジュールは、２種類の情報処理ブロックに大きく分けることができる。すなわち、第１の情報処理ブロックとしては、マスターとなって自身から他の情報処理ブロックに対してアクセスを行う情報処理ブロック（以下、マスターブロックと呼ぶ。）がある。第２の情報処理ブロックとしては、自身から他の情報処理ブロックに対してアクセスを行うことはなく、上述したマスターブロックからアクセスされる情報処理ブロック（以下、スレーブブロックと呼ぶ。）がある。なお、マスターブロックの中には、スレーブブロックのように、他の情報処理ブロックからアクセスされる機能を有しているものもある。
【０００４】
一般的に、半導体チップの設計は、以上のようなマスターブロックとスレーブブロックとをバスに接続することにより行われている。特に、複数のマスターブロックをバスに接続して半導体チップを動作させるためには、バスアービタを要する。ここで、バスアービタは、バス上で一度に１つのマスターブロックだけにデータ転送を許可する、すなわち、スレーブブロックとのアクセスを許可するための調停を行う情報処理ブロックである。
【０００５】
通常、マスターブロックは、バスを介してスレーブブロックにアクセスを行おうとするとき、バスを使用したいことを伝えるための信号（以下、バス権リクエスト信号と呼ぶ。）をバスアービタに供給する。
【０００６】
一方、バスアービタは、バスの使用状態を常に監視及び制御しており、各マスターブロックからバス権リクエスト信号が供給されると、バスの状態と各マスターブロックからのバス権リクエスト信号とに応じて調停を行い、どのマスターブロックにバスの使用権（以下、バス使用権と呼ぶ。）を与えるかを決定する。そして、バスアービタは、バス使用権を与えたことを示す信号（以下、バス優先度信号と呼ぶ。）を、バス使用権を与えたマスターブロックに供給する。
【０００７】
続いて、マスターブロックは、バスアービタからバス優先度信号が供給されると、自身にバス使用権が与えられたことを認識し、バスを介してスレーブブロックへのアクセスを開始する。そして、マスターブロックは、スレーブブロックへのアクセスが終了すると、このアクセスが終了したことを示す信号（以下、アクセス終了信号と呼ぶ。）をバスアービタに供給して、一連のアクセス処理を終了する。
【０００８】
このような一連のアクセス処理において、バスアービタは、特定のマスターブロックからバス権リクエスト信号が供給されたときに他のマスターブロックがバスを使用していると、現在アクセスを行っているマスターブロックのアクセスが終了して全てのマスターブロックがバスを使用していない状態になるのを待機してから、バス権リクエスト信号が供給されたマスターブロックに対してバス使用権を与える。
【０００９】
また、バスアービタは、複数のマスターブロックから同時にバス権リクエスト信号が供給された場合には、例えばバス使用権を与える順番に優先度をつけて、どのマスターブロックにバス使用権を与えるかを決定する。また、バスアービタは、特定のマスターブロックがバスを使用している状態で、別のマスターブロックからバス権リクエスト信号が供給され、その後さらに他のマスターブロックからバス権リクエスト信号が供給された場合などでは、様々な方法でバス使用権をどのマスターブロックに与えるかどうかを決定する。
【００１０】
また、半導体チップでは、バスの種類に応じて、マスターブロックが、バス権リクエスト信号に加えて、アクセスを行う予定のデータ長や、アクセスの種類を示す信号を同時にバスアービタに供給して、バスアービタがこれらの情報に基づいてバスのバス使用権を制御するものもある。
【００１１】
次に、上述したバスを介したアクセス処理の一例について、図１４に示すような半導体チップ２００を用いて説明する。
【００１２】
この半導体チップ２００には、図１４に示すように、１ラインのバス２０１が設けられ、このバス２０１を介して２個のマスターブロックＡ２０２、マスターブロックＢ２０３と、２個のスレーブブロックＡ２０４、スレーブブロックＢ２０５と、バス２０１に対するアクセスを制御するためのバスアービタ２０６とが接続されている。
【００１３】
以上のような構成を有する半導体チップ２００では、例えば図１５に示すようなタイミングチャートに従ってアクセス処理が行われる。
【００１４】
ここで、図１５では、代表例として、マスターブロックＡ２０２とバスアービタ２０６とに関するアクセスタイミングを示している。なお、図１５では、マスターブロックＡ２０２の「バス権リクエスト信号Ｓｉｇ１０１」と、バスアービタ２０６の「マスターブロックＡからのバス権リクエスト信号Ｓｉｇ２０１」とは同じ信号である。また、マスターブロックＡ２０２の「バス優先度信号Ｓｉｇ１０２」と、バスアービタ２０６の「マスターブロックＡへのバス優先度信号Ｓｉｇ２０２」とは同じ信号である。また、マスターブロックＡ２０２の「アクセス終了信号Ｓｉｇ１０３」と、バスアービタ２０６の「マスターブロックＡからのアクセス終了信号Ｓｉｇ２０３」とは同じ信号である。
【００１５】
また、図１５では、バスアービタ２０６が処理する信号として、「マスターブロックＢからのバス権リクエスト信号Ｓｉｇ２０４」、「マスターブロックＢへのバス優先度信号Ｓｉｇ２０５」、及び、「マスターブロックＢからのアクセス終了信号Ｓｉｇ２０６」を示している。
【００１６】
また、図１５では、バス２０１の使用状態を示す信号としてバス状態信号Ｓｉｇ２０７を示している。このバス状態信号Ｓｉｇ２０７では、マスターブロックＡ２０２、マスターブロックＢ２０３のいずれもバス２０１を使用していないとき「空き」状態を示し、どれか一つのマスターブロックがバス２０１でアクセスを行っているとき「使用中」状態を示す。さらにこのバス状態信号Ｓｉｇ２０７では、どれか１つのマスターブロックがバス２０１でアクセスを行っている状態で他のマスターブロックからバス権リクエスト信号が出力されたとき、この他のマスターブロックからのアクセスが待機状態となるので、「１マスター待ち」状態を示し、同様に複数のマスターブロックが待機状態となっているとき、その数に応じて「２マスター待ち」状態、「３マスター待ち」状態を示すものとする。
【００１７】
また、図１５では、バス２０１を使用しているマスターブロックを示す信号として、バス権所有番号信号Ｓｉｇ２０８を示している。このバス権所有番号信号Ｓｉｇ２０８では、上述したバス状態信号Ｓｉｇ２０７が「使用中」状態を示しているときの、バス２０１を使用しているマスターブロックを示す。
【００１８】
以上のような信号を用いて、各情報処理ブロックが以下のような処理を各タイミングにおいて行うものとする。
【００１９】
まず、初期状態においては、マスターブロックＡ２０２、マスターブロックＢ２０３の両方ともバス２０１上にアクセスを行っていないものとする。
【００２０】
タイミングＴ１０１において、マスターブロックＡ２０２は、バス権リクエスト信号Ｓｉｇ１０１をＨｉｇｈにしてバス２０１に対するバス使用権を要求する。これに同期して、バスアービタ２０６では、「マスターブロックＡからのバス権リクエスト信号Ｓｉｇ２０１」がＨｉｇｈになると、バス状態信号Ｓｉｇ２０７によりバス２０１が「空き」状態であることを確認する。
【００２１】
タイミングＴ１０２において、バスアービタ２０６は、マスターブロックＡ２０２にバス使用権を与えるため、バス状態信号Ｓｉｇ２０７を「使用中」状態に変更し、バス権所有番号Ｓｉｇ２０８を「マスターＡ」に設定し、マスターブロックＡ２０２へのバス優先度信号Ｓｉｇ２０２をＨｉｇｈにする。これに同期して、マスターブロックＡ２０２は、バス優先度信号Ｓｉｇ１０２がＨｉｇｈになると、バス２０１に対するアクセスを開始する。
【００２２】
タイミングＴ１０３においてマスターブロックＡ２０２のアクセスが終了すると、このマスターブロックＡ２０２は、アクセス終了信号Ｓｉｇ１０３をＨｉｇｈにする。これに同期して、バスアービタ２０６は、「マスターブロックＡからのアクセス終了信号Ｓｉｇ２０３」がＨｉｇｈになると、マスターブロックＡ２０２のアクセスが終了したことを確認する。
【００２３】
タイミングＴ１０４において、バスアービタ２０６は、バス状態信号Ｓｉｇ２０７を「空き」状態に変更する。
【００２４】
その後タイミングＴ１０５において「マスターブロックＢからのバス権リクエスト信号Ｓｉｇ２０４」がＨｉｇｈになると、タイミングＴ１０６においてバスアービタ２０６は、「マスターブロックＢへのバス優先度信号Ｓｉｇ２０５」をＨｉｇｈにして、マスターブロック２０３に通知する。
【００２５】
その後、バス２０１をマスターブロック２０３が使用しているときに、タイミングＴ１０７において、マスターブロックＡ２０２は、バス権リクエスト信号Ｓｉｇ１０１をＨｉｇｈにする。これに同期して、バスアービタ２０６は、「マスターブロックＡからのバス権リクエスト信号Ｓｉｇ２０１」がＨｉｇｈになるが、バス状態信号Ｓｉｇ２０７が「使用中」状態であるため、マスターブロックＡ２０２にバス使用権を与えることができない。そこで、バスアービタ２０６は、タイミングＴ１０８において、マスターブロックＡ２０２を待機状態にさせるため、バス状態信号Ｓｉｇ２０７を「１マスター待ち」状態に変更する。
【００２６】
その後、タイミングＴ１０９において、マスターブロック２０３によるアクセスが終了して「マスターブロックＢからのアクセス終了信号Ｓｉｇ２０６」がＨｉｇｈになると、バスアービタ２０６は、マスターブロックＢ２０３からのアクセスが終了したことを認識する。そして、タイミングＴ１１０において、バスアービタ２０６は、バス状態信号Ｓｉｇ２０７を「使用中」状態に変更し、待機状態のマスターブロックＡ２０２に対してバス使用権を与えるため、「マスターブロックＡへのバス優先度信号Ｓｉｇ２０２」をＨｉｇｈにする。ここで、バスアービタ２０６は、バス権所有番号信号Ｓｉｇ２０８を「マスターＡ」に変更する。これに同期して、マスターブロックＡ２０２は、バス優先度信号Ｓｉｇ１０２がＨｉｇｈになり、バス２０１に対するアクセスを開始する。
【００２７】
以上のように、バスを介してマスターブロックやバスアービタなどがアクセス処理を行うことによって、その他の複数のマスターブロックやスレーブブロックに対して制御データや音声や画像などの様々なデータの伝送を行う。
【００２８】
しかしながら、バスを通じて伝送するデータ量が多くなってくると、バスの帯域が不足して、伝送しなければならないデータを伝送することができなくなってしまうことがある。
【００２９】
このような問題に対して、特許文献１には、マスターブロックやスレーブブロックの構成自体を変更することによってバスに伝送するべきデータ量を減らす技術が記載されている。しかしながら、特許文献１に記載された技術では、既存の情報処理ブロックの設計変更を大幅に行わなければならないという問題がある。
【００３０】
【特許文献１】特開２００３―３２３１４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００３１】
本発明は、このような実情に鑑みて提案されたものであり、既存の情報処理ブロック自体の構成を変更することなく、複数の情報処理ブロック間で大容量のデータをバスを介して伝送する情報処理装置、及び、この情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００３２】
上述した課題を解決するための手段として、本発明に係る情報処理装置は、情報処理ブロック間においてアクセスを行うためのデータを伝送する複数のバスと、上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている他の情報処理ブロックに対してアクセスを行う第１の情報処理ブロックと、上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている上記第１の情報処理ブロックからのアクセスを行わせる第２の情報処理ブロックとを備え、上記複数のバスのそれぞれには、上記第１の情報処理ブロックのうち何れか１つの第１の情報処理ブロックに、上記第２の情報処理ブロックに対するアクセスを許可するかどうかを制御するとともに、該制御に応じたバスの状態を示す状態情報を接続されている全ての第１の情報処理ブロックに供給するバスアービタが設けられており、上記第１の情報処理ブロックには、該第１の情報処理ブロックに接続されている各バスのバスアービタから供給される状態情報に応じてアクセスを行うバスを選択する第１の選択手段が設けられている。
【００３３】
また、本発明に係る情報処理装置の制御方法は、情報処理を行う情報処理ブロック間においてアクセスを行うための複数のバスと、上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている他の情報処理ブロックに対してアクセスを行う第１の情報処理ブロックと、上記複数のバスのうち任意のバスと接続され、該任意のバスに接続されている上記第１の情報処理ブロックからのアクセスを行わせる第２の情報処理ブロックとを備える情報処理装置の制御方法であって、上記複数のバスのそれぞれに設けられるバスアービタにより、上記第１の情報処理ブロックのうち何れか一の第１の情報処理ブロックに、上記第２の情報処理ブロックに対するアクセスを許可するかどうかを制御するとともに、該制御に応じたバスの状態を示す状態情報を上記第１の情報処理ブロックに供給し、上記第１の情報処理ブロックに設けられている選択手段により、該第１の情報処理ブロックに接続されている各バスのバスアービタから供給される状態情報に応じてアクセスを行うバスを選択することを特徴とする。
【発明の効果】
【００３４】
本発明は、複数のバスを介して第１の情報処理ブロックと第２の情報処理ブロックとの間でアクセスを行い、第１の情報処理ブロックに設けられている第１の選択手段が、第１の情報処理ブロックに接続されている各バスのバスアービタから供給される状態情報に応じてアクセスを行うバスを選択するので、既存の情報処理ブロックの設計を変更することなく、複数の情報処理ブロック間で大容量のデータを複数のバスを介して伝送することができる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。
【００３６】
本発明が適用された情報処理装置は、バスを介して情報処理ブロック間でアクセスを行う情報処理装置である。このような情報処理の一例として、図１に示すような情報処理装置１を用いて本発明を実施するための第１の実施例について説明する。
【００３７】
第１の実施例に係る情報処理装置１は、図１に示すように、データを伝送する２つのバスＡ１１ａ、バスＢ１１ｂ（便宜上、総称したときバス１１と呼ぶ。）と、他の情報処理ブロックに対してアクセスを行うマスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＣ２１ｃ、マスターブロックＤ２１ｄ（便宜上、総称したときマスターブロック２１と呼ぶ。）と、マスターブロック２１からのアクセスを行わせるスレーブブロックＡ３１ａ、スレーブブロックＢ３１ｂ（便宜上、総称したときスレーブブロック３１と呼ぶ。）とから構成されている。なお、各マスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＣ２１ｃ、マスターブロックＤ２１ｄは、後述するマスターセレクターブロックＡ２２ａ、マスターセレクターブロックＢ２２ｂ、マスターセレクターブロックＣ２２ｃ、マスターセレクターブロックＤ２２ｄ（便宜上、総称したときマスターセレクターブロック２２と呼ぶ。）を介してバス１１と接続されている。また、各スレーブブロックＡ３１ａ、スレーブブロックＢ３１ｂは、後述するスレーブセレクターブロックＡ３２ａ、スレーブセレクターブロックＢ３２ｂ（便宜上、総称したときスレーブセレクターブロック３２と呼ぶ。）を介してバス１１と接続されている。
【００３８】
バス１１は、このバス１１に接続されている情報処理ブロック、すなわち、マスターブロック２１及びスレーブブロック３１のそれぞれの間でアクセスを行うためのデータ伝送路である。
【００３９】
また、２つのバスＡ１１ａ、バスＢ１１ｂのそれぞれには、どのマスターブロック２１に伝送路を使用させる権利（以下、バス使用権と呼ぶ。）を与える優先度を調停を行うためのバスアービタＡ１２ａ、バスアービタＢ１２ｂ（便宜上、総称したときバスアービタ１２と呼ぶ。）が設けられている。具体的に、バスアービタ１２は、バス１１に接続されているマスターブロック２１のうち何れか１つのマスターブロック２１に、スレーブブロック３１に対するアクセスを許可するかどうかを調停を行う制御を行う。さらに、バスアービタ１２は、この調停制御に応じたバス１１の状態を示すバス状態信号を、接続されている全てのマスターブロック２１に供給する。
【００４０】
マスターブロック２１は、複数のバスのうち、任意のバスに接続される情報処理ブロックである。なお、実施例１では、全てのマスターブロック２１がバスＡ１１ａ、バスＢ１１ｂの両方と接続されている。マスターブロック２１は、同じバス１１を介して互いに接続されている他のスレーブブロック３１に対してアクセスを行う。マスターブロック２１は、バスアービタ１２から供給されるバス状態信号に応じて、アクセスを行うバス１１を選択するマスターセレクターブロック２２が設けられている。マスターブロック２１は、マスターセレクターブロック２２を介してバス１１と接続されている。したがって、マスターセレクターブロック２２は、マスターブロック２１がバス１１との間でデータの伝送を行うための入出力用信号線と、バスアービタ１２からのバス状態信号を入力するための信号線とを備えている。
【００４１】
ここで、具体的なマスターセレクターブロック２２の構成について図２を参照して説明する。マスターセレクターブロック２２は、各バスアービタ１２から供給されるバス状態信号に基づいていずれか１つのバス１１を選択してアクセスを行うかを判定する判定部２２１と、判定部２２１による判定結果に応じてマスターブロック２１がアクセスを行うバス１１を選択するバスセレクタ部２２２とを備えている。
【００４２】
判定部２２１は、バスアービタ１２が出力するバス状態信号を伝送するバス１１内に設けられている信号線と接続されており、この信号線から伝送されてくるバス状態信号を入力し、各バス１１の状態を示すバス状態信号に基づいていずれかのバス１１を使用してアクセスを行うかを判定する。そして、判定部２２１は、この判定結果を示す信号をバスセレクタ部２２２へ供給する。
【００４３】
バスセレクタ部２２２は、いずれかのバス１１を選択して、選択したバス１１とマスターブロック２１と接続するための接続回路であって、判定部２２１による判定結果に応じてマスターブロック２１がアクセスを行うバス１１を選択する。
【００４４】
以上のような構成からなるマスターブロック２１に対してアクセスを行わせるスレーブブロック３１は、複数のバスのうち、任意のバスに接続される情報処理ブロックである。実施例１では、全てのスレーブブロック３１が２つのバスＡ１１ａ、バスＢ１１ｂの両方と接続されている。スレーブブロック３１は、接続されているバス１１の中から、アクセス可能なバス１１を選択するスレーブセレクターブロック３２が設けられている。
【００４５】
スレーブセレクターブロック３２は、複数のバス１１からスレーブブロック３１に同時にアクセスされるのを防止するため、接続されているバス１１の中から、アクセス可能なバス１１を選択する処理ブロックであって、例えば図３に示すような構成によって実現される。
【００４６】
すなわち、スレーブセレクターブロック３２は、例えばバスＡ１１ａを介して伝送される入力信号と出力信号とを分離する入出力分離部３２１と、バスＢ１１ｂを介して伝送される入力信号と出力信号とを分離する入出力分離部３２２と、各入出力分離部３２１、３２２から同時に入力信号があったときに一方の入力信号を選択するアービトレーションブロック３２３と、アービトレーションブロック３２３で選択された入出力分離部からの入力信号とこの入出力分離部への出力信号とを分離する入力分離部３２４とを備える。
【００４７】
入出力分離部３２１は、バスＡ１１ａを介して伝送される信号からスレーブブロック３１への入力信号を分離して、分離した入力信号をアービトレーションブロック３２３に供給する。また、入出力分離部３２１は、アービトレーションブロック３２３などを介してスレーブブロック３１から供給される出力信号をバスＡ１１ａに出力する処理を行う。
【００４８】
入出力分離部３２２は、バスＢ１１ｂを介して伝送される信号からスレーブブロック３１への入力信号を分離して、分離した入力信号をアービトレーションブロック３２３に供給する。また、入出力分離部３２１は、アービトレーションブロック３２３などを介してスレーブブロック３１から供給される出力信号をバスＢ１１ｂに出力する処理を行う。
【００４９】
アービトレーションブロック３２３は、各入出力分離部３２１、３２２から同時に入力信号があったときに一方の入力信号を選択する情報処理ブロックである。例えば、先にバスＡ１１ａを介してアクセスがあった後にバスＢ１１ｂを介してアクセスがあったときには、アービトレーションブロック３２３は、入出力分離部３２１から供給されるバスＡ１１ａからのアクセスのみを入出力分離部３２４を介してスレーブブロック３１に供給して、この後から入出力分離部３２２から供給されるバスＢ１１ｂからのアクセスを待機させる待機指令信号を入出力分離部３２２を介してバスＢ１１ｂに供給する。そして、アービトレーションブロック３２３は、バスＡ１１ａからのアクセスが終了すると、待機指令信号を供給しているバスＢ１１ｂからのアクセスを開始するため入出力分離部３２２から供給されるバスＢ１１ｂからのアクセスを入出力分離部３２４を介してスレーブブロック３１に供給する。
【００５０】
アービトレーションブロック３２３は、上述したように先にアクセスがあったバス１１からの入力信号のみをスレーブブロック３１に供給する以外にも、例えばアクセスの種類に応じて優先度を設定して、同時にアクセスを行うような入力がバス１１からあったときには優先度が高いアクセスを供給するバス１１からの入力信号を優先してスレーブブロック３１へ供給するようにしてもよい。特にスレーブブロック３１がメモリなどの場合、メモリ内の同じアドレス記憶領域に対して一方のバスＡ１１ａから書き込みを行うアクセスがあり、異なるもう一方のバスＢ１１ｂから読み出しを行うアクセスがあったときには、アクセスを行う順番によって読み出されるデータが変わってしまう場合がある。このような状態が発生する場合、アービトレーションブロック３２３は、意図したデータの書き込み処理及び読み出し処理が行われるように、読み出し処理に係るアクセスの優先度と、書き込み処理に係るアクセスの優先度との調停を行うようにする。
【００５１】
なお、スレーブセレクターブロック３２では、アービトレーションブロック３２３を用いなくても、例えば、図４に示すように複数のバスアービタ１２間を信号線で接続して、この信号線にそれぞれのバス１１の使用状態を示すバス状態信号を供給することで、複数のバス１１から同時にアクセスが行われるのを防止することができる。このような場合には、各バスアービタ１２は、他のバスアービタ１２からのバス状態信号に応じて、同じスレーブブロックに対するアクセスが発生していないことを確認してから、バス使用権を要求しているマスターブロックに対してバスのアクセスを許可するように制御する。
【００５２】
入出力分離部３２４は、上述したアービトレーションブロック３２３を介して入出力分離部３２１、３２２から供給される入力信号及びこれら入出力分離部３２１、３２２への出力信号を分離する処理を行う。すなわち、入出力分離部３２４は、アービトレーションブロック３２３から供給される入力信号をスレーブブロック３１に供給し、スレーブブロック３１から供給される出力信号をアービトレーションブロック３２３に供給する処理を行う。
【００５３】
以上のような構成からなる情報処理装置１では、バスＡ１１ａとバスＢ１１ｂが共に、全てのマスターブロック２１とスレーブブロック３１と接続されている。このため、バスＡ１１ａとバスＢ１１ｂとは、図５（Ａ）及び図５（Ｂ）に示すように、同じアドレスマップを使用して、伝送路を管理することができる。ここで、アドレスマップとは、バス１１に伝送される信号のヘッダ部分に含まれる情報であって、この情報を確認することで正確に複数の情報処理ブロックの中から特定の情報処理ブロックとの間でアクセスを行うための情報である。具体的に、バス１１のアドレスマップ上では、アドレス０ｘ００００から０ｘ１１ＦＦまでがスレーブブロックＡのアドレスであり、０ｘ２０００から０ｘ２７ＦＦまでがスレーブブロックＢのアドレスである。以下同様に、０ｘ４０００から０ｘ４ＦＦＦまではマスターブロックＡが、０ｘ５０００から０ｘ５ＦＦＦまではマスターブロックＢが、０ｘ６０００から０ｘ６ＦＦＦまではマスターブロックＣが、０ｘ７０００から０ｘ７ＦＦＦまではマスターブロックＤが配置されているものとする。なお、上述したアドレス以外の箇所は、どのマスターブロック２１、スレーブブロック３１も使用していない空きアドレスとなっている。
【００５４】
続いて、以上のような構成からなる情報処理装置１の具体的なアクセス処理の具体例について図６に示すタイミングチャートを用いて説明する。以下に示す具体例では、マスターブロックＡ２１ａが、２つのバスＡ１１ａ、バスＢ１１ｂの両方に対してバス使用権を要求して、その後バスＢ１１ｂのバス使用権を受け取ってアクセスを開始するまでの処理内容について説明する。
【００５５】
タイミングＴ１において、マスターブロックＡ２１ａは、バス使用権を要求する旨を示すバス権リクエスト信号Ｓｉｇ１１を、ＨｉｇｈにしてマスターセレクターブロックＡ２２ａに出力する。
【００５６】
タイミングＴ２において、マスターセレクターブロックＡ２２ａは、マスターブロックＡ２１ａからバス権リクエスト信号Ｓｉｇ１１を受け取ると、バスアービタＡ１２ａから供給されるバス状態信号Ｓｉｇ２１とバスアービタＢ１２ｂから供給されるバス状態信号Ｓｉｇ２５とに応じて、どちらのバスＡ１１ａ、バスＢ１１ｂを使用してアクセスを行うかを判定部２２１で判定する。
【００５７】
このタイミングにおいては、バス状態信号Ｓｉｇ２１が、１つのマスターブロック２１がバスＡ１１ａの使用を待機している「１マスター待ち」状態を示しており、バス状態信号Ｓｉｇ２５が、マスターブロックＣ２１ｃがバスＢ１１ｂを使用しているだけで待機している他のマスターブロック２１がない「使用中」状態を示している。
【００５８】
したがって、マスターセレクターブロック２２は、バス使用権が与えられるのを待機しているマスターブロック２１の数が少ないバスＢ１１ｂを使用してアクセスを行うことをと判断して、バスＢ１１ｂに対するバス権リクエスト信号Ｓｉｇ２８のみをＨｉｇｈにする。
【００５９】
タイミングＴ４において、マスターセレクターブロックＡ２２ａには、バスアービタＢ１２ｂがマスターブロックＡ２１ａを待機状態にするので、「使用中」状態から「１マスター待ち」状態に変更されたバス状態信号Ｓｉｇ２５が供給される。
【００６０】
タイミングＴ５において、マスターブロックＣ２１ｃによるバスＢ１１ｂを使用したアクセスが終了すると、マスターブロックＡ２１ａにバスＢ１１ｂのバス使用権が与えられ、マスターセレクターブロックＡ２２ａには、ＬｏｗからＨｉｇｈに変更されたバス使用権が与えられた旨を示すバス優先権信号Ｓｉｇ２７が供給される。これに同期して、マスターブロックＡ２１ａは、マスターセレクターブロックＡ２２ａから、ＬｏｗからＨｉｇｈに変更されたバス優先権信号Ｓｉｇ１２が供給される。
【００６１】
このようにして、マスターブロックＡ２１ａは、バス優先権信号Ｓｉｇ１２により、バスＢ１１ｂのバス使用権が与えられたとの認識を行い、マスターセレクターブロックＡ２２ａを介さずにバスＢ１１ｂと接続されているのと同様の状態でアクセスを行うための処理を行うことができる。これは、マスターセレクターブロックＡ２２ａが、マスターブロックＡ２１ａのアクセス処理に係る入出力信号をバス１１のうちバスＢ１１ｂとのみ伝送するようにバスセレクタ部２２２を動作させれば良いからである。
【００６２】
また、マスターセレクターブロックＡ２２ａには、バスＢ１１ｂにおいてマスターブロックＡ２１ａが使用している状態となるので、「１マスター待ち」から「使用中」に変更されたバス状態信号Ｓｉｇ２５がバスアービタＢ１２ｂから供給される。
【００６３】
その後、マスターブロックＡ２１ａによるバスＢ１１ｂへのアクセスが終了すると、マスターブロックＡ２１ａは、マスターセレクターブロックＡ２２ａを介さずに直接バスＢ１１ｂと接続しているのと同じ処理でアクセスを終了する。
【００６４】
この実施例では、マスターセレクターブロックＡ２２ａがどちらのバスＡ１１ａ、バスＢ１１ｂを用いてバス使用権を要求するかの判定を行う場合に、バス状態信号に応じて、バス１１の使用を待機しているマスターブロックの数を判定指標としているが、判定指標としてはマスターブロックの待機数に限定されず、例えば各マスターブロック２１がアクセスを予定しているデータ量やアクセスの種類などを判定指標としてバスアービタ１２から供給して、この判定指標に応じて判定処理を行うようにしても良い。
【００６５】
なお、上述した図１に示すような情報処理装置１では、全てのマスターブロック２１のそれぞれが、マスターセレクターブロック２２を介して、全てのバス１１と接続して、これら２つのバス１１のうちいずれか一方を選択してアクセスするような構成としている。しかしながら、本発明が適用される情報処理装置は、上述した構成に限定されるものではなく、第２の実施例として、たとえば図７に示すように、特定のマスターブロックＤ２１ｄがバスＡ１１ａのみを使用してアクセスを行うようにしてもよい。
【００６６】
このような構成からなる第２の実施例に係る情報処理装置２においては、マスターブロックＤ２１ｄが、マスターセレクターブロックＤ２２ｄを介さずに直接バスＡ１１ａとアクセスを行うため、アドレスマップを次のように設定する。
【００６７】
なお、第２の実施例に係る情報処理装置２において、第１の実施例に係る情報処理装置１と同様の構成については、同様の符号を付し、その説明を省略する。
【００６８】
すなわち、この情報処理装置２では、それぞれのバス１１に接続されている情報処理ブロックが異なっているため、バスＡ１１ａとバスＢ１１ｂとのアドレス空間が異なり、図８のようにアドレスマップを設定する。
【００６９】
すなわち、バスＡ１１ａのアドレスマップは、図８（Ａ）に示すように、マスターブロックＤ２１ｄと接続されているので、上述した図５（Ａ）と同じアドレス空間上に各ブロックのアドレスが配置されている。これに対して、バスＢ１１ｂのアドレスマップは、図８（Ｂ）に示すように、マスターブロックＤ２１ｄと接続されていないので、上述した図５（Ｂ）に示したアドレスマップと異なり、０ｘ７０００から０ｘ７ＦＦＦまでのアドレスが使用されていない状態となっている。
【００７０】
ここで、マスターブロックＤ２１ｄが、必ずマスターブロックとしてしか動作を行わず、スレーブブロックとしての動作を行うことがなければ他のブロックからアクセスされることはない。そのため、図８のアドレスマップからスレーブブロックＡ３１ａ、スレーブブロックＢ３１ｂ、及び、マスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＣ２１ｃは、バスＡ１１ａ、バスＢ１１ｂの両方のアドレスに存在しているので、図１に示した構成からなる第１の実施例に係る情報処理装置１と同じようにしてアクセスを行えばよい。
【００７１】
また、マスターブロックＤ２１ｄがスレーブブロックとして動作する機能を持っている場合には、図８に示したアドレスマップにおいて、バスＢ１１ｂのアドレスマップにマスターブロックＤ２１ｄが存在しないため、バスＢ１１ｂを介してマスターブロックＤ２１ｄにアクセスを行うことができない。そのため、マスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＣ２１ｃがマスターブロックＤ２１ｄにアクセスを行う場合には必ずバスＡ１１ａを使用する必要がある。
【００７２】
そこで、マスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＣ２１ｃにそれぞれ設けられているマスターセレクターブロックＡ２２ａ、マスターセレクターブロックＢ２２ｂ、マスターセレクターブロックＣ２２ｃは、図８に示したアドレスマップに関する情報を持っておき、マスターブロックＤ２１ｄへのアクセスが発生した場合に、バスＡ１１ａを使用しなければアクセスできないという判断を行い、必ずバスＡ１１ａを選択するような制御を行う。このような制御を行うマスターセレクターブロック２２の構成を図９に示す。
【００７３】
すなわち、マスターセレクターブロック２２は、上述した図２に示した構成と同様に、判定部２２１とバスセレクタ部２２２とを備えるとともに、判定部２２１にマスターブロック２１がアクセスを行おうとしているアドレス情報を供給する。そして、判定部２２１は、各バス１１から供給されるバス状態信号に加えて、マスターブロック２１から供給されるアドレス情報とに応じて、どのバス１１を使用するかを判定する。
【００７４】
具体的に、判定部２２１は、図１０に示すようなフローチャートに従って、バス状態信号とアドレス情報とに応じて、どのバス１１を使用するかを判定する。
【００７５】
ステップＳ１において、判定部２２１は、マスターブロック２１から供給されるアドレス情報に基づいて、アクセス対象のブロックにバスＡ１１ａを介してアクセスすることが可能であるか否かを判断する。ここで、判定部２２１は、アクセスできると判断したとき、ステップＳ２に進み、できないと判断したときステップＳ７に進んでバスＢ１１ｂを使用するように判定する。
【００７６】
ステップＳ２において、判定部２２１は、マスターブロック２１から供給されるアドレス情報に基づいて、アクセス対象のブロックにバスＢ１１ｂを介してアクセスすることができるか否かを判断する。ここで、判定部２２１は、アクセスできると判断したとき、ステップＳ３に進み、できないと判断したときステップＳ６に進んでバスＡ１１ａを使用するように判定する。
【００７７】
ステップＳ３において、判定部２２１は、各バスアービタ１２から供給されるバス状態信号に応じて、バスＡ１１ａの方が使用を待機しているマスターブロック２１の数が、バスＢ１１ｂに比べて少ないか否かを判断する。ここで、判定部２２１は、マスターブロック２１の数が少ないと判断したときステップＳ４に進んでバスＡ１１ａを使用するように判定する。また、判定部２２１は、マスターブロック２１の数が少なくないと判断したときステップＳ５に進んでバスＢ１１ｂを使用するように判定する。
【００７８】
このようにして、マスターセレクターブロック２２は、判定部２２１が、アドレス情報に応じてアクセス可能なバス１１を選択した後に、アクセス可能なバス１１が複数ある場合に、バス状態信号に応じて待機状態にあるマスターブロック２１の数が少ない方のバス１１を選択するような判定処理を行う。
【００７９】
次に、第３の実施例に係る情報処理装置３について、図１１を参照して説明する。第３の実施例に係る情報処理装置３は、図１１に示すように、特定のスレーブブロックＢ３１ｂがバスＡ１１ａと接続されるようにしたものである。
【００８０】
なお、第３の実施例に係る情報処理装置３において、第１の実施例に係る情報処理装置１と同様の構成については、同様の符号を付し、その説明を省略する。
【００８１】
このような構成からなる情報処理装置３では、各マスターセレクターブロック２２が、各バス１１のアドレス情報を保持しておき、スレーブブロックＢ３１ｂにアクセスを行う場合には、必ずバスＡ１１ａを選択するように制御する。
【００８２】
上述した実施例１〜３では、合計２本のバス１１を用いて情報処理ブロック間のアクセスを行うものを示したが、より多くのバス１１を用いた情報処理装置４を、第４の実施例として示す。
【００８３】
すなわち、第４の実施例に係る情報処理装置４は、図１２に示すように、合計３本のバスＡ１１ａ、バスＢ１１ｂ、バスＣ１１ｃと、バスＡ１１ａ、バスＢ１１ｂ、バスＣ１１ｃの使用を管理するバスアービタＡ１２ａ、バスアービタＢ１２ｂ、バスアービタＣ１２ｃとを備え、マスターブロック２１及びスレーブブロック３１が具体的には次のようにバス１１に接続されている。
【００８４】
なお、第４の実施例に係る情報処理装置４において、第１の実施例に係る情報処理装置１と同様の構成については、同様の符号を付し、その説明を省略する。
【００８５】
すなわち、マスターブロックＡ２１ａは、マスターセレクターブロックＡ２２ａを介して、全てのバスＡ１１ａ、バスＢ１１ｂ、バスＣ１１ｃと接続されている。
【００８６】
また、マスターブロックＢ２１ｂは、マスターセレクターブロックＢ２２ｂを介して、２つのバスＢ１１ｂ、バスＣ１１ｃだけと接続されている。
【００８７】
また、マスターブロックＣ２１ｃは、マスターセレクターブロックＣ２２ｃを介して、２つのバスＡ１１ａ、バスＣ１１ｃだけと接続されている。
【００８８】
また、マスターブロックＤ２１ｄは、マスターセレクターブロックを介さずに１つのバスＢ１１ｂのみと直接接続されている。
【００８９】
また、２つのスレーブブロックＡ３１ａ、スレーブブロックＢ３１ｂのそれぞれは、スレーブセレクターブロックＡ３２ａ、スレーブセレクターブロックＢ３２ｂを介して、全てのバスＡ１１ａ、バスＢ１１ｂ、バスＣ１１ｃと接続されている。
【００９０】
このようにして、第４の実施例に係る情報処理装置４では、各情報処理ブロックを、バス１１の全本数よりも少ない本数のバス１１に接続されるようにしている。
【００９１】
また、この情報処理装置４では、各バス１１に接続されるマスターブロック２１及びスレーブブロック３１の構成に応じて、各バス１１に設定されるアドレスマップが異なることとなる。
【００９２】
したがって、マスターセレクターブロック２２は、アクセス可能なマスターセレクターブロック２２やスレーブブロック３１がバス１１によって異なる場合には、アドレス情報に基づいて、アクセスを行うことができるバス１１を選択するようにする。
【００９３】
このため、この情報処理装置４では、アクセスする必要があるマスターブロック２１とスレーブブロック３１とが同一のアドレスマップ上に存在するようにする。
【００９４】
そこで、第４の実施例に係る情報処理装置４では、上述した各ブロックとバス１１との接続関係に応じて、各バス１１のアドレスマップを図１３に示すようにして設定する。
【００９５】
すなわち、バスＡ１１ａのアドレスマップは、図１３（Ａ）に示すように、全てのスレーブブロック３１と、２つのマスターブロックＡ２１ａ、マスターブロックＣ２１ｃのアドレスを管理する。また、バスＢ１１ｂのアドレスマップは、図１３（Ｂ）に示すように、全てのスレーブブロック３１と、３つのマスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＤ２１ｄのアドレスを管理する。また、バスＣ１１ｃのアドレスマップは、図１３（Ｃ）に示すように、全てのスレーブブロック３１と、３つのマスターブロックＡ２１ａ、マスターブロックＢ２１ｂ、マスターブロックＣ２１ｃのアドレスを管理する。
【００９６】
ここで、第４の実施例では、情報処理装置４が複数のバス１１を備えていても、接続されるマスターブロック２１及びスレーブブロック３１の接続関係によって、図１３に示したように、各バス１１のアドレスマップの構成が同一ではなく、各アドレスマップ情報に基づいてアクセスできるマスターブロック２１やスレーブブロック３１がバス１１によって異なっている。
【００９７】
したがって、第４の実施例に係る情報処理装置４では、アドレスマップとアクセスを行おうとしているアドレス情報から、アクセスを行うことのできるバス１１を選択するようにマスターセレクターブロック２２を構成しなければならない。また、この情報処理装置４では、アクセスする必要があるマスターブロック２１とスレーブブロック３１の組み合わせが同一アドレスマップ上に存在しないような全体構成、及び、アドレスマップを構成してはいけない。
【００９８】
第４の実施例に係る情報処理装置４では、例えば、マスターブロックＣ２１ｃとマスターブロックＤ２１ｄが同じアドレスマップにあるバス１１が存在しない。このため仮に、マスターブロックＣ２１ｃからマスターブロックＤ２１ｄにアクセスを行うような仕様、又は、マスターブロックＤ２１ｄからマスターブロックＣ２１ｃにアクセスを行うような仕様が存在する場合には、この情報処理装置４では、マスターブロックＤ２１ｄとマスターブロックＣ２１ｃとの間でアクセスを行うことができないので、このような構成にしないようにする。また、情報処理装置４は、アドレス情報に基づいてバス１１を選択するように、それぞれのマスターセレクターブロック２２を構成する。
【００９９】
以上のように、各実施例に係る情報処理装置１、２、３、４は、任意のバス１１と接続されており同じバス１１に接続されているブロックに対してアクセスを行うマスターブロック２１と、任意のバス１１に接続されているマスターブロック２１からのアクセスを行わせるスレーブブロック３１とを備え、任意のバス１１を介してマスターブロック２１とスレーブブロック３１との間でアクセスを行い、マスターブロック２１に設けられているマスターセレクターブロック２２が、マスターブロック２１に接続されている各バス１１のバスアービタ１２から供給されるバス状態信号に応じて、アクセスを行うバス１１を選択するので、既存の情報処理ブロックの設計を大幅に変更することなく、容易に大容量のデータを複数のバス１１を介して伝送することができる。
【０１００】
なお、本発明が適用された情報処理装置は、それぞれのバス１１にマスターブロック２１、スレーブブロック３１、バスアービタ１２などが接続された構成となっているが、バスの構成としてバスブリッジなどを含み、多段構成になっているバスを使ってバスが構成されていてもよく、このような構成の場合には、マスターセレクターブロック２２及びスレーブセレクターブロック３２を介して、各バスにマスターブロック２１及びスレーブブロック３１を接続するようにすればよい。
なお、本発明は、以上の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１０１】
【図１】第１の実施例に係る情報処理装置の構成を示すブロック図である。
【図２】マスターセレクターブロックの構成を示すブロック図である。
【図３】スレーブセレクターブロックの構成を示すブロック図である。
【図４】マスターセレクターブロックの構成を示すブロック図である。
【図５】アドレスマップの構成を模式的に示す図である。
【図６】アクセス処理を説明するために供するタイミングチャートである。
【図７】第２の実施例に係る情報処理装置の構成を示すブロック図である。
【図８】アドレスマップの構成を模式的に示す図である。
【図９】マスターセレクターブロックの構成を示すブロック図である。
【図１０】判定部が行う判定処理の説明に供するフローチャートである。
【図１１】第３の実施例に係る情報処理装置の構成を示すブロック図である。
【図１２】第４の実施例に係る情報処理装置の構成を示すブロック図である。
【図１３】アドレスマップの構成を模式的に示す図である。
【図１４】半導体チップにおいてバスを介して接続された情報処理ブロックの従来例を示すブロック図である。
【図１５】半導体チップにおいてバスを介して接続された情報処理ブロック間のアクセス処理の従来例を説明するために供するタイミングチャートである。
【符号の説明】
【０１０２】
１、２、３、４  情報処理装置、１１  バス、１２  バスアービタ、２１  マスターブロック、２２  マスターセレクターブロック、２２１  判定部、２２２  バスセレクタ部、３１  スレーブブロック、３２  スレーブセレクターブロック、３２１、３２２、３２４  入出力分離部、３２３  アービトレーションブロック
【図１】
2009070269.tif 000003
【図２】
2009070269.tif 000004
【図３】
2009070269.tif 000005
【図４】
2009070269.tif 000006
【図５】
2009070269.tif 000007
【図６】
2009070269.tif 000008
【図７】
2009070269.tif 000009
【図８】
2009070269.tif 000010
【図９】
2009070269.tif 000011
【図１０】
2009070269.tif 000012
【図１１】
2009070269.tif 000013
【図１２】
2009070269.tif 000014
【図１３】
2009070269.tif 000015
【図１４】
2009070269.tif 000016
【図１５】
2009070269.tif 000017