JP2002132581A - メモリ管理機構 - Google Patents

メモリ管理機構

Info

Publication number
JP2002132581A
JP2002132581A JP2000325028A JP2000325028A JP2002132581A JP 2002132581 A JP2002132581 A JP 2002132581A JP 2000325028 A JP2000325028 A JP 2000325028A JP 2000325028 A JP2000325028 A JP 2000325028A JP 2002132581 A JP2002132581 A JP 2002132581A
Authority
JP
Japan
Prior art keywords
address
address translation
information
page
translation information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2000325028A
Other languages
English (en)
Inventor
Atsushi Mori
篤史 毛利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2000325028A priority Critical patent/JP2002132581A/ja
Publication of JP2002132581A publication Critical patent/JP2002132581A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 マイクロプロセッサの動作周波数を向上させ
る。 【解決手段】 複数のアドレス変換情報を格納するペー
ジ表を有する計算機に備えられる、仮想ページアドレス
と物理ページアドレスとを変換するメモリ管理機構にお
いて、少なくとも一つの上記アドレス変換情報を格納す
るTLB1(1)と、TLB1(1)よりも多くのアド
レス変換情報を格納するTLB2(1000)と、ペー
ジ表に格納されているアドレス変換情報を読みこみ、読
みこんだアドレス変換情報を上記第二のアドレス変換バ
ッファへ登録することを制御する第二制御部(31)
と、第二制御部(31)がアドレス変換情報を登録した
時に、上記アドレス変換情報を入力し、入力したアドレ
ス変換情報をTLB1(1)へ登録することを制御する
第一制御部(9)とを備え、さらに、TLB1は、アド
レス変換情報をマージ処理して登録するマージ処理部
(3)を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、階層的アドレス変
換バッファ構成を採る高速処理可能なメモリ管理機構に
関するものである。
【0002】
【従来の技術】近年、マイクロプロセッサは、動作周波
数の向上を図るために、パイプライン処理により命令実
行が行われている。パイプライン処理とは、複数の命令
をオーバラップさせて同時実行する技術である。1個の
命令の処理過程を複数の小さな処理過程(パイプライン
・ステージ)に分割する。各ステージが順に接続されて
1本のパイプラインを形成し、命令がパイプの一端から
入って複数のステージを進み最後にパイプのもう一方の
端から出て行く。このパイプラインの単位時間当りの処
理性能は、最も遅いステージの処理時間により決まる。
そのため、通常は、各ステージの処理時間が均一になる
ように設計されている。Nステージからなるパイプライ
ン処理では、パイプライン処理されない場合に比較し
て、理想的にはN倍の処理性能を達成することが可能で
ある。近年、マイクロプロセッサの動作周波数を向上さ
せる競争は激しさを増してきており、各パイプラインス
テージの処理時間はますます短くなってきている。
【0003】一方、近年のマイクロプロセッサでは、W
indowsCEやLinuxのような汎用オペレーテ
ィング・システム(OS)を動作させて、プログラム開
発効率の向上を図るのが当たり前のようになってきてい
る。そのため、マイクロプロセッサに、メモリ管理機構
(Memory Management Unit)を
内蔵するようになってきている。メモリ管理機構(MM
U)では、一般的に仮想記憶方式によりメモリの管理を
実施している。仮想記憶とは、物理的に限られた容量し
かないメモリを多くのプロセスで分割使用する手段であ
る(プロセッサ・アーキテクチャpp437−45
6)。すなわち、物理メモリを複数のブロックに分割
し、そのブロックを各プロセスに割り当てる方法であ
る。
【0004】この仮想記憶という技術が考案される以前
は、プログラムが物理メモリの容量を越えてしまった場
合は、その容量の中でプログラムを実行できるようにす
る全責任はプログラマにあった。すなわち、まずプログ
ラムを小片に分割し互いに排他的なものを見出す。そし
て、これらオーバレイ部分をどういう順序で主記憶にロ
ードするかを、全てユーザのプログラムで制御する。プ
ログラマは、実行中に物理メモリの制限を越えないよう
に動作を保証しなければならない。こういうことがプロ
グラマの生産性を阻害する要因であった。このような苦
労からプログラマを解放する目的で考え出されたのが仮
想記憶であり、プログラマに対しては実装する物理メモ
リよりも大きく連続する仮想のアドレス空間を提供する
機構である。
【0005】図6に、従来から用いられている仮想記憶
方式における仮想アドレスの変換方式について示す。仮
想アドレス(1050)は仮想ページアドレスを示す上
位フィールド(1051)とページ内オフセットを示す
下位フィールド(1052)に分割される。仮想アドレ
ス空間と物理メモリ空間は、ページ内オフセット(10
52)で示されるページサイズに分割される。仮想アド
レス空間には、仮想ページアドレス(1051)で示さ
れる個数だけのページが存在する。仮想アドレス空間中
のどのページが、物理メモリ空間中のどのページに割り
当てられるかはページ表(1056)により管理され
る。このページ表の基点となるアドレスであるページ表
ベース(1054)と、表の大きさの値であるページ表
限界(1055)は、それぞれのシステムレジスタに格
納されている。仮想アドレスから物理アドレスを生成す
るためには、仮想アドレスの仮想ページアドレス(10
51)とページ表ベース(1054)を加算器(105
3)により加算し、この値に基づいてページ表内の一つ
のページ表エントリ(1057)を特定する。この時
に、加算器(1053)の出力がページ表限界(105
5)を超えないことを確認する(1058)。この値を
超えている場合は、エラーを検知する。特定されたペー
ジ表エントリ(1057)から物理アドレス空間中の物
理ページアドレスを取り出し、仮想アドレスのページ内
オフセットと結合させて物理アドレス(1060)を生
成する。そして、この物理アドレス(1060)によ
り、主記憶等の物理メモリのアクセスを行う。
【0006】この仮想記憶方式では、当然仮想アドレス
空間で扱うページ数よりも、物理メモリ空間で扱うペー
ジ数は少ない。そのため、物理メモリ上にない仮想アド
レス空間上のページをプログラムがアクセスした場合に
は、ページ・フォールトと呼ばれる例外が発生する。ペ
ージ・フォールトでは、新たにページ表エントリを追加
したり、2次記憶(ディスク等)から物理メモリにプロ
グラムをロードする処理が必要となる。ページフォール
トに伴う一連の処理等は、ユーザプログラムが意識する
必要はなく、オペレーティング・システムの管理下に置
かれるのが一般的である。
【0007】図7に、メモリ管理機構を内蔵した従来の
マイクロプロセッサ(1150)を示す。このマイクロ
プロセッサは、CPUコア(1152)と、メモリ管理
部(1161)と、命令キャッシュメモリ(1155)
と、データキャッシュメモリ(1156)と、バスイン
ターフェイス部(1157)より構成されている。マイ
クロプロセッサ(1150)は、バスインターフェイス
部(1157)を介して外部メモリ(1158)のリー
ド/ライト処理を実施している。CPUコア(115
2)は、5段のパイプラインステージ(1160)より
構成されている。このパイプラインは、命令フェッチを
行うIFステージと、命令のデコード処理を行うDステ
ージと、命令の実行を行うEステージと、オペランドの
アクセスを行うMステージと、実行結果を汎用レジスタ
へ書き戻すWステージより構成されている。メモリ管理
部(1161)は、TLB(Translation
Lookaside Buffer)として、命令TL
B(1153)と、データTLB(1154)とをそれ
ぞれ内蔵している。命令TLB(1153)は、IFス
テージからの命令フェッチ用仮想アドレスを物理アドレ
スへ変換する。また、データTLB(1154)は、M
ステージからのオペランドアクセス用の仮想アドレスを
物理アドレスへ変換する。このようにして生成された物
理アドレスによって、命令キャッシュメモリ(115
5)及びデータキャッシュメモリ(1156)のアクセ
スを行う。命令及びデータキャッシュメモリ上に所望の
命令及びデータがそれぞれあった場合は、CPUコア
は、所望の命令及びデータに対して処理を施す。命令及
びデータキャッシュメモリ上に所望の命令及びデータが
なかった場合は、バスインターフェイス部(1157)
を介して外部メモリへアクセスを行う。
【0008】図8に、図7に示したTLB(Trans
lation LookasideBuffer)の詳
細な構成を示す。図8に一例として示すTLBは、図7
の命令TLB(1153)、データTLB(1154)
において適用される機構である。TLBとは、仮想アド
レスと物理アドレスのペアを保持しているアドレス変換
バッファである。プロセッサは仮想アドレスでページ表
をアクセスする代わりに、TLBをアクセスすることに
より高速にアドレス変換を行うことが可能である。
【0009】次に、図8に示すダイレクトマッピング方
式のTLB(図8ではTLB2と呼んでいる)について
説明する。ダイレクトマッピング方式とは、仮想アドレ
スの一部をデコードしてエントリ選択を行い、選択され
たエントリのタグと入力論理アドレスを比較して、その
ヒットミスにより選択されたエントリのデータを出力す
る構成を備える方式をいう。
【0010】TLB2(1000)は、アドレスデコー
ダ部(1001)と、TLBタグ部(1002)と、T
LBデータ部(1003)と、アドレス比較部(100
4)と、データ出力部(1005)より構成されてい
る。アドレスデコーダ部の結果により選択されたTLB
タグ部(1002)のある行(1010)(以下、「タ
グ部(1010)」という)と、TLBデータ部のある
行(1011)(以下、「データ部(1011)」とい
う)を合わせて、ページテーブルエントリ(PTE)と
呼んでいる。各PTEには、図6に示すページ表内のペ
ージ表エントリのコピーを持つことが可能である。通
常、TLBは、複数エントリより構成されており、近年
の大容量TLBでは64エントリを備えるマイクロプロ
セッサも出てきている。
【0011】図8のTLB2(1000)において、各
PTEにあるタグ部(1010)は、以下の2フィール
ド(a)〜(b)より構成されている。 (a)VPA[1:19]:Virtual Page
Address(仮想ページアドレス) (b)ASID:Address Space ID
(Identification Number)(ア
ドレス空間ID) OSは、プロセス毎にASIDを管理することにより多
重仮想アドレス空間を実現することが可能である。
【0012】また、各PTE内のデータ部(1011)
は、以下の6フィールド(c)〜(h)より構成されて
いる。 (c)PPA[1:19]:Physical Pag
e Address(物理ページアドレス) 最小ページサイズ4kBに対応した物理ページアドレス
を保持。MMUレジスタMPSZで示されるページサイ
ズに応じて、使用サイズが変更される。 4kBページ:PPA[1:19]全て使用 16kBページ:PPA[1:17]を不使用 64kBページ:PPA[1:15]を不使用 (d)N:Non Cachable Area bi
t(ノンキャッシャブルビット) 0=キャッシング可能領域 1=キャッシング不可領域 (e)AC[0:2]:Access Control
bits(アクセス制御ビット) AC[0]:0=リードアクセス可能、1=リードアク
セス不可 AC[1]:0=ライトアクセス可能、1=ライトアク
セス不可 AC[2]:0=実行可能、1=実行不可
【0013】(f)M:Modify bit(変更ビ
ット) 命令TLBにはなく、データTLBにのみ存在する。 0=ライトアクセス未発生 1=ライトアクセス発生 (g)G:Global Page bit(グローバ
ル・ページビット) 0=ローカル・ページ 1=グローバル・ページ (h)V:Entry Valid bit(有効ビッ
ト) 0=無効エントリ 1=有効エントリ
【0014】次に、図8に示すTLB2の動作について
説明する。まず、仮想アドレス(1050)が入力され
てくると、アドレスデコード部(1001)にて、この
仮想アドレス内の仮想ページアドレスの下位アドレスを
デコードし、TLBタグ部(1002)及びTLBデー
タ部(1003)から一つのページテーブルエントリ
(1010,1011)を選択する。選択されたページ
テーブルエントリ内のタグ部(1010)は、アドレス
比較器(1004)に入力される。また、アドレス比較
器(1004)には、仮想アドレス(1050)と、M
MUレジスタ(1100)内のASIDと、選択された
ページテーブルエントリ内のデータ部(1011)の
G,Vビットが入力される。
【0015】アドレス比較器(1004)では、入力さ
れた仮想アドレス(1050)、MMUレジスタ(11
00)内のASIDと、タグ部(1010)のVPA,
ASIDがそれぞれ比較される。ASIDの比較はGビ
ットが0の時のみ有効であり、全体の比較結果はVビッ
トが1の時のみ有効である。Vビットが0であれば、無
条件で比較結果は不一致となる。アドレス比較器(10
04)で比較した結果一致したと判明(TLBヒット)
すれば、プログラムで発生したメモリアクセス先の仮想
ページに対するページ表エントリがTLB2(100
0)に登録されていることを意味する。よって、選択さ
れたページテーブルエントリのデータ部(1011)の
PPAがデータ出力部(1005)より出力される。出
力されたPPAは、論理アドレス(1050)中のオフ
セットアドレスと結合処理(1014)されて、物理ア
ドレス(1015)として出力される。
【0016】同時に、ヒットしたページテーブルエント
リ内のデータ部(1011)のN,ACビットは、TL
B2制御部(1101)へ出力される。Nビットがセッ
ト(=1)されていると、生成された物理アドレスでア
クセスしたデータをキャッシュメモリに登録しないよう
な処理が実行される。ACビットは、生成された物理ア
ドレスを用いて実施されるアクセスに対する例外を検出
するために使用される。また、生成された物理アドレス
(1015)を用いて実施されるアクセスがライト処理
である場合には、物理ページが変更されたことを示して
おり、データ部(1011)内のMビットをセットする
処理が実施される。通常、OSは、物理ページを物理メ
モリからページアウトする場合に、Mビットがセットさ
れていれば物理ページの内容を2次記憶に書き戻す処理
を実施する。
【0017】アドレス比較器(1004)において、比
較結果が一致しなかった場合(TLBミス)は、その結
果がTLB2制御部(1101)に伝達される。TLB
2制御部(1101)では、TLBミスに伴う例外処理
が必要であることをCPUコア(1052)に伝達す
る。この例外発生に伴う例外処理ルーチンは、CPUコ
ア(1052)でソフトウェア的に処理される。すなわ
ち、ソフトウェアでは、TLBミスは仮想ページに対す
るページ表エントリがTLBに登録されていないことを
意味するため、TLBミスを起こしたページ表エントリ
をTLB2へ登録するための一連の処理を行う。さら
に、メモリアクセスを再実行するために、TLBミスを
発生した命令へ戻る処理を行う。このため、TLB2内
のTLBタグ部(1002)とTLBデータ部(100
3)は、CPUコア(1052)で実行されるロード/
ストア命令によりアクセス可能となっている。ストア命
令によりデータを書き込む場合は経路(1110)か
ら、ロード命令によりデータを読み出す場合は経路(1
111)により実行される。
【0018】また、図8に示すように、TLB2(10
00)を制御するために、MMUレジスタ(1100)
がある。MMUレジスタ(1100)は、TLBタグ部
(1002)及びTLBデータ部(1003)と同様
に、CPUコアからのロード/ストア命令によりアクセ
ス可能である。このMMUレジスタ(1100)は、命
令TLB及びデータTLBで共通して使用されるもので
ある。
【0019】次に、図9は、図8にあるMMUレジスタ
(1100)の一例を表した図である。 ◇MTOP(MMU TLB Operation D
esignationRegister)(1200) TLBのオペレーションを指定する。 bit0<Pi>:命令TLB全エントリパージ 0=TLBをパージしない 1=TLBの全エントリをパージする bit1<Pd>:データTLB全エントリパージ 0=TLBをパージしない 1=TLBの全エントリをパージする bit31<S>:命令TLB及びデータTLBサーチ 0=TLBをサーチしない 1=MPVAレジスタ内の仮想アドレスとASIDを用
いてTLBをサーチする。マッチしたTLBエントリの
インデックス・アドレスをMIDXレジスタへ登録す
る。
【0020】◇MPSZ(MMU Page Size
Designation Register)(12
01) メモリのページサイズを指定する。 bit30−31<Size>:ページサイズ指定 00=4KB Page 01=16KB Page 10=64KB Page 11=Reserved
【0021】◇MASID(MMU Address
Space ID Register)(1202) オペレーティングシステムが管理するプロセスのアドレ
ス空間IDを保持する。 Bit24−31<ASID>:アドレス空間ID(8
ビット)
【0022】◇MIEVA(MMU Instruct
ion Exception Virtual Add
ress Register)(1203) 例外を発生した命令の仮想アドレス(ページアドレス)
とMASIDレジスタ内アドレス空間IDを保持する。 bit1−19<EVA>:例外仮想アドレス(ページ
アドレス) bit24−31<ASID>:アドレス空間ID(8
ビット)
【0023】◇MDEVA(MMU Operand
Exception VirtualAddress
Register)(1204) 例外を発生したオペランドの仮想アドレス(ページアド
レス)とMASIDレジスタ内アドレス空間IDを保持
する。 bit1−19<EVA>:例外仮想アドレス(ページ
アドレス) bit24−31<ASID>:アドレス空間ID(8
ビット)
【0024】◇MESTS(MMU Exceptio
n Status Register)(1205) MMU例外を起こした要因を示す。 bit27<DS>:オペランドストアフラグ(ストア
処理が例外を発生させた) bit28<DA>:オペランドアクセス例外フラグ bit29<DT>:オペランドTLBミス例外フラグ bit30<IA>:命令アクセス例外フラグ bit31<IT>:命令TLBミス例外フラグ
【0025】◇MPTB(MMU Page Tabl
e Base Register)(1206) 現在のページ表のベースアドレスを保持する。 bit1−27<PTBase>:ページテーブル表ベ
ース
【0026】◇MPVA(MMU Purge Vir
tual Address Register)(12
07) TLBサーチ操作で使用される情報を保持する。 bit1−19<PVA>:TLBタグ部のVPAと比
較されるページアドレス MMUレジスタMPSZで示されるページサイズに応じ
て、使用サイズが変更される。 4kBページ:PVA[1:19]全て使用 16kBページ:PVA[1:17]を不使用 64kBページ:PVA[1:15]を不使用 bit24−31<PASID>:TLBタグ部のAS
IDと比較されるASID
【0027】◇MIDX(MMU Search In
DeX Register)(1208) TLBサーチ操作の結果がセットされる。 bit8<I>:ITLBマッチ検出フラグ bit9−15<IDXI>:マッチしたITLBエン
トリのインデックス・アドレス bit24<D>:DTLBマッチ検出フラグ bit25−31<IDXD>:マッチしたDTLBエ
ントリのインデックス・アドレス
【0028】以上、図8で説明したTLB2を用いた仮
想記憶方式によるアドレス変換処理は、CPUコアから
は命令フェッチとオペランドアクセスで発生する。近
年、プロセッサの処理速度の向上は目覚しく数100M
Hzで動作するものが珍しくなくなってきた。このた
め、パイプラインの1ステージにかけることができる処
理時間がますます短くなってきている。しかも、プログ
ラム実行時に使用するメモリサイズが大きくなってきて
いるため、MMUでアドレス変換効率の向上を図るため
のTLBのエントリ数が増加してきている。そして、こ
のTLBエントリ数増加が、マイクロプロセッサの動作
周波数向上の足かせとなってきている。
【0029】
【発明が解決しようとする課題】そこで、この発明は、
TLBへのエントリ数を削減することによってマイクロ
プロセッサの動作周波数を向上させることを目的とす
る。
【0030】
【課題を解決するための手段】この発明に係るメモリ管
理機構は、仮想ページを特定する仮想ページアドレスと
物理ページを特定する物理ページアドレスとを対応づけ
る複数のアドレス変換情報を格納するページ表を有する
計算機に備えられる、仮想ページアドレスと物理ページ
アドレスとを変換するメモリ管理機構において、少なく
とも一つの上記アドレス変換情報を格納する第一のアド
レス変換バッファと、上記第一のアドレス変換バッファ
よりも多くの上記アドレス変換情報を格納する第二のア
ドレス変換バッファと、上記ページ表に格納されている
アドレス変換情報を読みこみ、読みこんだアドレス変換
情報を上記第二のアドレス変換バッファへ登録すること
を制御する第二の制御部と、上記第二の制御部が上記登
録したアドレス変換情報を入力し、入力したアドレス変
換情報を上記第一のアドレス変換バッファへ登録するこ
とを制御する第一の制御部とを備えることを特徴とす
る。
【0031】上記第二の制御部は、上記第二のアドレス
変換バッファへ新たなアドレス変換情報を登録する領域
がない場合に、既に第二のアドレス変換バッファへ登録
されているアドレス変換情報から無効にするアドレス変
換情報を選択し、上記第一の制御部へ上記選択したアド
レス変換情報を通知し、上記第一の制御部は、上記選択
したアドレス変換情報が上記第一のアドレス変換バッフ
ァに格納されているかを検索し、検索した結果、上記選
択したアドレス変換情報が格納されている場合は、上記
選択したアドレス変換情報を無効にすることを特徴とす
る。
【0032】上記アドレス変換情報は、仮想ページアド
レスを含み、上記第一のアドレス変換バッファは、さら
に、仮想ページアドレスを入力し、上記第一のアドレス
変換バッファに格納されたアドレス変換情報に含まれる
仮想ページアドレスと入力した仮想ページアドレスとを
比較し、比較した結果から上記入力した仮想ページアド
レスが上記アドレス変換情報に含まれているかを判定す
る比較部を備えることを特徴とする。
【0033】上記比較部は、新たに登録するアドレス変
換情報を入力し、第一のアドレス変換バッファに格納さ
れたアドレス変換情報と上記新たに登録するアドレス変
換情報とを比較して比較結果を出力し、上記第一のアド
レス変換バッファは、さらに、上記比較部から比較結果
を入力し、第一のアドレス変換バッファへ格納されてい
るアドレス変換情報によって特定される物理ページと上
記新たに登録するアドレス変換情報によって特定される
物理ページとが連続しているページであるかを判定する
マージ処理部を備えることを特徴とする。
【0034】上記マージ処理部は、連続していると判定
した場合に、既に登録されているアドレス変換情報へ新
たに登録するアドレス変換情報を併合して一つのアドレ
ス変換情報として登録することを特徴とする。
【0035】上記アドレス変換情報は、アドレス変換情
報によって特定される物理ページの属性の情報を含み、
上記マージ処理部は、上記新たに登録するアドレス変換
情報と既に登録されているアドレス変換情報とにそれぞ
れ含まれる物理ページの属性の情報が一致する場合に、
上記既に登録されているアドレス変換情報へ上記新たに
登録するアドレス変換情報を併合して一つのアドレス変
換情報として登録することを特徴とする。
【0036】上記マージ処理部は、上記既に登録されて
いるアドレス変換情報へ上記新たに登録するアドレス変
換情報を併合して一つのアドレス変換情報として登録し
た場合は、上記新たに登録するアドレス変換情報に関す
る情報をマージ情報として、上記一つのアドレス変換情
報へ設定し、比較部は、上記第一のアドレス変換バッフ
ァに格納されているアドレス変換情報にマージ情報が設
定されている場合には、上記マージ情報を用いて、入力
した仮想ページアドレスが上記アドレス変換情報に含ま
れているかを判定することを特徴とする。
【0037】上記第一のアドレス変換バッファは、複数
のアドレス変換情報を格納し、上記複数のアドレス変換
情報それぞれに対応する複数の比較部と複数のマージ処
理部とを備えることを特徴とする。
【0038】
【発明の実施の形態】実施の形態1.この発明に係る実
施の形態1のメモリ管理機構は、ソフトウェアから扱え
る大容量TLB2(第二のアドレス変換バッファ)の上
位階層に、ハードウェア処理する高速処理可能な小用量
TLB1(第一のアドレス変換バッファ)を設けて、こ
のTLB1をパイプラインの1ステージ処理に組み込む
ようにしたメモリ管理機構に関するものである。
【0039】図1に、本発明のメモリ管理機構を示す。
マイクロプロセッサの構成は、図7と同様である。図1
のTLB2(1000)は、図8に示す従来のTLB2
と同一方式のダイレクトマッピング方式TLBである。
TLB2(1000)では、従来と同様に、仮想アドレ
ス(1050)の入力とMMUレジスタ(30)内のA
SIDに対してTLBの検索を行う。TLBヒットした
場合は、物理アドレス(1015)を生成する。一方、
TLBミスした場合は、この結果がTLB2制御部(3
1)に伝達され、CPUコアに対して例外処理が発生す
る。また、TLB2(1000)内のTLBタグ部(1
002)とTLBデータ部(1003)は、CPUコア
(1152)からロード/ストア命令によりアクセス可
能であり、ストア命令時には経路(1110)からデー
タが入力され、ロード時には経路(1111)からデー
タが読み出される。TLB2制御部(第二の制御部)
(31)は、図8に示す従来のTLB2制御部(110
1)とは異なり、TLB1制御部(第一の制御部)
(9)と信号(33)をやり取りして制御する(この制
御に関しては後述する)。
【0040】また、MMUレジスタ(30)は、図9に
示す従来のMMUレジスタ群と同一構成である。しか
し、MMUレジスタ(30)は、従来のものと異なり、
TLB1制御部(9)と信号(32)をやり取りして制
御する。すなわち、TLB1で検知した各種例外情報等
もMMUレジスタ(30)に反映される場合がある。
【0041】図1のTLB1(1)は、本発明で新たに
追加したTLBである。本発明のTLB1(1)は、一
例として、フルアソシアティブ方式のTLBで示してい
る。フルアソシアティブ方式は、エントリ毎に比較器を
内蔵しており、仮想アドレス全てをこの比較器で比較を
行い、TLBのヒット/ミスの判定を実施する方式であ
る。TLB1(1)の各エントリには、TLB2(10
00)のコピーを保持するために、TLB2のTLBタ
グ部(1002)とTLBデータ部(1003)の一つ
のエントリ(1010,1011)と同一構成のタグ部
レジスタ(2)とデータ部レジスタ(4)を内蔵してい
る。また、エントリのマージ処理を司るマージ処理部
(3)と、比較器(5)を内蔵している。これらTLB
1(1)は、通常1セット以上のエントリを内蔵する。
TLB1(1)の各エントリのうち、いずれかがヒット
した場合、出力制御部(6)を通してヒットしたエント
リの物理ページアドレスが出力される。物理ページアド
レスは、結合処理部(20)によりページ内オフセット
と結合されて物理アドレスを生成する。また、ヒットし
たエントリ内のN,AC,Mビットの情報は、TLB1
制御部(9)に転送されて例外検出等の各種処理に利用
される。
【0042】TLB1(1)の各エントリのうち、いず
れもヒットしなかった場合は、TLB1ミスであること
がTLB1制御部(9)に出力されて、TLB1(1)
の登録処理が開始される。TLB1(1)の各エントリ
がいずれも有効なデータを保持しているため、新規デー
タを上書きする必要がある場合は、いずれのエントリに
上書きするかをLRU(Least Recently
Used)制御部(8)にて判定する。また、新規デ
ータを既にTLB1のいずれかのエントリに登録してあ
るデータにマージ可能な場合は、マージ処理部(3)に
よりマージ処理が実施される。マージ処理部(3)によ
って実施されるマージ処理機構により、TLB1は自身
のエントリ数より多い、TLB2エントリのコピーを保
持することが可能となっている。
【0043】TLB1(1)の各エントリを更新するの
は、CPUコア(1152)のストア命令によりTLB
2(1000)にアクセスする経路(1110)か、T
LB2から直接データを読み出す経路(1111)のい
ずれかをセレクタ(21)により選択し、経路(22)
によりデータを取り込む場合がある。これら新規データ
によりTLB1をアクセスするのは、以下の場合であ
る。 ・TLB1無効化処理。 ・TLB1マージ処理。 ・TLB1登録処理。 TLB1検索処理は、TLB1に所望の仮想アドレスが
登録されているかどうかを検索する。TLB無効化処理
は、TLB1に既に登録されているエントリを無効化す
る。TLBマージ処理は、新規にTLB1に登録するエ
ントリがマージ可能かどうかを調査する。TLB1登録
処理は、新規にTLB1へエントリを登録する。
【0044】図2に、図1に示すTLB1(1)の一つ
のエントリの詳細なブロック構成を示す。22aは、C
PUコアまたはTLB2から本エントリに入力されるア
ドレス空間ID(ASID)、仮想ページアドレス(V
PA)である。22bは、CPUコアまたはTLB2か
ら本エントリへ入力される物理ページアドレス(PP
A),ノンキャッシャブルビット(N)、アクセス制御
ビット(AC)、変更ビット(M)、グローバルビット
(G)、有効ビット(V)である。2は本エントリ内の
タグ部レジスタであり、ASIDとVPAが格納されて
いる。4は本エントリ内のデータ部レジスタであり、P
PA,N,AC,M,G,Vが格納されている。
【0045】81はページサイズレジスタ(PSZ)で
あり、エントリマージ処理を実行した後のページサイズ
の最大値を保持している。82は上限レジスタ(UL)
であり、PSZレジスタで示すページ範囲の中のマージ
された最上位ページを示している。83はシフタであ
り、PSZレジスタ値を1ビット左シフトする。また、
マージ処理管理部MERGE(80)は、比較器の結果
信号(70〜76)を受けて、PSZ,ULレジスタの
メインテナンスを実施することにより、マージ処理を制
御する。比較器CMP1(50)は、外部バス22aか
ら入力されるASIDと、タグ部レジスタ2のASID
を比較する。但し、データ部レジスタ4のグローバルビ
ットGが有効である時(=1)は、比較器CMP1の結
果は双方のASIDの値に依らずに一致しているという
結果となる。
【0046】比較器CMP2(51)は、外部バス22
aから入力されるVPAの一部と、タグ部レジスタ2の
VPAの相当部分を比較する。比較器CMP3(52)
は、外部バス22aから入力されるVPAの最大マージ
可能ページサイズに相当する下位アドレスと、タグ部レ
ジスタ2のVPAの相当部分を比較する。例えば、最大
マージ可能ページサイズが16ページである場合(以
下、最大マージ可能ページサイズは16ページで説明す
る)には、比較器CMP3(52)では、VPAの下位
4ビットを比較することになる。そして、比較器CMP
2(51)では、比較器CMP3(52)で比較したア
ドレスを除く残りのVPAアドレスを比較する。大小比
較器SUB(53)は、タグ部レジスタ2のVPAの下
位4ビットと、4ビットの上限レジスタULを比較し、
VPAがULより小さいかどうかを判定する。
【0047】比較器CMP4(54)は、外部バス22
bから入力されるPPAの一部と、データ部レジスタ4
のPPAの相当部分を比較する。比較器CMP5(5
5)は、外部バス22bから入力されるPPAの最大マ
ージ可能ページサイズに相当する4ビットの下位アドレ
スと、データ部レジスタ4のPPAの相当部分を比較す
る。比較器CMP4(54)では、比較器CMP5で比
較したアドレスを除く残りのPPAアドレスを比較す
る。比較器CMP6(56)では、外部バス22bから
入力されるN,AC,M,Gビットと、データ部レジス
タ4の相当するビットを比較する。
【0048】また、比較器CMP3(52)、比較器C
MP5(55)と、大小比較器SUB(53)では、ペ
ージサイズレジスタPSZ(81)の値に依って、比較
条件が異なってくる(これら比較条件については後で説
明する)。また、比較器CMP1(50),CMP2
(51),CMP3(52),SUB(53),CMP
4(54),CMP5(55),CMP6(56)の結
果(それぞれ70,71,72,73,74,75,7
6)は、TLB1検索処理と、TLB1無効化処理と、
TLB1マージ処理で使用される。
【0049】TLB1検索処理と、TLB1無効化処理
では、比較器の結果(70,71,72)と、データ部
レジスタ4の有効ビットVから、TLBがヒットかミス
かをヒット判定部(60)で判定する。そして、TLB
ヒットした場合は、セレクタ(61)を介して、データ
部レジスタ4の内容を読み出す。TLB1無効化処理
で、TLBヒットした場合は、データ部レジスタ4の有
効ビットVを無効にする。
【0050】TLB1マージ処理では、比較結果(7
0,71,72,73,74,75,76)全てを用い
て、マージ処理が可能かどうかの判定を行なう。マージ
処理とは、既にTLB1に登録されているページのエン
トリ(被マージエントリ)へ、新規に登録するページの
エントリ(マージエントリ)のデータをまとめてしまう
処理を指している。すなわち、被マージエントリのペー
ジサイズレジスタPSZと上限レジスタULの内容を制
御することにより、複数のページを一つのエントリへ登
録することが可能となる。
【0051】マージ処理は、単独の被マージエントリで
かつVPAの下位4ビットが全て“0”であるエントリ
から開始される。この被マージエントリにおけるPS
Z,ULレジスタの値は以下に示すものとなっている。 (PSZ,UL)=(4’b0000,4’b0001):単独ページ 被マージエントリに登録されるマージされるマージエン
トリは、既に被マージエントリに登録されている最大ア
ドレスページに連続するアドレスのページである。すな
わち、被マージエントリが単独エントリである場合に
は、マージされるエントリのVPA,PPAは、被マー
ジエントリのものと下位1ビットが異なるのみである。
また、VPA,PPA以外のASID,N,AC,Gビ
ットは全て一致している必要があり、かつ被マージエン
トリのMビットは“0”でなければならない。このよう
に、単独ページに連続するページがマージヒットし、2
ページがマージされたエントリのPSZ,ULレジスタ
の値は、以下に示すものとなっている。 (PSZ,UL)=(4’b0001,4’b0010):2ページマージ
【0052】これと同様に、3ページ以降もマージ可能
である。マージ処理時に比較するVPA,PPAの値
は、ULレジスタに示す値において最上位にある“1”
より以下のビットを全て無視して、それぞれ比較器CM
P3(52)、比較器CMP5(55)で比較する。ま
た、マージエントリのページが被マージエントリの次ペ
ージであることは、VPAの下位4ビットとULレジス
タの値を比較器SUB(53)で一致が検出されること
により判定することが可能である。すなわち、ULレジ
スタの値は、被マージエントリの次のページの下位4ビ
ットを保持している。3〜16個のページが登録された
後のPSZ,ULレジスタの値は、以下に示すものとな
っている。
【0053】 (PSZ,UL)=(4’b0011,4’b0011):3ページマージ (PSZ,UL)=(4’b0011,4’b0100):4ページマージ (PSZ,UL)=(4’b0111,4’b0101):5ページマージ (PSZ,UL)=(4’b0111,4’b0110):6ページマージ (PSZ,UL)=(4’b0111,4’b0111):7ページマージ (PSZ,UL)=(4’b0111,4’b1000):8ページマージ (PSZ,UL)=(4’b1111,4’b1001):9ページマージ (PSZ,UL)=(4’b1111,4’b1010):10ページマージ (PSZ,UL)=(4’b1111,4’b1011):11ページマージ (PSZ,UL)=(4’b1111,4’b1100):12ページマージ (PSZ,UL)=(4’b1111,4’b1101):13ページマージ (PSZ,UL)=(4’b1111,4’b1110):14ページマージ (PSZ,UL)=(4’b1111,4’b1111):15ページマージ (PSZ,UL)=(4’b1111,4’b0000):16ページマージ
【0054】PSZレジスタの値は、マージ処理時では
なく、TLB1検索処理時に使用する。すなわち、TL
B1検索処理時には、VPAの下位4ビットの値は、P
SZレジスタで示す“1”の部分を無視して、比較器C
MP3(52)で比較する。さらに、VPAの下位4ビ
ットとULレジスタ値を比較器SUB(53)で比較
し、VPAの下位4ビットの値がULレジスタの値より
も小さい場合に、TLB検索により所望のページデータ
がTLBに登録されていたことが示される。
【0055】図3に、図1に示す本発明のTLB1,T
LB2を用いた物理アドレスから仮想アドレスへの変換
処理のフローチャートを示す。本アドレス変換処理機構
に仮想アドレスが入力されてくると(S11)、まず、
この仮想アドレス等を用いてTLB1の検索を実施する
(S12)。このTLB1検索において、TLBヒット
すれば(S12でヒット)、所望の物理アドレス生成を
行い、目的であったアドレス変換処理が完了する(S1
3)。一方、TLB1検索において、TLBミスすれば
(S12でミス)、TLB2検索を実施する(S1
4)。
【0056】このTLB2検索において、TLBヒット
すれば(S14でヒット)、TLB2内のヒットしたエ
ントリデータをS23〜S28の工程によりTLB1に
格納し、S11に戻り、再度仮想アドレスにてTLB1
検索処理を実施して(S12)所望の物理アドレスの生
成を実施する。以下、S23〜S28の工程を説明す
る。TLB2内のヒットしたエントリデータは、タグ部
及びデータ部全て読み出されて(S23)、TLB1へ
の格納処理に使用される。TLB1への格納では、ま
ず、マージ処理が可能であるかどうかをチェックするた
めのTLB1検索を実施する(S24)。この検索にお
いて、TLB1ヒットすれば(S24でヒット)、図2
を用いて説明したTLB1マージ処理を実施し、TLB
1格納処理を完了する(S25)。
【0057】一方、TLB1検索において、TLBミス
すれば(S24でミス)、新規に登録可能なエントリが
TLB1内に存在するため、TLB1のエントリを更新
する必要のない場合は(S26でなし)、そのままTL
B1の登録を実施する(S28)。そして、TLB1の
エントリが全て使用されているため、あるエントリを更
新する必要がある場合は(S26であり)、リプレース
アルゴリズム従って、TLB1のあるエントリの更新処
理を実施する(S27)。これら一連のTLB1格納処
理を完了する(S28)。S28を完了した後に、S1
1に戻り、再度TLB1検索処理を実施して(S1
2)、所望の物理アドレス生成を行う(S13)。
【0058】一方、TLB2検索において、TLBミス
すれば(S14でミス)、例外処理によってアドレス変
換用のデータを生成し(S15)、ソフトウェアによっ
て上記アドレス変換用のデータのアドレス変換処理を行
い(S16)、変換したアドレスデータをTLB2へ登
録する(S17)。次に、S18〜S22の工程によ
り、このデータをTLB2に格納する処理を実施する。
このTLB2への格納処理にて、TLB2内に新規に登
録可能なエントリが存在するため、TLB2のエントリ
を更新する必要のない場合は(S18でなし)、そのま
まTLB2への登録処理を実施し(S22)、S23へ
進む。そして、TLB2内のエントリが全て使用されて
いるため、あるエントリを更新する必要がある場合は
(S18であり)、ソフトウェアが更新エントリを決定
してTLB2更新処理を実施する。このTLB2更新処
理の前に、更新される前のデータをTLB2から読み出
し(S19)、TLB1検索を実施する必要がある(S
20)。このTLB1検索において、TLBヒットした
場合は(S20でヒット)、TLB2の更新前データが
TLB1にも存在したことを意味するため、このヒット
したエントリを無効化する必要がある(S21)。
【0059】一方、TLB1検索において、TLBミス
した場合には(S20でミス)、TLB1においては特
に何もする必要はなく、TLB2の登録処理に進む(S
22)。以上、TLB1,TLB2を用いた仮想アドレ
スから物理へのアドレス変換手順についてフローチャー
トを用いて説明した。この実施の形態において、一例と
して示すアドレスバッファ機構は、これらアドレス変換
処理のうち、ソフトウェア処理で行うのはTLB2検索
でミスして例外発生した後のアドレス変換処理及び登録
処理のみであり、他の処理は全てハードウェアで処理す
るための制御機構を備えている。これら制御機構によ
り、ソフトウェアは、TLB1を意識することなく、T
LB2のメインテナンス処理のみを実施していればよ
い。
【0060】図4に、図1に示す本発明のTLB1,T
LB2を用いて実施する物理アドレスから仮想アドレス
への変換処理のタイミングチャートを示す。最上段のタ
イミングチャートは、TLB1がヒットした場合のもの
である。真中のタイミングチャートは、TLB1がミス
し、かつ、TLB2がヒットした場合のものである。そ
して、最下段のタイミングチャートは、TLB1がミス
し、かつ、TLB2もミスした場合のものである。これ
らTLB1,TLB2は、いずれもオペランドアクセス
用のものである。命令フェッチ用のTLB1,TLB2
も別途備えているけれども、本説明では必ずヒットする
と仮定している。
【0061】本発明のマイクロプロセッサは、5段のパ
イプラインステージより構成されるCPUコアを内蔵し
ている。これらパイプラインステージは、命令フェッチ
を行うIFステージと、命令デコードを行うDステージ
と、命令実行を行うEステージと、オペランドアクセス
を行うMステージと、そして、命令実行結果を格納する
Wステージである。
【0062】最上段のもののようにTLB1がヒットし
た場合は、TLB1アクセスは1クロックサイクル内に
完了するため、パイプライン処理が乱れることなく、5
クロックサイクルで1命令の実行が完了する。これに対
して真中のもののように、TLB1がミスしTLB2が
ヒットした場合、ヒットしたTLB2エントリのデータ
をTLB1にマージ、あるいは、登録し(検索を含めて
2クロックサイクル:CK4−CK5)、再度TLB1
検索を実施する(CK6)のに、3クロックサイクル余
分にかかることになる。
【0063】さらに、最下段のもののように、TLB
1,TLB2いずれもミスした場合には、CK4に示す
例外処理が複数クロックサイクルかかり、例外処理で生
成したアドレス変換用のデータをTLB2に登録し(C
K5)、その後、TLB1への格納処理に3クロックサ
イクルかかることになる。また、図10は、図8に一例
として示すTLB2を用いて、実施した仮想アドレス空
間から物理アドレス空間へのマッピングの一例を示す。
図4と図10に示すように、図4では、図10に比べ、
1サイクルの時間が短くなっている。従って、TLB1
を用いることにより、パイプラインステージの各ステー
ジに要する時間を短縮することが可能になる。
【0064】前述した命令フェッチ用のTLB1,TL
B2によるアドレス変換処理においてミスが発生した場
合も、オペランドアクセス処理と同様な処理サイクル数
がかかる。図5に、図1に示す本発明のTLB1,TL
B2を用いて実施した仮想アドレス空間から物理アドレ
ス空間へのマッピングの一例を示す。仮想アドレス空間
(90)上の連続する6ページVPT1,VPT2,V
PT3,VPT4,VPT5,VPT6は、物理アドレ
ス空間(91)上ではそれぞれPPT1,PPT2,P
PT3,PPT4,PPT5,PPT6へマッピングさ
れている。これら物理アドレス空間上の6個のページの
うち、ページPPT1,PPT2,PPT3の3ページ
は連続するページであり、その空間属性はいずれも等し
い。これら連続する3ページのアドレス変換情報をTL
B2(1000)に登録した場合には3エントリ必要と
なるのに対して、TLB1(1)に登録した場合、これ
ら3ページをマージすることが可能(もちろん前述した
ように、マージするための条件を満たす必要がある)で
あるため、1エントリのみの使用で済む可能性がある。
【0065】以上述べてきたように、本発明のアドレス
変換機構では、小容量ではあるが高速アドレス変換可能
なTLB1と、比較的大容量なTLB2とを組み合わせ
ることにより、アドレス変換処理によって生じるCPU
コアのパイプライン処理の速度的ペナルティを最小限に
抑えることが可能となった。また、TLB1にエントリ
マージ機構を組み込むことにより、TLBミスによるペ
ナルティも抑えることが可能となっている。
【0066】以上のように、このメモリ管理機構は、仮
想ページアドレスとページ内オフセット値より構成され
る仮想アドレスで参照する空間上に配置されたプログラ
ムに従ってデータを処理する中央演算処理装置と、該仮
想アドレスの仮想ページアドレスを物理ページアドレス
に置き換えた物理アドレスで参照される空間上に、該プ
ログラムと該データを格納する主記憶装置から構成され
る計算機システムであって、該仮想ページアドレスで特
定されるページと、該物理ページアドレスで特定される
ページ間のアドレス変換を高速に行うために、該アドレ
ス変換情報を管理しているページ表エントリを登録可能
な第一のアドレス変換バッファと(TLB1)、第一の
アドレス変換バッファより大容量の第二のアドレス変換
バッファ(TLB2)を備え、最新のアドレス変換リク
エストアドレスに対するアドレス変換情報が、該中央演
算処理装置か該第二のアドレス変換バッファに書き込ま
れた後に、該第一のアドレス変換バッファにも書き込む
ように制御する制御手段を具備し、該アドレス変換リク
エストに対して、より高速なアドレス変換処理が可能な
第一のアドレス変換バッファでアドレス変換処理を行う
ことを特徴とする。
【0067】また、上記第二のアドレス変換バッファに
新アドレス変換情報を登録する時に、既に登録されてい
る旧アドレス変換情報を削除する必要がある場合は、該
旧アドレス変換情報が上記第一のアドレス変換バッファ
にも存在するかどうかを検索し、存在する場合は該第一
のアドレス変換バッファから該旧アドレス変換情報を削
除するように制御する制御手段(TLB1制御部)を備
える。
【0068】上記第一のアドレス変換バッファに新アド
レス変換情報を登録する時に、該新アドレス変換情報が
示す仮想及び物理ページが、既に登録されている旧アド
レス変換情報が示す仮想及び物理ページに連続するペー
ジであることを調査し、該新アドレス変換情報が示す各
種ページ属性が、既に登録されている該旧アドレス変換
情報が示す各種ページ属性が同一であることを調査する
制御手段(マージ処理部)とを備える。
【0069】さらに、マージ処理部は、新アドレス変換
情報に示すページが、既に登録されている旧アドレス変
換情報に示すページに対して、仮想アドレス空間上にお
いても物理アドレス空間上においても連続しており、か
つ同一の空間属性を備えることが判明した時に、該新ア
ドレス変換情報と該旧アドレス変換情報を一つのアドレ
ス変換情報として併合して登録するように制御する。
【0070】また、第一のアドレス変換バッファにおい
て、新及び旧アドレス変換情報を併合して登録した後
に、さらにアドレス変換リクエスト処理を行った時に、
該併合アドレス変換情報によりアドレス変換処理が実行
される制御手段(比較部)を備える。
【0071】
【発明の効果】この発明のメモリ管理機構によれば、小
容量ではあるが高速アドレス変換可能なTLB1と、比
較的大容量なTLB2とを組み合わせることにより、ア
ドレス変換処理によって生じるCPUコアのパイプライ
ン処理の速度的ペナルティを最小限に抑えることが可能
となった。
【0072】またTLB1にマージ処理機構を組み込む
ことにより、TLBミスによるペナルティも抑えること
が可能となっている。
【0073】またTLB1にマージ処理機構を組み込む
ことにより、少ない容量のアドレス変換バッファへより
多くのアドレス変換情報を格納することができる。
【0074】また、TLB1にマージ処理によって併合
されたアドレス変換情報を検索する比較部を備えること
により、少ないアドレス変換情報で検索可能な仮想ペー
ジアドレスを増やすことができる。
【図面の簡単な説明】
【図1】 実施の形態1のメモリ管理機構の構成の一例
を表した図。
【図2】 実施の形態1のTLB2の構成の一例を表し
た図。
【図3】 実施の形態1のTLB1とTLB2を用いた
アドレス変換処理の動作の一例を表した図。
【図4】 実施の形態1のTLB1とTLB2を用いた
アドレス変換処理のタイミングチャートの一例を表した
図。
【図5】 実施の形態1のTLB1とTLB2を用いた
アドレス変換処理のマッピングの一例を表した図。
【図6】 従来の仮想記憶方式におけるアドレス変換の
一例を表した図。
【図7】 従来のメモリ管理機構を内蔵したマイクロプ
ロセッサの一例を表した図。
【図8】 従来のTLBの一例を表した図。
【図9】 MMUレジスタの詳細の一例を表した図。
【図10】 従来のTLBを用いたアドレス変換処理の
タイミングチャートの一例を表した図。
【符号の説明】
1 TLB1、2 タグ部レジスタ、3 マージ処理
部、4 データ部レジスタ、5 比較器、6 出力制御
部、8 LRU制御部、9 TLB1制御部、20 結
合処理部、22a 外部から入力されるタグ部レジス
タ、22b 外部から入力されるデータ部レジスタ、5
0 比較器CMP1、51 比較器CMP2、52 比
較器CMP3、53 大小比較器SUB、54 比較器
CMP4、55 比較器CMP5、56 比較器CMP
6、60 ヒット判定部、61 セレクタ、80 マー
ジ処理管理部MERGE、81 ページサイズレジスタ
(PSZ)、82 上限レジスタ(UL)、83 シフ
タ、1000 TLB2、1001 アドレスデコーダ
部、1002 TLBタグ部、1003 TLBデータ
部、1004 アドレス比較部、1005 データ出力
部、1010 タグ部、1050 仮想アドレス、10
51 上位フィールド、1052 下位フィールド、1
053 加算器、1054 ページ表ベース、1055
ページ表限界、1057 ページ表エントリ、106
0 物理アドレス、1100 MMUレジスタ、115
0 マイクロプロセッサ、1152 CPUコア、11
53 命令TLB、1154 データTLB、1155
命令キャッシュメモリ、1156データキャッシュメ
モリ、1157 バスインターフェイス部、1160
パイプラインステージ、1161 メモリ管理部。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 仮想ページを特定する仮想ページアドレ
    スと物理ページを特定する物理ページアドレスとを対応
    づける複数のアドレス変換情報を格納するページ表を有
    する計算機に備えられる、仮想ページアドレスと物理ペ
    ージアドレスとを変換するメモリ管理機構において、 少なくとも一つの上記アドレス変換情報を格納する第一
    のアドレス変換バッファと、 上記第一のアドレス変換バッファよりも多くの上記アド
    レス変換情報を格納する第二のアドレス変換バッファ
    と、 上記ページ表に格納されているアドレス変換情報を読み
    こみ、読みこんだアドレス変換情報を上記第二のアドレ
    ス変換バッファへ登録することを制御する第二の制御部
    と、 上記第二の制御部が上記登録したアドレス変換情報を入
    力し、入力したアドレス変換情報を上記第一のアドレス
    変換バッファへ登録することを制御する第一の制御部と
    を備えることを特徴とするメモリ管理機構。
  2. 【請求項2】 上記第二の制御部は、上記第二のアドレ
    ス変換バッファへ新たなアドレス変換情報を登録する領
    域がない場合に、既に第二のアドレス変換バッファへ登
    録されているアドレス変換情報から無効にするアドレス
    変換情報を選択し、上記第一の制御部へ上記選択したア
    ドレス変換情報を通知し、 上記第一の制御部は、上記選択したアドレス変換情報が
    上記第一のアドレス変換バッファに格納されているかを
    検索し、検索した結果、上記選択したアドレス変換情報
    が格納されている場合は、上記選択したアドレス変換情
    報を無効にすることを特徴とする請求項1記載のメモリ
    管理機構。
  3. 【請求項3】 上記アドレス変換情報は、仮想ページア
    ドレスを含み、 上記第一のアドレス変換バッファは、さらに、仮想ペー
    ジアドレスを入力し、 上記第一のアドレス変換バッファに格納されたアドレス
    変換情報に含まれる仮想ページアドレスと入力した仮想
    ページアドレスとを比較し、比較した結果から上記入力
    した仮想ページアドレスが上記アドレス変換情報に含ま
    れているかを判定する比較部を備えることを特徴とする
    請求項1または2記載のメモリ管理機構。
  4. 【請求項4】 上記比較部は、新たに登録するアドレス
    変換情報を入力し、第一のアドレス変換バッファに格納
    されたアドレス変換情報と上記新たに登録するアドレス
    変換情報とを比較して比較結果を出力し、 上記第一のアドレス変換バッファは、さらに、上記比較
    部から比較結果を入力し、第一のアドレス変換バッファ
    へ格納されているアドレス変換情報によって特定される
    物理ページと上記新たに登録するアドレス変換情報によ
    って特定される物理ページとが連続しているページであ
    るかを判定するマージ処理部を備えることを特徴とする
    請求項3記載のメモリ管理機構。
  5. 【請求項5】 上記マージ処理部は、連続していると判
    定した場合に、既に登録されているアドレス変換情報へ
    新たに登録するアドレス変換情報を併合して一つのアド
    レス変換情報として登録することを特徴とする請求項4
    記載のメモリ管理機構。
  6. 【請求項6】 上記アドレス変換情報は、アドレス変換
    情報によって特定される物理ページの属性の情報を含
    み、 上記マージ処理部は、上記新たに登録するアドレス変換
    情報と既に登録されているアドレス変換情報とにそれぞ
    れ含まれる物理ページの属性の情報が一致する場合に、
    上記既に登録されているアドレス変換情報へ上記新たに
    登録するアドレス変換情報を併合して一つのアドレス変
    換情報として登録することを特徴とする請求項5記載の
    メモリ管理機構。
  7. 【請求項7】 上記マージ処理部は、上記既に登録され
    ているアドレス変換情報へ上記新たに登録するアドレス
    変換情報を併合して一つのアドレス変換情報として登録
    した場合は、上記新たに登録するアドレス変換情報に関
    する情報をマージ情報として、上記一つのアドレス変換
    情報へ設定し、 比較部は、上記第一のアドレス変換バッファに格納され
    ているアドレス変換情報にマージ情報が設定されている
    場合には、上記マージ情報を用いて、入力した仮想ペー
    ジアドレスが上記アドレス変換情報に含まれているかを
    判定することを特徴とする請求項6記載のメモリ管理機
    構。
  8. 【請求項8】 上記第一のアドレス変換バッファは、複
    数のアドレス変換情報を格納し、上記複数のアドレス変
    換情報それぞれに対応する複数の比較部と複数のマージ
    処理部とを備えることを特徴とする請求項4から7いず
    れかに記載のメモリ管理機構。
JP2000325028A 2000-10-25 2000-10-25 メモリ管理機構 Withdrawn JP2002132581A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000325028A JP2002132581A (ja) 2000-10-25 2000-10-25 メモリ管理機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000325028A JP2002132581A (ja) 2000-10-25 2000-10-25 メモリ管理機構

Publications (1)

Publication Number Publication Date
JP2002132581A true JP2002132581A (ja) 2002-05-10

Family

ID=18802468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000325028A Withdrawn JP2002132581A (ja) 2000-10-25 2000-10-25 メモリ管理機構

Country Status (1)

Country Link
JP (1) JP2002132581A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048164A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 情報処理装置およびソフトウェアプリフェッチ制御方法
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム
JPWO2008155848A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 計算機、tlb制御方法およびtlb制御プログラム
JP2012113721A (ja) * 2010-11-25 2012-06-14 Samsung Electronics Co Ltd メモリシステム
WO2013186647A1 (en) * 2012-06-14 2013-12-19 International Business Machines Corporation Managing page table entries in a processing system
US9086988B2 (en) 2012-06-14 2015-07-21 International Business Machines Corporation Identification and consolidation of page table entries
JP2017084389A (ja) * 2008-06-26 2017-05-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
US9785569B2 (en) 2012-06-14 2017-10-10 International Business Machines Corporation Radix table translation of memory

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4520790B2 (ja) * 2004-07-30 2010-08-11 富士通株式会社 情報処理装置およびソフトウェアプリフェッチ制御方法
JP2006048164A (ja) * 2004-07-30 2006-02-16 Fujitsu Ltd 情報処理装置およびソフトウェアプリフェッチ制御方法
JP4998554B2 (ja) * 2007-06-20 2012-08-15 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JPWO2008155848A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 計算機、tlb制御方法およびtlb制御プログラム
US8190853B2 (en) 2007-06-20 2012-05-29 Fujitsu Limited Calculator and TLB control method
JP2009020881A (ja) * 2007-07-12 2009-01-29 Qnx Software Systems Gmbh & Co Kg 可変のページサイズのメモリ編成を実装する処理システム
JP2017084389A (ja) * 2008-06-26 2017-05-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
JP2012113721A (ja) * 2010-11-25 2012-06-14 Samsung Electronics Co Ltd メモリシステム
WO2013186647A1 (en) * 2012-06-14 2013-12-19 International Business Machines Corporation Managing page table entries in a processing system
CN104321755A (zh) * 2012-06-14 2015-01-28 国际商业机器公司 管理处理系统中的页表条目
GB2516602A (en) * 2012-06-14 2015-01-28 Ibm Managing page table entries in a processing system
US9086988B2 (en) 2012-06-14 2015-07-21 International Business Machines Corporation Identification and consolidation of page table entries
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9740628B2 (en) 2012-06-14 2017-08-22 International Business Machines Corporation Page table entry consolidation
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9785569B2 (en) 2012-06-14 2017-10-10 International Business Machines Corporation Radix table translation of memory
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
GB2516602B (en) * 2012-06-14 2018-06-27 Ibm Managing page table entries in a processing system

