(57)【特許請求の範囲】
【請求項１】
情報処理システムであって、
スプリットバスプロトコルを用いた第1のバスと、
スプリットバスプロトコルを用い、かつ、前記第1のバスとは異なった階層を有する第２バスと、
各モジュールの識別子を通知する第１の信号線と、
各モジュールの識別子を通知する第２の信号線と、
前記第1のバスと前記第1の信号線とに接続され、第1の識別子を有する第1のモジュールと、
前記第1のバスと前記第２のバスと前記第1及び第2の信号線とに接続されたバスアダプターと、
前記第２のバスと前記第2の信号線とに接続された第２のモジュールとを有し、
前記第1のモジュールは、
前記第１のバスにリード要求を送信すると共に、前記第1の信号線を介して前記第１の識別子を送信し、
前記バスアダプターは、
前記リード要求と前記第１の識別子を受信し、前記第2のバスのバス使用権を獲得して前記受信したリード要求と前記第１の識別子を前記第2のバス及び前記第2の信号線へそれぞれ送信した後、当該第2のバスを開放して前記第2のバスへの他のバスアクセスを可能とし、
前記第２のモジュールは、前記リード要求と前記第1の識別子を受信し、前記第2のバスのバス使用権を獲得して、前記リード要求に対する応答と前記第１の識別子とを前記第2のバスと前記第2の信号線へそれぞれ送信し、
前記バスアダプターは、前記リード要求に対する応答データと前記第１の識別子を受信し、前記第１のバスのバス使用権を獲得して、前記リード要求に対する応答と前記第１の識別子とを前記第１のバスと前記第１の信号線へ送信することを特徴とする情報処理システム。
【請求項２】
前記第２のモジュールは、第２の識別子を有することを特徴とする請求項1記載の情報処理システム。
【請求項３】
前記第１のバスは複数の処理装置と接続されることを特徴とする請求項1記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、パーソナルコンピュータ、ワークステーション等の情報処理装置に係わり、特に、システムバスとしてアドレスとデータが多重化され、リードアクセス動作の起動サイクルと応答サイクルが、間に別の転送を挿入することで分離が可能であるスプリット転送プロトコルをサポートした情報処理装置、コンピュータシステムに関する。
【０００２】
【従来の技術】
上記技術分野においては従来、システムバスとして、例えば、「Ｆｕｔｕｒｅｂｕｓ＋ Ｐ８９６．１ Ｌｏｇｉｃａｌ Ｌａｙｅｒ Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ」（１９９０，ＩＥＥＥ）などのように、リードアクセス動作の起動サイクルと応答サイクルが、間に別の転送を挿入することで分離が可能であるスプリット転送プロトコルをサポートしたバスが多く用いられている。その理由としては、リードアクセス動作の起動サイクルと応答サイクルの間に他のモジュールの転送の挿入を可能とすることで、バスの使用効率および応答性を向上させることが挙げられる。
【０００３】
因みに、スプリット転送の典型的なタイミング例を図１３に示して説明する。図１３は従来のスプリットリードアクセスタイミング例で、ＡＤＤＴ［０：６３］は８バイト幅の多重化されたアドレス／データバス、ＡＤＲＶはアドレス／データバスＡＤＤＴ［０：６３］上に有効なアドレスが出力されていることを示すアドレスバリッド信号、ＤＡＴＡＶはアドレス／データバスＡＤＤＴ［０：６３］上に有効なデータが出力されていることを示すデータバリッド信号である。Ｆｕｔｕｒｅｂｕｓ＋などの従来のバスでスプリットリードアクセスを行う場合には、まず起動元のモジュールがバス使用権を獲得した後、アドレスバリッド信号ＡＤＲＶを有効にし、アクセス先のアドレスをＡＤＤＴ［０：６３］で指定する。そのとき同時に、モード指定制御信号線により現在起動中のアクセスがスプリットリードアクセスであることをアクセス先モジュールに伝える（１３０１のタイミング）。この後、バス使用権を放棄し、起動サイクルを終了する。一方、この起動を受け取ったアクセス先のモジュールはリードデータが準備できた時点で、バス使用権を獲得し、アドレスバリッド信号ＡＤＲＶを有効にし、アクセス先のアドレスをＡＤＤＴ［０：６３］で指定する。そのとき同時に、モード指定制御信号線により現在起動中の転送がスプリットリードアクセスの応答であることを起動元モジュールに伝える（１３０２のタイミング）。次に、データバリッド信号ＤＡＴＡＶを有効にし、ＡＤＤＴ［０：６３］上に有効なリードデータを出力する。この後、アクセス先のモジュールはバス使用権を放棄し、応答サイクルを終了する。起動元のモジュールは、アクセス先のモジュールが出力するモード指定制御信号線およびアクセス先のアドレスにより、自分の起動したアクセスに対する応答であることを判断し、その応答データを取り込むという一連の制御を行っていた。
【０００４】
【発明が解決しようとする課題】
上記従来の技術では、スプリット転送プロトコルがプロセッサバスでサポートされ、更にプロセッサバスに階層的に接続され、入出力装置が接続されるバスでは採用されていない。一般的に、情報処理装置を構成するＩＯの中には、アクセス時間の比較的早いＩＯと遅いＩＯが同じバスに接続されるため、接続されるモジュールにより比較的アクセス時間に差がないプロセッサバスに採用されているスプリット転送プロトコルを単純に採用すると、各ＩＯのアクセス時間の相違により、リードアクセスの応答の順序が保証できないという問題がある。
【０００５】
本発明の目的は、このような問題を解決し、バスの使用効率を向上、応答時間を減少させることにより、高性能な情報処理装置を提供することにある。
【０００６】
より具体的には、バスアダプターを介して階層的に接続された複数のバスの夫々がスプリット転送プロトコルを採用することで各バスの使用効率を向上させることが可能ならしめると共に、応答データの順序を保証することが可能な情報処理システムを提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため本発明は、バスに接続できる各モジュールにモジュールＩＤを指定する手段を設ける。さらに、少なくとも２つ以上階層的に接続した複数バス構造のシステムにおいては、モジュールＩＤを他の階層のバス上に存在する個々のモジュールに対しても割り付ける。そして、他の階層のバス上に存在するモジュールからのアクセスをシステムバス上に流す場合、インタフェースをとるアダプタに、そのモジュールに対して割り付けられたシステムバス上のモジュールＩＤを付加してリードアクセスの起動をかける手段を設ける。一方、起動をかけたモジュールが応答を受け取る場合、付加されたモジュールＩＤに従い、他の階層のバス上に存在するモジュールにさかのぼって応答を返す手段を設ける。
【０００８】
【作用】
階層的に複数のバスを接続するバスアダプタは、リード要求とリード要求に対する応答を対応付けることで、プロセッサは他の階層のバス上に存在するモジュールに対するリード要求を発行するに際し、階層的に接続される複数のバスのそれぞれでサポートされるスプリット転送プロトコルに従い、リード要求に対する入出力装置からの応答を待つことなく、他のリード要求を発行することができるので、バス使用効率を向上させ、情報処理装置全体として応答時間を減少させることができる。
【０００９】
【実施例】
近年、小型化、低価格化のため、バスの信号線を削減を図り、アドレスとデータを多重化したバスが多くなってきている。この場合、図１３の従来例のように、スプリットリードアクセスの応答転送時に、アクセス先のアドレスを出力するサイクルを設けると、アドレスとデータの多重化により、アドレスサイクル分だけ余計にバスを占有することになり、バスの使用効率低下や応答時間の増大を招くという問題が生じる。そこで、まず、本発明において採用され、バスの使用効率向上、応答時間の短縮を可能とするスプリット転送のプロトコルを簡単に説明する。図１は、本発明のスプリットリードアクセスタイミングを示す図である。本実施例においては、アクセス先のアドレスを出力するサイクルを削除し、それをリードデータを受取る識別子（モジュールＩＤ）で代用している。起動サイクルは図１３の従来例と同様、まず起動元のモジュールがバス使用権を獲得した後、アドレスバリッド信号ＡＤＲＶを有効にし、アクセス先のアドレスをＡＤＤＴ［０：６３］で指定する。そのとき同時に、モード指定制御信号線により現在起動中のアクセスがスプリットリードアクセスであることをアクセス先モジュールに伝える（１０５のタイミング）。この後、バス使用権を放棄し、起動サイクルを終了する。一方、この起動を受け取ったアクセス先のモジュールはリードデータが準備できた時点で、バス使用権を獲得した後、いきなりデータバリッド信号ＤＡＴＡＶを有効にし、ＡＤＤＴ［０：６３］上に有効なリードデータを出力する。そのとき同時に、モード指定制御信号線により現在起動中の転送がスプリットリードアクセスの応答であることを起動元モジュールに伝える（１０６のタイミング）。この後、アクセス先のモジュールはバス使用権を放棄し、応答サイクルを終了する。起動元のモジュールは、アクセス先のモジュールが出力するモード指定制御信号線およびアクセス元のモジュールを表すモジュールＩＤ（ＳＩＮＫＭＯＤ：スプリットリードの応答先モジュールの識別子）により、自分の起動したアクセスに対する応答であることを判断し、その応答データを取り込むという一連の制御を行う。本実施例のように、ＳＩＮＫＭＯＤが４ビットあれば１６モジュールを指定できる。具体的には、図２に示すように、バスに接続されるバスアダプタ毎に１つずつモジュールＩＤが割り当てられる。図２は、階層バス構造をとったシステム構成例で、２０１、２０２は高速プロセッサバス、２０３、２０４は高速プロセッサバスとのインタフェースを行うバスアダプタ、２０５はシステムバス、２０６、２０７、２０８はＩＯバスとのインタフェースを行うバスアダプタ、２０９、２１０、２１１はＩＯバスである。本実施例ではバスアダプタ２０３、２０４、２０６、２０７、２０８にそれぞれ”０”、”１”、”２”、”３”、”４”のようにバスアダプタ毎に１つずつモジュールＩＤが割り当てられている。
【００１０】
ところで、情報処理装置の多くは、階層バス構造をとったシステム構成になる。図３は、このときのスプリットリードアクセスのデータの流れ図を示した図で、３０１、３０２、３０３はプロセッサ（Ｐ１、Ｐ２、Ｐ３）、３０４はマルチプロセッサ対応のプロセッサバス、３０５はプロセッサバス３０４とシステムバス３０７のインタフェースを行うバスアダプタ、３０６はメインメモリ、３０７はシステムバス、３０８はシステムバス３０７とＩＯバス３１１のインタフェースを行うバスアダプタ、３０９はシステムバス３０７とＩＯバス３１２のインタフェースを行うバスアダプタ、３１０はシステムバス３０７とＩＯバス３１３のインタフェースを行うバスアダプタ、３１１、３１２、３１３はＩＯバス、３１４、３１５はＩＯバス３１１上のＩＯ、３１６、３１７は３ＩＯバス３１２上のＩＯ、３１８、３１９はＩＯバス３１３上のＩＯである。ここで、バスアダプタ毎に１つずつモジュールＩＤが割り当てると、例えば、バスアダプタ３０５には”０”、バスアダプタ３０８には”１”、バスアダプタ３０９には”２、”バスアダプタ３１０には”３”のようになる。このとき、プロセッサ１、プロセッサ２、プロセッサ３は独立にシステムバスにつながっているＩＯに対して独立にリード要求を発行する。このとき、図３のようなバスシステムにおいては、モジュールＩＤを無制限にシステムバス３０７上に発行していくと、もしアクセスしようとしているＩＯバス３１１がスプリット転送をサポートしているとアクセス時間の早いＩＯからの応答が先に返ってくる可能性があり、モジュールＩＤを参照しただけでは、アクセスの順序が保証できないという問題がある（本例では応答サイクルのＳＩＮＫＭＯＤはすべて”０”で返ってくる）。すなわち、他の階層のバスが上記従来のバスと同様にスプリット転送プロトコルをサポートしていると、応答データの順序を保証するために、１つのバスアダプタから１つのリード要求しか発行できなくなる。これは特にマルチプロセッサシステムの場合などに生じる。
【００１１】
以下、本発明のスプリット転送プロトコルを用いたマルチプロセッサシステムにおいて、それぞれのプロセッサが行うＩ／Ｏアクセスを連続してシステムバス上に発行し、並列化することで、このような問題をさらに解決する例を説明する。
図４は本実施例のシステム構成のブロック図で、４０１、４０２、４０３はプロセッサ（Ｐ１、Ｐ２、Ｐ３）、４０４はマルチプロセッサ対応のプロセッサバス、４０５はプロセッサバス４０４とシステムバス４０７のインタフェースを行うバスアダプタ、４０６はメインメモリ、４０７はシステムバス、４０８はシステムバス４０７とＩＯバス４１１のインタフェースを行うバスアダプタ、４０９はシステムバス４０７とＩＯバス４１２のインタフェースを行うバスアダプタ、４１０はシステムバス４０７とＩＯバス４１３のインタフェースを行うバスアダプタ、４１１、４１２、４１３はＩＯバス、４１４、４１５はＩＯバス４１１上のＩＯ、４１６、４１７はＩＯバス４１２上のＩＯ、４１８、４１９はＩＯバス４１３上のＩＯである。ここで、システムバス接続可能なバスアダプタ数を４とする。ただし、本発明では、モジュール識別子として、４ビット割り付けるとする。これにより、論理的には、１６のモジュールを識別できることになる。本発明では、プロセッサ４０１には”０”、プロセッサ４０２には”１”、プロセッサ４０３には”２”、メインメモリ４０６には”３”、バスアダプタ４０８には”４”、バスアダプタ４０９には”５”、バスアダプタ４１０には”６”のようにモジュールＩＤを割り振る。アダプタ４０５は、プロセッサ４０１から４０３からのＩＯアクセス要求を、各プロセッサ１つ以内なら並列してシステムバス４０７上に発行する。
【００１２】
図５は、図４のシステム構成でのアクセスタイムチャートを示すもので、プロセッサ４０１から４０３からのアクセス先がすべてモジュール４０８とし、プロセッサ４０１から４０３からのアクセス先のＩＯのアクセスタイムがそれぞれ１２、９、６サイクルであると仮定したときのものである。サイクル５０１はリードの起動サイクルで、バスマスタはバスアダプタ４０５、リードデータの応答先であるＳＩＮＫＭＯＤは”０”（起動元はプロセッサ４０１であることを示す）を示している。サイクル５０２はリードの起動サイクルで、バスマスタはバスアダプタ５、リードデータの応答先であるＳＩＮＫＭＯＤは”１”（起動元はプロセッサ４０２であることを示す）を示している。
【００１３】
サイクル５０３はリードの起動サイクルで、バスマスタはバスアダプタ４０５、リードデータの応答先であるＳＩＮＫＭＯＤは”２”（起動元はプロセッサ４０３であることを示す）を示している。サイクル５０４はリードの応答サイクルで、バスマスタはバスアダプタ４０８、リードデータの応答先であるＳＩＮＫＭＯＤは”２”を示している。このとき、バスアダプタ４０５はＳＩＮＫＭＯＤの”２”をみて、取り込んだデータをプロセッサ４０３に返すような制御を行う。このときのデータの流れを図８に示す。
【００１４】
サイクル５０５はリードの応答サイクルで、バスマスタはバスアダプタ４０８、リードデータの応答先であるＳＩＮＫＭＯＤは”１”を示している。このとき、バスアダプタ４０５はＳＩＮＫＭＯＤの”１”をみて、取り込んだデータをプロセッサ４０２に返すような制御を行う。このときのデータの流れを図７に示す。
【００１５】
サイクル５０６はリードの応答サイクルで、バスマスタはバスアダプタ４０８、リードデータの応答先であるＳＩＮＫＭＯＤは”０”を示している。このとき、バスアダプタ４０５はＳＩＮＫＭＯＤの”０”をみて、取り込んだデータをプロセッサ４０１に返すような制御を行う。このときのデータの流れを図６に示す。
【００１６】
また、メインメモリにモジュールＩＤを割り振れば、ＤＭＡ（ダイレクトメモリアクセス）の指定も容易になる（図９）。
【００１７】
ここで本発明のスプリットリード競合時のサイクル数を図１０に示す。（ａ）はシステムバスがスプリット転送をサポートしていない場合のサイクル数、（ｂ）はシステムバスがスプリット転送プロトコルを用いた場合のサイクル数である。１００１、１００７はプロセッサ１のＩＯアクセスの起動サイクル、１００２、１００８はプロセッサ１のＩＯアクセスの応答サイクル、１００３、１００９はプロセッサ１のＩＯアクセスの起動サイクル、１００４、１０１０はプロセッサ１のＩＯアクセスの応答サイクル、１００５、１０１１はプロセッサ１のＩＯアクセスの起動サイクル、１００６、１０１２はプロセッサ１のＩＯアクセスの応答サイクルである。このように、図１０上図のように、同一アダプタからの複数リードの起動が許さないと、すべてのリードアクセスがシリアライズされ、合計２７サイクルかかる。一方、図１０下図のように、並列起動が行えば、１２サイクルとなり、リードアクセスの応答性がさらに向上する。
【００１８】
ところで、上記実施例の説明においては、スプリットリードアクセスの応答先をＳＩＮＫＭＯＤという識別子で示したが、他の実施例として、スプリットリードアクセスの応答元の識別子を本発明の応答先と同様に指定できるようにすると、応答先の識別子（ＳＩＮＫＭＯＤ）が同一であっても識別子の異なる複数の応答元に対して、同時にスプリットリード要求を発行することも可能となる。その場合の応答元識別子は、図１１、図１２に示すように、ＩＯ４１４、ＩＯ４１５にそれぞれモジュールＩＤ”７”、”８”を割付け、その応答元識別子の情報により、バスアダプタ４０５が順序保証をする制御を行えば良い。
【００１９】
マルチプロセッサシステム等においても、それぞれのプロセッサが行うＩ／Ｏアクセスを少ないピン数で同様に処理できる。また、本発明によれば、転送時に指定するモジュールＩＤは、物理的なアダプタと全く切り離して設定することができるため、必要度の高いモジュールに集中的にモジュールＩＤを割り当てることができ、システムに対応できる柔軟性を高めるという効果がある。
【００２０】
【発明の効果】
本発明によれば、それぞれのモジュールが行うアクセスを、アクセスの順序が保証をしながら、連続してシステムバス上に発行し、並列処理することができ、システムバスのアクセスの応答時間の低減が図れるという効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施例のバスプロトコルによるスプリットリードアクセスのデータの流れ図。
【図２】階層バスシステムの構成例。
【図３】第１の実施例をそのまま階層バスシステムに用いたときのバスプロトコルによるスプリットリードアクセスのデータの流れ図。
【図４】本発明の第２の実施例のシステム構成のブロック図。
【図５】本発明の第２の実施例のスプリットリードアクセス競合タイムチャート。
【図６】本発明の第２の実施例のデータの流れ図２１）。
【図７】本発明の第２の実施例のデータの流れ図２２）。
【図８】本発明の第２の実施例のデータの流れ図２３）。
【図９】本発明の第２の実施例のデータの流れ図２４）。
【図１０】スプリットリード競合時のサイクル数を示す図。
【図１１】本発明の第３の実施例のデータの流れ図３１）。
【図１２】本発明の第３の実施例のデータの流れ図３２）。
【図１３】従来のバスプロトコルによるスプリットリードアクセスのデータの流れ図。
【符号の説明】
４０１，４０２，４０３…プロセッサ、
４０４…プロセッサバス、
４０５…バスアダプタ、
４０６…メインメモリ
４０７…システムバス、
４０８，４０９，４１０…バスアダプタ、
４１１，４１２，４１３…ＩＯバス、
４１４，４１５…ＩＯバス１１上のＩＯ、
４１６、４１７…ＩＯバス１２上のＩＯ、
４１８、４１９…ＩＯバス１３上のＩＯ。
【図１】
0003866873.tif 000002
【図２】
0003866873.tif 000003
【図３】
0003866873.tif 000004
【図４】
0003866873.tif 000005
【図５】
0003866873.tif 000006
【図６】
0003866873.tif 000007
【図７】
0003866873.tif 000008
【図８】
0003866873.tif 000009
【図９】
0003866873.tif 000010
【図１０】
0003866873.tif 000011
【図１１】
0003866873.tif 000012
【図１２】
0003866873.tif 000013
【図１３】
0003866873.tif 000014