説明

バス装置

【課題】排他制御付きの書き込み装置を不要とし、簡易な構成でキュー部への書き込み制御を実現することのできるバス装置を得る。
【解決手段】キュー部101に、バス使用要求の蓄積アドレス毎に蓄積可能か否かを示すフラグを設ける。バス使用要求格納指示部102は、バスマスタ1−1,1−2,…,1−nからのバス使用要求をフラグに基づいてキュー部101に格納する。バス使用権制御部105は、キュー部101に蓄積されたバス使用要求の中から、キュー状態監視部104の監視情報208に基づいてデータ転送を行うためのバス使用要求を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数のバスマスタおよび複数のバススレーブ間に接続され、それら複数のバスマスタおよび複数のバススレーブ間相互のバスを介したデータ転送の制御を行うバス装置に関するものである。
【背景技術】
【0002】
従来のバス装置は、バスマスタからのリクエストをリクエストデータスレッドという単位で扱うことが可能であり、バスマスタの動作とは独立してバス転送を行うことができ、バスラインを効率良く利用することが出来る(例えば、特許文献1参照)。
【0003】
【特許文献1】特開2005−284578号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のバス装置では、バスマスタの独立動作実現のために、排他制御付きの書き込み装置が必要になる。この排他制御付きの書き込み装置は数多くのリクエストキュー入力を数多くのレジスタに出力するため、複雑な回路構成を必要とする。その結果、回路をレイアウトする際に、配線混雑を引き起こす可能性があった。
【0005】
この発明は上記のような課題を解決するためになされたもので、排他制御付きの書き込み装置を不要とし、簡易な構成でキュー部への書き込み制御を実現することのできるバス装置を得ることを目的とする。
【課題を解決するための手段】
【0006】
この発明に係るバス装置は、バス使用要求の蓄積アドレス毎に蓄積可能か否かを示すフラグを有するキュー部と、バス使用要求をフラグに基づいてキュー部に格納するバス使用要求格納指示部と、キュー部に蓄積されたバス使用要求の少なくとも待ち時間を監視し、監視結果を監視情報として出力するキュー状態監視部と、キュー部に蓄積されたバス使用要求の中から、キュー状態監視部の監視情報に基づいてデータ転送を行うためのバス使用要求を選択するバス使用権制御部とを備えたものである。
【発明の効果】
【0007】
この発明のバス装置は、キュー部におけるバス使用要求の蓄積アドレス毎にフラグを設け、このフラグに基づいてバス使用要求を格納すると共に、キュー部に格納されたバス使用要求の少なくとも待ち時間に基づいてデータ転送を行うためのバス使用要求を選択するようにしたので、排他制御付きの書き込み装置を不要とし、簡易な構成でキュー部への書き込み制御を実現することができる。
【発明を実施するための最良の形態】
【0008】
実施の形態1.
図1は、この発明の実施の形態1によるバス装置を示す構成図である。
図において、バス装置100は、複数のバスマスタ1−1,1−2,…,1−nと、複数のバススレーブ2−1,2−2,…,2−nとの間に設けられる装置であり、キュー部101、バス使用要求格納指示部102、待ち時間算出部103、キュー状態監視部104、バス使用権制御部105、バススレーブ分配部106、データバッファ部107を備えている。
【0009】
複数のバスマスタ1−1〜1−nは、データ転送を要求する装置であり、複数のバススレーブ2−1〜2−nは、複数のバスマスタ1−1〜1−nの要求に基づき、バスマスタ1−1〜1−nのデータをリード/ライトする装置である。また、バス使用要求信号201−1〜201−nは、それぞれバスマスタ1−1,1−2,…,1−nからのバス使用要求信号を示し、転送信号202−1〜202−nは、それぞれバススレーブ2−1,2−2,…,2−nへの転送信号を示している。
【0010】
キュー部101は、バス使用要求格納指示部102からのバス使用要求格納指示信号203に基づいてバス使用要求を保持するバッファであり、蓄積するバス使用要求のアドレス毎に、使用中か否かを示すフラグを有している。
図2は、キュー部101内に設けられたフラグの説明図である。
リクエストデータスレッドは、バス使用要求に対応するデータであり、各リクエストデータスレッドのアドレス毎に、使用中か未使用かを示すフラグ(flag)が用意されている。尚、リクエストデータスレッドの詳細については後述する。
また、キュー部101から出力されるキュー状態信号204は、キュー状態監視部104に通知されるフラグや待ち時間といったキュー部101に格納されている各々のリクエストデータスレッドの状態を示す情報である。
【0011】
バス使用要求格納指示部102は、バスマスタ1−1,1−2,…,1−nからのバス使用要求(バス使用要求信号201−1〜201−n)を受け付け、キュー部101に格納すると共に、その格納状態に応じてキュー部101のフラグの使用状態/未使用状態を設定する機能部である。また、バス使用要求格納指示部102は、その書き込み処理を行う場合、キュー部101のアドレス昇順にバス使用要求を格納していき、最終アドレスまで格納した後は、フラグをアドレス昇順に参照していき、未使用のアドレスにバス使用要求を格納するよう構成されている。また、キュー状態監視部104の監視情報207を受け取り、監視情報207がキュー部101の全てのアドレスが使用中であることを示していた場合、バスマスタ1−1,1−2,…,1−nからのバス使用要求をキュー部101に書き込まないよう制御する構成となっている。
【0012】
待ち時間算出部103は、キュー部101内に蓄積されているバス使用要求の蓄積時間を算出する機能部であり、更新前待ち時間情報信号205および更新後待ち時間情報信号206は、それぞれ更新対象のバス使用要求に対する更新前と更新後の信号である。キュー状態監視部104は、キュー部101中のフラグを参照してバス使用要求の格納状態を監視する機能部であり、その監視結果(キュー部101の使用状態)を監視情報207,208として、それぞれバス使用要求格納指示部102およびバス使用権制御部105に出力するよう構成されている。バス使用権制御部105は、キュー状態監視部104からの監視情報208に基づいて、キュー部101内に蓄積されているバス使用要求を選択するためのバス使用要求選択信号209,210を出力する制御部である。即ち、監視情報208は、バス使用要求の待ち時間や転送種別(バースト転送であるか否か)、またデータ量といった情報を含んでおり、バス使用権制御部105は、このような待ち時間、転送種別およびデータ量に基づいて、バスライン108に転送するバス使用要求の選択を行うよう構成されている。
【0013】
バススレーブ分配部106は、キュー部101から読み出され、バスライン108を介して与えられるバス使用要求を、該当するバススレーブ2−1,2−2,…,2−nに対して、転送信号202−1〜202−nとして分配する機能部である。データバッファ部107は、バススレーブ2−1,2−2,…,2−nからの書き込み完了信号211や、読み出しデータ信号212に基づいてバスマスタ1−1,1−2,…,1−nに対してデータ転送完了信号213を送出する機能部である。
【0014】
次に、実施の形態1のバス装置の動作について説明する。
先ず、バス装置における全体の動作について説明する。
バスマスタ1−1,1−2,…,1−nは、バス使用要求(書き込みまたは読み出し要求)を発行する。即ち、それぞれのバスマスタ1−1,1−2,…,1−nはバス使用要求信号201−1〜201−nをバス使用要求格納指示部102に送出する。バス使用要求格納指示部102は、キュー部101のアドレス昇順にバス使用要求を格納していき、最終アドレスまで格納した後は、キュー部101内のアドレス使用・未使用フラグをアドレス昇順に参照して、未使用アドレスにバス使用要求を格納する。また、バス使用要求格納指示部102は、キュー部101にバス使用要求を格納した場合は、そのバス使用要求のフラグを使用状態とする。
【0015】
キュー部101は、バス使用要求を保持する。キュー状態監視部104は、キュー部101の使用状態を監視し、バス使用要求格納指示部102およびバス使用権制御部105に監視情報207,208として通知する。待ち時間算出部103は、キュー部101内に格納されている各バス使用要求の待ち時間を算出する。バス使用権制御部105は、監視情報208に含まれる待ち時間、転送種別、データ量を元に転送するバス使用要求を決定する。バススレーブ分配部106は、決定された転送信号をバスライン108を介して入力し、該当するバススレーブ2−1,2−2,…,2−nに対して、それぞれ転送信号202−1〜202−nとして転送する。バススレーブ2−1,2−2,…,2−nは、転送信号202−1〜202−nに基づいて、書き込み処理または読み出し処理を行う。データバッファ部107は、書き込み完了信号211あるいは読み出しデータ信号212と読み出しデータを保持し、該当するバスマスタにデータ転送が完了したことをデータ転送完了信号213として通知する。読み出し要求の場合は読み出したデータの転送も行う。
【0016】
次に、キュー部101に格納されたバス使用要求をバスライン108に転送する場合の動作の詳細を説明する。
図1において、バスマスタ1−1,1−2,…,1−nからバススレーブ2−1,2−2,…,2−nに対し、書き込みまたは読み出し要求を発行する場合には、バスマスタ1−1,1−2,…,1−nからバス装置100に対してバス使用要求としてリクエストデータスレッドを発行する。
【0017】
図3は、リクエストデータスレッドの例を示す説明図である。
リクエストデータスレッドは、リクエスト、制御信号およびデータから構成される。例えば、リクエストとしては、要求を示すリクエスト、発行元のバスマスタの識別IDを示すマスタID、スレッドの識別を示すスレッドIDがある。尚、ここでスレッドとはOCP(Open Core Protocol)の信号を想定している。また、制御信号としては、書き込みまたは読み出し要求を示すR/W、宛先のバススレーブのアドレスを示すアドレス、転送の種類(バースト転送かどうか)を示す転送種別がある。最後に、データとしては、バススレーブに書き込むデータがあり、合計Mbitで構成される。
【0018】
発行されたリクエストデータスレッドを、バス使用要求格納指示部102によりキュー部101に格納する。キュー部101には図2で示したように、各アドレスが使用中か未使用かを示すフラグ(flag)が用意されている。処理開始時は、全フラグは未使用のため、バス使用要求格納指示部102は、アドレス昇順でリクエストデータスレッドをキュー部101に格納していく。そして、最終アドレスまでリクエストデータスレッドを格納した後は、再び先頭アドレスに戻り、フラグを参照して未使用状態のアドレスにリクエストデータスレッドを格納する。
【0019】
待ち時間算出部103は、キュー部101に蓄積されたリクエストデータスレッドを更新前待ち時間情報信号205として読み出し、その待ち時間をカウントアップして待ち時間を算出し、各リクエストデータスレッドに更新後待ち時間情報信号206としてフィードバックする。
【0020】
キュー状態監視部104は、キュー部101のフラグに基づいて、使用状態(空きがあるか、満杯か)を監視しており、キュー部101にリクエストデータスレッドが全く格納されていない場合(全て空きである場合)、監視情報208としてキュー部101が空きである旨の情報をバス使用権制御部105に送出する。バス使用権制御部105は、このような監視情報208を受け取った場合は、バス使用権の制御動作を中止する。また、キュー部101に一つでもリクエストデータスレッドが格納されている場合は、そのリクエストデータスレッドの待ち時間や転送種別およびデータ量の情報を監視情報208として出力する。
【0021】
また、キュー状態監視部104は、キュー部101の状態が満杯(全アドレスが使用中)の場合は、監視情報207としてバス使用要求格納指示部102に通知を行う。バス使用要求格納指示部102は、キュー部101が満杯である旨の監視情報207を受け取ると、キュー部101へのリクエストデータスレッドの格納を中止する。また、バス使用権制御部105は、キュー状態監視部104からの監視情報208に基づいてキュー部101からバスライン108に転送するリクエストデータスレッドを選択する。
【0022】
図4は、バスラインに転送するリクエストデータスレッドを一つに決定する動作を示すフローチャートである。
先ず、バス使用権制御部105は、ステップST1において、キュー部101に格納されているリクエストデータスレッドの中で、全てのリクエストデータスレッドの待ち時間を閾値Aと比較し、閾値を越える待ち時間が一つ以上あればステップST4へ進み、全ての待ち時間が閾値A以下であればステップST2に進む。尚、ここで、閾値Aとは、予め定められ、バス使用権制御部105に設定されている値である。
【0023】
次に、ステップST2では、リクエストデータスレッドの転送種別がバースト転送かどうかを判定し、バースト転送の場合はステップST4へ進み、バースト転送でない場合はステップST3へ進む。ステップST3では、リクエストデータスレッドのデータ量が一番多いものを調べる。
【0024】
ステップST4では、ステップST1、ST2、ST3の条件を満たすリクエストデータスレッドが複数あるかどうかを判定する。即ち、ステップST1の場合には閾値Aを越える待ち時間が複数あるかどうかを判定し、ST2の場合にはバースト転送が複数あるかどうかを判定し、ST3の場合には最大データ量が同じものが複数あるかどうかを判定する。尚、最大データ量が同じものが複数存在する場合とは、キュー部101に格納されているバス使用要求において、図3に示すようなリクエストデータスレッドにおけるデータ量(サイズ)を比較した場合に、最も大きいデータ量が複数存在するような状態である。例えば、キュー部101に10個のバス使用要求が格納されており、そのうち最大のデータ量のバス使用要求のデータ量が100で、かつ、このデータ量が100のバス使用要求が3個存在するような場合、この3個のバス使用要求がステップST4において条件を満たすバス使用要求ということになる。ステップST4において、条件を満たすリクエストデータスレッドが複数ある場合はステップST5に進み、条件を満たすリクエストデータスレッドが一つの場合はその一つのリクエストデータスレッドを選択し、バスライン108に転送する。
【0025】
ステップST5では、予め定めた固定優先順位により、バスライン108に転送するリクエストデータスレッドを決定する。ここで、ステップST5における固定優先順位とは、予め、バス使用権制御部105に設定されている情報であり、
待ち時間による判定の固定優先順位として、例えば、
バスマスタ1−1>バスマスタ1−2>バスマスタ1−3>…
バースト転送による判定の固定優先順位は、
バスマスタ1−2>バスマスタ1−3>バスマスタ1−1>…
データ量による判定の固定優先順位は、
バスマスタ1−2>バスマスタ1−3>バスマスタ1−1>…
といったように設定されている。
【0026】
バス使用権制御部105において、転送するリクエストデータスレッドが選択され、このリクエストデータスレッドがバスライン108に転送されると、バス使用権制御部105は、バス使用要求格納指示部102に対してバス使用要求選択信号210を出力する。バス使用要求格納指示部102は、このバス使用要求選択信号210を受けて、キュー部101におけるそのリクエストデータスレッドのフラグを未使用状態に戻し、かつ、待ち時間を0に初期化する。その後は、上記の動作を繰り返す。
【0027】
尚、ステップST5における固定優先順位は、実行中にその優先順位を変更してもよい。また、ステップST1→ステップST4→ステップST5において、待ち時間が閾値Aを越えているリクエストデータスレッドが複数あった場合は、待ち時間が最も大きいバス使用要求を選択し、待ち時間が最も大きい同値のバス使用要求が複数あった場合は固定優先順位によって選択を行うようにしてもよい。
【0028】
バスライン108にリクエストデータスレッドが転送されると、バススレーブ分配部106において、そのリクエストデータスレッド内のスレッドIDとアドレスにより、該当するバススレーブにリクエストデータスレッドを出力する。バススレーブ分配部106はバススレーブのBUSY信号を監視し、バススレーブがBUSYでない場合に転送を行う。そのため、内部にバッファが設けられ、バススレーブがBUSYの場合は一時的にリクエストデータスレッドを保持できる。
【0029】
バススレーブ2−1,2−2,…,2−nにリクエストデータスレッドが転送されると、該当するバススレーブから書き込み完了信号211または読み出しデータ信号212がデータバッファ部107に送出される。データバッファ部107では、リクエストデータスレッドが書き込み要求の場合は、バスマスタIDとスレッドIDを保持する。一方、読み出し要求の場合は、バスマスタID、スレッドIDおよび読み出しデータを保持する。そして、該当するバスマスタにデータ転送が完了したことをデータ転送完了信号213で通知する。読み出し要求の場合は読み出したデータも転送する。
【0030】
以上のように、実施の形態1のバス装置によれば、複数のバスマスタとバススレーブ間のデータ転送を行うためのバス使用要求を一時的に蓄積すると共に、バス使用要求の蓄積アドレス毎に蓄積可能か否かを示すフラグを有するキュー部と、バス使用要求をフラグに基づいてキュー部に格納するバス使用要求格納指示部と、キュー部に蓄積されたバス使用要求の少なくとも待ち時間を監視し、監視結果を監視情報として出力するキュー状態監視部と、キュー部に蓄積されたバス使用要求の中から、キュー状態監視部の監視情報に基づいてデータ転送を行うためのバス使用要求を選択するバス使用権制御部とを備えたので、排他制御付きの書き込み装置を不要とし、簡易な構成でキュー部への書き込み制御を実現することができる。その結果、回路構成を簡易化することができ、レイアウトの際の配線混雑を回避することができる。
【0031】
また、実施の形態1のバス装置によれば、バス使用要求格納指示部は、キュー部のアドレス昇順にバス使用要求を格納していき、最終アドレスまで格納した後は、フラグをアドレス昇順に参照していき、未使用のアドレスにバス使用要求を格納するようにしたので、細かなアドレス管理を行うことができると共に、バス使用要求の格納処理としてどこに格納するかを決定する過程を簡略化することができ、従って、回路構成の簡素化を図ることができる。
【0032】
また、実施の形態1のバス装置によれば、バス使用権制御部は、キュー部に蓄積されている複数のバス使用要求の待ち時間が予め設定された閾値を越えている場合に、バス使用要求を第1優先で選択すると共に、該当するバス使用要求が複数存在する場合は、待ち時間が最も大きいバス使用要求を選択し、待ち時間が同値のバス使用要求があった場合は固定優先順位によって選択を行うようにしたので、バスマスタからのバス使用要求を古いもの順に選択するといったバス装置を実現することができる。
【0033】
また、実施の形態1のバス装置によれば、バス使用権制御部は、キュー部に蓄積されている複数のバス使用要求の待ち時間が予め設定された閾値を越えていない場合、複数のバス使用要求の中でバースト転送要求があるか否かを調べ、該当するバス使用要求が複数存在した場合は、固定優先順位に基づいて選択を行い、該当するバス使用要求が単数であった場合は、そのバス使用要求を選択するようにしたので、バスマスタからのバス使用要求がバースト転送か否かによってバス使用要求の選択を行うバス装置を実現することができる。
【0034】
また、実施の形態1のバス装置によれば、バス使用権制御部は、キュー部に蓄積されている複数のバス使用要求の待ち時間が予め設定された閾値を越えておらず、かつ、複数のバス使用要求の中でバースト転送要求がない場合、バス使用要求のデータ量に基づいて選択を行うようにしたので、バスマスタからのデータ量に対応したバス使用要求の選択を行うバス装置を実現することができる。
【0035】
また、実施の形態1のバス装置によれば、キュー状態監視部は、キュー部のフラグが全て使用中を示す場合、その状態を監視情報としてバス使用要求格納指示部に通知し、バス使用要求格納指示部は、通知を受けた場合は、バスマスタからキュー部へのバス使用要求の転送を停止するようにしたので、キュー部が全て使用中の場合にバス使用要求格納指示部はフラグが使用中であるか否かを調べる必要がなく、回路構成の簡素化を図ることができる。
【図面の簡単な説明】
【0036】
【図1】この発明の実施の形態1によるバス装置を示す構成図である。
【図2】この発明の実施の形態1のバス装置におけるキュー部内のフラグの説明図である。
【図3】この発明の実施の形態1のバス装置におけるバスマスタから発行されるリクエストデータスレッドの一例を示す説明図である。
【図4】この発明の実施の形態1のバス装置におけるバス使用要求選択処理を示すフローチャートである。
【符号の説明】
【0037】
1−1〜1−n バスマスタ、2−1〜2−n バススレーブ、100 バス装置、101 キュー部、102 バス使用要求格納指示部、103 待ち時間算出部、104 キュー状態監視部、105 バス使用権制御部、106 バススレーブ分配部、107 データバッファ部、108 バスライン、201−1〜201−n バス使用要求信号、202−1〜202−n 転送信号、203 バス使用要求格納指示信号、204 キュー状態信号、205 更新前待ち時間情報信号、206 更新後待ち時間情報信号、207,208 監視情報、209 バス使用要求選択信号、210 バス使用要求選択信号、211 書き込み完了信号、212 読み出しデータ信号、213 データ転送完了信号。

