JPH0619793A - キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル - Google Patents

キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル

Info

Publication number
JPH0619793A
JPH0619793A JP5066944A JP6694493A JPH0619793A JP H0619793 A JPH0619793 A JP H0619793A JP 5066944 A JP5066944 A JP 5066944A JP 6694493 A JP6694493 A JP 6694493A JP H0619793 A JPH0619793 A JP H0619793A
Authority
JP
Japan
Prior art keywords
cache
address
real
tlb
access
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
JP5066944A
Other languages
English (en)
Other versions
JP2618175B2 (ja
Inventor
Lishing Liu
リシン・リュウ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0619793A publication Critical patent/JPH0619793A/ja
Application granted granted Critical
Publication of JP2618175B2 publication Critical patent/JP2618175B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

Abstract

(57)【要約】 【目的】 仮想アドレスから実アドレスをより高速に、
且つより正確に提供する効率的で柔軟なキャッシュ・ア
クセスを可能とする機構を提供する。 【構成】 一次元の履歴テーブル(TLBLAT)が暫
定的に実アドレスベースのキャッシュをアクセスするた
めの全ての仮想ページアドレスに相当する実アドレスビ
ットを予測するために使用される。同テーブル内のエン
トリを与えられた仮想アドレスによって選択する基準は
仮想アドレス上の特定のビットに準拠される。また、か
かる選択は十分なランダム化を達成するためにかかる仮
想アドレスビットと他の情報を一緒にハッシュすること
によっても準拠する。各々の表のエントリは最低でも最
適なクラスの実アドレスを予測するのに必要なビットを
格納する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般に仮想アドレス指定
を有するコンピュータ・システムのキャッシュに関し、
特に、仮想アドレスから実アドレス・ベースのキャッシ
ュをアクセスする方法に関する。
【0002】
【従来の技術】コンピュータ・システムにおける性能改
善のためにキャッシュを使用することはよく知られてお
り広範囲に使用されている。キャッシュは最近使用され
たメモリ・データを保持するための高速のバッファであ
る。プログラムによる参照の局所性(すなわちプログラ
ムが近接するアドレスを有するメモリ内のロケーション
を参照する傾向)のために、メモリ・データに対するほ
とんどのアクセスはキャッシュへのアクセスにより実行
され、こうしたケースでは大容量メモリに対する遅いア
クセスが回避される。
【0003】典型的な高性能プロセッサの設計ではキャ
ッシュ・アクセス・パスはクリティカル・パスを形成す
る。すなわち、プロセッサのサイクル・タイムはキャッ
シュ・アクセスがどの程度高速に実行されるかにより制
限される。
【0004】キャッシュは論理的にはデータ・ブロッ
ク、或いはラインの1次元或いは2次元テーブルとして
見なされ、キャッシュ・テーブル・エントリはメモリ・
データの特定のブロック或いはラインを格納する。以降
では用語キャッシュ"ライン"はキャッシュ・データ記憶
ユニットを言及するために使用されるが、用語キャッシ
ュ "ブロック" についても同義語と見なされる。キャッ
シュの実施は通常3つの主な機能により達成される。す
なわち、それらはディレクトリ機能、メモリ機能(配列
と称されたりもする)、及び制御機能である。キャッシ
ュ・ディレクトリはキャッシュ・ライン・エントリに対
応するアドレス識別子に加え、特定の実施例に適切な他
の必要なステータス・タグを含む。キャッシュ・メモリ
或いは配列は実際のデータ・ビット(これはオペランド
或いは命令を表す)、及び特定の実施例において要求さ
れるパリティ・チェック或いは誤り訂正のための追加ビ
ットを格納する。キャッシュ制御回路はキャッシュ内
容、及びアクセスの管理のために必要な論理を提供す
る。
【0005】キャッシュへのアクセスにおいて、目的の
データ・ラインがキャッシュ内に存在するかを識別する
ために、ディレクトリがルック・アップされる。目的の
データ・ラインがキャッシュ内に見い出される場合、キ
ャッシュ・ヒットが発生し、それ以外の場合にはキャッ
シュ・ミスが生じる。キャッシュ・ヒットにおいて禁止
条件(例えばキー保護違反)が存在しない場合、データ
が配列からアクセスされる。
【0006】キャッシュ・ミスではデータ・ラインが通
常、大容量メモリからフェッチされ、最初にキャッシュ
に挿入され、それに従いキャッシュからのアクセスを満
足させるためにディレクトリが更新される。キャッシュ
は制限されたライン・エントリ分の容量だけしか有さ
ず、大容量メモリに比較して相対的に小容量なために、
現存のライン・エントリの置換がしばしば必要となる。
キャッシュ・エントリの置換は通常、最低使用頻度(L
RU)法などのアルゴリズムにもとづく。LRU法では
キャッシュ・ライン・エントリの置換は必要時に、最低
頻度でアクセスされたライン・エントリが置換される。
【0007】効率を向上させるためにキャッシュは通
常、2次元テーブル(図1参照)として構成される。行
数をセット・アソシエイティビティ(すなわち図1では
4重セット・アソシエイティビティ)と称し、各列は合
同クラスと称される。各データ・アクセスに対し合同ク
ラスがアクセス・アドレス250の特定のメモリ・アド
レス・ビット112を使用して選択され、データはそれ
がキャッシュにおいてヒットする場合、選択合同クラス
116内のライン・エントリ116a乃至dの1つにお
いてアクセスされる。
【0008】しばしば(選択合同クラス116内の)セ
ット位置a、b、c或いはdを識別するために、最初に
キャッシュ・ディレクトリを探索し(パラレル・アドレ
ス比較においても)、その次にデータを配列の識別され
たロケーションからアクセスすることが遅過ぎると見な
される。こうした順序処理は通常、2連続マシン・サイ
クルを費やして実行されるためプロセッサ性能は著しく
低下する。レイト・セレクト(late-select) と称され
る一般的なアプローチは、以下に示すように1サイクル
の間にディレクトリ探索、及び配列データ・アクセスを
実行する。実行要素によるデータ単位(例えばダブルワ
ード)のフェッチについて考えてみる。アクセスのため
の正確なセット位置が分からなくとも、配列制御は即座
に合同クラス内の全てのセット位置のラインから候補デ
ータ単位を検索し、その間にディレクトリがルック・ア
ップされる。キャッシュ・ヒットが発生するとディレク
トリ制御はそれらの検索データ単位の1つの最終選択を
通知し、それを要求する実行要素に送信する。
【0009】キャッシュ設計を複雑化する別の側面は、
ほとんどのコンピュータ・システムにおいて共通に使用
される仮想アドレス指定アーキテクチャである。仮想メ
モリ・システム(たとえばIBM/390アーキテクチ
ャ)では、各ユーザ処理は固有の仮想アドレス空間を有
する。プログラムの実行においてオペレーティング・シ
ステムは実メモリ・ページ(例えば4キロバイト/ペー
ジ)を、より活動的にアクセスされる仮想アドレス・ペ
ージに動的に割当てる。プログラムからアクセスされる
ページがそれに割当てられる実メモリ・ページを有さな
い場合、例外(ページ不在)条件が発生し、オペレーテ
ィング・システムに適切に実メモリ・ページ・フレーム
を割当てるように指令する。ページ不在処理は通常、超
高性能オーバーヘッドと関連し、しばしばディスク装置
のような低速の補助装置からのデータ・アクセスを要求
する。しかしながら、合理的なオペレーティング・シス
テムはプログラム実行の間に、非常に低いページ不在率
を維持する。
【0010】オペレーティング・システムは、通常、体
系的に特定のソフトウェア・テーブル内に実ページ割当
て情報を保持する。典型的には、セグメント及びページ
・テーブルを有する2レベルの変換テーブル構造がこの
目的のために使用される。各プログラム空間は固有のセ
グメント・テーブルを有し、各エントリはページ・テー
ブルを指す。ページ・テーブルにおいて、各エントリは
実ページ割当て情報、及び特定のアーキテクチャにおい
て必要とされるステータス・タグを記録する。オペレー
ティング・システムはその設計アルゴリズムに従い、こ
うした変換テーブルを管理する。
【0011】仮想アドレス指定の使用の結果、異なるア
ドレス空間からの同一の仮想ページ・アドレスは論理的
に関連付けられず、記憶領域内の異なる実ページ・フレ
ームに割当てられる。更にIBM/390などのアーキ
テクチャでは、同一の実ページ・フレームが異なるプロ
グラム或いはプロセッサからの異なる仮想アドレスによ
りアクセスされる。
【0012】これら全ての体系的要求において、ほとん
どのシステムがプロセッサからの記憶域アクセスを処理
する仮想アドレス変換と称されるステップを要求する。
仮想アドレス変換は仮想ページ・アドレスを実ページ・
アドレスに変換する。実ページ・フレームが割当てられ
ていない場合、ページ不在の例外がトリガされ、それに
対しオペレーティング・システムは割当ての完了時に変
換情報を更新し、次に不在プログラムに実行を再開させ
る。
【0013】ほとんどの近代的なシステムではハードウ
ェア機構により仮想アドレス変換処理がスピード・アッ
プされる。典型的には変換ルックアサイド・バッファ
(TLB)が各プロセッサに対し使用される。TLBは
アクティブにアクセスされる仮想ページのセットに対す
る変換情報を記録するハードウェア・ディレクトリ・テ
ーブルである。プログラムの局所性により、相対的に小
さなTBL(例えば64乃至1024ページ・エント
リ)が、プロセッサからの記憶域アクセスにおける大部
分(例えば99.95%以上)の変換情報を捕獲するこ
とが可能である。TBLミス状態においてのみ(すなわ
ちTBLが特定の記憶域アクセスをカバーできない
時)、遅い変換処理が(例えばマイクロコード或いはオ
ペレーティング・システム・コードを通じて)活動化さ
れる。
【0014】ハードウェアの効率向上のためにTLBは
通常、キャッシュ・ディレクトリのようなセット・アソ
シエイティブ・テーブルとして構成される。任意の仮想
ページ・アドレス(1つ以上のプログラム空間識別子を
含む)に対し、ハードウェアは合同クラスを導出するた
めに特定のアドレス・ビット(及び特定の設計に特有の
他の情報)を使用する。TLB合同クラスにおいてハー
ドウェアはエントリの並列探索を実行し、ヒットが発生
すれば変換結果を識別する。
【0015】多くのプロセッサ設計において、記憶域ア
クセスはキャッシュ・アクセスの最終解析以前にTLB
変換を必要とする。例えば、IBM/3090システム
設計では、TLBルック・アップはキャッシュ・ディレ
クトリ探索と並列に実行され、それらの結果は配列デー
タの最終レイト・セレクトにおいて併合される。図2は
こうした設計を示す。プロセッサI/Eユニットにより
要求されるメモリ・アクセスのアドレスは論理アドレス
と称される。現行のプロセッサ・ステータスの特定のア
ドレス指定モード(実或いは仮想)に依存して、論理ア
ドレスは実アドレス或いは仮想アドレスとなる。同一の
物理データに対し、実アドレスを使用して選択される合
同クラスは、仮想アドレスを使用して選択される合同ク
ラスとは異なる。更に、いくつかのアーキテクチャ(例
えばIBM/390)では、同一の物理メモリ・ページ
は異なるキャッシュ合同クラスにおける任意の異なる仮
想(ページ)アドレスを通じて同時にアクセスされる。
IBM/3090システム設計ではキャッシュ・ライン
はキャッシュ・ミス・ライン・フェッチを引き起こした
プロセッサ・アクセスの論理アドレス・ビットにもとづ
き主に配置されるが、様々な代替キャッシュ・ロケーシ
ョンに対するキャッシュ・ヒットの可能性をタイムリに
判断するために、各キャッシュ・アクセスのディレクト
リ探索に多数の比較器が使用される。
【0016】キャッシュ・アクセスの解析における複数
のディレクトリ探索の要求は、多くのキャッシュ設計の
最適化における複雑化要因であった。仮想及び実アドレ
ス間の同義語的曖昧さを回避するための1つのアプロー
チでは、キャッシュ・アクセス制御に実アドレスのみを
供給する。しかしながら、こうしたアプローチは通常、
仮想アドレスに対する変換情報を検索するためにTLB
へのアクセスを要求する。一方、TLBのアクセスは通
常、遅いパスにより構成される。最近のコンピュータで
は高ヒット率を得るために比較的大きなサイズのTLB
(例えば256乃至1024ページ・エントリ)が使用
され、TLBを高速の回路(例えばシフト・レジスタ・
ラッチの使用、或いはBICMOS設計におけるECL
回路の使用)により実現することはかなり高価、且つ困
難である。更に、TLBのサイズはしばしば、キャッシ
ュ・アクセス・パス内のクリティカル要素の近傍に物理
的にTLBを配置することを阻止し、結果的に信号パス
における遅延が生じる。従って、キャッシュ・アクセス
のために実アドレスだけを供給するアプローチは、しば
しば、クリティカル・パス・タイミングにおける制約条
件のために実現を妨げられる。
【0017】従来、キャッシュを効率的に実現するため
の数多くの提案が成されてきた。図3は31ビット論理
アドレス指定に対応する64キロバイト(KB)プロセ
ッサ・キャッシュを有するIBM/3090設計の概要
を示す。キャッシュは128合同クラスを有する4重セ
ット・アソシエイティブである。ライン・サイズは12
8バイトである。この他にキャッシュ・ディレクトリ2
20、キャッシュ・メモリ・データ配列230、及び2
重セット・アソシエイティブTLB210が含まれる。
プロセッサI/Eユニット及びマイクロコードは、論理
アドレスによる記憶域アクセスを発生する。論理アドレ
ス250はプロセッサにおける現行のアドレス指定モー
ドに依存して、仮想或いは実のどちらかである。
【0018】仮想アドレスによるダブルワード(8バイ
ト)フェッチ要求の場合のより複雑なケースについて説
明する。合同クラスを選択するために7ビットb18乃
至b24が使用される。これらの7ビットの内、2ビッ
トb18及びb19はページ・アドレス部分に相当す
る。予測されない変換結果により、これらの2ビットが
4種類の可能な組合せのいずれかの2実アドレス・ビッ
トに変換される可能性が生じる。アクセスされるデータ
・ラインを含む可能性のある4個の合同クラスの間で、
現行アクセスされる論理アドレスにおけるアドレス・ビ
ットにより決定される1個が主合同クラス(PCC)と
称され、その他は同義語合同クラスと称される。
【0019】プログラムの局所性は主合同クラスをヒッ
トするように大部分のキャッシュ・アクセスを発生する
が、アクセスされるラインが他の(同義語)合同クラス
の1つに属する機会がある。これはいわゆる同義語問題
である。
【0020】IBM/3090システム設計では次に示
すステップが並列に実行される。
【0021】1.論理アクセス・アドレスのビット18
乃至31がキャッシュ・メモリ配列制御に転送される。
ビット18乃至24は主キャッシュ合同クラスを決定す
るために使用される。次に(ビット25乃至28により
示される)ダブルワードが主合同クラス内の各4ライン
・エントリからのキャッシュ配列から読出される。これ
らの4ダブルワードはレイト・セレクト信号が受信され
るまで要求するI/Eユニットに送り出されない。 2.ビット18乃至24はルック・アップのためにキャ
ッシュ・ディレクトリに送信される。各ディレクトリ・
エントリは関連するラインに対応する実アドレスを記録
する。主及び同義語合同クラスの全16ディレクトリ・
エントリが読出される。 3.特定の仮想アドレス・ビット(ここでは表されてい
ない)が合同クラスを選択するためにTLBに対応して
使用され、そこから2TLBエントリの実アドレス変換
情報が読出される。
【0022】キャッシュ・ディレクトリから読出される
16実ライン・アドレスは、次にTLBから読出される
2実アドレスと併合され、32個の比較器を介してアド
レスの一致が調査される。(他のタグの一致も含まれる
が、ここでは表されていない)。アクセスされたライン
の変換アドレスがキャッシュ・ディレクトリ実アドレス
の1つと一致すると、キャッシュ・ヒット条件が生成さ
れる。その他の場合には、キャッシュ・ミスが発生し、
キャッシュ・ミス・ルーチンをトリガする。キャッシュ
・ヒット状況において、ラインを含む合同クラスが主合
同クラスである可能性も、そうでない可能性も存在す
る。次に以下の処理がキャッシュ制御により実行され
る。
【0023】・主合同クラス(PCC)ヒット−選択さ
れたダブルワードをバスを介し要求するI/Eユニット
にゲートするために、信号がレイト・セレクト論理に送
信される。アクセスが完了する。 ・同義語合同クラス・ヒット−後の配列のフェッチを通
じ、ダブルワードを同義語合同クラスからアクセスする
ために適切なステップが実行される。これはアクセスに
対し長い遅延をもたらす。
【0024】キャッシュ・ミス状況においてキャッシュ
制御は主記憶装置からラインのコピーを要求する。ライ
ンは到来すると主合同クラス内の割当てられたキャッシ
ュ・エントリに配置される。
【0025】IBM/3090キャッシュ設計における
主な複雑性は、同義語の解析に関連する。比較器要素C
MP128は32個の比較器を使用して、主合同クラス
のミス状況が存在するかをタイムリに判断する。比較器
の数は合同クラスの数、及びTLBのセット・アソシエ
イティビティに比例して増加する。例えば、合同クラス
数を4倍にすることによりキャッシュ・サイズが256
Kとなり、TLBのセット・アソシエイティビティが4
に増えると、CMPユニットにおいて必要な比較器の合
計数は非現実的な256に増加する。
【0026】前述のように、実アドレス・ベースのキャ
ッシュは、しばしば、TLBを通ずる実アドレス変換解
析のための遅延パスの影響を受ける。最近になって提案
された実アドレス・ベースのキャッシュを実現するアプ
ローチが、J.H.Chang、H.Chao及びK.Soによる"Cach
e Design of A Sub-Micron CMOS System/370"、Proc.1
4th Symposium on Computer Architecture、at pp.208
-213(1987) で述べられており、これが図4に示され
ている。
【0027】MRUキャッシュ設計アプローチでは仮想
アドレスによるキャッシュ・アクセスにおいて、実アド
レス合同クラスの選択は特定の予測にもとづく。TLB
は通常、典型的なセット・アソシエイティビティ・ディ
レクトリとして構成され、そこにおいて置換は合同クラ
ス単位ベースで管理される。各仮想アドレスに対し、T
LB内の関連する合同クラスがページ・アドレス部分の
特定ビット(典型的には高位ビット)により決定され
る。各合同クラス内において、典型的には置換ステータ
ス・タグにより示される最高使用頻度(MRU)エント
リ、及び最低使用頻度(LRU)エントリが存在する。
LRUエントリは合同クラスに新たなページ・エントリ
が挿入される必要が生ずる場合に選択される置換であ
る。プログラムの局所性故にプロセッサから発せられる
連続的な仮想アドレスは、TLB内のMRUエントリを
ヒットする傾向がある。MRUキャッシュのアプローチ
はこうした局所性の振舞を使用し、仮想アドレスの変換
がTLBの関連する合同クラス内のMRUエントリから
生じるものと予測する。
【0028】MRUキャッシュ・アプローチにおける実
アドレス予測の主要な側面について以下に述べる。プロ
セッサによりキャッシュ・アクセスのために発せられる
任意の仮想アドレスに対し、TLB合同クラスが(特定
の仮想ページ・アドレス・ビットを介して)従来通りに
決定され、合同クラスのMRUエントリに関連する実ペ
ージ・アドレス・ビットが予測として読出される。検索
される実アドレス・ビットの間で、(実)キャッシュ合
同クラスを決定するのに必要な特定のビットが、キャッ
シュ・データ検索のためにキャッシュ配列制御に送り出
される。その後、仮想アドレスがTLB合同クラス内の
全てのエントリと従来通りに比較され、実際の変換結果
を正確に決定する。TLB内のMRUエントリにおける
高ヒット率により、この予測にもとづくキャッシュ合同
クラスの選択はほぼ正しいと言える。不正予測に対して
は、後にキャッシュ・アクセス・サイクルの間にTLB
比較から決定され、現行のキャッシュ・アクセスは単に
打ち切られ、続くサイクルにおいて再発行される。キャ
ッシュ合同クラス選択の不正予測により、キャッシュ・
アクセスが再発行される場合、TLBは正しいキャッシ
ュ合同クラス選択に対し、正しく変換された実ビットを
供給する。
【0029】従来の実アドレス・キャッシュ・アプロー
チと比較して、MRUキャッシュ・アプローチはTLB
からの最終比較結果を待機しないために、キャッシュ合
同クラスの選択を僅かに高速化する。しかしながら、M
RUキャッシュはキャッシュ・アクセス・クリティカル
・パス内のTLBからの実アドレス・ビットの検索を要
求する。こうした実アドレス・ビットの読出し以前に、
遅いキャッシュ配列のアクセスを開始することはできな
い。
【0030】キャッシュ・アクセス・サイクルにおける
このタイミング負担を軽減するための別のアプローチ
に、TLB/MRU情報の読出しを前のサイクルに移動
することが考えられる。しかしながら、これは単にタイ
ミング問題を前のサイクルに移行するに過ぎない。
【0031】MRUキャッシュ・アプローチの第2の問
題は、特定の設計における予測の正確度に関する。予測
の正確度は仮想アドレスに対するTLB内のMRUエン
トリのヒット率に依存する。ここで256ページ・エン
トリを有するTLBについて考察する。全TLBに対す
るミス比率はTLBセット・アソシエイティビティが2
から4に増加されると、著しく低下される(例えば20
%以上)。これは特に数個のTLB合同クラス内に過度
の込合いを生じるプログラムで見受けられる。4重セッ
ト・アソシエイティブTLBでは、64個のMRUペー
ジ・エントリしか存在しない。典型的な商用の作業負荷
では、TLB内のこれら64個のMRUエントリに対す
るオペランド・アクセス(フェッチ及び格納)のヒット
確率は、97.5%以下である。こうしたヒット確率は
全TLBにおけるミスの増加を犠牲にして、TLBセッ
ト・アソシエイティビティを2に減少すると改善される
(例えば99%まで)。
【0032】このMRUキャッシュ・アプローチの場合
に比較して、仮想ページ・アドレスに対応するいくつか
の或いは全ての実アドレス・ビットを、より高速に、よ
り正確にまた、よりキャッシュ・アクセスの柔軟性を持
って獲得できることが望ましい。
【0033】
【発明が解決しようとする課題】従って、本発明の目的
は仮想アドレスから実アドレスをより高速に、且つより
正確に提供する効率的で柔軟なキャッシュ・アクセスを
可能とする機構の提供である。
【0034】
【課題を解決するための手段】これらの及び他の目的及
び機能が、キャッシュ・アクセスのための実アドレス・
ビットを予測する適切な履歴テーブルを使用することに
より達成される。
【0035】本発明によれば、任意の仮想ページ・アド
レスに対応するいくつかの或いは全ての実アドレスを予
測するために、1次元履歴テーブル(本発明ではTLB
LATと命名する)が使用される。任意の仮想ページ・
アドレスに対応するTLBLAT・エントリの選択は、
仮想アドレス内の特定のアドレス・ビットにもとづく。
TLBLAT・エントリの選択はまた、十分なランダム
化を実行するために、こうした仮想アドレス・ビットと
他の情報とのハッシュにもとづく場合もある。最小限、
各TLBLAT履歴テーブル・エントリは実アドレス・
ベース・キャッシュ内の合同クラスの予測に必要なビッ
トを記録する。キャッシュのセット・アソシエイティビ
ティは1(すなわち直接マップ化キャッシュ)が可能で
ある。様々な設計考慮を可能とするために、各TLBL
ATエントリにはより多くの情報が含まれ、TLBとT
LBLATを両者の機能を提供する単一の物理テーブル
に結合することも可能である。
【0036】
【実施例】図5を参照すると、本発明が使用されるタイ
プのシステム構造のブロック図を表す。プロセッサは命
令及び実行(IE)ユニット110、及びキャッシュ・
ユニット60を含む。各IEはオペランドを主記憶装置
(MS)80にフェッチ及び格納することを要求する命
令を発行するハードウェア及びマイクロコードを含む。
記憶制御装置(SC)70はプロセッサ或いは入出力チ
ャネル90により要求される記憶関連のアクティビティ
を調整する。説明の単純化のため、IEユニット110
は各サイクルにおいて、多くとも1記憶フェッチ或いは
格納要求を発し、各記憶要求はダブルワード(8バイ
ト)以内である。
【0037】IEユニット110に要求されるダブルワ
ードを含むキャッシュ・ラインがキャッシュ・ユニット
60内に存在すると、その条件はキャッシュ・ヒットと
称される。それ以外の場合は条件はキャッシュ・ミスと
称される。キャッシュ・ミスの場合、特定の特殊条件を
除きキャッシュ・ユニット60はIE110からの要求
を満足する以前に、最初にSC70を介してMS80か
らラインを要求する。IEユニット110は協力的にプ
ロセッサ・パイプラインを支援する。説明の都合上、プ
ロセッサ・パイプラインは存在するものと仮定し、これ
に関する命令処理の主なステージについて以下に説明す
る。
【0038】1.デコード及びアドレス生成ステージ−
命令がデコードされ、オペランド・アドレスが(必要に
応じて)生成される。例えば、IBM/390アーキテ
クチャにおけるLOAD(L)命令は、ワード(32ビ
ット)をメモリ・ロケーションから汎用目的レジスタ
(GPR)にロードする。命令自身(プログラム・オブ
ジェクト・コード内で指定される)は4バイト(32ビ
ット)長である。第1バイトは命令自身を識別するオペ
コードである。2つのオペランドR1及びD2(B2、
X2)が存在し、これらは命令の次の3バイトで指定さ
れる。R1はメモリ・ワードを受信するGPRである。
D2(B2、X2)はワード・データがそこからロード
されるメモリ・ロケーションを指定する。D2は12ビ
ット変位であり、B2はベース・レジスタであり、X2
はインデックス・レジスタである。メモリ・オペランド
の論理アドレス(実行の現行アドレス指定モードに依存
して仮想或いは実の一方を取る)はD2値(0乃至40
95)とGPRのB2及びX2の和として形成される
(各GPRは32ビットを記録する)。特定の命令では
メモリ・オペランドが存在しなかったり、複数のメモリ
・オペランドが存在したりする。 2.キャッシュ・アクセス・ステージ−このステージで
は、前のステージのアドレス生成フェーズにおいて形成
されたオペランド・アドレス(存在する場合に限る)を
使用し、、キャッシュからメモリ・データをアクセス
(読出し或いは書込み)する。このステージは必要に応
じて繰返される。最初にキャッシュ・ユニット60が、
このステージに対応してキャッシュをアクセスするオペ
レーションに応答する。キャッシュ・ユニット60によ
り受信されるアクセス・アドレスは特定の実施例に依存
して、論理或いは(常時)実である。 3.実行ステージ−両方の要求オペランドが(存在し
て)使用可能な場合、ほとんどの命令(例えばADD)
は実行される。
【0039】理想的なパイプラインでは、各マシンサイ
クルは丁度1マシン・サイクルを消費する。しかしなが
ら、実行中の特定のステージの完了を引き延ばす種々の
遅延が発生する(例えばキャッシュ・ミス)。また、パ
イプラインの上述の骨組みにおいて、直接指定されない
様々な他のオペレーションが存在する。例えば、キャッ
シュからの命令のアクセスはオペランド・フェッチと類
似ではあるが、命令自身のフェッチ(I−フェッチと称
される)については説明されていない。
【0040】図6はキャッシュ・ユニット60の詳細ブ
ロック図を示す。従来のキャッシュ・ユニットには3個
の主要素が存在する。TLB210は仮想アドレスから
実アドレスへの高速変換用に使用される変換ルックアサ
イド・バッファである。DIR220はキャッシュの各
ライン・エントリに対し、実アドレス識別及び他の必要
なステータス・タグを含むキャッシュ・ディレクトリで
ある。ARR230はキャッシュ配列或いはキャッシュ
・メモリであり、実際のキャッシュ・データ・ビットに
加え、パリティ・チェック或いは誤り訂正の為に必要な
他のビットを保持する。説明の都合上、4重セット・ア
ソシエイティブ・キャッシュ及び2重セット・アソシエ
イティブTLBを示す。キャッシュは合計128キロバ
イト(KB)を有し、256合同クラス及び128バイ
ト/ラインに相当する。TLB210内の合同クラスの
数は、続く説明においてはクリティカルではない。TL
BLAT241は1次元履歴テーブルであり、必ずしも
TLB210内の合同クラスと同数のエントリを有する
必要はない。更にプロセッサIE110は32ビット論
理(仮想或いは実)アドレスを介し、記憶装置をアクセ
スする。キャッシュは実アドレス・ベース・キャッシュ
である。すなわち、物理ラインがキャッシュ内に挿入さ
れると、関連する合同クラスがラインの実アドレス・ビ
ットにより一意的に決定される。単純化のためキャッシ
ュ・ラインに対応する合同クラスの選択は、実ライン・
アドレス内の下位8ビットにより決定されるものとす
る。従って、任意の32ビットの実アドレス(0乃至3
1)において関連するキャッシュ合同クラスはアドレス
・ビット17乃至24により選択される。
【0041】最小限、TLBLAT241の各エントリ
は実アドレス・キャッシュに対応する合同クラスの選択
を解析するために必要なビットを含む。IE110によ
る記憶アクセスの為に要求される任意の32ビット論理
アドレスA250に対し、A[m−n](0≦m≦n≦
31)はm番目からn番目までのビット位置のA250
のアドレス・ビットを意味する。従って、A[25−3
1]はビット25から31までの論理アドレスAを表
し、これはライン境界内のライン・オフセット・アドレ
スに相当する。A[20−31]はページ境界内のペー
ジ・オフセット・アドレスを示し、これは変換により影
響を受けない(すなわち仮想と実が等しい)。256の
合同クラスが存在するため、ライン・アドレスA[0−
24]の8ビットはデータ・アクセスに対応する256
合同クラスの内の1個を選択するために必要とされる。
しかしながら、合同クラスを選択するためにA[17−
24]がピックされると、A[17−19]の3ビット
は3実アドレス・ビットに対応する8種の組合せのいず
れかに変換される。この例では、各TLBLAT241
エントリは前回の変換の実アドレス・ビット17乃至1
9の履歴を記録する(少なくとも)3ビットを含む。例
えば、64エントリを有するTLBLAT241におい
て、A[14−19]により指標化される3ビットのエ
ントリ(TLBLAT[A]で示される)は、A[17
−19]に対応する予測実変換である。この場合、TL
BLAT[A]におけるこれらの3ビットはアクセスの
ための256合同クラスの内の1個を選択するために、
A[20−24]と連鎖される。
【0042】仮想アドレスA250によるIE110か
らのキャッシュ・フェッチ・アクセスの実行フローを図
6において考察する。次に示す内容が最初に並列に発生
する。
【0043】1.A250の適切なビットがパス271
を介しTLB210に送られ、これらのビットにより定
義されるTLB210内のTLB合同クラス内に含まれ
る2個のエントリを読出す。出力281は比較ユニット
CMP261に送られる。 2.A250の適切なビットがパス277を介してTL
BLAT241の制御に送られ、キャッシュに対応する
実アドレス合同クラスの予測に必要なTLBLAT
[A]内の3ビットを選択する。この3ビットのTLB
LAT[A]出力はCMP261の制御、DIR220
及びARR230に送られる。 3.A250の適切なビット(例えば上述の例ではA
[20−24])がDIR220及びARR230の制
御に送られる。これらのアドレス・ビット(ページ境界
内に存在)はTLBLATからの3出力ビットと連鎖さ
れ、キャッシュに対応する予測合同クラスを定義する。
この合同クラス情報が準備されると、次に示す内容が実
行される。すなわち、a)予測合同クラスにおける4個
のDIRエントリがパス282を介してCMP261に
読み出され、b)4個のダブルワードがARR230か
ら読み出され、パス283を介してレイト・セレクト・
ユニット262に送られる。
【0044】CMP261の回路は次に示す主機能を実
行する。これらの機能はCMPに対して以前に述べられ
たものと類似であるが、いくつかの変更を含む。
【0045】1.TLBヒット或いはミス条件を検出
し、パス286を介して受信されたTLBLAT[A]
の3ビット予測を検証する。TLBヒット/ミス条件は
IBM/3090設計におけるような標準の比較器によ
り決定される(図3参照)。TLBLAT[A]予測の
検証は、TLBLAT[A](3ビット)をこれらの拡
張比較器に埋め込むことにより実施される。予測はそれ
が仮想アドレスAがヒットするTLBエントリの実アド
レスビット17乃至19に一致すると正しいと判断さ
れ、それ以外の場合には不正と判断される。TLBミス
条件はCMP261がA250の仮想ページ・アドレス
(及びSTO)に一致するエントリをTLB210内に
見い出せない場合に発生し、この場合、変換処理がトリ
ガされ目的の変換情報がTLB210の新たなエントリ
に挿入される。本発明の目的の都合上、TLBミス処理
の詳細については省略し、単に仮想アドレスに対応する
変換エントリが常時TLB210内に見い出されるもの
とする。 2.キャッシュ・ヒット/ミス条件の検出−キャッシュ
・ヒット或いはミス条件は対の比較により決定される
(DIR220からの実アドレスをTLBエントリから
抽出される実アドレスと比較する)。これは図3で示さ
れるIBM3090設計と類似ではあるが、より単純な
方法による。この単純化は同義語合同クラスが含まれな
いために、必要となる比較器の数を減らしたことに依存
する。この設計ではDIR220からの4実ライン・ア
ドレスをTLB210からの2実ページ・アドレスと対
で比較するために、8個の比較器だけが必要とされる。
レイト・セレクト信号291はレイト・セレクト・ユニ
ット262に対し、キャッシュ・メモリ230から読出
される4ダブルワード(存在する場合)のどれがIE1
10に送り返されるべきかを示す。(IBM/3090
のような典型的なキャッシュでは、4ビット・ベクトル
がレイト・セレクト信号291として送られる。多くと
も1ビットがベクトル内でオンされる。)
【0046】ここで上述の第2のステップにおいて、実
ライン・アドレスの一致がCMP261でDIR220
のエントリに対して見い出され、一方、合同クラス自身
は不正に予測される可能性が生じる。この場合、IE1
10へのレイト・セレクト出力292は無効と見なされ
るべきである。図6においてCMP261はまた、有効
データが受信されるかどうかを示す確認信号293(例
えば単一ビット)をIE110に出力する。特定の実施
例では上記のような別に設けた確認信号293を有する
必要がない。例えば、多くの設計においてレイト・セレ
クト・ユニット262は、レイト・セレクト・ダブルワ
ードが送り出されているかを示すデータ・レディ信号を
IE110に供給する。こうした設計では全てのレイト
・セレクト・ビット291のANDを取るか、或いはデ
ータ・レディ信号自身とのANDを取ることにより、確
認信号293は不要となる。
【0047】図6においてCMP261はまた適切な時
にキャッシュ・ミス条件を示す信号294を生成する。
キャッシュ・ミス条件はキャッシュ合同クラス予測は正
しいが、TLBとディレクトリ実アドレスとの8対のア
ドレス比較が一致を見い出せなかった場合に生じる。信
号294が発生すると適切なキャッシュ・ミス・アクシ
ョンがトリガされ、目的のラインのコピーをMS80か
らキャッシュ・ユニット230内にもたらす。キャッシ
ュ・ミス処理はこれまでに広範に実行され、本発明の主
要部分ではないため、これ以上の詳細についてはここで
は触れないことにする。
【0048】次にCMP261が3ビット予測TLBL
AT[A]が不正であることを検出する状況について説
明する。この条件は続くサイクルにおいて、要求に対す
るキャッシュへの再アクセス及びTLBLAT241履
歴情報の更新をトリガする。単純なアプローチではキャ
ッシュに対する再アクセスは確認信号293内の特殊ス
テータス・ビットによりトリガされ、続くサイクルにお
いてIE110により再発行される。別のアプローチで
はキャッシュ・ユニット60自身に再アクセスの解析を
させ、その間、IE110はアクセス保留状態でいる。
【0049】TLBLAT241の更新が信号294に
よりトリガされ、エントリTLBLAT[A]に対する
正しい実ビット(17乃至19)を提供する。理想のケ
ースではキャッシュ再アクセス及びTLBLAT更新の
両方が、直後のサイクルにおいて実行される。しかしな
がら、キャッシュへの再アクセスが最初にTLBLAT
241の読出しを要求する図6のデータ・フローを伴う
場合、読出し以前にタイムリに更新を可能とするために
TLBLAT241に対して2ポート・タイプの回路が
必要となる。
【0050】同一サイクル内でTLBLAT241の書
込み及び読出しの両方を可能とする要求を回避する1つ
のアプローチとして、キャッシュ再アクセスにおいてT
LBLAT241をバイパスする。図7はこの目的のた
めのTLBLAT241の制御回路を示す。不正予測に
対しTLBLAT241の更新のための正しい3実アド
レス・ビット(及び他に必要なタグ)が、TLBLAT
制御のレジスタU242にラッチされる。TLBLAT
制御は現行サイクルにおいて、TLBLAT241を読
出すか或いは書込むかを決定するための優先論理を有す
る。TLBLAT更新フェーズの間、新たな3ビットが
パス296aを介し、U242からTLBLAT241
に入力される。TLBLAT読出しフェーズの間、出力
ビットがパス251を介し、ANDゲート253を通じ
て受信ユニットに送られる。ANDゲート253はU2
42及びTLBLAT241からの出力の論理積を取
る。TLBLAT更新フェーズの間、出力251は全て
1に保持される。またTLBLAT読出しフェーズの
間、出力252は全て1に保持される。
【0051】特定の実施例では、TLBLATからの予
測をキャッシュ・ディレクトリ/アクセス・サイクルよ
り以前のサイクル(例えば論理アドレス生成サイクル)
において実行することを選択する。こうしたケースでは
TLBLAT241アクセスに対するタイミング要求は
緩和される。
【0052】仮想アドレスからのキャッシュ・フェッチ
・アクセスのデータ・フローについてはこれまでに説明
された。実アドレス・モードではIE110は実アドレ
スを介し、直接キャッシュ・アクセスを発行する。この
場合、TLBルックアップ及びTLBLAT予測に関す
る上述のオペレーションは、従来システム設計における
TLBルックアップでのみ実行されたように無視(バイ
パス)される。
【0053】TLBLAT241における最小要求は、
各エントリに実アドレス合同クラス選択を解析するため
に必要なこれらのビット(256合同クラスを有する上
述の実施例では3ビット)を転送することである。しか
しながら、特定の設計では各TLBLAT241エント
リにより多くの情報を記録することが有益である。1つ
の例として、各TLBLAT241エントリに3ビット
の代わりにフル実ページ・アドレスを記録する。すなわ
ち、TLBLAT[A]はTLBLAT241の特定の
エントリに記録される以前のTLB変換に対応するフル
実ページ・アドレス・ビット0乃至19を含む。図8は
フル実ページ・アドレス予測を使用する図6に対する設
計変更を示す。
【0054】図8において、TLBLAT241からの
出力TLBLAT[A](パス275を介してDIR2
20にパスされる)は、予測フル実ページ・アドレス
(すなわちビット0乃至19)である。図6では予測の
最後の3ビット(17乃至19)がA250からのアド
レス・ビット20乃至24と連鎖され、アクセスに対応
する予測合同クラスを決定するために使用される。しか
しながら、図8では図6の比較ユニットCMP261
は、CMPa 261a及びCMPb 261bの2つ
の部分に分解される。CMPa 261aはTLBヒッ
ト/ミスの検出及びTLBLAT241における履歴の
訂正を扱う。CMPb 261bはDIR探索だけを扱
う。
【0055】1.CMPa 261aはTLB210か
らエントリ281を受取り、A250から必要な仮想ペ
ージ・アドレス情報(IBM/390アーキテクチャで
はSTOを含む)を受取る。これらのエントリに対しC
MPaはTLB210内で仮想アドレスがヒットするか
を判断し、ヒットする場合にはTLB210のエントリ
においてそれはヒットする。TLB210は各エントリ
がTLBLAT241内の対応するエントリ(TLBL
AT[A])に、記録される実アドレスを有するかを示
す情報を含むように拡張される。この拡張情報により、
CMPa 261aはTLBヒットにおいて、TLBL
AT[A]がA250に対応する実ページ・アドレスを
含むかどうかを判断する。TLBヒットが存在する場
合、CMPa 261aはライン295を介し、肯定信
号(例えば1ビットT=1)をユニット261cに出力
し、それ以外の場合にはライン295上に否定信号(例
えば1ビットT=0)を出力する。TLBLAT241
による誤り予測が検出される場合、正しいTLBLAT
[A]値がTLBLAT更新ライン294上に履歴更新
のために送られる。 2.CMPb 261bはTLBLAT[A]のビット
0乃至16(パス288を介し受信される)を、実ライ
ン・アドレス(ビット0乃至16)と比較する。後者は
TLBLAT[A]のビット17乃至19、及びA25
0のビット20乃至24により決定される合同クラスに
おけるDIR220の各4ライン・エントリから、パス
282を介して読出される。レイト・セレクト信号29
1はCMPb 261bにおいて一致するディレクトリ
の結果により、ユニット262に送られる。DIR22
0のエントリにおいてアドレス一致が見い出されると、
信号296(例えば1ビットD=1)がユニット261
cに送られ、それ以外の場合には否定信号(例えば1ビ
ットD=0)が送られる。 3.ユニット261cにおける論理は、CMPa 26
1a及びCMPb 261bからの結果を併合し、適切
な確認信号をIE110に送信する。パス292を介し
IE110により受信されるデータは、T(CMPaか
ら)及びD(CMPbから)の両方のエントリが肯定の
場合に限り有効となる。従って、IE110への確認信
号297は、単にビット値T&Dとなる。キャッシュ・
ミス条件はTLBLAT[A]予測は正しいが、CMP
b 261bにおけるディレクトリ探索によりアドレス
一致が見い出されない場合に(すなわち信号295に対
しT=1、信号296に対しD=0)、論理ユニット2
61cによりライン298上に生成される。T=0信号
295がCMPa 261aから受信される時、論理2
61cはTLBLAT[A]に対する誤り予測を示す条
件を生じ、これは既に図6に関し述べたように、TLB
LAT241における履歴更新、及びデータの再アクセ
スをトリガする。
【0056】図6のアプローチと比較してこの場合のア
プローチの利点は、TLB210及びDIR220から
のデータの比較のために、直接併合すること(これは図
6のCMP261において実施された)を回避する点で
ある。これにより物理的に区分化された設計がより容易
になる。TLBLAT241に履歴ビットを増やす代償
により、キャッシュ・ディレクトリ探索がTLBルック
アップから分離される。
【0057】図8の実施例ではTLB210においてタ
グ法を使用し、そのエントリがTLBLAT241にお
ける対応範囲を有するかを認識した。これは様々な方法
により可能である。例えば、TLBLAT241がTL
B241のサブセットとして保持される。各TLB21
0エントリはTLBLAT241における範囲を示す特
殊ビットLにより拡張される。仮想ページ・エントリが
(例えば旧エントリの置換により)最初にTLB210
において生成される時、関連するLビットがターン・オ
フされる(0となる)。またTLB210におけるエン
トリのLビットは、実アドレス・ビットが(仮想ページ
・アドレスに関連するエントリにおいて)TLBLAT
241に更新される時、ターン・オンされる(1とな
る)。
【0058】しかしながら、TLBLATエントリがそ
の旧値をセットしたものとは異なるTLBエントリによ
り更新される可能性がある。従って、TLBLAT24
1エントリが更新される時には、常に以前にその値をセ
ットしたTLBエントリのLビットをターン・オフする
必要がある。この手順は種々の単純なTLB/TLBL
ATエントリ選択アルゴリズムにより可能となる。例え
ば、TLB210が128合同クラス及び4重セット・
アソシエイティビティを有し、TLBLAT241が2
56エントリを有する設計について考察する。任意の仮
想アドレスA250に対し、7アドレス・ビットA[1
3−19]がTLB210における合同クラスの選択に
使用され、8アドレス・ビットA[12−19]がTL
BLAT241内のエントリの選択に使用される。従っ
て、TLBLAT241内の各エントリはTLB210
の単一の合同クラスに記録されるページによってのみ更
新される。その結果、TLBLAT241エントリがT
LB210内のエントリから更新される時、同一のTL
BLAT241エントリに関連するL=1のページ・エ
ントリ(すなわち同一の仮想アドレス・ビットb12を
有する)に対するTLB210の同一の合同クラスを調
査することが必要となる。
【0059】しかし、図8の設計の別の拡張ではTLB
LATエントリ内に仮想アドレス情報を含む(IBM/
390アーキテクチャではSTOを含む)。このように
TLBLAT241は1次元の全機能変換テーブルとし
て作用し、通常のTLB210のサブセットとして維持
される。図9は全機能TLBLAT241を使用する図
8の実施例の変更を示す。
【0060】図9において、CMPa 261はより大
規模なTLB210からではなくTLBLAT241か
ら直接、変換情報を獲得する。この実施例ではTLBL
AT241は本発明による仮想アドレス変換以前の早期
キャッシュ・アクセスに対する実アドレス予測機能を実
施するばかりでなく、従来の小TLBのテーブル部分も
同様に実施する。図9のTLB210は、必要時に(別
の比較ユニット263からライン298を介し)TLB
LAT241に変換情報を提供する目的でのみ機能す
る。各アクセスに対し即座にTLB210の探索を喚起
するか、或いはTLBLAT241がミスした場合に限
りこうした全機能テーブルTLBの探索を喚起するかは
設計の選択による。図9の実施例では、実際には2レベ
ルのTLBが存在し、より小さなTLBテーブル機能は
本発明の実ビット予測機能を実現するための小テーブル
241を使用して実施される。
【0061】上述の実施例を説明するに当たり、フェッ
チ(読出し)アクセス記憶要求についてのみ詳細に述べ
てきた。ここでIEユニットからのオペランド格納(書
込み)要求は、例えばIBM/3090システムにおい
て実施されるような、従来の遅延格納アプローチなどを
使用することにより、従来通りに扱われるものとする。
遅延格納アプローチでは実行ユニットからのオペランド
は、最初にレジスタにラッチされ、キャッシュ・ディレ
クトリ・アドレス比較結果を待機する(例えばキャッシ
ュ・ヒット/ミス、保護キー違反など)。ディレクトリ
結果が複雑化を生ぜずに認識されると、ラッチ内容が後
のサイクルにおいてキャッシュ配列に格納される。この
遅延格納機構において、キャッシュ・アクセスに本発明
による予測が含まれる場合、キャッシュ・ディレクトリ
探索により格納ロケーションが正確に識別されるため、
著しくオペランドの格納処理を単純化する。このように
配列への実際のデータの格納は誤り予測により複雑化さ
れることはない。
【0062】説明された実施例では、レイト・セレクト
機構が仮定された。特定の設計においてはこうしたレイ
ト・セレクトは要求されない。典型的な例として、直接
マップ化(或いは1重セット・アソシエイティブ)キャ
ッシュ設計がある。直接マップ化キャッシュ設計では合
同クラスが決定されるまで、アクセスのために選択でき
る単一のライン・エントリだけしか存在しない。キャッ
シュ・ミスの場合、旧ラインは新たなラインにより置換
される。直接マップ化キャッシュは等価のトータル・サ
イズのセット・アソシエイティブ・キャッシュと比較し
て高いミス率を示すが、実施において単純化できる。例
えば、レイト・セレクトは不要である。合同クラスが決
定されるや否や、キャッシュ・フェッチ・アクセスがラ
イン・エントリからデータ・ユニットを読出し、それを
IEユニットに直接送信する。ディレクトリ比較により
キャッシュ・ヒット/ミス条件を識別し、要求するIE
ユニットにその結果に従い通知する。
【0063】しかしながら、直接マップ化キャッシュは
まだ同義語問題に遭遇する。例えば、128バイト/ラ
インで256合同クラスを有する実アドレス・ベースの
直接マップ化キャッシュについて考察する。これは本
来、図6のキャッシュのセット・アソシエイティビティ
が4から1に減少された場合に相当する。IEユニット
からの任意の仮想アドレスに対し、実アドレス・ビット
17乃至19はまだ以前と同様に解析される必要があ
る。図10はTLBLAT予測を使用したこうした直接
マップ化キャッシュの設計を示す。
【0064】図10は図6の変形である。DIR220
及びARR230は両者とも、直接マップ化構造を表す
ために1次元テーブルに変更される。図6の(CMP2
61からの)レイト・セレクト信号ライン291、及び
レイト・セレクト・ユニット262は除去されている。
図10は数多くのシステムにおいて非常に効果的な著し
く単純なキャッシュ設計を表す。TLBLAT241を
使用する利点は、TLB210を通じての逐次変換によ
るタイミング的オーバーヘッド無しに、同義語フリーな
実アドレス・ベース・キャッシュを実施する点である。
【0065】上述の実施例では、TLBLAT241か
らの履歴エントリの選択は、特定の固定仮想アドレス・
ビットにもとづく。一般に異なる仮想アドレスが同一の
履歴エントリに容易に衝突しないように、こうしたエン
トリの選択をランダム化することが望ましい。図11は
前述の直接選択方法を表し、ここでは8下位仮想ページ
・アドレス・ビット(b17乃至b24)がTLBLA
Tエントリを選択するために直接使用される。図12は
多少高度なアプローチを示し、ここでは仮想アドレス・
ビット17乃至24がビット9乃至16と排他的論理和
され、合同クラス選択における最終8ビットを生成す
る。
【0066】必要に応じ仮想アドレス・ビット以外の情
報が履歴エントリ選択手段に組込まれたりする。例え
ば、IBM/390アーキテクチャでは各ユーザのアド
レス空間(或いはプログラム空間)が、実記憶域のセグ
メント・テーブルの開始アドレスであるSTO(Segmen
t Table Origin)により識別される。TLBLATエン
トリの選択は、例えば、仮想アドレス自身から特定のビ
ット及びマシン内のSTO表現からの特定のビットをハ
ッシュして獲得される値により実施される。明らかなよ
うに、キャッシュ・アクセスにおける実ビットを読出す
ために、どのような技術の選択によりTLBLATがア
クセスされようと、TLBLATが予測をミスする場合
には、実ビットの正しい履歴値を格納するために、TL
BLATをアクセスすることが必要となる。
【0067】上述の実施例では、TLBLAT履歴テー
ブルの単一のコピーが説明の都合上使用されたが、こう
したテーブルは必要に応じ反復されて使用されても良
い。
【0068】本発明は上述の実施例では単一のプロセッ
サにおいて説明されたが、既述の技術は他のタイプのプ
ロセッサ・キャッシュ構成においても適用可能である。
例えば、I−キャッシュが命令フェッチ専用に使用さ
れ、別のD−キャッシュがオペランド・データ・アクセ
ス(読出し或いは書込み)用に使用される周知のI/D
分離キャッシュ構成において適用可能である。変換情報
を予測する技術はI−キャッシュ及びD−キャッシュに
独立に適用される。シミュレーション結果から、命令フ
ェッチはオペランド・アクセスよりも強い局所性を有す
ることが知られている。従って、I−キャッシュ・アク
セス用には小さなTLBLATが、またD−キャッシュ
・アクセス用には大きなTLBLATが使用されること
が望ましい。
【0069】TLBLAT機能を使用する主な利点は、
変換情報を獲得するための複雑化が減少される点であ
る。例えば、256エントリ及びエントリ当たり3ビッ
トを有する前述のTLBLATはかなり小さなテーブル
に収まるが(800ビット以下)、実アドレスの非常に
精度の高い予測を提供する。小サイズのTLBLATテ
ーブルは効率を向上させるための様々な可能性を提供す
る。例えば、読出し及び書込みの速度をより高速化する
ために、TLBLATにより高速な回路を使用すること
が可能である。また、信号遅延を減らすために、テーブ
ルをキャッシュ・アクセスのためのクリティカル・パス
のより近傍に物理的に配置することも可能である。
【0070】ハードウェア設計において、間欠誤りの検
出及び訂正のために、パリティ・ビット及び/或いは誤
り訂正符号(ECC)がしばしば使用される。ほとんど
の実施例では、TLBLATの内容にこうした保護を追
加する固有な要求は存在しない。なぜなら、こうした履
歴情報は予測のためにのみに使用され、直ちに検証され
るからである。しかしながら、パリティ及び/或いはE
CCビットはRAS(信頼性、有用性、及びサービス
性)の目的では有効である。
【0071】上述の実施例では、仮想アドレス変換情報
を予測する方法が、キャッシュ・アクセスをより効率的
にするためにキャッシュ・アクセスの実施例に適用され
た。こうした予測技術は、実アドレス・ビットのより高
速な獲得が有益である他の設計目的にも有用である。
【0072】本発明は好適な実施例に関し述べられてき
たが、当業者においては本発明が特許請求の範囲に示さ
れる精神及び範中において、変更され実施可能なことが
理解されよう。
【0073】
【発明の効果】以上説明したように本発明によれば、キ
ャッシュ・アクセスのための実アドレス・ビットを予測
する適切な履歴テーブルを使用することにより、仮想ア
ドレスから実アドレスをより高速に、且つより正確に提
供することが可能となり、効率的で柔軟なキャッシュ・
アクセス機構が提供される。
【図面の簡単な説明】
【図1】典型的キャッシュの2次元構造を示すブロック
図である。
【図2】TLB及びキャッシュ・ディレクトリ・エント
リの読出し、アドレス比較、配列データ読出し、及びデ
ータのレイト・セレクトのオペレーションを表す従来技
術のブロック図である。
【図3】IBM/3090キャッシュ設計のブロック図
である。
【図4】従来技術によるMRUキャッシュ設計を表すブ
ロック図である。
【図5】本発明の実施例によるハイレベルなシステム構
成を表すブロック図である。
【図6】本発明による合同クラス選択の高速解析のため
の単純なTLBLAT履歴テーブルを組込んだ実アドレ
ス・ベースのキャッシュ設計を表すブロック図である。
【図7】TLBLATのデュアル・ポート機構を必要と
せずに、TLBLATの読出し及び書込みが履歴更新の
間に分離される様子を示すブロック図である。
【図8】各TLBLATエントリが全ての実ページ・ア
ドレス・ビットを含むようにTLBLATが拡張され
た、図6の設計に対する変更を表すブロック図である。
【図9】TLBLATをTLB機能と併合しフル仮想ア
ドレス変換機能を提供するようにTLBLATが更に拡
張された、図8の設計の変更を表すブロック図である。
【図10】本発明による直接マップ化キャッシュ・アプ
リケーションに対応する図6の設計の別の変更を表すブ
ロック図である。
【図11】TLBLAT履歴テーブルにおけるエントリ
選択に対応する単純な技術のブロック図である。
【図12】TLBLAT履歴テーブルにおけるエントリ
選択のランダム化技術を表すブロック図である。
【符号の説明】
60 キャッシュ・ユニット 70 記憶制御装置(SC) 80 主記憶装置(MS) 110 実行(IE)ユニット 112 メモリ・アドレス・ビット 116 選択合同クラス 210 2重セット・アソシエイティブTLB 220 キャッシュ・ディレクトリ 241 TLBLAT 242 レジスタU 261 比較ユニットCMP 262 レイト・セレクト・ユニット 291 レイト・セレクト信号 292 レイト・セレクト出力 293 確認信号

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムにおける仮想アド
    レスからの高速データ・アクセスのための装置であっ
    て、 データ・ラインを格納するキャッシュ・メモリを含み、
    前記各々のデータ・ラインは、該各々のデータ・ライン
    の実アドレスに係わる実アドレス・ビットのサブセット
    にもとづき格納及びアクセスされ、前記サブセットは実
    アドレスが対応する仮想アドレスから生成される時に、
    変換された少なくとも1つの実アドレス・ビットを含
    み、 前記各データ・ラインに対応する実アドレスを格納する
    キャッシュ・ディレクトリと、 前記仮想アドレスが対応する実アドレスへ変換を完了す
    る以前に、目的のデータのために前記仮想アドレスから
    前記少なくとも1つの実アドレス・ビットを予測する履
    歴テーブルと、 前記履歴テーブルによって予測された前記少なくとも1
    つの予測実アドレス・ビットに応答し、それに対応する
    少なくとも1データ・ラインを仮に前記キャッシュ・メ
    モリから出力するキャッシュ・メモリ・アクセス制御手
    段と、 前記少なくとも1つの予測実アドレス・ビットに応答
    し、前記キャッシュ・ディレクトリから各前記少なくと
    も1つのデータ・ラインに対応する、前記キャッシュ・
    ディレクトリに格納された実アドレスを出力するキャッ
    シュ・ディレクトリ・アクセス制御手段と、 前記仮想アドレスに実際に対応する真の実アドレスを生
    成するアドレス変換手段と、 前記真の実アドレスを各前記少なくとも1つのデータ・
    ラインに対応して出力される実アドレスと比較する検証
    手段と、 を含むことを特徴とする装置。
  2. 【請求項2】前記履歴テーブルは各エントリが仮想アド
    レス・ビットの所定のサブセットによりアクセスされる
    複数のエントリを含むことを特徴とする請求項1記載の
    装置。
  3. 【請求項3】任意の仮想アドレスは前記エントリの1つ
    にのみ応答することを特徴とする請求項2記載の装置。
  4. 【請求項4】前記履歴テーブル内の前記エントリは前記
    履歴テーブルをアクセスするために使用される仮想アド
    レス・ビットのサブセットに関し、ランダム化されるこ
    とを特徴とする請求項2記載の装置。
