(57)【要約】【課題】トランザクションのレイテンシをできる限り抑える。【解決手段】トランザクションを直列化した情報転送信号と、同期をとるためのクロック信号とが一方向に流れるように、１つのマスタモジュール１００と複数のスレーブモジュール１０１〜１０３とをリング状に接続し、マスタモジュール１００は、複数のスレーブモジュール１０１〜１０３の任意のモジュールに対してアクセスするためのトランザクションを前記リングにおける直後のスレーブモジュール１０１に発行し、複数のスレーブモジュール１０１〜１０３の各々は、前記リングにおける直前のモジュールから送られてきたトランザクションを解析するとともに、当該解析の結果を待たずに、当該トランザクションをそのまま、前記リングにおける直後のモジュールに対して転送する。【選択図】　　　　図１
2004126647.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションを直列化した情報転送信号と、同期をとるためのクロック信号とが一方向に流れるように、１つのマスタモジュールと複数のスレーブモジュールとをリング状に接続し、
前記マスタモジュールは、前記複数のスレーブモジュールの任意のモジュールに対してアクセスするためのトランザクションを前記リングにおける直後のスレーブモジュールに発行し、
前記複数のスレーブモジュールの各々は、前記リングにおける直前のモジュールから送られてきたトランザクションを解析するとともに、当該解析の結果を待たずに、当該トランザクションをそのまま、前記リングにおける直後のモジュールに対して転送することを特徴とする情報転送方法。
【請求項２】
前記マスタモジュールは、ライトアクセスを連続して行なう際に、アクセス対象のスレーブモジュールとアドレスとを特定するライトコマンドトランザクションを発行し、その後にライトデータを転送するためのライトデータトランザクションを連続して発行し、
前記ライトアクセスの対象となるスレーブモジュールは、前記ライトコマンドトランザクションに含まれるアドレスを記憶しておくようにし、前記ライトデータトランザクションに含まれるライトデータを記憶しておいたアドレスに対してライトして、次のライトデータトランザクションのために記憶してあるアドレスをインクリメントすることを特徴とする請求項１に記載の情報転送方法。
【請求項３】
前記マスタモジュールは、リードアクセスを行なうために、アクセス対象のスレーブモジュールとアドレスとを特定するリードコマンドトランザクションを発行し、
リードアクセス対象となるスレーブモジュールは、前記リードコマンドトランザクションに含まれるアドレスに対してリードを行なって、得られたリードデータを含むリードデータトランザクションを前記リングにおいて直後に接続されるモジュールに対して発行するようにし、
前記マスタモジュールは、前記リードコマンドトランザクションを発行後、前記リードデータトランザクションを受け取り終わるまでは、次のトランザクションの発行を待つことを特徴とする請求項１に記載の情報転送方法。
【請求項４】
前記マスタモジュールは、リードアクセスを行なうために、アクセス対象のスレーブモジュールとアドレスとを特定するリードコマンドトランザクションを発行し、
リードアクセス対象となるスレーブモジュールは、前記リードコマンドトランザクションに含まれるアドレスに対してリードを行なって、得られたリードデータを含むリードデータトランザクションを前記リングにおいて直後に接続されるモジュールに対して発行するようにし、
前記マスタモジュールは、前記リードコマンドトランザクションを発行後、所定のサイクル数の間は、次のトランザクションの発行を待つことを特徴とする請求項１に記載の情報転送方法。
【請求項５】
トランザクションを直列化した情報転送信号と、同期をとるためのクロック信号とが一方向に流れるように、１つのマスタモジュールと複数のスレーブモジュールとをリング状に接続した情報処理システムであって、
前記マスタモジュールは、前記複数のスレーブモジュールの任意のモジュールに対してアクセスするためのトランザクションを前記リングにおける直後のスレーブモジュールに発行する発行手段を有し、
前記複数のスレーブモジュールの各々は、前記リングにおける直前のモジュールから送られてきたトランザクションを解析する解析手段と、当該解析の結果を待たずに、当該トランザクションをそのまま、前記リングにおける直後のモジュールに対して転送する転送手段とを有することを特徴とする情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置の各モジュール間の情報転送に関し、より詳細には、各モジュールをリング状に接続しての情報転送に関するものである。
【０００２】
【従来の技術】
従来、複数のモジュール間をリング状に接続して情報転送を行う技術としては、特開平６−７７９７３号公報記載のようなものがあった。このような方法では、モジュールに対して送られてきた命令をそのモジュールが解析を行ない、自分に対する命令であると判断した場合はその命令を行ない、その命令を次のモジュールに転送する。また、自分に対する命令でないと判断した場合はその命令を行わずに次のモジュールに転送する。ここで、自分に対する命令である場合には、その命令を次のモジュールに対して転送しないものや、命令を加工して、転送するといった技術もある。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の方法では、方法では命令を受け取ってから命令の判断を行ない、次のモジュールに転送するまでにはある程度の処理時間が必要で、数サイクルから数十サイクル要する場合が多い。従って、リング状に接続されたシステムでは、モジュールの数が増えるとその分だけ命令の転送時間がかかり、その時間は各モジュールで要する処理時間に大きく影響される。
【０００４】
また、リング状に各モジュールを接続する形態では、各モジュールにリングの信号線に対して入力と出力の２系統が必要なため、信号数が多いと入出力ポート数の増大を招く。また、リングを構成する信号線が一方通行ではなく、下流側からの信号を上流側で受けて、同期設計を行なおうとすると、タイミング設計が難しくなる。
【０００５】
そこで、本発明の目的は、モジュール間を接続する信号線を可能な限り削減し、モジュール数によるトランザクションのレイテンシをできる限り抑え、トランザクションのバンド幅をできる限り向上させ、さらにはリングのタイミング設計を容易にすることである。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る情報転送方法は、トランザクションを直列化した情報転送信号と、同期をとるためのクロック信号とが一方向に流れるように、１つのマスタモジュールと複数のスレーブモジュールとをリング状に接続し、前記マスタモジュールは、前記複数のスレーブモジュールの任意のモジュールに対してアクセスするためのトランザクションを前記リングにおける直後のスレーブモジュールに発行し、前記複数のスレーブモジュールの各々は、前記リングにおける直前のモジュールから送られてきたトランザクションを解析するとともに、当該解析の結果を待たずに、当該トランザクションをそのまま、前記リングにおける直後のモジュールに対して転送することを特徴とする。
【０００７】
また、本発明の他の態様によれば、トランザクションを直列化した情報転送信号と、同期をとるためのクロック信号とが一方向に流れるように、１つのマスタモジュールと複数のスレーブモジュールとをリング状に接続した情報処理システムにおいて、前記マスタモジュールは、前記複数のスレーブモジュールの任意のモジュールに対してアクセスするためのトランザクションを前記リングにおける直後のスレーブモジュールに発行する発行手段を有し、前記複数のスレーブモジュールの各々は、前記リングにおける直前のモジュールから送られてきたトランザクションを解析する解析手段と、当該解析の結果を待たずに、当該トランザクションをそのまま、前記リングにおける直後のモジュールに対して転送する転送手段とを備える。
【０００８】
【発明の実施の形態】
本発明の実施の形態について図面を参照して説明する。
【０００９】
図１は、本発明の１実施形態のシステム構成を示すブロック図である。図１では、各モジュールが第１のリング経路１１１、第２のリング経路１１２、第３のリング経路１１３、第４のリング経路１１４によってリング状に接続されている。
【００１０】
１００はマスタモジュールであり、リング内で唯一コマンドトランザクションを発行することができる。１０１〜１０３は、マスタモジュール１００からアクセスされる対象であるスレーブモジュールである。マスタモジュール１００はリングに対してコマンドトランザクションやデータトランザクションを発行する役割と、マスタモジュール１００が発行し、最終的に戻ってくるコマンド／データトランザクション、およびスレーブモジュール１０１〜１０３が発行するリードデータトランザクションを受け取る役割を担っている。
【００１１】
スレーブモジュール１０１〜１０３は、上位のリング経路から送られてくるトランザクションを下位のリング経路にフォワードすると共に、自分に対するリードコマンドを受け取った時には、リードデータトランザクションを発行する。
【００１２】
〔実施例〕
上記した本発明の実施の形態について更に詳細に説明すべく、本発明の一実施例について、図面を参照して詳細に説明する。
【００１３】
各モジュールは、モジュール間で通信するための出力ポートと入力ポートを持っている。マスタモジュール１００の出力ポートと第１のスレーブモジュール１０１の入力ポートは第１のリング経路１１１で接続されている。また、第１のスレーブモジュール１０１の出力ポートと第２のスレーブモジュール１０２の入力ポートは第２のリング経路１１２で接続されており、第２のスレーブモジュール１０２の出力ポートと第３のスレーブモジュール１０３の入力ポートは第３のリング経路１１３で、第３のスレーブモジュール１０３の出力ポートとマスタモジュール１００の入力ポートはリング経路１１４でそれぞれ接続されている。
【００１４】
このように構成されるリングでは、コマンド／データトランザクションが転送される方向は決まっており、マスタモジュール１００→第１のスレーブモジュール１０１→第２のスレーブモジュール１０２→第３のスレーブモジュール１０３→マスタモジュール１００という方向にのみ転送が可能である。
各リング経路は以下に示す２本の信号線によって構成されている。
ｃｌｋ：クロック信号
リングにおけるデータ転送はこのクロック信号に同期して行われる。
ｓｒｄ：シリアルリングデータ信号
コマンドトランザクション、データトランザクションが本信号線にシリアライズして送られる。
【００１５】
リングに流れるトランザクションの種類は以下の４種類である。
ライトコマンドトランザクション
リードコマンドトランザクション
ライトデータトランザクション
リードデータトランザクション
【００１６】
各トランザクションに含まれる情報は以下のようなものがある。
【００１７】
〔全トランザクション共通〕
コマンド／データ　　　１ｂｉｔ
トランザクションがコマンドであるかデータであるかを示す。
１：コマンド
０：データ
ライト／リード　　　　１ｂｉｔ
トランザクションがライトであるかリードであるかを示す。
１：ライト
０：リード
【００１８】
〔コマンドトランザクションのみ〕
アクセスタイブ　　　　　２ｂｉｔ
トランザクションの単位がバイトかハーフワードかワードかを示す。
００：バイト
０１：ハーフワード
１０：ワード
１１：リザーブ
アドレス　　　　　　　３２ｂｉｔ
トランザクションのアドレス。
【００１９】
〔データトランザクションのみ〕
データ　　　　８／１６／３２ｂｉｔ
トランザクションのデータ。アクセスタイブにより、ビット数が変化する。
【００２０】
各トランザクションは以下の情報で構成される。
【００２１】
〔ライトコマンドトランザクション〕
コマンド／データ　　　１ｂｉｔ
ライト／リード　　　　１ｂｉｔ
アクセスタイブ　　　　２ｂｉｔ
リザーブ　　　　　　　４ｂｉｔ
アドレス　　　　　　　３２ｂｉｔ
〔リードコマンドトランザクション〕
コマンド／データ　　　１ｂｉｔ
ライト／リード　　　　１ｂｉｔ
アクセスタイブ　　　　２ｂｉｔ
リザーブ　　　　　　　４ｂｉｔ
アドレス　　　　　　　３２ｂｉｔ
〔ライトデータトランザクション〕
コマンド／データ　　　１ｂｉｔ
ライト／リード　　　　１ｂｉｔ
リザーブ　　　　　　　６ｂｉｔ
データ　　　　８／１６／３２ｂｉｔ
〔リードデータトランザクション〕
コマンド／データ　　　１ｂｉｔ
ライト／リード　　　　１ｂｉｔ
リザーブ　　　　　　　６ｂｉｔ
データ　　　　８／１６／３２ｂｉｔ
各トランザクションは１ｂｉｔにシリアライズされて送られるが、その際に８ｂｉｔ毎に付加ビットとして”１”が８ｂｉｔの前に付加される。
【００２２】
図２はリングを流れるコマンドトランザクションとデータトランザクションのフォーマットを示す。
【００２３】
リングでは、トランザクションが送られていない時は各モジュールから”０”が出力されており、”０”が９サイクル以上連続すると、リングはアイドル状態であると判断することができる。マスタモジュール１００は発行するトランザクションの間隔を９サイクル以上とならなければならない。
【００２４】
スレーブモジュールは”０”が９サイクル以上連続するとアイドル状態であると認識することができ、その後”１”を受け取ると、トランザクションの先頭であると認識する。
【００２５】
スレーブモジュールがトランザクションを解析するときには、８ｂｉｔ毎に付加ビットが付加されていることを考慮し、付加ビットを無視する。
【００２６】
各スレーブモジュールはトランザクションの先頭を検出すると、トランザクションを最後まで受け取ってから下位のリング経路にフォワードするのではなく、サイクル毎に無条件で下位のリング経路にフォワードしていく。つまり、トランザクションを上位のリングから受け取りながらその一方で下位のリングにフォワードする。
【００２７】
一旦マスタモジュール１００から発行されたトランザクションは各スレーブモジュールを経由し、最終的にマスタモジュール１００に戻ってくる。この間、各スレーブモジュールはトランザクションを無条件でフォワードするので、途中で滞ることはなく、必ず決まったサイクルで戻ってくる。
【００２８】
ライトおよびリードは、コマンドトランザクションとデータトランザクションに分かれている。
【００２９】
ライトの場合は、ライトコマンドトランザクションでアドレスやアクセスタイブを指定し、その後にライトデータトランザクションによりライトデータを転送する。さらに連続したアドレスの場合はコマンドトランザクションを送る必要がなく、連続してライトデータトランザクションを送ることが出来る。ライトコマンドトランザクションにより指定されたスレーブモジュールは、次のコマンドトランザクションが来るまでは、受け取るライトデータトランザクションは自分に対するものであると判断し、モジュールの内部ロジックヘライト動作を行う。マスタモジュール１００は９サイクル以上の間隔をあけて、ライトコマンドトランザクションおよびライトデータトランザクションを連続してトランザクションを発行することが出来る。
【００３０】
リードの場合は、リードコマンドトランザクションでアドレスやアクセスタイブを指定する。リードコマンドトランザクションにより指定されたスレーブモジュールは、モジュールの内部ロジックに対してリード動作を行い、リードデータをリードデータトランザクションとして下位のリング経路に発行する。マスタモジュール１００はリードコマンドトランザクションを発行した後、リードデータトランザクションを受け取るまでは次のトランザクションを発行することは出来ない。
【００３１】
ライト・リード共に、コマンドトランザクションで指定されたアクセスタイブにより、その後に続くデータトランザクションのタイブが決定される。連続アドレスヘのライトデータトランザクションが連続して発生する場合は、各ライトデータトランザクションの対象アドレスは、ワードアクセスの場合は４ｂｙｔｅずつ、ハーフワードアクセスの場合は２ｂｙｔｅずつ、バイトアクセスの場合は１ｂｙｔｅずつ増加していく。
【００３２】
図３はマスタモジュール１００の詳細なブロック構成を示す図であり、図４はスレーブモジュール１０１〜１０３の詳細なブロック構成を示す図である。
【００３３】
３０１は、例えばＣＰＵなどの上位のモジュールからのトランザクションを受け付けるアップリンクインターフェースであり、３１１はアップリンクインターフェースとＣＰＵなどの上位モジュールを接続するシステムバスである。ここでは、トランザクションのアドレス、データは３２ビットのビット幅を持っている。ＣＰＵなどの上位モジュールは、リングに接続されるスレーブモジュールに対してアクセスする場合には、システムバス３１１を介してアップリンクインターフェース３０１にトランザクションを行なう。
【００３４】
受け取ったトランザクションのコマンド部とアドレス部は、コマンドデコーダ３０２に送られ、トランザクションの種類や、アドレスなどの情報がデコードされる。トランザクションはまた、シリアルエンコーダ３０３にも送られる。マスタモジュールステートマシン３０４は、リングヘのトランザクションの送受信の制御を行なうステートマシンである。マスタモジュールステートマシン３０４はアップリンクインターフェース３０１からのトランザクションの受信情報と、コマンドデコーダ３０２からのコマンド情報を受け、３０３のシリアルエンコーダを制御してリングヘのトランザクションの発行を行なう。
【００３５】
シリアルエンコーダ３０３は、受け取ったトランザクションをシリアライズして、図２に示したトランザクションのフォーマットに変換し、出力ポート３１２からリング経路に出力する。
【００３６】
シリアルデコーダ３０５は、入力ポート３１３を介してリング経路から送られてくるトランザクションを受け取り、デコードを行なうと同時にシリアルデータをパラレルデータに変換する。受け取ったトランザクションがリードデータトランザクションの場合には、マスタモジュールステートマシン３０４に通知し、アップリンクインターフェース３０１にリードデータを送る。
【００３７】
マスタモジュールステートマシン３０４のステートの遷移図を図５に示す。
【００３８】
通常はｉｄｌｅステート５０１にあり、システムバス３１１からトランザクションを受け取ると、ｄｅｃｏｄｅ　ステート５０２に移行する。コマンドデコーダ３０２でトランザクションのデコードを行ない、ライトアクセスであればｓｅｎｄ　ｗｒｉｔｅ　ｃｏｍｍａｎｄステート５０３ヘ、リードであればｓｅｎｄ
ｒｅａｄ　ｃｏｍｍａｎｄステート５０４ヘ移行する。
【００３９】
コマンドデコーダ３０２では、前回のトランザクションの種類とアドレスを記憶しており、種類が同一で、アドレスが連続していればｓｅｎｄ　ｗｒｉｔｅ　ｄａｔａステート５０５ヘ移行する。
【００４０】
ｓｅｎｄ　ｗｒｉｔｅ　ｃｏｍｍａｎｄステート５０３ではライトコマンドトランザクションの発行、ｓｅｎｄ　ｒｅａｄ　ｃｏｍｍａｎｄ　ステート５０４ではリードコマンドトランザクションの発行、ｓｅｎｄ　ｗｒｉｔｅ　ｄａｔａステート５０５ではライトデータトランザクションの発行を行なう。ｓｅｎｄｗｒｉｔｅ　ｃｏｍｍａｎｄ　ステート５０３でライトコマンドトランザクションの発行が完了すると、ｓｅｎｄ　ｗｒｉｔｅ　ｄａｔａ　ステート５０５ヘ移行し、ライトデータトランザクションの発行が完了するとｉｄｌｅ　ステート５０１ヘ戻る。
【００４１】
一方ｓｅｎｄ　ｒｅａｄ　ｃｏｍｍａｎｄ　ステート５０４でリードコマンドトランザクションの発行が完了すると、ｗａｉｔ　ｒｅａｄ　ｄａｔａ　ステート５０６に移り、リードデータトランザクションを待つ。スレーブモジュールからリードデータトランザクションが発行され、シリアルデコーダ３０５が受け取り、それが通知されると、ｉｄｌｅ　ステート５０１に戻る。
【００４２】
次に図４のスレーブモジュールの詳細なブロック図について説明する。４１１は上位のリング経路からトランザクションを受け取る入力ポートである。４０１は入力ポート４１１からのトランザクションと、シリアルエンコーダ４０３から出力されるリードデータトランザクションを選択して下位のリング経路に流すためのマルチプレクサである。このマルチプレクサ４０１の切替のコントロールはシリアルエンコーダ４０３が行なう。マルチプレクサ４０１により選択されたトランザクションはフリップフロップ４０２を経由して、出力ポート４１２から下位のリング経路に出力される。上位のリング経路から下位のリング経路までのパスでは、トランザクションを待たせる仕組みは入っていないので、この場合、上位のリング経路から送られてきたトランザクションは１サイクルのディレイを持ってそのまま下位のリングに出力されることになる。
【００４３】
４０４はシリアルデコーダであり、フリップフロップ４０２から出力されるトランザクションを入力し、トランザクションの種類、アドレスなどのデコードを行なう。同時にシリアルデータからパラレルデータヘの変換も行なう。シリアルデコーダ４０４は、デコード結果をスレーブモジュールステートマシン４０５と内部モジュールインターフェース４０６とに送る。
【００４４】
スレーブモジュールステートマシン４０５は、トランザクションの受信を受けて内部モジュールインターフェース４０６にトランザクションの指示を行なったり、リードの場合にはシリアルエンコーダ４０３にリードデータトランザクションの発行の指示を行なったりする。
【００４５】
内部モジュールインターフェース４０６は、内部バス４１３を介して、内部モジュールに対してライトアクセスやリードアクセスを行なう。内部バス４１３は、アドレス、データは３２ビットの幅を持っている。内部モジュールから帰ってきたリードデータはシリアルエンコーダ４０３に送られる。シリアルエンコーダ４０３は内部モジュールインターフェース４０６から受け取ったデータのシリアライズを行ない、図２に示したリードデータトランザクションのフォーマットに変換してマルチプレクサ４０１に送る。
【００４６】
スレーブモジュールステートマシン４０５のステートの遷移図を図６に示す。通常はｉｄｌｅステート６０１においてトランザクションを待っている。スレーブモジュールがトランザクションを受け取るとｉｄｌｅステート６０１からｄｅｃｏｄｅステート６０２に移行する。ここでは受け取ったトランザクションの種類、アドレスのデコードを行なう。
【００４７】
データトランザクションであったり、アドレスがヒットしないコマンドトランザクションであった場合はｉｇｎｏｒｅ　ｔｒａｎｓａｃｔｉｏｎステート６０３に移行し、そのトランザクションを無視し、その後ｉｄｌｅステート６０１に戻る。アドレスがヒットしたライトコマンドトランザクションであった場合は、ｓａｖｅ　ｗｒｉｔｅ　ｃｏｍｍａｎｄステート６０４に移行し、アドレスがヒットしたリードコマンドトランザクションであった場合は、ｒｅａｄ　ａｃｃｅｓｓステート６０５に移行する。
【００４８】
ｓａｖｅ　ｗｒｉｔｅ　ｃｏｍｍａｎｄステート６０４では、スレーブモジュールステートマシン４０５は内部モジュールインターフェース４０６に対して、アドレス情報、およびアクセスタイプを記憶しておくよう指示を出す。内部モジュールインターフェース４０６はシリアルデコーダ４０４から送られるコマンドトランザクションの情報から、アドレス情報、およびアクセスタイブを記憶する。その後ｗｒｉｔｅ　ｍｏｄｅ　ｉｄｌｅステート６０６に移行し、次のトランザクションを待つ。トランザクションを受け取るとｄｅｃｏｄｅ２ステート６０７に移行し、トランザクションの種類、アドレスのデコードを行なう。
【００４９】
受け取ったトランザクションがライトデータトランザクションであればｗｒｉｔｅ　ｄａｔａステート６０８ヘ移り、スレーブモジュールステートマシン４０５は内部モジュールインターフェース４０６に対して、ライトアクセスを行なうように指示する。
【００５０】
内部モジュールインターフェース４０６は、シリアルデコーダ４０４から送られるデータトランザクションの情報と、先ほど記憶したアドレス情報、アクセスタイブなどを用いて内部モジュールに対してライトアクセスを行なう。それが終了すると、記憶していたアドレスに対して、アクセスタイブで指定されているバイト数だけインクリメントを行なう。これにより、次に連続してデータトランザクションを行なう時にはインクリメントされたアドレスに対してライトアクセスを行なうことになる。ステートはｗｒｉｔｅ　ｍｏｄｅ　ｉｄｌｅ６０６に戻って次のトランザクションを待つ。
【００５１】
ライトコマンドトランザクションの後、連続してライトデータトランザクションを受ける場合は、この遷移の繰り返しになる。途中でアドレスがヒットしたライトコマンドトランザクションを受け取った場合は、ｓａｖｅ　ｗｒｉｔｅ　ｃｏｍｍａｎｄステート６０４ヘ移行し、改めてアドレス情報とアクセスタイブの記憶を行なう。アドレスがヒットしたリードコマンドトランザクションを受け取った場合は、ｒｅａｄ　ａｃｃｅｓｓステート６０５ヘ移行する。また、アドレスがヒットしないコマンドトランザクションを受け取った場合はｉｇｎｏｒｅ　ｔｒａｎｓａｃｔｉｏｎステート６０３ヘ移行する。
【００５２】
ｒｅａｄ　ａｃｃｅｓｓステート６０５では、スレーブモジュールステートマシン４０５は内部モジュールインターフェース４０６に対して、リードアクセスを行なうよう指示を出す。内部モジュールインターフェース４０６はシリアルデコーダ４０４から送られるコマンドトランザクションの情報から、内部モジュールに対してリードアクセスを行なう。内部モジュールからリードデータが帰ってくると、そのデータはシリアルエンコーダ４０３に送られ、リードデータトランザクションを発行する。ステートマシンはｉｄｌｅに戻り、次のトランザクションを待つ。
【００５３】
本発明が特定の実施例に関して図示されかつ説明されたが、さらに他の変更および改善が可能であろう。例えば、ここに述べた通信経路の信号は、他の名称を持つが同じ基本的な機能を果すものとすることができる。アドレスおよびデータのビット幅、および他の値は設計に応じて変えることができる。また、任意の数のスレーブモジュールをリングに接続することができる。本実施形態では信号線を１本にシリアライズしているが、これを増やすことにより、転送のバンド幅を向上させることができる。
【００５４】
また、本実施形態ではスレーブモジュールがリードコマンドトランザクションを受け取ってからリードデータトランザクションを発行するまでの期間をスレーブモジュールによって可変にできるようになっているが、この期間を固定することにより、マスタモジュールはリードデータトランザクションを受け終わるまで次のトランザクションの発行を待つ必要は無く、接続モジュール数と、この期間から、リードコマンドトランザクションを発行してからある一定の期間待った後には、次のトランザクションの発行が可能になる。さらには、リード時の性能を正確に予想および保証することができるようになる。
【００５５】
【発明の効果】
以上説明したように、本発明によれば、情報転送信号とクロック信号の最少２本の信号線でリングを構成することが可能で、各モジュールの入出力ポートも２本×２＝４本ですむ。また、リングのすべての信号線が一方通行であるため、タイミング設計が容易になる。また、リング接続を行なうことでアクセスのレイテンシの悪化が心配されるが、スレーブモジュールは上流のモジュールから送られてきたトランザクションを、無条件で、変更を加えずに、常に同じタイミングで、下流のモジュールに対して転送するため、最少１サイクルのディレイでトランザクションをフォワードすることが可能になっている。
【００５６】
このため、マスタモジュールがリングに対して発行したトランザクジョンは、最速で、リングに接続されるスレーブモジュールの数と同じサイクル数で戻ってくることが可能になり、アクセスのレイテンシを最小限に抑えることを可能にしている。
【００５７】
さらには、マスタモジュールがトランザクションを発行した後、ライトアクセスでは、直ちに次のトランザクションを発行することができる。これにより、リング内にパイプライン的にトランザクションを発行することが可能になり、バンド幅の向上が実現される。また、リードアクセスにおいても、リードアドレストランザクションを受信後、あらかじめ決められたサイクル数後にリードデータトランザクションを発行することにより、ライトアクセス、リードアクセスともに性能を正確に予想および保証することができるようになる。
【図面の簡単な説明】
【図１】本発明の１実施形態のシステム構成を示すブロック図である。
【図２】リングを流れるコマンドトランザクションとデータトランザクションのフォーマット示す図である。
【図３】マスタモジュールの詳細なブロック構成を示す図である。
【図４】スレーブモジュールの詳細なブロック構成を示す図である。
【図５】マスタモジュールステートマシンのステートの遷移図である。
【図６】スレーブモジュールステートマシンのステートの遷移図である。
【図１】
2004126647.tif 000003
【図２】
2004126647.tif 000004
【図３】
2004126647.tif 000005
【図４】
2004126647.tif 000006
【図５】
2004126647.tif 000007
【図６】
2004126647.tif 000008