(57)【要約】【課題】キャッシュミスを減少して処理速度を向上することを課題とする。【解決手段】このアドレス変換装置１０は、処理装置２０のＣＰＵ２１からアドレス変換要求を受信した場合には、アドレス変換装置１０のマイクロコントローラがレシーブバッファ領域に対するものであるか否かを判定する。アドレス変換装置１０は、アドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には、ＲＢ専用ＴＬＢ１３ａに記憶されたアドレス情報を用いてアドレス変換を行い、一方、アドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂおよび／またはページテーブル２２ａに記憶されたアドレス情報を用いてアドレス変換を行う。【選択図】        図１
2007233615.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報を記憶するページテーブルを用いてアドレス変換要求に対するアドレス変換を行うアドレス変換装置であって、
前記ページテーブルに記憶されたアドレス情報のうち、主記憶部における通信データの受け渡しに用いられるレシーブバッファ領域に対応するアドレス情報を前記ページテーブルから抽出して記憶する第一のアドレス変換テーブルと、
前記ページテーブルに記憶されたアドレス情報のうち、主記憶部における前記レシーブバッファ領域以外の領域に対応するアドレス情報を前記ページテーブルから抽出して記憶する第二のアドレス変換テーブルと、
前記アドレス変換要求が前記レシーブバッファ領域に対するものであるか否かを判定するアドレス変換要求判定手段と、
前記アドレス変換要求判定手段によって前記アドレス変換要求が前記レシーブバッファ領域に対するものであると判定された場合には、前記第一のアドレス変換テーブルおよび／または前記ページテーブルに記憶されたアドレス情報を用いてアドレス変換を行い、前記アドレス変換要求判定手段によって前記アドレス変換要求が前記レシーブバッファ領域に対するものでないと判定された場合には、前記第二のアドレス変換テーブルおよび／または前記ページテーブルに記憶されたアドレス情報を用いてアドレス変換を行うアドレス変換手段と、
を備えたことを特徴とするアドレス変換装置。
【請求項２】
前記ページテーブルは、マルチレベルで構成されるものであって、
前記第二のアドレス変換テーブルは、前記マルチレベルごとに構成され、かつ、最終レベルほど多くのアドレス情報数で前記アドレス情報を記憶することを特徴とする請求項１に記載のアドレス変換装置。
【請求項３】
前記アドレス変換手段は、前記第二のアドレス変換テーブルではなく前記ページテーブルに記憶されたアドレス情報を用いてアドレス変換する場合には、当該アドレス変換に用いるアドレス情報とともに当該アドレス情報に連続して前記ページテーブルに記憶されているアドレス情報を当該ページテーブルから読み出し、前記第二のアドレス変換テーブルに改めて記憶することを特徴とする請求項１または２に記載のアドレス変換装置。
【請求項４】
前記アドレス変換手段は、データのストライト転送に際して、当該ストライド転送に係る情報に基づいて、次に受信するデータのアドレス変換に必要であると予測されるアドレス情報を前記ページテーブルから読み出し、前記第二のアドレス変換テーブルに改めて記憶することを特徴とする請求項１に記載のアドレス変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報を記憶するページテーブルを用いてアドレス変換要求に対するアドレス変換を行うアドレス変換装置に関する。
【背景技術】
【０００２】
近年、仮想記憶方式を採用した情報処理装置は、仮想アドレスと物理アドレスとが対応付けられたアドレス情報を主記憶媒体上に記憶するとともに、主記憶媒体上に記憶されたアドレス情報のうちの一部のアドレス情報をＴＬＢ（Translation Look-aside Buffer）に記憶する技術が実施されている（例えば、特許文献１参照）。このような情報処理装置では、変換要求を受け付けた仮想アドレスに対応するアドレス情報をＴＬＢが記憶している場合には、ＴＬＢが仮想アドレスを物理アドレスに変換する。一方、変換要求を受け付けた仮想アドレスに対応するアドレス情報をＴＬＢが記憶していない場合には、主記憶媒体にアクセスして仮想アドレスを物理アドレスに変換する。
【０００３】
なお、アドレス変換装置におけるＴＬＢ管理方式としては、フルセットアソシアティブ方式、ダイレクトマップ方式、Ｎウェイセットアソシアティブ方式などが採用されており、また、主記憶媒体上に記憶されたアドレス情報を保持するページテーブルがマルチレベル構造を採用している場合には、ＴＬＢも同様にマルチレベル構造が採用されている。
【０００４】
また、情報処理装置は、通信におけるデータの受け渡しにおいて、データの受け渡しに用いられるレシーブバッファ用の領域を主記憶媒体上に確保する。そして、データの受け渡しの際は、レシーブバッファ用の領域に記憶されたデータを読み込み、読み込まれたデータを主記憶媒体上の変換テーブルを用いてアドレスの変換を行う。
【０００５】
【特許文献１】特許第２５８６１６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、通信におけるデータの受け渡しにおいて、レシーブバッファ用の領域からデータを読み込むことになるが、上記の従来技術では、いずれのデータも一様に扱うので、レシーブバッファ用の変換テーブルが必ずしもＴＬＢに記憶されているとは限らず、ＴＬＢにレシーブバッファ用の変換テーブルが記憶されていない場合には、キャッシュミスとなり、データの受け渡しの度に読み込み速度の遅い主記憶媒体にアクセスしなければならないので、処理速度が遅くなるという課題がある。
【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、通信におけるデータの受け渡しにおいてキャッシュミスを減少して処理速度を向上することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報を記憶するページテーブルを用いてアドレス変換要求に対するアドレス変換を行うアドレス変換装置であって、前記ページテーブルに記憶されたアドレス情報のうち、主記憶部における通信データの受け渡しに用いられるレシーブバッファ領域に対応するアドレス情報を前記ページテーブルから抽出して記憶する第一のアドレス変換テーブルと、前記ページテーブルに記憶されたアドレス情報のうち、主記憶部における前記レシーブバッファ領域以外の領域に対応するアドレス情報を前記ページテーブルから抽出して記憶する第二のアドレス変換テーブルと、前記アドレス変換要求が前記レシーブバッファ領域に対するものであるか否かを判定するアドレス変換要求判定手段と、前記アドレス変換要求判定手段によって前記アドレス変換要求が前記レシーブバッファ領域に対するものであると判定された場合には、前記第一のアドレス変換テーブルおよび／または前記ページテーブルに記憶されたアドレス情報を用いてアドレス変換を行い、前記アドレス変換要求判定手段によって前記アドレス変換要求が前記レシーブバッファ領域に対するものでないと判定された場合には、前記第二のアドレス変換テーブルおよび／または前記ページテーブルに記憶されたアドレス情報を用いてアドレス変換を行うアドレス変換手段と、を備えたことを特徴とする。
【０００９】
また、請求項２に係る発明は、上記の発明において、前記ページテーブルは、マルチレベルで構成されるものであって、前記第二のアドレス変換テーブルは、前記マルチレベルごとに構成され、かつ、最終レベルほど多くのアドレス情報数で前記アドレス情報を記憶することを特徴とする。
【００１０】
また、請求項３に係る発明は、上記の発明において、前記アドレス変換手段は、前記第二のアドレス変換テーブルではなく前記ページテーブルに記憶されたアドレス情報を用いてアドレス変換する場合には、当該アドレス変換に用いるアドレス情報とともに当該アドレス情報に連続して前記ページテーブルに記憶されているアドレス情報を当該ページテーブルから読み出し、前記第二のアドレス変換テーブルに改めて記憶することを特徴とする。
【００１１】
また、請求項４に係る発明は、上記の発明において、前記アドレス変換手段は、データのストライト転送に際して、当該ストライド転送に係る情報に基づいて、次に受信するデータのアドレス変換に必要であると予測されるアドレス情報を前記ページテーブルから読み出し、前記第二のアドレス変換テーブルに改めて記憶することを特徴とする。
【発明の効果】
【００１２】
請求項１の発明によれば、ページテーブルに記憶されたアドレス情報のうち、主記憶部における通信データの受け渡しに用いられるレシーブバッファ領域に対応するアドレス情報をページテーブルから抽出して記憶する第一のアドレス変換テーブルと、ページテーブルに記憶されたアドレス情報のうち、主記憶部におけるレシーブバッファ領域以外の領域に対応するアドレス情報をページテーブルから抽出して記憶する第二のアドレス変換テーブルとを備え、アドレス変換要求がレシーブバッファ領域に対するものであるか否かを判定し、アドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には、第一のアドレス変換テーブルおよび／またはページテーブルに記憶されたアドレス情報を用いてアドレス変換を行い、アドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には、第二のアドレス変換テーブルおよび／またはページテーブルに記憶されたアドレス情報を用いてアドレス変換を行うので、使用頻度の高いレシーブバッファ領域とレシーブバッファ領域以外の領域とを分けて管理し、アドレス変換要求がレシーブバッファ領域に対するものである場合には、第一のアドレス変換テーブルにアクセスしてレシーブバッファに記憶されたアドレス情報を用いてアドレス変換を行う結果、通信におけるデータの受け渡しにおいてキャッシュミスを減少して処理速度を向上することが可能となる。
【００１３】
また、請求項２の発明によれば、ページテーブルは、マルチレベルで構成されるものであって、第二のアドレス変換テーブルは、マルチレベルごとに構成され、かつ、最終レベルほど多くのアドレス情報数でアドレス情報を記憶するので、使用される頻度が高い最終レベルほどアドレス情報数が多い結果、キャッシュミスを減少して処理速度を向上することが可能となる。
【００１４】
また、請求項３の発明によれば、第二のアドレス変換テーブルではなくページテーブルに記憶されたアドレス情報を用いてアドレス変換する場合には、そのアドレス変換に用いるアドレス情報とともにそのアドレス情報に連続してページテーブルに記憶されているアドレス情報をそのページテーブルから読み出し、第二のアドレス変換テーブルに改めて記憶するので、例えば、連続するデータのアドレスの変換の際に、その都度主記憶部からアドレス情報を読み出す必要がなくなり、処理速度を向上することが可能となる。
【００１５】
また、請求項４の発明によれば、データのストライト転送に際して、そのストライド転送に係る情報に基づいて、次に受信するデータのアドレス変換に必要であると予測されるアドレス情報をページテーブルから読み出し、第二のアドレス変換テーブルに改めて記憶するので、予め必要なアドレス情報を第二のアドレス変換テーブルに記憶させておくため、主記憶部からアドレス情報を読み出す間の待ち時間を減少することができる結果、処理速度を向上することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、この発明に係るアドレス変換装置の実施例を詳細に説明する。
【実施例１】
【００１７】
以下の実施例では、実施例１で用いる主要な用語の説明、実施例１に係るアドレス変換装置の概要および特徴、アドレス変換装置の構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。
【００１８】
［用語の説明］
まず最初に、実施例１で用いる主要な用語を説明する。実施例１で用いる「ページテーブル」とは、仮想アドレスと物理アドレスとの間でアドレスを変換するために用いられるアドレス情報を記憶するテーブルのことであり、具体的には、図４に示すように、マルチレベル構造のページテーブルであって、レベル１〜レベル３の三階層に分けられて構成される。また、仮想アドレスも、図３に示すように、ページテーブルのレベル１〜レベル３に対応する情報で形成される。
【００１９】
具体的なページテーブルの構造について説明すると、ページテーブルにおけるレベル１の層では、レベル２の層に記憶されたアドレス情報の位置を特定するＬ１物理アドレス（例えば、図４のＰＡ（Ｌ１＿０））と、仮想アドレスのＬ１部分であるＬ１仮想アドレス（例えば、図４のＶＡ（Ｌ１））とが対応付けられたアドレス情報を記憶する。また、ページテーブルにおけるレベル２の層では、レベル３の層に記憶されたアドレス情報の位置を特定するＬ２物理アドレス（例えば、図４のＰＡ（Ｌ２））と、仮想アドレスのＬ２部分であるＬ２仮想アドレス（例えば、図４のＶＡ（Ｌ２））とが対応付けられたアドレス情報を記憶する。また、ページテーブルにおけるレベル３の層では、物理アドレス（例えば、図４のＰＡ）と、仮想アドレスのＬ３部分であるＬ３仮想アドレス（例えば、図４のＶＡ）とが対応付けられたアドレス情報を記憶する。
【００２０】
ここで、ページテーブルを用いて仮想アドレスから物理アドレスを読み出す処理を説明する。まず、仮想アドレスのＬ１部分であるＬ１仮想アドレス（例えば、図４のＶＡ（Ｌ１））に対応するＬ１物理アドレス（例えば、図４のＰＡ（Ｌ１＿０））をページテーブルにおけるレベル１の層から読み出し、その読み出されたＬ１物理アドレスおよび仮想アドレスのＬ２部分であるＬ２仮想アドレス（例えば、図４のＶＡ（Ｌ２＿０））に対応するＬ２物理アドレス（例えば、図４のＰＡ（Ｌ２＿０））をページテーブルにおけるレベル２の層から読み出し、次に、読み出されたＬ２物理アドレスおよび仮想アドレスのＬ３部分であるＬ３仮想アドレス（例えば、図４のＶＡ）に対応する物理アドレス（例えば、図４のＰＡ）を読み出す。
【００２１】
［実施例１に係るアドレス変換装置の概要および特徴］
まず最初に、図１を用いて、実施例１に係るアドレス変換装置の概要および特徴を説明する。図１は、実施例１に係るアドレス変換装置の概要および特徴を説明するための図である。
【００２２】
実施例１のアドレス変換装置１０では、仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報（変換テーブル）を記憶するページテーブルを用いてアドレス変換要求に対するアドレス変換を行うことを概要とする。そして、キャッシュミスを減少して処理速度を向上する点に主たる特徴がある。
【００２３】
この主たる特徴について具体的に説明すると、実施例１に係るアドレス変換装置１０は、図１に示すように、各種処理を行うＣＰＵ２１および主記憶部２２ａ備える処理装置２０とに接続されている。この主記憶部２２は、仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報を記憶するページテーブル２２ａを保持している。このページテーブルは、図４に示すように、マルチレベル構造のページテーブルであって、レベル１〜レベル３の三階層に分けられて構成されている。
【００２４】
そして、アドレス変換装置１０は、ＲＢ専用ＴＬＢ１３ａおよびＬｅｖｅｌ１〜３ＴＬＢ１３ｂを備える。かかるＲＢ専用ＴＬＢ１３ａは、ページテーブル２２ａに記憶されたアドレス情報のうち、主記憶部２２における通信データの受け渡しに用いられるレシーブバッファ領域に対応するアドレス情報をページテーブル２２ａから抽出して記憶する。また、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂは、図３に示すように、ページテーブル２２ａと同様に、マルチレベル構造のページテーブルであって、ページテーブル２２ａに記憶されたアドレス情報のうち、主記憶部２２におけるレシーブバッファ領域以外の領域に対応するアドレス情報をページテーブル２２ａから抽出して記憶する。
【００２５】
このアドレス変換装置１０は、処理装置２０のＣＰＵ２１からアドレス変換要求を受信した場合には（図１の（１）参照）、アドレス変換装置１０のマイクロコントローラがレシーブバッファ領域に対するものであるか否かを判定して（図１の（２）参照）、ＭＭＵに対してアドレス変換を要求する（図１の（３）参照）。そして、アドレス変換装置１０は、アドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には、ＲＢ専用ＴＬＢ１３ａに記憶されたアドレス情報を用いてアドレス変換を行う。一方、アドレス変換装置１０は、アドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂおよび／またはページテーブル２２ａに記憶されたアドレス情報を用いてアドレス変換を行う（図１の（４）参照）。その後、アドレス変換装置１０は、処理装置２０に対して変換されたアドレスを送信する（図１の（５）参照）。
【００２６】
このように、アドレス変換装置１０は、上記した主たる特徴のごとく、使用頻度の高いレシーブバッファ領域とレシーブバッファ領域以外の領域とを分けて管理し、アドレス変換要求がレシーブバッファ領域に対するものである場合には、ＲＢ専用ＴＬＢ１３ａにアクセスしてレシーブバッファに記憶されたアドレス情報を用いてアドレス変換を行う結果、上記した主たる特徴のごとく、キャッシュミスを減少して処理速度を向上することが可能となる。
【００２７】
［アドレス変換装置の構成］
次に、図２を用いて、図１に示したアドレス変換装置１０の構成を説明する。図２は、実施例１に係るアドレス変換装置１０の構成を示すブロック図である。同図に示すように、このアドレス変換装置１０は、処理装置２０と接続される。
【００２８】
かかる処理装置２０は、ＣＰＵ２１および主記憶部２２を備える。そして、主記憶部２２は、仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報を記憶するページテーブル２２ａを保持している。このページテーブル２２ａは、図４に示すように、マルチレベル構造であって、レベル１〜レベル３の三階層に分けられて構成されている。
【００２９】
具体的には、ページテーブル２２ａは、最終レベルであるレベル３の階層に仮想アドレスと物理アドレスとを対応付けたアドレス情報（例えば、図４に示す「ＰＡ０」）を記憶し、レベル２の階層にレベル３の階層に記憶されたアドレス情報の位置を特定するためのアドレス情報（例えば、図４に示す「ＰＡ（Ｌ２＿０）」）を記憶し、レベル１の階層にレベル２の階層に記憶されたアドレス情報の位置を特定するためのアドレス情報を記憶する（例えば、図４に示す「ＰＡ（Ｌ１＿０）」）。
【００３０】
また、図２に示すように、アドレス変換装置１０は、処理装置制御ＩＦ１１、制御部１２、記憶部１３を備えている。以下にこれらの各部の処理を説明する。
【００３１】
このうち、処理装置制御ＩＦ１１は、処理装置２０との間でやり取りする各種情報に関する通信を制御する手段であり、具体的には、処理装置２０との間でアドレス変換要求に関するデータを受信、変換されたアドレスに関するデータの送信を制御する。
【００３２】
記憶部１３は、制御部１２による各種処理に必要なデータおよびプログラムを格納する格納手段であり、特に本発明に密接に関連するものとしては、ＲＢ専用ＴＬＢ１３ａおよびＬｅｖｅｌ１〜３ＴＬＢ１３ｂを備える。なお、ＲＢ専用ＴＬＢ１３ａは、特許請求の範囲に記載の「第一のアドレス変換テーブル」に対応し、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂは、特許請求の範囲に記載の「第二のアドレス変換テーブル」に対応する。
【００３３】
このうち、ＲＢ専用ＴＬＢ１３ａは、ＲＢ用のアドレス情報を記憶する手段である。具体的には、ＲＢ専用ＴＬＢ１３ａは、ページテーブル２２ａに記憶されたアドレス情報のうち、主記憶部２２における通信データの受け渡しに用いられるレシーブバッファ領域に対応するアドレス情報をページテーブル２２ａから抽出して記憶する。なお、ＲＢ用のアドレス情報を記憶する領域は限定されたサイズであり、そのアドレス変換に必要となるＴＬＢは通常のアドレス変換に用いられるＴＬＢに対し、わずかなエントリ数でかまわない。また、ここでは、ＲＢ専用ＴＬＢ１３ａの管理方式としてダイレクトマップ方式を採用しているが、ダイレクトマップ方式以外でも、他にフルセットアソシアティブ方式やＮウェイセットアソシアティブ方式を採用してもよい。
【００３４】
Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂは、ページテーブル２２ａに記憶されたアドレス情報のうち、主記憶部２２におけるレシーブバッファ領域以外の領域に対応するアドレス情報をページテーブル２２ａから抽出して記憶する手段であり、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂは、図３に示すように、マルチレベルごとに構成され、かつ、最終レベルほど多くのエントリ数でアドレス情報を記憶している。
【００３５】
具体的には、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂは、最終レベルであるＬｅｖｅｌ３ＴＬＢに仮想アドレスと物理アドレスとを対応付けたアドレス情報（例えば、図３に示す「ＰＡ０」）を記憶し、Ｌｅｖｅｌ２ＴＬＢにページテーブル２２ａのレベル３の階層に記憶されたアドレス情報の位置を特定するためのアドレス情報（例えば、図４に示す「ＰＡ（Ｌ２＿０）」）を記憶し、Ｌｅｖｅｌ１ＴＬＢにページテーブル２２ａのレベル２の階層に記憶されたアドレス情報の位置を特定するためのアドレス情報を記憶する（例えば、図４に示す「ＰＡ（Ｌ１＿０）」）。
【００３６】
制御部１２は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、アドレス変換要求判定部１２ａ、アドレス変換部１２ｂ、変換アドレス送信部１２ｃを備える。なお、アドレス変換要求判定部１２ａは、特許請求の範囲に記載の「アドレス変換要求判定手段」に対応し、アドレス変換部１２ｂは、特許請求の範囲に記載の「アドレス変換手段」に対応する。
【００３７】
このうち、アドレス変換要求判定部１２ａは、アドレス変換要求がレシーブバッファ領域に対するものであるか否かを判定する手段であり、具体的には、処理装置２０のＣＰＵ２１からアドレス変換要求を受信した場合には、レシーブバッファ領域に対するものであるか否かを判定する。
【００３８】
アドレス変換部１２ｂは、アドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には、ＲＢ専用ＴＬＢ１３ａに記憶されたアドレス情報を用いてアドレス変換を行い、一方、アドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂおよび／またはページテーブル２２ａに記憶されたアドレス情報を用いてアドレス変換を行う。
【００３９】
具体的には、アドレス変換部１２ｂは、アドレス変換要求判定部１２ａによってアドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には、ＲＢ専用ＴＬＢ１３ａからアドレス変換要求があったアドレスに対応するアドレス情報を読み出し、読み出したアドレス情報を用いてアドレス変換を行う。
【００４０】
一方、アドレス変換部１２ｂは、アドレス変換要求判定部１２ａによってアドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂからアドレス変換要求があったアドレスに対応するアドレス情報を読み出し、読み出したアドレス情報を用いてアドレス変換を行う。
【００４１】
かかるアドレス変換について詳細に説明すると、アドレス変換部１２ｂは、ＴＬＢの最終段であるＬｅｖｅｌ３ＴＬＢに変換要求があった仮想アドレスに対応するアドレス情報が存在しているかを検索し、仮想アドレスに対応するアドレス情報が存在する場合には、Ｌｅｖｅｌ３ＴＬＢから対応するアドレス情報を読み出し、その読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する。
【００４２】
また、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ３ＴＬＢに存在しない場合には、Ｌｅｖｅｌ２ＴＬＢに仮想アドレスに対応するアドレス情報が存在しているかを検索する。そして、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ２ＴＬＢに存在する場合には、Ｌｅｖｅｌ２ＴＬＢからページテーブル２２ａのレベル３の階層に記憶されたアドレス情報の位置を特定するためのアドレス情報（例えば、図３に示す「ＰＡ（Ｌ２＿０）」）を読み出す。
【００４３】
そして、アドレス変換部１２ｂは、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている８個のアドレス情報をページテーブル２２ａのレベル３の階層から読み出し、その読み出されたアドレス情報をＬｅｖｅｌ３ＴＬＢに格納する。そして、アドレス変換部１２ｂは、その格納されたアドレス情報をＬｅｖｅｌ３ＴＬＢから読み出し、読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する。
【００４４】
一方、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ２ＴＬＢに存在しない場合には、Ｌｅｖｅｌ１ＴＬＢに仮想アドレスに対応するアドレス情報が存在しているかを検索する。そして、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ１ＴＬＢに存在する場合には、Ｌｅｖｅｌ１ＴＬＢからアドレス情報（例えば、図３に示す「ＰＡ（Ｌ１＿１）」）を読み出し、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている２個のアドレス情報をページテーブル２２ａのレベル２の階層から読みだし、その読み出されたアドレス情報をＬｅｖｅｌ２ＴＬＢに格納する。
【００４５】
そして、アドレス変換部１２ｂは、その格納されたアドレス情報をＬｅｖｅｌ２ＴＬＢから読み出し、その読み出されたアドレス情報に対応するアドレス情報をページテーブル２２ａのレベル３の階層から読みだし、その読み出されたアドレス情報とともに、連続して記憶されている８個のアドレス情報をＬｅｖｅｌ３ＴＬＢに格納し、その格納されたアドレス情報をＬｅｖｅｌ３ＴＬＢから読み出し、読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する。
【００４６】
一方、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ１ＴＬＢに存在しない場合には、ページテーブル２２ａのレベル１の階層から変換要求があった仮想アドレスに対応するアドレス情報を読み出し、その読み出されたアドレス情報とともに、連続して記憶されている２個のアドレス情報をＬｅｖｅｌ１ＴＬＢに格納し、その格納されたアドレス情報を読み出し、その読み出されたアドレス情報に対応するアドレス情報をページテーブル２２ａのレベル２の階層から読みだし、その読み出したアドレス情報とともに、連続して記憶されている２個のアドレス情報をＬｅｖｅｌ２ＴＬＢに格納する。
【００４７】
そして、アドレス変換部１２ｂは、その格納されたアドレス情報をＬｅｖｅｌ２ＴＬＢから読み出し、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている８個のアドレス情報をページテーブル２２ａのＬｅｖｅｌ３から読みだし、その読み出したアドレス情報をＬｅｖｅｌ３ＴＬＢに格納し、その格納されたアドレス情報をＬｅｖｅｌ３ＴＬＢから読み出し、読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する。
【００４８】
変換アドレス送信部１２ｃは、変換されたアドレスを処理装置２０に対して送信する処理部であり、具体的には、アドレス変換部１２ｂによって変換されたデータを処理装置２０のＣＰＵ２１に対して送信する。
【００４９】
［アドレス変換装置による処理］
次に、図５および図６を用いて、実施例１に係るアドレス変換装置１０による処理を説明する。図５は、実施例１に係るアドレス変換処理を示すフローチャートであり、図６は、実施例１に係るアドレス変換処理の詳細を示すフローチャートである。
【００５０】
同図に示すように、アドレス変換装置１０のアドレス変換要求判定部１２ａは、処理装置２０のＣＰＵ２１からアドレス変換要求を受信した場合には（ステップＳ１０１肯定）、レシーブバッファ領域に対するものであるか否かを判定する（ステップＳ１０２）。
【００５１】
アドレス変換部１２ｂは、アドレス変換要求判定部１２ａによってアドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には（ステップＳ１０２肯定）、ＲＢ専用ＴＬＢ１３ａからアドレス変換要求があったアドレスに対応するアドレス情報を読み出し、読み出したアドレス情報を用いてアドレス変換を行う（ステップＳ１０３）。
【００５２】
一方、アドレス変換部１２ｂは、アドレス変換要求判定部１２ａによってアドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には（ステップＳ１０２否定）、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂからアドレス変換要求があったアドレスに対応するアドレス情報を読み出し、読み出したアドレス情報を用いてアドレス変換を行う（ステップＳ１０４）。
【００５３】
かかるアドレス変換について図６を用いて詳細に説明すると、アドレス変換部１２ｂは、ＴＬＢの最終段であるＬｅｖｅｌ３ＴＬＢに変換要求があった仮想アドレスに対応するアドレス情報が存在しているかを検索し（ステップＳ１０４１）、仮想アドレスに対応するアドレス情報が存在する場合には（ステップＳ１０４１肯定）、Ｌｅｖｅｌ３ＴＬＢから対応するアドレス情報を読み出し、その読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する（ステップＳ１０４７）。
【００５４】
また、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ３ＴＬＢに存在しない場合には（ステップＳ１０４１否定）、Ｌｅｖｅｌ２ＴＬＢに仮想アドレスに対応するアドレス情報が存在しているかを検索する（ステップＳ１０４２）。そして、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ２ＴＬＢに存在する場合には（ステップＳ１０４２肯定）、Ｌｅｖｅｌ２ＴＬＢからページテーブル２２ａのレベル３の階層に記憶されたアドレス情報の位置を特定するためのアドレス情報（例えば、図３に示す「ＰＡ（Ｌ２＿０）」）を読み出す。
【００５５】
そして、アドレス変換部１２ｂは、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている８個のアドレス情報をページテーブル２２ａのレベル３の階層から読みだし、その読み出したアドレス情報をＬｅｖｅｌ３ＴＬＢに格納し（ステップＳ１０４６）、その格納されたアドレス情報をＬｅｖｅｌ３ＴＬＢから読み出し、読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する（ステップＳ１０４７）。
【００５６】
一方、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ２ＴＬＢに存在しない場合には（ステップＳ１０４２否定）、Ｌｅｖｅｌ１ＴＬＢに仮想アドレスに対応するアドレス情報が存在しているかを検索する（ステップＳ１０４３）。そして、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ１ＴＬＢに存在する場合には（ステップＳ１０４３肯定）、Ｌｅｖｅｌ１ＴＬＢからアドレス情報（例えば、図３に示す「ＰＡ（Ｌ１＿１）」）を読み出し、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている２個のアドレス情報をページテーブル２２ａのレベル２の階層から読みだし、その読み出されたアドレス情報をＬｅｖｅｌ２ＴＬＢに格納する（ステップＳ１０４５）。
【００５７】
そして、アドレス変換部１２ｂは、その格納されたアドレス情報をＬｅｖｅｌ２ＴＬＢから読み出し、その読み出されたアドレス情報に対応するアドレス情報をページテーブル２２ａのレベル３の階層から読みだし、その読み出されたアドレス情報とともに、連続して記憶されている８個のアドレス情報をＬｅｖｅｌ３ＴＬＢに格納し（ステップＳ１０４６）、その格納されたアドレス情報をＬｅｖｅｌ３ＴＬＢから読み出し、読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する（ステップＳ１０４７）。
【００５８】
一方、アドレス変換部１２ｂは、変換要求があった仮想アドレスに対応するアドレス情報がＬｅｖｅｌ１ＴＬＢに存在しない場合には（ステップＳ１０４３否定）、ページテーブル２２ａのレベル１の階層から変換要求があった仮想アドレスに対応するアドレス情報とともに、連続して記憶されている２個のアドレス情報を読み出し、その読み出されたアドレス情報をＬｅｖｅｌ１ＴＬＢに格納し（ステップＳ１０４４）、その格納されたアドレス情報を読み出し、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている２個のアドレス情報をページテーブル２２ａのレベル２の階層から読みだし、その読み出されたアドレス情報をＬｅｖｅｌ２ＴＬＢに格納する（ステップＳ１０４５）。
【００５９】
そして、その格納されたアドレス情報をＬｅｖｅｌ２ＴＬＢから読み出し、その読み出されたアドレス情報に対応するアドレス情報とともに、連続して記憶されている８個のアドレス情報をページテーブル２２ａのＬｅｖｅｌ３から読みだし、その読み出したアドレス情報をＬｅｖｅｌ３ＴＬＢに格納し（ステップＳ１０４６）、その格納されたアドレス情報をＬｅｖｅｌ３ＴＬＢから読み出し、読み出されたアドレス情報を用いて仮想アドレスを物理アドレスに変換する（ステップＳ１０４７）。
【００６０】
変換アドレス送信部１２ｃは、変換されたアドレスを処理装置２０に対して送信する処理部であり、具体的には、アドレス変換部１２ｂによって変換されたデータを処理装置２０のＣＰＵ２１に対して送信する（ステップＳ１０５）。
【００６１】
[実施例１の効果]
上述してきたように、ページテーブル２２ａに記憶されたアドレス情報のうち、主記憶部２２における通信データの受け渡しに用いられるレシーブバッファ領域に対応するアドレス情報をページテーブルから抽出して記憶するＲＢ専用ＴＬＢ１３ａと、ページテーブル２２ａに記憶されたアドレス情報のうち、主記憶部２２におけるレシーブバッファ領域以外の領域に対応するアドレス情報をページテーブル２２ａから抽出して記憶するＬｅｖｅｌ１〜３ＴＬＢ１３ｂとを備え、アドレス変換要求がレシーブバッファ領域に対するものであるか否かを判定し、アドレス変換要求がレシーブバッファ領域に対するものであると判定された場合には、ＲＢ専用ＴＬＢ１３ａおよび／またはページテーブル２２ａに記憶されたアドレス情報を用いてアドレス変換を行い、アドレス変換要求がレシーブバッファ領域に対するものでないと判定された場合には、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂおよび／またはページテーブル２２ａに記憶されたアドレス情報を用いてアドレス変換を行うので、使用頻度の高いレシーブバッファ領域とレシーブバッファ領域以外の領域とを分けて管理し、アドレス変換要求がレシーブバッファ領域に対するものである場合には、ＲＢ専用ＴＬＢ１３ａにアクセスしてレシーブバッファに記憶されたアドレス情報を用いてアドレス変換を行う結果、キャッシュミスを減少して処理速度を向上することが可能である。
【００６２】
また、実施例１によれば、ページテーブル２２ａは、マルチレベルで構成されるものであって、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂは、マルチレベルごとに構成され、かつ、最終レベルほど多くのアドレス情報数でアドレス情報を記憶するので、使用される頻度が高い最終レベルほどアドレス情報数が多い結果、キャッシュミスを減少して処理速度を向上することが可能である。
【００６３】
また、実施例１によれば、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂではなくページテーブル２２ａに記憶されたアドレス情報を用いてアドレス変換する場合には、そのアドレス変換に用いるアドレス情報とともにそのアドレス情報に連続してページテーブル２２ａに記憶されているアドレス情報をそのページテーブル２２ａから読み出し、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂに改めて記憶するので、例えば、連続するデータのアドレスの変換の際に、その都度主記憶部からアドレス情報を読み出す必要がなくなり、処理速度を向上することが可能である。
【実施例２】
【００６４】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００６５】
（１）ストライド転送
また、本発明は規則的なアドレスに分散しているデータの転送（以下、ストライド転送という）において、次に必要な変換情報を予測して、その予測された変換情報を予めＴＬＢ内にキャッシュするようにしてもよい。
【００６６】
具体的には、図７に示すように、アドレス変換装置１０のマイクロコントローラは、基本動作設定において、要素サイズ、スキップサイズ、総転送量の各データをＭＭＵに受け渡す（ステップＳ２０１）。そして、ＭＭＵは、それらのデータからＴＬＢ作成回路の動作設定を行う（ステップＳ２０２）。そして、マイクロコントローラは、アドレス変換要求を受け付けた場合には、そのアドレス変換がストライド転送かどうかを判定し、ストライド転送であると判定された場合には、ストライド転送用コマンドをＭＭＵに対して発行する（ステップＳ２０３）。そのストライド転送用コマンドを受け付けたＭＭＵは、１回目のアドレス変換は、通常通り行い、マイクロ結果を返し（ステップＳ２０４）、その後、予め設定された構成情報に従い、次にアドレス変換要求を受けると予測される領域に対するＴＬＢを作成する（ステップＳ２０５）。
【００６７】
続いて、マイクロコントローラは、２回目のストライド転送のアドレス変換要求をＭＭＵへ発行する（ステップＳ２０６）。そして、ＭＭＵは、予め作成しておいたＴＬＢから変換結果をマイクロコントローラへ送信する（ステップＳ２０７）。そして、ＭＭＵは、総転送量から最後のアドレス変換かを判定し（ステップＳ２０８）、最後のアドレス変換でないと判定された場合には（ステップＳ２０８否定）、同様の処理（ステップＳ２０５〜ステップＳ２０８）を繰り返す。一方、ＭＭＵは、最後のアドレス変換と判定された場合には（ステップＳ２０８肯定）、先読みを停止して処理を完了する。
【００６８】
このように、データのストライト転送に際して、そのストライド転送に係る情報に基づいて、次に受信するデータのアドレス変換に必要であると予測されるアドレス情報をページテーブル２２ａから読み出し、Ｌｅｖｅｌ１〜３ＴＬＢ１３ｂに改めて記憶するので、予め必要なアドレス情報をＬｅｖｅｌ１〜３ＴＬＢ１３ｂに記憶させておくことにより、主記憶部２２からアドレス情報を読み出す間の待ち時間を減少することができる結果、処理速度を向上することが可能となる。
【００６９】
（２）ページテーブル
また、上記の実施例１では、最終レベルほど多くのエントリ数でアドレス情報を記憶する場合を説明したが、本発明はこれに限定されるものではなく、例えば、各レベルが同一のエントリ数のアドレス情報を記憶するようにしてもよい。
【００７０】
（３）アドレス情報
また、上記の実施例１では、ＴＬＢにアドレス情報を格納する際に、アドレス変換に用いるアドレス情報とともに、連続するアドレス情報を８個読み出す場合を説明したが、本発明はこれに限定されるものではなく、例えば、アドレス変換に用いるアドレス情報のみを読み出すようにしてもよいし、アドレス変換に用いるアドレス情報とともに、連続するアドレス情報を任意の個数読み出すようにしてもよい。
【００７１】
（４）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、アドレス変換要求判定部１２ａとアドレス変換部１２ｂを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７２】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７３】
（５）プログラム
なお、本実施例で説明した通信制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【００７４】
以上のように、本発明に係るアドレス変換装置は、仮想アドレスと物理アドレスとの間でアドレス変換するために用いられるアドレス情報を記憶するページテーブルを用いてアドレス変換要求に対するアドレス変換を行う場合に有用であり、特に、キャッシュミスを減少して処理速度を向上することに適する。
【図面の簡単な説明】
【００７５】
【図１】実施例１に係るアドレス変換装置の概要および特徴を説明するための図である。
【図２】実施例１に係るアドレス変換装置の構成を示すブロック図である。
【図３】ＴＬＢのデータ構造を説明するための図である。
【図４】ページテーブルのデータ構造を説明するための図である。
【図５】実施例１に係るアドレス変換処理を示すフローチャートである。
【図６】実施例１に係るアドレス変換処理の詳細を示すフローチャートである。
【図７】実施例２に係るアドレス変換装置の処理動作を示すフローチャートである。
【符号の説明】
【００７６】
１０  アドレス変換装置
１１  処理装置制御ＩＦ
１２  制御部
１２ａ  アドレス変換要求判定部
１２ｂ  アドレス変換部
１２ｃ  変換アドレス送信部
１３  記憶部
１３ａ  ＲＢ専用ＴＬＢ
１３ｂ  Ｌｅｖｅｌ１〜３ＴＬＢ
２０  処理装置
２１  ＣＰＵ
２２  主記憶部
２２ａ  ページテーブル
【図１】
2007233615.tif 000003
【図２】
2007233615.tif 000004
【図３】
2007233615.tif 000005
【図４】
2007233615.tif 000006
【図５】
2007233615.tif 000007
【図６】
2007233615.tif 000008
【図７】
2007233615.tif 000009