JP3229045B2 - アドレス変換バッファ機構 - Google Patents
アドレス変換バッファ機構Info
- Publication number
- JP3229045B2 JP3229045B2 JP34190592A JP34190592A JP3229045B2 JP 3229045 B2 JP3229045 B2 JP 3229045B2 JP 34190592 A JP34190592 A JP 34190592A JP 34190592 A JP34190592 A JP 34190592A JP 3229045 B2 JP3229045 B2 JP 3229045B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- address translation
- tlb
- buffer
- entry
- 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 - Fee Related
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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は、仮想記憶制御を実装し
た計算機において、仮想アドレスを物理アドレスに変換
するアドレス変換バッファ機構の改良に関する。
た計算機において、仮想アドレスを物理アドレスに変換
するアドレス変換バッファ機構の改良に関する。
【0002】
【従来の技術】近年、計算機の処理能力の向上により、
高速で大容量の記憶装置が要求され、当該高速で大容量
の記憶装置を実現するため、記憶装置の階層化という技
法が考え出された。
高速で大容量の記憶装置が要求され、当該高速で大容量
の記憶装置を実現するため、記憶装置の階層化という技
法が考え出された。
【0003】上記記憶装置の階層化の仮想記憶は、デー
タを補助記憶装置に記憶し、参照頻度の高いデータを主
記憶装置に移すことにより、主記憶装置の容量より多い
データの参照を効率よく行うものである。上記仮想記憶
を備えた仮想記憶制御方式の計算機は、プログラマが使
用するアドレス空間のアドレスを示す仮想アドレスを主
記憶装置のアドレスである実アドレスに変換するアドレ
ス変換が必要である。上記アドレス変換には、動的アド
レス変換(DAT)に比べセグメント番号とページ番号
から直ちにぺージ枠アドレスを取り出せる変換牽引緩衝
機構(Translation look aside
buffer:以下、TLBという。)がある。上記
TLBを備えた仮想記憶の計算機は、通常、1命令を逐
次実行する逐次型計算機であるが、計算機システムの一
層の高速化および高信頼化を図るため、また、人工知能
などの新しい応用分野に対応するため、並列処理の導入
が不可欠となっている。
タを補助記憶装置に記憶し、参照頻度の高いデータを主
記憶装置に移すことにより、主記憶装置の容量より多い
データの参照を効率よく行うものである。上記仮想記憶
を備えた仮想記憶制御方式の計算機は、プログラマが使
用するアドレス空間のアドレスを示す仮想アドレスを主
記憶装置のアドレスである実アドレスに変換するアドレ
ス変換が必要である。上記アドレス変換には、動的アド
レス変換(DAT)に比べセグメント番号とページ番号
から直ちにぺージ枠アドレスを取り出せる変換牽引緩衝
機構(Translation look aside
buffer:以下、TLBという。)がある。上記
TLBを備えた仮想記憶の計算機は、通常、1命令を逐
次実行する逐次型計算機であるが、計算機システムの一
層の高速化および高信頼化を図るため、また、人工知能
などの新しい応用分野に対応するため、並列処理の導入
が不可欠となっている。
【0004】上記並列処理を実行する並列実行型計算機
には、ノイマン型並列計算機のうち、1つの命令語を複
数のフィールドに分割し、個々のフィールドに演算器や
メモリを独立に制御する命令を配置するVLIW(Ve
ry long instruction word
)方式がある。このVLIW方式では、例えば、ロー
ド命令、ストア命令、分岐命令およびJUMP命令など
のアドレス変換を必要とする命令を1つの命令語(1ク
ラスタ)に配置して、これらの命令を1サイクルに同時
に実行することが行われる。例えば、1クラスタに4つ
の命令を配置してこれらのアドレス変換を必要とする命
令を並列に同時実行する構成としたVLIW方式の並列
実行型計算機では、当該4つの命令を並列に同時実行す
るために、これらの4つの命令のアドレス変換が同時に
行われる。
には、ノイマン型並列計算機のうち、1つの命令語を複
数のフィールドに分割し、個々のフィールドに演算器や
メモリを独立に制御する命令を配置するVLIW(Ve
ry long instruction word
)方式がある。このVLIW方式では、例えば、ロー
ド命令、ストア命令、分岐命令およびJUMP命令など
のアドレス変換を必要とする命令を1つの命令語(1ク
ラスタ)に配置して、これらの命令を1サイクルに同時
に実行することが行われる。例えば、1クラスタに4つ
の命令を配置してこれらのアドレス変換を必要とする命
令を並列に同時実行する構成としたVLIW方式の並列
実行型計算機では、当該4つの命令を並列に同時実行す
るために、これらの4つの命令のアドレス変換が同時に
行われる。
【0005】このように4つの命令を同時に実行して同
時にTLB(アドレス変換バッファ)ミスヒットしたと
きのために、以下の示す対策が施されている。
時にTLB(アドレス変換バッファ)ミスヒットしたと
きのために、以下の示す対策が施されている。
【0006】まず、第1の方式は、同時にTLBミスヒ
ットが発生する可能性の数、この場合、ロード命令等と
TLBリプレース後の戻り番地のウェイ数とをTLBエ
ントリとして持つ方式である。上記第1の方式では、大
容量のTLBを持つとすると4ウェイのインタリーブし
かなく、キャッシュメモリのセットアソシアティブ方式
の数を増やすことしかないが、例えば、SRAMの8K
エントリの場合、キャッシュメモリが大きくなりRAM
の個数も大きくなる。従って、RAMをボード上に実装
する関係、同時にアドレス変換する命令の数に制約がで
きるものであった。
ットが発生する可能性の数、この場合、ロード命令等と
TLBリプレース後の戻り番地のウェイ数とをTLBエ
ントリとして持つ方式である。上記第1の方式では、大
容量のTLBを持つとすると4ウェイのインタリーブし
かなく、キャッシュメモリのセットアソシアティブ方式
の数を増やすことしかないが、例えば、SRAMの8K
エントリの場合、キャッシュメモリが大きくなりRAM
の個数も大きくなる。従って、RAMをボード上に実装
する関係、同時にアドレス変換する命令の数に制約がで
きるものであった。
【0007】次に、第2の方式は、第1の方式において
必要とされるウェイ数以上のフルアソシアティブエント
リを有する方式である。上記第2の方式は、チップの中
でレジスタを実現しようとすると、例えば、128Kエ
ントリしか持つことができない。従って、レジスタが大
きいためチップの中にいくつも配置できない。また、フ
ルアソシアティブ方式のTLBは、当該エントリの全て
にヒット/ミスヒットを判定する判定回路およびその他
の比較回路と制御回路を備えるためにハード量が増加す
るものであった。
必要とされるウェイ数以上のフルアソシアティブエント
リを有する方式である。上記第2の方式は、チップの中
でレジスタを実現しようとすると、例えば、128Kエ
ントリしか持つことができない。従って、レジスタが大
きいためチップの中にいくつも配置できない。また、フ
ルアソシアティブ方式のTLBは、当該エントリの全て
にヒット/ミスヒットを判定する判定回路およびその他
の比較回路と制御回路を備えるためにハード量が増加す
るものであった。
【0008】
【発明が解決しようとする課題】しかしながら、第1の
方式は、例えば、チップの外部のRAMによりTLBを
構成する場合、チップとチップの外部のRAMのインタ
ーフェースがウェイ数に比例して多くなるため、命令の
並列処理を向上するとチップのI/Oピンの数が増加す
る。また、上記チップ外付けのTLBを構成するRAM
が故障した場合には、TLB変換バッファ機構として機
能しないため必要とされるウェイ数を確保できない問題
があった。
方式は、例えば、チップの外部のRAMによりTLBを
構成する場合、チップとチップの外部のRAMのインタ
ーフェースがウェイ数に比例して多くなるため、命令の
並列処理を向上するとチップのI/Oピンの数が増加す
る。また、上記チップ外付けのTLBを構成するRAM
が故障した場合には、TLB変換バッファ機構として機
能しないため必要とされるウェイ数を確保できない問題
があった。
【0009】また、チップ内部に必要なウェイ数を実現
するには、チップの面積による制約およびシリコン上の
配線領域が多くなるため大容量TLBを実装するのが困
難であった。
するには、チップの面積による制約およびシリコン上の
配線領域が多くなるため大容量TLBを実装するのが困
難であった。
【0010】一方、第2の方式は、フルアソシアティブ
方式のTLBにおいて、当該TLBのエントリの全てに
ヒット/ミスヒットの判定回路やその他の比較器/制御
回路を備えるため、ハード量が増加して大容量のTLB
を備えられず、一般に100エントリ以下のフルアソシ
アティブを有する仮想記憶制御方式の計算機システムが
大部分であった。また、第2の方式は、必要最小限のT
LBエントリをサポートできるが、容量が小さいために
TLBのヒット率を向上するのが難しくミスヒットの発
生によるシステムの処理速度の低下が問題であった。
方式のTLBにおいて、当該TLBのエントリの全てに
ヒット/ミスヒットの判定回路やその他の比較器/制御
回路を備えるため、ハード量が増加して大容量のTLB
を備えられず、一般に100エントリ以下のフルアソシ
アティブを有する仮想記憶制御方式の計算機システムが
大部分であった。また、第2の方式は、必要最小限のT
LBエントリをサポートできるが、容量が小さいために
TLBのヒット率を向上するのが難しくミスヒットの発
生によるシステムの処理速度の低下が問題であった。
【0011】以上のように、複数のアドレス変換バッフ
ァを使用する命令は、1サイクルに1個しか実行できな
いため同時実行が難しい。このため、命令の並列実行な
どの処理の並列化を進めるにつれて、仮想記憶制御方式
の計算機の並列処理が困難になる問題があった。
ァを使用する命令は、1サイクルに1個しか実行できな
いため同時実行が難しい。このため、命令の並列実行な
どの処理の並列化を進めるにつれて、仮想記憶制御方式
の計算機の並列処理が困難になる問題があった。
【0012】本発明は、このような従来の課題を解決す
るためになされたものであり、その目的は、大容量のア
ドレス変換バッファと複数のアドレス変換を伴う命令を
同時に実行するアドレス変換バッファとを備えて、当該
大容量のアドレス変換バッファに障害が発生すると当該
大容量のアドレス変換バッファに記憶されているデータ
を当該複数のアドレス変換を伴う命令を同時に実行する
アドレス変換バッファに記憶させるリプレース処理を可
能にすることにより、大容量のアドレス変換バッファが
故障しても動作を継続できるアドレス変換バッファ機構
を提供することにある。
るためになされたものであり、その目的は、大容量のア
ドレス変換バッファと複数のアドレス変換を伴う命令を
同時に実行するアドレス変換バッファとを備えて、当該
大容量のアドレス変換バッファに障害が発生すると当該
大容量のアドレス変換バッファに記憶されているデータ
を当該複数のアドレス変換を伴う命令を同時に実行する
アドレス変換バッファに記憶させるリプレース処理を可
能にすることにより、大容量のアドレス変換バッファが
故障しても動作を継続できるアドレス変換バッファ機構
を提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数の命令を同時実行するVLIW方式
の計算機において、仮想アドレスから物理アドレスにア
ドレス変換をするためのダイレクトマッピング方式のア
ドレス変換バッファと、仮想アドレスから物理アドレス
にアドレス変換をするためのフルアソシアティブ方式の
アドレス変換バッファと、ダイレクトマッピング方式の
アドレス変換バッファでミスヒットが発生したとき、ミ
スヒットが発生したエントリのエラービットがリセット
状態の場合にはミスヒットが発生したエントリの情報を
フルアソシアティブ方式のアドレス変換バッファにコピ
ーし、ダイレクトマッピング方式のアドレス変換バッフ
ァのエントリのエラービットがセット状態の場合には、
ミスヒットが発生した仮想アドレスとこの仮想アドレス
に対応する物理アドレスをフルアソシアティブ方式のア
ドレス変換バッファに格納するリプレース手段とを具備
したことを特徴とする。
め、本発明は、複数の命令を同時実行するVLIW方式
の計算機において、仮想アドレスから物理アドレスにア
ドレス変換をするためのダイレクトマッピング方式のア
ドレス変換バッファと、仮想アドレスから物理アドレス
にアドレス変換をするためのフルアソシアティブ方式の
アドレス変換バッファと、ダイレクトマッピング方式の
アドレス変換バッファでミスヒットが発生したとき、ミ
スヒットが発生したエントリのエラービットがリセット
状態の場合にはミスヒットが発生したエントリの情報を
フルアソシアティブ方式のアドレス変換バッファにコピ
ーし、ダイレクトマッピング方式のアドレス変換バッフ
ァのエントリのエラービットがセット状態の場合には、
ミスヒットが発生した仮想アドレスとこの仮想アドレス
に対応する物理アドレスをフルアソシアティブ方式のア
ドレス変換バッファに格納するリプレース手段とを具備
したことを特徴とする。
【0014】
【作用】上記のごとく構成すれば、ダイレクトマッピン
グ方式のアドレス変換バッファでミスヒットが発生した
とき、ミスヒットが発生したエントリのエラービットの
状態をチェックする。このチェックの結果、エラービッ
トがリセット状態の場合にはミスヒットが発生したエン
トリの情報をフルアソシアティブ方式のアドレス変換バ
ッファにコピーする。また、エラービットがセット状態
の場合には、ミスヒットが発生した仮想アドレスとこの
仮想アドレスに対応する物理アドレスをフルアソシアテ
ィブ方式のアドレス変換バッファに格納する。
グ方式のアドレス変換バッファでミスヒットが発生した
とき、ミスヒットが発生したエントリのエラービットの
状態をチェックする。このチェックの結果、エラービッ
トがリセット状態の場合にはミスヒットが発生したエン
トリの情報をフルアソシアティブ方式のアドレス変換バ
ッファにコピーする。また、エラービットがセット状態
の場合には、ミスヒットが発生した仮想アドレスとこの
仮想アドレスに対応する物理アドレスをフルアソシアテ
ィブ方式のアドレス変換バッファに格納する。
【0015】一方、上記エラービットがセット状態の場
合は、ダイレクトマッピング方式またはセットアソシア
ティブ方式のアドレス変換バッファのエントリのエラー
ビットがセット状態の場合にリプレースにより置き換え
られるエントリの情報を当該フルアソシアティブ方式の
アドレス変換バッファにコピーするので、大容量のアド
レス変換バッファに故障が発生しても動作の継続を実現
できる。
合は、ダイレクトマッピング方式またはセットアソシア
ティブ方式のアドレス変換バッファのエントリのエラー
ビットがセット状態の場合にリプレースにより置き換え
られるエントリの情報を当該フルアソシアティブ方式の
アドレス変換バッファにコピーするので、大容量のアド
レス変換バッファに故障が発生しても動作の継続を実現
できる。
【0016】
【実施例】以下、本発明の一実施例を図面に基づいて説
明する。
明する。
【0017】図1は本発明のアドレス変換バッファ機構
に係る一実施例の要部を示す構成図である。
に係る一実施例の要部を示す構成図である。
【0018】上記アドレス変換バッファ機構1は、CP
U(中央処理装置)内に設けられ、動的アドレス変換
(DAT)に比べセグメント番号とページ番号から直ち
にぺージ枠アドレスを取り出せる変換牽引緩衝機構(T
ranslation look aside buf
fer:以下、TLBという。)を備え、当該TLBの
エントリ(セグメント記述子)でヒットしていると仮想
アドレスから物理アドレスに変換するものである。な
お、システム全体の制御は、例えば、ワークステーショ
ンの場合にはオペレーティングシステム(以下、OSと
いう。)により制御される。
U(中央処理装置)内に設けられ、動的アドレス変換
(DAT)に比べセグメント番号とページ番号から直ち
にぺージ枠アドレスを取り出せる変換牽引緩衝機構(T
ranslation look aside buf
fer:以下、TLBという。)を備え、当該TLBの
エントリ(セグメント記述子)でヒットしていると仮想
アドレスから物理アドレスに変換するものである。な
お、システム全体の制御は、例えば、ワークステーショ
ンの場合にはオペレーティングシステム(以下、OSと
いう。)により制御される。
【0019】また、アドレス変換バッファ機構1は、演
算制御部3とキャッシュメモリ制御部5との中間に設け
られ、演算制御部3からのアドレス変換リクエスト(仮
想アドレス)1〜アドレス変換リクエスト(仮想アドレ
ス)Mを物理アドレス1〜物理アドレスMに変換してキ
ャッシュメモリ制御部5に出力するものである。
算制御部3とキャッシュメモリ制御部5との中間に設け
られ、演算制御部3からのアドレス変換リクエスト(仮
想アドレス)1〜アドレス変換リクエスト(仮想アドレ
ス)Mを物理アドレス1〜物理アドレスMに変換してキ
ャッシュメモリ制御部5に出力するものである。
【0020】更に、アドレス変換バッファ機構1は、m
ウェイのダイレクトマッピング方式のアドレス変換バッ
ファ(以下、DMTLBという。)7a〜7mと、アド
レス変換を必要とする命令を同時実行するのに必要なエ
ントリ数を確保したフルアソシアティブ方式のアドレス
変換バッファ(以下、FATLBという。)9とを備え
ている。そして、アドレス変換バッファ機構1は、FA
TLB9およびDMTLB7a〜7mから物理アドレス
を選択するセレクタ11a〜11mを備えた構成であ
る。
ウェイのダイレクトマッピング方式のアドレス変換バッ
ファ(以下、DMTLBという。)7a〜7mと、アド
レス変換を必要とする命令を同時実行するのに必要なエ
ントリ数を確保したフルアソシアティブ方式のアドレス
変換バッファ(以下、FATLBという。)9とを備え
ている。そして、アドレス変換バッファ機構1は、FA
TLB9およびDMTLB7a〜7mから物理アドレス
を選択するセレクタ11a〜11mを備えた構成であ
る。
【0021】上記DMTLB7a〜7mのウェイ数m
は、1サイクルに同時に実行する命令列である1クラス
タにアドレス変換の必要な命令が複数配置されている場
合にアドレス変換に必要な命令数(N個)とクラスタ自
身の戻り番地(1個)との和であるN+1と等しい数で
ある。また、上記FATLB9は、1サイクルに同時に
実行する命令列である1クラスタにアドレス変換の必要
な命令が複数配置されている場合にアドレス変換の必要
な命令数(N個)とクラスタ自身の戻り番地(1個)と
の和であるN+1のエントリ数を有する。
は、1サイクルに同時に実行する命令列である1クラス
タにアドレス変換の必要な命令が複数配置されている場
合にアドレス変換に必要な命令数(N個)とクラスタ自
身の戻り番地(1個)との和であるN+1と等しい数で
ある。また、上記FATLB9は、1サイクルに同時に
実行する命令列である1クラスタにアドレス変換の必要
な命令が複数配置されている場合にアドレス変換の必要
な命令数(N個)とクラスタ自身の戻り番地(1個)と
の和であるN+1のエントリ数を有する。
【0022】FATLB9のエントリ数をN+1にする
のは、以下のような理由からである。DMTLB7a〜
7mが正常に動作している場合は、DMTLB7a〜7
mのウェイ数とFATLB9のエントリ数とを加えた数
が1サイクルに同時に実行する命令列である1クラスタ
にアドレス変換の必要な命令が複数配置されている場合
にアドレス変換の必要な命令数(N個)にそのクラスタ
自身の戻り番地(1個)の数を足した数(N+1)に等
しければ足りる。しかし、DMTLB7a〜7mに故障
してアドレス変換に使用できない場合には、FATLB
9だけでアドレス変換の処理を継続する必要があるた
め、FATLB9のエントリ数は、上記説明の通りN+
1必要である。
のは、以下のような理由からである。DMTLB7a〜
7mが正常に動作している場合は、DMTLB7a〜7
mのウェイ数とFATLB9のエントリ数とを加えた数
が1サイクルに同時に実行する命令列である1クラスタ
にアドレス変換の必要な命令が複数配置されている場合
にアドレス変換の必要な命令数(N個)にそのクラスタ
自身の戻り番地(1個)の数を足した数(N+1)に等
しければ足りる。しかし、DMTLB7a〜7mに故障
してアドレス変換に使用できない場合には、FATLB
9だけでアドレス変換の処理を継続する必要があるた
め、FATLB9のエントリ数は、上記説明の通りN+
1必要である。
【0023】なお、本実施例は大容量のアドレス変換バ
ッファにダイレクトマッピング方式を用いたが、セット
アソシアティブ方式のアドレス変換バッファを用いても
同様の効果がある。
ッファにダイレクトマッピング方式を用いたが、セット
アソシアティブ方式のアドレス変換バッファを用いても
同様の効果がある。
【0024】次に、図1において説明したアドレス変換
バッファ機構1を、例えば、情報処理装置のシステムに
適用した場合を図2のブロック図を用いて説明する。
バッファ機構1を、例えば、情報処理装置のシステムに
適用した場合を図2のブロック図を用いて説明する。
【0025】上記システムは、2つの大容量のDMTL
B7a,7bと、アドレス変換を必要とする複数の命令
を同時実行するのに必要なエントリ数を確保した4エン
トリのFATLB9とを備えることで、2つのアドレス
変換リクエストを同時に処理することができる。
B7a,7bと、アドレス変換を必要とする複数の命令
を同時実行するのに必要なエントリ数を確保した4エン
トリのFATLB9とを備えることで、2つのアドレス
変換リクエストを同時に処理することができる。
【0026】同図において、アドレス変換リクエスト保
持用レジスタ(以下、保持用レジスタという。)13,
15は、演算制御部3(図外)からのアドレス変換用の
仮想アドレスおよびミスヒット時のリプレース用物理ア
ドレスをラッチする。レジスタ17,19は、TLBミ
スヒット時にミスヒットアドレスを保存する。
持用レジスタ(以下、保持用レジスタという。)13,
15は、演算制御部3(図外)からのアドレス変換用の
仮想アドレスおよびミスヒット時のリプレース用物理ア
ドレスをラッチする。レジスタ17,19は、TLBミ
スヒット時にミスヒットアドレスを保存する。
【0027】セレクタ21は、通常時には保持用レジス
タ13を選択し、後述するリプレース処理の時のみレジ
スタ17を選択する。セレクタ23も同様に通常時には
保持用レジスタ15を選択し、後述するリプレース処理
の時のみレジスタ19を選択する。セレクタ25はリプ
レース用物理アドレスを選択するものであり、セレクタ
27も同様である。
タ13を選択し、後述するリプレース処理の時のみレジ
スタ17を選択する。セレクタ23も同様に通常時には
保持用レジスタ15を選択し、後述するリプレース処理
の時のみレジスタ19を選択する。セレクタ25はリプ
レース用物理アドレスを選択するものであり、セレクタ
27も同様である。
【0028】セレクタ29は、DMTLB7a,7bが
正常に動作している場合にセレクタ21から保持用レジ
スタ13又は保持用レジスタ15に保存されている仮想
アドレスを選択してFATLB9a〜9dのいずれかの
エントリに格納する。一方、DMTLB7a,7bの動
作が異常の場合にセレクタ29は、セレクタ25又はセ
レクタ27から上記リプレース用物理ドレスを選択して
FATLB9a〜9dのいずれかのエントリに格納す
る。セレクタ31は、ヒット検出回路35のヒット検出
によりFATLB9a〜9d内のヒットしているエント
リを選択するものであり、セレクタ33も同様にヒット
検出回路37のヒット検出によりFATLB9a〜9d
内のヒットしているエントリを選択する。
正常に動作している場合にセレクタ21から保持用レジ
スタ13又は保持用レジスタ15に保存されている仮想
アドレスを選択してFATLB9a〜9dのいずれかの
エントリに格納する。一方、DMTLB7a,7bの動
作が異常の場合にセレクタ29は、セレクタ25又はセ
レクタ27から上記リプレース用物理ドレスを選択して
FATLB9a〜9dのいずれかのエントリに格納す
る。セレクタ31は、ヒット検出回路35のヒット検出
によりFATLB9a〜9d内のヒットしているエント
リを選択するものであり、セレクタ33も同様にヒット
検出回路37のヒット検出によりFATLB9a〜9d
内のヒットしているエントリを選択する。
【0029】ヒット検出回路35は、FATLB9a〜
9dのタグと仮想アドレスのタグとを比較してヒット検
出をする回路であり、上記両タグが一致の場合にヒッ
ト、上記両タグが不一致の場合にミスヒットと検出する
ものである。ヒット検出回路37も同様にFATLB9
a〜9dのタグと仮想アドレスのタグとを比較してヒッ
ト検出する回路である。
9dのタグと仮想アドレスのタグとを比較してヒット検
出をする回路であり、上記両タグが一致の場合にヒッ
ト、上記両タグが不一致の場合にミスヒットと検出する
ものである。ヒット検出回路37も同様にFATLB9
a〜9dのタグと仮想アドレスのタグとを比較してヒッ
ト検出する回路である。
【0030】ヒット判定回路39は、DMTLB7aの
タグと仮想アドレスのタグとを比較してヒット検出する
とともに、アドレス変換リクエスト1に対する最終的な
ヒット判定を行なう回路である。ヒット検出回路41も
同様にDMTLB7bのタグと仮想アドレスのタグとを
比較してアドレス変換リクエスト2に対する最終的なヒ
ット判定を行なう回路である。
タグと仮想アドレスのタグとを比較してヒット検出する
とともに、アドレス変換リクエスト1に対する最終的な
ヒット判定を行なう回路である。ヒット検出回路41も
同様にDMTLB7bのタグと仮想アドレスのタグとを
比較してアドレス変換リクエスト2に対する最終的なヒ
ット判定を行なう回路である。
【0031】セレクタ11aは、DMTLB7aの物理
アドレスまたはFATLB9a〜9dの物理アドレスの
いずれかでヒットしている場合にアドレス変換リクエス
ト1に対するアドレス変換後の物理アドレスを選択す
る。セレクタ11bも同様にDMTLB7bまたはFA
TLB9a〜9dのいずれかでヒットしている場合にア
ドレス変換リクエスト2に対するアドレス変換後の物理
アドレスを選択する。
アドレスまたはFATLB9a〜9dの物理アドレスの
いずれかでヒットしている場合にアドレス変換リクエス
ト1に対するアドレス変換後の物理アドレスを選択す
る。セレクタ11bも同様にDMTLB7bまたはFA
TLB9a〜9dのいずれかでヒットしている場合にア
ドレス変換リクエスト2に対するアドレス変換後の物理
アドレスを選択する。
【0032】排他的論理和43a,43bは、DMTL
B7aのパリティエラーを検出して当該検出結果をエラ
ー情報ビットとしてフラグ43cに保存する。同様に、
排他的論理和45a,45bは、DMTLB7bのパリ
ティエラーを検出して当該検出結果をエラー情報ビット
としてフラグ45cに保存する。
B7aのパリティエラーを検出して当該検出結果をエラ
ー情報ビットとしてフラグ43cに保存する。同様に、
排他的論理和45a,45bは、DMTLB7bのパリ
ティエラーを検出して当該検出結果をエラー情報ビット
としてフラグ45cに保存する。
【0033】次に本実施例の作用を説明する。
【0034】まず、システムの起動後、アドレス変換バ
ッファ機構1は、演算制御部3から出力されるアドレス
変換リクエスト1,2(仮想アドレス)をそれぞれ保持
用レジスタ13,15にラッチする。次サイクルにおい
てセレクタ21は保持用レジスタ13を選択し、セレク
タ23は保持用レジスタ15を選択する。この選択後、
アドレス変換バッファ機構1は、受け取った仮想アドレ
スによりDMTLB7a,7bおよびFATLB9a〜
9dを同時にアクセスする。上記アドレス変換リクエス
ト1の仮想アドレスによりアクセスされるのは、DMT
LB7aとFATLB9a〜9dであり、アドレス変換
リクエスト2の仮想アドレスによりアクセスされるの
は、DMTLB7bとFATLB9a〜9dである。そ
して、ヒット検出回路39とヒット検出回路41では、
それぞれDMTLB7a,7bにおけるTLBヒットの
検出をする。またこれと同時にヒット検出回路35とヒ
ット検出回路37では、それぞれFATLB9a〜9d
のエントリにおけるTLBのヒット検出を行なう。更に
排他的論理和回路43aと43bにより、DMTLB7
aでTLBヒットした時に、DMTLB7aから読み出
されたアドレス変換後の物理アドレスにパリティエラー
が発生しているかどうかをチェックし、その結果をエラ
ー情報ビットとしてフラグ43cに保存する。パリティ
エラーが発生している場合には、フラグ43cにおいて
エラーフラグのビットがセットされてパリティエラーが
発生したことを示す。また、パリティエラーが発生して
いない場合には、フラグ43cにおいてエラービットを
リセットしてパリティエラーが発生していないことを示
す。一方、同様に排他的論理和回路45a,45bにお
いても、DMTLB7bでTLBヒットした時に、DM
TLB7bから読み出されたアドレス変換後の物理アド
レスにパリティエラーが発生しているかどうかをチェッ
クし、その結果をエラー情報ビットとしてフラグ45c
に保存する。演算制御部3からのアドレス変換リクエス
ト1,2によるいずれのアドレス変換の場合にも、ヒッ
ト検出回路35又はヒット検出回路37によりFATL
B9a〜9dでTLBのヒットが検出された場合は、D
MTLB7aまたはDMTLB7bでのTLBのヒット
の有無に係わらず、セレクタ11a,11bによりヒッ
トしたFATLB9a〜9dのエントリの物理アドレス
を選択してキャッシュメモリ制御部5に出力する。
ッファ機構1は、演算制御部3から出力されるアドレス
変換リクエスト1,2(仮想アドレス)をそれぞれ保持
用レジスタ13,15にラッチする。次サイクルにおい
てセレクタ21は保持用レジスタ13を選択し、セレク
タ23は保持用レジスタ15を選択する。この選択後、
アドレス変換バッファ機構1は、受け取った仮想アドレ
スによりDMTLB7a,7bおよびFATLB9a〜
9dを同時にアクセスする。上記アドレス変換リクエス
ト1の仮想アドレスによりアクセスされるのは、DMT
LB7aとFATLB9a〜9dであり、アドレス変換
リクエスト2の仮想アドレスによりアクセスされるの
は、DMTLB7bとFATLB9a〜9dである。そ
して、ヒット検出回路39とヒット検出回路41では、
それぞれDMTLB7a,7bにおけるTLBヒットの
検出をする。またこれと同時にヒット検出回路35とヒ
ット検出回路37では、それぞれFATLB9a〜9d
のエントリにおけるTLBのヒット検出を行なう。更に
排他的論理和回路43aと43bにより、DMTLB7
aでTLBヒットした時に、DMTLB7aから読み出
されたアドレス変換後の物理アドレスにパリティエラー
が発生しているかどうかをチェックし、その結果をエラ
ー情報ビットとしてフラグ43cに保存する。パリティ
エラーが発生している場合には、フラグ43cにおいて
エラーフラグのビットがセットされてパリティエラーが
発生したことを示す。また、パリティエラーが発生して
いない場合には、フラグ43cにおいてエラービットを
リセットしてパリティエラーが発生していないことを示
す。一方、同様に排他的論理和回路45a,45bにお
いても、DMTLB7bでTLBヒットした時に、DM
TLB7bから読み出されたアドレス変換後の物理アド
レスにパリティエラーが発生しているかどうかをチェッ
クし、その結果をエラー情報ビットとしてフラグ45c
に保存する。演算制御部3からのアドレス変換リクエス
ト1,2によるいずれのアドレス変換の場合にも、ヒッ
ト検出回路35又はヒット検出回路37によりFATL
B9a〜9dでTLBのヒットが検出された場合は、D
MTLB7aまたはDMTLB7bでのTLBのヒット
の有無に係わらず、セレクタ11a,11bによりヒッ
トしたFATLB9a〜9dのエントリの物理アドレス
を選択してキャッシュメモリ制御部5に出力する。
【0035】尚、アドレス変換リクエスト1又はアドレ
ス変換リクエスト2のいずれの場合においても、FAT
LB9a〜9dにてTLBのヒットが検出されなかった
た場合には、物理アドレスが得られるかは、DMTLB
7aまたはDMTLB7bでのTLBのヒットの有無に
依存する。即ち、DMTLB7aまたはDMTLB7b
でTLBがヒットしていれば、セレクタ11aまたはセ
レクタ11bは、DMTLB7aまたはDMTLB7b
から読み出される物理アドレスを選択してキャッシュメ
モリ制御部5に出力する。
ス変換リクエスト2のいずれの場合においても、FAT
LB9a〜9dにてTLBのヒットが検出されなかった
た場合には、物理アドレスが得られるかは、DMTLB
7aまたはDMTLB7bでのTLBのヒットの有無に
依存する。即ち、DMTLB7aまたはDMTLB7b
でTLBがヒットしていれば、セレクタ11aまたはセ
レクタ11bは、DMTLB7aまたはDMTLB7b
から読み出される物理アドレスを選択してキャッシュメ
モリ制御部5に出力する。
【0036】アドレス変換リクエスト1又はアドレス変
換リクエスト2のいずれの場合においても、もし、DM
TLB7aまたはDMTLB7bにてTLBがヒットし
なければ(TLBがミスヒットした場合には)、以下の
ような処理を行う。ミスヒットが発生したDMTLB7
aまたはDMTLB7bのエントリに格納されている情
報(タグと物理アドレス)をFATLB9a〜9dのい
ずれかに格納する。その後、ミスヒットしたDMTLB
7aまたはDMTLB7bのエントリにミスヒットアド
レスおよびこのミスヒットしたアドレスに対応する物理
アドレス等のエントリ情報を登録するリプレース処理を
実行する。
換リクエスト2のいずれの場合においても、もし、DM
TLB7aまたはDMTLB7bにてTLBがヒットし
なければ(TLBがミスヒットした場合には)、以下の
ような処理を行う。ミスヒットが発生したDMTLB7
aまたはDMTLB7bのエントリに格納されている情
報(タグと物理アドレス)をFATLB9a〜9dのい
ずれかに格納する。その後、ミスヒットしたDMTLB
7aまたはDMTLB7bのエントリにミスヒットアド
レスおよびこのミスヒットしたアドレスに対応する物理
アドレス等のエントリ情報を登録するリプレース処理を
実行する。
【0037】以下に、リプレース処理の説明をアドレス
変換リクエスト1の処理における場合を例にして説明す
る。
変換リクエスト1の処理における場合を例にして説明す
る。
【0038】まず、保持用レジスタ13にラッチしてい
るミスヒットした仮想アドレスをレジスタ17にラッチ
した後に、保持用レジスタ13にリプレース用物理アド
レス(ミスヒットした仮想アドレスに対応する物理アド
レス)をラッチする。この保持用レジスタ13にリプレ
ース用物理アドレスがラッチされた後、アドレス変換バ
ッファ機構1は、フラグ43cにエラービットがセット
されているか又はリセットされているかを調べる。フラ
グ43cがリセットされている場合(パリティエラーが
発生していない場合)には、DMTLB7aのミスヒッ
トしたエントリの情報をセレクタ29を介してFATL
B9a〜9dのいずれかにコピーする。そして、セレク
タ21はレジスタ17を選択してDMTLB7aのミス
ヒットしたエントリにレジスタ17に保持されているミ
スヒットした仮想アドレスを登録する。また、セレクタ
25は、保持用レジスタ13を選択してDMTLB7a
のミスヒットしたエントリに保持用レジスタ13に保持
されているリプレース用物理アドレス(ミスヒットした
仮想アドレスに対応する物理アドレス)を登録する。
るミスヒットした仮想アドレスをレジスタ17にラッチ
した後に、保持用レジスタ13にリプレース用物理アド
レス(ミスヒットした仮想アドレスに対応する物理アド
レス)をラッチする。この保持用レジスタ13にリプレ
ース用物理アドレスがラッチされた後、アドレス変換バ
ッファ機構1は、フラグ43cにエラービットがセット
されているか又はリセットされているかを調べる。フラ
グ43cがリセットされている場合(パリティエラーが
発生していない場合)には、DMTLB7aのミスヒッ
トしたエントリの情報をセレクタ29を介してFATL
B9a〜9dのいずれかにコピーする。そして、セレク
タ21はレジスタ17を選択してDMTLB7aのミス
ヒットしたエントリにレジスタ17に保持されているミ
スヒットした仮想アドレスを登録する。また、セレクタ
25は、保持用レジスタ13を選択してDMTLB7a
のミスヒットしたエントリに保持用レジスタ13に保持
されているリプレース用物理アドレス(ミスヒットした
仮想アドレスに対応する物理アドレス)を登録する。
【0039】一方、フラグ43cがセットされている場
合(パリティエラーが発生している場合)には、ミスヒ
ットしたエントリの情報をFATLB9a〜9dのいず
れにもコピーしない。このコピーしない理由は、ミスヒ
ットしたエントリから読み出した情報にパリティエラー
が発生しているので、このパリティエラーが発生した情
報は以後の使用の対象にならないからである。セレクタ
21,25とセレクタ29の選択により、保持用レジス
タ13とレジスタ17に保持されているミスヒットした
仮想アドレスとリプレース用物理アドレス(ミスヒット
した仮想アドレスに対応する物理アドレス)とをFAT
LB9a〜9dのいずれかに格納する。
合(パリティエラーが発生している場合)には、ミスヒ
ットしたエントリの情報をFATLB9a〜9dのいず
れにもコピーしない。このコピーしない理由は、ミスヒ
ットしたエントリから読み出した情報にパリティエラー
が発生しているので、このパリティエラーが発生した情
報は以後の使用の対象にならないからである。セレクタ
21,25とセレクタ29の選択により、保持用レジス
タ13とレジスタ17に保持されているミスヒットした
仮想アドレスとリプレース用物理アドレス(ミスヒット
した仮想アドレスに対応する物理アドレス)とをFAT
LB9a〜9dのいずれかに格納する。
【0040】これにより、大容量のアドレス変換バッフ
ァを実現し、且つ、1クラスタで処理されるアドレス変
換を必要とする命令が増加しても並列処理が可能にな
る。
ァを実現し、且つ、1クラスタで処理されるアドレス変
換を必要とする命令が増加しても並列処理が可能にな
る。
【0041】また、リプレース処理によりFATLB9
a〜9dにリプレースされた最新のアドレス情報が登録
されるので、DMTLB7a,7bに故障が発生した場
合でもアドレス変換の動作を継続できる。
a〜9dにリプレースされた最新のアドレス情報が登録
されるので、DMTLB7a,7bに故障が発生した場
合でもアドレス変換の動作を継続できる。
【0042】更に、アドレス変換を行なう必要のある命
令が1クラスタに取りうる最大数配置され、その全ての
命令がTLBミスヒットであり、且つ、その全てのアド
レスは異なるにもかかわらず同一のTLBエントリにマ
ッピングされており、また、アドレス変換割り込みの戻
り番地も同一エントリであった場合でもFATLB9a
〜9dに最新のリプレース情報が残っているため、アド
レス変換を実行することができる。
令が1クラスタに取りうる最大数配置され、その全ての
命令がTLBミスヒットであり、且つ、その全てのアド
レスは異なるにもかかわらず同一のTLBエントリにマ
ッピングされており、また、アドレス変換割り込みの戻
り番地も同一エントリであった場合でもFATLB9a
〜9dに最新のリプレース情報が残っているため、アド
レス変換を実行することができる。
【0043】なお、本発明は、TLBのエントリ構成、
ヒット検出、保護、複数のTLB間の情報一致化方法な
どの方式には制限はない。
ヒット検出、保護、複数のTLB間の情報一致化方法な
どの方式には制限はない。
【0044】
【発明の効果】以上説明したように、本発明では、大容
量のアドレス変換バッファと複数のアドレス変換を伴う
命令を同時に実行するアドレス変換バッファとを備え
て、当該大容量のアドレス変換バッファに障害が発生す
ると当該大容量のアドレス変換バッファに記憶されてい
るデータを当該複数のアドレス変換を伴う命令を同時に
実行するアドレス変換バッファに記憶させるリプレース
処理を可能にすることにより、大容量のアドレス変換バ
ッファが故障しても動作の継続を実現できる。
量のアドレス変換バッファと複数のアドレス変換を伴う
命令を同時に実行するアドレス変換バッファとを備え
て、当該大容量のアドレス変換バッファに障害が発生す
ると当該大容量のアドレス変換バッファに記憶されてい
るデータを当該複数のアドレス変換を伴う命令を同時に
実行するアドレス変換バッファに記憶させるリプレース
処理を可能にすることにより、大容量のアドレス変換バ
ッファが故障しても動作の継続を実現できる。
【図1】本発明のアドレス変換バッファ機構の一実施例
を示す構成図である。
を示す構成図である。
【図2】図1のアドレス変換バッファ機構をシステムに
適用した一実施例を示すブロック図である。
適用した一実施例を示すブロック図である。
1 アドレス変換バッファ機構 7a〜7m ダイレクトマッピング方式のアドレス変換
バッファ 9,9a〜9d フルアソシアティブ方式のアドレス変
換バッファ 11a,11b,11m セレクタ 17,19 レジスタ 21,23,25,27,29 セレクタ 35,37 ヒット検出回路
バッファ 9,9a〜9d フルアソシアティブ方式のアドレス変
換バッファ 11a,11b,11m セレクタ 17,19 レジスタ 21,23,25,27,29 セレクタ 35,37 ヒット検出回路
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12
Claims (1)
- 【請求項1】 複数の命令を同時実行するVLIW方式
の計算機において、 仮想アドレスから物理アドレスにアドレス変換をするた
めのダイレクトマッピング方式のアドレス変換バッファ
と、 仮想アドレスから物理アドレスにアドレス変換をするた
めのフルアソシアティブ方式のアドレス変換バッファ
と、 前記ダイレクトマッピング方式のアドレス変換バッファ
でミスヒットが発生したとき、前記ミスヒットが発生し
たエントリのエラービットがリセット状態の場合には前
記ミスヒットが発生したエントリの情報を前記フルアソ
シアティブ方式のアドレス変換バッファにコピーし、 前記ダイレクトマッピング方式のアドレス変換バッファ
のエントリのエラービットがセット状態の場合には、前
記ミスヒットが発生した仮想アドレスとこの仮想アドレ
スに対応する物理アドレスを前記フルアソシアティブ方
式のアドレス変換バッファに格納するリプレース手段と
を具備することを特徴とするアドレス変換バッファ機
構。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34190592A JP3229045B2 (ja) | 1992-12-22 | 1992-12-22 | アドレス変換バッファ機構 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34190592A JP3229045B2 (ja) | 1992-12-22 | 1992-12-22 | アドレス変換バッファ機構 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06187244A JPH06187244A (ja) | 1994-07-08 |
JP3229045B2 true JP3229045B2 (ja) | 2001-11-12 |
Family
ID=18349658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34190592A Expired - Fee Related JP3229045B2 (ja) | 1992-12-22 | 1992-12-22 | アドレス変換バッファ機構 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3229045B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4812876B2 (ja) * | 2007-06-20 | 2011-11-09 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
JP5526626B2 (ja) | 2009-06-30 | 2014-06-18 | 富士通株式会社 | 演算処理装置およびアドレス変換方法 |
-
1992
- 1992-12-22 JP JP34190592A patent/JP3229045B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06187244A (ja) | 1994-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4905141A (en) | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification | |
EP0175091B1 (en) | Fast two-level dynamic address translation method and means | |
US5392410A (en) | History table for prediction of virtual address translation for cache access | |
EP0052370B1 (en) | A virtual storage data processing system | |
US6470437B1 (en) | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design | |
EP0036110A2 (en) | Cache addressing mechanism | |
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 | |
Namjoo et al. | Watchdog processors and capability checking | |
JP2603476B2 (ja) | データ取り出し方法 | |
US6473835B2 (en) | Partition of on-chip memory buffer for cache | |
JPH0654478B2 (ja) | 計算機システム | |
US4731740A (en) | Translation lookaside buffer control system in computer or virtual memory control scheme | |
US6901540B1 (en) | TLB parity error recovery | |
CA2240619A1 (en) | Multiway associative external microprocessor cache | |
US6226763B1 (en) | Method and apparatus for performing cache accesses | |
EP0284751B1 (en) | Cache memory | |
GB2367648A (en) | Avoidance of repeated trap handling | |
US5636354A (en) | Data processor with serially accessed set associative memory cache interface and method | |
US8688952B2 (en) | Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB | |
US6338128B1 (en) | System and method for invalidating an entry in a translation unit | |
JP3229045B2 (ja) | アドレス変換バッファ機構 | |
US8595465B1 (en) | Virtual address to physical address translation using prediction logic | |
JP3210637B2 (ja) | データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム | |
TW200307867A (en) | Method and system for compression of address tags in memory structures | |
US6324635B1 (en) | Method and apparatus for address paging emulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |