(57)【要約】【課題】従来はウェイトサイクルとしてバス信号を送出できなかった期間においてもバスが利用できるようにし、バスの利用効率を向上させるバスシステムを提供する。【解決手段】バススレーブ装置Ｓ１Ａ，Ｓ１Ｂにそれぞれバス信号保持部Ｓ４を設けておき、バスマスタ装置Ｍ１Ａ，Ｍ１Ｂにより、バスＢＳへ送出されたバス信号を、バススレーブ装置Ｓ１Ａ，Ｓ１ＢがバスＢＳを介して取得し、取得したバス信号を、バス信号保持部Ｓ４に記憶させておき、このバス信号保持部Ｓ４に記憶してあるバス信号が示す命令を順次実行する。【選択図】  図１
2004213516.tif 000002
【特許請求の範囲】
【請求項１】
バスに複数のバス信号を順次送出するバスマスタ装置と、
前記バスを介して前記バス信号を取得し前記バス信号が示す処理を実行する複数のバススレーブ装置とを備えるバスシステムにおいて、
前記バススレーブ装置は、前記バスを介して取得したバス信号を前記バス信号が示す処理に必要な処理時間の期間保持する保持手段を備えることを特徴とするバスシステム。
【請求項２】
前記バスマスタ装置は、前記バス信号が示す処理に必要な処理時間を検出する検出手段と、前記検出手段が検出した処理時間に基づいて前記バス信号に後続する次のバス信号を前記バスに送出する送出制御手段とを備えることを特徴とする請求項１に記載のバスシステム。
【請求項３】
前記バスマスタ装置は、前記複数のバス信号に、前記バス信号それぞれが示す処理に必要な処理時間を対応させる処理時間テーブルを記憶する処理時間記憶手段を備え、
前記検出手段は、前記処理時間記憶手段に記憶された処理時間テーブルから、前記バス信号が示す処理に必要な処理時間を読み出すべくなしてあることを特徴とする請求項２に記載のバスシステム。
【請求項４】
前記バスマスタ装置は、前記検出手段が検出した前記バス信号が示す処理に必要な処理時間と、前記バス信号に後続する次のバス信号が示す処理に必要な処理時間とを比較する比較手段を備え、
前記送出制御手段は、前記比較手段の比較結果に基づき、前記バス信号に後続する次のバス信号を前記バスに送出すべくなしてあることを特徴とする請求項２または請求項３に記載のバスシステム。
【請求項５】
前記バススレーブ装置は、前記複数のバス信号を保持する保持手段を備えており、前記保持手段が保持する複数のバス信号を順次実行するキュー制御手段を備えることを特徴とする請求項１に記載のバスシステム。
【請求項６】
前記バスには、複数のバスマスタ装置が接続されており、前記バスマスタ装置の前記バスへのバス信号送出権利を排他的に調停する調停装置を備え、各々の前記バスマスタ装置は、前記検出手段が検出した処理時間を相互に送受するための処理時間送受手段を備え、
前記調停装置により前記バス信号送出権利を与えられた一方のバスマスタ装置は、直前に前記バス信号送出権利を与えられていた他方のバスマスタ装置から送信される前記他方のバスマスタ装置が有する検出手段が検出した処理時間を取得し、前記処理時間に基づき、前記一方のバスマスタ装置が前記バス信号送出権利を得た次のバス信号を前記バスに送出する送出制御手段とを備えることを特徴とする請求項２から請求項５までのいずれかに記載のバスシステム。
【請求項７】
前記バスには、複数のバスマスタ装置が接続されており、前記バスマスタ装置の前記バスへのバス信号送出権利を排他的に調停する調停装置を備え、
バスシステム内に、前記バス信号が示す処理に必要な処理時間を検出する検出手段を有する処理時間検出装置を備え、
前記処理時間検出装置が有する検出手段が検出した処理時間はそれぞれのバスマスタ装置へ送出され、
前記バスマスタ装置は、前記送出される処理時間に基づき、前記バス信号に後続する次のバス信号を前記バスに送出する送出制御手段を備えることを特徴とする請求項２から請求項５までのいずれかに記載のバスシステム。
【請求項８】
前記複数のバススレーブ装置はそれぞれ、前記バス信号を取得し、前記バス信号が示す処理の実行後に、前記処理の実行が終了したことを示す終了信号を前記バスマスタ装置へ送出する手段を備え、前記バスマスタ装置は、取得した終了信号に基づき、前記バス信号に後続する次のバス信号を前記バスに送出する手段を備えることを特徴とする請求項１に記載のバスシステム。
【請求項９】
前記バスマスタ装置は、複数の前記バススレーブ装置それぞれから前記終了信号を取得した場合、前記終了信号から１の終了信号を選択する選択手段と、前記選択手段により選択されなかった他の終了信号を送出したバススレーブ装置へ、前記他の終了信号に対応するバス信号を再度送出する手段とを備えることを特徴とする請求項８に記載のバスシステム。
【請求項１０】
前記バスマスタ装置は、複数の前記バススレーブ装置それぞれから前記終了信号を取得した場合、前記終了信号から１の終了信号を選択する選択手段と、前記選択手段により選択されなかった他の終了信号を送出したバススレーブ装置それぞれへ、前記バススレーブ装置が有する前記保持手段により保持されたバス信号が示す処理の実行を指示する再実行要求信号を送出する送出制御手段とを備えることを特徴とする請求項８に記載のバスシステム。
【請求項１１】
前記バススレーブ装置は、取得した前記バス信号が示す処理の実行結果を、前記保持手段により保持しており、前記バスマスタ装置は、複数の前記バススレーブ装置それぞれから前記終了信号を取得した場合、前記終了信号から１の終了信号を選択する選択手段と、前記選択手段により選択されなかった他の終了信号を送出したバススレーブ装置へ、前記バススレーブ装置が有する前記保持手段により保持された前記実行結果の送出を指示する指示信号を送出する再出力指示手段とを備えることを特徴とする請求項８に記載のバスシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、様々な装置をバスに接続し、そのバスを共通のデータ転送経路としてそれぞれの装置間のデータ転送を行う構成をとるバスシステムのバス利用効率向上を目的としたバスシステムに関するものである。
【０００２】
【従来の技術】
従来、システム構成においては、システムに必要なデータ通信のために共通データ経路（バス）を装備し、システムを構成する様々な装置をバスに接続して、装置間のデータ通信を行うバスシステムが広く利用されている。
【０００３】
バスシステムにおいては、様々なデータ通信の経路をバスで共有しているため、大規模なシステムでもそれぞれの装置間の接続線を増大させることなく、構成装置間の通信を可能とする一方、通信経路が共有されているため、様々なデータ通信は同時実行が困難であり、ぞれぞれのデータ通信は個別に順次実行されている。
【０００４】
一般的なバス上のデータ通信は、バスにアクセスすべくバスに対してバス信号（アドレス、制御信号、書込みデータなど）を送出する装置（バスマスタ装置）と、バス信号を取得しバス信号が指示する内容に基づいてその処理を実行する装置（バススレーブ装置）の２者間で行われる。
【０００５】
その手順は、まず、バスマスタ装置が要求する処理をバス信号としてバスに送出し、次に、バススレーブ装置がバス信号を取得した後、バス信号が指示する処理を実行し、最後に、指示内容によっては実行結果をバスマスタ装置に返信する。
【０００６】
具体例として、ＣＰＵがメモリにアクセスする場合を例に挙げれば、ＣＰＵがメモリの番地ＡにデータＤを書き込む場合、ＣＰＵがバスマスタ装置、メモリがバススレーブ装置となり、ＣＰＵがアドレスＡ、書込みデータＤ、制御信号として書込みコマンドをバス信号としてバスに送出し、メモリはバス信号を取得し、Ａ番地にデータＤを書き込むという処理を実行する。また、番地Ａのデータを読み出す場合、ＣＰＵがアドレスＡ、制御信号として読出しコマンドをバス信号として送出し、メモリはバス信号を取得した後、Ａ番地のデータを読み出すという処理を実行し、読み出したデータを実行結果としてバスに送出し、ＣＰＵがバス上に送出された実行結果を取得する。
【０００７】
ところで、データ通信の対象となる装置によって、その処理時間あるいは応答時間は一定でない場合が多いため、それぞれのデータ通信に対して当該データ通信の対象となる装置の処理時間に対応したタイミング制御を行い、データ転送を保証する必要がある。最も一般的な方式によると、バスの基本周期（バスサイクル）よりも応答時間が遅いデータ転送に関しては、当該データ転送の処理中は、当該データ転送を指示するバス信号をバス上に保持した状態で、処理が終了するまで待機（ウェイト）することにより、タイミング制御を実現している。ウェイト中はバスを使用し続け、処理時間が経過し、処理が終了したらバスは開放され、次のデータ通信を行う。以上の方法により、様々なデータ転送処理時間を有する装置をバスに接続してシステムを構成することを可能としている。
【０００８】
図９に従来のバスシステムの一例を示し、ウェイト制御について説明する。アドレスＡに対応するバススレーブ装置Ａは書込み処理及び読出し処理に４サイクルの処理時間を要し（３ウェイト）、アドレスＢに対応するバススレーブ装置Ｂは２サイクルの処理時間を要する（１ウェイト）ものとする。時刻ｔ０でバスマスタ装置は、アドレスＡ、制御信号Ｃｍｄ（Ａ）、およびＣｍｄ（Ａ）が書込みコマンドの場合は書込み信号ＷＤａｔａ（Ａ）をバスに送出し、バススレーブ装置Ａがバス信号を取得した後、処理を開始する。
【０００９】
バススレーブ装置Ａは４サイクルの処理時間を要するため、バスマスタ装置は時刻ｔ３までバス信号を保持し続ける（ウェイト）。時刻ｔ３でバススレーブ装置Ａの処理は終了するので、時刻ｔ４でバススレーブ装置Ｂへのバス信号を送出することができる。同様に時刻ｔ６でさらに次のバス信号を送出する。
【００１０】
本例はバスマスタ装置がデータ転送にかかわる処理時間を予め認識している場合である（例えば、特許文献１参照）。
【００１１】
その他の例として、バススレーブ装置が、処理を終了したことを示すＡＣＫ信号（終了信号）をバスマスタ装置に通知することにより、バスマスタ装置が処理時間を認識する方法（ハンドシェーク）もある（例えば、非特許文献１参照）。
【００１２】
【特許文献１】
特開平５−８１１２６号公報（第５頁、図１）
【非特許文献１】
ＡＲＭ  Ｌｉｍｉｔｅｄ、“ＡＭＢＡ仕様書（Ｒｅｖ２．０）”、［ｏｎｌｉｎｅ］、［平成１４年９月１９日検索］、インターネットＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ａｒｍ．ｃｏｍ／ＡＭＢＡ＿Ｓｐｅｃ／
【００１３】
【発明が解決しようとする課題】
しかしながら、従来のウェイト制御方式によると、データ転送を開始してから終了するまで、バス信号をバス上に保持する必要があり、その期間は当該データ転送のためにバスが占有される。つまり、その期間はデータ転送のためにバスを利用しておらず、バスの帯域を有効に活用していないといえる。
特に、低速デバイスへのバスアクセスが頻繁に発生するシステム、低速デバイスへのバスアクセスの優先度が高いシステムにおいては、ウェイトサイクルによりバス帯域が消費され、実効バス帯域を低下させてしまい、バスシステム全体の総合利用効率が悪化してしまう。
【００１４】
本発明はかかる問題を解決するためになされたものであり、その目的は、バスシステムの総合利用効率を向上させることができるバスシステムを提供することにある。
【００１５】
【課題を解決するための手段】
バスシステムにかかわる本発明が、上記課題を解決するために施した手段を下記に示す。
【００１６】
バスに複数のバス信号を順次送出するバスマスタ装置と、前記バスを介して前記バス信号を取得し前記バス信号が示す処理を実行する複数のバススレーブ装置とを備えるバスシステムにおいて、前記バススレーブ装置は、バスマスタ装置がバスに送出したバス信号（アドレス、制御信号、書込みデータなど）を取得するとともに、前記バス信号が指示する処理に要する時間だけ前記バス信号を保持するための保持手段を備える。すなわち、前記バススレーブ装置は、前記バスを介して取得したバス信号を前記バス信号が示す処理に必要な処理時間の期間保持する保持手段を備える。
【００１７】
バススレーブ装置が処理時間の保持手段を備えることにより、バスマスタ装置はバス上にバス信号を保持する必要がなくなり、バススレーブ装置がバス信号の指示する処理を終了する前に、バスマスタ装置が次のバス信号を送出することを可能としている。従って、従来ではウェイトサイクルとしてバス信号を送出できなかった期間においてもバスを利用できるようになり、バスの利用効率を向上させる効果がある（第１の発明）。
【００１８】
また、上記構成においては、あるバス信号に対する処理が終了する前に次のバス信号を送出することができるが、そのとき、異なるバス信号間で処理が競合する場合が生じる。
【００１９】
前記競合を回避するための１つの対策は、バスマスタ装置はバス信号が指示する処理に対して、該当するバススレーブ装置がバス信号を取得してから処理を完了するまでに要する時間である処理時間を検出するための検出手段と、前記検出した処理時間を用いて、次に送出するバス信号の送出可否に関して前記バス信号と競合しないことを判断して送出する機能を有する送出制御手段を備えることである。すなわち、前記バスマスタ装置は、前記バス信号が示す処理に必要な処理時間を検出する検出手段と、前記検出手段が検出した処理時間に基づいて前記バス信号に後続する次のバス信号を前記バスに送出する送出制御手段とを備える。これにより、前記競合を防止することができる（第２の発明）。
【００２０】
前記処理時間の検出に関しては、バスシステムに接続されている様々なバススレーブ装置に対する前記処理時間の対応テーブル（処理時間テーブル）を記憶する処理時間記憶手段を備え、前記検出手段は前記処理時間記憶手段が記憶しているテーブルを読み出すことにより処理時間の検出ができる。処理時間記憶手段を書き換え可能な記憶素子（レジスタやＲＡＭ）で構成すれば、システム内のバススレーブ装置の構成や種類、アドレスマップの変更に対して、その都度、テーブルを書き換えることにより、柔軟に対応することができる（第３の発明）。
【００２１】
別の競合回避の方法として、あるバス信号に対応する処理時間と後に送信される予定である次のバス信号に対応する処理時間を比較する手段（比較手段）を備えることにより、前記送出制御手段はその比較結果を用いて、比較対象となっていた次のバス信号の中から競合しないバス信号を次に送出するバス信号として選択し送出することができる。つまり、直後のバス信号の送出が競合のため送出できないときは、その次のバス信号から競合しないバス信号を探して、送出順番を入れ替えて送出するようにすることで、さらなるバス利用効率の向上が期待できる。別の効果としては、ある特定のバススレーブ装置へのバス信号を優先的に送出するように送出順番を入れ替えて送出するようにすることで、特定のデータ転送のバンド幅を保障することができる（第４の発明）。
【００２２】
また、前記バススレーブ装置が備える前記保持手段に関して、１つのバス信号しか保持しない場合には、同一バススレーブ装置に連続アクセスすると、前記処理時間毎にしか同一のバススレーブ装置へのバス信号を送出できない。そこで、複数のバス信号を保持できる保持手段と、それをバス信号キューとして使用するキュー制御手段を備えることにより、バスマスタ装置は同一のバススレーブ装置に対して連続してバス信号を送出することができるため、連続データ転送（バースト転送）を高速に処理することができる（第５の発明）。
【００２３】
複数のバスマスタ装置を有するバスシステムにおいて、各々のバスマスタ装置が検出した処理時間を相互に送受するための手段（処理時間送受手段）を備えることにより、バス信号を送出する権利（バス信号送出権利：バス権）の切り替えをする際、新たにバス権を取得したバスマスタ装置は、直前にバス権を与えられていた別のバスマスタ装置から前記別のバスマスタ装置が持っている前記処理時間情報を取得し、その処理時間情報に基づきバス信号送出を行うようにすることで、バス権切り替え時に、直前にバス権を与えられていたバスマスタ装置の最後のバス信号を送信した後、そのバス信号が指示する処理が終了する前にバス権を開放し、その結果、別のバスマスタがバス権を取得でき、バスマスタ装置間のバス権切り替えのときにも、バス信号をバス上に保持することなく扱うことができる（第６の発明）。
【００２４】
別の複数のバスマスタ装置間で処理時間の授受の方法として、複数のバスマスタ装置が個別に処理時間の検出手段を備えるのではなく、バスシステム内で前記検出手段と同様な機能を有する処理時間検出装置を備え、各々のバスマスタ装置が処理時間検出装置を共有することにより実現する方法もある（第７の発明）。
【００２５】
バス上のデータ通信に、上記、従来の技術で記載したハンドシェーク方式を用いるバスシステムの場合、バススレーブ装置はそれぞれ、バス信号を取得し、そのバス信号が指示する処理が終了したことを示す終了信号（ＡＣＫ信号）をバスマスタ装置に送信する手段を備えることにより、バスマスタ装置は、取得した終了信号に基づき、上記に記載と同様に、次のバス信号を送信することができる。
【００２６】
例えば、バス信号の指示する処理がバススレーブ装置Ａに対する処理であれば、バススレーブ装置Ａから送信される終了信号Ａを取得するまでは、バススレーブ装置Ａは処理中であると判断し、次のバス信号を送出するときに、前記終了信号を取得するまでは、バススレーブ装置Ａに対する処理を指示するバス信号を送信しないように送出制御手段が制御する（第８の発明）。
【００２７】
しかし、異なるバススレーブ装置への読み出し（実行結果の返信）を指示するバス信号同士の競合においては、バスマスタ装置は予め処理時間を検出することが不可能であるため、上記に記載したバス信号間の競合回避方法では対応できない。そこで、本発明では前記競合対応方法として３通りの手段を提供する。
【００２８】
１つ目は、バスマスタ装置は複数のバススレーブ装置に対応する終了信号を同時に取得した場合、読出しデータバスが競合したと判断して、１つの終了信号のみを選択し、選択されなかった終了信号に対応するバス信号を再送する手段を備えることにより、競合のために受け取ることができなかったデータを再度要求する方法である（第９の発明）。
【００２９】
２つ目は、バスマスタ装置が、バススレーブ装置が備える保持手段に保持されているバス信号が指示する処理の実行を指示する再実行要求信号を送出する送出制御手段を備えることにより、バスマスタ装置は複数のバススレーブ装置に対応する終了信号を同時に取得した場合、読出しデータバスが競合したと判断して、１つの終了信号のみを選択し、選択されなかった終了信号に対応するバススレーブ装置に対して再実行要求信号を送出するという、本発明のバススレーブ装置がバス信号を保持しているという特徴を利用し、バス信号の送信をすることなしにデータを再度要求する方法である（第１０の発明）。
【００３０】
３つ目は、バススレーブ装置がバス信号だけでなく、実行結果（読出しデータ）を保持する出力データ保持手段を備え、バスマスタ装置が、前記出力データ保持手段に保持されている実行結果の送信を指示する手段（再出力指示手段）を備えることにより、バス信号の再送出及び処理再実行をすることなしに、データを再度要求する方法である（第１１の発明）。
【００３１】
【発明の実施の形態】
以下、本発明のバスシステムについて具体的な実施の形態に基づき、図面を参照しながら説明する。なお、以下の実施の形態は、小規模でシンプルな構成をとるＬＳＩの同期式バス内部バスを示しているが、本発明はその用途に限定するものではない。
【００３２】
（実施の形態１）
図１は本発明の実施の形態１におけるバスシステムの構成を示すブロック図である。バスＢＳに接続されるバスマスタ装置Ｍ１Ａとバスマスタ装置Ｍ１Ｂとバススレーブ装置Ｓ１Ａとバススレーブ装置Ｓ１Ｂの４個の装置と、２つのバスマスタ装置間でバスアクセス権の調停を行う調停装置（アービタ）ＡＢＴによりバスシステムを構成している。
【００３３】
バスＢＳは、バスマスタ装置に対してバススレーブ装置が処理結果データを返送するための読出しデータバスＢＳ１とバスマスタ装置からバススレーブ装置へデータを転送するための書込みデータバスＢＳ２とバスマスタ装置からアドレス信号を送出するためのアドレスバスＢＳ３とバスマスタ装置から処理内容を送出するための制御バスＢＳ４から構成されている。本実施の形態の制御バスＢＳ４が指示する処理内容は、データ書込みとデータ読出しの２つの処理とし、制御信号は、書込み処理を指示する書込みイネーブル信号と、読出し処理を指示する読出しイネーブル信号と、複数のバススレーブ装置の中で特定のバススレーブ装置を選択するチップセレクト信号から成っているものとする。
【００３４】
バススレーブ装置Ｓ１Ａは、バスＢＳのアドレス空間にマッピングされている複数のレジスタから構成されるレジスタ部Ｓ２と、レジスタ部Ｓ２に保持されている値を用いて所望の信号処理を実行したり、処理により得られた結果をレジスタ部Ｓ２に書き込んだりするデータ処理部Ｓ３と、バスによりバススレーブ自身が選択されたときのバス上の信号を保持するためのフリップフロップなどの記憶素子からなるバス信号保持部Ｓ４と、保持されたバス信号Ｓ５のうちのアドレス信号をデコードするアドレスデコーダＳ６と、保持されたバス信号Ｓ５の制御信号とアドレスデコーダＳ６でデコードされた信号に基づきレジスタ部Ｓ２に対する処理を行うメモリ制御部Ｓ７と、メモリ制御部Ｓ７からの指示により読出しデータバスＢＳ１へ送出するデータを選択する読出しデータ選択部Ｓ８により構成されている。バススレーブ装置Ｓ１Ｂも同様の構成である。
【００３５】
バスマスタ装置Ｍ１Ａにおいて、コア部Ｍ２１がバスコントロール部Ｍ２２を介してバスに接続される。コア部Ｍ２１の具体例としては、ＣＰＵやＤＭＡコントローラなどが挙げられる。
【００３６】
バスコントロール部Ｍ２２は、コア部Ｍ２１とバスＢＳとの間のアドレス信号を媒介するアドレスバッファＭ３と、コア部Ｍ２１とバスＢＳとの間の読出しデータおよび書込みデータを媒介するデータバッファＭ４と、コア部Ｍ２１から送出されるアドレス信号をデコードするアドレスデコーダＭ５と、バススレーブ装置がバス信号を取得してからバス信号が指示する処理を終了するまでの時間（処理時間）とそのアドレスの対応テーブル（処理時間テーブル）を記憶している処理時間記憶部Ｍ６と、処理時間記憶部Ｍ６から処理時間テーブルを読み出す検出部Ｍ７と、検出部Ｍ７が管理する処理時間情報とアドレスデコーダＭ５のデコード結果とコア部Ｍ２１から取得する制御信号と、調停装置ＡＢＴから送出されるバス権許可信号を用いてバス信号及びバス権要求信号の送出を制御する送出制御部Ｍ８から構成されている。
【００３７】
検出部Ｍ７は、検出した処理時間をもとに処理時間情報を管理するための複数のカウンタＭ９を有している。送出制御部Ｍ８は、複数の処理時間情報を比較してバス信号の送出を制御するための比較手段Ｍ１１を有している。バスマスタ装置Ｍ１Ｂも同様の構成である。
【００３８】
以上のように構成されたバスシステムについて、以下にその動作を、図２のタイミングチャートを用いて説明する。
【００３９】
調停装置ＡＢＴによって、バスマスタ装置Ｍ１Ａあるいはバスマスタ装置Ｍ１Ｂのいずれかにバス権を与えられ、バス権が与えられたバスマスタ装置はそのコア部Ｍ２１が要求するバスアクセスにかかわるバス信号を順次、バスＢＳに送出する。バススレーブ装置Ｓ１ＡはアドレスＡｎ（ｎは整数）に割り当てられており、その処理時間は書込み処理および読出し処理ともに４サイクルとする。また、バススレーブ装置Ｓ１ＢはアドレスＢｎ（ｎは整数）に割り当てられており、その処理時間は書込み処理および読出し処理ともに２サイクルとする。
【００４０】
図２の時刻ｔ０においてバスマスタ装置Ｍ１Ａにバス権が与えられており、バススレーブ装置Ｓ１Ａに対応するアドレスＡ１へ読出し処理を指示するバス信号を送出する。そのとき、バススレーブ装置Ｓ１Ａは、自分宛のバス信号であるのでバス信号保持部Ｓ４にバス信号を保持する。そのため、バスマスタ装置Ｍ１Ａは、次の時刻ｔ１においては前記バス信号をバス上に保持する必要がない。したがって、時刻ｔ１においては、次のバス信号を送出することが可能となる。一方、バススレーブ装置Ｓ１Ａでは、バス信号保持部Ｓ４に保持したバス信号Ｓ５を用いて処理を実行している。読出し処理であるので、アドレスデコーダＳ６でデコードされ、選択されたレジスタの値が読出しデータ選択部Ｓ８で選択され、バス上に送出される。その処理時間が４サイクルであるので、読出しデータがバスに送出される時刻はｔ３である。バスマスタ装置Ｍ１Ａは時刻ｔ３において時刻ｔ０に送出したバス信号に対応する読出しデータを取得する。
【００４１】
ところで、時刻ｔ１において次のバス信号を送出する手順を示す。バスマスタ装置Ｍ１Ａのバスコントロール部Ｍ２２は、時刻ｔ０においてバス信号を送出するとともに、アドレスデコーダＭ５が前記バス信号のアドレス信号をデコードして、バススレーブ装置Ｓ１Ａへの読み出しを指示するバス信号であることを認識することができる。アドレスデコーダＭ５によるデコード信号Ｍ１０は検出部Ｍ７に渡され、検出部Ｍ７は処理時間記憶部Ｍ６における処理時間テーブルからバススレーブ装置Ｓ１Ａの読出し処理の処理時間が４サイクルであることを検出する。
【００４２】
処理時間テーブルは処理時間記憶部Ｍ６に格納されており、上記に示したバススレーブ装置Ｓ１ＡはアドレスＡｎに割り当てられており、その処理時間は書込み処理および読出し処理ともに４サイクル、バススレーブ装置Ｓ１ＢはアドレスＢｎに割り当てられており、その処理時間は書込み処理および読出し処理ともに２サイクルとするという情報がテーブル情報として格納されている。格納の方法については、ＲＯＭデータとして予め保持しておく方法や、ＲＡＭ、レジスタなどにシステム構成に依存したテーブルをシステム初期化時に設定する方法がある。
【００４３】
検出部Ｍ７で検出された処理時間は、検出部Ｍ７に備えるカウンタＭ９にロードされる。カウンタＭ９は１サイクルごとにデクリメントされる。次のバス信号はバススレーブ装置Ｓ１Ｂに対応するアドレスＢ１への書込み処理を指示するものであり、時刻ｔ１では、前記バス信号の処理内容とそのバス信号にかかわる検出部Ｍ７のカウンタ値と次のバス信号の処理内容を解析して送出可能かどうかを判断する。時刻ｔ０に“４”がロードされたカウンタ値は、時刻ｔ１では１引かれ、“３”となる。これは、時刻ｔ１から見て３サイクルの処理時間であることを示している。つまり、時刻ｔ３で処理が終了することを示す。
【００４４】
解析手順は次のとおりである。まず、バススレーブ装置Ｓ１Ａへのアクセスを指示するバス信号は、時刻ｔ０で送出されたこと及び４サイクルの処理時間を要することにより、時刻ｔ１およびｔ２およびｔ３では送出することができないと判断する。また、時刻ｔ１において処理時間が“３”である読出し処理は時刻ｔ０での読出し処理と読出しデータバスＢＳ１が衝突してしまうので、送出することができないと判断する。時刻ｔ１における前記次のバス信号は、送出できない条件に当てはまらないので送出され、それとともに、検出部Ｍ７では前記次のバス信号に対する処理時間情報を別のカウンタＭ９にロードする。もし、送出できなければ、また次のサイクルで同様の解析をして送出を制御する。
【００４５】
以上のように各サイクルで次のバス信号送出を解析しながら順次送出していくことにより、バス信号をそのバス信号にかかわる処理が終了するまでバス上に保持していない場合においても、次の、あるいは以降のバス信号と競合することなく、バス信号を送出することができる。
【００４６】
さらに、別の送出手順を示す。送出解析の段階で送出できない条件であった場合、次のバス信号は送出できず、その送出を次のサイクル以降に持ち越していたが、バス信号のアドレスバッファＭ３およびデータバッファＭ４に複数のバス信号を保持することができるようにする場合、保持している複数のバス信号の中から、比較手段Ｍ１１によって送出可能なバス信号が存在した場合、バス信号の順序を入れ替えて、送出可能なバス信号を先に送出することができる。例えば、時刻ｔ３において本来の順序であれば、次のバス信号はバススレーブ装置Ｓ１Ａに対するアドレスＡ２への書込み処理であったとき、そのバス信号は時刻ｔ０で送出したバス信号と競合するので送出できないが、次のバス信号（バススレーブ装置Ｓ１Ｂに対応するアドレスＢ２への読出し処理）は送出可能であるので、順序を入れ替えて、アドレスＢ２へのバス信号をアドレスＡ２へのバス信号の前に送出する。以上のような手順により、送出可能なバス信号を優先的に送出することにより、さらなるバス利用効率の向上を図ることができる。
【００４７】
また、図２において時刻ｔ３でバス権がバスマスタ装置Ｍ１Ａからバスマスタ装置Ｍ１Ｂへ切り替わっている。このとき、上記のバス信号送出制御を可能とするためには、それぞれのバスマスタ装置が有するバス送出の解析に使用される情報が一致していなければならない。つまり、バス権がバスマスタ装置Ｍ１Ａからバスマスタ装置Ｍ１Ｂへ切り替わるサイクル付近では、バスマスタ装置Ｍ１Ａが送出したバス信号に対する処理が継続中に、バスマスタ装置Ｍ１Ｂが次のバス信号を送出可能かを判断しなければならないので、バスマスタ装置Ｍ１Ｂの送出制御のためにバスマスタ装置Ｍ１Ａの検出部が管理している情報が必要となる。本実施の形態では、バスマスタ装置間で処理時間のやり取りをする機構Ｍ１２により、バス権が切り替わったときにでも、バス信号と競合することなくバス信号の送出制御を行うことができるようにしている。
【００４８】
（実施の形態２）
図３は本発明の実施の形態２におけるバススレーブ装置のバスインターフェース構成を示すブロック図である。実施の形態１の場合のバススレーブ装置におけるバス信号保持部Ｓ４に代えて、バス信号キューメモリＳ９とキュー制御部Ｓ１０を設けている。
【００４９】
バススレーブ装置が取得し保持したバス信号が指示する処理が終了するのを待つことなく、次のバス信号を取得できるようにするため、複数のバス信号を保持するバス信号キューメモリＳ９と、バス信号により前記バススレーブ装置自身が選択されたときのバス上の信号をバス信号キューメモリＳ９に順次書き込みながら、書き込まれたバス信号を順次読み出すＦＩＦＯ制御を行うキュー制御部Ｓ１０から構成されるバス信号キューをバス信号保持手段として用いた構成となっている。キューとは、一列に並んだデータの列で、先入れ先出しのデータ構造をいう。
【００５０】
以上のように構成されたバススレーブ装置を備えたバスシステムについて、以下にその動作を説明する。
【００５１】
例えば、実施の形態１ではバススレーブ装置は１つのバス信号しか保持することができないので、ある時刻でバスマスタ装置Ｍ１Ａがバススレーブ装置Ｓ１Ａに対するバス信号を送出した場合、以降４サイクル間はバススレーブ装置Ｓ１Ａへのバス信号を送出することができないが、本実施の形態によると、バススレーブ装置はバス信号キューを持っているので、バスマスタ装置から見れば、キューの容量分だけのバス信号を連続して送出してもよいことになる。そのとき、バススレーブ装置は、送出されたバス信号を順次バス信号キューメモリＳ９に書き込みながら、書き込まれたバス信号を読み出し、読み出したバス信号Ｓ５を用いて処理を実行する。１つの処理が終了したら、次のバス信号をバス信号キューメモリＳ９から読み出し、同様に処理を実行し、バス信号キューメモリＳ９に保持されているバス信号のすべてが読み出され、バス信号キューメモリＳ９が空になるまで、バス信号の指示する処理を随時実行する。
【００５２】
（実施の形態３）
図４は本発明の実施の形態３におけるバスシステムの構成を示すブロック図である。実施の形態１に対して、バスマスタ装置のバスコントロール部を構成する検出部の構成が異なる。本実施の形態にかかわるバスマスタ装置は、それ自体は実施の形態１の場合の処理時間記憶部Ｍ６と検出部Ｍ７を有しておらず、その代りに、バスシステム内の複数のバスマスタ装置が共有する１つの処理時間検出装置Ｔ１を備えて、各々のバスマスタ装置は、処理時間情報Ｔ２を処理時間検出装置Ｔ１から受け取る構成となっている。処理時間検出装置Ｔ１は、処理時間記憶部Ｍ６と検出部Ｍ７を備えている。
【００５３】
以上のように構成されたバスマスタ装置を備えたバスシステムについて、以下にその動作を説明する。
【００５４】
本発明におけるバスシステムでは、上記のバス信号送出制御を可能とするためには、それぞれのバスマスタ装置が有するバス信号送出の解析に使用される情報が一致していなければならないという制約がある。実施の形態１においては、バスマスタ装置それぞれの検出部Ｍ７が管理している情報をバスマスタ装置相互間で交換するという方法を用いていたが、本実施の形態においては、前記検出処理を処理時間検出装置Ｔ１に一元化することにより、検出した処理時間情報Ｔ２をそれぞれのバスマスタ装置同士で共有するようにし、これによって処理時間情報Ｔ２が一致することを保障する方法をとる。
【００５５】
それぞれのバスマスタ装置は、アドレスデコーダＭ５がデコードした信号Ｍ１０を処理時間検出装置Ｔ１に渡す。処理時間検出装置Ｔ１は、実施の形態１の処理時間記憶部Ｍ６および検出部Ｍ７と同様の機能を備えており、処理時間検出装置Ｔ１は、検出部Ｍ７が検出した処理時間情報Ｔ２をそれぞれのバスマスタ装置に送出することにより、それぞれのバスマスタ装置の送出制御部Ｍ８は、処理時間検出装置Ｔ１から送出される処理時間情報Ｔ２を利用して実施の形態１と同様な動作をとることで、バス権切り替え時のバス信号送出制御を行うことができる。
【００５６】
（実施の形態４）
図５は本発明の実施の形態４におけるバスシステムの構成を示すブロック図である。
【００５７】
実施の形態１，２，３の場合には、バスマスタ装置はバススレーブ装置の処理時間を予め認識している。これに対して、本実施の形態においては、バスマスタ装置はバススレーブ装置の処理時間について予めの認識はなく、バススレーブ装置が処理終了をバスマスタ装置に通知する通信方式を用いたケースに対応している。この場合は、処理時間テーブルとして各バススレーブ装置の処理時間を記憶することにより、バス信号送出を制御する方法が利用できない。
【００５８】
構成としては、バススレーブ装置Ｓ１Ａ，Ｓ１Ｂは、バス信号が指示する処理が終了したことをバスマスタ装置に通知するＡＣＫ信号生成部Ｓ１１を備え、バスマスタ装置は、それぞれのバススレーブ装置が送出するＡＣＫ信号（終了信号）Ｓ１２ＡおよびＳ１２Ｂを検出部Ｍ７へ入力する手段を備えている。本実施の形態では、終了した時刻にのみパルス（“Ｈ”レベル）を発生するものとする。検出部Ｍ７は、複数の終了信号を選択する選択手段Ｍ１３と前記終了信号を用いて送出制御部Ｍ８にバス信号の再送出を指示する再送要求手段Ｍ１４を備えている。
【００５９】
以上のように構成されたバスシステムについて、以下にその動作を、図６のタイミングチャートを用いて説明する。
【００６０】
まず、終了信号に関して説明する。時刻ｔ０でバススレーブ装置Ｓ１Ａに対するバス信号が送出され、前記と同様な動作によりバススレーブ装置Ｓ１Ａで処理が実行される。バススレーブ装置Ｓ１Ａは４サイクルの処理時間を要するので、時刻ｔ３においてバススレーブ装置Ｓ１Ａからの終了信号Ｓ１２Ａが“Ｈ”レベルになる。バスマスタ装置は、バス信号送出後、終了信号Ｓ１２Ａが“Ｌ”レベルの場合は、バス信号が指示する処理は処理中であることを認識する。同様に時刻ｔ１で送出されるバススレーブ装置Ｓ１Ｂに対するバス信号に対しては、２サイクルの処理時間を要するため時刻ｔ２においてバススレーブ装置Ｓ１Ｂからの終了信号Ｓ１２Ｂが“Ｈ”レベルになる。
【００６１】
次に、送信制御手順について説明する。時刻ｔ０でバススレーブ装置Ｓ１Ａに対してバス信号を送出するとともに検出部Ｍ７は終了信号Ｓ１２Ａを取り込み、処理が終了したかどうかを検出する。時刻ｔ１では、終了信号Ｓ１２Ａは“Ｌ”レベルであるのでバススレーブ装置Ｓ１Ａに対する処理は終了していないことを判断し、バススレーブ装置Ｓ１Ａへのバス信号は送出できないことを認識した上で、次のバス信号送出を制御する。次のバス信号は、バススレーブ装置Ｓ１Ｂへのバス信号であるので送出できるため、送出することができ、送出するとともに終了信号Ｓ１２Ａ及びＳ１２Ｂを取り込み、送出した前記次のバス信号の処理が終了したかどうかを検出する。時刻ｔ２において、終了信号Ｓ１２Ｂが“Ｈ”レベルになることを検出し、時刻ｔ１に送出したバススレーブ装置Ｓ１Ｂへのバス信号の処理が終了したことを認識して、読出しデータを時刻ｔ１に送出したバス信号に対応した読出し信号として取り込む。時刻ｔ４においては、時刻ｔ３のときと同様に終了信号Ｓ１２Ａの検出により、時刻ｔ０に送出したバススレーブ装置Ｓ１Ａへのバス信号の処理が終了したことを認識して、読出しデータを時刻ｔ０に送出したバス信号に対応した読出し信号として取り込む。
【００６２】
送出制御としては、時刻ｔ２では、どちらのバススレーブ装置も処理を終了していないので、バス信号を送出することはできない。時刻ｔ３では、バススレーブ装置Ｓ１Ｂのみ処理が終了しているのでバススレーブ装置Ｓ１Ｂに対するバス信号のみ送出することができる。
【００６３】
バス信号が競合した場合の制御手順を以下に示す。時刻ｔ４において、バススレーブ装置Ｓ１Ａへのバス信号を送出したとする。次に、時刻ｔ６において、バススレーブ装置Ｓ１Ｂへのバス信号を送出したとする。以上はともに、送出可能な条件である。
【００６４】
上記の送出条件の場合、時刻ｔ７において、終了信号Ｓ１２Ａ及び終了信号Ｓ１２Ｂともに同時に“Ｈ”レベルとなる。つまり、読出しデータバスＢＳ１が競合してしまう。本実施の形態の手順によると、バスマスタ装置の検出部Ｍ７の選択手段Ｍ１３によって、２つの終了信号のうちどちらか一方が選択される。選択基準は予め決まっている、あるいはシステム初期時に設定した優先度に依るものとする。本実施の形態では終了信号Ｓ１２Ｂが選択され、終了信号Ｓ１２Ｂに対応するバススレーブ装置Ｓ１Ｂの読出しデータが選択され取得される。一方、選択されなかった終了信号Ｓ１２Ａに対応する読出しデータはキャンセルされるとともに、検出部は再送要求手段Ｍ１４を介して終了信号Ｓ１２Ａに対応するバス信号を再度送出するように送出制御部Ｍ８に要求する。その要求に従い、送出制御部Ｍ８は、時刻ｔ８において、送出制御の手順に従い送出可否判定を行った後、送出可能であれば、バススレーブ装置Ｓ１Ａへのバス信号を再度送出する。再送出されたバス信号により、バススレーブ装置Ｓ１Ａは選択されなかった終了信号に対応するバス信号を再び取得し、処理を実行して、読出しデータを再びバスに送出し、バスマスタ装置は、競合しなければ、バス信号の再送出により再送出された読出しデータを取得することができる。競合した場合は、再送出要求処理を再び繰り返すこととなる。
【００６５】
（実施の形態５）
図７は本発明の実施の形態５におけるバスシステムの構成を示すブロック図である。実施の形態４に対して、バス信号に対する読出しデータが競合したときの対策が異なる。実施の形態４の再送要求手段Ｍ１４の代わりに、バススレーブ装置に対する再実行要求手段Ｍ１５を備え、それぞれのバススレーブ装置に対して再実行要求信号Ｍ１６Ａ，Ｍ１６Ｂを送出する構成をとっている。
【００６６】
以上のように構成されたバスシステムについて、以下にその動作を説明する。
【００６７】
実施の形態４の場合の時刻ｔ７と同様、２つのバス信号を送出した後、終了信号Ｓ１２Ａ及び終了信号Ｓ１２Ｂがともに同時に“Ｈ”レベルとなり、読出しデータバスＢＳ１が競合したとする。そのときは、実施の形態４の場合と同様に、バスマスタ装置の検出部Ｍ７の選択手段Ｍ１３によって、２つの終了信号のうちどちらか一方が選択される。選択基準は予め決まっている、あるいは設定した優先度によるものとし、選択された終了信号に対応する読出しデータが選択され取得され、選択されなかった終了信号に対応する読出しデータはキャンセルされる。
【００６８】
そのとき、本実施の形態では、選択されなかった終了信号に対応するバススレーブ装置のバス信号保持部Ｓ４に対して、再実行要求信号を送出する。なお、本発明全体にかかわるバススレーブ装置は、実施の形態１で説明したようにバス信号をバススレーブ装置が保持している。そのため、バス信号を送出するまでもなく、上記選択されずキャンセルされたバス信号は、そのバススレーブ装置で保持しており、再実行をすることにより、バススレーブ装置は選択されなかった終了信号に対応する読出しデータを再びバスに送出し、バスマスタ装置は、競合しなければ、再実行により再送出された読出しデータを取得することができる。競合した場合は、再実行要求処理を再び繰り返すこととなる。
【００６９】
（実施の形態６）
図８は本発明の実施の形態６におけるバスシステムの構成を示すブロック図である。実施の形態４および５に対して、バス信号に対する読出しデータが競合した場合の対策が異なる。
【００７０】
本実施の形態におけるバススレーブ装置は、処理結果を保持するための出力データ保持部Ｓ１３を備える。そして、実施の形態４の再送要求手段Ｍ１４及び実施の形態５の再実行要求手段Ｍ１５の代わりに、当該バススレーブ装置に対する再出力指示手段Ｍ１７を備え、それぞれのバススレーブ装置に対して再出力指示信号Ｍ１８Ａ、Ｍ１８Ｂを送出する構成をとっている。
【００７１】
以上のように構成されたバスシステムについて、以下にその動作を説明する。
【００７２】
実施の形態４，５の場合の時刻ｔ７と同様、２つのバス信号を送出した後、終了信号Ｓ１２Ａ及び終了信号Ｓ１２Ｂがともに同時に“Ｈ”レベルとなり、読出しデータバスＢＳ１が競合したとする。そのときは、実施の形態４，５と同様に、バスマスタ装置の検出部Ｍ７の選択手段Ｍ１３によって、２つの終了信号のうちどちらか一方が選択される。選択基準は予め決まっている、あるいは設定した優先度によるものとし、選択された終了信号に対応する読出しデータが選択され取得され、選択されなかった終了信号に対応する読出しデータはキャンセルされる。
【００７３】
そのとき、本実施の形態では、選択されなかった終了信号に対応するバススレーブ装置の出力データ保持部Ｓ１３に対して、再出力指示信号Ｍ１８ＡまたはＭ１８Ｂを送出する。なお、本実施の形態にかかわるバススレーブ装置は、出力データ保持部Ｓ１３にバス信号に対応する処理結果をバススレーブ装置が保持している。そのため、バス信号の送出及び処理の再実行をするまでもなく、上記選択されずキャンセルされたバス信号は、そのバススレーブ装置が保持しており、保持されている処理結果を再出力することにより、バススレーブ装置は選択されなかった終了信号に対応する読出しデータを再びバスに送出し、バスマスタ装置は、競合しなければ、再実行により再送出された読出しデータを取得することができる。競合した場合は、再出力指示処理を再び繰り返すこととなる。
【００７４】
【発明の効果】
以上のように本発明によれば、従来はウェイトサイクルとしてバス信号を送出できなかった期間でもバスが利用できるようになり、バス利用効率を向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるバスシステムの構成の一例を示すブロック図
【図２】実施の形態１におけるバスシステムの動作を示すタイミングチャート
【図３】本発明の実施の形態２におけるバスシステムのバススレーブ装置の構成を示すブロック図
【図４】本発明の実施の形態３におけるバスシステムの構成を示すブロック図
【図５】実施の形態４におけるバスシステムの構成を示すブロック図
【図６】実施の形態４におけるバスシステムの動作を示すタイミングチャート
【図７】実施の形態５におけるバスシステムの構成を示すブロック図
【図８】実施の形態６におけるバスシステムの構成を示すブロック図
【図９】従来技術のバスシステムの動作を示すタイミングチャート
【符号の説明】
ＢＳ  バス
ＢＳ１  読出しデータバス
ＢＳ２  書込みデータバス
ＢＳ３  アドレスバス
ＢＳ４  制御バス
Ｍ１Ａ，Ｍ１Ｂ  バスマスタ装置
Ｍ６  処理時間記憶部（処理時間記憶手段）
Ｍ７  検出部（検出手段）
Ｍ８  送出制御部（送出制御手段）
Ｍ１１  比較手段
Ｍ１２  処理時間情報（処理時間送受手段）
Ｍ１３  選択手段
Ｍ１４  再送要求手段
Ｍ１５  再実行要求手段
Ｍ１６Ａ，Ｍ１６Ｂ  再実行要求信号
Ｍ１７  再出力指示手段
Ｍ１８Ａ，Ｍ１８Ｂ  再出力指示信号
Ｓ１Ａ，Ｓ１Ｂ  バススレーブ装置
Ｓ４  バス信号保持部（保持手段）
Ｓ６  アドレスデコーダ
Ｓ８  読出しデータ選択部
Ｓ９  バス信号キューメモリ
Ｓ１０  キュー制御部
ＡＢＴ  調停装置
Ｔ１  処理時間検出装置（処理時間検出手段）
Ｓ１２Ａ，Ｓ１２Ｂ  終了信号
【図１】
2004213516.tif 000003
【図２】
2004213516.tif 000004
【図３】
2004213516.tif 000005
【図４】
2004213516.tif 000006
【図５】
2004213516.tif 000007
【図６】
2004213516.tif 000008
【図７】
2004213516.tif 000009
【図８】
2004213516.tif 000010
【図９】
2004213516.tif 000011