(57)【要約】      （修正有）【課題】  バス調停時間の短縮によってバス使用効率を向上させることが可能なバス調停回路を提供する。【解決手段】  調停回路２はバスマスタ３，４，５から供給されるバス要求信号のアサート状態と、共有バス８の一信号である転送状態信号とを監視し、アサート状況に応じて共有バス８を使用するバスマスタの調停を行う。その調停方法はラウンドロビンにより調停を行った結果、バス許可信号、バスパーキングマスタの許可信号のいずれか一つのみをアサートし、バスマスタ３，４，５のうちの一デバイスに対してのみバス使用権を許可する。調停回路２は共有バス８がアイドル状態であることを認識すると、パーキングマスタ設定回路１から入力されるパーキングマスタ選択信号によってバス許可信号のいずれか一つのみをアサートし、バスマスタ３，４，５のうちの一デバイスに対してのみバス使用権を許可する。【選択図】      図１
2005316620.tif 000002
【特許請求の範囲】
【請求項１】
バス使用権を要求する複数のバスマスタが共通のバスに接続された構成において前記バス使用権を調停するバス調停システムであって、前記バスマスタの過去の調停状態遷移を監視する手段と、その監視結果を基に次のバスマスタを予測してバス使用権を与える手段とを有することを特徴とするバス調停システム。
【請求項２】
前記過去の調停状態遷移を監視する手段は、各バスマスタのバス許可信号の過去所定数分を１系列のコードとしてシーケンスコードの生成を行い、そのシーケンスコードを複数個保持することを特徴とする請求項１記載のバス調停システム。
【請求項３】
前記次のバスマスタを予測してバス使用権を与える手段は、前記バスマスタの現在の状態と前記保持したコードとによる相関値を算出し、複数個の算出された相関値を比較することで転送シーケンスを検出することを特徴とする請求項２記載のバス調停システム。
【請求項４】
前記過去の調停状態遷移を監視する手段は、前記バスマスタのバス許可信号を検出する許可信号検出回路と、各バスマスタの調停状態を記憶するシフトレジスタと、調停によるシーケンスコードを生成する調停シーケンス生成回路と、シーケンスコードを格納するメモリとを含み、
前記次のバスマスタを予測してバス使用権を与える手段は、現在のシーケンスコードと過去のシーケンスコードとの相関演算をする相関演算回路と、算出した相関値を比較してパーキングマスタを選択する選択回路とを含むことを特徴とする請求項２または請求項３記載のバス調停システム。
【請求項５】
外部指示に応じて前記シーケンスコードのコード長を変更する手段を含むことを特徴とする請求項２から請求項４のいずれか記載のバス調停システム。
【請求項６】
前記選択回路で選択されたバスパーキングマスタの誤りを検出する手段を含み、
前記コード長を変更する手段は、その検出結果に応じて前記コード長を変更することを特徴とする請求項５記載のバス調停システム。
【請求項７】
バス使用権を要求する複数のバスマスタが共通のバスに接続された構成において前記バス使用権を調停するバス調停回路あって、前記バスマスタの過去の調停状態遷移を監視する手段と、その監視結果を基に次のバスマスタを予測してバス使用権を与える手段とを有することを特徴とするバス調停回路。
【請求項８】
前記過去の調停状態遷移を監視する手段は、各バスマスタのバス許可信号の過去所定数分を１系列のコードとしてシーケンスコードの生成を行い、そのシーケンスコードを複数個保持することを特徴とする請求項７記載のバス調停回路。
【請求項９】
前記次のバスマスタを予測してバス使用権を与える手段は、前記バスマスタの現在の状態と前記保持したコードとによる相関値を算出し、複数個の算出された相関値を比較することで転送シーケンスを検出することを特徴とする請求項８記載のバス調停回路。
【請求項１０】
前記過去の調停状態遷移を監視する手段は、前記バスマスタのバス許可信号を検出する許可信号検出回路と、各バスマスタの調停状態を記憶するシフトレジスタと、調停によるシーケンスコードを生成する調停シーケンス生成回路と、シーケンスコードを格納するメモリとを含み、
前記次のバスマスタを予測してバス使用権を与える手段は、現在のシーケンスコードと過去のシーケンスコードとの相関演算をする相関演算回路と、算出した相関値を比較してパーキングマスタを選択する選択回路とを含むことを特徴とする請求項８または請求項９記載のバス調停回路。
【請求項１１】
外部指示に応じて前記シーケンスコードのコード長を変更する手段を含むことを特徴とする請求項８から請求項１０のいずれか記載のバス調停回路。
【請求項１２】
前記選択回路で選択されたバスパーキングマスタの誤りを検出する手段を含み、
前記コード長を変更する手段は、その検出結果に応じて前記コード長を変更することを特徴とする請求項１１記載のバス調停回路。
【請求項１３】
バス使用権を要求する複数のバスマスタが共通のバスに接続された構成において前記バス使用権を調停するバス調停回路におけるバス調停方法であって、前記バス調停回路側に、前記バスマスタの過去の調停状態遷移を監視する処理と、その監視結果を基に次のバスマスタを予測してバス使用権を与える処理とを有することを特徴とするバス調停方法。
【請求項１４】
前記過去の調停状態遷移を監視する処理は、各バスマスタのバス許可信号の過去所定数分を１系列のコードとしてシーケンスコードの生成を行い、そのシーケンスコードを複数個保持することを特徴とする請求項１３記載のバス調停方法。
【請求項１５】
前記次のバスマスタを予測してバス使用権を与える処理は、前記バスマスタの現在の状態と前記保持したコードとによる相関値を算出し、複数個の算出された相関値を比較することで転送シーケンスを検出することを特徴とする請求項１４記載のバス調停方法。
【請求項１６】
前記バス調停回路側に、外部指示に応じて前記シーケンスコードのコード長を変更する処理を含むことを特徴とする請求項１４から請求項１５のいずれか記載のバス調停方法。
【請求項１７】
前記バス調停回路側に、前記選択回路で選択されたバスパーキングマスタの誤りを検出する処理を含み、
前記コード長を変更する処理は、その検出結果に応じて前記コード長を変更することを特徴とする請求項１６記載のバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス調停システム、バス調停回路及びそれらに用いるバス調停方法に関し、特にバス使用権を要求することが可能な複数のデバイスが共通のバスに接続された構成におけるバス調停方法に関する。
【背景技術】
【０００２】
バス使用権を要求することが可能な複数のデバイスが共通のバスに接続された構成においては、複数のデバイスに対するバス調停によって特定のデバイスをバスマスタとして選択することでバス使用権を与えている。
【０００３】
バス使用権要求がないバスアイドル状態では、バスがドライブされていない状況を回避するために、一つのバスマスタに対して、バスを一定値に保持させるバスパーキングを行う。バスパーキングは複数のバスマスタのうちの一つのバスマスタが行う動作で、パーキングを行うバスマスタをバスパーキングマスタという。
【０００４】
バスパーキングマスタの選定方法にはマスタを固定に選択する方法、共通バスがアイドル状態になる直前のバスマスタを選択する方法、バスの使用頻度を累計して最も使用頻度の大きいバスマスタを選択する方法（例えば、特許文献１参照）がある。
【０００５】
【特許文献１】特開２０００−０３５９４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来のバス調停方法では、共通バスがアイドル状態にある時、バスがドライブされていない状況を回避するために、共通バスを一定値保持するパーキングマスタの選定方法が、上記のように提案されている。この従来のパーキングマスタの選定方法では、バスマスタが特定の状態に遷移するシーケンス化されたバス要求状況での調停動作として、誤ったバスマスタを選択する可能性が高く、バス使用率の最適化がされないという問題がある。
【０００７】
つまり、従来のバスパーキングマスタの選定方法では、バスマスタが特定の状態に遷移するシーケンス化されたバス要求状況での調停動作として、誤ったバスマスタを選択する可能性が高く、その結果、再度バス調停を行う必要が発生してバス使用効率が悪くなるという問題がある。
【０００８】
例えば、図５〜図７に示すようなシーケンスでデータ転送処理が行われており、Ｔ３でバスがアイドル状態になったと仮定する。従来のマスタ固定方法では、予めバスパーキングマスタを固定にしてしまうため、最適な固定方法を事前に決定することが困難である。
【０００９】
アイドル状態になる直前のバスマスタを選択する方法では、Ｔ３のタイミングでバスマスタ３を選択してしまい、その結果、次にバス使用権を要求するバスマスタ４から要求信号がきた場合に調停動作を行う必要があるため、バス使用効率が悪くなる。
【００１０】
また、バスの使用頻度を累計し、最も使用頻度の大きいバスマスタを選択する方法でも、バスマスタ３が使用頻度最大となるが、上記と同様に、バスマスタ４から要求信号がきた場合に調停動作を行う必要があるため、バス使用効率が悪くなる。
【００１１】
そこで、本発明の目的は上記の問題点を解消し、バス調停時間の短縮によってバス使用効率を向上させることができるバス調停システム、バス調停回路及びそれらに用いるバス調停方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明によるバス調停システムは、バス使用権を要求する複数のバスマスタが共通のバスに接続された構成において前記バス使用権を調停するバス調停システムであって、前記バスマスタの過去の調停状態遷移を監視する手段と、その監視結果を基に次のバスマスタを予測してバス使用権を与える手段とを備えている。
【００１３】
本発明によるバス調停回路は、バス使用権を要求する複数のバスマスタが共通のバスに接続された構成において前記バス使用権を調停するバス調停回路あって、前記バスマスタの過去の調停状態遷移を監視する手段と、その監視結果を基に次のバスマスタを予測してバス使用権を与える手段とを備えている。
【００１４】
本発明によるバス調停方法は、バス使用権を要求する複数のバスマスタが共通のバスに接続された構成において前記バス使用権を調停するバス調停回路におけるバス調停方法であって、前記バス調停回路側に、前記バスマスタの過去の調停状態遷移を監視する処理と、その監視結果を基に次のバスマスタを予測してバス使用権を与える処理とを備えている。
【００１５】
すなわち、本発明のバス調停システムは、バス使用権を要求する複数のバスマスタが共通のバスに接続された構成においてバスを調停する際、過去のバスマスタの調停状態遷移を監視し、次のバスマスタを予測してバス使用権を与えることで、バスの使用率を向上させている。
【００１６】
より具体的に説明すると、本発明のバス調停システムでは、パーキングマスタ設定回路が調停回路から入力される各バスマスタのバス許可信号（各々バス許可信号ＧＮＴＡ、バス許可信号ＧＮＴＢ、バス許可信号ＧＮＴＣ）の過去８調停分を１系列のコードとしてコード生成を行い、これを複数個保持する。
【００１７】
また、本発明のバス調停システムでは、現在の状態と保持したコードとによる相関値を算出し、複数個の算出された相関値を比較することで、転送シーケンスの検出を可能としている。
【００１８】
これによって、本発明のバス調停システムでは、バスマスタが特定の状態に遷移するシーケンス化されたバス要求状況での調停動作の精度を向上させることが可能となり、結果バス使用効率を向上させることが可能となる。
【００１９】
上記のパーキングマスタ設定回路においては、調停回路から供給されるバス許可信号を検出する許可信号検出回路と、各バスマスタの調停状態を記憶する８ビットシフトレジスタと、調停によるシーケンスコードを生成する調停シーケンス生成部と、シーケンスコードを格納するメモリと、現在と過去のシーケンスコードとの相関演算をする相関演算回路と、算出した相関値を比較してパーキングマスタを選択する選択回路とを有している。
【発明の効果】
【００２０】
本発明は、以下に述べるような構成及び動作とすることで、バス調停時間の短縮によってバス使用効率を向上させることができるという効果が得られる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるバス調停システムの構成を示すブロック図である。図１において、本発明の一実施例によるバス調停システムはパーキングマスタ設定回路１と、調停回路２と、バスマスタ３，４，５と、バススレーブ６と、クロック生成部７とから構成されている。
【００２２】
調停回路２はバスマスタ３，４，５から供給されるバス要求信号ＲＥＱＡ１０、バス要求信号ＲＥＱＢ１２、バス要求信号ＲＥＱＣ１４のアサート状態と、共有バス８の一信号である転送状態信号１９とを監視し、アサート状況に応じて共有バス８を使用するバスマスタの調停を行う。
【００２３】
その調停方法はラウンドロビンにより調停を行った結果、バス許可信号ＧＮＴＡ１１、バスバスマスタの許可信号ＧＮＴＢ１３、バス許可信号ＧＮＴＣ１５のいずれか一つのみをアサートし、バスマスタ３，４，５のうちの一デバイスに対してのみバス使用権を許可する。
【００２４】
また、調停回路２はどのバスマスタからもバス要求信号がアサートされず、転送状態信号１９もアサートされていない場合、共有バス８がアイドル状態であることを認識し、パーキングマスタ設定回路１から入力されるパーキングマスタ選択信号Ａ１６、パーキングマスタ選択信号Ｂ１７、パーキングマスタ選択信号Ｃ１８によってバス許可信号ＧＮＴＡ１１、バス許可信号ＧＮＴＢ１３、バス許可信号ＧＮＴＣ１５のうちのいずれか一つのみをアサートし、バスマスタ３，４，５のうちの一デバイスに対してのみバス使用権を許可する。
【００２５】
バスマスタ３，４，５は共有バス８に接続され、上記と同様に、共有バス８に接続されるバススレーブ６に対してデータ転送を行うことが可能なデバイスである。バスマスタ３，４，５はバススレーブ６に対してデータ転送を行う前に、共有バス８の使用権を得るためにバス要求信号（各々バス要求信号ＲＥＱＡ１０、バス要求信号ＲＥＱＢ１２、バス要求信号ＲＥＱＣ１４）をアサートして調停回路２へ供給する。
【００２６】
また、バスマスタ３，４，５は調停回路２から供給されるバス許可信号（各々バス許可信号ＧＮＴＡ１１、バス許可信号ＧＮＴＢ１３、バス許可信号ＧＮＴＣ１５）がアサートされた場合、バスの使用権を獲得したと判断して転送状態信号１９をアサートし、バススレーブ６に対してデータ転送を開始する。データ転送を開始後、該当バスマスタはバス要求信号（各々バス要求信号ＲＥＱＡ１０、バス要求信号ＲＥＱＢ１２、バス要求信号ＲＥＱＣ１４）をネゲートする。
【００２７】
さらに、バスマスタ３，４，５はバス要求信号（各々バス要求信号ＲＥＱＡ１０、バス要求信号ＲＥＱＢ１２、バス要求信号ＲＥＱＣ１４等をアサートする前に、既にバス許可信号（各々バス許可信号ＧＮＴＡ１１、バス許可信号ＧＮＴＢ１３、バス許可信号ＧＮＴＣ１５）が調停回路２によってアサートされている場合、バス要求信号（各々バス要求信号ＲＥＱＡ１０、バス要求信号ＲＥＱＢ１２、バス要求信号ＲＥＱＣ１４）をアサートするは必要なく、転送状態信号１９をアサートすることで、バススレーブ６に対してデータ転送を開始することが可能である。
【００２８】
バススレーブ６は共有バス８に接続され、バスマスタ３，４，５によって共有バス８を通してデータ転送が行われる。クロック生成部７はパーキングマスタ設定回路１と、調停回路２と、バスマスタ３，４，５と、バススレーブ６とにそれぞれクロック信号９を供給する。パーキングマスタ設定回路１と、調停回路２と、バスマスタ３，４，５と、バススレーブ６とはそれぞれ供給されたクロック信号９に同期して動作する。
【００２９】
パーキングマスタ設定回路１はバスマスタ３，４，５から入力されるバス要求信号ＲＥＱＡ１０，ＲＥＱＢ１２，ＲＥＱＣ１４と、調停回路２から入力されるバス許可信号ＧＮＴＡ１１，ＧＮＴＢ１３，ＧＮＴＣ１５と、転送状態信号１９とによって共有バス８の使用遷移を記憶し、調停シーケンスを算出することで、次にバス要求をアサートするバスマスタを予測し、パーキングマスタ選択信号Ａ１６，Ｂ１７，Ｃ１８のいずか一つをアサートし、調停回路２へと供給する。
【００３０】
図２は図１のパーキングマスタ設定回路１の構成を示すブロック図である。図２において、パーキングマスタ設定回路１は許可信号検出回路１０１と、論理和回路１０２，１０３と、８ビットシフトレジスタ１０４と、調停シーケンス生成部１０５と、メモリ１０６と、相関演算回路１０７と、選択回路１０８とから構成されている。
【００３１】
論理和回路１０２は各バスマスタ３，４，５から供給されるバス要求信号ＲＥＱＡ１０，ＲＥＱＢ１２，ＲＥＱＣ１４の論理和を演算して論理和要求信号Ｓ１を許可信号検出回路１０１へ供給する。バス要求信号ＲＥＱＡ１０，ＲＥＱＢ１２，ＲＥＱＣ１４は共有バス８がアイドル状態時にのみ全てＬｏｗとなる。よって、論理和要求信号Ｓ１としては、共有バス８がアイドル状態時にのみ、Ｌｏｗが許可信号検出回路１０１へ供給される。
【００３２】
許可信号検出回路１０１は調停回路２から供給されるバス許可信号（各々バス許可信号ＧＮＴＡ１１、バス許可信号ＧＮＴＢ１３、バス許可信号ＧＮＴＣ１５）の立ち上がりを検出し、クロック信号９で１クロック分のＨｉｇｈパルスとなるＧＮＴ検出信号Ｓ２を８ビットシフトレジスタ１０４と論理和回路１０３とに供給する。
【００３３】
また、論理和回路１０２から供給される論理和要求信号Ｓ１がＬｏｗ状態の場合、入力信号がバス許可信号（各々バス許可信号ＧＮＴＡ１１、バス許可信号ＧＮＴＢ１３、バス許可信号ＧＮＴＣ１５）から転送状態信号１９へと切替えられるので、許可信号検出回路１０１は転送状態信号１９の立ち上がりを検出した時に、クロック信号９で１クロック分のＨｉｇｈパルスとなるＧＮＴ検出信号Ｓ２を８ビットシフトレジスタ１０４と論理和回路１０３とに供給する。
【００３４】
論理和回路１０３は各許可信号検出回路１０１から供給されるＧＮＴ検出信号Ｓ２の論理和を演算し、その演算結果となる論理和ＧＮＴ検出信号Ｓ３を８ビットシフトレジスタ１０４と調停シーケンス生成部１０５とに供給する。
【００３５】
８ビットシフトレジスタ１０４は許可信号検出回路１０１から供給されるＧＮＴ検出信号Ｓ２を、論理和回路１０３から供給される論理和ＧＮＴ検出信号Ｓ３によってビットシフトしてレジスタに格納する。また、８ビットシフトレジスタ１０４はシフトレジスタの格納値をシーケンスコードＳ４として調停シーケンス生成部１０５に供給する。
【００３６】
調停シーケンス生成部１０５は各８ビットシフトレジスタ１０４から供給されるシーケンスコードＳ４を、論理和回路１０３から供給される論理和検出信号Ｓ３の立ち上がりを検出し、クロック信号９で１クロック分遅延させたタイミングでビットを取り込み、並び替えを行うことで、合成シーケンスコードＳ５を生成する。
【００３７】
ここで、調停シーケンス生成部１０５でのビット並び替え方法を図３に示す。図３に示すように、調停シーケンス生成部１０５は各８ビットシフトレジスタ１０４のシーケンスコードＳ４をＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から順に取り込み、８＊３＝２４ビットの合成シーケンスコードＳ５を生成する。
【００３８】
また、調停シーケンス生成部１０５はシーケンスコードＳ４の取り込み後、クロック信号９で１クロック分遅延させたタイミングでメモリ１０６へ書込み信号Ｓ６を出力し、合成シーケンスコードＳ５の書込み処理を行い、同時に相関演算回路１０７に合成シーケンスコードＳ５と演算開始信Ｓ７とを供給する。
【００３９】
メモリ１０６は調停シーケンス生成部１０５から書込まれる合成シーケンスコードＳ５を格納する。メモリ１０６の格納方法は調停シーケンス生成部１０５から供給される書込み信号Ｓ６がアサートされると、書込みアドレスを１インクリメントして合成シーケンスコードＳ５を格納する。
【００４０】
また、メモリ１０６は各相関演算回路１０７からの読出し信号Ｓ９によって指定されたアドレスの合成シーケンスコードＳ５を、相関演算用シーケンスコードＳ８として各相関演算器１０７に供給する。
【００４１】
相関演算回路１０７は調停シーケンス生成部１０５から供給される合成シーケンスコードＳ５を演算開始信号Ｓ７によって取り込む。複数ある相関演算回路は各々が固有のメモリアドレスを固定で保持しており、演算開始信号Ｓ７によってメモリ１０６に対して読出し信号Ｓ９をアサートし、固有のアドレスの相関演算用シーケンスコードＳ８を読取る。
【００４２】
相関演算用シーケンスコードＳ８の読取り後、相関演算回路１０７は調停シーケンス生成部１０５から供給される合成シーケンスコードＳ５と、メモリ１０６から供給される相関演算用シーケンスコードＳ８との相関演算を行う。
【００４３】
相関演算回路１０７の演算方法を図４に示す。調停シーケンス生成部１０５から供給される合成シーケンスコードＳ５は上位３ビットを削除し、２１ビットへの変換を行う。また、メモリ１０６から供給された相関演算用シーケンスコードＳ８は下位３ビットを期待値Ｓ１１として保持し、上位２１ビットを演算用に使用する。
【００４４】
相関演算回路１０７は上記のように互いに２１ビット化したシーケンスコードを対応するビットの排他的ＮＯＲをとり、その結果の２１ビットを加算し、相関値Ｓ１０を算出する。
【００４５】
相関演算回路１０７はその演算によって算出した相関値Ｓ１０を選択回路１０８に供給する。また、相関演算回路１０７は演算で使用しなかった相関演算用シーケンスコードＳ８の下位３ビットを期待値Ｓ１１として選択回路１０８に供給する。期待値Ｓ１１は、過去の状態遷移において合成シーケンスコードＳ５の状態遷移となった場合の次にバスパーキングマスタと成り得たバスを示す信号となっている。
【００４６】
選択回路１０８は相関演算回路１０７から供給された相関値Ｓ１０の比較を行い、最大となる相関値Ｓ１０を決定する。選択回路１０８は決定された相関値Ｓ１０を供給した相関演算回路１０７からの期待値Ｓ１１に基づき、調停回路２に対してパーキングマスタ選択信号（パーキングマスタ選択信号Ａ１６、パーキングマスタ選択信号Ｂ１７、パーキングマスタ選択信号Ｃ１８）をアサートして供給する。
【００４７】
また、選択回路１０８は比較した結果の最大期待値が同一の場合、それぞれの期待値を比較してもっとも多いパーキングマスタを選択する。また、選択回路１０８は同条件でそれぞれの期待値まで同一の場合、ラウンドロビンによって調停回路２に対してパーキングマスタ選択信号（パーキングマスタ選択信号Ａ１６、パーキングマスタ選択信号Ｂ１７、パーキングマスタ選択信号Ｃ１８）をアサートして供給する。
【００４８】
図５〜図７は本発明の一実施例によるデータ転送シーケンスを示すシーケンスチャートである。これら図１〜図７を参照して本発明の一実施例によるバス調停動作について説明する。
【００４９】
各バスマスタ３，４，５は図５〜図７に示すデータ転送シーケンスにてバススレーブ６へのデータ転送を行う。データ転送は６回のデータ転送［データ転送（１）〜（６）］を繰り返し行っているものとする。
【００５０】
今、タイミングＴ２において、通常発生するバス要求信号ＲＥＱＢ１２のアサートがタイミングＴ３まで遅延し、その結果、タイミングＴ３において共有バス８がアイドル状態となった場合のパーキングマスタ選択方法について説明する。説明のため主信号の状態を図８に示す。
【００５１】
タイミングＴ１の時点で、パーキングマスタ設定回路１内のバスマスタ３の８ビットシフトレジスタ１０４にはＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から“０１０１０１０１”、バスマスタ４の８ビットシフトレジスタ１０４にはＭＳＢから“１０００１０１０”、バスマスタ５の８ビットシフトレジスタ１０４にはＭＳＢから“００１０００００”の値がそれぞれ格納されている。
【００５２】
タイミングＴ１からバスマスタ４が転送状態信号１９のネゲート処理を行うと、調停回路２はバス要求信号ＲＥＱＡ１０のみアサートされているのを認識し、バスマスタ４に対してバス許可信号ＧＮＴＢ１３をネゲートすると同時に、バスマスタ３に対してバス許可信号ＧＮＴＡ１１をアサートする。
【００５３】
パーキングマスタ設定回路１内のバス許可信号ＧＮＴＡ１１に接続された許可信号検出回路１０１は信号の立ち上がりを検出し、ＧＮＴ検出信号Ｓ２を８ビットシフトレジスタ１０４と論理和回路１０３とに供給する。論理和回路１０３で論理和を演算した結果、論理和ＧＮＴ検出信号Ｓ３はバス許可信号ＧＮＴＡ１１のＧＮＴ検出信号Ｓ２と同様の波形を各８ビットシフトレジスタ１０４と調停シーケンス生成部１０５とに供給する。
【００５４】
バスマスタ３の８ビットシフトレジスタ１０４は、論理和ＧＮＴ検出信号Ｓ３によってＧＮＴ検出信号Ｓ２が“１”の状態を検出するので、８ビットシフトレジスタ１０４にはＭＳＢから“１０１０１０１０”の値が格納される。
【００５５】
バスマスタ４の８ビットシフトレジスタ１０４は、論理和ＧＮＴ検出信号Ｓ３によってＧＮＴ検出信号Ｓ２が“０”の状態を検出するので、８ビットシフトレジスタ１０４にはＭＳＢから“０１０００１０１”の値が格納される。
【００５６】
バスマスタ５の８ビットシフトレジスタ１０４は、論理和ＧＮＴ検出信号Ｓ３によってＧＮＴ検出信号Ｓ２が“０”の状態を検出するので、８ビットシフトレジスタ１０４にはＭＳＢから“０００１００００”の値が格納される。
【００５７】
調停シーケンス生成部１０５には論理和ＧＮＴ検出信号Ｓ３によって各８ビットシフトレジスタ１０４からのシーケンスコードＳ４を図３に示す方法で並び替えるため、生成される合成シーケンスコードＳ５は、図９に示すように、“０１０１０００１０１００００１１０００１０１００”となる。生成された合成シーケンスコードＳ５は書込み信号Ｓ６によってメモリ１０６に前回のアドレスから１インクリメントされたアドレスに格納される。
【００５８】
この時点で現在格納している合成シーケンスＳ５をアドレスｎ＋６に格納したとして、アドレスｎからｎ＋６までのメモリ状況を図１０に示す。また、調停シーケンス生成部１０５で生成される合成シーケンスコードＳ５は各相関演算回路１０７に供給され、相関演算回路１０７にて合成シーケンスコードＳ５と相関演算用シーケンスコードＳ８との相関値Ｓ１０を算出する。
【００５９】
例として、アドレスｎ＋５の演算に関して図１１に示す。図１１において、演算結果は全コード一致し、結果相関値Ｓ１０＝２１となる。また、この場合の期待値Ｓ１１は相関演算用シーケンスコードＳ８の下位３ビットを選択して“０１０”となる。
【００６０】
上記と同様に計算した結果を図１２に示す。図１２において、その計算結果はアドレスｎの場合に相関値Ｓ１０＝７、期待値Ｓ１１＝“１００”となり、アドレスｎ＋１の場合に相関値Ｓ１０＝１９、期待値Ｓ１１＝“０１０”となり、アドレスｎ＋２の場合に相関値Ｓ１０＝７、期待値Ｓ１１＝“１００”となり、アドレスｎ＋３の場合に相関値Ｓ１０＝１７、期待値Ｓ１１＝“００１”となり、アドレスｎ＋４の場合に相関値Ｓ１０＝７、期待値Ｓ１１＝“１００”となり、アドレスｎ＋５の場合に相関値Ｓ１０＝２１、期待値Ｓ１１＝“０１０”となり、アドレスｎ＋６の場合に相関値Ｓ１０＝７、期待値Ｓ１１＝“１００”となる。
【００６１】
各相関演算回路１０７は演算結果の相関値Ｓ１０並びに期待値Ｓ１１を選択回路１０８へ供給する。選択回路１０８では各相関演算回路１０７から供給された相関値Ｓ１０を比較し、アドレスｎ＋５の相関値が最大であることを検出し、その結果であるアドレスｎ＋５の期待値Ｓ１１＝“０１０”をデコーディングしてパーキングマスタ選択信号Ｂ１７をアサートして調停回路２へ供給する。
【００６２】
調停回路２ではタイミングＴ２においてバスマスタ４からのバス要求信号ＲＥＱＢ１２がアサートされず、転送状態信号１９がネゲートされて転送が終了した時点で、どのバスマスタからもバス許可信号がアサートされていないため、共有バス８がアイドル状態であることを検出し、パーキングマスタ設定回路１から供給されるパーキングマスタ選択信号Ｂ１７のアサートによって、バス許可信号ＧＮＴＡ１１のネゲートと同時に、バス許可信号ＧＮＴＢ１３をアサートしてバスマスタ４をパーキングマスタとする。
【００６３】
タイミングＴ３からの転送シーケンスによって、バスマスタ４が次に転送を開始する場合、バス許可信号ＧＮＴＢ１３がアサートされているため、バス要求信号ＲＥＱ１２をアサートする必要なく、転送開始処理が行われる。その結果、バス調停回路２のバス調停動作も不要となる。
【００６４】
このように、本実施例では、バスマスタがバスを使用した状態遷移履歴から次のバスマスタを割り出しているので、アイドル状態時のバスパーキングマスタが予測可能となり、その結果、転送開始時の調停動作が不要となるため、処理速度を向上させることができる。よって、本実施例では、バス調停時間を短縮することができ、バス使用効率を向上させることができる。
【００６５】
また、本実施例では、共有バスに接続されたデバイスにおいて、ソフトウェア制御にてシーケンシャルにバスを使用する割合が高く、単にバス使用頻度から検出する方法よりも、バスを使用した状態遷移履歴から検出する方がバス使用権のシーケンス検出に有効であり、その結果、バスマスタの予測精度を向上させることができるため、バスパーキングマスタの予測精度を向上させることができる。
【００６６】
図１３は本発明の他の実施例によるパーキングマスタ設定回路の構成を示すブロック図である。図１３において、本発明の他の実施例はパーキングマスタ設定回路１内にｎビット設定回路１０９を追加した以外は図２に示す本発明の一実施例によるパーキングマスタ設定回路１と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の一実施例と同様である。
【００６７】
ｎビット設定回路１０９からはｎビットシフトレジスタ１０４と調停シーケンス生成部１０５とに、外部のユーザによって設定されるビット長信号Ｓ１２が供給される。また、調停シーケンス生成部１０５はｎビット設定回路１０９から供給されたビット長信号Ｓ１２を相関演算回路１０７に供給する。ｎビット設定回路１０９はシーケンスコードのコード長の変更を可能とする回路である。
【００６８】
シーケンスコードのコード長の変更値はビット長信号Ｓ１２によってｎビットシフトレジスタ１０４、調停シーケンス生成部１０５、相関演算回路１０７に通知され、それぞれｎビットシフトレジスタ１０４、調停シーケンス生成部１０５、相関演算回路１０７を制御する。本実施例では、上記のように、シーケンスコードを変更することで、最適なシーケンスコード長をユーザが任意に変更可能になるという新たな効果を奏する。
【００６９】
図１４は本発明の別の実施例によるパーキングマスタ設定回路の構成を示すブロック図である。図１４において、本発明の別の実施例は誤り検出回路１１０を追加した以外は図１３に示す本発明の他の実施例によるパーキングマスタ設定回路１と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の他の実施例と同様である。
【００７０】
誤り検出回路１１０は論理和要求信号Ｓ１と転送状態信号１９とによって、パーキングマスタ設定回路１において選択したバスパーキングマスタの誤りを検出する回路である。
【００７１】
バスがアイドル状態の場合、論理和要求信号Ｓ１はＬｏｗとなる。また、バス要求がある場合、論理和要求信号Ｓ１はＨｉｇｈとなる。論理和要求信号Ｓ１がＨｉｇｈからＬｏｗ、またＨｉｇｈになる区間において、転送状態信号１９がアサートされない場合には、パーキングマスタ設定回路１によるバスパーキングマスタの選択が誤りであると判断し、ｎビット設定回路１０９に対してビット制御信号Ｓ１３によってその誤りを通知する。
【００７２】
また、論理和要求信号Ｓ１がＨｉｇｈからＬｏｗ、またＨｉｇｈになる区間において、転送状態信号１９がアサートされた場合には、パーキングマスタ設定回路１によるバスパーキングマスタの選択が正しいと判断し、ｎビット設定回路１０９に対してビット制御信号Ｓ１３によって選択が正しいことを通知する。
【００７３】
ｎビット設定回路１０９はビット制御信号Ｓ１３の状態が誤りを示す場合にシーケンスコードのコード長を１インクリメント、ビット制御信号Ｓ１３の状態が正しいことを示す場合にシーケンスコードのコード長を１デクリメントすることでシーケンスコードのコード長を最適化する。
【００７４】
これによって、本実施例では、誤り検出回路１１０及びｎビット設定回路１０９の動作によって、最適なシーケンスコード長をユーザが決定せずとも自動的に設定することが可能になるという新たな効果を奏する。
【産業上の利用可能性】
【００７５】
本発明は、ＰＣ（パーソナルコンピュータ）等のローカルバスやＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス等に適用可能である。
【図面の簡単な説明】
【００７６】
【図１】本発明の一実施例によるバス調停システムの構成を示すブロック図である。
【図２】図１のパーキングマスタ設定回路の構成を示すブロック図である。
【図３】図２の調停シーケンス生成部でのビット並び替え方法を示す図である。
【図４】図２の相関演算回路の演算方法を示す図である。
【図５】本発明の一実施例によるデータ転送シーケンスを示すシーケンスチャートである。
【図６】本発明の一実施例によるデータ転送シーケンスを示すシーケンスチャートである。
【図７】本発明の一実施例によるデータ転送シーケンスを示すシーケンスチャートである。
【図８】図６のタイミングＴ３において共有バスがアイドル状態となった場合のパーキングマスタ選択方法を説明するため主信号の状態を示す図である。
【図９】図２の調停シーケンス生成部で生成される合成シーケンスコードを示す図である。
【図１０】図２のメモリにおいてアドレスｎからｎ＋６までのメモリ状況を示す図である。
【図１１】図２のメモリのアドレスｎ＋５の演算を示す図である。
【図１２】図２のメモリのアドレスｎ＋５の演算結果を示す図である。
【図１３】本発明の他の実施例によるパーキングマスタ設定回路の構成を示すブロック図である。
【図１４】本発明の別の実施例によるパーキングマスタ設定回路の構成を示すブロック図である。
【符号の説明】
【００７７】
１  パーキングマスタ設定回路
２  調停回路
３，４，５  バスマスタ
６  バススレーブ
７  クロック生成部
１０１  許可信号検出回路
１０２，１０３  論理和回路
１０４  ８ビットシフトレジスタ
１０５  調停シーケンス生成部
１０６  メモリ
１０７  相関演算回路
１０８  選択回路
１０９  ｎビット設定回路
１１０  誤り検出回路
【図１】
2005316620.tif 000003
【図２】
2005316620.tif 000004
【図３】
2005316620.tif 000005
【図４】
2005316620.tif 000006
【図５】
2005316620.tif 000007
【図６】
2005316620.tif 000008
【図７】
2005316620.tif 000009
【図８】
2005316620.tif 000010
【図９】
2005316620.tif 000011
【図１０】
2005316620.tif 000012
【図１１】
2005316620.tif 000013
【図１２】
2005316620.tif 000014
【図１３】
2005316620.tif 000015
【図１４】
2005316620.tif 000016