JP2004078508A - バス調停回路、バス調停方法およびそのプログラム - Google Patents

バス調停回路、バス調停方法およびそのプログラム Download PDF

Info

Publication number
JP2004078508A
JP2004078508A JP2002237268A JP2002237268A JP2004078508A JP 2004078508 A JP2004078508 A JP 2004078508A JP 2002237268 A JP2002237268 A JP 2002237268A JP 2002237268 A JP2002237268 A JP 2002237268A JP 2004078508 A JP2004078508 A JP 2004078508A
Authority
JP
Japan
Prior art keywords
master
bus
slave
master device
time
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.)
Withdrawn
Application number
JP2002237268A
Other languages
English (en)
Inventor
Junichi Masuda
増田 純一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2002237268A priority Critical patent/JP2004078508A/ja
Publication of JP2004078508A publication Critical patent/JP2004078508A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】バス調停時にバス使用許可を取得するまでの時間を短縮する。
【解決手段】バス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段5と、待機時間を基に残り時間を演算する残り時間算出手段6と、その残り時間に応じてスレーブ応答性能値を演算により再設定する応答性能再設定手段9と、再設定したスレーブの中から応答性能値が最も高く算出されたスレーブをアクセスするマスタの情報を出力するスレーブ応答性能優先順調停手段10と、応答性能値が最も小さいマスタの情報が1つの場合はそのまま出力し複数存在時には予め定めたマスタの固定優先順位で調停を行い、最高優先順位のマスタを1つ出力するマスタ固定優先順調停手段11と、出力された1つのマスタにバス使用許可信号を出力し、かつ最高優先順位のマスタの情報をマスタ待機時間監視手段5へ通知するバス使用許可信号出力手段12とを備える。
【選択図】   図2

Description

【0001】
【発明の属する技術分野】
本発明はバス調停回路、バス調停方法およびそのプログラムに係わり、特に複数のマスタデバイス(以下、マスタと称す)と複数のスレーブデバイス(以下、スレーブと称す)を有し、それらのデバイスでバスを共有するシステムで、バスの使用権を調停する手段および方法を改善したバス調停回路、バス調停方法およびそのプログラムに関する。
【0002】
【従来の技術】
この種のシステムは、例えば、マスタ側に複数のパーソナルコンピュータとスレーブ側に複数のプリンタ、複数のパーソナルコンピュータと複数のハードディスク等の周辺機器がシステムバスを共有し、かつ1つの調停回路でバスの使用優先権を調停する。
【0003】
その場合、これらマスタ側の複数のパーソナルコンピュータは予めバス使用の優先順位が定められており、複数の周辺機器から同時にバス使用要求信号が出力されると、優先順位が最も高いパーソナルコンピュータにバス使用許可信号が与えられる。
【0004】
上述した従来のバス調停回路では、優先順位が最も高いマスタが繰り返しスレーブをアクセスすると、そのマスタにバスが占用されることになり、優先順位が低いマスタはアクセスを待たされることになる、あるいはバスタイムアウト時間が終了してしまうという問題がある。
【0005】
一方、近年の処理データの増加と高速化とにより、マスタ毎のバススループットには優劣を付け難く、優先順位の決定が困難になっており、固定した優先順位付けでは優先順位の低いマスタの待機時間が長くなる。
【0006】
また、前述したバスタイムアウト時間の極端に短いマスタも存在し、入出力機能のデータ転送が長時間停滞した時にはバスタイムアウトが発生する。バスタイムアウトの発生はマスタのバススループットの低下につながり、バス調停回路はマスタのバスタイムアウト発生を抑制しなければならない。
【0007】
この種の従来例が特開2001−67308号公報に記載されている。同公報記載のバス調停回路は、マスタのバスタイムアウト時間が短く、従来の固定優先順調停回路や優先順位を巡回させて調整する回転優先順調停回路(ラウンドロビン)では、マスタのバスタイムアウトの回避が困難な場合のために考案された。
【0008】
上述した従来のバス調停回路の構成図を示した図20とバス調整回路を含むシステムの接続図を示した図21を参照すると、この従来のバス調停回路101を含むシステムは、複数のマスタ1〜マスタ4と、共有バスを介して接続される複数のスレーブ1〜スレーブ4と、マスタ1〜マスタ4それぞれからバス使用要求信号をバス使用要求信号受信部を介して受け、優先順位を調停した後、バス使用許可信号送信部を介してそれぞれにバス使用許可信号を返信するバス調停回路101とで構成されている。
【0009】
バス調停回路101は、新規にバス使用要求信号を発信したマスタの情報を受け取り内部に取り込むバス使用要求信号受信部102と、バス使用要求信号受信部102の出力信号を受けるとともに、バス使用要求信号を複数のマスタから同時に受信している場合には、予め定めた固定優先順位に基づき調停を行い、最も優先順位の高いのマスタからのマスタ情報を先に出力し、バス使用要求信号を1つのマスタだけから受信している場合はバス使用要求信号受信部102の出力信号をそのまま出力するするマスタ固定優先調停部103とを有する。
【0010】
また、バス調停回路101は、マスタ固定優先調停部103の出力信号を最下位の格納レジスタ105に受けて格納するとともに、格納した信号を、格納レジスタ105に縦続接続された上位の格納レジスタ106、格納レジスタ107および格納レジスタ108に空きがあれば順次シフトしていき、最上位の格納レジスタ108から出力する記憶部104を有する。
【0011】
さらに、バス調停回路101は、記憶部104の出力信号を受信して、マスタ1〜マスタ4へバス使用許可信号を送信するバス使用許可信号送信部110と、記憶部104およびバス使用許可信号送信部110の制御を行う出力信号制御部109を有している。
【0012】
なお、記憶部104内の格納レジスタの数は、バス調停回路101で調停を行うマスタの数以上が必要である。
【0013】
上述した構成を有する従来のバス調停回路101は、固定的に決めた優先順位に従ってバス調停を行うのではなく、基本的には、あたかもFIFOレジスタのように、バス使用要求信号を受信した順番にバス使用許可信号を送信する先着優先バス調停回路である。ただし、マスタのバス使用要求信号を同時に複数受信した場合は、予め設定した固定優先順でマスタの調停を行っている。
【0014】
【発明が解決しようとする課題】
上述したように、バス使用要求信号を受信した順番にバス使用許可信号を送信し、マスタのバス使用要求信号を同時に複数受信した場合は、予め設定した固定優先順でマスタの調停を行う従来のバス調停回路101は、マスタのバス占用時間が考慮されていない。
【0015】
そのため、同時に複数のマスタのバス使用要求信号を受信すると、予め設定した固定優先順でマスタの調停を行い、優先順位を高く設定したマスタが低速スレーブにアクセスすると長時間バスを占用することになり、優先順位が低く設定されたマスタの待機時間が長くなり、バスタイムアウトの発生確率が高くなるという問題がある。
【0016】
また、バスタイムアウト時間が考慮されていないため、マスタのバス使用要求信号を受信すると先着順に調停を行う際に、バスタイムアウト時間の短いマスタがバスタイムアウト時間の長いマスタよりも遅いタイミングでバス使用要求信号を出力した場合は、バスタイムアウト時間の短いマスタの優先度が下がり、待機時間が長くなる。
【0017】
待機時間が長くなれば、バスタイムアウト時間が短いマスタは、バスタイムアウト発生までの時間がさらに短くなり、バスタイムアウトの発生確率が高くなるという問題がある。
【0018】
本発明の目的は、上述した従来の欠点に鑑みなされたものであり、複数のマスタと複数のスレーブのデバイスを有し、それらのデバイスでバスを共有するシステムにおけるバスの使用要求の発生からバス使用許可を取得するまでの時間を短縮したバス調停回路とバス調停方法を提供することにある。
【0019】
【課題を解決するための手段】
本発明のバス調停回路は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間短縮機能を有することを特徴とする。
【0020】
本発明のバス調停回路の他の特徴は、アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が、他のマスタデバイスよりも短くなってきたマスタデバイスのバス使用優先度を一時的に高くする調停を行ってバスタイムアウトの発生を抑制するバス使用優先度調停手段を有することにある。
【0021】
本発明のバス調停回路のまた他の特徴は、マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定するバス使用調停手段を有することにある。
【0022】
本発明のバス調停回路のさらに他の特徴は、マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短いマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制するバス使用調停手段を有することにある。
【0023】
本発明のバス調停回路のさらにまた他の特徴は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、1つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを備えることにある。
【0024】
また、前記残り時間算出手段は、各マスタデバイスがバス使用要求信号で前記システムバスの使用を要求してからバスタイムアウトが発生するまでのバスタイムアウト時間を記憶するマスタ情報記憶手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記バスタイムアウト時間および前記マスタデバイスの前記待機時間を基に、バス使用要求をしたマスタデバイスがバスタイムアウトするまでの残り時間を演算するバスタイムアウト残り時間演算手段とを備えることができる。
【0025】
さらに、前記バスタイムアウト残り時間演算手段は、前記マスタデバイスのバスアクセスタイムから前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有することができる。
【0026】
さらにまた、前記応答性能再設定手段は、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、マスタがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備えることもできる。
【0027】
また、前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値と前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有してもよい。
【0028】
さらに、前記マスタ情報記憶手段に代えて、マスタデバイスのバスタイムアウト時間に関する情報を外部から受信するマスタ情報受信手段を有してもよい。
【0029】
さらにまた、前記スレーブ情報記憶手段に代えて、スレーブデバイスの応答時間を外部から受信するためのスレーブ情報受信手段を有してもよい。
【0030】
また、前記マスタ固定優先順調停手段に代えて、マスタデバイスを回転優先順位(ラウンドロビン)により優先順位を巡回させて調停するマスタ回転優先順調停手段を有してもよい。
【0031】
本発明のバス調停回路の他の特徴は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスと前記複数のマスタデバイスが前記システムバスを使用する際の優先順位を調停するバス調停手段とを有し、
前記バス調停手段は、前記マスタデバイスがバス使用要求信号を発行してからバス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段と、前記待機時間を基にスレーブ応答性能値を演算により再設定する応答性能再設定手段と、再設定した前記スレーブ応答値の中から最小値が算出されたスレーブデバイスをアクセスしているマスタデバイスの情報を出力するスレーブ応答性能優先順調停手段と、前記応答性能値が最小値を示すマスタデバイスの情報が1つの場合はそのまま出力し複数存在する場合には、予め定めたマスタデバイスの固定優先順位で調停を行い、最優先のマスタデバイスを1つ決定するマスタ固定優先順調停手段と、決定された前記1つのマスタデバイスにバス使用許可信号を出力するとともに、前記最も高い優先順位のマスタデバイスの情報を前記マスタ待機時間監視手段へ通知するバス使用許可信号出力手段とを備えることにある。
【0032】
また、前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値から前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有することができる。
【0033】
さらに、前記応答性能再設定手段は、連続で複数回の転送を行うためにバス占有時間の延長指定を外部から行うマスタ転送回数信号受信手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記バス占有時間の延長指定に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備えることもできる。
【0034】
さらにまた、前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と受信した前記マスタデバイスの転送回数との積と、前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有してもよい。
【0035】
また、前記応答性能再設定手段は、前記マスタデバイスとアクセスする前記スレーブデバイスとの組み合わせにより決定する定数を予め記憶し、前記スレーブ通知信号に応答して前記定数を選択する組み合わせ定数選択手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記定数に応じて、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備えることもできる。
【0036】
さらに、前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と前記マスタデバイスのバスタイムアウト残り時間との和から、組み合わせ定数選択手段で設定した前記定数を減じて前記スレーブデバイスの応答性能値を求める機能を有してもよい。
【0037】
本発明のバス調停方法は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間を短縮することを特徴とする。
【0038】
本発明のバス調停方法の他の特徴は、アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が、他のマスタデバイスよりも短いマスタデバイスのバス使用優先度を一時的に高くする調停を行ってバスタイムアウトの発生を抑制することにある。
【0039】
本発明のバス調停方法のまた他の特徴は、マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定することにある。
【0040】
本発明のバス調停方法のまたさらに他の特徴は、マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短くなってきたマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制することにある。
【0041】
本発明のバス調停方法の他の特徴は、複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、1つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを有することにある。
【0042】
また、前記調停ステップは、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、次に、前記マスタデバイスの待機時間およびマスタ情報が格納されたマスタ情報記憶手段のバスタイムアウト時間を参照して、前記マスタデバイスのバスタイムアウトまでの残り時間を算出する残り時間算出ステップと、前記残り時間に応じて、アクセスするスレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有することができる。
【0043】
さらに、前記マスタ決定ステップは、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスが複数存在する場合は、その複数のマスタデバイスをまとめるグループ化ステップと、予め設定した固定優先順位でマスタデバイスの調停を行うマスタデバイス調停ステップと、最高優先のマスタデバイスを1つ決めるマスタデバイス最終決定ステップとを有することもできる。
【0044】
さらにまた、前記調停ステップは、複数のマスタデバイスからバス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、前記マスタデバイスが前記バス使用許可信号を受けるまでの待機時間に応じて、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有することもできる。
【0045】
また、前記スレーブ応答時間は、システム上で特定のスレーブデバイスにアクセスすることが重要であるときは、予め実際の応答時間よりも小さい値を設定して優先順位を上げてもよい。
【0046】
さらに、前記マスタ応答時間は、システム上で特定のマスタデバイスがアクセスすることが重要であるときは、予め実際の応答時間よりも大きい値を設定して優先順位を上げてもよい。
【0047】
さらにまた、前記演算ステップは、前記マスタデバイスのバスタイムアウト時間から前記マスタデバイスの待機時間を減算して前記マスタデバイスのバスタイムアウト残り時間を求めることができる。
【0048】
また、前記演算ステップは、前記スレーブデバイスの応答時間の設定値に前記マスタデバイスのバスタイムアウト残り時間を加算して前記スレーブデバイスの応答性能値を求めることもできる。
【0049】
さらに、前記演算ステップによる演算結果により、バスタイムアウトまでの残り時間の長いマスタデバイスほど、アクセスするスレーブデバイスの応答性能値を小さくさせることもできる。
【0050】
さらにまた、前記残り時間は、前記マスタデバイスがバス使用許可信号を取得したときのバスタイムアウトまでの残りクロック数であり、前記待機時間は、前記マスタデバイスからバス使用要求信号を受信してバス使用許可信号を取得するまでのクロック数とすることもできる。
【0051】
また、前記通知信号受信ステップから前記許可信号送信ステップまでのアルゴリズムを有するプログラムを予め外部記憶手段に格納しておき、前記外部記憶手段から読み出した前記プログラムをCPUに読み込ませるとともに、前記プログラムで前記CPUを制御することによってバス調停を行ってもよい。
【0052】
【発明の実施の形態】
本発明の第1の実施の形態を図面を参照しながら詳細に説明する。図1は本発明のバス調整回路を含むシステムの構成図であり、図2は本発明の第1の実施の形態におけるバス調停回路の構成図である。
【0053】
まず、構成を説明する。図1および図2を参照すると、バス調停回路1を含むシステムは、複数のマスタ1(21)〜マスタ4(24)(以下、マスタ21〜マスタ24と称す)と、共有バスを介して接続される複数のスレーブ1(25)〜スレーブ4(28)(以下、スレーブ25〜スレーブ28と称す)と、マスタ21〜マスタ24それぞれからバス使用要求信号REQをバス使用要求信号受信部2を介して受け、スレーブ通知信号SLVをスレーブ通知信号受信部3を介して受けて優先順位を調停した後、バス使用許可信号送信部4を介してそれぞれ対応するマスタ21〜マスタ24にバス使用許可信号ACKを返信するバス調停回路1とで構成されている。
【0054】
第1の実施の形態におけるバス調停回路1は、マスタ21〜マスタ24から発信されたバスの使用要求信号REQ1〜REQ4を受信するバス使用要求信号受信部2と、マスタ21〜マスタ24がバス使用要求信号REQ1〜REQ4を出力してからバスタイムアウトが発生するまでの時間を示すバスタイムアウト時間を予め記憶させたマスタ情報記憶部4とを有する。
【0055】
また、バス調停回路1は、バス使用要求信号受信部2を介してバス使用要求信号REQ〜REQ4を受信した時点からのそれぞれのマスタの待機時間を監視し、その待機時間を出力するマスタ待機時間監視部5と、出力されたそれぞれの待機時間およびそれぞれに対応するタイムアウト時間をマスタ情報記憶部4から読み出し、バスタイムアウトが発生するまでの残り時間を演算して出力するバスタイムアウト残り時間演算部6とを有する。
【0056】
さらに、バス調停回路1は、マスタ21〜マスタ24のアクセスするスレーブ種類を示すスレーブ通知信号SLV1〜SLV4受信するスレーブ通知信号受信部3と、スレーブ25〜スレーブ28がマスタ21〜マスタ24のいずれかからアクセスを受け付けた後、応答を完了するまでの応答時間を予め記憶させたスレーブ情報記憶部7とを有する。
【0057】
また、バス調停回路1は、スレーブ情報記憶部7に記憶したスレーブの種類に応じた応答時間から対応する応答時間の読み出しを制御するスレーブ情報選択部8と、スレーブ情報選択部8で選択した応答時間およびバスタイムアウト残り時間演算部6から出力された残り時間を基に、バスタイムアウトまでの残り時間が短いマスタがアクセス対象とするスレーブの応答時間を、一時的でかつ相対的に短くする、もしくは、バスタイムアウトまでの残り時間が長いマスタがアクセス対象とするスレーブの応答時間を、一時的でかつ相対的に長くする演算を行うとともに、その演算結果を出力するスレーブ応答性能演算部9とを有する。
【0058】
さらに、バス調停回路1は、スレーブ応答性能演算部9から出力される演算結果およびバス使用要求信号受信部2からのバス使用要求信号REQを基に、アクセスするスレーブの応答時間が短いマスタの優先順位を最も高くする調停、または、バス占有時間の短いマスタの優先順位を最も高くする調停を行い、調停結果を出力するスレーブ応答性能優先順調停部10とを有する。
【0059】
また、バス調停回路1は、スレーブ応答性能優先順調停部10での調停結果で、優先順位が最も高く設定されたマスタが複数存在する場合には、予め設定したマスタの優先順位で調停を行い出力するマスタ固定優先調停部11と、マスタ固定優先調停部11で決定された優先順位に従いバス使用許可信号ACK1〜ACK4をそれぞれ対応するマスタ21〜マスタ24に出力するバス使用許可信号送信部12とを有する。
【0060】
次に、4つのマスタ21〜24を調停する場合のスレーブ応答性能優先順調停部10とマスタ固定優先調停部11の詳細な構成例を説明する。
【0061】
スレーブ応答性能優先順調停部10の構成を示した図3を参照すると、スレーブ応答性能優先順調停部10は、スレーブ応答性能演算部9から、マスタ1のスレーブ応答性能値およびバス使用要求信号受信部2からマスタ1のバス使用要求信号の極性反転信号を入力し、マスタ1のバス使用要求信号がハイレベルのときマスタ1のスレーブ応答性能値するOR回路31と、マスタ2のスレーブ応答性能値およびバス使用要求信号受信部2からマスタ2のバス使用要求信号の極性反転信号を入力し、マスタ2のバス使用要求信号が論理レベルのハイレベル(以下、レベル“1”と称す)のときマスタ2のスレーブ応答性能値を出力するOR回路32と、OR回路31およびOR回路32の出力するスレーブ応答性能値aおよびbを比較する比較部A41を有する。
【0062】
比較部A41の構成を示した図4を参照すると、比較部A41は、内部に比較回路61および一致判定回路62と論理回路71〜73とを有する。比較回路61は、入力aの値と入力bの値とを比較し、入力aの値が入力bの値より小さい場合に出力cからレベル“1”を出力し、それ以外の場合はレベル“0”を出力する。
【0063】
一致判定回路62は、入力aの値と入力bの値が等しい場合に出力cから1を出力し、それ以外は0を出力する。比較部A41は、2つのマスタ1および2のスレーブ応答性能値aおよびbを比較し、応答性能の優れているマスタのマスタ情報cおよびdとスレーブ応答性能値eを出力する。2つのマスタのスレーブ応答性能値が等しい場合は、2つのマスタのマスタ情報とそのスレーブ応答性能値を出力する。
【0064】
再び図3において、スレーブ応答性能優先順調停部10は、マスタ3のスレーブ応答性能値およびバス使用要求信号受信部2からマスタ3のバス使用要求信号の極性反転信号を入力し、マスタ3のバス使用要求信号がハイレベルのときマスタ3のスレーブ応答性能値を出力するOR回路33と、マスタ4のスレーブ応答性能値およびバス使用要求信号受信部2からマスタ4のバス使用要求信号の極性反転信号を入力し、マスタ4のバス使用要求信号がハイレベルのときマスタ4のスレーブ応答性能値するOR回路34とを有する
比較部A42は、比較部A41と同様の構成であり、2つのマスタ3および4のスレーブ応答性能値aおよびbを比較し、応答性能の優れているマスタのマスタ情報cおよびdとスレーブ応答性能値eを出力する。2つのマスタのスレーブ応答性能値が等しい場合は、2つのマスタのマスタ情報とそのスレーブ応答性能値を出力する。
【0065】
さらに、スレーブ応答性能優先順調停部10は、比較部A41のカスタマ情報cを入力端子cに、カスタマ情報dを入力端子dに、スレーブ応答性能値eを入力端子aにそれぞれ入力し、比較部A42のカスタマ情報cを入力端子eに、カスタマ情報eを入力端子bに、スレーブ応答性能値dを入力端子fにそれぞれ入力して比較する比較部B43を有する。
【0066】
比較部B43の構成を示した図5を参照すると、比較部B43は、内部に比較回路81と一致判定回路82と組み合わせ回路91〜94とを有する。比較回路81は、比較回路61と同様の回路で構成し、一致判定回路82は、一致判定回路62と同様の回路で構成する。
【0067】
比較部B43は、比較部A41と比較部A42から入力する2つのスレーブ応答性能値a,bを比較し、優れているスレーブ応答性能値を入力した側のマスタ情報を出力する。
【0068】
2つのスレーブ応答性能値a,bが等しい場合は、双方から入力したマスタ情報c,d,e,fを組み合わせ回路91〜94でそれぞれ選択し、マスタ出力g,h,i,jのマスタ情報として出力する。これらの出力g,h,i,jのマスタ情報は、図3において、それぞれ対応するマスタ1〜4のバス使用要求信号とAND回路51〜54で選択され、マスタ固定優先調停部11にマスタ1〜4のマスタ情報として出力される。
【0069】
マスタ固定優先調停部11は、その構成を示した図6を参照すると、入力したマスタ1〜4のマスタ情報のうち、マスタ1のマスタ情報をスルーで出力するとともにその極性反転させたマスタ情報とマスタ2のマスタ情報とを入力するAND回路95と、マスタ1の極性反転マスタ情報とマスタ2の極性反転マスタ情報とマスタ3のマスタ情報とを入力するAND回路96と、マスタ1の極性反転マスタ情報とマスタ2の極性反転マスタ情報とマスタ3極性反転マスタ情報とマスタ4のマスタ情報とを入力するAND回路97とを有し、マスタ情報が1個のときはその入力情報をスルーで出力する。
【0070】
なお、図3、図4、図5、図6に示すスレーブ応答性能優先順調停部10、マスタ固定優先調停部11の構成はその一例を示すものであり、これらの構成に限定されない。同様の機能が実現できる構成であればよい。
【0071】
上述した構成による本発明のバス調停回路1の機能を説明すると、バス使用要求信号受信部2は、各マスタ21〜24のバス使用要求信号REQ1〜4を受信し、バス使用要求信号を発信しているマスタ21〜24がどのマスタであるかの情報を出力する。
【0072】
スレーブ通知信号受信部3は、各マスタ21〜24のアクセスしようとするスレーブ25〜28のどれかを示すスレーブ通知信号SLV1〜4を各マスタ21〜24から受信する。
【0073】
マスタ情報記憶部4は、各マスタ21〜24のバスタイムアウト時間を予め記憶する。表1にバスに接続する各マスタのバスタイムアウト時間の一例を示す。
【0074】
【表1】
Figure 2004078508
【0075】
マスタ待機時間監視部5は、バス使用要求信号受信部2の出力信号とバス使用許可信号送信部12からのバス使用許可信号ACK送信先がマスタ21〜24のうちのどれであるかの情報とを入力し、バス使用許可信号取得待ちマスタの待機時間をカウンタでカウントし、待機時間を監視する。
【0076】
バスタイムアウト残り時間演算部6は、マスタ情報記憶部4の出力信号であるマスタ21〜24のバスタイムアウト時間と、マスタ待機時間監視部5の出力信号であるマスタ21〜24の待機時間とを入力し、その2つの信号からマスタ21〜24それぞれがバスタイムアウトするまでの時間を演算する。
【0077】
スレーブ情報記憶部7は、各スレーブ25〜28それぞれの応答時間、すなわち、マスタのアクセス開始からアクセス完了までの予め決められた時間を記憶する。
【0078】
スレーブ情報選択部8は、スレーブ情報記憶部7の出力信号である各スレーブ応答時間の中から、スレーブ通知信号受信部3の出力信号である、マスタ21〜24がアクセスするスレーブ種類を基に、マスタ21〜24がアクセスするスレーブの応答時間を選択する。
【0079】
スレーブ応答性能演算部9は、バスタイムアウト残り時間演算部6の出力信号であって、マスタ21〜24がバスタイムアウトするまでの残り時間と、スレーブ情報選択部8の出力信号であって、マスタ21〜24がアクセスするスレーブ25〜28それぞれの応答時間とを基に、マスタ21〜24がバスタイムアウトするまでの残り時間に応じて、スレーブ24〜28の応答時間を一時的でかつ相対的に変更する演算を行い、その演算結果をマスタ21〜24がアクセスするスレーブ25〜28の応答性能値として出力する。
【0080】
スレーブ応答性能優先順調停部10は、バス使用要求信号受信部2の出力信号であるバス使用要求信号REQを入力し、スレーブ応答性能演算部9の出力信号である演算後のスレーブの応答性能値を基に、バス使用要求信号REQを発信しているマスタ21〜24の中で、アクセスするスレーブ25〜28の応答性能値を比較し、応答性能値が最小値を示すマスタの情報を出力する。
【0081】
なお、ここでのスレーブ応答性能の値が優れているマスタとは、スレーブ応答性能値が小さいマスタのことであり、最も優れているとは、性能値が最小値のことである。
【0082】
マスタ固定優先調停部11は、スレーブ応答性能優先順調停部10の出力するマスタ21〜24の優先順位情報が複数ある場合に、予め定めたマスタの固定優先順位で調停を行い、その結果、最も優先順位の高いマスタを1つ出力し、マスタの優先順位情報が1つの場合は、優先順位の調停をせずにスレーブ応答性能優先順調停部10の出力信号そのままを出力する。
【0083】
バス使用許可信号出力部12は、マスタ固定優先調停部11の出力信号を入力し、入力された1つのマスタにバス使用許可信号ACKを出力すると同時に、バス使用許可信号ACKを出力した先のマスタがどれであるかを示す情報をマスタ待機時間監視部5へ出力する。
【0084】
次に、上述した本発明の第1の実施の形態を、図1〜図6とバス調停方法のフローチャートを示した図7とを併せて参照しながら詳細に説明する。
【0085】
本発明のバス調停回路1は、バス使用要求信号受信部2ではマスタ21〜24からのバス使用要求信号REQを受信し、スレーブ通知信号受信部3ではマスタ21〜24からのスレーブ通知信号SLVを受信する(図5、ステップS1)。
【0086】
次に、バス使用要求信号REQを受信しているかを判定し(図6、ステップS2)、バス使用要求信号REQを受信していない場合は、再びバス使用要求信号REQとスレーブ通知信号SLVとを受信する(図6、ステップS1)。
【0087】
バス使用要求信号REQを受信している場合は、受信しているバス使用要求信号REQが複数あるかを判定し(図6、ステップS3)、1つのマスタのバス使用要求信号を受信している場合は、そのマスタにバス使用許可信号送信部12からバス使用許可信号ACKを送信する(図6、ステップS12)。
【0088】
一方、マスタ1〜4のうち複数のマスタのバス使用要求信号REQを受信している場合は、まず、スレーブ情報選択部8で、スレーブ通知信号受信部3の出力信号SLVを基に、スレーブ情報記憶部7に予め格納された各スレーブ応答時間の中から、バス使用要求信号REQを受信しているマスタがアクセスするスレーブの応答時間を選択する(図6、ステップS4)。
【0089】
ここで、スレーブ情報記憶部7に格納されているスレーブ応答時間は、システム上で特定のスレーブにアクセスすることが重要である場合は、予め実際の応答時間より小さい(優れている)値を設定して、優先度を上げる場合もある。
【0090】
次に、マスタ待機時間監視部5では、バス使用許可信号ACKの取得待ちをしているマスタが発信したバス使用要求信号REQを受信すると、受信してからの待機時間を監視し、その待機時間情報をバスタイムアウト残り時間演算部6へ出力する。
【0091】
バスタイムアウト残り時間演算部6では、マスタ待機時間監視部5から通知されたマスタの待機時間とマスタ情報記憶部4から受けたマスタのバスタイムアウト時間とから、マスタのバスタイムアウトまでの残り時間を算出する(図6、ステップS5)。
【0092】
ここで、マスタ情報記憶部4のマスタ情報は、システム上で特定のマスタがアクセスすることが重要である場合、予め実際のバスタイムアウト時間より短い値を設定して、優先度を上げる場合もある。
【0093】
次に、スレーブ応答性能演算部9では、バスタイムアウトまでの残り時間の短いマスタのアクセスするスレーブ応答性能値を一時的でかつ相対的に増加させる、もしくは、バスタイムアウトまでの残り時間の長いマスタのアクセスするスレーブ応答性能値を一時的でかつ相対的に減少させる演算を行う(図6、ステップS6)。
【0094】
次に、スレーブ応答性能優先順調停部10では、アクセスするスレーブの応答性能値が最小値のマスタを最も高い優先順位とする調停を行う(図6、ステップS7)。
【0095】
次に、アクセスするスレーブの応答性能値が最小値のマスタが複数存在するかを判定する(図6、ステップS8)。
【0096】
アクセスするスレーブの応答性能値の最小値のマスタが1つの場合は、そのマスタを最優先順位のマスタとしてスルーで出力し(図6、ステップS11)、バス使用許可信号送信部12からバス使用許可信号ACKを送信する(図6、ステップS12)。
【0097】
アクセスするスレーブの応答性能値が最小値のマスタが複数存在する場合は、その複数のマスタ情報をまとめてマスタ固定優先調停部11へ出力する(図6、ステップS9)。マスタ固定優先調停部11では予め設定した固定優先順位に従いマスタの調停を行う(図6、ステップS10)。
【0098】
調停により最優先順位のマスタが決まると(図6、ステップS11)、バス使用許可信号送信部12を介してバス使用許可信号ACKをアクセス対象のマスタへ送信する(図6、ステップS12)。
【0099】
ここで、バスタイムアウト残り時間演算部6における演算方法の例を以下に示す。
【0100】
A=B−C・・・・・・・・・・・・・(1)
Aは、バスタイムアウト残り時間演算部6の出力する、マスタのバスタイムアウト残り時間である。Bは、バスタイムアウト残り時間演算部6に入力する、マスタのバスタイムアウト時間である。Cは、バスタイムアウト残り時間演算部6に入力する、マスタの待機時間である。
【0101】
なお、バスタイムアウト残り時間演算部6において式(1)の演算を行う場合、バスタイムアウト残り時間演算部6は減算回路で構成できる。
【0102】
次に、スレーブ応答性能演算部9における演算方法の例を以下に示す。
【0103】
D=E+A・・・・・・・・・・・・・・(2)
ここで、Dはスレーブ応答性能演算部9の出力する、アクセススレーブ応答性能の値である。Eはスレーブ応答性能演算部9の入力する、アクセススレーブの応答時間の設定値である。Aはスレーブ応答性能演算部9の入力する、マスタのバスタイムアウト残り時間である。
【0104】
アクセススレーブの応答時間の設定値は、前述したように小さい値ほど優れているとし、スレーブ応答性能優先順調停部10では、スレーブの応答性能値が小さいマスタを最優先とする調停を行う。
【0105】
なお、スレーブ応答性能演算部9で式(2)の演算を行う場合、スレーブ応答性能演算部9は加算回路で構成できる。
【0106】
次に、マスタ21〜24のバスタイムアウト時間およびスレーブ25〜28の応答時間例を示した図8と、表1と、バスに接続する各スレーブの応答時間例をまとめた表2と、各マスタの優先順位例をまとめた表3と、動作説明用のタイミングチャートを示した図9および図とを併せて参照しながら、動作をさらに詳細に説明する。
【0107】
なお、図9および図10のタイミングチャートは連続しており、両図中のT4は同一のタイミングである。
【0108】
なお、ここでマスタのバスタイムアウト時間は、マスタがバス使用要求信号REQを出力してからバスタイムアウトするまでのクロック数である。スレーブの応答時間は、小さい値ほど高速スレーブであることを示し、マスタがスレーブにアクセスする時のバス占有時間のクロック数と同じ値である。
【0109】
図8に示すように、4つのマスタ21〜24と4つのスレーブ25〜28とを接続した場合を例にとって説明する。
【0110】
スレーブ応答性能演算部9では、式(2)の演算を行うものとする。この演算により、バスタイムアウトまでの残り時間の長いマスタほど、アクセスするスレーブの応答性能値を落とす演算を行う。すなわち相対的に数値を増加または減少させ、応答性能値を変化させる。
【0111】
スレーブ応答性能優先順調停部10では、スレーブの応答性能値が小さいマスタを最優先順位とする調停を行う。マスタ固定優先調停部11でのマスタの固定優先順位は、式(3)に示すように、マスタ1がもっとも優先順位が高く、マスタ4が最も優先順位が低い設定とする。
【0112】
マスタ1>マスタ2>マスタ3>マスタ4・・・・(3)
図9および図10におけるREQ1とは、マスタ1からのバス使用要求信号であり、REQ2とはマスタ2からのバス使用要求信号であり、REQ3とはマスタ3からのバス使用要求信号であり、REQ4とはマスタ4からのバス使用要求信号である。
【0113】
ACK1とはマスタ1へのバス使用許可信号であり、ACK2とはマスタ2へのバス使用許可信号であり、ACK3とはマスタ3へのバス使用許可信号であり、ACK4とはマスタ4へのバス使用許可信号である。
【0114】
いずれも、レベル“1”がアクティブレベルとする。図9、図10において、REQ1、REQ2、REQ3、REQ4信号の下方に、マスタ21〜24がアクセスするスレーブ25〜28を示す(スレーブ通知信号SLVでもある)。
【0115】
待機時間は、マスタからバス使用要求信号REQを受信して調停しバス使用許可信号ACKを出力するまでのクロック数であり、残り時間は、マスタがバス使用許可信号ACKを取得した時点における、バスタイムアウトまでの残りクロック数である。
【0116】
図11は、タイミングT0からT9までの期間で、バス使用要求信号REQを出力しているマスタ、それぞれのマスタのアクセスするスレーブ、アクセスするスレーブの応答時間、マスタのバスタイムまでの残り時間、演算後のスレーブ応答性能値、調停結果に基づきバス使用を許可するマスタの一覧表である。図11を併せて参照しながら説明する。
【0117】
T0において、バス使用要求信号REQ4を発信しているマスタがマスタ4だけなので、マスタ4にバス使用許可信号ACK4を送信する。
【0118】
T1において、マスタ1、マスタ2、マスタ3からバス使用要求信号REQを受信する。マスタ1はスレーブ3にアクセスし、マスタ2はスレーブ2にアクセスし、マスタ3はスレーブ1にアクセスする。それぞれのマスタがアクセスするスレーブの応答時間は、表2に示すように、スレーブ3は3クロック、スレーブ2は8クロック、スレーブ1は12クロックである。
【0119】
【表2】
Figure 2004078508
【0120】
タイミングT1で各マスタがバス使用要求信号REQを発信してからの待機時間は、マスタ1で11クロック、マスタ2で6クロック、マスタ3で0クロックである。
【0121】
表1によれば、バスタイムアウト時間はマスタ1が50クロック、マスタ2が60クロック、マスタ3が30クロック、マスタ4が40クロックであるから、式(1)で示したとおりバスタイムアウトまでの残り時間は、〔バスタイムアウト時間〕−〔マスタの待機時間〕であり、マスタ1が(50−11)=39クロック、マスタ2が(60−6)=54クロック、マスタ3が(30−0)=30クロックとなる。
【0122】
演算後のスレーブ応答性能値は、表2に示したスレーブの応答時間を基に、式(2)で示すとおり、〔スレーブの応答時間〕+〔マスタのタイムアウト残り時間〕であり、マスタ1ではスレーブ3にアクセスするから(3+39)=42、マスタ2ではスレーブ2にアクセスするから(8+54)=62、マスタ3ではスレーブ1にアクセスするから(12+30)=42となる。
【0123】
最優先順位のマスタは、演算後のスレーブ応答性能値が42であるマスタ1およびマスタ3の2つとなる。
【0124】
ここで、スレーブ応答性能値が最小値のマスタが複数存在するため(マスタ1とマスタ3)、マスタ固定優先順で調停を行い、式(3)で示すとおり、マスタ1の優先度を高く設定しているため、マスタ1にバス使用許可信号ACK1を送信する。
【0125】
T2において、マスタ2、マスタ3、マスタ4からバス使用要求信号REQを受信する。マスタ2はスレーブ2にアクセス、マスタ3はスレーブ1にアクセス、マスタ4はスレーブ2にアクセスする。
【0126】
それぞれのマスタがアクセスするスレーブの応答時間は、表2に示すように、スレーブ2は8クロック、スレーブ1は12クロックである。
【0127】
タイミングT2で各マスタがバス使用要求信号REQを発信してからの待機時間は、マスタ2で9クロック、マスタ3で3クロック、マスタ4で2クロックであり、式(1)で示したとおりバスタイムアウトまでの残り時間はマスタ2が(60−9)=51クロック、マスタ3が(30−3)=27クロック、マスタ4が(40−2)=38クロックとなる。
【0128】
演算後のスレーブ応答性能値は式(2)で示すとおり、マスタ2が(8+51)=59、マスタ3が(12+27)=39、マスタ4が(8+38)=46となる。最も高優先順位のマスタは、演算後のスレーブ応答性能値が39であるマスタ3となるため、マスタ3にバス使用許可信号ACK3を送信する。他のタイミングにおいても上記説明に準じた動作をするので、ここでの説明は省略する。
【0129】
上述した第1の実施の形態における効果を説明する。応答性能値が小さい(優れている)スレーブへアクセスするマスタを高優先順位とする調停ができることにより、バス占有時間の短いマスタが高優先順位となり、優先的にバスを使用することができる。したがって、低優先順位となるマスタの待機時間を短くすることができ、マスタのバスタイムアウトの発生を抑制することができる。
【0130】
また、バスタイムアウトまでの残り時間に応じて、そのマスタのアクセスするスレーブの応答性能値を演算して、一時的でかつ相対的にその値を増減させ、バスタイムアウトまでの残り時間が短いマスタを一時的でかつ相対的に優先度が向上する調停を行うことが出来る。したがって、バスタイムアウト時間の短いマスタや、待機時間を経てバスタイムアウトまでの残り時間が短くなったマスタを、調停時に一時的でかつ相対的に優先度を上げることができ、マスタのバスタイムアウトの発生を抑制することができる。
【0131】
以下に実際の効果を説明する。例えば図8に示すように4つのマスタ21〜24と4つのスレーブ25〜28とを接続した場合を想定し、効果比較するための、従来例のバス調停回路101での調停のタイミングチャートを示した図12と、本発明のタイミングチャートを示した図13と表1と表2とを参照すると、REQ1とはマスタ1からのバス使用要求信号であり、REQ2とはマスタ2からのバス使用要求信号であり、REQ3とはマスタ3からのバス使用要求信号であり、REQ4とはマスタ4からのバス使用要求信号である。
【0132】
ACK1とはマスタ1へのバス使用許可信号であり、ACK2とはマスタ2へのバス使用許可信号であり、ACK3とはマスタ3へのバス使用許可信号であり、ACK4とはマスタ4へのバス使用許可信号である。
【0133】
いずれも、レベル“1”がアクティブレベルとする。REQ1、REQ2、REQ3、REQ4とACK1、ACK2,ACK3,ACK4との関係は、REQの下方にアクセス対象のACK1〜4を示してある。また、このACK1〜4はマスタがアクセスするスレーブを示すスレーブ通知信号SLV1〜4でもある。
【0134】
待機時間は、マスタからバス使用要求信号REQを受信してバス使用許可信号ACKを取得するまでのクロック数であり、残り時間は、マスタがバス使用許可信号ACKを取得した時点のバスタイムアウトまでの残りクロック数である。
【0135】
また、図12および図13では、いずれのマスタからもバス使用要求信号REQを受信していない初期状態のとき、マスタ1からのバス使用要求信号REQ1を受信して、その1クロック後にマスタ4のバス使用要求信号REQ4を受信する。
【0136】
さらに、1クロック後にマスタ2とマスタ3のバス使用要求信号REQ2,REQ3を受信する。マスタ1は応答時間12クロックのスレーブ1へアクセスし、マスタ2も応答時間12クロックのスレーブ1へアクセスし、マスタ3は応答時間3クロックのスレーブ3へアクセスし、マスタ4は応答時間8クロックのスレーブ2へアクセスする。
【0137】
バス調停回路で、マスタを固定優先順で調停する場合の優先順位を式(3)のように設定する。
【0138】
前述した従来のバス調停回路101では、バス使用要求信号REQの先着順とマスタの固定優先順で調停を行っていた。
【0139】
すなわち、タイミングT10において、記憶部104には記憶しているマスタがない、つまり初期状態で、マスタ1からのみバス使用要求信号REQ1を受信する。
【0140】
マスタ1のマスタ情報を格納レジスタ105で一旦格納し、最上位の格納レジスタ108までマスタ1のマスタ情報をシフトする。
【0141】
格納レジスタ108でマスタ1のマスタ情報を格納しているのでバス使用許可信号送信部110でマスタ1へバス使用許可信号ACK1を送信する。
【0142】
タイミングT11において、T10の1クロック後、格納レジスタ108にマスタ1のマスタ情報を格納し、マスタ1の転送が終了していない状態で、マスタ4のバス使用要求信号REQ4を新たに受信する。
【0143】
マスタ4のマスタ情報を格納レジスタ105で一旦格納し、格納レジスタ107までシフトする。
【0144】
タイミングT12において、T11の1クロック後、格納レジスタ108でマスタ1のマスタ情報を、格納レジスタ107でマスタ4のマスタ情報を格納し、マスタ1の転送が終了していない状態で、マスタ2とマスタ3のバス使用要求信号REQ2,REQ4を新たに受信する。
【0145】
同時に複数のマスタのバス使用要求信号REQ2,REQ4を受信したため、マスタ固定優先調停部103で設定したマスタの優先度を、式(3)に基づき、まず、マスタ2のマスタ情報を格納レジスタ105で一旦格納し、格納レジスタ106までシフトし、その後、マスタ3のマスタ情報を格納レジスタ105で格納する。
【0146】
タイミングT13において、マスタ1の転送が終了したので、格納レジスタ108のマスタ1のマスタ情報を消去し、格納レジスタ107のマスタ4のマスタ情報を格納レジスタ108へ、格納レジスタ106のマスタ2のマスタ情報を格納レジスタ107へ、格納レジスタ105のマスタ3のマスタ情報を格納レジスタ106へシフトする。
【0147】
格納レジスタ108でマスタ4のマスタ情報を格納しているので、バス使用許可信号送信部110でマスタ4へバス使用許可信号を送信する。
【0148】
タイミングT14において、マスタ4の転送が終了したので、格納レジスタ108のマスタ4のマスタ情報を消去し、格納レジスタ107のマスタ2のマスタ情報を格納レジスタ108へ、格納レジスタ106のマスタ3のマスタ情報を格納レジスタ107へ、それぞれシフトする。格納レジスタ108でマスタ2のマスタ情報を格納しているのでバス使用許可信号送信部110でマスタ2へバス使用許可信号ACK2を送信する。
【0149】
タイミングT15において、マスタ2の転送が終了したので、格納レジスタ108のマスタ2のマスタ情報を消去し、格納レジスタ107のマスタ3のマスタ情報を格納レジスタ108へシフトする。
【0150】
しかし、マスタ3の待機時間がバスタイムアウト時間に達しているので、マスタ3にバスタイムアウトが発生する。以上の動作の結果、以下のようになる。
【0151】
バス使用許可信号の遷移:マスタ1→マスタ4→マスタ2→マスタ3
バスタイムアウトまでの残り時間の平均時間:30
バスタイムアウトまでの残り時間の最小時間:0(マスタ3)⇒ここでバスタイムアウト発生
次に、本発明のバス調停回路1を適用した場合の効果を説明する。図1に示す本発明のバス調停回路1では、マスタ21〜24のアクセスするスレーブ25〜28の応答性能値とマスタのバスタイムアウト時間とを考慮して調停を行う。
【0152】
T20において、いずれのマスタにもバス使用許可信号ACKを送信していない初期状態で、マスタ1からのみバス使用要求信号REQ1を受信する。
【0153】
バス使用要求信号REQ1を発信しているマスタが1つ(マスタ1)であるので、そのマスタ(マスタ1)にバス使用許可信号ACK1を送信する。
【0154】
タイミングT21において、T20の1クロック後、既にマスタ1のバス使用要求信号REQ1を受信し、マスタ1にバス使用許可信号REQ1を送信している状態で、マスタ4のバス使用要求信号REQ4を新たに受信する。マスタ1がバスを占有しているため、マスタ4は待機状態となる。
【0155】
タイミングT22において、T21の1クロック後、既にマスタ1とマスタ4のバス使用要求信号REQ1,REQ4を受信し、マスタ1にバス使用許可信号ACK1を送信している状態で、マスタ2とマスタ3のバス使用要求信号REQ2,REQ3を新たに受信する。
【0156】
マスタ1がバスを占有しているため、マスタ2とマスタ3はマスタ4と共に待機状態となる。
【0157】
タイミングT23において、マスタ2、マスタ3、マスタ4からバス使用要求信号REQ2,REQ3,REQ4を受信している状態で、マスタ1の転送が終了する。
【0158】
マスタ2はスレーブ1にアクセス、マスタ3はスレーブ3にアクセス、マスタ4はスレーブ2にアクセスする。それぞれのマスタがアクセスするスレーブの応答時間は、表2に示すように、スレーブ1は12クロック、スレーブ3は3クロック、スレーブ2は8クロックである。
【0159】
T23のタイミングで各マスタのバス使用要求信号REQを受信してからの待機時間は、マスタ2で10クロック、マスタ3で10クロック、マスタ4で11クロックであり、式(1)で示したとおりバスタイムアウトまでの残り時間は、マスタ2が(60−10)=50クロック、マスタ3が(30−10)=20クロック、マスタ4が(40−11)=29クロックとなる。
【0160】
演算後のスレーブ応答性能値は式(2)で示すとおり、マスタ2で(12+56)=62、マスタ3で(3+20)=23、マスタ4で(8+29)=37となる。最優先のマスタは、演算後のスレーブ応答性能値が23であるマスタ3となるため、マスタ3にバス使用許可信号ACK3を送信する。
【0161】
タイミングT24において、マスタ2、マスタ4からバス使用要求信号REQ2,REQ3を受信している状態で、マスタ3の転送が終了する。マスタ2はスレーブ1にアクセス、マスタ4はスレーブ2にアクセスする。
【0162】
それぞれのマスタがアクセスするスレーブの応答時間は、表2に示すように、スレーブ1は12クロック、スレーブ2は8クロックである。
【0163】
T24のタイミングで各マスタのバス使用要求信号REQを受信してからの待機時間は、マスタ2で13クロック、マスタ4で14クロックであり、式(1)で示したとおりバスタイムアウトまでの残り時間はマスタ2が(60−13)=47クロック、マスタ4が(40−14)=26クロックとなる。
【0164】
演算後のスレーブ応答性能値は式(2)で示すとおり、マスタ2ではスレーブ1をアクセスしているので(47+12)=59、マスタ4ではスレーブ2をアクセスしているので(26+8)=34となる。最も高優先のマスタは、演算後のスレーブ応答性能値が34であるマスタ4となるため、マスタ4にバス使用許可信号ACK4を送信する。
【0165】
タイミングT25において、マスタ2からバス使用要求信号REQ2を受信している状態で、マスタ4の転送が終了する。バス使用要求信号REQ2を受信しているマスタがマスタ2のみであるので、マスタ2へバス使用許可信号ACK2を送信する。
【0166】
以上の動作の結果、以下のようになる。
【0167】
バス使用許可信号の遷移:マスタ1→マスタ3→マスタ4→マスタ2
バスタイムアウトまでの残り時間の平均時間:38
バスタイムアウトまでの残り時間の最小時間:20(マスタ3)
次に、第2の実施の形態を説明する。
【0168】
第2の実施の形態の構成を示した図14を参照すると、上述した第1の実施の形態との相違点は、マスタのバスタイムアウト時間を記憶するマスタ情報記憶部4の代わりに、マスタのバスタイムアウト時間に関する情報をバス調停回路の外部から受信するマスタ情報信号受信部13を設けたことである。それ以外の構成は第1の実施の形態と同様であるから、ここでの構成の説明は省略する。
【0169】
第1の実施の形態では、マスタ21〜マスタ24がバス使用要求信号REQ1〜REQ4を出力してからバスタイムアウトが発生するまでの時間を示すバスタイムアウト時間を予めマスタ情報記憶部4に記憶させていたので、それ以外の新たに追加するマスタには対応できなかった。
【0170】
また、ある目的を持って意識的にバスタイムアウト時間を変更してバスの優先順位を任意に変更することや、マスタの動作状態やアクセス領域により、バスタイムアウト時間が変動する場合に対応が出来なかった。
【0171】
したがって、マスタ情報信号受信部13を設けることにより、第1の実施の形態の効果に加え、マスタのバスタイムアウト時間をダイナミックに変化させる場合に対応できる効果も有する。
【0172】
次に、第3の実施の形態を説明する。
【0173】
第3の実施の形態の構成を示した図15を参照すると、前述した第1の実施の形態との相違点は、スレーブの応答時間を記憶するスレーブ情報記憶部7の代わりに、スレーブの応答時間をバス調停回路1の外部から受信するスレーブ情報信号受信部14を設けたことである。それ以外の構成は第1の実施の形態と同様であるから、ここでの構成の説明は省略する。
【0174】
第1の実施の形態ではスレーブの応答時間をスレーブ情報信号受信部14に記憶させていたので、それ以外の新たに追加するスレーブには対応できなかった。
【0175】
また、ある目的を持って意識的にスレーブの応答時間を変更してバスの優先順位を任意に変更することや、スレーブの動作状態やアクセス領域により、スレーブの応答時間が変動する場合に対応が出来なかった。
【0176】
したがって、スレーブ情報信号受信部14を設けることにより、第1の実施の形態の効果に加え、スレーブの応答時間がダイナミックに変化する場合に対応できる効果もある。
【0177】
次に、第4の実施の形態を説明する。
【0178】
第4の実施の形態の構成を示した図16を参照すると、第1の実施の形態との相違点は、マスタを固定優先順位で調停を行うマスタ固定優先調停部11の代わりに、マスタを回転優先順位(ラウンドロビン)で調停を行うマスタ回転優先調停部15を設けたことである。それ以外の構成は第1の実施の形態と同様であるから、ここでの構成の説明は省略する。
【0179】
前述したように回転優先順位(ラウンドロビン)は優先順位を巡回させて調整する方法であるが、本発明に適用する場合の一例として表3に示す。この表3ではマスタ回転優先調停部15において優先順位を変化させた例である。
【0180】
【表3】
Figure 2004078508
【0181】
すなわち、図7のステップS10において、第1の実施の形態では、アクセスするスレーブの応答性能値が最小値のマスタが複数存在する場合は、その複数のマスタの情報をまとめてマスタ固定優先調停部11へ出力されるのを受けて、マスタ固定優先調停部11では予め設定した固定優先順位に従いマスタの調停を行っていた。
【0182】
これに対しここでは、固定優先に代わりに回転優先順位に基づいて調停を行うので、例えば、前の調停でバス使用許可信号を送信したマスタがマスタ1であったとすると、次調停の優先順位はマスタ2、マスタ3、マスタ4、マスタ1となり、同様に前の調停がマスタ4であったとすると、次調停の優先順位はマスタ1、マスタ2、マスタ3、マスタ4のように優先順位が巡回する。
【0183】
上述したように、マスタ回転優先調停部15を設けることにより、第1の実施の形態の効果に加え、スレーブ応答性能優先順調停部10で最も高優先となるマスタが複数存在することが多くなる場合に、特定のマスタを優先することなく巡回して調停することができる。
【0184】
次に、第5の実施の形態を説明する。
【0185】
第5の実施の形態の構成を示した図17を参照すると、第1の実施の形態との相違点は、第1の実施の形態におけるバスタイムアウト残り時間演算部6とマスタ情報記憶部4を削除して、スレーブ応答性能演算部16で、マスタの待機時間からアクセスするスレーブの応答性能を演算させたことである。それ以外の構成要素は第1の実施の形態と同様であるから、ここでの構成の説明は省略する。
【0186】
また、上記構成要素の削除に伴い、図7のフローチャートでもステップS5を削除する。以下に、スレーブ応答性能演算部16での演算方法の例を説明する。
【0187】
アクセススレーブ応答性能値を求めるには、次の演算を行う。
【0188】
D=E−C・・・・・・・・・・・・・(4)
Dはスレーブ応答性能演算部16の出力するアクセススレーブ応答性能値である。Eはスレーブ応答性能演算部16の入力するスレーブ情報選択部8で選択したアクセススレーブの応答時間の設定値である。Cはスレーブ応答性能演算部16の入力するマスタの待機時間である。
【0189】
式(4)を実行することにより、例えば、バスタイムアウト時間がほぼ等しいマスタのバス使用が競合した場合、応答時間の短いスレーブは先にタイムアウトしてしまうことになる。
【0190】
そのため、それぞれのマスタがアクセスするスレーブに設定されている応答時間からその時点におけるそれぞれのマスタが待たされた待機時間を引き算すると、応答時間の短いスレーブはその応答性能値が小さくなるので、優先順位が上がり、タイムアウトを避けることが出来る。
【0191】
構成要素としては第1の実施の形態のバス調停回路1から演算部と記憶部を削除し、図7の動作フローからステップS5を削除できるので、バス調停回路1の構成を小さくすることができチップ面積の有効利用または縮小に貢献する効果もある。
【0192】
なお、スレーブ応答性能演算部16で式(4)の演算を行う場合、スレーブ応答性能演算部16は減算回路で構成できる。
【0193】
次に、第6の実施の形態を説明する。
【0194】
第6の実施の形態の構成を示した図18を参照すると、第1の実施の形態との相違点は、バス調停回路1の外部からマスタ転送回数信号が与えられるマスタ転送回数信号受信部17を追加し、その出力のマスタ転送回数信号をスレーブ応答性能演算部18に演算条件として与えることである。それ以外の構成要素は第1の実施の形態と同様であるから、ここでの構成の説明は省略する。
【0195】
すなわち、外部からマスタ転送回数信号が与えられることにより、スレーブ応答性能演算部18では以下の演算を行う。
【0196】
D=E×F+A・・・・・・・・・・・・・(5)
ここで、Dはスレーブ応答性能演算部18の出力するアクセススレーブ応答性能としての値である。Eはスレーブ応答性能演算部18の入力するアクセススレーブの応答時間の設定値である。Fはスレーブ応答性能演算部18の入力する受信したマスタの転送回数である。Aはスレーブ応答性能演算部18の入力するマスタのバスタイムアウト残り時間である。
【0197】
マスタ転送回数信号受信部17を設けることにより、例えば、あるマスタが連続で複数回の転送を行った場合、他のマスタは残り時間がなくなりタイムアウトする場合が考えられる。
【0198】
すなわち、マスタ1がアクセスするスレーブの応答性能値が小さくマスタの残り時間は長いものとする。このマスタ1が繰り返しバスを占有すると他のマスタはタイムアウトするので、上記の式(5)の演算を実行することにより、例えスレーブの応答性能値が小さくとも、その値が転送回数倍され、さらに残り時間が加算されるので、マスタ1の優先順位は下がり、他のマスタがタイムアウトされるのを防ぐことが出来る。
【0199】
スレーブ応答性能演算部18で式(5)の演算を行う場合、スレーブ応答性能演算部18は乗算回路と加算回路で構成できる。
【0200】
次に、第7の実施の形態を説明する。
【0201】
第7の実施の形態の構成を示した図19を参照すると、第1の実施の形態との相違点は、バス調停回路1の内部に、マスタとマスタがアクセスするスレーブの組み合わせにより決定する定数を予め記憶し、スレーブ通知信号受信部3の出力信号をもとに、定数を選択する組み合わせ定数選択部20を有することである。
それ以外の構成要素は第1の実施の形態と同様であるので、ここでの構成の説明は省略する。
【0202】
なお、組み合わせ定数選択部20で記憶する、マスタとスレーブの組み合わせで設定する定数Gの例を表4に示す。
【0203】
【表4】
Figure 2004078508
【0204】
表4を参照すると、例えばマスタ1ではスレーブ4との組み合わせの定数が5に設定され、マスタ2ではスレーブ1との組み合わせの定数が3に設定され、
マスタ3ではスレーブは全ての組み合わせの定数が0に設定され、マスタ4ではスレーブ4との組み合わせの定数が8に設定されている。
【0205】
上記定数に従いスレーブ応答性能演算部19での演算方法の例を以下に示す。
【0206】
D=E+A−G・・・・・・・・・・・・・(6)
ここで、Dは、スレーブ応答性能演算部19の出力する、アクセススレーブ応答性能の値である。Eは、スレーブ応答性能演算部19の入力する、アクセススレーブの応答時間の設定値である。Aはスレーブ応答性能演算部19の入力する、マスタのバスタイムアウト残り時間である。Gはスレーブ応答性能演算部19の入力する組み合わせ定数選択部20で、スレーブ通知信号受信部3の出力信号をもとに、マスタとスレーブの組み合わせで設定する定数である。
【0207】
従って、スレーブ応答性能演算部19では、組み合わせ定数選択部20で出力する定数も用いて演算を行う。上記式(6)に表(4)の定数を適用して演算すると、定数が大きいほどアクセススレーブ応答性能値が小さくなり、この例ではマスタ4とスレーブ4の組み合わせが最も優先順位が高く、次にマスタ1とスレーブ4、マスタ2とスレーブ1、マスタ3と全てのスレーブの順に優先順位を変化させることが出来る。
【0208】
すなわち、特定のマスタから特定のスレーブに対してアクセスする場合に優先度を一時的に向上することが解る。
【0209】
上述したように、本実施の形態では、特定のマスタが特定のスレーブにアクセスすることがシステム上で重要である場合に有効である。
【0210】
スレーブ応答性能演算部19で式(6)の演算を行う場合、スレーブ応答性能演算部19は加算回路と減算回路で構成できる。
【0211】
次に、第8の実施の形態を説明する。
【0212】
上述した本発明は、図7における通知信号受信ステップS1から許可信号送信ステップS12までのアルゴリズムを有するプログラムを備えるが、このプログラムをメモリに書き込み、かつそのプログラムをCPUに読み込み、そのプログラムでCPUを制御することによってバス調停を行うこともできる。
【0213】
【発明の効果】
上述したように、本発明のバス調停回路およびバス調停方法およびそのプログラムは、マスタに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象のスレーブの応答性能値を一時的でかつ他のマスタとの間で相対的に再設定する演算を行うことにより、調停時に残り時間が短くなってきたマスタの優先度を引き上げて、マスタのバスタイムアウト発生を抑制するバス使用調停手段を有するので、
応答性能値が小さいスレーブへアクセスするマスタを高優先とする調停ができるので、バス占有時間の短いマスタが優先的にバスを使用することができ、かつ低優先となるマスタの待機時間を短くすることができ、従って、マスタのバスタイムアウトの発生を抑制する効果が得られる。
【0214】
また、バスタイムアウトまでの残り時間に応じて、そのマスタのアクセスするスレーブの応答性能値を演算して、一時的でかつ相対的にその値を増加または減少させることにより、バスタイムアウトまでの残り時間が短いマスタを一時的でかつ相対的に優先度を向上させる調停を行い、バスタイムアウト時間の短いマスタや、待機時間を経てバスタイムアウトまでの残り時間が短くなったマスタを、調停時に一時的でかつ相対的に優先度を上げることができ、マスタのバスタイムアウトの発生を抑制する効果が得られる。
【図面の簡単な説明】
【図1】本発明のバス調整回路を含むシステムの構成図である。
【図2】第1の実施の形態におけるバス調停回路の構成図である。
【図3】スレーブ応答性能優先順調停部10の構成図である。
【図4】比較部A41の構成図である。
【図5】比較部B43の構成図である。
【図6】マスタ固定優先調停部11の構成図である。
【図7】バス調停方法のフローチャートである。
【図8】マスタ21〜24のバスタイムアウト時間およびスレーブ25〜28の応答時間例を示す図である。
【図9】第1の実施の形態の動作説明用タイミングチャートである。
【図10】図9の後半のタイミングチャートである。
【図11】本発明における調整を行うタイミングとバス調停結果に基づき使用を許可するマスタの一覧表を示す図である。
【図12】効果比較するための、従来例のバス調停回路101での調停のタイミングチャートである。
【図13】効果比較するための、本発明のバス調停回路1での調停のタイミングチャートである。
【図14】第2の実施の形態の構成図である。
【図15】第3の実施の形態の構成図である。
【図16】第4の実施の形態の構成図である。
【図17】第5の実施の形態の構成図である。
【図18】第6の実施の形態の構成図である。
【図19】第7の実施の形態の構成図である。
【図20】従来のバス調停回路の構成図である。
【図21】従来のバス調整回路を含むシステムの接続図である。
【符号の説明】
1,101  バス調停回路
2,102  バス使用要求信号受信部
3  スレーブ通知信号受信部
4  マスタ情報記憶部
5  マスタ待機時間監視部
6  バスタイムアウト残り時間演算部
7  スレーブ情報記憶部
8  スレーブ情報選択部
9,16,18,19  スレーブ応答性能演算部
10  スレーブ応答性能優先順調停部
11,103  マスタ固定優先調停部
12,110  バス使用許可信号送信部
13  マスタ情報信号受信部
14  スレーブ情報信号受信部
15  マスタ回転優先調停部
17  マスタ転送回数信号受信部
20  組み合わせ定数選択部
21  マスタ1
22  マスタ2
23  マスタ3
24  マスタ4
25  スレーブ1
26  スレーブ2
27  スレーブ3
28  スレーブ4
31,・・・,34,71,72  OR回路
41,42  比較部A
43  比較部B
51,・・・,54,95,96,97  AND回路
61,81  比較回路
62,82  一致判定回路
73,91,・・・,94  組み合わせ回路
104  記憶部
105,・・・,108  格納レジスタ
109  出力信号制御部
ACK1,ACK2,ACK3,ACK4  バス使用許可信号
REQ,REQ2,REQ3,REQ4  バス使用要求信号
SLV1,SLV2,SLV3,SLV4  スレーブ通知信号

Claims (34)

  1. 複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間短縮機能を有することを特徴とするバス調停回路。
  2. アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が他のマスタデバイスよりも短いマスタデバイスのバス使用優先度を一時的に高くする調停を行って、バスタイムアウトの発生を抑制するバス使用優先度調停手段を有することを特徴とするバス調停回路。
  3. マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定するバス使用調停手段を有することを特徴とするバス調停回路。
  4. マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短くなってきたマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制するバス使用調停手段を有することを特徴とするバス調停回路。
  5. 複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスと前記複数のマスタデバイスが前記システムバスを使用する際の優先順位を調停するバス調停手段とを有し、
    前記バス調停手段は、前記マスタデバイスがバス使用要求信号発行してからバス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段と、前記待機時間を基にバスタイムアウトするまでの残り時間を演算する残り時間算出手段と、その残り時間に応じてスレーブ応答性能値を演算により再設定する応答性能再設定手段と、再設定したスレーブ応答性能値の中から最小値が算出されたスレーブデバイスをアクセスしているマスタデバイスの情報を出力するスレーブ応答性能優先順調停手段と、前記応答性能値が最小値を示すマスタデバイスの情報が1つの場合はそのまま出力し複数存在する場合には、予め定めたマスタデバイスの固定優先順位で調停を行い、最優先のマスタデバイスを1つ決定するマスタ固定優先順調停手段と、決定された前記1つのマスタデバイスにバス使用許可信号を出力するとともに、前記最優先のマスタデバイスの情報を前記マスタ待機時間監視手段へ通知するバス使用許可信号出力手段とを備えることを特徴とするバス調停回路。
  6. 前記残り時間算出手段は、各マスタデバイスがバス使用要求信号で前記システムバスの使用を要求してからバスタイムアウトが発生するまでのバスタイムアウト時間を記憶するマスタ情報記憶手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記バスタイムアウト時間および前記マスタデバイスの前記待機時間を基に、バス使用要求をしたマスタデバイスがバスタイムアウトするまでの残り時間を演算するバスタイムアウト残り時間演算手段とを備える請求項5記載のバス調停回路。
  7. 前記バスタイムアウト残り時間演算手段は、前記マスタデバイスのバスアクセスタイムから前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有する請求項6記載のバス調停回路。
  8. 前記応答性能再設定手段は、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、マスタがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備える請求項5記載のバス調停回路。
  9. 前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値と前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有する請求項8記載のバス調停回路。
  10. 前記マスタ情報記憶手段に代えて、マスタデバイスのバスタイムアウト時間に関する情報を外部から受信するマスタ情報受信手段を有する請求項6記載のバス調停回路。
  11. 前記スレーブ情報記憶手段に代えて、スレーブデバイスの応答時間を外部から受信するためのスレーブ情報受信手段を有する請求項7記載のバス調停回路。
  12. 前記マスタ固定優先順調停手段に代えて、マスタデバイスを回転優先順位(ラウンドロビン)により優先順位を巡回させて調停するマスタ回転優先順調停手段を有する請求項5記載のバス調停回路。
  13. 複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスと前記複数のマスタデバイスが前記システムバスを使用する際の優先順位を調停するバス調停手段とを有し、
    前記バス調停手段は、前記マスタデバイスがバス使用要求信号を発行してからバス使用許可信号を取得するまでの待機時間をカウントするマスタ待機時間監視手段と、前記待機時間を基にスレーブ応答性能値を演算により再設定する応答性能再設定手段と、再設定した前記スレーブ応答値の中から最小値が算出されたスレーブデバイスをアクセスしているマスタデバイスの情報を出力するスレーブ応答性能優先順調停手段と、前記応答性能値が最小値を示すマスタデバイスの情報が1つの場合はそのまま出力し複数存在する場合には、予め定めたマスタデバイスの固定優先順位で調停を行い、最優先のマスタデバイスを1つ決定するマスタ固定優先順調停手段と、決定された前記1つのマスタデバイスにバス使用許可信号を出力するとともに、前記最も高い優先順位のマスタデバイスの情報を前記マスタ待機時間監視手段へ通知するバス使用許可信号出力手段とを備えることを特徴とするバス調停回路。
  14. 前記スレーブ応答性能演算手段は、前記アクセスするスレーブデバイスの応答時間の設定値から前記マスタデバイスの待機時間を減じて前記スレーブデバイスの応答性能値を求める機能を有する請求項13記載のバス調停回路。
  15. 前記応答性能再設定手段は、連続で複数回の転送を行うためにバス占有時間の延長指定を外部から行うマスタ転送回数信号受信手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記バス占有時間の延長指定に応じて、前記マスタデバイスがアクセスするスレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備える請求項7バス調停回路。
  16. 前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と受信した前記マスタデバイスの転送回数との積と、前記マスタデバイスの前記バスタイムアウト残り時間との和から前記スレーブデバイスの応答性能値を求める機能を有する請求項16記載のバス調停回路。
  17. 前記応答性能再設定手段は、前記マスタデバイスとアクセスする前記スレーブデバイスとの組み合わせにより決定する定数を予め記憶し、前記スレーブ通知信号に応答して前記定数を選択する組み合わせ定数選択手段と、前記スレーブデバイスが前記マスタデバイスからのアクセスを受けて応答を完了するまでの時間を記憶するスレーブ情報記憶手段と、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を前記スレーブ情報記憶手段から読み出すスレーブ情報選択手段と、算出された前記残り時間および前記定数に応じて、前記マスタデバイスがアクセスする前記スレーブデバイスの応答時間を一時的に増加または減少させる演算を行い、その演算結果を前記マスタデバイスがアクセスする前記スレーブデバイスの応答性能値として出力するスレーブ応答性能演算手段とを備える請求項7記載のバス調停回路。
  18. 前記スレーブ応答性能演算手段は、アクセスする前記スレーブデバイスの応答時間の設定値と前記マスタデバイスのバスタイムアウト残り時間との和から、組み合わせ定数選択手段で設定した前記定数を減じて前記スレーブデバイスの応答性能値を求める機能を有する請求項17記載のバス調停回路。
  19. 複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記複数のマスタデバイスからのバス使用要求が競合する時に、応答時間の短いスレーブデバイスにアクセスするマスタデバイスの前記システムバス使用を最優先にして優先順位の低いマスタデバイスの待ち時間を短縮することを特徴とするバス調停方法。
  20. アクセスするスレーブデバイスの応答速度が遅いために優先順位が低く設定され待機時間が長くなる場合に、予め設定されたバスタイムアウト時間までの残り時間が、他のマスタデバイスよりも短いマスタデバイスのバス使用優先度を一時的に高くする調停を行ってバスタイムアウトの発生を抑制することを特徴とするバス調停方法。
  21. マスタデバイスから、バス使用要求信号とアクセスするスレーブデバイスを通知するスレーブ通知信号とを受信し、アクセス対象の前記スレーブデバイスの応答性能値に応じて、前記マスタデバイスの優先度を再設定することを特徴とするバス調停方法。
  22. マスタデバイスに予め設定されたバスタイムアウト時間までの残り時間に応じて、アクセス対象の前記スレーブデバイスの応答性能値を一時的でかつ他のマスタデバイスとの間で相対的に増減して再設定する演算を行うことにより、調停時に前記残り時間が短くなってきたマスタデバイスの優先度を引き上げて、前記マスタデバイスのバスタイムアウト発生を抑制することを特徴とするバス調停方法。
  23. 複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、1つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを有することを特徴とするバス調停方法。
  24. 前記調停ステップは、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、次に、前記マスタデバイスの待機時間およびマスタ情報が格納されたマスタ情報記憶手段のバスタイムアウト時間を参照して、前記マスタデバイスのバスタイムアウトまでの残り時間を算出する残り時間算出ステップと、前記残り時間に応じて、アクセスするスレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有する請求項23記載のバス調停方法。
  25. 前記マスタ決定ステップは、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスが複数存在する場合は、その複数のマスタデバイスをまとめるグループ化ステップと、予め設定した固定優先順位でマスタデバイスの調停を行うマスタデバイス調停ステップと、最高優先のマスタデバイスを1つ決めるマスタデバイス最終決定ステップとを有する請求項23記載のバス調停方法。
  26. 前記調停ステップは、複数のマスタデバイスからバス使用要求信号を受信している場合は、まず、スレーブ情報が格納されたスレーブ情報記憶手段の各スレーブ応答時間の中から、前記バス使用要求信号を受信しているマスタデバイスがアクセスする前記スレーブデバイスの応答時間を選択する選択ステップと、前記マスタデバイスが前記バス使用許可信号を受けるまでの待機時間に応じて、アクセスする前記スレーブデバイスの応答性能値が最小値を示すマスタデバイスを最優先させる演算を行う演算ステップとを有する請求項23記載のバス調停方法。
  27. 前記スレーブ応答時間は、システム上で特定のスレーブデバイスにアクセスすることが重要であるときは、予め実際の応答時間よりも小さい値を設定して優先順位を上げる請求項23記載のバス調停方法。
  28. 前記マスタ応答時間は、システム上で特定のマスタデバイスがアクセスすることが重要であるときは、予め実際の応答時間よりも大きい値を設定して優先順位を上げる請求項23記載のバス調停方法。
  29. 前記演算ステップは、前記マスタデバイスのバスタイムアウト時間から前記マスタデバイスの待機時間を減算して前記マスタデバイスのバスタイムアウト残り時間を求める請求項23記載のバス調停方法。
  30. 前記演算ステップは、前記スレーブデバイスの応答時間の設定値に前記マスタデバイスのバスタイムアウト残り時間を加算して前記スレーブデバイスの応答性能値を求める請求項23記載のバス調停方法。
  31. 前記演算ステップによる演算結果により、バスタイムアウトまでの残り時間の長いマスタデバイスほど、アクセスするスレーブデバイスの応答性能値を小さくさせる請求項30記載のバス調停方法。
  32. 前記残り時間は、前記マスタデバイスがバス使用許可信号を取得したときのバスタイムアウトまでの残りクロック数であり、前記待機時間は、前記マスタデバイスからバス使用要求信号を受信してバス使用許可信号を取得するまでのクロック数とする請求項30記載のバス調停方法。
  33. 前記通知信号受信ステップから前記許可信号送信ステップまでのアルゴリズムを有するプログラムを予め外部記憶手段に格納しておき、前記外部記憶手段から読み出した前記プログラムをCPUに読み込ませるとともに、前記プログラムで前記CPUを制御することによってバス調停を行う請求項23記載のバス調停方法。
  34. 複数のマスタデバイスと前記マスタデバイスの要求に応じてデータを転送する複数のスレーブデバイスとこれら複数のデバイス間で共有するシステムバスとを有し、前記スレーブデバイス側で前記マスタデバイス側のスレーブ通知信号を受信する通知信号受信ステップと、前記システムバスのバス使用要求信号を受信しているかを判定する受信判定ステップと、前記バス使用要求信号を受信している場合は、受信しているバス使用要求信号が複数あるかを判定し、1つのマスタデバイスから前記バス使用要求信号を受信している場合は、そのマスタデバイスにバス使用許可信号を送信し、複数のマスタデバイスから前記バス使用要求信号を受信している場合は、バスタイムアウトまでの残り時間に応じて最優先順位とすべき前記マスタデバイスとして応答性能値が最小値を示すものを選定する調停ステップと、アクセスする前記スレーブデバイスの応答性能値が最小値のマスタデバイスが複数存在するかを判定するマスタ存在数判定ステップと、複数存在する際には前記マスタデバイスの固定優先順位に基づき最優先順位のマスタデバイスを決めるマスタ決定ステップと、決定したマスタデバイスに前記バス使用許可信号を送信する許可信号送信ステップとを、CPUに実行させるプログラム。
