(57)【特許請求の範囲】
【請求項１】
転送するデータの幅が異なる複数のバスマスタからのデータ経路となる所定のバス幅を有するシステムバスと、
前記所定のバス幅を有するシステムバスの各バスの使用状況または空き状況を監視するバス状況監視部と、
前記複数のバスマスタのいずれか１つのバスマスタから転送要求があった場合に、前記バス状況監視部が監視している前記各バスの使用状況または空き状況に基づいて、転送許可信号と、転送許可バス幅信号と、バスライン位置信号を前記転送要求のあったバスマスタと、転送先のバスマスタまたはターゲットに送信するバス割当部と、
前記転送するデータの幅が異なる複数のバスマスタのいずれか１つのバスマスタが転送要求をしたデータ幅が前記バス割当部によって割当てられたバス幅より大きいとき、バスマスタからのデータを割当てられたバス幅を満たすように分割し、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つのバスマスタが転送要求をしたデータ幅が前記バス割当部によって割当てられたバス幅より小さいとき、バスマスタからのデータを割当てられたバス幅を満たすように結合するバス幅可変部と
を備えるシステムバス制御装置。
【請求項２】
前記バス状況監視部は、前記システムバスの各バスの使用状況または空き状況を検知し、または前記バスマスタが転送要求したデータの幅とデータ量から前記システムバスの使用状況または空き状況を保持する請求項１に記載のシステムバス制御装置。
【請求項３】
前記バスマスタが転送要求したデータが転送できない場合にデータを貯蔵するデータ貯蔵部を更に備え、前記データ貯蔵部にデータが貯蔵されている場合に、前記バス状況監視部が使用されていないバスを検出したとき、または保持した使用状況または空き状況から使用されていないバスを割り出したとき、前記バス幅可変部は、前記使用されていないバス幅に対応するバス幅になるように、前記データ貯蔵部に貯蔵されたデータのバス幅を変更する請求項１に記載のシステムバス制御装置。
【請求項４】
前記バス割当部が割当てるバス幅は、前記転送要求したバス幅の２の階乗倍または２の階乗分の１である請求項１に記載のシステムバス制御装置。
【請求項５】
前記バス状況監視部は、更に前記バスマスタが転送要求したバス幅とデータ量から、データ転送の終了予定タイミングを算出する終了予定部を有する請求項１に記載のシステムバス制御装置。
【請求項６】
前記バス割当部は、前記バスマスタから優先順位の高い転送要求があった場合、その優先順位の高い転送要求のバス幅分だけ転送中のデータのバス幅を減少させると共に、前記優先順位の高い転送要求をしたバスマスタにシステムバスを割当てる請求項１に記載のシステムバス制御装置。
【請求項７】
前記優先順位は、前記バスマスタまたは前記バスマスタに対応する前記バス幅可変部に対して予め割当てられている請求項６に記載のシステムバス制御装置。
【請求項８】
前記優先順位は、前記バスマスタが転送要求したデータ量に応じて割当てる請求項７に記載のシステムバス制御装置。
【請求項９】
転送するデータの幅が異なる複数のバスマスタからのデータ経路となる所定のバス幅を有するシステムバスと、
前記所定のバス幅を有するシステムバスの各バスの使用状況または空き状況を監視するバス状況監視部と、
前記複数のバスマスタのいずれか１つのバスマスタから転送要求があった場合に、前記バス状況監視部が監視している前記各バスの使用状況または空き状況に基づいて、転送許可信号と、転送許可バス幅信号と、バスライン位置信号を前記転送要求のあったバスマスタと、転送先のバスマスタまたはターゲットに送信するバス割当部と、
前記転送するデータの幅が異なる複数のバスマスタのいずれか１つのバスマスタが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より大きいとき、バスマスタからのデータを割当てられたバス幅を満たすように分割し、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つのバスマスタが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より小さいとき、バスマスタからのデータを割当てられたバス幅を満たすように結合するバス幅可変部と
を備える集積回路。
【請求項１０】
バスマスタからのデータ経路となる所定のバス幅を有するシステムバスと、
前記システムバスに接続され、転送するデータを一時記憶するバッファと、バス幅を変更するバス幅可変部を有する、転送するデータの幅が異なる複数のバスマスタと、
前記所定のバス幅を有するシステムバスの各バスの使用状況または空き状況を監視するバス状況監視部と、
前記バスマスタからの転送要求があった場合に、前記バス状況監視部によって監視されているシステムバスの使用状況または空き状況に基づいて、転送許可信号と、転送許可バス幅信号と、バスライン位置信号を前記転送要求のあったバスマスタと、転送先のバスマスタまたはターゲットに送信するバスアービタと
を備え、
前記バス幅可変部は、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つのバスマスタが転送要求をしたデータ幅が前記バス割当部によって割当てられたバス幅より大きいとき、バスマスタからのデータを割当てられたバス幅を満たすように分割し、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つのバスマスタが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より小さいとき、バスマスタからのデータを割当てられたバス幅を満たすように結合するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムバスを有効活用し、効率的なデータ転送を実現するシステムバス制御装置、集積回路およびデータ処理システムに関する。
【背景技術】
【０００２】
ＬＳＩのシステムバスあるいはパソコンや画像処理装置のシステムバスまたは各種データ処理装置のシステムバスを有効活用し、効率的なデータ転送するためにバス調停を行うことが公知である。特許文献１は、アドレス／データバスを複数のビット幅に分割し、複数のブロックに分割したブロックごとの値のうち、変化のあったブロックの値のみを転送するものである。また特許文献２は、システムバスを複数ビットに分割し、非同期に使用可能なシステムバスである。特許文献３は、バスを複数のバスラインの単位に分割して、データ転送量に対応してバスを使用することにより、バスの使用効率を向上するものである。特許文献４データバスをバス幅に分割し、それぞれにバス使用権を設け、データ転送要求に対して、分割したバスの使用権を出すように調停するものである。
【特許文献１】特開平１１−３４５１９６号公報
【特許文献２】特開平０９−３１９６９９号公報
【特許文献３】特開平５−２８２２４２号公報
【特許文献４】特開２００４−１１０２２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１によれば、転送速度を向上することができる。特許文献２によれば、非同期に転送することが可能になる。特許文献３によれば、バスを複数のバスラインに分割するので、より効率的にバスを使用することができる。特許文献４によれば、バスの一方の半分を送信側、バスの他の半分を受信側のように分割して使用することができる。
しかしながら、転送要求したバス幅が使用許可されたバス幅より大きい場合は、データ転送できないので、待機しなければならなかった。
【０００４】
図１３は転送要求したバス幅が転送許可されたバス幅より大きく、データ転送を待機する場合を説明するためのタイミング図である。図１３の縦方向はシステムバスのバス幅を示し、横方向は転送タイミングを示す。バス幅は、８ビット単位のシステムバスが４つあることを示している。図１３は、タイミングｔ１〜ｔ８まで、バスマスタＡ（８ビット）と、バスマスタＢ（１６ビット）がデータ転送していることを示している。このとき８ビットのバス幅は空き状態になっている。
このタイミングｔ１〜ｔ８の間に、バスマスタＣから１６ビットの転送要求があると、システムバスは８ビットの空きしかないため、バスマスタＡまたはＢの転送が終了するまで、バスマスタＣは転送要求を待機しなければならない。そして、バスマスタＡまたはＢの転送が終了すると、システムバスに１６ビットの空きができるので、バスマスタＣはタイミングｔ９から転送することができる。また図１３に示す例では、タイミングｔ９でバスマスタＡとＢの転送が終了して、システムバスには３２ビット分の空きができるが、この例では、１６ビット分を使用し、１６ビットは空き状態であることを示している。
【０００５】
本発明は、以上のようにシステムバスに空きがあっても、そのバス幅が転送要求したバス幅より小さい場合に待機しなければならないような状況、あるいはシステムバスが空いているにも関わらず、データ転送要求したバス幅分しか使用されないような状況に鑑みてなされた発明である。即ち、転送要求したバス幅が使用許可されたバス幅よりも大きい場合でもデータ転送を可能にするシステムバス制御装置を提供するものである。また使用可能なバス幅が転送要求したバス幅より大きい場合、その大きな使用可能なバス幅を使用してデータ転送することを可能にするシステムバス制御装置を提供するものである。
このように、本発明は、システムバスを有効利用し、効率的データ転送を実現するシステムバス制御装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のシステムバス制御装置は、転送するデータの幅が異なる複数のバスマスタからのデータ経路となる所定のバス幅を有するシステムバスと、前記所定のバス幅を有するシステムバスの各バスの使用状況または空き状況を監視するバス状況監視部と、前記複数のバスマスタのいずれか１つのバスマスタから転送要求があった場合に、前記バス状況監視部が監視している前記各バスの使用状況または空き状況に基づいて、前記バスマスタに転送許可するバス幅を割当てるバス割当部と、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より大きいとき、バスマスタからのデータを割当てられたバス幅に合わせて分割し、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より小さいとき、バスマスタからのデータを割当てられたバス幅に合わせて結合するバス幅可変部とを備える。これにより、使用許可が与えられたバス幅に合わせてデータ転送するバス幅を変更するので、転送要求を待機させない。
【０００７】
前記バス状況監視部は、前記システムバスの各バスの使用状況または空き状況を検知し、または前記バスマスタが転送要求したデータの幅とデータ量から前記システムバスの使用状況または空き状況を保持することが望ましい。これにより、システムバスの使用状況または空き状況に対応して転送要求されたデータを転送することができる。
また、前記バスマスタが転送要求したデータが転送できない場合にデータを貯蔵するデータ貯蔵部を更に備え、前記データ貯蔵部にデータが貯蔵されている場合に、前記バス状況監視部が使用されていないバスを検出したとき、または保持した使用状況または空き状況から使用されていないバスを割り出したとき、前記バス幅可変部は、前記使用されていないバス幅に対応するバス幅になるように、前記データ貯蔵部に貯蔵されたデータのバス幅を結合することが望ましい。これにより、システムバスが全部使用中の場合は、バッファにデータを一時記憶し、バスが使用できる状態になったときは、その使用できるバス幅に合わせてデータを結合するので、転送時間を短くすることができる。
また、前記バス割当部が割当てるバス幅は、前記転送要求したバス幅の２の階乗倍または２の階乗分の１であるとよい。これにより、半端な空きのバスを作らない。
【０００８】
また、本発明のシステムバス制御装置は、前記バス状況監視部が、更に前記バスマスタが転送要求したバス幅とデータ量から、データ転送の終了予定タイミングを算出する終了予定部を有することが望ましい。これにより、システムバスを計画的に使用することができる。
また、本発明のシステムバス制御装置は、前記バス割当部が、バスマスタから優先順位の高い転送要求があった場合、その優先順位の高い転送要求のバス幅分だけ転送中のデータのバス幅を減少させると共に、前記優先順位の高い転送要求をしたバスマスタにシステムバスを割当てることが望ましい。これにより、システムのパフォーマンスが向上する。
また前記優先順位は、前記バスマスタまたは前記バスマスタに対応する前記バス幅可変部に対して予め割り当てられていることが望ましい。これにより、優先順位に従って転送することができる。
前記優先順位は、前記バスマスタが転送要求したデータ量に応じて割り当てられることが望ましい。これにより、データ量の順に転送することができる。
【０００９】
また、別の観点によれば、本発明は集積回路であって、転送するデータの幅が異なる複数のバスマスタからのデータ経路となる所定のバス幅を有するシステムバスと、前記所定のバス幅を有するシステムバスの各バスの使用状況または空き状況を監視するバス状況監視部と、前記複数のバスマスタのいずれか１つのバスマスタから転送要求があった場合に、前記バス状況監視部が監視している前記各バスの使用状況または空き状況に基づいて、前記バスマスタに転送許可するバス幅を割当てるバス割当部と、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より大きいとき、バスマスタからのデータを割当てられたバス幅に合わせて分割し、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より小さいとき、バスマスタからのデータを割当てられたバス幅に合わせて結合するバス幅可変部とを備えることを特徴とする。これによりシステムバス制御装置は集積回路として得ることができる。
更に本発明は別の観点によれば、バスマスタからのデータ経路となる所定のバス幅を有するシステムバスと、前記システムバスに接続され、転送するデータを一時記憶するバッファと、バス幅を変更するバス幅可変部を有する、転送するデータの幅が異なる複数の複数のバスマスタと、前記所定のバス幅を有するシステムバスの各バスの使用状況または空き状況を監視するバス状況監視部と、前記バスマスタからの転送要求があった場合に、前記バス状況監視部によって監視されているシステムバスの使用状況または空き状況に基づいて、前記バスマスタに転送許可するバス幅を割当てるバス割当部を有するバスアービタとを備え、前記バス幅可変部は、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より大きいとき、バスマスタからのデータを割当てられたバス幅に合わせて分割し、前記転送するデータの幅が異なる複数のバスマスタのいずれか１つが転送要求をしたバスマスタのデータ幅が前記バス割当部によって割当てられたバス幅より小さいとき、バスマスタからのデータを割当てられたバス幅に合わせて結合するデータ処理システムである。
【発明の効果】
【００１０】
本発明によれば、システムバスに空きがある場合、その空きのバス幅に対応させて転送要求のバス幅を変更するので、バスを全部有効に使用し、したがって転送要求のあるデータを待機状態にすることがなくなるか、待機時間を短くすることができる。その結果システムバスを有効活用し、効率的なデータ転送を実現する。
また優先順位の高い転送データは、優先順位の低いデータより優先して転送することができる。
【発明を実施するための最良の形態】
【００１１】
本発明は、ＡＳＩＣ技術によって作成されるＬＳＩのシステムバスあるいはパソコンや画像形成装置のシステムバスまたは各種データ処理装置のシステムバスを有効活用し、効率的にデータ転送するシステムバス制御装置である。
以下には、本発明のシステムバス制御装置をＬＳＩに適用した場合の構成図を示す図１を用いて、説明する。
図１に示すように、バスマスタ１は、バスマスタ側制御部２を介してシステムバス３に接続される。バスマスタ１およびバスマスタ側制御部２は複数あり、図１では、バスマスタ１およびバスマスタ側制御部２をそれぞれ５つ示している。バスマスタ１およびバスマスタ側制御部２は、５つ以上であってもよく、またこれ以下であってもよい。各バスマスタ１及び各バスマスタ側制御部２を区別して説明する場合は、添え字ａ〜ｅを付して説明する。バスマスタ１ａ、１ｄは８ビットのデータ信号を送信または受信し、バスマスタ側制御部２ａ、２ｄと８ビットデータ線によりそれぞれ接続される。バスマスタ１ｂ、１ｃ、１ｅは１６ビットのデータ信号を送信または受信し、バスマスタ側制御部２ｂ、２ｃ、２ｅと１６ビットデータ線によりそれぞれ接続される。
またシステムバス３は、ターゲット側制御部４を介してターゲット５に接続される。ターゲット側制御部４およびターゲット５は複数あり、図１では、ターゲット側制御部４およびターゲット５をそれぞれ３つ示している。ターゲット側制御部４およびターゲット５は、３つ以上であってもよく、またこれ以下であってもよい。
図１にはシステムバス３だけを示し、アドレスライン、コマンドラインを図示していないが、アドレスライン、コマンドラインは別に備えられ、バスマスタ側制御部２とターゲット側制御部４を接続する。
また、システムバス３にバスアービタ６が接続される。上記バスマスタ側制御部２および４は図２を用い、バスアービタ６は図３を用いて後述する。
【００１２】
バスマスタ１は、例えば、ＣＰＵやＤＭＡコントローラ入力部、出力部、ＣＰＵ、ＲＡＭであり、これらはＣＰＵは直接ターゲットのデータを読み書きし、ＤＭＡコントローラはターゲット間のデータ転送をＣＰＵに代わって制御するモジュールである。
データを入力または出力する双方向のデバイスである。これらはＤＭＡによって構成するのが好ましい。ターゲット５は、バスマスタ１からアドレス、コマンドを受取り、受取ったアドレス、コマンドをデコードするデバイスであり、その外側に、例えばハードディスク、ＲＯＭ、ＲＡＭのような外部メモリ記憶装置やＩ／Ｏのようなデバイスを接続する。図１に枠で囲んだ箇所がＬＳＩ内またはボード内の構成である。ＬＳＩの大きさによっては、バスマスタ１およびターゲット５を含まないようにして、ＬＳＩを構成してもよい。
バスマスタ１より送信されたコマンド及びデータは、バスマスタ側制御部２、システムバス３およびターゲット側制御部４を介してターゲット５に送信される。ターゲット５はバスマスタ１からのコマンドがライト命令であればデータを入力し、指定されたアドレスに保持する。リード命令であれば指定されたアドレスのデータをバスマスタに対して出力する。
または一のバスマスタ１からシステムバス３を介して他のバスマスタ１に送信される。通常ターゲット４は、バスマスタ１からデータを受信するだけである。
【００１３】
図２はバスマスタ側制御部２のブロック図を示す。バスマスタ側制御部２は、バスマスタ１からアドレス信号ｍａｄｒを受信するアドレスライン１１、バスマスタ１から転送要求するバス幅、データ量（またはバースト数）を含むコマンド信号ｍｃｍｄを受信するコマンドライン１２、バスマスタ１からデータ信号ｍｄａｔａを送信または受信するデータライン１３、バスマスタ１から有効信号ｍｖｌｄを受信する有効信号ライン１４を備え、それぞれバッファ１５に接続される。バッファ１５は、各ラインより受信する信号または各ラインに送信する信号を少なくとも単位バースト（例えば、８バースト）分を貯蔵できる容量を有する。バッファ１５は更にバス幅可変部１６に接続される。バス幅可変部１６は、アドレス信号ｓａｄｒをターゲット５に送信するアドレスライン２１、コマンド信号ｓｃｍｄをターゲット５に送信するコマンドライン２２、データ信号ｓｄａｔａをシステムバス３を介して転送するデータライン２３、有効信号ｓｖｌｄをターゲット５に送信する有効信号ライン２４を備える。
【００１４】
バス幅可変部１６は、バスアービタ６から命令されるバスサイズ信号ｂｓｉｚｅに対応して、バスマスタ１から送信されたデータのバス幅を変更するため、バス幅を分割または結合する機能を有する。例えば、バスマスタ１から送信された１６ビット幅のデータを８ビット幅ずつ２サイクルに分割する。または８ビット幅のデータを２つ結合して１６ビット幅のデータを作る。ここで、データを結合する際には、バスマスタ１より送信されたデータのビット幅を２の階乗倍または整数倍するように結合する。またデータを分割する際には、バスマスタ１より送信されたデータのビット幅を２の階乗分の１にするように分割する。またバス幅可変部１６は検出部１７に接続され、バスマスタ１からの転送要求ｍｒｅｑを検出し、バスアービタ６に転送要求ｓｒｅｑを出力する。また検出部１７はバスアービタ６からの転送許可信号ｓｇｎｔを検出し、バスマスタ１に転送許可信号ｍｇｎｔを出力する。
また、バス幅可変部１６は演算部１８に接続され、バスアービタ６からの許可サイズ信号ｂｓｉｚｅを受信して、バスマスタ１から送信されたデータのバス幅を分割するか、結合するかを演算する。
以上は、バスマスタ側制御部２について説明したが、ターゲット側制御部４も同様の構成である。但しターゲット側制御部４では、バスマスタ１に代えてターゲット５が接続され、ターゲット５とシステムバス３の間のデータを処理する。
【００１５】
図３は、バスアービタ６のブロック図を示す。バスアービタ６は、図３に示すように調停部３１と、演算部３２を備える。調停部３１は各バスマスタ側制御部２ａ〜２ｅに接続され、各バスマスタ側制御部２ａ〜２ｅから転送要求信号ｒｅｑＡ〜ｒｅｑＥを受信する。ここで、Ａ〜Ｅは、バスマスタ１ａ〜１ｅに送信または受信する信号であることを表す。以下も同じ。転送要求信号ｒｅｑＡ〜ｒｅｑＥは、図２に示した各バスマスタ側制御部２の転送要求ｓｒｅｑに相当する。そして調停部３１は演算部３２と交信してバスの調停を行い、各バスマスタ側制御部２ａ〜２ｅに調停の結果として、バスの使用許可信号ｇｎｔＡ〜ｇｎｔＥを送信する。使用許可信号ｇｎｔＡ〜ｇｎｔＥは、図２に示した各バスマスタ側制御部２の転送許可信号ｓｇｎｔに相当する。
演算部３２は調停部３１が転送要求信号ｒｅｑＡ〜ｒｅｑＥを受信したとき、バスＡ〜Ｄの状況をステータス信号ｂｓｔｓＡ〜ｂｓｔｓＤによりチェックする。このチェックすることを請求項では、監視すると称している。各バスＡ〜Ｄの状況のチェックとは、システムバス３を４分割し、その分割した各バスの使用状況または空き状況を検出することである。またはバスアービタ６が転送許可したバス幅とデータ量（またはバースト数）からバスの使用状況または空き状況を保持することである。このようにバスの使用状況または空き状況を保持することにより、システムバスの使用計画を立てることができる。この実施形態の場合、システムバス３は、８ビットことに４つに分割しているので、ステータス信号ｂｓｔｓＡ〜ｂｓｔｓＤは４つであるが、システムバスの大きさ、分割するバス幅によって、ステータス信号の数は変化する。
【００１６】
また演算部３２は各バスマスタ側制御部２ａ〜２ｅからコマンド信号ｓｃｍｄＡ〜ｓｃｍｄＥを受信する。コマンド信号ｓｃｍｄＡ〜ｓｃｍｄＥは、図２に示したバスマスタ側制御部２のコマンド信号ｓｃｍｄに相当し、バス幅とデータ量の情報を含む。演算部３２は、コマンド信号ｓｃｍｄＡ〜ｓｃｍｄＥに含まれるバス幅およびデータ量と、各バスの使用状況または空き状況を示すステータス信号ｂｓｔｓＡ〜ｂｓｔｓＤから転送許可する場合のバス幅を演算する。この演算のとき、バス幅とともに、使用するバス位置を求める。その演算結果をバスの使用許可信号ｇｎｔＡ〜ｇｎｔＥとともに、転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥを転送要求したバスマスタ側制御部２に与える。このように転送許可するバス幅を演算し、転送許可バス幅信号を送信することを請求項ではバス幅を割当てると称している。
転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥは、図２に示したバスマスタ側制御部２の許可サイズ信号ｂｓｉｚｅに相当する。使用許可信号ｇｎｔＡ〜ｇｎｔＥと転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥは、転送要求したバスマスタ側制御部２だけでなく、転送先のターゲット側制御部４に送信してもよい。あるいは、転送許可を受けたバスマスタ側制御部２が転送先のターゲット側制御部４または転送先のバスマスタ側制御部２に使用許可信号ｇｎｔＡ〜ｇｎｔＥと転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥを転送してもよい。バスアービタ６は使用許可信号ｇｎｔＡ〜ｇｎｔＥと転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥだけでなく、データ量（またはバースト数）、バスラインの位置信号を含んでもよい。
【００１７】
本発明のバスシステム制御装置は以上のように構成され、次のように動作する。
図４は、本発明のシステムバス制御装置により、バス幅を分割してデータ転送する場合のタイミングを示す。図４は、８ビット単位のシステムバスが４つある場合に、タイミングｔ１〜ｔ８まで、バスマスタ１ａ（８ビット）と、バスマスタ１ｂ（１６ビット）のデータを転送していることを示している。図４にはバスマスタ１ａのデータをＡ１〜Ａ８で表し、バスマスタ１ｂのデータをＢ１〜Ｂ８で表している。以下も同じ。このタイミングｔ１〜ｔ８の間に、バスマスタ１ｃから１６ビットの転送要求があると、システムバス３には８ビットの空きがあるので、バスアービタ６はバスマスタ１ｃに対して転送許可を与える。但し，このとき転送許可するバス幅は、８ビットである。そのためバスマスタ１ｃのデータ幅可変部１６は、１６ビットのデータを８ビットずつの２サイクルの信号Ｃ１ａ、Ｃ１ｂ、Ｃ２ａ、Ｃ２ｂ・・・のように分割する。バスアービタ６の使用許可信号ｇｎｔＣおよび転送許可バス幅信号ｂｓｉｚｅＣ、バスラインの位置情報は、バスマスタ１ｃのバスマスタ側制御部２ｃに与えるだけでなく、転送先のバスマスタまたはターゲットに対しても送信するとよい。または転送許可を受けたバスマスタ１ｃより送信するコマンドｍｃｍｄの中に含めて送信してもよい。このようにして８ビット幅に分割したデータを転送するので、システムバス３の空きを有効に使用することができる。その結果として、バスの使用効率を向上させることができる。
【００１８】
図５は、本発明のシステムバス制御装置により、バス幅を結合してデータ転送する場合のタイミングを示す。図５は、８ビット単位のシステムバスが４つある場合に、タイミングｔ１〜ｔ８まで、バスマスタ１ａ（８ビット幅のデータＡ）と、バスマスタ１ｂ（１６ビット幅のデータＢ）、バスマスタ１ｃ（８ビット幅のデータＣ）がそれぞれデータ転送していることを示している。ここで、タイミングｔ１〜ｔ８の間に、バスマスタ１ｄのバスマスタ側制御部２ｄから８ビット幅のデータＤの転送要求があると、システムバス３は全く空きがないので、バスアービタ６はバスマスタ１ｄのバスマスタ側制御部２ｄに待機命令を出す。あるいは、使用許可信号ｇｎｔＤを出すが、そのとき許可する転送許可バス幅信号ｂｓｉｚｅＤは、バス幅が０である、と言うようにしてもよい。そのためバスマスタ１ｄからのデータはバッファ１５ｄに一時貯蔵される。
そして、タイミングｔ９のとき、バスマスタ１ａ、１ｂ、１ｃのデータ転送が終了して、３２ビット幅の空きができる。したがってバスアービタ６は、バスマスタ１ｄに使用許可信号ｇｎｔＤと３２ビット幅の転送許可バス幅信号ｂｓｉｚｅＤを出す。すると、バスマスタ１ｄのデータ幅可変部１６ｄは、８ビット幅のデータを４つ結合して３２ビット幅のデータを作成する。このとき、バスマスタ１ｄは３２ビット全部を使用せずに、１６ビットまたは２４ビットを使用しても構わない。
このようにしてデータを結合して、３２ビット幅のデータとして転送する。これにより、データ転送時間を短くすることができ、データの効率的転送を実現する。
【００１９】
図６は、本発明のシステムバス制御装置が優先順位の高いデータを優先して転送する場合を示す。図６は、８ビット単位のシステムバスが４つある場合に、タイミングｔ１〜ｔ４まで、バスマスタ１ａ（８ビット幅のデータＡ）と、バスマスタ１ｂ（１６ビット幅のデータＢ）をデータ転送していることを示している。ここで、タイミングｔ５のとき、優先順位の高いバスマスタ１ｅから１６ビット幅の転送要求があると、システムバス３は８ビット幅の空きしかないので、バスアービタ６は、優先順位が低いバスマスタ１ｂに転送許可バス幅信号ｂｓｉｚｅＢのバス幅を１６ビットから８ビットに減少させる。このためバスマスタ１ｂのバス幅可変部１６ｂは８ビットに変更する。従って、タイミングｔ５〜ｔ８では８ビットのバス幅でデータ転送している。
これにより、空きのバス幅が１６ビットになるので、バスマスタ１ｅに１６ビット幅の転  送許可バス幅信号ｂｓｉｚｅＢを出す。このような結果、バスマスタ１ａ及び１ｂが使用するバス幅は８ビットになり、バスマスタ１ｅが使用するバス幅は１６ビットになる。
そして、タイミングｔ９のとき、バスマスタ１ａの転送が終了するので、バスマスタ１ｂと１ｅがシステムバスを１６ビットずつ使用してデータ転送を再開する。このとき、使用するバス位置が変更するので、バスアービタ６はバス位置の変更情報をバスマスタ側制御部２に送信する。
【００２０】
この例では、バスマスタ１ｂは１６ビット幅のデータを８ビット幅のデータに変更して転送するが、場合によっては空きのバス幅がなくなることがある。そのような場合、バスマスタ１ｂに対して、転送許可は与えたままで、転送許可バス幅信号ｂｓｉｚｅＢのバス幅を０にする。このように転送許可バス幅信号ｂｓｉｚｅＢのバス幅を０にすることにより、バスマスタ１ｂに対して転送の中止でなく、一時停止であることを示し、空きのバス幅が発生したとき、継続して転送を再開することができる。
【００２１】
以上のようにして、バスマスタ１ａ、１ｂが転送中に、優先順位の高いバスマスタ１ｅの転送要求がきた場合、優先順位の低いバスマスタ１ｂからの転送要求は、バスマスタ１ｅの転送要求に必要なバス幅を解放するので、バスマスタ１ｅの転送帯域を保証することができる。ここで、優先順位はバスマスタごとまたはそのバスマスタに対応するバス幅可変部に予め設定しておいてもよい。またデータ量によって決めてもよい。データ量が大きすぎる場合は、他のデータ量の小さいデータを優先させるようにデータ量の小さい順に優先順位を高くするとよい。例えば、データは単位バースト（例えば、８バースト）で区切られるが、そのような場合でも単位バーストが継続するようなデータは、データ量が大きすぎると判定してもよい。また画像形成装置では、レーザプリンタのポリゴンミラーが回転しており、感光体をスキャンしているときは、プリントデータを優先させる。そして感光体をスキャンしていないときは、他のデータを優先させるようにしてもよい。あるいは転送時刻が決められているようなデータはその時刻のとき優先させるようにする。
【００２２】
以上に説明した図４のタイミングを、図７に示すバスアービタ６のフローチャートを用いて処理順に説明する。
最初のステップＳ１は、システムバス制御装置が転送要求の有無を検出するステップである。転送要求の有無は、バスアービタ６の調停部３１が転送要求信号ｒｅｑＡ〜ｒｅｑＥの有無によって検出する。転送要求がなければステップＳ１に戻る。転送要求があると、ステップＳ２に進み、転送要求されたバス幅をバスアービタ６の演算部３２がコマンド信号ｃｍｄＡ〜ｃｍｄＥによってチェックする。次にステップＳ３では現在のシステムバス３の空きバス幅を演算部３２がステータス信号ｂｓｔｓＡ〜ｂｓｔｓＤによってチェックする。次のステップＳ４では、上記転送要求のあったデータのバス幅より、空きのバス幅が大きいか否か判断する。転送要求のあったデータのバス幅より、空きのバス幅が大きい場合は、転送可能であるので、ステップＳ５で転送要求のあったバスマスタ１に使用許可信号ｇｎｔＡ〜Ｅとともに空きのバス幅情報を含む転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥを与える。もし、転送要求のあったデータのバス幅より、空きのバス幅が小さい場合は、ステップＳ６で空きバス幅での転送許可を使用許可信号ｇｎｔＡ〜Ｅとともに転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥに出す。空きバス幅での転送許可を受けたバスマスタ１のバス幅可変部１６は、空きバス幅にデータ幅を分割して転送を実施する。
このようにして、転送が終了すると、ステップＳ１に戻る。
【００２３】
図８のフローチャートは、図５に示した結合転送の場合を説明するフローである。
ステップＳ１１〜Ｓ１３は、図４のステップＳ１〜Ｓ３と同じである。
ステップＳ１４で、システムバス３に空きのバス幅があるか否か判断する。空きのバス幅がない場合は、ステップＳ１７に進む。
システムバス３に空きのバス幅がある場合は、ステップＳ１５に進み、上記転送要求のあったバス幅より、空きのバス幅が大きいか否か判断する。転送要求のあったバス幅より、空きのバス幅が大きい場合は、転送可能であるので、ステップＳ１６でバスアービタ６は空きのバス幅を使用する転送許可を、転送要求のあったバスマスタに使用許可信号ｇｎｔＡ〜Ｅとともに転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥを送信する。したがってバスマスタは、空きのバス幅に一致するようにバス幅を結合する。
もし、ステップＳ１５で、転送要求のあったバス幅より、空きのバス幅が小さい場合は、ステップＳ１７に進み、空きバス幅での転送許可を、使用許可信号ｇｎｔＡ〜Ｅとともに転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥを送信する。したがって、バスマスタは、空きバス幅に一致するようにバス幅を分割して転送を実施する。
【００２４】
図９のフローチャートは、図６に示した優先転送の場合を説明するフローである。
ステップＳ２１からステップＳ２４までは、図７のフローチャートで説明したステップＳ１〜ステップＳ４と同じである。そしてステップＳ２４で空きバス幅が転送要求してきたバス幅より大きい場合（Ｓ２４のＹ）は、ステップＳ３２に進み、図７のステップＳ５と同様に転送要求してきたバス幅での転送許可を与える。
しかし、ステップＳ２４で空きバス幅が転送要求してきたバス幅より小さい場合（Ｓ２４のＮ）は、ステップＳ２５に進み、現在転送中のデータの優先順位より、新たに転送要求してきたデータの優先順位が高いか否か判断する。新たに転送要求してきたデータの優先順位が低い場合（Ｓ２５のＮ）は、通常の転送であり、ステップＳ３１に進み、転送要求してきたバスマスタにシステムバスの空きバス幅での転送許可を与える。転送許可を与えられたバスマスタは、転送許可されたバス幅になるようにバス幅を分割して転送を実施する。
【００２５】
転送要求してきたデータの優先順位が高い場合（Ｓ２５のＹ）は、ステップＳ２６に進み、優先順位が低いバスマスタに対して、優先順位の高いバスマスタが転送する場合に不足するバス幅を減少させるようにバス幅の変更を命令する。命令を受けたバスマスタはバス幅を変更するためバス幅を分割して転送を実施する。次にステップＳ２７では転送要求してきたバスマスタに使用許可信号ｇｎｔＡ〜Ｅとともに転送許可バス幅信号ｂｓｉｚｅＡ〜ｂｓｉｚｅＥを送信する。次のステップＳ２８では転送が終了したか否か判断する。転送が終了していなければ、ステップＳ２８に戻る。転送が終了すると、次のステップＳ２９ではバス幅を減少させたバスマスタの転送が終了したか否か判断する。終了している場合（Ｓ２９のＹ）はステップＳ２１に戻る。終了していない場合（Ｓ２９のＮ）はステップＳ３０に進み、そのバスマスタにバス幅を減少させる前のバス幅での転送を許可する。元のバス幅での転送許可を受けたバスマスタは、バス幅を元のバス幅に変更して転送を実施する。
以上のように、データ転送の終了または新たな転送要求によって、システムバスの使用状況が変化するとき、バスアービタ６の調停部３１および演算部３２は使用許可するバス幅、バス位置を割当て直すことにより、システムバスを有効活用し、効率的なデータ転送を実現する。
【００２６】
次に本発明をタイムチャートで説明する。
図１０は、通常転送の場合のタイムチャートを示す。図１０（ａ）は、バスマスタ１のタイムチャートを示し、１行目のｃｌｋはクロックである。このクロックは本発明のシステムバス制御装置全てに共通である。２行目のｍｒｅｑはバスマスタ１の転送要求信号を示し、ハイレベルが転送要求のある場合、ローレベルが転送要求のない場合を表す。３行目のｍｇｎｔはバスアービタ６から受けた転送許可信号である。ハイレベルが転送許可された場合を示し、ローレベルが転送許可されない場合を示す。４行目のｍａｄｒはバスマスタ１のアドレス信号を表す。５行目のｍｃｍｄは、バスマスタ１のコマンド信号を表す。ここでは１６ビットのデータが４個あることを表す。６行目のｍｖｌｄは転送許可の有効期間を示す。ハイレベルは転送許可が有効である期間、ローレベルは転送許可がない期間を表す。７行目のｍｄａｔａはバスマスタがデータ転送を実施していることを表す。  したがって、図１０（ａ）は、バスマスタ１が転送要求信号ｍｒｅｑを出すと、転送許可信号ｍｇｎｔが与えられ、１６ビットのバス幅を使用して４回転送していることを表す。
【００２７】
図１０（ｂ）は、図１０（ａ）に示したバスマスタの転送要求および転送実施に対するシステムバス３のタイムチャートを示す。１行目のｓｒｅｑはバスマスタ１からの転送要求信号を示し、ハイレベルが転送要求のある場合、ローレベルが転送要求のない場合を表す。２行目のｓｇｎｔはバスアービタ６から送信された転送許可信号である。ハイレベルが転送許可を示し、ローレベルが転送不許可を示す。３行目のｓａｄｒはバスマスタ１のアドレス信号を表す。４行目のｓｃｍｄはバスマスタ１のコマンド信号を表す。５行目のｓｖｌｄは転送許可の有効期間を示す。ハイレベルは転送許可が有効である期間、ローレベルは転送許可がない期間を表す。６行目のｓｄａｔａはバスマスタ１がデータ転送を実施していることを表す。７行目のｂｓｉｚｅはバスマスタ１がデータ転送をする期間を表す。ここでは１６ビットのデータが４回であることを表す。したがって、図１０（ｂ）は、バスマスタが転送要求信号ｓｒｅｑを出すと、転送許可信号ｓｇｎｔが与えられ、データ転送していることを表す。
【００２８】
図１１は、分割転送のタイムチャートを示す。
図１１は、図１０とほぼ同じである。相違点は、図１１（ｂ）５行目のｓｖｌｄと、６行目のｓｄａｔａと、７行目のｂｓｉｚｅである。即ち、５行目のｓｖｌｄは、８クロック分になっている。６行目のｓｄａｔａは、バス幅を８ビットに分割して８回転送している。６行目のｓｄａｔａは、８ビットのデータが８回であることを表している。
【００２９】
図１２は、結合転送のタイムチャートを示す。
図１２（ａ）は、バスマスタのタイムチャートを示し、図１０（ａ）、図１１（ａ）と同じである。
図１２（ｂ）は、システムバスのタイムチャートを示す。１行目のｓｒｅｑはバスマスタからの転送要求信号を示し、ハイレベルが転送要求のある場合、ローレベルが転送要求のない場合を表す。ここでは転送要求が１１クロック出ていることを表す。２行目のｓｇｎｔはバスアービタ６から送信された転送許可信号であり、この場合、転送要求が発せられた初めの期間はシステムバスに空きのバス幅がなく、転送許可信号がローレベルであることを表す。そして転送許可信号ｓｇｎｔは転送要求が発せられてから１０クロック目で出たことを示す。その間バスマスタ側制御部はバッファにデータを蓄積する。５行目のｓｖｌｄは転送要求信号ｓｒｅｑが発せられてから１０クロックと１１クロックのとき、ハイレベルとなり、転送許可が有効である期間を表す。６行目のｓｄａｔａはバスマスタが８ビットのデータを４つ結合して３２ビットのデータとして２回転送していることを表す。７行目のｂｓｉｚｅは３２ビットのデータを２回転送することを表し、データ量を表す。
【００３０】
以上の実施形態は、ＬＳＩのシステムバスについて説明したが、本発明はパソコンや画像形成装置のシステムバスまたは各種データ処理装置のシステムバスにも適用可能である。
【図面の簡単な説明】
【００３１】
【図１】本発明のシステムバス制御装置の構成図を示す。
【図２】バスマスタ側制御部のブロック図を示す。
【図３】バスアービタのブロック図を示す。
【図４】分割転送のタイミング図を示す。
【図５】結合転送のタイミング図を示す。
【図６】優先転送のタイミング図を示す。
【図７】分割転送のフローチャート図を示す。
【図８】結合転送のフローチャート図を示す。
【図９】優先転送のフローチャート図を示す。
【図１０】通常転送のタイムチャート図を示す。
【図１１】分割転送のタイムチャート図を示す。
【図１２】結合転送のタイムチャート図を示す。
【図１３】従来のタイミング図を示す。
【符号の説明】
【００３２】
１    バスマスタ
２    バスマスタ側制御部
３    システムバス
４    ターゲット側制御部２
５    ターゲット
６    バスアービタ
１５  バッファ
１６  バス幅可変部
１７  検出部
１８  演算部
３１  調停部
３２  演算部
【図１】
0004845522.tif 000002
【図２】
0004845522.tif 000003
【図３】
0004845522.tif 000004
【図４】
0004845522.tif 000005
【図５】
0004845522.tif 000006
【図６】
0004845522.tif 000007
【図７】
0004845522.tif 000008
【図８】
0004845522.tif 000009
【図９】
0004845522.tif 000010
【図１０】
0004845522.tif 000011
【図１１】
0004845522.tif 000012
【図１２】
0004845522.tif 000013
【図１３】
0004845522.tif 000014