説明

バスマスタ装置及びアドレス/データ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム

【課題】バスマスタ装置200がバススレーブ装置400に対してデータ転送を要求する為のデータ転送要求情報は、転送データと共にデータ転送先のアドレスを含んでいるが、アドレスが不要な情報の場合がある。
【解決手段】バス制御システム100は、バススレーブ装置400に転送されたデータとアドレスを保持するアドレス/データ設定装置300を備え、バスマスタ装置200は、アドレス送信が不要な場合は、データ線420に加え、アドレス線410を用いてデータを送信する。アドレス/データ設定装置300は、バスマスタ装置200が送信したデータを受信し、保持しているアドレスに基づいて、転送先アドレスを設定し、設定したバススレーブ装置400の転送先アドレスにデータを送信する。そして、バス制御システム100は、2回分のデータ転送要求情報に含まれるデータを1回で送信することが出来る。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、バスを介してバススレーブ装置に対するデータ転送要求情報を送信するバスマスタ装置と、バスマスタ装置の送信したデータ転送要求情報を受信しデータ転送要求情報に基づきバススレーブ装置に対してデータ転送要求を行うアドレス/データ設定装置と、更に前記バスマスタ装置と前記アドレス/データ設定装置とにより構成されるバス制御システムとに関する。
【背景技術】
【0002】
例えば、バスを介したバスマスタ装置とバススレーブ装置とのデータ転送において、バスマスタ装置は、バススレーブ装置にデータ転送要求を行う(もしくは、データ転送要求情報を送信する)。
ここで、バスマスタ装置とは、例えばCPU(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)である。また、バススレーブ装置とは、例えばメモリである。
そして、データ転送の効率化の為に、データ転送要求を待機させるのを抑制する手法として、バス使用状況やバス空き状況に応じてバスマスタに転送許可するデータバス幅を割り当てていた(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007-200245号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、データ転送要求情報は、バスマスタ装置が転送するデータと共に、バスマスタ装置がアクセスを行う、バススレーブ装置の記憶領域の位置を示すアドレスを必ず含んでいる。しかし、アドレスが固定であったり、アドレスが連続する場合には、バスマスタ装置は、不要な情報(アドレス)を送信していることになる。
本実施の形態においては、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行う。
【課題を解決するための手段】
【0005】
この発明に係るアドレス/データ設定装置は、データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレス/データ設定装置において、
(1)前記バスの制御線を介して所定のコマンドを有する制御線情報を受信し、
(2)前記バスのデータ線を介してデータ線情報を受信し、
(3)前記バスのアドレス線を介してアドレス線情報を受信する
アドレス/データ受信部と、
(a)前記アドレス/データ受信部が受信した前記所定のコマンドを判定し、
(b)前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定し、
(c)前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定する
情報内容判定部と、
(イ)前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定して、
(ロ)決定したアドレスとデータとを前記バススレーブ装置に対して送信する
アドレス/データ送信部と
を備えることを特徴とする。
【発明の効果】
【0006】
この発明に係るバスマスタ装置は、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行うことが可能となる。
【図面の簡単な説明】
【0007】
【図1】実施の形態1を示す図で、バス制御システム100を含む情報処理システム950の外観の一例を示す図。
【図2】実施の形態1を示す図で、バス制御システム100を含む情報処理システム950のハードウェア資源の一例を示す図。
【図3】実施の形態1を示す図で、バス制御システム100の構成を示すブロック図。
【図4】実施の形態1を示す図で、バス制御システム100の基本構成を示すブロック図。
【図5】実施の形態1を示す図で、データ転送要求情報500の一例を示す図。
【図6】実施の形態1を示す図で、バスマスタ装置200の構成を示すブロック図。
【図7】実施の形態1を示す図で、アドレス/データ設定装置300の構成を示すブロック図。
【図8】実施の形態1を示す図で、バス制御システム100動作を説明するフローチャート。
【図9】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報を示す図。
【図10】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報の内、最初の情報をバススレーブ装置400に書き込む場合の例を示す図。
【図11】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのアドレス511が連番である場合の例を示す図。
【図12】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのアドレス511が続けて同一である場合の例を示す図。
【図13】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのデータ521が続けて同一である場合の例を示す図。
【図14】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのデータ521の値が1つずつ続けて増えている場合を示す図。
【図15】実施の形態1を示す図で、バススレーブ装置400に書き込まれる一連の情報の内、バースト転送でバススレーブ装置400に書き込まれる例を示す図。
【図16】実施の形態2を示す図で、連結部460と分離部470とを備えたバス制御システム100の構成を示すブロック図。
【図17】実施の形態2を示す図で、バスマスタ装置200が発行(送信)するデータ転送要求情報500の一例を示す説明図。
【図18】実施の形態2を示す図で、連結処理後のデータ転送要求情報500の一例を示す図。
【図19】実施の形態2を示す図で、連結部460と分離部470とを備えたバス制御システム100動作を説明するフローチャート。
【図20】実施の形態2を示す図で、バスマスタ装置200が送信した1回目のデータ転送要求情報500の具体例を示す図。((a)は、バスマスタ装置200aが送信した1回目のデータ転送要求情報500の具体例、(b)は、バスマスタ装置200bが送信した1回目のデータ転送要求情報500の具体例)。
【図21】実施の形態2を示す図で、バスマスタ装置200が送信した2回目のデータ転送要求情報500の具体例を示す図。((a)は、バスマスタ装置200aが送信した2回目のデータ転送要求情報500の具体例、(b)は、バスマスタ装置200bが送信した2回目のデータ転送要求情報500の具体例)。
【図22】実施の形態2を示す図で、連結部460が連結処理を行ったデータ転送要求情報500の具体例を示す図。
【発明を実施するための形態】
【0008】
実施の形態1.
本実施の形態では、バス制御システムにおいて、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行うバスマスタ装置とアドレス/データ設定装置との例を説明する。
【0009】
最初に、図1、図2を用いてバス制御システム100を含む情報処理システム950の概要を説明する。
図1は、実施の形態1におけるバス制御システム100を含む情報処理システム950の外観の一例を示す図である。
図2は、実施の形態1におけるバス制御システム100を含む情報処理システム950のハードウェア資源の一例を示す図である。
【0010】
図1において、情報処理システム950は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・ Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
【0011】
図2において、情報処理システム950は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
【0012】
通信ボード915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信ボード915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記録されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
アービタ450とアドレス/データ設定装置300については、後述する。
【0013】
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記録されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記録されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記録される。ディスクやメモリなどの記憶媒体に記録された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・提示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記録される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0014】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記録されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記録される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【0015】
次に図3を用いて、バス制御システム100の概要を説明する。
図3は、バス制御システム100の構成を示すブロック図である。
バス制御システム100は、バスマスタ装置200とアドレス/データ設定装置300とを備える。
そして、図3のバス制御システム100は、複数のバスマスタ装置200a、200bを有する場合を想定している。そして図3は、複数のバスマスタ装置200a、200bがバス912を介して複数のバススレーブ装置400a、400bに対してデータ転送要求情報を送信する場合を想定している。
バスマスタ装置200(200a、200b)は、例えばCPU911の一部である。バス912は、アドレス線情報を通信するアドレス線410、データ線情報を通信するデータ線420、制御線情報を通信する制御線430とから成る。(図が複雑となる為に、図3と図4以外はアドレス線410、データ線420、制御線430の図示は省略する)。アービタ450は、複数のバスマスタ装置200a、200bからのデータ転送要求情報500が複数発生した際に調停を行い、どちらのバスマスタ装置にバス912を使用させるかを決定する。バススレーブ装置400(400a、400b)は、例えばROM913、RAM914などのメモリである。
そして、アドレス/データ設定装置300(300a、300b)は、バススレーブ装置400(400a、400b)へアクセスを行う所定の場合に、バススレーブ装置400(400a、400b)の記憶領域においてアクセスを行うアドレス(番地)を設定する。また、アドレス/データ設定装置300(300a、300b)は、バススレーブ装置400(400a、400b)に記憶させるデータを設定する。(アドレス/データ設定装置の詳細については後述する)。
なお、図3においては、バスマスタ装置200が2つ、バススレーブ装置400が2つの場合を図示したが、バスマスタ装置200及びバススレーブ装置400の数は、限定されるものではない。
【0016】
次に図4、図5、図6、図7を用いて、バス制御システム100の機能の概略を説明する。
ここで、説明を簡単にする為に、バスマスタ装置200とバススレーブ装置400とがそれぞれ1つの場合を想定する。
図4は、バス制御システム100の基本構成を示すブロック図である。
図5は、データ転送要求情報500の一例を示す図である。
図6は、バスマスタ装置200の構成を示すブロック図である。
図7は、アドレス/データ設定装置300の構成を示すブロック図である。
【0017】
図4は、バスマスタ装置200とバススレーブ装置400とがそれぞれ1つの場合のバス制御システム100である。複数のデータ転送要求情報が同時に発生する事は無いので、アービタ450の図示も省略している。
図5は、バスマスタ装置200が発行するデータ転送要求情報500の一例である。データ転送要求情報は、アドレス線410を使って通信するアドレス線情報510、データ線420を使って通信するデータ線情報520、制御線430を使って通信する制御線情報530とから構成される。
制御線情報530は、まず、要求を示すリクエスト531、データ転送要求情報500の送信元のバスマスタ装置200の識別ID(アイディー)を示すマスタID532、データ転送要求情報500の送信先のバススレーブ装置400の識別IDを示すスレーブID533を含む。これらリクエスト531、マスタID532、スレーブID533をまとめてリクエストと呼ぶことも有る。制御線情報530は、更にバススレーブ装置400に対して読み出し又は書き込み要求を示すR/W情報534(リード/ライト情報、読み出し/書き込み情報)、バースト転送か否かを示す転送種別535、アドレス線情報510とデータ線情報520とのデータ内容を示すコマンド536から成る。
アドレス線情報510は、通常は、バススレーブ装置400の記憶領域においてバスマスタ装置200が、アクセスを行うアドレス511(番地)を設定する。R/W情報534、転送種別535、コマンド536、アドレス511をまとめて制御情報と呼ぶことも有る。
データ線情報520は、通常は、バスマスタ装置200が、バススレーブ装置400に記憶させるデータ521を設定する。
データ転送要求情報500の大きさは、合計でMbit(Mビット、Mは0より大きい整数)で構成される。
【0018】
ここで、コマンド536の機能の具体例を示す。
コマンド536が「000」:バスマスタ装置200は、アドレス線情報510に、アドレス511を設定し、データ線情報520にデータ521を設定する。そして、アドレス/データ設定装置300は、アドレス線情報510にアドレス511が設定されていると認識し、データ線情報520にデータ521が設定されていると認識する。
コマンド536が「010」:バスマスタ装置200は、アドレス線情報510にデータ521を設定し、データ線情報520に、データ521を設定する。その際、バスマスタ装置200は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にデータ521が設定されていると認識し、データ線情報520にデータ521が設定されていると認識する。その際、アドレス/データ設定装置300は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値を用いると認識する。(アドレス/データ設定装置300の記憶動作については後述する)。
コマンド536が「011」:バスマスタ装置200は、アドレス線情報510にデータ521を設定し、データ線情報520に、データ521を設定する。その際、バスマスタ装置200は、アドレス511にアドレス/データ設定装置300が記憶しているアドレス値からインクリメント(1を加算)した値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にデータ521が設定されていると認識し、データ線情報520にデータ521が設定されていると認識する。その際、アドレス/データ設定装置300は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値からインクリメント(1を加算)した値を用いると認識する。
コマンド536が「100」:バスマスタ装置200は、データ線情報520にアドレス511を設定し、アドレス線情報510に、アドレス511を設定する。その際、バスマスタ装置200は、データ521に、アドレス/データ設定装置300が記憶しているデータ値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にアドレス511が設定されていると認識し、データ線情報520にアドレス511が設定されていると認識する。その際、アドレス/データ設定装置300は、データ521に、アドレス/データ設定装置300が記憶しているデータ値を用いると認識する。
コマンド536が「101」:バスマスタ装置200は、データ線情報520にアドレス511を設定し、アドレス線情報510に、アドレス511を設定する。その際、バスマスタ装置200は、データ521は、アドレス/データ設定装置300が記憶しているデータ値からインクリメントした値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にアドレス511が設定されていると認識し、データ線情報520にアドレス511が設定されていると認識する。その際、アドレス/データ設定装置300は、データ521に、アドレス/データ設定装置300が記憶しているデータ値からインクリメントした値を用いると認識する。
以下の説明において、コマンド536の具体例(例えば「000」)を引用して説明している箇所は、上記で説明の機能の引用に入れ替えて説明することが可能である。
【0019】
あるいは、バスマスタ装置200は、3ビットから成るコマンド536の内、2桁目のビットが「1」ならば(すなわち「*1*」ならば)、アドレス線情報510をデータ521と設定し、3桁目のビットが「1」ならば(すなわち「1**」ならば)、データ線情報520をアドレス511と設定することも可能である。更に、バスマスタ装置200は、1桁目のビットが「1」ならばアドレス/データ設定装置300が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。(ここで、「*」は、ワイルドカードを示し、「1」もしくは「0」のいずれかが代入され、以下同様である)。
あるいは、アドレス/データ設定装置300は、3ビットから成るコマンド536の内、2桁目のビットが「1」ならば(すなわち「*1*」ならば)、アドレス線情報510がデータ521と設定され、3桁目のビットが「1」ならば(すなわち「1**」ならば)、データ線情報520がアドレス511と設定されていると判断することも可能である。更に、アドレス/データ設定装置300は、1桁目のビットが「1」ならばアドレス/データ設定装置300が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。
【0020】
図6は、バスマスタ装置200の構成である。バスマスタ装置200は、データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置400に対してデータ転送を要求するデータ転送要求情報を送信する。
コマンド設定部210は、バス912の制御線430を介して送信される所定のコマンド536を設定する。(コマンド設定部210は、バススレーブ装置400に送信を行う一連の情報のアドレス511とデータ521との並びを認識し、認識した一連の情報のアドレス511とデータ521との並びから判断して、コマンド536を設定する)。
情報設定部220は、コマンド設定部210が設定した所定のコマンド536に基づき、バス912のデータ線420を介して送信されるデータ線情報520にデータ521を設定するか否か、及びアドレス511を設定するか否かを判定し、判定した結果に基づいてデータ線情報520を設定する。そして、情報設定部220は、コマンド設定部210が設定した所定のコマンド536に基づき、バス912のアドレス線410を介して送信されるアドレス線情報510にデータ521を設定するか否か、及びアドレス511を設定するか否かを判定し、判定した結果に基づいてアドレス線情報510を設定する。
ここで、アドレス線情報510とデータ線情報520とのどちらかに設定するアドレス511もしくはデータ521が存在しない場合は、アドレス線情報510とデータ線情報520とのどちらかに無意味なダミー情報が設定される場合も有る。(例えばデータ転送要求情報500がバススレーブ装置400からのデータ読み出しに関するものである場合は、データ521が存在しない)。
バスマスタ送信部230は、前記情報設定部220がデータ線情報520に設定した情報内容をデータ線420を介して送信し、情報設定部220がアドレス線情報510に設定した情報内容をアドレス線410を介して送信し、コマンド設定部210が設定したコマンド536を制御線430を介して送信する。
更に、バスマスタ送信部230は、CPU911で設定されたリクエスト531、マスタID532、スレーブID533、R/W情報534、転送種別535を制御線情報530の一部として、制御線430を用いて送信する。なお、転送種別535は、コマンド設定部210が設定を行うことも可能である。
【0021】
そして、コマンド設定部210は、データ転送要求情報500が連続して送信される場合に、アドレス511の値が同一のまま連続しているか否か、及びアドレス511の値が連続して1つずつ増加しているか否か、及びデータ521の値が同一のまま連続しているか否か、及びデータ521の値が連続して1つずつ増加しているか否かを判定し、判定した結果に基づいて所定のコマンドを設定する。
【0022】
図7は、アドレス/データ設定装置300の構成である。
アドレス/データ受信部310は、データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置200が送信したデータ転送要求情報を受信する。すなわち、アドレス/データ受信部310は、バス912の制御線430を介して所定のコマンド536を有する制御線情報530を受信する。そして、アドレス/データ受信部310は、バス912のデータ線420を介してデータ線情報520を受信し、バス912のアドレス線410を介してアドレス線情報510を受信する。
情報内容判定部320は、アドレス/データ受信部310が受信した所定のコマンド536を判定する。そして、情報内容判定部320は、所定のコマンド536の判定結果に基づき、データ線情報520にアドレス511が設定されているか否か、及びデータ521が設定されているか否かを判定する。そして、情報内容判定部320は、所定のコマンド536の判定結果に基づき、データ線情報520にアドレス511が設定されているか否か、及びデータ521が設定されているか否かを判定する。
アドレス/データ送信部340は、情報内容判定部320が判定した判定結果とデータ線情報520とアドレス線情報510とに基づいて、データ転送のためのアドレス511とデータ転送のためのデータ521とを決定する。(データ転送のためのアドレス511とは、データ転送を行う場合に使用するアドレスのことである。データ転送のためのアドレス511を以下「転送先アドレス」と表記し、データ転送のためのデータ521を以下「転送データ」と表記する)。そして、アドレス/データ送信部340は、決定したアドレス511とデータ521とをバススレーブ装置400に対して送信する。すなわち、アドレス/データ送信部340は、バススレーブ装置400に対してデータ転送を要求する。
【0023】
アドレス/データ設定装置300は、更にアドレス/データ送信部340がバススレーブ装置400に対して送信したアドレス511とデータ521とを保持するアドレス/データ保持部330を備える。
情報内容判定部320は、アドレス/データ受信部310が受信した所定のコマンド536を判定し、アドレス/データ保持部330が保持するアドレス511をバススレーブ装置400に対して送信するアドレスとして設定するか否かを判定する。そして、アドレス/データ設定装置300は、所定のコマンド536を判定し、アドレス/データ保持部330が保持するアドレス511をインクリメントした値をバススレーブ装置400に対して送信するアドレスとして設定するか否かを判定する。そして、アドレス/データ設定装置300は、所定のコマンド536を判定し、アドレス/データ保持部330が保持するデータ521をバススレーブ装置400に対して送信するデータとして設定するか否かを判定する。更に、アドレス/データ設定装置300は、所定のコマンド536を判定し、アドレス/データ保持部330が保持するデータ521をインクリメントした値をバススレーブ装置400に対して送信するデータとして設定するか否かを判定する。
そして、アドレス/データ送信部340は、アドレス/データ保持部330に保持されたアドレス511とデータ521とを用いて転送先アドレスと転送データとを決定する。
【0024】
次に図8を用いて、バス制御システム100の動作の流れを説明する。
図8は、バス制御システム100動作を説明するフローチャートである。
ステップ1(ST1)において、バスマスタ装置200(コマンド設定部210、情報設定部220、バスマスタ送信部230)が図5に示すデータ転送要求情報500を発行(送信)する。
ステップ2(ST2)は、バスマスタ装置200が複数存在する場合に、アービタ450がどのバスマスタ装置200にバス912の使用権を与えるかを調停するステップである。しかしながら、図4の実施の形態においては、バスマスタ装置200が1つでアービタ450が存在しない為に、ステップ2(ST2)は、省略される。
ステップ3(ST3)において、アドレス/データ設定装置300の情報内容判定部320がコマンド536を解析(判定)する。コマンド536が「000」の場合、処理はST4に進む。コマンド536が「000」以外の場合、処理はST5に進む。
ステップ4(ST4)は、アドレス線情報510はアドレス511として設定し、データ線情報520はデータ521として設定する通常ケースのステップである。ST4において、アドレス/データ保持部330は、転送先アドレスとしてアドレス511と、転送データとしてデータ521とを保持する。
ステップ5(ST5)において、情報内容判定部320がコマンド536を解析(判定)する。コマンド536が「010」または「011」の場合、処理はST6に進む。コマンド536が「010」及び「011」以外の場合、処理はST8に進む。
ステップ6(ST6)は、アドレス線情報510、データ線情報520ともにデータ521として扱うケースのステップである。コマンド536が「010」の場合は、アドレス/データ送信部340は、アドレス/データ保持部330が保持しているアドレス(前回転送時のアドレスと同じアドレス511)を転送先アドレスとして設定する。コマンド536が「011」の場合は、アドレス/データ送信部340は、アドレス/データ保持部330が保持しているアドレス511の値(前回転送時のアドレスの値)をインクリメントした値を転送先アドレスとして設定する。
ステップ7(ST7)において、アドレス/データ保持部330は、ST6で設定した転送先アドレスを保持する。
ステップ8(ST8)は、アドレス線情報510、データ線情報520ともにアドレス511として扱うケースのステップである。コマンド536が「100」の場合はアドレス/データ保持部330が保持しているデータ521(前回転送時のデータと同じデータ)を転送データとして設定する。コマンド536が「101」の場合はアドレス/データ保持部330が保持しているデータ521(前回転送時のデータ)の値をインクリメントした値を転送データとして設定する。
ステップ9(ST9)において、アドレス/データ保持部330は、ST8で設定した転送データを保持する。
ステップ10(ST10)において、前記フロー(ST1〜ST9)で設定された転送先アドレスに転送データを転送する。
以上の説明は、バスマスタ装置200からバススレーブ装置400への書き込み動作を想定し、データ521の設定について記載している。読み込み動作の場合は、データ521の設定は不要となる。
【0025】
次に図9、図10、図11、図12、図13、図14、図15を用いてバス制御システム100の動作の具体例を示す。
図9は、バススレーブ装置400に書き込まれる一連の情報を示す図である。
図10は、バススレーブ装置400に書き込まれる一連の情報の内、最初の情報をバススレーブ装置400に書き込む場合の例を示す図である。
図11は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのアドレス511が連番である場合の例を示す図である。
図12は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのアドレス511が続けて同一である場合の例を示す図である。
図13は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのデータ521が続けて同一である場合の例を示す図である。
図14は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのデータ521の値が1つずつ続けて増えている場合を示す図である。
図15は、バススレーブ装置400に書き込まれる一連の情報の内、バースト転送でバススレーブ装置400に書き込まれる例を示す図である。
【0026】
図9に示される一連の情報D101〜D114がバススレーブ装置400に書き込まれる場合を想定する。
実際の情報には、一連の情報D101〜D114は、アドレス511とデータ521とに加え、リクエスト531、マスタID532、スレーブID533、R/W情報534、転送種別535がCPU911にて設定されているが、ここでは図示を省略する。(なお、転送種別535は、コマンド設定部210が設定することも可能である)。
ここでは、一連の情報D101〜D114は、全て同じバスマスタ装置200から送信されて、全て同じバススレーブ装置400に書き込まれるものとする。
そして、図9に示される情報D101が、一連の情報の内、最初にバススレーブ装置400に書き込まれる情報であり、情報D114が、最後にバススレーブ装置400に書き込まれる情報である。そして、CPU911は、一連の情報の区切り(すなわち、最初にバススレーブ装置400に書き込まれる情報と最後にバススレーブ装置400に書き込まれる情報)を認識することが出来る。そして、CPU911は、コマンド設定部210に一連の情報の区切り(すなわち、最初にバススレーブ装置400に書き込まれる情報と最後にバススレーブ装置400に書き込まれる情報)を通知することが出来る。
【0027】
まず、一連の情報D101〜D114の内、最初の情報であるD101がバススレーブ装置400に書き込まれる場合を図10を用いて説明する。(ここでも、データ転送要求情報500には、リクエスト531、マスタID532、スレーブID533の図示を省略する)。
本説明においては、バススレーブ装置400に情報を書き込む場合を想定しているので、データ転送要求情報500において、R/W情報534は書き込みを示す情報が設定される。図10においては、分かりやすくする為に、書き込み(ライト、Write)を示す「W」を図示しているが、実際は「1」「0」の信号が設定される。同様に転送種別535は、ノーマル転送かバースト転送かを示す情報が設定され、実際は「1」「0」の信号で表される。しかし、図10においては、分かりやすくする為に、ノーマル転送を示す「ノーマル」、バースト転送を示す「バースト」と図示している。
コマンド536は、前記で説明の通り3ビットの「1」「0」の情報で設定される。
そして、アドレス線情報510とデータ線情報520とは、やはり「1」「0」の2進数の情報で設定されるが、ここでも分かりやすくする為に10進数の4桁の数字を用いて図10は、図示している。
同様にアドレス/データ設定装置300(アドレス/データ保持部330)が保持する情報、バススレーブ装置400に記憶された情報も分かりやすくする為に10進数の4桁の数字を用いて図10は、図示している。
【0028】
一連の情報D101〜D114の内、最初の情報であるD101がバススレーブ装置400に書き込まれる場合、アドレス/データ設定装置300のアドレス/データ保持部330は、一連の情報D101〜D114に関連したアドレス511とデータ521とを保持していない。その為、D101のアドレス511とデータ521をアドレス/データ保持部330に保持させる必要が有る。そこで、コマンド設定部210は、コマンド536を「000」に設定する。そして、情報設定部220は、コマンド536が「000」が設定されたことにより、アドレス線情報510にD101のアドレス511を、データ線情報520にD101のデータ521を設定する。
そして、バスマスタ送信部230は、このデータ転送要求情報500をバス912を介して、アドレス/データ設定装置300に送信する。
一方、アドレス/データ設定装置300のアドレス/データ受信部310は、このデータ転送要求情報500を受信する。そして、情報内容判定部320は、制御線430を介して受信した制御線情報530に含まれるコマンド536を「000」と認識する。更に情報内容判定部320は、コマンド536が「000」と認識されたことにより、アドレス線情報510に設定された情報内容がアドレス511であり、データ線情報520に設定された情報内容がデータ521であると判定する。
そして、アドレス/データ送信部340は、判定されたアドレス511を転送先アドレス、判定されたデータ521を転送データとして、バススレーブ装置400に転送(送信)する。また、アドレス/データ保持部330は、バススレーブ装置400に転送された転送先アドレスと転送データを保持する。
そして、バススレーブ装置400は、アドレス/データ送信部340が転送(送信)した情報に基づき、バススレーブ装置400の記憶領域におけるアドレス「2035」にデータ「4056」を記憶する。
【0029】
次に図11を用いて、D102〜D103の情報をバススレーブ装置400に書き込む場合を説明する。
D102〜D103は、アドレス511が、D101のアドレスに対して、1つずつ加算された値となっている。
従って、コマンド設定部210は、コマンド536を「011」に設定する。そして、情報設定部220は、コマンド536が「011」に設定されたことにより、アドレス線情報510にD102のデータ521「4455」を、データ線情報520にD103のデータ521「3244」を設定する。
そして、バスマスタ送信部230は、このデータ転送要求情報500をバス912を介して、アドレス/データ設定装置300に送信する。
一方、アドレス/データ設定装置300のアドレス/データ受信部310は、このデータ転送要求情報500を受信する。そして、情報内容判定部320は、制御線430を介して受信した制御線情報530に含まれるコマンド536を「011」と認識する。更に情報内容判定部320は、コマンド536が「011」と認識されたことにより、アドレス線情報510に設定された情報内容がデータ521であり、データ線情報520に設定された情報内容がデータ521であると判定する。更に情報内容判定部320は、コマンド536が「011」と認識されたことにより、、アドレス/データ保持部330が保持している転送先アドレスをインクリメントした新たな転送先アドレスにデータを転送すると判定する。
具体的には、アドレス線情報510に設定された情報内容「4455」を転送データとし、アドレス/データ保持部330が保持している転送先アドレス「2035」をインクリメントした値の、バススレーブ装置400内のアドレス「2036」に、アドレス/データ送信部340は転送(送信)する。また、アドレス/データ保持部330は、バススレーブ装置400に転送データを転送された転送先アドレス「2036」と転送データ「4455」とを保持する。(アドレス/データ保持部330は、古い転送先アドレス「2035」と転送データ「4056」とに新しい転送先アドレス「2036」と転送データ「4455」とを上書きして保持する)。次に、アドレス/データ送信部340は、データ線情報520に設定された情報内容「3244」を転送データとし、アドレス/データ保持部330が保持している転送先アドレス「2036」をインクリメントした値の、バススレーブ装置400内のアドレス「2037」に、転送データを転送(送信)する。同様に、アドレス/データ保持部330は、バススレーブ装置400に転送された転送先アドレス「2037」と転送データ「3244」を保持する。 このように、本来アドレス511の情報(アドレス線情報510)を通信するアドレス線410を用いて、データ521の情報をアドレス線情報510として通信することで、2回分の転送を1回で行うことが可能となる。
【0030】
なお、通常、アドレス線情報510にデータ521が設定された場合、まず、アドレス線情報510に設定されたデータ521は、コマンド536に基づいたデータ転送のためのアドレス511に書き込まれる。そして、データ線情報520に設定されたデータ521は、アドレス線情報510に設定されたデータ521が書き込まれたアドレス511をインクリメントしたアドレス511に書き込まれる。
あるいは、アドレス線情報510にデータ521が設定された場合、まずデータ線情報520に設定されたデータ521は、コマンド536に基づいたデータ転送のためのアドレス511に書き込まれるように設定することも可能である。そして、アドレス線情報510に設定されたデータ521は、データ線情報520に設定されたデータ521が書き込まれたアドレス511をインクリメントしたアドレス511に書き込まれるように設定することも可能である。
図11を用いて具体的に説明すると、通常、アドレス線情報510にデータ521「4455」が設定された場合、まず、アドレス線情報510に設定されたデータ521「4455」は、コマンド536に基づいたデータ転送のためのアドレス511「2036」に書き込まれる。そして、データ線情報520に設定されたデータ521「3244」は、アドレス線情報510に設定されたデータ521が書き込まれたアドレス511「2036」をインクリメントしたアドレス511「2037」に書き込まれる。
あるいは、アドレス線情報510にデータ521「4455」が設定された場合、まずデータ線情報520に設定されたデータ521「3244」は、コマンド536に基づいたデータ転送のためのアドレス511「2036」に書き込まれるように設定することも可能である。そして、アドレス線情報510に設定されたデータ521「4455」は、データ線情報520に設定されたデータ521が書き込まれたアドレス511「2036」をインクリメントしたアドレス511「2037」に書き込まれるように設定することも可能である。
【0031】
次に図12を用いて、D104〜D105の情報をバススレーブ装置400に書き込む場合を説明する。
D104は、アドレス511が、直前にデータ転送要求情報500の生成に用いたD103のアドレスと同じである。
従って、バスマスタ装置200のコマンド設定部210は、コマンド536を「010」に設定する。そして、情報設定部220は、コマンド536が「010」に設定されたことにより、アドレス線情報510にD104のデータ521「3059」を設定し、データ線情報520にD105のデータ521「3325」を設定する。
そして、途中の説明を省略するが、アドレス/データ設定装置300は、前記と同様の動作により、情報内容判定部320は、制御線430を介して受信した制御線情報530に含まれるコマンド536を「010」と認識する。そして、前記と同様の動作により、情報内容判定部320は、コマンド536が「010」と認識されたことにより、アドレス線情報510の情報内容と、データ線情報520の情報内容を判定し、アドレス/データ保持部330が保持している転送先アドレスをそのまま転送先アドレスとして維持すると判定する。
具体的には、アドレス線情報510に設定された情報内容「3059」を、アドレス/データ保持部330が保持している転送先アドレス「2037」にアドレス/データ送信部340は転送(送信)する。そして、データ線情報520に設定された情報内容「3325」については、アドレス/データ保持部330に保持されている転送先アドレスをインクリメントして新たな転送先アドレス「2038」を求め、新たな転送先アドレスに転送する。
このように、本来アドレス511の情報(アドレス線情報510)を通信するアドレス線410を用いて、データ521の情報をアドレス線情報510として通信することで、2回分の転送を1回で行うことが可能となる。
【0032】
次に図13を用いて、D106〜D107の情報をバススレーブ装置400に書き込む場合を説明する。
D106〜D107は、データ521が、直前に生成したデータ転送要求情報500に用いたD105のデータと同じである。
従って、バスマスタ装置200のコマンド設定部210は、コマンド536を「100」に設定する。そして、情報設定部220は、コマンド536が「100」に設定されたことにより、アドレス線情報510にD106のアドレス511「2040」を、データ線情報520にD107のアドレス511「2043」を設定する。
そして、アドレス/データ設定装置300の情報内容判定部320は、コマンド536に「100」が設定されていることを判定する。情報内容判定部320がコマンド536を「100」と判定したことにより、アドレス線情報510に設定された情報内容「2040」のアドレスに、アドレス/データ保持部330が保持している転送データ「3325」をアドレス/データ送信部340は転送(送信)する。更に、データ線情報520に設定された情報内容「2043」のアドレスに、アドレス/データ保持部330が保持している転送データ「3325」をアドレス/データ送信部340は転送(送信)する。
このように、本来データ521の情報(データ線情報520)を通信するデータ線420を用いて、アドレス511の情報をデータ線情報520として通信することで、2回分の転送を1回で行うことが可能となる。
【0033】
次に図14を用いて、D108〜D109の情報をバススレーブ装置400に書き込む場合を説明する。
D108のデータ521は、D107のデータに対して、1つ加算された値となっており、D109のデータ521はD108のデータに対して、1つ加算された値となっている。
従って、コマンド設定部210は、コマンド536を「101」に設定する。そして、情報設定部220は、コマンド536が「101」に設定されたことにより、アドレス線情報510にD108のアドレス511「2046」を、データ線情報520にD109のアドレス511「2049」を設定する。
そして、情報内容判定部320はコマンド536に「101」が設定されていることを認識する。情報内容判定部320がコマンド536に「101」が設定さえていることを認識したことにより、アドレス線情報510に設定された情報内容「2046」のアドレスに、アドレス/データ保持部330が保持している転送データをインクリメントした値「3326」をアドレス/データ送信部340は転送(送信)する。アドレス/データ保持部330は、新たな転送データ「3326」を保持する。更に、データ線情報520に設定された情報内容「2049」のアドレスに、アドレス/データ保持部330が保持している転送データをインクリメントした値「3327」をアドレス/データ送信部340は転送(送信)する。
このように、本来データ521の情報(データ線情報520)を通信するデータ線420を用いて、アドレス511の情報をデータ線情報520として通信することで、2回分の転送を1回で行うことが可能となる。
【0034】
次に図15を用いて、D110〜D114の情報をバススレーブ装置400に書き込む場合を説明する。
D110〜D114は、連続したアドレスにおいて、D109と同じデータが並んでいる。その為、CPU911は、転送種別535を「バースト転送」と判断する。そして、CPU911は、バースト転送の範囲のアドレスを指定する。ここで、転送種別及びバースト転送の範囲の判断は、コマンド設定部210が行うことも可能である。
コマンド設定部210は、コマンド536を「100」に設定する。そして、情報設定部220は、コマンド536が「100」と設定されたことにより、CPU911もしくはコマンド設定部210に指定されたアドレスの範囲に基づいて、アドレス線情報510にD110のアドレス511「2050」を、データ線情報520にD114のアドレス511「2054」を設定する。
そして、情報内容判定部320は、転送種別535に「バースト転送」、コマンド536に「100」が設定されていることを認識する。情報内容判定部320が転送種別535に「バースト転送」、コマンド536に「100」が設定されていることを認識したことにより、アドレス線情報510に設定された情報内容「2050」からデータ線情報520に設定された情報内容「2054」までのアドレスに、アドレス/データ保持部330が保持している転送データ「3327」をアドレス/データ送信部340は転送(送信)する。
このように、本来データ521の情報(データ線情報520)を通信するデータ線420を用いて、アドレス511の情報をデータ線情報520として通信することで、バースト転送の要求を1回で行うことが可能となる。
【0035】
以上の説明は、簡略化のために図4に示すバスマスタ装置200とバススレーブ装置400とがそれぞれ1つの場合のバス制御システム100を想定した。
しかしながら、実際のシステムは、図3に示すように複数のバスマスタ装置200と複数のバススレーブ装置400とが存在する場合が有る。
その場合、前述の通り、アービタ450がどのバスマスタ装置200にバス使用権を与えるかの調停を行う。このような場合も、本来2回のデータ転送要求情報500の通信を行う必要があったことに対し、1回で行うことで、他のバスマスタ装置200に、アービタ450は使用許可を与えることが出来るので、システム全体の転送効率を向上させることが可能となる。
【0036】
実施の形態2.
本実施の形態では、バス制御システムにおいて、2つのバスマスタ装置からの情報を連結して1つの情報として送信する連結部と、連結された1つの情報を受信して2つの情報に分離する分離部とを使用して、データ転送要求情報の送信の効率化を行う例を説明する。
【0037】
最初に、図16、図17、図18を用いて連結部460と分離部470とを備えたバス制御システム100の概要を説明する。
図16は、連結部460と分離部470とを備えたバス制御システム100の構成を示すブロック図である。
バス制御システム100は、複数のバスマスタ装置200と複数のアドレス/データ設定装置とを備える。
連結部460は、複数のバスマスタ装置200が送信したデータ転送要求情報500に含まれるコマンド536を解析する。そして、連結部460は、特定のコマンド536の場合、2つのバスマスタ装置200からの2つのデータ転送要求情報500を1つに連結する。
分離部470は、連結部460で1つに連結されたデータ転送要求情報500を2つに分離する。
その他は、実施の形態1と同様である為、説明を省略する。なお、図16では、バスマスタ装置200が2つ、バススレーブ装置400が2つの場合を図示したが、バスマスタ装置200およびバススレーブ装置400の数は、限定されるものでは無い。
【0038】
図17は、バスマスタ装置200が発行(送信)するデータ転送要求情報500の一例を示す説明図である。実施の形態1と比較すると、図17は、連結フラグ537が追加されている。連結フラグ537は、バスマスタ装置200がデータ転送要求情報500を発行(送信)するときは「0」となっており、連結処理(後述で説明)を行った場合に「1」となる。
ここで、コマンド536の具体例を示す。
コマンド536が「0000」:バスマスタ装置200は、アドレス線情報510に、アドレス511を設定し、、データ線情報520にデータ521を設定する。そして、アドレス/データ設定装置300は、アドレス線情報510にアドレス511が設定されていると認識し、データ線情報520にデータ521が設定されていると認識する。
コマンド536が「0010」:バスマスタ装置200は、アドレス線情報510にデータ521を設定し、データ線情報520に、データ521を設定する。その際、バスマスタ装置200は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にデータ521が設定されていると認識し、データ線情報520にデータ521が設定されていると認識する。その際、アドレス/データ設定装置300は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値を用いると認識する。
コマンド536が「0011」:バスマスタ装置200は、アドレス線情報510にデータ521を設定し、データ線情報520に、データ521を設定する。その際、バスマスタ装置200は、アドレス511にアドレス/データ設定装置300が記憶しているアドレス値からインクリメント(1を加算)した値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にデータ521が設定されていると認識し、データ線情報520にデータ521が設定されていると認識する。その際、アドレス/データ設定装置300は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値からインクリメント(1を加算)した値を用いると認識する。
コマンド536が「0100」:バスマスタ装置200は、データ線情報520にアドレス511を設定し、アドレス線情報510に、アドレス511を設定する。その際、バスマスタ装置200は、データ521に、アドレス/データ設定装置300が記憶しているデータ値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にアドレス511が設定されていると認識し、データ線情報520にアドレス511が設定されていると認識する。その際、アドレス/データ設定装置300は、データ521に、アドレス/データ設定装置300が記憶しているデータ値を用いると認識する。
コマンド536が「0101」:バスマスタ装置200は、データ線情報520にアドレス511を設定し、アドレス線情報510に、アドレス511を設定する。その際、バスマスタ装置200は、データ521は、アドレス/データ設定装置300が記憶しているデータ値からインクリメントした値を用いると判断する。そして、アドレス/データ設定装置300は、アドレス線情報510にアドレス511が設定されていると認識し、データ線情報520にアドレス511が設定されていると認識する。その際、アドレス/データ設定装置300は、データ521に、アドレス/データ設定装置300が記憶しているデータ値からインクリメントした値を用いると認識する。
コマンド536が「1010」:バスマスタ装置200は、アドレス線情報510は未使用と設定し、データ線情報520にデータ521を設定する。その際、バスマスタ装置200は、アドレス511に、アドレス/データ設定装置300が記憶しているアドレス値を用いると判断する。
コマンド536が「1011」:バスマスタ装置200は、アドレス線情報510は未使用と設定し、データ線情報520にデータ521を設定する。その際、バスマスタ装置200は、アドレス511にアドレス/データ設定装置300が記憶しているアドレス値からインクリメント(1を加算)した値を用いると判断する。
コマンド536が「1100」:バスマスタ装置200は、データ線情報520は未使用と設定し、アドレス線情報510に、アドレス511を設定する。その際、バスマスタ装置200は、データ521に、アドレス/データ設定装置300が記憶しているデータ値を用いると判断する。
コマンド536が「1101」:バスマスタ装置200は、データ線情報520は未使用と設定し、アドレス線情報510に、アドレス511を設定する。その際、バスマスタ装置200は、データ521は、アドレス/データ設定装置300が記憶しているデータ値からインクリメントした値を用いると判断する。
以下の説明において、コマンド536の具体例(例えば「0000」)を引用して説明している箇所は、上記で説明の機能の引用に入れ替えて説明することが可能である。
なお、コマンド536が「0000」「0010」「0011」「0100」「0101」と「0***」の場合は、連結処理は行われず、実施の形態1と同様である。
【0039】
あるいは、バスマスタ装置200は、4ビットから成るコマンド536の内、4桁目のビットが「0」でかつ、2桁目のビットが「1」ならば(すなわち「0*1*」ならば)、アドレス線情報510をデータ521と設定し、4桁目のビットが「0」でかつ、3桁目のビットが「1」ならば(すなわち「01**」ならば)、データ線情報520をアドレス511と設定することも可能である。更に、バスマスタ装置200は、1桁目のビットが「1」ならばアドレス/データ設定装置300が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。更にバスマスタ装置200は、4ビットから成るコマンド536の内、4桁目のビットが「1」でかつ、2桁目のビットが「1」ならば(すなわち「1*1*」ならば)、アドレス線情報510を未使用と設定し、4桁目のビットが「1」でかつ、3桁目のビットが「1」ならば(すなわち「11**」ならば)、データ線情報520を未使用と設定することも可能である。(アドレス/データ設定装置300については、実施の形態1と同様であるので説明を省略する。)
【0040】
図18は、連結処理後のデータ転送要求情報500の一例を示す図である。
例えば、図16に示すバスマスタ装置200aとバスマスタ装置200bとから送信されたデータ転送要求情報500を連結した場合を想定する。その場合、図18に示す第1転送情報538は、バスマスタ装置200aからの第1のデータ転送要求情報500に含まれる情報を抽出したものである。同様に第2転送情報539は、バスマスタ装置200bからの第2のデータ転送要求情報500に含まれる情報を抽出したものである。そして、前述の通り、連結フラグ537は「1」に設定される。
【0041】
ここで、連結部460の概要を説明する。
連結部460は、複数のバスマスタ装置200が送信する所定のコマンド536を有した複数のデータ転送要求情報500を受信する。そして、連結部460は、受信した複数のデータ転送要求情報500の内、第1のバスマスタ装置200aが送信した第1のデータ転送要求情報500と、第2のバスマスタ装置200bが送信した第2のデータ転送要求情報500との2つのデータ転送要求情報500を選択する。
そして、連結部460は、第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを解析する。連結部460は、解析した結果に基づいて、アドレス線情報510に、選択した第1のデータ転送要求情報500aのデータ521を設定するか否か、及び選択した第2のデータ転送要求情報500bのデータ521を設定するか否か、及び選択した第1のデータ転送要求情報500aのアドレス511を設定するか否か、及び選択した第2のデータ転送要求情報500bのアドレス511を設定するか否かを判定する。
そして、連結部460は、第1のデータ転送要求情報500aと第2のデータ転送要求情報500bとを解析して、解析した結果に基づいて、データ線情報520に、選択した第1のデータ転送要求情報500aのデータ521を設定するか否か、及び選択した第2のデータ転送要求情報500bのデータ521を設定するか否か、及び選択した第1のデータ転送要求情報500aのアドレス511を設定するか否か、及び選択した第2のデータ転送要求情報500bのアドレス511を設定するか否かを判定する。
そして、連結部460は、判定した結果に基づいてデータ線情報520とアドレス線情報510とを設定し、データ線情報520とアドレス線情報510との設定結果に基づいて所定の連結フラグ537を設定し、設定した所定の連結フラグ537と第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを制御線情報530に設定する。
更に、連結部460は、データ線情報520をデータ線420を介して送信し、アドレス線情報510をアドレス線410を介して送信し、所定の連結フラグ537と第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを有する制御線情報530を制御線430を介して送信する。
【0042】
そして、分離部470の概要を説明する。
分離部470は、バス912の制御線430を介して所定の連結フラグ537と第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを有する制御線情報530を受信し、バス912のデータ線420を介してデータ線情報520を受信し、バス912のアドレス線410を介してアドレス線情報510を受信する。
そして、分離部470は、受信した所定の連結フラグ537と第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを有する制御線情報530を判定する。
そして、分離部470は、所定の連結フラグ537と第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを有する制御線情報530により、データ線情報520に第1のデータ転送要求情報500aのデータ521が設定されているか否か、及び第2のデータ転送要求情報500bのデータ521が設定されているか否か、及び第1のデータ転送要求情報500aのアドレス511が設定されているか否か、及び第2のデータ転送要求情報500bのアドレス511が設定されているか否かを判定する。
そして、分離部470は、所定の連結フラグ537と第1のデータ転送要求情報500aが有する所定のコマンド536aと第2のデータ転送要求情報500bが有する所定のコマンド536bとを有する制御線情報530により、アドレス線情報510に第1のデータ転送要求情報500aのデータ521が設定されているか否か、及び第2のデータ転送要求情報500bのデータ521が設定されているか否か、及び第1のデータ転送要求情報500aのアドレス511が設定されているか否か、及び第2のデータ転送要求情報500bのアドレス511が設定されているか否かを判定する。
そして、分離部470は、判定した判定結果とデータ線情報520とアドレス線情報510とに基づいて、複数のアドレス/データ設定装置300の中からデータ転送先のアドレス/データ設定装置300を決定する。
そして、分離部470は、データ転送のためのアドレス511とデータ転送のためのデータ521とを決定して、決定したアドレス511とデータ521とをデータ転送先のアドレス/データ設定装置300に対して送信する。
【0043】
次に図19を用いて、連結部460と分離部470とを備えたバス制御システム100の動作の流れを説明する。
図19は、連結部460と分離部470とを備えたバス制御システム100動作を説明するフローチャートである。
ステップ11(ST11)において、第1のバスマスタ装置200が図17に示すデータ転送要求情報500を発行(送信)する。
ステップ12(ST12)において、連結部460がコマンド536を解析する。コマンド536が「0***」の場合はST17に進む。コマンド536が「0***」以外の場合はST13に進む。
ステップ13(ST13)において、連結部460がコマンド536を解析する。コマンド536が「1***」のデータ転送要求情報500を送信している第2のバスマスタ装置200が存在しない場合はST17に進む。コマンド536が「1***」の第2のバスマスタ装置200が存在する場合はST14に進む。
ステップ14(ST14)において、連結部460がコマンド536を解析する。コマンド536が「1***」のデータ転送要求情報500を送信しているバスマスタ装置200が2つの場合はST15に進む。コマンド536が「1***」のデータ転送要求情報500を送信しているバスマスタ装置200が3つ以上存在する場合はST16に進む。
ステップ15(ST15)においては、アドレス線410未使用のバスマスタ装置200やデータ線420未使用のバスマスタ装置200が2つ存在する。そこで、未使用のアドレス線410またはデータ線420に他方のバスマスタ装置200のアドレス511またはデータ521を割り当て、2つのバスマスタ装置200のデータ転送要求情報500を1つに連結する(連結処理)。連結後のデータ転送要求情報500を図18に示す。図18において、連結フラグ537は連結したことを示すために「1」に設定する。リクエストは要求を示すために「1」に設定する。マスタID532、スレーブID533、コマンド536、転送情報は、連結する2つのバスマスタ装置200からのデータ転送要求情報500からそれぞれ抽出する。ここで、転送情報は、アドレス511またはデータ521である。
ステップ16(ST16)においては、アドレス線410未使用のバスマスタ装置200やデータ線420未使用のバスマスタ装置200が3つ以上存在する。そこで、連結部460は、連結するデータ転送要求情報500を2つ選択する。選択方法は固定優先順位またはラウンドロビンにより選択する。
ステップ17(ST17)においては、どのバスマスタ装置200にバス使用権を与えるか、アービタ450が調停を行う。
ステップ18(ST18)において、分離部470が連結フラグ537を解析する。連結フラグ537が「0」の場合はST20に進む。連結フラグ537が「1」の場合はST19に進む。
ステップ19(ST19)において、分離部470が連結部460で連結されたデータ転送要求情報500を分離し、転送先のアドレス/データ設定装置300にデータ転送要求情報500を出力する。この時のデータ転送要求情報500は図17に示すフォーマットから連結フラグ537を除いたものとなる。(図5のフォーマットと同じである)。
ステップ20(ST20)において、アドレス/データ設定装置300がコマンド536を解析する。コマンド536が「0000」の場合はST21に進む。コマンド536が「0000」以外の場合はST22に進む。
ステップ21(ST21)は、アドレス線情報510はアドレス511として設定し、データ線情報520はデータ521として設定する通常ケースのステップである。ST21において、アドレス/データ保持部330は、転送先アドレスとしてアドレス511と、転送データとしてデータ521とを保持する。
ステップ22(ST22)において、アドレス/データ設定装置300がコマンド536を解析する。コマンド536が「*01*」の場合はST23に進む。コマンド536がそれら以外の場合はST25に進む。
ステップ23(ST23)は、アドレス線情報510をアドレス511として使用しないケースのステップである。コマンド536が「001*」の場合はアドレス線情報510はデータ521として設定し、コマンド536が「101*」の場合はアドレス線情報510は使用しないケースである。そして、コマンド536が「*010」の場合はアドレス/データ送信部340は、アドレス/データ保持部330が保持しているアドレス(前回転送時のアドレスと同じアドレス511)を転送先アドレスとして設定する。コマンド536が「*011」の場合はアドレス/データ送信部340は、アドレス/データ保持部330が保持しているアドレス511の値(前回転送時のアドレスの値)をインクリメントした値を転送先アドレスとして設定する。
ステップ24(ST24)において、アドレス/データ保持部330は、ST23で設定した転送先アドレスを保持する。
ステップ25(ST25)は、データ線情報520をデータ521として使用しないケースのステップである。コマンド536が「010*」の場合はデータ線情報520はアドレス511として設定し、コマンド536が「110*」の場合はデータ線情報520は使用しないケースである。そして、コマンド536が「*100」の場合はアドレス/データ保持部330が保持しているデータ521(前回転送時のデータと同じデータ)を転送データとして設定する。コマンド536が「*101」の場合はアドレス/データ保持部330が保持しているデータ521(前回転送時のデータ)の値をインクリメントした値を転送データとして設定する。
ステップ26(ST26)において、アドレス/データ保持部330は、ST25で設定した転送データを保持する。
ステップ27(ST27)において、前記フロー(ST11〜ST26)で設定された転送先アドレスに転送データを転送する。
以上の説明は、バスマスタ装置200からバススレーブ装置400への書き込み動作を想定し、データ521の設定について記載している。読み込み動作の場合は、データ521の設定は不要となる。
【0044】
次に図20、図21、図22を用いてバスマスタ装置200aとバスマスタ装置200bとがアドレス511をインクリメントしながら、データ521をバススレーブ装置400aとバススレーブ装置400bとに書き込む場合の具体例を示す。バス制御システム100は、図16の例を用いる。
図20は、バスマスタ装置200が送信した1回目のデータ転送要求情報500の具体例を示す図である。((a)は、バスマスタ装置200aが送信した1回目のデータ転送要求情報500の具体例、(b)は、バスマスタ装置200bが送信した1回目のデータ転送要求情報500の具体例)。
図21は、バスマスタ装置200が送信した2回目のデータ転送要求情報500の具体例を示す図である。((a)は、バスマスタ装置200aが送信した2回目のデータ転送要求情報500の具体例、(b)は、バスマスタ装置200bが送信した2回目のデータ転送要求情報500の具体例)。
図22は、連結部460が連結処理を行ったデータ転送要求情報500の具体例を示す図である。
【0045】
図20に示すように、バスマスタ装置200aとバスマスタ装置200bとは、それぞれデータ転送要求情報500を発行(送信)する。1回目に送信されるデータ転送要求情報500は、実施の形態1と同様に一連の情報(一連の情報の図示は省略する)の内、最初にバススレーブ装置400に書き込まれる情報である。そして、アドレス/データ保持部330には情報が蓄積されていない為、コマンド設定部210は、コマンド536を「0000」に設定する。
ここでは、バスマスタ装置200aのマスタID532を「001」、バスマスタ装置200bのマスタID532を「002」、バススレーブ装置400aのスレーブID533を「001」、バススレーブ装置400bのスレーブID533を「002」と想定している。
そして、バスマスタ装置200aは、バススレーブ装置400aにデータ転送要求情報500を送信し、バスマスタ装置200bは、バススレーブ装置400bにデータ転送要求情報500を送信すると、想定する。
【0046】
図20に示す1回目のデータ転送要求情報500が、バスマスタ装置200aとバスマスタ装置200bとから同時に送信された場合、コマンド536が「0000」なので、連結部460と分離部470は特に処理を行わない。
そして、最初にアービタ450がバスマスタ装置200aにバス使用権を与えると想定する。そして、アドレス/データ設定装置300aのアドレス/データ送信部340は、バススレーブ装置400aのアドレス「2035」にデータ「4056」を書き込む。更にアドレス/データ設定装置300aのアドレス/データ保持部330は、アドレス「2035」とデータ「4056」とを保持する。
次に、アービタ450がバスマスタ装置200bにバス使用権を与える。同様にアドレス/データ設定装置300bのアドレス/データ送信部340は、バススレーブ装置400bのアドレス「2050」にデータ「3327」を書き込む。更にアドレス/データ設定装置300bのアドレス/データ保持部330は、アドレス「2050」とデータ「3327」とを既に保持済の情報に上書きして保持する。
【0047】
次にバスマスタ装置200aが、2回目のデータ転送要求情報500として、データ「4455」をバススレーブ装置400aのアドレス「2036」に書き込む場合を想定する。そして、バスマスタ装置200bが、2回目のデータ転送要求情報500として、データ「3327」をバススレーブ装置400aのアドレス「2051」に書き込む場合を想定する。更に、CPU911もしくはコマンド設定部210は、アドレス線情報510もしくはデータ線情報520が未使用である為に、連結部460を使用して、2つのバスマスタ装置200からのデータ転送要求情報500を1つに連結すると判断した場合を想定する。あるいは、CPU911もしくはコマンド設定部210は、例えばバス912の回線混雑状況などから連結部460の使用を判断する。
その場合、バスマスタ装置200aとバスマスタ装置200bとのコマンド設定部210は、図21に示すように、データ転送要求情報500のコマンド536を「1011」に設定する。ここで、図21において、アドレス線情報510にアドレス511が設定されているが、コマンド536が「1011」(アドレス線情報510は未使用)である為に、アドレス511の値は実際には使用されない。その為、アドレス線情報510は、無意味なダミー情報が設定されていても良い。
【0048】
連結部460は、図21に示すバスマスタ装置200aとバスマスタ装置200bとからのデータ転送要求情報500を受信すると、コマンド536を解析する。そして、バスマスタ装置200aとバスマスタ装置200bとからのデータ転送要求情報500はアドレス線情報510は未使用なので、例えばバスマスタ装置200bからのデータ521をアドレス線情報510に割り当てる。
そして、連結部460は、バスマスタ装置200aからのデータ転送要求情報500を第1転送情報538、バスマスタ装置200bからのデータ転送要求情報500を第2転送情報539として連結し、図22に示すデータ転送要求情報500を送信する。この時、連結部460は、連結フラグ537をバスマスタ装置200aとバスマスタ装置200bとからのデータ転送要求情報500が連結していることを示す「1」に設定する。
【0049】
アービタ450が、図22に示すデータ転送要求情報500を送信する連結部460に対して、バス使用権を与える。
そして、分離部470は、図22に示すデータ転送要求情報を受信し、第1転送情報538と第2転送情報539とを分離し、バスマスタ装置200aとバスマスタ装置200bとからのデータ転送要求情報500を復元する。その際に、連結フラグ537は不要であり、削除される。また、コマンド536は、4ビット(4桁)のままアドレス/データ設定装置300に送られる。
【0050】
そして、実施の形態1と同様に、アドレス/データ設定装置300aは、復元されたバスマスタ装置200aからのデータ転送要求情報500を受信する。そして、コマンド536が「1011」に設定されていることにより、アドレス/データ保持部330が保持していたアドレス「2035」をインクリメントした転送先アドレス「2036」にデータ「4455」をアドレス/データ送信部340は送信する。同様にアドレス/データ設定装置300bは、復元されたバスマスタ装置200bからのデータ転送要求情報500を受信する。そして、コマンド536が「1011」に設定されていることにより、アドレス/データ保持部330が保持していたアドレス「2050」をインクリメントしたアドレス「2051」にデータ「3327」をアドレス/データ送信部340は送信する。
図20〜図22の説明においては、バスマスタ装置200aのデータ転送要求情報500とバスマスタ装置200bのデータ転送要求情報500とのコマンド536が両方「1011」の場合のみを説明した。しかし同様に、コマンド536が「1010」「1100」「1101」のように「1***」となっている時は、アドレス線情報510もしくはデータ線情報520のどちらかが未使用の場合である。したがって、「1***」となっているコマンド536を含むデータ転送要求情報500同士ならば、どの2つの組み合わせにおいても、連結部460は連結が可能である。
例えば、コマンド536が「1***」の場合、バスマスタ装置200aは、アドレス線情報510もしくはデータ線情報520のいずれかを送信する。そして、連結部460は、バスマスタ装置200aの送信したアドレス線情報510もしくはデータ線情報520のいずれかを、図18に示す第1転送情報538の転送情報に設定する。そして、バスマスタ装置200bは、アドレス線情報510もしくはデータ線情報520のいずれかを送信する。そして、連結部460は、バスマスタ装置200aの送信したアドレス線情報510もしくはデータ線情報520のいずれかを、図18に示す第2転送情報539の転送情報に設定する。そして、第1転送情報538の転送情報および第2転送情報539の転送情報に何が設定されているかを、情報内容判定部320はコマンド536から判定することが出来る。
【0051】
以上により、バスマスタ装置200aとバスマスタ装置200bとの2つのデータ転送要求情報500を同時に転送することが出来るので、バス制御システム100は、データ転送要求情報500の転送効率を向上させることが出来る。
【0052】
以上、実施の形態1及び2において、複数のバスマスタ装置200からのデータ転送要求情報500をバスマスタ装置200に転送(送信)するバス制御システム100において、バスマスタ装置200から転送(送信)されるコマンド536に基づいて転送先アドレス(データ転送のためのアドレス511)や転送データ(データ転送のためのデータ521)を設定するアドレス/データ設定装置300を備えたことを特長とするバス制御システム100について説明した。
また、バスマスタ装置200毎に前回の転送先アドレス(データ転送のためのアドレス511)を保持することを特長とするアドレス/データ設定装置300を備えたバス制御システム100について説明した。
また、バスマスタ装置200毎に前回の転送データ(データ転送のためのデータ521)を保持することを特長とするアドレス/データ設定装置300を備えたバス制御システム100について説明した。
また、バスマスタ装置200が任意のデータ521を同一アドレス511またはアドレス511をインクリメントして連続して転送(送信)する場合、2回目以降の転送(送信)時はアドレス511に割り当てられたビット(アドレス線情報510)にもデータ521を割り当てて転送(送信)し、アドレス/データ設定装置300で転送先アドレス(データ転送のためのアドレス511)を設定することを特長とするバス制御システム100について説明した。
また、バスマスタ装置200が任意のアドレス511に同一データ521またはデータ521をインクリメントして連続して転送(送信)する場合、2回目以降の転送(送信)時はデータ521に割り当てられたビット(データ線情報520)にもアドレス511を割り当てて転送(送信)し、アドレス/データ設定装置300で転送データ(データ転送のためのデータ521)を設定することを特長とするバス制御システム100について説明した。
また、複数のバスマスタ装置200から発行(送信)される転送先アドレス(データ転送のためのアドレス511)や転送データ(データ転送のためのデータ521)を連結する連結部460と、連結された転送先アドレス(データ転送のためのアドレス511)や転送データ(データ転送のためのデータ521)を分離する分離部470を備えたことを特長とするバス制御システム100について説明した。
また、コマンド536に基づいて複数のバスマスタ装置200から発行(送信)される転送先アドレス(データ転送のためのアドレス511)や転送データ(データ転送のためのデータ521)を連結し、1つのリクエスト(データ転送要求情報500)として発行(送信)する連結部460を備えたことを特長とするバス制御システム100について説明した。
また、連結部460連結された情報(データ転送要求情報500)をコマンド536に基づいて分離する分離部470を備えたことを特長とするバス制御システム100について説明した。
【0053】
既に、説明したように、本実施の形態1〜2に示すバス制御システム100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータの一部である。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0054】
100 バス制御システム、200 バスマスタ装置、210 コマンド設定部、220 情報設定部、230 バスマスタ送信部、300 アドレス/データ設定装置、310 アドレス/データ受信部、320 情報内容判定部、330 アドレス/データ保持部、340 アドレス/データ送信部、400 バススレーブ装置、410 アドレス線、420 データ線、430 制御線、450 アービタ、460 連結部、470 分離部、500 データ転送要求情報、510 アドレス線情報、511 アドレス、520 データ線情報、521 データ、530 制御線情報、531 リクエスト、532 マスタID、533 スレーブID、534 R/W情報、535 転送種別、536 コマンド、537 連結フラグ、538 第1転送情報、539 第2転送情報、900 ユーザ端末、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 ローカルエリアネットワーク、950 情報処理システム。

【特許請求の範囲】
【請求項1】
データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレス/データ設定装置において、
(1)前記バスの制御線を介して所定のコマンドを有する制御線情報を受信し、
(2)前記バスのデータ線を介してデータ線情報を受信し、
(3)前記バスのアドレス線を介してアドレス線情報を受信する
アドレス/データ受信部と、
(a)前記アドレス/データ受信部が受信した前記所定のコマンドを判定し、
(b)前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定し、
(c)前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定する
情報内容判定部と、
(イ)前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定して、
(ロ)決定したアドレスとデータとを前記バススレーブ装置に対して送信する
アドレス/データ送信部と
を備えることを特徴とするアドレス/データ設定装置。
【請求項2】
前記アドレス/データ設定装置は、更に
前記アドレス/データ送信部が前記バススレーブ装置に対して送信したアドレスとデータとを保持するアドレス/データ保持部を備え、
前記情報内容判定部は、
前記アドレス/データ受信部が受信した所定のコマンドを判定し、判定した結果に基づいて、
(1)前記アドレス/データ保持部が保持するアドレスを前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
(2)前記アドレス/データ保持部が保持するアドレスをインクリメントした値を前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
(3)前記アドレス/データ保持部が保持するデータを前記バススレーブ装置に対して送信するデータとして設定するか否か、及び
(4)前記アドレス/データ保持部が保持するデータをインクリメントした値を前記バススレーブ装置に対して送信するデータとして設定するか否かを判定し、
前記アドレス/データ送信部は、
アドレス/データ保持部に保持されたアドレスとデータとを用いてデータ転送のためのアドレスとデータ転送のためのデータとを決定する
ことを特徴とした請求項1記載のアドレス/データ設定装置。
【請求項3】
データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置に対してデータ転送を要求するデータ転送要求情報を送信するバスマスタ装置において、
前記バスの制御線を介して送信される所定のコマンドを設定するコマンド設定部と、
(1)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのデータ線を介して送信されるデータ線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記データ線情報を設定し、
(2)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのアドレス線を介して送信されるアドレス線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記アドレス線情報を設定する
情報設定部と、
(a)前記情報設定部が前記データ線情報に設定した情報内容を前記データ線を介して送信し、
(b)前記情報設定部が前記アドレス線情報に設定した情報内容を前記アドレス線を介して送信し、
(c)前記コマンド設定部が設定したコマンドを前記制御線を介して送信する
バスマスタ送信部と
を備えることを特徴とするバスマスタ装置。
【請求項4】
前記コマンド設定部は、データ転送要求情報が連続して送信される場合に、アドレスの値が同一のまま連続しているか否か、及びアドレスの値が連続して1つずつ増加しているか否か、及びデータの値が同一のまま連続しているか否か、及びデータの値が連続して1つずつ増加しているか否かを判定し、判定した結果に基づいて前記所定のコマンドを設定することを特徴とする請求項3記載のバスマスタ装置。
【請求項5】
前記請求項1又は2記載のアドレス/データ設定装置と、前記請求項3又は4記載のバスマスタ装置とを備えることを特徴とするバス制御システム。
【請求項6】
前記バス制御システムは、更に、複数のバスマスタ装置を備え、
前記バス制御システムは、更に、
(1)複数のバスマスタ装置が送信する所定のコマンドを有した複数のデータ転送要求情報を受信し、受信した複数のデータ転送要求情報の内、第1のバスマスタ装置が送信した第1のデータ転送要求情報と、第2のバスマスタ装置が送信した第2のデータ転送要求情報との2つのデータ転送要求情報を選択して、
(2)前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを解析して、解析した結果に基づいて、前記アドレス線情報に、選択した第1のデータ転送要求情報のデータを設定するか否か、及び選択した第2のデータ転送要求情報のデータを設定するか否か、及び選択した第1のデータ転送要求情報のアドレスを設定するか否か、及び選択した第2のデータ転送要求情報のアドレスを設定するか否かを判定し、
(3)前記第1のデータ転送要求情報と前記第2のデータ転送要求情報とを解析して、解析した結果に基づいて、前記データ線情報に、選択した第1のデータ転送要求情報のデータを設定するか否か、及び選択した第2のデータ転送要求情報のデータを設定するか否か、及び選択した第1のデータ転送要求情報のアドレスを設定するか否か、及び選択した第2のデータ転送要求情報のアドレスを設定するか否かを判定し、
(4)判定した結果に基づいて前記データ線情報と前記アドレス線情報とを設定し、
前記データ線情報と前記アドレス線情報との設定結果に基づいて所定の連結フラグを設定し、設定した所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを制御線情報に設定し、
(5)前記データ線情報を前記データ線を介して送信し、前記アドレス線情報を前記アドレス線を介して送信し、前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を前記制御線を介して送信する
連結部を備えることを特徴とする請求項5記載のバス制御システム。
【請求項7】
前記バス制御システムは、更に、複数のアドレス/データ設定装置を備え、
前記バス制御システムは、更に、
(1)前記バスの制御線を介して前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を受信し、前記バスのデータ線を介してデータ線情報を受信し、前記バスのアドレス線を介してアドレス線情報を受信し、
(2)受信した前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を判定し、
(3)前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報により、前記データ線情報に前記第1のデータ転送要求情報のデータが設定されているか否か、及び前記第2のデータ転送要求情報のデータが設定されているか否か、及び前記第1のデータ転送要求情報のアドレスが設定されているか否か、及びに前記第2のデータ転送要求情報のアドレスが設定されているか否かを判定し、
(4)前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報により、前記アドレス線情報に前記第1のデータ転送要求情報のデータが設定されているか否か、及び前記第2のデータ転送要求情報のデータが設定されているか否か、及び前記第1のデータ転送要求情報のアドレスが設定されているか否か、及び前記第2のデータ転送要求情報のアドレスが設定されているか否かを判定し、
(5)判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、複数のアドレス/データ設定装置の中からデータ転送先のアドレス/データ設定装置を決定し、
(6)データ転送のためのアドレスとデータ転送のためのデータとを決定して、決定したアドレスとデータとを前記データ転送先のアドレス/データ設定装置に対して送信する
分離部を備えることを特徴とする請求項6記載のバス制御システム。
【請求項8】
データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレス/データ設定装置におけるアドレスとデータの設定方法において、
アドレス/データ受信部が、
(1)前記バスの制御線を介して所定のコマンドを有する制御線情報を受信する制御線情報受信ステップと、
(2)前記バスのデータ線を介してデータ線情報を受信するデータ線情報受信ステップと、
(3)前記バスのアドレス線を介してアドレス線情報を受信するアドレス線情報受信ステップと、
情報内容判定部が、
(a)前記アドレス/データ受信部が受信した前記所定のコマンドを判定するコマンド判定ステップと、
(b)前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定するデータ線情報判定ステップと、
(c)前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定するアドレス線情報判定ステップと、
アドレス/データ送信部が、
(イ)前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定する決定ステップと、
(ロ)決定したアドレスとデータとを前記バススレーブ装置に対して送信する送信ステップとを備えることを特徴とするアドレスとデータの設定方法。
【請求項9】
データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置に対してデータ転送を要求するデータ転送要求情報を送信するバスマスタ装置におけるデータ転送要求情報送信方法において、
コマンド設定部が、前記バスの制御線を介して送信される所定のコマンドを設定するコマンド設定ステップと、
情報設定部が、
(1)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのデータ線を介して送信されるデータ線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記データ線情報を設定するデータ線情報設定ステップと、
(2)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのアドレス線を介して送信されるアドレス線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記アドレス線情報を設定するアドレス線情報設定ステップと、
バスマスタ送信部が、
(a)前記情報設定部が前記データ線情報に設定した情報内容を前記データ線を介して送信するデータ線情報送信ステップと、
(b)前記情報設定部が前記アドレス線情報に設定した情報内容を前記アドレス線を介して送信するアドレス線情報送信ステップと、
(c)前記コマンド設定部が設定したコマンドを前記制御線を介して送信するコマンド送信ステップと、
を備えることを特徴とするバスマスタ装置におけるデータ転送要求情報送信方法。
【請求項10】
コンピュータを、請求項1又は2記載のアドレス/データ設定装置として機能させることを特徴とするプログラム。
【請求項11】
コンピュータを、請求項3又は4記載のバスマスタ装置として機能させることを特徴とするプログラム。
【請求項12】
コンピュータを、請求項5〜7いずれか記載のバス制御システムとして機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−118855(P2012−118855A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−269228(P2010−269228)
【出願日】平成22年12月2日(2010.12.2)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】