JP2002237268A 2002-08-16 2002-08-16 バス調停回路、バス調停方法およびそのプログラム Withdrawn JP2004078508A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002237268A JP2004078508A (ja) 2002-08-16 2002-08-16 バス調停回路、バス調停方法およびそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002237268A JP2004078508A (ja) 2002-08-16 2002-08-16 バス調停回路、バス調停方法およびそのプログラム

Publications (1)

Publication Number Publication Date
JP2004078508A true JP2004078508A (ja) 2004-03-11

Family

ID=32021077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002237268A Withdrawn JP2004078508A (ja) 2002-08-16 2002-08-16 バス調停回路、バス調停方法およびそのプログラム

Country Status (1)

Country Link
JP (1) JP2004078508A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008052812A1 (en) * 2006-06-01 2008-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
JPWO2006080371A1 (ja) * 2005-01-31 2008-06-19 松下電器産業株式会社 アクセス調停装置、および調停可能条件検証装置
KR100870691B1 (ko) 2006-08-18 2008-11-27 후지쯔 가부시끼가이샤 조정 회로, 크로스바, 요청 선택 방법 및 정보 처리 장치
JP2008299654A (ja) * 2007-05-31 2008-12-11 Toshiba Corp 情報処理装置及びアクセス制御方法
JP2012168808A (ja) * 2011-02-15 2012-09-06 Fujitsu Semiconductor Ltd データ転送システム,データ転送スケジューリングプログラム
CN110765053A (zh) * 2019-10-23 2020-02-07 山东华芯半导体有限公司 一种n-m axi总线控制器及其可配置仲裁机制实现方法
CN114090493A (zh) * 2021-11-29 2022-02-25 深圳市科中云技术有限公司 基于rs485总线的数据传输控制方法以及相关装置
CN114503089A (zh) * 2019-12-05 2022-05-13 奥林巴斯株式会社 数据传送装置和数据传送方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2006080371A1 (ja) * 2005-01-31 2008-06-19 松下電器産業株式会社 アクセス調停装置、および調停可能条件検証装置
US7739437B2 (en) 2005-01-31 2010-06-15 Panasonic Corporation Access arbiter and arbitrable condition verification device
JP4625836B2 (ja) * 2005-01-31 2011-02-02 パナソニック株式会社 アクセス調停装置
WO2008052812A1 (en) * 2006-06-01 2008-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
US8468283B2 (en) 2006-06-01 2013-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
KR100870691B1 (ko) 2006-08-18 2008-11-27 후지쯔 가부시끼가이샤 조정 회로, 크로스바, 요청 선택 방법 및 정보 처리 장치
JP2008299654A (ja) * 2007-05-31 2008-12-11 Toshiba Corp 情報処理装置及びアクセス制御方法
JP2012168808A (ja) * 2011-02-15 2012-09-06 Fujitsu Semiconductor Ltd データ転送システム,データ転送スケジューリングプログラム
CN110765053A (zh) * 2019-10-23 2020-02-07 山东华芯半导体有限公司 一种n-m axi总线控制器及其可配置仲裁机制实现方法
CN110765053B (zh) * 2019-10-23 2023-03-10 山东华芯半导体有限公司 一种n-m axi总线控制器及其可配置仲裁机制实现方法
CN114503089A (zh) * 2019-12-05 2022-05-13 奥林巴斯株式会社 数据传送装置和数据传送方法
CN114090493A (zh) * 2021-11-29 2022-02-25 深圳市科中云技术有限公司 基于rs485总线的数据传输控制方法以及相关装置

