(57)【要約】  【課題】  複数のスレーブバスに接続し、スレーブバス上のデバイス間のデータ転送を行い、転送時にバッファを経由する情報処理装置では、転送に２パス転送サイクルが必要であった。  【解決手段】  転送元・転送先デバイスが接続されるスレーブバスが同一であるかを検出する一致検出部５２と、転送元デバイスからの読み出しデータを直接に転送先デバイスに接続する直接転送パス５３と、転送元デバイスからの読み出しデータをバッファ３３を経由して転送先デバイスに接続するバッファ介在パス４３と、一致検出部５２により直接転送パス５３とバッファ介在パス４３を選択するセレクタ５４とを設け、異なったスレーブバス間のデータ転送であると検出した場合、直接転送パス５３で接続し１パス転送を行い、同一スレーブバス内のデータ転送であると検出した場合は、バッファ介在パス４３で２パス転送を行う。【選択図】  図１
2005215953.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタが複数のスレーブデバイスとのデータ転送を行う情報処理装置であって、
マスタより出力される転送元アドレスと転送先アドレスをデコードし転送元・転送先デバイスが接続されるスレーブバスが同一であるか否かを検出する一致検出手段と、
前記転送元デバイスからの読み出しデータを直接的に前記転送先デバイスに転送する直接転送パスと、
前記転送元デバイスからの読み出しデータをバッファを経由して前記転送先デバイスに転送するバッファ介在パスと、
前記一致検出手段の出力に応じて前記直接転送パスと前記バッファ介在パスを選択するセレクタとを備え、
前記一致検出手段が前記転送元デバイス、前記転送先デバイスが接続されるスレーブバスが異なることを検出した場合に、前記セレクタが前記直接転送パスを選択し、前記転送元デバイス、前記転送先デバイスが接続されるスレーブバスが同じであることを検出した場合は、前記セレクタが前記バッファ介在パスを選択するように構成されていることを特徴とする情報処理装置。
【請求項２】
さらに、前記転送元・転送先アドレスを含む転送情報を複数個管理する転送情報管理手段と、
前記転送元スレーブバス、前記転送先スレーブバスがアクセス可能であるかどうかを判定するスレーブバス状態判定手段とを備え、
前記スレーブバス状態判定手段がデータ転送を行うスレーブバスへのアクセスが不可能であると判定した場合に、前記転送情報管理手段は直ちに他の転送情報を用いたデータ転送を開始させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
さらに、前記一致検出手段によりスレーブバスがアクセス不可能と検出された場合にアクセス可能となるまで待機する時間を記憶する待機時間記憶手段と、
前記待機時間記憶手段に格納している待機時間だけ待機するウェイトカウント手段とを備え、
前記スレーブバス状態判定手段がスレーブバスへのアクセス不可能を検出した場合に、前記ウェイトカウント手段は計時を開始し、前記待機時間記憶手段に格納している待機時間内に前記スレーブバスへアクセス可能な状態になればデータ転送を開始し、前記待機時間記憶手段に格納している待機時間を過ぎても前記スレーブバスへアクセス不可能である状態が続けば前記転送情報管理手段が他の転送情報を用いたデータ転送を開始させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
さらに、前記待機時間記憶手段に格納する待機時間を更新する待機時間更新手段を備え、
データ転送が正常終了した時点で、前記待機時間更新手段が前記待機時間記憶手段に格納する待機時間を前記ウェイトカウント手段の作動時間を基に算出した値に更新することによって、前記スレーブバス状態判定手段がスレーブバスへのアクセス不可能を検出した時点から前記ウェイトカウント手段が待機する時間を自動的に調整することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
さらに、転送情報の決定方法を複数記憶しておき次のデータ転送でどの転送情報を用いるかを決定する転送情報決定手段と、
過去の転送結果を記憶する転送履歴記憶手段と、
前記転送情報決定手段が備える複数の決定方法のうちどの決定方法を使用するかを記憶する決定方法選択手段とを備え、
前記スレーブバス状態判定手段によりスレーブバスへのアクセス不可能を検出して他の転送情報を用いたデータ転送を開始する場合、前記転送情報管理手段は、前記転送情報決定手段が前記転送履歴記憶手段と前記決定方法選択手段を参照して決定した転送情報を用いることを特徴とする請求項２から請求項４までのいずれかに記載の情報処理装置。
【請求項６】
前記転送情報決定手段は、前記決定方法選択手段の内容によって、転送情報決定の際に、前記転送履歴記憶手段を参照し、過去にデータ転送の失敗が起きていない転送情報を優先することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記転送情報決定手段は、前記決定方法選択手段の内容によって、転送情報決定の際に、前記転送情報管理手段により優先度を高く設定されている転送情報を優先することを特徴とする請求項５に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送を伴う情報処理装置にかかわり、特にはデータの転送性能を向上させる技術に関する。
【背景技術】
【０００２】
図１２はデータ転送を伴う従来の情報処理装置を示す。これには、データ転送を制御するマスタが複数あり（ＣＰＵ、ＤＭＡＣ）、複数のマスタが複数のスレーブデバイス間のデータ転送を行うために転送パスを制御するバスコントロールユニット（ＢＣＵ）を含む。
【０００３】
図１２において、１と２はスレーブデバイスへのアクセスを要求するマスタであり、１はＣＰＵ、２はＤＭＡＣ（Direct Memory Access Controller）である。３は、複数のマスタから複数のスレーブデバイスへのアクセス要求の調停を行うバスコントロールユニット（ＢＣＵ）、１４〜１６は転送元や転送先となるデバイスであるスレーブデバイス、４〜６はスレーブデバイスが接続されるバスであるスレーブバスである。１１はＣＰＵ１において転送先へのアクセスを制御するデスティネーションアクセス制御部、２１はＤＭＡＣ２において転送元へのアクセスを制御するソースアクセス制御部、２２はＤＭＡＣ２において転送先へのアクセスを制御するデスティネーションアクセス制御部、２３，２４はアドレスバス、３１，３２はアドレスデコーダ部、３４，３５，３６はスレーブバスアービタ、３７はＣＰＵ１とスレーブデバイスとの読み書き用バス、３０はＤＭＡＣ２とスレーブデバイスとの読み書き用バスである。ここでは説明のため、読み書き用バス３０は、その内部を読み出し専用バス３８と書き込み専用バス３９とに分けて図示している。３３は読み出したデータを一時的に蓄えるバッファであり、このバッファ３３は読み出し専用バス３８と書き込み専用バス３９とをつないでいる。
【０００４】
上記構成のデータ転送を伴う情報処理装置では、マスタであるＣＰＵ１は、スレーブデバイスとのデータ転送を行い、他方のマスタであるＤＭＡＣ２は、スレーブデバイス間のデータ転送を行う。ＤＭＡＣ２によるスレーブデバイス間のデータ転送は、転送元デバイスから読み出したデータを一時的にバッファ３３に蓄え、転送先デバイスへはバッファ３３から読み出したデータを転送するといった、分割した２回のアクセスによって実行されている。そのため、スレーブデバイス間のデータ転送のサイクルは、最高でも２パス転送サイクルである。
【０００５】
以下に詳細な転送手順を、スレーブバス４に接続されているデバイスからスレーブバス６に接続されているデバイスへのデータ転送を例にとって説明する。
【０００６】
図１３は、図１２の構成における転送時のタイミング図を示している。
【０００７】
まず時刻t1において、ＤＭＡＣ２におけるソースアクセス制御部２１は、転送元アドレスをアドレスバス２４を介してＢＣＵ３のアドレスデコーダ部３２に伝達する。ＢＣＵ３のアドレスデコーダ部３２は、受け取った転送元アドレスがどのスレーブバスへのアクセスかを解析する。ここでの転送元アドレスはスレーブバス４上のスレーブデバイス１４へのアクセスであると解析される。ＢＣＵ３は、読み出し専用バス３８およびスレーブバスアービタ３４を用いてスレーブバス４上のスレーブデバイス１４からデータを読み出し、読み出し専用バス３８を介してデータをバッファ３３に一時格納する。
【０００８】
時刻t2において、ＤＭＡＣ２におけるデスティネーションアクセス制御部２２は、転送先アドレスをアドレスバス２４を介してＢＣＵ３のアドレスデコーダ部３２に伝達する。ＢＣＵ３のアドレスデコーダ部３２は、受け取った転送先アドレスがスレーブバス６上のスレーブデバイス１６へのアクセスであると解析する。ＢＣＵ３は、書き込み専用バス３９およびスレーブバスアービタ３６を用いてバッファ３３の一時格納データを書き込み専用バス３９を介してスレーブバス６上のスレーブデバイス１６へ書き込む。
【０００９】
以上のように、従来の情報処理装置では２パスのデータ転送を行っている。したがって、転送性能は、最高でも２パス転送サイクルである。
【００１０】
上記とは別に、バスが２つだけ存在するバス制御装置であって、１パス転送を行うためにバッファを経由しない転送パスを備えたバス制御装置もある（たとえば、特許文献１参照）。特許文献１に記載の装置のブロック図を図１４に示す。特許文献１に記載の装置は、転送元バスと転送先バスがそれぞれ獲得可能な場合にバッファを経由しないパス（インナーデータバス）を用いてデータ転送を行う。
【特許文献１】特開平１１−８５６６８号公報（第４−５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
以上のように、スレーブデバイス間のデータ転送時にバッファを経由する従来の情報処理装置では、転送元スレーブデバイスからバッファへのデータ転送とバッファから転送先スレーブデバイスへのデータ転送という、２パス転送を行っている。そのため、転送性能は最高でも２パス転送サイクルにしかならない。
【００１２】
また、特許文献１にはバッファを経由しないデータ転送を行うバス制御装置が開示されているが、このバス制御装置ではデータ転送の対象となるバスは２つだけという限定された条件下での実施方法が開示されているだけである。すなわち、複数のスレーブバスがある情報処理装置でデータ転送を行う方法は開示されていない。
【００１３】
そこで本発明では、複数のスレーブバスがある情報処理装置で、バッファを経由しない１パス転送を行うことでデータ転送性能を向上させるとともに、転送元バスと転送先バスに同時にアクセスできない場合が生じても全体的な転送効率を低下させない情報処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明は、上記の課題を解決するために次のような手段を講じる。
【００１５】
上記目的を達成するために、本発明の情報処理装置は以下のような構成となっている。
【００１６】
第１の解決手段として、本発明による情報処理装置は、複数のマスタが複数のスレーブデバイスとのデータ転送を行う情報処理装置であって、マスタより出力される転送元アドレスと転送先アドレスをデコードし転送元・転送先デバイスが接続されるスレーブバスが同一であるか否かを検出する一致検出手段と、前記転送元デバイスからの読み出しデータを直接的に前記転送先デバイスに転送する直接転送パスと、前記転送元デバイスからの読み出しデータをバッファを経由して前記転送先デバイスに転送するバッファ介在パスと、前記一致検出手段の出力に応じて前記直接転送パスと前記バッファ介在パスを選択するセレクタとを備えた構成とされている。そして、前記一致検出手段が前記転送元デバイス、前記転送先デバイスが接続されるスレーブバスが異なることを検出した場合に、前記セレクタが前記直接転送パスを選択し、前記転送元デバイス、前記転送先デバイスが接続されるスレーブバスが同じであることを検出した場合は、前記セレクタが前記バッファ介在パスを選択するように構成されている。
【００１７】
この構成によれば、転送元スレーブバスと転送先スレーブバスが同一のときは、従来と同様のデータ転送であるが、転送元スレーブバスと転送先スレーブバスが異なるときは、バッファを経由しないパスでデータ転送を行うため（１パス転送であるため）、バッファによるレイテンシやスループットの低下を起こすことなくデータ転送することができる。データ転送性能は最高で１パス転送サイクルと向上させることができる。
【００１８】
第２の解決手段として、本発明による情報処理装置は、上記第１の解決手段において、さらに、前記転送元・転送先アドレスを含む転送情報を複数個管理する転送情報管理手段と、前記転送元スレーブバス、前記転送先スレーブバスがアクセス可能であるかどうかを判定するスレーブバス状態判定手段とを備えた構成とされている。そして、前記スレーブバス状態判定手段がデータ転送を行うスレーブバスへのアクセスが不可能であると判定した場合に、前記転送情報管理手段は直ちに他の転送情報を用いたデータ転送を開始させるように構成されている。
【００１９】
この構成によれば、転送元スレーブバスと転送先スレーブバスが同時にアクセスできない場合、直ちに他の転送情報によるデータ転送を開始することができ、全体としてのＤＭＡの転送性能を向上できる。
【００２０】
第３の解決手段として、本発明による情報処理装置は、上記第２の解決手段において、さらに、前記一致検出手段によりスレーブバスがアクセス不可能と検出された場合にアクセス可能となるまで待機する時間を記憶する待機時間記憶手段（カウンタ初期値格納手段）と、前記待機時間記憶手段に格納している待機時間だけ待機するウェイトカウント手段とを備えた構成とされている。そして、前記スレーブバス状態判定手段がスレーブバスへのアクセス不可能を検出した場合に、前記ウェイトカウント手段は計時を開始し、前記待機時間記憶手段に格納している待機時間内に前記スレーブバスへアクセス可能な状態になればデータ転送を開始し、前記待機時間記憶手段に格納している待機時間を過ぎても前記スレーブバスへアクセス不可能である状態が続けば前記転送情報管理手段が他の転送情報を用いたデータ転送を開始させるように構成されている。
【００２１】
この構成によれば、他マスタによるスレーブバスの占有時間が長くて、そのアクセスサイクル数が転送情報管理手段における転送情報切り替えの基準サイクル数よりも多い場合には、他の転送情報による転送に切り替えるが、逆に、他マスタによるスレーブバスの占有時間が短くて、そのアクセスサイクル数が転送情報切り替えの基準サイクル数以下である場合には、他の転送情報による転送への切り替えは見送るので、上記第２の解決手段の場合に比べて、全体としてのＤＭＡの転送性能を向上させることができる。
【００２２】
第４の解決手段として、本発明による情報処理装置は、上記第３の解決手段において、さらに、前記待機時間記憶手段に格納する待機時間を更新する待機時間更新手段（カウンタ初期値更新手段）を備えた構成とされている。そして、データ転送が正常終了した時点で、前記待機時間更新手段が前記待機時間記憶手段に格納する待機時間を前記ウェイトカウント手段の作動時間を基に算出した値に更新することによって、前記スレーブバス状態判定手段がスレーブバスへのアクセス不可能を検出した時点から前記ウェイトカウント手段が待機する時間を自動的に調整するように構成されている。
【００２３】
この構成によれば、転送元スレーブバスと転送先スレーブのアクセス権が同時に確保できない状態が多く発生しても、常に適応的に最適値の待機時間が待機時間記憶手段に自動設定されるため、第３の解決手段に比べて、さらに全体としてのＤＭＡの転送性能を向上できる。
【００２４】
第５の解決手段として、本発明による情報処理装置は、上記第１〜第４の解決手段において、さらに、転送情報の決定方法を複数記憶しておき次のデータ転送でどの転送情報を用いるかを決定する転送情報決定手段と、過去の転送結果を記憶する転送履歴記憶手段と、前記転送情報決定手段が備える複数の決定方法のうちどの決定方法を使用するかを記憶する決定方法選択手段とを備えた構成とされている。そして、前記スレーブバス状態判定手段によりスレーブバスへのアクセス不可能を検出して他の転送情報を用いたデータ転送を開始する場合、前記転送情報管理手段は、前記転送情報決定手段が前記転送履歴記憶手段と前記決定方法選択手段を参照して決定した転送情報を用いるように構成されている。
【００２５】
より具体的には、前記転送情報決定手段として、前記決定方法選択手段の内容によって、転送情報決定の際に、前記転送履歴記憶手段を参照し過去にデータ転送の失敗が起きていない転送情報を優先するか、あるいは、前記転送情報管理手段により優先度を高く設定されている転送情報を優先するかがある。
【００２６】
この構成によれば、次のデータ転送を行うに当たり、転送順位の優先度を重視するのか過去の転送履歴を重視するのか等の好ましいと思われる転送情報を選択でき、全体としてのＤＭＡ転送性能をさらに向上できる。どの決定方法を使用するかについては、ソフトウェア等から制御することができる。
【発明の効果】
【００２７】
本発明によれば、転送元スレーブバスと転送先スレーブバスが異なるときは、バッファを経由しない状態で１パス転送を行うため、バッファによるレイテンシやスループットの低下を起こすことなくデータ転送することができる。データ転送性能は最高で１パス転送サイクルと向上させることができる。
【００２８】
また、転送元スレーブバスと転送先スレーブバスが同時にアクセスできない場合には、直ちに他の転送情報によるデータ転送を開始するように構成することにより、全体としてのＤＭＡの転送性能を向上できる。
【００２９】
また、他マスタによるスレーブバスの占有時間が短くて、そのアクセスサイクル数が転送情報切り替えの基準サイクル数以下である場合に、他の転送情報による転送への切り替えは見送るように構成することにより、さらに、全体としてのＤＭＡの転送性能を向上できる。
【００３０】
また、常に適応的に最適値の待機時間が待機時間記憶手段に自動設定されるように構成することにより、転送元スレーブバスと転送先スレーブのアクセス権が同時に確保できない状態が多く発生しても、全体としてのＤＭＡの転送性能をされに向上できる。
【００３１】
また、次のデータ転送を行うに当たり、転送順位の優先度を重視するのか過去の転送履歴を重視するのか等の好ましいと思われる転送情報を選択できるように構成することにより、全体としてのＤＭＡ転送性能をさらに向上できる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明にかかわる情報処理装置を実施するための最良の形態を、図面を参照しながら説明する。
【００３３】
（実際の形態１）
本発明の実施の形態１では、転送元スレーブバスと転送先スレーブバスが異なるバスの場合、バッファを経由しないデータ転送を行うことで転送性能の向上を図ることを目的としている。
【００３４】
図１は、本発明における実施の形態１の情報処理装置の構成を示すブロック図である。
【００３５】
図１において、符号の１はＣＰＵ（中央演算処理装置）、２はＤＭＡＣ（DirectMemory Access Controller）、３はＢＣＵ（バスコントロールユニット）、４，５，６はスレーブバス、１４，１５，１６はスレーブデバイス、１１はＣＰＵ１において転送先へのアクセスを制御するデスティネーションアクセス制御部、２１はＤＭＡＣ２において転送元へのアクセスを制御するソースアクセス制御部、２２はＤＭＡＣ２において転送先へのアクセスを制御するデスティネーションアクセス制御部、２３，２４，２５はアドレスバス、３０は読み書き用バス、３１，３２はアドレスデコーダ部、３３はバッファ、３４，３５，３６はスレーブバスアービタ、３７は読み書き用バス、３８は読み出し専用バス、３９は書き込み専用バス、４３はバッファ３３を経由するバッファ介在パスである。
【００３６】
以上の構成要素は、図１２と同様であるので、詳しい説明は省略する。新たな構成要素として、５１はアドレスデコーダ部、５２は一致検出部、５３はバッファ３３を経由しない直接転送パス、５４はセレクタである。
【００３７】
ＣＰＵ１におけるデスティネーションアクセス制御部１１はアドレスバス２３およびインターフェースを介してＢＣＵ３におけるアドレスデコーダ部３１に接続されている。ＤＭＡＣ２におけるソースアクセス制御部２１はアドレスバス２４およびインターフェースを介してＢＣＵ３におけるアドレスデコーダ部３２に接続されている。ＤＭＡＣ２におけるデスティネーションアクセス制御部２２はアドレスバス２５およびインターフェースを介してＢＣＵ３におけるアドレスデコーダ部５１に接続されている。
【００３８】
スレーブデバイス１４はスレーブバス４およびインターフェースを介してＢＣＵ３におけるスレーブバスアービタ３４に接続されている。スレーブデバイス１５はスレーブバス５およびインターフェースを介してＢＣＵ３におけるスレーブバスアービタ３５に接続されている。スレーブデバイス１６はスレーブバス６およびインターフェースを介してＢＣＵ３におけるスレーブバスアービタ３６に接続されている。
【００３９】
ＢＣＵ３は、次のように構成されている。
【００４０】
ＣＰＵ１に対応するアドレスデコーダ部３１と複数のスレーブバスアービタ３４，３５，３６とが読み書き用バス３７を介して接続されている。
【００４１】
読み書き用バス３０は、読み出し専用バス３８と書き込み専用バス３９とを有している。読み出し専用バス３８は、ＤＭＡＣ２におけるソースアクセス制御部２１に対応したアドレスデコーダ部３２に接続されているとともに、複数のスレーブバスアービタ３４，３５，３６に接続されている。書き込み専用バス３９は、ＤＭＡＣ２におけるデスティネーションアクセス制御部２２に対応したアドレスデコーダ部５１からのバスに接続されているとともに、複数のスレーブバスアービタ３４，３５，３６へのバスに接続されている。
【００４２】
一致検出部５２は、ＤＭＡＣ２におけるソースアクセス制御部２１に対応したアドレスデコーダ部３２とデスティネーションアクセス制御部２２に対応したアドレスデコーダ部５１とに接続され、アドレスデコーダ部３２のデコード結果である転送元デバイスが接続されているスレーブバスとアドレスデコーダ部５１のデコード結果である転送先デバイスが接続されているスレーブバスが同一であるか否かを検出するように構成されている。読み出し専用バス３８と書き込み専用バス３９との接続が２系統となっている。それは、バッファ３３を経由するバッファ介在パス４３とバッファ３３を経由しない直接転送パス５３とであり、入り口と出口にセレクタ５４が設けられている。すなわち、読み出し専用バス３８は入り口側のセレクタ５４を介して２つのパス４３，５３に接続され、２つのパス４３，５３は出口側のセレクタ５４を介して書き込み専用バス３９に接続されている。セレクタ５４は一致検出部５２による検出結果に応じて切り替え制御されるように構成されている。すなわち、一致検出部５２による検出結果が転送元スレーブバスと転送先スレーブバスの一致を示しているときは、セレクタ５４はバッファ３３を経由するバッファ介在パス４３を選択し、このバッファ介在パス４３を介して読み出し専用バス３８と書き込み専用バス３９とを接続する。一方、一致検出部５２による検出結果が転送元スレーブバスと転送先スレーブバスの不一致を示しているときは、セレクタ５４はバッファ３３を経由しない直接転送パス５３を選択し、この直接転送パス５３を介して読み出し専用バス３８と書き込み専用バス３９とを接続する。
【００４３】
次に、以上のように構成された本実施の形態の情報処理装置の動作を説明する。
【００４４】
（ａ）まず、転送元アドレスと転送先アドレスとが異なる場合の動作を説明する。
【００４５】
ここでは一例として、スレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６へのデータ転送を例にとって、図２の転送時のタイミング図に基づいて説明する。
【００４６】
時刻t4において、ＤＭＡＣ２は、転送元アドレスから転送先アドレスへのデータ転送を開始するため、ＢＣＵ３に転送元アドレスと転送先アドレスを同時に伝達する。すなわち、ソースアクセス制御部２１がアドレスバス２４に転送元アドレスを送出すると同時に、デスティネーションアクセス制御部２２がアドレスバス２５に転送先アドレスを送出する。
【００４７】
ＢＣＵ３において、アドレスデコーダ部３２は受け取った転送元アドレスのデコードを行い、アドレスデコーダ部５１は受け取った転送先アドレスのデコードを行う。ここでは、転送元アドレスがスレーブバス４へのアクセスであり、転送先アドレスがスレーブバス６へのアクセスであると解析する。このデコード結果は一致検出部５２に送られる。一致検出部５２は、転送元スレーブバスと転送先スレーブバスを比較し、転送元スレーブバスと転送先スレーブバスとは互いに異なるバスであると判定する。
【００４８】
一致検出部５２による判定結果はセレクタ５４に伝達される。転送元スレーブバスと転送先スレーブバスとが異なるとの判定結果を受けたセレクタ５４は、バッファ３３を経由しない直接転送パス５３を選択する。これによって、読み出し専用バス３８が直接転送パス５３を介して書き込み専用バス３９に接続される。
【００４９】
ＢＣＵ３は、スレーブバス４に対応するスレーブバスアービタ３４とスレーブバス６に対応するスレーブバスアービタ３６にバス権の要求を行い、スレーブバス４とスレーブバス６を確保する。スレーブバス４に転送元アドレスが伝達されるとともに、スレーブバス６に転送先アドレスが伝達される。転送元アドレスを伝達するスレーブバスと転送先アドレスを伝達するスレーブバスが互いに異なるので、このような同時の伝達が可能である。
【００５０】
次いで、転送元であるスレーブバス４上のスレーブデバイス１４からデータを読み出す。読み出したデータは、読み出し専用バス３８と、セレクタ５４によって選択された直接転送パス５３と、書き込み専用バス３９を経由して、転送先であるスレーブバス６上のスレーブデバイス１６に書き込まれる。
【００５１】
以上のように、転送元スレーブバスと転送先スレーブバスが異なる場合には、１パス転送を実現できる。すなわち、バッファによるレイテンシやスループットの低下を起こすことなくデータ転送することができ、データ転送性能を向上できるという効果が得られる。
【００５２】
（ｂ）次に、転送元アドレスと転送先アドレスとが同一の場合の動作を説明する。
【００５３】
ここでは一例として、スレーブバス６上のスレーブデバイス１６から同一のスレーブバスであるスレーブバス６上のスレーブデバイス１６へのデータ転送を例にとって、図３の転送時のタイミング図に基づいて説明する。
【００５４】
時刻t4において、ＤＭＡＣ２は、転送元アドレスから転送先アドレスへのデータ転送を開始するため、ＢＣＵ３に転送元アドレスと転送先アドレスを同時に伝達する。すなわち、ソースアクセス制御部２１がアドレスバス２４に転送元アドレスを送出すると同時に、デスティネーションアクセス制御部２２がアドレスバス２５に転送先アドレスを送出する。
【００５５】
ＢＣＵ３において、アドレスデコーダ部３２は受け取った転送元アドレスのデコードを行い、アドレスデコーダ部５１は受け取った転送先アドレスのデコードを行う。ここでは、転送元アドレスがスレーブバス６へのアクセスであり、転送先アドレスも同じくスレーブバス６へのアクセスであると解析する。このデコード結果は一致検出部５２に送られる。一致検出部５２は、転送元スレーブバスと転送先スレーブバスを比較し、転送元スレーブバスと転送先スレーブバスとが互いに同一のバスであると判定する。
【００５６】
一致検出部５２による判定結果はセレクタ５４に伝達される。転送元スレーブバスと転送先スレーブバスとが同一であるとの判定結果を受けたセレクタ５４は、バッファ３３を経由するバッファ介在パス４３を選択する。これによって、読み出し専用バス３８がバッファ介在パス４３を介して書き込み専用バス３９に接続される。
【００５７】
ＢＣＵ３は、スレーブバス６に対応するスレーブバスアービタ３６にバス権の要求を行い、スレーブバス６を確保する。スレーブバス６に転送元アドレスが伝達される。転送先アドレスは転送元アドレスと同じであるので、転送先アドレスのスレーブバス６への伝達は行われない。
【００５８】
次いで、転送元であるスレーブバス６上のスレーブデバイス１６からデータを読み出す。読み出したデータは、読み出し専用バス３８を経由して、セレクタ５４によって選択されたバッファ介在パス４３内のバッファ３３に一旦格納される。
【００５９】
時刻t6において、ＢＣＵ３は、スレーブバス６に転送先アドレスを伝達する。これによって、バッファ３３に格納されたデータは、書き込み専用バス３９を経由してスレーブバス６上のスレーブデバイス１６に書き込まれる。
【００６０】
以上のように、転送元スレーブバスと転送先スレーブバスが同一のものである場合の動作は、従来の技術と同様である。
【００６１】
以上をまとめると、本実施の形態によれば、転送元スレーブバスと転送先スレーブバスが同一のときは、従来と同様の２パスのデータ転送であるが、転送元スレーブバスと転送先スレーブバスが異なるときは、１パスのデータ転送を実現でき、バッファによるレイテンシやスループットの低下を起こすことなくデータ転送することができる。すなわち、データ転送性能を向上できるという効果が得られる。
【００６２】
（実施の形態２）
上記の実施の形態１の場合には、ＤＭＡＣ２による転送開始時に転送元スレーブバスと転送先スレーブバスのどちらかのバスあるいは両方のバスへのアクセスができないときは、データ転送することができない。そこで、本発明の実施の形態２は、行おうとするデータ転送が実行できないときは他のデータ転送を試みることで、全体の転送性能を向上させるものである。
【００６３】
図４は、本発明における実施の形態２の情報処理装置の構成を示すブロック図である。
【００６４】
図４では、図１に示す構成要素に加えて、ＢＣＵ３内にスレーブバス状態判定部６１が設けられ、ＤＭＡＣ２内に転送情報管理部６２が設けられている。
【００６５】
スレーブバス状態判定部６１は、アドレスデコーダ部３１，３２，５１がどのスレーブバスを使用しているかに基づいて、転送元スレーブバス、転送先スレーブバスがアクセス可能であるかどうかを判定し、アクセス不可のときにアクセス不可能通知信号６３をアサートして転送情報管理部６２に送出するように構成されている。転送情報管理部６２は、転送元アドレス・転送先アドレスを含む転送情報を複数個管理し、スレーブバス状態判定部６１からアクセス不可能通知信号６３のアサートを受けると、他の転送情報をソースアクセス制御部２１およびデスティネーションアクセス制御部２２に伝達するように構成されている。その他の構成については実施の形態１の場合の図１と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
【００６６】
次に、以上のように構成された本実施の形態の情報処理装置の動作を説明する。
【００６７】
ＣＰＵ１がスレーブバス４上のスレーブデバイス１４へアクセスを行っている最中に、ＤＭＡＣ２がスレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６へのデータ転送を行おうとした場合を例にとって、図５の転送時のタイミング図に基づいて説明する。図５は、アドレスバス２３〜２５の値と、スレーブバス４〜６に対応するバスマスタと、アクセス不可能通知信号６３のタイミングを示す。
【００６８】
時刻t8において、ＣＰＵ１はスレーブバス４へのアクセスを開始する。その後、時刻t9において、ＤＭＡＣ２は、転送元アドレスＡから転送先アドレスＢへのデータ転送を開始するため、ＢＣＵ３に転送元アドレスＡと転送先アドレスＢを同時に伝達する。すなわち、ソースアクセス制御部２１がアドレスバス２４に転送元アドレスＡを送出すると同時に、デスティネーションアクセス制御部２２がアドレスバス２５に転送先アドレスＢを送出する。これは、転送情報管理部６２における第１順位であるチャンネル０に相当する。
【００６９】
ＢＣＵ３において、アドレスデコーダ部３２は受け取った転送元アドレスＡのデコードを行い、アドレスデコーダ部５１は受け取った転送先アドレスＢのデコードを行う。ここでは、転送元アドレスＡがスレーブバス４へのアクセスであり、転送先アドレスＢがスレーブバス６へのアクセスであると解析する。このデコード結果はスレーブバス状態判定部６１に送られる。スレーブバス状態判定部６１は、転送元スレーブバスであるスレーブバス４と転送先スレーブバスであるスレーブバス６が確保可能か判定を行う。ここで、スレーブバス４はＣＰＵ１によって使用されており、スレーブバス６しか確保できないと判定する。
【００７０】
時刻t10において、前記のスレーブバス状態判定部６１による判定結果を基に、ＢＣＵ３はスレーブバス６を確保する。一方、スレーブバス状態判定部６１は、データ転送のためのアクセスが不可能であることを通知するアクセス不可能通知信号６３をアサートし、転送情報管理部６２へ送出する。
【００７１】
時刻t11において、転送情報管理部６２は、アクセス不可能通知信号６３のアサートを受けると、直ちに、他の転送情報をソースアクセス制御部２１、デスティネーションアクセス制御部２２に伝達する。
【００７２】
ここで転送情報管理部６２には、転送元アドレスＡから転送先アドレスＢへのデータ転送の次に優先度の高い転送として、転送元アドレスＣから転送先アドレスＤへのデータ転送が設定されているとする。すると、ＤＭＡＣ２は、アクセス不可能通知信号６３のアサートを受けて、直ちに転送元アドレスＣと転送先アドレスＤをＢＣＵ３へ伝達する。すなわち、ソースアクセス制御部２１がアドレスバス２４に転送元アドレスＣを送出すると同時に、デスティネーションアクセス制御部２２がアドレスバス２５に転送先アドレスＤを送出する。これは、転送情報管理部６２における第２順位であるチャンネル１に相当する。
【００７３】
時刻t12において、スレーブバス状態判定部６１は、ＢＣＵ３へ新たなアドレスが伝達されたことを判定して、アクセス不可能通知信号６３をネゲートする。また、アドレスデコーダ部３２は受け取った転送元アドレスＣのデコードを行い、アドレスデコーダ部５１は受け取った転送先アドレスＤのデコードを行う。ここでは、転送元アドレスＤがスレーブバス５へのアクセスであり、転送先アドレスＤがスレーブバス６へのアクセスであると解析する。このデコード結果はスレーブバス状態判定部６１に送られる。スレーブバス状態判定部６１は、転送元スレーブバスであるスレーブバス５と転送先スレーブバスであるスレーブバス６が確保可能か判定を行う。ここで、転送元スレーブバスであるスレーブバス５は空いており、転送先スレーブバスであるスレーブバス６は既にアドレスデコーダ部５１によってＤＭＡＣ２用に確保していると判定される。
【００７４】
ＢＣＵ３は、スレーブバスアービタ３５にバス権の要求を行い、ＤＭＡＣ２のアクセスのためにスレーブバス５を確保でき、転送元スレーブバスと転送先スレーブバスの両方を同時にアクセスすることが可能となる。これと同時に、一致検出部５２は、転送元スレーブバスと転送先スレーブバスは異なるバスであると判定し、セレクタ５４にバッファ３３を経由しない直接転送パス５３を選択させる。
【００７５】
ＢＣＵ３は、転送元であるスレーブバス５上のスレーブデバイス１５からデータを読み出す。読み出したデータは、読み出し専用バス３８と、セレクタ５４によって選択された直接転送パス５３と、書き込み専用バス３９を経由して、転送先であるスレーブバス６上のスレーブデバイス１６に書き込まれる。
【００７６】
以上のように、転送元スレーブバスと転送先スレーブバスが同時にアクセスできない場合は、直ちに他の転送情報によるデータ転送を開始することができ、全体としてのＤＭＡの転送性能を向上できるという効果が得られる。
【００７７】
ＣＰＵ１とＤＭＡＣ２とが同時に同じスレーブバスへのアクセスを行う状況は、特異な状況ではなく頻繁に起こり得る状況であり、本実施の形態の情報処理装置はそのような状況に的確に対応することができる。
【００７８】
なお、スレーブバス状態判定部６１の構成については、転送元スレーブバスと転送先スレーブバスがアクセス可能であるかどうかを判定する際、アドレスデコーダ部３１，３２，５１に問い合わせるだけでなく、スレーブバスアービタ３４，３５，３６に自身が空いているかを問い合わせてもよい。
【００７９】
（実施の形態３）
上記の実施の形態２においては、他マスタがスレーブバスを使用しているためにデータ転送できないと判定すると、直ちに転送情報を切り替えている。しかし、他マスタによるスレーブバスの占有時間（アクセスサイクル数）が少ない場合には、他マスタによるスレーブバスへのアクセスの終了を待つ方が転送性能上好ましい場合がある。本発明の実施の形態３は、そのような場合に対応するものである。
【００８０】
図６は、本発明における実施の形態３の情報処理装置の構成を示すブロック図である。
【００８１】
図６では、図４における構成要素に加えて、ＤＭＡＣ２内に、ウェイトカウント部７１とカウンタ初期値格納部７２とが設けられている。カウンタ初期値格納部７２が特許請求の範囲にいう「待機時間記憶手段」に対応している。カウンタ初期値格納部７２は、ウェイトカウント部７１に設定してカウントダウンさせる待ち時間であるカウンタ初期値を格納している。ウェイトカウント部７１は、スレーブバス状態判定部６１からアクセス不可能通知信号６３のアサートを受けたときに、直ちにカウンタ初期値格納部７２からカウンタ初期値を入力して設定し、カウントダウン動作を行うように構成されている。そして、アンダーフローを発生すると、転送失敗通知信号７３をアサートし、転送情報管理部６２へ送出するように構成されている。また、アンダーフロー発生前にアクセス不可能通知信号６３がネゲートすると、カウントダウン動作を中止するように構成されている。その他の構成については実施の形態２の場合の図４と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
【００８２】
次に、以上のように構成された本実施の形態の情報処理装置の動作を説明する。
【００８３】
ＣＰＵ１がスレーブバス４上のスレーブデバイス１４へアクセスを行っている最中に、ＤＭＡＣ２がスレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６へのデータ転送を行おうとした場合を例にとって、図７および図８の転送時のタイミング図に基づいて説明する。図７および図８は、アドレスバス２３〜２５の値と、スレーブバス４〜６に対応するバスマスタと、アクセス不可能通知信号６３と、転送失敗通知信号７３のタイミング図を示す。
【００８４】
（ａ）まず、図７に基づいて、アサートしたアクセス不可能通知信号がアンダーフロー発生前にネゲートした場合の動作を説明する。
【００８５】
時刻t15において、ＣＰＵ１はスレーブバス４へのアクセスを開始する。その後、時刻t16において、ＤＭＡＣ２は、転送元アドレスＡから転送先アドレスＢへのデータ転送を開始するため、ＢＣＵ３に転送元アドレスＡと転送先アドレスＢを同時に伝達する。すなわち、ソースアクセス制御部２１がアドレスバス２４に転送元アドレスＡを送出すると同時に、デスティネーションアクセス制御部２２がアドレスバス２５に転送先アドレスＢを送出する。これは、転送情報管理部６２における第１順位であるチャンネル０に相当する。
【００８６】
ＢＣＵ３において、アドレスデコーダ部３２は受け取った転送元アドレスＡのデコードを行い、アドレスデコーダ部５１は受け取った転送先アドレスＢのデコードを行う。ここでは、転送元アドレスＡがスレーブバス４へのアクセスであり、転送先アドレスＢがスレーブバス６へのアクセスであると解析する。このデコード結果はスレーブバス状態判定部６１に送られる。スレーブバス状態判定部６１は、転送元スレーブバスであるスレーブバス４と転送先スレーブバスであるスレーブバス６が確保可能か判定を行う。ここで、スレーブバス４はＣＰＵ１によって使用されており、スレーブバス６しか確保できないと判定する。
【００８７】
時刻t17において、前記のスレーブバス状態判定部６１による判定結果を基に、ＢＣＵ３はスレーブバス６を確保する。一方、スレーブバス状態判定部６１は、データ転送のためのアクセスが不可能であることを通知するアクセス不可能通知信号６３をアサートする。実施の形態２の場合は、アサートしたアクセス不可能通知信号６３を転送情報管理部６２へ送出するが。本実施の形態の場合は、ウェイトカウント部７１に送出する。
【００８８】
ウェイトカウント部７１は、アクセス不可能通知信号６３のアサートを受けると、直ちに、カウンタ初期値格納部７２からカウンタ初期値を入力して設定した上で、カウントダウン動作を開始する。
【００８９】
ウェイトカウント部７１がアンダーフローを発生するよりも前に、時刻t18において、スレーブバス４がＣＰＵ１のアクセスから開放されたとする。この結果、ＢＣＵ３がＤＭＡＣ２のためにスレーブバス４を確保できたとする。すると、スレーブバス状態判定部６１はアクセス不可能通知信号６３をネゲートする。アクセス不可能通知信号６３がネゲートしたので、ＢＣＵ３は、スレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６への１パス転送を行う。そして、ウェイトカウント部７１はカウントダウン動作を中止する（アンダーフロー発生前）。
【００９０】
（ｂ）次に、図８に基づいて、アクセス不可能通知信号のアサート後、アンダーフローが発生した場合の動作を説明する。
【００９１】
時刻t17でアクセス不可能通知信号６３がアサートされ、ウェイトカウント部７１がカウントダウン動作を行い、スレーブバス４がＣＰＵ１から開放されないまま、時刻t20において、ウェイトカウント部７１がアンダーフローを発生したとする。これにより、ウェイトカウント部７１は転送失敗通知信号７３をアサートし、転送情報管理部６２へ送出する。
【００９２】
時刻t21において、転送情報管理部６２は、転送失敗通知信号７３がアサートされたことを判定すると、直ちに、他の転送情報をソースアクセス制御部２１、デスティネーションアクセス制御部２２に伝達する。時刻t22において、スレーブバス５を確保し、転送失敗通知信号７３をネゲートする。そして、実施の形態２で説明したのと同様に、他の転送情報によるデータ転送を開始する。
【００９３】
以上のように、他マスタによるスレーブバスの占有時間が長くて、そのアクセスサイクル数が転送情報管理部６２における転送情報切り替えの基準サイクル数よりも多い場合には、他の転送情報による転送に切り替えるが、逆に、他マスタによるスレーブバスの占有時間が短くて、そのアクセスサイクル数が転送情報切り替えの基準サイクル数以下である場合には、他の転送情報による転送への切り替えは見送るので、実施の形態２の場合に比べて、全体としてのＤＭＡの転送性能を向上できるという効果が得られる。
【００９４】
他マスタによるスレーブバスのアクセスサイクル数が転送情報切り替えの基準サイクル数以下であるという条件は、特異な条件ではなく一般的に満たし得る条件であり、本実施の形態の情報処理装置はそのような条件に的確に対応することができる。
【００９５】
（実施の形態４）
上記の実施の形態３においては、カウンタ初期値格納部７２に設定するカウンタ初期値について、その最適値が情報処理装置や状況によって刻々と変化すれば、転送性能の低下につながる可能性がある。そこで本発明の実施の形態４は、カウンタ初期値格納部７２に設定する最適値をリアルタイムに算出することによって、全体としての転送性能を向上させるものである。
【００９６】
図９は、本発明における実施の形態４の情報処理装置の構成を示すブロック図である。
【００９７】
図９では図６における構成要素に加え、カウンタ初期値更新部８１を設けている。カウンタ初期値更新部８１は特許請求の範囲にいう「待機時間更新手段」に相当している。このカウンタ初期値更新部８１は、ウェイトカウント部７１がカウントダウン動作を中止したときに、カウンタ初期値格納部７２の値からウェイトカウント部７１の値を引いた値を、ウェイトカウント部７１の最適値としてカウンタ初期値格納部７２に格納する機能を有するものである。その他の構成については実施の形態３の場合の図６と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
【００９８】
次に、以上のように構成された本実施の形態の情報処理装置の動作を説明する。
【００９９】
ＣＰＵ１がスレーブバス４上のスレーブデバイス１４へアクセスを行っている最中に、ＤＭＡＣ２がスレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６へのデータ転送を行おうとした場合を例にとると、以下の手順が実行される。
【０１００】
ＤＭＡＣ２は転送開始時に、転送元アドレスＡと転送先アドレスＢの両方を同時にＢＣＵ３へ伝達する。
【０１０１】
ＢＣＵ３は、アドレスデコーダ部３２で転送元アドレスＡのデコードを行うとともに、アドレスデコーダ部５１で転送先アドレスＢのデコードを行い、転送元アドレスＡがスレーブバス４へのアクセスであり、転送先アドレスＢがスレーブバス６へのアクセスであると解析する。このデコード結果はスレーブバス状態判定部６１に送られる。スレーブバス状態判定部６１は、転送元スレーブバスであるスレーブバス４と転送先スレーブバスであるスレーブバス６が確保可能か判定を行う。ここで、スレーブバス４はＣＰＵ１によって使用されており、スレーブバス６しか確保できないと判定する。ＢＣＵ３はスレーブバス６を確保するが、スレーブバス状態判定部６１はウェイトカウント部７１へアクセス不可能通知信号６３をアサートする。
【０１０２】
ウェイトカウント部７１は、アクセス不可能通知信号６３を受けると、直ちに、カウンタ初期値格納部７２からカウンタ初期値を入力して設定した上で、カウントダウン動作を開始する。
【０１０３】
ウェイトカウント部７１がアンダーフローを発生するよりも前に、スレーブバス４がＣＰＵ１のアクセスから開放されたとする。この結果、ＢＣＵ３がＤＭＡＣ２のためにスレーブバス４を確保できたとする。すると、スレーブバス状態判定部６１はアクセス不可能通知信号６３をネゲートする。アクセス不可能通知信号６３がネゲートしたので、ＢＣＵ３は、スレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６への１パス転送を行う。そして、ウェイトカウント部７１はカウントダウン動作を中止する（アンダーフロー発生前）。
【０１０４】
ウェイトカウント部７１がカウントダウン動作を中止すると、カウンタ初期値更新部８１は、カウンタ初期値格納部７２の値からウェイトカウント部７１の値を引いた値をウェイトカウント部７１の最適値と判定してカウンタ初期値格納部７２に格納する。
【０１０５】
例えば、カウンタ初期値を“１００”とし、クロックが“９５”進んだところでカウントダウン動作が中止されたとする。ウェイトカウント部７１のカウント値は、「１００−９５」の“５”となっている。そこで、カウンタ初期値格納部７２の値“１００”からウェイトカウント部７１の値“５”を引いて“９５”を割り出し、この“９５”をウェイトカウント部７１の最適値とするのである。
【０１０６】
転送にかかわる他の手順については、実施の形態３と同様である。
【０１０７】
以上のようにしてカウンタ初期値格納部７２に最適値が適応的に自動設定されるため、実施の形態３に比べて全体としてのＤＭＡの転送性能を向上できるという効果が得られる。カウンタ初期値格納部７２の最適値は事前には分かりにくいため、本実施の形態は有効である。
【０１０８】
もちろん本実施の形態では、ウェイトカウント部７１がアンダーフローを発生し転送に失敗した場合、カウンタ初期値更新部８１はカウンタ初期値格納部７２の値をより大きな値に変更して転送失敗を発生しにくくさせるという更新方法も可能である。
【０１０９】
（実施の形態５）
優先度１番目のデータ転送が、転送元スレーブバスと転送先スレーブバスに同時にアクセスできないために実行できないと判定された場合、行おうとしたデータ転送を中断し、優先度２番目のデータ転送が行われる。優先度２番目の転送終了後でも、優先度１番目のデータ転送が使用するスレーブバスはまだアクセスできる状態になっていない場合がある。この場合は、優先度１番目のデータ転送を再度試みるよりも、終了したデータ転送の次の優先度（ここでは優先度３番目の転送）以降を先に行った方が全体の転送性能が良くなる。または、全体の転送性能を犠牲にしてでも優先度の高いデータ転送を先に行いたい場合もある。本発明の実施の形態５は、行うとするデータ転送の性質にふさわしい転送情報の決定方法を、ソフトウェア等から指定できるものである。
【０１１０】
図１０は、本発明における実施の形態５の情報処理装置の構成を示すブロック図である。
【０１１１】
図１０では図４における構成要素に加え、転送情報決定部９１と転送履歴記憶部９２と決定方法選択部９３を設けている。
【０１１２】
転送情報決定部９１は、転送情報の決定方法を複数記憶しておき、次のデータ転送でどの転送情報を用いるかを決定するものであり、転送履歴記憶部９２は過去の転送結果を記憶するものであり、決定方法選択部９３は、転送情報決定部９１が備える複数の決定方法のうちどの決定方法を使用するかを決定するものである。
【０１１３】
次に、以上のように構成された本実施の形態の情報処理装置の動作を説明する。
【０１１４】
ＣＰＵ１がスレーブバス４上のスレーブデバイス１４へアクセスを行っている最中に、ＤＭＡＣ２がスレーブバス４上のスレーブデバイス１４からスレーブバス６上のスレーブデバイス１６へのデータ転送を行おうとした場合、以下の手順が実行される。
【０１１５】
転送開始前の転送履歴記憶部９２には、図１１（ａ）のような値が格納されている。
【０１１６】
ＤＭＡＣ２が転送元アドレスＡから転送先アドレスＢへのデータ転送を試みてアクセス不可能通知信号６３がアサートされるまでの手順は、実施の形態２の場合と同様である。
【０１１７】
アクセス不可能通知信号６３がアサートされたとき、転送元アドレスＡから転送先アドレスＢへのデータ転送が失敗したという情報は、図１１（ｂ）に示すように転送履歴記憶部９２に格納される。
【０１１８】
その後、実施の形態２と同様の手順で、転送元アドレスＣから転送先アドレスＤへのデータ転送が行われる。
【０１１９】
転送元アドレスＣから転送先アドレスＤへのデータ転送終了後、転送履歴記憶部９２には図１１（ｃ）に示す値が格納されている。この状態において完了していない転送は、優先度１番目の転送元アドレスＡから転送先アドレスＢへのデータ転送と、優先度３番目のアドレスＥからアドレスＦへのデータ転送である。そこで転送情報管理部６２が次にどの転送情報を使用するかについて、転送情報決定部９１には２通りの決定方法を備えている。
【０１２０】
決定方法１は、転送情報管理部６２により優先度を高く設定されている転送情報を優先するものである。
【０１２１】
決定方法２は、転送履歴記憶部９２を参照し、過去にデータ転送の失敗が起きていない転送情報を優先するものである。
【０１２２】
決定方法選択部９３は、転送情報決定部９１が転送情報決定の際にこの２つの方法のうちどちらを使用するかの情報を格納している。決定方法選択部９３はソフトウェア等によって書き換えが可能である。ここでの転送情報決定部９１では、決定方法選択部９３に“１”が格納されている場合は決定方法１を使用し、“２”が格納されている場合は決定方法２を使用することとする。
【０１２３】
決定方法選択部９３に“１”が格納されている場合、転送元アドレスＣから転送先アドレスＤへのデータ転送終了後は、最も優先度の高い転送情報を選択するよう転送情報管理部６２に通知する。これにより、転送情報管理部６２は、転送元アドレスＡから転送先アドレスＢへのデータ転送を行う情報をＢＣＵ３へ伝達する。この場合、たとえ過去のデータ転送で失敗していたとしても、優先度の高い転送から順次行うという制御を行うことになる。
【０１２４】
一方、決定方法選択部９３に“２”が格納されている場合、転送元アドレスＣから転送先アドレスＤへのデータ転送終了後は、その次の優先度である優先度３番目の転送情報を選択するよう転送情報管理部６２に通知する。これにより、転送情報管理部６２は、転送元アドレスＥから転送先アドレスＦへのデータ転送を行う情報をＢＣＵ３へ伝達する。この場合、たとえ本来の優先度が高いデータ転送が未完了であっても、まだ行っていないデータ転送を優先するという制御を行うことになる。
【０１２５】
この２つの決定方法を、その時点で求められる性能に応じられるようソフトウェア等から指定することができる。
【０１２６】
以上のように本実施の形態によれば、データ転送の性質にふさわしい転送情報の決定方法をソフトウェア等から制御することができる。。
【０１２７】
もちろん、図６に示す実施の形態３や図９に示す実施の形態４において転送情報決定部９１と転送履歴記憶部９２と決定方法選択部９３を設けて、本実施の形態と同様な手順を行うことも可能である。
【産業上の利用可能性】
【０１２８】
本発明にかかる情報処理装置は、複数のマスタが複数のスレーブバスへアクセスを行う場合に最適なＤＭＡ転送を実行することができるため、複数のマスタと複数のスレーブバスが存在するシステムＬＳＩ等に有用である。
【図面の簡単な説明】
【０１２９】
【図１】本発明の実施の形態１における情報処理装置の構成を示すブロック図
【図２】本発明の実施の形態１で１パス転送を行う際のタイミング図
【図３】本発明の実施の形態１で２パス転送を行う際のタイミング図
【図４】本発明の実施の形態２における情報処理装置の構成を示すブロック図
【図５】本発明の実施の形態２におけるタイミング図
【図６】本発明の実施の形態３における情報処理装置の構成を示すブロック図
【図７】本発明の実施の形態３におけるタイミング図
【図８】本発明の実施の形態３におけるタイミング図
【図９】本発明の実施の形態４における情報処理装置の構成を示すブロック図
【図１０】本発明の実施の形態５における情報処理装置の構成を示すブロック図
【図１１】本発明の実施の形態５での転送履歴記憶部に格納されている値を示す図
【図１２】従来の技術における情報処理装置の構成を示すブロック図
【図１３】従来の技術における情報処理装置による２パス転送のタイミング図
【図１４】特許文献１の情報処理装置の構成を示すブロック図
【符号の説明】
【０１３０】
１  ＣＰＵ
２  ＤＭＡ（Direct Memory Access）コントローラ
３  ＢＣＵ（バスコントロールユニット）
４，５，６  スレーブバス
１１  デスティネーションアクセス制御部
１４，１５，１６  スレーブデバイス
２１  ソースアクセス制御部
２２  デスティネーションアクセス制御部
２３，２４，２５  アドレスバス
３０  読み書き用バス
３１，３２  アドレスデコーダ部
３３  バッファ
３４，３５，３６  スレーブバスアービタ
３７  読み書き用バス
３８  読み出し専用バス
３９  書き込み専用バス
４３  バッファ介在パス
５１  アドレスデコーダ部
５２  一致検出部
５３  直接転送パス
５４  セレクタ
６１  スレーブバス状態判定部
６２  転送情報管理部
６３  アクセス不可能通知信号
７１  ウェイトカウント部
７２  カウンタ初期値格納部（待機時間記憶手段）
７３  転送失敗通知信号
８１  カウンタ初期値更新部（待機時間更新手段）
９１  転送情報決定部
９２  転送履歴記憶部
９３  決定方法選択部
【図１】
2005215953.tif 000003
【図２】
2005215953.tif 000004
【図３】
2005215953.tif 000005
【図４】
2005215953.tif 000006
【図５】
2005215953.tif 000007
【図６】
2005215953.tif 000008
【図７】
2005215953.tif 000009
【図８】
2005215953.tif 000010
【図９】
2005215953.tif 000011
【図１０】
2005215953.tif 000012
【図１１】
2005215953.tif 000013
【図１２】
2005215953.tif 000014
【図１３】
2005215953.tif 000015
【図１４】
2005215953.tif 000016