(57)【要約】【課題】リクエストを受け付けてから後続リクエストの処理が完了するまでの時間を短縮することを課題とする。【解決手段】システムボード１では、ＩＯＣ１０が、先行リクエストの種別または後続リクエストの種別に応じて、リクエストの順序制御をＩＯＣ１０が担当するかＣＰＵ２０が担当するかを判定する。そして、ＩＯＣ１０が、リクエストの順序制御をＣＰＵ２０が担当すると判定された場合には、先行リクエストに続いて、後続リクエストをＣＰＵ２０に送信する。そして、ＣＰＵ２０が、先行リクエストをメモリ３０に送信し、先行リクエストの処理が完了した後に、後続リクエストをメモリ３０に送信するように順序を制御する。【選択図】        図１
2010118020.tif 000002
【特許請求の範囲】
【請求項１】
順序保証が必要なリクエストについて、外部入出力装置によって発行された先行リクエストを演算装置を介して記憶装置に送信し、当該先行リクエストの後に発行される後続リクエストが前記記憶装置に送信される順序を制御するリクエスト順序制御システムであって、
前記外部入出力装置は、
前記先行リクエストの種別または前記後続リクエストの種別に応じて、リクエストの順序制御を前記外部入出力装置が担当するか前記演算装置が担当するかを判定する制御担当判定部と、
前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストに続いて、後続リクエストを前記演算装置に送信するリクエスト送信部と、
を備え、
前記演算装置は、
前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストを前記記憶装置に送信し、当該先行リクエストの処理が完了した後に、後続リクエストを前記記憶装置に送信するように順序を制御する順序制御部と、
を備えることを特徴とするリクエスト順序制御システム。
【請求項２】
前記制御担当判定部は、前記後続リクエストが前記演算装置を通らないものである場合には、リクエストの順序制御を前記外部入出力装置が担当するように判定することを特徴とする請求項１に記載のリクエスト順序制御システム。
【請求項３】
前記リクエスト送信部は、前記先行リクエストを送信してから、所定の間隔を空けた後、前記後続リクエストを前記演算装置に送信することを特徴とする請求項１または２に記載のリクエスト順序制御システム。
【請求項４】
前記リクエスト送信部は、前記先行リクエストを送信した通信経路と同一の通信経路で、前記後続リクエストを送信することを特徴とする請求項１または２に記載のリクエスト順序制御システム。
【請求項５】
前記リクエスト送信部は、前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記後続リクエストに追い越し禁止フラグを付加して送信し、
前記順序制御部は、前記追い越し禁止フラグが付加された後続リクエストを受信すると、前記先行リクエストの処理が完了した後に、当該追い越し禁止フラグが付加された後続リクエストを前記記憶装置に送信することを特徴とする請求項１〜３のいずれか一つに記載のリクエスト順序制御システム。
【請求項６】
前記演算装置は、前記先行リクエストまたは前記後続リクエストの送信エラーを検出し、当該エラーが発生した通信経路を前記外部入出力装置に通知する送信エラー検出部をさらに備え、
前記順序制御部は、前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された先行リクエストおよび後続リクエストを破棄し、
前記リクエスト送信部は、前記エラー検出部によって通知された前記通信経路を使わずに、前記先行リクエストおよび前記後続リクエストを前記演算装置に送信することを特徴とする請求項１〜５のいずれか一つに記載のリクエスト順序制御システム。
【請求項７】
順序保証が必要なリクエストについて、外部入出力装置によって発行された先行リクエストを演算装置を介して記憶装置に送信し、当該先行リクエストの後に発行される後続リクエストが前記記憶装置に送信される順序を制御するリクエスト順序制御方法であって、
前記外部入出力装置が、前記先行リクエストの種別または前記後続リクエストの種別に応じて、リクエストの順序制御を前記外部入出力装置が担当するか前記演算装置が担当するかを判定する制御担当判定ステップと、
前記外部入出力装置が、前記制御担当判定ステップによって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストに続いて、後続リクエストを前記演算装置に送信するリクエスト送信ステップと、
前記演算装置が、前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストを前記記憶装置に送信し、当該先行リクエストの処理が完了した後に、後続リクエストを前記記憶装置に送信するように順序を制御する順序制御ステップと、
を含んだことを特徴とするリクエスト順序制御方法。
【請求項８】
前記リクエスト送信ステップは、前記先行リクエストを送信してから、所定の間隔を空けた後、前記後続リクエストを前記演算装置に送信することを特徴とする請求項７に記載のリクエスト順序制御方法。
【請求項９】
前記リクエスト送信ステップは、前記先行リクエストを送信した通信経路と同一の通信経路で、前記後続リクエストを送信することを特徴とする請求項７に記載のリクエスト順序制御方法。
【請求項１０】
順序保証が必要なリクエストについて、外部入出力装置によって発行された先行リクエストを演算装置を介して記憶装置に送信し、当該先行リクエストの後に発行される後続リクエストが前記記憶装置に送信される順序を制御するリクエスト順序制御方法をコンピュータに実行させるリクエスト順序制御プログラムであって、
前記外部入出力装置としてのコンピュータに、
前記先行リクエストの種別または前記後続リクエストの種別に応じて、リクエストの順序制御を前記外部入出力装置が担当するか前記演算装置が担当するかを判定する制御担当判定手順と、
前記制御担当判定手順によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストに続いて、後続リクエストを前記演算装置に送信するリクエスト送信手順と、
を実行させ、
前記演算装置としてのコンピュータに、
前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストを前記記憶装置に送信し、当該先行リクエストの処理が完了した後に、後続リクエストを前記記憶装置に送信するように順序を制御する順序制御手順と、
を実行させることを特徴とするリクエスト順序制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、順序保証が必要なリクエスト順序を制御するリクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラムに関する。
【背景技術】
【０００２】
従来より、情報処理装置の一部を構成するシステムボードでは、順序保証が必要なＩＯリクエストを受信すると、後続リクエストが先行リクエストを追い越さないようにリクエスト間の順番を制御することが行われている。メモリアクセスのリクエストを例示すると、システムボードは、先行リクエストに基づくメモリアクセス処理が完了した後に、後続リクエストをメモリに送信するように順序を制御している。
【０００３】
システムボード上には、図１１に例示するように、ＣＰＵ（Central  Processing  Unit）、ＳＣ(システムコントローラ)、ＩＯＣ（外部入出力コントローラ）およびメモリが実装されている。このような構成のもと、システムボードでは、ＩＯリクエストがＩＯＣ、ＳＣ、メモリの順で転送される。
【０００４】
システムボードでは、図１２に示すように、ＩＯＣが順序保証の必要なリクエストを外部入力から受信した場合、まず先行リクエストをＳＣに発行する。そして、ＳＣは、ＩＯＣから先行リクエストを受信すると、先行リクエストをパイプラインに投入し、メモリに対してメモリアクセスを要求する。
【０００５】
続いて、ＳＣは、メモリアクセスが確定すると、メモリアクセス確定の応答をＩＯＣに送信する。その後、ＩＯＣは、メモリアクセス確定の応答をＳＣから受信した後に、後続リクエストをＳＣに発行する。このように、順序保証が必要なＩＯリクエストについて、図１３に示すように、全てＩＯＣが順序保証を行っていた。
【０００６】
【特許文献１】特開平６−１８７２３１号公報
【特許文献２】特開平４−１９０４３５号公報
【特許文献３】特開２００７−１４８５０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記した従来の技術では、システムボードのＩＯＣが、メモリアクセス確定の応答を受信した後に、後続リクエストを発行するので、先行リクエストがＩＯＣから送出されてからその応答を受信するまで、後続リクエストをＩＯＣに滞留させることになる。この結果、リクエストを受け付けてから後続リクエストの処理が完了するまでに長い時間を要するという問題点があった。
【０００８】
そこで、この発明は、先行するリクエストを受け付けてから後続リクエストの処理が完了するまでの時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、このシステムでは、外部入出力装置が、先行リクエストの種別または後続リクエストの種別に応じて、リクエストの順序制御を外部入出力装置が担当するか演算装置が担当するかを判定する。そして、外部入出力装置が、リクエストの順序制御を演算装置が担当すると判定された場合には、先行リクエストに続いて、後続リクエストを演算装置に送信する。そして、演算装置が、先行リクエストを記憶装置に送信し、先行リクエストの処理が完了した後に、後続リクエストを記憶装置に送信するように順序を制御する。
【発明の効果】
【００１０】
開示のシステムは、リクエストを受け付けてから後続リクエストの処理が完了するまでの時間、つまりレイテンシを短縮し、性能を向上させるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、この発明に係るリクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラムの実施例を詳細に説明する。
【実施例１】
【００１２】
以下の実施例では、実施例１に係るシステムボードの構成および処理の流れを説明し、最後に実施例１による効果を説明する。なお、以下では、ＣＰＵとＳＣとの機能を併せ持つシステムボードの例について説明する。
【００１３】
［システムボードの構成］
まず最初に、図１を用いて、実施例１のシステムボード１の構成を説明する。図１は、実施例１に係るシステムボード１の構成を示すブロック図である。図１に示すように、実施例１によるシステムボード１は、ＩＯＣ１０、ＣＰＵ２０、メモリ３０（図中「Ｍｅｍｏｒｙ」、以下同様）を有し、バス等を介してそれぞれの要素が接続されている。以下にこれらの各部の処理を説明する。
【００１４】
ＩＯＣ１０は、システムボード１外との信号送受信を制御する。実施例１のＩＯＣ１０は、順序保証が必要なリクエストを外部装置から受信した場合に、先行リクエストをＣＰＵ２０に発行し、その後、後続リクエストをＣＰＵ２０に発行する。なお、ＩＯＣ１０による詳しい処理については、図３を用いて後に詳述する。
【００１５】
ＣＰＵ２０は、ＩＯＣ１０とメモリ３０との間のパケット送受信を制御するとともに、各種演算とデータの加工を行う。実施例１によりＣＰＵ２０は、ＩＯＣから受信した先行リクエストまたは後続リクエストをパイプラインに投入し、メモリ３０にアクセスする。なお、ＣＰＵ２０による詳しい処理については、図６を用いて後に詳述する。
【００１６】
メモリ３０は、各種処理に必要なデータを記憶する。詳しく説明すると、メモリ３０は、ＣＰＵ２０からのリクエストを受信してアクセスを受け付け、リードライト処理を行う。
【００１７】
ここで、図２を用いて、ＩＯＣ１０からメモリ３０までのパケット経路を説明する。図２に示すように、システムボード１では、ＣＰＵ２０を介してＩＯＣ１０とメモリ３０とが接続されている。そして、ＩＯＣ１０とＣＰＵ２０とがＩＯバス、つまりＩＯＣ−ＣＰＵ間のバスを介して接続されている。なお、ＩＯバスは、実施例１では８Ｌａｎｅ×４本のシリアル伝送バスであるが、図２では、１本に省略してＩＯバスを記載している。このように、複数のＩＯバスが設けられているため、ＩＯバス上を転送中のパケットについて順序保証が必要である。
【００１８】
また、図２に示すように、ＣＰＵ２０とメモリ３０とが接続されている。ＣＰＵ２０内のパイプラインでは、各種の資源の空き待ちのためリクエストがビジーリトライ、つまりリクエストをパイプラインの入口に戻して再処理する場合があり、このような状況に対応するために、先行リクエストと後続リクエストが順序保証されていなければならない。
【００１９】
［ＩＯＣの構成］
次に、図３〜図５を用いて、図１に示したＩＯＣ１０の構成を説明する。図３は、実施例１に係るＩＯＣの構成を示すブロック図である。図４は、制御担当テーブルの一例を説明するための図である。図５は、ＩＯＣからメモリまでのパケット経路を説明するための図である。
【００２０】
図３に示すように、実施例１のＩＯＣ１０は、外部入出力制御Ｉ／Ｆ（インターフェース、以下同様）１１、ＣＰＵ制御Ｉ／Ｆ１２、制御部１３、記憶部１４を有する。また、ＣＰＵ制御Ｉ／Ｆ１２は、ＩＯバスを介してＣＰＵ２０と接続されている。以下にこれらの各部の処理を説明する。
【００２１】
外部入出力制御Ｉ／Ｆ１１は、接続される外部装置との間で入出力する各種情報に関する通信を制御する。例えば、外部入出力制御Ｉ／Ｆ１１は、順序保証が必要なリクエストを含む各種リクエストを外部装置から受信する。
【００２２】
ＣＰＵ制御Ｉ／Ｆ１２は、接続されるＣＰＵ２０との間でやり取りする各種情報に関する通信を制御する。詳しく説明すると、ＣＰＵ制御Ｉ／Ｆ１２は、先行リクエストをＣＰＵ２０に送信し、その後、先行リクエストに対応する後続リクエストをＣＰＵ２０に送信する。また、ＣＰＵ制御Ｉ／Ｆ１２は、リクエストの処理完了通知をＣＰＵ２０から受信する。
【００２３】
記憶部１４は、制御部１３による各種処理に必要なデータ、未完了のリクエストおよびプログラムを格納するものであり、制御担当テーブル１４ａを有する。制御担当テーブル１４ａは、リクエストの種別に対応付けて、順序保証制御を担当する装置を記憶している。なお、図３の例では、順序保証制御を担当する装置はＩＯＣ１０またはＣＰＵ２０であるものとする。ここで、順序保証制御とは、後続リクエストが先行リクエストを追い越すことがないように制御することをいう。
【００２４】
制御担当テーブル１４ａは、図４に示すように、先行リクエストの種別を示す「先行リクエスト」と、後続リクエストの種別を示す「後続リクエスト」と、後続リクエストが先行リクエストを追い越すことがないように順序制御する装置を示す「順序制御担当」とを対応付けて記憶する。なお、図４において、「全ＤＭＡ  Ｗｒｉｔｅ／Ｒｅａｄ」は、ＩＯＣ１０から先行リクエストとして発行される全てのＤＭＡ  Ｗｒｉｔｅ／Ｒｅａｄを示している。
【００２５】
ここで、順序制御担当「ＩＯＣ」とは、後続リクエストが先行リクエストを追い越さないようにする順序制御を主にＩＯＣが行うことを示し、順序制御担当「ＣＰＵ＆ＩＯＣ」とは、順序制御を主にＣＰＵが行うことを示している。例えば、図４に例示する制御担当テーブル１４ａにおける（４）の後続リクエスト「ＺｅｒｏＢｙｔｅＲｅａｄ」は、図５に示すように、ＩＯＣ内部で処理が完結する。このため、後続リクエスト「ＺｅｒｏＢｙｔｅＲｅａｄ」がＣＰＵ２０を通らず、ＣＰＵが後続リクエストである「ＺｅｒｏＢｙｔｅＲｅａｄ」に対する順序制御することができないため、制御担当テーブル１４ａでは、「ＤＭＡ  Ｗｒｉｔｅ」に後続する「ＺｅｒｏＢｙｔｅＲｅａｄ」に対する順序制御担当が「ＩＯＣ」となっている。
【００２６】
また、図４に例示する制御担当テーブル１４ａにおける（３）の後続リクエスト「ＰＩＯ  Ｒｅａｄ」の応答は、図５に示すように、ＣＰＵ２０の制御部とパイプラインを通らずにＣＰＵ２０内部で完結する。このため、後続リクエスト「ＰＩＯ  Ｒｅａｄ」がＣＰＵ２０の制御部を通らず、ＣＰＵが「ＰＩＯ  Ｒｅａｄ」に対する順序制御することができないため、制御担当テーブル１４ａでは、「ＤＭＡ  Ｗｒｉｔｅ」に後続する「ＰＩＯ  Ｒｅａｄ」に対する順序制御担当が「ＩＯＣ」となっている。
【００２７】
また、ＣＰＵ２０では、先行リクエストのライト処理（ＤＭＡ  Ｗｒｉｔｅ）をカウントするカウンタを設けている。この点については、後に図６のＣＰＵ２０の構成の説明で詳述するが、カウンタは、先行リクエスト「ＤＭＡ  Ｗｒｉｔｅ」がパイプラインに投入されたら＋１とし、そのメモリアクセスが確定したら−１とすることで、順序保証に用いられる。一方、図４に例示する制御担当テーブル１４ａにおける（５）の先行リクエスト「ＤＭＡ  Ｒｅａｄ」は、ＣＰＵ２０でカウントしないので、制御担当テーブル１４ａでは、順序制御担当が「ＩＯＣ」となっている。
【００２８】
制御部１３は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、プログラムや所要データによって種々の処理を実行するが、特に、リクエスト種別判定部１３ａ、先行リクエスト発行部１３ｂ、後続リクエスト発行部１３ｃを有する。
【００２９】
リクエスト種別判定部１３ａは、先行リクエストの種別または後続リクエストの種別に応じて、リクエストの順序制御をＩＯＣ１０が担当するかＣＰＵ２０が担当するかを判定する。詳しく説明すると、リクエスト種別判定部１３ａは、順序保証が必要なＩＯリクエストを外部入力から受信すると、制御部１３が発行する先行リクエストおよび後続リクエストに該当する順序制御担当を制御担当テーブル１４ａから検索する。つまり、リクエスト種別判定部１３ａは、後続リクエストの前に受信していた「先行リクエスト」と、今回受信した「後続リクエスト」とを検索キーとして用いて、これらに対応するリクエストの組を制御担当テーブルから検索し、検索されたリクエストの組に対応する「制御担当」を読み出す。
【００３０】
ここで、リクエスト種別判定部１３ａは、順序制御担当として「ＩＯＣ」を読み出した場合には、リクエストの順序制御を自分自身、つまりＩＯＣ１０が担当すると判定し、その旨を後続リクエスト発行部１３ｃに通知する。また、リクエスト種別判定部１３ａは、順序制御担当として「ＣＰＵ＆ＩＯＣ」を読み出した場合には、リクエストの順序制御をＩＯＣ１０に接続されたＣＰＵ２０が担当すると判定し、その旨を後続リクエスト発行部１３ｃに通知する。
【００３１】
先行リクエスト発行部１３ｂは、先行リクエストをＣＰＵ２０に発行する。詳しく説明すると、先行リクエスト発行部１３ｂは、リクエスト種別判定部１３ａによって順序保証が必要なＩＯリクエストが外部入力から受信された場合に、先行リクエストをＣＰＵ２０に発行する。つまり、先行リクエスト発行部１３ｂは、ＩＯリクエストとして受信した、先行リクエストおよび後続リクエストの組が順序保証の必要がある場合には、先行リクエストをＣＰＵ２０に発行する。
【００３２】
リクエストの順序制御をＣＰＵ２０が担当すると判定された場合には、後続リクエスト発行部１３ｃは、先行リクエストの発行に続いて、後続リクエストをＣＰＵ２０に発行する。この場合、ＩＯＣは、ＣＰＵが先行リクエストに対する処理を完了したか否かを確認することなく、後続リクエストをＣＰＵに対して送信する。また、リクエストの順序制御をＩＯＣ１０が担当すると判定された場合には、後続リクエスト発行部１３ｃは、先行リクエストの処理が完了した後に、後続リクエストをＣＰＵ２０に発行する。
【００３３】
後続リクエスト発行部１３ｃは、順序制御担当が「ＣＰＵ＆ＩＯＣ」である旨の通知をリクエスト種別判定部１３ａから受信した場合には、後続リクエストのパケット内に１ビットの追い越し禁止フラグ（ＳＴＯフラグ）を立てる。つまり、ＣＰＵ２０内のパイプラインでは、各種の資源の空き待ちのためリクエストがビジーリトライする場合があり、ここでの先行リクエストおよび後続リクエストの順序保証を行うためである。この点については、詳しくは、ＣＰＵの構成の説明で詳述するが、後述するＣＰＵ２０の順序制御部２３ａは、追い越し禁止フラグ付きパケットの後続リクエストを受信すると、ＣＰＵ内部で処理中の先行リクエストがメモリアクセス確定の状態になるのをバッファ２４ａで待機させた後、リクエスト処理部２３ｂに後続リクエストを通知してメモリ３０に送信させる。
【００３４】
そして、後続リクエスト発行部１３ｃは、ボード上の実配線長やＩＯＣとＣＰＵのクロック同期化を考慮して、先行リクエストの発行から十分な間隔、例えば、６２５ＭＨｚで２０サイクルを空けて後続リクエストを発行する。つまり、後続リクエスト発行部１３ｃは、先行リクエストの発行から十分な間隔を空けて後続リクエストを発行することで、ＩＯバス上の順序を保証している。なお、先行リクエストと後続リクエストとの間隔は、ボード上の実際の配線長、あるいはＩＯＣとＣＰＵとの間のクロック同期を考慮して決定する。
【００３５】
また、後続リクエスト発行部１３ｃは、順序制御担当が「ＩＯＣ」である旨の通知をリクエスト種別判定部１３ａから受信した場合には、先行リクエストの処理がＣＰＵで完了した後に、後続リクエストをＣＰＵ２０に発行する。
【００３６】
［ＣＰＵの構成］
次に、図６〜図７を用いて、図１に示したＣＰＵ２０の構成を説明する。図６は、実施例１に係るＣＰＵの構成を示すブロック図である。図７は、レイテンシ短縮を説明するための図である。
【００３７】
図６に示すように、ＣＰＵ２０は、ＩＯＣ制御Ｉ／Ｆ２１、メモリ制御Ｉ／Ｆ２２、制御部２３、記憶部２４を有する。ＩＯＣ制御Ｉ／ＦはＩＯバスを介してＩＯＣ１０と接続されており、メモリ制御Ｉ／Ｆはメモリ３０と接続されている。以下にこれらの各部の処理を説明する。
【００３８】
ＩＯＣ制御Ｉ／Ｆ２１は、接続される外部装置との間で入出力する各種情報に関する通信を制御する。例えば、ＩＯＣ制御Ｉ／Ｆ２１は、リクエストをＩＯＣ１０から受信し、受信したリクエストに対する処理が完了したことを示すリクエスト完了通知をＩＯＣ１０へ送信する。
【００３９】
メモリ制御Ｉ／Ｆ２２は、接続されるメモリ３０との間でやり取りする各種情報に関する通信を制御する。詳しく説明すると、メモリ制御Ｉ／Ｆ２２は、リクエストをメモリ３０に送信し、送信したリクエストに対する処理完了通知をメモリ３０から受信する。
【００４０】
記憶部２４は、制御部２３による各種処理に必要なデータおよびプログラムを格納するものである。記憶部２４は、バッファ２４ａを有する。バッファ２４ａは、ＩＯＣ１０から受信した後続リクエストを後述する順序制御部２３ａが一時的に格納させる。
【００４１】
制御部２３は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、プログラムや所要データによって種々の処理を実行する。制御部は、順序制御部２３ａ、リクエスト処理部２３ｂ、送信エラー検出部２３ｃを有する。
【００４２】
順序制御部２３ａは、ＣＰＵが順序制御担当である場合には、メモリ制御Ｉ／Ｆ２２を介して先行リクエストをメモリ３０に送信し、先行リクエストの処理が完了した後に、後続リクエストをメモリ３０に送信するように、リクエストの送信順序を制御する。また、ＩＯＣ１０が順序制御担当である場合には、先行リクエストに基づくメモリアクセスが確定した後、メモリアクセス確定の応答をＩＯＣ制御Ｉ／Ｆ２１を介してＩＯＣ１０に送信する。
【００４３】
詳しく説明すると、順序制御部２３ａは、ＩＯＣ１０から先行リクエストを受信すると、受信した先行リクエストをリクエスト処理部２３に通知してメモリ３０に送信させる。そして、順序制御部２３ａは、ＩＯＣ１０から後続リクエストを受信すると、受信した後続リクエストのパケット内に追い越し禁止フラグが立ててあるかを判定する。
【００４４】
受信した後続リクエストのパケットに追い越し禁止フラグが立ててある場合、順序制御部２３ａは後続リクエストをバッファ２４ａに格納し、ＣＰＵで処理中の先行リクエストに基づくメモリアクセスが確定の状態になるまで後続リクエストをバッファ２４ａに待機させた後、リクエスト処理部２３ｂに後続リクエストを通知してメモリ３０に送信させる。
【００４５】
詳細な処理を説明すると、順序制御部２３ａは、ライト処理（ＤＭＡ  Ｗｒｉｔｅ）に対応する先行リクエストをカウントするカウンタを有し、「ＤＭＡ  Ｗｒｉｔｅ」に対応するリクエストがパイプラインに投入さる毎に計数値を＋１とし、パイプラインに投入したリクエストに基づくメモリアクセスが確定したらカウンタの計数値を−１として、リクエスト間の順序保証を行う。つまり、先行リクエストのＩＤやリクエスト種およびその完了状態を記録するような大規模なバッファを設ける必要が無く、先行リクエストおよび後続リクエストの順序制御を可能にしている。
【００４６】
リクエスト処理部２３ｂは、リクエストをパイプラインに投入し、メモリ３０に対してアクセス要求を行う。詳しく説明すると、リクエスト処理部２３ｂは、順序制御部２３ａから先行リクエストを受信すると、受信した先行リクエストをパイプラインに投入し、メモリ３０に対してアクセス要求を行う。
【００４７】
そして、リクエスト処理部２３ｂは、先行リクエストの処理完了の通知をメモリ３０から受信し、順序制御部２３ａから後続リクエストを受信すると、受信した後続リクエストをパイプラインに投入し、メモリ３０に対してアクセス要求を行う。その後、リクエスト処理部２３ｂは、処理完了の通知をメモリ３０から受信する。
【００４８】
このように、システムボード１は、リクエストの種別に応じてＣＰＵ２０が順序制御を行うことで、ＩＯＣ１０が先行リクエストの処理完了を待つ時間を短縮する。ここで、図７を用いてレイテンシ短縮について説明する。なお、図７は処理の順を追ったものであり、ＩＯ―ＢＵＳやＩＯＣが複数記載されているが、複数存在するものではない。また、縦点線で区切られた一つの区切りは、１クロックサイクルを示している。なお、便宜上、図は上段と下段で分かれているが、図中の矢印に示すように、上段から下段に続いて時間が連続しているものとする。
【００４９】
詳しく説明すると、システムボード１は、図７に示すように、ＣＰＵ２０が順序保証を行う場合には、ＩＯＣ１０が順序保証を行う場合と比較して、メモリアクセス確定の通知をＩＯＣ１０まで転送する処理（図７では「転送」および「ＩＯ―ＢＵＳ」と記載）、ＩＯＣ１０内部で順序制御する処理（図７では「ＩＯＣ」と記載）、ＣＰＵ２０に向けて転送する処理（図７では、「ＩＯ―ＢＵＳ」と記載）を行なう分のレイテンシが短縮でき、大幅な性能向上ができる。
【００５０】
送信エラー検出部２３ｃは、ＩＯＣバス上で発生した送信エラーを検出する。詳しく説明すると、送信エラー検出部２３ｃは、送信エラーを検出した場合に、ＩＯＣ１０に対して送信エラーが発生した旨およびエラーが発生したバス番号をＩＯＣ１０に通知する。そして、送信エラー検出部２３ｃは、送信エラー発生後にＣＰＵが受信する、順序保証が必要なリクエスト（図４の例では、（１）、（２）、（６）のリクエスト）を全て破棄し、ＩＯＣ１０が順序保証するリクエスト（図４の例では、（３）、（４）、（５）のリクエスト）を通常通り処理するように順序制御部２３ａに指示する。
【００５１】
そして、送信エラー検出部２３ｃは、エラー発生前に受信した全てのリクエストの処理が完了すると、送信エラー発生後にＣＰＵ２０が受信した順序保証が必要なリクエストの再送要求をＩＯＣ１０に送信する。その後、送信エラー検出部２３ｃは、一定時間経過後、バス縮退を解除する。
【００５２】
［システムボードによる処理］
次に、図８および図９を用いて、実施例１に係るシステムボードによる処理を説明する。図８は、実施例１に係るシステムボードによるリクエスト順序保証処理の流れを示すシーケンス図である。図９は、実施例１に係るシステムボードによるエラー発生時におけるリクエスト順序保証処理の流れを示すシーケンス図である。
【００５３】
図８に示すように、システムボード１のＩＯＣ１０は、順序保証が必要なリクエストを外部入力から受信すると（ステップＳ１０１）、受信したリクエストの種別を判別し、判別したリクエスト種別から、リクエストの順序制御をＩＯＣ１０が担当するかＣＰＵ２０が担当するかを判定する（ステップＳ１０２）。なお、以下の図８の例では、リクエストの順序制御をＣＰＵ２０が担当する場合のリクエスト順序保証処理について説明する。
【００５４】
そして、ＩＯＣ１０は、先行リクエストをＣＰＵ２０に発行する（ステップＳ１０３）。続いて、ＩＯＣ１０は、後続リクエストのパケット内に１ビットの追い越し禁止フラグ（ＳＴＯフラグ）を立て、先行リクエストの発行から十分な間隔、例えば、６２５ＭＨｚで２０サイクルを空けてＣＰＵに対して後続リクエストを発行する（ステップＳ１０４）。
【００５５】
ＣＰＵ２０は、ＩＯＣ１０から先行リクエストを受信すると、受信した先行リクエストをパイプラインに投入し（ステップＳ１０５）、メモリ３０に対してアクセス要求を行う（ステップＳ１０６）。その後、ＣＰＵ２０は、メモリ３０から処理完了を受信し（ステップＳ１０７）、先行リクエストの処理が完了したと判断すると、後続リクエストをパイプラインに投入する（ステップＳ１０８）。
【００５６】
そして、ＣＰＵ２０は、後続リクエストのアクセス要求をメモリ３０に対して行い（ステップＳ１０９）、メモリ３０が後続リクエストに対応する処理を完了したときにメモリ３０から処理完了を受信する（ステップＳ１１０）。
【００５７】
次に、実施例１に係るシステムボード１によるエラー発生時におけるリクエスト順序保証処理について図９を用いて説明する。図９に示すように、ＣＰＵ２０は、送信エラーを検出すると（ステップＳ２０１）、送信エラーが発生した旨、およびエラーが発生したバス番号をＩＯＣ１０に通知する（ステップＳ２０２）。
【００５８】
ＩＯＣ１０は、送信エラーが発生した旨の通知をＣＰＵから受信すると、全リクエストの発行を中断する（ステップＳ２０３）。また、ＣＰＵ２０は、送信エラー発生後にＩＯＣから受信するリクエストのうち、ＣＰＵが順序保証するリクエストを全て破棄し（ステップＳ２０４）、ＩＯＣ１０が順序保証するリクエストを通常通り処理するように順序制御部２３ａに指示する（ステップＳ２０５）。
【００５９】
続いて、ＣＰＵ２０は、エラー発生前にＩＯＣから受信した全てのリクエストの処理が完了すると（ステップＳ２０６）、パケットの再送要求をＩＯＣ１０に送信する（ステップＳ２０７）。そして、ＩＯＣ１０は、再送要求をＣＰＵから受信すると、溜まっている未完了のリクエストを古いものから順に送出する（ステップＳ２０８）。この際に、ＩＯＣ１０は、送信エラーの発生したＩＯバスを使用しない、つまり送信エラーを発生したＩＯバスを一時的に縮退させ、縮退したバスとは異なるバスを用いて、リクエストを再送する。
【００６０】
その後、ＣＰＵ２０は、一定期間リクエストを処理し（ステップＳ２０９）、一定期間経過後にＩＯバス縮退を解除する旨をＩＯＣ１０に通知し、通常の処理に復帰する。
【００６１】
[実施例１の効果]
上述してきたように、システムボード１では、ＩＯＣ１０が、先行リクエストの種別または後続リクエストの種別に応じて、リクエストの順序制御をＩＯＣ１０が担当するかＣＰＵ２０が担当するかを判定する。そして、リクエストの順序制御をＣＰＵ２０が担当すると判定された場合には、ＩＯＣ１０が、先行リクエストに続いて、ＣＰＵ２０による先行リクエストの処理完了を待たずに、先行リクエスト送信後すぐに、後続リクエストをＣＰＵ２０に送信する。そして、ＣＰＵ２０が、先行リクエストをメモリ３０に送信し、先行リクエストの処理が完了した後に、後続リクエストをメモリ３０に送信するように順序を制御する。このため、ＩＯＣ１０がＣＰＵ２０による先行リクエストの処理完了を待つ時間を短縮して、後続リクエストをＣＰＵ２０に発行することができる。この結果、リクエストを受け付けてから後続リクエストの処理が完了するまでの時間（レイテンシ）を短縮し、性能を向上させることが可能である。
【００６２】
また、実施例１によれば、システムボード１では、後続リクエストがＣＰＵ２０の処理部２３を通らないものである場合には、リクエストの順序制御をＩＯＣ１０が担当するものとして判定するので、ＣＰＵ２０が順序制御を行うことができないリクエストについては、ＩＯＣ１０に順序制御を担当させることが可能である。
【００６３】
また、実施例１によれば、システムボード１では、先行リクエストを送信してから、所定の間隔を空けた後、後続リクエストをＣＰＵ２０に送信するので、先行リクエストの発行から十分な間隔を空けた後、後続リクエストを発行することにより、ＩＯバス上の順序を確実に保証することが可能である。
【００６４】
また、実施例１によれば、システムボード１では、リクエストの順序制御をＩＯＣ１０が担当すると判定された場合には、ＩＯＣ１０が後続リクエストに追い越し禁止フラグを付加してＣＰＵ２０に送信する。そして、ＣＰＵ２０が追い越し禁止フラグが付加された後続リクエストを受信すると、先行リクエストの処理が完了した後に、追い越し禁止フラグが付加された後続リクエストをメモリ３０に送信する。このため、例えば、先行リクエストのメモリアクセス完了を管理するカウンタをＣＰＵ２０に設け、カウンタに応じて追い越し禁止フラグが付加された後続リクエストの順序制御を行うことができる。この結果、先行リクエストのＩＤやリクエスト種およびその完了状態を記録するような大規模なバッファを設ける必要が無く、先行リクエストおよび後続リクエストの順序制御を簡易に行うことが可能である。
【００６５】
また、実施例１によれば、システムボード１では、先行リクエストまたは後続リクエストの送信エラーを検出し、エラーが発生したＩＯバスをＩＯＣ１０に通知し、リクエストの順序制御をＣＰＵ２０が担当すると判定された先行リクエストおよび後続リクエストを破棄する。そして、ＩＯＣは、通知されたエラーが発生したＩＯバスを使わずに、先行リクエストおよび後続リクエストをＣＰＵ２０に送信する。このため、エラー発生時においても、適切に順序制御を行うことが可能である。
【実施例２】
【００６６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００６７】
（１）ＩＯバス上での順序保証
上記の実施例１では、ＩＯバス上での順序を保証するために、先行リクエストの発行から十分な間隔、例えば、６２５ＭＨｚで２０サイクルを空けて後続リクエストを発行する場合を説明したが、本発明はこれに限定されるものではない。ＩＯバスは複数本、例えば４本設けられるが、実施例２ではＩＯバス上での順序を保証するために、先行リクエストを送信したＩＯバスと同一のバスで後続リクエストを送信する。
【００６８】
実施例２に係るシステムボードのＩＯＣは、図１０に示すように、先行リクエストをＣＰＵに発行した後（ステップＳ３０３）、後続リクエストのパケット内に追い越し禁止フラグを立て、先行リクエストの送信したバスと同一のバスから後続リクエストをＣＰＵに対して発行する（ステップＳ３０４）。
【００６９】
実施例２に係るシステムボードのＩＯＣは、先行リクエストを発行する際に、リクエスト伝送に使用するバスを一意に識別するバス番号を記録しておく。そして、ＩＯＣは、ＣＰＵに後続リクエストを発行する際に、先行リクエストの中に後続リクエストが追い越してはならないリクエストがあれば、その先行リクエストを送信したバスを介して後続リクエストを発行する。また、追い越してはいけない先行リクエストが複数あった場合には、最後に送出した先行リクエストの送信に用いたバスと同一バスを後続リクエストの送信に使用する。
【００７０】
このように、先行リクエストを送信したＩＯバスと同一のＩＯバスで、後続リクエストを送信するので、後続リクエストが先行リクエストを追い越すことがなくなる結果、ＩＯバス上のリクエスト間の順序を確実に保証することが可能である。
【００７１】
（２）システム構成等
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、先行リクエスト発行部１３ｂと後続リクエスト発行部１３ｃを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７２】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７３】
（３）プログラム
なお、本実施例で説明したリクエスト順序制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【００７４】
以上の実施例１〜２を含む実施形態に関し、更に以下の付記を開示する。
【００７５】
（付記１）順序保証が必要なリクエストについて、外部入出力装置によって発行された先行リクエストを演算装置を介して記憶装置に送信し、当該先行リクエストの後に発行される後続リクエストが前記記憶装置に送信される順序を制御するリクエスト順序制御システムであって、
前記外部入出力装置は、
前記先行リクエストの種別または前記後続リクエストの種別に応じて、リクエストの順序制御を前記外部入出力装置が担当するか前記演算装置が担当するかを判定する制御担当判定部と、
前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストに続いて、後続リクエストを前記演算装置に送信するリクエスト送信部と、
を備え、
前記演算装置は、
前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストを前記記憶装置に送信し、当該先行リクエストの処理が完了した後に、後続リクエストを前記記憶装置に送信するように順序を制御する順序制御部と、
を備えることを特徴とするリクエスト順序制御システム。
【００７６】
（付記２）前記制御担当判定部は、前記後続リクエストが前記演算装置を通らないものである場合には、リクエストの順序制御を前記外部入出力装置が担当するように判定することを特徴とする付記１に記載のリクエスト順序制御システム。
【００７７】
（付記３）前記リクエスト送信部は、前記先行リクエストを送信してから、所定の間隔を空けた後、前記後続リクエストを前記演算装置に送信することを特徴とする付記１または２に記載のリクエスト順序制御システム。
【００７８】
（付記４）前記リクエスト送信部は、前記先行リクエストを送信した通信経路と同一の通信経路で、前記後続リクエストを送信することを特徴とする付記１または２に記載のリクエスト順序制御システム。
【００７９】
（付記５）前記リクエスト送信部は、前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記後続リクエストに追い越し禁止フラグを付加して送信し、
前記順序制御部は、前記追い越し禁止フラグが付加された後続リクエストを受信すると、前記先行リクエストの処理が完了した後に、当該追い越し禁止フラグが付加された後続リクエストを前記記憶装置に送信することを特徴とする付記１〜３のいずれか一つに記載のリクエスト順序制御システム。
【００８０】
（付記６）前記演算装置は、前記先行リクエストまたは前記後続リクエストの送信エラーを検出し、当該エラーが発生した通信経路を前記外部入出力装置に通知する送信エラー検出部をさらに備え、
前記順序制御部は、前記制御担当判定部によって前記リクエストの順序制御を前記演算装置が担当すると判定された先行リクエストおよび後続リクエストを破棄し、
前記リクエスト送信部は、前記エラー検出部によって通知された前記通信経路を使わずに、前記先行リクエストおよび前記後続リクエストを前記演算装置に送信することを特徴とする付記１〜５のいずれか一つに記載のリクエスト順序制御システム。
【００８１】
（付記７）順序保証が必要なリクエストについて、外部入出力装置によって発行された先行リクエストを演算装置を介して記憶装置に送信し、当該先行リクエストの後に発行される後続リクエストが前記記憶装置に送信される順序を制御するリクエスト順序制御方法であって、
前記外部入出力装置が、前記先行リクエストの種別または前記後続リクエストの種別に応じて、リクエストの順序制御を前記外部入出力装置が担当するか前記演算装置が担当するかを判定する制御担当判定ステップと、
前記外部入出力装置が、前記制御担当判定ステップによって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストに続いて、後続リクエストを前記演算装置に送信するリクエスト送信ステップと、
前記演算装置が、前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストを前記記憶装置に送信し、当該先行リクエストの処理が完了した後に、後続リクエストを前記記憶装置に送信するように順序を制御する順序制御ステップと、
を含んだことを特徴とするリクエスト順序制御方法。
【００８２】
（付記８）前記制御担当判定ステップは、前記後続リクエストが前記演算装置を通らないものである場合には、リクエストの順序制御を前記外部入出力装置が担当するように判定することを特徴とする付記７に記載のリクエスト順序制御方法。
【００８３】
（付記９）前記リクエスト送信ステップは、前記先行リクエストを送信してから、所定の間隔を空けた後、前記後続リクエストを前記演算装置に送信することを特徴とする付記７または８に記載のリクエスト順序制御方法。
【００８４】
（付記１０）前記リクエスト送信ステップは、前記先行リクエストを送信した通信経路と同一の通信経路で、前記後続リクエストを送信することを特徴とする付記７または８に記載のリクエスト順序制御方法。
【００８５】
（付記１１）前記リクエスト送信ステップは、前記制御担当判定ステップによって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記後続リクエストに追い越し禁止フラグを付加して送信し、
前記順序制御ステップは、前記追い越し禁止フラグが付加された後続リクエストを受信すると、前記先行リクエストの処理が完了した後に、当該追い越し禁止フラグが付加された後続リクエストを前記記憶装置に送信することを特徴とする付記７〜１０のいずれか一つに記載のリクエスト順序制御方法。
【００８６】
（付記１２）前記演算装置が、前記先行リクエストまたは前記後続リクエストの送信エラーを検出し、当該エラーが発生した通信経路を前記外部入出力装置に通知する送信エラー検出ステップをさらに含み、
前記順序制御ステップは、前記制御担当判定ステップによって前記リクエストの順序制御を前記演算装置が担当すると判定された先行リクエストおよび後続リクエストを破棄し、
前記リクエスト送信ステップは、前記エラー検出ステップによって通知された前記通信経路を使わずに、前記先行リクエストおよび前記後続リクエストを前記演算装置に送信することを特徴とする付記７〜１１のいずれか一つに記載のリクエスト順序制御方法。
【００８７】
（付記１３）順序保証が必要なリクエストについて、外部入出力装置によって発行された先行リクエストを演算装置を介して記憶装置に送信し、当該先行リクエストの後に発行される後続リクエストが前記記憶装置に送信される順序を制御するリクエスト順序制御方法をコンピュータに実行させるクエスト順序制御プログラムであって、
前記外部入出力装置としてのコンピュータに、
前記先行リクエストの種別または前記後続リクエストの種別に応じて、リクエストの順序制御を前記外部入出力装置が担当するか前記演算装置が担当するかを判定する制御担当判定手順と、
前記制御担当判定手順によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストに続いて、後続リクエストを前記演算装置に送信するリクエスト送信手順と、
を実行させ、
前記演算装置としてのコンピュータに、
前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記先行リクエストを前記記憶装置に送信し、当該先行リクエストの処理が完了した後に、後続リクエストを前記記憶装置に送信するように順序を制御する順序制御手順と、
を実行させることを特徴とするリクエスト順序制御プログラム。
【００８８】
（付記１４）前記リクエスト送信手順は、前記制御担当判定手順によって前記リクエストの順序制御を前記演算装置が担当すると判定された場合には、前記後続リクエストに追い越し禁止フラグを付加して送信し、
前記順序制御手順は、前記追い越し禁止フラグが付加された後続リクエストを受信すると、前記先行リクエストの処理が完了した後に、当該追い越し禁止フラグが付加された後続リクエストを前記記憶装置に送信することを特徴とする付記１３に記載のリクエスト順序制御プログラム。
【００８９】
（付記１５）前記演算装置としてのコンピュータに、前記先行リクエストまたは前記後続リクエストの送信エラーを検出し、当該エラーが発生した通信経路を前記外部入出力装置に通知する送信エラー検出手順をさらに実行させ、
前記順序制御手順は、前記制御担当判定手順によって前記リクエストの順序制御を前記演算装置が担当すると判定された先行リクエストおよび後続リクエストを破棄し、
前記リクエスト送信手順は、前記エラー検出手順によって通知された前記通信経路を使わずに、前記先行リクエストおよび前記後続リクエストを前記演算装置に送信することを特徴とする付記１３または１４に記載のリクエスト順序制御プログラム。
【００９０】
（付記１６）外部の装置に接続される入出力部と、前記入出力部に接続され、前記入出力装置からのリクエストに応じた処理を実行する処理部とをそなえた情報処理装置であって、
前記入出力部は、
発行されたリクエストの種別を判別し、先行する先行リクエストと、前記先行リクエストの後に発行される後続リクエストとの種別に応じて、前記先行リクエストと前記後続リクエストとの順序制御を、前記入出力部が担当するか、あるいは前記処理部が担当するかを判定する判定部と、
前記判定部によって前記順序制御を前記処理部が担当すると判定された場合、前記処理部への先行リクエストの送信に続いて、前記処理部による前記先行リクエストに対する処理完了を待たずに、前記後続リクエストを前記処理部に送信する送信部と、
を備えたことを特徴とする情報処理装置。
【００９１】
（付記１７）前記情報処理装置において、
前記判定部は更に、前記後続リクエストの順序制御が前記処理部で行われるか否かを示す情報を前記後続リクエストに付加し、
前記処理部は、前記入出力部から受信した後続リクエストに前記情報が付加されているか否かを判定し、前記後続リクエストに前記情報が付加されていた場合には、前記入出力部から受信した前記先行リクエスト及び前記後続リクエストの順序制御を行なう制御部を備えることを特徴とする付記１６に記載の情報処理装置。
【００９２】
（付記１８）前記情報処理装置は更に、前記先行リクエストの種別と、前記後続リクエストの種別と、前記順序制御を実行するのが前記処理部であるか否かを示す識別情報とを対応付けて記憶する記憶部を備え、
前記判定部は、前記リクエストの種別に基づいて前記記憶部を参照し、前記順序制御を前記処理部が実行するか否かを判別することを特徴とする付記１６に記載の情報処理装置。
【図面の簡単な説明】
【００９３】
【図１】実施例１に係るシステムボードの構成を示すブロック図である。
【図２】ＩＯＣからメモリまでのパケット経路を示す図である。
【図３】実施例１に係るＩＯＣの構成を示すブロック図である。
【図４】制御担当テーブルの一例を説明するための図である。
【図５】ＩＯＣからメモリまでのパケット経路を説明するための図である。
【図６】実施例１に係るＣＰＵの構成を示すブロック図である。
【図７】レイテンシ短縮を説明するための図である。
【図８】実施例１に係るシステムボードによるリクエスト順序保証処理の流れを示すシーケンス図である。
【図９】実施例１に係るシステムボードによるエラー発生時におけるリクエスト順序保証処理の流れを示すシーケンス図である。
【図１０】実施例２に係るシステムボードによるリクエスト順序保証処理の流れを示すシーケンス図である。
【図１１】従来技術を説明するための図である。
【図１２】従来技術を説明するための図である。
【図１３】従来技術を説明するための図である。
【符号の説明】
【００９４】
１  システムボード
１０  ＩＯＣ
１１  外部入出力制御Ｉ／Ｆ
１２  ＣＰＵ制御Ｉ／Ｆ
１３  制御部
１３ａ  リクエスト種別判定部
１３ｂ  先行リクエスト発行部
１３ｃ  後続リクエスト発行部
１４  記憶部
１４ａ  制御担当テーブル
２０  ＣＰＵ
２１  ＩＯＣ制御Ｉ／Ｆ
２２  メモリ制御Ｉ／Ｆ
２３  制御部
２３ａ  順序制御部
２３ｂ  リクエスト処理部
２３ｃ  送信エラー検出部
２４  記憶部
２４ａ  バッファ
３０  メモリ
【図１】
2010118020.tif 000003
【図２】
2010118020.tif 000004
【図３】
2010118020.tif 000005
【図４】
2010118020.tif 000006
【図５】
2010118020.tif 000007
【図６】
2010118020.tif 000008
【図７】
2010118020.tif 000009
【図８】
2010118020.tif 000010
【図９】
2010118020.tif 000011
【図１０】
2010118020.tif 000012
【図１１】
2010118020.tif 000013
【図１２】
2010118020.tif 000014
【図１３】
2010118020.tif 000015