(57)【要約】【課題】  異なるビット幅のバスを接続するためのバス接続回路において、バス接続時のクロックサイクル数を少なくすると共にハードウェア量を少なくする。【解決手段】  バス接続回路は、制御コマンド線とデータ線を介してバスマスタユニット４、５、８、９とバススレーブユニット６、７、１０、１１に接続されたビット幅を異にするバス１、２の制御コマンド線を共通制御コマンドバスを経て接続し、バス１、２を共通のコマンド情報で制御し、バス１，２のデータ線をデータ変換ユニット３を介して接続して、それぞれのデータ線のビット幅の相互の変換を行うとともに、バスマスタユニットとバススレーブユニットからの調停リクエストに応じてバス１とバス２のバス権の調停を行う調停回路１２を設け、バス間のデータ転送時、転送元のバスからのバス権の獲得によって、バス１，２間においてライトアクセスとリードアクセスとを行う。【選択図】  図１
2006085732.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータビット幅を有する第１のユニットから出力される第１の出力信号及び第１のイネーブル信号と、前記第１のデータビット幅を有する第２のユニットから出力される第2の出力信号及び第２のイネーブル信号とを受け前記第1または第２のイネーブル信号がアクティブになったことに応答して前記第1または第２の出力信号を選択出力する第１の選択回路と、
前記第１のデータビット幅とは異なる第２のデータビット幅の第３のユニットから出力される第３の出力信号及び第３のイネーブル信号であって、変換ユニットを介して供給される前記第３の出力信号及び前記第３のイネーブル信号と前記第１の選択回路の出力と前記第１及び第２のイネーブル信号に基づく信号とを受け、前記第１または第２のイネーブル信号がアクティブの時は前記第１の選択回路の出力を前記第１及び第２のユニットに供給し、前記第３のイネーブル信号がアクティブの時には前記第３の出力信号を前記第１及び第２のユニットに供給する第２の選択回路とを備えることを特徴とするバス接続回路。
【請求項２】
前記第１及び第２のイネーブル信号を受け前記第１または第２のイネーブル信号がアクティブになった時、前記変換ユニットにイネーブル信号を出力するゲート回路をさらに備えることを特徴とする請求項１記載のバス接続回路。
【請求項３】
前記第１のユニットはバスマスタユニットであり、前記第２のユニットはバススレーブユニットであることを特徴とする請求項１記載のバス接続回路。
【請求項４】
第１のデータビット幅の第１のバスマスタユニットから出力される第１の出力信号及び第１のイネーブル信号と、前記第１のデータビット幅の第２のバスマスタユニットから出力される第２の出力信号及び第２のイネーブル信号とを受け、前記第1または第２のイネーブル信号がアクティブになったことに応答して前記第１または第２の出力信号を選択出力する第１の選択回路と、前記第１のデータビット幅とは異なる第２のデータビット幅の第３のバスマスタユニットから出力される第３の出力信号及び第３のイネーブル信号であって、変換ユニットを介して供給された前記第３の出力信号及び前記第３のイネーブル信号と前記第１の選択回路の出力と前記第１及び第２のイネーブル信号に基づく信号とを受け、前記第１または第２のイネーブル信号がアクティブの時は前記第１の選択回路の出力を前記第１のデータビット幅のバススレーブユニットに対して供給し、前記第３のイネーブル信号がアクティブの時には前記第３の出力信号を前記バススレーブユニットに対して供給する第２の選択回路とを備えることを特徴とするバス接続回路。
【請求項５】
前記第１及び第２のイネーブル信号を受け前記第１または第２のイネーブル信号がアクティブになった時、前記変換ユニットにイネーブル信号を出力するゲート回路をさらに備えることを特徴とする請求項４記載のバス接続回路。
【請求項６】
第１のデータビット幅の第１のバススレーブユニットから出力される第１の出力信号及び第１のイネーブル信号と、前記第１のデータビット幅の第２のバススレーブユニットから出力される第２の出力信号及び第２のイネーブル信号とを受け、前記第１または第２のイネーブル信号がアクティブになったことに応答して前記第１または第２の出力信号を選択出力する第１の選択回路と、
前記第１のデータビット幅とは異なる第２のデータビット幅の第３のバスマスタユニットから出力される第３の出力信号及び第３のイネーブル信号であって、変換ユニットを介して供給された前記第３の出力信号及び前記第３のイネーブル信号と前記第１の選択回路の出力と前記第１及び第２のイネーブル信号に基づく信号とを受け、前記第１または第２のイネーブル信号がアクティブの時は前記第１の選択回路の出力を前記第１のデータビット幅のバスマスタユニットに対して供給し、前記第３のイネーブル信号がアクティブの時には前記第３の出力信号を前記バスマスタユニットに対して供給する第２の選択回路とを備えることを特徴とするバス接続回路。
【請求項７】
請求項１乃至６のいずれか一項に記載のバス接続回路を半導体基板上に集積化して構成したことを特徴とする半導体集積回路。
【請求項８】
請求項１乃至７のいずれか一項に記載のバスシステム又は情報処理システム又はバス接続回路又は半導体集積回路の結線情報を記憶したことを特徴とする記憶媒体。
【請求項９】
半導体集積回路で各種のデータ処理を実行するコンピュータ処理装置であって、請求項７に記載の半導体集積回路を有していることを特徴とするコンピュータ装置。
【請求項１０】
コンピュータ装置で読み取り自在なソフトウェアであって、請求項１乃至６のいずれか一項に記載のバスシステムの回路構造又はバス接続回路の回路構造の電子データからなることを特徴とするソフトウェア。
【請求項１１】
コンピュータ装置で読み取り自在なソフトウェアが格納されている情報記憶媒体であって、請求項１０記載の電子データ又はソフトウェアが格納されていることを特徴とする情報記憶媒体。
【請求項１２】
情報記憶媒体にソフトウェアが格納されているコンピュータ装置であって、請求項１１に記載の情報記憶媒体を有していることを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バスシステム及びバスシステムを含む情報処理システムに関し、特に、ビット幅の異なる複数のバス間において、制御コマンド線を共通化するとともに、ビット幅を変換しながら相互にデータ転送を行うデータ変換ユニットを備えた、バスシステム及びバスシステムを含む情報処理システムに関する。
【背景技術】
【０００２】
近年、設計資産（Intellectual Property ：ＩＰ）コアとして、以前に開発された回路ブロックを接続してＬＳＩを設計することによって、ＬＳＩの設計期間と開発費用を低減する手法が注目されている。このような各回路ブロックは、それぞれ独立して開発されたものであることが多いため、各ブロック間には、バス幅や入出力インタフェースの違いが存在する。したがって、各ブロック間を接続するためには、バス幅、入出力インタフェースの違いを吸収する技術が必要となる。このような、インタフェースの違いを吸収するインタフェース回路として、例えば、特開２０００−３１１１３２号公報に記載されるブリッジ回路が用いられている。
【特許文献１】特開２０００−３１１１３２号公報
【０００３】
ブリッジ回路を用いたバス接続回路は、図３９に示されるように、６４ビットデータ線及び制御コマンド線を含む第１のバス１００１と、３２ビットデータ線及び制御コマンド線を含む第２のバス１００２と、バス１００１とバス１００２の間に接続されたバスブリッジ回路１００３と、第１のバス１００１に接続された６４ビットのデータ線を有するバスマスタユニット１００４，１００５及び６４ビットのデータ線を有するバススレーブユニット１００６，１００７と、第２のバス１００２に接続された３２ビットのデータ線を有するバスマスタユニット１００８，１００９及び３２ビットのデータ線を有するバススレーブユニット１０１０，１０１１と、第１のバス１００１側の調停回路１０１２と、第２のバス１００２側の調停回路１０１３とを備えている。
【０００４】
以下、図３９を参照して、従来のバス接続回路の動作を説明する。なお、データ転送方式には、コマンド転送とデータ転送とを連続して行なうノンスプリット転送と、コマンド転送とデータ転送とを不連続に行うスプリット転送とがあるが、ここでは、スプリット転送の場合について説明する。
【０００５】
バスマスタユニット１００４は、ＣＰＵ等の外部マスタユニット（図示しない）から出力されたリードコマンド、アドレスを受け取ると、第１のバス１００１のバス権を得るために、調停リクエスト信号を調停回路１０１２に出力する。調停回路１０１２は、調停を行った後、調停グラント信号を出力することによってバスマスタユニット１００４に第１のバス１００１のバス権を与える。バス権を得たバスマスタユニット１００４は、リードコマンド、アドレス、デバイスＩＤ（接続された各マスターにそれぞれに固有に割り当てられた番号）を制御コマンド線を介して第１のバス１００１に出力し、第１のバス１００１のバス権を開放する。
【０００６】
バスブリッジ回路１００３は、第１のバス１００１に出力されたリードコマンド、アドレス、デバイスＩＤを受け取り、アドレスからバススレーブユニット１０１１に対するリードコマンドであることを検出する。バスブリッジ回路１００３は、バススレーブユニット１０１１が第２のバス１００２に接続されているため、第２のバス１００２のバス権を得るため、調停回路１０１３に対して調停リクエスト信号を出力する。調停回路１０１３は、調停を行った後、調停グラント信号を出力することによって、バスブリッジ回路１００３に第２のバス１００２のバス権を与える。バス権を得たバスブリッジ回路１００３は、リードコマンド、アドレス、デバイスＩＤを第２のバス１００２に出力し、第２のバス１００２のバス権を開放する。
【０００７】
バススレーブユニット１０１１は、アドレスが自分を示していることを検出し、リードコマンドを受け取り、バススレーブユニット１０１１に接続された外部スレーブユニット（図示しない）にリードコマンドを転送する。リードコマンドを受け取った外部スレーブユニットは、リードコマンドに基づいて処理を行ない、リードデータをバススレーブユニット１０１１に出力する。リードデータを受け取ったバススレーブユニット１０１１は、第２のバス１００２のバス権を得るため、調停回路１０１３に調停リクエスト信号を出力する。調停回路１０１３は、調停を行った後、調停グラント信号を出力することによってバススレーブユニット１０１１に第２のバス１００２のバス権を与える。
【０００８】
バス権を得たバススレーブユニット１０１１は、リードデータ及びデバイスＩＤを第２のバス１００２に出力し、第２のバス１００２のバス権を開放する。バスブリッジ回路１００３は、第２のバス１００２に出力されたデバイスＩＤからバスマスタユニット１００４に出力されたデータであることを検出し、調停回路１０１２に調停リクエスト信号を出力し、調停回路１０１２は、調停を行い、調停グラント信号を出力することによってバスブリッジ回路に第１のバス１００１のバス権を与える。
【０００９】
バス権を得たバスブリッジ回路１００３は、受け取った３２ビット幅のリードデータを６４ビット幅のデータに変換して、デバイスＩＤと共に第１のバスに出力し、第１のバス１００１のバス権を開放する。バスマスタユニット１００４は、第１のバス１００１上のデバイスＩＤが自分のデバイスＩＤと一致するため、第１のバス１００１上のリードデータを取りこみ、取り込んだデータを外部マスタユニットに出力する。このようにして、リードコマンドに基づくノンスプリット転送が実行される。
【００１０】
ライトコマンドに基づくスプリット転送の場合には、以下のとおり動作する。バスマスタユニット１００４は、第１のバス１００１のバス権を確保した後、ライトコマンド、アドレス、ライトデータを第１のバスに出力し、第１のバス１００１のバス権を開放する。６４ビットのライトデータを受け取ったバスブリッジ回路１００３は、アドレスに基づいて、第２のバス１００２のバス権を確保した後、６４ビットのライトデータを３２ビットのライトデータに変換し、ライトコマンド、アドレスと共に第２のバス１００２に出力し、第２のバス１００２のバス権を開放する。バススレーブユニット１０１１は、ライトコマンド、ライトデータを受け取り、外部スレーブユニットに転送する。外部スレーブユニットは、ライトコマンドに基づいて、ライトデータの書き込み動作を行なう。
【００１１】
ノンスプリット転送の場合には、バススレーブユニット１００６、１００７、１０１０、１０１１は、バス権を確保する必要が無いため、図３９において、各バススレーブユニットと調停回路１０１２、１０１３との間の調停リクエスト線及び調停グラント線は存在しないものとして説明する。
【００１２】
リードコマンドに基づくノンスプリット転送の場合は、バスマスタユニット１００４による第１のバス１００１のバス権の開放がバススレーブユニット１０１１からのリードデータを受け取るまで行なわず、また、バスブリッジ回路１００３による第２のバス１００２のバス権の開放がバススレーブユニットからのリードデータを受け取るまで行なわれない。また、ライトコマンドに基づくノンスプリット転送は、バスマスタユニット１００４がライトデータ、ライトコマンド、アドレスを第１のバス１００１に出力した後、第１のバス権を開放しない以外は、スプリット転送とほぼ同一のため説明を省略する。
【００１３】
このように、バス権の獲得の回数、すなわち調停回路による調停が必要となる回数は、リードコマンド実行時のスプリット転送が４回、ノンスプリット転送では２回、ライトコマンド実行時は、両転送とも２回となる。通常、１回の調停動作には、およそ少なくとも４クロックを必要とするため、調停動作のために８〜１６クロックが必要になる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
このように、従来のバス接続回路では、バスブリッジ回路において、バスとバスの間に跨がるデータ転送を行うための調停回数が多いので調停動作に必要な時間が長いため、バスの性能が低下する。さらに、ライトコマンド実行時には、バスマスタユニットは、スレーブ側へのライトデータ転送終了前に、第１のバスのバス権を開放してバスサイクルを終了してしまうので、エラー発生時には送信したライトデータが喪失してしまう危険性がある。したがって、転送エラーが発生した時には、バスマスタユニットへ転送エラーの通知を行なうための回路が余分に必要となる。
【００１５】
また、バスマスタユニットへ転送エラーの通知を行なうためには、バスブリッジ回路が第１のバスのバス権を調停回路による調停を経て獲得した後に行なう必要があり、転送エラーが起きたときには更に調停の回数が増加することになり、バスのスループットが悪化する。なお、第１のバスのバス権を開放しなければ、エラー発生時にライトデータを喪失することは無くなるが、バスサイクルが終了するまで第１のバスが占有されるため、バスの使用効率が低下する。
【００１６】
また、従来のバス接続回路では、バスブリッジ回路１００３が、第１のバスと第２のバスにおける、バスマスタユニットとバススレーブユニットとに対応するバス制御回路をそれぞれ搭載している必要がある。したがって、上述した従来のバス制御回路では、バスブリッジ回路は、第１のバスに対するバスマスタ制御回路、第２のバスに対するバスマスタ制御回路、第１のバスに対するバススレーブ制御回路及び第２のバスに対するバススレーブ制御回路の計４個を必要とする。このように、バスブリッジ回路の回路規模は、バスブリッジ回路に接続されるバスの本数に対応して増加する。
【００１７】
この発明は、上述の事情に鑑みてなされたものであって、リードアクセスとライトアクセスにおける、バス接続のためのクロックサイクル数が少なく、かつ、転送エラー時におけるデータ喪失の危険性がなく、さらに回路構成上、ハードウェア量が少なくて済む、バス接続回路、このバス接続回路を用いた情報処理システム及びバス接続回路の結線情報を記憶した記憶媒体を提
供することを目的としている。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、バスシステムにかかる第１の発明は、ビット幅が異なるデータ線を有する複数のバスの制御コマンド線を共通接続する共通制御コマンドバスと、前記ビット幅の異なるデータ線が接続され、これらデータ線の間でビット幅の変換を行うデータ変換回路とを備え、ビット幅が異なるデータ線を有する複数のバス間において同一のバスサイクルで相互にビット幅の変換を行えるように構成したことを特徴とする。
【００１９】
また、バスシステムにかかる第２の発明は、第１の制御コマンド線と第１のビット幅のデータ線とを介して第１のインタフェース手段と接続された第１のバスと、第２の制御コマンド線と第２のビット幅のデータ線とを介して第２のインタフェース手段と接続された第２のバスと、前記第１及び第２の制御コマンド線を共通接続し、共通のコマンド情報を伝達する共通制御コマンドバスと、前記第１及び第２のデータ線が接続されそれぞれのデータ線のビット幅の相互の変換を行うデータ変換回路と、第１及び第２のインタフェース手段からの調停リクエストに応じて前記第１及び第２のバスのバス権の調停を行う調停回路とを設けたことを特徴とする。
【００２０】
また、バスシステムにかかる第３発明は、第１のライト制御コマンド線及び第１のビット幅のライトデータ線を介して第１のインタフェース手段に接続された第１のライトバスと、第１のリード制御コマンド線及び前記第１のビット幅のリードデータ線を介して前記第１のインタフェース手段に接続された第１のリードバスと、第２のライト制御コマンド線及び第２のビット幅
のライトデータ線を介して第２のインタフェース手段に接続された第２のライトバスと、第２のリード制御コマンド線及び前記第２のビット幅のリードデータ線を介して前記第２のインタフェース手段に接続された第２のリードバスと、前記第１のライト制御コマンド線と前記第２のライト制御コマンド線とを共通に接続する第１の共通制御コマンドバスと、前記第１のリード制御コマンド線と前記第２のリード制御コマンド線とを共通に接続する第２の共通制御コマンドバスと、前記第１のライトバスと前記第２のライトバスとが接続され、これらライトバス間でのビット幅の変換を行なうライトデータ変換回路と、前記第１のリードバスと前記第２のリードバスとが接続され、これらリードバス間でビット幅の変換を行なうリードデータ変換回路と、前記第１または第２のインタフェースからの要求に応答して前記第１及び第２のライトバスのバス権の調停を行なう第１の調停回路と、前記第１または第２のインタフェースからの要求に応答して前記第１及び前記第２のリードバスのバス権の調停を行う第２の調停回路とを有することを特徴とする。
【００２１】
また、バスシステムにかかる第４の発明は、制御コマンド線とデータ線とを介してマスタ側のインタフェース手段とスレーブ側のインタフェース手段とを接続するそれぞれビット幅を異にするｎ本のバスと、前記ｎ本のバスの制御コマンド線をそれぞれ共通接続する共通制御コマンドバスと、前記ｎ本のバスのデータ線がそれぞれ接続され、ビット幅が異なるデータ線間でのビット幅の変換を行なうデータ変換回路と、前記ｎ本のバスに対する調停を同時に行う調停回路とを備えることを特徴とする。
【００２２】
また、バスシステムにかかる第５の発明は、第１のビット幅のデータ線を有する第１のバスと、前記第１のバスに接続された第１のユニットと、第２のビット幅のデータ線を有する第２のバスと、前記第１のバスに接続された第２のユニットと、前記第１のユニットから前記第２のユニットに対してコマンドが出力された際に前記第１のバスと第２のバスの調停を同時に行う調停回路と、前記第１のバスと前記第２のバスとの間で第１のビットと第２のビットとの変換動作を行なう変換回路と、前記第１のバスと前記第２のバスとを接続する共通制御コマンドバスとを備えることを特徴とする。
【００２３】
バスシステムにかかる第１乃至第５の発明では、共通制御コマンドバスと、データ変換回路とを備えることによって、データ線のビット幅が異なるバス間において、少ないクロックサイクルでデータのリード、ライトを実行することができる。
【００２４】
また、バス接続回路にかかる第６の発明は、第１のデータビット幅を有する第１のユニットから出力される第１の出力信号及び第１のイネーブル信号と、前記第１のデータビット幅を有する第２のユニットから出力される第２の出力信号及び第２のイネーブル信号とを受け前記第１または第２のイネーブル信号がアクティブになったことに応答して前記第１または第２の出力信号を選択出力する第１の選択回路と、前記第１のデータビット幅とは異なる第２のデータビット幅の第３のユニットから出力される第３の出力信号及び第３のイネーブル信号であって、変換ユニットを介して供給される前記第３の出力信号及び前記第３のイネーブル信号と前記第１の選択回路の出力と前記第１及び第２のイネーブル信号に基づく信号とを受け、前記第１または第２のイネーブル信号がアクティブの時は前記第１の選択回路の出力を前記第１及び第２のユニットに供給し、前記第３のイネーブル信号がアクティブの時には前記第３の出力信号を前記第１及び第２のユニットに供給する第２の選択回路とを備えることを特徴とする。
【００２５】
また、バス接続回路にかかる第７の発明は、第１のデータビット幅の第１のバスマスタユニットから出力される第１の出力信号及び第１のイネーブル信号と、前記第１のデータビット幅の第２のバスマスタユニットから出力される第２の出力信号及び第２のイネーブル信号とを受け、前記第１または第２のイネーブル信号がアクティブになったことに応答して前記第１または第２の出力信号を選択出力する第１の選択回路と、前記第１のデータビット幅とは異なる第２のデータビット幅の第３のバスマスタユニットから出力される第３の出力信号及び第３のイネーブル信号であって、変換ユニットを介して供給された前記第３の出力信号及び前記第３のイネーブル信号と前記第１の選択回路の出力と前記第１及び第２のイネーブル信号に基づく信号とを受け、前記
第１または第２のイネーブル信号がアクティブの時は前記第１の選択回路の出力を前記第１のデータビット幅のバススレーブユニットに対して供給し、前記第３のイネーブル信号がアクティブの時には前記第３の出力信号を前記バススレーブユニットに対して供給する第２の選択回路を備えることを特徴とする。
【００２６】
また、バス接続回路にかかる第８の発明は、第１のデータビット幅の第１のバススレーブユニットから出力される第１の出力信号及び第１のイネーブル信号と、前記第１のデータビット幅の第２のバススレーブユニットから出力される第２の出力信号及び第２のイネーブル信号とを受け、前記第１または第２のイネーブル信号がアクティブになったことに応答して前記第１または第２の出力信号を選択出力する第１の選択回路と、前記第１のデータビット幅とは異なる第２のデータビット幅の第３のバスマスタユニットから出力される第３の出力信号及び第３のイネーブル信号であって、変換ユニットを介して供給された前記第３の出力信号及び前記第３のイネーブル信号と前記第１の選択回路の出力と前記第１及び第２のイネーブル信号に基づく信号とを受け、
前記第１または第２のイネーブル信号がアクティブの時は前記第１の選択回路の出力を前記第１のデータビット幅のバスマスタユニットに対して供給し、前記第３のイネーブル信号がアクティブの時には前記第３の出力信号を前記バスマスタユニットに対して供給する第２の選択回路とを備えることを特徴とする。
【００２７】
バス接続回路にかかる第６乃至第８の発明では、選択回路を用いてバスを容易に構成することができる。また、第１乃至第５のバス接続回路を含んで、情報処理システムを組むことができるため、高速動作が可能となる。
【発明の効果】
【００２８】
本発明のバス制御回路、バスシステムでは、第１に異なるビット幅のデータ線を有する複数のバス間におけるバス権獲得時の調停動作の回数を減少させることができるため、バスの使用効率を向上させることができると共に、バスマスタユニットとバススレーブユニットとの間で高速にアクセスを行なうことが可能となる。第２に、２種類の異なるバス幅のバスを接続する場合に限らず、３種類以上の異なるバス幅のバスを接続する場合にも適用することができるため、バスの拡張性に優れている。
【００２９】
第３に、データ転送エラー発生時にも、第１のバスと第２のバスを接続する共通制御コマンドバスがあるので、送信先から送信元へデータ転送エラー発生を通知することができる。最後に、複数のバスマスタユニット及びスレーブユニットを対して共通の制御回路にて制御することができるため、回路構成を簡単にすることができ、必要なハードウェア量を少なくすることができる。
【発明を実施するための最良の形態】
【００３０】
以下、代表的な本発明の実施の形態について、図１を用いて説明する。本発明の実施の形態は、バス１とバス２との間に設けられたデータ変換ユニットと、バス１の制御コマンド線とバス２の制御コマンド線とを接続する共通コマンドバス５０と、バス１及びバス２に接続されたバスマスタユニット及びバススレーブユニットに対して共通に設けられた調停回路とを有して構成される。以下、実施例を用いて詳細に説明を行なう。
【００３１】
◇第１実施例
図１は、本発明の第１実施例であるバスシステムの構成を示すブロック図、図２は、本実施例のバスシステムの共通制御コマンドバスを含むシステム構成を示す図、図３は、本実施例におけるバスマスタユニットの構成を示す図、図４は、本実施例におけるデータ変換ユニットの構成を示す図、図５は、本実施例におけるバススレーブユニットの構成を示す図、図６は、本実施例における、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットへのリードアクセス時のデータ転送動作を示すタイミングチャート、図７は、本実施例における、６４ビットのバスマスタユニットから、３２ビットのバススレーブユニットに対するリードアクセス時のデータ転送動作を示すタイミングチャート、図８は、本実施例における、６４ビットのバスマスタユニットから３２ビットのバススレーブユニットへのライトアクセス時のデータ転送動作を示すタイミングチャート、図９は、本実施例における、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットへのライトアクセス時のデータ転送動作を示すタイミングチャートである。
【００３２】
本実施例のバスシステム（バス接続回路）は、図１に示すように、制御コマンド線及び６４ビットデータ線とに接続されたバス１と、制御コマンド線及び３２ビットデータ線とに接続されたバス２と、データ変換ユニット３と、バス１とバス２の制御コマンド線を接続する共通制御コマンドバス５０、バス１に制御コマンド線及び６４ビットデータ線を介して接続されたバスマスタユニット４，５及びバススレーブユニット６，７と、バス２に制御コマンド線及び３２ビットデータ線を介して接続されたバスマスタユニット８，９及びバススレーブユニット１０，１１と、バスマスタユニット４、５、８、９及びバススレーブユニット６、７、１０、１１に接続された調停回路１２とを備えている。
【００３３】
なお、本実施例においては、リードデータを転送するリードバスと、コマンドとライトデータを転送するライトバスとが共通であって、データ幅が６４ビットのバスとデータ幅が３２ビットのバスとの間を接続するバス接続回路について説明する。なお、本実施例では、リードアクセス時、スプリット転送を行うものとして説明する。
【００３４】
ここで、バスマスタユニットは、外部マスタユニットとバスとの間のインタフェースユニットを示す。外部マスタユニットは、コマンドを発行する機能を有するユニットであり、例えば、中央演算処理装置（ＣＰＵ）や、メモリに対するデータのＤＭＡ（Direct Memory Access）転送を制御するＤＭＡコントローラ等が該当する。図１では、外部マスタユニットとして、ＣＰＵ１１４、６４ビットＤＭＡコントローラ（マスター）１１５、３２ビットＰＣＩブリッジ（マスター）１１８、３２ビットＤＭＡコントローラ内蔵イーサネット（登録商標）（マスター）１１９を示している。
【００３５】
また、バススレーブユニットは、外部スレーブユニットとバスとの間のインタフェースユニットを示す。外部スレーブユニットは、外部マスタユニットによって発行されたコマンドを受けて処理を行うユニットであり、例えば、入出力回路（Ｉ／Ｏ）や、メモリ等が該当する。図１では、外部スレーブユニットとして、メモリ１１６、６４ビットＤＭＡコントローラ（スレーブ）１１７、３２ビットＰＣＩブリッジ（スレーブ）１２０、３２ビットＤＭＡコントローラ内蔵イーサネット（スレーブ）１２１を示している。
【００３６】
バス１は、６４ビット幅のデータを送受するための６４ビットデータ線と、制御コマンドを送受するための制御コマンド線とから構成され、バス２は、３２ビット幅のデータを送受するための３２ビットデータ線と、制御コマンドを送受するための制御コマンド線とから構成されている。バス１の制御コマンド線と、バス２の制御コマンド線とは、共通制御コマンドバス５０を介して接続されている。データ変換ユニット３は、バス１とバス２との間で、６４ビット幅のデータと３２ビット幅のデータとの間のビット幅の変換を行い、例えば３２ビットを６４ビットに変換し、又は６４ビットを３２ビットに変換する。
【００３７】
バスマスタユニット４，５は、制御コマンド線と６４ビットデータ線とを介してバス１に接続され、バスマスタユニット８，９は、制御コマンド線と３２ビットデータ線とを介してバス２に接続されている。それぞれのバスマスタユニットは、外部マスタユニットとバス１又はバス２との間のインタフェースをとる。バススレーブユニット６，７は、制御コマンド線と６４ビットデータ線とを介してバス１に接続され、バススレーブユニット１０，１１は、制御コマンド線と３２ビットデータ線とを介してバス２に接続されている。それぞれのバススレーブユニットは、バス１又はバス２と外部スレーブユニットとの間のインタフェースをとる。
【００３８】
調停回路１２は、各バスマスタユニット又はバススレーブユニットから出力される調停リクエスト信号に応じて、バス１とバス２におけるバス権の調停を行い、バス権が確立したとき、調停グラント信号によって、要求元のバスマスタユニット又はバススレーブユニットに対して、バス権獲得を通知する。
【００３９】
以下、本発明の基本的な動作フローを簡単に説明する。外部マスタユニットがリードコマンドを実行する場合は以下の通りである。ＣＰＵ１１４が、３２ビットＰＣＩブリッジ（スレーブ）１２０に対するリードコマンドをバスマスタユニット４に出力する。バスマスタユニット４は、調停回路１２に対して調停リクエストを行い、バス１及びバス２のバス権を獲得する。バス権を獲得したバスマスタユニット４は、リードコマンドをバス１に対して出力し、バス１上のリードコマンドは共通コマンドバス５０を介してバス２に伝達される。リードコマンドをバス２を介して受け取ったバススレーブユニット１０は、３２ビットＰＣＩブリッジ１２０に対してリードコマンドを伝達する。
【００４０】
３２ビットＰＣＩブリッジ１２０はリードコマンドに基づいてデータをバススレーブユニット１０に出力し、バススレーブユニット１０は、受け取ったデータをＣＰＵ１１４に送るためにバス２に出力する。バス２上のデータが３２ビットのデータであり受け取り側のＣＰＵ１１４は６４ビットのデータ幅を有するため、データ変換ユニット３は、３２ビットのデータから６４ビットのデータに変換を行ない、変換後のデータをバス１に出力する。バス１を介して変換後のデータを受け取ったバスマスタユニット４は、当該データをＣＰＵ１１４に伝達する。
【００４１】
外部マスタユニットがライトコマンドを実行する場合の動作は以下の通りである。ＣＰＵ１１４は、３２ビットＰＣＩブリッジ（スレーブ）に対するライトコマンド、ライトデータをバスマスタユニット４に出力する。バスマスタユニット４は、調停回路１２に対して調停リクエストを行ない、バス１及びバス２のバス権を得る。バス権を得たバスマスタユニット４は、ライトコマンド、ライトデータをバス１に出力する。ライトコマンドは共通制御バス５０を介してバス２の伝達され、ライトデータは、データ変換ユニット３によって６４ビットデータから３２ビットデータに変換されバス２に伝達される。バススレーブユニット１０は、バス２を介してライトデータ、ライトコマンドを受け取り、これらを３２ビットＰＣＩブリッジに伝達する。
【００４２】
次に、図１のバス接続回路の信号線について図２を使って詳細に説明する。図中、(1) 〜(13)は、以下に示す各制御コマンド線及び共通制御コマンドバスの各信号線を表す。
【００４３】
バス１の制御コマンド線は、(1)：Ｆｒａｍｅ６４、(2)：Ｍａｓｔｅｒ、(3)：Ａｄｄｒｅｓｓ、(4)：ＣＭＤ、(5)：ＤＩＤ、(7)：Ｄｖａｌｉｄ６４、(8)：ＡＣＫ、(9)：ＮＡＣＫ、(10)：Ｄｅｖｓｅｌを伝達する。バス１の６４ビットデータ線は、(6)：Ｄａｔａ６４を伝達する。バス２の制御コマンド線は、(11)：Ｆｒａｍｅ３２、(2)：Ｍａｓｔｅｒ、(3)：Ａｄｄｒｅｓｓ、(4)：ＣＭＤ、(5)：ＤＩＤ、(13)：Ｄｖａｌｉｄ３２、(8)：ＡＣＫ、(9)：ＮＡＣＫ、(10)：Ｄｅｖｓｅｌを伝達する。バス２の３２ビットデータ線は、(12)：Ｄａｔａ３２を伝達する。共通制御コマンドバス５０は、バス１及びバス２との間で(2)：Ｍａｓｔｅｒ、(3)：Ａｄｄｒｅｓｓ、(4)：ＣＭＤ、(5)：ＤＩＤ、(8)：ＡＣＫ、(9)：ＮＡＣＫ、(10)：Ｄｅｖｓｅｌを伝達する。
【００４４】
ここで、Ｆｒａｍｅ６４は、６４ビット幅のバスの占有を示す情報、Ｍａｓｔｅｒは、バスマスタユニットからバススレーブユニットへの転送であることを示す情報、Ａｄｄｒｅｓｓは、バススレーブユニットを特定するためのアドレスデータ、Ｃｍｄは、コマンドの種類を示すコマンドデータ、ＤＩＤデータは、バスマスタユニットを特定するためのデバイスＩＤであり、Ｄａｔａ６４は、バス１内の６４ビットデータ線上の転送データ、Ｄｖａｌｉｄ６４は、データ線上の転送データの有効な期間を示す情報、ＡＣＫは、選択されたユニットが要求された動作を実行することが可能になったことを示す情報、ＮＡＣＫは、選択されたユニットが要求された動作を実行することができないことを示す情報、Ｄｅｖｓｅｌは、外部スレーブユニットが選択された状態であることを示す情報、Ｆｒａｍｅ３２は、３２ビット幅のバスの占有を示す情報、Ｄａｔａ３２は、バス２内の３２ビットデータ線上の転送データ、Ｄｖａｌｉｄ３２は、３２ビットデータ線上の転送データの有効な期間を示す情報をそれぞれ示している。
【００４５】
ただし、ＤＩＤデータは、バスマスタユニット毎にユニークな値であるとする。また、ＤＩＤデータはバスマスタの外部から与えられるもであっても、バスマスタ内のレジスタに保持されているものでも良い。
【００４６】
図２に示されたシステム構成図は、バス構造がマルチプレクサ型の場合を示しているが、３ステートバッファ型の場合には、ＡＣＫ信号を３２ビットの場合と６４ビットの場合とで区別する必要がある以外は同様のため説明を省略する。以下、本実施例の動作をタイミングチャート及び各構成ブロックの説明を交えながら説明する。
【００４７】
本発明の第１の実施例において、バスマスタユニット９に接続された３２ビットのデータ幅を持つＣＰＵ３０から、バススレーブユニット６に接続された６４ビットのデータ幅を持つ外部スレーブユニット４０に対してコマンドが出力された場合の、バスシステムについて、図２、図３、図４、図５及び図６を参照しながら説明する。なお、バス上のデータは、スプリット転送
によって制御されるものとする。
【００４８】
まず、バスマスタユニット４、５、８、９、データ変換ユニット３、バススレーブユニット６、７、１０、１１の構成について説明する。バスマスタユニット４、５、８、９は、図３に示されるように、バスアドレスバッファ３１Ａ、バスコマンドバッファ３１Ｂ、バスライトデータバッファ３２、バスリードデータバッファ３３、バスマスタ制御回路３４、マルチプレクサ３５Ａ、３５Ｂ、３５Ｃ、３６、ＤＩＤ比較回路３７、及びタイミング制御回路３８から構成されている。
【００４９】
データ変換ユニット３は、図４に示されるように、データバッファ２１、タイミング制御部２２、及びマルチプレクサ２３、２４、２５、２６から構成されている。バススレーブユニット６、７、１０、１１は、図５に示されるように、バスコマンドバッファ４１Ａ、４１Ｂ、４１Ｃ、バスライトデータバッファ４２、バスリードデータバッファ４３、バススレーブ制御回路４４、マルチプレクサ４５、アドレス比較回路４６及びタイミング制御回路４７から構成されている。
【００５０】
次に、図２のブロック図において、ＣＰＵ３０からメモリ４０に対してリードコマンドが出力された場合の各ユニットの内部動作について図６のタイミングチャートを参照しながら詳述する。なお、外部マスタユニットとしてのＣＰＵ３０は、バスマスタユニット９に対して、バススレーブユニット６に接続された外部スレーブユニットとしてのメモリ４０を指定するためのアドレスデータＡＤＤ、メモリ４０に対してライトコマンドやリードコマンドを送るためのコマンドデータＣＭＤ、コマンドデータＣＭＤがライトコマンドを含む場合にはライトコマンドによってメモリ４０に書き込まれるべきライトデータ及びこれらデータの転送をバスマスタユニット９に対して要求する転送リクエスト信号Ｍｒｅｑを出力する。ただし、コマンドデータＣＭＤは、図１２に示すように、リードアクセスであるか、又はライトアクセスであるかを示すビット、一度に転送するデータ量を、バイトで示したサイズを含んでいるものとする。
【００５１】
ＣＰＵ３０は、アドレスＡＤＤ、リードコマンドを示すコマンドデータＣＭＤ及び転送リクエスト信号Ｍｒｅｑをバスマスタユニット９に出力する。ＣＰＵ３０から出力されたアドレスＡＤＤ及びコマンドデータＣＭＤは、バスマスタユニット９のバスアドレスバッファ３１Ａ及びバスコマンドバッファ３１Ｂにそれぞれ保持され、転送リクエスト信号Ｍｒｅｑを受け取ったタイミング制御回路３８は、転送開始信号をバスマスタ制御回路３４に出力する。（ここまでのタイミングは、図示していない。）
【００５２】
転送開始信号を受け取ったバスマスタ制御回路３４は、バス権を得るために調停リクエスト信号Ｍｒｅｑを調停回路１２に出力する。調停回路１２は、受け取った調停リクエスト信号Ｍａｒｅｑに応答して調停を行ない、Ｆｒａｍｅ３２信号がインアクティブになっていることを確認した後（図６のＦｒａｍｅ３２信号上の丸で示している）、調停グラント信号Ｍａｇｒｎｔ信号を出力してバス１及びバス２に対するバス権をバスマスタユニット９に与える。なお、調停回路１２の調停動作については、一般的に良く知られているため、説明を省略する。調停グラント信号Ｍａｇｒｎｔを受け取ったバスマスタ制御回路３４は、アクティブなＦｒａｍｅ３２信号及びＭａｓｔｅｒ信号をバス制御線に出力し、読み出し選択信号を出力する。
【００５３】
マルチプレクサ３５Ａ、３５Ｂ、３５Ｃ及び３６は、読み出し選択信号に応答してＤＩＤデータ、アドレスデータＡＤＤ、コマンドデータＣＭＤをバスＤＩＤ線、バスアドレス線、バスコマンド線にそれぞれ出力する。なお、ＤＩＤはバスマスタユニット９の外部から供給されているものとする。バス２に出力されたアドレスデータＡＤＤ、コマンドデータＣＭＤ、ＤＩＤデータ、アクティブ状態のＭａｓｔｅｒ信号は、共通制御コマンドバス５０を介してバス１に伝達される。バス１とバス２との間に接続された図２のデータ変換ユニット３は、タイミング制御部２２によって、バス２のＦｒａｍｅ３２信号をＦｒａｍｅ６４信号としてバス１に出力する。このＦｒａｍｅ３２信号とＦｒａｍｅ６４信号とによって、バス２及びバス１の占有を同時に行なうことができる。すなわち、調停回路１２による一度の調停によって、バス幅の異なるバス１及びバス２の占有を行なうことが可能となる。
【００５４】
バス１に接続された図５のバススレーブユニット６は、バス１上のアドレスデータＡＤＤが、マップアドレス線によって示されているアドレスの範囲に入っているかどうかをアドレス比較器４６にて比較する。アドレス比較器４６は、アドレスデータＡＤＤがマップアドレス線によって示されるアドレスの範囲内に入っている場合には、バススレーブ制御回路４４に一致信号を出力すると共にデバイスが選択されたことを示すＤｅｖｓｅｌ信号としてバス制御線に出力する。バススレーブ制御回路４４は、一致信号に応答して書き込み許可信号を出力する。バススレーブ制御回路４４は、一致信号に応答してメモリ４０がコマンドデータＣＭＤにより要求された処理を実行できるかどうかを状態信号によって判断し、実行可能な状態であればＡｃｋ信号、実行できない状態であればＮａｃｋ信号を出力する。ここでは、スレーブ制御回路４４は、メモリ４０がコマンドを実行可能であるとしてＡｃｋ信号を出力している。
【００５５】
Ａｃｋ信号は、６４ビット制御コマンド線内のバス制御線及びバス２を介してデータ変換ユニット３のタイミング制御部２２に供給され、３２ビット制御コマンド線内のバス制御線及びバス１を介してバスマスタユニット９のバスマスタ制御回路３４に供給される。ここでは、スプリット転送の場合を想定しているため、バスマスタ制御回路３４は、入力されたＡｃｋ信号に応答してＦｒａｍｅ３２信号をインアクティブにすると共にタイミング制御回路３８に完了信号を供給する。完了信号を受け取ったタイミング制御回路３８は、ＣＰＵ３０に完了信号ＭＣｍｄＡｃｋを出力する。このとき、Ｆｒａｍｅ３２がインアクティブになったことに応答してＦｒａｍｅ６４信号もインアクティブとされる。このようにして、バス１及びバス２を占有から開放する。
【００５６】
バススレーブユニット６のバススレーブ制御回路４４は、Ｄｅｖｓｅｌ信号及びＡｃｋ信号を出力すると共に転送開始信号をタイミング制御回路４７に対して出力する。また、バススレーブ制御回路４４から出力された書き込み許可信号に応答してバスコマンドバッファ４１Ａ〜Ｃに書き込まれたコマンドデータ、アドレスデータ及びＤＩＤデータは、タイミング制御回路４７が転送開始信号に応答して出力する転送リクエスト信号と共にメモリ４０に供給される。コマンドデータ（リードコマンド）がメモリ４０に供給され、メモリ４０内でのリードデータの準備がととのった場合には、メモリ４０は、リードデータをバスリードデータバッファ４３に供給すると共に完了信号をタイミング制御回路４７に出力する。タイミング制御回路４７は、完了信号に応答してリードデータ転送開始信号をバススレーブ制御回路４４に出力する。
【００５７】
リードデータ転送開始信号を受け取ったバススレーブ制御回路４４は、バスの占有権を得るために、調停リクエスト信号Ｓａｒｅｑを調停回路１２に対して出力する。調停回路１２は、調停リクエスト信号Ｓａｒｅｑに応答して調停を行い、調停グラント信号Ｓａｇｒｎｔ信号を出力する。バススレーブ制御回路は、調停グラント信号Ｓａｇｒｎｔ信号に応答して、バス１の占有を示すアクティブなＦｒａｍｅ６４信号を出力する。バス１上のＦｒａｍｅ６４信号は、バスマスタユニット９が出力したＦｒａｍｅ３２信号と同様に、データ変換ユニット３のタイミング制御部２２を介してバス２のＦｒａｍｅ３２信号となる。また、バススレーブ制御回路４４は、Ｆｒａｍｅ６４信号と共に、コマンドデータＣＭＤ、マスタを特定するためのＤＩＤデータを出力する。
【００５８】
コマンドデータとＤＩＤデータとは、バス１から共通制御コマンドバスを介してバス２に送られる。バス２に接続されたバスマスタ制御回路３４は、Ｍａｓｔｅｒ信号がインアクティブとなっているとき比較信号を出力し、ＤＩＤ比較回路３７は、比較信号によって活性化される。したがって、ＤＩＤ比較回路３７によって、バス１のバスＤＩＤ線上のＤＩＤデータと、バスマスタユニットのＤＩＤの値とが比較される。ＤＩＤ比較回路３７が一致信号を出力した場合には、バスマスタ制御回路３４は、Ａｃｋ信号をバス１のバス制御線に出力する。
【００５９】
バス制御線上のＡｃｋ信号を共通制御コマンドバス及びバス２を介して受け取ったバススレーブ制御回路４４は、読み出し許可信号を出力すると共に、６４ビットデータ線上のデータが有効であることを示すＤｖａｌｉｄ６４信号をアクティブにする。マルチプレクサ４５は、読み出し許可信号に応答してバスリードデータバッファ４３に書き込まれたリードデータＲＤ０〜ＲＤ３を順次６４ビットのバスリードデータ線に出力する。
【００６０】
データ変換ユニット３は、６４ビット幅のリードデータＲＤ０〜ＲＤ３をバス１の６４ビットデータ線を介して受け取り、マルチプレクサ２３及び２４を介して６４ビット幅のデータバッファに書きこむ。このとき、６４ビットのリードデータは、マルチプレクサ２３と２４に対応して上位３２ビットのリードデータと下位３２ビットのリードデータとに分けられ、タイミング制御部からの書き込み選択信号によってデータバッファ２１に書きこまれる。書き込まれた６４ビットのリードデータは、タイミング制御部２２からの３２ビット出力選択信号に対応して３２ビットのリードデータとして順次読み出される。このときタイミング制御部２２は、３２ビットの出力選択信号を出力すると共に３２ビットのデータＲＤ０〜ＲＤ７が有効であることを示すＤｖａｌｉｄ３２をアクティブにする。
【００６１】
ここで、タイミング制御部２２は、Ｆｒａｍｅ信号及びＡｃｋ信号がどちらのバスから送られてきたのかに対応してビット変換の制御を行なっているものとする。すなわち、タイミング制御部２２が、Ｆｒａｍｅ３２信号を受け取り、６４ビット制御コマンド線からＡｃｋ信号を受け取った場合は、３２ビットから６４ビットへ、逆に、Ｆｒａｍｅ６４信号を受け取り３２ビット制御コマンド線からＡｃｋ信号を受け取った場合には６４ビットから３２ビットへ変換するように制御を行なう。なお、タイミング制御部２２が、同一の方向からＦｒａｍｅ信号及びＡｃｋ信号を受け取った場合は、マスタ側とスレーブ側が同じデータ幅を有していることを示しているため、データ変換ユニット３は変換を行なわない。このように、変換が不要なときには、データ変換ユニット３が動作させないことによって、消費電力を低減することができる。
【００６２】
バススレーブ制御回路４４は、リードデータの出力が終了したことに応答してＤｖａｌｉｄ６４信号をインアクティブにすると共にＦｒａｍｅ６４をインアクティブにする。ただし、本実施例では、データの個数が予め分かっているため、バス１の使用効率を向上させるためにＤｖａｌｉｄ６４信号よりも１クロック早くＦｒａｍｅ６４をインアクティブにしている。バスマスタ制御回路３４は、ＤＩＤ比較回路３７が一致信号を出力し、Ｄｖａｌｉｄ３２信号がアクティブとなっているため、バスリードデータバッファ３３に書きこみ許可信号を出力する。書きこみ許可信号に応答して、バスリードデータバッファ３３は、バス２のバスリードデータ線上の３２ビットリードデータを順次取りこみ、リードデータとしてＣＰＵ３０に供給する。
【００６３】
データ変換ユニット３のタイミング制御部２２は、データの個数に応じた期間だけＤｖａｌｉｄ３２信号をアクティブにすると共に、最後のデータに対応してＦｒａｍｅ３２信号をインアクティブにする。ただし、本実施例では、バス２の使用効率を向上させるためにＤｖａｌｉｄ３２信号よりも１クロック早くＦｒａｍｅ３２をインアクティブにしている。このようにして、３２ビットのデータ幅を有するＣＰＵ３０から６４ビットのデータ幅を有するメモリ４０に対するリードコマンドが実行される。
【００６４】
次に、バスマスタユニット４に接続された６４ビットのデータ幅を有する外部マスタユニットからバススレーブユニット１０に接続された３２ビットのデータ幅を有する外部スレーブユニットに対するリードコマンドが実行された場合について、図７を参照して説明する。外部マスタユニットが６４ビットのデータ幅を有するバスマスタユニット４に対して、アドレスデータＡＤＤ、コマンドデータＣＭＤ及び転送リクエスト信号Ｍｒｅｑを出力してから、３２ビットのデータ幅を有するバススレーブユニット１０がバスマスタユニット４に対してＣＭＤ、ＤＩＤを送りバスマスタユニット４がＡｃｋ信号を出力する動作については、図６に記載されたタイミングと実質的に同一のため説明を省略する。
【００６５】
バスマスタユニット４からバス１上に出力されたＡｃｋ信号を共通制御コマンドバス及びバス２を介して受け取ったバススレーブ制御回路４４は、読み出し許可信号を出力すると共に、データが有効であることを示すＤｖａｌｉｄ３２信号をアクティブにする。マルチプレクサ４５は、読み出し許可信号に応答してバスリードデータバッファ４３に書き込まれたリードデータＲＤ０〜ＲＤ７を順次３２ビットのバスリードデータ線に出力する。
【００６６】
データ変換ユニット３は、３２ビット幅のリードデータＲＤ０〜ＲＤ７を３２ビットデータ線を介して受け取り、マルチプレクサ２３及び２４を介してデータバッファ２１に書きこむ。このとき、３２ビットのリードデータは、マルチプレクサ２３と２４が、タイミング制御部２２からの書きこみ選択信号に応答して交互にアクティブにされるため、データバッファ２１の上位３２ビットと下位３２ビットに交互に書きこまれる（データバッファの上位ビットと下位ビットのどちらから順に書き込むかは設計に応じて変更可能である）。書き込まれた３２ビットのリードデータは、タイミング制御部２２からの６４ビット出力選択信号に対応して６４ビットのリードデータとして読み出される。このときタイミング制御部２２は、３２ビットのリードデータＲＤ０〜ＲＤ７の半分以上を受信したことに応答して、すなわちＲＤ３を受信したことに応答して、６４ビットの出力選択信号を出力すると共に６４ビットのデータＲＤ０〜ＲＤ３が有効であることを示すＤｖａｌｉｄ６４信号をアクティブにする。
【００６７】
バススレーブ制御回路４４は、リードデータの出力が終了したことに応答してＤｖａｌｉｄ３２信号をインアクティブにすると共にＦｒａｍｅ３２信号をインアクティブにする。ただし、本実施例では、データの個数が予め分かっているため、バス１の使用効率を向上させるためにＤｖａｌｉｄ６４信号よりも１クロック早くＦｒａｍｅ６４をインアクティブにしている。バスマスタ制御回路３４は、ＤＩＤ比較回路３７が一致信号を出力し、Ｄｖａｌｉｄ６４信号がアクティブとなっているため、バスリードデータバッファ３３に書きこみ許可信号を出力する。書きこみ許可信号に応答して、バスリードデータバッファ３３は、バス２のバスリードデータ線上の６４ビットリードデータを順次取りこみ、リードデータとしてＣＰＵ３０に供給する。
【００６８】
データ変換ユニット３のタイミング制御部２２は、データの個数に応じた期間だけＤｖａｌｉｄ６４信号をアクティブにすると共に、最後のデータに対応してＦｒａｍｅ６４信号をインアクティブにする。ただし、本実施例では、バス１の使用効率を向上させるためにＤｖａｌｉｄ６４信号よりも１クロック早くＦｒａｍｅ６４をインアクティブにしている。このようにして、６４ビットのデータ幅を有する外部マスタユニットから３２ビットのデータ幅を有する外部スレーブユニットに対するリードコマンドが実行される。
【００６９】
次に、バスマスタユニット４に接続された６４ビットのデータ幅を有する外部マスタユニット（図示しない）からバススレーブユニット１０に接続された３２ビットのデータ幅を有する外部スレーブユニット（図示しない）に対するライトコマンドが実行された場合について、図８を参照して説明する。
【００７０】
ライトコマンドが実行される場合には、外部マスタユニットからバスマスタユニット４に対してライトデータＤａｔａ６４、アドレスデータＡＤＤ、コマンドデータＣＭＤが送られてくる。このとき、バスマスタユニット４がアドレスデータＡＤＤ、コマンドデータＣＭＤ、ＤＩＤデータをバススレーブユニット１０に対して出力し、バススレーブユニット１０がＤｅｖｓｅｌ及びＡｃｋ信号を返してくるまでの動作については、リードコマンドを実行した図６及び図７のタイミングと実質的に同一のため説明を省略する。したがって、バススレーブユニット１０がＡｃｋ信号を返してきたところから説明を行う。
【００７１】
バスマスタユニット４のバスマスタ制御回路３４は、バススレーブユニット１０が出力したＡｃｋ信号を、バス制御線を介して受け取ると、マルチプレクサ３６に対して読み出し選択信号を出力する。マルチプレクサ３６は、読み出し選択信号に応答して、バスライトデータバッファ３２に保持された６４ビットのライトデータＷＤ０〜ＷＤ３をバスライトデータ線に出力すると共に、これらのデータが有効であることを示すＤｖａｌｉｄ６４信号を６４ビットデータバリッド線に出力する。また、バスマスタ制御回路３４は、データの転送が終了したことに応答してＦｒａｍｅ６４信号及びＭａｓｔｅｒ信号をインアクティブにする。ただし、本例では、バス１の使用効率を向上させるためにＤｖａｌｉｄ６４信号よりも１クロック早くＦｒａｍｅ６４及びＭａｓｔｅｒ信号をインアクティブにしている。
【００７２】
ライトデータＷＤ０〜ＷＤ３及びＤｖａｌｉｄ６４信号は、バス１を介してデータ変換ユニット３に供給される。６４ビットのライトデータＷＤ０〜ＷＤ３は、６４ビットデータ線を介してマルチプレクサ２３、２４に供給され、タイミング制御部２２の書き込み選択信号に応答してデータバッファ２１に書き込まれる。この書きこみ動作は、リードコマンドを実行して６４ビットのデータがデータバッファに書きこまれる場合と同様にタイミング制御部２２及びマルチプレクサ２３、２４によって実行される。さらに、タイミング制御部２２は、データバッファ２１に書き込まれたライトデータＷＤ０〜ＷＤ３をバス２に出力するため、Ｄｖａｌｉｄ６４信号に応答して３２ビット出力選択信号をマルチプレクサ２６に対して出力して３２ビットデータ線に３２ビットのライトデータＷＤ０〜ＷＤ７を順次出力すると共に、Ｄｖａｌｉｄ３２信号を３２ビットデータバリッド信号線に出力する。
【００７３】
バススレーブユニット１０のバススレーブ制御回路４４は、アドレスデータＡＤＤにより自分が選択されていることが分かっているので、Ｄｖａｌｉｄ３２信号に応答してバスライトデータバッファ４２に対して書き込み許可信号及び転送開始信号を出力する。バスライトデータバッファ４２は、書き込み許可信号に応答してバスライトデータ線上のライトデータＷＤ０〜ＷＤ７を保持する。バススレーブ制御回路４４は、ライトデータＷＤ０〜ＷＤ７を全て受け取ったことに応答してＤｖａｌｉｄ３２信号及びＦｒａｍｅ３２信号をインアクティブにする。ただし、本実施例では、バス２の使用効率を向上させるためにＤｖａｌｉｄ３２信号よりも１クロック早くＦｒａｍｅ３２をインアクティブにしている。
【００７４】
一方、転送開始信号を受け取ったタイミング制御回路４７は、外部スレーブユニットに対して転送リクエストを出力する。外部スレーブユニットは、転送リクエストに応答して、コマンドデータＣＭＤ、アドレスデータＡＤＤ、ＤＩＤデータ及びライトデータＷＤ０〜ＷＤ７を受け取り、コマンドデータＣＭＤに基づいて書き込みを実行する。このようにして、６４ビットのデータ幅を有する外部マスタユニットから３２ビットのデータ幅を有する外部スレーブユニットへのライトコマンドが実行される。
【００７５】
上述した６４ビットのデータ幅を有する外部マスタユニットから３２ビットのデータ幅を有する外部スレーブユニットへのライトコマンドが実行される場合とは逆に、３２ビットのデータ幅を有する外部マスタユニットから６４ビットのデータ幅を有する外部スレーブユニットへのライトコマンドが実行された場合は、図９に示すように、バスマスタユニットから３２ビット幅のライトデータＷＤ０〜ＷＤ７の半分以上を受け取るまで６４ビット幅のライトデータＷＤ０〜ＷＤ３の出力及びＤｖａｌｉｄ６４の出力を待つこと及びデータの変換が逆になるようにデータ変換ユニット３のタイミング制御部２２が制御することを除いては、上述のライトコマンドが実行される場合と同様のため、説明を省略する。また、データの変換の仕方についても、上述したリードコマンドを実行した場合において説明済みのため、説明を省略する。
【００７６】
このように、本実施例のバス接続回路では、リードデータバスとライトデータバスが共通の場合であって、スプリット転送を行う際に、バス間を越える際のバス権の調停が不要で、データの変換だけを行えばよいため、リードアクセス及びライトアクセスにおけるクロックサイクル数を少なくすることができる。
【００７７】
また、送信元（例えばＣＰＵ）は、送信先（例えばメモリ）からのＡｃｋ信号を受け取ったことに応答して、送信元が接続されているバスのバス権を開放する。したがって、送信元から送信先へのデータ転送は、同一バスサイクル内に行われる。そのため、データ転送エラー発生時にも、バスサイクルが終了するまでは送信元でデータが保存されているためデータの喪失を生じることがない。なお、送信先へのデータ転送エラーが発生した場合には、バス１とバス２間に共通制御コマンドバスを介して、送信先がＮＡＣＫ信号を送出することによって、送信元へのデータ転送エラー発生を通知することができる。
【００７８】
さらに、データ変換が必要な条件を抽出してデータの変換を行うハードウェアのみを用意すればよく、制御コマンド等を完全に解析する必要はないため、回路構成が簡単になり、必要なハードウェア量を少なくすることができる。また、この例のバス制御回路では、バス権の調停回数が少いため遅延が少なくなる。したがって、バスを占有している期間が短くなり、その結果、バスのスループットを向上できるようになる。なお、ＤＩＤ比較回路がバスマスタユニットに含まれているものを記載したが、バスマスタユニットの外部に独立して設けても良い。
【００７９】
以上、第１の実施例においては、スプリット転送を行なう場合について説明したが、以下、ノンスプリット転送を行なう場合について説明する。
【００８０】
◇第２実施例
図１０は、本発明の第２実施例であるバスシステムの構成を示すブロック図、図１１は、本実施例における、３２ビットバスマスタから６４ビットスレーブユニットへのリードアクセス時のデータ転送動作を示すタイミングチャート、図１２は、本実施例におけるコマンドの概要を示す図である。
【００８１】
本発明の第２の実施例として、ノンスプリット転送を行なう場合のバスシステムを、図１０を用いて説明する。ノンスプリット転送では、バスマスタユニットからコマンドが出力されてからバススレーブユニットが処理を行ないバスマスタユニットにデータを返すまでバスを占有するため、バスマスタユニットはＤＩＤデータを必要とせず、また、バススレーブユニットは、調停動作を必要としない。したがって、第２の実施例のバススレーブユニット及び調停回路は、これらの間を接続するための調停リクエスト線、調停グラント線を有していない点で、第１の実施例と異なる。第１の実施例と同一の構成要素については、同一の番号を使用し説明を省略する。
【００８２】
以下、バスマスタユニット８に接続された３２ビットのデータ幅を有する外部マスタユニットがバススレーブユニット６Ａに接続された６４ビットのデータ幅を有する外部スレーブユニットに対してリードコマンドを出力した場合の動作について、図１０、図１１を参照しながら説明する。なお、外部マスタユニットが３２ビットのデータ幅を有するバスマスタユニットに対して、アドレスデータＡＤＤ、コマンドデータＣＭＤ及び転送リクエスト信号Ｍｒｅｑを出力してから、６４ビットのデータ幅を有するバススレーブユニット６Ａがバスマスタユニット８に対してＤｅｖｓｅｌ信号及びＡｃｋ信号を出力するまでの動作については、図６のタイミングと実質的に同一のため説明を省略する。また、図１０のバススレーブユニットは、図５のバススレーブユニットにおいて、バスＤＩＤバッファ４１Ｃおよびバススレーブ制御回路４４が調停回路１２に対してバス権獲得に関する動作を行なわない以外は、実質的に同一のため図５を参照して説明する。
【００８３】
バススレーブユニット６Ａのバススレーブ制御回路４４は、Ｄｅｖｓｅｌ信号及びＡｃｋ信号と共に転送開始信号を出力する。外部スレーブユニットは、転送開始信号、アドレスデータＡＤＤ及びコマンドデータＣＭＤに応答して処理を実行し、リードデータＲＤ０〜ＲＤ３をバススレーブユニット６Ａに出力する。リードデータＲＤ０〜ＲＤ３を受け取ったバススレーブユニット６Ａは、バス２内のバスリードデータ線を介してリードデータＲＤ０〜ＲＤ３をデータ変換ユニット３に出力すると共にバス制御線にＤｖａｌｉｄ６４信号を出力する。また、バススレーブユニット６Ａは、リードデータの出力が完了するとＤｖａｌｉｄ６４信号をインアクティブにする。
【００８４】
データ変換ユニット３は、Ｄｖａｌｉｄ６４信号とリードデータＲＤ０〜ＲＤ３を受け取り、Ｄｖａｌｉｄ６４信号に応答してＤｖａｌｉｄ３２信号を出力すると共に、６４ビットのリードデータＲＤ０〜ＲＤ３を３２ビットのリードデータＲＤ０〜ＲＤに変換して出力する。このときデータ変換ユニット３のタイミング制御部２２は、３２ビットのリードデータＲＤ０〜ＲＤ７の出力が終了したことに応答してＤｖａｌｉｄ３２信号をインアクティブにする。３２ビットのリードデータＲＤ０〜ＲＤ７を受け取ったバスマスタユニット８のバスマスタ制御回路３４は、リードデータＲＤ０〜ＲＤ７の受け取りが終了したことに応答してＦｒａｍｅ信号をインアクティブにし、バス１を開放する。ただし、本実施例では、データのサイズが予め分かっているため、受け取りが終了する１クロック前にＦｒａｍｅ信号をインアクティブにし、バスを開放している。
【００８５】
なお、それぞれのユニット内の動作については、スプリット転送固有の動作を除いて、第１の実施例で説明したスプリット転送によるリードコマンド実行時の説明と同様である。このようにノンスプリット転送をバス幅の異なるバス間で実行する場合、二つのバスに対して一つの調停回路を設け、双方のバス権を一度のバスマスタユニットからの調停リクエストによって得ることができる。
【００８６】
このように、本実施例のバス接続回路では、リードデータバスとライトデータバスが共通の場合であって、ノンスプリット転送を行う際に、バス間を越える際のバス権の調停が不要で、データの変換だけを行えばよいため、リードアクセス及びライトアクセスにおけるクロックサイクル数を少なくすることができる。本実施例でも、データ転送エラー発生時に送信元でデータの喪失が生じないとともに、送信元へのデータ転送エラー発生通知が可能なことは、第１実施例の場合と同様である。
【００８７】
さらに、従来技術のバスマスタ制御回路やバススレーブ制御回路におけるような、コマンド制御信号の細部にわたる制御が不要で、データ変換が必要な条件を抽出してデータの変換を行うハードウェアのみを用意すればよいので、回路構成が簡単になり、必要なハードウェア量を少なくすることができる。この例のバス接続回路は、スプリット転送方式の場合と比較して、スレーブ側のハードウェア量は少ないが、バスを占有する期間が長くなるため、第１の実施例に比べてスループットは低下する。しかしながら、従来例のようにバスブリッジ回路を用いたノンスプリット転送の場合と比べれば、スループットが向上する。
【００８８】
◇フローチャートの説明図１３は、本実施例のバス接続回路における、バス権の調停からバス使用までの処理の流れを示すフローチャート、図１４は、本実施例のバスシステムにおける、スプリット転送時のデータ変換ユニットの処理手順を説明するフローチャート、図１５は、本実施例のバスシステムにおける、スプリット転送時のデータ変換ユニットの処理手順を説明するフローチャート、図１６は、本実施例のバスシステムにおける、バス権の調停動作を含む、バスマスタユニットの処理を示すフローチャート、図１７は、本実施例のバスシステムにおける、バス権の調停動作を含む、バスマスタユニットの処理を示すフローチャート、図１８は、本実施例のバスシステムにおける、バス権の調停動作を含む、バススレーブユニットの処理を示すフローチャート、図１９は、本実施例のバスシステムにおける、バス権の調停動作を含む、バススレーブユニットの処理を示すフローチャートである。
【００８９】
次に、図１３に示すフローチャートを参照して、この例のバス接続回路における、バス権の調停からバス使用までの処理の流れを説明する。図２のシステム構成図に示されるように、調停回路１２からすべてのバスマスタユニットとバススレーブユニットに調停リクエスト線と調停グラント線とが接続されている。調停リクエスト線は、バスマスタユニットが転送開始したいときに使用する。調停グラント線は、バス権の調停が成立したとき調停回路が出力するものであって、複数の調停グラント線のうちいずれか一つだけがアクティブにされる。調停リクエスト線が同時に複数、アクティブにされている場合には、優先度を考慮して調停を行い、従って、いずれか一つのバスマスタユニットに対する調停グラント線のみがアクティブにされる。
【００９０】
いま、外部回路（外部マスターユニット）から転送要求が発生して、バスマスタ制御回路（バスマスターユニット）に転送開始信号が出力されると（ステップＳ１１）、当該バスマスタ制御回路に接続されている調停グラント線がアクティブ状態か否かをみる（ステップＳ１２）。調停グラント線がアクティブ状態でないときは、調停リクエスト線をアクティブにして（ステップＳ１３）、対応する調停グラント線がアクティブ状態になるのを待つ。
【００９１】
調停グラント線がアクティブ状態になったときは、バス上において、バスフレーム信号（Ｆｒａｍｅ６４又はＦｒａｍｅ３２）がアクティブ状態か否かをみて（ステップＳ１４）、アクティブ状態のときはバスが使用中なので、バスフレーム信号がインアクティブ状態になるまで待つ（ステップＳ１５）。バスフレーム信号がアクティブ状態でなくなったときは、バスが利用可能なので転送を開始し（ステップＳ１６）、転送終了時、バス権をインアクティブにして、バスフレーム信号をインアクティブにすることによってバスを開放して（ステップＳ１７）、初期状態に戻る。
【００９２】
次に、図１４及び図１５に示すフローチャートを参照して、図１のバス接続回路における、スプリット転送時のデータ変換ユニット３の処理手順を説明する。
【００９３】
(1) ３２ビットのバスマスタユニットから、６４ビットのバススレーブユニットに対するリードアクセス時
調停結果、バス権が付与された状態で、バスマスタユニットから３２ビット側のバスに出力されるＦｒａｍｅ３２がアクティブにされていたとき（ステップＳ１１１）、バスマスタユニットからバススレーブユニットへの転送であって（ステップＳ１１２）、リードアクセスのときは（ステップＳ１１３）、リードコマンド伝送ではデータ変換ユニットはデータを処理する必要がないため、Ｆｒａｍｅ３２をインアクティブにして、そのバスサイクルが終了するまで待つ（ステップＳ１１０）。
【００９４】
バススレーブユニットでリードデータの準備ができたことによって、バススレーブユニットから６４ビット側のバスに出力されるＦｒａｍｅ６４がアクティブにされると（ステップＳ１０１）、バススレーブユニットからリードデータの有効期間を示すＤｖａｌｉｄ６４がアクティブにされるまで待ち（ステップＳ１０５）、Ｄｖａｌｉｄ６４がアクティブになっている間、バススレーブユニットからＤａｔａ６４を受信する（ステップＳ１０６）。
【００９５】
そして、バススレーブユニットから６４ビットのデータを受信しながら、３２ビット側のバスへのＤｖａｌｉｄ３２をアクティブにし、受信したＤａｔａ６４を半分づつＤａｔａ３２として３２ビット側のバスに出力する（ステップＳ１０７）。その後、バススレーブユニットからのデータ転送が終了し、６４ビット側のバスでＦｒａｍｅ６４がインアクティブにされても、３２ビット側のバスではＦｒａｍｅ３２をアクティブにし続け（ステップＳ１０８）、最後に、バススレーブユニットから受信したデータがなくなったら、Ｆｒａｍｅ３２をインアクティブにして、バスサイクルを終了する（ステップＳ１０９）。
【００９６】
(2) ６４ビットのバスマスタユニットから、３２ビットのバススレーブユニットに対するリードアクセス時
調停結果、バス権が付与された状態で、バスマスタユニットから６４ビット側のバスに出力されるＦｒａｍｅ６４がアクティブにされていた場合には（ステップＳ１０１）、バスマスタユニットからバススレーブユニットへの転送であって（ステップＳ１０２）、リードアクセスのときは（ステップＳ１０３）、データ変換ユニットはデータを処理する必要がないので、Ｆｒａｍｅ６４をインアクティブにして、そのバスサイクルが終了するまで待つ（ステップＳ１１０）。
【００９７】
バススレーブユニットでリードデータの準備ができたことによって、バススレーブユニットから３２ビット側のバスに出力されるＦｒａｍｅ３２がアクティブにされると（ステップＳ１１１）、バススレーブユニットからのリードデータの有効期間を示すＤｖａｌｉｄ３２がアクティブにされるまで待ち（ステップＳ１１５）、Ｄｖａｌｉｄ３２がアクティブになっている間、バススレーブユニットからＤａｔａ３２を受信する（ステップＳ１１６）。
【００９８】
そして、転送サイズの半分以上のデータを受信するまで待って（ステップＳ１１７）、６４ビット側のバスへのＤｖａｌｉｄ６４をアクティブにし、Ｄａｔａ３２のデータを２回分結合して、Ｄａｔａ６４として６４ビット側のバスに出力する（ステップＳ１１８）。この際、２回分のデータのどちらを６４ビットデータの上位にするかは、６４ビットのデータの上位と下位のどちらを高いアドレスに数えるかという、システムによって定まるアドレッシングモードに依存する。その後、バススレーブユニットからのデータ転送が終了し、３２ビット側のバスでＦｒａｍｅ３２がインアクティブにされても、６４ビット側のバスではＦｒａｍｅ６４をアクティブにし続け（ステップＳ１１９）、最後に、バススレーブユニットから受信したデータがなくなったら、Ｆｒａｍｅ６４をインアクティブにして、バスサイクルを終了する（ステップＳ１２０）。
【００９９】
(3) ３２ビットのバスマスタユニットから、６４ビットのバススレーブユニットに対するライトアクセス時
調停結果、バス権が付与された状態で、バスマスタユニットから３２ビット側のバスにおいてＦｒａｍｅ３２がアクティブにされていたとき（ステップＳ１１１）、バスマスタユニットからバススレーブユニットへの転送であって（ステップＳ１１２）、リードアクセスでないときは（ステップＳ１１３）、６４ビット側のバススレーブユニットから出力されるＤｅｖｓｅｌがアクティブにされ、かつ６４ビット側のＡＣＫがアクティブのときは（ステップＳ１１４）、データ変換ユニットは、バスマスタユニットから出力されるＤｖａｌｉｄ３２がアクティブになるのを待つ（ステップＳ１１５）。
【０１００】
そして、Ｄｖａｌｉｄ３２がアクティブになっている間、データ変換ユニットは、バスマスタユニットからＤａｔａ３２を受信して（ステップＳ１１６）、転送サイズの半分以上のデータを受信するまで待つ（ステップＳ１１７）。その後、６４ビット側のバスにおいてＤｖａｌｉｄ６４をアクティブにし、Ｄａｔａ３２のデータを２回分結合して、Ｄａｔａ６４としてバススレーブユニットへ出力する（ステップＳ１１８）。そして、３２ビット側のバスにおいてＦｒａｍｅ３２がインアクティブにされても、６４ビット側のバスではＦｒａｍｅ６４をアクティブにし続け（ステップＳ１１９）、最後に、受信したデータがなくなったら、Ｆｒａｍｅ６４をインアクティブにして、バスサイクルを終了する（ステップＳ１２０）。
【０１０１】
(4) ６４ビットのバスマスタユニットから、３２ビットのバススレーブユニットに対するライトアクセス時調停結果、バス権が付与された状態で、バスマスタユニットから６４ビット側のバスに出力されるＦｒａｍｅ６４がアクティブにされていたとき（ステップＳ１０１）、バスマスタユニットからバススレーブユニットへの転送であって（ステップＳ１０２）、リードアクセスでないときは（ステップＳ１０３）、３２ビット側のバススレーブユニットから出力されるＤｅｖｓｅｌがアクティブになっていて、３２ビット側のＡＣＫがアクティブのときは（ステップＳ１０４）、データ変換ユニットは、バスマスタユニットから出力されるＤｖａｌｉｄ６４がアクティブになるのを待つ（ステップＳ１０５）。
【０１０２】
そして、Ｄｖａｌｉｄ６４がアクティブになっている間、データ変換ユニットは、バスマスタユニットからＤａｔａ６４を受信して（ステップＳ１０６）、３２ビット側のバスへ出力されるＤｖａｌｉｄ３２をアクティブにし、Ｄａｔａ６４のデータを半分づつＤａｔａ３２としてバススレーブユニットへ出力する（ステップＳ１０７）。その後、６４ビット側のバスで出力されるＦｒａｍｅ６４がインアクティブにされても、３２ビット側のバスではＦｒａｍｅ３２をアクティブにし続け（ステップＳ１０８）、最後に、受信したデータがなくなったら、Ｆｒａｍｅ３２をインアクティブにして、バスサイクルを終了する（ステップＳ１０９）。
【０１０３】
次に、図１６乃至図１９のフローチャートを参照して、図１のバス接続回路における、バス権の調停を含むバスマスタユニットとバススレーブユニットの処理の流れを説明する。なお、これらのフローチャートは、スプリット転送動作時の処理を示している。
【０１０４】
図１６，図１７は、バス権の調停動作を含む、バスマスタユニットの処理を示すフローチャートである。
(1) バスマスタユニットのコマンドとライトデータの転送動作
外部マスタユニットから転送要求が発生したとき、コマンドやアドレスを受信するとともに、ライトアクセスの場合はライトデータも受信して、それぞれバッファに格納する（ステップＳ２０１）。次に、バスマスタ制御回路に転送開始信号が出力されると（ステップＳ２０２）、バスマスタ制御回路は、調停回路へバス権の調停を要求してバス権を獲得し、バスが未使用状態になったら、バスコマンドを出力する（ステップＳ２０３）。
【０１０５】
そして、バススレーブユニットからＤｅｖｓｅｌが返送されたか否かをみて（ステップＳ２０４）、返送されなければバスエラーなので、処理を終了して初期状態に戻る（ステップＳ２０５）。一方、Ｄｅｖｓｅｌが返送されたときは、データの送信許可を示すＡＣＫが返送されたか否かをみて（ステップＳ２０６）、返送されなければバスエラーなので、処理を終了して初期状態に戻る（ステップＳ２０５）。
【０１０６】
ＡＣＫが返送されたときは、ライトアクセスか否かをみて（ステップＳ２０７）、ライトアクセスでないときはバスサイクルが完了したので、バスを開放して初期状態に戻る（ステップＳ２０８）。ライトアクセスであったときは、ライトデータをバスに出力し（ステップＳ２０９）、転送要求を行った外部マスタユニットに転送の完了信号を出力して（ステップＳ２１０）、バスサイクルが完了したのでバスを開放して初期状態に戻る（ステップＳ２０８）。
【０１０７】
(2) バスマスタユニットのリードデータの受信動作
また、リードアクセスの場合は、バス上のバススレーブユニットが発行したアクセスにおいて、ＤＩＤが当該バスマスタユニットのＤＩＤと同一のときは（ステップＳ２１１）、バス上のリードデータを受信して、要求元の外部マスタユニットにリードデータを渡したのち（ステップＳ２１２）、外部マスタユニットに転送の完了信号を出力して（ステップＳ２１３）、初期状態に戻る（ステップＳ２１４）
【０１０８】
図１８，図１９は、バス権の調停動作を含む、バススレーブユニットの処理を示すフローチャートである。
(1) バススレーブユニットのコマンドとライトデータの受信動作
バス上における、バスマスタユニットが発行したアクセスにおいて、アドレスが当該バススレーブユニットのアドレス範囲に該当したとき（ステップＳ３０１）、バススレーブユニットはバス上のコマンドを受信して、バスにＤｅｖｓｅｌを出力する（ステップＳ３０２）。
【０１０９】
そして、コマンドを受信可能か否かをみて（ステップＳ３０３）、受信可能でないときは、バス上に送信不可を示すＮＡＣＫを出力して、初期状態に戻る（ステップＳ３０４）。一方、コマンドが受信可能であったときは、受け付け可能なコマンドか否かをみて（ステップＳ３０５）、受け付け可能なコマンドでないときは、バス上にＮＡＣＫを出力して、初期状態に戻る（ステップＳ３０４）。受け付け可能なコマンドであったときは、バス上に送信許可を示すＡＣＫを出力し（ステップＳ３０６）、ライトデータを出力すべき外部スレーブユニットに転送リクエスト信号を出力して、当該コマンド，アドレス，ＤＩＤ等を転送する（ステップＳ３０７）。
【０１１０】
次に、ライトアクセスか否かをみて（ステップＳ３０８）、ライトアクセスでないときは、初期状態に戻り（ステップＳ３０９）、ライトアクセスであったときは、ライトデータを受信して（ステップＳ３１０）外部スレーブユニットに転送し、転送終了したとき、外部スレーブユニットへ転送の完了信号を出力して（ステップＳ３１１）、初期状態に戻る（ステップＳ３１２）。
【０１１１】
(2) バススレーブユニットのリードデータ転送動作
外部スレーブユニットからリードデータの転送要求が発生して、コマンド，ＤＩＤを受信したとき（ステップＳ３１３）、バススレーブ制御回路に転送開始信号が出力される（ステップＳ３１４）。バススレーブ制御回路は調停回路にバス権を要求してバス権を獲得し、バスが未使用状態になったら、ＤＩＤ，コマンド，リードデータを出力するとともに（ステップＳ３１５）、外部スレーブユニットに対しては、転送の完了信号を出力して（ステップＳ３１６）、初期状態に戻る（ステップＳ３１７）。
【０１１２】
◇バスの結線に関する説明図２０は、マルチプレクサを用いたバスの構成を示す図、図２１は、バスマスタユニットとバススレーブユニットがともに出力する信号を伝達する場合におけるマルチプレクサ形式のバスの構成を説明する図、図２２は、バスマスタユニットのみが出力する信号を伝達する場合におけるマルチプレクサ形式のバスの構成を説明する図、図２３は、バススレーブユニットのみが出力する信号を伝達する場合におけるマルチプレクサ形式のバスの構成を説明する図、図２４は、３ステートバッファを用いたバスの構成を示す図、図２５は、バスマスタユニットとバススレーブユニットがともに信号を出力する場合における３ステートバッファ形式のバスの構成を説明する図、図２６は、バスマスタユニットのみが信号を出力する場合における３ステートバッファ形式のバスの構成を説明する図、図２７は、バススレーブユニットのみが信号を出力する場合における３ステートバッファ形式のバスの構成を説明する図である。
【０１１３】
次に、図１に示されたバス接続回路におけるバス構成の例として、マルチプレクサを用いたバスの場合について説明する。図１のバス接続回路における、マルチプレクサを用いたバスは、図２０に示されるように、データ変換ユニット３と、６４ビットのバスマスタユニット４，５と、６４ビットのバススレーブユニット６，７と、３２ビットのバスマスタユニット８，９と、３２ビットのバススレーブユニット１０，１１との間で、マルチプレクサ５１〜５４を介してバス１を形成し、マルチプレクサ５５〜５８を介してバス２を形成した構成を有している。
【０１１４】
マルチプレクサ５１は、バスマスタユニット４，５からの６４ビット幅の信号を切り替えて、マルチプレクサ５４とデータ変換ユニット３に接続する。マルチプレクサ５２は、マルチプレクサ５３とデータ変換ユニット３からの６４ビット幅の信号を切り替えて、バスマスタユニット４，５に接続する。マルチプレクサ５３は、バススレーブユニット６，７からの６４ビット幅の信号を切り替えて、マルチプレクサ５２とデータ変換ユニット３に接続する。マルチプレクサ５４は、マルチプレクサ５１とデータ変換ユニット３からの６４ビット幅の信号を切り替えて、バススレーブユニット６，７に接続する。
【０１１５】
マルチプレクサ５５は、バススレーブユニット８，９からの３２ビット幅の信号を切り替えて、マルチプレクサ５８とデータ変換ユニット３に接続する。マルチプレクサ５６は、マルチプレクサ５７とデータ変換ユニット３からの３２ビット幅の信号を切り替えて、バスマスタユニット８，９に接続する。マルチプレクサ５７は、バススレーブユニット１０，１１からの３２ビット幅の信号を切り替えて、マルチプレクサ５６とデータ変換ユニット３に接続する。マルチプレクサ５８は、マルチプレクサ５５とデータ変換ユニット３からの３２ビット幅の信号を切り替えて、バススレーブユニット１０，１１に接続する。
【０１１６】
図２０中に示された各信号は、すべてバスマスタユニット又はバススレーブユニットのいずれかのみが出力する信号として、省略して示されている。以下、図２１乃至図２３を参照して、バスマスタユニット／バススレーブユニットの両方、又はバスマスタユニットのみ、又はバススレーブユニットのみが信号を出力する場合のマルチプレクサの具体的構成について説明する。なお、バス１及びバス２は、これら３種類のマルチプレクサ構造の組み合わせによって構成されているものとする。
【０１１７】
バス１において、バスマスタユニットとバススレーブユニットが共通に出力する信号、例えばＦｒａｍｅ信号を伝達する場合のバスの構成を、図２１を用いて説明する。このような信号を伝達するためのバス１１０１は、マルチプレクサＸ１、Ｘ２及びオア回路Ｏ１によって構成することができる。なお、図２０のマルチプレクサ５１及び５３は、マルチプレクサＸ１に、マルチプレクサ５２及び５４はマルチプレクサＸ２に対応する。以下、動作について説明する。
【０１１８】
バスマスタユニットＭ１、Ｍ２、バススレーブユニットＳ１、Ｓ２は、調停回路からのグラント信号に応答してフレーム信号としてＦｒａｍｅ６４＿Ｏ信号を出力する場合、同時にイネーブル信号（Ｆｒａｍｅ６４＿ＯＥ信号）を出力する。ここでＦｒａｍｅ６４＿ＯＥ信号は、対応するＦｒａｍｅ６４＿Ｏ信号が有効になる期間を示す信号である。これによって、４：１のマルチプレクサＸ１は、有効になったいずれかのＦｒａｍｅ６４＿Ｏ信号のみを選択して出力する。このＦｒａｍｅ６４＿Ｏ信号は、フレーム信号の入力を示すＦｒａｍｅ６４＿Ｉ信号としてデータ変換ユニットに接続される。
【０１１９】
さらに、バス１１０１の外部からフレーム信号が供給される場合（例えばデータ変換ユニットからフレーム信号が供給される場合）には、２：１のマルチプレクサＸ２において、Ｆｒａｍｅ６４＿ＯＥ信号がアクティブＨＩの場合、オア回路Ｏ１でバスマスタユニットＭ１、Ｍ２とバススレーブユニットＳ１、Ｓ２のＦｒａｍｅ６４＿ＯＥ信号のオアをとった信号と、データ変換ユニットからのＦｒａｍｅ６４＿ＯＥ信号とによって、マルチプレクサＸ１で選択されたＦｒａｍｅ６４＿Ｏ信号と、データ変換ユニットからのＦｒａｍｅ６４＿Ｏ信号とを選択して、選択されたＦｒａｍｅ６４＿Ｏ信号をフレーム信号の入力を示すＦｒａｍｅ６４＿Ｉ信号として、バスマスタユニットＭ１，Ｍ２、バススレーブユニットＳ１，Ｓ２に共通に接続する。
【０１２０】
従って、バスマスタユニットＭ１，Ｍ２、バススレーブユニットＳ１，Ｓ２、データ変換ユニットのいずれかがＦｒａｍｅ６４＿Ｏ信号を出力したときは、フレーム信号の入力を示すＦｒａｍｅ６４＿Ｉ信号として、すべてのバスマスタユニット／バススレーブユニットの入力端子及びデータ変換ユニットに接続される。
【０１２１】
バス１において、バスマスタユニットのみが出力する信号、例えばアドレス信号を伝達する場合のバスの構成を、図２２を用いて説明する。このような信号を伝達するバス１１０２は、マルチプレクサＸ３、Ｘ４、及びオア回路Ｏ２とから構成される。以下動作について説明する。例えば、バスマスタユニットＭ１，Ｍ２がそれぞれ、アドレス信号としてＡｄｄｒ＿Ｏ信号を出力する場合、それぞれ同時にその有効期間を示すＡｄｄｒ＿ＯＥ信号を出力する。これによって、２：１のマルチプレクサＸ３は有効になったいずれかのＡｄｄｒ＿Ｏ信号のみを選択して出力する。選択されたＡｄｄｒ＿Ｏ信号は、オア回路Ｏ２においてバスマスタユニットＭ１，Ｍ２のＡｄｄｒ＿ＯＥ信号のオアをとった信号とともに、共通制御コマンドバスに出力される。
【０１２２】
さらに、バス１１０２の外部からＡｄｄｒ＿Ｏ及びＡｄｄｒ＿ＯＥが供給される場合（バス２側のバスマスタユニットから供給される場合）２：１のマルチプレクサＸ４において、オア回路Ｏ２でバスマスタユニットＭ１，Ｍ２のＡｄｄｒ＿ＯＥ信号のオアをとった信号と、共通制御コマンドバスからのＡｄｄｒ＿ＯＥ信号とによって、マルチプレクサＸ３で選択されたＡｄｄｒ＿Ｏ信号と、共通制御コマンドバスからのＡｄｄｒ＿Ｏ信号とを選択して、選択されたＡｄｄｒ＿Ｏ信号をアドレスの入力を示すＡｄｄｒ＿Ｉ信号として、バススレーブユニットＳ１、Ｓ２に共通に接続する。
【０１２３】
従って、バスマスタユニットＭ１、Ｍ２と、共通制御コマンドバスのいずれかがＡｄｄｒ＿Ｏ信号を出力したときは、アドレス信号の入力を示すＡｄｄｒ＿Ｉ信号として、すべてのバススレーブユニットの入力端子及び共通制御コマンドバスに接続される。
【０１２４】
次に、バス１において、バススレーブユニットのみが出力する信号、例えばＡｃｋ信号を伝達する場合のバスの構成を、図２３を用いて説明する。このような信号を伝達するバス１１０３は、マルチプレクサＸ５、Ｘ６、及びオア回路Ｏ３とから構成される。以下動作について説明する。例えば、バススレーブユニットＳ１，Ｓ２がそれぞれ、送信許可信号としてＡＣＫ＿Ｏ信号を出力する場合、それぞれ同時にその有効期間を示すＡＣＫ＿ＯＥ信号を出力する。これによって、２：１のマルチプレクサＸ５は有効になったいずれかのＡＣＫ＿Ｏ信号のみを選択して出力する。選択されたＡＣＫ＿Ｏ信号は、オア回路Ｏ３においてバススレーブユニットＳ１、Ｓ２のＡＣＫ＿ＯＥ信号のオアをとった信号とともに共通制御コマンドバスに出力され、さらに、ＡＣＫの入力を示すＡＣＫ＿Ｉ信号としてデータ変換ユニットに接続される。
【０１２５】
さらに、バス１１０３の外部からＡｃｋ＿Ｏ、Ａｃｋ＿ＯＥが供給される場合（バス２から供給される場合）には、２：１のマルチプレクサＸ６において、オア回路Ｏ３でバススレーブユニットＳ１、Ｓ２のＡＣＫ＿ＯＥ信号のオアをとった信号と、共通制御コマンドバスからのＡＣＫ＿ＯＥ信号とによって、マルチプレクサＸ３で選択されたＡＣＫ＿Ｏ信号と、共通制御コマンドバスからのＡＣＫ＿Ｏ信号とを選択して、選択された信号をＡＣＫの入力を示すＡＣＫ＿Ｉ信号として、バスマスタユニットＭ１、Ｍ２に共通に接続する。
【０１２６】
従って、バススレーブユニットＳ１，Ｓ２と、共通制御コマンドバスのいずれかがＡＣＫ＿Ｏ信号を出力したときは、ＡＣＫ信号の入力を示すＡＣＫ＿Ｉ信号として、すべてのバスマスタユニットの入力端子及び共通制御コマンドバスに接続される。
【０１２７】
マルチプレクサによるバス構成は、マルチプレクサで区切られたデータ転送経路となる配線のみを制御すればよく、３ステートバッファによるバス構成のように、長い配線を一括で制御する必要がないため、配線容量を少なくすることができ、従って高い周波数で動作できることと、信号がすべて単方向であるため、信号を増幅するためのリピータ（駆動バッファ：不図示）を挿入しやすいという利点がある。また、データ変換ユニットにとっての利点は、３２ビット側の信号線と６４ビット側の信号線とが同一にならないことである。そのため、例えば同じ送信許可を示すＡＣＫ信号であったとしても、３２ビット側の信号と６４ビット側の信号とが、データ変換ユニットにとっては別の信号になるため、データ変換ユニットでこれらを区別することができる。
【０１２８】
なお、図１のバス接続回路においては、バス構成として、マルチプレクサを用いる代わりに３ステートバッファを用いることもできるので、以下においては、この場合のバス構成について説明する。
【０１２９】
３ステートバッファを用いたバスは、図２４に示されるように、データ変換ユニット３と、６４ビットのバスマスタユニット４，５と、６４ビットのバススレーブユニット６，７と、３２ビットのバスマスタユニット８，９と、３２ビットのバススレーブユニット１０，１１との間で、３ステートバッファ６１〜６８を介してバス１を形成し、３ステートバッファ６９〜７６を介してバス２を形成した概略構成を有している
【０１３０】
３ステートバッファ６１は、バスマスタユニット４によってオンに制御されたとき、６４ビットのバスマスタユニット４の出力をバス１に接続し、バッファ６２は、バス１からの入力をバスマスタユニット４に接続する。３ステートバッファ６３と、バッファ６４と、６４ビットのバスマスタユニット５との関係も同様である。３ステートバッファ６５は、バススレーブユニット６によってオンに制御されたとき、６４ビットのバススレーブユニット６の出力をバス１に接続し、バッファ６６バス１からの入力をバススレーブユニット６に出力する。３ステートバッファ６７，６８と、６４ビットのバススレーブユニット７との関係も同様である。
【０１３１】
３ステートバッファ６９は、バスマスタユニット８によってオンに制御されたとき、３２ビットのバスマスタユニット８の出力をバス２に接続し、バッファ７０は、バス２からの入力をバスマスタユニット８に接続する。３ステートバッファ７１と、バッファ７２と、３２ビットのバスマスタユニット９との関係も同様である。３ステートバッファ７３は、バススレーブユニット１０オンに制御されたとき、３２ビットのバススレーブユニット１０の出力をバス２に接続し、バッファ７６は、バス２からの入力をバススレーブユニット１０に出力する。３ステートバッファ７５，７６と、３２ビットのバススレーブユニット１１との関係も同様である。
【０１３２】
図２４においては、信号線は、すべてのバスマスタユニットとバススレーブユニットが入出力する信号として表示されているが、実際には、入力だけの信号や出力だけの信号の場合も存在する。以下、図２５乃至図２６を参照して、バスマスタユニット／バススレーブユニットの両方、又はバスマスタユニットのみ、又はバススレーブユニットのみが信号を出力する場合のバスの具体的構成について説明する。
【０１３３】
図２５において、マルチプレクサによって構成されたバスと同様に、バスマスタユニットとバススレーブユニットがともに出力する信号、例えばＦｒａｍｅ信号を伝達するためのバスの構成について説明する。
【０１３４】
このようなバス１２０１は、３ステートバッファＢ１１，Ｂ１２，Ｂ１３，Ｂ１４，Ｂ１５及びバッファＢ２１、Ｂ２２、Ｂ２３、Ｂ２４，Ｂ２５から構成される。バスマスタユニットＭ１１，Ｍ１２、バススレーブユニットＳ１１，Ｓ１２、及びデータ変換ユニットは、Ｆｒａｍｅ６４＿Ｏ信号と同時にＦｒａｍｅ６４＿ＯＥ信号を出力する。３ステートバッファＢ１１，Ｂ１２，Ｂ１３，Ｂ１４，Ｂ１５は、Ｆｒａｍｅ６４＿ＯＥ信号が有効になった場合のみ、対応するユニットからのＦｒａｍｅ６４＿Ｏ信号を出力する。
【０１３５】
このＦｒａｍｅ６４信号は、それぞれバッファＢ２１，Ｂ２２，Ｂ２３，Ｂ２４，Ｂ２５を経て、フレーム出力の入力を示すＦｒａｍｅ６４＿Ｉ信号として、共通にバスマスタユニットＭ１１，Ｍ１２、バススレーブユニットＳ１１，Ｓ１２、及びデータ変換ユニットに接続される。従って、バスマスタユニットＭ１，Ｍ２、バススレーブユニットＳ１，Ｓ２、及びデータ変換ユニットのいずれかがＦｒａｍｅ６４＿Ｏ信号を出力したときは、フレーム信号の入力を示すＦｒａｍｅ６４＿Ｉ信号として、すべてのバスマスタユニット／バススレーブユニット及びデータ変換ユニットの入力端子に接続される。
【０１３６】
図２６において、バスマスタユニットのみが出力する信号、例えばアドレス信号を伝達するバスの構成を説明する。このような信号を伝達するバス１２０２は、３ステートバッファＢ３１〜Ｂ３４によって構成される。バスマスタユニットＭ１１，Ｍ１２は、それぞれ、アドレス信号としてＡｄｄｒ＿Ｏ信号とＡｄｄｒ＿ＯＥ信号とを出力する。３ステートバッファＢ３１，Ｂ３２は、Ａｄｄｒ＿ＯＥ信号が有効になった場合のみ、対応するユニットからのＡｄｄｒ＿Ｏ信号を出力する。
【０１３７】
このＡｄｄｒ信号はバッファＢ３３，Ｂ３４を経て、アドレスの入力を示すＡｄｄｒ＿Ｉ信号としてバススレーブユニットＳ１１，Ｓ１２に出力されるとともに、共通制御コマンドバスにも出力される。従って、バスマスタユニットＭ１，Ｍ２のいずれかがＡｄｄｒ＿Ｏ信号を出力したときは、アドレスを指示するＡｄｄｒ信号が、すべてのバススレーブユニットの入力端子に接続されるとともに共通制御コマンドバスにも出力される。
【０１３８】
図２７においては、バススレーブユニットのみが出力する信号、例えばＡｃｋ信号を伝達するバスの構成を説明している。このような信号を伝達するバス１２０３は、バッファ４１、４２、４５及び３ステートバッファＢ４３，Ｂ４４とから構成される。
【０１３９】
バススレーブユニットＳ１１，Ｓ１２は、送信許可を示すＡＣＫ６４＿Ｏ信号とＡＣＫ６４＿ＯＥ信号を出力する。これによって、３ステートバッファＢ４３，Ｂ４４は、ＡＣＫ６４＿ＯＥ信号が有効になった場合のみ、対応するユニットからのＡＣＫ６４＿Ｏ信号を出力する。このＡＣＫ６４信号は、バッファＢ４１，Ｂ４２を経てＡＣＫの入力を示すＡＣＫ６４＿Ｉ信号として、バスマスタユニットＭ１１，Ｍ１２に出力されるとともに、バッファＢ４５を経てデータ変換ユニットにも出力される。従って、バススレーブユニットＳ１１，Ｓ１２のいずれかがＡＣＫ６４＿Ｏ信号を出力したときは、送信許可を示すＡＣＫ６４信号が、すべてのバスマスタユニットとデータ変換ユニットの入力端子に接続される。
【０１４０】
３ステートバッファによるバス構成では、配線の信号方向が双方向であるためリピータの挿入が困難であるとともに、データ転送経路の配線に接続された３ステートバッファの容量が加算されるため配線容量が大きくなり、そのため、動作周波数が一般的に低い。３ステートバッファ形式の場合のデータ変換ユニットにとっての特徴は、３２ビット側の信号と６４ビット側の信号とが区別できないことである。例えばＡＣＫ信号が３２ビット側と６４ビット側とで共通であった場合、マルチプレクサによるバスと違って、例えば３２ビット側が出力しても、それが６４ビット側にも出力されるため、ＡＣＫ信号が３２ビット側で出力されたか、又は６４ビット側で出力されたかを区別することができない。従って、３２ビット側のＡＣＫ信号と６４ビット側のＡＣＫ信号とを区別できるようにすることが必要になる。このように区別して扱う必要のある信号は、３ステートバッファによるバス構成では、制御コマンド信号として、共通化することができない。
【０１４１】
◇第３実施例
図２８は、本発明の第３実施例であるバスシステムの構成を示すブロック図、図２９は、本実施例のバスシステムの共通制御コマンドバスを含むシステム構成を示す図、図３０は、本実施例において、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットに対して、リードアクセス後にライトアクセスを行ったときのデータ転送動作を示すタイミングチャートである。以下、第３実施例においては、リードバスとライトバスとが別個であって、かつ、スプリット転送の場合のバスシステムについて説明する。
【０１４２】
この例のバスシステムは、図２８に示すように、第１のライトバス１Ｗと、第１のリードバス１Ｒと、第２のライトバス２Ｗと、第２のリードバス２Ｒとに対して、ライトデータ変換ユニット３Ｗと、リードデータ変換ユニット３Ｒと、第１のライトバス１Ｗと第１のリードバス１Ｒに接続されたバスマスタユニット４，５及びバススレーブユニット６，７と、第２のライトバス２Ｗと第２のリードバス２Ｒに接続されたバスマスタユニット８，９及びバススレーブユニット１０，１１と、調停回路１２Ａ，１２Ｂとを備えた概略構成を有している。
【０１４３】
第１のライトバス１Ｗは、６４ビットのデータ幅を有し、第２のライトバス２Ｗは、３２ビットのデータ幅を有しているとともに、ライト制御コマンドバスを介して、相互に各種ライト制御コマンドを転送できるようになっている。ライトデータ変換ユニット３Ｗは、第１のライトバス１Ｗと第２のライトバス２Ｗとの間に接続されていて、６４ビット幅のデータと３２ビット幅のデータとの間の相互のビット幅の変換を行う。第１のリードバス１Ｒは、６４ビットのデータ幅を有し、第２のリードバス２Ｒは、３２ビットのデータ幅を有しているとともに、リード制御コマンドバスを介して、相互に各種リード制御コマンドを転送できるようになっている。リードデータ変換ユニット３Ｒは、第１のリードバス１Ｒと第２のリードバス２Ｒとの間に接続されていて、６４ビット幅のデータと３２ビット幅のデータとの間の相互のビット幅変換を行う。
【０１４４】
バスマスタユニット４，５は、ライト制御コマンド線と６４ビットライトデータ線とによって第１のライトバス１Ｗに接続され、リード制御コマンド線と６４ビットリードデータ線とによって第１のリードバス１Ｒに接続されていて、それぞれタイミングを調整して、ＣＰＵやＤＭＡコントローラ等の外部マスタユニットと第１のライトバス１Ｗ又は第１のリードバス１Ｒとの間で、コマンドとライトデータ又はリードデータのインタフェースをとる機能を有している。バススレーブユニット６，７は、ライト制御コマンド線と６４ビットライトデータ線とによって第１のライトバス１Ｗに接続され、リード制御コマンド線と６４ビットリードデータ線とによって第１のリードバス１Ｒに接続されていて、それぞれタイミングを調整して、第１のライトバス１Ｗ又は第１のリードバス１ＲとＩ／Ｏやメモリ等の外部スレーブユニットとの間で、コマンドとライトデータ又はリードデータのインタフェースをとる機能を有している。
【０１４５】
バスマスタユニット８，９は、ライト制御コマンド線と３２ビットライトデータ線とによって第２のライトバス２Ｗに接続され、リード制御コマンド線と３２ビットリードデータ線とによって第２のリードバス２Ｒに接続されていて、それぞれタイミングを調整して、ＣＰＵやＤＭＡコントローラ等の外部マスタユニットと第２のライトバス２Ｗ又は第２のリードバス２Ｒとの間で、コマンドとライトデータ又はリードデータのインタフェースをとる機能を有している。バススレーブユニット１０，１１は、ライト制御コマンド線と３２ビットライトデータ線とによって第２のライトバス２Ｗに接続され、リード制御コマンド線と３２ビットリードデータ線とによって第２のリードバス２Ｒに接続されていて、それぞれタイミングを調整して、第２のライトバス２Ｗ又は第２のリードバス２ＲとＩ／Ｏやメモリ等の外部スレーブユニットとの間で、コマンドとライトデータ又はリードデータのインタフェースをとる機能を有している。
【０１４６】
調停回路１２Ａは、各バスマスタユニット４，５及８，９との間で、調停リクエスト信号に応じて、第１のライトバス１Ｗと第２のライトバス２Ｗとにおけるバス権の調停を行って、バス権が確立したとき、調停グラント信号によって、要求元のバスマスタユニットに対して、バス権獲得を通知する機能を有している。調停回路１２Ｂは、各バススレーブユニット６，７及１０，１１との間で、調停リクエスト信号に応じて、第１のリードバス１Ｒと第２のリードバス２Ｒとにおけるバス権の調停を行って、バス権が確立したとき、調停グラント信号によって、要求元のバススレーブユニットに対して、バス権獲得を通知する機能を有している。
【０１４７】
この例のバス接続回路におけるバス構成として、マルチプレクサ形式のバス又は３ステートバッファ形式のバスを使用できる点は、図５乃至図８又は図２２乃至図２５に示された第１実施例の場合と同様である。この例のバス接続回路における、バス権の調停からバス使用までの処理の流れは、図１１に示された第１実施例の場合と同様である。また、この例のバス接続回路における、リードアクセス時又はライトアクセス時の、ライトデータ変換ユニット３Ｗ又はリードデータ変換ユニット３Ｒの処理手順は、図１２及び図１３に示された第１実施例の場合とほぼ同様であるが、リードアクセスとライトアクセスの動作を、それぞれ独立に実行できる点において、第１実施例の場合とは異なっている。
【０１４８】
この例のバス接続回路の、共通制御コマンドバスを含むシステム構成は、図２９に示すようになる。図２９においては、図２８におけると同じものを同じ番号で示し、(1) 〜(21)によって、各制御コマンド線及び各共通制御コマンドバスの信号を表していて、(1) はＷＦｒａｍｅ６４，(2) はＡｄｄｒｅｓｓ，(3) はＣｍｄ，(4) はＤＩＤ，(5) はＷＤａｔａ６４，(6) はＷＤｖａｌｉｄ６４，(7) はＡＣＫ，(8) はＮＡＣＫ，(9) はＤｅｖｓｅｌ，(10)はＲＦｒａｍｅ６４，(11)はＲＣｍｄ，(12)はＲＤＩＤ，(13)はＲＡＣＫ，(14)はＲＤａｔａ６４，(15)はＲＤｖａｌｉｄ６４，(16)はＷＦｒａｍｅ３２，(17)はＷＤａｔａ３２，(18)はＷＤｖａｌｉｄ３２，(19)はＲＦｒａｍｅ３２，(20)はＲＤａｔａ３２，(21)はＲＤｖａｌｉｄ３２をそれぞれ表している。これらのうち、ライトアクセスにおけるものはＷを付して表し、リードアクセスにおけるものはＲを付して表している。
【０１４９】
図２９に示されたシステム構成において用いられている各種コマンドは、図１０に示されたものとほぼ同様の内容を有している。ただし、第１実施例の場合と比較して、一部のコントロール信号（例えばＭａｓｔｅｒ）を欠いている。また、リードデータバスとライトデータバスが別個の場合は、バスが共通の場合と比較して、リードデータ転送時に、リードデータ転送用のＦｒａｍｅ信号，Ｄａｔａ信号，Ｄｖａｌｉｄ信号，Ｃｍｄ信号，及びＤＩＤ信号が必要になる点が異なっている。
【０１５０】
ここで、ＷＦｒａｍｅ６４はライトアクセスによる６４ビット幅のバスの占有を示す情報、Ａｄｄｒｅｓｓは、バススレーブユニットを特定するための情報、Ｃｍｄはコマンド情報、ＤＩＤは、バスマスタユニットを特定するための情報、ＷＤａｔａ６４は、ライトアクセスによる６４ビット幅のバス上の転送データ、ＷＤｖａｌｉｄ６４は、ライトアクセスにおいて６４ビット幅のバス上のデータが有効な期間を示す情報、ＡＣＫは、選択されたユニットが要求された動作可能になったことを示す情報、ＮＡＣＫは、選択されたユニットが要求された動作可能な状態でないことを示す情報、Ｄｅｖｓｅｌは、ユニットが選択された状態であることを示す情報、ＲＦｒａｍｅ６４は、リードアクセスによる６４ビット幅のバスの占有を示す情報、ＲＣｍｄは、リードアクセスにおけるコマンド情報、ＲＤＩＤはリードアクセスにおいてバスマスタユニットを特定するための情報、ＲＡＣＫは、リードアクセスにおいて選択されたユニットが要求された動作可能になったことを示す情報、ＲＤａｔａ６４は、リードアクセスによる６４ビット幅のバス上の転送データ、ＲＤｖａｌｉｄ６４は、リードアクセスにおいて６４ビット幅のバス上のデータが有効な期間を示す情報をそれぞれ示している。
【０１５１】
また、ＷＦｒａｍｅ３２はライトアクセスによる３２ビット幅のバスの占有を示す情報、ＷＤａｔａ３２は、ライトアクセスによる３２ビット幅のバス上の転送データを示す情報、ＷＤｖａｌｉｄ３２は、ライトアクセスにおいて３２ビット幅のバス上のデータが有効な期間を示す情報、ＲＦｒａｍｅ３２は、リードアクセスによる３２ビット幅のバスの占有を示す情報、ＲＤａｔａ３２は、リードアクセスによる３２ビット幅のバス上の転送データ、ＲＤｖａｌｉｄ３２は、リードアクセスにおいて３２ビット幅のバス上のデータが有効な期間を示す情報をそれぞれ示している。
【０１５２】
次に、図２８乃至図３０を参照して、この例のバス接続回路において、スプリット転送によってリードデータのやりとりを行うとともに、ライトデータのやりとりを同時に行ったときの動作例を、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットに対して、リードアクセスを行ったのちにライトアクセスを行った場合について説明する。なお、図３０のタイミングチャートにおいては、調停動作の詳細については省略して示されている。
【０１５３】
最初、バスマスタユニットからの調停リクエストに応じて、ライトバス１Ｗ，２Ｗに対するバス権の調停が行われ、その結果、バス権が付与されたとき、バスマスタユニットから３２ビット側のライトバス２ＷにおいてＷＦｒａｍｅ３２がアクティブにされる。さらにライトデータ変換ユニット３Ｗから６４ビット側のライトバス１ＷにおいてＷＦｒａｍｅ６４がアクティブにされる。これと同時に、バスマスタユニットから、コマンドとして、バススレーブユニットを特定するＡｄｄｒｅｓｓと、データサイズ等を示すＣｍｄと、バスマスタユニットを特定するＤＩＤが出力される。これによって、指定されたバススレーブユニットはＤｅｖｓｅｌを返し、さらに、Ｃｍｄの指示を了承したことを示すＡＣＫを６４ビット側のライトバス１Ｗに出力する。その後、バスマスタユニットは、一旦、ＷＦｒａｍｅ３２をインアクティブにし、これによって、ＷＦｒａｍｅ６４もインアクティブにされる。
【０１５４】
次に、バススレーブユニットでは、リードデータの準備ができたとき、調停リクエストを行うことによって、リードバス１Ｒ，２Ｒに対するバス権の調停が行われ、その結果、バス権が付与されたとき、６４ビット側のリードバス１ＲにおいてＲＦｒａｍｅ６４をアクティブにし、これによって、リードデータ変換ユニット３Ｒから３２ビット側のリードバス２ＲにおいてＲＦｒａｍｅ３２がアクティブにされる。これと同時に、バススレーブユニットから、コマンドとして、データサイズ等を示すＲＣｍｄと、バスマスタユニットを特定するＲＤＩＤが出力される。これによって、バススレーブユニットは、６４ビット側のリードバス１ＲにおいてＲＤｖａｌｉｄ６４をアクティブにして、ＲＤａｔａ６４を出力する。ＲＤａｔａ６４の出力終了時、バススレーブユニットは、ＲＤｖａｌｉｄ６４をインアクティブにするとともに、ＲＦｒａｍｅ６４をインアクティブにする。なおこの際、バスマスタユニットからのＡＣＫは必要ないものとする。
【０１５５】
リードデータ変換ユニット３Ｒでは、ＲＤａｔａ６４を受信すると、３２ビット側のリードバス２ＲにおいてＲＤｖａｌｉｄ３２をアクティブにし、受信したＲＤａｔａ６４をＲＤａｔａ３２に変換して、バスマスタユニットへ送る。送信終了時、リードデータ変換ユニット３ＲはＲＤｖａｌｉｄ３２をインアクティブにし、さらに、ＲＦｒａｍｅ３２をインアクティブにする。
【０１５６】
一方、再びバスマスタユニットからの調停リクエストに応じて、ライトバス１Ｗ，２Ｗに対するバス権の調停が行われ、その結果、バス権が付与されたとき、バスマスタユニットから３２ビット側のライトバス２ＷにおいてＷＦｒａｍｅ３２がアクティブにされ、さらにライトデータ変換ユニット３Ｗから６４ビット側のライトバス１ＷにおいてＷＦｒａｍｅ６４がアクティブにされる。これと同時に、バスマスタユニットから、コマンドとして、Ａｄｄｒｅｓｓと、Ｃｍｄと、ＤＩＤが出力される。これによって、指定されたバススレーブユニットはＤｅｖｓｅｌを返すとともに、Ｃｍｄの指示を了承したことを示すＡＣＫを６４ビット側のライトバス１Ｗに出力する。
【０１５７】
次に、バスマスタユニットは、３２ビット側のライトバス２Ｗに出力されるＷＤｖａｌｉｄ３２をアクティブにして，ＷＤａｔａ３２を出力し、終了したときＷＤｖａｌｉｄ３２をインアクティブにして、ＷＦｒａｍｅ３２をインアクティブにする。ライトデータ変換ユニット３Ｗは、ＷＤａｔａ３２を受信したとき、これをＷＤａｔａ６４に変換し、６４ビット側のライトバス１ＷにおいてＷＤｖａｌｉｄ６４をアクティブにして、ＷＤａｔａ６４をバススレーブユニットに出力し、終了したとき、ＷＤｖａｌｉｄ６４をインアクティブにするとともに、ＷＦｒａｍｅ６４をインアクティブにする。
【０１５８】
６４ビットのバスマスタユニットから３２ビットのバススレーブユニットに対するスプリット転送のリードアクセスとライトアクセスも、図１８乃至図２１に示された第１実施例の場合の各動作の組み合わせとして、同様に行うことができる。
【０１５９】
このように、この例のバス接続回路では、リードデータバスとライトデータバスが別個の場合に、スプリット転送のリードアクセスとライトアクセスとをそれぞれ別個に行うことができるとともに、この際、リードアクセス及びライトアクセスにおけるクロックサイクル数を少なくすることができる。この際、データ転送エラー発生時に送信元でデータの喪失が生じないとともに、送信元へのデータ転送エラー発生通知が可能なことは、第１実施例の場合と同様である。
【０１６０】
さらに、従来技術のバスマスタ制御回路やバススレーブ制御回路におけるような、コマンド制御信号の細部にわたる制御が不要で、データ変換が必要な条件を抽出してデータの変換を行うハードウェアのみを用意すればよいので、回路構成が簡単になり、必要なハードウェア量を少なくすることができる。また、この例のバス制御回路では、バス調停回数が少なく、従って遅延が少ないため、バスを占有している期間が短くなり、その結果、バスのスループットを向上できるようになる。
【０１６１】
◇第４実施例
図３１は、本発明の第４実施例である、２個のデータ変換ユニットを使用して、２段階にバス幅の変換を行う場合のバスシステムの構成を示すブロック図である。以下、第４実施例として、リードデータバスとライトデータバスが共通な、それぞれ異なるバス幅を有する３種類のバスを相互に接続する際に、２個のデータ変換ユニットを使用して、２段階にバス幅の変換を行う場合のバスシステムについて説明する。
【０１６２】
この例のバスシステムは、図３１に示すように、第１のバス１０１と、第２のバス１０２と、第３のバス１０３とに対して、第１のバス１０１に接続された１２８ビットのバスマスタユニット１０４と、第１のバス１０１に接続された１２８ビットのバススレーブユニット１０５と、第２のバス１０２に接続された６４ビットのバスマスタユニット１０６と、第２のバス１０２に接続された６４ビットのバススレーブユニット１０７と、第３のバス１０３に接続された３２ビットのバスマスタユニット１０８と、第３のバス１０３に接続された３２ビットのバススレーブユニット１０９と、第１のデータ変換ユニット１１０と、第２のデータ変換ユニット１１１と、調停回路１１２とを備えた概略構成を有している。
【０１６３】
第１のバス１０１は、１２８ビットのデータ幅を有し、第２のバス１０２は６４ビットのデータ幅を有し、第３のバス１０３は、３２ビットのデータ幅を有しているとともに、第１のバス１０１と第２のバス１０２間、及び第２のバス１０２と第３のバス１０３間において、それぞれ共通制御コマンドバスを介して、アドレスバスとコントロールバスの信号を相互に転送できるようになっている。バスマスタユニット１０４は、１２８ビットの外部マスタユニット（不図示）と第１のバス１０１との間で、コマンドとリードデータ，ライトデータのインタフェースをとり、バススレーブユニット１０５は、１２８ビットの外部スレーブユニット（不図示）と第１のバス１０１との間で、コマンドとリードデータ，ライトデータのインタフェースをとる。
【０１６４】
バスマスタユニット１０６は、６４ビットの外部マスタユニット（不図示）と第２のバス１０２との間で、コマンドとリードデータ，ライトデータのインタフェースをとり、バススレーブユニット１０７は、６４ビットの外部スレーブユニット（不図示）と第２のバス１０２との間で、コマンドとリードデータ，ライトデータのインタフェースをとる。バスマスタユニット１０８は、３２ビットの外部マスタユニット（不図示）と第３のバス１０３との間で、コマンドとリードデータ，ライトデータのインタフェースをとり、バススレーブユニット１０９は、３２ビットの外部スレーブユニット（不図示）と第３のバス１０３との間で、コマンドとリードデータ，ライトデータのインタフェースをとる。
【０１６５】
第１のデータ変換ユニット１１０は、第１のバス１０１と第２のバス１０２との間で、１２８ビット幅のデータと６４ビット幅のデータとの間の相互のビット幅の変換を行い、第２のデータ変換ユニット１１１は、第２のバス１０２と第３のバス１０３との間で、６４ビット幅のデータと３２ビット幅のデータとの間の相互のビット幅の変換を行う。調停回路１１２は、バスマスタユニット１０４、バススレーブユニット１０５，バスマスタユニット１０６，バススレーブユニット１０７，バスマスタユニット１０８，バススレーブユニット１０９からのそれぞれの調停リクエスト信号に応じて、第１のバス１０１，第２のバス１０２，第３のバス１０３におけるバス権の調停を行って、バス権を得たバスマスタユニット又はバススレーブユニットに対して調停グラント信号を出力する。
【０１６６】
図３１に示されたバス接続回路における、第１のバス１０１と第２のバス１０２間におけるバスの接続、又は第２のバス１０２と第３のバス１０３間におけるバスの接続は、上述した第１実施例の場合と同様にして行われる。また、第１のバス１０１と第３のバス１０３間におけるバスの接続は、第１のバス１０１と第２のバス１０２間におけるバスの接続と、第２のバス１０２と第３のバス１０３間におけるバスの接続とを順次行うことによって、相互に行うことができる。従って、図３１に示されたバス接続回路によれば、１２８ビット幅のバスと、６４ビット幅のバスと、３２ビット幅のバスとの、３種類の異なるビット幅のバス間を相互に接続することができる。
【０１６７】
このように、この例のバス接続回路によれば、２個のデータ変換ユニットを使用して２段階にバス幅の変換を行うことによって、リードデータバスとライトデータバスが共通な、３種類のそれぞれ異なるバス幅を有するバスを相互に接続してスプリット転送のリードアクセスとライトアクセスとを行うことができるとともに、この際、バス間を越える際の調停が不要で、データの変換だけを行えばよいため、リードアクセス及びライトアクセスにおけるクロックサイクル数を少なくすることができる。従って、送信元から送信先へのデータ転送を同一バスサイクル内に行うことができるので、データ転送エラー発生時に送信元でデータの喪失が生じないとともに、送信元へのデータ転送エラー発生通知が可能なことは、第１実施例の場合と同様である。
【０１６８】
さらに、従来技術のバスマスタ制御回路やバススレーブ制御回路におけるような、コマンド制御信号の細部にわたる制御が不要で、データ変換が必要な条件を抽出してデータの変換を行うハードウェアのみを用意すればよいので、回路構成が簡単になり、必要なハードウェア量を少なくすることができる。また、この例のバス制御回路では、バス調停回数が少なく、従って遅延が少ないため、バスを占有している期間が短くなり、その結果、バスのスループットを向上できるようになる。
【０１６９】
◇第５実施例
図３２は、本発明の第５実施例である、１個のデータ変換ユニットを使用して、３種類の異なるビット幅のバスを接続する場合のバスシステムの構成を示すブロック図、図３３は、本実施例のバスシステムにおけるデータ変換ユニットの構成例を示すブロック図、図３４は、本実施例のバスシステムにおいて、バスマスタユニットとバススレーブユニットがともに出力する信号を伝達する場合におけるバス構成を説明する図、図３５は、本実施例のバスシステムにおいて、バスマスタユニットのみが出力する信号を伝達する場合におけるのバス構成を説明する図、図３６は、本実施例のバスシステムにおいて、バススレーブユニット側のみが出力する信号を伝達する場合におけるバスの構成を説明する図である。以下、第５実施例として、それぞれ異なるバス幅を有する３種類のバスを接続する際に、１個のデータ変換ユニットを使用して、相互にバス幅の変換を行う場合のバスシステムについて説明する。
【０１７０】
この例のバスシステムは、図３２に示すように、第１のバス２０１と、第２のバス２０２と、第３のバス２０３とに対して、第１のバス２０１に接続された１２８ビットのバスマスタユニット２０４と、第１のバス２０１に接続された１２８ビットのバススレーブユニット２０５と、第２のバス２０２に接続された６４ビットのバスマスタユニット２０６と、第２のバス２０２に接続された６４ビットのバススレーブユニット２０７と、第３のバス２０３に接続された３２ビットのバスマスタユニット２０８と、第３のバス２０３に接続された３２ビットのバススレーブユニット２０９と、データ変換ユニット２１０と、調停回路２１１とを備えた概略構成を有している。
【０１７１】
第１のバス２０１は１２８ビットのデータ幅を有し、第２のバス２０２は６４ビットのデータ幅を有し、第３のバス２０３は３２ビットのデータ幅を有しているとともに、第１のバス２０１と第２のバス２０２間、第２のバス２０２と第３のバス２０３間、及び第１のバス２０１と第３のバス２０３間において、それぞれ共通制御コマンドバスを介して、アドレスバスとコントロールバスの信号を相互に転送できるようになっている。バスマスタユニット２０４は、１２８ビットの外部マスタユニット（不図示）と第１のバス２０１との間で、コマンドとリードデータ，ライトデータのインタフェースをとり、バススレーブユニット２０５は、１２８ビットの外部スレーブユニット（不図示）と第１のバス２０１との間で、コマンドとリードデータ，ライトデータのインタフェースをとる。
【０１７２】
バスマスタユニット２０６は、６４ビットの外部マスタユニット（不図示）と第２のバス２０２との間で、コマンドとリードデータ，ライトデータのインタフェースをとり、バススレーブユニット２０７は、６４ビットの外部スレーブユニット（不図示）と第２のバス２０２との間で、コマンドとリードデータ，ライトデータのインタフェースをとる。バスマスタユニット２０８は、３２ビットの外部マスタユニット（不図示）と第３のバス１０３との間で、コマンドとリードデータ，ライトデータのインタフェースをとり、バススレーブユニット２０９は、３２ビットの外部スレーブユニット（不図示）と第３のバス２０３との間で、コマンドとリードデータ，ライトデータのインタフェースをとる。
【０１７３】
データ変換ユニット２１０は、第１のバス２０１と第２のバス２０２と第３のバス２０３との間で、１２８ビット幅のデータと６４ビット幅のデータと３２ビット幅のデータとの間の相互のビット幅の変換を行う。調停回路２１１は、バスマスタユニット２０４、バススレーブユニット２０５，バスマスタユニット２０６，バススレーブユニット２０７，バスマスタユニット２０８，バススレーブユニット２０９からのそれぞれの調停リクエスト信号に応じて、第１のバス２０１，第２のバス２０２，第３のバス２０３におけるバス権の調停を行って、バス権を得たバスマスタユニット又はバススレーブユニットに対して調停グラント信号を出力する。
【０１７４】
図３３は、図３２のバス接続回路におけるデータ変換ユニットの構成例を示したものである。このデータ変換ユニット２１０は、図３３に示すように、データバッファ２１１と、タイミング制御部２１２と、マルチプレクサ２１３，２１４，２１５，２１６，２１７，２１８，２１９とから概略構成されている。
【０１７５】
データバッファ２１１は、例えば１２８ビット幅のデータと、６４ビット幅のデータと、３２ビット幅のデータとの間の相互のビット幅の変換を行うＦＩＦＯメモリからなっている。すなわち、データバッファ２１１は、１２８ビット幅のデータを書き込んで、６４ビットずつ２回に分けて読み出すことによって、６４ビット幅のデータへの変換を行い、又は３２ビットずつ４回に分けて読み出すことによって、３２ビット幅のデータへの変換を行うとともに、また、６４ビット幅のデータを書き込んで、３２ビットずつ２回に分けて読み出すことによって、３２ビット幅のデータへの変換を行う。
【０１７６】
さらに、逆に、３２ビット幅のデータを上位から下位へ向かって、又は下位から上位へ向かって、２回に分けて書き込んだものを結合して読み出すことによって６４ビット幅のデータへの変換を行うとともに、また、３２ビット幅のデータを上位から下位へ向かって、又は下位から上位へ向かって、４回に分けて書き込んだものを結合して読み出すことによって、又は、６４ビット幅のデータを上位から下位へ向かって、又は下位から上位へ向かって、２回に分けて書き込んだものを結合して読み出すことによって、それぞれ１２８ビット幅のデータへの変換を行う。
【０１７７】
タイミング制御部２１２は、１２８ビット制御コマンド信号又は６４ビット制御コマンド信号又は３２ビット制御コマンド信号に応じて、１２８ビットデータの書き込み時、書込選択信号によって、マルチプレクサ２１３，２１４，２１５，２１６を制御して、１２８ビットデータ線のデータをデータバッファ２１１に入力し、６４ビットデータの書き込み時、書込選択信号によってマルチプレクサ２１３，２１４又は２１５，２１６を制御して、６４ビットデータ線のデータをデータバッファ２１１に入力し、３２ビットデータの書き込み時、書込選択信号によってマルチプレクサ２１３，２１４，２１５，２１６のいずれかを制御して、３２ビットデータ線のデータをデータバッファ２１に入力するように制御するとともに、１２８ビットデータの読み出し時、１２８ビット出力選択信号によって、マルチプレクサ２１７を制御して、１２８ビットデータを１２８ビットデータ線に出力し、６４ビットデータの読み出し時、６４ビット出力選択信号によってマルチプレクサ２１８を制御して、６４ビットデータを６４ビットデータ線に出力し、３２ビットデータの読み出し時、３２ビット出力選択信号によってマルチプレクサ２１９を制御して、３２ビットデータを３２ビットデータ線に出力するように制御する。
【０１７８】
さらにタイミング制御部２１２は、１２８ビットデータ信号の出力時、１２８ビットデータが有効な期間を示す１２８ビットデータバリッド信号と、１２８ビットデータ線がアクティブになったことを示す１２８ビットフレーム信号を出力し、６４ビットデータ信号の出力時、６４ビットデータが有効な期間を示す６４ビットデータバリッド信号と、６４ビットデータ線がアクティブになったことを示す６４ビットフレーム信号を出力し、３２ビットデータ信号の出力時、３２ビットデータが有効な期間を示す３２ビットデータバリッド信号と、３２ビットデータ線スがアクティブになったことを示す３２ビットフレーム信号を出力する。
【０１７９】
図３４は、図３２に示されたバス接続回路において、バス２０３を構成する複数のバスの内、バスマスタユニットとバススレーブの双方から出力される信号、例えばフレーム信号を伝達するバスの構成を示すものである。このような信号を伝達するためのバス１３０１は、マルチプレクサＸ１７，Ｘ１８，Ｘ１９、オア回路Ｏ１５、Ｏ１６によって構成される。
【０１８０】
４：１マルチプレクサＸ１７は、マスターユニットＭ２１，Ｍ２２及びスレーブユニットＳ２１，Ｓ２２からＦｒａｍｅ３２＿Ｏ、及びＦｒａｍｅ３２＿ＯＥを受け取り、Ｆｒａｍｅ３２＿ＯＥに基づいてＦｒａｍｅ３２＿Ｏ信号を選択・出力する。２：１マルチプレクサＸ１９は、バス１３０１の外部（バス２０１またはバス２０２からのフレーム信号）からのフレーム信号を選択・出力する。２：１マルチプレクサＸ１８は、マルチプレクサＸ１７の出力及びマルチプレクサＸ１９の出力のいずれかを、オア回路Ｏ１５及びオア回路Ｏ１６の出力に基づいてマスターユニットＭ２１，Ｍ２２及びスレーブユニットＳ２１，Ｓ２２に供給する。
【０１８１】
図３５は、図３２に示されたバス接続回路において、バス２０３を構成する複数のバスの内、バスマスタユニットからのみ出力される信号、例えばアドレス信号を伝達するバスの構成を示すものである。このような信号を伝達するためのバス１３０２は、マルチプレクサＸ１１，Ｘ１２，Ｘ１３，及びオア回路Ｏ１１、Ｏ１２によって構成されている。
【０１８２】
例えば、３２ビットのバスマスタユニットＭ２１，Ｍ２２が、アドレス信号としてＡｄｄｒ３２＿Ｏ信号と、その有効を示すＡｄｄｒ３２＿ＯＥ信号とを出力する。これによって、マルチプレクサＸ１１は有効になったいずれかのＡｄｄｒ３２＿Ｏ信号のみを選択して出力する。このＡｄｄｒ３２＿Ｏ信号は、オア回路Ｏ１１においてバスマスタユニットＭ２１，Ｍ２２からのＡｄｄｒ３２＿ＯＥ信号のオアをとった信号とともに、共通制御コマンドバスに出力される。
【０１８３】
さらに、マルチプレクサＸ１３において、１２８ビットバスからのＡｄｄｒ１２８＿Ｏ信号と６４ビットバスからのＡｄｄｒ６４＿Ｏ信号とを、１２８ビットバスからのＡｄｄｒ１２８＿ＯＥ信号と６４ビットバスからのＡｄｄｒ６４＿ＯＥ信号とによって選択した信号と、マルチプレクサＸ１１で選択されたＡｄｄｒ３２＿Ｏ信号とを、マルチプレクサＸ１２において、オア回路Ｏ１１からの信号と、オア回路Ｏ１２において１２８ビットバスからのＡｄｄｒ１２８＿ＯＥ信号と６４ビットバスからのＡｄｄｒ６４＿ＯＥ信号とのオアをとった信号とによって選択して、選択された信号をアドレスの入力を示すＡｄｄｒ＿Ｉ信号として、３２ビットのバススレーブユニットＳ２１，Ｓ２２に共通に接続する。
【０１８４】
さらに、このような接続を、６４ビットバスマスタユニットと１２８ビットバスマスタユニット及び３２ビットバスマスタユニット間と、１２８ビットバスマスタユニットと３２ビットバスマスタユニット及び６４ビットバスマスタユニット間とにおいて行うことによって、３２ビット幅のバスと６４ビット幅のバスと１２８ビット幅のバスとの間において、制御コマンドを共通化することができる。
【０１８５】
図３６は、図３２に示されたバス接続回路において、バス２０３を構成する複数のバスの内、バススレーブユニットのみから出力される信号、例えばＡｃｋ信号を伝達するバスの構成を示すものである。このような信号を伝達するためのバス１３０３は、マルチプレクサＸ１４，Ｘ１５，Ｘ１６及びオア回路Ｏ１３，Ｏ１４から構成されている。
【０１８６】
例えば、３２ビットのバススレーブユニットＳ２１，Ｓ２２がそれぞれ、送信許可を示すＡＣＫ３２＿Ｏ信号を出力する場合、それぞれ同時にその有効を示すＡＣＫ３２＿ＯＥ信号を出力する。これによって、マルチプレクサＸ１４は有効になったいずれかのＡＣＫ３２＿Ｏ信号のみを選択して出力する。このＡＣＫ３２＿Ｏ信号は、オア回路Ｏ１３においてバススレーブユニットＳ２１，Ｓ２２からのＡＣＫ３２＿ＯＥ信号のオアをとった信号とともに、共通制御コマンドバスに出力される。
【０１８７】
さらに、マルチプレクサＸ１６において、１２８ビットバスからのＡＣＫ１２８＿Ｏ信号と６４ビットバスからのＡＣＫ６４＿Ｏ信号とを、１２８ビットバスからのＡＣＫ１２８＿ＯＥ信号と６４ビットバスからのＡＣＫ６４＿ＯＥ信号とによって選択した信号と、マルチプレクサＸ１４で選択されたＡＣＫ３２＿Ｏ信号とを、マルチプレクサＸ１５において、オア回路Ｏ１３からの信号と、オア回路Ｏ１４において１２８ビットバスからのＡＣＫ１２８＿ＯＥ信号と６４ビットバスからのＡＣＫ６４＿ＯＥ信号とのオアをとった信号とによって選択して、選択された信号をＡＣＫの入力を示すＡＣＫ＿Ｉ信号として、バスマスタユニットＭ２１，Ｍ２２に共通に接続する。
【０１８８】
さらに、このような接続を、６４ビットバスマスタユニットと１２８ビットバスマスタユニット及び３２ビットバスマスタユニット間と、１２８ビットバスマスタユニットと３２ビットバスマスタユニット及び６４ビットバスマスタユニット間とにおいて行うことによって、３２ビット幅のバスと６４ビット幅のバスと１２８ビット幅のバスとの間において、制御コマンドを共通化することができる。
【０１８９】
このように、この例のバス接続回路によれば、１個のデータ変換ユニットを使用して相互にバス幅の変換を行うことによって、リードデータバスとライトデータバスが共通な、３種類のそれぞれ異なるバス幅を有するバスを相互に接続してスプリット転送のリードアクセスとライトアクセスとを行うことができるとともに、この際、バス間を越える際のバス権の調停が不要で、データの変換だけを行えばよいため、リードアクセス及びライトアクセスにおけるクロックサイクル数を少なくすることができる。従って、送信元から送信先へのデータ転送を、同一バスサイクル内に行うことができるので、データ転送エラー発生時にも、データの喪失が生じることがないとともに、送信先から送信元へデータ転送エラー発生を通知することができることは、第１実施例の場合と同様である。
【０１９０】
さらに、従来技術のバスマスタ制御回路やバススレーブ制御回路におけるような、コマンド制御信号の細部にわたる制御が不要で、データ変換が必要な条件を抽出してデータの変換を行うハードウェアのみを用意すればよいので、回路構成が簡単になり、必要なハードウェア量を少なくすることができる。また、この例のバス制御回路では、バス調停回数が少なく、従って遅延が少ないため、バスを占有している期間が短くなり、その結果、バスのスループットを向上できるようになる。
【０１９１】
◇適用例
次に、上述して来た本発明のバスシステムを適用した情報処理システム、及び本発明のバスシステムを適用したチップを含む情報処理システムの例について、図３７，図３８を参照して簡単に説明する。各実施例と同一の参照番号を用いた構成要素については、既に説明しているため、説明を省略する。
【０１９２】
図３７は、本発明のバス変換ユニットを適用した情報処理システムの例を示したものである。本発明のバス変換ユニット３７０は、バス１、バス２、データ変換ユニット３、バスマスタユニット４、５、８、９、バススレーブユニット６、７、１０、１１、調停回路１２、共通制御コマンドバス３７２、制御コマンド変換回路３７１とによって構成されている。なお、調停回路と、バスマスタユニット、バススレーブユニットとの間の線は省略している。このバス変換ユニット３７０に、外部マスタユニット３０１、３０２、３０３、３０４、外部スレーブユニット４０１、４０２、４０３、４０４が接続されて情報処理システムを構成している。
【０１９３】
ここで、バス１とバス２との制御コマンド線上のコマンドのフォーマットが異なっている場合には、共通制御コマンドバス３７２の間に制御コマンド変換回路３７１を挟み、制御コマンド変換回路３７１によってコマンドのフォーマットの違いを吸収することができる。また、バス変換ユニット３７０を一つのマクロとして考えると、外部マスタユニット及び外部スレーブユニットは、バスマスタユニット及びバススレーブユニットとのインタフェースのみを考えれば良く、その内部の回路構成を意識する必要は無い。
【０１９４】
また、図３７に記載した情報処理システムをワンチップ上に構成しても良い。このように、情報処理システムをワンチップ上に構成した場合には、以下のような情報処理システムも構築可能である。情報処理システムの一例として、チップ３８０、外部バス３８２、外部メモリ３８３及びチップ３８４から構成されるものを図３８に示す。
【０１９５】
バス変換ユニット３７０を含むチップ３８０は、バス変換ユニット３７０内のバススレーブユニットと接続されるＩ／Ｏインタフェース３８１を備える。（図３８において、外部スレーブユニット４０１がＩ／Ｏインタフェース３８１に置き換わったものと考える。）Ｉ／Ｏインタフェース３８１は、外部バス３８２を介して外部メモリ３８３及び別のチップ３８４と接続されている。
【０１９６】
本例では、バス変換ユニット３７０に接続されたバスマスタユニットは、バススレーブユニット６を介して外部メモリ３８３及びチップ３８４にアクセスをすることが可能となる。このとき、バス変換ユニット３７０は、レイテンシが小さいため、高速に外部メモリ３８３及び外部スレーブユニットとしてチップ３８４にアクセスをすることが可能となる。また、バススレーブユニット６の代わりに、バスマスタユニットを用いることによってチップの外部に設けられた外部マスタユニットと接続することも可能となる。例えば、チップ３８４を外部マスタユニットとして、チップ３８０上のメモリにアクセスすることも可能となる。このとき、チップ３８４は、バス変換ユニットのレイテンシが小さいため高速にチップ３８０上のメモリにアクセスすることが可能となる。
【０１９７】
以上、この発明の実施例を図面により詳述してきたが、具体的な構成はこの実施例に限られたものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。例えば、この発明の実施例にて、ＯＲ回路を用いて構成された論理はアクティブＨＩであることが前提である。アクティブＬＯＷである場合には、ＡＮＤ回路を用いて構成することもできる。なお、実施例において、バススレーブユニットがアドレス比較回路を内蔵したものを記載したが、アドレス比較回路はバススレーブユニットの外部に設けてもよい。
【０１９８】
また、実施例では、タイミング制御部２２が、スレーブからのリードデータ転送に、Ｆｒａｍｅ信号及びＡｃｋ信号がどちらのバスから送られてきたのかに対応してビット変換の制御を行なっているものを示したが、Ａｃｋ信号を出力するマスタが必ずデータを受け取ることができる状態であるとする場合には、マスタ側からのＡｃｋ信号は不要となる。しかしながら、タイミング制御部２２はＡｃｋ信号が無くなるとビット変換の方向が分からなくなるため、常にビット変換を行なうこととなる。この場合、Ａｃｋ信号を待たなくて良くなるため高速になるが、消費電力が大きくなる。逆に、マスタ側がＡｃｋ信号を出力する場合には、Ａｃｋ信号を待つ分だけ低速になるが、ビット変換が不要な場合には消費電力を低減することができる。
【０１９９】
また、実施例では、２つ又は３つの異なるビット幅のバスの間におけるデータ転送のバスについて述べたが、本発明はこれに限るものでなく、２以上の異なるビット幅のバスの間におけるビット幅の変換時にも適用することができる。また、本発明は、異なる制御用コマンドを定義されているバス間を接続する場合にも、制御用コマンドの変換回路を共通制御コマンドバスに接続することによって適用することができる。
【０２００】
また、本実施例では、バスシステムに関する回路の構成を具体的に例示してきたが、このバスシステムおよびバスシステムを含んだチップ３８０に関して、この回路構造を表現した電子データを生成し、コンピュータ装置で読み取り自在なソフトウェアとして情報記憶媒体に格納することも可能である（図示せず）。さらに、バスシステムおよびバスシステムを含んだチップ３８０の動作をコンピュータ処理装置にシミュレートさせるコンピュータプログラムをＣ言語などのプログラミング言語やＶｅｒｉｌｏｇ−ＨＤＬなどのハードウェア記述言語などで記述して情報記憶媒体に格納することも可能であり（図示せず）、このコンピュータプログラムや上述の電子データが情報記憶媒体に格納されているコンピュータ装置を形成することも可能である。
【０２０１】
本発明でいう回路構造の電子データとは、その回路構造の論理構造を特定できるソフトウェアであれば良く、例えば、動作記述データ、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）データ、ゲートレベルデータ、トランジスタレベルデータ、等からなる回路装置のネットリストなどとすることが可能である。また、本発明でいう情報記憶媒体とは、コンピュータ装置に各種処理を実行させるためのコンピュータプログラムが事前に格納されたハードウェアであれば良く、例えば、コンピュータ装置に固定されているＲＯＭ（Ｒｅａｄ  ＯｎｌｙＭｅｍｏｒｙ）およびＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、コンピュータ装置に交換自在に装填されるＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、およびＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｃ−Ｃａｒｔｒｉｄｇｅ）、等で実施することが可能である。
【０２０２】
本発明を適用したＬＳＩは、種々の異なる実システムに適用することが可能である。この際の利点としては、
１．  本発明を適用した実システムでは、本発明のバス変換ユニットの特有の効果である低レイテンシアクセスに基づいて、チップ外へのアクセスの場合も、レイテンシ（クロックサイクル数）を小さくすることができる。
２．  バスマスタユニット及びバススレーブユニットデータ間のインタフェースのみを行えばよく、データの転送先の状況を考慮して設計を行う必要がないので、ＬＳＩを将来、より大きいビット幅のバスで置き換えても、そのチップを、同一システム内で使用し続けることができる。
【０２０３】
さらに、本発明のバス接続回路を備えることによって、ビット幅の異なる複数のバスのデータによって任意の情報処理を行う情報処理システムを構成することができる。また、本発明のバス接続回路又は上記の情報処理システムは、半導体基板上に集積回路として形成することが可能であり、これらの回路・システム情報を電子データとして記憶媒体に記録することもできる。
【図面の簡単な説明】
【０２０４】
【図１】本発明の第１実施例であるバスシステムの構成を示すブロック図である。
【図２】本実施例のバスシステムの共通制御コマンドバスを含むシステム構成を示す図である。
【図３】本実施例におけるバスマスタユニットの構成を示す図である。
【図４】本実施例におけるデータ変換ユニットの構成を示す図である。
【図５】本実施例におけるバススレーブユニットの構成を示す図である。
【図６】本実施例における、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットへのリードアクセス時のデータ転送動作を示すタイミングチャートである。
【図７】本実施例における、６４ビットのバスマスタユニットから、３２ビットのバススレーブユニットに対するリードアクセス時のデータ転送動作を示すタイミングチャートである。
【図８】本実施例における、６４ビットのバスマスタユニットから３２ビットのバススレーブユニットへのライトアクセス時のデータ転送動作を示すタイミングチャートである。
【図９】本実施例における、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットへのライトアクセス時のデータ転送動作を示すタイミングチャートである。
【図１０】本発明の第２実施例であるバスシステムの構成を示すブロック図である。
【図１１】本実施例における、３２ビットバスマスタから６４ビットスレーブユニットへのリードアクセス時のデータ転送動作を示すタイミングチャートである。
【図１２】本実施例におけるコマンドの概要を示す図である。
【図１３】本実施例のバス接続回路における、バス権の調停からバス使用までの処理の流れを示すフローチャートである。
【図１４】本実施例のバスシステムにおける、スプリット転送時のデータ変換ユニットの処理手順を説明するフローチャートである。
【図１５】本実施例のバスシステムにおける、スプリット転送時のデータ変換ユニットの処理手順を説明するフローチャートである。
【図１６】本実施例のバスシステムにおける、バス権の調停動作を含む、バスマスタユニットの処理を示すフローチャートである。
【図１７】本実施例のバスシステムにおける、バス権の調停動作を含む、バスマスタユニットの処理を示すフローチャートである。
【図１８】本実施例のバスシステムにおける、バス権の調停動作を含む、バススレーブユニットの処理を示すフローチャートである。
【図１９】本実施例のバスシステムにおける、バス権の調停動作を含む、バススレーブユニットの処理を示すフローチャートである。
【図２０】マルチプレクサを用いたバスの構成を示す図である。
【図２１】バスマスタユニットとバススレーブユニットがともに出力する信号を伝達する場合におけるマルチプレクサ形式のバスの構成を説明する図である。
【図２２】バスマスタユニットのみが出力する信号を伝達する場合におけるマルチプレクサ形式のバスの構成を説明する図である。
【図２３】バススレーブユニットのみが出力する信号を伝達する場合におけるマルチプレクサ形式のバスの構成を説明する図である。
【図２４】３ステートバッファを用いたバスの構成を示す図である。
【図２５】バスマスタユニットとバススレーブユニットがともに信号を出力する場合における３ステートバッファ形式のバスの構成を説明する図である。
【図２６】バスマスタユニットのみが信号を出力する場合における３ステートバッファ形式のバスの構成を説明する図である。
【図２７】バススレーブユニットのみが信号を出力する場合における３ステートバッファ形式のバスの構成を説明する図である。
【図２８】本発明の第３実施例であるバスシステムの構成を示すブロック図である。
【図２９】本実施例のバスシステムの共通制御コマンドバスを含むシステム構成を示す図である。
【図３０】本実施例において、３２ビットのバスマスタユニットから６４ビットのバススレーブユニットに対して、リードアクセス後にライトアクセスを行ったときのデータ転送動作を示すタイミングチャートである。
【図３１】本発明の第４実施例である、２個のデータ変換ユニットを使用して、２段階にバス幅の変換を行う場合のバスシステムの構成を示すブロック図である。
【図３２】本発明の第５実施例である、１個のデータ変換ユニットを使用して、３種類の異なるビット幅のバスを接続する場合のバスシステムの構成を示すブロック図である。
【図３３】本実施例のバスシステムにおけるデータ変換ユニットの構成例を示すブロック図である。
【図３４】本実施例のバスシステムにおいて、バスマスタユニットとバススレーブユニットがともに出力する信号を伝達する場合におけるバス構成を説明する図である。
【図３５】本実施例のバスシステムにおいて、バスマスタユニットのみが出力する信号を伝達する場合におけるバス構成を説明する図である。
【図３６】本実施例のバスシステムにおいて、バススレーブユニット側のみが出力する信号を伝達する場合におけるバスの構成を説明する図である。
【図３７】本発明のバス変換ユニットを適用した情報処理システムのブロック図である。
【図３８】本発明のバス変換ユニットを適用したチップを含む情報処理システムのブロック図である。
【図３９】従来のブリッジ方式のバス接続回路の構成例を示すブロック図である。
【符号の説明】
【０２０５】
１，１Ｗ，１Ｒ      バス
２，２Ｗ，２Ｒ      バス
３，３Ｗ，３Ｒ      データ変換ユニット（データ変換手段）
４      バスマスタユニット（マスタ側のインタフェース手段）
５      バスマスタユニット（マスタ側のインタフェース手段）
６，６Ａ      バススレーブユニット（スレーブ側のインタフェース手段）
７，７Ａ      バススレーブユニット（スレーブ側のインタフェース手段）
８      バスマスタユニット（マスタ側のインタフェース手段）
９      バスマスタユニット（マスタ側のインタフェース手段）
１０，１０Ａ    バススレーブユニット（スレーブ側のインタフェース手段）
１１，１１Ａ    バススレーブユニット（スレーブ側のインタフェース手段）
１２，１２Ａ，１２Ｂ      調停回路（調停手段）
５０  共通制御コマンドバス
１０１，１０２，１０３，２０１，２０２，２０３      バス
１０４，１０６，１０８，２０４，２０６，２０８      バスマスタユニット（マスタ側のインタフェース手段）
１０５，１０７，１０９，２０５，２０７，２０９      バススレーブユニット（スレーブ側のインタフェース手段）
１１０，１１１，２１０      データ変換ユニット（データ変換手段）
１１２，２１１              調停回路（調停手段）
【図１】
2006085732.tif 000003
【図２】
2006085732.tif 000004
【図３】
2006085732.tif 000005
【図４】
2006085732.tif 000006
【図５】
2006085732.tif 000007
【図６】
2006085732.tif 000008
【図７】
2006085732.tif 000009
【図８】
2006085732.tif 000010
【図９】
2006085732.tif 000011
【図１０】
2006085732.tif 000012
【図１１】
2006085732.tif 000013
【図１２】
2006085732.tif 000014
【図１３】
2006085732.tif 000015
【図１４】
2006085732.tif 000016
【図１５】
2006085732.tif 000017
【図１６】
2006085732.tif 000018
【図１７】
2006085732.tif 000019
【図１８】
2006085732.tif 000020
【図１９】
2006085732.tif 000021
【図２０】
2006085732.tif 000022
【図２１】
2006085732.tif 000023
【図２２】
2006085732.tif 000024
【図２３】
2006085732.tif 000025
【図２４】
2006085732.tif 000026
【図２５】
2006085732.tif 000027
【図２６】
2006085732.tif 000028
【図２７】
2006085732.tif 000029
【図２８】
2006085732.tif 000030
【図２９】
2006085732.tif 000031
【図３０】
2006085732.tif 000032
【図３１】
2006085732.tif 000033
【図３２】
2006085732.tif 000034
【図３３】
2006085732.tif 000035
【図３４】
2006085732.tif 000036
【図３５】
2006085732.tif 000037
【図３６】
2006085732.tif 000038
【図３７】
2006085732.tif 000039
【図３８】
2006085732.tif 000040
【図３９】
2006085732.tif 000041