JPH087717B2 - 動的アドレス変換処理装置 - Google Patents
動的アドレス変換処理装置Info
- Publication number
- JPH087717B2 JPH087717B2 JP3222575A JP22257591A JPH087717B2 JP H087717 B2 JPH087717 B2 JP H087717B2 JP 3222575 A JP3222575 A JP 3222575A JP 22257591 A JP22257591 A JP 22257591A JP H087717 B2 JPH087717 B2 JP H087717B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- register
- main memory
- pte
- page
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は動的アドレス変換(DA
T)機能を有するデータ処理装置の性能を向上するため
の動的アドレス変換処理装置に関し、特に、主記憶内に
格納されているページテーブルエントリに含まれる更新
ビットの変更を高速で行うことのできる動的アドレス変
換処理装置に関する。
T)機能を有するデータ処理装置の性能を向上するため
の動的アドレス変換処理装置に関し、特に、主記憶内に
格納されているページテーブルエントリに含まれる更新
ビットの変更を高速で行うことのできる動的アドレス変
換処理装置に関する。
【0002】
【従来の技術】近年、データ処理装置を使用するプログ
ラマが記憶装置の容量を意識することなく、それよりも
はるかに大きい容量の仮想アドレス空間を使用してプロ
グラムを作成することができる仮想記憶方式が開発され
た。動的アドレス変換処理装置は、仮想記憶方式を実現
するために、データ処理装置のハードウエアに装備され
るものである。
ラマが記憶装置の容量を意識することなく、それよりも
はるかに大きい容量の仮想アドレス空間を使用してプロ
グラムを作成することができる仮想記憶方式が開発され
た。動的アドレス変換処理装置は、仮想記憶方式を実現
するために、データ処理装置のハードウエアに装備され
るものである。
【0003】仮想アドレス空間は主記憶および全ての外
部記憶装置を含んだ論理的メモリ上に保持されている。
一方、ハードウエア上でCPUからアクセスすることが
できるのは主記憶のみである。主記憶内に存在しないメ
モリロケーションにアクセスしようとする場合はそのメ
モリロケーションを主記憶内へ移動しなければならな
い。
部記憶装置を含んだ論理的メモリ上に保持されている。
一方、ハードウエア上でCPUからアクセスすることが
できるのは主記憶のみである。主記憶内に存在しないメ
モリロケーションにアクセスしようとする場合はそのメ
モリロケーションを主記憶内へ移動しなければならな
い。
【0004】動的アドレス変換装置は、プログラムの命
令に含まれる仮想アドレスを、主記憶上に物理的に保持
されている実アドレスに変換する。動的アドレス変換処
理装置においては、主記憶はページ単位に分割される。
仮想アドレス空間もペ−ジ単位に分割され、主記憶のペ
ージと対応付けられる。
令に含まれる仮想アドレスを、主記憶上に物理的に保持
されている実アドレスに変換する。動的アドレス変換処
理装置においては、主記憶はページ単位に分割される。
仮想アドレス空間もペ−ジ単位に分割され、主記憶のペ
ージと対応付けられる。
【0005】仮想アドレス空間は、更に、ぺージより大
きな単位のセグメントに分割され、いくつかのページに
よって一つのセグメントが形成される。更に大きな仮想
アドレス空間は数段のアクセス単位で分割される。ここ
ではページとセグメントの2段アクセスの動的アドレス
変換について述べる。
きな単位のセグメントに分割され、いくつかのページに
よって一つのセグメントが形成される。更に大きな仮想
アドレス空間は数段のアクセス単位で分割される。ここ
ではページとセグメントの2段アクセスの動的アドレス
変換について述べる。
【0006】図6は、従来の2段アクセスの動的アドレ
ス変換処理装置の構成を示す。図6において、1はCP
U、2は主記憶である。主記憶2には各種データと共
に、動的アドレス変換のためのセグメントテーブル3お
よびページテーブル4が格納されている。
ス変換処理装置の構成を示す。図6において、1はCP
U、2は主記憶である。主記憶2には各種データと共
に、動的アドレス変換のためのセグメントテーブル3お
よびページテーブル4が格納されている。
【0007】CPU1は、主記憶2に対する実アドレス
によるアクセス動作を制御する物理主記憶アクセス制御
部1Aと、仮想アドレスによる仮想メモリに対する論理
的アクセス動作を制御する論理記憶アクセス制御部1B
とを有する。
によるアクセス動作を制御する物理主記憶アクセス制御
部1Aと、仮想アドレスによる仮想メモリに対する論理
的アクセス動作を制御する論理記憶アクセス制御部1B
とを有する。
【0008】物理主記憶アクセス制御部1Aは、動的ア
ドレス変換動作を制御するDAT制御部7とキャッシュ
6とを有する。DAT制御部7は、論理記憶アクセス制
御部1Bから受領した仮想アドレスを実アドレスに変換
し、この実アドレスを主記憶2およびキャッシュ6に供
給する。
ドレス変換動作を制御するDAT制御部7とキャッシュ
6とを有する。DAT制御部7は、論理記憶アクセス制
御部1Bから受領した仮想アドレスを実アドレスに変換
し、この実アドレスを主記憶2およびキャッシュ6に供
給する。
【0009】キャッシュ6は主記憶2よりも高速のメモ
リで構成されており、動的アドレス変換のために主記憶
2とDAT制御部7との間で授受されるセグメントテー
ブル3およびページテーブル4の内容をアクセスの頻度
に応じて優先的に格納する。アクセスがあった時、もし
キャッシュ6に該当するデータが登録されていれば、そ
のデータは主記憶2でなくキャッシュ6から取り出され
るようになっている。
リで構成されており、動的アドレス変換のために主記憶
2とDAT制御部7との間で授受されるセグメントテー
ブル3およびページテーブル4の内容をアクセスの頻度
に応じて優先的に格納する。アクセスがあった時、もし
キャッシュ6に該当するデータが登録されていれば、そ
のデータは主記憶2でなくキャッシュ6から取り出され
るようになっている。
【0010】論理主記憶アクセス制御部1Bは、プログ
ラムの命令を解読する命令ユニット(IU)からの命令
のオペランドに含まれる仮想アドレスを入力し、それを
DAT制御部7へ送出する仮想アドレスレジスタ8と、
仮想アドレスと実アドレスとを対応表の形式で格納し仮
想アドレスによって索引されることにより実アドレスを
出力する変換索引バッファ(TLBという)9とを有す
る。
ラムの命令を解読する命令ユニット(IU)からの命令
のオペランドに含まれる仮想アドレスを入力し、それを
DAT制御部7へ送出する仮想アドレスレジスタ8と、
仮想アドレスと実アドレスとを対応表の形式で格納し仮
想アドレスによって索引されることにより実アドレスを
出力する変換索引バッファ(TLBという)9とを有す
る。
【0011】図7はDAT制御部7で行われる動的アド
レス変換の基本動作を示す。図7において、仮想アドレ
スレジスタ8内の仮想アドレスはセグメント番号、ペー
ジ番号およびオフセット(ページ内変位)を含んでい
る。STDはセグメントテーブル3の先頭アドレスおよ
びその長さに関する情報であるセグメントテーブルベー
スを格納するレジスタである。
レス変換の基本動作を示す。図7において、仮想アドレ
スレジスタ8内の仮想アドレスはセグメント番号、ペー
ジ番号およびオフセット(ページ内変位)を含んでい
る。STDはセグメントテーブル3の先頭アドレスおよ
びその長さに関する情報であるセグメントテーブルベー
スを格納するレジスタである。
【0012】セグメントテーブル3は、複数個のセグメ
ントテーブルエントリ(以下STEという)からなる。
各STEはページテーブル4と対応しページテーブルベ
ースを含んでいる。ページテーブルベースは、ページテ
ーブル4の先頭アドレスおよびページテーブルの長さに
関する情報である。
ントテーブルエントリ(以下STEという)からなる。
各STEはページテーブル4と対応しページテーブルベ
ースを含んでいる。ページテーブルベースは、ページテ
ーブル4の先頭アドレスおよびページテーブルの長さに
関する情報である。
【0013】ページテーブル4は、複数のページテーブ
ルエントリ(以下PTEという)からなる。各PTE
は、ページフレーム番号、更新ビットC、参照ビットR
および保護ビットPを含んでいる。ページフレーム番号
は、求められるべき実アドレスの上位ビットを示す。こ
のページフレーム番号と仮想アドレスに含まれるオフセ
ットとを連結することによって、実アドレスが得られ
る。
ルエントリ(以下PTEという)からなる。各PTE
は、ページフレーム番号、更新ビットC、参照ビットR
および保護ビットPを含んでいる。ページフレーム番号
は、求められるべき実アドレスの上位ビットを示す。こ
のページフレーム番号と仮想アドレスに含まれるオフセ
ットとを連結することによって、実アドレスが得られ
る。
【0014】PTEの参照ビットRは、対応するページ
が最初にアクセスされた時に0から1に変更される。更
新ビットCは、対応するページが最初に書き換えられた
時に0から1に変更される。保護ビットPは、1のとき
ページに対する書き込みを禁止する。
が最初にアクセスされた時に0から1に変更される。更
新ビットCは、対応するページが最初に書き換えられた
時に0から1に変更される。保護ビットPは、1のとき
ページに対する書き込みを禁止する。
【0015】DAT処理装置の動作は次のとおりであ
る。 (1)IUからあるページのあるメモリロケーションに
対するアクセス(読み出しまたは書き込み)の命令が発
行されると、その命令のオペランドに含まれる仮想アド
レスが仮想アドレスレジスタ8を介してDAT制御部7
へ送られる。
る。 (1)IUからあるページのあるメモリロケーションに
対するアクセス(読み出しまたは書き込み)の命令が発
行されると、その命令のオペランドに含まれる仮想アド
レスが仮想アドレスレジスタ8を介してDAT制御部7
へ送られる。
【0016】最初に、仮想アドレスのセグメント番号が
STDのセグメントテーブルベースによってチェックさ
れる。もしセグメント番号がセグメントテーブルの範囲
外であれば例外が認識される。
STDのセグメントテーブルベースによってチェックさ
れる。もしセグメント番号がセグメントテーブルの範囲
外であれば例外が認識される。
【0017】(2)範囲チェックに合格すると、セグメ
ントテーブルベースと仮想アドレスのセグメント番号と
によってSTEが格納されている実アドレスが求められ
る。このSTEアドレスによって主記憶2(またはキャ
ッシュ6)からSTEが取り出される。
ントテーブルベースと仮想アドレスのセグメント番号と
によってSTEが格納されている実アドレスが求められ
る。このSTEアドレスによって主記憶2(またはキャ
ッシュ6)からSTEが取り出される。
【0018】(3)取り出されたSTEの値によって、
仮想アドレスのページ番号の範囲が検査される。範囲外
であれば例外が認識される。
仮想アドレスのページ番号の範囲が検査される。範囲外
であれば例外が認識される。
【0019】(4)範囲チェックに合格すると、STE
のページテーブルべースと仮想アドレスのページ番号と
からPTEが格納されている実アドレス(PTEアドレ
ス)が求められる。このPTEアドレスによって、主記
憶2からPTEが取り出される。
のページテーブルべースと仮想アドレスのページ番号と
からPTEが格納されている実アドレス(PTEアドレ
ス)が求められる。このPTEアドレスによって、主記
憶2からPTEが取り出される。
【0020】(5)以上の変換過程で、例外が認識され
ず、且つ、STEおよびPTEのアクセスにおいて、物
理アクセス例外が認識されないとき、PTEのページフ
レーム番号の下位に仮想アドレスのオフセットを連結す
ることにより目指すメモリロケーションの実アドレスが
得られる。
ず、且つ、STEおよびPTEのアクセスにおいて、物
理アクセス例外が認識されないとき、PTEのページフ
レーム番号の下位に仮想アドレスのオフセットを連結す
ることにより目指すメモリロケーションの実アドレスが
得られる。
【0021】TLB9は、上記のようなセグメントテー
ブルおよびページテーブルを参照することによって実ア
ドレスを求める通常の動的アドレス変換をもっと簡略化
するために最近の動的アドレス変換処理装置には殆ど設
けられているものである。
ブルおよびページテーブルを参照することによって実ア
ドレスを求める通常の動的アドレス変換をもっと簡略化
するために最近の動的アドレス変換処理装置には殆ど設
けられているものである。
【0022】TLB9はアクセスタイムの速いメモリで
構成され、仮想アドレスと実アドレスとを対応付けして
格納し、仮想アドレスを入力することによってそれに対
応する実アドレスを出力するように構成されている。
構成され、仮想アドレスと実アドレスとを対応付けして
格納し、仮想アドレスを入力することによってそれに対
応する実アドレスを出力するように構成されている。
【0023】TLB9によるアドレス変換はつぎのよう
に行われる。 (1)仮想アドレスレジスタ8からの仮想アドレスは、
上記の変換テーブルによる動的アドレス変換動作に先立
ちTLB9に入力され、まずTLB9がアクセスされ
る。TLB9内に入力仮想アドレスと一致する仮想アド
レスが存在すればTLBヒットとなり、対応する実アド
レスが即時に取り出される。
に行われる。 (1)仮想アドレスレジスタ8からの仮想アドレスは、
上記の変換テーブルによる動的アドレス変換動作に先立
ちTLB9に入力され、まずTLB9がアクセスされ
る。TLB9内に入力仮想アドレスと一致する仮想アド
レスが存在すればTLBヒットとなり、対応する実アド
レスが即時に取り出される。
【0024】(2)TLB9に、一致する仮想アドレス
が存在しないときにはミスヒットとなり、上記のセグメ
ントテーブル3およびページテーブル4を参照する動的
アドレス変換によって実アドレスが求められる。この時
得られた実アドレスはTLB9に書き込まれ、従って、
その後同じ仮想アドレスに対してはTLBヒットとな
る。
が存在しないときにはミスヒットとなり、上記のセグメ
ントテーブル3およびページテーブル4を参照する動的
アドレス変換によって実アドレスが求められる。この時
得られた実アドレスはTLB9に書き込まれ、従って、
その後同じ仮想アドレスに対してはTLBヒットとな
る。
【0025】
【発明が解決しようとする課題】上述したように、ある
ぺージに最初に書き込みが行われたとき、主記憶2内の
対応するPTEの更新ビットCが0から1に変更され
る。PTEの更新ビットCの変更を行うには、他の主記
憶データの変更の場合と同様に、そのPTEの実アドレ
スを求めそれによって主記憶2からそのPTEをCPU
1に取り出し、更新ビットCに1を書き込み、しかる後
主記憶2へ戻してやるという手順が必要である。
ぺージに最初に書き込みが行われたとき、主記憶2内の
対応するPTEの更新ビットCが0から1に変更され
る。PTEの更新ビットCの変更を行うには、他の主記
憶データの変更の場合と同様に、そのPTEの実アドレ
スを求めそれによって主記憶2からそのPTEをCPU
1に取り出し、更新ビットCに1を書き込み、しかる後
主記憶2へ戻してやるという手順が必要である。
【0026】そのため、従来の動的アドレス変換処理装
置においては、先ず主記憶2からSTEを取り出してP
TEの実アドレス(PTEAという)を求める過程が必
らず必要であった。このことは、TLB9が使用される
か否かにかかわらず必要であり、更新ビットCを頻繁に
変える動的アドレス変換処理装置の処理時間の短縮の妨
げとなっていた。
置においては、先ず主記憶2からSTEを取り出してP
TEの実アドレス(PTEAという)を求める過程が必
らず必要であった。このことは、TLB9が使用される
か否かにかかわらず必要であり、更新ビットCを頻繁に
変える動的アドレス変換処理装置の処理時間の短縮の妨
げとなっていた。
【0027】本発明は、上記従来技術の欠点を除去し、
ページテーブルエントリの更新ビットの変更を、高速で
行うことのできる動的アドレス変換処理装置を提供する
ことを目的とする。
ページテーブルエントリの更新ビットの変更を、高速で
行うことのできる動的アドレス変換処理装置を提供する
ことを目的とする。
【0028】
【課題を解決するための手段】本発明による動的アドレ
ス変換処理装置は、アドレス変換テーブルを格納する主
記憶と、アドレス変換テーブルを参照して仮想アドレス
を実アドレスに変換するための動的アドレス変換を制御
するCPUとを有するデータ処理装置において、CPU
は、仮想アドレスを保持する第一のレジスタと、第一の
レジスタ−に保持される仮想アドレスに対応するアドレ
ス変換テーブルのテーブルエントリを保持する第二のレ
ジスタと、第二のレジスタに保持されるテーブルエント
リの実アドレスを保持する第三のレジスタと、第一のレ
ジスタに保持されている仮想アドレスと、実アドレスに
変換されるべき仮想アドレスとを比較する比較回路と、
第二のレジスタに保持されているテーブルエントリの内
容を変更する更新手段とを備え、比較回路による比較結
果が一致したとき、更新手段により変更されたテーブル
エントリを第三のレジスタに保持されている主記憶のア
ドレスに書き込むように構成される。
ス変換処理装置は、アドレス変換テーブルを格納する主
記憶と、アドレス変換テーブルを参照して仮想アドレス
を実アドレスに変換するための動的アドレス変換を制御
するCPUとを有するデータ処理装置において、CPU
は、仮想アドレスを保持する第一のレジスタと、第一の
レジスタ−に保持される仮想アドレスに対応するアドレ
ス変換テーブルのテーブルエントリを保持する第二のレ
ジスタと、第二のレジスタに保持されるテーブルエント
リの実アドレスを保持する第三のレジスタと、第一のレ
ジスタに保持されている仮想アドレスと、実アドレスに
変換されるべき仮想アドレスとを比較する比較回路と、
第二のレジスタに保持されているテーブルエントリの内
容を変更する更新手段とを備え、比較回路による比較結
果が一致したとき、更新手段により変更されたテーブル
エントリを第三のレジスタに保持されている主記憶のア
ドレスに書き込むように構成される。
【0029】主記憶のアドレス変換テーブルのテーブル
エントリは、対応するテーブルに最初に書き込みが行わ
れたときに0から1に変更される更新ビットを含み、第
一、第二、第三のレジスタは、主記憶のあるページに対
する動的アドレス変換を伴う一連のフェッチの最後のフ
ェッチ時におけるそのページに対応する仮想アドレス、
テーブルエントリ、およびテーブルエントリアドレスを
それぞれ保持し、そのとき更新手段はテーブルエントリ
の更新ビットを0から1に変更し、これにより、その後
そのページに対する書き込み時の更新ビットの変更が高
速に行われるように構成される。
エントリは、対応するテーブルに最初に書き込みが行わ
れたときに0から1に変更される更新ビットを含み、第
一、第二、第三のレジスタは、主記憶のあるページに対
する動的アドレス変換を伴う一連のフェッチの最後のフ
ェッチ時におけるそのページに対応する仮想アドレス、
テーブルエントリ、およびテーブルエントリアドレスを
それぞれ保持し、そのとき更新手段はテーブルエントリ
の更新ビットを0から1に変更し、これにより、その後
そのページに対する書き込み時の更新ビットの変更が高
速に行われるように構成される。
【0030】CPUは、仮想アドレスと実アドレスとを
対応付けて格納し仮想アドレスによって索引することに
よって実アドレスを得るアドレス変換バッファを有し、
第二および第三のレジスタをアドレス変換バッファの一
部として有するように構成される。
対応付けて格納し仮想アドレスによって索引することに
よって実アドレスを得るアドレス変換バッファを有し、
第二および第三のレジスタをアドレス変換バッファの一
部として有するように構成される。
【0031】
【作用】あるページに対して書き込みは行われずに動的
アドレス変換を伴う読み出し(オペランドフェッチ)が
何回も行われ、従ってこのページに対応するPTEに含
まれる更新ビットCが0である時、最後に行われたフェ
ッチの動的アドレス変換時の仮想アドレス、PTE,お
よびPTEA(PTEアドレス)をそれぞれ第一、第二
および第三のレジスタに保持する。
アドレス変換を伴う読み出し(オペランドフェッチ)が
何回も行われ、従ってこのページに対応するPTEに含
まれる更新ビットCが0である時、最後に行われたフェ
ッチの動的アドレス変換時の仮想アドレス、PTE,お
よびPTEA(PTEアドレス)をそれぞれ第一、第二
および第三のレジスタに保持する。
【0032】また、第二のレジスタに保持されたPTE
の更新ビットCは更新手段によって0から1に変更され
る。
の更新ビットCは更新手段によって0から1に変更され
る。
【0033】そこで、同じページに対する書き込み命令
が発行された時、書き込み命令のオペランドに含まれる
仮想アドレスと第一のレジスタに保持されている仮想ア
ドレスとが比較回路で比較される。比較の結果、一致す
るから、第三のレジスタに格納されているPTEAによ
って主記憶をアクセスし、更新されたPTEを主記憶に
書き込む。
が発行された時、書き込み命令のオペランドに含まれる
仮想アドレスと第一のレジスタに保持されている仮想ア
ドレスとが比較回路で比較される。比較の結果、一致す
るから、第三のレジスタに格納されているPTEAによ
って主記憶をアクセスし、更新されたPTEを主記憶に
書き込む。
【0034】その結果、STEを主記憶から読み出すこ
とによってPTEアドレスを求めなければPTEを得る
ことができないという従来の動的アドレス変換手順によ
ることなく、PTEの更新ビットCを高速に変更するこ
とが可能となる。
とによってPTEアドレスを求めなければPTEを得る
ことができないという従来の動的アドレス変換手順によ
ることなく、PTEの更新ビットCを高速に変更するこ
とが可能となる。
【0035】また、従来のTLBを拡張して上記第二お
よび第三のレジスタをTLBの一部として含む様に構成
することにより、TLBの高速変換機能をPTEの更新
ビットの変更のために活用することが出来る。従って、
更に高速に更新ビットを変更することが可能となる。
よび第三のレジスタをTLBの一部として含む様に構成
することにより、TLBの高速変換機能をPTEの更新
ビットの変更のために活用することが出来る。従って、
更に高速に更新ビットを変更することが可能となる。
【0036】
【実施例】以下、本発明の実施例について、詳細に説明
する。図1は、本発明による動的アドレス変換処理装置
の構成を示す。図1において、図6と同一の参照番号は
同一のものを示す。
する。図1は、本発明による動的アドレス変換処理装置
の構成を示す。図1において、図6と同一の参照番号は
同一のものを示す。
【0037】図1において、CPU11は物理主記憶ア
クセス制御部11Aおよび論理主記憶アクセス制御部1
1Bを有する。物理主記憶アクセス制御部11Aは、D
AT制御部12を有する。
クセス制御部11Aおよび論理主記憶アクセス制御部1
1Bを有する。物理主記憶アクセス制御部11Aは、D
AT制御部12を有する。
【0038】DAT制御部12は、主記憶2のあるペー
ジに対して途中書き込みが無く従って対応するPTEの
更新ビットCが0を維持したまま、動的アドレス変換を
伴う一連のフェッチが行われている時、最後のフェッチ
時における仮想アドレス、PTEAおよびPTEをそれ
ぞれ保持する3つのレジスタLTLAR(LastTr
ansration Logical Address
Register)13、LPTEAR(Last
Page Table EntryAddress R
egister)14、LPTER(Last Pag
e Table Entry Register)1
5、および各レジスタ13、14、15の内容に基づき
PTEの更新ビットCを0から1に変更する更新ビット
変更回路10を有する。
ジに対して途中書き込みが無く従って対応するPTEの
更新ビットCが0を維持したまま、動的アドレス変換を
伴う一連のフェッチが行われている時、最後のフェッチ
時における仮想アドレス、PTEAおよびPTEをそれ
ぞれ保持する3つのレジスタLTLAR(LastTr
ansration Logical Address
Register)13、LPTEAR(Last
Page Table EntryAddress R
egister)14、LPTER(Last Pag
e Table Entry Register)1
5、および各レジスタ13、14、15の内容に基づき
PTEの更新ビットCを0から1に変更する更新ビット
変更回路10を有する。
【0039】図2は、図1のDAT制御部12の構成を
示す。図2において、比較回路16、セレクタ17およ
び19並びに更新回路18は図1の更新ビット変更回路
10に相当する。論理主記憶アクセス制御部11Bの仮
想アドレスレジスタ8からの仮想アドレスは、仮想アド
レスレジスタ13およびアドレス比較回路16に入力す
る。
示す。図2において、比較回路16、セレクタ17およ
び19並びに更新回路18は図1の更新ビット変更回路
10に相当する。論理主記憶アクセス制御部11Bの仮
想アドレスレジスタ8からの仮想アドレスは、仮想アド
レスレジスタ13およびアドレス比較回路16に入力す
る。
【0040】比較回路16の他方の入力は、仮想アドレ
スレジスタ13の出力である。比較回路16は、二つの
入力を比較し、比較結果が一致および不一致の場合それ
ぞれ1および0となる信号SELをセレクタ17および
19の各制御信号として送出する。
スレジスタ13の出力である。比較回路16は、二つの
入力を比較し、比較結果が一致および不一致の場合それ
ぞれ1および0となる信号SELをセレクタ17および
19の各制御信号として送出する。
【0041】一方、仮想アドレスによって索引されたT
LB9から出力される実アドレスはセレクタ17の一方
の入力になると共に、LPTEAR14の入力となる。
LPTEAR14の出力はセレクタ17の他方の入力と
なる。
LB9から出力される実アドレスはセレクタ17の一方
の入力になると共に、LPTEAR14の入力となる。
LPTEAR14の出力はセレクタ17の他方の入力と
なる。
【0042】セレクタ17の出力は主記憶2およびキャ
ッシュ6のアドレスとなる。セレクタ17は、比較回路
16からのSEL信号が0の時(仮想アドレス不一致)
は、TLB9からの実アドレスを選択し、SEL信号が
1の時(仮想アドレス一致)は、LPTEAR14の出
力を選択し出力する。
ッシュ6のアドレスとなる。セレクタ17は、比較回路
16からのSEL信号が0の時(仮想アドレス不一致)
は、TLB9からの実アドレスを選択し、SEL信号が
1の時(仮想アドレス一致)は、LPTEAR14の出
力を選択し出力する。
【0043】LPTER15はキャッシュ6から出力さ
れるPTEを格納し保持する。更新回路18はLPTE
R15に保持されたPTEの更新ビットCを0から1に
変更する。更新回路18の出力はセレクタ19の一方の
入力となる。セレクタ19の他方の入力は命令ユニット
20から与えられる。
れるPTEを格納し保持する。更新回路18はLPTE
R15に保持されたPTEの更新ビットCを0から1に
変更する。更新回路18の出力はセレクタ19の一方の
入力となる。セレクタ19の他方の入力は命令ユニット
20から与えられる。
【0044】セレクタ19は、アドレス比較回路16か
らのSEL信号が0のときは、命令ユニット20からの
データを選択し、SEL信号が1のときは、更新回路1
8からの出力を選択し、選択したデータをキャッシュ6
へ送出する。
らのSEL信号が0のときは、命令ユニット20からの
データを選択し、SEL信号が1のときは、更新回路1
8からの出力を選択し、選択したデータをキャッシュ6
へ送出する。
【0045】以下、図2の回路の動作について説明す
る。 (1)いま、あるページに書き込みがなく、従ってその
ページに対応するPTEの更新ビットCは0のままで動
的アドレス変換を伴う一連のフェッチが行われたとす
る。そこで、最後のフェッチの動的アドレス変換時にお
ける仮想アドレスが仮想アドレスレジスタ13に入力し
保持される。
る。 (1)いま、あるページに書き込みがなく、従ってその
ページに対応するPTEの更新ビットCは0のままで動
的アドレス変換を伴う一連のフェッチが行われたとす
る。そこで、最後のフェッチの動的アドレス変換時にお
ける仮想アドレスが仮想アドレスレジスタ13に入力し
保持される。
【0046】(2)最後のフェッチ時のSTE(すなわ
ちLPTEA)およびその時のPTE(LPTE)がそ
れぞれLPTEAR14およびLPTER15に格納さ
れ保持される。更新回路18はLPTER15に保持さ
れたPTEの更新ビットCを0から1に変更する。
ちLPTEA)およびその時のPTE(LPTE)がそ
れぞれLPTEAR14およびLPTER15に格納さ
れ保持される。更新回路18はLPTER15に保持さ
れたPTEの更新ビットCを0から1に変更する。
【0047】(3)次に、上記ページに対しての書き込
み命令が発せられ書き込み命令オペランドの中の仮想ア
ドレスがDAT制御部12に入力したとする。アドレス
比較回路16は、LTLAR13の出力と新たに入力し
た仮想アドレスを比較し、この場合比較結果は一致する
から、SEL信号を1にセットする。
み命令が発せられ書き込み命令オペランドの中の仮想ア
ドレスがDAT制御部12に入力したとする。アドレス
比較回路16は、LTLAR13の出力と新たに入力し
た仮想アドレスを比較し、この場合比較結果は一致する
から、SEL信号を1にセットする。
【0048】(4)SEL信号が1(仮想アドレス一
致)の場合、セレクタ17はLPTEAR14の出力を
主記憶2およびキャッシュ6のアドレスとして出力す
る。更新回路18は更新ビットを0から1に変更された
PTEをセレクタ19へ出力する。
致)の場合、セレクタ17はLPTEAR14の出力を
主記憶2およびキャッシュ6のアドレスとして出力す
る。更新回路18は更新ビットを0から1に変更された
PTEをセレクタ19へ出力する。
【0049】(5)セレクタ19はSEL信号が1であ
るから更新回路18から出力された更新ビットCを更新
したPTEをキャッシュ6を介して主記憶2へ転送す
る。これにより主記憶2内のPTEの更新ビットの変更
が行われることになる。
るから更新回路18から出力された更新ビットCを更新
したPTEをキャッシュ6を介して主記憶2へ転送す
る。これにより主記憶2内のPTEの更新ビットの変更
が行われることになる。
【0050】(6)SEL信号が0(仮想アドレス不一
致)の場合、セレクタ17はTLB9の出力を主記憶2
およびキャッシュ6のアドレスとして選択する。この場
合、セレクタ19は、命令ユニット20からのデータを
選択し、主記憶2およびキャッシュ6へ送出する。
致)の場合、セレクタ17はTLB9の出力を主記憶2
およびキャッシュ6のアドレスとして選択する。この場
合、セレクタ19は、命令ユニット20からのデータを
選択し、主記憶2およびキャッシュ6へ送出する。
【0051】上述したように、本実施例によれば、ある
ページに対する一連のフェッチの最後のフェッチ後の、
同じページに対する書き込み時において、PTEアドレ
スを求めないでもPTEの更新ビットCを変更すること
ができる。
ページに対する一連のフェッチの最後のフェッチ後の、
同じページに対する書き込み時において、PTEアドレ
スを求めないでもPTEの更新ビットCを変更すること
ができる。
【0052】図3は本発明のもう一つの実施例を示す。
図3において、DAT制御部は従来のもの(図6の7)
と同一の構成であるが、TLBに本発明の思想を取り入
れているところが図1の実施例と異なる。
図3において、DAT制御部は従来のもの(図6の7)
と同一の構成であるが、TLBに本発明の思想を取り入
れているところが図1の実施例と異なる。
【0053】TLB9AはTLB9を拡張し、TLB9
に含まれていなかったPTEおよびPTEアドレスを持
たせたものである。このように構成することによって、
PTEAおよびPTEを高速で求めることができるため
更新ビットの変更を高速で行うことができる。
に含まれていなかったPTEおよびPTEアドレスを持
たせたものである。このように構成することによって、
PTEAおよびPTEを高速で求めることができるため
更新ビットの変更を高速で行うことができる。
【0054】図4および5は他の実施例を示す。本実施
例は図2および図3の実施例の両方を組み込んだ動的ア
ドレス変換処理装置であり、図4および5は図1の物理
主記憶アクセス制御部11Aと図3の論理主記憶アクセ
ス制御部11B’を含む主記憶アクセス制御部を示す。
例は図2および図3の実施例の両方を組み込んだ動的ア
ドレス変換処理装置であり、図4および5は図1の物理
主記憶アクセス制御部11Aと図3の論理主記憶アクセ
ス制御部11B’を含む主記憶アクセス制御部を示す。
【0055】命令ユニット(IU)20から主記憶アク
セス制御部へ送られる命令の仮想アドレス(オペランド
アドレス:OA)はセレクタ30を介してTLB31の
索引入力となる。
セス制御部へ送られる命令の仮想アドレス(オペランド
アドレス:OA)はセレクタ30を介してTLB31の
索引入力となる。
【0056】IU20からのストアデータISDはセレ
クタ53を介して主記憶2へ主記憶データ出力(MD
O)として出力されると共に、セレクタ41を介してキ
ャッシュ40に書き込まれる。
クタ53を介して主記憶2へ主記憶データ出力(MD
O)として出力されると共に、セレクタ41を介してキ
ャッシュ40に書き込まれる。
【0057】主記憶2へのアドレスはセレクタ39から
出力されるMAO(主記憶アドレス出力)である。セレ
クタ39からはまたキャッシュ40へのアドレス(オペ
ランドキャッシュアドレス:OCA)が出力される。
出力されるMAO(主記憶アドレス出力)である。セレ
クタ39からはまたキャッシュ40へのアドレス(オペ
ランドキャッシュアドレス:OCA)が出力される。
【0058】主記憶2から読み出されたデータ(MD
I)はセレクタ42を介してIU20へ転送されると共
に、必要の都度セレクタ41を介してキャッシュ40に
書き込まれると共にセレクタ42を介して後述する各レ
ジスタ44、45、46、47にロードされる。
I)はセレクタ42を介してIU20へ転送されると共
に、必要の都度セレクタ41を介してキャッシュ40に
書き込まれると共にセレクタ42を介して後述する各レ
ジスタ44、45、46、47にロードされる。
【0059】セレクタ30の出力にはTLB31、アク
セスアドレスレジスタ(AAR)32、およびキャッシ
ュディレクトリ34が接続される。
セスアドレスレジスタ(AAR)32、およびキャッシ
ュディレクトリ34が接続される。
【0060】TLB31は、制御ビットCTL(C,
R、P)、論理アドレスLA(セグメント番号およびペ
ージ番号)、および実アドレスRA(ページフレーム番
号)を対応付けて格納する部分(図示の上半分)と、P
TEおよびPTEアドレス(PTEA)を対応付けて格
納する部分(図示の下半分)からなり、各部分は内容が
重複しないように制御される。
R、P)、論理アドレスLA(セグメント番号およびペ
ージ番号)、および実アドレスRA(ページフレーム番
号)を対応付けて格納する部分(図示の上半分)と、P
TEおよびPTEアドレス(PTEA)を対応付けて格
納する部分(図示の下半分)からなり、各部分は内容が
重複しないように制御される。
【0061】TLB31は、セレクタ30からの仮想ア
ドレスと一致するLAが存在すれば、それを比較器33
へ出力する。比較器33はTLB31からのLAとAA
R32の内容とを比較し一致すればTLBヒット信号を
出力する。このTLBヒット信号により、LAと対応す
るRAが実アドレス発生器(RAG)35へ出力され
る。
ドレスと一致するLAが存在すれば、それを比較器33
へ出力する。比較器33はTLB31からのLAとAA
R32の内容とを比較し一致すればTLBヒット信号を
出力する。このTLBヒット信号により、LAと対応す
るRAが実アドレス発生器(RAG)35へ出力され
る。
【0062】RAG35はTLB31からのRAとAA
R32からのアドレス信号の一部(オフセット)とによ
り実アドレスを生成しそれを実アドレスレジスタ(RA
R)37および比較器36へ出力する。
R32からのアドレス信号の一部(オフセット)とによ
り実アドレスを生成しそれを実アドレスレジスタ(RA
R)37および比較器36へ出力する。
【0063】比較器36はRAG35からの実アドレス
とキャッシュディレクトリ34からの出力とによってこ
の実アドレスに該当するデータがキャッシュ40に登録
されているか否かを表す信号を出力する。この信号によ
って、データをキャッシュ40または主記憶2のいずれ
から取り出すかが決定される。
とキャッシュディレクトリ34からの出力とによってこ
の実アドレスに該当するデータがキャッシュ40に登録
されているか否かを表す信号を出力する。この信号によ
って、データをキャッシュ40または主記憶2のいずれ
から取り出すかが決定される。
【0064】TLB31はまた仮想アドレス対応するP
TEおよびPTEAが存在する場合にはそのPTEおよ
びPTEAを出力する。PTEはセレクタ42を経てP
TER46およびLPTER47へ送られる。TLB3
1から出力されたPTEAR38に格納される。
TEおよびPTEAが存在する場合にはそのPTEおよ
びPTEAを出力する。PTEはセレクタ42を経てP
TER46およびLPTER47へ送られる。TLB3
1から出力されたPTEAR38に格納される。
【0065】RAR37は実アドレスをセレクタ39を
経てキャッシュ40へOCAとして、主記憶2へMAO
として転送する。
経てキャッシュ40へOCAとして、主記憶2へMAO
として転送する。
【0066】AAR32の出力はセレクタ39を経て変
換論理アドレスレジスタ(TLAR)43および比較器
51へ供給されるとともに、一時待機した後再びセレク
タ30の入力に供給される。
換論理アドレスレジスタ(TLAR)43および比較器
51へ供給されるとともに、一時待機した後再びセレク
タ30の入力に供給される。
【0067】TLAR43の出力はLTLAR50およ
びセレクタ52に供給される。LTLAR50はあるペ
ージに対する動的アドレス変換による一連のフェッチの
最後の動的アドレス変換時の仮想アドレスを保持するレ
ジスタである。LTLAR50の出力は比較器51によ
ってAAR32からの仮想アドレスと比較される。比較
器51の比較結果はセレクタ52の制御入力となる。
びセレクタ52に供給される。LTLAR50はあるペ
ージに対する動的アドレス変換による一連のフェッチの
最後の動的アドレス変換時の仮想アドレスを保持するレ
ジスタである。LTLAR50の出力は比較器51によ
ってAAR32からの仮想アドレスと比較される。比較
器51の比較結果はセレクタ52の制御入力となる。
【0068】セレクタ52の入力は、TLAR43から
出力される仮想アドレス、STD(セグメントテーブル
デシグネータ)44から出力されるセグメントテーブル
ベース、STER(セグメントテーブルエントリレジス
タ)45およびLPTEAR(ラストPTEアドレスレ
ジスタ)49から出力されるSTE(またはPTE
A)、PTER(PTEレジスタ)46から出力される
PTE、ならびに、更新回路48から出力される更新さ
れたPTEである。
出力される仮想アドレス、STD(セグメントテーブル
デシグネータ)44から出力されるセグメントテーブル
ベース、STER(セグメントテーブルエントリレジス
タ)45およびLPTEAR(ラストPTEアドレスレ
ジスタ)49から出力されるSTE(またはPTE
A)、PTER(PTEレジスタ)46から出力される
PTE、ならびに、更新回路48から出力される更新さ
れたPTEである。
【0069】セレクタ52は上記各入力を、図7で述べ
た動的アドレス変換動作が行われるように選択制御す
る。セレクタ52は実アドレスを、TRA(変換実アド
レス)とキャッシュ40へ送り、RRA(リターンリア
ルアドレス)としてTLB31へ送り、そして、TDO
(変換データ出力)としてセレクタ53を経てキャッシ
ュ40および主記憶2へ送る。
た動的アドレス変換動作が行われるように選択制御す
る。セレクタ52は実アドレスを、TRA(変換実アド
レス)とキャッシュ40へ送り、RRA(リターンリア
ルアドレス)としてTLB31へ送り、そして、TDO
(変換データ出力)としてセレクタ53を経てキャッシ
ュ40および主記憶2へ送る。
【0070】セレクタ42は、主記憶2からのMDI、
IU20からのISD、セレクタ52からのTDO、キ
ャッシュ40の出力、および、TLB31からのPTE
を入力し、STD44、STER45、PTER46、
LPTER47あるいは、IU20へ送出するように制
御される。
IU20からのISD、セレクタ52からのTDO、キ
ャッシュ40の出力、および、TLB31からのPTE
を入力し、STD44、STER45、PTER46、
LPTER47あるいは、IU20へ送出するように制
御される。
【0071】LTLAR50、LPTEAR49、およ
び、LPTER47は、動的アドレス変換を要する一連
のフェッチの最後のフェッチの動的アドレス変換におけ
る、仮想アドレス、PTEアドレス、および、PTE
を、それぞれ、保持する。
び、LPTER47は、動的アドレス変換を要する一連
のフェッチの最後のフェッチの動的アドレス変換におけ
る、仮想アドレス、PTEアドレス、および、PTE
を、それぞれ、保持する。
【0072】更新回路48は、LPTER47に最後の
フェッチ時のPTEが保持された時、このPTEの中の
更新ビットCを0から1に変更する。
フェッチ時のPTEが保持された時、このPTEの中の
更新ビットCを0から1に変更する。
【0073】以下、図4および5の回路の動作について
説明する。いま、あるページP1に対して書き込みが行
われず、従って対応するPTEの更新ビットCが0のま
まで、このページに対する動的アドレス変換を伴う一連
のフェッチが行われるとする。
説明する。いま、あるページP1に対して書き込みが行
われず、従って対応するPTEの更新ビットCが0のま
まで、このページに対する動的アドレス変換を伴う一連
のフェッチが行われるとする。
【0074】IU20からの読み出し命令のオペランド
アドレスOAがTLB31、AAR32、およびキャッ
シュディレクトリ34に入力する。キャッシュ40内に
このページの内容が格納されているか否かが比較器36
によって示される。なお、それがキャッシュ40内に存
在する場合にはキャッシュ40から読み出される。
アドレスOAがTLB31、AAR32、およびキャッ
シュディレクトリ34に入力する。キャッシュ40内に
このページの内容が格納されているか否かが比較器36
によって示される。なお、それがキャッシュ40内に存
在する場合にはキャッシュ40から読み出される。
【0075】31内にOAに対応するLAが登録されて
いる場合には、このLAが比較器33へ出力され、AA
R32から出力される仮想アドレスと比較される。比較
の結果が一致すると、TLB31内にそのLAと対応す
るRAが存在する(TLBヒット)ことを示すTLBヒ
ット信号が比較器33から出力される。
いる場合には、このLAが比較器33へ出力され、AA
R32から出力される仮想アドレスと比較される。比較
の結果が一致すると、TLB31内にそのLAと対応す
るRAが存在する(TLBヒット)ことを示すTLBヒ
ット信号が比較器33から出力される。
【0076】TLBヒットが起こると、TLB31から
LAに対応するRAが取り出されRAG35に入力され
る。RAG35はTLB31から取り出されたRAとA
AR32からのOAに含まれているオフセットとによっ
て、読み出し対象のメモリロケーションの実アドレスを
生成しそれをRAR37へ出力する。
LAに対応するRAが取り出されRAG35に入力され
る。RAG35はTLB31から取り出されたRAとA
AR32からのOAに含まれているオフセットとによっ
て、読み出し対象のメモリロケーションの実アドレスを
生成しそれをRAR37へ出力する。
【0077】RAR37は実アドレスをセレクタ39へ
送る。セレクタ39はRAR37からの実アドレスをM
AOとして主記憶2へ転送するか、あるいは、キャッシ
ュ40にデータが登録されている場合は、AAR32か
らのOAをOCAとしてキャッシュ40へ転送する。
送る。セレクタ39はRAR37からの実アドレスをM
AOとして主記憶2へ転送するか、あるいは、キャッシ
ュ40にデータが登録されている場合は、AAR32か
らのOAをOCAとしてキャッシュ40へ転送する。
【0078】キャッシュ40にデータが登録されている
場合は、そのデータが読み出されセレクタ42を介して
IU20へ転送される。そのデータがキャッシュ40に
登録されていない場合は、主記憶2から読み出されたM
DIがセレクタ42を介してIU20へ転送される。
場合は、そのデータが読み出されセレクタ42を介して
IU20へ転送される。そのデータがキャッシュ40に
登録されていない場合は、主記憶2から読み出されたM
DIがセレクタ42を介してIU20へ転送される。
【0079】TLBヒットが起こらないとき(ミスヒッ
ト)は図7で述べた通常の動的アドレス変換が行われ
る。この場合は、AAR32に格納されている仮想アド
レスOAはセレクタ39、TLAR43を通じてセレク
タ52へ送られる。
ト)は図7で述べた通常の動的アドレス変換が行われ
る。この場合は、AAR32に格納されている仮想アド
レスOAはセレクタ39、TLAR43を通じてセレク
タ52へ送られる。
【0080】セレクタ52はTLAR43からの仮想ア
ドレス中のセグメントインデクスとSTD44からのセ
グメントテーブルベースとによってSTEの実アドレス
を求めTRAとしてキャッシュ40へ出力する。キャッ
シュ40は対応するSTEをSTER45へ出力する。
STER45はSTEをセレクタ52へ出力する。
ドレス中のセグメントインデクスとSTD44からのセ
グメントテーブルベースとによってSTEの実アドレス
を求めTRAとしてキャッシュ40へ出力する。キャッ
シュ40は対応するSTEをSTER45へ出力する。
STER45はSTEをセレクタ52へ出力する。
【0081】次に、STEと仮想アドレスのページイン
デックスとからPTEの実アドレスが求められ、これに
よってキャッシュ40から所望のPTEが取り出されP
TER46を介してセレクタ52へ送られる。セレクタ
52はPTEをRRAとしてTLB31へ戻す。TLB
31はPTEのページフレーム番号および制御ビットを
それぞれRAおよびCTL欄に書き込む。
デックスとからPTEの実アドレスが求められ、これに
よってキャッシュ40から所望のPTEが取り出されP
TER46を介してセレクタ52へ送られる。セレクタ
52はPTEをRRAとしてTLB31へ戻す。TLB
31はPTEのページフレーム番号および制御ビットを
それぞれRAおよびCTL欄に書き込む。
【0082】TLB31に書き込まれたRAはTLBヒ
ットによってRAG35に読み出され、ここでAAR3
2からのオフセットと連結されて求めるロケーションの
実アドレスとなりRAR37に格納される。以下、TL
Bヒットの場合と同様である
ットによってRAG35に読み出され、ここでAAR3
2からのオフセットと連結されて求めるロケーションの
実アドレスとなりRAR37に格納される。以下、TL
Bヒットの場合と同様である
【0083】その後何度か同じページに対して動的アド
レス変換を伴う読み出しが行われるが書き込みは無く、
従って対応PTEの更新ビットCの値は0のままである
とすると、その間IU20から読み出し命令が発行され
る都度TLB31から実アドレスが取り出され、それに
よって主記憶2またはキャッシュ40からデータが読み
出されIU20へILDとして送出される。
レス変換を伴う読み出しが行われるが書き込みは無く、
従って対応PTEの更新ビットCの値は0のままである
とすると、その間IU20から読み出し命令が発行され
る都度TLB31から実アドレスが取り出され、それに
よって主記憶2またはキャッシュ40からデータが読み
出されIU20へILDとして送出される。
【0084】同一のページP1に対するフェッチのため
の動的アドレス変換が何度も行われた後、最後のフェッ
チ時において、仮想アドレス、PTEアドレス、およ
び、PTEはLTLAR50、LPTEAR49、およ
び、LPTER47にそれぞれ格納される。更新回路4
8はLPTER47に保持されたPTEの更新ビットC
を0から1に変更する。また、LPTEAR49および
LPTER47の内容はTLB31のPTEA欄および
PTE欄にそれぞれ書き込まれる。
の動的アドレス変換が何度も行われた後、最後のフェッ
チ時において、仮想アドレス、PTEアドレス、およ
び、PTEはLTLAR50、LPTEAR49、およ
び、LPTER47にそれぞれ格納される。更新回路4
8はLPTER47に保持されたPTEの更新ビットC
を0から1に変更する。また、LPTEAR49および
LPTER47の内容はTLB31のPTEA欄および
PTE欄にそれぞれ書き込まれる。
【0085】以後、ページP1以外のページに対するア
クセスが行われると、比較器51における比較結果が一
致しないため、その間、LTLAR50、LPTEAR
49、および、LPTER47はページP1に関する上
記仮想アドレス、PTEアドレス、および、PTEを保
持する。
クセスが行われると、比較器51における比較結果が一
致しないため、その間、LTLAR50、LPTEAR
49、および、LPTER47はページP1に関する上
記仮想アドレス、PTEアドレス、および、PTEを保
持する。
【0086】そこで、IU20からページP1に対する
最初の書き込み命令が発行されたとする。このページの
RAはTLB31に登録されているから直ちに実アドレ
スが得られ、IU20のストアデータISDは、MAO
により指定される主記憶アドレスに書き込まれる。
最初の書き込み命令が発行されたとする。このページの
RAはTLB31に登録されているから直ちに実アドレ
スが得られ、IU20のストアデータISDは、MAO
により指定される主記憶アドレスに書き込まれる。
【0087】この時、ページP1に対する最初の書き込
みであるから対応するPTEの更新ビットCを0から1
にしなければならない。新たに入力した仮想アドレスと
LTLAR50に保持されている仮想アドレスは一致す
るから、セレクタ52はLPTEAR49の出力をキャ
ッシュ40のアドレスTRAとして供給し、更新回路4
8の出力をTDOとしてキャッシュ40へ送る。
みであるから対応するPTEの更新ビットCを0から1
にしなければならない。新たに入力した仮想アドレスと
LTLAR50に保持されている仮想アドレスは一致す
るから、セレクタ52はLPTEAR49の出力をキャ
ッシュ40のアドレスTRAとして供給し、更新回路4
8の出力をTDOとしてキャッシュ40へ送る。
【0088】従って、更新ビットCが1になったPTE
がキャッシュ40に書き込まれる。一方、TLB31か
ら対応するPTEおよびPTEAが読み出される。PT
EAはPTEAR38、セレクタ39を経て主記憶2に
アドレスを与え、PTEはセレクタ42、LPTER4
7,更新回路48、セレクタ52、セレクタ53を経て
主記憶2のページテーブル4に書き込まれる。
がキャッシュ40に書き込まれる。一方、TLB31か
ら対応するPTEおよびPTEAが読み出される。PT
EAはPTEAR38、セレクタ39を経て主記憶2に
アドレスを与え、PTEはセレクタ42、LPTER4
7,更新回路48、セレクタ52、セレクタ53を経て
主記憶2のページテーブル4に書き込まれる。
【0089】上述のように、あるページに対する動的ア
ドレス変換による一連のフェッチの最後のフェッチ時
に、PTEAおよびPTEをレジスタLPTEAR49
およびLPTER47にそれぞれ保持すると共に、TL
B31に保持し、その後のそのページに対する最初の書
き込み時に、保持されたPTEの更新ビットCを更新回
路48によって0から1に変更し、更新されたPTEを
主記憶2及びキャッシュ40に書き込む。
ドレス変換による一連のフェッチの最後のフェッチ時
に、PTEAおよびPTEをレジスタLPTEAR49
およびLPTER47にそれぞれ保持すると共に、TL
B31に保持し、その後のそのページに対する最初の書
き込み時に、保持されたPTEの更新ビットCを更新回
路48によって0から1に変更し、更新されたPTEを
主記憶2及びキャッシュ40に書き込む。
【0090】従って、ページに最初の書き込みを行う
時、PTEの更新ビットCを0から1へ変更するにあた
り、PTEアドレスを求める必要がない。
時、PTEの更新ビットCを0から1へ変更するにあた
り、PTEアドレスを求める必要がない。
【0091】
【発明の効果】本発明によれば、PTE中に更新ビット
を持ち、PTEに対応するページに最初に書き込みを行
う時に更新ビットを0から1に変更する動的アドレス変
換処理装置において、最初の書き込みの際にPTEの更
新ビットを変更するためにPTEアドレスを主記憶から
求める必要がなく、従って、動的アドレス変換処理装置
を用いた電算機のデータ処理能力の向上に寄与するとこ
ろ大である。
を持ち、PTEに対応するページに最初に書き込みを行
う時に更新ビットを0から1に変更する動的アドレス変
換処理装置において、最初の書き込みの際にPTEの更
新ビットを変更するためにPTEアドレスを主記憶から
求める必要がなく、従って、動的アドレス変換処理装置
を用いた電算機のデータ処理能力の向上に寄与するとこ
ろ大である。
【図1】本発明の一実施例の構成を示す図である。
【図2】図1のDAT制御部の構成を示す図である。
【図3】本発明のもう一つの実施例の構成を示す図であ
る。
る。
【図4】本発明の他の実施例の構成を示す図(その1)
である。
である。
【図5】本発明の他の実施例の構成を示す図(その2)
である。
である。
【図6】従来の動的アドレス変換処理装置の構成を示す
図である。
図である。
【図7】動的アドレス変換処理の説明図である。
1、11、11’ CPU 1A、11A 物理主記憶アクセス制御部 1B、11B、11B’ 論理主記憶アクセス制御部 2 主記憶 3 セグメントテーブル 4 ページテーブル 5 レジスタ 6 キャッシュ 7 DAT制御部 8 仮想アドレスレジスタ 9、9A TLB(変換索引バッファ) 10 更新ビット変更回路 12 DAT制御部 13 仮想アドレスレジスタ(LTLAR) 14 PTEアドレスレジスタ(LPTEAR) 15 PTEレジスタ(LPTER) 16 比較回路 17 セレクタ 18 更新回路 19 セレクタ 20 命令ユニット(IU) 30 セレクタ 31 TLB 32 AAR(アクセスアドレスレジスタ) 33 比較器 34 キャッシュディレクトリ 35 RAG(実アドレス発生器) 36 比較器 37 RAR(実アドレスレジスタ) 38 PTEAR(PTEアドレスレジスタ) 39 セレクタ 40 キャッシュ 41 セレクタ 42 セレクタ 43 TLAR(変換論理アドレスレジスタ) 44 STD(セグメントテーブルデジグネーショ
ン) 45 STER(セグメントテーブルエントリレジス
タ) 46 PTER(ページテーブルエントリレジスタ) 47 LPTER(ラストPTEレジスタ) 48 更新回路 49 LPTEAR(ラストPTEアドレスレジス
タ) 50 LTLAR(ラスト変換論理アドレスレジス
タ) 51 比較器 52 セレクタ 53 セレクタ ILD IUロードデータ ISD IUストアデータ LA 論理アドレス MAO 主記憶アドレス MDI 主記憶からの入力データ MDO 主記憶への出力データ OA オペランドアドレス OCA オペランドキャッシュアドレス RA 実アドレス RRA リターン実アドレス TDO 変換データ出力 TRA 変換実アドレス
ン) 45 STER(セグメントテーブルエントリレジス
タ) 46 PTER(ページテーブルエントリレジスタ) 47 LPTER(ラストPTEレジスタ) 48 更新回路 49 LPTEAR(ラストPTEアドレスレジス
タ) 50 LTLAR(ラスト変換論理アドレスレジス
タ) 51 比較器 52 セレクタ 53 セレクタ ILD IUロードデータ ISD IUストアデータ LA 論理アドレス MAO 主記憶アドレス MDI 主記憶からの入力データ MDO 主記憶への出力データ OA オペランドアドレス OCA オペランドキャッシュアドレス RA 実アドレス RRA リターン実アドレス TDO 変換データ出力 TRA 変換実アドレス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 上埜 治彦 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 猪野 明寿 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 草野 義博 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内
Claims (3)
- 【請求項1】 アドレス変換テーブルを格納する主記憶
と、前記アドレス変換テーブルを参照して仮想アドレス
を実アドレスに変換するための動的アドレス変換を制御
するCPUとを有するデータ処理装置において、 前記CPUは、仮想アドレスを保持する第一のレジスタ
と、 第一のレジスタに保持される仮想アドレスに対応する前
記アドレス変換テーブルのテーブルエントリを保持する
第二のレジスタと、 第二のレジスタに保持されるテーブルエントリの実アド
レスを保持する第三のレジスタと、 第一のレジスタに保持されている仮想アドレスと、実ア
ドレスに変換されるべき仮想アドレスとを比較する比較
回路と、 第二のレジスタに保持されているテーブルエントリの内
容を変更する更新手段とを備え、 前記比較回路による比較結果が一致したとき、前記更新
手段により変更されたテーブルエントリを第三のレジス
タに保持されている前記主記憶のアドレスに書き込むこ
とを特徴とする動的アドレス変換処理装置。 - 【請求項2】前記主記憶のアドレス変換テーブルのテー
ブルエントリは、対応するテーブルに最初に書き込みが
行われたときに0から1に変更される更新ビットを含
み、前記第一、第二、第三のレジスタは、前記主記憶の
あるページに対する動的アドレス変換を伴う一連のフェ
ッチの最後のフェッチ時におけるそのページに対応する
仮想アドレス、テーブルエントリ、およびテーブルエン
トリアドレスをそれぞれ保持し、そのとき前記更新手段
はテーブルエントリの更新ビットを0から1に変更し、
これにより、その後そのページに対する書き込み時の更
新ビットの変更を高速に行うようにしたことを特徴とす
る動的アドレス変換処理装置。 - 【請求項3】前記CPUは、仮想アドレスと実アドレス
とを対応付けて格納し仮想アドレスによって索引するこ
とによって実アドレスを得るアドレス変換バッファを有
し、前記第二および第三のレジスタを前記アドレス変換
バッファの一部として有することを特徴とする請求項2
の動的アドレス変換処理装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3222575A JPH087717B2 (ja) | 1991-09-03 | 1991-09-03 | 動的アドレス変換処理装置 |
CA002077297A CA2077297C (en) | 1991-09-03 | 1992-09-01 | Dynamic address translation processing apparatus in a data processing system |
AU22049/92A AU638382B2 (en) | 1991-09-03 | 1992-09-01 | A dynamic address translation processing apparatus in a data processing system |
US07/939,721 US5497469A (en) | 1991-09-03 | 1992-09-02 | Dynamic address translation allowing quick update of the change bit |
DE69227740T DE69227740T2 (de) | 1991-09-03 | 1992-09-03 | Verarbeitungsanordnung zur dynamischen Adressübersetzung in einem Datenverarbeitungssystem |
EP92307985A EP0531123B1 (en) | 1991-09-03 | 1992-09-03 | A dynamic address translation processing apparatus in a data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3222575A JPH087717B2 (ja) | 1991-09-03 | 1991-09-03 | 動的アドレス変換処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0561773A JPH0561773A (ja) | 1993-03-12 |
JPH087717B2 true JPH087717B2 (ja) | 1996-01-29 |
Family
ID=16784620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3222575A Expired - Lifetime JPH087717B2 (ja) | 1991-09-03 | 1991-09-03 | 動的アドレス変換処理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5497469A (ja) |
EP (1) | EP0531123B1 (ja) |
JP (1) | JPH087717B2 (ja) |
AU (1) | AU638382B2 (ja) |
CA (1) | CA2077297C (ja) |
DE (1) | DE69227740T2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
US5857080A (en) | 1996-09-10 | 1999-01-05 | Lsi Logic Corporation | Apparatus and method for address translation in bus bridge devices |
US5852607A (en) * | 1997-02-26 | 1998-12-22 | Cisco Technology, Inc. | Addressing mechanism for multiple look-up tables |
US6047388A (en) * | 1997-04-09 | 2000-04-04 | International Business Machines Corporation | Method and apparatus for processing an invalid address request |
GB2330693B (en) * | 1997-10-23 | 2002-04-24 | Andrew Jesman | Matching device for a multi-frequency antenna |
US6226731B1 (en) * | 1998-09-08 | 2001-05-01 | International Business Machines Corporation | Method and system for accessing a cache memory within a data-processing system utilizing a pre-calculated comparison array |
US6560687B1 (en) * | 2000-10-02 | 2003-05-06 | International Business Machines Corporation | Method of implementing a translation lookaside buffer with support for a real space control |
US6959373B2 (en) * | 2001-12-10 | 2005-10-25 | Incipient, Inc. | Dynamic and variable length extents |
US6986015B2 (en) * | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
US7173929B1 (en) * | 2001-12-10 | 2007-02-06 | Incipient, Inc. | Fast path for performing data operations |
CN100421181C (zh) * | 2002-07-30 | 2008-09-24 | 希旺科技股份有限公司 | 可重覆写入的非挥发性储存的储存***与其写入方法 |
US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
JP6179355B2 (ja) * | 2013-10-31 | 2017-08-16 | 富士通株式会社 | 情報処理装置、データ転送制御方法及びデータ転送制御プログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4084230A (en) * | 1976-11-29 | 1978-04-11 | International Business Machines Corporation | Hybrid semiconductor memory with on-chip associative page addressing, page replacement and control |
JPS5994289A (ja) * | 1982-11-22 | 1984-05-30 | Hitachi Ltd | 記憶制御方式 |
USRE37305E1 (en) * | 1982-12-30 | 2001-07-31 | International Business Machines Corporation | Virtual memory address translation mechanism with controlled data persistence |
JPS60254345A (ja) * | 1984-05-31 | 1985-12-16 | Fujitsu Ltd | アドレス変換方式 |
US4731740A (en) * | 1984-06-30 | 1988-03-15 | Kabushiki Kaisha Toshiba | Translation lookaside buffer control system in computer or virtual memory control scheme |
JPH0812636B2 (ja) * | 1986-12-24 | 1996-02-07 | 株式会社東芝 | 仮想記憶制御方式の計算機システム |
US5233700A (en) * | 1987-03-03 | 1993-08-03 | Nec Corporation | Address translation device with an address translation buffer loaded with presence bits |
JPS63259749A (ja) * | 1987-04-17 | 1988-10-26 | Hitachi Ltd | 仮想記憶制御方式 |
JPH0661068B2 (ja) * | 1989-07-18 | 1994-08-10 | 株式会社日立製作所 | 記憶再配置方法および階層化記憶システム |
US5305444A (en) * | 1990-12-21 | 1994-04-19 | Sun Microsystems, Inc. | Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register |
JP3190700B2 (ja) * | 1991-05-31 | 2001-07-23 | 日本電気株式会社 | アドレス変換装置 |
-
1991
- 1991-09-03 JP JP3222575A patent/JPH087717B2/ja not_active Expired - Lifetime
-
1992
- 1992-09-01 CA CA002077297A patent/CA2077297C/en not_active Expired - Fee Related
- 1992-09-01 AU AU22049/92A patent/AU638382B2/en not_active Ceased
- 1992-09-02 US US07/939,721 patent/US5497469A/en not_active Expired - Fee Related
- 1992-09-03 EP EP92307985A patent/EP0531123B1/en not_active Expired - Lifetime
- 1992-09-03 DE DE69227740T patent/DE69227740T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0561773A (ja) | 1993-03-12 |
CA2077297C (en) | 1997-03-18 |
US5497469A (en) | 1996-03-05 |
EP0531123A1 (en) | 1993-03-10 |
CA2077297A1 (en) | 1993-03-04 |
DE69227740T2 (de) | 1999-04-22 |
AU638382B2 (en) | 1993-06-24 |
DE69227740D1 (de) | 1999-01-14 |
EP0531123B1 (en) | 1998-12-02 |
AU2204992A (en) | 1993-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
JP3278748B2 (ja) | メモリ空間を節約する方法および装置 | |
US5694567A (en) | Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits | |
US4654790A (en) | Translation of virtual and real addresses to system addresses | |
KR960001946B1 (ko) | 우선 변환 참조버퍼 | |
US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
US4616311A (en) | Data processing system | |
JP4268332B2 (ja) | 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置 | |
US7089398B2 (en) | Address translation using a page size tag | |
US4980816A (en) | Translation look-aside buffer control system with multiple prioritized buffers | |
JPH04320553A (ja) | アドレス変換機構 | |
JPH04319747A (ja) | アドレス変換機構 | |
JP3449487B2 (ja) | 変換索引緩衝機構 | |
JPH04217051A (ja) | マイクロプロセッサ | |
JPH087717B2 (ja) | 動的アドレス変換処理装置 | |
US6553477B1 (en) | Microprocessor and address translation method for microprocessor | |
JP2009512943A (ja) | 多階層の変換索引緩衝機構(TLBs)フィールドの更新 | |
US5132927A (en) | System for cache space allocation using selective addressing | |
US5737575A (en) | Interleaved key memory with multi-page key cache | |
JP2930071B2 (ja) | 情報処理装置およびプロセッサ | |
US6686920B1 (en) | Optimizing the translation of virtual addresses into physical addresses using a pipeline implementation for least recently used pointer | |
JP3210637B2 (ja) | データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム | |
EP0486154B1 (en) | Method of operating a virtual memory system | |
US5649155A (en) | Cache memory accessed by continuation requests | |
US4424564A (en) | Data processing system providing dual storage of reference bits |
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: 19960723 |