Similar Documents

Publication Publication Date Title
US4797814A (en) Variable address mode cache
US4612612A (en) Virtually addressed cache
US4731739A (en) Eviction control apparatus
US4332010A (en) Cache synonym detection and handling mechanism
US6681311B2 (en) Translation lookaside buffer that caches memory type information
JP3713312B2 (ja) データ処理装置
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US6854046B1 (en) Configurable memory management unit
JP2557174B2 (ja) データのセット位置の予測装置
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US6622211B2 (en) Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
US5379394A (en) Microprocessor with two groups of internal buses
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
KR20170100003A (ko) 가상 주소들을 사용하여 액세스된 캐시
KR101898322B1 (ko) 상이한 인덱싱 방식을 사용하는 1차 캐시와 오버플로 캐시를 갖는 캐시 시스템
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
KR100354465B1 (ko) 어드레스 변환 회로
JP3825974B2 (ja) トランスレーション・ルックアサイド・バッファ回路
US6044447A (en) Method and apparatus for communicating translation command information in a multithreaded environment
JP2013097671A (ja) アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置
WO2013084315A1 (ja) 演算処理装置、及び、演算処理装置の制御方法
JP2002132581A (ja) メモリ管理機構
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
US11687466B1 (en) Translation lookaside buffer consistency directory for use with virtually-indexed virtually-tagged first level data cache that holds page table permissions

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051018

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108