Similar Documents

Publication Publication Date Title
JP4457168B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
US7624221B1 (en) Control device for data stream optimizations in a link interface
US11055243B1 (en) Hierarchical bandwidth allocation bus arbiter
JP2019113917A (ja) データ処理装置、及びデータ処理装置の制御方法
JP5662585B2 (ja) ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション
JP2004078508A (ja) バス調停回路、バス調停方法およびそのプログラム
JP4308578B2 (ja) 集積回路装置のバスアービター
JP4915172B2 (ja) 調停回路
US7099968B2 (en) System and method for generating bus requests in advance based on speculation states
JP5677007B2 (ja) バス調停装置、バス調停方法
JP3766377B2 (ja) バス制御装置及び情報処理システム
JP4344163B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
US7181558B2 (en) Avoidance of extended bus occupancy through simple control operation
JP3985085B2 (ja) Dma制御装置
JP2000132505A (ja) バスアクセス方法および装置とその利用装置およびシステム
JP2007026022A (ja) バス調停装置及びバス調停方法
JP2002288120A (ja) 調停装置およびバスシステム
US11842071B2 (en) Data transfer device and data transfer method
JP7226084B2 (ja) 情報処理装置
JP2000276437A (ja) Dma制御装置
JP2004062333A (ja) 画像処理装置
JP4898527B2 (ja) リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法
JPH10334042A (ja) バス調停制御装置及びバス調停制御方法並びにバス調停制御プログラムを記録した記録媒体
JP2002091903A (ja) バスシステム
JP2004199374A (ja) マルチプロセッサシステム及びバス調停方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20051101