(57)【特許請求の範囲】
【請求項１】
任意のビット幅に分割された複数のバスユニットを具備するバスと、該バスを共有するとともに該バスを介して互いにデータを送受信する複数のデバイスとを含むバスシステムであって、
前記バスシステムに接続されたデバイスのバスユニット毎に占有サイクル数を登録するための登録手段と、
登録手段に登録された占有サイクル数から、空きバスユニットの幅を検出する検出手段と、
前記登録手段と前記検出手段によって算定される転送可能なデータ量と自己データ転送量を比較する比較手段と、
前記比較手段による比較の結果、データの転送が可能である場合には、占有するバスユニットを選択する選択手段と、
前記選択手段によって選択された占有するバスユニットを宣言する宣言手段と
によって転送に必要なバスユニット幅を確保しデータ転送することを特徴とするバスシステム。
【請求項２】
各デバイスにおける前記登録手段に対し前記宣言手段によって宣言された占有バスユニットに占有サイクル数を登録することを特徴とする請求項１に記載のバスシステム。
【請求項３】
前記宣言手段を用いて各デバイスに対し占有するバスユニットが転送に使用するデバイスのアドレスを出力することを特徴とする請求項１又は２に記載のバスシステム。
【請求項４】
前記宣言手段が、前記比較手段によってデータ転送が可能でないと判断された際に、該データ転送に必要なバスユニット数を他のデバイスに通知する手段を更に備えることを特徴とする請求項１から３のいずれか一項に記載のバスシステム。
【請求項５】
前記各デバイスが、連続していない複数のバスユニットを介してデータを分割して同時に転送可能に構成されていることを特徴とする請求項１から４のいずれか一項に記載のバスシステム。
【請求項６】
前記各デバイスが、転送するデータ幅に対応する数のバスユニットが占有できない際には前記数より少ない数のバスユニットを介してデータを時分割して転送するように構成されていることを特徴とする請求項１から５のいずれか一項に記載のバスシステム。
【請求項７】
前記各デバイスが、他のデバイスの登録手段に登録された占有サイクル数からデータの分割数及び占有するバスユニット数を決定するように構成されていることを特徴とする請求項６に記載のバスシステム。
【請求項８】
前記バスユニットの数が３以上であることを特徴とする請求項１から７のいずれか一項に記載のバスシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、バスシステムに関し、特に、複数ビットのビット幅を有するバスシステムにおいて情報の伝達を効率的に行い得るバスシステムに関する。
【０００２】
【従来の技術】
従来、所定のビット幅を有するバスシステムにおいては、接続されているデバイスとビット幅全てを使用しないでデータを送受信する場合でも、バス全てを占有しており、バスの未使用ビットを他の目的に使用することはできない。例えば、システムバスが６４ビット幅、接続されているデバイスが８ビット幅であり、システムバスの下位８ビットを使用する場合、システムバスの上位５６ビットは未使用であるが占有されているため、他の目的に使用することはできない。
【０００３】
第４図はこの従来例の動作の例を示す図である。デバイス１からデバイス７までの７つのデバイスが６４ビットのシステムバスに接続され、デバイス１からデバイス２に８ビットのデータを転送する場合、データは例えばシステムバスの下位８ビットを使用して転送されるが、システムバスの使用していない５６ビットについては未使用であるが占有されているため他のデバイスでは使用できない。
【０００４】
特開平７−６５１８０号公報には、所定ビット幅のバスの１サイクル中に、該ビット幅より小さいビットのデータを複数、プログラムされた動作によって複数のデバイスに同時に出力してデータ転送効率を向上させたデータ転送制御装置が開示されている。この装置においては、１サイクルがデータ転送の単位であり、データの転送は各デバイス間で同期している必要がある。
【０００５】
また、特公平７−８６８５３号公報には、２ｍビット幅のバスにｍビット幅の装置を２台接続して、１サイクルに２台の装置に同時にデータを転送するバス転送制御方式が開示されている。この方式では、接続する装置のビット幅及び接続方法が固定されており、接続される装置及び転送するデータに合わせてビット幅を変更することはできない。
【０００６】
図５は、この特公平７−８６８５３号公報に示された従来例の動作の例を示す図である。第４図と同様に、デバイス１からデバイス７までの７つのデバイスが６４ビットのシステムバスに接続され、デバイス１からデバイス２に８ビットのデータを転送する場合、データは例えばシステムバスの下位８ビットを使用してデバイス１からデバイス２へ転送される。この場合、６４ビット幅のバスは上位３２ビットと下位３２ビットの２つに分割して使用できるので、図に示したようにデバイス１へデバイス３から８ビットのデータを転送することは可能である。図では転送するデータをいずれも８ビットとしたが、上記のような場合には、３２ビットデータまで同時に転送できる。
【０００７】
【発明が解決しようとする課題】
以上説明したように、従来のバスシステム及び転送制御方式においては、接続されたデバイスは予め割り当てられたビットに対して入出力を行うよう構成されており、接続する装置及び転送するデータに合わせて、割り当てビット幅及び転送サイクルを柔軟に変更することはできない。
【０００８】
特開平７−６５１８０号公報に記載された装置においては、データ転送のサイクルは固定されており、転送するデータに合わせて柔軟にプロトコルを変更することは困難である。
【０００９】
また、特公平７−８６８５３号公報に記載された装置においては、同時に入出力可能なデータ転送経路の数は２つである。
【００１０】
本発明は上記のような問題点を解消すべく、接続する装置及び転送するデータに合わせて、柔軟に効率的にデータ転送を行うことができるバスシステムを提案するものである。
【００１１】
本発明は、複数ビットからなるバスを任意のビット幅にバスの空きビットにあわせて分割して非同期に使用可能なバスシステムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上述の目的は、任意のビット幅に分割された複数のバスユニットを具備するバスと、該バスを共有するとともに該バスを介して互いにデータを送受信する複数のデバイスとを含むバスシステムであって、前記バスシステムに接続されたデバイスのバスユニット毎に占有サイクル数を登録するための登録手段と、登録手段に登録された占有サイクル数から、空きバスユニットの幅を検出する検出手段と、前記登録手段と前記検出手段によって算定される転送可能なデータ量と自己データ転送量を比較する比較手段と、前記比較手段による比較の結果、データの転送が可能である場合には、占有するバスユニットを選択する選択手段と、前記選択手段によって選択された占有するバスユニットを宣言する宣言手段とによって転送に必要なバスユニット幅を確保しデータ転送することを特徴とする本発明のバスシステムによって達成される。
【００１３】
本発明のバスシステムは、各デバイスにおける前記登録手段に対し前記宣言手段によって宣言された占有バスユニットに占有サイクル数を登録するように構成されていてもよい。また、本発明のバスシステムは、前記宣言手段を用いて各デバイスに対し占有するバスユニットが転送に使用するデバイスのアドレスを出力するように構成されていてもよい。
【００１４】
本発明のバスシステムは、前記宣言手段が、前記比較手段によってデータ転送が可能でないと判断された際に、該データ転送に必要なバスユニット数を他のデバイスに通知する手段を更に備えるように構成されていてもよい。
【００１５】
本発明のバスシステムは、前記各デバイスが、連続していない複数のバスユニットを介してデータを分割して同時に転送可能に構成されていてもよい。
【００１６】
本発明のバスシステムは、前記各デバイスが、転送するデータ幅に対応する数のバスユニットが占有できない際には前記数より少ない数のバスユニットを介してデータを時分割して転送するように構成されていてもよい。
【００１７】
本発明のバスシステムは、前記各デバイスが、他のデバイスの登録時間に登録された占有サイクル数からデータの分割数及び占有するバスユニット数を決定するように構成されていてもよい。
【００１８】
本発明のバスシステムは、バスユニットの数が３つ以上に構成されていてもよい。
【００１９】
【発明の実施の形態】
以下、本発明のバスシステムの実施の形態を図を用いて詳細に説明する。本実施の形態においては、システムバスは６４ビット幅であり、該システムバスを８ビットのバスユニット８個に多重分割して使用する場合について説明する。
【００２０】
図１は、本発明のバスシステムに接続される各デバイスの入出力処理ブロックを示すブロック図である。各入出力ブロックは、６４ビット幅のシステムバスに接続されており、他のデバイスにより占有されているバスユニットの位置を設定するバス位置設定回路１と、他のデバイスによりバスユニットが占有されている時間を出力する占有時間確定回路２と、占有されていないバス幅を出力するバス幅選択回路３と、バス位置設定回路１、占有時間確定回路２及びバス幅選択回路３から出力されたデータからシステムバスに対する調停を行い、占有するバスの幅、バスユニットの位置及び占有時間を算出する出力制御回路７と、該出力制御回路からの指令により転送するデータの入出力を行うデータ入出力回路４と、バスユニットを占有する時間を出力する占有時間出力回路５と、占有するバスユニットを指定するバス位置出力回路６とを備えている。
【００２１】
図２は、図１の入出力処理ブロックの構造及びデータの流れを詳細に示す説明図である。
【００２２】
それぞれが８ビットの幅を有する８つの各バスユニットの状態を示す占有サイクルカウンタ８０が８つ設けられており、この占有サイクルカウンタのデータから、空いているバスユニットの位置が空きバスユニット検出手段１０により検出され、最大占有時間がカウンタ最大値検出手段２０により検出され、空いているバス幅が空きバスユニット幅検出回路３０によって検出される。
【００２３】
同時に、バスユニットが１つでも使用されているかどうかがバス状態検出回路７２によって検出される。バスユニットが１つも使用されていない場合にはバスを優先的に使用できるファーストバスマスタとして動作し、そうでない場合にはセカンドバスマスタとして動作するようにバスマスタ状態設定がなされる。
【００２４】
ファーストバスマスタとして動作する場合には、自己転送データ量から占有するバスユニット幅、バスユニット位置及び占有時間を占有バスユニット選択回路７１により選択してバス占有回路５０を介して各占有サイクルカウンタに登録して、占有したバスユニットを使用して出力データがデータ出力回路４０によって目的のデバイスへアドレスデータと共に出力される。
【００２５】
セカンドバスマスタとして動作する場合には、設定されたバスマスタ状態と自己転送データ量とを転送可能量比較回路７０で比較して、転送可能である場合にはファーストバスマスタの場合と同様にバスユニットを占有してデータが転送される。
【００２６】
次に、本実施の形態における動作について説明する。
【００２７】
図３は、本発明のバスシステムの動作の例を説明する図である。デバイス１からデバイス２に６４ビット幅のバスの下位８ビットを使用してデータが転送される場合、残りの５６ビットについては使用可能であるので、デバイス３からデバイス４への中位３２ビットを使用したデータの転送、更にデバイス５からデバイス６への上位１６ビットを使用したデータの転送を同時に行うことが可能である。
【００２８】
この場合、転送を行うデバイス間での事前の取り決めにより、データを複数に分割することにより転送データのビット数より少ないビット幅を使用して転送することも可能である。
【００２９】
図６から図８は、それぞれのデータ転送例のタイミングを示すタイミングチャートである。
【００３０】
図６は、デバイス１からデバイス２への８ビットデータの転送（１）、デバイス３からデバイス４への３２ビットデータの転送（２）、デバイス５からデバイス６への６４ビットデータの転送（３）、デバイス７からデバイス１への６４ビットの転送（４）が順に要求された場合を示している。
【００３１】
全てのバスユニットが開放されている状態（開始）で、デバイス１からデバイス２への８ビットデータの転送が要求されると、デバイス１は自分の占有サイクルカウンタの値が全て０であるかどうかを確認する。全ての占有サイクルカウンタの値が０であればデバイス１はファーストバスマスタとして動作し、そうでない場合にはセカンドバスマスタとして動作可能であるか否かを判断する必要がある。この場合には全てのバスユニットは開放されているので、デバイス１はファーストバスマスタとして動作する。この処理サイクルは図中「調停」で示され、図中の開始時点から時点ａまでの期間に行われる。
【００３２】
次に、デバイス１は占有するバスユニット幅、バスユニット位置及び占有時間を確保するため、専用線又はデータバス等の信号線を介して各バスユニットの占有サイクルカウンタに登録する。その後、占有したバスユニットを使用して目的のデバイスのアドレスを送信して、該アドレスのデバイスがデータを受け取るように設定する。この処理サイクルは図中「宣言」で示されている。
【００３３】
占有サイクルカウンタに登録された情報により、他のデバイスは図中の時点ａから時点ｂまでのデバイス１が転送を終了するまでの期間（ファーストバスマスタ転送期間）は、デバイス１の占有するバスユニットに対してのアクセスを自主的に禁止する。
【００３４】
宣言の終了後、ファーストバスマスタであるデバイス１は、占有しているバスユニットを使用してデバイス２に実際にデータを転送する。図中「転送」で示されている期間がこれに相当する。
【００３５】
上記デバイス１からデバイス２へのファーストバスマスタ転送期間の間、未使用となる５６ビット（７バスユニット）幅については以下のような手順に基づいて他のデバイスで使用される。
【００３６】
デバイス１による「調停」の終了後、デバイス３は、占有サイクルカウンタにより、占有されているバスユニット、空いているバス幅及び専有時間を認識する。また、他のデバイスが、現在空いているバス幅より広いバス幅で転送を行おうとしているか否かを確認する。同時に自分の転送しようとするデータがファーストバスマスタ転送期間内に転送可能であるか否かを占有サイクルカウンタの値から計算して確認する。
【００３７】
自分の転送がファーストバスマスタ転送期間内に転送可能でなく、かつ現在空いているビット幅より広いビット幅で転送を行おうとしているデバイスがある場合、デバイス３は、自分の転送がファーストバスマスタ転送期間内に終了するように時間調整を行う。時間調整によりデバイス４への転送が可能であればデータを転送し、不可能であれば転送を中止して次の転送の機会を待つ。
【００３８】
デバイス３から４への３２ビット幅を使用したデータ転送が行われている間、残りの２４ビットはまだ未使用のままである。ここで、デバイス５から６への６４ビットデータの転送が要求されて「調停」が行われ、デバイス５が自己の転送データを４分割すればファーストバスマスタ転送期間内に転送可能であると判断した場合は、未使用の２４ビット幅の内１６ビット（２バスユニット）を使用してデータを４つに時分割してデバイス５からデバイス６への転送が行われる。
【００３９】
以上の処理により、システムバスのビット幅６４ビットの内、未使用のビット幅は８ビット（１バスユニット）となる。この時点で、デバイス７がデバイス１へ６４ビットデータの転送を行いたい場合、６４ビットを８つに時分割して転送するとファーストバスマスタ転送期間内に終了しないと判断した場合、デバイス７は確保したいビット数を専用線によって他のデバイスに宣言し、目的のデバイス転送に必要なビット幅が確保されるまで転送を待つ。
【００４０】
以上説明した図６の例では、バスの占有要求は順次出されたものとして説明したが、実際には複数のデバイスから同時にバスを確保しようとする場合も発生する。この場合の調停方法としては、デバイス固有の情報により起動時に設定した順番により周期的に権利を与え、自分の順番の際に転送を行わない場合にはその旨他のデバイスに通知するような方法、従来のアービトレーションのように先着順に確保する方法、及びＳＣＳＩ機器で行われているようにデバイス固有のＩＤデータをデータバスに示してその優先順位によりバスを確保する方法等が考えられる。
【００４１】
図７は、図６のデバイス３からデバイス４へのデータ転送（２）がファーストバスマスタ転送期間内に終了しない場合においても転送が行われる変形例を示しており、この場合にはデバイス７からデバイス１への６４ビット幅を使用したデータ転送（４）の調停は、デバイス３からデバイス４への転送が終了した時点ｃから後に行われる。
【００４２】
図８は、接続されたデバイスが番号の若い順にアクセス優先順位を持っており、デバイス１から２への６４ビット幅を使用したデータ転送（１）が行われている間に、デバイス３からデバイス４への３２ビットデータの転送（２）、デバイス７からデバイス１への６４ビットデータの転送（４）、及びデバイス５からデバイス６への６４ビットデータの転送（３）が順に要求された場合のタイミングチャートである。この場合、デバイス１からデバイス２へのデータ転送終了後の時点ｂからデバイス３の調停が行われ、時点ｃ以降にデバイス３からデバイス４へのデータ転送が行われる。この間、デバイス５及びデバイス７は転送リクエストを送信後に待ち状態となる。
【００４３】
【発明の効果】
請求項１に記載のバスシステムによれば、バスの未使用ビットを使用して異なるデバイス間で同時かつ非同期にデータの転送を行うことができる。これによりバスの情報伝達効率を大幅に向上することが可能となる。
【００４４】
請求項２に記載のバスシステムによれば、各デバイスが自身の登録手段の内容から他のデバイスの使用しているバスユニット及び占有時間を知ることができる。
【００４５】
請求項３に記載のバスシステムによれば、あるデータ転送が終了した後に要求のあったデバイスに優先的にバスユニットを開放することが可能となる。
【００４６】
請求項４に記載のバスシステムによれば、データのビット数に対応する数のバスユニットを連続して確保できない場合でも、バス中の未使用のバスユニットの数が必要な数以上であればデータを転送することが可能となる。
【００４７】
請求項５記載のバスシステムによれば、データのビット数に対応する数のバスユニットを確保できない場合でも、データを転送することが可能となる。
【００４８】
請求項６記載のバスシステムによれば、データを時分割して転送する際に効率的にバスを使用することが可能となる。
【００４９】
請求項７記載のバスシステムによれば、３つ以上の経路で同時に非同期にデータ転送することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態のブロック図である。
【図２】図１のブロック図の構造を詳細に示す図である。
【図３】本発明のデータ転送の例を示す図である。
【図４】従来の装置によるデータ転送の例を示す第１の図である。
【図５】従来の装置によるデータ転送の例を示す第２の図である。
【図６】本発明のデータ転送のタイミングチャートの第１の例を示す図である。
【図７】本発明のデータ転送のタイミングチャートの第２の例を示す図である。
【図８】本発明のデータ転送のタイミングチャートの第３の例を示す図である。
【符号の説明】
１  バス位置設定回路
２  占有時間確定回路
３  バス幅選択回路
４  データ入出力回路
５  占有時間出力回路
６  バス位置出力回路
７  出力制御回路
【図１】
0003903393.tif 000002
【図２】
0003903393.tif 000003
【図３】
0003903393.tif 000004
【図４】
0003903393.tif 000005
【図５】
0003903393.tif 000006
【図６】
0003903393.tif 000007
【図７】
0003903393.tif 000008
【図８】
0003903393.tif 000009