JPH11238015A - プロセッサ装置 - Google Patents

プロセッサ装置

Info

Publication number
JPH11238015A
JPH11238015A JP10041927A JP4192798A JPH11238015A JP H11238015 A JPH11238015 A JP H11238015A JP 10041927 A JP10041927 A JP 10041927A JP 4192798 A JP4192798 A JP 4192798A JP H11238015 A JPH11238015 A JP H11238015A
Authority
JP
Japan
Prior art keywords
tlb
logical page
priority
address translation
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.)
Granted
Application number
JP10041927A
Other languages
English (en)
Other versions
JP3517580B2 (ja
Inventor
Masahiko Saito
雅彦 齊藤
Tadashi Kamiwaki
正 上脇
Kunihiko Tsunetomi
邦彦 恒冨
Kenichi Kurosawa
憲一 黒沢
Keiji Kuwabara
啓二 桑原
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP04192798A priority Critical patent/JP3517580B2/ja
Publication of JPH11238015A publication Critical patent/JPH11238015A/ja
Application granted granted Critical
Publication of JP3517580B2 publication Critical patent/JP3517580B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 TLBミス発生回数を低減し、プロセスの実
行速度とリアルタイム性を向上させる。 【解決手段】 論理ページ番号と物理ページ番号の対応
からなるアドレス変換情報を記憶するTLB106を有
した計算機100において、前記TLB上に記憶されて
いない論理アドレスの参照を行ってTLBミスが発生し
た場合、TLBミスを発生させたプロセス121〜12
4の優先順位に基づいて、TLBに設定するアドレス変
換情報の数を変動させるTLBエントリ設定手段140
を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサ装置に
係り、特に、論理ページ番号と物理ページ番号との対応
(アドレス変換情報)を記憶するTLB(Translation
Look-aside Buffer)を有したプロセッサ装置に関す
る。
【0002】
【従来の技術】仮想空間のページング方式を高速化する
手段として、論理ページ番号と物理ページ番号との対応
(アドレス変換情報)を記憶する、高速参照可能なTL
B(Translation Look-aside Buffer)がある。このT
LBの一例として、特開平1−193961号公報に
は、過去にアドレス変換テーブルを用いて入手したアド
レス変換情報を一定数、アドレス変換バッファに記憶さ
せ、アドレス変換バッファに記憶されている論理ページ
番号に関しては、アドレス変換テ−ブルの検索を行わ
ず、直接アドレス変換バッファに記憶されているアドレ
ス変換情報によりアドレス変換をする技術が開示されて
いる。これにより、アドレス変換処理のオーバーヘッド
を低減させることが可能になる。
【0003】この場合、TLB上に記憶されていない論
理ページを参照することにより、TLBミスが発生する
と、TLBミス例外が発生し、通常処理は中断され、例
外処理が行われる。このTLBミス例外処理では、ハー
ドウェアまたはソフトウェアが、主記憶上に格納されて
いるアドレス変換テーブルを検索して、TLBミスが発
生したページの論理アドレスから物理アドレスへの変換
をするためのアドレス変換情報を取得し、そのアドレス
変換情報をTLB上に登録する。これにより、これ以
降、登録されたアドレス変換情報がTLBから削除され
るまで、同一の論理ページ内のアドレス変換を高速に行
うことが可能となる。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た従来技術では、複数の論理ページにわたってデータや
命令が存在する場合、TLBミスの処理は各々の論理ペ
ージで独立に行われる。一般的な中央処理装置(CP
U)の場合、複数の異なった論理アドレスを同時に参照
することはないため、たとえこれらの論理ページがアド
レス上連続していても、個々の論理ページに対してそれ
ぞれ異なった時刻にTLBミスが発生する。すなわち、
例外処理は、それぞれのTLBミスに対して、アドレス
変換テーブルを検索し、該当アドレスに対応するアドレ
ス変換情報をTLBに記憶させることになる。
【0005】このため、プロセスの命令実行や、データ
ベースの一括参照などのようにアドレス順にメモリの参
照が行われる場合、すなわち、隣接した論理ページに対
してTLBミスが発生することが予測される場合であっ
ても、個々の論理ページに対して独立に例外が発生し、
それぞれ例外処理が行われる。例外処理はプロセス本来
の処理を一旦停止して行うものであるため、プロセスの
実行効率が低下するという問題が発生する。また、例外
処理がプロセスの実行過程に挿入されることとなる結
果、TLBミスが発生する場合と発生しない場合との間
で処理実行時間が異なることになり、システムのリアル
タイム性が低下することにもなる。
【0006】同様に、実行プロセスの切替えが発生した
場合も、新たに実行されるプロセスの仮想空間上の命令
やデータの参照に対してTLBミスが発生することが予
測されるのにもかかわらず、実際に当該プロセスの仮想
空間が参照され、TLBミス例外が発生するまで、TL
Bへのアドレス変換情報の登録は行われない。
【0007】このようなTLBに関する課題は、特に、
TLBミス例外処理をソフトウェアで行う場合に重要視
される。ソフトウェアでアドレス変換テーブルの検索や
TLBへのアドレス変換情報の登録を行う場合、その速
度が問題となり、できる限りTLBミス例外処理の時
間、回数を低減させる必要がある。
【0008】本発明の目的は、TLBミス例外の回数を
低減させ、例外処理によるオーバヘッドを低減させるこ
とにある。
【0009】
【課題を解決するための手段】本発明に係るプロセッサ
装置は、論理ページ番号と物理ページ番号の対応からな
るアドレス変換情報を記憶するTLBを有したプロセッ
サ装置において、前記TLB上に記憶されていない論理
アドレスの参照を行ってTLBミスが発生した場合、T
LBミスを発生させたプロセスの優先順位に基づいて、
TLBに設定するアドレス変換情報の数を変動させるT
LBエントリ設定手段を有したことを特徴とする。
【0010】この場合、前記TLBエントリ設定手段
は、プロセスの優先順位が高い場合、より長くプロセス
が実行状態にとどまることが予測されることから、前記
プロセスの優先順位が高いほど、多くのアドレス変換情
報をTLBに設定するようにしてもよい。例えば、前記
プロセスの優先順位が所定値より高い場合、TLBミス
が発生した論理ページについてのアドレス変換情報に加
えて、当該TLBミスが発生した論理ページに隣接する
論理ページについてのアドレス変換情報をTLBに設定
するようにしてもよい。また、前記プロセスの優先順位
が所定値より高い場合、更に、当該プロセスのプログラ
ムカウンタ及びスタックポインタの少なくとも一方によ
って示される第一の論理ページについてのアドレス変換
情報をTLBに設定するようにしてもよい。更には、前
記第一の論理ページについてのアドレス変換情報を設定
する際に、当該第一の論理ページに隣接する第二の論理
ページについてのアドレス変換情報もTLBに設定する
ようにしてもよい。
【0011】また、本発明に係る他のプロセッサ装置
は、論理ページ番号と物理ページ番号の対応からなるア
ドレス変換情報を記憶するTLBを有するプロセッサ装
置において、割込みを一定周期毎に発生させ、当該割込
み処理中に、起動されているプロセスのプログラムカウ
ンタ及びスタックポインタの少なくとも一方によって示
される第一の論理ページについてのアドレス変換情報を
TLBに設定するTLBエントリ設定手段を有したこと
を特徴とする。
【0012】この場合、前記TLBエントリ設定手段
は、前記第一の論理ページについてのアドレス変換情報
を設定する際に、当該第一の論理ページに隣接する第二
の論理ページについてのアドレス変換情報もTLBに設
定するようにしてもよい。
【0013】また、本発明に係る他のプロセッサ装置
は、論理ページ番号と物理ページ番号の対応からなるア
ドレス変換情報を記憶するTLBを有し、複数のプロセ
スの仮想空間を切り替えて実行させるオペレーティング
システムを有したプロセッサ装置において、割込みを一
定周期毎に発生させ、当該割込み処理中に、起動中のプ
ロセスのうち、最も高い優先順位で動作するプロセスの
プログラムカウンタ及びスタックポインタの少なくとも
一方によって示される第一の論理ページ、及び、該第一
の論理ページに隣接する第二の論理ページに対するアド
レス変換情報をTLBに記憶させるTLBエントリ設定
手段を有したことを特徴とする。
【0014】前記他のプロセッサ装置において、プロセ
ッサ装置が複数の割り込みレベルを有し、前記一定周期
毎に発生させる割込みは、該複数の割り込みレベルのう
ちの最低優先順位の割込みレベルであるようにしてもよ
い。
【0015】また、本発明に係るオペレーティングシス
テムは、論理ページ番号と物理ページ番号の対応からな
るアドレス変換情報を記憶するTLBを有したプロセッ
サ装置を制御する、複数のプロセスの仮想空間を切り替
えて実行させるオペレーティングシステムにおいて、プ
ロセス切替え時に、新たに実行するプロセスのプログラ
ムカウンタ及びスタックポインタの少なくとも一方によ
って示される第一の論理ページについてのアドレス変換
情報をTLB上に記憶させることを特徴とする。
【0016】この場合、前記第一の論理ページについて
のアドレス変換情報をTLB上に記憶させる際に、当該
第一の論理ページに隣接する第二の論理ページについて
のアドレス変換情報もTLB上に記憶させるようにして
もよい。また、前記複数のプロセスにそれぞれ優先順位
を与えて動作させ、該優先順位に基づいて、前記TLB
上に記憶させる前記アドレス変換情報の数を変動させる
ようにしてもよい。更に、また、前記優先順位が高いプ
ロセスについては、前記TLB上に記憶させる前記アド
レス変換情報の数を増やすようにしてもよい。
【0017】なお、所定の値を超えない優先順位を有す
るプロセスの仮想空間に関しては、プロセス切替え時に
アドレス変換情報のTLBへの設定を行わないようにし
てもよい。
【0018】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態について説明する。
【0019】図1は、本発明の実施形態の全体構成を示
した図である。同図に示すように、本発明による計算機
100は、中央処理装置(CPU)101、主記憶装置
(メモリ)102及び入出力制御装置(I/O)103
を含み、それぞれCPUバス110によって接続されて
いる。また、入出力制御装置103には、端末104及
び外部ディスク装置105などが接続される。
【0020】主記憶装置102には、オペレーティング
システム(OS)120が格納されている。オペレーテ
ィングシステム120は、CPU101上で動作する複
数のプロセス121〜124を管理する。なお、図1で
は、4個のプロセスが示されているが、実際のシステム
構成はこの数値に制限されるものではない。
【0021】ページテーブル130は、オペレーティン
グシステム120の制御データの一つであり、プロセス
毎にその論理ページと物理ページの対応(アドレス変換
情報)を示す変換表である。各プロセスの仮想空間上の
論理アドレスは、このページテーブル130の内容を用
いて物理アドレスに変換される。なお、図1では、プロ
セス毎にページテーブルを作成した例(すなわち、各プ
ロセスに対してそれぞれページテーブルが存在する例)
を示しているが、全てのプロセスのアドレス変換情報を
1つのページテーブルにまとめることも可能である。特
に、複数のプロセスが単一仮想空間上で動作するシステ
ムでは、全体として1つのページテーブルを作成するこ
とが多い。
【0022】アドレス変換情報は、中央処理装置101
内に存在するTLB(TranslationLook-aside Buffer)
106上にも記憶される。TLB106は、論理ページ
番号と物理ページ番号との対応を示す連想記憶装置であ
り、論理ページ番号を入力することにより、高速に物理
ページ番号を取得できる装置である。なお、TLB10
6は、マルチプロセス環境を実現するOSをサポートす
るために、プロセス番号、論理ページ番号と物理ページ
番号との対応を示すこともある。この場合、プロセス番
号と論理ページ番号の組み合わせに対して、物理ページ
番号を出力する連想記憶装置となる。以下、本実施形態
の説明では、プロセス番号を含めたTLBについて説明
するが、本発明は、これに限らず、プロセス番号を含ま
ないTLBにも当然適用できる。
【0023】CPU101内には、命令の実行位置を示
すプログラムカウンタ(PC)107、一時的なデータ
退避等に利用されるデータ領域を示すスタックポインタ
(SP)108が存在する。なお、本実施形態では、以
降、スタックポインタ専用のレジスタが存在する場合に
ついて説明を行うが、ソフトウェア的に汎用レジスタの
一つをスタックポインタまたはデータポインタと定め、
使用するようにしてもよい。
【0024】図2は、TLB106の構成の詳細を示し
たものである。同図に示したTLB106は、内部構成
として4ウェイセットアソシアティブを採用している。
4ウェイセットアソシアティブとは、一つのアドレス
(インデクス)に対して、記憶場所の候補が4つ存在し
ているものである。すなわち、与えられたプロセス番号
と論理ページ番号の組み合わせは、その一部(インデク
ス)によって指定されるTLB内のオフセットに記憶さ
れている4つのエントリと比較され、いずれかのエント
リと一致すれば、対応する物理ページ番号が出力され
る。
【0025】図2に示すように、TLB106には、S
RAM(Static Random Access Memory)などの素子を
利用した、高速参照可能な記憶装置150が含まれる。
記憶装置150は、図2の例では、64エントリからな
る記憶装置が4ウェイ存在するので、合計256個のエ
ントリから構成される。各エントリは、プロセス番号、
論理ページ番号、物理ページ番号、有効ビット(Vビッ
ト)166及びページ属性(attrフィールド)167か
ら構成されている。このうち、プロセス番号、論理ペー
ジ番号及び物理ページ番号の三者の対がアドレス変換情
報を構成し、有効ビット166は、このアドレス変換情
報の内容が有効であるか無効であるかを示す。なお、上
述したように、プロセス番号をアドレス変換情報内に含
ませないようにすることもできる。
【0026】ページ属性167は、例えば、(1) ページ
の大きさ、(2) プロセス間で共有可能か、(3) CPUの
ユーザモード/特権モードで読出し/書込み/実行が可
能か、(4) アドレス変換情報の新しさ、(5) キャッシュ
記憶への登録が可能か(メモリ直接参照をしなければな
らないか)、(6) ページに書込みが行われたか、等を示
す属性の組み合わせで表現される。
【0027】上記した(4)「アドレス変換情報の新し
さ」には、例えば、4つのウェイ内で現時点から過去に
どの順序で参照されたかを示す値が用いられる。これに
より、TLBに新たにアドレス変換情報を記憶させる際
に、空いたエントリがない場合、最も過去に参照された
エントリのデータを破棄してそのエントリ上に記憶させ
ることができるようになる。この方式をLRU(Least
Recently Used)方式と呼ぶ。なお、どのエントリのデ
ータを破棄するかを決めるには、LRU方式に限らず、
他の方式で決めてもよい。
【0028】TLB106に入力される入力データ16
0、161は、それぞれプロセス番号、論理アドレスを
示すデータである。本実施形態では、論理アドレスは3
2ビットのデータで表され、主記憶装置102のページ
サイズはそれぞれ4096バイトである。このとき、論
理アドレス32ビット中、下位12ビットがページ内ア
ドレスを示し、上位20ビットが論理ページ番号を示す
ことになる。信号162は、20ビットの論理ページ番
号を示す。
【0029】図2に示すように、本実施形態では、論理
ページ番号の下位6ビットとプロセス番号の下位6ビッ
トとを排他的論理和(XOR)素子152に入力するこ
とによって一旦排他的論理和を示す信号163を生成す
る。ここで、排他的論理和を生成する理由は、別プロセ
スの同一論理アドレスが同じエントリを示さないように
するためであり、複数のプロセスが並行して動作する多
重仮想空間の環境で有効となる。なお、複数のプロセス
が単一仮想空間上で動作する環境では、排他的論理和を
とらず、論理ページ番号の下位6ビットが直接エントリ
を指すようにするのが望ましい。なお、これら2つのモ
ードを選択できるようにしてもよい。以降、図2に示し
た排他的論理和を生成してエントリを選択する方法を用
いたものについてのみ説明するが、論理ページ番号のみ
をエントリ選択に使用する方法、および、いずれか一方
のモードを選択する方法を用いても本発明の効果が変化
するものではない。
【0030】排他的論理和素子152によって生成され
た信号163は6ビットの信号であり、記憶装置150
の1つのエントリを指定する(実際には、4つのウェイ
が存在するため、4エントリを同時に指定することにな
る)。6ビットの信号163を記憶装置150のエント
リオフセットとしたのは、それぞれのウェイ内にエント
リが64(2の6乗)個存在するからであり、例えば、
エントリが16個、32個といった記憶装置であれば、
4ビットまたは5ビットの信号によりエントリが選択さ
れることになる。
【0031】TLB106内にある比較器151は、4
つのウェイそれぞれから出力されるデータと入力された
プロセス番号及び論理ページ番号とを比較する。信号1
63によって選択されたエントリの内容は4ウェイ同時
に比較器151に通知され、入力データであるプロセス
番号及び論理ページ番号と比較される。
【0032】選択器153は、比較器151からの出力
および有効ビット166に基づいて、プロセス番号およ
び論理ページ番号が一致し、かつ、有効であるエントリ
内の物理ページ番号165を選択して出力する。同時
に、選択器153は、選択結果が無効な物理ページ番号
であるかどうかを示すTLBミス信号164を出力す
る。TLBミス信号は、それがOFF(0)の場合、有
効な物理ページ番号165が出力されていることを示
し、ON(1)の場合、入力データに一致し、かつ、有
効であるエントリが存在しなかったことを示す。
【0033】一致するエントリが記憶装置150内に存
在せず、TLBミス信号がONとなると、TLBミス例
外が発生する。このとき、CPU101は、ハードウェ
アまたはソフトウェアによって、主記憶装置102上に
存在するページテーブル130を検索し、TLBミスが
生じた論理ページ番号に対する物理ページ番号を取得
し、記憶装置150内の選択された4つのエントリのい
ずれかに、TLBミスを発生させた論理ページ番号と物
理ページ番号との対応を記憶させる。これにより、これ
以降、同一論理ページ内のデータを参照する場合、TL
B上に記憶されたアドレス変換情報を用いて、高速に物
理アドレスを計算することができる。
【0034】TLBエントリを設定する方法には、ハー
ドウェアで行う方法とソフトウェアで行う方法がある。
前者は高速であるが、予め定められたTLBエントリの
設定しか行うことができない。後者はハードウェアでT
LBエントリを設定する方式に比べ低速であるが、OS
が自由にTLBエントリの設定を行うことができる。
【0035】本実施形態では、以降、TLBエントリの
設定はソフトウェアによって行われるものとして説明を
行う。しかしながら、ソフトウェアで実現する部分をハ
ードウェアによって実現することも可能であり、特に、
TLBミス発生時にアドレス変換情報を複数個TLBに
設定することは従来のハードウェアを利用して容易に実
現することができ、追加ハードウェアも少なくてすむ。
【0036】次に、本実施形態において使用されるTL
Bエントリ設定処理について説明する。なお、本実施形
態では、論理ページ番号と物理ページ番号との対をTL
Bに記憶させるTLBエントリ設定用の専用命令LDT
LB(LoaD TLB)が存在する場合について説明する。
【0037】図3は、本実施形態において、TLBエン
トリを設定する際の処理を示したものである。同図に示
すように、TLBエントリ設定のためには、まず、設定
したい論理ページ番号及びプロセス番号を論理ページ指
定レジスタに格納する(S170)。次に、対応する物
理ページ番号及びページ属性を物理ページ指定レジスタ
に格納する(S171)。この時点でTLBエントリ書
き換え用の専用命令LDTLBを実行すると、論理ペー
ジ指定レジスタと物理ページ指定レジスタとに記憶され
ている値がTLBエントリにロードされる(S17
2)。なお、ここでは、TLBエントリ設定用に専用命
令が存在する場合について説明したが、TLBエントリ
設定の方法は、これに限られない。例えば、TLBエン
トリがメモリマップされていれば、割り当てられている
領域にアドレス変換情報を直接書き込むようにしてもよ
い。
【0038】図4は、TLBミス発生時のTLBエント
リ設定ルーチン140の処理フローを示したものであ
る。同図に示した実施形態では、TLBミスが発生した
場合に、TLBミスを発生させたプロセスの優先順位を
調べ、優先順位が所定値より高ければ、TLBミスが発
生したページに加えて、少なくとも1つ以上のページを
TLBエントリに設定する。
【0039】図4に示すように、TLBエントリ設定ル
ーチン140は、まず、TLBミスを発生させたプロセ
スの番号を入手する(S180)。一般に、OS内部で
は、各プロセスをプロセス制御ブロックと呼ぶ制御デー
タを用いて管理している。プロセス制御ブロック内に
は、各プロセスの優先順位、ページテーブル、プログラ
ムカウンタの値、スタックポインタの値などを示すデー
タが存在する。
【0040】次に、TLBミスを発生させた論理アドレ
スに対して、ページテーブルを検索し、対応する物理ア
ドレスを入手する(S181)。ページテーブルの検索
方法には、対応するプロセス制御ブロックのページテー
ブルから辿る方法と、OSの管理データとして現在使用
中のページテーブルを指すポインタを設け、そのポイン
タから辿る方法がある。後者は、ハードウェア的にTL
Bミスを取り扱う場合によく使用される。ハードウェア
によってプロセス制御ブロックを扱うことはプロセス制
御ブロックの配置、使用方法に関して柔軟性を無くすこ
とにつながるため、プロセス切替え時に、OSが、前記
ポインタを書き換え、ハードウェアはこのポインタから
ページテーブルを辿ることが多い。これにより、ハード
ウェアがプロセス制御ブロックの構成について認識する
必要はなくなる。
【0041】このようにしてアドレス変換情報が入手さ
れると、図3で示した方法を用いて、TLBに論理ペー
ジ番号と物理ページ番号との対応を記憶させる(S18
2)。
【0042】次に、TLBミスを発生させたプロセスの
優先順位を調べる(S183)。プロセスの優先順位が
低い場合、そのプロセスがさらに長時間続けて実行され
るとは限らない。一方、優先順位が最高優先順位の場合
には、他により高い優先順位のプロセスが起動されるこ
とはないので、他プロセスによって処理が中断されるこ
とはない。このため、本実施形態では、低優先順位の場
合には、この時点でTLBミスの処理を終了し、高優先
順位の場合にのみ、更に別のアドレス変換情報(論理ペ
ージ番号と物理ページ番号との対応)をTLBエントリ
に記憶させる。
【0043】本実施形態では、プロセスの優先順位を、
以下の三種類に分類する。
【0044】(1) 最高優先順位:優先順位が定数PRIORI
TY_MAXに等しい (2) 高優先順位:優先順位が定数PRIORITY_LIMIT以上 (3) 低優先順位:優先順位が定数PRIORITY_LIMIT未満 PRIORITY_MAX、PRIORITY_LIMITは、システムによって決
定される定数値である。なお、優先順位が高いことは、
必ずしも、その値が大きいことを意味するものではな
い。本実施形態では、優先順位は、1〜255の範囲で
あって、かつ、値が小さいほど優先順位が高いとする。
また、PRIORITY_LIMITを128とし、 (1) 最高優先順位:優先順位の値=1 (2) 高優先順位:優先順位の値≦128 (3) 低優先順位:優先順位の値>128 としている。なお、優先順位の値が大きいと優先順位が
高いとした場合は、上記の不等号の向きが逆になる。
【0045】図4に示すように、プロセスの優先順位を
調べた結果、プロセスの優先順位が低優先順位の場合
(優先順位<PRIORITY_LIMIT)には、そのままTLBミ
スの処理を終了させる。
【0046】一方、プロセスが高優先順位(最高優先順
位を含む)で動作している場合(優先順位≧PRIORITY_L
IMIT)は、同一プロセスが連続して動作を続け、再びT
LBミスを発生させる可能性が高いので、TLBミスが
発生した論理ページに隣接するページについても、その
アドレス変換情報をTLBエントリに記憶させ、連続し
たページに対応するTLBミスを防ぐようにする。この
ために、ページテーブルを検索して、TLBミスアドレ
スに隣接した論理ページに対応する物理アドレスを取得
し(S184)、アドレス変換情報をTLBエントリ上
に記憶させる(S185)。
【0047】ここで、TLBミスアドレスがスタック領
域である場合、一般に、アドレスの後方から前方に向か
って使用されることが多いことに注意する必要がある。
この場合、TLBミスが発生した論理ページの前のペー
ジ(アドレスが小さい方の論理ページ)を隣接した次の
ページとし、逆にTLBミスアドレスがスタック領域で
ない場合、後のページ(アドレスが大きい方の論理ペー
ジ)を隣接した次のページとする。
【0048】更に、プロセスの優先順位が最高優先順位
である場合、そのプロセスは他のいかなるプロセスより
も優先的に実行される。このため、プロセスの優先順位
が最高優先順位である場合には、(a) TLBミスが発生
した論理ページ、(b) TLBミスアドレスに隣接する論
理ページ、のアドレス変換情報に加えて、(c) 当該プロ
セスのプログラムカウンタ、スタックポインタそれぞれ
によって示されるページ及びそれらに隣接するページ
(計4ページ)のアドレス変換情報もTLBエントリ上
に記憶させる。
【0049】このため、図4に示すように、プロセスの
優先順位を最高優先順位であるか否かを調べ(S18
6)、その結果、プロセスの優先順位が最高優先順位で
ある場合(優先順位=PRIORITY_MAX)には、上記(c)の
ページ(4ページ分)に関して、ページテーブルの検索
を行って、対応する物理アドレスを取得し(S18
7)、アドレス変換情報をTLB106に登録する(S
188)。一方、最高優先順位ではなかった場合(優先
順位≠PRIORITY_MAX)は、そのまま処理を終了する。
【0050】以上述べたように、図4に示したTLBエ
ントリ設定ルーチンの処理フローを用いることにより、
優先順位の高いプロセスに関しては、複数のTLBエン
トリが同時に設定されることになる。したがって、以
降、当該プロセスが隣接した論理ページを参照してもT
LBミスが発生せず、TLBミス発生回数を低減させる
ことができる。すなわち、TLBミス発生時に生じる例
外処理に費やされる累積時間を減少させることが可能と
なる。また、TLBミスによってプロセスの処理が頻繁
に中断され、プロセスのリアルタイム性が損なわれるこ
とも避けられるようになる。
【0051】なお、プロセスのプログラムカウンタ又は
スタックポインタの値によって示される論理ページのア
ドレス変換情報は、既にTLB上に格納されている場合
もある。また、上記(a)〜(c)の6つの論理ページ内で同
一の論理ページが存在することもある。本実施形態で
は、最高優先順位のプロセスの場合、合計6つの論理ペ
ージをTLB上に登録するようにしているが、これらの
うち、1つまたは複数の論理ページの登録を行わないこ
とも可能である。
【0052】ここまでは、TLBエントリ設定ルーチン
140が、TLBミス発生時に実行される場合について
述べてきたが、一定周期毎にタイマ割込みを発生するよ
うにして、そのタイマ割込み処理として、TLBエント
リ設定ルーチン140が必要なアドレス変換情報をTL
Bに設定するようにすることもできる。一般に、OSで
は、最高優先順位の割込みレベルのタイマを用意し、タ
イマ割込み発生時にスケジューリングや時刻計算などを
行っている。このタイマ割込み発生時にTLBエントリ
の設定を行うことができる。但し、TLBエントリの登
録は基本的にTLBミス例外発生に伴って行われるた
め、最高優先順位の割込みを用いて常に登録し続ける必
要はない。このため、本実施形態では、最低優先順位の
割込みレベルを用いるタイマを用意し、プロセッサがア
イドル状態(処理実行中でない状態)の場合にのみ、こ
の割込みが受け付けられるようにする。アイドル状態に
のみ受け付けられる割込み発生時にTLBエントリの登
録を行うことにより、プロセスの実行を妨げること無し
に、TLBミス発生回数を低減させ、例外処理の時間を
減らすことができる。
【0053】図5は、タイマ割込み発生時のTLBエン
トリ処理ルーチン140の処理フローを示したものであ
る。
【0054】図5に示すように、TLBエントリ処理ル
ーチン140、まず、現在起動中のプロセスの内、最も
高い優先順位を持つプロセスを選択し(S190)、そ
の選択したプロセスの優先順位をチェックする(S19
1)。
【0055】チェックの結果、選択したプロセスの優先
順位が低優先順位である場合(優先順位<PRIORITY_LIM
IT)、TLBエントリの設定処理はまったく行わずにタ
イマ割込み処理を終了する。図4の場合とは異なり、T
LBミスが発生したわけではないので、必ずしもTLB
エントリを設定する必要はない。
【0056】一方、プロセスの優先順位が高優先順位
(最高優先順位を含む)である場合(優先順位≧PRIORI
TY_LIMIT)、プロセス制御ブロックから当該プロセスの
プログラムカウンタ、スタックポインタなどの値を入手
する(S192)。
【0057】次に、入手したプログラムカウンタおよび
スタックポインタの値が示す論理ページに対応する物理
ページ番号を検索し(S193)、そのアドレス変換情
報をTLBエントリ上に記憶させる(S194)。
【0058】このように予め、命令領域を指すプログラ
ムカウンタやデータ領域を指すスタックポインタの値に
従って、TLBエントリを設定しておくことにより、待
ち状態にあるプロセス中で最も優先順位が高いプロセス
が待ち状態から解除されたとき、TLBミスを発生させ
ること無しにプロセスを実行させることができる。な
お、図5の処理フローでは、プロセスの優先順位が一定
値(PRIORITY_LIMIT)以上であれば、合計2ページ分の
アドレス変換情報をTLBに設定しているが、図4に示
した場合と同じく、プロセスが最高優先順位であれば、
これらの論理ページに隣接する論理ページのアドレス変
換情報を検索し、TLBに登録するようにしてもよい。
【0059】なお、ここでは、最低優先順位の割込みレ
ベルを用いたタイマを使用しているが、これより高い割
込みレベルでタイマを使用しても良い。この場合、全て
のプロセスが待ち状態であるわけではなく、実行状態や
実行可能状態となっているプロセスも存在するので、こ
れらのプロセスも含めて、TLB上に記憶すべき論理ペ
ージを決定する。
【0060】次に、TLBエントリ設定ルーチン140
が、プロセス切り替え時に実行される場合について説明
する。一般に、複数のプロセスの仮想空間を切り替えて
実行する多重プロセス実行環境では、実行プロセスの切
替えなどが行われると、その直後からしばらくの間、T
LBミスが頻発し、その後、次のプロセス切替え時まで
TLBミス発生頻度が低下した状態で推移することが知
られている。すなわち、TLBミスの発生頻度は一様で
はなく、一旦TLBミスが発生すると、短期間に続けて
TLBミスが発生することが多い。
【0061】従って、プロセス切替え時に予めTLBエ
ントリを記憶させておくことにより、プロセス切替え後
のTLBミス発生回数を減少させることができる。しか
しながら、プロセスの優先順位が低い場合、TLBミス
が殆ど発生しないうちに別のより優先順位の高いプロセ
スに切り替えられる可能性が高い。
【0062】このため、本実施形態においては、プロセ
スの優先順位によって、以下のような処理を行う。
【0063】(1) 最高優先順位の場合:プログラムカウ
ンタ、スタックポインタそれぞれによって示されるペー
ジ及びそれらに隣接するページ(合計4ページ)に関し
て、アドレス変換情報をTLBに設定する。
【0064】(2) 高優先順位の場合:プログラムカウン
タ、スタックポインタそれぞれによって示されるページ
(合計2ページ)に関して、アドレス変換情報をTLB
に設定する。
【0065】(3) 低優先順位の場合:アドレス変換情報
の登録を行わない。
【0066】図6は、プロセス切替え時のTLBエント
リ処理ルーチン140の処理フローを示した図である。
【0067】図6に示すように、TLBエントリ設定ル
ーチン140は、まず、次に実行すべきプロセスを選択
し(S200)、プロセスの優先順位が高優先順位(最
高優先順位を含む)であるか低優先順位であるかを調べ
る(S201)。その結果、低優先順位であった場合
(優先順位<PRIORITY_LIMIT)には、そのままTLBエ
ントリ設定処理を終了する。
【0068】一方、プロセスが高優先順位であった場合
(優先順位≧PRIORITY_LIMIT)は、プロセス制御ブロッ
クから当該プロセスについてのプログラムカウンタ、ス
タックポインタなどの値を入手する(S202)。
【0069】そして、入手されたプログラムカウンタお
よびスタックポインタの値が示す論理ページに対応する
物理ページ番号を検索し(S203)、そのアドレス変
換情報をTLBエントリ上に記憶させる(S204)。
【0070】続けて、プロセスが最高優先順位であるか
否かをチェックする(S205)。その結果、最高優先
順位であった場合(優先順位=PRIORITY_MAX)、プログ
ラムカウンタおよびスタックポインタそれぞれに隣接す
るページ(合計2ページ)について、アドレス変換情報
を検索し(S206)、TLB上に登録する(S20
7)。一方、最高優先順位ではなかった場合(優先順位
≠PRIORITY_MAX)は、そのまま処理を終了する。
【0071】なお、前述したように、スタックポインタ
によって示される領域は、通常、仮想空間の後方から前
方に向かって使用されることが多いため、スタックポイ
ンタの示す論理ページの一つ前の論理ページを隣接ペー
ジとしておく必要がある。ただし、スタック領域を仮想
空間の前方から後方に向かって使用する場合は、この限
りではない。
【0072】このように、プロセス切替え時に予め実行
プロセスの必要とするアドレス変換情報をTLB上に登
録しておくことにより、プロセス実行中のTLBミス回
数を低減させることが可能である。TLBミス回数を低
減させることは、プロセスの実行速度を実質的に向上さ
せるだけでなく、プロセスの実行速度のばらつきを低減
させることにつながり、リアルタイム性も向上させるこ
とが可能となる。
【0073】なお、図6の例では、プロセスの優先順位
が低優先順位であった場合(優先順位<PRIORITY_LIMI
T)には、TLBのエントリ設定をまったく行っていな
いが、プログラムカウンタおよびスタックポインタの少
なくとも一方が示すページについて、アドレス変換情報
の登録をするようにしてもよい。
【0074】
【発明の効果】以上詳細に説明したように、本発明は、
TLBミス発生時やプロセス切替え時に複数個のアドレ
ス変換情報をTLBに登録することによって、システム
全体としてのTLBミス発生回数を低減させることがで
きるようになる。従って、プロセスの実行速度を向上さ
せることができる。また、タイマ割込み発生時やプロセ
ス切替え時において予めアドレス変換情報をTLBに登
録しておくことにより、プロセス実行中のTLBミス発
生回数を低減させ、プロセスのリアルタイム性を向上さ
せることも可能である。
【図面の簡単な説明】
【図1】 本発明の実施形態を示す図である。
【図2】 TLBの内部構成を示す図である。
【図3】 TLBを設定する手順を示す図である。
【図4】 TLBミス発生時のTLBエントリ設定ルー
チンの処理フローを示す図である。
【図5】 タイマ割込み発生時のTLBエントリ設定ル
ーチンの処理フローを示す図である。
【図6】 プロセス切替え時のTLBエントリ設定ルー
チンの処理フローを示す図である。
【符号の説明】 100 計算機 101 中央処理装置(CPU) 102 主記憶装置 103 入出力制御装置(I/O) 104 端末 105 ディスク装置 106 TLB 107 プログラムカウンタ(PC) 108 スタックポインタ(SP) 110 CPUバス 120 オペレーティングシステム(OS) 121〜124 プロセス 130 ページテーブル 140 TLBエントリ設定ルーチン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 黒沢 憲一 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 桑原 啓二 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 論理ページ番号と物理ページ番号の対応
    からなるアドレス変換情報を記憶するTLBを有したプ
    ロセッサ装置において、 前記TLB上に記憶されていない論理アドレスの参照を
    行ってTLBミスが発生した場合、TLBミスを発生さ
    せたプロセスの優先順位に基づいて、TLBに設定する
    アドレス変換情報の数を変動させるTLBエントリ設定
    手段を有したことを特徴とするプロセッサ装置。
  2. 【請求項2】 前記TLBエントリ設定手段は、 前記プロセスの優先順位が高いほど、多くのアドレス変
    換情報をTLBに設定することを特徴とする請求項1に
    記載のプロセッサ装置。
  3. 【請求項3】 前記TLBエントリ設定手段は、 前記プロセスの優先順位が所定値より高い場合、TLB
    ミスが発生した論理ページについてのアドレス変換情
    報、及び、当該TLBミスが発生した論理ページに隣接
    する論理ページについてのアドレス変換情報をTLBに
    設定することを特徴とする請求項1に記載のプロセッサ
    装置。
  4. 【請求項4】 前記TLBエントリ設定手段は、 前記プロセスの優先順位が所定値より高い場合、当該プ
    ロセスのプログラムカウンタ及びスタックポインタの少
    なくとも一方によって示される第一の論理ページについ
    てのアドレス変換情報をTLBに設定することを特徴と
    する請求項1又は請求項3に記載のプロセッサ装置。
  5. 【請求項5】 前記TLBエントリ設定手段は、 前記第一の論理ページについてのアドレス変換情報を設
    定する際に、当該第一の論理ページに隣接する第二の論
    理ページについてのアドレス変換情報もTLBに設定す
    ることを特徴とする請求項4に記載のプロセッサ装置。
  6. 【請求項6】 論理ページ番号と物理ページ番号の対応
    からなるアドレス変換情報を記憶するTLBを有するプ
    ロセッサ装置において、 割込みを一定周期毎に発生させ、当該割込み処理中に、
    起動されているプロセスのプログラムカウンタ及びスタ
    ックポインタの少なくとも一方によって示される第一の
    論理ページについてのアドレス変換情報をTLBに設定
    するTLBエントリ設定手段を有したことを特徴とする
    プロセッサ装置。
  7. 【請求項7】 前記TLBエントリ設定手段は、 前記第一の論理ページについてのアドレス変換情報を設
    定する際に、当該第一の論理ページに隣接する第二の論
    理ページについてのアドレス変換情報もTLBに設定す
    ることを特徴とする請求項6に記載のプロセッサ装置。
  8. 【請求項8】 論理ページ番号と物理ページ番号の対応
    からなるアドレス変換情報を記憶するTLBを有し、複
    数のプロセスの仮想空間を切り替えて実行させるオペレ
    ーティングシステムを有したプロセッサ装置において、 割込みを一定周期毎に発生させ、当該割込み処理中に、
    起動中のプロセスのうち、最も高い優先順位で動作する
    プロセスのプログラムカウンタ及びスタックポインタの
    少なくとも一方によって示される第一の論理ページ、及
    び、該第一の論理ページに隣接する第二の論理ページに
    ついてのアドレス変換情報をTLBに記憶させるTLB
    エントリ設定手段を有したことを特徴とするプロセッサ
    装置。
  9. 【請求項9】 前記プロセッサ装置は、複数の割り込み
    レベルを有し、 前記一定周期毎に発生させる割込みは、該複数の割り込
    みレベルのうちの最低優先順位の割込みレベルであるこ
    とを特徴とする請求項6乃至請求項8のいずれか一項に
    記載のプロセッサ装置。
  10. 【請求項10】 論理ページ番号と物理ページ番号の対
    応からなるアドレス変換情報を記憶するTLBを有した
    プロセッサ装置を制御する、複数のプロセスの仮想空間
    を切り替えて実行させるオペレーティングシステムにお
    いて、 プロセス切替え時に、新たに実行するプロセスのプログ
    ラムカウンタ及びスタックポインタの少なくとも一方に
    よって示される第一の論理ページについてのアドレス変
    換情報をTLB上に記憶させることを特徴とするオペレ
    ーティングシステム。
  11. 【請求項11】 前記第一の論理ページについてのアド
    レス変換情報をTLB上に記憶させる際に、当該第一の
    論理ページに隣接する第二の論理ページについてのアド
    レス変換情報もTLB上に記憶させることを特徴とする
    請求項10に記載のオペレーティングシステム。
  12. 【請求項12】 前記複数のプロセスにそれぞれ優先順
    位を与えて動作させ、 該優先順位に基づいて、前記TLB上に記憶させる前記
    アドレス変換情報の数を変動させることを特徴とする請
    求項10又は請求項11に記載のオペレーティングシス
    テム。
  13. 【請求項13】 前記優先順位が高いプロセスについて
    は、前記TLB上に記憶させる前記アドレス変換情報の
    数を増やすことを特徴とする請求項12に記載のオペレ
    ーティングシステム。
JP04192798A 1998-02-24 1998-02-24 プロセッサ装置 Expired - Fee Related JP3517580B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04192798A JP3517580B2 (ja) 1998-02-24 1998-02-24 プロセッサ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04192798A JP3517580B2 (ja) 1998-02-24 1998-02-24 プロセッサ装置

Publications (2)

Publication Number Publication Date
JPH11238015A true JPH11238015A (ja) 1999-08-31
JP3517580B2 JP3517580B2 (ja) 2004-04-12

Family

ID=12621885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04192798A Expired - Fee Related JP3517580B2 (ja) 1998-02-24 1998-02-24 プロセッサ装置

Country Status (1)

Country Link
JP (1) JP3517580B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833142B1 (ko) 2006-02-28 2008-05-29 후지쯔 가부시끼가이샤 어드레스 변환 장치
WO2010150451A1 (ja) * 2009-06-24 2010-12-29 パナソニック株式会社 メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置
CN101957801A (zh) * 2009-07-15 2011-01-26 富士施乐株式会社 信息处理设备和信息处理方法
JP2012113721A (ja) * 2010-11-25 2012-06-14 Samsung Electronics Co Ltd メモリシステム
JP2019517081A (ja) * 2016-05-24 2019-06-20 ザイリンクス インコーポレイテッドXilinx Incorporated 仮想メモリのメモリプリフェッチ

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833142B1 (ko) 2006-02-28 2008-05-29 후지쯔 가부시끼가이샤 어드레스 변환 장치
WO2010150451A1 (ja) * 2009-06-24 2010-12-29 パナソニック株式会社 メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置
US8533429B2 (en) 2009-06-24 2013-09-10 Panasonic Corporation Memory access control device, integrated circuit, memory access control method, and data processing device
JP5347024B2 (ja) * 2009-06-24 2013-11-20 パナソニック株式会社 メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置
CN101957801A (zh) * 2009-07-15 2011-01-26 富士施乐株式会社 信息处理设备和信息处理方法
JP2011022790A (ja) * 2009-07-15 2011-02-03 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
US8352698B2 (en) 2009-07-15 2013-01-08 Fuji Xerox Co., Ltd. Information processing apparatus, information processing method and computer readable medium
JP2012113721A (ja) * 2010-11-25 2012-06-14 Samsung Electronics Co Ltd メモリシステム
JP2019517081A (ja) * 2016-05-24 2019-06-20 ザイリンクス インコーポレイテッドXilinx Incorporated 仮想メモリのメモリプリフェッチ

Also Published As

Publication number Publication date
JP3517580B2 (ja) 2004-04-12

Similar Documents

Publication Publication Date Title
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
US5167023A (en) Translating a dynamic transfer control instruction address in a simulated CPU processor
US5819063A (en) Method and data processing system for emulating a program
EP0327195B1 (en) Processor simulation
EP1096385B1 (en) A method and apparatus for forming an entry address
US5918250A (en) Method and apparatus for preloading default address translation attributes
EP0327196B1 (en) Processor simulation
US5619671A (en) Method and apparatus for providing token controlled access to protected pages of memory
US6430667B1 (en) Single-level store computer incorporating process-local address translation data structures
US5555395A (en) System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
KR100233212B1 (ko) 가상 기억장치 변환을 효율적으로 공용하기 위한 장치 및 방법
JPH10232834A (ja) キャッシュメモリを作動する方法およびコンピュータシステム
US20020042868A1 (en) Apparatus and method for providing simultaneous local and global addressing with hardware address translation
EP3830719B1 (en) Binary search procedure for control table stored in memory system
US5319761A (en) Directory look-aside table for a virtual storage system including means for minimizing synonym entries
JP2768503B2 (ja) 仮想記憶アドレス空間アクセス制御方式
JP3517580B2 (ja) プロセッサ装置
EP0674269B1 (en) Translation mechanism for input/output addresses
EP0327198B1 (en) Processor simulation
US6862675B1 (en) Microprocessor and device including memory units with different physical addresses
US7444636B2 (en) Method and system of determining attributes of a functional unit in a multiple processor computer system
US6766435B1 (en) Processor with a general register set that includes address translation registers
EP0389886A2 (en) Ring reduction logic mechanism
KR0136511B1 (ko) 다중 페이지 구조를 갖는 가상주소변환장치의 적중실패 처리장치 및 그 방법
EP1262876B1 (en) Multiprocessing system with shared translation lookaside buffer

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040126

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080130

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090130

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090130

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100130

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110130

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110130

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees