(57)【要約】【課題】  ＴＬＢ回路を用いて変換した物理アドレスに基づいてアクセスする記憶装置が複数ある場合でも、特定の記憶装置に対して高速にアクセスすることのできるアドレス変換装置、及びメモリアクセス方法を提供する。【解決手段】  仮想アドレスから物理アドレスへの変換を高速で行なうためのＴＬＢ回路に備えられたエントリ中に、アクセスする仮想アドレスに対応する物理アドレスがチップ上に実装されたＳＲＡＭを指していることを表示するＲビットを設け、Ｒビットがチップ上に実装されたＳＲＡＭへのチップセレクト信号として作用するようにする。【選択図】  図１
2005310072.tif 000002
【特許請求の範囲】
【請求項１】
複数のエントリを用いて、入力された仮想アドレスを物理アドレスに変換するアドレス変換装置において、
前記各エントリには、仮想ページ番号、及び該仮想ページ番号に対応する物理ページ番号に加え、さらに該物理ページ番号が、予め設定された特定の記憶手段を示すアドレスであるか否かを示す実装情報が記録されている、
ことを特徴とするアドレス変換装置。
【請求項２】
請求項１に記載のアドレス変換装置において、
前記特定の記憶手段は、チップ上に実装されたＳＲＡＭ（Static Random Access Memory）である、
ことを特徴とするアドレス変換装置。
【請求項３】
複数のエントリを用いて、入力された仮想アドレスを物理アドレスに変換するアドレス変換装置を有するデータ処理装置のメモリアクセス方法において、
前記各エントリには、仮想ページ番号、及び該仮想ページ番号に対応する物理ページ番号に加え、さらに該物理ページ番号が、チップ上に実装されたメモリを示すアドレスであるか否かを示す実装情報が記録されており、
前記複数のエントリのうち、該エントリに記録された前記仮想ページ番号と、前記入力された仮想アドレスの仮想ページ番号とが一致するエントリを検出するステップと、
該検出されたエントリに記録されている前記実装情報より、前記物理ページ番号が前記チップ上に実装されたメモリを示すか否かを判定するステップと、
前記検出されたエントリに記録されている実装情報が、前記チップ上に実装されたメモリを示す場合は、前記仮想アドレスから前記物理アドレスに変換せずに該チップ上に実装されたメモリにアクセスし、前記チップ上に実装されたメモリを示さない場合は、前記仮想アドレスから前記物理アドレスに変換し、該物理アドレスを用いて前記チップ上に実装されたメモリ以外の記憶手段を選択してアクセスするステップと、を含む、
ことを特徴とするメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス変換装置、及びメモリアクセス方法に関し、特に、仮想記憶における仮想アドレスから物理アドレスへの変換を行なうものに関するものである。
【背景技術】
【０００２】
近年、コンピュータシステムのメインメモリの容量の限界に対処するために、プログラミング上の負荷を軽減する技術として、仮想記憶方式が広く採用されている。そして、前述の仮想記憶方式においては、仮想メモリ中のアドレスを示す仮想アドレスを、実メモリ中のアドレスを示す物理アドレスに変換するアドレス変換が必要となる。
【０００３】
以下、従来のアドレス変換装置について説明する。
図３は、仮想アドレスの変換方法を説明するための図である。
【０００４】
図３に示すように、仮想アドレス１は、仮想ページ番号２を示す上位フィールドとページ内オフセット３を示す下位フィールドとに分割され、物理アドレス４も、物理ページ番号５を示す上位フィールドとページ内オフセット３を示す下位フィールドとに分割されている。従って、仮想アドレス１から物理アドレス４へ変換する際には、アドレス変換装置内に、前記仮想ページ番号２と物理ページ番号５とを対応づけて記憶されているページテーブル６を設けておき、このページテーブル６を参照することで、変換を要求された仮想アドレス１の仮想ページ番号２に対応する物理ページ番号５を取り出し、物理アドレス４を生成する。なお、前記仮想アドレス１と前記物理アドレス４とのページ内オフセット３は同じであるため、前述のようにして取り出した物理ページ番号５と、仮想アドレス１のページ内オフセット３とを結合させて、物理アドレス４を生成する。
【０００５】
そして、このようにして仮想アドレス１から生成された物理アドレス４に基づいて、主記憶等の物理メモリへのアクセスを行なう。
さらに、前述したような仮想アドレス変換を高速に行なうアドレス変換装置として、ＴＬＢ（Translation Look-aside Buffer）回路がある。
【０００６】
ＴＬＢ回路とは、ページテーブル６のうち、使用頻度が高い仮想ページ番号２と物理ページ番号５との対応を記憶したアドレス変換専用のキャッシュメモリであり、このＴＬＢ回路を備えたマイクロプロセッサにおいては、ＣＰＵが、仮想アドレス１でページテーブル６にアクセスする代わりに、ＴＬＢ回路にアクセスすることにより、高速にアドレス変換を行なうことが可能である。
【０００７】
図４は、従来のＴＬＢ回路を備えたマイクロプロセッサの回路図である。
図４に示すように、ＴＬＢ回路７は、０〜Ｎ（Ｎは１以上の整数）セットのページテーブルエントリ８−０〜８−Ｎと、出力制御部１２とから構成されている。そして、各エントリ８−０〜８−Ｎは、仮想ページ番号９と、物理ページ番号１０と、アドレス比較器１１とから構成されており、該各エントリ８−０〜８−Ｎを参照すれば、仮想ページ番号９と物理ページ番号１０との対応がわかるようになっている。
【０００８】
以上のように構成された従来のＴＬＢ回路７を備えたマイクロプロセッサについて、以下その動作を説明する。
まず、ＣＰＵ２５から、仮想アドレス１がＴＬＢ回路７に入力されると、仮想ページ番号２と各エントリ８−０〜８−Ｎが持つ仮想ページ番号９とが、それぞれのアドレス比較器１１に入力されて、比較が実施される。そして、いずれかのエントリのアドレス比較器１１から出力される比較結果１３が“一致”であった場合（ＴＬＢヒット）、ＴＬＢヒットしたことを出力制御部１２、及びＣＰＵ２５へ伝達する。あるエントリでＴＬＢヒットしたことを受信した出力制御部１２は、該ヒットしたエントリ内の物理ページ番号１０を読み出し、該読み出された物理ページ番号１０は、物理アドレス４を生成するために使用される。なお、物理アドレス４は、前述のようにして出力制御部１２から出力された物理ページ番号１０と、仮想アドレス１のページ内オフセット３とを結合することによって生成される。
【０００９】
このようにして生成された物理アドレス４はＣＰＵ２５へと送出され、ＣＰＵ２５は受け取った物理アドレス４を用いて物理メモリへのアクセスを行なう。
【００１０】
一方、全てのエントリ８−０〜８−Ｎのアドレス変換器１１において、比較結果１３が“不一致”であった場合（ＴＬＢミス）は、ＴＬＢミスが発生したことがＣＰＵ２５に伝えられ、ＴＬＢミスに伴う例外処理が行なわれる（例えば、非特許文献１参照）。
【非特許文献１】富田眞治著、「第２版  コンピュータアーキテクチャ  基礎から超高速化技術まで」丸善株式会社、平成１２年９月１５日、ｐ．１５３−１７０
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、前述したような従来のアドレス変換装置では、ＴＬＢ回路７で得られた物理アドレスによってアクセスする記憶装置が複数ある場合、複数ある記憶装置の中からアクセスすべき記憶装置を選択し、その記憶装置を有効にしなければならない。そのため、実メモリにアクセスする際には、ＴＬＢ回路７で得られた物理アドレス４の物理ページ番号５を用いて、アクセスする記憶装置を選択する必要があり、例えば、高速に動作するＳＲＡＭ（Static Random Access Memory）がチップ上に実装されていても、該チップ上のＳＲＡＭに対し高速なメモリアクセスを行なうことができないという問題があった。
【００１２】
本発明は、前述したような従来の問題点を解決するためになされたものであり、ＴＬＢ回路を用いて変換した物理アドレスに基づいてアクセスする記憶装置が複数ある場合でも、該複数ある記憶装置のうちの予め設定された特定の記憶装置に対して高速にアクセスすることのできるアドレス変換装置、及びメモリアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の請求項１に係るアドレス変換装置は、複数のエントリを用いて、入力された仮想アドレスを物理アドレスに変換するアドレス変換装置において、前記各エントリには、仮想ページ番号、及び該仮想ページ番号に対応する物理ページ番号に加え、さらに該物理ページ番号が、予め設定された特定の記憶手段を示すアドレスであるか否かを示す実装情報が記録されているものである。
【００１４】
本発明の請求項２に係るアドレス変換装置は、請求項１に記載のアドレス変換装置において、前記記憶手段が、チップ上に実装されたＳＲＡＭであるものとしたものである。
【００１５】
本発明の請求項３に係るメモリアクセス方法は、複数のエントリを用いて、入力された仮想アドレスを物理アドレスに変換するアドレス変換装置を有するデータ処理装置のメモリアクセス方法において、前記各エントリには、仮想ページ番号、及び該仮想ページ番号に対応する物理ページ番号に加え、さらに該物理ページ番号が、チップ上に実装されたメモリを示すアドレスであるか否かを示す実装情報が記録されており、前記複数のエントリのうち、該エントリに記録された前記仮想ページ番号と、前記入力された仮想アドレスの仮想ページ番号とが一致するエントリを検出するステップと、該検出されたエントリに記録されている前記実装情報より、前記物理ページ番号が前記チップ上に実装されたメモリを示すか否かを判定するステップと、前記検出されたエントリに記録されている実装情報が、前記チップ上に実装されたメモリを示す場合は、前記仮想アドレスから前記物理アドレスに変換せずに該チップ上に実装されたメモリにアクセスし、前記チップ上に実装されたメモリを示さない場合は、前記仮想アドレスから前記物理アドレスに変換し、該物理アドレスを用いて前記チップ上に実装されたメモリ以外の記憶手段を選択してアクセスするステップと、を含むものである。
【発明の効果】
【００１６】
本発明の請求項１に係るアドレス変換装置は、複数のエントリを用いて、入力された仮想アドレスを物理アドレスに変換するアドレス変換装置において、前記各エントリには、仮想ページ番号、及び該仮想ページ番号に対応する物理ページ番号に加え、さらに該物理ページ番号が、予め設定された特定の記憶手段を示すアドレスであるか否かを示す実装情報が記録されているので、仮想アドレスから変換した物理アドレスに基づいてアクセスする記憶装置が複数ある場合でも、予め設定された特定の記憶装置に対して高速にアクセスすることができる。
【００１７】
本発明の請求項２に係るアドレス変換装置は、請求項１に記載のアドレス変換装置において、前記記憶手段が、チップ上に実装されたＳＲＡＭであるものとしたので、仮想アドレスから変換した物理アドレスに基づいてアクセスする記憶装置が複数ある場合でも、チップ上に実装されたＳＲＡＭに対する高速なメモリアクセスを実現することができる。
【００１８】
本発明の請求項３に係るメモリアクセス方法は、複数のエントリを用いて、入力された仮想アドレスを物理アドレスに変換するアドレス変換装置を有するデータ処理装置のメモリアクセス方法において、前記各エントリには、仮想ページ番号、及び該仮想ページ番号に対応する物理ページ番号に加え、さらに該物理ページ番号が、チップ上に実装されたメモリを示すアドレスであるか否かを示す実装情報が記録されており、前記複数のエントリのうち、該エントリに記録された前記仮想ページ番号と、前記入力された仮想アドレスの仮想ページ番号とが一致するエントリを検出するステップと、該検出されたエントリに記録されている前記実装情報より、前記物理ページ番号が前記チップ上に実装されたメモリを示すか否かを判定するステップと、前記検出されたエントリに記録されている実装情報が、前記チップ上に実装されたメモリを示す場合は、前記仮想アドレスから前記物理アドレスに変換せずに該チップ上に実装されたメモリにアクセスし、前記チップ上に実装されたメモリを示さない場合は、前記仮想アドレスから前記物理アドレスに変換し、該物理アドレスを用いて前記チップ上に実装されたメモリ以外の記憶手段を選択してアクセスするステップと、を含むので、仮想アドレスから変換した物理アドレスに基づいてアクセスする記憶装置が複数ある場合でも、予め設定されたメモリに対して高速なメモリアクセスを実現することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について図面を参照しながら説明する。
（実施の形態１）
図１は、本発明の実施の形態１におけるアドレス変換装置であるＴＬＢ回路を備えたプロセッサの回路図である。
【００２０】
図１に示すように、本実施の形態１によるプロセッサは、ＣＰＵ２５から入力された仮想アドレス１を物理アドレス４に変換するアドレス変換装置であるＴＬＢ（Translation Look-aside Buffer）回路１４と、チップ上に実装されたＳＲＡＭ（Static Random Access Memory）２８と、当該プロセッサを制御するＣＰＵ２５とから構成されている。なお、前記仮想アドレス１、及び前記物理アドレス４の構成は従来と同様である。
【００２１】
以下、前記プロセッサの構成について詳述すると、まず、前記ＴＬＢ回路１４は、仮想ページ番号と物理ページ番号とを対応づける０〜Ｎ（Ｎは１以上の整数）セットのページテーブルエントリ（以下、「エントリ」と称す。）１５−０〜１５−Ｎを有している。
【００２２】
ここで、本実施の形態１の各エントリ１５−０〜１５−Ｎにはそれぞれ、従来のＴＬＢ回路と同様、仮想ページ番号１６と、該仮想ページ番号１６に対応する物理ページ番号２１とが記録されているのに加えて、変換後の物理ページ番号が予め設定された特定の記憶装置（ここでは、前記ＳＲＡＭ２８）を示すアドレスか否かを示す実装情報であるＲビット２２が記録されている。なお、本実施の形態１においては、図１に示すように、前記物理ページ番号１６と前記Ｒビット２１とでデータフィールド１７を構成している。また、前記各エントリ１５−０〜１５−Ｎには、従来と同様、前記ＣＰＵ２５から受け取った仮想アドレス１の仮想ページ番号２と、前記各エントリに記録されている仮想ページ番号１６とを比較するアドレス比較器１８が備えられている。
【００２３】
そして、前記ＴＬＢ回路１４は、前述の各エントリ１５−０〜１５−Ｎから物理ページ番号２１を受信して出力する出力制御部２４と、該出力制御部２４からの出力３０を制御する制御信号３１を出力する制御信号出力部２６と、前記エントリ１５−０〜１５−Ｎからの出力に基づき、前記ＳＲＡＭ２８にアクセスするか否かを選択するチップセレクト信号２９を出力するセレクト信号出力部１９とを備えている。
【００２４】
なお、本実施の形態１では、一例として、前記制御信号生成部２６は、ＡＮＤ回路２６１とＮＯＴ回路２６２とで構成され、前記セレクト信号出力部１９はＮＡＮＤ回路１９１で構成されているものとする。
【００２５】
さらに、図１には図示していないが、本実施の形態１においては、ＳＲＡＭ２８が実装されたチップとは別のチップ上に、ＴＬＢ回路１４で変換された物理アドレス４によってアクセスされる記憶装置が複数存在している。
【００２６】
以下に、前述のような構成を有するプロセッサにおけるメモリアクセス方法について、図２を参照しながら説明する。
図２は、本発明の実施の形態１におけるメモリアクセス方法の処理フローを示す図である。
【００２７】
まず、ＣＰＵ２５から仮想アドレス１がＴＬＢ回路１４に入力されると（ステップ３１）、ＴＬＢ回路１４では、アドレス比較器１８を用いて、受け取った仮想アドレス１の仮想ページ番号２と、各エントリ１５−０〜１５−Ｎの持つ仮想ページ番号１６とが比較される（ステップ３２）。そして、前記アドレス比較器１８においてその比較結果２３が“一致”の場合（ＴＬＢヒット）には、以降に示す一連の処理を行い、“不一致”の場合（ＴＬＢミス）には、前記ＣＰＵ２５においてＴＬＢミスに伴う例外処理を行う（ステップ３４）。
【００２８】
前記ステップ３２で、いずれかのアドレス比較器１８から出力される比較結果２３が“一致”であった場合（ＴＬＢヒット）は、ＴＬＢヒットしたことを、セレクト信号出力部１９と、制御信号生成部２６のＡＮＤ回路２６１と、ＣＰＵ２５とへ伝達する。
【００２９】
そして、前記セレクト信号出力部１９では、該前記アドレス比較器１８からのＴＬＢヒットしたことを示す比較結果２３と、そのＴＬＢヒットしたエントリ内のデータフィールド１７が持つＲビット２２のデータとを受け、該Ｒビット２２の値に応じて、アクセスすべき記憶装置が、チップ上に実装されたＳＲＡＭ２８か否かを判定する（ステップ３３）。
【００３０】
例えば、ここでは、Ｒビット２２の値が“１”のとき、変換後の物理アドレスがチップ上に実装されたＳＲＡＭ２８であり、“０”のとき、変換後の物理アドレスがチップ上に実装されたＳＲＡＭ２８でないことを意味するものとし、また、前記セレクト信号出力部１９の前記ＮＡＮＤ回路１９１から出力されるチップセレクト信号２９が“０”のとき、ＳＲＡＭ２８がアクセスされるものとし、さらに、前記制御信号生成部２６のＡＮＤ回路２６１からの制御信号３１が“１”のとき、出力制御部２４よりデータを出力させるよう制御するものとする。
【００３１】
このような場合に、前記セレクト信号出力部１９において、値が“１”であるＲビット２２を受信した場合は、アクセスすべき記憶装置がＳＲＡＭ２８を意味し、セレクト信号出力部１９から出力されるチップセレクト信号２９が“０”となり、アクセスすべき記憶装置としてＳＲＡＭ２８が選択され、それと同時に、前記制御信号生成部２６では、ＮＯＴ回路２６２の出力が“０”となり、これによりＡＮＤ回路２６１から出力される制御信号３１が“０”となって、前記ヒットしたエントリ内のデータフィールド１７が持つ物理ページ番号２１は、前記出力制御部２４から出力されず、メモリアクセスする際には、前記仮想アドレス１の持つページ内オフセット３を用いて、ＳＲＡＭ２８へアクセスが開始される（ステップ３５）。
【００３２】
一方、前記セレクト信号出力部１９において、値が“０”であるＲビット２２を受信した場合は、アクセスすべき記憶装置がＳＲＡＭ２８でなく、別のチップ上にある記憶装置であることを意味し、セレクト信号出力部１９から出力されるチップセレクト信号２９が“１”となり、ＳＲＡＭ２８にはアクセスされない。それと同時に、前記制御信号生成部２６では、ＮＯＴ回路２６２の出力が“１”となり、これによりＡＮＤ回路２６１から出力される制御信号３１が“１”となって、前記ヒットしたエントリ内のデータフィールド１７が持つ物理ページ番号２１は前記出力制御部２４から出力され、メモリアクセスする際には、従来と同様、前記出力された物理ページ番号２１と、前記仮想アドレス１が持つページ内オフセット３とから物理アドレス４を生成し（ステップ３６）、ＣＰＵ２５は、該生成された物理アドレス４を用いて、アクセスすべき記憶装置を選択して（ステップ３７）、該選択した記憶装置へアクセスを行なう（ステップ３８）。
【００３３】
以上のように、本実施の形態１によれば、仮想アドレスから物理アドレスへの変換を高速で行なうためのＴＬＢ回路１４に備えられた複数のエントリ１５−０〜１５−Ｎ中に、アクセスする仮想アドレス１に対応する物理アドレス４がチップ上に実装されたＳＲＡＭ２８を指しているか否かを示す実装情報であるＲビット２２を設け、該Ｒビット２２を前記ＳＲＡＭ２８へのチップセレクト信号として使用するようにしたので、ＴＬＢ回路１４を用いてＳＲＡＭ２８へアクセスする際に、変換後の物理アドレス４が持つ物理ページ番号５を使用してアクセスする記憶装置を選択することが不要になり、この結果、物理アドレス４への変換を行なわずに、チップ上に実装されたＳＲＡＭ２８に対し高速にメモリアクセスすることができる。
【００３４】
なお、前記実施の形態１では、チップに実装されている記憶装置がＳＲＡＭとして説明したが、これに限るものではない。
【産業上の利用可能性】
【００３５】
本発明に係るアドレス変換装置、及びメモリアクセス方法は、特定の記憶装置に対する高速なメモリアクセスを実現することができ、高速アクセス可能なＴＬＢ回路等に有用である。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施の形態１におけるアドレス変換装置であるＴＬＢ回路を備えたプロセッサの回路図である。
【図２】本発明の実施の形態１におけるメモリアクセス方法の処理フローを示す図である。
【図３】仮想アドレスの変換方法を説明するための図である。
【図４】従来のＴＬＢ回路を備えたマイクロプロセッサの回路図である。
【符号の説明】
【００３７】
１  仮想アドレス
２  仮想ページ番号
３  ページ内オフセット
４  物理アドレス
５  物理ページ番号
７，１４  ＴＬＢ回路
１８  アドレス比較器
１９  セレクト信号出力部
２２  Ｒビット
２４  出力制御部
２５  ＣＰＵ
２６  制御信号生成部
２８  ＳＲＡＭ
１９１  ＮＡＮＤ回路
２６１  ＡＮＤ回路
２６２  ＮＯＴ回路
【図１】
2005310072.tif 000003
【図２】
2005310072.tif 000004
【図３】
2005310072.tif 000005
【図４】
2005310072.tif 000006