【特許請求の範囲】
【請求項1】
複数のバスマスタとバススレーブ間のデータ転送を行うためのバス使用要求を一時的に蓄積すると共に、前記バス使用要求の蓄積アドレス毎に蓄積可能か否かを示すフラグを有するキュー部と、
前記バス使用要求を前記フラグに基づいて前記キュー部に格納するバス使用要求格納指示部と、
前記キュー部に蓄積されたバス使用要求の少なくとも待ち時間を監視し、監視結果を監視情報として出力するキュー状態監視部と、
前記キュー部に蓄積されたバス使用要求の中から、前記キュー状態監視部の監視情報に基づいて前記データ転送を行うためのバス使用要求を選択するバス使用権制御部とを備えたバス装置。
【請求項2】
バス使用要求格納指示部は、キュー部のアドレス昇順にバス使用要求を格納していき、最終アドレスまで格納した後は、前記フラグをアドレス昇順に参照していき、未使用のアドレスにバス使用要求を格納することを特徴とする請求項1記載のバス装置。
【請求項3】
バス使用権制御部は、キュー部に蓄積されている複数のバス使用要求の待ち時間が予め設定された閾値を越えている場合に、当該バス使用要求を第1優先で選択すると共に、該当するバス使用要求が複数存在する場合は、待ち時間が最も大きいバス使用要求を選択し、待ち時間が同値のバス使用要求があった場合は固定優先順位によって選択を行うことを特徴とする請求項1または請求項2記載のバス装置。
【請求項4】
バス使用権制御部は、キュー部に蓄積されている複数のバス使用要求の待ち時間が予め設定された閾値を越えていない場合、前記複数のバス使用要求の中でバースト転送要求があるか否かを調べ、該当するバス使用要求が複数存在した場合は、固定優先順位に基づいて選択を行い、該当するバス使用要求が単数であった場合は、当該バス使用要求を選択することを特徴とする請求項1から請求項3のうちのいずれか1項記載のバス装置。
【請求項5】
バス使用権制御部は、キュー部に蓄積されている複数のバス使用要求の待ち時間が予め設定された閾値を越えておらず、かつ、前記複数のバス使用要求の中でバースト転送要求がない場合、バス使用要求のデータ量に基づいて選択を行うことを特徴とする請求項1から請求項4のうちのいずれか1項記載のバス装置。
【請求項6】
キュー状態監視部は、キュー部のフラグが全て使用中を示す場合、当該状態を監視情報としてバス使用要求格納指示部に通知し、当該バス使用要求格納指示部は、通知を受けた場合は、バスマスタから前記キュー部へのバス使用要求の転送を停止することを特徴とする請求項1から請求項5のうちのいずれか1項記載のバス装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−269491(P2008−269491A)
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願番号】特願2007−114586(P2007−114586)
【出願日】平成19年4月24日(2007.4.24)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】