JP5066944A 1992-04-30 1993-03-25 キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル Expired - Lifetime JP2618175B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/876,646 US5392410A (en) 1992-04-30 1992-04-30 History table for prediction of virtual address translation for cache access
US876646 1992-04-30

Publications (2)

Publication Number Publication Date
JPH0619793A true JPH0619793A (ja) 1994-01-28
JP2618175B2 JP2618175B2 (ja) 1997-06-11

Family

ID=25368258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5066944A Expired - Lifetime JP2618175B2 (ja) 1992-04-30 1993-03-25 キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル

Country Status (2)

Country Link
US (1) US5392410A (ja)
JP (1) JP2618175B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993638B2 (en) 1999-12-09 2006-01-31 Fujitsu Limited Memory access device and method using address translation history table

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442766A (en) * 1992-10-09 1995-08-15 International Business Machines Corporation Method and system for distributed instruction address translation in a multiscalar data processing system
US5778408A (en) * 1993-11-29 1998-07-07 Intel Corporation Cache addressing mechanism that adapts multi-dimensional addressing topology
JP3169155B2 (ja) * 1993-12-22 2001-05-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報をキャッシュするための回路
ATE220811T1 (de) * 1994-02-22 2002-08-15 Advanced Micro Devices Inc Virtuelle speicheranordnung
TW233354B (en) * 1994-03-04 1994-11-01 Motorola Inc Data processor with memory cache and method of operation
US5751990A (en) * 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5897662A (en) * 1995-08-18 1999-04-27 International Business Machines Corporation Pseudo-random address generation mechanism that reduces address translation time
US5845106A (en) * 1996-01-26 1998-12-01 Advanced Micro Devices, Inc. Method for simulating cache operation
US5893930A (en) * 1996-07-12 1999-04-13 International Business Machines Corporation Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US5956752A (en) * 1996-12-16 1999-09-21 Intel Corporation Method and apparatus for accessing a cache using index prediction
US5867511A (en) * 1997-04-14 1999-02-02 International Business Machines Corporation Method for high-speed recoverable directory access
US6138206A (en) * 1997-06-12 2000-10-24 International Business Machines Corporation Data register for multicycle data cache read
US5909694A (en) * 1997-06-12 1999-06-01 International Business Machines Corporation Multiway associative external microprocessor cache
US5940877A (en) * 1997-06-12 1999-08-17 International Business Machines Corporation Cache address generation with and without carry-in
US6175898B1 (en) * 1997-06-23 2001-01-16 Sun Microsystems, Inc. Method for prefetching data using a micro-TLB
JP3264319B2 (ja) * 1997-06-30 2002-03-11 日本電気株式会社 バスブリッジ
US6079005A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Microprocessor including virtual address branch prediction and current page register to provide page portion of virtual and physical fetch address
US6079003A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Reverse TLB for providing branch target address in a microprocessor having a physically-tagged cache
US6247094B1 (en) * 1997-12-22 2001-06-12 Intel Corporation Cache memory architecture with on-chip tag array and off-chip data array
US6134699A (en) * 1998-01-30 2000-10-17 International Business Machines Corporation Method and apparatus for detecting virtual address parity error for a translation lookaside buffer
US6480975B1 (en) * 1998-02-17 2002-11-12 International Business Machines Corporation ECC mechanism for set associative cache array
US6192458B1 (en) * 1998-03-23 2001-02-20 International Business Machines Corporation High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US6138223A (en) * 1998-04-30 2000-10-24 International Business Machines Corporation Absolute address history table index generation for predicting instruction and operand cache accesses
US7219217B1 (en) 1998-10-16 2007-05-15 Intel Corporation Apparatus and method for branch prediction utilizing a predictor combination in parallel with a global predictor
FR2787901B1 (fr) * 1998-12-28 2001-02-09 Bull Sa Organisation memoire par zones physiques
US6567952B1 (en) * 2000-04-18 2003-05-20 Intel Corporation Method and apparatus for set associative cache tag error detection
US7162609B2 (en) * 2003-12-03 2007-01-09 Marvell International Ltd. Translation lookaside buffer prediction mechanism
US7130967B2 (en) 2003-12-10 2006-10-31 International Business Machines Corporation Method and system for supplier-based memory speculation in a memory subsystem of a data processing system
US20060224857A1 (en) * 2005-03-29 2006-10-05 O'connor Dennis M Locking entries into translation lookaside buffers
US20070277025A1 (en) * 2006-05-25 2007-11-29 International Business Machines Corporation Method and system for preventing livelock due to competing updates of prediction information
US10579522B2 (en) 2016-09-13 2020-03-03 Andes Technology Corporation Method and device for accessing a cache memory
GB2560336B (en) * 2017-03-07 2020-05-06 Imagination Tech Ltd Address generators for verifying integrated circuit hardware designs for cache memory
CN112416436B (zh) * 2020-12-02 2023-05-09 海光信息技术股份有限公司 信息处理方法、信息处理装置和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03194632A (ja) * 1989-10-20 1991-08-26 Internatl Business Mach Corp <Ibm> 変換予見にもとづくキャッシュアクセス

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255384A (en) * 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US5179674A (en) * 1988-07-25 1993-01-12 Digital Equipment Corporation Method and apparatus for predicting valid performance of virtual-address to physical-address translations
JP2722523B2 (ja) * 1988-09-21 1998-03-04 日本電気株式会社 命令先取り装置
US5099415A (en) * 1989-02-15 1992-03-24 International Business Machines Guess mechanism for virtual address translation
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
US5210841A (en) * 1990-01-30 1993-05-11 Advanced Micro Devices, Inc. External memory accessing system
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03194632A (ja) * 1989-10-20 1991-08-26 Internatl Business Mach Corp <Ibm> 変換予見にもとづくキャッシュアクセス

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993638B2 (en) 1999-12-09 2006-01-31 Fujitsu Limited Memory access device and method using address translation history table

