(57)【要約】      （修正有）【課題】アドレス変換を高速化するアドレス変換装置を提供する。【解決手段】記憶装置の単一のページのみにアクセスする命令に含まれる論理アドレスを出力し、それへの応答として受信する物理アドレスで書き換えたその命令を出力する命令制御手段１１０と、その論理アドレスをその物理アドレスに変換してその命令制御手段へ出力し、その命令制御手段からその物理アドレスで書き換えられた命令を受信した場合、その書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段１２０と、を含む。【選択図】図１
2015049829.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置の単一のページのみにアクセスする命令を受信した場合、前記命令に含まれる論理アドレスを出力し、前記命令に含まれる前記論理アドレスを前記出力した論理アドレスへの応答として受信する物理アドレスで書き換えた前記命令を出力する命令制御手段と、
前記命令制御手段から出力される前記論理アドレスを前記物理アドレスに変換して前記命令制御手段へ出力し、前記命令制御手段から前記物理アドレスで書き換えられた命令を受信した場合、前記書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段と、を含む
アドレス変換装置。
【請求項２】
前記命令制御手段は、
命令を実行するためのパラメータを外部から取得し、前記パラメータに基づいて前記命令を組み立て、前記組み立てられた命令を記憶手段に保持させる命令受信手段と、
前記保持された命令を前記アドレス制御手段に出力する命令発行手段と、
前記組み立てられた命令が単一のページにのみアクセスする命令である場合、かつ、前記アドレス制御手段が先行する命令を処理中であるために前記命令発行手段が待ち状態である場合、前記組み立てられた命令に含まれる論理アドレスを前記アドレス制御手段に出力するアドレス変換先行判定手段と、を含み、
前記命令受信手段は、前記アドレス制御手段から前記物理アドレスを受信し、前記保持された命令に含まれる論理アドレスを、前記受信した物理アドレスで上書きする
ことを特徴とする請求項１記載のアドレス変換装置。
【請求項３】
前記アドレス制御手段は、
前記命令制御手段が出力する論理アドレスを保持する論理アドレスレジスタと、
前記論理アドレスが変換された前記物理アドレスを保持する物理アドレスレジスタと、を少なくとも含み、
前記命令制御手段が出力する論理アドレスを前記論理アドレスレジスタに保持し、前記保持した論理アドレスを前記物理アドレスに変換して前記物理アドレスレジスタに保持し、前記物理アドレスレジスタに保持された前記物理アドレスを前記命令制御手段に出力する
ことを特徴とする請求項１又は２記載の装置。
【請求項４】
記憶装置の単一のページのみにアクセスする命令を受信した場合、前記命令に含まれる論理アドレスを出力し、前記命令に含まれる前記論理アドレスを前記出力した論理アドレスへの応答として受信する物理アドレスで書き換えた前記命令を出力する命令制御手段と、
前記命令制御手段から出力される前記論理アドレスを前記物理アドレスに変換して前記命令制御手段へ出力し、前記命令制御手段から前記物理アドレスで書き換えられた命令を受信した場合、前記書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段と、を含む
情報処理装置。
【請求項５】
所定のサイズのページに分割され、ページベースとページ内アドレスとから成る物理アドレスに基づいてアクセスされる記憶装置と、
前記記憶装置の単一のページのみにアクセスする命令を受信した場合、前記命令に含まれる論理アドレスを出力し、前記命令に含まれる前記論理アドレスを前記出力した論理アドレスへの応答として受信する前記物理アドレスで書き換えた前記命令を出力する命令制御手段と、
前記命令制御手段から出力される前記論理アドレスを前記物理アドレスに変換して前記命令制御手段へ出力し、前記命令制御手段から前記物理アドレスで書き換えられた命令を受信した場合、前記書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段と、を含む
情報処理システム。
【請求項６】
情報処理装置が、
受信した命令が、記憶装置の単一のページのみにアクセスする命令であるか否かを判定し、
前記受信した命令が記憶装置の単一のページのみにアクセスする命令である場合、かつ先行する命令を実行中であるために前記受信した命令の実行を待つ場合に、前記受信した命令に含まれる論理アドレスを物理アドレスに変換し、
前記受信した命令の実行において、論理アドレス−物理アドレス変換を実行することなく、前記受信した命令を実行する
アドレス変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置をアクセスするためのアドレス変換の技術に関する。
【背景技術】
【０００２】
記憶装置のアクセスにおいて、アドレス変換を高速化するための様々な関連技術が知られている。
【０００３】
例えば、特許文献１は、高速アドレス変換方式の一例を開示する。特許文献１に記載の高速アドレス変換方式は、論理アドレスを実アドレスに変換する場合に、一度読み出したページテーブルベースアドレスを再使用して後続の論理ページアドレスに対応するページテーブルを先読みする。こうすることにより、その高速アドレス変換方式は、その後続のアドレス変換を高速に行う。
【０００４】
特許文献２は、並列コンピュータシステムの一例を開示する。特許文献２に記載の並列コンピュータシステムは、ネットワークにより接続された複数のノードから構成され、アドレス変換を行いながら、そのネットワークを介してそれらのノード間でデータを転送するコンピュータシステムである。
【０００５】
その各ノードにおいて、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）キャッシュ内の全てのエントリは、上書きを優先してもよいかどうかを示すオーバーライトフィールドを含む。
【０００６】
また、局所メモリにあるアドレス変換テーブルのページエントリをそのＴＬＢキャッシュに登録するときに、そのオーバーライトフィールドが有効であるページエントリがあれば、そのページエントリに上書きする手段を有する。
【０００７】
さらに、そのページエントリをそのＴＬＢキャッシュに登録後、そのページエントリがデータの最初のページエントリであるか途中のページエントリであるか、あるいは最後のページエントリであるかを判別する手段を有する。そして、そのページエントリがデータの途中のページエントリであるときはオーバーライトフィールドを有効にし、そのページエントリがデータの最初か最後のエントリであればオーバーライトフィールドを無効にする手段を有する。
【０００８】
上述のように、そのオーバーライトフィールドを設けることで、直ちに再利用される可能性が低い、そのページエントリから先に、後続のデータのページエントリによって上書きされる。換言すると、再利用される可能性が高い、そのページエントリを優先してＴＬＢキャッシュ内に残すことができる。したがって、複数ページにまたがる長いデータを多数転送するシステムにおいて、上述の技術は、ＴＬＢキャッシュによるアドレス変換の高速化に有効である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−７３４２４号公報
【特許文献２】特開２００２−２５９２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した先行技術文献に記載された技術は、アドレス変換の高速化が不十分であるという問題点がある。
【００１１】
例えば、複数の処理ノードがネットワークを介してデータ転送を実行する場合、各ノードは、以下のように動作する。尚、各ノードは、演算処理装置と主記憶装置とを備え、演算処理装置はコアとノード間通信制御部とを備える。そのコアは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、主記憶装置に記憶されたプログラムを実行することで、以下の各処理を行う。
【００１２】
データ転送命令を実行するノード（以下、命令発行ノードと呼ぶ）のコアは、データ転送命令の開始時、そのデータ転送命令を実行するための情報（以下パラメータ）をその主記憶装置の特定エリアに書き込む。次に、そのコアは、そのパラメータへのポインタをそのノード間通信制御部に通知する。
【００１３】
そのノード間通信制御部は、そのポインタを使用して、その主記憶装置からそのパラメータを読み出し、そのデータ転送命令を組み立てる。次に、そのノード間通信制御部は、そのデータ転送命令に基づいて、その主記憶装置からデータを読み出す。続けて、そのノード間通信制御部は、その読み出したデータを、そのネットワークを経由して他のノード（以下、通信先ノードと呼ぶ）に転送する。
【００１４】
その通信先ノードは、その転送されたデータの処理が終了すると、そのネットワークを経由して、その命令発行ノードへリプライを送信する。
【００１５】
その命令発行ノードのノード間通信制御部は、そのリプライを受け取り、そのデータ転送命令が正常終了したことを示すために、そのパラメータの終了ステータスエリアに終了報告を書き込む。そのコアはその終了ステータスエリアを監視することによって、そのデータ転送命令の終了を判断する。
【００１６】
上述のデータ転送命令の実行処理において、そのノード間通信制御部は、その主記憶装置からそのパラメータを読み出してそのデータ転送命令を組み立てる。次に、そのノード間通信制御部は、そのノード間通信制御部内のアドレス変換部に、そのデータ転送命令を送信する。
【００１７】
例えば、命令発行ノードから送信先ノードへのデータ転送は、２５６バイトに分割した単位（以下ブロック）で行われる。アドレス変換部は、そのデータ転送命令の分解処理を実行する。ここで、その分解処理は、そのパラメータに含まれる転送開始主記憶アドレスをアダー（加算器）に入力し、ブロック毎のアドレスを生成する処理である。その分解処理に要する時間は、そのデータ転送命令の実行において、無視できない時間である。そして、その分解処理の間、後続のデータ転送命令はそのノード間通信制御部内で待たされる。
【００１８】
即ち、データ転送命令におけるアドレス変換の高速化が不十分であるという問題点がある。
【００１９】
その理由は、特許文献１に記載の高速アドレス変換方式及び特許文献２に記載の並列コンピュータシステムのいずれも、上記の分解処理の間の待ち時間については、全く考慮していないからである。
【００２０】
本発明の目的は、上述した問題点を解決できるアドレス変換装置、情報処理装置及びアドレス変換方法を提供することにある。
【課題を解決するための手段】
【００２１】
本発明のアドレス変換装置は、記憶装置の単一のページのみにアクセスする命令を受信した場合、前記命令に含まれる論理アドレスを出力し、前記命令に含まれる前記論理アドレスを前記出力した論理アドレスへの応答として受信する物理アドレスで書き換えた前記命令を出力する命令制御手段と、前記命令制御手段から出力される前記論理アドレスを前記物理アドレスに変換して前記命令制御手段へ出力し、前記命令制御手段から前記物理アドレスで書き換えられた命令を受信した場合、前記書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段と、を含む。
【００２２】
本発明の情報処理装置は、記憶装置の単一のページのみにアクセスする命令を受信した場合、前記命令に含まれる論理アドレスを出力し、前記命令に含まれる前記論理アドレスを前記出力した論理アドレスへの応答として受信する物理アドレスで書き換えた前記命令を出力する命令制御手段と、前記命令制御手段から出力される前記論理アドレスを前記物理アドレスに変換して前記命令制御手段へ出力し、前記命令制御手段から前記物理アドレスで書き換えられた命令を受信した場合、前記書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段と、を含む。
【００２３】
本発明の情報処理システムは、所定のサイズのページに分割され、ページベースとページ内アドレスとから成る物理アドレスに基づいてアクセスされる記憶装置と、前記記憶装置の単一のページのみにアクセスする命令を受信した場合、前記命令に含まれる論理アドレスを出力し、前記命令に含まれる前記論理アドレスを前記出力した論理アドレスへの応答として受信する前記物理アドレスで書き換えた前記命令を出力する命令制御手段と、前記命令制御手段から出力される前記論理アドレスを前記物理アドレスに変換して前記命令制御手段へ出力し、前記命令制御手段から前記物理アドレスで書き換えられた命令を受信した場合、前記書き換えられた命令についての論理アドレス−物理アドレス変換を実行しないアドレス制御手段と、を含む。
【００２４】
本発明のアドレス変換方法は、情報処理装置が、受信した命令が、記憶装置の単一のページのみにアクセスする命令であるか否かを判定し、前記受信した命令が記憶装置の単一のページのみにアクセスする命令である場合、かつ先行する命令を実行中であるために前記受信した命令の実行を待つ場合に、前記受信した命令に含まれる論理アドレスを物理アドレスに変換し、前記受信した命令の実行において、論理アドレス−物理アドレス変換を実行することなく、前記受信した命令を実行する。
【発明の効果】
【００２５】
本発明は、アドレス変換に要する時間を短縮して命令実行のＴＡＴ（ＴｕｒｎＡｒｏｕｎｄ  Ｔｉｍｅ、ターンアラウンド・タイム、応答所要時間）を短縮することが可能になるという効果がある。
【図面の簡単な説明】
【００２６】
【図１】図１は、第１の実施形態に係るアドレス変換装置の構成を示すブロック図である。
【図２】図２は、第１の実施形態に係るアドレス変換装置を含む情報処理システムの構成を示すブロック図である。
【図３】図３は、第１の実施形態におけるパラメータの一例を示す図である。
【図４】図４は、第１の実施形態における命令制御部を実現するコンピュータのハードウェア構成を示すブロック図である。
【図５】図５は、第１の実施形態における論理アドレス−物理アドレス変換のイメージを示す図である。
【図６】図６は、第１の実施形態におけるアドレス変換装置の動作を示すタイムチャートである。
【図７】図７は、関連技術のアドレス変換装置の構成を示すブロック図である。
【図８】図８は、関連技術のアドレス変換装置の動作を示すタイムチャートである。
【発明を実施するための形態】
【００２７】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。
【００２８】
以下の説明において、複数の同一モジュールを区別して説明する必要がある場合、符号に続けて「＃識別番号」の形式でサフィックスを付加して表記する。例えば、ノード２１０というモジュールが２つあり、これを区別して説明する場合、ノード２１０＃１、ノード２１０＃２と表記する。複数の同一モジュールを区別しないで説明する場合（例えば、全てのノード２１０について説明する場合）、サフィックスを付加しないで単にノード２１０と表記する。
【００２９】
＜＜＜第１の実施形態＞＞＞
図１は、本発明の第１の実施形態に係るアドレス変換装置１００の構成を示すブロック図である。
【００３０】
図１に示すように、本実施形態に係るアドレス変換装置１００は、命令制御部１１０とアドレス制御部１２０とを含む。
【００３１】
＝＝＝命令制御部１１０＝＝＝
命令制御部１１０は、記憶装置の単一のページのみにアクセスする命令を受信し、かつ、アドレス制御部１２０に先行命令があるため発行待ち状態である場合に、その受信した命令に含まれる論理アドレスをアドレス制御部１２０に出力する。また、命令制御部１１０は、発行待ち状態が解除されると、変換後命令をアドレス制御部１２０に出力する。ここで、その変換後命令は、命令制御部１１０によって、その受信した命令に含まれる論理アドレスが、アドレス制御部１２０に対して出力したその論理アドレスに対してアドレス制御部１２０から返された物理アドレスで書き換えられた命令である。尚、命令制御部１１０の内部の構成については、後述する。
【００３２】
＝＝＝アドレス制御部１２０＝＝＝
アドレス制御部１２０は、命令制御部１１０から出力されたその論理アドレスを、その物理アドレスに変換し、命令制御部１１０に出力する。尚、アドレス制御部１２０は、命令制御部１１０からその変換後命令が入力された場合、その変換後命令に含まれるその物理アドレスを、論理アドレス−物理アドレス変換を実行された物理アドレスとして使用する。換言すると、アドレス制御部１２０は、命令制御部１１０からその変換後命令が入力された場合、その変換後命令に含まれるアドレス（物理アドレス）に対する論理アドレス−物理アドレス変換を実行しない。尚、アドレス制御部１２０の内部の構成及び論理アドレス−物理アドレス変換のイメージについては、後述する。
【００３３】
図２は、本実施形態に係るアドレス変換装置１００を含む情報処理システム１０１の構成を示すブロック図である。
【００３４】
図２に示すように、情報処理システム１０１は、スイッチ２００と複数のノード（情報処理装置とも呼ばれる）２１０とを含む。複数のノード２１０は、スイッチ２００を介して、互いに接続される。
【００３５】
＝＝＝スイッチ２００＝＝＝
スイッチ２００は、ノード間のネットワーク（不図示）の一部であり、ノード２１０同士を接続する。
【００３６】
＝＝＝ノード２１０＝＝＝
ノード２１０は、演算処理装置（情報処理装置とも呼ばれる）３００と主記憶装置４００を備える。ノード２１０は、一般的なコンピュータやサーバ、端末装置などであってよい。
【００３７】
＝＝＝演算処理装置３００＝＝＝
演算処理装置３００は、コア３５０とノード間通信制御部３６０を含む。ノード間通信制御部３６０は、アドレス変換装置１００を含む。
【００３８】
＝＝＝主記憶装置４００＝＝＝
主記憶装置４００は、例えば、所定のサイズのページに分割され、ページベースとページ内アドレスとから成る物理アドレスに基づいて、アクセスされる。主記憶装置４００は、少なくとも、パラメータ８７０、データ８８０及び終了ステータス８９０を記憶する。
【００３９】
尚、情報処理システム１０１は図２に示す構成に限定されるものではなく、ノード２１０、演算処理装置３００、主記憶装置４００の台数は、任意の台数であってよい。
【００４０】
次に、情報処理システム１０１におけるデータ転送の動作を踏まえて、アドレス変換装置１００について説明する。ここでは、一例として、命令発行元のノード２１０＃１から通信先のノード２１０＃２へデータ８８０を転送する非同期データ転送命令を実行する場合について説明する。
【００４１】
ノード２１０＃１のコア３５０は、その非同期データ転送命令の開始時、その非同期データ転送命令を実行するための情報（パラメータ８７０）を主記憶装置４００の特定エリアに書き込む。次に、コア３５０は、その特定エリアのアドレス（以下、ポインタと呼ぶ）をノード間通信制御部３６０に通知する。
【００４２】
図３は、パラメータ８７０の一例を示す図である。図３に示すように、パラメータ８７０は、例えば、コマンド、終了ステータス格納アドレス、転送長、命令発行ノード−主記憶転送開始アドレス、通信先ノード番号及び通信先ノード−主記憶転送開始アドレスを含む。
【００４３】
ここでは、コマンドは、非同期データ転送命令である。終了ステータス格納アドレスは、終了報告８９０が格納される、ノード２１０＃１の主記憶装置４００上のアドレスである。転送長は、その非同期データ転送命令で転送されるデータ８８０のサイズである。命令発行ノード−主記憶転送開始アドレスは、その非同期データ転送命令で転送されるデータ８８０が格納される、ノード２１０＃１の主記憶装置４００上のアドレスである。通信先ノード番号は、ノード２１０＃２を特定する番号である。通信先ノード−主記憶転送開始アドレスは、ノード２１０＃２の主記憶装置４００上のアドレスである。
【００４４】
ノード間通信制御部３６０のアドレス変換装置１００の命令制御部１１０は、そのポインタを使用して、主記憶装置４００からパラメータ８７０を読み出し、その非同期データ転送命令を組み立てる。次に、その組み立てた非同期データ転送命令をアドレス制御部１２０に出力する。
【００４５】
次に、アドレス変換装置１００のアドレス制御部１２０は、その組み立てられた非同期データ転送命令を受信すると、その非同期データ転送命令を分解し、ブロック（スイッチ２００を経由して転送するデータの塊、例えば、２５６バイトのデータ）単位の非同期データ転送命令を組み立てる。換言すると、アドレス変換装置１００は、ブロック単位で主記憶装置４００にアクセス可能なように、その非同期データ転送命令を分解する。
【００４６】
次に、ノード間通信制御部３６０は、そのブロック単位のデータ転送命令に基づいて、主記憶装置４００からデータ８８０を読み出す。続けて、ノード間通信制御部３６０は、その読み出したデータ８８０を、スイッチ２００を経由してノード２１０＃２に転送する。
【００４７】
ノード２１０＃２は、その転送されたデータ８８０の受信処理が終了すると、スイッチ２００を経由して、ノード２１０＃１へリプライを送信する。
【００４８】
ノード２１０＃１のノード間通信制御部３６０は、そのリプライを受け取り、その非同期データ転送命令が正常終了したことを示すために、主記憶装置４００の特定のエリア（パラメータ８７０の終了ステータス格納アドレスで指定されるエリア）に終了報告８９０を書き込む。コア３５０は、その特定のエリアに終了報告８９０が書き込まれたか否かを監視することによって、その非同期データ転送命令の終了を判断する。
【００４９】
ここで、ノード間通信制御部３６０は、アドレス制御部１２０が上述のブロック単位の非同期データ転送命令を組み立てる処理を実行中に、新たな非同期データ転送命令のポインタをコア３５０から通知される。
【００５０】
この場合、アドレス変換装置１００は、上述のブロック単位の非同期データ転送命令を組み立てる処理と並行して、以下の処理を行う。
【００５１】
アドレス変換装置１００の命令制御部１１０は、そのポインタを使用して、主記憶装置４００から新たな非同期データ転送命令のパラメータ８７０を読み出し、その新たな非同期データ転送命令を組み立てる。
【００５２】
次に、命令制御部１１０は、その新たな非同期データ転送命令が単一のページにのみにアクセスする命令か否かを判定する。
【００５３】
命令制御部１１０は、その新たな非同期データ転送命令が単一のページにのみにアクセスする命令ではない場合、先行する非同期データ転送命令が終了するのを待つ。
【００５４】
命令制御部１１０は、その新たな非同期データ転送命令が単一のページにのみにアクセスする命令である場合、新たな非同期データ転送命令に含まれる論理アドレスをアドレス制御部１２０に出力する。
【００５５】
次に、その新たな非同期データ転送命令に含まれる論理アドレスを受信したアドレス制御部１２０は、その受信した論理アドレスを物理アドレスに変換し、命令制御部１１０に出力する。
【００５６】
次に、その物理アドレスを受信した命令制御部１１０は、その新たな非同期データ転送命令に含まれる論理アドレスを、その受信した物理アドレスで書き換える。
【００５７】
アドレス変換装置１００は、上述のブロック単位の非同期データ転送命令を組み立てる処理と並行して、以上の処理を行う。
【００５８】
次に、命令制御部１１０は、その先行する非同期データ転送命令についての、ブロック単位の非同期データ転送命令を組み立てが終了するのを待つ。次に、命令制御部１１０は、その組み立てが終了すると、その受信した物理アドレスを含むその新たな非同期データ転送命令をアドレス制御部１２０に出力する。
【００５９】
次に、その物理アドレスで書き換えられたその新たな非同期データ転送命令を受信したアドレス制御部１２０は、論理アドレス−物理アドレス変換をスキップして、その受信した新たな非同期データ転送命令について、ブロック単位の非同期データ転送命令を組み立てる。
【００６０】
結果的に、この論理アドレス−物理アドレス変換をスキップした分だけ、処理時間が短縮される。
【００６１】
次に、アドレス変換装置１００の命令制御部１１０の内部の構成について説明する。
【００６２】
図１に示すように、命令制御部１１０は、アドレス変換先行判定部１１１、命令受信部１１２及び命令発行部１１３を含む。
【００６３】
尚、図１に示す命令制御部１１０の内部の構成は、一例である。また、命令制御部１１０の各構成要素は、ハードウェア単位の構成要素でも、コンピュータ装置の機能単位に分割した構成要素でもよい。ここでは、命令制御部１１０は、コンピュータ装置の機能単位に分割した構成要素として説明する。
【００６４】
＝＝＝命令受信部１１２＝＝＝
命令受信部１１２は、主記憶装置４００からパラメータ８７０を受信し（読み出し）、その受信したパラメータ８７０に基づいて非同期データ転送命令を組み立てる。
【００６５】
次に、命令受信部１１２は、その組み立てた非同期データ転送命令を図示しない記憶手段（例えば、図２に示す主記憶装置４００であってよい）に格納する。続けて、命令受信部１１２は、その非同期データ転送命令を格納したことを命令発行部１１３に通知する。同時に、命令受信部１１２は、アドレス変換先行処理要求として、その組み立てた非同期データ転送命令に含まれる「転送長」及び「命令発行ノード−主記憶転送開始アドレス」（論理アドレス）を、アドレス変換先行判定部１１１に出力する。
【００６６】
また、命令受信部１１２は、そのアドレス変換先行処理要求の結果として、アドレス制御部１２０から物理アドレスを受信すると、その格納した非同期データ転送命令に含まれる論理アドレスを、その受信した物理アドレスで上書きする。
【００６７】
＝＝＝命令発行部１１３＝＝＝
命令発行部１１３は、その格納したことの通知を受信すると、アドレス制御部１２０が先行する非同期データ転送命令を処理中か否かを判定する。例えば、命令発行部１１３は、アドレス制御部１２０が出力するビジー信号（不図示）に基づいて、その処理中か否かの判定を行う。
【００６８】
次に、命令発行部１１３は、その処理でない場合、その格納された非同期データ転送命令を、アドレス制御部１２０出力する。また、命令発行部１１３は、その処理中である場合は、待ち状態になり、そのビジー信号の判定を繰り返す。
【００６９】
＝＝＝アドレス変換先行判定部１１１＝＝＝
アドレス変換先行判定部１１１は、その「転送長」及び「命令発行ノード−主記憶転送開始アドレス」（論理アドレス）を受信すると、その「転送長」と「命令発行ノード−主記憶転送開始アドレス」とに基づいて、その命令受信部１１２が組み立てた非同期データ転送命令が単一のページにのみアクセスする命令であるか複数のページにアクセスする命令であるか否かを判定する。
【００７０】
次に、アドレス変換先行判定部１１１は、その非同期データ転送命令が単一のページにのみアクセスする命令である場合、かつ、アドレス制御部１２０が先行する非同期データ転送命令を処理中であるために命令発行部１１３が待ち状態である場合、その「命令発行ノード−主記憶転送開始アドレス」（論理アドレス）をアドレス制御部１２０に出力する。
【００７１】
図４は、本実施形態における命令制御部１１０を実現するコンピュータ７００のハードウェア構成の一例を示す図である。
【００７２】
図４に示すように、コンピュータ７００は、ＣＰＵ７０１、記憶部７０２を含む。更に、コンピュータ７００は、外部から供給される記録媒体（又は記憶媒体）７０７を含む。記録媒体７０７は、情報を非一時的に記憶する不揮発性記録媒体であってもよい。
【００７３】
ＣＰＵ７０１は、オペレーティングシステム（不図示）を動作させて、コンピュータ７００の、全体の動作を制御する。また、ＣＰＵ７０１は、例えば記録媒体７０７から、プログラムやデータを読み込み、読み込んだプログラムやデータを記憶部７０２に書き込む。ここで、そのプログラムは、例えば、上述の命令制御部１１０の動作をコンピュータ７００に実行させるプログラムである。
【００７４】
そして、ＣＰＵ７０１は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図１に示すアドレス変換先行判定部１１１、命令受信部１１２及び命令発行部１１３として各種の処理を実行する。
【００７５】
尚、ＣＰＵ７０１は、通信網（不図示）に接続されている外部コンピュータ（不図示）から、記憶部７０２にプログラムやデータをダウンロードするようにしてもよい。
【００７６】
記憶部７０２は、プログラムやデータ（例えば、パラメータ８７０や、データ８８０など）を記憶する。
【００７７】
以上説明したように、命令制御部１１０の機能単位のブロックは、図４に示すハードウェア構成のコンピュータ７００によって実現される。ただし、コンピュータ７００が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ７００は、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。
【００７８】
尚、上述のプログラムのコードを記録した記録媒体７０７が、コンピュータ７００に供給され、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを読み出して実行するようにしてもよい。或いは、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを、記憶部７０２に格納するようにしてもよい。すなわち、本実施形態は、コンピュータ７００（ＣＰＵ７０１）が実行するプログラム（ソフトウェア）を、一時的に又は非一時的に、記憶する記録媒体７０７の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。
【００７９】
尚、コンピュータ７００は、図２に示すノード２１０により実現されてもよい。即ち、コンピュータ７００のＣＰＵ７０１は、図２に示すコア３５０によって、記憶部７０２は、図２に示す主記憶装置４００によって実現されてもよい。
【００８０】
以上が、アドレス変換装置１００の命令制御部１１０の内部の構成についての説明である。
【００８１】
次に、アドレス変換装置１００のアドレス制御部１２０の内部の構成について説明する。
【００８２】
図１に示すように、アドレス制御部１２０は、命令保持レジスタ１２１、アダー１２２、分解後論理アドレス命令レジスタ（論理アドレスレジスタとも呼ばれる）１２３、ディレクトリ１２４、ディレクトリ索引部１２５、アドレス変換バッファ１２６、分解後物理アドレス命令レジスタ１２７（物理アドレスレジスタとも呼ばれる）を含む。
【００８３】
図５は、論理アドレス−物理アドレス変換のイメージを示す図である。図５に示すように、論理アドレス８２０は、上位から部分空間番号８２３、ページ８２４及びページ内アドレス８２５で構成される。物理アドレス８２１は、ページベース８２６とページ内アドレス８２５で構成される。
【００８４】
ここで、図５に示す論理アドレス８２０は、例えば、図１に示す分解後論理アドレス命令レジスタ１２３に保持されるアドレスである。また、図５に示す物理アドレス８２１は、図１に示す分解後物理アドレス命令レジスタ１２７に保持される命令である。
【００８５】
論理アドレス−物理アドレス変換は、ディレクトリ索引部１２５が、部分空間番号８２３とディレクトリ１２４とページ８２４とに基づいて、アドレス変換バッファ１２６を索引し、ページベース８２６を得る処理である。
【００８６】
アドレス制御部１２０は、命令制御部１１０の命令発行部１１３から命令（例えば、非同期データ転送命令）を受信し、命令保持レジスタ１２１にその受信した命令を保持する。
【００８７】
次に、アドレス制御部１２０は、アダー１２２によりその命令を分解して複数のブロック毎の命令を生成し、分解後論理アドレス命令レジスタ１２３に送る。
【００８８】
次に、アドレス制御部１２０は、その受信した命令に含まれるアドレスが論理アドレス８２０である場合、部分空間番号８２３とディレクトリ１２４との比較結果、及びページ８２４に基づいてアドレス変換バッファ１２６を索引し、ページベース８２６を得る。
【００８９】
次に、アドレス制御部１２０は、分解後物理アドレス命令レジスタ１２７にページベース８２６とページ内アドレス８２５を送り、物理アドレス８２１を生成する。
【００９０】
また、アドレス制御部１２０は、その受信した命令に含まれるアドレスが物理アドレス８２１である場合、論理アドレス−物理アドレス変換を実行しない。具体的には、アドレス制御部１２０は、アドレス変換バッファ１２６をバイパスし、分解後論理アドレス命令レジスタ１２３に保持されているアドレス（物理アドレス８２１）を分解後物理アドレス命令レジスタ１２７に送る。
【００９１】
尚、ノード間通信制御部３６０は、分解後物理アドレス命令レジスタ１２７に保持される命令に基づいて、主記憶装置４００にアクセスをする。
【００９２】
また、アドレス制御部１２０は、命令制御部１１０のアドレス変換先行判定部１１１から論理アドレス８２０を受信し、分解後論理アドレス命令レジスタ１２３に、その受信した論理アドレス８２０を保持する。
【００９３】
次に、アドレス制御部１２０は、先行する命令がアドレス変換バッファ１２６を使わない時間に、その受信した論理アドレス８２０の部分空間番号８２３とディレクトリ１２４との比較結果、及びその受信した論理アドレス８２０のページ８２４に基づいてアドレス変換バッファ１２６を索引し、その受信した論理アドレスに対応するページベース８２６を得る。
【００９４】
これにページ内アドレス８２５を合わせることで物理アドレス８２１を生成、これを命令制御部１１０に戻す。
【００９５】
次に、アドレス制御部１２０は、分解後物理アドレス命令レジスタ１２７にその受信した論理アドレス８２０に対応するページベース８２６とその受信した論理アドレス８２０のページ内アドレス８２５とを送り、その受信した論理アドレス８２０に対応する物理アドレス８２１を生成する。
【００９６】
次に、アドレス制御部１２０は、その受信した論理アドレス８２０に対応する物理アドレス８２１を命令制御部１１０に出力する。
【００９７】
命令保持レジスタ１２１は、命令制御部１１０から受信した命令を保持する。
【００９８】
以上が、アドレス変換装置１００のアドレス制御部１２０の内部の構成についての説明である。
【００９９】
以上説明したように、この論理アドレス−物理アドレス変換はページ毎に行われる。そのため、単一のページのみにアクセスする非同期データ転送命令においては、最初の１ブロックについてのみページベース８２６の生成処理を実行すればよい。
【０１００】
換言すると、単一のページのみにアクセスする非同期データ転送命令においては、全てのブロックのページベース８２６は同一である。そして、論理アドレス−物理アドレス変換前後で命令制御の情報量（命令に含まれる論理アドレスの情報量とその論理アドレス８２０に対応する物理アドレス８２１の情報量）は、同じである。
【０１０１】
従って、命令制御部１１０は、その格納した非同期データ転送命令に含まれる論理アドレス８２０を、その受信した物理アドレス８２１で上書きすることが可能となる。
【０１０２】
即ち、アドレス変換装置１００は、以下の構成により、命令実行における論理アドレス−物理アドレス変換処理の時間だけ、ＴＡＴを短縮する。
【０１０３】
第１に、命令制御部１１０は、単一のページのみにアクセスする新たな非同期データ転送命令を受信し、その新たな非同期データ転送命令がアドレス制御部１２０への出力待ちである間に、その新たな非同期データ転送命令に含まれる論理アドレス８２０をアドレス制御部１２０に送る。
【０１０４】
第２に、アドレス制御部１２０は、先行する非同期データ転送命令の処理にアドレス変換バッファ１２６を使用していない時間を利用し、その新たな非同期データ転送命令に含まれる論理アドレス８２０を物理アドレスに変換し、命令制御部１１０に返す。
【０１０５】
第３に、命令制御部１１０は、その新たな非同期データ転送命令の論理アドレス８２０を、その物理アドレス８２１に書き換える。そして、アドレス制御部１２０は、その物理アドレス８２１に書き換えられたその新たな非同期データ転送命令を受信した場合、論理アドレス−物理アドレス変換処理をバイパスすることができる。
【０１０６】
図６は、アドレス変換装置１００の動作を示すタイムチャートである。
【０１０７】
図６に示す「Ｆ］は、先行する非同期データ転送命令又はその先行する非同期データ転送命令に対応する論理アドレス８２０及び物理アドレス８２１を示す。「Ｆ１」〜「Ｆｎ（ｎは、０又は正の整数）」は分解された先行する非同期データ転送命令を、「Ｓ１」〜「Ｓｎ（ｎは、０又は正の整数）」は分解された新たな非同期データ転送命令を示す。
【０１０８】
また、図６に示す「１１２０」は、命令受信部１１２における非同期データ転送命令の保持状態を示す。「１１３０」は、命令発行部１１３が出力する非同期データ転送命令を示す。「１２３０」は、分解後論理アドレス命令レジスタ１２３における分解された非同期データ転送命令の保持状態を示す。「１２６０」は、アドレス変換バッファ１２６において論理アドレス-物理アドレス変換処理の対象となっている論理アドレス８２０を示す。「１２７０」は、分解後物理アドレス命令レジスタ１２７におけるブロック単位の非同期データ転送命令の保持状態を示す。
【０１０９】
先行する非同期データ転送命令が、命令受信部１１２から命令発行部１１３出力へされる（Ｓ６１１）。
【０１１０】
次に、命令発行部１１３から出力されたその先行する非同期データ転送命令は、命令保持レジスタ１２１に保持され、アダー１２２を用いて分解される（不図示）。
【０１１１】
次に、その分解された先行する非同期データ転送命令が、分解後論理アドレス命令レジスタ１２３に保持される（Ｓ６１２）。
【０１１２】
次に、その分解された先行する非同期データ転送命令に含まれる論理アドレス８２０が、アドレス変換バッファ１２６により、物理アドレス８２１に変換される（Ｓ６１３）。
【０１１３】
次に、その変換された物理アドレス８２１を含む、その分解された先行する非同期データ転送命令が、分解後物理アドレス命令レジスタ１２７に保持される（Ｓ６１４）。
【０１１４】
次に、命令受信部１１２からアドレス変換先行判定部１１１を経由して分解後論理アドレス命令レジスタ１２３に、新たな非同期データ転送命令に含まれる論理アドレス８２０が出力される（Ｓ６２１）。
【０１１５】
次に、その新たな非同期データ転送命令に含まれる論理アドレス８２０が、アドレス変換バッファ１２６により、物理アドレス８２１に変換される（Ｓ６２２）。
【０１１６】
次に、Ｓ６２２で変換された物理アドレス８２１が命令受信部１１２に出力される（Ｓ６２３）。
【０１１７】
次に、命令受信部１１２が、その新たな非同期データ転送命令に含まれる論理アドレス８２０を、そのＳ６２２で変換された物理アドレス８２１に書き換える（Ｓ６２４）。
【０１１８】
その新たな非同期データ転送命令が、命令受信部１１２から命令発行部１１３出力へされる（Ｓ６２５）。
【０１１９】
次に、命令発行部１１３から出力されたその新たな非同期データ転送命令は、命令保持レジスタ１２１に保持され、アダー１２２を用いて分解される（不図示）。
【０１２０】
次に、その分解された新たな非同期データ転送命令が、分解後論理アドレス命令レジスタ１２３に保持される（Ｓ６２６）。
【０１２１】
次に、分解後論理アドレス命令レジスタ１２３に保持された、その分解された新たな非同期データ転送命令が、分解後物理アドレス命令レジスタ１２７に保持される（Ｓ６２７）。この場合、アドレス変換バッファ１２６による論理アドレス−物理アドレス変換処理はバイパスされる。
【０１２２】
ここで、上述の図６に示すアドレス変換装置１００の動作と比較するために、本実施形態の特徴を含まないアドレス変換装置９００の動作について説明する。
【０１２３】
図７は、本実施形態の特徴を含まないアドレス変換装置９００の構成を示すブロック図である。命令制御部９１０及びアドレス制御部９２０のそれぞれは、命令制御部１１０及びアドレス制御部１２０に対応する。
【０１２４】
ただし、命令制御部９１０は、命令制御部１１０に比べて、受信した命令が記憶装置の単一のページのみにアクセスする命令であるか否かを考慮しない。また、アドレス制御部９２０は、アドレス制御部１２０に比べて、論理アドレス８２０を受信して物理アドレス８２１に変換し、出力する機能を持たない。
【０１２５】
図８は、図７に示すアドレス変換装置９００の動作を示すタイムチャートである。
【０１２６】
図８に示す「９１２０」は、命令受信部９１２における非同期データ転送命令の保持状態を示す。「９１３０」は、命令発行部９１３が出力する非同期データ転送命令を示す。「９２３０」は、分解後論理アドレス命令レジスタ９２３における分解された非同期データ転送命令の保持状態を示す。「９２６０」は、図７に示すアドレス変換バッファ１２６において論理アドレス-物理アドレス変換処理の対象となっている論理アドレス８２０を示す。「９２７０」は、分解後物理アドレス命令レジスタ９２７におけるブロック単位の非同期データ転送命令の保持状態を示す。
【０１２７】
図８のＳ６３１〜Ｓ６３４は、図６に示すＳ６１１〜Ｓ６１４と同等である。また、図８のＳ６４１〜Ｓ６４４は、図８に示すＳ６３１〜Ｓ６３４と同等である。
【０１２８】
図８に示す新たな非同期データ転送命令の処理は、図６に示す新たな非同期データ転送命令の処理に比べて、Ｓ６４３の処理時間「ｔｓ」が余分にかかっている。換言すると、図６に示すアドレス変換装置１００の動作は、図８に示すアドレス変換装置９００の動作に比べて、アドレス変換に要する時間を「ｔｓ」だけ短縮する。
【０１２９】
以上、本実施形態について、あるノード２１０が主記憶装置４００からデータ８８０を読み出し、他のノード２１０へ転送する場合の例を説明した。尚、あるノード２１０が他のノード２１０から受信したデータを主記憶装置４００に書き込む場合のアドレス変換についても、本実施形態を応用してよい。
【０１３０】
上述した本実施形態における第１の効果は、アドレス変換に要する時間を短縮して命令実行のＴＡＴを短縮することを可能にする点である。
【０１３１】
その理由は、以下のような構成を含むからである。即ち、第１に、命令制御部１１０が、記憶装置の単一のページのみにアクセスする命令の論理アドレス８２０を、アドレス制御部１２０によって変換された物理アドレス８２１に書き換えて出力する。第２に、アドレス制御部１２０が、その論理アドレス８２０を受け取った場合、その論理アドレス８２０を物理アドレス８２１に変換して命令制御部１１０に返し、物理アドレス８２１を含む命令を受け取った場合、論理アドレス−物理アドレス変換をバイパスする。
【０１３２】
上述した本実施形態における第２の効果は、命令制御部１１０が新たな命令の論理アドレス８２０が変換された物理アドレス８２１を保持するための、新たな手段を必要としない点である。
【０１３３】
その理由は、命令制御部１１０が記憶装置の単一のページのみにアクセスする命令を、先行して論理アドレス−物理アドレス変換を実行する対象とするようにしたから。
【０１３４】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されてよい。また、各構成要素は、１つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。
【０１３５】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【０１３６】
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【符号の説明】
【０１３７】
１００    アドレス変換装置
１０１    情報処理システム
１１０    命令制御部
１１１    アドレス変換先行判定部
１１２    命令受信部
１１３    命令発行部
１２０    アドレス制御部
１２１    命令保持レジスタ
１２２    アダー
１２３    分解後論理アドレス命令レジスタ
１２４    ディレクトリ
１２５    ディレクトリ索引部
１２６    アドレス変換バッファ
１２７    分解後物理アドレス命令レジスタ
２００    スイッチ
２１０    ノード
２１０    通信ノード
３００    演算処理装置
３５０    コア
３６０    ノード間通信制御部
４００    主記憶装置
７００    コンピュータ
７０１    ＣＰＵ
７０２    記憶部
７０７    記録媒体
８２０    論理アドレス
８２１    物理アドレス
８２３    部分空間番号
８２４    ページ
８２５    ページ内アドレス
８２６    ページベース
８７０    パラメータ
８８０    データ
８９０    終了報告
９００    アドレス変換装置
９１０    命令制御部
９１２    命令受信部
９１３    命令発行部
９２０    アドレス制御部
９２３    分解後論理アドレス命令レジスタ
９２７    分解後物理アドレス命令レジスタ
【図１】
2015049829.tif 000003
【図２】
2015049829.tif 000004
【図３】
2015049829.tif 000005
【図４】
2015049829.tif 000006
【図５】
2015049829.tif 000007
【図６】
2015049829.tif 000008
【図７】
2015049829.tif 000009
【図８】
2015049829.tif 000010