JPS6194159A - メモリ装置 - Google Patents

メモリ装置

Info

Publication number
JPS6194159A
JPS6194159A JP60167865A JP16786585A JPS6194159A JP S6194159 A JPS6194159 A JP S6194159A JP 60167865 A JP60167865 A JP 60167865A JP 16786585 A JP16786585 A JP 16786585A JP S6194159 A JPS6194159 A JP S6194159A
Authority
JP
Japan
Prior art keywords
cache
memory
address
map
binding
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.)
Pending
Application number
JP60167865A
Other languages
English (en)
Inventor
サテイツシユ エム.サツテ
ドナルド ダブリユ.オツクスリイ
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPS6194159A publication Critical patent/JPS6194159A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1063Address 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 virtually addressed
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の背景 発明の技術分野 本発明はコンピュータ・メモリ装置における改良に関し
、特にコンぎユータ・メモリ装置に接続されるキャッシ
ュ・メモリにおける改良に関する。
背景情報 キャッシュ・メモリは、「計算概要(Comput、i
ngSurvθy ) J第14巻第3号1982年9
月、「キャッシュ・メモリ」のA、J、スミスによりキ
ャッシュ・メモリ設計のいくつかの観点からの概観にお
いて述べられているように、現在使用中と思われる主メ
モリの内容の一部を一時記憶するために、最近の中速及
び高速度計算機に用いられている小型の高速度メモリで
ある。通常、主メモリをアクセスするのに要する時間の
10〜25%にてキャッシュ・メモリ内の命令やデータ
を参照できるので、キャッシュ・メモリは計算機の実行
速度を実質的に増加させるものである。
従って、キャッシュ・メモリを備えたコン2ユ−タの中
央処理装置(CPU )は、命令やオペランドをフェッ
チ及び(又は)記憶するために必要とする待ち時間を大
幅に短縮している。例えば、典型的な大型の高速度コン
ピュータ(例えばアムダール470 V/η、よりM 
3033 )において、主メモリは600〜600 n
s内でアクセスすることができるが、キャッシュからは
50〜10Ons内で情報を得ることが°できる。この
ような計算機のパフォーマンスはキャッシュ・メモリの
アクセス・タイムにより命令の実行速度が既に限定され
ているので、キャッシュ・メモリがなければ実行速度が
かなり低下してしまう。
最近の大型コンぎユータ・システム(例えばアムダール
47G、IBM 3081.3066.670/168
.360/195、ユニバック1100/80及びハネ
ウェル6/8 Q )は全てキャッシュ・メモリを事実
上備えている。また、多くの媒体及び小規模の計算機(
例えば、DECVAX  11/780.11/750
、FDP −11/ 70及びモトローラ68000マ
イクロプロセツサを用いているApollo )もキャ
ッシュ・メモリを備えている。オン・チップのアクセス
・タイムはオフ・チップのアクセス・タイムよりかなり
速いので、マイクロコン2ユータといえどもオン・チッ
プ・キャッシュの恩恵に浴している。
キャッシュ・メモリの成功は「ローカル特性」を挙げる
ことにより説明されていた。ローカル特性は時間的及び
空間的な2つの面を有する。短期間では、プログラムは
そのアドレス空間に対するメモリ参照が不均一に分布し
ており、アドレス空間のその部分が長い期間大部分同じ
ままであるのが好ましいとされた。その第1の特性は、
時間的なローカル性即ち時間のローカル性と呼ばれ、近
い将来使用される情報が多分既に使用状態にあるという
ことを表わすものである。この形式の動作は、データ及
び命令が再使用されるプログラム・ループから予想し得
ることである。第2の特性の空間上のローカル性は、全
般的に使用状態にある部分のアドレス空間が当該アドレ
ス空間から比較的小数の個々に連続するセグメントから
なることを表わすものである。また、空間上のローカル
性とは、近い将来におけるプログラムの参照位置が現在
の参照位置の近傍に多分存在することを表わしている。
この形式の動作は共通のプログラム知識から予想できる
ものである。即ち、関連するデータ項目(変数、アレー
)は通常、−緒に記憶され、命令は大抵逐次的に実行さ
れる。キャッシュ・メモリは最後に使用したセグメント
の情報のバッファリングをするので、ローカル特性は、
所要情報もキャッシュ・メモリ内に見付ける可能性があ
ることを意味している。
一般に、キャッシュ・メモリの設計の最適化には4つの
側面がある。
(a)  キャッシュ・メモリのメモリ参照目標を発見
する確率(ヒツト率)を最大化すること、(b)  キ
ャッシュ・メモリから必要とする情報をアクセスする時
間(アクセス時間)を最小化すること、 fc)  ミスによる遅延を最小化すること、(d) 
 主メモリを更新するオーバヘッドを最小化し、多重キ
ャッシュの調和を保持すること等である。
勿論、これらは全て適当なコスト制約に基づいて達成さ
れるべきものである。
特に、M、バーチル他による「ミニコンピユータ用キャ
ッシュ・メモリのパフォーマンス評価」(コンピュータ
・システムのモデル化トパフォーマンス評価に関する第
4回国際シポジウム会報、1979年2月、オーストリ
ア、ウィーン)、パルサミアン他による「キャッシュ・
メモリのシステム設計考察J (IEEEコンピュータ
学会会議、工EEE 、ニュー・ヨーク、第107頁〜
第110頁(1972年))、D、H,ギプソンによる
「ブロック形式システムの設計考察」(春期合同コンピ
ュータ会議会報、第30巻、米国ワシントン州り、C,
)ンプソン・ブック発行、第75頁〜第80頁(196
7年)、及びに、R,カブラン他による「キャッシュ方
式コンピュータ・システム」(IEEEコンピュータ、
第3巻、第3号、第30頁〜第36頁(1973年6月
))を文献として示すものである。またリアル・キャッ
シュ設計の詳細を述べているり、W、クラーク他による
「高パフォーマンス・パーソナル・コンピュータのメモ
リ・システムJ (IEEEコンピュータ会報、第TC
−60巻、第10号、第715頁〜第763号(198
1年10月)も参照のこと。更にB 、W。
ランプソンによる「高パフォーマンス・パーソナル・コ
ンピュータ用プロセッサJ (第7年Uニア7ぎユータ
・アーキテクチャ学会、米国ニュー・ヨーク、ACM発
行、第146頁〜第160頁、5月6日〜8日)も参照
のこと。
従来技術のコンピュータ装置における中央処理装置(C
PU ’)及びメモリに対するキャッシュ・メモリの関
係は第1図に示されている。図示のように、キャッシュ
・メモリ12は通常、CPU 13と主メモリ14との
間に配置される。ディスク・メモリ等のような二次メモ
リも図示のように主メモリ14に接続することにより備
えることができる。
多りのメイン・フレーム・コン2ユータ並ヒニ仮想メモ
リを備えたミニコン2ユータにおいては、キャッシュ・
メモリは仮想アドレスではなく、実アドレスによってア
ドレス指定される。このようなコンピュータの例として
アムダール470、IBM 5081、ユニバック11
00/80、ハネウェル66/80、DECVAX 1
1 / 780.11/750がある。これらのコンピ
ュータが多重仮想アドレス空間を、典型的なものとして
処理当り一つ有するのはこのためである。例えば、オペ
レーティング・システムはユーザ処理により用いられる
仮想アドレスとは別に独自の仮想アドレスを備えている
。このようなコンピュータにおいては、異なる仮想アド
レス空間において同一の仮想アドレスを異なる物理アド
レス上に割付けている。これに対し、異なるアドレス空
間において異なる仮想アドレスを、同一の物理アドレス
に割付けることができる(実際には、これは2つの異な
る仮想アドレス空間において情報の共有を可能にする機
構である)。
多重仮想アドレス空間を有するコンピュータの仮想アド
レスによりキャッシュ・メモリをアドレス指定したとき
は、キャッシュ・メモリの割付ケ機構はアドレス空間と
も協調を保つ必要があるので、非常に複雑なものとなる
。その結果、古い世を割付ける。通常、仮想アドレスか
ら実アドレスへの変換処理はキャッシュ・アクセス時間
に比較して時間が掛り、パフォーマンスの隘路となり得
る。
多重仮想アドレス空間の問題のため、仮想メモリを有す
ると(少数のコンピュータのみが仮想アドレス・キャッ
シュを備えている。このようなコンざユータの例として
MU −5、S−4、IBM801及びICL 290
0がある。仮想アドレス・キャッシュの設計はS、ビー
ダーマンによる「キャッシュ・ディレクトリにおいて仮
想及び実タグを用いたキャッシュ管理システムJ (I
BMテクニカル・ディスクロージャ・プリティン、第2
1巻、第11号、第4541頁(1979年8月)、及
びA、G、オルバートにより「v=R変換用高速DLA
T負荷J(IBMテクニカル・ディスクロージャ・プリ
ティン、第22巻、第4号、第1464頁、1979年
9月)に記載されている。本発明は、例えば「コンピュ
ータ・メモリ装置」と題するオクレー他による1984
年6月12日出願の米国同時係属出願筒       
号(代理人整理番号Tl−9932)、及び「自動メモ
リ管理処理が可能なコンピュータ装置」と題し、サツテ
他によりこの文書の譲渡人に譲渡されており、ここでは
引用文献として示す1982年6月12日出願の米国特
許出願第       号に示すようなコンピュータ装
置に関連させた使用に特に適したものであることは、明
らかとなるであろう。
論理アドレス・キャッシュは、その名が示すように、C
PUにより生成された論理アドレスによりアドレス指定
される。論理アドレスは、前記米国同時係属出願筒  
     号(代理人整理番号第Tl−9932号)に
述べているように、一対の(γ、インデックス)である
。ここで「γ」はバインディング・レジスタの識別子で
あり、「インデックス」はバインディング・レジスタに
結付けられたメモリ・ブロックにおけるセルのインデッ
クスである。現在する計算機において論理アドレスの表
記法を有するものはないので、これらは論理アドレスに
よりアドレス指定可能なキャッシュを有するものもない
(発明の要約) 従って、本発明の目的は、以上の観点からコンピュータ
・メモリ管理装置に用いられ、改良されたキャッシュ・
メモリ装置を提供することを目的とする。
本発明の他の目的はこのようなコンぎユータ装置におい
て用いられる論理アドレス・キャッシュを提供すること
を目的とする。
本発明の更に他の目的はこのようなコンピュータ・メモ
リ装置における仮想アドレス・キャッシュと関連させて
用いる前述の型式の論理アドレス・キャッシュを提供す
ることを目的とする。
本発明の更に他の目的は、前述のようなオーバ・ヘッド
から論理キャッシュを解放すると共に、接続されている
メモリ装置のパフォーマンスt−改良するべく、論理ア
ドレス・キャッシュから独立して参照カウント管理を処
理する改良した方法及び装置を提供することを目的とす
る。
本発明のこれらの目的、他の目的、特徴及び効果は、当
該技術に習熟する者において以下の詳細な説明を、付図
及び特許請求の範囲と関連させて読むことにより明らか
になるであろう。
論理アドレス・キャッシュは、以上で述べたようにCP
Uが生成したアドレスによってアドレス指定される。論
理アドレスは、前記米国同時係属出願第       
号及び第       号(代理人整理番号第Tl−1
0599号及び第Tl−9932号)に記載したように
、一対の(γ、インデックス)からなる。ただし、「γ
」はバインディング・レジスタの識別子であり、「イン
デックス」はバインディング・レジスタrに結付げられ
たメモリ・ブロックにおけるセルのインデックスである
本発明によるキャッシュ装置は、前記米国同時係属出願
第       号及び第 号(代理人整理番号第Tニー9932号及び第Tl−1
0599号)に記載したようにメモリ管理装置(MMU
 )に関連されるもので、「論理アドレス・キャッシュ
」、「仮想アドレス・キャッシュ」及び「実アドレス・
キャッシュ」のうちの2つを組合せたものを用いて達成
することができる。
論理アドレス・キャッシュは、論理アドレスにおけるイ
ンデックス(γ、インデックス)のインデックスがキャ
ッシュをアクセスするのに用いられ、また論理アドレス
から仮想アドレスへの変換を必要としないので、キャッ
シュがCPUにより論理アドレスの生成とアドレス指定
されたキャッシュの情報に対するアクセスとの間の時間
遅れを最小にさせるものである。
仮想アドレス・キャッシュは論理アドレスを変換するこ
とにより得た仮想アドレスによりアドレス指定されるも
ので、インデックスをバインディング・レジスタγに記
憶されているペース仮想アドレスに加算することにより
論理アドレス(γ、インデックス)から算出される。仮
想アドレス・キャッシュは、仮想アドレスを実アドレス
に変換することにより得た実アドレスによってアドレス
指定される。
実アドレスは、ページ・テーブルのようなアドレス変換
機構が仮想アドレスを割付げることにより得られる。実
アドレス・キャッシュは、論理アドレス・キャッシュと
の比較において、実アドレス・キャッシュをアクセス可
能とする前に2つのアドレス変換(論理アドレスから仮
想アドレスへ及び仮想アドレスから実アドレスへの変換
)が必要なので、最大の遅延を受ける。
本発明の広範な観点によれば、CPUに接続されるメモ
リ装置にはメモリ管理装置及びメイン・メモリが含まれ
る。このメモリ管理装置には、メイン・メモリをCPU
にインターフェース接続するバインディング・レジスタ
が備えられ、またCPUとメイン・メモリとの間におい
て論理・仮想アドレスの変換をするための複数のバイン
ディング・レジスタからなる手段が備えられる。各論理
アドレスにはレジスタ対(γ、インデックス)が備えら
れる。ここで、「γ」はバインディング・レジスタ識別
子を弄わし、「インデックス」は「γ」により示される
バインディング・レジスタに結付けられたメモリ・ブロ
ックにおけるセルのインデックスを表わす。また、この
バインディング・レジスタ装置には論理アドレスが供給
され、この論理アドレスに応答してキャッシュ記憶して
いる情報を選択をして出力する論理アドレス・キャッシ
ュを備えている。論理アドレス・キャッシュは供給され
る仮想アドレスに応答して記憶している情報を選択して
出力するものである。仮想アドレスを実アドレスに変換
して主メモリに供給する手段を備えており、またメモリ
管理プロセッサによりメモリ管理装置の動作を制御をし
ている。
論理アドレス・キャッシュはキャッシュ、キャッシュ・
マップ及びバインディング決定マツプからなる。このキ
ャッシュ・マップ及びキャッシュ・メモリはメモリ装置
におけるバインディング・レジスタ数に対応した部分に
分割される。バインディング決定マツプは、あるキャッ
シュ・マップ部及びキャッシュ部に対する入力点の内容
についてのバインディング・レジスタ識別子を受取る。
また、キャッシュ・マップに対する論理アドレスを供給
したときにキャッシュ・ヒット又はミスを表示するため
の手段も備えている。
仮想アドレス・キャッシュはそれぞれ一つのキャッシュ
及びキャッシュ・マップからなる。このキャッシュ・マ
ップは論理アドレスから変換した仮想アドレスの一部を
受取り、キャッシュ・ヒット又はミスを表示する。
本発明は付図に示されている。
(好ましい実施態様の詳細な説明) 本発明は、仮想アドレス・キャッシュによりパック・ア
ンプされた論理アドレス・キャッシュからなるキャッシ
ュ階層構造を設定することにより論理及び仮想アドレス
・キャッシュの利点を組合せるものである。その目的は
、大きな仮想アドレス・キャッシュと組合せた物理的に
小容量の論理アドレス・キャッシュを用いることにより
、大きな論理アドレス・キャッシュのパフォーマンス改
善と、大きな仮想アドレス・キャッシュのキャッシュ機
能の柔軟かつ効率的な利用を達成することにある。
論理アドレス・キャッシュを用いた公知のコンピュータ
は存在していないので、論理アドレス・キャッシュの概
念及びその利用も自己の権利において個有のものである
と考えられる。仮想アドレス・キャッシュは主メモリに
よりパック・アップされる。キャッシュの階層構造は以
上説明理由から実アドレス・キャッシュを備えていない
本発明による論理及び仮想アドレス・キャッシュは、前
記引用のオクレー他にる米国特許出願筒       
号(代理人整理番号第Tl−9932号)において記載
された型式のコンピュータ装置に関連させも第2図に示
されている。
CPU 50は、図示のように、メモリ管理装置(MM
U ) 52に接続されている。MMU 52は前記オ
フスレー他による米国特許出願に全て説明されているよ
うに、■の機能を制御するメモリ管理プロセッサ(MM
P ) 54を備えている。複数のベインディング・レ
ジスタ57を含むバインディング・レジスタ装置(BR
U ) 56は各データ及び論理アドレス線61及び6
2を介してCPU 50及び主メモリ60をインタフェ
ース接続をする。BRU56に供給された論理アドレス
(L、A、 )は、BRU56において仮想アドレス(
V、に、 )に変換され、生成された仮想アドレスはア
ドレス変換機構65により実アドレス(R,A、 )に
変換され、主メモリ60をアドレス指定する。BRU 
56は、以下で詳細に説明するように、本発明による論
理アドレス・キャッシュ68を備えており、またMMU
 52自体はBn* 56と主メモリ60との間に仮想
アドレス・キャッシュ85を備えている。
論理アドレス・キャッシュ68は、以上説明−また以下
で詳細に説明するように、CPU50により生成された
論理アドレスによりアドレス指定される。論理アドレス
はアドレス対(γ、インデックス)からなる。ここで、
「γ」はバインディング・レジスタの識別子であり、ま
た「インデックス」はバインディング・レジスタγに結
付けられ、たメモリ・ブロックにおけるセルのインデッ
クスである。論理アドレス・キャッシュ構造では、論理
アドレスのインデックス部分が論理アドレス・キャッシ
ュをアドレスするために用いられる。
(仮想アドレスは論理アドレス・キャッシュをアドレス
指定する必要がなく、論理アドレスから仮想アドレスの
計算に不可決のパフォーマンス低下を回避している。) 論理アドレス・キャッシュ68の一例を第3図のブロッ
ク図に更に詳細に示す。論理アドレス・キャッシュ68
は多数のキャッシュ部分73に分割されたキャッシュ・
メモリ部70を備えている。
キャッシュ部73の数はこのメモリ装置におけるバイン
ディング・レジスタ57の数、例えば図示のようにO〜
61に等しい。各キャッシュ部73は一つのメモリ・ブ
ロック(又はその一部)にキャッシュ記憶するために用
いられており、このメモリ・ブロックは1以上の2々イ
ンデイング・レジスタ5Tに結付けられているものであ
る。従って、キャッシュの分割はバインディング・レジ
スタ57に関連しており、そのバインディング・レジス
タに結付けられたメモリ・ブロックをキャッシュとして
記憶する。キャッシュ・マップ75はキャッシュ・メそ
り70に存在する情報の記録を保持するものとして設け
られている。キャッシュ・マップ75もそれぞれが論理
キャッシュ・メモリ70のキャッシュ部73に関連され
ているキャッシュ・マップ部γ8に分割されている。従
って、キャッシュ部73と同様に多数のキャッシュ・マ
ップ部78があり、その数はパイン、ディング・レジス
タの数に等しい。各キャッシュ・マップ部78は、キャ
ッシュ記憶したブロックのどの位置が関連するキャッシ
ュ部73に存在しているのかを尭わすものである。もし
、2以上のバイ/ディング・レジスタが同一ブロックに
結付けられているときは、これらは単一のキャッシュ部
に関連され、これがそのブロックをキャッシュ記憶して
いる。
キャッシュ・マップ75に加えて、バインディング決定
マツプ80と呼ぶ他のマツプがバインディング・レジス
タとこれに接続されている論理アドレス・キャッシュ部
と0間の割付けを保持するために設けられている。バイ
ンディング決定マツプ80は当該装置に存在するバイン
ディング・レジスタと同数の入力を有している。従って
、バインディング・レジスタの識別子が与えられると、
バインディング決定マツプ80はいずれにしろパイ/デ
ィング・レジスタに接続されているキャッシュ部の識別
子を表わしている。キャッシュ・マップ部7Bは各キャ
ッシュ部73と接続されているので、バインディング・
レジスタの識別子が与えられると、バインディング決定
マツプ80もキャッシュ部73に接続されているキャッ
シュ・マップ部T8の識別子を麦わす。
論理アドレス・キャッシュ([セラ) id Jの部分
)に供給された論理アドレスのインデックス部分の一部
は、キャッジ発・マツプ75に格納されていることは明
らかとなる。バインディング決定マツプ80がアドレス
指定されると、バインディング決定マツプ80により表
わされるキャッシュ・マップ部分の内容は比較器81に
おいて論理アドレスのインデックス部の「要素1d(識
別子)」部分と比較され、キャッシュ・ヒット又はキャ
ッシュ・ミスを表示させるものとなる。
バインディング決定マツプ80によって論理アドレス・
キャッシュ68を管理するこのような戦略は、各バイン
ディング・レジスタに対して個別のキャッシュ分割を用
いるように、キャッシュを設計した場合に発生するマル
チキャッシュが成立してしまう問題の発生を防止してい
る。このような戦略の付加的な利点はキャッシュ設計が
現存ブロックに対して新しい結付きが形成されたときに
「新しい」キャッシュの生成を可能とす′ることにある
。現存するブロックに新しいバインディングが形成され
たときは、現存するブロックを既に結付けているバイン
ディング・レジスタに接続されたキャッシュ部た少なく
とも一部の現存ゾロツクが存在している。従って、異な
るバインディング・レジスタに現存ブロックを結付ける
処理において、新しいバインディング・レジスタは現存
ブロツクの少なくとも一部が存在する同一キャッシュ分
割に接続される。例えば、バインディング・レジスタ(
バインディング・レジスタの6番とする)にあるブロッ
クが既に結付けられているときは、バインディング決定
マツプの第3人力は、ブロックをキャッシュ記憶するの
が第3キャッシュ部であることを示すことになる。次に
、このブロックに対して新しい結付きを他のバインディ
ング・レジスタ(バインディング・レジスタの5番とす
る)に形成すると、バインディング決定マツプの第5人
力は第3キャッシュ部を指示することになる。
これにより、バインディング・レジスタ5に対して新し
いキャッシュが効果的に形成される。
論理アドレス・キャッシュを管理する他の戦略は、各バ
インディング・レジスタに対して別のキャッシュ部を割
付けることである。このような戦略の場合には、多重バ
インディング・レジスタに結付げられている一つのブロ
ックか同時に異なるキャッシュ部に存在することになる
。あるキャッシュ部を更新すると、他のキャッシュ部が
古(なつた当該ブロックをキャッシュ記憶させるものと
なり、多重キャッシュを成立させる問題を発生させる。
この戦略は多重キャッシュを成立させる問題が発生する
ので、二流の選択である。
第3図を再び参照するが、論理アドレス・キャッシュ6
8の一例として次のものが可能である。
本発明のキャッシュ階層構造における論理アドレス・キ
ャッシュ構造の典型的な一例を示す。
論理アドレス内に指定されたインデックスは、6つのフ
ィールド、即ちワード1d1セツトid及び要素idか
らなるものとして見ることができる。
これを第1表に示す。(インデックスは32ビット幅と
する。) 第  1  表 ただし、(e+s+w)=32であることに注意のこと
ワードl (オフセットにおける最下位ビットのWによ
り指定される)は2Wワードからなるキャッシュ・ライ
ン内の1ワードを指定する。(1ラインはキャッシュ・
メモリとバックアップ・メモリとの間におけるデータ転
送の単位である。1ラインの転送はキャッシュ・ミスに
対処するためにキャッシュ・メモリとバックアップ・メ
モリとの間で行なわれる。) もし、あるラインに1ワードのみが存在するときは、W
は0となる。パラメータWの典型的な値は0.1及び2
であり、それぞれラインの大きさが1.2及び4となる
オフセットにおける次のSピットはセットidを指定す
る。完全に関連するマツプ割付けが次に来るときはSは
0となる。セットidは総計2S通りの組合せのうちの
1セツlt−指定する。セットidsの典型的な値は1
,2又は6であり、それぞれ1セツトの大きさが2.4
又は8ラインとなる。
セット結合度dは次に検討するパラメータである。パラ
メータ改はインデックス内のフィールPではないので、
第1表には示してない。セット結合度dの典型的な値は
1又は2である。セット結合度=1はいわゆる直接マツ
プ割付けとなる。
最後のパラメータの要素idは、各セットに何ラインの
バック・アップ・メモリが割付けられているか実際に指
定するものである。ビット幅eの要素iaは、セットi
改により指定されたセットに割付げられる28ラインの
うちの1ラインを指定する。セット結合度t−dとした
ときは、2°ラインが最大dラインを当該セットに設定
できる。もしd=iであるならば、最大1ラインの直接
割付けをそのセットに設定できる。eの典型的な値は2
7.28又は29である。
この例は、キャッシュ割付は及び論理アトVス・キャッ
シュの動作を詳細に示すときにも用いられる。ライト・
スル一方法(以下で説明する)と仮定する。キャッシュ
の設計パラメータを次のように設定する。
ライ/の大きさ=2(W=1) セット数=4 (s=2 ) セット結合度d−1(これは直接割付けであム)セット
当りの要素数=229(e =29)従って、各キャッ
シュ部T3の大きさは2X4=8ワードである。キャッ
ジの全体の大きさは、62分割あるので、256ワード
である。キャッシュは高速度スタテイク誠又はンゾスタ
・ファイルを形成する。キャッシュ制御装置はキャッシ
ュ・マップ75、バインディング決定マツプ80及び関
連の制御ロジック(図ボなし)からなる。
キャッシュ・マップ75は、それぞれ固定されだ4ライ
ンの大きさのキャッシュ部を管理する32個の部分から
なる。従って、各キャッシュ部は4人力を有し、また各
入力は少なくとも29ビット幅である。各キャッシュ・
マップ部78の大きさはセット数に一致し、かつ一つの
キャッシュ・マップ部78の各入力幅は少なくとも要素
idの幅である。この入力は種々の制御情報を記録する
ため付加ビットを持つもよい。
バインディング決定マツプ80はそれぞれ5ビツトから
なる32ワードを備えている。このバインディング決定
マツプ80は論理アドレス(r。
インデックス)金アトVスとして、そのパインディ/グ
、レジスタ識別子を用いてアドレス指定される。このよ
うにしてアドレス指定されたワードの5ビツトの内容は
、キャッシュ・マップ部の識別子並びに使用するキャッ
シュ部の識別子を表示している。
表示されたキャッシュ・マップ部はセットエdにより、
即ちインデックスの<2 : 1 >ビットによりアド
レス指定される。このようにしてアドレス指定されたキ
ャッシュ・マップ部の内容は、要素id1即ちインデッ
クスのビット<31:3>と比較される。この比較が一
致したときは、キャッシュ・ヒットがあり、そうでない
ときはキャッシュ・ミスである。また、キャッシュ・マ
ツシフ5がアドレス指定されるときに、キャッシュ部も
セットiaにより、即ちインデックスのく2:1〉ビッ
トによりアドレス指定されることに注目すべきである。
キャッシュ・ヒットがあったときは、キャッシュ部の出
力は論理アドレス・キャッシュの出力を表わしている。
キャッシュ出力は1ラインの2ワードを有する。このラ
インのワードはインデックスのビットであるワードid
 f用いることにより選択される。
前に述べたように、論理アトVス・キャッシュ68に対
するアクセスの一次ンースはCPU5Qである。しかし
、MMP 54は、ガーベジ(garbage)収集の
処理において、旧空間のメモリ・ブロック全仮想アトV
ス空間における新空間に転送することも行なう。メモリ
管理プロセッサ(MMP ) 54は、ガーベジ収集処
理において、仮想アげレス空間く旧空間〉における新空
間に旧空間からのメモリ・ブロックを転送する。この新
空間は、「接続されているユーザ・プロセッサからカー
ベジ収集処理全独立させたコンピュータ装置」と題し、
本出願人に譲渡され、ここでは引用文献とするバートレ
イ他による1984年出願の米国同時係属出願第   
  号に詳細に説明されている。ブロックは論理アトV
ス空間ではなく、仮想アドレス空間に転送されるので、
ブロックそれ自体は論理アト+/ス68にではなく、以
下で説明する仮想アドレス・キャッシュ85にのみ転送
される必要がある。これは仮想アトVス・キャッシュに
対して論理アドレス・キャッシュが優れている点である
転送しているブロックのポインタは、他のブロックに存
在し得るもので、他のキャッシュにおいて更新されなけ
ればならない。転送ブロックに対するポインタを保持す
るブロックが論理アトVス・キャッシュに存在するとき
は、このポインタを保持するキャッシュ位置も新しいポ
インタ(即ち、転送ブロックの新仮想アドレス)により
更新されなげればならない。mp 54は転送したブロ
ックに対するポインタを保持するンース・ブロックの仮
想アドレスを知る。MMP 54は、ンース・ブロック
に結付けられているレジスタ(S)があるかについて調
べるためバインディング・レジスタ57を検索する。こ
の検索は、バインディング・レジスタ57に連合する検
索ハードウェア支援(図示なし)があるときは、高速度
で実行することができる。ンース・ブロックに結付けら
れたバインディング、レジスタが存在するときは、凪伊
54は古いポインタを有するワードに対応したインデッ
クスを用い、バインディング・レジスタにより接続され
た(ンース・ブロックに結付けられり)論理アドレス・
キャッシュ部のアクセスをする。当該ワードが論理アド
レス・キャッシュ部にあるときは、MMP 54は転送
したブロックの新しい仮想アドレスを用いてそのワード
全更新する。
大抵のブロックは他のブロックにそのブロックに対する
少数の未決着のポインタのみを有するものと想定してい
る。従って、ンース・ブロックが論理アドレス・キャッ
シュ68に存在することとなったとき罠のみ、MMP5
4は論理アドレス・キャッシュにおける少数のポインタ
のみを更新することができる。
ここで指示されている論理アドレス・キャッシュ68に
はいくつかの欠点がある。論理アドレス・キャッシュを
固定された大きさに分割することにより、各部分はヒツ
ト率又はキャッシュ容量の効率的な利用を低下させるこ
とになり得る。キャッシュ部に適合させるには太き過ぎ
るブロックのアクセスはヒツト率が低いことによるが、
一方で他のキャッシュ部を全く利用することをしていな
い。これに対し、非常に小さなブロックはキャッシュ部
の小部分もヒツトすることができるので、キャッシュ能
力を有効に利用できない。従って、キャッシュ記憶され
るメモリ・ブロックの大きさとキャッジ部との大きさと
の間に不適合があると、問題が発生する。
キャッシュ部はバインディング・レジスタと密接に関連
しているので、論理アrレス・キャッシュ68はパフォ
ーマンスの損失をなくすためにバインディング・レジス
タ57に密接して作成されたものでなげればならない。
同様に、論理アドレス・キャッシュ68の制御はバイ/
ディング・レジスタ57の制御と密接に連動しくいる。
CPU50が超大規模集積回路(VLSI )技術によ
り作成されているときは、バインディング・レジスタ5
7及び論理アドレス・キャッシュ68も同一のCPU 
VL8Iチップ(図示なし)上に作成することが予想さ
れる。このようなチップは、スペースに制限があるため
、小から中規模の論理アrVス・キャッシュにのみ適応
するものと期待される。現在予想し得るチップ面により
、予測キャッシュの大きさは約256ワード、即ち当該
装置に62個のバイ/ディング・レジスタを仮定したと
きはキャッシュ部当り8ワードである。技術が進歩する
に従って、キャッシュの大きさは1,024ワードまで
増加することが期待される。しかし、これではまだ中規
模キャッシュと思われる。従って、技術的な制約により
課せられる論理アドンス・キャッシュの欠点はそれが小
型であり、小型によるヒツト比が低いことにより本来の
速度効果を一部低下させるものとなる。
前述のようにして作成された論理アドンス・キャッシュ
68に加えて、仮想アドレス・キャッシュ85がバイン
ディング・レジスタ装置56と主メモリ60との間に備
げられている。仮想アドレス・キャッシュ85を第4図
に示す。CPU 50即ち対(r+インデックス)によ
り生成された論理アドンスを用いて、バインディング・
レジスタ57のバインディング・レジスタrに記憶され
た仮想アドレスをインデックスに加算することにより、
図の上端に示す仮想アドレスを計算する。その結果の仮
想アドレスを用いて仮想アドレス・キャッシュ85fr
、アクセスする。この計算は、まずバインディング・レ
ジスタから仮想アドンスを読出し、次いで仮想アドノス
をインデックスに加算することを必要とする。仮想アト
Vスの計算は全体で少なくとも60ナノ秒(バインディ
ング・レジスタの読出しに20ナノ秒、読出した仮想ア
ドレスをインデックスに加算するととに40ナノ秒)を
要すると予想され、キャッシュ・アクセス時間を少なく
とも60ナノ秒増大させる欠点がある。
仮想アドレス85にはいくつかの効果がある。
仮想アドレス85において、全キャッシュは各バインデ
ィング・レジスタに利用可能である。即勉全てのキャッ
シュ能力を利用することができ、異なるバインディング
・レジスタにおいてキャッシュ能力を分配することには
何の制約もない。これは論理アドレス・キャッシュ分割
計画と対照をなすもので、論理アドレス・キャッシュ分
割計画は、キャッシュ記憶されるメモリ・ブロックの大
きさとキャッシュ分割の大きさとの間に大きな不整合が
あった場合に、キャッシュ能力のパフォーマンスを低下
させたり、その利用効率を不十分なものとする。
仮想アドレス・キャッシュ85により得られる効果は、
論理アドレス・キャッシュ68の場合と異なり、その大
きさに基づく技術的な制約がないことである。入手が容
易で、高速度のスタティック・ランダム・アクセス・メ
モリ(RAM )チップ(図示なし)を用いて中から大
規模の仮想アドレス・キャッシュを作成することができ
る。
仮想アドレス・キャッシュには論理アドレス。
キャッシュの制御機構に比較して簡単であるという他の
効果がある。キャッシュ制御装置の設計を比較的簡単か
つ経済的にし、入手可能な大規模集積回路(LSI )
チップ(例えばテキサス・イ/スツルメントTMS 2
150キヤシユ制御装置チツプ)がある。このようなチ
ップに基づいて比較的大きな(16にワード)の仮想ア
ドレス・キャッシュt−f理するように、仮想アトVス
、キャッシュ用のキャッシュ制御装置を作成することが
できる。
第2表は論理及び仮想アドレス・キャッシュの効果及び
欠点を要約したものである。
第  2  表 論理及び仮想アドレス・キャッシュの比較キャッシュを
アクセスする: シュ・アクセスの遅延は中ためにキャ
ッシュ・アクセス時間。
スの遅延は最小。     。
ブロックを仮想アドレス空: ブロックを仮想アドレス
空大規模ブロックに対するヒ: キャッシュ能!効率よ
くシト率は低いと思われる。:利用する。
キャッシュ能力の配分の柔: 軟性が悪い。
技術的な制約によりキャラ: キャッシュの大きさは中
程シュの大きさは小さい。  :度である。
制御が複雑    :制御が簡単 祷−一−a層−呻−−―曇+−−―−慟婦−−−m−−
−−−−1−一檜^−−−曇−――譬−−−−−曇一伜
−―−−―−曇曽轡曇再び第4図全参照すると、仮想ア
ドレス・キャッシュ85の一例、及びキャッシュ割付け
とその動作の詳細は次の通りである。ライト・スル一方
法を再び仮定する。
仮想アドレス・キャッシュ85はBRU 56にて生成
された仮想アドレスによりアドレス指定される。この仮
想アドレスは、ここでは6つのフィールド、即ち仮想ア
ドレス・キャッシュ・アクセスのために、ワードid、
セット1d及び要素idを有するものと定義される。仮
想アドレス・キャッシュ85の設計パラメータを次に定
める。
ラインの大きさ=4(W=2) セット数−2,048(s−11) セット結合度=2 セット当りの要素数=219(e=19)仮想アドレス
・キャッシュ全体の大きさは2X2048X4=16に
ワードである。各組の2方向、セット関連キャッシュは
8にワードからなる。仮RアトVス・キャッシュは高速
度スタティク調から作成される。キャッシュ制御装置は
キャッシュ・マップ及び関連の制御論理からなる。
二方向、セット関連キャッシュの各セットに対応して二
つの仮想アドレスのキャッシュ・マッシ90及び91が
あり、それぞれ2.048人力及び少なくとも19ビッ
ト幅を有する。キャッシュ・マップ90及び91の大き
さはセット数に一致し、また各入力の幅は少なくとも要
素idのものであることに注目すべきである。各入力に
付加的なビットを備え、種々の制御情報を記録するよう
にしてもよい。
キャッシュ・マッシ90及び91は共にセット1dによ
り、即ち仮想アドレスの<12:2>ビットによりアド
レス指定される。このようにしてアドレス指定されたキ
ャッシュ・マップ90及び91の内容は、要素id、即
ち対応する比較器94及び95における仮想アトVスの
ビット<31:13>と比較される。多くても一致を示
す一つの比較が予想されるので、キャッシュ・ヒットと
なることが期待される。もし、いずれの比較でも一致が
得られなかったときは、キャッシュ・ミスが存在する。
両方のキャッシュ・マップ90及び91がアドレス指定
されると、両セットのキャッシュがセットidにより、
即ち仮想アドレスのビット<12:1>によりアドレス
指定されることも注意すべきである。キャッシュ・ヒッ
トがあると、選択されたセットのキャッシュ部の出力に
より仮想アドレス・キャッシュの出力が表示される。仮
想アトVス・キャッシュの出力には1ラインの4ワード
が含−まれている。このラインのワードは仮想アドレス
のビット<1:O>を用いて選択されたものである。
前述のように、論理アドレス・キャッシュ68はバイン
ディング・Vラスタ5フと接続されている。論理アドレ
ス(r+インデックス)により指定された位置が論理ア
ドンス・キャッシュにあるとき即ち論理アドレス・キャ
ッシュにヒツトがあるときは、この位置は、書込み又は
読出し動作であるかに従って書込み又は読出しとなる。
論理アドレス・キャッシュにミスがあると、仮想アドレ
ス・キャッシュは論理アドレスの変換により得た仮想ア
ドレスによりアクセスされる。仮想アドレス・キャッシ
ュにヒツトがあると、この位置は書込み又は読出し動作
に従って書込み又は読出しとなる。
仮想アドレス・キャッシュ85にミスがあると、主メモ
リ60はアドレス変換機構65を用いることにより仮想
アドレスの変換により得た実アドレスによりアクセスさ
れる。アドレス変換機構65がページ誤りを表示すると
、勿論、情報はバック・アップのディスク・メモリ83
にあり、落丁のページはページ誤りに用いるために転送
される必要がある。
1烏アドレス・キャッシュ68はcpU 50によりま
ずアドレス指定される。仮想アドレス85は論理アドレ
ス・キャッシュ68にぢけるミスに役立てるべく用いら
れ、またMMP 54によってもアドレス指定される。
本発明によるキャッシュ階層構造の予測パフォーマンス
を示すモデルを次に示す。論理アドレス・キャッシュの
大きさは小さいと予測されるので、論理アドレス・キャ
ッシュに対して60%の低ヒツト率を仮定していること
に注目すべきである。
論理アドンス・キャッシュのヒツト確率・・・・・・・
・・ 60%仮想アドレス・キャッシュのヒツト確率・
・・・・・ 95%論理アトVス・キャッシュのアクセ
ス時間・・・・・・ 50ns仮想アドレス・キャッシ
ュのアクセス時間・・・・・・100ns主メモリのア
クセス時間 ・・・・・・・・・・・・300ns従っ
て、メモリ・システムの実効アクセス時間= ((50
x O,6) + (100x O,4月X O,95
+(300X O,05) = 82 nsこの予測ア
クセス時間は論理アト7ス・キャッシュのみ、又は仮想
アトVス・キャッシュのみを用いる解決法と対照される
べきである。80%の高いヒツト率を与える大きな論理
アドレス・キャッシュにより、実効アクセス時間 = (50x O,8) + (300x肌2) = 
100 nsとなる。
仮想アドレス・キャッシュが一つのとぎは、実効アクセ
ス・キャッシュ = (100X O,95) + (300X O,0
5) = 110 ns。
従って、小さな論理アドレス・キャッシュ及び大きな仮
想アドレス・キャッシュかうするキャッシュ階層構造は
、大きな論理アドレス・キャッシュカ一つ又は大きな仮
想アドレス・キャッシュが一つのときよりもパフォーマ
ンスがよくなる。
本発明の他の特徴はMMU 52内の仮想アドレス、キ
ャッシュの制御装置及びMMP 54により参照カウン
ト管理を完全に実行させることができることにある。参
照カウントの詳細は、例えば以上で引用した米国同時係
属出願第      号(代理人整理番号TI −99
28号)に説明されている。論理アドレス・キャッシュ
の制御装置は参照カウントに関連したどのようなオーバ
ヘッドに巻込まれることもないので、論理アドレス・キ
ャッシュに対するアクセスが終ると直ちにCPU −M
MUインタフェース金解放するので、パフォーマンスが
高くなる。
MMU 52はアクセス不能のメモIJ e急速に置換
するために参照カウント技術を用いている。各書込み命
令においては、まずメモリ・セルの内容を読込み、新し
いデータの書込をした結果、ポインタが破壊されるかを
判断しなげればならず、その次に新しいデータをメモリ
・セルに書込むことができる。これは「リード・モディ
ファイ・ライト」機能と呼ばれる。前記引用のオフスレ
ー他による米国特許出願第      号(代理人整理
番号TI −9932号)の装置では、現在内容の辺[
タグがポインタを示したときは、書込み処理の結果とし
てポインタが破壊されることになる。現在ポインタが破
壊されたときは、参照ブロックのヘッダ全読出して参照
カウントに抽出する必要があり、また参照カウントを1
つだけ減少させ、最後に、更新された参照カウントを参
照ブロックのヘッダに書込む。
同様に、書込み中の新しいデータもポインタであるかに
ついて調べるため、チェックする必要がある。これは新
しいデータMMUタグを調べることにより判断される。
データがポインタであるときは、新しいポインタが作成
される。これには参照ブロックを読出して参照カウント
を抽出することが必要で、また参照カウントを1だけ増
茄させ、最後に更新した参照カウントを参照ブロックの
ヘッダに戻すための書込みをする。
論理アドレス・キャッシュ(即ち仮想アドレスではない
)のみが存在するときは、その制御装置は、現在ポイン
タを壊わして又は新しいポインタを作成してもよいかに
ついての判断をする必要がある。即ち制御装置はリード
・モディファイ・ライト機能を支援する必要がある。こ
のような判断ツシュ階層構造の設計により、現在ポイン
タを壊わして新しいポインタを作成してもよいかについ
ての判断のオーバヘッドは、仮想アドレス・キャッシュ
の制御装置により処理することができる。
即ち、仮想アドレス用の制御装置はリード・モディファ
イ・ライト機能上支援する必要がある。
MMPは実際に参照カウントの増減及びガーベジブロッ
クの再利用の処理をする。書込命令により新しいデータ
を論理アドレス・キャッシュに書込むと直ちに、CPU
 −MMUインタフェースが解放されるので、CPUは
新しいメモリ・アクセスを開始することができる。以下
で述べるが、パフォーマンスを高めるこの戦略を支援す
るためには、両キャッシュが「ライト・スルー」方法を
採用することが必要である。
「バック・アップ・メモリと両立するキャッシュを保持
するためには、2つの方法がある。論理アドレス・キャ
ッシュの場合は、仮想アドレス・キャッシュがバック・
アップ・メモリとなる。仮想アドレス・キャッシュの場
合は、主メモリがバック・アップ・メモリとなる。次の
説明は論理アドレスキャッシュ・アドレス及び仮想アド
レス・キャッシュの両方に適用される。第1の方法は「
ライト・スルー」方法と呼ばれている。その名が示すよ
うに、各書込みアクセスにおいてキャッシュ及びバック
・アップ・メモリの両方に書込まれる。第2の方法は「
ライト・バック」と呼ばれている。その名が示すように
、キャッシュの現在データを置換して仮想アドレス・キ
ャッシュから新たにデータを取り入れるための対応をし
だときにのみ、また現在データが「汚染」しているとき
、即ちバック・アップ・メモリにその複写をすることと
両立しないときに、バック・アップ・メモリの書込みを
する。ライト・スル一方法においては、バック・アップ
・メモリに対するトラフィックを増加させる犠牲を払い
、バック・アップ・メモリを更新し、全ての書込みサイ
クルにおいてキャッシュとの両立を図っている。
ここで説明したキャッシュ設計は論理アドレス・キャッ
シュ及び仮想アトシス・キャッシュの両方に対してライ
ト・スル一方法を用いている。ライト・スル一方法を達
成するための詳細は当該技術分野に周知のことなので、
ここでこれ以上の説明はしない。ここで強調することは
、前記−組の理由によりMMU関係にライト・スル一方
法を選択することである。
ライト・スル一方法は、両キャッシュが誤り検出(訂正
ではない)機能のみを備えればよいという利点がある。
キャッシュ誤りを検出したときは、正しく、かつ最新の
主メモリ・データをフェッチし、誤りのあるキャッシュ
・データを訂正することができる。従って、誤υ訂正コ
ードを備える必要がないので、キャッシュの設計は簡単
なものとなる。主メモリ・データはキャッシュ・データ
の誤り訂正を当てにすることができないので、ライト・
バック方法は少なくとも仮想アPレス・キャッシュが1
ビツトの誤り訂正機能を備えなければならないという欠
点がある。このような条件は仮想アドレス・キャッシュ
の設計を複雑化するものである。
ライト・スル一方法にはこの他にも利点がある。
ライト・スル一方法では、置換されるべき旧ラインに単
純に重ね書きするので、キャッシュ・ミスが速く発見さ
れる。論理アドレス・キャッシュがライト・スル一方法
において費用のかかるものを見失わせてしまう付加的な
要因がある。論理アドレス・キャッシュの場合は、キャ
ッシュ・マップにそのキャッシュにおけるラインの論理
アドレス・インデックスが含まれている。キャッシュ・
ミス後に1ラインを置換するときは、まず論理インデッ
クスを仮想アドレスに変換しなければならない。この変
換処理には62ビツトの加算が必要であυ、これには4
0ナノ秒掛る。
ライト・スル一方法によシ、仮想アドレス・キャッシュ
及び主メモリの両者は常に最新の写しを有するので、M
MPKて実行しているガーベジ収集器の処理ジョブは簡
単なものとなる。もしガーベジ収集器がポインタを一掃
する準備ができているときは、ポインタを更新すること
が保証される。
これに対して、ライト・バック方法においては、あるブ
ロックの一掃が可能となる前に、まず論理アrレス・キ
ャッシュから仮想アドレス・キャッシュにそのゾロツク
を書込みによシ戻して置かなければならない。
ライト・スル一方法の場合は、あるブロックが割付解除
となったとき又はガーベジ(garbage)となった
ときは、仮想アドレス・キャッシュには両立性のあるコ
ピーがあるので、論理アドレスから仮想アドレス・キャ
ッシュにそのブロックを書込みによυ戻して置く必要は
ない。このようなブロックに対応する論理アドレス・キ
ャッシュ部分は書込みによシ戻す必要はなく、単純に割
付解除をし、かつ再初期化をするだけである。
ライト・スル一方法の場合は、論理アドレス・キャッシ
ュは前に述べたリード・モディファイ・ライト機能を支
援する必要はない。論理アドレス・キャッシュは書込み
命令に応答して単に書込みをする。ライト・スル一方法
のため、データも仮想アドレス・キャッシュに書込まれ
る。リード・モディファイ・ライト機能を有するのは、
(論理アドレス・キャッシュではなく)仮想アドレスで
ある。書込み命令によって新しいポインタが作成された
とき、又は旧ポインタが消去されたときは、仮想アドレ
ス・キャッシュ用の制御装置は、適当に参照カウントを
更新したことをMMPに報告する。
従って、処理アドレス・キャッシュにデータが書込まれ
ると、直ちに書込み命令は終了する。この時点で、CP
U−MMUインタフェースは解放されるので、CPUは
次のメモリ要求を出すことができる。
これは、ライト・バック方法を選択したときは必要とな
るリード・モディファイ・ライト・キャッ’/ユ・サイ
クルに比較して、キャッシュの書込ミが早い方法である
ある程度特定して本発明を説明したが、本開示は単に例
として示したものであって、当該分野の者には、特許請
求の範囲に記載したように、本発明の精神及び範囲から
逸脱することなく、部分の組合せと構成において種々の
変更が可能なことを理解すべきである。
【図面の簡単な説明】
第1図は従来技術によるCPU 、主メモリ及び二次メ
モリに対するキャッシュ・メモリの関係を示すブロック
図、第2図は本発明によるキャッシュ階層構造に関する
コンピュータ装置のブロック図、第3図は本発明による
、第2図のコンピュータ装置に用いることができる論理
アドレス・キャッシュのブロック図、第4図は本発明に
よる、第2図のコンピュータ装置における第3図の論理
アドレス・キャッシュとの関連において用いる仮想アド
レス・キャッシュの一例のブロック図である。図中の種
々の符号において、同一の参照符号は、同−又は同じよ
うな部分を示すものとして用いられている。 54・・・メモリ管理プロセッサ(MMP) 、56・
・・バインディング・レジスタ装置、57・・・バイン
ディング・レジスタ、60・・・主メモリ、65・・・
アドレス変換機構、68・・・論理アドレス・キャッシ
ュ、70・・・キャッシュ・メモリ、73・・・キャッ
シュ部、75.90,91・・・キャッシュ・マップ、
78・・・キャッシュ・マップ部、80・・・バインデ
ィング決定マツプ、81,94,95・・・比較器、8
5・・・仮想アドレス・キャッシュ。

Claims (14)

    【特許請求の範囲】
  1. (1)中央処理装置に対してインタフェース接続をする
    複数のバインディング・レジスタを有し、前記中央処理
    装置と関連させて用いるメモリ装置において、バインデ
    ィング・レジスタ識別子、及びこのバインディング・レ
    ジスタ識別子により識別されたバインディング・レジス
    タに結付けられるブロック内の一つのセルを指示するイ
    ンディックスからなるアドレス対によりアドレス可能な
    論理アドレス空間と、前記バインディング・レジスタに
    接続され、供給されるアドレス対によりアドレス指定さ
    れた論理アドレス・キャッシュ手段と、前記アドレス対
    の割付が可能な仮想アドレス上の仮想アドレス空間と、
    前記仮想アドレス空間の仮想アドレス上に前記アドレス
    対を割付ける手段と、前記仮想アドレスによりアドレス
    指定される仮想アドレス・キャッシュ手段とを備えたメ
    モリ装置。
  2. (2)特許請求の範囲第1項記載のメモリ装置において
    、前記論理アドレス・キャッシュ手段はアドレス対に応
    答して論理アドレス・キャッシュ手段をアドレス指定す
    る論理キャッシュ・マップを備えることを特徴とするメ
    モリ装置。
  3. (3)特許請求の範囲第3項記載のメモリ装置において
    、前記論理アドレス・キャッシュ手段は前記バインディ
    ング・レジスタ識別子を入力して一つのキャッシュ・マ
    ップ部分を選択するための出力を発生し、論理アドレス
    ・キャッシュ部分をアドレス指定するバインディング・
    レジスタを更に備えることを特徴とするメモリ装置。
  4. (4)特許請求の範囲第3項記載のメモリ装置において
    、前記アドレス対を割付ける前記手段により生成した仮
    想アドレスに応答して前記仮想アドレス・キャッシュ手
    段をアドレス指定する前記仮想アドレス・キャッシュ手
    段用のキャッシュ・マップを更に備えていることを特徴
    とするメモリ装置。
  5. (5)特許請求の範囲第4項記載のメモリ装置において
    、前記仮想アドレス・キャッシュ手段は二組の仮想キャ
    ッシュ・メモリと、それぞれ前記二組の仮想キャッシュ
    ・メモリのうちの一つに接続された二つのキャッシュ・
    マップと、それぞれ二つの前記キャッシュ・マップのう
    ちの一つに接続され、前記仮想アドレス・キャッシュ手
    段に供給された前記仮想アドレスの少なくとも一部を前
    記キャッシュ・マップの選択した内容と比較してキャッ
    シュ・ヒットが発生したかについての表示をするための
    出力を発生する二つの比較器とを備えていることを特徴
    とするメモリ装置。
  6. (6)特許請求の範囲第4項記載のメモリ装置において
    、前記論理アドレス・キャッシュ手段は分割数が前記バ
    インディング・レジスタの数に対応した複数の部分に分
    割されている論理アドレス・キャッシュを備えていると
    共に、前記論理キャッシュ・マップはセグメント数が前
    記論理アドレス・キャッシュの分割数に対応した複数の
    部分に分割されていることを特徴とするメモリ装置。
  7. (7)中央処理装置に接続されているメモリ装置におい
    て、物理メモリと、前記中央処理装置によるアクセスを
    前記ユーザ・プロセッサにより生成された論理アドレス
    により前記物理メモリを表わす論理アドレス空間のみに
    限定させるために前記中央処理装置に対して前記物理メ
    モリのインタフェースをするバインディング・レジスタ
    手段と、前記バインディング・レジスタと接続され、論
    理アドレスを受取り、前記論理アドレス・キャッシュに
    よりキャッシュ記憶した情報を選択して出力するように
    応答する論理アドレス・キャッシュと、仮想アドレスに
    より仮想アドレス空間を表わし、かつこの仮想アドレス
    空間により前記物理メモリを表わすと共に、前記バイン
    ディング・レジスタに接続され、論理アドレスを前記仮
    想アドレスに変換する手段と、仮想アドレスを入力し、
    この仮想アドレスに応答して前記仮想アドレスからキャ
    ッシュ記憶した情報を選択する仮想アドレス・キャッシ
    ュとを備えたことを特徴とするメモリ装置。
  8. (8)特許請求の範囲第7項記載のメモリ装置において
    、前記論理アドレス・キャッシュはキャッシュ・メモリ
    と、キャッシュ・マップと、バインディング決定マップ
    を備えると共に、前記バインディング決定マップは論理
    アドレスを受取り、前記キャッシュ・マップに供給し、
    前記キャッシュ・マップは前記キャッシュ・メモリの内
    容の識別子と、前記キャッシュ・メモリをアドレス指定
    する手段と、前記論理アドレスの少なくとも一部を前記
    バインディング決定マップに供給したときにキャッシュ
    ・ヒット及びキャッシュ・ミスを表示する手段とを備え
    、前記キャッシュ・マップは各部分が各バインディング
    ・レジスタに対応し、かつ前記バインディング決定マッ
    プによりアドレス指定可能とするように、配列可能に分
    割されたメモリ要素を有することを特徴とするメモリ装
    置。
  9. (9)特許請求の範囲第8項記載のメモリ装置において
    、前記仮想アドレス・キャッシュは少なくとも一つの仮
    想キャッシュ・メモリと、一つの仮想キャッシュ・マッ
    プとを備えると共に、前記仮想アドレス・マップは前記
    論理アドレスから変換された仮想アドレスを受取り、こ
    の仮想アドレスがキャッシュ・ヒットを発生させたとき
    は少なくとも一つの前記仮想キャッシュ・メモリをアド
    レス指定することを特徴とするメモリ装置。
  10. (10)中央処理装置に接続されたメモリ装置において
    、メモリ管理装置を備えると共に、このメモリ管理装置
    は主メモリと、この主メモリを前記中央処理装置にイン
    タフェース接続をすると共に、中央処理装置と主メモリ
    との間において論理・仮想アドレス変換をする複数のバ
    インディング・レジスタからなる装置、一つのレジスタ
    対(γ、インデックス)(ただし、γはバインディング
    ・レジスタ識別子を表わし、インデックスはγによつて
    指定された前記バインディング・レジスタに結付けられ
    るメモリ・ブロック内のセルのインデックスを表わす。 )を有する各論理アドレス、及び論理アドレスを入力し
    、この論理アドレスに応答して前記論理アドレスからキ
    ャッシュ記憶した情報を選択する論理アドレス・キャッ
    シュを有するバインディング・レジスタ装置と、前記仮
    想アドレスに応答してキャッシュ記憶した情報を選択す
    る仮想アドレス・キャッシュと、仮想アドレスを実アド
    レスに変換して前記主メモリに供給する手段と、前記メ
    モリ管理装置の処理を制御するメモリ管理プロセッサと
    を備えていることを特徴とするメモリ装置。
  11. (11)特許請求の範囲第10項記載のメモリ装置にお
    いて、前記アドレス・キャッシュはキャッシュ・メモリ
    と、キャッシュ・マップと、バインディング決定マップ
    とを備えると共に、前記キャッシュ・マップは前記アド
    レス・キャッシュの内容の識別子と、前記メモリ・キャ
    ッシュをアドレス指定する手段と、論理アドレスを前記
    バインディング決定マップに供給したときにキャッシュ
    ・ヒット及びキャッシュ・ミスを表示する手段とを備え
    、前記メモリ・マップは各部分が各バインディング・レ
    ジスタに対応し、かつ前記キャッシュ・マップの表示に
    よりアドレス指定可能とするように、配列可能に分割さ
    れたメモリ要素を有することを特徴とするメモリ装置。
  12. (12)特許請求の範囲第11項記載のメモリ装置にお
    いて、前記仮想アドレス・キャッシュは少なくとも一つ
    のキャッシュ・メモリとキャッシュ・マップとを備え、
    前記キャッシュ・マップは前記論理アドレスから変換さ
    れた仮想アドレスを受取り、この仮想アドレスがキャッ
    シュ・ヒットを発生したときは前記キャッシュ・メモリ
    をアドレス指定することを特徴とするメモリ装置。
  13. (13)中央処理装置に接続されるメモリ装置において
    、メモリ管理装置を備えると共に、このメモリ管理装置
    は主メモリと、前記主メモリを前記中央処理装置にイン
    タフェース接続し、前記中央処理装置と前記主メモリ装
    置との間において論理・仮想アドレス変換をする複数の
    バインディング・レジスタを有する手段、一つのレジス
    タ対(γ、インディクス)(ただし、γはバインディン
    グ・レジスタ識別を表わし、インデックスはγにより指
    定された前記バインディング・レジスタに結付けられた
    メモリ・ブロック内の一つのセルのインデックスを表わ
    す。)を有する各論理アドレス、及び論理アドレスを入
    力し、この論理アドレスに応答してキャッシュ記憶した
    情報を選択する論理アドレス・キャッシュを有するバイ
    ンディング・レジスタ装置とを備えたことを特徴とする
    メモリ装置。
  14. (14)特許請求の範囲第13項記載のメモリ装置にお
    いて、前記論理キャッシュはキャッシュ・メモリと、キ
    ャッシュ・マップと、バインディング決定マップとを備
    えると共に、前記バインディング決定マップは論理アド
    レスを受取り、前記キャッシュ・マップに供給されるキ
    ャッシュ・マップ・アドレスに変換し、前記キャッシュ
    ・マップは前記メモリ・キャッシュの内容の識別子と、
    前記メモリ・キャッシュをアドレス指定する手段と、論
    理アドレスを前記バインディング決定マップに供給した
    ときにキャッシュ・ヒット及びキャッシュ・ミスを表示
    する手段とを有し、前記メモリ・マップは各部分が各バ
    インディング・レジスタに対応し、かつ前記キャッシュ
    ・マップの表示によりアドレス可能とするように、配列
    可能に分割されたメモリ要素を有することを特徴とする
    メモリ装置。
JP60167865A 1984-07-31 1985-07-31 メモリ装置 Pending JPS6194159A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63619084A 1984-07-31 1984-07-31
US636190 2000-08-10

Publications (1)

Publication Number Publication Date
JPS6194159A true JPS6194159A (ja) 1986-05-13

Family

ID=24550837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60167865A Pending JPS6194159A (ja) 1984-07-31 1985-07-31 メモリ装置

Country Status (3)

Country Link
EP (1) EP0170525B1 (ja)
JP (1) JPS6194159A (ja)
DE (1) DE3588166T2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2619641B1 (fr) * 1987-08-22 1992-05-07 Nec Corp Dispositif de cache hierarchique
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
DE69434669T2 (de) * 1993-10-29 2006-10-12 Advanced Micro Devices, Inc., Sunnyvale Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
EP0651332B1 (en) 1993-10-29 2001-07-18 Advanced Micro Devices, Inc. Linearly addressable microprocessor cache
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR130806A (ja) * 1973-11-21
US4145745A (en) * 1974-12-20 1979-03-20 U.S. Philips Corporation Address conversion device for secondary memories
US4355355A (en) * 1980-03-19 1982-10-19 International Business Machines Corp. Address generating mechanism for multiple virtual spaces
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus

Also Published As

Publication number Publication date
EP0170525A3 (en) 1989-09-13
EP0170525B1 (en) 1997-10-01
DE3588166D1 (de) 1997-11-06
DE3588166T2 (de) 1998-02-12
EP0170525A2 (en) 1986-02-05

Similar Documents

Publication Publication Date Title
EP0674267B1 (en) Sub-line cache coherent write transactions
US4985829A (en) Cache hierarchy design for use in a memory management unit
JP2839060B2 (ja) データ処理システムおよびデータ処理方法
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
US4370710A (en) Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US8176252B1 (en) DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables
US6321297B1 (en) Avoiding tag compares during writes in multi-level cache hierarchy
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
US6078992A (en) Dirty line cache
US5787478A (en) Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US20010037432A1 (en) Data processor having cache memory
JPH1196074A (ja) 交換アルゴリズム動的選択コンピュータシステム
US5765199A (en) Data processor with alocate bit and method of operation
US6571316B1 (en) Cache memory array for multiple address spaces
US5276850A (en) Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
US6449698B1 (en) Method and system for bypass prefetch data path
US7007135B2 (en) Multi-level cache system with simplified miss/replacement control
EP0468804A2 (en) Hierarchical memory control system
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
JPS6194159A (ja) メモリ装置
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
JPH044617B2 (ja)