(57)【特許請求の範囲】
【請求項１】
データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレスおよびデータ設定装置において、
前記バスの制御線を介して所定のコマンドを有する制御線情報を受信し、
前記バスのデータ線を介してデータ線情報を受信し、
前記バスのアドレス線を介してアドレス線情報を受信する
受信部と、
前記受信部が受信した前記所定のコマンドを判定し、
前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定し、
前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定する
情報内容判定部と、
前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定して、
決定したアドレスとデータとを前記バススレーブ装置に対して送信する
送信部と、
前記送信部が前記バススレーブ装置に対して送信したアドレスとデータとを保持する保持部を備え、
前記情報内容判定部は、
前記受信部が受信した所定のコマンドを判定し、判定した結果に基づいて、
前記保持部が保持するアドレスを前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
前記保持部が保持するアドレスをインクリメントした値を前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
前記保持部が保持するデータを前記バススレーブ装置に対して送信するデータとして設定するか否か、及び
前記保持部が保持するデータをインクリメントした値を前記バススレーブ装置に対して送信するデータとして設定するか否かを判定し、
前記送信部は、
保持部に保持されたアドレスとデータとを用いてデータ転送のためのアドレスとデータ転送のためのデータとを決定する
ことを特徴としたアドレスおよびデータ設定装置。
【請求項２】
データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置に対してデータ転送を要求するデータ転送要求情報を送信するバスマスタ装置において、
前記バスの制御線を介して送信される所定のコマンドを設定し、データ転送要求情報が連続して送信される場合に、アドレスの値が同一のまま連続しているか否か、及びアドレスの値が連続して１つずつ増加しているか否か、及びデータの値が同一のまま連続しているか否か、及びデータの値が連続して１つずつ増加しているか否かを判定し、判定した結果に基づいて前記所定のコマンドを設定するコマンド設定部と、
前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのデータ線を介して送信されるデータ線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記データ線情報を設定し、
前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのアドレス線を介して送信されるアドレス線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記アドレス線情報を設定する
情報設定部と、
前記情報設定部が前記データ線情報に設定した情報内容を前記データ線を介して送信し、
前記情報設定部が前記アドレス線情報に設定した情報内容を前記アドレス線を介して送信し、
前記コマンド設定部が設定したコマンドを前記制御線を介して送信する
バスマスタ送信部と
を備えることを特徴とするバスマスタ装置。
【請求項３】
前記請求項１記載のアドレスおよびデータ設定装置と、前記請求項２記載のバスマスタ装置とを備えることを特徴とするバス制御システム。
【請求項４】
前記バス制御システムは、更に、複数のバスマスタ装置を備え、
前記バス制御システムは、更に、
複数のバスマスタ装置が送信する所定のコマンドを有した複数のデータ転送要求情報を受信し、受信した複数のデータ転送要求情報の内、第１のバスマスタ装置が送信した第１のデータ転送要求情報と、第２のバスマスタ装置が送信した第２のデータ転送要求情報との２つのデータ転送要求情報を選択して、
前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを解析して、解析した結果に基づいて、前記アドレス線情報に、選択した第１のデータ転送要求情報のデータを設定するか否か、及び選択した第２のデータ転送要求情報のデータを設定するか否か、及び選択した第１のデータ転送要求情報のアドレスを設定するか否か、及び選択した第２のデータ転送要求情報のアドレスを設定するか否かを判定し、
前記第１のデータ転送要求情報と前記第２のデータ転送要求情報とを解析して、解析した結果に基づいて、前記データ線情報に、選択した第１のデータ転送要求情報のデータを設定するか否か、及び選択した第２のデータ転送要求情報のデータを設定するか否か、及び選択した第１のデータ転送要求情報のアドレスを設定するか否か、及び選択した第２のデータ転送要求情報のアドレスを設定するか否かを判定し、
判定した結果に基づいて前記データ線情報と前記アドレス線情報とを設定し、
前記データ線情報と前記アドレス線情報との設定結果に基づいて所定の連結フラグを設定し、設定した所定の連結フラグと前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを制御線情報に設定し、
前記データ線情報を前記データ線を介して送信し、前記アドレス線情報を前記アドレス線を介して送信し、前記所定の連結フラグと前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を前記制御線を介して送信する
連結部を備えることを特徴とする請求項３記載のバス制御システム。
【請求項５】
前記バス制御システムは、更に、複数のアドレスおよびデータ設定装置を備え、
前記バス制御システムは、更に、
前記バスの制御線を介して前記所定の連結フラグと前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を受信し、前記バスのデータ線を介してデータ線情報を受信し、前記バスのアドレス線を介してアドレス線情報を受信し、
受信した前記所定の連結フラグと前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を判定し、
前記所定の連結フラグと前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを有する制御線情報により、前記データ線情報に前記第１のデータ転送要求情報のデータが設定されているか否か、及び前記第２のデータ転送要求情報のデータが設定されているか否か、及び前記第１のデータ転送要求情報のアドレスが設定されているか否か、及びに前記第２のデータ転送要求情報のアドレスが設定されているか否かを判定し、
前記所定の連結フラグと前記第１のデータ転送要求情報が有する所定のコマンドと前記第２のデータ転送要求情報が有する所定のコマンドとを有する制御線情報により、前記アドレス線情報に前記第１のデータ転送要求情報のデータが設定されているか否か、及び前記第２のデータ転送要求情報のデータが設定されているか否か、及び前記第１のデータ転送要求情報のアドレスが設定されているか否か、及び前記第２のデータ転送要求情報のアドレスが設定されているか否かを判定し、
判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、複数のアドレスおよびデータ設定装置の中からデータ転送先のアドレスおよびデータ設定装置を決定し、
データ転送のためのアドレスとデータ転送のためのデータとを決定して、決定したアドレスとデータとを前記データ転送先のアドレスおよびデータ設定装置に対して送信する
分離部を備えることを特徴とする請求項４記載のバス制御システム。
【請求項６】
データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレスおよびデータ設定装置におけるアドレスとデータの設定方法において、
受信部が、
前記バスの制御線を介して所定のコマンドを有する制御線情報を受信する制御線情報受信ステップと、
前記バスのデータ線を介してデータ線情報を受信するデータ線情報受信ステップと、
前記バスのアドレス線を介してアドレス線情報を受信するアドレス線情報受信ステップと、
情報内容判定部が、
前記受信部が受信した前記所定のコマンドを判定するコマンド判定ステップと、
前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定するデータ線情報判定ステップと、
前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定するアドレス線情報判定ステップと、
送信部が、
前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定する決定ステップと、
決定したアドレスとデータとを前記バススレーブ装置に対して送信する送信ステップと、
保持部が、
前記送信部が前記バススレーブ装置に対して送信したアドレスとデータとを保持するステップと、
前記情報内容判定部が、
前記受信部が受信した所定のコマンドを判定するステップと、判定した結果に基づいて、
前記保持部が保持するアドレスを前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
前記保持部が保持するアドレスをインクリメントした値を前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
前記保持部が保持するデータを前記バススレーブ装置に対して送信するデータとして設定するか否か、及び
前記保持部が保持するデータをインクリメントした値を前記バススレーブ装置に対して送信するデータとして設定するか否かを判定するステップと、
前記送信部が、
前記保持部に保持されたアドレスとデータとを用いてデータ転送のためのアドレスとデータ転送のためのデータとを決定するステップと
を備えることを特徴とするアドレスとデータの設定方法。
【請求項７】
データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置に対してデータ転送を要求するデータ転送要求情報を送信するバスマスタ装置におけるデータ転送要求情報送信方法において、
コマンド設定部が、
前記バスの制御線を介してデータ転送要求情報が連続して送信される場合に、アドレスの値が同一のまま連続しているか否か、及びアドレスの値が連続して１つずつ増加しているか否か、及びデータの値が同一のまま連続しているか否か、及びデータの値が連続して１つずつ増加しているか否かを判定するステップと、
判定した結果に基づいて所定のコマンドを設定するコマンド設定ステップと、
情報設定部が、
前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのデータ線を介して送信されるデータ線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記データ線情報を設定するデータ線情報設定ステップと、
前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのアドレス線を介して送信されるアドレス線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記アドレス線情報を設定するアドレス線情報設定ステップと、
バスマスタ送信部が、
前記情報設定部が前記データ線情報に設定した情報内容を前記データ線を介して送信するデータ線情報送信ステップと、
前記情報設定部が前記アドレス線情報に設定した情報内容を前記アドレス線を介して送信するアドレス線情報送信ステップと、
前記コマンド設定部が設定したコマンドを前記制御線を介して送信するコマンド送信ステップと、
を備えることを特徴とするバスマスタ装置におけるデータ転送要求情報送信方法。
【請求項８】
コンピュータを、請求項１記載のアドレスおよびデータ設定装置として機能させることを特徴とするプログラム。
【請求項９】
コンピュータを、請求項２記載のバスマスタ装置として機能させることを特徴とするプログラム。
【請求項１０】
コンピュータを、請求項３から５のいずれか一項に記載のバス制御システムとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バスを介してバススレーブ装置に対するデータ転送要求情報を送信するバスマスタ装置と、バスマスタ装置の送信したデータ転送要求情報を受信しデータ転送要求情報に基づきバススレーブ装置に対してデータ転送要求を行うアドレス／データ設定装置と、更に前記バスマスタ装置と前記アドレス／データ設定装置とにより構成されるバス制御システムとに関する。
【背景技術】
【０００２】
例えば、バスを介したバスマスタ装置とバススレーブ装置とのデータ転送において、バスマスタ装置は、バススレーブ装置にデータ転送要求を行う（もしくは、データ転送要求情報を送信する）。
ここで、バスマスタ装置とは、例えばＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）である。また、バススレーブ装置とは、例えばメモリである。
そして、データ転送の効率化の為に、データ転送要求を待機させるのを抑制する手法として、バス使用状況やバス空き状況に応じてバスマスタに転送許可するデータバス幅を割り当てていた（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７-２００２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、データ転送要求情報は、バスマスタ装置が転送するデータと共に、バスマスタ装置がアクセスを行う、バススレーブ装置の記憶領域の位置を示すアドレスを必ず含んでいる。しかし、アドレスが固定であったり、アドレスが連続する場合には、バスマスタ装置は、不要な情報（アドレス）を送信していることになる。
本実施の形態においては、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行う。
【課題を解決するための手段】
【０００５】
この発明に係るアドレスおよびデータ設定装置は、データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレスおよびデータ設定装置において、
前記バスの制御線を介して所定のコマンドを有する制御線情報を受信し、
前記バスのデータ線を介してデータ線情報を受信し、
前記バスのアドレス線を介してアドレス線情報を受信する
受信部と、
前記受信部が受信した前記所定のコマンドを判定し、
前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定し、
前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定する
情報内容判定部と、
前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定して、
決定したアドレスとデータとを前記バススレーブ装置に対して送信する
送信部と、
前記送信部が前記バススレーブ装置に対して送信したアドレスとデータとを保持する保持部を備え、
前記情報内容判定部は、
前記受信部が受信した所定のコマンドを判定し、判定した結果に基づいて、
前記保持部が保持するアドレスを前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
前記保持部が保持するアドレスをインクリメントした値を前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
前記保持部が保持するデータを前記バススレーブ装置に対して送信するデータとして設定するか否か、及び
前記保持部が保持するデータをインクリメントした値を前記バススレーブ装置に対して送信するデータとして設定するか否かを判定し、
前記送信部は、
保持部に保持されたアドレスとデータとを用いてデータ転送のためのアドレスとデータ転送のためのデータとを決定する
ことを特徴とする。
【発明の効果】
【０００６】
この発明に係るバスマスタ装置は、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行うことが可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１を示す図で、バス制御システム１００を含む情報処理システム９５０の外観の一例を示す図。
【図２】実施の形態１を示す図で、バス制御システム１００を含む情報処理システム９５０のハードウェア資源の一例を示す図。
【図３】実施の形態１を示す図で、バス制御システム１００の構成を示すブロック図。
【図４】実施の形態１を示す図で、バス制御システム１００の基本構成を示すブロック図。
【図５】実施の形態１を示す図で、データ転送要求情報５００の一例を示す図。
【図６】実施の形態１を示す図で、バスマスタ装置２００の構成を示すブロック図。
【図７】実施の形態１を示す図で、アドレス／データ設定装置３００の構成を示すブロック図。
【図８】実施の形態１を示す図で、バス制御システム１００動作を説明するフローチャート。
【図９】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報を示す図。
【図１０】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報の内、最初の情報をバススレーブ装置４００に書き込む場合の例を示す図。
【図１１】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのアドレス５１１が連番である場合の例を示す図。
【図１２】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのアドレス５１１が続けて同一である場合の例を示す図。
【図１３】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのデータ５２１が続けて同一である場合の例を示す図。
【図１４】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのデータ５２１の値が１つずつ続けて増えている場合を示す図。
【図１５】実施の形態１を示す図で、バススレーブ装置４００に書き込まれる一連の情報の内、バースト転送でバススレーブ装置４００に書き込まれる例を示す図。
【図１６】実施の形態２を示す図で、連結部４６０と分離部４７０とを備えたバス制御システム１００の構成を示すブロック図。
【図１７】実施の形態２を示す図で、バスマスタ装置２００が発行（送信）するデータ転送要求情報５００の一例を示す説明図。
【図１８】実施の形態２を示す図で、連結処理後のデータ転送要求情報５００の一例を示す図。
【図１９】実施の形態２を示す図で、連結部４６０と分離部４７０とを備えたバス制御システム１００動作を説明するフローチャート。
【図２０】実施の形態２を示す図で、バスマスタ装置２００が送信した１回目のデータ転送要求情報５００の具体例を示す図。（（ａ）は、バスマスタ装置２００ａが送信した１回目のデータ転送要求情報５００の具体例、（ｂ）は、バスマスタ装置２００ｂが送信した１回目のデータ転送要求情報５００の具体例）。
【図２１】実施の形態２を示す図で、バスマスタ装置２００が送信した２回目のデータ転送要求情報５００の具体例を示す図。（（ａ）は、バスマスタ装置２００ａが送信した２回目のデータ転送要求情報５００の具体例、（ｂ）は、バスマスタ装置２００ｂが送信した２回目のデータ転送要求情報５００の具体例）。
【図２２】実施の形態２を示す図で、連結部４６０が連結処理を行ったデータ転送要求情報５００の具体例を示す図。
【発明を実施するための形態】
【０００８】
実施の形態１．
本実施の形態では、バス制御システムにおいて、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行うバスマスタ装置とアドレス／データ設定装置との例を説明する。
【０００９】
最初に、図１、図２を用いてバス制御システム１００を含む情報処理システム９５０の概要を説明する。
図１は、実施の形態１におけるバス制御システム１００を含む情報処理システム９５０の外観の一例を示す図である。
図２は、実施の形態１におけるバス制御システム１００を含む情報処理システム９５０のハードウェア資源の一例を示す図である。
【００１０】
図１において、情報処理システム９５０は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００１１】
図２において、情報処理システム９５０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１２】
通信ボード９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信ボード９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記録されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
アービタ４５０とアドレス／データ設定装置３００については、後述する。
【００１３】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記録されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記録されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記録される。ディスクやメモリなどの記憶媒体に記録された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・提示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記録される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１４】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記録されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１５】
次に図３を用いて、バス制御システム１００の概要を説明する。
図３は、バス制御システム１００の構成を示すブロック図である。
バス制御システム１００は、バスマスタ装置２００とアドレス／データ設定装置３００とを備える。
そして、図３のバス制御システム１００は、複数のバスマスタ装置２００ａ、２００ｂを有する場合を想定している。そして図３は、複数のバスマスタ装置２００ａ、２００ｂがバス９１２を介して複数のバススレーブ装置４００ａ、４００ｂに対してデータ転送要求情報を送信する場合を想定している。
バスマスタ装置２００（２００ａ、２００ｂ）は、例えばＣＰＵ９１１の一部である。バス９１２は、アドレス線情報を通信するアドレス線４１０、データ線情報を通信するデータ線４２０、制御線情報を通信する制御線４３０とから成る。（図が複雑となる為に、図３と図４以外はアドレス線４１０、データ線４２０、制御線４３０の図示は省略する）。アービタ４５０は、複数のバスマスタ装置２００ａ、２００ｂからのデータ転送要求情報５００が複数発生した際に調停を行い、どちらのバスマスタ装置にバス９１２を使用させるかを決定する。バススレーブ装置４００（４００ａ、４００ｂ）は、例えばＲＯＭ９１３、ＲＡＭ９１４などのメモリである。
そして、アドレス／データ設定装置３００（３００ａ、３００ｂ）は、バススレーブ装置４００（４００ａ、４００ｂ）へアクセスを行う所定の場合に、バススレーブ装置４００（４００ａ、４００ｂ）の記憶領域においてアクセスを行うアドレス（番地）を設定する。また、アドレス／データ設定装置３００（３００ａ、３００ｂ）は、バススレーブ装置４００（４００ａ、４００ｂ）に記憶させるデータを設定する。（アドレス／データ設定装置の詳細については後述する）。
なお、図３においては、バスマスタ装置２００が２つ、バススレーブ装置４００が２つの場合を図示したが、バスマスタ装置２００及びバススレーブ装置４００の数は、限定されるものではない。
【００１６】
次に図４、図５、図６、図７を用いて、バス制御システム１００の機能の概略を説明する。
ここで、説明を簡単にする為に、バスマスタ装置２００とバススレーブ装置４００とがそれぞれ１つの場合を想定する。
図４は、バス制御システム１００の基本構成を示すブロック図である。
図５は、データ転送要求情報５００の一例を示す図である。
図６は、バスマスタ装置２００の構成を示すブロック図である。
図７は、アドレス／データ設定装置３００の構成を示すブロック図である。
【００１７】
図４は、バスマスタ装置２００とバススレーブ装置４００とがそれぞれ１つの場合のバス制御システム１００である。複数のデータ転送要求情報が同時に発生する事は無いので、アービタ４５０の図示も省略している。
図５は、バスマスタ装置２００が発行するデータ転送要求情報５００の一例である。データ転送要求情報は、アドレス線４１０を使って通信するアドレス線情報５１０、データ線４２０を使って通信するデータ線情報５２０、制御線４３０を使って通信する制御線情報５３０とから構成される。
制御線情報５３０は、まず、要求を示すリクエスト５３１、データ転送要求情報５００の送信元のバスマスタ装置２００の識別ＩＤ（アイディー）を示すマスタＩＤ５３２、データ転送要求情報５００の送信先のバススレーブ装置４００の識別ＩＤを示すスレーブＩＤ５３３を含む。これらリクエスト５３１、マスタＩＤ５３２、スレーブＩＤ５３３をまとめてリクエストと呼ぶことも有る。制御線情報５３０は、更にバススレーブ装置４００に対して読み出し又は書き込み要求を示すＲ／Ｗ情報５３４（リード／ライト情報、読み出し／書き込み情報）、バースト転送か否かを示す転送種別５３５、アドレス線情報５１０とデータ線情報５２０とのデータ内容を示すコマンド５３６から成る。
アドレス線情報５１０は、通常は、バススレーブ装置４００の記憶領域においてバスマスタ装置２００が、アクセスを行うアドレス５１１（番地）を設定する。Ｒ／Ｗ情報５３４、転送種別５３５、コマンド５３６、アドレス５１１をまとめて制御情報と呼ぶことも有る。
データ線情報５２０は、通常は、バスマスタ装置２００が、バススレーブ装置４００に記憶させるデータ５２１を設定する。
データ転送要求情報５００の大きさは、合計でＭｂｉｔ（Ｍビット、Ｍは０より大きい整数）で構成される。
【００１８】
ここで、コマンド５３６の機能の具体例を示す。
コマンド５３６が「０００」：バスマスタ装置２００は、アドレス線情報５１０に、アドレス５１１を設定し、データ線情報５２０にデータ５２１を設定する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にアドレス５１１が設定されていると認識し、データ線情報５２０にデータ５２１が設定されていると認識する。
コマンド５３６が「０１０」：バスマスタ装置２００は、アドレス線情報５１０にデータ５２１を設定し、データ線情報５２０に、データ５２１を設定する。その際、バスマスタ装置２００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にデータ５２１が設定されていると認識し、データ線情報５２０にデータ５２１が設定されていると認識する。その際、アドレス／データ設定装置３００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値を用いると認識する。（アドレス／データ設定装置３００の記憶動作については後述する）。
コマンド５３６が「０１１」：バスマスタ装置２００は、アドレス線情報５１０にデータ５２１を設定し、データ線情報５２０に、データ５２１を設定する。その際、バスマスタ装置２００は、アドレス５１１にアドレス／データ設定装置３００が記憶しているアドレス値からインクリメント（１を加算）した値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にデータ５２１が設定されていると認識し、データ線情報５２０にデータ５２１が設定されていると認識する。その際、アドレス／データ設定装置３００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値からインクリメント（１を加算）した値を用いると認識する。
コマンド５３６が「１００」：バスマスタ装置２００は、データ線情報５２０にアドレス５１１を設定し、アドレス線情報５１０に、アドレス５１１を設定する。その際、バスマスタ装置２００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にアドレス５１１が設定されていると認識し、データ線情報５２０にアドレス５１１が設定されていると認識する。その際、アドレス／データ設定装置３００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値を用いると認識する。
コマンド５３６が「１０１」：バスマスタ装置２００は、データ線情報５２０にアドレス５１１を設定し、アドレス線情報５１０に、アドレス５１１を設定する。その際、バスマスタ装置２００は、データ５２１は、アドレス／データ設定装置３００が記憶しているデータ値からインクリメントした値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にアドレス５１１が設定されていると認識し、データ線情報５２０にアドレス５１１が設定されていると認識する。その際、アドレス／データ設定装置３００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値からインクリメントした値を用いると認識する。
以下の説明において、コマンド５３６の具体例（例えば「０００」）を引用して説明している箇所は、上記で説明の機能の引用に入れ替えて説明することが可能である。
【００１９】
あるいは、バスマスタ装置２００は、３ビットから成るコマンド５３６の内、２桁目のビットが「１」ならば（すなわち「＊１＊」ならば）、アドレス線情報５１０をデータ５２１と設定し、３桁目のビットが「１」ならば（すなわち「１＊＊」ならば）、データ線情報５２０をアドレス５１１と設定することも可能である。更に、バスマスタ装置２００は、１桁目のビットが「１」ならばアドレス／データ設定装置３００が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。（ここで、「＊」は、ワイルドカードを示し、「１」もしくは「０」のいずれかが代入され、以下同様である）。
あるいは、アドレス／データ設定装置３００は、３ビットから成るコマンド５３６の内、２桁目のビットが「１」ならば（すなわち「＊１＊」ならば）、アドレス線情報５１０がデータ５２１と設定され、３桁目のビットが「１」ならば（すなわち「１＊＊」ならば）、データ線情報５２０がアドレス５１１と設定されていると判断することも可能である。更に、アドレス／データ設定装置３００は、１桁目のビットが「１」ならばアドレス／データ設定装置３００が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。
【００２０】
図６は、バスマスタ装置２００の構成である。バスマスタ装置２００は、データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置４００に対してデータ転送を要求するデータ転送要求情報を送信する。
コマンド設定部２１０は、バス９１２の制御線４３０を介して送信される所定のコマンド５３６を設定する。（コマンド設定部２１０は、バススレーブ装置４００に送信を行う一連の情報のアドレス５１１とデータ５２１との並びを認識し、認識した一連の情報のアドレス５１１とデータ５２１との並びから判断して、コマンド５３６を設定する）。
情報設定部２２０は、コマンド設定部２１０が設定した所定のコマンド５３６に基づき、バス９１２のデータ線４２０を介して送信されるデータ線情報５２０にデータ５２１を設定するか否か、及びアドレス５１１を設定するか否かを判定し、判定した結果に基づいてデータ線情報５２０を設定する。そして、情報設定部２２０は、コマンド設定部２１０が設定した所定のコマンド５３６に基づき、バス９１２のアドレス線４１０を介して送信されるアドレス線情報５１０にデータ５２１を設定するか否か、及びアドレス５１１を設定するか否かを判定し、判定した結果に基づいてアドレス線情報５１０を設定する。
ここで、アドレス線情報５１０とデータ線情報５２０とのどちらかに設定するアドレス５１１もしくはデータ５２１が存在しない場合は、アドレス線情報５１０とデータ線情報５２０とのどちらかに無意味なダミー情報が設定される場合も有る。（例えばデータ転送要求情報５００がバススレーブ装置４００からのデータ読み出しに関するものである場合は、データ５２１が存在しない）。
バスマスタ送信部２３０は、前記情報設定部２２０がデータ線情報５２０に設定した情報内容をデータ線４２０を介して送信し、情報設定部２２０がアドレス線情報５１０に設定した情報内容をアドレス線４１０を介して送信し、コマンド設定部２１０が設定したコマンド５３６を制御線４３０を介して送信する。
更に、バスマスタ送信部２３０は、ＣＰＵ９１１で設定されたリクエスト５３１、マスタＩＤ５３２、スレーブＩＤ５３３、Ｒ／Ｗ情報５３４、転送種別５３５を制御線情報５３０の一部として、制御線４３０を用いて送信する。なお、転送種別５３５は、コマンド設定部２１０が設定を行うことも可能である。
【００２１】
そして、コマンド設定部２１０は、データ転送要求情報５００が連続して送信される場合に、アドレス５１１の値が同一のまま連続しているか否か、及びアドレス５１１の値が連続して１つずつ増加しているか否か、及びデータ５２１の値が同一のまま連続しているか否か、及びデータ５２１の値が連続して１つずつ増加しているか否かを判定し、判定した結果に基づいて所定のコマンドを設定する。
【００２２】
図７は、アドレス／データ設定装置３００の構成である。
アドレス／データ受信部３１０は、データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置２００が送信したデータ転送要求情報を受信する。すなわち、アドレス／データ受信部３１０は、バス９１２の制御線４３０を介して所定のコマンド５３６を有する制御線情報５３０を受信する。そして、アドレス／データ受信部３１０は、バス９１２のデータ線４２０を介してデータ線情報５２０を受信し、バス９１２のアドレス線４１０を介してアドレス線情報５１０を受信する。
情報内容判定部３２０は、アドレス／データ受信部３１０が受信した所定のコマンド５３６を判定する。そして、情報内容判定部３２０は、所定のコマンド５３６の判定結果に基づき、データ線情報５２０にアドレス５１１が設定されているか否か、及びデータ５２１が設定されているか否かを判定する。そして、情報内容判定部３２０は、所定のコマンド５３６の判定結果に基づき、データ線情報５２０にアドレス５１１が設定されているか否か、及びデータ５２１が設定されているか否かを判定する。
アドレス／データ送信部３４０は、情報内容判定部３２０が判定した判定結果とデータ線情報５２０とアドレス線情報５１０とに基づいて、データ転送のためのアドレス５１１とデータ転送のためのデータ５２１とを決定する。（データ転送のためのアドレス５１１とは、データ転送を行う場合に使用するアドレスのことである。データ転送のためのアドレス５１１を以下「転送先アドレス」と表記し、データ転送のためのデータ５２１を以下「転送データ」と表記する）。そして、アドレス／データ送信部３４０は、決定したアドレス５１１とデータ５２１とをバススレーブ装置４００に対して送信する。すなわち、アドレス／データ送信部３４０は、バススレーブ装置４００に対してデータ転送を要求する。
【００２３】
アドレス／データ設定装置３００は、更にアドレス／データ送信部３４０がバススレーブ装置４００に対して送信したアドレス５１１とデータ５２１とを保持するアドレス／データ保持部３３０を備える。
情報内容判定部３２０は、アドレス／データ受信部３１０が受信した所定のコマンド５３６を判定し、アドレス／データ保持部３３０が保持するアドレス５１１をバススレーブ装置４００に対して送信するアドレスとして設定するか否かを判定する。そして、アドレス／データ設定装置３００は、所定のコマンド５３６を判定し、アドレス／データ保持部３３０が保持するアドレス５１１をインクリメントした値をバススレーブ装置４００に対して送信するアドレスとして設定するか否かを判定する。そして、アドレス／データ設定装置３００は、所定のコマンド５３６を判定し、アドレス／データ保持部３３０が保持するデータ５２１をバススレーブ装置４００に対して送信するデータとして設定するか否かを判定する。更に、アドレス／データ設定装置３００は、所定のコマンド５３６を判定し、アドレス／データ保持部３３０が保持するデータ５２１をインクリメントした値をバススレーブ装置４００に対して送信するデータとして設定するか否かを判定する。
そして、アドレス／データ送信部３４０は、アドレス／データ保持部３３０に保持されたアドレス５１１とデータ５２１とを用いて転送先アドレスと転送データとを決定する。
【００２４】
次に図８を用いて、バス制御システム１００の動作の流れを説明する。
図８は、バス制御システム１００動作を説明するフローチャートである。
ステップ１（ＳＴ１）において、バスマスタ装置２００（コマンド設定部２１０、情報設定部２２０、バスマスタ送信部２３０）が図５に示すデータ転送要求情報５００を発行（送信）する。
ステップ２（ＳＴ２）は、バスマスタ装置２００が複数存在する場合に、アービタ４５０がどのバスマスタ装置２００にバス９１２の使用権を与えるかを調停するステップである。しかしながら、図４の実施の形態においては、バスマスタ装置２００が１つでアービタ４５０が存在しない為に、ステップ２（ＳＴ２）は、省略される。
ステップ３（ＳＴ３）において、アドレス／データ設定装置３００の情報内容判定部３２０がコマンド５３６を解析（判定）する。コマンド５３６が「０００」の場合、処理はＳＴ４に進む。コマンド５３６が「０００」以外の場合、処理はＳＴ５に進む。
ステップ４（ＳＴ４）は、アドレス線情報５１０はアドレス５１１として設定し、データ線情報５２０はデータ５２１として設定する通常ケースのステップである。ＳＴ４において、アドレス／データ保持部３３０は、転送先アドレスとしてアドレス５１１と、転送データとしてデータ５２１とを保持する。
ステップ５（ＳＴ５）において、情報内容判定部３２０がコマンド５３６を解析（判定）する。コマンド５３６が「０１０」または「０１１」の場合、処理はＳＴ６に進む。コマンド５３６が「０１０」及び「０１１」以外の場合、処理はＳＴ８に進む。
ステップ６（ＳＴ６）は、アドレス線情報５１０、データ線情報５２０ともにデータ５２１として扱うケースのステップである。コマンド５３６が「０１０」の場合は、アドレス／データ送信部３４０は、アドレス／データ保持部３３０が保持しているアドレス（前回転送時のアドレスと同じアドレス５１１）を転送先アドレスとして設定する。コマンド５３６が「０１１」の場合は、アドレス／データ送信部３４０は、アドレス／データ保持部３３０が保持しているアドレス５１１の値（前回転送時のアドレスの値）をインクリメントした値を転送先アドレスとして設定する。
ステップ７（ＳＴ７）において、アドレス／データ保持部３３０は、ＳＴ６で設定した転送先アドレスを保持する。
ステップ８（ＳＴ８）は、アドレス線情報５１０、データ線情報５２０ともにアドレス５１１として扱うケースのステップである。コマンド５３６が「１００」の場合はアドレス／データ保持部３３０が保持しているデータ５２１（前回転送時のデータと同じデータ）を転送データとして設定する。コマンド５３６が「１０１」の場合はアドレス／データ保持部３３０が保持しているデータ５２１（前回転送時のデータ）の値をインクリメントした値を転送データとして設定する。
ステップ９（ＳＴ９）において、アドレス／データ保持部３３０は、ＳＴ８で設定した転送データを保持する。
ステップ１０（ＳＴ１０）において、前記フロー（ＳＴ１〜ＳＴ９）で設定された転送先アドレスに転送データを転送する。
以上の説明は、バスマスタ装置２００からバススレーブ装置４００への書き込み動作を想定し、データ５２１の設定について記載している。読み込み動作の場合は、データ５２１の設定は不要となる。
【００２５】
次に図９、図１０、図１１、図１２、図１３、図１４、図１５を用いてバス制御システム１００の動作の具体例を示す。
図９は、バススレーブ装置４００に書き込まれる一連の情報を示す図である。
図１０は、バススレーブ装置４００に書き込まれる一連の情報の内、最初の情報をバススレーブ装置４００に書き込む場合の例を示す図である。
図１１は、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのアドレス５１１が連番である場合の例を示す図である。
図１２は、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのアドレス５１１が続けて同一である場合の例を示す図である。
図１３は、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのデータ５２１が続けて同一である場合の例を示す図である。
図１４は、バススレーブ装置４００に書き込まれる一連の情報の内、データ転送のためのデータ５２１の値が１つずつ続けて増えている場合を示す図である。
図１５は、バススレーブ装置４００に書き込まれる一連の情報の内、バースト転送でバススレーブ装置４００に書き込まれる例を示す図である。
【００２６】
図９に示される一連の情報Ｄ１０１〜Ｄ１１４がバススレーブ装置４００に書き込まれる場合を想定する。
実際の情報には、一連の情報Ｄ１０１〜Ｄ１１４は、アドレス５１１とデータ５２１とに加え、リクエスト５３１、マスタＩＤ５３２、スレーブＩＤ５３３、Ｒ／Ｗ情報５３４、転送種別５３５がＣＰＵ９１１にて設定されているが、ここでは図示を省略する。（なお、転送種別５３５は、コマンド設定部２１０が設定することも可能である）。
ここでは、一連の情報Ｄ１０１〜Ｄ１１４は、全て同じバスマスタ装置２００から送信されて、全て同じバススレーブ装置４００に書き込まれるものとする。
そして、図９に示される情報Ｄ１０１が、一連の情報の内、最初にバススレーブ装置４００に書き込まれる情報であり、情報Ｄ１１４が、最後にバススレーブ装置４００に書き込まれる情報である。そして、ＣＰＵ９１１は、一連の情報の区切り（すなわち、最初にバススレーブ装置４００に書き込まれる情報と最後にバススレーブ装置４００に書き込まれる情報）を認識することが出来る。そして、ＣＰＵ９１１は、コマンド設定部２１０に一連の情報の区切り（すなわち、最初にバススレーブ装置４００に書き込まれる情報と最後にバススレーブ装置４００に書き込まれる情報）を通知することが出来る。
【００２７】
まず、一連の情報Ｄ１０１〜Ｄ１１４の内、最初の情報であるＤ１０１がバススレーブ装置４００に書き込まれる場合を図１０を用いて説明する。（ここでも、データ転送要求情報５００には、リクエスト５３１、マスタＩＤ５３２、スレーブＩＤ５３３の図示を省略する）。
本説明においては、バススレーブ装置４００に情報を書き込む場合を想定しているので、データ転送要求情報５００において、Ｒ／Ｗ情報５３４は書き込みを示す情報が設定される。図１０においては、分かりやすくする為に、書き込み（ライト、Ｗｒｉｔｅ）を示す「Ｗ」を図示しているが、実際は「１」「０」の信号が設定される。同様に転送種別５３５は、ノーマル転送かバースト転送かを示す情報が設定され、実際は「１」「０」の信号で表される。しかし、図１０においては、分かりやすくする為に、ノーマル転送を示す「ノーマル」、バースト転送を示す「バースト」と図示している。
コマンド５３６は、前記で説明の通り３ビットの「１」「０」の情報で設定される。
そして、アドレス線情報５１０とデータ線情報５２０とは、やはり「１」「０」の２進数の情報で設定されるが、ここでも分かりやすくする為に１０進数の４桁の数字を用いて図１０は、図示している。
同様にアドレス／データ設定装置３００（アドレス／データ保持部３３０）が保持する情報、バススレーブ装置４００に記憶された情報も分かりやすくする為に１０進数の４桁の数字を用いて図１０は、図示している。
【００２８】
一連の情報Ｄ１０１〜Ｄ１１４の内、最初の情報であるＤ１０１がバススレーブ装置４００に書き込まれる場合、アドレス／データ設定装置３００のアドレス／データ保持部３３０は、一連の情報Ｄ１０１〜Ｄ１１４に関連したアドレス５１１とデータ５２１とを保持していない。その為、Ｄ１０１のアドレス５１１とデータ５２１をアドレス／データ保持部３３０に保持させる必要が有る。そこで、コマンド設定部２１０は、コマンド５３６を「０００」に設定する。そして、情報設定部２２０は、コマンド５３６が「０００」が設定されたことにより、アドレス線情報５１０にＤ１０１のアドレス５１１を、データ線情報５２０にＤ１０１のデータ５２１を設定する。
そして、バスマスタ送信部２３０は、このデータ転送要求情報５００をバス９１２を介して、アドレス／データ設定装置３００に送信する。
一方、アドレス／データ設定装置３００のアドレス／データ受信部３１０は、このデータ転送要求情報５００を受信する。そして、情報内容判定部３２０は、制御線４３０を介して受信した制御線情報５３０に含まれるコマンド５３６を「０００」と認識する。更に情報内容判定部３２０は、コマンド５３６が「０００」と認識されたことにより、アドレス線情報５１０に設定された情報内容がアドレス５１１であり、データ線情報５２０に設定された情報内容がデータ５２１であると判定する。
そして、アドレス／データ送信部３４０は、判定されたアドレス５１１を転送先アドレス、判定されたデータ５２１を転送データとして、バススレーブ装置４００に転送（送信）する。また、アドレス／データ保持部３３０は、バススレーブ装置４００に転送された転送先アドレスと転送データを保持する。
そして、バススレーブ装置４００は、アドレス／データ送信部３４０が転送（送信）した情報に基づき、バススレーブ装置４００の記憶領域におけるアドレス「２０３５」にデータ「４０５６」を記憶する。
【００２９】
次に図１１を用いて、Ｄ１０２〜Ｄ１０３の情報をバススレーブ装置４００に書き込む場合を説明する。
Ｄ１０２〜Ｄ１０３は、アドレス５１１が、Ｄ１０１のアドレスに対して、１つずつ加算された値となっている。
従って、コマンド設定部２１０は、コマンド５３６を「０１１」に設定する。そして、情報設定部２２０は、コマンド５３６が「０１１」に設定されたことにより、アドレス線情報５１０にＤ１０２のデータ５２１「４４５５」を、データ線情報５２０にＤ１０３のデータ５２１「３２４４」を設定する。
そして、バスマスタ送信部２３０は、このデータ転送要求情報５００をバス９１２を介して、アドレス／データ設定装置３００に送信する。
一方、アドレス／データ設定装置３００のアドレス／データ受信部３１０は、このデータ転送要求情報５００を受信する。そして、情報内容判定部３２０は、制御線４３０を介して受信した制御線情報５３０に含まれるコマンド５３６を「０１１」と認識する。更に情報内容判定部３２０は、コマンド５３６が「０１１」と認識されたことにより、アドレス線情報５１０に設定された情報内容がデータ５２１であり、データ線情報５２０に設定された情報内容がデータ５２１であると判定する。更に情報内容判定部３２０は、コマンド５３６が「０１１」と認識されたことにより、、アドレス／データ保持部３３０が保持している転送先アドレスをインクリメントした新たな転送先アドレスにデータを転送すると判定する。
具体的には、アドレス線情報５１０に設定された情報内容「４４５５」を転送データとし、アドレス／データ保持部３３０が保持している転送先アドレス「２０３５」をインクリメントした値の、バススレーブ装置４００内のアドレス「２０３６」に、アドレス／データ送信部３４０は転送（送信）する。また、アドレス／データ保持部３３０は、バススレーブ装置４００に転送データを転送された転送先アドレス「２０３６」と転送データ「４４５５」とを保持する。（アドレス／データ保持部３３０は、古い転送先アドレス「２０３５」と転送データ「４０５６」とに新しい転送先アドレス「２０３６」と転送データ「４４５５」とを上書きして保持する）。次に、アドレス／データ送信部３４０は、データ線情報５２０に設定された情報内容「３２４４」を転送データとし、アドレス／データ保持部３３０が保持している転送先アドレス「２０３６」をインクリメントした値の、バススレーブ装置４００内のアドレス「２０３７」に、転送データを転送（送信）する。同様に、アドレス／データ保持部３３０は、バススレーブ装置４００に転送された転送先アドレス「２０３７」と転送データ「３２４４」を保持する。  このように、本来アドレス５１１の情報（アドレス線情報５１０）を通信するアドレス線４１０を用いて、データ５２１の情報をアドレス線情報５１０として通信することで、２回分の転送を１回で行うことが可能となる。
【００３０】
なお、通常、アドレス線情報５１０にデータ５２１が設定された場合、まず、アドレス線情報５１０に設定されたデータ５２１は、コマンド５３６に基づいたデータ転送のためのアドレス５１１に書き込まれる。そして、データ線情報５２０に設定されたデータ５２１は、アドレス線情報５１０に設定されたデータ５２１が書き込まれたアドレス５１１をインクリメントしたアドレス５１１に書き込まれる。
あるいは、アドレス線情報５１０にデータ５２１が設定された場合、まずデータ線情報５２０に設定されたデータ５２１は、コマンド５３６に基づいたデータ転送のためのアドレス５１１に書き込まれるように設定することも可能である。そして、アドレス線情報５１０に設定されたデータ５２１は、データ線情報５２０に設定されたデータ５２１が書き込まれたアドレス５１１をインクリメントしたアドレス５１１に書き込まれるように設定することも可能である。
図１１を用いて具体的に説明すると、通常、アドレス線情報５１０にデータ５２１「４４５５」が設定された場合、まず、アドレス線情報５１０に設定されたデータ５２１「４４５５」は、コマンド５３６に基づいたデータ転送のためのアドレス５１１「２０３６」に書き込まれる。そして、データ線情報５２０に設定されたデータ５２１「３２４４」は、アドレス線情報５１０に設定されたデータ５２１が書き込まれたアドレス５１１「２０３６」をインクリメントしたアドレス５１１「２０３７」に書き込まれる。
あるいは、アドレス線情報５１０にデータ５２１「４４５５」が設定された場合、まずデータ線情報５２０に設定されたデータ５２１「３２４４」は、コマンド５３６に基づいたデータ転送のためのアドレス５１１「２０３６」に書き込まれるように設定することも可能である。そして、アドレス線情報５１０に設定されたデータ５２１「４４５５」は、データ線情報５２０に設定されたデータ５２１が書き込まれたアドレス５１１「２０３６」をインクリメントしたアドレス５１１「２０３７」に書き込まれるように設定することも可能である。
【００３１】
次に図１２を用いて、Ｄ１０４〜Ｄ１０５の情報をバススレーブ装置４００に書き込む場合を説明する。
Ｄ１０４は、アドレス５１１が、直前にデータ転送要求情報５００の生成に用いたＤ１０３のアドレスと同じである。
従って、バスマスタ装置２００のコマンド設定部２１０は、コマンド５３６を「０１０」に設定する。そして、情報設定部２２０は、コマンド５３６が「０１０」に設定されたことにより、アドレス線情報５１０にＤ１０４のデータ５２１「３０５９」を設定し、データ線情報５２０にＤ１０５のデータ５２１「３３２５」を設定する。
そして、途中の説明を省略するが、アドレス／データ設定装置３００は、前記と同様の動作により、情報内容判定部３２０は、制御線４３０を介して受信した制御線情報５３０に含まれるコマンド５３６を「０１０」と認識する。そして、前記と同様の動作により、情報内容判定部３２０は、コマンド５３６が「０１０」と認識されたことにより、アドレス線情報５１０の情報内容と、データ線情報５２０の情報内容を判定し、アドレス／データ保持部３３０が保持している転送先アドレスをそのまま転送先アドレスとして維持すると判定する。
具体的には、アドレス線情報５１０に設定された情報内容「３０５９」を、アドレス／データ保持部３３０が保持している転送先アドレス「２０３７」にアドレス／データ送信部３４０は転送（送信）する。そして、データ線情報５２０に設定された情報内容「３３２５」については、アドレス／データ保持部３３０に保持されている転送先アドレスをインクリメントして新たな転送先アドレス「２０３８」を求め、新たな転送先アドレスに転送する。
このように、本来アドレス５１１の情報（アドレス線情報５１０）を通信するアドレス線４１０を用いて、データ５２１の情報をアドレス線情報５１０として通信することで、２回分の転送を１回で行うことが可能となる。
【００３２】
次に図１３を用いて、Ｄ１０６〜Ｄ１０７の情報をバススレーブ装置４００に書き込む場合を説明する。
Ｄ１０６〜Ｄ１０７は、データ５２１が、直前に生成したデータ転送要求情報５００に用いたＤ１０５のデータと同じである。
従って、バスマスタ装置２００のコマンド設定部２１０は、コマンド５３６を「１００」に設定する。そして、情報設定部２２０は、コマンド５３６が「１００」に設定されたことにより、アドレス線情報５１０にＤ１０６のアドレス５１１「２０４０」を、データ線情報５２０にＤ１０７のアドレス５１１「２０４３」を設定する。
そして、アドレス／データ設定装置３００の情報内容判定部３２０は、コマンド５３６に「１００」が設定されていることを判定する。情報内容判定部３２０がコマンド５３６を「１００」と判定したことにより、アドレス線情報５１０に設定された情報内容「２０４０」のアドレスに、アドレス／データ保持部３３０が保持している転送データ「３３２５」をアドレス／データ送信部３４０は転送（送信）する。更に、データ線情報５２０に設定された情報内容「２０４３」のアドレスに、アドレス／データ保持部３３０が保持している転送データ「３３２５」をアドレス／データ送信部３４０は転送（送信）する。
このように、本来データ５２１の情報（データ線情報５２０）を通信するデータ線４２０を用いて、アドレス５１１の情報をデータ線情報５２０として通信することで、２回分の転送を１回で行うことが可能となる。
【００３３】
次に図１４を用いて、Ｄ１０８〜Ｄ１０９の情報をバススレーブ装置４００に書き込む場合を説明する。
Ｄ１０８のデータ５２１は、Ｄ１０７のデータに対して、１つ加算された値となっており、Ｄ１０９のデータ５２１はＤ１０８のデータに対して、１つ加算された値となっている。
従って、コマンド設定部２１０は、コマンド５３６を「１０１」に設定する。そして、情報設定部２２０は、コマンド５３６が「１０１」に設定されたことにより、アドレス線情報５１０にＤ１０８のアドレス５１１「２０４６」を、データ線情報５２０にＤ１０９のアドレス５１１「２０４９」を設定する。
そして、情報内容判定部３２０はコマンド５３６に「１０１」が設定されていることを認識する。情報内容判定部３２０がコマンド５３６に「１０１」が設定さえていることを認識したことにより、アドレス線情報５１０に設定された情報内容「２０４６」のアドレスに、アドレス／データ保持部３３０が保持している転送データをインクリメントした値「３３２６」をアドレス／データ送信部３４０は転送（送信）する。アドレス／データ保持部３３０は、新たな転送データ「３３２６」を保持する。更に、データ線情報５２０に設定された情報内容「２０４９」のアドレスに、アドレス／データ保持部３３０が保持している転送データをインクリメントした値「３３２７」をアドレス／データ送信部３４０は転送（送信）する。
このように、本来データ５２１の情報（データ線情報５２０）を通信するデータ線４２０を用いて、アドレス５１１の情報をデータ線情報５２０として通信することで、２回分の転送を１回で行うことが可能となる。
【００３４】
次に図１５を用いて、Ｄ１１０〜Ｄ１１４の情報をバススレーブ装置４００に書き込む場合を説明する。
Ｄ１１０〜Ｄ１１４は、連続したアドレスにおいて、Ｄ１０９と同じデータが並んでいる。その為、ＣＰＵ９１１は、転送種別５３５を「バースト転送」と判断する。そして、ＣＰＵ９１１は、バースト転送の範囲のアドレスを指定する。ここで、転送種別及びバースト転送の範囲の判断は、コマンド設定部２１０が行うことも可能である。
コマンド設定部２１０は、コマンド５３６を「１００」に設定する。そして、情報設定部２２０は、コマンド５３６が「１００」と設定されたことにより、ＣＰＵ９１１もしくはコマンド設定部２１０に指定されたアドレスの範囲に基づいて、アドレス線情報５１０にＤ１１０のアドレス５１１「２０５０」を、データ線情報５２０にＤ１１４のアドレス５１１「２０５４」を設定する。
そして、情報内容判定部３２０は、転送種別５３５に「バースト転送」、コマンド５３６に「１００」が設定されていることを認識する。情報内容判定部３２０が転送種別５３５に「バースト転送」、コマンド５３６に「１００」が設定されていることを認識したことにより、アドレス線情報５１０に設定された情報内容「２０５０」からデータ線情報５２０に設定された情報内容「２０５４」までのアドレスに、アドレス／データ保持部３３０が保持している転送データ「３３２７」をアドレス／データ送信部３４０は転送（送信）する。
このように、本来データ５２１の情報（データ線情報５２０）を通信するデータ線４２０を用いて、アドレス５１１の情報をデータ線情報５２０として通信することで、バースト転送の要求を１回で行うことが可能となる。
【００３５】
以上の説明は、簡略化のために図４に示すバスマスタ装置２００とバススレーブ装置４００とがそれぞれ１つの場合のバス制御システム１００を想定した。
しかしながら、実際のシステムは、図３に示すように複数のバスマスタ装置２００と複数のバススレーブ装置４００とが存在する場合が有る。
その場合、前述の通り、アービタ４５０がどのバスマスタ装置２００にバス使用権を与えるかの調停を行う。このような場合も、本来２回のデータ転送要求情報５００の通信を行う必要があったことに対し、１回で行うことで、他のバスマスタ装置２００に、アービタ４５０は使用許可を与えることが出来るので、システム全体の転送効率を向上させることが可能となる。
【００３６】
実施の形態２．
本実施の形態では、バス制御システムにおいて、２つのバスマスタ装置からの情報を連結して１つの情報として送信する連結部と、連結された１つの情報を受信して２つの情報に分離する分離部とを使用して、データ転送要求情報の送信の効率化を行う例を説明する。
【００３７】
最初に、図１６、図１７、図１８を用いて連結部４６０と分離部４７０とを備えたバス制御システム１００の概要を説明する。
図１６は、連結部４６０と分離部４７０とを備えたバス制御システム１００の構成を示すブロック図である。
バス制御システム１００は、複数のバスマスタ装置２００と複数のアドレス／データ設定装置とを備える。
連結部４６０は、複数のバスマスタ装置２００が送信したデータ転送要求情報５００に含まれるコマンド５３６を解析する。そして、連結部４６０は、特定のコマンド５３６の場合、２つのバスマスタ装置２００からの２つのデータ転送要求情報５００を１つに連結する。
分離部４７０は、連結部４６０で１つに連結されたデータ転送要求情報５００を２つに分離する。
その他は、実施の形態１と同様である為、説明を省略する。なお、図１６では、バスマスタ装置２００が２つ、バススレーブ装置４００が２つの場合を図示したが、バスマスタ装置２００およびバススレーブ装置４００の数は、限定されるものでは無い。
【００３８】
図１７は、バスマスタ装置２００が発行（送信）するデータ転送要求情報５００の一例を示す説明図である。実施の形態１と比較すると、図１７は、連結フラグ５３７が追加されている。連結フラグ５３７は、バスマスタ装置２００がデータ転送要求情報５００を発行（送信）するときは「０」となっており、連結処理（後述で説明）を行った場合に「１」となる。
ここで、コマンド５３６の具体例を示す。
コマンド５３６が「００００」：バスマスタ装置２００は、アドレス線情報５１０に、アドレス５１１を設定し、、データ線情報５２０にデータ５２１を設定する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にアドレス５１１が設定されていると認識し、データ線情報５２０にデータ５２１が設定されていると認識する。
コマンド５３６が「００１０」：バスマスタ装置２００は、アドレス線情報５１０にデータ５２１を設定し、データ線情報５２０に、データ５２１を設定する。その際、バスマスタ装置２００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にデータ５２１が設定されていると認識し、データ線情報５２０にデータ５２１が設定されていると認識する。その際、アドレス／データ設定装置３００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値を用いると認識する。
コマンド５３６が「００１１」：バスマスタ装置２００は、アドレス線情報５１０にデータ５２１を設定し、データ線情報５２０に、データ５２１を設定する。その際、バスマスタ装置２００は、アドレス５１１にアドレス／データ設定装置３００が記憶しているアドレス値からインクリメント（１を加算）した値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にデータ５２１が設定されていると認識し、データ線情報５２０にデータ５２１が設定されていると認識する。その際、アドレス／データ設定装置３００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値からインクリメント（１を加算）した値を用いると認識する。
コマンド５３６が「０１００」：バスマスタ装置２００は、データ線情報５２０にアドレス５１１を設定し、アドレス線情報５１０に、アドレス５１１を設定する。その際、バスマスタ装置２００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にアドレス５１１が設定されていると認識し、データ線情報５２０にアドレス５１１が設定されていると認識する。その際、アドレス／データ設定装置３００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値を用いると認識する。
コマンド５３６が「０１０１」：バスマスタ装置２００は、データ線情報５２０にアドレス５１１を設定し、アドレス線情報５１０に、アドレス５１１を設定する。その際、バスマスタ装置２００は、データ５２１は、アドレス／データ設定装置３００が記憶しているデータ値からインクリメントした値を用いると判断する。そして、アドレス／データ設定装置３００は、アドレス線情報５１０にアドレス５１１が設定されていると認識し、データ線情報５２０にアドレス５１１が設定されていると認識する。その際、アドレス／データ設定装置３００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値からインクリメントした値を用いると認識する。
コマンド５３６が「１０１０」：バスマスタ装置２００は、アドレス線情報５１０は未使用と設定し、データ線情報５２０にデータ５２１を設定する。その際、バスマスタ装置２００は、アドレス５１１に、アドレス／データ設定装置３００が記憶しているアドレス値を用いると判断する。
コマンド５３６が「１０１１」：バスマスタ装置２００は、アドレス線情報５１０は未使用と設定し、データ線情報５２０にデータ５２１を設定する。その際、バスマスタ装置２００は、アドレス５１１にアドレス／データ設定装置３００が記憶しているアドレス値からインクリメント（１を加算）した値を用いると判断する。
コマンド５３６が「１１００」：バスマスタ装置２００は、データ線情報５２０は未使用と設定し、アドレス線情報５１０に、アドレス５１１を設定する。その際、バスマスタ装置２００は、データ５２１に、アドレス／データ設定装置３００が記憶しているデータ値を用いると判断する。
コマンド５３６が「１１０１」：バスマスタ装置２００は、データ線情報５２０は未使用と設定し、アドレス線情報５１０に、アドレス５１１を設定する。その際、バスマスタ装置２００は、データ５２１は、アドレス／データ設定装置３００が記憶しているデータ値からインクリメントした値を用いると判断する。
以下の説明において、コマンド５３６の具体例（例えば「００００」）を引用して説明している箇所は、上記で説明の機能の引用に入れ替えて説明することが可能である。
なお、コマンド５３６が「００００」「００１０」「００１１」「０１００」「０１０１」と「０＊＊＊」の場合は、連結処理は行われず、実施の形態１と同様である。
【００３９】
あるいは、バスマスタ装置２００は、４ビットから成るコマンド５３６の内、４桁目のビットが「０」でかつ、２桁目のビットが「１」ならば（すなわち「０＊１＊」ならば）、アドレス線情報５１０をデータ５２１と設定し、４桁目のビットが「０」でかつ、３桁目のビットが「１」ならば（すなわち「０１＊＊」ならば）、データ線情報５２０をアドレス５１１と設定することも可能である。更に、バスマスタ装置２００は、１桁目のビットが「１」ならばアドレス／データ設定装置３００が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。更にバスマスタ装置２００は、４ビットから成るコマンド５３６の内、４桁目のビットが「１」でかつ、２桁目のビットが「１」ならば（すなわち「１＊１＊」ならば）、アドレス線情報５１０を未使用と設定し、４桁目のビットが「１」でかつ、３桁目のビットが「１」ならば（すなわち「１１＊＊」ならば）、データ線情報５２０を未使用と設定することも可能である。（アドレス／データ設定装置３００については、実施の形態１と同様であるので説明を省略する。）
【００４０】
図１８は、連結処理後のデータ転送要求情報５００の一例を示す図である。
例えば、図１６に示すバスマスタ装置２００ａとバスマスタ装置２００ｂとから送信されたデータ転送要求情報５００を連結した場合を想定する。その場合、図１８に示す第１転送情報５３８は、バスマスタ装置２００ａからの第１のデータ転送要求情報５００に含まれる情報を抽出したものである。同様に第２転送情報５３９は、バスマスタ装置２００ｂからの第２のデータ転送要求情報５００に含まれる情報を抽出したものである。そして、前述の通り、連結フラグ５３７は「１」に設定される。
【００４１】
ここで、連結部４６０の概要を説明する。
連結部４６０は、複数のバスマスタ装置２００が送信する所定のコマンド５３６を有した複数のデータ転送要求情報５００を受信する。そして、連結部４６０は、受信した複数のデータ転送要求情報５００の内、第１のバスマスタ装置２００ａが送信した第１のデータ転送要求情報５００と、第２のバスマスタ装置２００ｂが送信した第２のデータ転送要求情報５００との２つのデータ転送要求情報５００を選択する。
そして、連結部４６０は、第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを解析する。連結部４６０は、解析した結果に基づいて、アドレス線情報５１０に、選択した第１のデータ転送要求情報５００ａのデータ５２１を設定するか否か、及び選択した第２のデータ転送要求情報５００ｂのデータ５２１を設定するか否か、及び選択した第１のデータ転送要求情報５００ａのアドレス５１１を設定するか否か、及び選択した第２のデータ転送要求情報５００ｂのアドレス５１１を設定するか否かを判定する。
そして、連結部４６０は、第１のデータ転送要求情報５００ａと第２のデータ転送要求情報５００ｂとを解析して、解析した結果に基づいて、データ線情報５２０に、選択した第１のデータ転送要求情報５００ａのデータ５２１を設定するか否か、及び選択した第２のデータ転送要求情報５００ｂのデータ５２１を設定するか否か、及び選択した第１のデータ転送要求情報５００ａのアドレス５１１を設定するか否か、及び選択した第２のデータ転送要求情報５００ｂのアドレス５１１を設定するか否かを判定する。
そして、連結部４６０は、判定した結果に基づいてデータ線情報５２０とアドレス線情報５１０とを設定し、データ線情報５２０とアドレス線情報５１０との設定結果に基づいて所定の連結フラグ５３７を設定し、設定した所定の連結フラグ５３７と第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを制御線情報５３０に設定する。
更に、連結部４６０は、データ線情報５２０をデータ線４２０を介して送信し、アドレス線情報５１０をアドレス線４１０を介して送信し、所定の連結フラグ５３７と第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを有する制御線情報５３０を制御線４３０を介して送信する。
【００４２】
そして、分離部４７０の概要を説明する。
分離部４７０は、バス９１２の制御線４３０を介して所定の連結フラグ５３７と第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを有する制御線情報５３０を受信し、バス９１２のデータ線４２０を介してデータ線情報５２０を受信し、バス９１２のアドレス線４１０を介してアドレス線情報５１０を受信する。
そして、分離部４７０は、受信した所定の連結フラグ５３７と第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを有する制御線情報５３０を判定する。
そして、分離部４７０は、所定の連結フラグ５３７と第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを有する制御線情報５３０により、データ線情報５２０に第１のデータ転送要求情報５００ａのデータ５２１が設定されているか否か、及び第２のデータ転送要求情報５００ｂのデータ５２１が設定されているか否か、及び第１のデータ転送要求情報５００ａのアドレス５１１が設定されているか否か、及び第２のデータ転送要求情報５００ｂのアドレス５１１が設定されているか否かを判定する。
そして、分離部４７０は、所定の連結フラグ５３７と第１のデータ転送要求情報５００ａが有する所定のコマンド５３６ａと第２のデータ転送要求情報５００ｂが有する所定のコマンド５３６ｂとを有する制御線情報５３０により、アドレス線情報５１０に第１のデータ転送要求情報５００ａのデータ５２１が設定されているか否か、及び第２のデータ転送要求情報５００ｂのデータ５２１が設定されているか否か、及び第１のデータ転送要求情報５００ａのアドレス５１１が設定されているか否か、及び第２のデータ転送要求情報５００ｂのアドレス５１１が設定されているか否かを判定する。
そして、分離部４７０は、判定した判定結果とデータ線情報５２０とアドレス線情報５１０とに基づいて、複数のアドレス／データ設定装置３００の中からデータ転送先のアドレス／データ設定装置３００を決定する。
そして、分離部４７０は、データ転送のためのアドレス５１１とデータ転送のためのデータ５２１とを決定して、決定したアドレス５１１とデータ５２１とをデータ転送先のアドレス／データ設定装置３００に対して送信する。
【００４３】
次に図１９を用いて、連結部４６０と分離部４７０とを備えたバス制御システム１００の動作の流れを説明する。
図１９は、連結部４６０と分離部４７０とを備えたバス制御システム１００動作を説明するフローチャートである。
ステップ１１（ＳＴ１１）において、第１のバスマスタ装置２００が図１７に示すデータ転送要求情報５００を発行（送信）する。
ステップ１２（ＳＴ１２）において、連結部４６０がコマンド５３６を解析する。コマンド５３６が「０＊＊＊」の場合はＳＴ１７に進む。コマンド５３６が「０＊＊＊」以外の場合はＳＴ１３に進む。
ステップ１３（ＳＴ１３）において、連結部４６０がコマンド５３６を解析する。コマンド５３６が「１＊＊＊」のデータ転送要求情報５００を送信している第２のバスマスタ装置２００が存在しない場合はＳＴ１７に進む。コマンド５３６が「１＊＊＊」の第２のバスマスタ装置２００が存在する場合はＳＴ１４に進む。
ステップ１４（ＳＴ１４）において、連結部４６０がコマンド５３６を解析する。コマンド５３６が「１＊＊＊」のデータ転送要求情報５００を送信しているバスマスタ装置２００が２つの場合はＳＴ１５に進む。コマンド５３６が「１＊＊＊」のデータ転送要求情報５００を送信しているバスマスタ装置２００が３つ以上存在する場合はＳＴ１６に進む。
ステップ１５（ＳＴ１５）においては、アドレス線４１０未使用のバスマスタ装置２００やデータ線４２０未使用のバスマスタ装置２００が２つ存在する。そこで、未使用のアドレス線４１０またはデータ線４２０に他方のバスマスタ装置２００のアドレス５１１またはデータ５２１を割り当て、２つのバスマスタ装置２００のデータ転送要求情報５００を１つに連結する（連結処理）。連結後のデータ転送要求情報５００を図１８に示す。図１８において、連結フラグ５３７は連結したことを示すために「１」に設定する。リクエストは要求を示すために「１」に設定する。マスタＩＤ５３２、スレーブＩＤ５３３、コマンド５３６、転送情報は、連結する２つのバスマスタ装置２００からのデータ転送要求情報５００からそれぞれ抽出する。ここで、転送情報は、アドレス５１１またはデータ５２１である。
ステップ１６（ＳＴ１６）においては、アドレス線４１０未使用のバスマスタ装置２００やデータ線４２０未使用のバスマスタ装置２００が３つ以上存在する。そこで、連結部４６０は、連結するデータ転送要求情報５００を２つ選択する。選択方法は固定優先順位またはラウンドロビンにより選択する。
ステップ１７（ＳＴ１７）においては、どのバスマスタ装置２００にバス使用権を与えるか、アービタ４５０が調停を行う。
ステップ１８（ＳＴ１８）において、分離部４７０が連結フラグ５３７を解析する。連結フラグ５３７が「０」の場合はＳＴ２０に進む。連結フラグ５３７が「１」の場合はＳＴ１９に進む。
ステップ１９（ＳＴ１９）において、分離部４７０が連結部４６０で連結されたデータ転送要求情報５００を分離し、転送先のアドレス／データ設定装置３００にデータ転送要求情報５００を出力する。この時のデータ転送要求情報５００は図１７に示すフォーマットから連結フラグ５３７を除いたものとなる。（図５のフォーマットと同じである）。
ステップ２０（ＳＴ２０）において、アドレス／データ設定装置３００がコマンド５３６を解析する。コマンド５３６が「００００」の場合はＳＴ２１に進む。コマンド５３６が「００００」以外の場合はＳＴ２２に進む。
ステップ２１（ＳＴ２１）は、アドレス線情報５１０はアドレス５１１として設定し、データ線情報５２０はデータ５２１として設定する通常ケースのステップである。ＳＴ２１において、アドレス／データ保持部３３０は、転送先アドレスとしてアドレス５１１と、転送データとしてデータ５２１とを保持する。
ステップ２２（ＳＴ２２）において、アドレス／データ設定装置３００がコマンド５３６を解析する。コマンド５３６が「＊０１＊」の場合はＳＴ２３に進む。コマンド５３６がそれら以外の場合はＳＴ２５に進む。
ステップ２３（ＳＴ２３）は、アドレス線情報５１０をアドレス５１１として使用しないケースのステップである。コマンド５３６が「００１＊」の場合はアドレス線情報５１０はデータ５２１として設定し、コマンド５３６が「１０１＊」の場合はアドレス線情報５１０は使用しないケースである。そして、コマンド５３６が「＊０１０」の場合はアドレス／データ送信部３４０は、アドレス／データ保持部３３０が保持しているアドレス（前回転送時のアドレスと同じアドレス５１１）を転送先アドレスとして設定する。コマンド５３６が「＊０１１」の場合はアドレス／データ送信部３４０は、アドレス／データ保持部３３０が保持しているアドレス５１１の値（前回転送時のアドレスの値）をインクリメントした値を転送先アドレスとして設定する。
ステップ２４（ＳＴ２４）において、アドレス／データ保持部３３０は、ＳＴ２３で設定した転送先アドレスを保持する。
ステップ２５（ＳＴ２５）は、データ線情報５２０をデータ５２１として使用しないケースのステップである。コマンド５３６が「０１０＊」の場合はデータ線情報５２０はアドレス５１１として設定し、コマンド５３６が「１１０＊」の場合はデータ線情報５２０は使用しないケースである。そして、コマンド５３６が「＊１００」の場合はアドレス／データ保持部３３０が保持しているデータ５２１（前回転送時のデータと同じデータ）を転送データとして設定する。コマンド５３６が「＊１０１」の場合はアドレス／データ保持部３３０が保持しているデータ５２１（前回転送時のデータ）の値をインクリメントした値を転送データとして設定する。
ステップ２６（ＳＴ２６）において、アドレス／データ保持部３３０は、ＳＴ２５で設定した転送データを保持する。
ステップ２７（ＳＴ２７）において、前記フロー（ＳＴ１１〜ＳＴ２６）で設定された転送先アドレスに転送データを転送する。
以上の説明は、バスマスタ装置２００からバススレーブ装置４００への書き込み動作を想定し、データ５２１の設定について記載している。読み込み動作の場合は、データ５２１の設定は不要となる。
【００４４】
次に図２０、図２１、図２２を用いてバスマスタ装置２００ａとバスマスタ装置２００ｂとがアドレス５１１をインクリメントしながら、データ５２１をバススレーブ装置４００ａとバススレーブ装置４００ｂとに書き込む場合の具体例を示す。バス制御システム１００は、図１６の例を用いる。
図２０は、バスマスタ装置２００が送信した１回目のデータ転送要求情報５００の具体例を示す図である。（（ａ）は、バスマスタ装置２００ａが送信した１回目のデータ転送要求情報５００の具体例、（ｂ）は、バスマスタ装置２００ｂが送信した１回目のデータ転送要求情報５００の具体例）。
図２１は、バスマスタ装置２００が送信した２回目のデータ転送要求情報５００の具体例を示す図である。（（ａ）は、バスマスタ装置２００ａが送信した２回目のデータ転送要求情報５００の具体例、（ｂ）は、バスマスタ装置２００ｂが送信した２回目のデータ転送要求情報５００の具体例）。
図２２は、連結部４６０が連結処理を行ったデータ転送要求情報５００の具体例を示す図である。
【００４５】
図２０に示すように、バスマスタ装置２００ａとバスマスタ装置２００ｂとは、それぞれデータ転送要求情報５００を発行（送信）する。１回目に送信されるデータ転送要求情報５００は、実施の形態１と同様に一連の情報（一連の情報の図示は省略する）の内、最初にバススレーブ装置４００に書き込まれる情報である。そして、アドレス／データ保持部３３０には情報が蓄積されていない為、コマンド設定部２１０は、コマンド５３６を「００００」に設定する。
ここでは、バスマスタ装置２００ａのマスタＩＤ５３２を「００１」、バスマスタ装置２００ｂのマスタＩＤ５３２を「００２」、バススレーブ装置４００ａのスレーブＩＤ５３３を「００１」、バススレーブ装置４００ｂのスレーブＩＤ５３３を「００２」と想定している。
そして、バスマスタ装置２００ａは、バススレーブ装置４００ａにデータ転送要求情報５００を送信し、バスマスタ装置２００ｂは、バススレーブ装置４００ｂにデータ転送要求情報５００を送信すると、想定する。
【００４６】
図２０に示す１回目のデータ転送要求情報５００が、バスマスタ装置２００ａとバスマスタ装置２００ｂとから同時に送信された場合、コマンド５３６が「００００」なので、連結部４６０と分離部４７０は特に処理を行わない。
そして、最初にアービタ４５０がバスマスタ装置２００ａにバス使用権を与えると想定する。そして、アドレス／データ設定装置３００ａのアドレス／データ送信部３４０は、バススレーブ装置４００ａのアドレス「２０３５」にデータ「４０５６」を書き込む。更にアドレス／データ設定装置３００ａのアドレス／データ保持部３３０は、アドレス「２０３５」とデータ「４０５６」とを保持する。
次に、アービタ４５０がバスマスタ装置２００ｂにバス使用権を与える。同様にアドレス／データ設定装置３００ｂのアドレス／データ送信部３４０は、バススレーブ装置４００ｂのアドレス「２０５０」にデータ「３３２７」を書き込む。更にアドレス／データ設定装置３００ｂのアドレス／データ保持部３３０は、アドレス「２０５０」とデータ「３３２７」とを既に保持済の情報に上書きして保持する。
【００４７】
次にバスマスタ装置２００ａが、２回目のデータ転送要求情報５００として、データ「４４５５」をバススレーブ装置４００ａのアドレス「２０３６」に書き込む場合を想定する。そして、バスマスタ装置２００ｂが、２回目のデータ転送要求情報５００として、データ「３３２７」をバススレーブ装置４００ａのアドレス「２０５１」に書き込む場合を想定する。更に、ＣＰＵ９１１もしくはコマンド設定部２１０は、アドレス線情報５１０もしくはデータ線情報５２０が未使用である為に、連結部４６０を使用して、２つのバスマスタ装置２００からのデータ転送要求情報５００を１つに連結すると判断した場合を想定する。あるいは、ＣＰＵ９１１もしくはコマンド設定部２１０は、例えばバス９１２の回線混雑状況などから連結部４６０の使用を判断する。
その場合、バスマスタ装置２００ａとバスマスタ装置２００ｂとのコマンド設定部２１０は、図２１に示すように、データ転送要求情報５００のコマンド５３６を「１０１１」に設定する。ここで、図２１において、アドレス線情報５１０にアドレス５１１が設定されているが、コマンド５３６が「１０１１」（アドレス線情報５１０は未使用）である為に、アドレス５１１の値は実際には使用されない。その為、アドレス線情報５１０は、無意味なダミー情報が設定されていても良い。
【００４８】
連結部４６０は、図２１に示すバスマスタ装置２００ａとバスマスタ装置２００ｂとからのデータ転送要求情報５００を受信すると、コマンド５３６を解析する。そして、バスマスタ装置２００ａとバスマスタ装置２００ｂとからのデータ転送要求情報５００はアドレス線情報５１０は未使用なので、例えばバスマスタ装置２００ｂからのデータ５２１をアドレス線情報５１０に割り当てる。
そして、連結部４６０は、バスマスタ装置２００ａからのデータ転送要求情報５００を第１転送情報５３８、バスマスタ装置２００ｂからのデータ転送要求情報５００を第２転送情報５３９として連結し、図２２に示すデータ転送要求情報５００を送信する。この時、連結部４６０は、連結フラグ５３７をバスマスタ装置２００ａとバスマスタ装置２００ｂとからのデータ転送要求情報５００が連結していることを示す「１」に設定する。
【００４９】
アービタ４５０が、図２２に示すデータ転送要求情報５００を送信する連結部４６０に対して、バス使用権を与える。
そして、分離部４７０は、図２２に示すデータ転送要求情報を受信し、第１転送情報５３８と第２転送情報５３９とを分離し、バスマスタ装置２００ａとバスマスタ装置２００ｂとからのデータ転送要求情報５００を復元する。その際に、連結フラグ５３７は不要であり、削除される。また、コマンド５３６は、４ビット（４桁）のままアドレス／データ設定装置３００に送られる。
【００５０】
そして、実施の形態１と同様に、アドレス／データ設定装置３００ａは、復元されたバスマスタ装置２００ａからのデータ転送要求情報５００を受信する。そして、コマンド５３６が「１０１１」に設定されていることにより、アドレス／データ保持部３３０が保持していたアドレス「２０３５」をインクリメントした転送先アドレス「２０３６」にデータ「４４５５」をアドレス／データ送信部３４０は送信する。同様にアドレス／データ設定装置３００ｂは、復元されたバスマスタ装置２００ｂからのデータ転送要求情報５００を受信する。そして、コマンド５３６が「１０１１」に設定されていることにより、アドレス／データ保持部３３０が保持していたアドレス「２０５０」をインクリメントしたアドレス「２０５１」にデータ「３３２７」をアドレス／データ送信部３４０は送信する。
図２０〜図２２の説明においては、バスマスタ装置２００ａのデータ転送要求情報５００とバスマスタ装置２００ｂのデータ転送要求情報５００とのコマンド５３６が両方「１０１１」の場合のみを説明した。しかし同様に、コマンド５３６が「１０１０」「１１００」「１１０１」のように「１＊＊＊」となっている時は、アドレス線情報５１０もしくはデータ線情報５２０のどちらかが未使用の場合である。したがって、「１＊＊＊」となっているコマンド５３６を含むデータ転送要求情報５００同士ならば、どの２つの組み合わせにおいても、連結部４６０は連結が可能である。
例えば、コマンド５３６が「１＊＊＊」の場合、バスマスタ装置２００ａは、アドレス線情報５１０もしくはデータ線情報５２０のいずれかを送信する。そして、連結部４６０は、バスマスタ装置２００ａの送信したアドレス線情報５１０もしくはデータ線情報５２０のいずれかを、図１８に示す第１転送情報５３８の転送情報に設定する。そして、バスマスタ装置２００ｂは、アドレス線情報５１０もしくはデータ線情報５２０のいずれかを送信する。そして、連結部４６０は、バスマスタ装置２００ａの送信したアドレス線情報５１０もしくはデータ線情報５２０のいずれかを、図１８に示す第２転送情報５３９の転送情報に設定する。そして、第１転送情報５３８の転送情報および第２転送情報５３９の転送情報に何が設定されているかを、情報内容判定部３２０はコマンド５３６から判定することが出来る。
【００５１】
以上により、バスマスタ装置２００ａとバスマスタ装置２００ｂとの２つのデータ転送要求情報５００を同時に転送することが出来るので、バス制御システム１００は、データ転送要求情報５００の転送効率を向上させることが出来る。
【００５２】
以上、実施の形態１及び２において、複数のバスマスタ装置２００からのデータ転送要求情報５００をバスマスタ装置２００に転送（送信）するバス制御システム１００において、バスマスタ装置２００から転送（送信）されるコマンド５３６に基づいて転送先アドレス（データ転送のためのアドレス５１１）や転送データ（データ転送のためのデータ５２１）を設定するアドレス／データ設定装置３００を備えたことを特長とするバス制御システム１００について説明した。
また、バスマスタ装置２００毎に前回の転送先アドレス（データ転送のためのアドレス５１１）を保持することを特長とするアドレス／データ設定装置３００を備えたバス制御システム１００について説明した。
また、バスマスタ装置２００毎に前回の転送データ（データ転送のためのデータ５２１）を保持することを特長とするアドレス／データ設定装置３００を備えたバス制御システム１００について説明した。
また、バスマスタ装置２００が任意のデータ５２１を同一アドレス５１１またはアドレス５１１をインクリメントして連続して転送（送信）する場合、２回目以降の転送（送信）時はアドレス５１１に割り当てられたビット（アドレス線情報５１０）にもデータ５２１を割り当てて転送（送信）し、アドレス／データ設定装置３００で転送先アドレス（データ転送のためのアドレス５１１）を設定することを特長とするバス制御システム１００について説明した。
また、バスマスタ装置２００が任意のアドレス５１１に同一データ５２１またはデータ５２１をインクリメントして連続して転送（送信）する場合、２回目以降の転送（送信）時はデータ５２１に割り当てられたビット（データ線情報５２０）にもアドレス５１１を割り当てて転送（送信）し、アドレス／データ設定装置３００で転送データ（データ転送のためのデータ５２１）を設定することを特長とするバス制御システム１００について説明した。
また、複数のバスマスタ装置２００から発行（送信）される転送先アドレス（データ転送のためのアドレス５１１）や転送データ（データ転送のためのデータ５２１）を連結する連結部４６０と、連結された転送先アドレス（データ転送のためのアドレス５１１）や転送データ（データ転送のためのデータ５２１）を分離する分離部４７０を備えたことを特長とするバス制御システム１００について説明した。
また、コマンド５３６に基づいて複数のバスマスタ装置２００から発行（送信）される転送先アドレス（データ転送のためのアドレス５１１）や転送データ（データ転送のためのデータ５２１）を連結し、１つのリクエスト（データ転送要求情報５００）として発行（送信）する連結部４６０を備えたことを特長とするバス制御システム１００について説明した。
また、連結部４６０連結された情報（データ転送要求情報５００）をコマンド５３６に基づいて分離する分離部４７０を備えたことを特長とするバス制御システム１００について説明した。
【００５３】
既に、説明したように、本実施の形態１〜２に示すバス制御システム１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータの一部である。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００５４】
１００  バス制御システム、２００  バスマスタ装置、２１０  コマンド設定部、２２０  情報設定部、２３０  バスマスタ送信部、３００  アドレス／データ設定装置、３１０  アドレス／データ受信部、３２０  情報内容判定部、３３０  アドレス／データ保持部、３４０  アドレス／データ送信部、４００  バススレーブ装置、４１０  アドレス線、４２０  データ線、４３０  制御線、４５０  アービタ、４６０  連結部、４７０  分離部、５００  データ転送要求情報、５１０  アドレス線情報、５１１  アドレス、５２０  データ線情報、５２１  データ、５３０  制御線情報、５３１  リクエスト、５３２  マスタＩＤ、５３３  スレーブＩＤ、５３４  Ｒ／Ｗ情報、５３５  転送種別、５３６  コマンド、５３７  連結フラグ、５３８  第１転送情報、５３９  第２転送情報、９００  ユーザ端末、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  コンパクトディスク装置、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ローカルエリアネットワーク、９５０  情報処理システム。
【図１】
0005595248.tif 000002
【図２】
0005595248.tif 000003
【図３】
0005595248.tif 000004
【図４】
0005595248.tif 000005
【図５】
0005595248.tif 000006
【図６】
0005595248.tif 000007
【図７】
0005595248.tif 000008
【図８】
0005595248.tif 000009
【図９】
0005595248.tif 000010
【図１０】
0005595248.tif 000011
【図１１】
0005595248.tif 000012
【図１２】
0005595248.tif 000013
【図１３】
0005595248.tif 000014
【図１４】
0005595248.tif 000015
【図１５】
0005595248.tif 000016
【図１６】
0005595248.tif 000017
【図１７】
0005595248.tif 000018
【図１８】
0005595248.tif 000019
【図１９】
0005595248.tif 000020
【図２０】
0005595248.tif 000021
【図２１】
0005595248.tif 000022
【図２２】
0005595248.tif 000023