JP2012118855A - バスマスタ装置及びアドレス/データ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム - Google Patents
バスマスタ装置及びアドレス/データ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム Download PDFInfo
- Publication number
- JP2012118855A JP2012118855A JP2010269228A JP2010269228A JP2012118855A JP 2012118855 A JP2012118855 A JP 2012118855A JP 2010269228 A JP2010269228 A JP 2010269228A JP 2010269228 A JP2010269228 A JP 2010269228A JP 2012118855 A JP2012118855 A JP 2012118855A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- information
- bus
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【解決手段】バス制御システム100は、バススレーブ装置400に転送されたデータとアドレスを保持するアドレス/データ設定装置300を備え、バスマスタ装置200は、アドレス送信が不要な場合は、データ線420に加え、アドレス線410を用いてデータを送信する。アドレス/データ設定装置300は、バスマスタ装置200が送信したデータを受信し、保持しているアドレスに基づいて、転送先アドレスを設定し、設定したバススレーブ装置400の転送先アドレスにデータを送信する。そして、バス制御システム100は、2回分のデータ転送要求情報に含まれるデータを1回で送信することが出来る。
【選択図】図3
Description
ここで、バスマスタ装置とは、例えばCPU(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)である。また、バススレーブ装置とは、例えばメモリである。
そして、データ転送の効率化の為に、データ転送要求を待機させるのを抑制する手法として、バス使用状況やバス空き状況に応じてバスマスタに転送許可するデータバス幅を割り当てていた(例えば特許文献1参照)。
本実施の形態においては、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行う。
(1)前記バスの制御線を介して所定のコマンドを有する制御線情報を受信し、
(2)前記バスのデータ線を介してデータ線情報を受信し、
(3)前記バスのアドレス線を介してアドレス線情報を受信する
アドレス/データ受信部と、
(a)前記アドレス/データ受信部が受信した前記所定のコマンドを判定し、
(b)前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定し、
(c)前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定する
情報内容判定部と、
(イ)前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定して、
(ロ)決定したアドレスとデータとを前記バススレーブ装置に対して送信する
アドレス/データ送信部と
を備えることを特徴とする。
本実施の形態では、バス制御システムにおいて、不要な情報を送信しない事で、バスのアドレス線とデータ線とを効率良く使用し、データ転送要求情報の送信の効率化を行うバスマスタ装置とアドレス/データ設定装置との例を説明する。
図1は、実施の形態1におけるバス制御システム100を含む情報処理システム950の外観の一例を示す図である。
図2は、実施の形態1におけるバス制御システム100を含む情報処理システム950のハードウェア資源の一例を示す図である。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記録されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
アービタ450とアドレス/データ設定装置300については、後述する。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記録されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記録される。ディスクやメモリなどの記憶媒体に記録された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・提示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記録される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
図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の数は、限定されるものではない。
ここで、説明を簡単にする為に、バスマスタ装置200とバススレーブ装置400とがそれぞれ1つの場合を想定する。
図4は、バス制御システム100の基本構成を示すブロック図である。
図5は、データ転送要求情報500の一例を示す図である。
図6は、バスマスタ装置200の構成を示すブロック図である。
図7は、アドレス/データ設定装置300の構成を示すブロック図である。
図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より大きい整数)で構成される。
コマンド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」)を引用して説明している箇所は、上記で説明の機能の引用に入れ替えて説明することが可能である。
あるいは、アドレス/データ設定装置300は、3ビットから成るコマンド536の内、2桁目のビットが「1」ならば(すなわち「*1*」ならば)、アドレス線情報510がデータ521と設定され、3桁目のビットが「1」ならば(すなわち「1**」ならば)、データ線情報520がアドレス511と設定されていると判断することも可能である。更に、アドレス/データ設定装置300は、1桁目のビットが「1」ならばアドレス/データ設定装置300が記憶しているアドレス値もしくはデータ値をインクリメントすると判断することも可能である。
コマンド設定部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が設定を行うことも可能である。
アドレス/データ受信部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に対してデータ転送を要求する。
情報内容判定部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とを用いて転送先アドレスと転送データとを決定する。
図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の設定は不要となる。
図9は、バススレーブ装置400に書き込まれる一連の情報を示す図である。
図10は、バススレーブ装置400に書き込まれる一連の情報の内、最初の情報をバススレーブ装置400に書き込む場合の例を示す図である。
図11は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのアドレス511が連番である場合の例を示す図である。
図12は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのアドレス511が続けて同一である場合の例を示す図である。
図13は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのデータ521が続けて同一である場合の例を示す図である。
図14は、バススレーブ装置400に書き込まれる一連の情報の内、データ転送のためのデータ521の値が1つずつ続けて増えている場合を示す図である。
図15は、バススレーブ装置400に書き込まれる一連の情報の内、バースト転送でバススレーブ装置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に書き込まれる情報)を通知することが出来る。
本説明においては、バススレーブ装置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は、図示している。
そして、バスマスタ送信部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」を記憶する。
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回で行うことが可能となる。
あるいは、アドレス線情報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」に書き込まれるように設定することも可能である。
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回で行うことが可能となる。
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回で行うことが可能となる。
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回で行うことが可能となる。
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回で行うことが可能となる。
しかしながら、実際のシステムは、図3に示すように複数のバスマスタ装置200と複数のバススレーブ装置400とが存在する場合が有る。
その場合、前述の通り、アービタ450がどのバスマスタ装置200にバス使用権を与えるかの調停を行う。このような場合も、本来2回のデータ転送要求情報500の通信を行う必要があったことに対し、1回で行うことで、他のバスマスタ装置200に、アービタ450は使用許可を与えることが出来るので、システム全体の転送効率を向上させることが可能となる。
本実施の形態では、バス制御システムにおいて、2つのバスマスタ装置からの情報を連結して1つの情報として送信する連結部と、連結された1つの情報を受信して2つの情報に分離する分離部とを使用して、データ転送要求情報の送信の効率化を行う例を説明する。
図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の数は、限定されるものでは無い。
ここで、コマンド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と同様である。
例えば、図16に示すバスマスタ装置200aとバスマスタ装置200bとから送信されたデータ転送要求情報500を連結した場合を想定する。その場合、図18に示す第1転送情報538は、バスマスタ装置200aからの第1のデータ転送要求情報500に含まれる情報を抽出したものである。同様に第2転送情報539は、バスマスタ装置200bからの第2のデータ転送要求情報500に含まれる情報を抽出したものである。そして、前述の通り、連結フラグ537は「1」に設定される。
連結部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を介して送信する。
分離部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に対して送信する。
図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の設定は不要となる。
図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の具体例を示す図である。
ここでは、バスマスタ装置200aのマスタID532を「001」、バスマスタ装置200bのマスタID532を「002」、バススレーブ装置400aのスレーブID533を「001」、バススレーブ装置400bのスレーブID533を「002」と想定している。
そして、バスマスタ装置200aは、バススレーブ装置400aにデータ転送要求情報500を送信し、バスマスタ装置200bは、バススレーブ装置400bにデータ転送要求情報500を送信すると、想定する。
そして、最初にアービタ450がバスマスタ装置200aにバス使用権を与えると想定する。そして、アドレス/データ設定装置300aのアドレス/データ送信部340は、バススレーブ装置400aのアドレス「2035」にデータ「4056」を書き込む。更にアドレス/データ設定装置300aのアドレス/データ保持部330は、アドレス「2035」とデータ「4056」とを保持する。
次に、アービタ450がバスマスタ装置200bにバス使用権を与える。同様にアドレス/データ設定装置300bのアドレス/データ送信部340は、バススレーブ装置400bのアドレス「2050」にデータ「3327」を書き込む。更にアドレス/データ設定装置300bのアドレス/データ保持部330は、アドレス「2050」とデータ「3327」とを既に保持済の情報に上書きして保持する。
その場合、バスマスタ装置200aとバスマスタ装置200bとのコマンド設定部210は、図21に示すように、データ転送要求情報500のコマンド536を「1011」に設定する。ここで、図21において、アドレス線情報510にアドレス511が設定されているが、コマンド536が「1011」(アドレス線情報510は未使用)である為に、アドレス511の値は実際には使用されない。その為、アドレス線情報510は、無意味なダミー情報が設定されていても良い。
そして、連結部460は、バスマスタ装置200aからのデータ転送要求情報500を第1転送情報538、バスマスタ装置200bからのデータ転送要求情報500を第2転送情報539として連結し、図22に示すデータ転送要求情報500を送信する。この時、連結部460は、連結フラグ537をバスマスタ装置200aとバスマスタ装置200bとからのデータ転送要求情報500が連結していることを示す「1」に設定する。
そして、分離部470は、図22に示すデータ転送要求情報を受信し、第1転送情報538と第2転送情報539とを分離し、バスマスタ装置200aとバスマスタ装置200bとからのデータ転送要求情報500を復元する。その際に、連結フラグ537は不要であり、削除される。また、コマンド536は、4ビット(4桁)のままアドレス/データ設定装置300に送られる。
図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から判定することが出来る。
また、バスマスタ装置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について説明した。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
Claims (12)
- データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレス/データ設定装置において、
(1)前記バスの制御線を介して所定のコマンドを有する制御線情報を受信し、
(2)前記バスのデータ線を介してデータ線情報を受信し、
(3)前記バスのアドレス線を介してアドレス線情報を受信する
アドレス/データ受信部と、
(a)前記アドレス/データ受信部が受信した前記所定のコマンドを判定し、
(b)前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定し、
(c)前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定する
情報内容判定部と、
(イ)前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定して、
(ロ)決定したアドレスとデータとを前記バススレーブ装置に対して送信する
アドレス/データ送信部と
を備えることを特徴とするアドレス/データ設定装置。 - 前記アドレス/データ設定装置は、更に
前記アドレス/データ送信部が前記バススレーブ装置に対して送信したアドレスとデータとを保持するアドレス/データ保持部を備え、
前記情報内容判定部は、
前記アドレス/データ受信部が受信した所定のコマンドを判定し、判定した結果に基づいて、
(1)前記アドレス/データ保持部が保持するアドレスを前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
(2)前記アドレス/データ保持部が保持するアドレスをインクリメントした値を前記バススレーブ装置に対して送信するアドレスとして設定するか否か、及び
(3)前記アドレス/データ保持部が保持するデータを前記バススレーブ装置に対して送信するデータとして設定するか否か、及び
(4)前記アドレス/データ保持部が保持するデータをインクリメントした値を前記バススレーブ装置に対して送信するデータとして設定するか否かを判定し、
前記アドレス/データ送信部は、
アドレス/データ保持部に保持されたアドレスとデータとを用いてデータ転送のためのアドレスとデータ転送のためのデータとを決定する
ことを特徴とした請求項1記載のアドレス/データ設定装置。 - データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置に対してデータ転送を要求するデータ転送要求情報を送信するバスマスタ装置において、
前記バスの制御線を介して送信される所定のコマンドを設定するコマンド設定部と、
(1)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのデータ線を介して送信されるデータ線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記データ線情報を設定し、
(2)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのアドレス線を介して送信されるアドレス線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記アドレス線情報を設定する
情報設定部と、
(a)前記情報設定部が前記データ線情報に設定した情報内容を前記データ線を介して送信し、
(b)前記情報設定部が前記アドレス線情報に設定した情報内容を前記アドレス線を介して送信し、
(c)前記コマンド設定部が設定したコマンドを前記制御線を介して送信する
バスマスタ送信部と
を備えることを特徴とするバスマスタ装置。 - 前記コマンド設定部は、データ転送要求情報が連続して送信される場合に、アドレスの値が同一のまま連続しているか否か、及びアドレスの値が連続して1つずつ増加しているか否か、及びデータの値が同一のまま連続しているか否か、及びデータの値が連続して1つずつ増加しているか否かを判定し、判定した結果に基づいて前記所定のコマンドを設定することを特徴とする請求項3記載のバスマスタ装置。
- 前記請求項1又は2記載のアドレス/データ設定装置と、前記請求項3又は4記載のバスマスタ装置とを備えることを特徴とするバス制御システム。
- 前記バス制御システムは、更に、複数のバスマスタ装置を備え、
前記バス制御システムは、更に、
(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記載のバス制御システム。 - 前記バス制御システムは、更に、複数のアドレス/データ設定装置を備え、
前記バス制御システムは、更に、
(1)前記バスの制御線を介して前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を受信し、前記バスのデータ線を介してデータ線情報を受信し、前記バスのアドレス線を介してアドレス線情報を受信し、
(2)受信した前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報を判定し、
(3)前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報により、前記データ線情報に前記第1のデータ転送要求情報のデータが設定されているか否か、及び前記第2のデータ転送要求情報のデータが設定されているか否か、及び前記第1のデータ転送要求情報のアドレスが設定されているか否か、及びに前記第2のデータ転送要求情報のアドレスが設定されているか否かを判定し、
(4)前記所定の連結フラグと前記第1のデータ転送要求情報が有する所定のコマンドと前記第2のデータ転送要求情報が有する所定のコマンドとを有する制御線情報により、前記アドレス線情報に前記第1のデータ転送要求情報のデータが設定されているか否か、及び前記第2のデータ転送要求情報のデータが設定されているか否か、及び前記第1のデータ転送要求情報のアドレスが設定されているか否か、及び前記第2のデータ転送要求情報のアドレスが設定されているか否かを判定し、
(5)判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、複数のアドレス/データ設定装置の中からデータ転送先のアドレス/データ設定装置を決定し、
(6)データ転送のためのアドレスとデータ転送のためのデータとを決定して、決定したアドレスとデータとを前記データ転送先のアドレス/データ設定装置に対して送信する
分離部を備えることを特徴とする請求項6記載のバス制御システム。 - データ線とアドレス線と制御線とを有するバスを介してバスマスタ装置が送信したデータ転送要求情報を受信して、バススレーブ装置に対してデータ転送を要求するアドレス/データ設定装置におけるアドレスとデータの設定方法において、
アドレス/データ受信部が、
(1)前記バスの制御線を介して所定のコマンドを有する制御線情報を受信する制御線情報受信ステップと、
(2)前記バスのデータ線を介してデータ線情報を受信するデータ線情報受信ステップと、
(3)前記バスのアドレス線を介してアドレス線情報を受信するアドレス線情報受信ステップと、
情報内容判定部が、
(a)前記アドレス/データ受信部が受信した前記所定のコマンドを判定するコマンド判定ステップと、
(b)前記所定のコマンドにより、前記データ線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定するデータ線情報判定ステップと、
(c)前記所定のコマンドにより、前記アドレス線情報にアドレスが設定されているか否か、及びデータが設定されているか否かを判定するアドレス線情報判定ステップと、
アドレス/データ送信部が、
(イ)前記情報内容判定部が判定した判定結果と前記データ線情報と前記アドレス線情報とに基づいて、データ転送のためのアドレスとデータ転送のためのデータとを決定する決定ステップと、
(ロ)決定したアドレスとデータとを前記バススレーブ装置に対して送信する送信ステップとを備えることを特徴とするアドレスとデータの設定方法。 - データ線とアドレス線と制御線とを有するバスを介してバススレーブ装置に対してデータ転送を要求するデータ転送要求情報を送信するバスマスタ装置におけるデータ転送要求情報送信方法において、
コマンド設定部が、前記バスの制御線を介して送信される所定のコマンドを設定するコマンド設定ステップと、
情報設定部が、
(1)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのデータ線を介して送信されるデータ線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記データ線情報を設定するデータ線情報設定ステップと、
(2)前記コマンド設定部が設定した所定のコマンドに基づき、前記バスのアドレス線を介して送信されるアドレス線情報にデータを設定するか否か、及びアドレスを設定するか否かを判定し、判定した結果に基づいて前記アドレス線情報を設定するアドレス線情報設定ステップと、
バスマスタ送信部が、
(a)前記情報設定部が前記データ線情報に設定した情報内容を前記データ線を介して送信するデータ線情報送信ステップと、
(b)前記情報設定部が前記アドレス線情報に設定した情報内容を前記アドレス線を介して送信するアドレス線情報送信ステップと、
(c)前記コマンド設定部が設定したコマンドを前記制御線を介して送信するコマンド送信ステップと、
を備えることを特徴とするバスマスタ装置におけるデータ転送要求情報送信方法。 - コンピュータを、請求項1又は2記載のアドレス/データ設定装置として機能させることを特徴とするプログラム。
- コンピュータを、請求項3又は4記載のバスマスタ装置として機能させることを特徴とするプログラム。
- コンピュータを、請求項5〜7いずれか記載のバス制御システムとして機能させることを特徴とするプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010269228A JP5595248B2 (ja) | 2010-12-02 | 2010-12-02 | バスマスタ装置及びアドレスおよびデータ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010269228A JP5595248B2 (ja) | 2010-12-02 | 2010-12-02 | バスマスタ装置及びアドレスおよびデータ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012118855A true JP2012118855A (ja) | 2012-06-21 |
| JP5595248B2 JP5595248B2 (ja) | 2014-09-24 |
Family
ID=46501573
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2010269228A Expired - Fee Related JP5595248B2 (ja) | 2010-12-02 | 2010-12-02 | バスマスタ装置及びアドレスおよびデータ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5595248B2 (ja) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01292459A (ja) * | 1988-05-19 | 1989-11-24 | Oki Electric Ind Co Ltd | 情報処理装置 |
| JPH0276054A (ja) * | 1988-09-13 | 1990-03-15 | Mitsubishi Electric Corp | バス制御方法 |
| JPH02227765A (ja) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | デジタル・コンピユータのデータ転送装置 |
| JPH08161258A (ja) * | 1994-12-05 | 1996-06-21 | Fujitsu Ltd | データ処理装置 |
| JP2004318340A (ja) * | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | データ転送制御装置 |
| JP2005025587A (ja) * | 2003-07-04 | 2005-01-27 | Matsushita Electric Ind Co Ltd | 半導体集積回路および半導体集積回路におけるバースト転送方法 |
-
2010
- 2010-12-02 JP JP2010269228A patent/JP5595248B2/ja not_active Expired - Fee Related
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01292459A (ja) * | 1988-05-19 | 1989-11-24 | Oki Electric Ind Co Ltd | 情報処理装置 |
| JPH0276054A (ja) * | 1988-09-13 | 1990-03-15 | Mitsubishi Electric Corp | バス制御方法 |
| JPH02227765A (ja) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | デジタル・コンピユータのデータ転送装置 |
| JPH08161258A (ja) * | 1994-12-05 | 1996-06-21 | Fujitsu Ltd | データ処理装置 |
| JP2004318340A (ja) * | 2003-04-14 | 2004-11-11 | Renesas Technology Corp | データ転送制御装置 |
| JP2005025587A (ja) * | 2003-07-04 | 2005-01-27 | Matsushita Electric Ind Co Ltd | 半導体集積回路および半導体集積回路におけるバースト転送方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5595248B2 (ja) | 2014-09-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11163850B2 (en) | System, method and computer program product for data transfer management | |
| US7430652B2 (en) | Devices for performing multiple independent hardware acceleration operations and methods for performing same | |
| JP5714497B2 (ja) | 異なるデータセットの識別を可能とするシステムおよび方法 | |
| JP4669088B1 (ja) | 試験装置、試験方法およびプログラム | |
| CN109254733A (zh) | 用于存储数据的方法、装置和系统 | |
| CN106294233A (zh) | 一种直接内存访问的传输控制方法及装置 | |
| US8199648B2 (en) | Flow control in a variable latency system | |
| JP2011164704A (ja) | クライアントプログラム、端末、サーバ装置、システムおよび方法 | |
| US8250260B2 (en) | Method, arrangement, data processing program and computer program product for exchanging message data in a distributed computer system | |
| CN115934625A (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
| US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
| US20060023253A1 (en) | Direct image formation method and apparatus | |
| JP5448428B2 (ja) | データ管理システム及びデータ管理方法及びデータ管理プログラム | |
| JP5595248B2 (ja) | バスマスタ装置及びアドレスおよびデータ設定装置及びバス制御システム及びアドレスとデータの設定方法及びデータ転送要求情報送信方法及びプログラム | |
| JP5014040B2 (ja) | ゲートウェイ装置及びゲートウェイ装置のゲートウェイ方法及びゲートウェイプログラム | |
| US9509657B2 (en) | Information processing apparatus, relay method, and computer-readable storage medium | |
| US8724125B2 (en) | Method and system for printing according to transmission conditions | |
| JP5101195B2 (ja) | インタフェースコントローラ | |
| CN100444102C (zh) | 高速打印方法和设备 | |
| JP4442483B2 (ja) | 印刷データ処理装置及びプリンタ | |
| CN118363901B (zh) | PCIe设备、电子组件及电子设备 | |
| JP4556840B2 (ja) | 記録媒体作成システム及びその進捗情報の表示制御方法 | |
| JP5264563B2 (ja) | Ediデータ送受信装置及びediデータ送受信方法及びediデータ送受信プログラム | |
| CN120768959A (zh) | 多协议转换的响应保序方法、装置、设备及存储介质 | |
| JP2005158079A (ja) | クライアントとプリンタ間のインタフェース制御方法,及びインタフェース制御装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130905 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140416 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140422 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140613 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140708 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140805 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5595248 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |