JPH04230551A - 階層集積回路キャッシュメモリ - Google Patents

階層集積回路キャッシュメモリ

Info

Publication number
JPH04230551A
JPH04230551A JP3166782A JP16678291A JPH04230551A JP H04230551 A JPH04230551 A JP H04230551A JP 3166782 A JP3166782 A JP 3166782A JP 16678291 A JP16678291 A JP 16678291A JP H04230551 A JPH04230551 A JP H04230551A
Authority
JP
Japan
Prior art keywords
data
memory
cache
input
cache memory
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
JP3166782A
Other languages
English (en)
Other versions
JP2505661B2 (ja
Inventor
Ricky C Hetherington
リッキー シー ヘザリングトン
Francis X Mckeen
フランシス エックス マッキーン
Joseph D Marci
ジョセフ ディー マクリ
Tryggve Fossum
トリューグヴ フォッサム
Joel S Emer
ジョエル エス エマー
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH04230551A publication Critical patent/JPH04230551A/ja
Application granted granted Critical
Publication of JP2505661B2 publication Critical patent/JP2505661B2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本願発明は、一般にキャッシュメ
モリ、さらに言えば、キャッシュメモリ機能の実行に特
に適した集積回路に関する。とりわけ、本願発明は、高
速メモリ、より大きな容量を持つ低速メモリ、及び階層
キャッシュメモリを構成するために相互接続されたデー
タパス回路を含む集積回路に関係する。
【0002】高速計算の分野において、プロセッサ速度
は一般に、メモリ性能によって制限される。例えば、C
PUは所定速度でインストラクションを実行する。同様
にメインメモリは、読み出し及び書き込み動作を第2所
定速度で実行する。この第2所定速度は一般に、CPU
実行速度よりも少なくとも1つのオーダ分だけ遅い。も
しCPUが、メモリアクセスインストラクションの実行
の間にメインメモリに直接アクセスすれば、そのCPU
性能は、メモリアクセス速度へと減少するであろう。こ
のような場合、CPUは、メインメモリが各メモリアク
セスインストラクションに対するそのアクセスサイクル
が完了させるのを待っている間、停止していなければな
らないであろう。
【0003】CPUインストラクションサイクル時間の
サイクル時間にほぼ等しいサイクル時間を有する特定目
的メモリを構成することも可能である。不幸にも、その
ような特定目的のメモリは、メインメモリで使用されて
いるダイナミックRAMよりも非常に高価なスタティッ
クRAMを用いる。このため、多くのコンピュータシス
テムでは、メインメモリ内にはより遅い半導体を保持す
る一方、比較的小さな高速メモリキャッシュを構成する
ことによってこれを解決している。
【0004】このキャッシュはハードウエア制御のもと
に管理され、CPUによってよく使用されるメインメモ
リ内容部分の複写を保持する。このように、CPUが、
キャッシュ内に保持されているそれらのメモリロケーシ
ョンにアクセスするだけである限り、CPUは最も早い
速度で実行するであろう。勿論、CPUが、キャッシュ
に含まれていないメモリロケーションを読み出そうとす
ることは避けられない。これらのミスが起きた時、その
データはメインメモリから検索され、キャッシュ内に記
憶される。それゆえCPU性能は、これらのミスの間、
メインメモリアクセス速度にまで減少してしまう。しか
し、これらのミスは比較的稀であるので、プロセッサ全
体の速度は高速キャッシュを用いることにより、より早
いものとなる。
【0005】近年、プロセッサは、一般のスタティック
RAMメモリのアクセス時間を上回る実行速度を持つよ
うになってきた。これらのプロセッサは、例えば、10
ナノ秒以下のサイクル時間である。このように高速の実
行速度は、スタティックRAMキャッシュメモリのアク
セス時間と整合しにくいため、これらのプロセッサは、
プロセッサとキャッシュメモリとの間に付加的なメモリ
レベルを与える「オンチップ」キャッシュメモリで設計
される。このオンチップキャッシュメモリは、内部チッ
プデータ伝達遅延を除去するが、それらは高速メモリだ
けを含む単一のチップの容量よりも非常に少ない記憶容
量に限定される必要がある。それ故、オンチップキャッ
シュの比較的に高いミス率は、CPUの実行速度とスタ
ティックRAMキャッシュのアクセス時間の差という点
から見ると、かなりプロセッサ性能を限定してしまって
いるという傾向がある。
【0006】キャッシュ設計者は、高速プロセッサとス
タティックRAMの速度差をなんとかするため、プロセ
ッサと「第2」のスタティックRAMとの間に非常に高
速なメモリの「第1」のキャッシュを配置しようと考え
る。しかしながら、このような「階層」キャッシュメモ
リは、非常に多数の入力/出力ライン、それに関連する
バッファ、第2キャッシュメモリをメインメモリ及び第
1キャッシュメモリに接続させるために必要な多重回路
、それに、第1及び第2キャッシュメモリをプロセッサ
に非常に近接させ、信号伝達遅延を最小なものとしてお
かなければならないため、実行不可能なものであった。
【0007】詳しく言えば、本願発明によれば、階層キ
ャッシュメモリは、高速第1キャッシュメモリ、この第
1キャッシュメモリよりもより大きな記憶容量である低
速第2メモリ、第2キャッシュメモリから第1キャッシ
ュメモリへ、及び、メインメモリから第2キャッシュメ
モリへのデータパスを選択するためのデータパス回路、
それに、要求されたデータが第1キャッシュメモリに無
い場合に第2キャッシュメモリから第1キャッシュメモ
リへ要求されたデータを転送する制御回路を含む。デー
タパス回路内の多数のデータラインを管理するため、こ
の階層キャッシュメモリは多数の集積回路を含む。これ
ら個々の集積回路は、第1キャッシュメモリ部分、この
第1キャッシュメモリ部分よりもより大きな記憶容量を
有する第2のキャッシュメモリ部分、及び第2キャッシ
ュメモリ部分から第1キャッシュメモリ部分へ、及び、
メインメモリ部分から第2キャッシュメモリ部分へ、個
々のデータパスを確立するためデータパスセクション回
路部分を含む。
【0008】より好ましく実行する時は、個々の集積回
路内のこれらデータパス回路部分は、第1及び第2キャ
ッシュメモリ部分のデータ入力ラインに接続された並列
出力、メインメモリからデータを受信するための直列デ
ータ入力、及び第2キャッシュメモリ部分のデータ出力
ラインに接続された並列入力とを有する直列/並列シフ
トレジスタを含む。データをキャッシュへ書き込み、そ
してメインメモリへ書き戻すため、並列/直列シフトレ
ジスタはまた、処理装置からデータを受信するための並
列入力、第1キャッシュメモリ部分のデータ出力ライン
に接続された並列入力、及びメインメモリへデータを転
送するための直列出力をも含む。第1キャッシュメモリ
部分は、第2キェッシュメモリ部分のアドレス入力と並
列に結線されたアドレス入力を有する。第1キャッシュ
メモリ部分の所定の出力ラインをデータプロセッサがア
ドレス指定することが出来るよう、集積回路は付加的な
アドレスラインに結合された選択入力を有するマルチプ
レクサ、第1キャッシュメモリのデータ出力ラインに結
合されたデータ入力ラインを含む。データプロセッサが
第1キャッシュメモリ部分の所定データ入力ラインから
第1キャッシュへデータを書き込むことができるように
、集積回路は、付加的なアドレスラインに結合されたデ
コーダと、第1キャッシュメモリの個々の書き込みイネ
イブル入力に結合された出力とを含み、直列/並列シフ
トレジスタの並列入力は、データプロセッサからデータ
を受信するため、データラインに並列に結線された複数
のデータラインを含む。
【0009】本願発明の他の目的及び利点は、以下の詳
細な記述を読み且つ図面を参照することによって明かと
なるであろう。
【0010】
【実施例】図1には、本願発明による階層キャッシュ2
1を組み入れたデータ処理システム20のブロック図が
示されている。このデータ処理システム20は、データ
プロセッサ22とメインメモリ23をも含む。このデー
タプロセッサ22は、例えば、コンピュータプログラム
内でインストラクションを実行する中央処理装置(CP
U)である。これらのインストラクションには、メモリ
アクセスインストラクションが含まれる。このインスト
ラクションは、データプロセッサに対し、メインメモリ
内の特定のソースアドレスからデータを読み出すように
、あるいはメインメモリ内の特定の目的アドレスに特定
のデータを書き込むように命令する。
【0011】メモリコストは、データ処理システム20
全コストの主要なファクタである。これらのメモリは比
較的高価になったが、異なるコストで利用可能な色々な
記憶容量や性能特性を有するメモリが存在するし、また
そのようなメモリは常に存在するであろう。メモリコス
トは、例えば記憶容量に比例し、一般にはメモリ速度に
比例する。不幸なことに、このメモリ速度は、データプ
ロセッサ22の実行スピードにかなりの影響を与える。 このことは、実行速度が限定され且つ最適化されている
命令セットを実行するように意識的に設計されたいわゆ
る「リスク」(RISC)の場合に特にそうである。例
えば、エミッタ結合論理(ECL)技術を用いることに
よって、3ナノ秒のオーダのサイクル時間を有する単一
チップデータプロセッサを製造することが実際に行われ
る。この場合、メモリアクセスインストラクションを実
行する間にそのデータプロセッサが停止してしまうのを
防ぐため、そのメモリはおよそ3ナノ秒の対応するサイ
クル時間を有することが望ましい。しかしながら、この
ような要求は、とりわけ深刻である。なぜなら、ECL
のような高速でありそれ故高い電力の集積回路技術が必
要とされるからであり、このメモリは、電力消費の制限
、信号転送時間、そして最後にECLメモリが比較的高
コストであるということによって、その容量が厳しく制
限されなければならない。
【0012】これらの問題は一般に、最も最近使用され
たプログラムインストラクション、及び/または、デー
タアイテムを保持する、キャッシュと呼ばれる小さくて
高速なバッファメモリを使用することによって解決され
る。このキャッシュは、データプロセッサ22とメイン
メモリ23との間に挿入される。高速パイプラインプロ
セッサに対して、2つの別個のキャッシュメモリを使用
することは、一般的なことであり、一方はインストラク
ションを保持し、もう一方はデータを保持するためであ
る。例えば、図1の階層キャッシュは、データを保持す
るために使用される。そのデータプロセッサ22がメモ
リアクセスインストラクションを実行する場合、データ
プロセッサ22はキャッシュ21からそのデータを要求
する。もしその要求したデータがキャッシュ21内にあ
る場合、そのデータはメインメモリ23にアクセスする
ことなく、素早くそのキャッシュから手に入れることが
出来る。
【0013】しかしながら、従来のXMOSダイナミッ
クRAM(DRAM)メモリチップからメインメモリが
構成されている場合、ECLだけを含むキャッシュでは
、データプロセッサ22とメインメモリ23のサイクル
スピードとの間の大きな差を補償するという問題を十分
に解決することはできない。ECLキャッシュが、高電
力消費の制限、データプロセッサ22とキャッシュとの
間の信号転送遅延、及びコストにより、ミスが発生する
度にメインメモリにアクセスしなければならない場合、
データ処理システム20の性能は厳しく制限されるであ
ろう。ECLキャッシュメモリはいくぶんミス率が高い
ため、それ自身の待ち時間がおよそ10倍以上の待ち時
間は持たないバッキングストア(backing st
ore) を有するべきである。例えば、メインメモリ
23は一般に、少なくとも100ナノ秒のアクセス時間
を持たなければならず、それ故、ミスの間のメインメモ
リのアクセスに対するペネルティーは、データプロセッ
サあるいはECLキャッシュメモリの少なくとも30サ
イクルとなるであろう。この問題を解決するには、図1
に示されたような、高速ECLメモリの第1キャッシュ
24とCMOSスタテッィクラム(SRAM)のような
中間速度メモリの第2キャッシュ25の両方を含む階層
キャッシュ21を用いるとよい。
【0014】しかしながら、この第2キャッシュ25を
用いることは、多数の問題を引き起こす。信号転送遅延
を制限するために、この第2キャッシュ25は第1キャ
ッシュ24と近接しているべきであるが、それにもかか
わらず、この第1キャッシュをデータプロセッサ22に
対して近接に保つことが希望される。更に、この第2キ
ャッシュ24は、比較的高い記憶容量を有するべきであ
り、また、第2キャッシュ25で第1キャッシュ24を
リフィルするために必要とされる時間によってシステム
性能が制限されないよう、比較的大きなサイズブロック
を有するべきである。このことは、第2キャッシュ25
をメインメモリ23及び第1キャッシュ24に相互接続
するための多数の信号ラインを必要とさせる。かつては
これらの理由により、第2キャッシュメモリは、データ
プロセッサとメインメモリとの間の印象回路基板上に配
置される必要があり、そのため非常に複雑となり、また
転送遅延が発生し、それに対応して安全性や性能の損失
と伴った。
【0015】本願発明の重要な特徴によれば、これらの
問題は、第1キャッシュ24と第2キャッシュ25とを
同一の集積回路上に配置し、第1と第2キャッシュを相
互接続する多数のデータラインを全体として集積回路上
にロケートすることによって解決することができる。さ
らに、集積回路パッケージの数の基本的な制限は、第1
キャッシュ24及び第2キャッシュ25に対して異なる
ため、階層キャッシュ21内の集積回路パッケージの全
体的な数及び大きさは減少させられる。第1キャッシュ
24が個々のECL集積回路に閉鎖された場合に、集積
回路パッケージ数を定める第1の要因は、個々のパケッ
ージ内におけるECLメモリ素子の電力消費であろう。 言い換えれば、単一の集積回路上のECLメモリの最大
記憶容量は基本的に、チップが配置されるパッケージの
電力消費によって制限されるということである。一方、
第2キャッシュメモリ25が別個のチップ上に全体的に
集積された場合には、チップ毎の最大記憶容量は実質的
に、実用的なチップ製造のための集積回路チップの最大
の大きさによって制限されるであろう。それ故、幾つか
の第2キャッシュメモリと幾つかの第1キャッシュメモ
リとを各集積回路チップ上に配置することにより、それ
らチップの総計は、異なる集積回路技術、あるいは第1
キャッシュ24と第2キャッシュ25に望まれる動作状
態に基づく基本的な制限の相補性質により減少され得る
のである。
【0016】同一回路チップ上のCMOSメモリ素子と
ECLメモリ素子とを結合するため、既知の半導体チッ
プ製造プロセス、特に、「Bi−CMOS」として知ら
れるプロセスを使用することも出来る。電力消費が、第
2キャッシュに対してではなく第1キャッシュに対する
第1要因であるとしても、第1キャッシュと第2キャッ
シュに両方に対して、集積回路パッケージの数に関して
は同一の相補制限が存在するということに気をつけても
らいたい。例えば、第1キャッシュに対しては高電力消
費を犠牲にしても第2キャッシュ25に対しては低電力
を選択することができるよう同一のチップ上に様々な論
理素子の電力消費を回路設計者が自由に適合させること
ができるECLやI2 Lのようなバイポーラ技術であ
っても、このことは言える。なぜなら、この場合、高速
である必要はないからである。もし、回路技術が第1キ
ャッシュと第2キャッシュとの相対的なメモリ容量を選
択するための規準でしかなければ、例えば、第1キャッ
シュ24と第2キャッシュ25とから作られている個々
の集積回路は、実用的な制限によって命令された最大の
大きさであり、またチップを実用的にパッケージングに
することが可能な最大電力量を消費するであろう。
【0017】しかしながら、第1キャッシュと第2キャ
ッシュの両方の部分を同一のチップ上に配置することに
より、各チップに対する入力出力ライン数を限定したい
ということに関連した付加的な問題が生じる。これらの
問題は、図2、3を用いて以下に述べるように、第1キ
ャッシュと第2キャッシュの両方のデータメモリに対し
て共通バスを用いることによって、あるいは、第1と第
2キャッシュメモリ中へデータを書き込むために共通の
レジスタを用いることによって解決される。特に、書き
込みレジスタは、第1キャッシュ24、第2キャッシュ
25、あるいはデータプロセッサポート26、あるいは
メインメモリポート27のいずれからもデータを受信す
ることができる。第1キャッシュ24と第2キャッシュ
25との間のアドレスバス及び書き込みレジスタを共有
するため、階層キャッシュ21は第1キャッシュ24と
第2キャッシュ25の両方に対してデータライトバック
(write−back)及びリフィル(refill
)を調整するのに共通のキャッシュコントローラ28を
使用すべきこととなる。
【0018】この階層キャッシュ21は、データプロセ
ッサ22のスピードに整合されたサイクルスピードを有
する第1キャッシュ24を有するであろうが、小さなオ
ンチップキャッシュ29及びそれに関連するキャッシュ
コントローラ30を用いることがいまだに望まれる。こ
の場合、データプロセッサ22は、内部チップデータ転
送遅延が存在しないため、1サイクル部分でオンチップ
キャッシュ29にアクセスすることができる。このオン
チップ29は、レジスタファイルと同様のものである。 特に、図2、3、図10、図11を参照して以下に述べ
るように、オンチップ29とオンチップコントローラ3
0は第1キャッシュ24とキャッシュコントローラ28
に対して同様の形態で動作する。
【0019】概して、データプロセッサ22は、メモリ
リクエスト、アドレス、及びメモリ内に書き込まれるデ
ータを、階層キャッシュ21に向けて送信し、そしてそ
の階層キャッシュは、それらのリクエストのアック(a
cknowledge)と、メモリから読み出された対
応するデータを返す。このため、階層キャッシュ21は
、リクエストバス31を通じてデータプロセッサ22に
リンクされたデータプロセッサポート26、アックバス
35、アドレスバス32、それに2つの一方向データバ
ス33、34を有する。例えば、このリクエストバスは
、高速システムクロックの各サイクルの間に、読み出し
リクエスト、書き込みリクエスト、フラッシュリクエス
ト、あるいはリクエストが存在しないこと(no−op
)を表示するリクエストコードを変換するための、少な
くとも3つのラインを含む。アックバスは、例えば、デ
ータプロセッサが何らかの付加的なリクエストを送信す
る必要がないことを示している停止信号、リードリクエ
ストの完了を了知するための書き込みデータ有効信号、
及びプログラム実行に割り込むためのメモリ故障信号を
変換する少なくとも3つのラインを含む。
【0020】要求されたデータが階層キャッシュ21で
見つからなかった場合に、その要求されたデータをメイ
ンメモリ23から得るため、階層キャッシュは、メイン
メモリに向かって多数のバスが伸びているメインメモリ
ポート27を含む。これらのバスは、リクエストバス3
6、アックバス40、アドレスバス37、及び2つの一
方向データバス37、38を含む。2つのデータバスは
、リフィルデータ及びライトバックデータが同時に変換
されるよう、以下に述べるように供給される。
【0021】図2、3を参照すれば、階層キャッシュ2
1の更に詳細なブロック図が示されている。第1キャッ
シュ24は、データブロックを保持するためのメモリ4
1、対応するアドレスタグを保持するためのメモリ42
、及びメモリ42に記憶されたアドレスタグを、概して
44で示されている内部アドレスバス上のアドレスのイ
ンデックス部分と比較するための比較器43を含む。 同様にして、第2キャッシュ25は、データブロックの
ためのメモリ45、アドレスタグのためのメモリ46、
タグ比較器47を含む。単一のタグ比較器とタグメモリ
に、各データメモリが与えられているので、この階層キ
ャッシュ21は、「一方」セット結合である。しかしな
がら、図13及び図14を参照して以下に記述するよう
に、この階層キャシュ21は、個々の第1キャッシュ及
び第2キャッシュメモリに対してタグメモリとタグ比較
器の複合の組みを与えることによって、多重セット結合
キャッシュとして容易に構成される。
【0022】好ましくは、この階層キャッシュはクロッ
ク信号(CLK)に応答して同期形態で動作し、そして
停止レジスタ48、49は、データプロセッサと階層キ
ャシュとの間のデータ流れをパイプラインで結ぶために
使用される。停止レジスタ48はアドレスを有し、停止
レジスタ49はキャッシュコントローラ28が停止信号
を主張した場合にデータプロセッサからのデータを保持
する。この停止信号は、マルチプレクサ50、51を制
御し、その停止信号が主張された場合は、それぞれの停
止レジスタ48、49の内容を選択する。
【0023】更に、少なくともデータを書き込むために
、第1キャッシュタグメモリ42のアクセス動作を第1
キャッシュデータメモリ41のアクセス動作にパイプラ
インで結ぶことが望まれる。図2、3に示されるように
、この階層キャッシュは直接マップされ、それゆえ、デ
ータを書き込んだり、あるいはまたそのデータが所望の
アドレスとは異なるアドレスに関連したキュッシュブロ
ックに書き込まれる前に、タグが整合し、「ヒット」を
合図する必要がある。タグメモリからの所望のアドレス
をデータメモリへパイプラインで結ぶことは、所望のア
ドレスがアドレスバス32上に現れた時にタグメモリを
アドレス指定し、その後その所望のアドレスが停止レジ
スタ48内で検索された時にデータメモリをアドレス指
定する。しかしながら、読み出しリクエストを処理する
ために、タグメモリとデータメモリを同時にアドレス指
定することも時々可能である。メモリからのデータは出
力レジスタ52内で検索され、その後、「ヒット」信号
がそのデータを確認し、あるいは無効にすることが可能
となった時に、データプロセッサに向けて転送される。 これらタグメモリとデータメモリが同時にアドレス指定
された場合、バイパスマルチプレクサ58は、停止レジ
スタ48内のアドレスの代わりにアドレスバス32から
のCPUアドレスを用い、そのデータメモリをアドレス
指定する。
【0024】キャッシュデータブロックは、CPUバス
34内のデータパス数よりもより多いことが望まれるの
で、マルチプレクサ53は、データ処理装置に転送され
るべきデータブロックの部分を選択するのに最下位アド
レスビット数に応答する。例えば、個々のキャッシュデ
ータブロックは、1024ビットを含み、そしてそのマ
ルチプレクサ53は、キャッシュブロックから32ビッ
トロングワードを選択するために5つの最下位ビットに
応答する。より好ましくは、この第1キャッシュ24及
び第2キャッシュ25は、データが第1キャッシュのデ
ータメモリ41と第2キャッシュメモリ45との間で素
早く転送されるように、同一の大きさのキャッシュブロ
ックを有する。図2、3において、2つのデータメモリ
41、45のデータ入力は、キャッシュブロック内の各
ビットに対して単一のラインを有する巾広いバス54に
よって並列に接続されている。
【0025】以下に述べるように、巾広いバス54は、
2つのデータメモリ41、45を構成するために使用さ
れる集積回路に対して全体として内在的なものとなって
いる。更に、階層キャッシュ21には、書き込みバッフ
ァとしてデータメモリ41、45の両方に役立ち、また
、メインメモリからのリフィル及びライトバックと同様
に、データメモリ41、45間の並列通信にも使用され
る直列/並列レジスタ55が与えられている。第1内で
はミスしたが、第2内ではヒットした参照のために第1
キャッシュをリフィルするため、データは、第2キャッ
シュから並列/直列レジスタを通じて流れる。更に、変
形された第1キャッシュ内のデータを含むキャッシュブ
ロックが新しいデータでリフィルされ、その変形された
データは巾広いバス57上を、第1キャッシュから直列
/並列レジスタ55を通じて第2キャッシュへと流れる
。更に、この直列/並列レジスタは直列シフトレジスタ
として動作し、メインメモリと階層キャッシュとの間で
データをリフィルしたりライトバックする場合に、リフ
ィルバッファ及びライトバックバッファの両方として役
立つ。図5からよりはっきりと理解できるであろうが、
例えば、階層キャッシュとメインメモリとの間で相互接
続されているデータバス38及び39は32ビットバス
であり、32クロックサイクル内で直列/並列レジスタ
55とメインメモリとの間で1024ビットのデータが
スワップされ得る。
【0026】直列/並列レジスタ55は、キャッシュコ
ントローラ28からの2ビット選択信号(SEL)に応
答する4つの異なる動作モードを有する。SEL=0に
対して、直列/並列レジスタ55は、第1キャッシュ2
4のリフィルのために第2キャッシュのデータ出力を受
けとる。SEL=1に対しては、図5を参照してより詳
しく以下に述べるように、直列/並列レジスタは、デー
タプロセッサから32ロングワードの32の複写を受け
とる。アドレスデコーダ56によって選択された、32
ビット複写の所定の1つは、第1キャッシュのデータメ
モリ41内のキャッシュブロック内のアドレス指定され
た部分中に書き込まれることができる。SEL=2に対
しては、第1キャッシュのデータメモリ41の出力が、
第2キャッシュ25へのライトバックのために直列/並
列レジスタ55中で受け取られる。多数のサイクルを必
要とするライトバックプロセスの間、レジスタがクロッ
クされた時に直列/並列レジスタ55の内容が変わらな
いよう、データメモリ41へのアドレスは変わらない。 SEL=3に対して、直列/並列レジスタ55は、メイ
ンメモリからリフィルデータをシフトインし、且つライ
トバックデータをメインメモリ内にシフトアウトするよ
う、直列モードで動作する。図示するため、第1キャッ
シュと第2キャッシュは、ダイレクトマップ型キャッシ
ュとして個々に示されている。ミスが発生すると、タグ
メモリ内の所望のアドレスの内容は、所望のキャッシュ
ブロック内に存在するかもしれない何らかのデータのよ
り高位のオーダアドレスビットを示す。データの存在は
、タグメモリ42、46内に記憶された有効フラグ(V
)によって示される。この階層キャッシュ21はまた、
ライトスルーキャッシュというよりはライトバックとし
て示されている。それ故、もし変形されたデータがミス
の間に所望のキャッシュブロック内に存在した場合には
、そのデータはライトバックされなければならない。変
形されたデータはタグメモリ内の変形フラグ(M)によ
って示されている。
【0027】図4のブロック図で更に示されているよう
に、個々のタグメモリ42、46は、タグメモリへの書
き込み及びタグメモリのフラッシュの間に、変形フラグ
(M)と有効フラグ(V)が自動的に更新されるよう構
成されている。図示したように、このタグメモリは、変
形フラグを保持するための単一ビットスタティックRA
M、対応するより高位のオーダのアドレスビットを保持
するための多数の単一ビットスタティックRAM63、
64、65を含む。変形フラグのためのスタテッィクR
AM61の書き込みイネイブル入力は、タグメモリ42
、46のためのライトイネイブルをライト変形入力(W
M)に結合するORゲート66により与えられる。 他のスタティックRAM62、63、64は、タグメモ
リのための書き込みイネイブル信号を直接的に受け取る
。更に、変形フラグのためのスタテッィくRAM61は
、ライト変形信号(WM)を受け取るデータ入力を有す
る。それ故、この変形されたビットは、タグメモリがラ
イトイネイブル(WE)によって更新された時にクリア
され、WE信号がデータの変形の間に主張された時に設
定される。有効フラグのための単一ビットスタティック
RAM62は、メモリ内の全てのビットがリセットされ
、FLUSH信号に応答すると同時にクリアされ得るよ
う、特に構成されている。このメモリ62へのデータ入
力は、書き込みイネイブル(WE)がキャッシュフィル
の間に主張された場合に、そのアドレス有効フラグが設
定されるよう、論理高に結線されている。変形フラグの
ためのスタテッィクRAM61のデータ出力と、有効フ
ラグのためのスタテッィクRAM62のデータ出力はA
NDゲート67で組み合わされ、そうして変形フラグが
有効の場合の時にのみ主張される変形信号を与える。
【0028】再び図2、3を参照すれば、タグメモリ4
2からの変形信号とタグ比較器43からのヒット信号は
レジスタ71を通過し、キャッシュコントローラ28に
よって受け取られる。同様に、第2キャッシュ25のタ
グメモリ46のための変形信号及びヒット信号は、レジ
スタ72内で受け取られ、そしてキャッシュコントロー
ラ28に送信される。キャッシュコントローラ28が、
第1キャッシュのアクセスの間にミスが発生したと判断
し、アドレス指定されたキャッシュブロックが変形され
たデータを含むと判断した場合には、変形されたデータ
を第1キャッシュから第2キャッシュへと書き込むこと
によってライトバック動作を開始する。ミスの発生によ
り、変形されたデータと関連するアドレスは、アドレス
バス44上のアドレスとは異なるものとなる。変形され
たデータのアドレスは、レジスタ73で受け取られる。 次のサイクルの間、キャッシュコントローラ28は、変
形されたデータのアドレスをアドレスバス44上に配置
するようマルチプレクサ74を操作し、このアドレスは
第2キャッシュ25に送信され、そうして変形されたデ
ータを第2キャッシュにライトバックすることができる
。同様に、第2キャッシュ25は、レジスタ75、第2
キャッシュ内でミスが発生した場合にキャッシュコント
ローラ28によって操作されるマルチプレクサ76を含
み、変形されたデータはメインメモリにライトバックさ
れる。
【0029】図5を参照すると、第1キャッシュメモリ
の部分81と第2キャッシュメモリの部分82の両方を
含む集積回路80の図が示されている。特に、データメ
モリ41、データメモリ45、レジスタ52、マルチプ
レクサ53、バス54、直列/並列レジスタ55、デコ
ーダ56、図2、3に示されていているようなバス57
が、図5に示された16の集積回路上に集積されている
。この集積回路80は、好ましくは、BiMOSを用い
て製造され、そして48リードTAB形態にパッケージ
化される。更に以下に述べるように、この集積回路は階
層512K  X2  BiMOS  /  8K  
X  2  ECL  同期RAMと呼ばれる。
【0030】第1キャッシュメモリの部分81は、8K
ビットECLメモリ83と8KビットECLメモリ84
を含む。これらの8KビットECLメモリ83、84は
、256×32ビットの配列として構成され、各々32
ビットである256のアドレス指定可能な別個のキャッ
シュブロックセグメントを与える。これら256のキャ
ッシュブロックセグメントは、アドレスバス85上の8
つのアドレスライン(アドレスビット17から10を有
する)によってアドレス指定される。メモリ83では、
32のデータラインを含むデータバス86から32ビッ
トのデータを、アドレス指定されたキャッシュブロック
セグメント中に書き込むことが出来、アドレス指定され
たキュッシュブロックセグメントの全ての32ビットを
32のデータラインを含む出力バス87上へと読み出す
ことが出来る。データの特定のビットは、32の入力ラ
インと信号出力ライン89を有するマルチプレクサ89
によって選択される。この選択されたビットは、図2、
3に示されたレジスタ52の部分である遅延フリップフ
ロップ内でラッチされる。この遅延フリップフロップは
起こり得るなんらかの競合状態を除去し、最大出力有効
時間を与え、そして集積回路80がデータ処理システム
内に組み入れられた時に、完全にパイプラインで結ばれ
たセグメントを完成させる。同様に、アドレスバス85
は、32ビットデータ入力バス91と32ビット出力バ
ス92を有するメモリ84に続いている。出力バス92
上の特定ビットは、マルチプレクサ93によって選択さ
れ、そして図2、3の出力レジスタ52の部分を形成す
る遅延フリップフロップ94内で受け取られる。
【0031】第2キャッシュの部分82は、メモリ95
とメモリ96を含む。これら個々のメモリは、512K
ビットCMOSスタテッィクメモリであり、16K×3
2ビット配列として配列されている。個々の配列内の1
6Kブロックのある特定のものは、共通アドレスバス9
7上の14ビットアドレス(アドレスビット23から1
0)によってアドレス指定される。メモリ95は、32
ビットデータ入力バス98、32ビットデータ出力バス
99を持つ。メモリ96はまた、32ビットデータ入力
バス100と32ビットデータ出力バス101を有する
【0032】データをメモリ83と95間で転送するた
め、メモリ83のデータ入力バス86は、メモリ95の
データ入力バス98と並列に結線されており、これらの
データ入力バスもまた、32ビット直列/並列シフトレ
ジスタ102の出力に並列に結線されている。直列/並
列シフトレジスタ102は、図2、3に示された直列/
並列レジスタ55の部分を形成する。この直列/並列シ
フトレジスタ102は、メインメモリポート(図1の2
7)からデータビットを受け取る直列入力ライン103
を有し、且つメインメモリポート(図1の27)へデー
タビットを転送するための直列データ出力ライン104
を有する。この直列/並列シフトレジスタ102は更に
、3つの別々の並列入力を含む。第1入力(P0)はメ
モリ95のデータ出力バス99に接続される。第2並列
入力(P1 )は32の入力ラインを有するが、これら
の入力ラインはデータプロセッサポート(図1の26)
からのデータビットを受け取るために単一ライン105
にみな結線されている。更に、この直列/並列シフトレ
ジスタ102は、メモリ83のデータ出力バス87に接
続されている第3の並列入力(P2 )を含む。
【0033】図6を参照すると、直列/並列シフトレジ
スタ102の詳細な図が示されている。このレジスタ1
02は、32の遅延フリップフロップ106、107、
108及び、32の4入力マルチプレクサ109、11
0、111を含む。個々のマルチプレクサとそのそれぞ
れの遅延フリップフロップの組合せは、モトローラ社の
MCA10000(MCA3)セルライブラリのH94
5ラッチマクロと同様の「多重走査レジスタ」として知
られる。
【0034】図5を再び参照すれば、メモリ84とメモ
リ96は、直列/並列シフトレジスタ102と同様な第
2の直列/並列シフトレジスタ113を通じて、同様の
方法で相互接続されている。集積回路80に対する入力
及び出力リード数を減少させるため、この集積回路は、
図2、3に示されたデコーダ56とその機能において同
様なデコーダ114を含む。
【0035】クロッキング歪み(clocking s
kews)の臨界性を減少させるため、集積回路80は
集積回路に対する全ての制御及びアドレス入力のための
入力ラッチ115、116、117、118を含む。こ
れらのラッチは、各クロックサイクルの最初の半分の間
はそれらの入力を通過させ、そして各クロックサイクル
の第2の半分の間はそれらの入力状態を保持する。クロ
ックのサイクルの最後で、第1メモリ部分83、84の
データ出力は、遅延フリップフロップ90、94中にク
ロックされ、そしてデータが直列/並列レジスタ102
及び113内の遅延フリップフロップ中にクロックされ
る。クロックサイクルの第2の間はめったにデータを保
持しない入力ラッチと対照に、これらの遅延フリップフ
ロップは、クロックサイクルの最後にクロックエッジ上
にトリガされるエッジトリガ型デバイスである。
【0036】図7を参照すれば、第2キャッシュ内のメ
モリの部分(図5の95)の詳細な図が示されている。 メモリの部分は32の16×1ビットCMOSスタティ
ックRAM121、122、123、124を含む。C
MOSスタテッィクランダムアクセスメモリの構造が分
からない読者は、Hamid paerovi 等によ
って出願された、米国特許出願第07/508,082
号(1990年4月11日出願)を参照されたい。また
図7には、概して125で表示されたタイミングロジッ
クが示されており、このタイミングロジックは、アドレ
ス指定されるメモリ内の個々のメモリ素子のために、十
分な時間が経過した後にのみ、ライトイネイブル信号を
CMOSスタテッィクRAMメモリ121、122、1
23、124が受け取ることを確実にするものである。 このタイミングロジックには、ANDゲート126と信
号遅延127を含む。例えば、この信号遅延は、CMO
Sメモリ内のアドレスデコーダを通じて伝搬遅延を整合
するCMOSインバータの列である。
【0037】図8を参照すれば、図5のアドレスデコー
ダ114とECLメモリ83の詳細なブロック図が示さ
れている。デコーダ114は、5ビットのバイナリデコ
ーダを作るANDゲート131、132、133、13
4の第1レベルを含む。このアドレスデコーダ114は
更に、データが、アドレス指定されたキャッシュブロッ
クセグメントの全ての32のロケーションに同時に書き
込まれるよう、ORゲート135、136、137及び
、138の第2レベルを含む。デコーダ114は更に、
書き込み動作の自己タイミングのためにANDゲートの
第3レベルを含む。ゲート139、140、141、1
42のこの第3レベルは、第2の主張されていないクロ
ック位相の間にイネイブルされる。この主張されていな
いクロック位相は、最悪の場合の記憶セル書き込みタイ
ミングを許すように十分な持続時間でなければならない
。更に、この自己タイミングロジックは、書き込みイネ
イブルパルスがアドレスのデコード及びECLメモリ8
3内のアドレス指定されたメモリセルの選択にとって十
分な時間の後にのみ主張されることを確実にするようゲ
ート143と遅延144を含む。ECLメモリ83は、
32の256ビットメモリセル配列145、146、1
47、148を含む。ECLメモリ配列の構造がわから
なければ、1989年2月3日に出願されたGugli
elmi 等による米国特許第4,712,190 、
Grundmann 等による米国特許第07/306
,445を参照されたい。
【0038】図7の第2メモリの部分と、図8の第1メ
モリの部分との違いは、図7の第2メモリへの書き込み
が常に、全ての第2メモリ配列121、122、123
、124に対して発生するということである。代替形態
では、図7の第2メモリの部分に図8のデコーダ117
と同様のアドレスデコーダが与えられ、全ての第2メモ
リ配列への書き込みをイネイブルし、あるいは第2メモ
リ配列の所定のものへの書き込みをイネイブルする。
【0039】図9を参照すると、図5の集積回路を、相
補クロック信号の対により、あるいは単一クロック信号
によって、駆動することを可能とするクロック入力バッ
ファの図が示されている。この入力バッファは、NPN
トランジスタ172、173を有する微分増幅器、ロー
ドレジスタ174、175の対、及び電流シンク176
を含む。この電流は、ECLインバータと同様のもので
あり、入力リード177、178上で受信された入力信
号を有する。
【0040】バッファ171が、リード177、178
のいづれか1つのリード上の単一クロック入力信号によ
って駆動されるように、この入力バッファ171は更に
、クロック信号の高及び低レベル標準において値を有す
るバイアス電圧のソース179を含む。このバイアスソ
ース179は、それぞれレジスタ180及び181を通
じて、リード177及び178に接続されている。
【0041】図10を参照すると、図1の処理装置22
からのリクエストを供給するために図2、3のキャッシ
ュコントローラ28によって実行される制御列の流れ図
が示されている。キャッシュコントローラ28は、その
入力信号とその現在の状態との組合せ論理機能として次
の状態と出力信号を決定する逐次状態マシーンである。 図示するため、これらの状態と組合せ論理を流れ図の形
態で示し、より明白に階層キャッシュの動作を記述する
ようにした。
【0042】キャッシュコントローラ28は、段階18
1に示されているように、システムリセット信号に応答
し、最初の状態にエンターする。このリセット状態で、
キャッシュコントローラは、段階182において停止信
号を主張し、段階183でフラッシュ信号も主張する。 その後、段階184で、キャッシュコントローラは次の
サイクルを待つ。段階185で、停止信号が再び設定さ
れ、段階186で、キャッシュコントローラはフラッシ
ュを完了するに十分な付加的な複数サイクル待つ。これ
らの付加的なサイクルは、第2タグメモリ46の比較的
に遅い応答により必要とされる。
【0043】段階187において、新しいクロックサイ
クルの間にフラッシュ信号がクリアされ、段階188で
書き込み信号がクリアされる。段階189で、この停止
信号がクリアされ、そして段階190で、この選択信号
が1つに設定され、こうして直列/並列レジスタ(図2
、3の55)は、データプロセッサからいづれかのロン
グワードを受け取るであろう。このクロックサイクルに
おいて、階層キャッシュは、データプロセッサからの第
1リクエスト(あるいはフラッシュの後の第1リクエス
ト)に応答するであろう。この第1リクエストが「no
−op 」あるいはフラッシュである場合、それは単に
無視されるだけである。この第1リクエストが書き込み
あるいは読み出しリクエストである時は、第1タグメモ
リがこのサイクルの間にアドレス指定され、第2タグメ
モリのアドレス動作がこのサイクルを開始し、書き込み
データがこのサイクルの最後に直列/並列レジスタから
検索されるであろう。段階191でキャッシュコントロ
ーラは次のサイクルを待つ。
【0044】段階192で、キャッシュコントローラは
、前のデータ処理リクエストが読み出しあるいは書き込
みリクエストであったかどうかを調べる。もしそうでな
ければ、それはno−op あるいはフラッシュでなく
てはならない。この場合、段階193で、キャッシュコ
ントローラは書き込み信号をクリアし、第1タグ及び第
2データメモリ(それぞれ図2、3の42、41)間の
アドレスパイプライン内のなんらかの「バブル」(bu
bble) を除去する。このようになんらかのバブル
を除去することにより、継続中の読み出しリクエストを
現在のサイクルの間に完了することができる。その後段
階194で、キャッシュコントローラは、データ処理装
置からの現在のリクエストがフラッシュであるかどうか
を調べる。もしそうであれば、キャッシュコントローラ
のための制御シーケンスは段階183にリターンし、上
で述べたフラッシュ動作を実行する。もしそうでなけれ
ば、制御列は段階189に返る。
【0045】もし段階192でキャッシュコントローラ
が前のデータプロセッサリクエストが読み出しあるいは
書き込みリクエストであったことを発見した場合には、
段階195でそのキャッシュコントローラは図2、3の
レジスタ71からの第1ヒット信号(図2、3のHIT
P)を点検し、前のサイクル間に第1タグメモリ(図2
、3の42)にヒットが存在したがどうか判断する。 もしそうであれば、そのデータプロセッサを停止し、従
前の読み出しあるいは書き込みリクエストが完了され得
る前に第1キャッシュを回復する必要がある。このため
、キャッシュコントローラは段階196で書き込み信号
をセットし、段階197で停止信号をセットし、そして
階層キャッシュは、CPUからアドレスバス(図2、3
の32)上に主張された現在のリクエストのアドレスの
代わりに、停止レジスタ(図2、3の48)内に記憶さ
れているアドレスを用いるであろう。次の段階198で
は、所望のデータが第1キャッシュ内で見つかることを
確実にするために、図11を参照して以下に記述された
ように、キャッシュコントローラは、多数の第1回復サ
イクルを実行する。その後、段階199では、所望のデ
ータが存在し、また出力レジスタ(図2、3の51)内
で受け取られているので、この停止信号はクリアされ、
そしてデータプロセッサからのデータは、現在のサイク
ルの間に第1キャッシュに書き込まれることができる。 段階200でキャッシュコントローラは、データプロセ
ッサからの従前のリクエストが、リフィルの間に前に了
知されたメインメモリからの読み出しリクエストである
かどうかを調べ(図12の段階242)、この場合には
、制御列は段階194に返り、現在のリクエストがフラ
ッシュであるかを調べる。
【0046】段階201で、キャッシュコントローラは
、従前のリクエストが読み出しあるいは書き込みリクエ
ストであるかどうかを判断する。従前のリクエストが書
き込みリクエストである場合、この書き込み信号は段階
202でセットされ、ヒットが段階195で発見された
時は段階196〜199が迂回されるような状態を処理
する。その後、段階203で、このWEPW信号が主張
され、データプロセッサからのデータのロングワードが
直列/並列レジスタ55から第1キャッシュのデータメ
モリ41中に書き込まれる。
【0047】段階201で、キャッシュコントローラが
、従前のリクエストが読み出しリクエストであることを
発見した場合には、キャッシュコントローラは段階20
4において、書き込み信号がセットされていないかどう
かを調べる。これは、第1ヒットが段階195で発見さ
れ、段階196〜200が迂回されたような場合に役立
つ。もし書き込み信号がセットされていなければ、所望
の読み出しデータはすでに出力レジスタ(図2、3の5
2)内にある。もしそうでなければ、読み出しデータは
次のサイクルの間に出力レジスタ(図2、3の52)内
に現れ、そして段階206で、有効読み出しデータが次
のサイクルの間に了知される。例えば、段階205及び
206は、非同期セット及びリセット入力を有する遅延
型フリップフロップの目的で実行されることができる。 この場合、有効読み出しデータは、非同期セット入力を
使用して現在のサイクルの間に了知される。有効読み出
しデータは、現在のサイクルの間に遅延フリップフロッ
プの遅延入力上に論理1を主張することにより、次のサ
イクルの間に了知される。この遅延フリップフロップの
データ出力は、キャッシュコントローラのアックバス(
図2、3の35)上のアック信号のビットであろう。い
づれの場合であっても、キャッシュコントローラのため
の制御列は、段階194に続く。
【0048】図11を参照すると、キャッシュコントロ
ーラが図10の段階195において、第1キャッシュ内
のミスが発生したことを発見した場合の、第1キャッシ
ュを回復するための制御サイクルの流れ図が示されてい
る。言葉を変えて言えば、図11の流れ図は、図10の
ボックス198における段階を示すものである。図11
の第1段階211において、キャッシュコントローラは
、最後のサイクルの間に第1タグメモリ(図2、3の4
2)でアドレス指定されたキャッシュブロックが変形さ
れたかどうかを調べる。これを行うため、キャッシュコ
ントローラは、図2、3のレジスタ71からの変形信号
を観察する。もし変形された信号が主張された場合には
、キャッシュコントローラはまず初めにライトバック列
を実行し、そのアドレス指定されたキャッシュブロック
が所望のデータでリフィルされる前に、その変形された
データを第2キャッシュあるいはメインメモリ内にライ
トバックしなければならない。
【0049】ライトバックを実行するため、段階212
でSELは2にセットされ、直列/並列レジスタ(図2
、3の55)にその変形された内容を記録する。次の段
階213で、INADRは1にセットされ、第2キャッ
シュをアドレス指定するため変形されたキャッシュブロ
ックのアドレスを選択する。段階214で、キャッシュ
コントローラは、第2キャッシュがアクセスされるのに
十分な所定の複数サイクル待つ。次の段階215で、キ
ャッシュコントローラは、図2、3のレジスタ72から
の第2ヒット信号(HITS)を調べる。なぜなら、第
1キャッシュ内の変形信号が第2キャッシュからのリフ
ィル動作によってのみセットされるため、第2キャッシ
ュをアクセスする時はヒットが存在しているだろうから
である。したがって、もし第2キャッシュ内にヒットが
発生しなかった場合、段階216でそのキャッシュコン
トローラは、エラーを感知し、エラーコードをデータ処
理装置に返す。このエラーコードにより、例えば、デー
タプロセッサはメモリ故障を知覚し、現在のプログラム
の実行を終了させ、そしてキャッシュコトントローラを
リセットするのである。
【0050】第2ヒットが段階215で発見された場合
、キャッシュコントローラはその後、その変形されたデ
ータを第2キャッシュのデータメモリ(図2、3の45
)に書き込むことが出来る。このために、段階217で
、キャッシュコントローラはWESDを1にセットする
。段階218で、キャッシュコントローラは、変形され
たビットを第2キャッシュのタグメモリ(図2、3の4
5)中に書き込むために、MODSを1にセットする。 その後段階219で、キャッシュコントローラは、2、
3サイクル待ち、そしてその書き込み動作を終了する。 最後に、段階220で、キャッシュコントローラはWE
SDとMODSをクリアし、その書き込み動作を終了さ
せる。そして段階221で、キャッシュコントローラは
、INADRをクリアし、第1キャッシュをリフィルす
るため所望のデータのアドレスを用い、第2キャッシュ
をアドレス指定する。これでライトバック列は完了する
【0051】リフィル列は段階222で開始する。キャ
ッシュコントローラは、第2キャッシュデータを直列/
並列レジスタ(図2、3の55)中に転送するため、S
ELを  0にセットする。その後段階223で、キャ
ッシュコントローラは第2キャッシュをアクセスするた
めに複数サイクル待つ。次の段階214で、キャッシュ
コントローラは、第2キャッシュ内でヒットが発生した
かどうか調べる。もしヒットが発生してなければ、段階
225で、キャッシュコントローラはメインメモリデー
タを直列/並列レジスタ中に記録し、第1及び第2キャ
ッシュデータメモリ中にそれら直列/並列レジスタの内
容を書き込み、そして第1及び第2キャッシュそれら両
方のタグメモリ内の変形フラグをクリアするために、図
12を参照して以下に詳細に述べるような多数の第2キ
ャッシュメモリ回復サイクルを実行する。
【0052】第2キャッシュ内のヒットが段階224で
見つかった場合には、その後段階216で、キャッシュ
コントローラは、直列/並列レジスタ55をデータ停止
レジスタ(図2、3の49)内に保持されたなんらかの
書き込みデータでリフィルするため、SELを1にセッ
トする。その後段階217で、キャッシュコントローラ
は現在のサイクルの間にWEPDを主張し、直列/並列
レジスタの内容を第1データメモリ(図2、3の41)
に書き込み、そして第1タグメモリ(図2、3の42)
内の変形フラグをクリアする。次のサイクルを待った後
、段階228で、キャッシュコントローラは段階229
でWEPDをクリアし、そして図10の段階199に返
る。
【0053】図12を参照すれば、第2メモリを回復す
る段階の流れ図が示されている。これらの段階は、図1
1のボックス225に対応する。図12の段階231で
、キャッシュコントローラは、OUTADRをクリアし
、読み出しアドレスをメインメモリ内に転送する。段階
222で、キャッシュコントローラは、第2キャッシュ
ブロック内の変形フラグがセットされたか調べる。もし
セットされていなければ、段階223で、キャッシュコ
ントローラはリフィルリクエストをメインメモリに対し
て送信する。そうでなければ、段階234で、キャッシ
ュコントローラはリフィル及びライトバックリクエスト
をメインメモリに送信し、段階235で、次のサイクル
内にキャッシュコントローラはOUTADRを1にセッ
トし、その書き込みアドレスをメインメモリに転送する
【0054】次の段階216で、キャッシュコントロー
ラは、メインメモリが所望のリフィルデータを転送した
ことを示しているメインメモリからのアックを待つ。こ
れに応答して、段階217でキャッシュコントローラは
直列/並列レジスタ(図2、3の55)内の直列シフト
のためにSELを3にセットし、メインメモリと直列/
並列レジスタ間でデータを転送する。段階238で、キ
ャッシュコントローラはデータ転送を完了させるために
32クロックサイクル待つ。その後、段階239で、キ
ャッシュコントローラは制御信号をセットし、そのデー
タ及びタグを第1及び第2キャッシュメモリそれら両方
に書き込む。特に、キャッシュコントローラはWESD
を1にセットし、WESTを1にセットし、WEPDを
1にセットする。その後、段階240で、キャッシュコ
ントローラは次のサイクルを待つ。次のサイクルで、そ
のリフィルデータは第1メモリ41中に書き込まれ、そ
の工程で出力レジスタ52中に転送されるようになる。 それ故、段階241で、キャッシュコントローラはデー
タプロセッサからの従前のリクエストが読み出しリクエ
ストであるかどうかを調べる。もしそうならば、段階2
42で、キャッシュコントローラはデータプロセッサに
対し、所望のデータが利用可能であることを了知する。
【0055】第1メモリへの書き込みは完了したので、
段階243で、キャッシュコントローラはWEPDをク
リアする。しかしながら、第2キャッシュのリフィルに
は付加的な複数サイクルが費やされる。それ故、段階2
43でキャッシュコントローラは複数サイクル待つ。そ
の後、データを第2キャッシュに書き込むための最後の
サイクルの間に、段階245で、キャッシュコントロー
ラはSELを1にセットし、段階246で次のサイクル
を待つ。これは、直列/並列レジスタがデータプロセッ
サからのなんらかの書き込みデータで記憶されるであろ
うことを確実なものとし、こうして書き込みリクエスト
を次のサイクルの間で実行することが可能となる。最後
に段階217で、キャッシュコントローラはWESDを
クリアし、そして図10の段階199に返る。
【0056】図13には、タグメモリに対する変形と、
階層キャッシュを2方向セット結合にするための関連回
路が示されている。2方向セット結合は、各アドレスは
2つのキャッシュブロックに直接的にマップされること
を意味する。これは、第1キャッシュ(図1の24)と
第2キャッシュ(図1の25)それぞれに対して、1つ
ではなく、データ別々にアドレス指定可能な2つのタグ
メモリをデータメモリに関連して、与えることによって
成される。例えば図13には、データメモリ303と関
連するタグメモリ301及び302が示されている。デ
ータメモリ303は、図5の集積回路80を組み合わせ
ることによって形成された第1あるいは第2データメモ
リのどちらかである。しかしながら、個々のタグメモリ
は、データメモリ303としてアドレス指定可能なブロ
ック数の半分しか有していないため、このデータメモリ
は付加的なアドレス入力ライン304を有する。このア
ドレス入力ライン304はキャッシュコントローラ30
5からバンク選択信号(BANK)を受け取る。
【0057】メモリアクセスの間、キャッシュコントロ
ーラは、キャッシュメモリの個々の2つの「バンク」に
対するヒット信号を検査することにより、特定のアドレ
スに関連したデータを有するバンクを選択しなければな
らない。これらのタグメモリは、物理的に2つのバンク
に分割されている。なぜなら、それらを並列にアドレス
指定することが望ましいからである。このことは、デー
タメモリのアドレス指定にとってはあまり重要ではない
。なぜなら、データメモリのアドレス指定はタグメモリ
のアドレス動作とパイプラインで結ばれており、データ
メモリは所望のバンクが選択された後にアドレス指定さ
れ得るからである。
【0058】タグ301のためのヒット信号は、タグ比
較器306によって与えられ、そしてタグメモリ302
のためのヒット信号は、タグ比較器307によって与え
られる。これらのヒット信号は共にレジスタ308で受
け取られ、そしてキャッシュコントローラ305に送信
される。タグメモリ301及び302はまた、個々のキ
ャッシュブロックに関連したタグを受けるために、それ
ぞれレジスタ309及び310を有する。ライトバック
動作の間、ライトバックされる変形されたデータに関連
するタグがマルチプレクサ311によって選択され、第
2キャッシュやメインメモリに通じるアドレスバス31
2上に主張される。キャッシュがリフィルされたりある
いは変形されたデータを受け取ると、所定のバンクに対
するタグメモリだけが更新される。これは、バンク選択
信号(BANK)を用いて、インバータ313、AND
ゲート314、315、316、317を使用すること
により、書き込みイネイブル信号(WM、WE)をデコ
ードすることによって実行される。
【0059】特定のアドレスに直接マップされるキャッ
シュブロックの両方でミス発生した場合には、リフィル
を行うキャッシュブロックの1つを選択する必要がある
。このため、アドレス指定可能なメモリ318は、どの
キャッシュブロックが最後にリフィルされたかを覚える
。図13の2方向結合キャッシュに対するキャッシュコ
ントローラの付加的な段階列が図14の流れ図に示され
ている。第1段階321で、キャッシュコントローラは
所定のバンク内にヒットが存在するかどうかを調べる。 もしそうでなければ段階322において、キャッシュコ
ントローラは他のバンク内にヒットが存在しないかどう
かを調べる。もしそうならば、段階323で、キャッシ
ュコントローラはバンク選択信号を切換え、また書き込
みフラグを1にセットし、こうしてヒットが発生したバ
ンクを使用して、現在のサイクル内で読み出し及び書き
込みが実行されるであろう。もしタグメモリの両方にヒ
ットがなかった場合には、キャッシュブロックのうちの
1つはリフィルされなくてなならない。段階234で、
少なくとも最近リフィルされたキャッシュブロックを含
むバンクが選択され、そしてキャッシュリフィルサイク
ルが段階325で実行される。第1メモリのため、リフ
ィルサイクル325は例えば図10の段階196〜20
0を含む。
【0060】このような観点で、単一の集積回路内に2
つのランダムアクセスメモリレベルを含む集積回路キャ
ッシュメモリについて述べる。メモリのこれら2つのレ
ベルは、多数の並列ラインを有するデータバスによって
相互接続されているが、これらのデータバスはその全体
が集積回路内に含まれる。これにより、非常に極度に高
いヒット率、とても少ない待ち時間、とても高速なアク
セス時間、それに、多数の集積回路をできるだけデータ
プロセッサに近接させて配置することができる濃密なパ
ッケージングを提供される。この集積回路のより好まし
い実施例において、ランダムアクセスのこれら2つのレ
ベルは、書き込みバッファ、リフィルバッファ、ライト
バックバッファとして、あるいはまた、メインメモリへ
の、またはメインメモリからの、データのライトバック
とリフィルとの交換のための直列/並列シフトレジスタ
として、選択的に動作できるように直列/並列バッファ
によって相互接続されている。それ故、この集積回路は
、階層キャッシュのデータパスを構成するに十分機能的
な素子であり、キャッシュ構成及びデータプロセッサシ
ステムに幅広く適用できるものである。
【図面の簡単な説明】
【図1】図1は、本願発明の階層キャシュを用いている
データ処理システムのブロック図である。
【図2】図2は、図1の階層キャッシュのブロック図で
ある。
【図3】図3は、図1の階層キャッシュのブロック図で
ある。
【図4】図4は、階層キャッシュを用いたタグメモリの
ブロック図である。
【図5】図5は、第1キャッシュメモリ及び、第2キャ
ッシュメモリの両方の部分を含む本願発明による集積回
路のブロック図である。
【図6】図6は、図5の集積回路内の第1キャッシュメ
モリを第2キャッシュメモリに相互接続するために用い
られる直列/並列シフトレジスタの図である。
【図7】図7は、図5の集積回路内の第2キャッシュメ
モリの部分の図である。
【図8】図8は、図5の集積回路内で使用されるアドレ
スデコーダと第2キャッシュメモリ部分の図である。
【図9】図9は、図5の集積回路をクロックするために
用いられる単一エンド型あるいは二重コンプリメンタリ
クロック信号の両方に可能である微分増幅器の形態をし
たクロック入力バッファの図である。
【図10】図10は、図1の階層キャッシュのための制
御論理の流れ図である。
【図11】図11は、第1ミスが発生した時に第1キャ
ッシュを回復させるために用いられる制御論理の流れ図
である。
【図12】図12は、第2ミスが発生した時に第2キャ
ッシュを回復させるために用いられる制御論理の流れ図
である。
【図13】図13は、図5の集積回路が、どのようにし
て両方向セット結合である階層キャッシュメモリ内で使
用されるかを示している図である。
【図14】図14は、図13の両方向セット結合に使用
される付加的な制御論理の流れ図である。
【符号の説明】
20  データ処理システム 21  階層キャッシュ 22  データプロセッサ 23  メインメモリ 24  第1キャッシュ 25  第2キャッシュ 26  データプロセッサポート 27  メインメモリポート 29  オンチップキャッシュ 30  キャッシュコントローラ 31  リクエストバス 32  アドレスバス 35  アックバス 33  一方向データバス 34  一方向データバス 36  リクエストバス 40  アックバス 41  データメモリ 42  メモリ 43  比較器 45  メモリ 46  メモリ 47  タグ比較器 48  停止レジスタ 49  停止レジスタ 50  マルチプレクサ 51  マルチプレクサ 58  バイパスマルチプレクサ 55  直列/並列レジスタ 56  アドレスデコーダ 61  スタテッィクRAM 62  スタテッィクRAM 63  スタテッィクRAM 64  スタテッィクRAM 66  ORゲート 67  ANDゲート 71  レジスタ 72  レジスタ 75  レジスタ 76  マルチプレクサ 81  第1キャッシュメモリ部分 82  第2キャッシュメモリの部分 83  ECLメモリ 84  ECLメモリ 85  アドレスバス 89  マルチプレクサ 91  32ビットデータ入力バス 92  32ビット出力バス 95  メモリ 96  メモリ 97  共通アドレスバス 98  32ビットデータ入力バス 99  32ビットデータ出力バス 102  直列/並列シフトレジスタ 103  直列入力ライン 104  直列データ出力ライン 109  4入力マルチプレクサ 110  4入力マルチプレクサ 111  4入力マルチプレクサ 113  直列/並列シフトレジスタ 114  デコーダ 115  入力ラッチ 116  入力ラッチ 117  入力ラッチ 118  入力ラッチ 121  CMOSスタティックRAM122  CM
OSスタティックRAM123  CMOSスタティッ
クRAM124  CMOSスタティックRAM131
  ANDゲート 132  ANDゲート 133  ANDゲート 134  ANDゲート 135  ORゲート 136  ORゲート 137  ORゲート 138  ORゲート 139  ゲート 140  ゲート 145  ビットメモリセル配列 146  ビットメモリセル配列 147  ビットメモリセル配列 148  ビットメモリセル配列 171  バッファ 172  NPNトランジスタ 173  NPNトランジスタ 174  ロードレジスタ 175  ロードレジスタ 177  入力リード 178  入力リード 179  バイアスソース 180  レジスタ 181  レジスタ

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】  階層キャッシュメモリにおいて、高速
    第1メモリメモリと、前記第1キャッシュメモリよりも
    より大きな記憶容量である低速第2キャッシュメモリと
    、データプロッサポートと、メインメモリポートと、前
    記第1キャッシュメモリを前記データプロセッサポート
    へ、前記第2キャッシュメモリを前記第1キャッシュメ
    モリへ、そして前記メインメモリポートを前記第2キャ
    ッシュメモリへ相互接続し、第2キャッシュメモリから
    第1キャッシュメモリへの、及び、メインメモリポート
    から第2キャッシュメモリへのデータパスを選択するデ
    ータパス選択手段を含むデータパス回路と、前記キャッ
    シュメモリ及び、第1キャッシュメモリに要求されたデ
    ータが存在しない場合に、要求されたデータを第2キャ
    ッシュメモリから第1キャッシュメモリへ転送し、第2
    キャッシュメモリに要求されたデータが存在しない場合
    に、要求されたデータをメインメモリから第2キャッシ
    ュメモリへ転送する前記データパス選択手段とに接続さ
    れた制御手段とを備え、この階層キャッシュメモリは複
    数の集積回路を含み、個々の前記集積回路は、第1キャ
    ッシュメモリの部分、第1キャッシュメモリの前記部分
    よりもより大きな記憶容量を持つ第2キャッシュメモリ
    の部分、第1及び第2キャッシュメモリの前記部分を相
    互接続するデータパス回路の部分、及び第1キャッシュ
    メモリの前記部分から第2キャッシュメモリの前記部分
    への、メインメモリポートから前記第2キャッシュメモ
    リの部分へのデータパスを選択するデータパス選択手段
    の部分とを含むことを特徴とするメモリ。
  2. 【請求項2】請求項1記載の階層キャッシュメモリにお
    いて、前記データパス選択手段は更に、データプロセッ
    サポートから前記第1キャッシュメモリへの、前記第1
    キャッシュメモリから前記第2キャッシュメモリへの及
    び、前記第2キャッシュメモリから前記メインメモリポ
    ートへのデータパスを選択する手段を含み、前記制御手
    段は更に、第1キャッシュメモリ内の前記データロケー
    ションから第2キャッシュメモリへ変形されたデータを
    転送することによって第1キャッシュメモリ内のデータ
    ロケーションが必要とされた場合に、及び第2キャッシ
    ュメモリ内の前記データロケーションから前記メインメ
    モリへ変形されたデータを転送することによって第2キ
    ャッシュメモリ内のデータロケーションが必要とされた
    場合に、ライトバック動作を実行する手段を含み、個々
    の前記集積回路内のデータ選択手段の前記部分は、前記
    データプロセッサポートから第1キャッシュメモリの前
    記部分への、第1キャッシュメモリの前記部分から前記
    第2キャッシュメモリへの、及び第2キャッシュメモリ
    の前記部分から前記メインメモリポートへのデータパス
    を選択する前記手段の部分を含むメモリ。
  3. 【請求項3】  請求項2記載の階層キャッシュメモリ
    において、前記データパス選択手段は、前記第2キャッ
    シュメモリのデータ出力ラインにに接続された第1並列
    データ入力、前記データプロセッサポートに接続された
    第2並列データ入力、前記第1キャッシュメモリのデー
    タ出力ラインに接続された第3並列データ入力、前記第
    1キャッシュメモリのデータ入力ラインと前記第2キャ
    ッシュメモリのデータ入力ラインに並列に接続された並
    列データ出力、前記メインメモリに接続された直列デー
    タ入力及び、前記メインメモリポートに接続された直列
    データ出力を有する直列/並列シフトレジスタを含む階
    層キャッシュメモリ。
  4. 【請求項4】  請求項2記載の階層キャッシュメモリ
    において、前記データパス回路は更に、前記データプロ
    セッサポートに接続されたデータ出力ライン、前記第1
    キャッシュメモリのデータ出力ラインに接続されたより
    多数のデータ入力ライン、及びアドレスラインに接続さ
    れた選択制御入力を有するマルチプレクサを含むメモリ
  5. 【請求項5】  請求項4記載の階層キャッシュメモリ
    において更に、前記アドレスラインに接続された入力、
    及び前記第1キャッシュメモリの書き込みイネイブル入
    力に接続された出力とを有するデコーダを備えるメモリ
  6. 【請求項6】  請求項1記載の階層キャッシュメモリ
    において更に、第1メモリのアドレス入力を第2メモリ
    の個々のアドレス入力に並列に接続するアドレスライン
    を有するアドレスバスを備えるメモリ。
  7. 【請求項7】  請求項1記載の階層キャッシュメモリ
    において更に、前記第1キャッシュメモリは、ECLメ
    モリ素子を備え、前記第2キャッシュメモリはMOS−
    FET素子を備えるメモリ。
  8. 【請求項8】  請求項7記載の階層キャッシュメモリ
    において更に、前記MOS−FETメモリ素子はスタテ
    ッィクCMOSメモリ素子であるメモリ。
  9. 【請求項9】  集積回路において、高速ランダムアク
    セス第1メモリと、前記第1メモリより大きな記憶容量
    の低速ランダムアクセス第2メモリと、第1データポー
    トと、第2データポートと、前記第1メモリを前記第1
    データポートへ、前記第2メモリを前記第1メモリへ、
    及び前記第2データポートを前記第2メモリへ相互接続
    し、第2メモリから第1メモリへデータを転送するため
    の前記第2メモリから前記第1メモリへの、及び第2デ
    ータポートから第2メモリへデータを転送するための第
    2データポートから第2メモリへのデータパスを選択す
    るデータパス選択手段を含むデータパス回路とを含むこ
    とを特徴とする集積回路。
  10. 【請求項10】  請求項9記載の集積回路において、
    前記データパス選択手段は更に、前記第1データポート
    から第1メモリへデータを転送するための前記第1デー
    タポートから前記第1メモリへの、前記第1メモリから
    前記第2メモリへデータを転送するための前記第1メモ
    リから前記第2メモリへの、及び前記第2メモリから前
    記第2データポートへデータを転送するための前記第2
    メモリから前記第2データポートへのデータパスを選択
    する手段を含む回路。
  11. 【請求項11】  請求項10記載の集積回路において
    、前記データパス選択回路は、前記第2メモリのデータ
    出力ラインに接続された第1並列データ入力、前記デー
    タプロセッサポートに接続された第2並列データ入力、
    前記第2メモリのデータ出力ラインに接続された第3並
    列データ入力、前記第1メモリのデータ入力ラインと前
    記第2メモリのデータ入力ラインに並列に接続された並
    列データ出力、前記第2データポートに接続された直列
    データ入力及び、前記第2データポートに接続された直
    列データ出力を有する直列/並シフトレジスタを含む集
    積回路。
  12. 【請求項12】  請求項11記載の集積回路において
    、更に、前記データパス回路は更に、前記第1データポ
    ートに接続されたデータ出力ラインを有するマルチプレ
    クサ、前記第1メモリの出力ラインに接続されたより多
    数のデータ入力ライン及び、アドレスラインに接続され
    た選択制御入力とを含む集積回路。
  13. 【請求項13】  請求項12記載の集積回路において
    、更に、前記アドレスラインに接続された入力を有する
    デコーダ及び、前記第1メモリの書き込みイネイブル入
    力に接続された出力とを備える集積回路。
  14. 【請求項14】  請求項9記載の集積回路において、
    更に、第1メモリのアドレス入力を個々の第2メモリの
    アドレス入力に並列に接続するアドレスラインを有する
    アドレスバスを備える集積回路。
  15. 【請求項15】  請求項9記載の集積回路において、
    更に、アドレス及び制御信号のための入力リードと、ク
    ロックラインに並列に接続されたクロック入力、前記入
    力リードに接続されたデータ入力及び、アドレス及び前
    記第1及び第2メモリ及び前記選択手段に接続されたデ
    ータ出力を有する通過/保持ラッチとを備え、前記デー
    タパス回路は、前記第1メモリのデータ出力に接続され
    たデータ入力、前記第1データポートに接続されたデー
    タ出力及び、前記通過/保持ラッチのクロック入力に並
    列に前記クロックラインと接続されたクロック入力を有
    し、そうして前記ラッチは主張されたクロック状態の間
    前記アドレス及び制御信号を保持し、前記エッジトリガ
    型フリップフロップはクロック転送の間に前記主張され
    たクロック状態から主張されないクロック状態に状態を
    変化させる少なくとも1つのエッジトリガ型フリップフ
    ロップを含む集積回路。
  16. 【請求項16】  請求項9記載の集積回路において、
    更に、前記データパス回路は、クロック信号と同期して
    データを転送する手段を含み、前記集積回路は更に、前
    記クロック信号を与える出力を有し、また2つの個々の
    入力リードに接続された微分入力と、少なくとも前記入
    力リードの1つに接続されたバイアス電圧源をも有する
    クロック入力バッファをも備え、そうして相補クロッキ
    ング信号の対あるいは、単一クロッキング信号のいづれ
    かを受け入れ、データを転送するための前記手段を同期
    するクロック入力リードを与える集積回路。
  17. 【請求項17】  請求項9記載の集積回路において、
    前記第1メモリはECLメモリ素子を含み、前記第2メ
    モリはCMOSメモリ素子を含む集積回路。
  18. 【請求項18】  集積回路において、複数のアドレス
    入力、複数のデータ入力、複数のデータ出力及び、複数
    の書き込みイネイブル入力を有する高速ランダムアクセ
    ス第1メモリと、複数のアドレス入力、複数のデータ入
    力及び、複数のデータ出力を有する前記第1メモリより
    もより大きな記憶容量の低速ランダムアクセス第2メモ
    リと、少なくとも1つのデータ入力と少なくとも1つの
    データ出力ラインを含む第1データポートと、少なくと
    も1つのデータ入力ラインと少なくとも1つのデータ出
    力ラインとを含む第2データポートと、前記第1メモリ
    のアドレス入力を前記第2メモリの前記アドレス入力の
    1つ1つに並列に接続するアドレスラインと、選択制御
    回路、前記第1メモリのデータ出力に接続されたデータ
    入力及び、前記第1データポートの前記データ出力ライ
    ンに接続された少なくとも1つのデータ出力を有するマ
    ルチプレクサと、前記マルチプレクサの選択制御入力と
    並列に接続された入力と、前記第2メモリの前記書き込
    み入力の1つ1つに接続された出力を有するデコーダと
    、前記第1メモリのデータ入力と前記第2メモリのデー
    タ入力に並列に接続された並列データ出力、前記第2メ
    モリのデータ出力に接続された並列データ入力、前記第
    1データポートの前記データ入力ラインに接続された第
    2並列データ入力、前記第2メモリのデータ出力に接続
    された第3並列データ入力、前記第2データポートのデ
    ータ入力ラインに接続された直列データ入力及び、前記
    第2データポートのデータ出力ラインに接続された直列
    データ出力を有する直列/並列シフトレジスタを備える
    ことを特徴とする集積回路。
  19. 【請求項19】  請求項18記載の集積回路において
    、更に、アドレス及び制御信号のための入力リードと、
    クロックラインに並列に接続されたクロック入力、前記
    入力リードの1つ1つに接続されたデータ入力、及び前
    記第1及び第2メモリのアドレス及び制御入力及び前記
    選択手段に接続されたデータ出力と、前記マルチプレク
    サのデータ出力に接続されたデータ入力、前記第1デー
    タポートに接続されたデータ出力及び、前記クロックラ
    インに前記通過/保持ラッチのクロック入力と並列に接
    続されたクロック入力とを有する少なくとも1つのエッ
    ジトリガ型フリップフロップと、前記クロックラインに
    接続された出力を有し、また2つの個々の入力リードに
    接続された微分入力と、前記入力リードの少なくとも1
    つに接続されたバイアス電圧源をも有するクロック入力
    バッファを備えることを特徴とする集積回路。
  20. 【請求項20】  請求項18記載の集積回路において
    、前記第1メモリは実質的にECL論理素子からなり、
    前記第2メモリは実質的にCMOS論理素子からなる集
    積回路。
JP3166782A 1990-10-05 1991-07-08 階層集積回路キャッシュメモリ Expired - Lifetime JP2505661B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US59376390A 1990-10-05 1990-10-05
US593763 1990-10-05

Publications (2)

Publication Number Publication Date
JPH04230551A true JPH04230551A (ja) 1992-08-19
JP2505661B2 JP2505661B2 (ja) 1996-06-12

Family

ID=24376065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3166782A Expired - Lifetime JP2505661B2 (ja) 1990-10-05 1991-07-08 階層集積回路キャッシュメモリ

Country Status (6)

Country Link
US (1) US5285323A (ja)
JP (1) JP2505661B2 (ja)
CA (1) CA2043493C (ja)
DE (1) DE4132833C2 (ja)
FR (1) FR2667706B1 (ja)
GB (1) GB2248952B (ja)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307356A (en) * 1990-04-16 1994-04-26 International Business Machines Corporation Interlocked on-chip ECC system
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5813030A (en) * 1991-12-31 1998-09-22 Compaq Computer Corp. Cache memory system with simultaneous access of cache and main memories
GB2264577B (en) * 1992-02-27 1995-06-14 Hewlett Packard Co Cache memory system
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
JPH05324468A (ja) * 1992-05-21 1993-12-07 Fujitsu Ltd 階層化キャッシュメモリ
US5809531A (en) * 1992-09-21 1998-09-15 Intel Corporation Computer system for executing programs using an internal cache without accessing external RAM
US6046753A (en) * 1992-09-25 2000-04-04 Quantel Limited Electronic image processing system for modifying initial image data
US5568442A (en) * 1993-05-17 1996-10-22 Silicon Graphics, Inc. RISC processor having improved instruction fetching capability and utilizing address bit predecoding for a segmented cache memory
US5870574A (en) * 1993-04-12 1999-02-09 Silicon Graphics, Inc. System and method for fetching multiple groups of instructions from an instruction cache in a RISC processor system for execution during separate cycles
US5689679A (en) * 1993-04-28 1997-11-18 Digital Equipment Corporation Memory system and method for selective multi-level caching using a cache level code
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
JPH07129456A (ja) * 1993-10-28 1995-05-19 Toshiba Corp コンピュータシステム
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
EP0676690B1 (en) * 1994-03-09 2003-05-14 Sun Microsystems, Inc. Delayed write of store instruction in processor device
US5604889A (en) * 1994-06-15 1997-02-18 Texas Instruments Incorporated Memory management system for checkpointed logic simulator with increased locality of data
US5577227A (en) * 1994-08-04 1996-11-19 Finnell; James S. Method for decreasing penalty resulting from a cache miss in multi-level cache system
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
GB2293668B (en) * 1994-09-30 1999-09-29 Advanced Risc Mach Ltd Accessing data memories
US5694614A (en) * 1995-02-15 1997-12-02 Ast Research, Inc. Minimum latency bus interface circuit with reduced I/O pin count through multi-mode operation
US5617347A (en) * 1995-03-17 1997-04-01 Fujitsu Limited Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure
EP0747859B1 (en) * 1995-06-06 2005-08-17 Hewlett-Packard Company, A Delaware Corporation Interrupt scheme for updating a local memory
JPH0916470A (ja) 1995-07-03 1997-01-17 Mitsubishi Electric Corp 半導体記憶装置
US5835941A (en) * 1995-11-17 1998-11-10 Micron Technology Inc. Internally cached static random access memory architecture
US5898828A (en) * 1995-12-29 1999-04-27 Emc Corporation Reduction of power used by transceivers in a data transmission loop
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US6021467A (en) * 1996-09-12 2000-02-01 International Business Machines Corporation Apparatus and method for processing multiple cache misses to a single cache line
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
GB2339369B (en) * 1998-07-09 2003-06-18 Advanced Risc Mach Ltd Apparatus and method for controlling timing of transfer requests within a data processing apparatus
US6519682B2 (en) * 1998-12-04 2003-02-11 Stmicroelectronics, Inc. Pipelined non-blocking level two cache system with inherent transaction collision-avoidance
US6415362B1 (en) * 1999-04-29 2002-07-02 International Business Machines Corporation Method and system for write-through stores of varying sizes
US6687863B1 (en) * 1999-07-29 2004-02-03 Matsushita Electric Industrial Co., Ltd. Integrated circuit internal signal monitoring apparatus
GB2401967B (en) * 1999-12-30 2005-01-05 Intel Corp Dual cache system
US6591332B1 (en) * 2000-04-28 2003-07-08 Hewlett-Packard Development Company, L.P. Apparatus and method for tracking flushes of cache entries in a data processing system
US6711043B2 (en) 2000-08-14 2004-03-23 Matrix Semiconductor, Inc. Three-dimensional memory cache system
US6765813B2 (en) 2000-08-14 2004-07-20 Matrix Semiconductor, Inc. Integrated systems using vertically-stacked three-dimensional memory cells
US6768661B2 (en) * 2002-06-27 2004-07-27 Matrix Semiconductor, Inc. Multiple-mode memory and method for forming same
EP1627335A1 (en) * 2003-03-07 2006-02-22 Nokia Corporation A method and a device for frequency counting
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8711155B2 (en) * 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US7724263B2 (en) * 2004-05-14 2010-05-25 Nvidia Corporation System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories
US7868902B1 (en) * 2004-05-14 2011-01-11 Nvidia Corporation System and method for pixel data row forwarding in a 3-D graphics pipeline
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US8736620B2 (en) * 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US7079156B1 (en) * 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
JP4451717B2 (ja) * 2004-05-31 2010-04-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
EP1803083B1 (en) * 2004-10-15 2012-02-29 Nxp B.V. Method of operating a rfid system
KR100798008B1 (ko) * 2005-09-07 2008-01-24 노키아 코포레이션 빈도수 카운팅을 위한 방법 및 장치
US7539819B1 (en) * 2005-10-31 2009-05-26 Sun Microsystems, Inc. Cache operations with hierarchy control
US7917685B2 (en) * 2006-05-04 2011-03-29 Micron Technology, Inc. Method for reading a multilevel cell in a non-volatile memory device
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US9256514B2 (en) 2009-02-19 2016-02-09 Nvidia Corporation Debugging and perfomance analysis of applications
US8885422B2 (en) 2009-06-12 2014-11-11 Hewlett-Packard Development Company, L.P. Hierarchical on-chip memory
US8645589B2 (en) 2009-08-03 2014-02-04 National Instruments Corporation Methods for data acquisition systems in real time applications
GB2484458A (en) 2010-10-04 2012-04-18 Thorn Security Commissioning detector units of an alarm system by means of a remote infrared based communication tool
US20130083047A1 (en) * 2011-09-29 2013-04-04 Prashant Shamarao System and method for buffering a video signal
CN103186608B (zh) * 2011-12-30 2017-08-08 北京谊安医疗系统股份有限公司 一种队列序列化式处理数据的方法和装置
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9477575B2 (en) 2013-06-12 2016-10-25 Nvidia Corporation Method and system for implementing a multi-threaded API stream replay
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0134822B1 (de) * 1983-07-27 1988-07-20 Ibm Deutschland Gmbh Digitalspeicher
DE3584318D1 (de) * 1984-06-29 1991-11-14 Ibm Hochgeschwindigkeitspufferspeicheranordnung fuer schnelle datenuebertragung.
US4712190A (en) * 1985-01-25 1987-12-08 Digital Equipment Corporation Self-timed random access memory chip
US4961153A (en) * 1987-08-18 1990-10-02 Hewlett Packard Company Graphics frame buffer with strip Z buffering and programmable Z buffer location
US5029105A (en) * 1987-08-18 1991-07-02 Hewlett-Packard Programmable pipeline for formatting RGB pixel data into fields of selected size
US5157776A (en) * 1987-12-30 1992-10-20 Zenith Data Systems Corporation High speed memory for microcomputer systems
GB8805908D0 (en) * 1988-02-12 1988-04-13 Int Computers Ltd Data memory system
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JPH01217530A (ja) * 1988-02-26 1989-08-31 Hitachi Ltd キヤツシユメモリ
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
US5058051A (en) * 1988-07-29 1991-10-15 Texas Medical Instruments, Inc. Address register processor system
US4992961A (en) * 1988-12-01 1991-02-12 Hewlett-Packard Company Method and apparatus for increasing image generation speed on raster displays
US5107462A (en) * 1989-02-03 1992-04-21 Digital Equipment Corporation Self timed register file having bit storage cells with emitter-coupled output selectors for common bits sharing a common pull-up resistor and a common current sink
DE4005319C2 (de) * 1989-02-22 1994-06-16 Siemens Nixdorf Inf Syst Verfahren und Anordnung zur Aufrechterhaltung der Datenkonsistenz in einem Multiprozessorsystem mit privaten Cachespeichern
US5151997A (en) * 1989-08-10 1992-09-29 Apple Computer, Inc. Computer with adaptable video circuitry

Also Published As

Publication number Publication date
GB2248952A (en) 1992-04-22
DE4132833C2 (de) 1997-12-18
DE4132833A1 (de) 1992-04-09
FR2667706B1 (fr) 1996-12-06
US5285323A (en) 1994-02-08
GB2248952B (en) 1994-08-10
CA2043493C (en) 1997-04-01
GB9113583D0 (en) 1991-08-14
CA2043493A1 (en) 1992-04-06
JP2505661B2 (ja) 1996-06-12
FR2667706A1 (fr) 1992-04-10

Similar Documents

Publication Publication Date Title
JP2505661B2 (ja) 階層集積回路キャッシュメモリ
US5930523A (en) Microcomputer having multiple bus structure coupling CPU to other processing elements
EP0468786B1 (en) Processor which performs memory access in parallel with cache access and method employed thereby
US5559986A (en) Interleaved cache for multiple accesses per clock cycle in a microprocessor
JP2775549B2 (ja) 連想メモリセルおよび連想メモリ回路
EP0444601B1 (en) Data processor with interleaved DRAM memory
US5561783A (en) Dynamic cache coherency method and apparatus using both write-back and write-through operations
US6151658A (en) Write-buffer FIFO architecture with random access snooping capability
JP2002532779A (ja) キューに基づくメモリコントローラ
CA2142799A1 (en) Integrated level two cache and memory controller with multiple data ports
JPH01251247A (ja) キヤツシユメモリサブシステム
JP2001222885A (ja) 半導体集積回路
US6519689B2 (en) Method and system for processing pipelined memory commands
TWI618060B (zh) Semiconductor device
US6381672B1 (en) Speculative opening of a new page when approaching page boundary during read/write of isochronous streams
TWI235916B (en) Multilevel cache structure and method using multiple issue algorithm with over subscription avoidance for high bandwidth cache pipeline
AU612814B2 (en) Data processing system
JP2003256275A (ja) バンク競合決定
JP2716350B2 (ja) 電子データ記憶システム
US6032229A (en) Semiconductor memory device and information processor using the same
JP2001256109A (ja) 統合キャッシュポートの制御方法および装置
US6701398B1 (en) Global bus synchronous transaction acknowledge with nonresponse detection
KR20030010823A (ko) 멀티웨이 세트 연관 구조의 캐쉬 메모리 및 데이터 판독방법
JP2001148194A (ja) 半導体記憶装置及びデータ処理装置
JP3822687B2 (ja) データ処理システム