Also Published As

Publication number Publication date
US5392410A (en) 1995-02-21
JP2618175B2 (ja) 1997-06-11

Similar Documents

Publication Publication Date Title
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US5493660A (en) Software assisted hardware TLB miss handler
US5668968A (en) Two-level virtual/real set associative cache system and method with improved synonym detection
JP2557174B2 (ja) データのセット位置の予測装置
KR960001946B1 (ko) 우선 변환 참조버퍼
US4332010A (en) Cache synonym detection and handling mechanism
US5475827A (en) Dynamic look-aside table for multiple size pages
US6963964B2 (en) Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses
US7426626B2 (en) TLB lock indicator
US20050071601A1 (en) Apparatus and method for pre-fetching page data using segment table data
JPH1074166A (ja) 多重レベル・ダイナミック・セット予測方法および装置
JPH04352256A (ja) メモリ空間を節約する方法および装置
JPH11203199A (ja) キャッシュ・メモリ
US5873123A (en) Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
US11775445B2 (en) Translation support for a virtual cache
US10810134B2 (en) Sharing virtual and real translations in a virtual cache
US10831664B2 (en) Cache structure using a logical directory
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US5682495A (en) Fully associative address translation buffer having separate segment and page invalidation
US6804759B2 (en) Method and apparatus for detecting pipeline address conflict using compare of byte addresses
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US5341485A (en) Multiple virtual address translation per computer cycle
JP2000339221A (ja) 変換装置のエントリを無効化するシステム及び方法
JPH0235543A (ja) ページテーブルエントリ無効化装置