(57)【要約】【課題】入出力命令を効率よく処理することができる命令処理装置等を提供する。【解決手段】  命令処理装置１０１は、メモリ内の記憶領域と、記憶装置との間において入出力する入出力命令に応じて、記憶領域と記憶装置５０８とを通信接続する場合に経由可能なインターコネクト間の繋がりを表す接続情報に基づいて、記憶領域と記憶装置５０８とを通信接続可能な１つ以上の経路の中から、特定の経路を選択する選択部１０２と、入出力命令を、特定の経路に含まれるインターコネクトを介するリクエストに変換する変換部１０３と有する。【選択図】      図１
2015156158.tif 000002
【特許請求の範囲】
【請求項１】
メモリ内の記憶領域と、記憶装置との間において入出力する入出力命令に応じて、前記記憶領域と、前記記憶装置とを通信接続する場合に経由可能なインターコネクト間の繋がりを表す接続情報に基づいて、前記記憶領域と、前記記憶装置とを通信接続可能な１つ以上の経路の中から、特定の経路を選択する選択手段と、
前記入出力命令を、前記特定の経路に含まれる前記インターコネクトを介するリクエストに変換する変換手段と
を備えることを特徴とする命令処理装置。
【請求項２】
前記選択手段は、前記経路のうち、前記経路に含まれる前記インターコネクトの本数が少ない経路を、前記特定の経路として選択する
ことを特徴とする請求項１に記載の命令処理装置。
【請求項３】
前記選択手段は、前記経路のうち、前記経路に係るコストが少ない経路を、前記特定の経路として選択する
ことを特徴とする請求項１に記載の命令処理装置。
【請求項４】
自装置を含む情報処理装置が起動されるのに応じて、前記接続情報を作成する情報作成手段
をさらに備える
請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記選択手段は、前記入出力命令が第１記憶領域に関する処理である場合に、前記入出力命令に応じて、論理アドレスと物理アドレスとが関連付けされたマップ情報から、前記第１記憶領域に含まれる前記論理アドレスに関連付けされた前記物理アドレスを読み取ることにより、前記第１記憶領域に応じた前記記憶領域を特定し、前記経路と前記本数とが関連付けされた経路情報に基づき、特定した前記記憶領域と、前記記憶装置とを通信接続可能な経路の中から、前記特定の経路を選択する
ことを特徴とする請求項１乃至請求項４のいずれかに記載の命令処理装置。
【請求項６】
請求項１乃至請求項５に記載の命令処理装置と、
前記リクエストを処理する処理手段と
を備えることを特徴とする情報処理装置。
【請求項７】
請求項１乃至請求項５に記載の命令処理装置、前記インターコネクト、及び、前記メモリが有する機能を仮想的に実現するハイパーバイザ手段を
備えることを特徴とする情報処理装置。
【請求項８】
情報処理装置を用いて、メモリ内の記憶領域と、記憶装置との間において入出力する入出力命令に応じて、前記記憶領域と、前記記憶装置とを通信接続する場合に経由可能なインターコネクト間の繋がりを表す接続情報に基づいて、前記記憶領域と、前記記憶装置とを通信接続可能な１つ以上の経路の中から、特定の経路を選択し、前記入出力命令を、前記特定の経路に含まれる前記インターコネクトを介するリクエストに変換することを特徴とする命令処理方法。
【請求項９】
メモリ内の記憶領域と、記憶装置との間において入出力する入出力命令に応じて、前記記憶領域と、前記記憶装置とを通信接続する場合に経由可能なインターコネクト間の繋がりを表す接続情報に基づいて、前記記憶領域と、前記記憶装置とを通信接続可能な１つ以上の経路の中から、特定の経路を選択する選択機能と、
前記入出力命令を、前記特定の経路に含まれる前記インターコネクトを介するリクエストに変換する変換機能と
コンピュータに実現させることを特徴とする命令処理プログラム。
【請求項１０】
前記選択機能において、前記経路のうち、前記経路に含まれる前記インターコネクトの本数が少ない経路を、前記特定の経路として選択する
ことを特徴とする請求項９に記載の命令処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力命令を処理する命令処理装置等に関する。
【背景技術】
【０００２】
コンピュータシステム（情報処理装置）が有する性能を向上するアーキテクチャとして、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ＿Ｍｅｍｏｒｙ＿Ａｃｃｅｓｓ）が知られている。
【０００３】
ＮＵＭＡは、共有メモリ型マルチプロセッサコンピュータシステムに関するアーキテクチャの一つである。ＮＵＭＡにおいては、中央演算処理装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿ｕｎｉｔ、ＣＰＵ）と、メインメモリ（主記憶装置、以降、「メモリ」と表す。）とを有するＮＵＭＡノードが複数存在する。ＮＵＭＡノードは、インターコネクトを介して相互に通信接続する。
【０００４】
インターコネクトは、２つのＣＰＵ（たとえば、ＮＵＭＡノード）の間、ＣＰＵと、入出力ハブまたはルーティングハブとの間を接続し、任意のコンポーネント（たとえば、ＣＰＵ、入出力ハブ等）が通信ネットワークを経由して他のコンポーネントに接続することを可能にする。インターコネクトは、本発明に係る各実施形態においても、上述したことと同様のことを表す。
【０００５】
上述したように、ＮＵＭＡノードは、ＣＰＵとメモリの対（これをノードと呼ぶ）を複数有する。ただし、ＮＵＭＡにおいて、各ＣＰＵは、論理アドレスを用いて、全ＮＵＭＡノードにおけるメモリを参照することができる。
【０００６】
一方、ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ＿ＭｕｌｔｉＰｒｏｃｅｓｓｉｎｇ）においては、バスを経由することにより、コンピュータシステムにおける全てのＣＰＵと、メモリとが通信接続する。
【０００７】
このため、ＮＵＭＡは、ＳＭＰに比べ、複数のＣＰＵがバスを共有することにより生じる輻輳を低減することができ、さらに、バス等を実装する配線の長さを短くすることができる。このため、ＮＵＭＡを採用するコンピュータシステムは、ＳＭＰよりも、多くのＣＰＵ、及び、メモリを有することが容易である。
【０００８】
近年、ＮＵＭＡノードは、さらに、入出力ハブ（Ｉ／Ｏハブ）を有することも多い。ＮＵＭＡノードは、入出力ハブを介して相互に通信接続する。ＮＵＭＡノードが入出力ハブを有する構成の場合、各ＮＵＭＡノード及び入出力ハブ間におけるインターコネクトは、必ずしも、同一の構成であるとは限らない。
【０００９】
マルチパス機能は、ＣＰＵが記憶装置にアクセスする方式の一つである。マルチパス機能は、ＣＰＵと記憶装置との間において通信接続可能な経路が複数存在する場合に、経路を選択するポリシー（以降、「経路選択ポリシー」と表す。）に従い、ＣＰＵから受信する入出力リクエストに、特定の経路を割り当てる。ユーザは、マルチパス機能を用いることにより、記憶装置にアクセスする経路を意識することなく、複数の経路を利用することができる。
【００１０】
たとえば、一般的な経路選択ポリシーには、以下に示す３つの方式がある。すなわち、
（１）特定の経路を選択する方式（アクティブスタンバイ方式）、
（２）順番に経路を選択する方式（ラウンドロビン方式）、
（３）未処理の入出力リクエストに関する処理を完了する時間が最短となる経路を選択する方式（サービスタイム方式）。
【００１１】
たとえば、特許文献１及び特許文献２は、コンピュータシステムを効率的に制御する技術等を開示する。
【００１２】
特許文献１に開示される装置は、ホストコンピュータと記憶装置とを通信接続可能な経路が複数存在する場合に、キャッシュヒット率、及び、入出力処理時間に関する履歴に基づき経路を選択する。
【００１３】
特許文献２が開示する資源管理装置は、ＮＵＭＡ型のマルチプロセッサシステムにおいて、プロセッサごとに決定されるプロセスの優先度を変更する。これにより、該資源管理装置は、異なるプロセッサ間において、プロセスが移動する回数を減らすことができる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−３５１０３０号公報
【特許文献２】特開平０６−２５９３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかし、一般的な経路選択ポリシーは、ＮＵＭＡノードと入出力ハブとの間におけるインターコネクトを考慮していない。このため、マルチパス機能が、経路選択ポリシーに従い、インターコネクトを介する経路を選択する場合に、バスにおいて輻輳が生じる可能性がある。この結果、性能は低下する。
【００１６】
また、特許文献１は、インターコネクトを考慮した発明ではない。さらに、特許文献１に開示される装置は、キャッシュヒット率、及び、入出力処理時間に関する履歴に基づき、経路を選択する。このため、該装置は、該履歴が存在しない場合に、入出力処理を低減することはできない。
【００１７】
特許文献２において、プロセスの優先度は、インターコネクトに起因する処理時間に関連しない。したがって、特許文献２に開示される資源管理装置は、インターコネクトに起因する処理時間を低減しない。
【００１８】
そこで、本発明の主たる目的は、入出力命令を効率よく処理することができる命令処理装置等を提供することである。
【課題を解決するための手段】
【００１９】
前述の目的を達成するために、本発明に係る命令処理装置は、以下の構成を備えることを特徴とする。
【００２０】
すなわち、本発明に係る命令処理装置は、
メモリ内の記憶領域と、記憶装置との間において入出力する入出力命令に応じて、前記記憶領域と、前記記憶装置とを通信接続する場合に経由可能なインターコネクト間の繋がりを表す接続情報に基づいて、前記記憶領域と、前記記憶装置とを通信接続可能な１つ以上の経路の中から、特定の経路を選択する選択手段と、
前記入出力命令を、前記特定の経路に含まれる前記インターコネクトを介するリクエストに変換する変換手段と
を備えることを特徴とする。
【００２１】
また、本発明の他の見地として、本発明に係る命令処理方法は、
情報処理装置を用いて、メモリ内の記憶領域と、記憶装置との間において入出力する入出力命令に応じて、前記記憶領域と、前記記憶装置とを通信接続する場合に経由可能なインターコネクト間の繋がりを表す接続情報に基づいて、前記記憶領域と、前記記憶装置とを通信接続可能な１つ以上の経路の中から、特定の経路を選択し、前記入出力命令を、前記特定の経路に含まれる前記インターコネクトを介するリクエストに変換する
ことを特徴とする。
【００２２】
さらに、同目的は、係る命令処理プログラム、および、そのプログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００２３】
本発明に係る命令処理装置等によれば、入出力命令を効率よく処理することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態に係る命令処理装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係る命令処理装置における処理の流れを示すフローチャートである。
【図３】入出力命令に含まれる情報の一例を概念的に表す図である。
【図４】論理アドレスと、メモリにおける特定の領域を指し示す物理アドレスとが関連付けされたマップ情報の一例を概念的に表す図である。
【図５】マルチパスデバイスが有する構成の一例を概念的に表す図である。
【図６】インターコネクトコストの一例を表す図である。
【図７】サービスタイムコストの一例を表す図である。
【図８】本発明の第２の実施形態に係る命令処理装置が有する構成を示すブロック図である。
【図９】第２の実施形態に係る命令処理装置における処理の流れを示すフローチャートである。
【図１０】アドレス情報の一例を概念的に表す図である。
【図１１】接続情報の一例を概念的に表す図である。
【図１２】情報処理装置が有する構成を表すブロック図である。
【図１３】本発明の各実施形態に係る命令処理装置を実現可能な計算処理装置のハードウェア構成を、概略的に示すブロック図である。
【発明を実施するための形態】
【００２５】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００２６】
＜第１の実施形態＞
本発明の第１の実施形態に係る命令処理装置１０１が有する構成と、命令処理装置１０１が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係る命令処理装置１０１が有する構成を示すブロック図である。図２は、第１の実施形態に係る命令処理装置１０１における処理の流れを示すフローチャートである。
【００２７】
第１の実施形態に係る命令処理装置１０１は、選択部１０２と、変換部１０３とを有する。
【００２８】
情報処理装置１０４は、命令処理装置１０１と、メモリ５０１と、メモリ５０２と、インターコネクト５０３と、インターコネクト５０４と、インターコネクト５０５と、ハブ５０６と、ハブ５０７とを有する。情報処理装置１０４は、記憶装置５０８と情報を送受信することができる。
【００２９】
情報処理装置１０４が、たとえば、メモリ５０１と、記憶装置５０８との間において情報を送受信する場合に、該情報は、インターコネクト５０４、及び、ハブ５０６を経由する。または、該情報は、インターコネクト５０３、インターコネクト５０５、及び、ハブ５０７を経由する。
【００３０】
尚、図１に示す構成においては、説明の便宜上、命令処理装置１０１と、メモリ５０１とが通信接続可能であるとするが、情報処理装置１０４において、命令処理装置１０１は、複数であってもよい。この場合、命令処理装置は、それぞれ、１つのメモリ（メモリ５０１、または、メモリ５０２）と通信接続可能であってもよい。すなわち、情報処理装置１０４が有する構成は、上述した例に限定されない。
【００３１】
説明の便宜上、情報処理装置１０４は、２つのメモリと、３つのインターコネクトとを有するとしたが、さらに多くのメモリと、インターコネクトとを有してもよい。メモリ及びハブの間におけるインターコネクト、及び、複数のメモリ間におけるインターコネクトは、１つであるとは限らず、複数であってもよい。インターコネクト５０３は、メモリ５０１と、メモリ５０２とを通信接続するとしたが、上述した複数のＮＵＭＡノード間を通信接続してもよい。すなわち、ＮＵＭＡノード（不図示）は、ＣＰＵ（不図示）と、メモリ５０１とを有するとともに、インターコネクト５０３を介して通信接続する態様であってもよい。情報処理装置１０４は、記憶装置５０８を有する構成であってもよい。記憶装置５０８は、情報を記憶する機能を有していればよく、情報を処理する機能を有する装置（デバイス）であってもよい。すなわち、情報処理装置１０４が有する構成は、上述した例に限定されない。
【００３２】
情報処理装置１０４が、インターコネクト５０４を介して、メモリ５０１と、記憶装置５０８との間において入出力する例を用いながら、本実施形態に係る命令処理装置１０１について説明する。たとえば、情報処理装置１０４は、メモリ５０１と、記憶装置５０８との間において入出力するプログラムが発行する入出力命令に従い、その入出力命令に応じた処理を開始する。
【００３３】
図３に示すように、入出力命令は、マルチパスデバイス（後述）を識別する識別子と、メモリ（メモリ５０１、メモリ５０２、または、その両者）における記憶領域の先頭を指し示す論理アドレスと、該記憶領域の大きさ（サイズ）とが関連付けされた情報を含む。図３は、入出力命令に含まれる情報の一例を概念的に表す図である。たとえば、図３に例示する入出力命令は、デバイスｄｅｖ−Ｍと、論理アドレス１００００と、サイズ３０００とが関連付けされた情報を含む。この情報は、記憶装置５０８と、メモリ（メモリ５０１、メモリ５０２、または、その両者）内における記憶領域（すなわち、論理アドレス１００００を先頭アドレスとする、大きさが３０００である記憶領域）との間において、デバイスｄｅｖ−Ｍを介して情報を入出力することを表す。
【００３４】
また、上述した記憶領域は、図４に示すように、１つ以上のメモリ（メモリ５０１、メモリ５０２、または、その両者）を指し示す論理アドレスと、サイズとを用いて指定される。図４は、論理アドレスと、メモリにおける特定の領域を指し示す物理アドレスとが関連付けされたマップ情報の一例を概念的に表す図である。
【００３５】
たとえば、マップ情報において、論理アドレス１００００は、サイズ１０００と、物理アドレス１０００とに関連付けされている。これは、論理アドレス１００００乃至論理アドレス１０９９９は、たとえば、メモリ５０１における物理アドレス１０００乃至物理アドレス１９９９であることを表す。すなわち、論理アドレス１０００１における情報は、メモリ５０１における物理アドレス１００１における情報である。
【００３６】
同様に、たとえば、論理アドレス１１０００乃至論理アドレス１１９９９は、メモリ５０２における物理アドレス１１０００乃至物理アドレス１１９９９であることを表す。論理アドレス１２０００乃至論理アドレス１２９９９は、メモリ５０１における物理アドレス２０００乃至物理アドレス２９９９であることを表す。
【００３７】
次に、図５を参照しながら、入出力命令に含まれるマルチパスデバイスについて説明する。図５は、マルチパスデバイスが有する構成の一例を概念的に表す図である。
【００３８】
マルチパスデバイスは、複数のデバイスを表す。図５に示す例において、デバイスｄｅｖ−Ｍは、デバイスｄｅｖ−Ａと、デバイスｄｅｖ−Ｂとに関連付けされている。これは、デバイスｄｅｖ−Ｍがマルチパスデバイスであり、デバイスｄｅｖ−Ａと、デバイスｄｅｖ−Ｂとを含むことを表す。
【００３９】
入出力命令においてマルチパスデバイス（すなわち、デバイスｄｅｖ−Ｍ）が指定される場合、１つ以上のメモリ（メモリ５０１、メモリ５０２、または、その両者）における記憶領域と、記憶装置５０８との間における送受信は、デバイスｄｅｖ−Ａであっても、デバイスｄｅｖ−Ｂであっても、その両者であってもよい。
【００４０】
以降、説明の便宜上、経路は、メモリ（メモリ５０１、メモリ５０２、または、その両者）と記憶装置５０８との間において情報を送受信可能な通信路であるとする。すなわち、経路は、デバイス等の装置を含む。
【００４１】
まず、選択部１０２は、入出力命令に応じて、該入出力命令に含まれる論理アドレス等に関する情報と、マルチパスデバイスとを読み取る。次に、選択部１０２は、インターコネクト間の繋がりを表す接続情報と、マルチパスデバイスが表すデバイスとに基づいて、経路の中から、メモリ（メモリ５０１、メモリ５０２、または、その両者）と記憶装置５０８との間において情報を送受信する特定の経路を選択する（ステップＳ１０１）。
【００４２】
接続情報は、たとえば、グラフを用いて表してもよい。この場合、たとえば、節点は、メモリ５０２、ハブ５０７、記憶装置５０８等の装置を表し、枝は、インターコネクトを表す。２つの装置を通信接続可能なインターコネクトが存在する場合、該２つの装置を表す節点間を結ぶ枝は存在する。２つの装置を通信接続可能なインターコネクトが存在しない場合、該２つの装置を表す節点間を結ぶ枝は存在しない。また、インターコネクトにおける通信性能が相互に異なる場合には、枝に、通信性能を表す重みを付してもよい。また、インターコネクトにおける通信性能が均一な場合には、枝に、一様な重みを付してもよい。
【００４３】
選択部１０２は、グラフにおいて、読み取ったメモリを表す節点と、読み取った記憶装置５０８を表す節点とを結ぶ経路のうち、枝の重みの総和が最小である経路（以降、「最小経路」と表す。）を、特定の経路として選択する。
【００４４】
また、選択部１０２は、経路数が少ない場合に、径路に含まれる枝の重みの総和をそれぞれ算出し、該総和が最小である経路を、特定の経路として選択してもよい。
【００４５】
たとえば、選択部１０２は、枝の重みが一様な場合に、経路に含まれる枝数が最小である経路を選択する。すなわち、メモリと記憶装置５０８との間において通信接続する場合に、特定の経路は、インターコネクトの本数が少なくなる。
【００４６】
また、枝の重みが、インターコネクトに関するコスト（たとえば、通信性能等）を表す場合に、最小経路は、インターコネクトに関するコストが少ない経路である。すなわち、選択部１０２は、メモリと記憶装置５０８との間において通信接続するコストが少ない経路を選択する。
【００４７】
尚、グラフにおいて最小経路を探索する方法は、既に多くの方法が知られているため、ここでは、詳細な説明を省略する。
【００４８】
次に、変換部１０３は、入出力命令を、特定の経路に含まれるインターコネクトを経由するリクエストに変換する（ステップＳ１０２）。
【００４９】
この場合、変換部１０３は、マップ情報及び該特定の経路に基づき、入出力命令に含まれる論理アドレスを、該特定の経路に含まれるデバイス及び物理アドレスに変換する。
【００５０】
変換部１０３は、マップ情報において、該論理アドレスに関連付けされた物理アドレスを読み取る。次に、変換部１０３は、該デバイスと、該物理アドレスを含むメモリ（あるいは、該メモリを含むＮＵＭＡノード）とにリクエストを発行する。
【００５１】
この場合、変換部１０３は、リクエストリスト（不図示）に、発行したリクエストと、入出力命令とを格納してもよい。
【００５２】
リクエスト処理部（不図示）は、係るリクエストリストからリクエストを読み取り、該リクエストに応じた処理を行う。リクエスト処理部は、リクエストリストから、処理を完了したリクエストを削除する。
【００５３】
その後、入出力命令に関するリクエストの処理が完了した場合には、該入出力命令に関する処理を完了し、その後、該入出力命令を発行したプログラムに制御を戻す。
【００５４】
説明の便宜上、インターコネクトコストは、インターコネクトを経由して情報を送受信するのに要する時間を表すとする。また、サービスタイムコストは、処理が開始されていないリクエストを処理するのに要する時間を表すとする。
【００５５】
選択部１０２において、枝の重みは、図６に例示するようなインターコネクトコストと、図７に例示するようなサービスタイムコストとを合わせたコストであってもよい。図６は、インターコネクトコストの一例を表す図である。図７は、サービスタイムコストの一例を表す図である。
【００５６】
図６において、デバイスｄｅｖ−Ａが示す行は、デバイスｄｅｖ−Ａが通信接続可能なインターコネクトに関するインターコネクトコストを表す。デバイスｄｅｖ−Ｂが示す行は、デバイスｄｅｖ−Ｂが通信接続可能なインターコネクトに関するインターコネクトコストを表す。メモリ５０１が示す列は、メモリ５０１が通信接続可能なインターコネクトに関するインターコネクトコストを表す。メモリ５０２が示す列は、メモリ５０２が通信接続可能なインターコネクトに関するインターコネクトコストを表す。たとえば、図６を参照することにより、インターコネクトコストの本数は、デバイスｄｅｖ−Ａとメモリ５０１との間において１０であり、デバイスｄｅｖ−Ｂとメモリ５０１と間において４０であることがわかる。
【００５７】
図６と図７とは同様の構成を有する情報であるため、図７からサービスタイムコストを読み取ることができる。
【００５８】
この場合、選択部１０２は、最小経路を算出することにより、コストが少ない経路を選択する。
【００５９】
さらに、インターコネクトに優先度が割り当てられていてもよい。たとえば、最小経路が複数存在する場合に、選択部１０２は、最小経路のうち、経路に含まれるインターコネクトに関する優先度の総和が最大である経路を選ぶ。優先度は、外部等から割り当てることができる。このため、選択部１０２は、外部環境等に応じて、より的確に最小経路を選ぶことができる。したがって、本実施形態に係る命令処理装置１０１は、さらに、効率よく入出力命令を処理することができる。
【００６０】
尚、命令処理装置１０１は、仮想マシン環境において動作してもよい。この場合、情報処理装置１０４は、仮想マシン環境を制御するハイパーバイザ部（不図示）を有する。ハイパーバイザ部は、メモリ、命令処理装置１０１、インターコネクト、ハブ等が行う上述したような処理を、仮想マシン環境において仮想的に実現する。
【００６１】
次に、第１の実施形態に係る命令処理装置１０１に関する作用効果について説明する。
【００６２】
命令処理装置１０１によれば、インターコネクトに係る入出力命令を効率よく処理することができる。
【００６３】
この理由は、情報処理装置１０４におけるインターコネクトの経路に基づき、命令処理装置１０１が、入出力命令を高速に処理することが可能な経路を選択するためである。
【００６４】
たとえば、枝の重みが、インターコネクトの本数である場合に、命令処理装置１０１は、インターコネクトの本数が少ない経路を選択する。インターコネクトの本数が少ない経路ほど、処理時間が短くなるため、命令処理装置１０１は、入出力命令を高速に処理することが可能である。
【００６５】
たとえば、経路の接続情報が、グラフ（すなわち、節点と枝）を用いて表されるとする。枝の重みが、該インターコネクトを介して通信接続する場合におけるコストである場合に、命令処理装置１０１は、該コストが少ないインターコネクトを選択する。コストが少ない経路ほど、処理時間が短くなるため、命令処理装置１０１は、入出力命令を高速に処理することが可能である。
【００６６】
一方、特許文献１及び特許文献２に開示された装置は、上述したように、インターコネクトに係る入出力命令を対象としていない。このため、該装置は、インターコネクトに係る入出力命令を高速に処理することができない。
【００６７】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００６８】
以下の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６９】
図８と図９とを参照しながら、第２の実施形態に係る命令処理装置２０２が有する構成と、命令処理装置２０２が行う処理とについて説明する。図８は、本発明の第２の実施形態に係る命令処理装置２０２が有する構成を示すブロック図である。図９は、第２の実施形態に係る命令処理装置２０２における処理の流れを示すフローチャートである。
【００７０】
第２の実施形態に係る命令処理装置２０２は、選択部１０２と、変換部１０３と、情報作成部２０３とを有する。
【００７１】
まず、情報作成部２０３は、情報処理装置２０１が起動されるのに応じて、接続情報を作成する（ステップＳ２０１）。
【００７２】
情報作成部２０３が接続情報を作成する場合の処理について説明する。
【００７３】
情報処理装置２０１におけるデバイス管理部（不図示）は、情報処理装置２０１が起動されるのに応じて、ハブ等の装置に、デバイスを割り当てる。たとえば、デバイス管理部は、ハブ５０６にデバイスｄｅｖ−Ａを割り当て、ハブ５０７にデバイスｄｅｖ−Ｂを割り当てる。
【００７４】
次に、メモリ管理部（不図示）は、メモリ５０１、及び、メモリ５０２に物理アドレスを割り当てる。図１２に示すようにＮＵＭＡノード（すなわち、ＮＵＭＡ５１１、または、ＮＵＭＡ５１２）がメモリを有する場合に、メモリ管理部（不図示）は、図１０に示すように、ＮＵＭＡノードに物理アドレスを割り当てることにより、アドレス情報を作成してもよい。図１２は、情報処理装置５１３が有する構成を表すブロック図である。図１０は、アドレス情報の一例を概念的に表す図である。
【００７５】
情報処理装置５１３は、命令処理装置１０１と、ＮＵＭＡ５１１と、ＮＵＭＡ５１２とを有する。ＮＵＭＡ５１１は、ＣＰＵ５０９と、メモリ５０１とを有する。ＮＵＭＡ５１２は、ＣＰＵ５１０と、メモリ５０２とを有する。
【００７６】
図１０に示すように、たとえば、メモリ管理部は、メモリ５０１（あるいは、ＮＵＭＡ５１１）に、物理アドレス０を割り当て、メモリ５０２（あるいは、ＮＵＭＡ５１２）に、物理アドレス１００００を割り当てる。
【００７７】
図１１に示すように、情報作成部２０３は、たとえば、メモリと、デバイスとの間におけるインターコネクトの本数を数え、その結果を接続情報とする。図１１は、接続情報の一例を概念的に表す図である。第１の実施形態においては、グラフを用いることにより接続情報を説明したが、本実施形態においては、グラフを表す１つの態様としてテーブル形式を用いる。
【００７８】
図１１において、デバイスｄｅｖ−Ａが示す行は、デバイスｄｅｖ−Ａが通信接続可能なインターコネクトの本数を表す。デバイスｄｅｖ−Ｂが示す行は、デバイスｄｅｖ−Ｂが通信接続可能なインターコネクトの本数を表す。メモリ５０１が示す列は、メモリ５０１が通信接続可能なインターコネクトの本数を表す。メモリ５０２が示す列は、メモリ５０２が通信接続可能なインターコネクトの本数を表す。たとえば、図１１を参照することにより、インターコネクトの本数は、デバイスｄｅｖ−Ｂとメモリ５０１との間において２本であり、デバイスｄｅｖ−Ｂとメモリ５０２と間において１本であることがわかる。
【００７９】
マルチパス部（不図示）は、記憶装置５０８に通信接続可能な複数のデバイスを表すマルチパスデバイスを作成する。たとえば、マルチパス部は、デバイスｄｅｖ−Ａとデバイスｄｅｖ−Ｂと表すデバイスｄｅｖ−Ｍ（すなわち、マルチパスデバイス）を作成する。
【００８０】
次に、選択部１０２は、入出力命令に応じて、経路の中から特定の経路を選択する（ステップＳ１０１）。
【００８１】
たとえば、入出力命令は、情報を転送するプログラム等により開始される。たとえば、該プログラムにかかる処理が開始されるのに応じて、図８に例示するアドレス情報に従い、物理アドレスに関する論理アドレス（図４）が決められる。
【００８２】
次に、第２の実施形態に係る命令処理装置２０２に関する作用効果について説明する。
【００８３】
本実施形態に係る命令処理装置２０２によれば、情報処理装置２０１を起動した直後における入出力命令であっても、該入出力命令を効率よく処理することができる。
【００８４】
この理由は、理由１及び理由２である。すなわち、
（理由１）第２の実施形態に係る命令処理装置２０２が有する構成は、第１の実施形態に係る命令処理装置２０２が有する構成を含むためである、
（理由２）情報処理装置２０１が起動されるのに応じて、情報作成手段が接続情報を作成するためである。
【００８５】
命令処理装置２０２は、該接続情報に基づき、入出力命令に応じて特定の経路を選択する。接続情報が情報処理装置に含まれる構成を表すため、命令処理装置２０２は、情報処理装置が有する構成に基づき、特定の経路を選択する。情報処理装置２０１が起動されるのに応じて接続情報が算出されるため、命令処理装置２０２は、起動直後における入出力命令であっても効率よく処理することができる。
【００８６】
（ハードウェア構成例）
上述した本発明の各実施形態における命令処理装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係る命令処理装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係る命令処理装置は、専用の装置として実現してもよい。
【００８７】
図１３は、第１の実施形態及び第２の実施形態に係る命令処理装置を実現可能な計算処理装置のハードウェア構成を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、入力装置２５、出力装置２６、および、通信インターフェース（以降、「通信ＩＦ」と表す。）２７を有する。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【００８８】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ。登録商標）、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等である。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【００８９】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を表示する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図８、あるいは、図１２に示した各部が表す機能（処理）に対応するところのメモリ２２にある命令処理プログラム（図２、あるいは、図９）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【００９０】
すなわち、このような場合、本発明は、係る命令処理プログラムによっても成し得ると捉えることができる。更に、係る命令処理プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【符号の説明】
【００９１】
１０１    命令処理装置
１０２    選択部
１０３    変換部
１０４    情報処理装置
５０１    メモリ
５０２    メモリ
５０３    インターコネクト
５０４    インターコネクト
５０５    インターコネクト
５０６    ハブ
５０７    ハブ
５０８    記憶装置
２０１    情報処理装置
２０２    命令処理装置
２０３    情報作成部
５０９    ＣＰＵ
５１０    ＣＰＵ
５１１    ＮＵＭＡ
５１２    ＮＵＭＡ
５１３    情報処理装置
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
【図１】
2015156158.tif 000003
【図２】
2015156158.tif 000004
【図３】
2015156158.tif 000005
【図４】
2015156158.tif 000006
【図５】
2015156158.tif 000007
【図６】
2015156158.tif 000008
【図７】
2015156158.tif 000009
【図８】
2015156158.tif 000010
【図９】
2015156158.tif 000011
【図１０】
2015156158.tif 000012
【図１１】
2015156158.tif 000013
【図１２】
2015156158.tif 000014
【図１３】
2015156158.tif 000015