(57)【要約】【課題】複数のマスターモジュールとスレーブモジュールとがバスにより接続されたシステムにおける性能を向上させる。【解決手段】複数のマスターポートと複数のスレーブポートとを持つスイッチＳＷを備え、前記複数のマスターポートの各々と前記複数のスレーブポートの任意のポートとを接続可能なバスＹｂｕｓにおいて、アドレス及びコマンドを発行するアドレスフェーズと、ライトデータを発行するデータフェーズとを分離し、該データフェーズが終了する前に、次のトランザクションのアドレスフェーズを発行可能とした。【選択図】　　　　図６
2004126646.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスターポートと複数のスレーブポートとを持つスイッチを備え、前記複数のマスターポートの各々と前記複数のスレーブポートの任意のポートとを接続可能なバスにおいて、アドレス及びコマンドを発行するアドレスフェーズと、ライトデータを発行するデータフェーズとを分離し、該データフェーズが終了する前に、次のトランザクションのアドレスフェーズを発行可能としたことを特徴とするバス制御方法。
【請求項２】
前記アドレス及びコマンドとは別にリードリタ−ン信号を用意して、リードリターンデータを、マスターからのアドレス及びコマンドと分離してスイッチングすることを特徴とする請求項１に記載のバス制御方法。
【請求項３】
シングルトランザクションとバーストトランザクション、あるいはリードトランザクションとライトトランザクションにおいて、同一シーケンスでトランザクションが発行されることを特徴とする請求項２に記載のバス制御方法。
【請求項４】
トランザクションのスタート信号を、前記スイッチに対するリクエスト信号としても用いることを特徴とする請求項２に記載のバス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置のバス制御方法に関し、特にＬＳＩで実現される複合機器の制御装置などにおける内部スイッチを備えたバスの制御方法に関するものである。
【０００２】
【従来の技術】
従来、複合機器の制御装置をＬＳＩで実現する際、メモリやＲＯＭその他ＩＯデバイスに対するアクセスを行う場合、システム内には様々なＣＰＵを含むバスマスタ、バススレーブとなるモジュールが存在する。それぞれのバスマスタは、処理を行うにあたり複数のスレーブにアクセスを行うことが多い。
【０００３】
そのため、システム内に存在する各々のマスターモジュールは複数のスレーブモジュールに対してアクセスをする必要があり、それを実現するためにクロスバースイッチといったマスターからスレーブヘの接続を切り替えてアクセスを行うよう制御するといった手法が用いられる。
【０００４】
従来は、あるマスターがスレーブへとアクセスを行う場合は、スイッチを接続してトランザクションを開始し、ひとつのトランザクションが終了してからそのマスタからのスイッチを解放する手法が取られる。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来の手法を用いた場合、あるマスターたとえばＣＰＵが、ＩＯデバイスのような遅いデパイスへとリードトランザクションを発行し、他のデバイスに対してライトトランザクションを発行すると言った処理を行う場合、リードトランザクションのデータリターンが返って初めてスイッチを解放し、次のデバイスに対してライトトランザクションを発行するといった手順で行われる。このため、マスターはあるトランザクションへのアクセスが終了するまで、次のトランザクションを発行することができず、また、スレーブは現在のトランザクションが終了するまで次のトランザクションを受け取ることができないという問題があった。
【０００６】
【課題を解決するための手段】
本発明は上記問題点に鑑みなされたもので、あるスレーブに対するトランザクションが終了する前に次のトランザクションを発行することにより、システム性能の向上を図ることを目的とする。
【０００７】
上記目的を達成するために、本発明に係るバス制御方法は、複数のマスターポートと複数のスレーブポートとを持つスイッチを備え、前記複数のマスターポートの各々と前記複数のスレーブポートの任意のポートとを接続可能なバスにおいて、アドレス及びコマンドを発行するアドレスフェーズと、ライトデータを発行するデータフェーズとを分離し、該データフェーズが終了する前に、次のトランザクションのアドレスフェーズを発行可能としたことを特徴とする。
【０００８】
【発明の実施の形態】
以下、本発明の１実施形態について詳細に説明する。
【０００９】
図６は、本実施形態のシステム構成を示す図である。複数のマスターモジュール（Ｍａｓｔｅｒ−０〜３）と複数のスレーブモジュール（Ｓｌａｖｅ−０〜３）とがバスＹｂｕｓを介して接続されている。
【００１０】
バスＹｂｕｓは、バスＹｖＢｕｓ（ｙｖ０〜３）、バスＹｉＢｕｓ（ｙｉ０〜３）及びスイッチＳＷで構成されており、複数のマスターモジュール（Ｍａｓｔｅｒ−０〜３）がバスＹｖＢｕｓ（ｙｖ０〜３）を介してスイッチＳＷの複数のマスターポートに接続し、複数のスレーブモジュール（Ｓｌａｖｅ−０〜３）がバスＹｉＢｕｓ（ｙｉ０〜３）を介してスイッチＳＷの複数のスレーブポートと接続している。
【００１１】
バスＹＢｕｓは以下の信号で構成される。マスターモジュールからスレーブモジュールヘの信号として、トランザクション開始信号ｙ＿ｔｓｐ、アドレス信号ｙ＿ａｄｄｒｐ〔３１：４〕、マスターｌＤ信号ｙ＿ｍｉｄｐ〔４：０〕、リードライトコマンド指定信号ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、命令データ指定信号ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、アクセス長指定信号ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、リードバイトイネーブル信号ｙ＿ｒｄ＿ｂｙｔｅｅｎｐ〔１５：０〕、ロック指定信号ｙ＿ｌｏｃｋｐ、ライトデータ信号ｙ＿ｗｒ＿ｄａｔａｐ〔１２７：０〕、ライトバイトイネーブル信号ｙ＿ｗｒ＿ｂｙｔｅｅｎｐ〔１５：０〕、スヌープマスク信号ｙ＿ｓｎｏｏｐ＿ｍａｓｋｐを備え、スレーブモジュールからマスターモジュールへの信号として、スレーブレディー信号ｙ＿ｓｒｄｙｐ、リターンスタート信号ｙ＿ｒｓｐ、リターンマスターＩＤ信号ｙ＿ｒｍｉｄｐ〔３：０〕、リードデー夕信号ｙ＿ｒｄ＿ｄａｔａｐ〔１２７：０〕、リードエラー信号ｙ＿ｒｄ＿ｅｒｒｏｒｐを備えるものとする。
【００１２】
ＹＢｕｓはアドレスフェーズとデーターフェーズとが分離されており、アドレスフェーズとデ一夕フェ−ズのオーバーラップが可能となっている。以下に各信号の働きとバスのプロトコルを述べる。
【００１３】
トランザクション開始信号ｙ＿ｔｓｐ：　マスターモジュールがトランザクションを開始したいときに発行する。スレーブレディー信号ｙ＿ｓｒｄｙｐが発行されるまで、発行しつづける必要がある。ｙ＿ｓｒｄｙｐが発行されたタイミングでマスターモジュールのトランザクションが発行され、本信号の発行を解除する。スレーブ側の本信号の本数は、一本でその信号が発行された場合は受け側のスレーブモジュールへのトランザクションであることを意味する。マスターモジュール側の本信号は、アクセスするスレーブモジュールの数だけ用意され、発行するスレーブモジュールに応じて適切な信号を発行する必要がある。本信号は、トランザクションの開始信号のほかに、スイッチに対するスイッチ要求信号として使用される。
【００１４】
アドレス信号ｙ＿ａｄｄｒｐ〔３１：４〕：　アクセスアドレスを示す信号。ｙ＿ｔｓｐの発行されるタイミングでアクセスアドレスが確定し、ｙ＿ｔｓｐの解除後１サイクル保持する必要がある。
【００１５】
マスターｌＤ信号ｙ＿ｍｉｄｐ〔３：０〕：　アクセスを行うマスターＩＤを示す信号。マスターモジュールには各々マスターを識別するマスターＩＤが割り振られており、発行するマスターのマスターＩＤを発行する。ｙ＿ｔｓｐの発行されるタイミングでアクセスアドレスが確定し、ｙ＿ｔｓｐの解除後１サイクル保持する必要がある。
【００１６】
リードライトコマンド指定信号ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ：　発行するトランザクションのリード・ライトの種別を示す信号。ｙ＿ｔｓｐの発行されるタイミングでアクセスアドレスが確定し、ｙ＿ｔｓｐの解除後１サイクル保持する必要がある。１でリードアクセス。０でライトアクセスとする。
【００１７】
命令データ指定信号ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ：　発行するトランザクションが命令のフェツチであるかデータアクセスであるかを示す信号。ｙ＿ｔｓｐの発行されるタイミングでアクセスアドレスが確定し、ｙ＿ｔｓｐの解除後１サイクル保持する必要がある。１で命令フェッチ、０でデータアクセス。
【００１８】
アクセス長指定信号ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ：　アクセスデータの有効ビート数を示す。ＹＢｕｓにおけるアクセスビート数は１２８ビットの２ビート固定であり、そのうちの有効ビート数を示す。ｙ＿ｔｓｐの発行されるタイミングでアクセスアドレスが確定し、ｙ＿ｔｓｐの解除後１サイクル保持する必要がある。１で１ビート目のみ有効。０で２ビート有効。
【００１９】
リードバイトイネーブル信号ｙ＿ｒｄ＿ｂｙｔｅｅｎｐ〔１５：０〕：　リード時に１２８ビットのうちの有効バイトレーンを示す。本信号はｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏが１ビート有効であると示したときに１２８ビット中のどのバイトレーンヘのリードアクセスであるかを規定する。ｙ＿ｔｓｐの発行されるタイミングでアクセスアドレスが確定し、ｙ＿ｔｓｐの解除後１サイクル保持する必要がある。１で有効、０で無効。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏで２ビートアクセスと規定された場合においては本信号はすべてのバイトレーンが有効でなければならない。
【００２０】
ロック指定信号ｙ＿ｌｏｃｋｐ：　ロックトランザクションを示す信号。マスターモジュールが続けてトランザクションを行う場合において、この信号を発行する。この信号が発行されている間はスイッチの接続は解除されない。アクセスを行う最初のトランザクションで本信号を発行し、最後のトランザクションのｙ＿ｔｓｐを発行する直前まで発行しつづける必要がある。１でロツク発行。
【００２１】
ライトデータ信号ｙ＿ｗｒ＿ｄａｔａｐ〔１２７：０〕：　ライトデータを示す信号であり、ｙ＿ｔｓｐが発行された次のサイクルから２ビート連続で１２８ビットデータをバス上に発行する。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏが発行されている場合は１ビート目のみ有効となる。
【００２２】
ライトバイトイネーブル信号ｙ＿ｗｒ＿ｂｙｔｅｅｎｐ〔１５：０〕：　ライト時に１２８ビットのうちの有効ライトバイトレーンを示す。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏが１ビート有効であると示したときに１２８ビット中のどのバイトレーンへのライトアクセスが有効であるかを規定する。ｙ＿ｗｒ＿ｄａｔａｐと同−サイクルでライトデータの有効ビットを示す。
【００２３】
スヌープマスク信号ｙ＿ｓｎｏｏｐ＿ｍａｓｋ：マスターからのアクセスでスヌープを行わなくてもよいことを示す。本信号を発行することによって、発行するトランザクションがスヌープの対象外であることを示す。１で発行を示す。
【００２４】
スレーブレディー信号ｙ＿ｓｒｄｙｐ：　スレーブ側がマスターモジュールからのトランザクションを受け取る準備ができていることを示す信号。本信号が発行されている間は、マスターはｙ＿ｔｓｐを発行しトランザクションを発行することができ、スレーブ側はマスターからのトランザクションを必ず受け取らなければならない。スレーブ側の本信号の本数は一本であるが、マスター側にはマスターがトランザクションを発行するスレーブの本数分入力される。１で受け取り可能。
【００２５】
リターンスタート信号ｙ＿ｒｓｐ：　スレーブからのリードリターントランザクションの開始を示す信号。スレーブ側はリードリターンの準備が出来次第本信号を発行しリードリターントランザクションを開始する。本信号はスレーブ側はいつでも発行することが可能であり、リードリクエストを発行したモジュールはリードリターントランザクションを必ず受け取らなければならない。本信号の発行期間は１サイクルである。１で発行を示す。本信号はスイッチに対するスイッチ要求信号として併せて使用される。
【００２６】
リターンマスターＩＤ信号ｙ＿ｒｍｉｄｐ：　リードリターントランザクションのマスターｌＤを示す。リードトランザクションの場合、スレーブ側ではマスターからのｙ＿ｍｉｄｐを保持し、リードリターントランザクシヨン時に同じＩＤを返す。リードリクエストを発行したマスターモジュールは本信号をデコ−ドし、リターンマスターＩＤが自分のマスターＩＤであった場合にリードリターントランザクションを受け取る。本信号はｙ＿ｒｓｐの発行と同時に確定させ、ｙ＿ｒｓｐの解除後１サイクルまで保持する必要がある。
【００２７】
リードデータ信号ｙ＿ｒｄ＿ｄａｔａｐ〔１２７：０〕：リードデータを示す信号である。ｙ＿ｒｓｐが発行された次のサイクルから１２８ビットデータを２ビート発行するｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏで１ビートを示されたリードアクセスの場合、１ビート目のみ有効となる。
【００２８】
リードエラー信号ｙ＿ｒｄ＿ｅｒｒｏｒｐ：　リードアクセスにおいてエラーとなったことを示す。ｙ＿ｒｓｐと同じタイミングで１サイクル発行される。１でエラーを示す。
【００２９】
以下にバス調停について示す。
【００３０】
バス調停はスイッチ内に設けたアービターにより行われる。トランザクションの開始はマスター発行によるｙ＿ｔｓｐによる。
【００３１】
ｙ＿ｔｓｐの発行によりマスターはスイッチの要求を行い、その要求に対しアクセスを受けるスレーブに対応するｙ＿ｓｒｄｙｐが発行される。
【００３２】
ｙ＿ｓｒｄｙｐは、アクセスを受けるスレーブがトランザクションを受けることが可能な状態であり、かつスイッチの接続が行われたときに発行される。
【００３３】
このときにアドレスフェーズのスイッチの接続が確立され、アドレスフェーズのトランザクション、つまり、データ以外のフェーズのトランザクションが可能となる。
【００３４】
マスターに入力されるｙ＿ｓｒｄｙｐが発行されたのをマスターが確認し、トランザクションがｙ＿ｔｓｐを解除し、トランザクションが開始される。
【００３５】
スイッチが次のトランザクションのバス調停を行うのは、ｙ＿ｔｓｐが解除された次のサイクルである。
【００３６】
データフェーズのスイッチの確立は、アドレスフェーズのスイッチの確立を受けて行われ、アドレスフェーズが確立された次のサイクルで確立される。
【００３７】
アドレスフェーズは、ｙ＿ｔｓｐとｙ＿ｓｒｄｙｐの両方が発行されたサイクル、つまりアドレスフェーズのスイッチ接続の確立が行われたサイクルから次のサイクルまでの２サイクルであり、データフェーズはアドレスフェーズから１サイクル遅れた２サイクルとなっている。
【００３８】
以下にトランザクションのプロトコルについて示す。トランザクションのタイブとして、リードトランザクション、ライトトランザクションとも１２８ビットシングルビート及び、２ビートのトランザクションのみとなる。
【００３９】
シングルビートの場合、有効ビートは最初の１ビートであるが、データフェーズは２ビート固定である。シングルビートと２ビートの転送の切り替えは、マスターが発行するｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏの発行によって行われる。
【００４０】
１２８ビット以下のアクセスに対しては、すべてシングルトランザクションで行われ、ライト、リードそれぞれに対応するバイトイネーブル信号でアクセスバイトを制御する。トランザクションのサイズにかかわらず、アドレスに対するデータの位置は固定とする。２ビートトランザクションの場合はすべてのバイトイネーブルを有効としてアクセスする必要がある。
【００４１】
またアドレスのアラインはラインにあわせてアクセスされる必要がある。
【００４２】
（１）ライトトランザクション
以下にライトトランザクションのプロトコルについて示す。図１は、ライトトランザクションを行った場合のバスプロトコルを示した図である。内部に示されるサイクル数は、図１内に示されるサイクルに対応している。
【００４３】
サイクル２：
マスターはトランザクションを開始する際に対応するスレーブに対してｙ＿ｔｓｐを発行する。同時に、ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐを確定し発行する必要がある。
【００４４】
サイクル３：
アクセスを行うスレーブのｙ＿ｓｒｄｙｐが発行されているため、サイクル２でアドレスフェ−ズのスイッチが確立され、アドレスフェーズが開始され、マスターはｙ＿ｔｓｐを解除する。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐはそのまま保持する必要がある。サイクル２でアドレスフェーズが確立されているため、１サイクル後の本サイクルにおいてデータフェーズのスイッチが確立される。マスターは１ビート目のｙ＿ｗｒ＿ｄａｔａｐとｙ＿ｗｒ＿ｂｙｔｅｅｎｐを発行する。
【００４５】
サイクル４：
アドレスフェーズのトランザクションが終了したため、アドレスフェーズのスイッチの接続が解放され、ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐの発行を解除する。また２ビート目のｙ＿ｗｒ＿ｄａｔａｐとｙ＿ｗｒ＿ｂｙｔｅｅｎｐを発行する。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏを発行してのトランザクションを行った場合は、本サイクルのｙ＿ｗｒ＿ｄａｔａｐとｙ＿ｗｒ＿ｂｙｔｅｅｎｐは無効となる。
【００４６】
サイクル５：
データフェーズのトランザクションが終了し、データフェーズのスイッチの接続が解放されライトトランザクションが終了する。
【００４７】
サイクル８、９：
マスターが次のトランザクションを開始するため、対応するスレーブに対しｙ＿ｔｓｐを発行してｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐを確定させる。スレーブ側はｙ＿ｓｒｄｙｐが発行されていないため受け入れ状態ではなく、マスターはｙ＿ｔｓｐを発行しつづける必要がある。
【００４８】
サイクル１０：
サイクル９においてｙ＿ｓｒｄｙｐが発行され、アドレスフェーズのスイッチの接続が確立されたため、トランザクションが開始される。
【００４９】
サイクル１１：
アドレスフェーズのスイッチの接続が解放されているため、ｙ＿ｓｒｄｙｐが発行されていれば、本サイクルで次のトランザクションのｙ＿ｔｓｐを発行しトランザクションを開始する。
【００５０】
サイクル１２−１５：
ライトトランザクションが連続した場合で、トランザクションの間隔がもっとも狭まった状態においては、ギャップなしでトランザクションを開始することができる。
【００５１】
（２）リードトランザクション
以下にリードトランザクションにおけるプロトコルを示す。図２は、リードトランザクションを行った場合のバスプロトコルを示した図である。内部に示されるサイクル数は図２に示されるサイクル数に対応している。
【００５２】
サイクル２：
マスターはトランザクションを開始する際に、対応するスレーブに対してｙＪｓｐを発行する。同時にｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐ、ｙ＿ｒｄ＿ｂｙｔｅｅｎｐを確定させ発行する必要がある。
【００５３】
サイクル３：
アクセスを行うスレーブのｙ＿ｓｒｄｙｐが発行されているため、サイクル２でアドレスフェーズのスイッチが確立され、アドレスフェーズが開始され、マスターはｙ＿ｔｓｐを解除する。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐ、ｙ＿ｒｄ＿ｂｙｔｅｅｎｐはそのまま保持する必要がある。サイクル２でアドレスフェーズが確立されているため、１サイクル後の本サイクルにおいてデータフェーズのスイッチが確立される。
【００５４】
サイクル４：
アドレスフェーズのトランザクションが終了したため、アドレスフェーズのスイッチの接続が解放され、ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐ、ｙ＿ｒｄ＿ｂｙｔｅｅｎｐの発行を解除する。以上のサイクルで、マスターが発行するり一ドコマンドのトランザクションが終了する。
【００５５】
サイクル６：
スレーブはリードリターンデータの準備ができたら、ｙ＿ｒｓｐとｙ＿ｒｍｉｄｐを発行してリードリターントランザクションを開始する。ｙ＿ｒｍｉｄｐはマスターが発行したｙ＿ｍｉｄｐを発行する。リードトランザクションがエラーであった場合、ｙ＿ｒｄ＿ｅｒｒｏｒｐを発行する。
【００５６】
サイクル７：
ｙ＿ｒｓｐの発行を解除する。また、ｙ＿ｒｄ＿ｅｒｒｏｒｐを発行した場合は、ｙ＿ｒｄ＿ｅｒｒｏｒｐの発行を解除する。１ビート目のリードデータをｙ＿ｒｄ＿ｄａｔａｐに発行する。
【００５７】
サイクル８：
ｙ＿ｒｍｉｄｐの発行を解除し、ｙ＿ｗｒ＿ｄａｔａｐに２ビート目のリードデータを発行する。ｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏを発行してのリードトランザクションであった場合は２ビート目のデータは無効である。
【００５８】
サイクル９：
リードトランザクション終了
サイクル９，１０：マスターが次のトランザクションを開始するため、対応するスレーブに対しｙ＿ｔｓｐを発行してｙ＿ｏｎｅ＿ｎｏｔ＿ｔｗｏ、ｙ＿ｒｄ＿ｎｏｔ＿ｗｒ、ｙ＿ｉｎｓｔ＿ｎｏｔ＿ｄａｔａ、ｙ＿ａｄｄｒｐ、ｙ＿ｍｉｄｐを確定させる。スレーブ側はｙ＿ｓｒｄｙｐが発行されていないため受け入れ状態ではなく、マスターはｙ＿ｔｓｐを発行しつづける必要がある。
【００５９】
サイクル１１：
サイクル１０においてｙ＿ｓｒｄｙｐが発行され、アドレスフェーズのスイッチの接続が確立されたため、トランザクションが開始される。
【００６０】
サイクル１２：
アドレスフェーズのスイッチの接続が解放されているため、ｙ＿ｓｒｄｙｐが発行されていれば、本サイクルで次のトランザクションのｙ＿ｔｓｐを発行しトランザクションを開始する。リードトランザクションが連続した場合で、トランザクションの間隔がもっとも狭まった状態においては、ギャップなしでトランザクションを開始することができる。
【００６１】
以上のプロトコルを用いることにより、アドレスフェーズと、データフェーズとに分離して、スイッチの接続が切り替えられ、それぞれ解放されるため、複数のマスターから同一のスレーブヘ、あるいは同一のマスターから複数のスレーブに対して、アクセスを並行して発行することができる。
【００６２】
（３）複数マスタートランザクション
以下に、複数のマスターからひとつのスレーフに対してトランザクションを行う時の処理手順を、図３を用いて示す。
【００６３】
図中のＹｖはマスター側のバスであり、Ｙｉはスレーブ側のバスでプロトコルは同一である。ＹｖとＹｉはスイッチを介して接続されている。図３に示される二つのマスターは同サイクルでｙ＿ｔｓｐを発行するが、スレーブ側からのｙ＿ｓｒｄｙｐは一方のマスターに対してのみｙ＿ｓｒｄｙｐを発行し、スイッチの接続を確立する。
【００６４】
アクセスを行っているマスターのアドレスフェーズが終了した時点で、もう一方のマスターに対してｙ＿ｓｒｄｙｐを発行してスイッチの接続を確立し、トランザクションが開始される。リードリターンにおいて、スレーブはｙ＿ｒｍｉｄｐを発行してスレーブへとデータを転送する。マスター側はスレーブから発行されるリードリターンデータのうち、そのマスターに割り当てられたマス夕一ＩＤが発行されているリードリターンデータを取り込んで、リードトランザクションを終了する。
【００６５】
スレーブ側は、同−マスターからのリードトランザクションであった場合においては、アクセスされた順序どおりにリードデータを返す必要がある。
【００６６】
（４）複数スレーブアクセストランザクション
以下に、単一マスターが複数スレーブに対してアクセスを行うトランザクションの処理手順を、図４を用いて示す。
【００６７】
マスター側は、アクセスするスレーブに該当するｙ＿ｔｓｐを発行することにより、スレーブを選択してトランザクションを開始する。
【００６８】
マスター側は、アドレスフェーズが終了した時点でスイッチが解放されるため、次のトランザクションを発行することができ、一方のトランザクションのアドレスフェーズ終了時点で、次のアクセスするマスターに対応するｙ＿ｔｓｐを発行し、トランザクションを開始できる。
【００６９】
（５）連続トランザクション
以下に、あるマスターが同一のスレーブに対して連続してトランザクションを発行する時の処理手順を、図５を用いて示す。
【００７０】
あるマスターが連続してアクセスを行う場合、ｙ＿ｌｏｃｋｐを発行する。ｙ＿ｌｏｃｋｐが発行されると、スイッチ内のアービターはアドレスフェーズが終了してもスイッチを解放せずに、スイツチの接続を確立させたままの状態を維持する。したがってマスターは、スレーブ側の準備がなされていれば、次のトランザクションを開始することができる。スイッチは、ｙ＿ｌｏｃｋｐが発行されると、その発行が解除されるまでスイッチの接続を維持する。マスターは、連続トランザクションを行う場合、ｙ＿ｌｏｃｋｐを発行している間は同一スレーブに対してのみアクセスをおこなわなければならない。
【００７１】
スイッチは、複数マスター、複数スレーブを接続し、マスターからスレーブへのスイッチ接続の機構と、リードリターンデータの転送経路を提供する。
【００７２】
マスターからスレーブヘのスイッチ接続機構は、バス調停機構を含んでおり、マスターからのｙ＿ｔｓｐとスレーブからのｙ＿ｓｒｄｙｐの発行を見て、スイッチ接続の確立を行う。スイッチ接続の調停は、複数マスタートランザクション、複数スレーブトランザクションで述べたように、マスターの発行するｙ＿ｔｓｐと該当するスレーブの発行するｙ＿ｓｒｄｙｐの使用状況により、スイッチの接続の確立を制御する。
【００７３】
同時に複数のマスターがスイッチの接続を要求した際には、調停機構により接続を許可するマスターを選択して、ｙ＿ｓｒｄｙｐをマスターに発行する。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、アドレスフェーズとデータフェーズのオーパーラップが可能となり、また、リードリクエストがマスターからのアクセスとは別にスイッチングされるため、マスターがリードリターンが戻る前に他のスレーブに対してトランザクションを開始することができる。
【００７５】
これにより、複数マスター、複数スレーブとが接続される複数機器の制御装置などにおいて、マスターが複数スレーブに、また複数マスターが同一スレーブに対してトランザクションを同時に発行することが可能となる。
【００７６】
従って、遅いデバイスに対してアクセスを行っている際にも、高速デバイスに対してトランザクションを発行できるため、全体の処理性能の低下をすることがなく、高いバンド幅を維持したスイッチの機構を提供することができる。
【００７７】
また、シングルトランザクション、バーストトランザクションが同一のシーケンスを行うことで、ハードウェアの制御が単純化される。
【００７８】
また、スイッチのリクエスト信号を、トランザクションのスタート信号として用いることにより、要求信号に対する認識信号を受け取る必要がなく、スイッチ要求に対する応答時間を早めることにより、性能の向上が得られる。
【図面の簡単な説明】
【図１】ライトトランザクションを行った場合のバスプロトコルを示した図である。
【図２】リードトランザクションを行った場合のバスプロトコルを示した図である。
【図３】複数マスターから単一スレーブでトランザクションを行った場合のバスプロトコルを示した図である。
【図４】単一マスターから複数スレーブに対してトランザクションを行った場合のバスプロトコルを示した図である。
【図５】マスターが同一スレーブに対して連続トランザクションを行った時のプロトコルを示した図である。
【図６】複数マスターと複数スレーブがスイッチを介し、バスに接続している構造を示した概念図である。
【図１】
2004126646.tif 000003
【図２】
2004126646.tif 000004
【図３】
2004126646.tif 000005
【図４】
2004126646.tif 000006
【図５】
2004126646.tif 000007
【図６】
2004126646.tif 000008