JPH0644138A - キャッシュ・メモリを利用したデータ処理システム - Google Patents
キャッシュ・メモリを利用したデータ処理システムInfo
- Publication number
- JPH0644138A JPH0644138A JP5120415A JP12041593A JPH0644138A JP H0644138 A JPH0644138 A JP H0644138A JP 5120415 A JP5120415 A JP 5120415A JP 12041593 A JP12041593 A JP 12041593A JP H0644138 A JPH0644138 A JP H0644138A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- address
- array
- data
- bus
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
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)【要約】 (修正有)
【目的】 システムの動作を改良し、高速化する。
【構成】 キャッシング装置には、命令及びデータのた
めの独立したキャッシュ、及び単一のアドレス変換バッ
ファ(TLB)が含まれている。各クロック・サイクル
時に、命令キャッシュとデータ・キャッシュの両方から
の検索を実施することが可能であり、一方は、クロック
・サイクルの立ち上がり区間に、一方は、立ち下がり区
間に行われる。TLBは、クロック・サイクル毎に、2
つのアドレスを変換することができる。TLBは、タグ
・アレイのアクセスよりも速く、3つのコンポーネント
の全てに、仮想アドレスを同時に供給し、クロック・サ
イクルの1つの位相において、検索を行うことが可能で
ある。命令検索の実施中に、データ・キャッシュについ
て、スヌープ同報通信のスヌープを行うことが可能であ
り、この逆も可能である。
めの独立したキャッシュ、及び単一のアドレス変換バッ
ファ(TLB)が含まれている。各クロック・サイクル
時に、命令キャッシュとデータ・キャッシュの両方から
の検索を実施することが可能であり、一方は、クロック
・サイクルの立ち上がり区間に、一方は、立ち下がり区
間に行われる。TLBは、クロック・サイクル毎に、2
つのアドレスを変換することができる。TLBは、タグ
・アレイのアクセスよりも速く、3つのコンポーネント
の全てに、仮想アドレスを同時に供給し、クロック・サ
イクルの1つの位相において、検索を行うことが可能で
ある。命令検索の実施中に、データ・キャッシュについ
て、スヌープ同報通信のスヌープを行うことが可能であ
り、この逆も可能である。
Description
【0001】
【産業上の利用分野】本発明は、キャッシュ・メモリを
利用したデータ処理システムに関するものであり、とり
わけ、クロック・サイクル毎に複数の命令を実行可能
な、マルチプロセッサをベースにしたシステムに関する
ものである。こうしたシステムに関するキャッシュ編成
が提案される。
利用したデータ処理システムに関するものであり、とり
わけ、クロック・サイクル毎に複数の命令を実行可能
な、マルチプロセッサをベースにしたシステムに関する
ものである。こうしたシステムに関するキャッシュ編成
が提案される。
【0002】
【従来の技術】コンピュータ・システムの動作全体を高
速化するため、コンピュータ・システムにはキャッシュ
が利用される。キャッシュの理論は、より大容量の低速
の主メモリと共に、小容量の超高速メモリをキャッシュ
として利用して高速化するということである。キャッシ
ュ・メモリは、通常、単一または複数のデータ処理装置
と主メモリの間で動作可能に配置される。プログラムが
必要とする際に、データ及び命令が主メモリから呼び出
されて、キャッシュ・メモリに置かれると、そのシステ
ムは、まずキャッシュ・メモリを調べて、必要な情報が
キャッシュにおいて得られるか否かを確かめる。この結
果、通常は、コンピュータ・システムがキャッシュ・メ
モリに所望の情報を見つけ、メモリがほとんど高速のキ
ャッシュ・メモリから構成されているかのような速度で
動作する。これは、統計的一時的配置、すなわちプロセ
スの特定の部分の利用したばかりの情報は引き続き利用
される可能性があるということの結果である。
速化するため、コンピュータ・システムにはキャッシュ
が利用される。キャッシュの理論は、より大容量の低速
の主メモリと共に、小容量の超高速メモリをキャッシュ
として利用して高速化するということである。キャッシ
ュ・メモリは、通常、単一または複数のデータ処理装置
と主メモリの間で動作可能に配置される。プログラムが
必要とする際に、データ及び命令が主メモリから呼び出
されて、キャッシュ・メモリに置かれると、そのシステ
ムは、まずキャッシュ・メモリを調べて、必要な情報が
キャッシュにおいて得られるか否かを確かめる。この結
果、通常は、コンピュータ・システムがキャッシュ・メ
モリに所望の情報を見つけ、メモリがほとんど高速のキ
ャッシュ・メモリから構成されているかのような速度で
動作する。これは、統計的一時的配置、すなわちプロセ
スの特定の部分の利用したばかりの情報は引き続き利用
される可能性があるということの結果である。
【0003】キャッシュ・メモリの利用効率を高めるた
め、数多くのキャッシング装置が開発された。1つのア
プローチは、各データ処理装置毎に、2つのキャッシ
ュ、すなわち、最近利用された命令を記憶するためのキ
ャッシュ及び最近アクセスされたデータを記憶するため
のキャッシュを利用することである。キャッシュに記憶
されたデータに関連したタグ情報を記憶するため、さら
に小さいメモリ・アレイをキャッシュ・メモリと連係さ
せることが可能である。タグ・アレイに記憶されるアド
レスは、タグ・アレイに連係してキャッシュに保持され
たデータまたは命令に対応するデータを備える主メモリ
からのアドレスである。特定のアドレスの情報に対する
検索が要求されると、そのアドレスとタグ・アレイのア
ドレスの比較が行われる。そのアドレスが、タグ・アレ
イのアドレスと一致すると、キャッシュ・メモリからそ
の情報にアクセスし、一致しなければ、情報を求めて主
メモリにアクセスする。その情報はデータ処理装置によ
る利用のためにキャッシュ・メモリに送り込まれる。こ
うした装置については、コンピュータ・システムにおい
てページのタグ付けを行うための装置を開示した、本発
明の譲受人に譲渡された米国特許第4、969、122
号に開示がある。
め、数多くのキャッシング装置が開発された。1つのア
プローチは、各データ処理装置毎に、2つのキャッシ
ュ、すなわち、最近利用された命令を記憶するためのキ
ャッシュ及び最近アクセスされたデータを記憶するため
のキャッシュを利用することである。キャッシュに記憶
されたデータに関連したタグ情報を記憶するため、さら
に小さいメモリ・アレイをキャッシュ・メモリと連係さ
せることが可能である。タグ・アレイに記憶されるアド
レスは、タグ・アレイに連係してキャッシュに保持され
たデータまたは命令に対応するデータを備える主メモリ
からのアドレスである。特定のアドレスの情報に対する
検索が要求されると、そのアドレスとタグ・アレイのア
ドレスの比較が行われる。そのアドレスが、タグ・アレ
イのアドレスと一致すると、キャッシュ・メモリからそ
の情報にアクセスし、一致しなければ、情報を求めて主
メモリにアクセスする。その情報はデータ処理装置によ
る利用のためにキャッシュ・メモリに送り込まれる。こ
うした装置については、コンピュータ・システムにおい
てページのタグ付けを行うための装置を開示した、本発
明の譲受人に譲渡された米国特許第4、969、122
号に開示がある。
【0004】現在、多くのプロセッサはプロセスを実行
するために仮想アドレス指定を利用しているので、キャ
ッシュ装置の設計において、仮想アドレス・キャッシュ
を維持すべきか、物理的アドレス・キャッシュを維持す
べきかを決定しなければならない。仮想アドレス・キャ
ッシュを利用することによって、与えられた仮想アドレ
スを物理的アドレスに変換する必要がなくなる。これ
は、プロセスの仮想アドレスが、タグ・アレイに記憶さ
れたアドレスに対応するためである。しかし、新しい各
プロセスが、キャッシュを利用すると、同じデータ及び
命令が用いられている場合でさえ、仮想アドレス指定が
異なることになるので、キャッシュ・メモリは、フラッ
シングしなければならない。
するために仮想アドレス指定を利用しているので、キャ
ッシュ装置の設計において、仮想アドレス・キャッシュ
を維持すべきか、物理的アドレス・キャッシュを維持す
べきかを決定しなければならない。仮想アドレス・キャ
ッシュを利用することによって、与えられた仮想アドレ
スを物理的アドレスに変換する必要がなくなる。これ
は、プロセスの仮想アドレスが、タグ・アレイに記憶さ
れたアドレスに対応するためである。しかし、新しい各
プロセスが、キャッシュを利用すると、同じデータ及び
命令が用いられている場合でさえ、仮想アドレス指定が
異なることになるので、キャッシュ・メモリは、フラッ
シングしなければならない。
【0005】物理的アドレス指定には、タグ・アレイに
所望のデータまたは命令の主メモリにおける物理的アド
レスに対応するアドレスを記憶する必要がある。新しい
プロセスが開始し、新しい仮想アドレスが生成される
と、キャッシュ・タグ・アレイには物理的アドレスが記
憶されているので、データ及び命令は、やはり、主メモ
リの同じ位置に常駐することになり、キャッシュのフラ
ッシングが不要になる。キャッシュ・データに関する物
理的アドレス指定の欠点は、プロセスにおいて利用され
る仮想アドレスを物理的アドレスに変換しなければなら
ないということである。この変換は、アドレス変換バッ
ファ(TLB)を維持する、ある形態のメモリ管理装置
によって実施される。TLBは、所定のプロセスの仮想
アドレスと主メモリにおける関連の物理的アドレスとの
相互参照を維持することになる。従来、この変換に要す
る時間は、キャッシュに対する各参照毎に、1クロック
・サイクルであった。一般に、第1のクロック・サイク
ルにおいて、仮想アドレスが、物理的アドレスに変換さ
れ、次のクロック・サイクルにおいて、物理的アドレス
とキャッシュに記憶されたアドレスの比較を行って、所
望の命令またはデータが、キャッシュに存在するか否か
が判定される。変換に関するこの追加サイクルは、この
システムに極度な低速化の影響を及ぼす可能性がある。
所望のデータまたは命令の主メモリにおける物理的アド
レスに対応するアドレスを記憶する必要がある。新しい
プロセスが開始し、新しい仮想アドレスが生成される
と、キャッシュ・タグ・アレイには物理的アドレスが記
憶されているので、データ及び命令は、やはり、主メモ
リの同じ位置に常駐することになり、キャッシュのフラ
ッシングが不要になる。キャッシュ・データに関する物
理的アドレス指定の欠点は、プロセスにおいて利用され
る仮想アドレスを物理的アドレスに変換しなければなら
ないということである。この変換は、アドレス変換バッ
ファ(TLB)を維持する、ある形態のメモリ管理装置
によって実施される。TLBは、所定のプロセスの仮想
アドレスと主メモリにおける関連の物理的アドレスとの
相互参照を維持することになる。従来、この変換に要す
る時間は、キャッシュに対する各参照毎に、1クロック
・サイクルであった。一般に、第1のクロック・サイク
ルにおいて、仮想アドレスが、物理的アドレスに変換さ
れ、次のクロック・サイクルにおいて、物理的アドレス
とキャッシュに記憶されたアドレスの比較を行って、所
望の命令またはデータが、キャッシュに存在するか否か
が判定される。変換に関するこの追加サイクルは、この
システムに極度な低速化の影響を及ぼす可能性がある。
【0006】最近のコンピュータ・システムには、デー
タ処理の速度を高める有効な手段として、複数のプロセ
ッサが利用されるようになってきた。多重処理システム
の各プロセッサは、上述のように、関連する命令及びデ
ータ・キャッシュ装置を備えることが可能である。独立
したキャッシングに複数のプロセッサを利用することに
よって生じる関心事は、主メモリの同じブロックからの
データを2つ以上のキャッシュに記憶することができる
という点である。これらのキャッシュに記憶されている
データの整合性は、維持されなければならない。整合性
の問題は、プロセッサが、排他的アクセスによって、オ
ブジェクトを書き込むこと、及び、オブジェクトの読み
取り時に、最も新しいコピーを有していることを確認す
ることである。物理的メモリのブロックからのデータに
関するコピーを有するキャッシュは、全て、それに関す
る情報のコピーも備えている。これらのキャッシュは、
通常、共用メモリ・バスに結合されており、各キャッシ
ュは、バスについてモニターまたはスヌープを行って、
キャッシュが共用ブロックのコピーを有しているか否か
を判定しなければならない。読み取りミスが生じると、
全てのキャッシュがチェックして、要求されたブロック
のコピーがキャッシュ内にあるか否かを確かめ、ミスを
生じたキャッシュにデータを供給するといった、適切な
アクションをとることができる。より重要なことは、書
き込みの際、各キャッシュは、コピーがキャッシュ内に
存在するか否かを確かめて、次に、コピーを無効にする
か、または、そのコピーを新しい値に変更するかを決定
する。
タ処理の速度を高める有効な手段として、複数のプロセ
ッサが利用されるようになってきた。多重処理システム
の各プロセッサは、上述のように、関連する命令及びデ
ータ・キャッシュ装置を備えることが可能である。独立
したキャッシングに複数のプロセッサを利用することに
よって生じる関心事は、主メモリの同じブロックからの
データを2つ以上のキャッシュに記憶することができる
という点である。これらのキャッシュに記憶されている
データの整合性は、維持されなければならない。整合性
の問題は、プロセッサが、排他的アクセスによって、オ
ブジェクトを書き込むこと、及び、オブジェクトの読み
取り時に、最も新しいコピーを有していることを確認す
ることである。物理的メモリのブロックからのデータに
関するコピーを有するキャッシュは、全て、それに関す
る情報のコピーも備えている。これらのキャッシュは、
通常、共用メモリ・バスに結合されており、各キャッシ
ュは、バスについてモニターまたはスヌープを行って、
キャッシュが共用ブロックのコピーを有しているか否か
を判定しなければならない。読み取りミスが生じると、
全てのキャッシュがチェックして、要求されたブロック
のコピーがキャッシュ内にあるか否かを確かめ、ミスを
生じたキャッシュにデータを供給するといった、適切な
アクションをとることができる。より重要なことは、書
き込みの際、各キャッシュは、コピーがキャッシュ内に
存在するか否かを確かめて、次に、コピーを無効にする
か、または、そのコピーを新しい値に変更するかを決定
する。
【0007】キャッシュの整合を有効に維持するため、
各クロック・サイクル毎に、スヌープの検出することが
望ましい。従来、2つのアプローチによって、検出され
るスヌープが処理されてきた。その1つは、データ・キ
ャッシュの各部分毎に、2つのタグ・アレイ、すなわ
ち、スヌープに従って更新されるタグ・アレイと、デー
タにアドレス指定するためのタグ・アレイを維持するこ
とである。もう1つのアプローチは、スヌープを検出し
て、キャッシュが更新される間、プロセッサを機能停止
させることであった。これらのアプローチには、両方と
も、システムの過剰なオーバヘッドまたは好ましくない
速度低下を必要とするという欠点がある。
各クロック・サイクル毎に、スヌープの検出することが
望ましい。従来、2つのアプローチによって、検出され
るスヌープが処理されてきた。その1つは、データ・キ
ャッシュの各部分毎に、2つのタグ・アレイ、すなわ
ち、スヌープに従って更新されるタグ・アレイと、デー
タにアドレス指定するためのタグ・アレイを維持するこ
とである。もう1つのアプローチは、スヌープを検出し
て、キャッシュが更新される間、プロセッサを機能停止
させることであった。これらのアプローチには、両方と
も、システムの過剰なオーバヘッドまたは好ましくない
速度低下を必要とするという欠点がある。
【0008】これらの欠点は、複数命令を送ることが可
能なスーパースケーラ・タイプ・システムにおいて倍加
されることになる。クロック・サイクル毎に2つ以上の
命令を実行するシステムにおいて、スヌープを検出する
と、機能停止によって、このシステムが伝搬し得るクロ
ック・サイクル毎の命令数に応じて、そのサイクルに関
して、1つの命令ではなく、2つまたは3つ、あるい
は、潜在的可能性としては、それ以上の命令が損なわれ
ることになる。
能なスーパースケーラ・タイプ・システムにおいて倍加
されることになる。クロック・サイクル毎に2つ以上の
命令を実行するシステムにおいて、スヌープを検出する
と、機能停止によって、このシステムが伝搬し得るクロ
ック・サイクル毎の命令数に応じて、そのサイクルに関
して、1つの命令ではなく、2つまたは3つ、あるい
は、潜在的可能性としては、それ以上の命令が損なわれ
ることになる。
【0009】キャッシュに関するこれ以上の説明につい
ては、1990年にMorganKaufmann P
ublishers,Inc.から刊行されたJ.L.
Hennessy及び D.A.Pattersonに
よるComputer Architecture A
Quantitatve Approach参照のこ
と。
ては、1990年にMorganKaufmann P
ublishers,Inc.から刊行されたJ.L.
Hennessy及び D.A.Pattersonに
よるComputer Architecture A
Quantitatve Approach参照のこ
と。
【0010】
【発明が解決しようとする課題】本発明の目的は、キャ
ッシュ・メモリを利用したコンピュータ・システムの動
作を改良し、高速化することにある。
ッシュ・メモリを利用したコンピュータ・システムの動
作を改良し、高速化することにある。
【0011】本発明の目的は、互換性があり、毎サイク
ル複数命令システムの利用が可能なキャッシュ装置を提
供することにある。
ル複数命令システムの利用が可能なキャッシュ装置を提
供することにある。
【0012】本発明の目的は、仮想メモリ・システムに
キャッシング装置を設けて、データ及び命令のキャッシ
ュ検索について、物理的アドレス指定及び単一クロック
・サイクルによる実施が行われるようにすることにあ
る。
キャッシング装置を設けて、データ及び命令のキャッシ
ュ検索について、物理的アドレス指定及び単一クロック
・サイクルによる実施が行われるようにすることにあ
る。
【0013】本発明のもう1つの目的は、各クロック・
サイクル毎に、スヌープ及び更新を行って、機能停止を
生じることなく、あるいは、第2のタグ・アレイを必要
とせずに、整合性を維持することができるシステムを提
供することにある。
サイクル毎に、スヌープ及び更新を行って、機能停止を
生じることなく、あるいは、第2のタグ・アレイを必要
とせずに、整合性を維持することができるシステムを提
供することにある。
【0014】
【課題を解決するための手段】本発明の以上の及びその
他の目的は、複数のプロセッサのそれぞれについて、関
連する命令キャッシュ及びデータ・キャッシュを備える
コンピュータ・システムに用いられるキャッシュ装置に
よって実現される。キャッシュ装置の各コンポーネント
は、各クロック・サイクル毎に、スヌープだけでなく、
変換、比較、データ検索も完了するように、二重ポンピ
ングされる。このシステムは、キャッシュ装置内におけ
る各種コンポーネントの相対速度によって、変換のほう
が速く行われ、ヒットが生じた場合に、データにアドレ
ス指定されるのと同時に、選択が可能になるので、変換
とデータ検索を同時に行うことができる。こうした装置
の場合、各サイクル毎に実行可能な操作数が増し、プロ
セッサを機能停止させなければならない回数が減ること
になる。
他の目的は、複数のプロセッサのそれぞれについて、関
連する命令キャッシュ及びデータ・キャッシュを備える
コンピュータ・システムに用いられるキャッシュ装置に
よって実現される。キャッシュ装置の各コンポーネント
は、各クロック・サイクル毎に、スヌープだけでなく、
変換、比較、データ検索も完了するように、二重ポンピ
ングされる。このシステムは、キャッシュ装置内におけ
る各種コンポーネントの相対速度によって、変換のほう
が速く行われ、ヒットが生じた場合に、データにアドレ
ス指定されるのと同時に、選択が可能になるので、変換
とデータ検索を同時に行うことができる。こうした装置
の場合、各サイクル毎に実行可能な操作数が増し、プロ
セッサを機能停止させなければならない回数が減ること
になる。
【0015】本発明のキャッシュ装置は、データキャッ
シュと命令キャッシュの両方に共用されることになるア
ドレス変換バッファ(TLB)を用意している。各キャ
ッシュには、タグ・アレイ及びデータ・アレイが含まれ
ている。クロック・サイクルの1つの位相において、ペ
ージ識別子とオフセットからなる仮想アドレスが、TL
Bと、キャッシュ・タグ・アレイの1つ及びその関連す
るデータ・アレイに供給される。クロック・サイクルの
後続位相において、TLBと、他のキャッシュ・タグア
レイ及びその関連するデータ・アレイに、別の仮想アド
レスが供給されるので、クロック・サイクルの2つの位
相において、両方のキャッシュから検索を行うことがで
きる。交番位相において、一方のキャッシュにアドレス
指定されている場合には、もう一方のキャッシュは、検
出されたスヌープを自由に処理することができる。
シュと命令キャッシュの両方に共用されることになるア
ドレス変換バッファ(TLB)を用意している。各キャ
ッシュには、タグ・アレイ及びデータ・アレイが含まれ
ている。クロック・サイクルの1つの位相において、ペ
ージ識別子とオフセットからなる仮想アドレスが、TL
Bと、キャッシュ・タグ・アレイの1つ及びその関連す
るデータ・アレイに供給される。クロック・サイクルの
後続位相において、TLBと、他のキャッシュ・タグア
レイ及びその関連するデータ・アレイに、別の仮想アド
レスが供給されるので、クロック・サイクルの2つの位
相において、両方のキャッシュから検索を行うことがで
きる。交番位相において、一方のキャッシュにアドレス
指定されている場合には、もう一方のキャッシュは、検
出されたスヌープを自由に処理することができる。
【0016】
【実施例】表記及び用語法 以下の詳細な説明の一部は、コンピュータ・メモリ内に
おけるデータ・ビットに関する操作のアルゴリズム及び
記号表現によって行われている。これらのアルゴリズム
記述及び表現は、データ処理技術における技術者が、当
この技術の他の技術者にその仕事の内容を最も有効に伝
達するために用いる手段である。本書で示されるアルゴ
リズムは、特定のコンピュータまたは他の装置に固有の
関連性を備えるものではない。
おけるデータ・ビットに関する操作のアルゴリズム及び
記号表現によって行われている。これらのアルゴリズム
記述及び表現は、データ処理技術における技術者が、当
この技術の他の技術者にその仕事の内容を最も有効に伝
達するために用いる手段である。本書で示されるアルゴ
リズムは、特定のコンピュータまたは他の装置に固有の
関連性を備えるものではない。
【0017】アルゴリズムは、本書では、一般に、所望
の結果に導くことになる、筋の通ったシーケンスをなす
ステップとみなされる。これらのステップは、物理的量
の物理的操作を必要とするものである。必ずしもそうと
は限らないが、これらの量は、記憶し、転送し、組み合
わせ、比較し、さらに、別様の操作を加えることの可能
な電気的または磁気的信号の形をとるのが普通である。
主として、共通した慣習により、これらの信号をビッ
ト、値、要素、記号、文字、項、数等と呼ぶほうが便利
な場合もあることが分かっている。ただし、留意してお
くべきは、これらの及び同様の用語は、全て、適合する
物理的量に関連していなければならず、これらの量に適
用される便利なラベルにすぎないということである。
の結果に導くことになる、筋の通ったシーケンスをなす
ステップとみなされる。これらのステップは、物理的量
の物理的操作を必要とするものである。必ずしもそうと
は限らないが、これらの量は、記憶し、転送し、組み合
わせ、比較し、さらに、別様の操作を加えることの可能
な電気的または磁気的信号の形をとるのが普通である。
主として、共通した慣習により、これらの信号をビッ
ト、値、要素、記号、文字、項、数等と呼ぶほうが便利
な場合もあることが分かっている。ただし、留意してお
くべきは、これらの及び同様の用語は、全て、適合する
物理的量に関連していなければならず、これらの量に適
用される便利なラベルにすぎないということである。
【0018】さらに、実施される操作は、一般に、人間
のオペレータが実施する精神的な操作に関連した、加算
または比較といった用語で表現されることが多い。本発
明の一部をなす本書に解説の操作のどれにおいても、人
間のオペレータのこうした能力は、ほとんどの場合、不
要であり、あるいは、望ましいものではない。これらの
操作は機械の操作である。本発明の操作を実施するのに
有効な機械には、汎用デジタル・コンピュータまたは他
の同様の装置がある。全ての場合において、コンピュー
タの操作に関する操作方法と計算自体の方法との区別に
留意しなければならない。本発明は、電気的または他の
(例えば、機械的、化学的、物理的)信号の処理におい
てコンピュータに操作を施し、他の所望の物理的信号を
発生するための装置及び方法のステップを明らかにする
ものである。
のオペレータが実施する精神的な操作に関連した、加算
または比較といった用語で表現されることが多い。本発
明の一部をなす本書に解説の操作のどれにおいても、人
間のオペレータのこうした能力は、ほとんどの場合、不
要であり、あるいは、望ましいものではない。これらの
操作は機械の操作である。本発明の操作を実施するのに
有効な機械には、汎用デジタル・コンピュータまたは他
の同様の装置がある。全ての場合において、コンピュー
タの操作に関する操作方法と計算自体の方法との区別に
留意しなければならない。本発明は、電気的または他の
(例えば、機械的、化学的、物理的)信号の処理におい
てコンピュータに操作を施し、他の所望の物理的信号を
発生するための装置及び方法のステップを明らかにする
ものである。
【0019】図1を参照すると、本発明の望ましい実施
例に基づくキャッシュ装置のブロック図が示されてい
る。この実施例の場合、命令キャッシュ10及びデータ
・キャッシュ20が別個に維持されている。命令キャッ
シュ10は、各ページが4キロバイト(KB)の5ペー
ジのメモリからなる5ウェイの連想キャッシュである。
各ページは主メモリからの64ブロックの64バイト命
令情報を維持している。命令タグ・アレイ15は、命令
キャッシュ・アレイ10に連係している。命令タグ・ア
レイ15の各ページは、64行のアドレスを維持してい
る。命令タグ・アレイ15及び命令キャッシュ・アレイ
10は、例えば、命令タグ・アレイ15の最初のページ
の10番目の行に、命令キャッシュ・アレイに保持され
た最初のページの10番目のブロックに対応する、主メ
モリにおける物理的アドレスが含まれるように関連づけ
られている。命令キャッシュ・アレイのデータの各ブロ
ック毎に、命令タグ・アレイ15の対応する行には、そ
のデータ・ブロックに対応する主メモリの位置の物理的
アドレスが含まれている。
例に基づくキャッシュ装置のブロック図が示されてい
る。この実施例の場合、命令キャッシュ10及びデータ
・キャッシュ20が別個に維持されている。命令キャッ
シュ10は、各ページが4キロバイト(KB)の5ペー
ジのメモリからなる5ウェイの連想キャッシュである。
各ページは主メモリからの64ブロックの64バイト命
令情報を維持している。命令タグ・アレイ15は、命令
キャッシュ・アレイ10に連係している。命令タグ・ア
レイ15の各ページは、64行のアドレスを維持してい
る。命令タグ・アレイ15及び命令キャッシュ・アレイ
10は、例えば、命令タグ・アレイ15の最初のページ
の10番目の行に、命令キャッシュ・アレイに保持され
た最初のページの10番目のブロックに対応する、主メ
モリにおける物理的アドレスが含まれるように関連づけ
られている。命令キャッシュ・アレイのデータの各ブロ
ック毎に、命令タグ・アレイ15の対応する行には、そ
のデータ・ブロックに対応する主メモリの位置の物理的
アドレスが含まれている。
【0020】データ・キャッシュ・アレイ20は、ま
た、ページ毎に128の32バイト・ブロックをなすよ
うに構成された4KBページも備えている。望ましい実
施例の場合、データ・キャッシュは4ウェイの連想キャ
ッシュである。データ・タグ・アレイ25はデータ・キ
ャッシュ・アレイに関連している。命令タグ・アレイ1
5の場合のように、データ・タグ・アレイは、データ・
キャッシュ・アレイ20に保持されたデータ・ブロック
の主メモリでの位置に相当する物理的アドレスを維持し
ている。図1には、キャッシュ・アレイから独立したコ
ンポーネントとしてタグ・アレイが示されているが、双
方同じ記憶デバイスに属することが可能である。
た、ページ毎に128の32バイト・ブロックをなすよ
うに構成された4KBページも備えている。望ましい実
施例の場合、データ・キャッシュは4ウェイの連想キャ
ッシュである。データ・タグ・アレイ25はデータ・キ
ャッシュ・アレイに関連している。命令タグ・アレイ1
5の場合のように、データ・タグ・アレイは、データ・
キャッシュ・アレイ20に保持されたデータ・ブロック
の主メモリでの位置に相当する物理的アドレスを維持し
ている。図1には、キャッシュ・アレイから独立したコ
ンポーネントとしてタグ・アレイが示されているが、双
方同じ記憶デバイスに属することが可能である。
【0021】タグ・アレイに記憶されたアドレスは、デ
ータ・ブロックの主メモリにおける物理的アドレスを表
しているので、また、各プロセスは、実行時、仮想アド
レスを利用するので、キャッシュからデータを検索する
には、プロセッサが供給する仮想アドレスを変換する必
要がある。従って、望ましい実施例の構成では、64エ
ントリのフルアソシェティブ・アドレス変換バッファ
(TLB)30が供給される。プロセスの実行に関し
て、TLB30は、アクティブ仮想アドレスと実際の物
理的アドレスとの相互参照を維持する。望ましい実施例
のTLB30は、4KBのページとして維持される。新
しいプロセスが開始すると、TLBの相互参照アドレス
が、用いられる新しい仮想アドレスに対応するように更
新される。キャッシュ・タグ・アレイに記憶されている
物理的アドレスは、変化しないので、キャッシュ・デー
タをフラッシングする必要はない。
ータ・ブロックの主メモリにおける物理的アドレスを表
しているので、また、各プロセスは、実行時、仮想アド
レスを利用するので、キャッシュからデータを検索する
には、プロセッサが供給する仮想アドレスを変換する必
要がある。従って、望ましい実施例の構成では、64エ
ントリのフルアソシェティブ・アドレス変換バッファ
(TLB)30が供給される。プロセスの実行に関し
て、TLB30は、アクティブ仮想アドレスと実際の物
理的アドレスとの相互参照を維持する。望ましい実施例
のTLB30は、4KBのページとして維持される。新
しいプロセスが開始すると、TLBの相互参照アドレス
が、用いられる新しい仮想アドレスに対応するように更
新される。キャッシュ・タグ・アレイに記憶されている
物理的アドレスは、変化しないので、キャッシュ・デー
タをフラッシングする必要はない。
【0022】所定のキャッシュに関連したプロセッサ
が、命令またはデータ・ブロックを検索しようとする場
合、キャッシング装置に32ビット・アドレスを供給し
て、まず、キャッシュのチェックが行われる。プロセッ
サによって送られる32ビット・アドレスは、主メモリ
内の物理的アドレスに対応する、実行プロセスによって
生成される仮想アドレスである。キャッシュは、物理的
にアドレス指定を受けるので、キャッシュからメモリの
所望のブロックを検索するには、供給された仮想アドレ
スの変換が必要になる。従来は、検索操作の開始前に、
まず仮想アドレスの変換を行うことが必要とされた。し
かし、本発明では、キャッシュ・アレイ、タグ・アレ
イ、及び、TLBの相対的サイズの物理的効果を利用す
る。この利用について説明する前に、まず、プロセッサ
が供給する仮想アドレスを編成する方法について解説す
る必要がある。
が、命令またはデータ・ブロックを検索しようとする場
合、キャッシング装置に32ビット・アドレスを供給し
て、まず、キャッシュのチェックが行われる。プロセッ
サによって送られる32ビット・アドレスは、主メモリ
内の物理的アドレスに対応する、実行プロセスによって
生成される仮想アドレスである。キャッシュは、物理的
にアドレス指定を受けるので、キャッシュからメモリの
所望のブロックを検索するには、供給された仮想アドレ
スの変換が必要になる。従来は、検索操作の開始前に、
まず仮想アドレスの変換を行うことが必要とされた。し
かし、本発明では、キャッシュ・アレイ、タグ・アレ
イ、及び、TLBの相対的サイズの物理的効果を利用す
る。この利用について説明する前に、まず、プロセッサ
が供給する仮想アドレスを編成する方法について解説す
る必要がある。
【0023】図2には、プロセッサからそのキャッシュ
に検索のために伝送されるタイプの32ビット仮想アド
レスに関するブロック図である。このアドレスは、2つ
の部分から構成されていることが分かる。最初の20ビ
ットは、主メモリのページを選択するための仮想アドレ
スを表している。下位の12ビットは、所望のデータ・
ブロックを見つけるための、選択されたページに対する
索引を表している。この下位の12ビットは、仮想アド
レスから物理的アドレスへの変換時に、変換されない。
すなわち、このページの仮想アドレスは、主メモリのペ
ージに関する物理的アドレスに変換されるが、この12
ビットは、調べるべきページにおいて、同じままの部分
を示している。従って、所望のブロックの物理的アドレ
スを表したアドレスの上位の24ビットを判定するため
に、TLB30によって変換しなければならないのは、
上位の20ビットだけである。必要なページに関係な
く、下位の12ビットは、そのページのどこに所望のデ
ータが記憶されているかを指示する。
に検索のために伝送されるタイプの32ビット仮想アド
レスに関するブロック図である。このアドレスは、2つ
の部分から構成されていることが分かる。最初の20ビ
ットは、主メモリのページを選択するための仮想アドレ
スを表している。下位の12ビットは、所望のデータ・
ブロックを見つけるための、選択されたページに対する
索引を表している。この下位の12ビットは、仮想アド
レスから物理的アドレスへの変換時に、変換されない。
すなわち、このページの仮想アドレスは、主メモリのペ
ージに関する物理的アドレスに変換されるが、この12
ビットは、調べるべきページにおいて、同じままの部分
を示している。従って、所望のブロックの物理的アドレ
スを表したアドレスの上位の24ビットを判定するため
に、TLB30によって変換しなければならないのは、
上位の20ビットだけである。必要なページに関係な
く、下位の12ビットは、そのページのどこに所望のデ
ータが記憶されているかを指示する。
【0024】従って、アドレスは、どの検索が行われる
かに基づいて、TLB30、データまたは命令キャッシ
ュ・アレイ、及び、対応するタグ・アレイと並列に供給
される。例えば、プロセッサが、命令情報のブロックを
検索するため、32ビットの仮想アドレスを送る場合、
キャッシュからの検索方法は、それがキャッシュに存在
する場合には次のようになる。すなわち、ページに対す
る仮想アドレスを表した上位の20ビットが、変換のた
めにTLB30に送られ、所定のページに対する索引を
表した下位の12ビットが、命令キャッシュ・アレイ1
0及び命令タグ・アレイ15に供給される。望ましい実
施例の場合、所望のデータ・ブロックが命令キャッシュ
・アレイ10に存在するか否かが分からなくてもかまわ
ない。ページの検索及びページ・アドレスの変換を同時
に行おうとするように見えるが、実際には、TLB3
0、命令タグ・アレイ15、及び、命令キャッシュ・ア
レイ10の相対サイズから生じる物理的効果が存在す
る。
かに基づいて、TLB30、データまたは命令キャッシ
ュ・アレイ、及び、対応するタグ・アレイと並列に供給
される。例えば、プロセッサが、命令情報のブロックを
検索するため、32ビットの仮想アドレスを送る場合、
キャッシュからの検索方法は、それがキャッシュに存在
する場合には次のようになる。すなわち、ページに対す
る仮想アドレスを表した上位の20ビットが、変換のた
めにTLB30に送られ、所定のページに対する索引を
表した下位の12ビットが、命令キャッシュ・アレイ1
0及び命令タグ・アレイ15に供給される。望ましい実
施例の場合、所望のデータ・ブロックが命令キャッシュ
・アレイ10に存在するか否かが分からなくてもかまわ
ない。ページの検索及びページ・アドレスの変換を同時
に行おうとするように見えるが、実際には、TLB3
0、命令タグ・アレイ15、及び、命令キャッシュ・ア
レイ10の相対サイズから生じる物理的効果が存在す
る。
【0025】TLB30は、3つのアレイのうちで最小
のため、約9ナノ秒間で、20ビットの仮想ページ・ア
ドレスを24ビットの物理的ページ・アドレスに変換す
ることができる。命令タグ・アレイ15に供給される下
位の12ビットは、キャッシュ・アレイに保持されたデ
ータの物理的アドレスを保持するタグ・アレイ内の位置
に対応する。タグ・アレイのサイズのため、12ビット
の索引によって判定される位置に記憶された物理的アド
レスを求めるのに、約11ナノ秒かかる。その変換に要
する時間は、タグ・アレイのほうがTLB30よりも長
いので、20ビットの仮想ページ・アドレスに対応する
24ビットの物理的アドレスは、既に、タグ・アレイに
供給され、タグ・アレイに記憶された物理的ページ・ア
ドレスと比較されていることになる。
のため、約9ナノ秒間で、20ビットの仮想ページ・ア
ドレスを24ビットの物理的ページ・アドレスに変換す
ることができる。命令タグ・アレイ15に供給される下
位の12ビットは、キャッシュ・アレイに保持されたデ
ータの物理的アドレスを保持するタグ・アレイ内の位置
に対応する。タグ・アレイのサイズのため、12ビット
の索引によって判定される位置に記憶された物理的アド
レスを求めるのに、約11ナノ秒かかる。その変換に要
する時間は、タグ・アレイのほうがTLB30よりも長
いので、20ビットの仮想ページ・アドレスに対応する
24ビットの物理的アドレスは、既に、タグ・アレイに
供給され、タグ・アレイに記憶された物理的ページ・ア
ドレスと比較されていることになる。
【0026】変換された物理的ページ・アドレスが、命
令タグ・アレイの各ページ毎に12ビットの索引によっ
て指示される位置の物理的ページ・アドレスと比較され
る。その1つが等しい場合、キャッシュ・アレイの対応
するページに記憶された命令データが、供給された仮想
アドレスによって検索しようとした主メモリのデータと
同じであることを示す、ヒットが生じる。
令タグ・アレイの各ページ毎に12ビットの索引によっ
て指示される位置の物理的ページ・アドレスと比較され
る。その1つが等しい場合、キャッシュ・アレイの対応
するページに記憶された命令データが、供給された仮想
アドレスによって検索しようとした主メモリのデータと
同じであることを示す、ヒットが生じる。
【0027】命令キャッシュ・アレイ10のサイズのた
め、12ビットの索引アドレスによってキャッシュ・ア
レイのページの所望の位置を選択するには、約14ナノ
秒を要することになる。これには、アドレスの比較また
は変換よりも時間がかかるので、ヒットが生じるか否か
が判定されるまでに、所望のブロックを適正な位置から
即座に検索することができる。MUX論理回路17は、
12ビットの索引によって、プロセッサに供給するため
の所望のデータ・ブロックを備えた命令キャッシュ・ア
レイ10のページを選択する、命令タグ・アレイ15に
よって駆動される。データ・キャッシュ・アレイ20か
ら所望のデータを検索する場合には、同じ手順が実施可
能であり、実施される。後述の理由から、命令キャッシ
ュ・アレイ10及びデータ・キャッシュ・アレイ20
は、単一TLB30を共用することが可能である。
め、12ビットの索引アドレスによってキャッシュ・ア
レイのページの所望の位置を選択するには、約14ナノ
秒を要することになる。これには、アドレスの比較また
は変換よりも時間がかかるので、ヒットが生じるか否か
が判定されるまでに、所望のブロックを適正な位置から
即座に検索することができる。MUX論理回路17は、
12ビットの索引によって、プロセッサに供給するため
の所望のデータ・ブロックを備えた命令キャッシュ・ア
レイ10のページを選択する、命令タグ・アレイ15に
よって駆動される。データ・キャッシュ・アレイ20か
ら所望のデータを検索する場合には、同じ手順が実施可
能であり、実施される。後述の理由から、命令キャッシ
ュ・アレイ10及びデータ・キャッシュ・アレイ20
は、単一TLB30を共用することが可能である。
【0028】仮想アドレスの下位の12ビットは、デー
タ・キャッシュ・アレイの所望の位置に索引を付けるた
めに変換する必要がないので、データ・キャッシュ・ア
レイの各ページは、212の位置、すなわち、4KBしか
備えていない。従って、4KB・ブロックのデータのペ
ージを維持するため、命令及びデータ・キャッシュ・ア
レイは、それぞれ、5ウェイの連想キャッシュ・アレイ
及び4ウェイの連想キャッシュ・アレイである。
タ・キャッシュ・アレイの所望の位置に索引を付けるた
めに変換する必要がないので、データ・キャッシュ・ア
レイの各ページは、212の位置、すなわち、4KBしか
備えていない。従って、4KB・ブロックのデータのペ
ージを維持するため、命令及びデータ・キャッシュ・ア
レイは、それぞれ、5ウェイの連想キャッシュ・アレイ
及び4ウェイの連想キャッシュ・アレイである。
【0029】本発明の望ましい実施例による実施は、ス
ーパースケーラ・プロセッサ、すなわち、クロック・サ
イクル毎に、2つ以上の命令を伝搬することが可能なプ
ロセッサによって行うことを意図したものである。命令
検索に関連した以上の複数の操作がクロック・サイクル
の1つの位相で実施されることになる。同様に、データ
・キャッシュからの検索が、クロック・サイクルのもう
1つの位相で実施されることになる。従って、クロック
の各サイクル毎に、命令検索とデータ検索の両方が、実
施されることになる。これは、クロック・サイクルの立
ち上がり区間と立ち下がり区間で実施される操作と呼ば
れる場合もある。望ましい実施例の場合、データ検索
は、各サイクルの立ち上がり区間で実施され、命令検索
は、立ち下がり区間で実施される。命令及びデータ・キ
ャッシュ操作が、クロック・サイクルの異なる位相で実
施されるので、望ましい実施例の実施は、両方の検索と
も、単一のTLBを利用することが可能である。サイク
ルの立ち上がり区間において、データに対応するデータ
のブロックに関する24ビットの物理的ページ・アドレ
スをデータ・タグ・アレイ25に対して出力するTLB
30によって変換されるのは、仮想データ・アドレスで
ある。キャッシュ装置の論理回路26は、変換されたア
ドレスが、データ・タグ・アレイ25において比較すべ
きであることを判定する。クロック・サイクルの立ち上
がり区間において、受信するのは、命令情報に関する3
2ビットの仮想アドレスであり、そのうちの20ビット
は、TLB30によって解読される。次に、論理回路2
6は、比較のために、変換されたアドレスを命令タグ・
アレイ15に送る。
ーパースケーラ・プロセッサ、すなわち、クロック・サ
イクル毎に、2つ以上の命令を伝搬することが可能なプ
ロセッサによって行うことを意図したものである。命令
検索に関連した以上の複数の操作がクロック・サイクル
の1つの位相で実施されることになる。同様に、データ
・キャッシュからの検索が、クロック・サイクルのもう
1つの位相で実施されることになる。従って、クロック
の各サイクル毎に、命令検索とデータ検索の両方が、実
施されることになる。これは、クロック・サイクルの立
ち上がり区間と立ち下がり区間で実施される操作と呼ば
れる場合もある。望ましい実施例の場合、データ検索
は、各サイクルの立ち上がり区間で実施され、命令検索
は、立ち下がり区間で実施される。命令及びデータ・キ
ャッシュ操作が、クロック・サイクルの異なる位相で実
施されるので、望ましい実施例の実施は、両方の検索と
も、単一のTLBを利用することが可能である。サイク
ルの立ち上がり区間において、データに対応するデータ
のブロックに関する24ビットの物理的ページ・アドレ
スをデータ・タグ・アレイ25に対して出力するTLB
30によって変換されるのは、仮想データ・アドレスで
ある。キャッシュ装置の論理回路26は、変換されたア
ドレスが、データ・タグ・アレイ25において比較すべ
きであることを判定する。クロック・サイクルの立ち上
がり区間において、受信するのは、命令情報に関する3
2ビットの仮想アドレスであり、そのうちの20ビット
は、TLB30によって解読される。次に、論理回路2
6は、比較のために、変換されたアドレスを命令タグ・
アレイ15に送る。
【0030】図3には、数クロック・サイクルに関連さ
せた各種の操作を示すタイミング図が示されている。図
3のライン40は、数期間にわたるタイミング信号を示
している。ライン41には、クロック・サイクルに関連
して、サイクルの立ち上がり区間において、データ・キ
ャッシュ・アドレスがTLB30によって処理される方
法、及び、立ち下がり区間において、命令アドレスがT
LB30によって変換されることが示されている。図3
のライン42で示すように、各クロック・サイクルの立
ち上がり区間毎に、データ・キャッシュ・タグ・アレイ
25が、12ビットのデータを受信し、変換されたアド
レスが比較される。同様に、図3のライン44で示すよ
うに、各サイクルの立ち上がり区間毎に、ヒットが生じ
かどうかの検索のため、データ・アドレスがデータ・キ
ャッシュ・アレイ20に供給される。図3のライン43
及び45で示すように、クロック・サイクルの立ち下が
り区間に関して周期的に、ヒットが生じかどうか検索の
ためアドレス指定されるのは、命令キャッシュ・タグ・
アレイ15及び命令データ・キャッシュ・アレイ10で
ある。クロック・サイクル毎に、2つ以上の命令を出す
方法がいくつか存在する。本発明の望ましい実施例によ
る方法は、本出願と同時に提出され、本発明の譲受人に
譲渡された、「Method and Apparat
us forGrouped Instruction
s Simultaneously,and Exec
uting Grouped Instruction
sin a Pipelined Processo
r」と題する同時係属の出願に開示されている。
せた各種の操作を示すタイミング図が示されている。図
3のライン40は、数期間にわたるタイミング信号を示
している。ライン41には、クロック・サイクルに関連
して、サイクルの立ち上がり区間において、データ・キ
ャッシュ・アドレスがTLB30によって処理される方
法、及び、立ち下がり区間において、命令アドレスがT
LB30によって変換されることが示されている。図3
のライン42で示すように、各クロック・サイクルの立
ち上がり区間毎に、データ・キャッシュ・タグ・アレイ
25が、12ビットのデータを受信し、変換されたアド
レスが比較される。同様に、図3のライン44で示すよ
うに、各サイクルの立ち上がり区間毎に、ヒットが生じ
かどうかの検索のため、データ・アドレスがデータ・キ
ャッシュ・アレイ20に供給される。図3のライン43
及び45で示すように、クロック・サイクルの立ち下が
り区間に関して周期的に、ヒットが生じかどうか検索の
ためアドレス指定されるのは、命令キャッシュ・タグ・
アレイ15及び命令データ・キャッシュ・アレイ10で
ある。クロック・サイクル毎に、2つ以上の命令を出す
方法がいくつか存在する。本発明の望ましい実施例によ
る方法は、本出願と同時に提出され、本発明の譲受人に
譲渡された、「Method and Apparat
us forGrouped Instruction
s Simultaneously,and Exec
uting Grouped Instruction
sin a Pipelined Processo
r」と題する同時係属の出願に開示されている。
【0031】本発明は、その望ましい実施例の場合、多
重処理システムにおいて用いられることを意図したもの
であるため、取り組まなければならない重要な問題点が
もう1つある。多重処理システムでは、2つ以上のプロ
セッサが、実行中の場合、2つ以上のキャッシュが、主
メモリの同じ物理的位置からのデータを有している可能
性があるか、あるいは、有していそうでさえある。これ
らのキャッシュは、整合性がとれたままであることが必
須である。キャッシュの1つにおいてデータが変わる
と、そのデータを含む別のキャッシュは、古くなり、古
いデータに対するアドレス指定は行うべきではない。設
計の考慮事項では、他のキャッシュが新しいデータを実
際にコピーするか、あるいは、キャッシュ内のそのブロ
ックを無効にするだけで、必要とする場合に限って新し
いデータを検索するかの決定が行われる。プロセッサの
性能を劣化させることなく、こうした可能性のある不整
合を検出し、処理する互換性のある方法が必要である。
重処理システムにおいて用いられることを意図したもの
であるため、取り組まなければならない重要な問題点が
もう1つある。多重処理システムでは、2つ以上のプロ
セッサが、実行中の場合、2つ以上のキャッシュが、主
メモリの同じ物理的位置からのデータを有している可能
性があるか、あるいは、有していそうでさえある。これ
らのキャッシュは、整合性がとれたままであることが必
須である。キャッシュの1つにおいてデータが変わる
と、そのデータを含む別のキャッシュは、古くなり、古
いデータに対するアドレス指定は行うべきではない。設
計の考慮事項では、他のキャッシュが新しいデータを実
際にコピーするか、あるいは、キャッシュ内のそのブロ
ックを無効にするだけで、必要とする場合に限って新し
いデータを検索するかの決定が行われる。プロセッサの
性能を劣化させることなく、こうした可能性のある不整
合を検出し、処理する互換性のある方法が必要である。
【0032】先行技術の場合、各データ・キャッシュ・
アレイ毎に、複数のタグ・アレイを用いるものもある。
各キャッシュは、図4に示すMバス40として識別され
るバスによって互いにリンクしている。データ・ブロッ
クが、マイクロプロセッサの1つに関連したキャッシュ
によって変更されると、信号がMバス40によって同報
通信される。この信号は、どのデータ・ブロックが影響
されたかを識別する。同じデータ・ブロックを含んでい
る全てのキャッシュが、そのブロックを無効にするか、
あるいは、新しい値に書き直さなければならない。第2
のタグ・アレイの場合、このタグ・アレイは、他のタグ
・アレイ及びキャッシュ・データが、中断されずにいる
間に、Mバスによって送られてくるアドレスとタグ・ア
レイのアドレスを比較する。
アレイ毎に、複数のタグ・アレイを用いるものもある。
各キャッシュは、図4に示すMバス40として識別され
るバスによって互いにリンクしている。データ・ブロッ
クが、マイクロプロセッサの1つに関連したキャッシュ
によって変更されると、信号がMバス40によって同報
通信される。この信号は、どのデータ・ブロックが影響
されたかを識別する。同じデータ・ブロックを含んでい
る全てのキャッシュが、そのブロックを無効にするか、
あるいは、新しい値に書き直さなければならない。第2
のタグ・アレイの場合、このタグ・アレイは、他のタグ
・アレイ及びキャッシュ・データが、中断されずにいる
間に、Mバスによって送られてくるアドレスとタグ・ア
レイのアドレスを比較する。
【0033】代替方法は、1つのタグ・アレイを維持す
ることであった。キャッシュ内の影響を受けたメモリ・
ブロックを見張ることをスヌープと呼ぶ。単一タグ・ア
レイ構成の場合、そのキャッシュ内のブロックが別のキ
ャッシュにおいて変更されたことを示すスヌープが検出
されると、Mバス40からのデータに基づいて、キャッ
シュが更新されるか、あるいは、無効になるまで、プロ
セッサの機能が停止される。
ることであった。キャッシュ内の影響を受けたメモリ・
ブロックを見張ることをスヌープと呼ぶ。単一タグ・ア
レイ構成の場合、そのキャッシュ内のブロックが別のキ
ャッシュにおいて変更されたことを示すスヌープが検出
されると、Mバス40からのデータに基づいて、キャッ
シュが更新されるか、あるいは、無効になるまで、プロ
セッサの機能が停止される。
【0034】本発明の望ましい実施例は、スーパースケ
ーラ多重処理システムにおいて用いられるので、新規の
解決法が開発された。交番位相のクロック・サイクルに
おいて、クロック・サイクル毎に1回、命令キャッシュ
及びデータ・キャッシュにアクセスされるので、それぞ
れ、交番サイクルにおいては自由のままである。すなわ
ち、データ・キャッシュは、クロック・サイクルの立ち
上がり区間において、プロセッサに検索を行うだけであ
り、クロック・サイクルの立ち下がり区間においては用
いられない。従って、クロック・サイクルの立ち下がり
区間において、データ・キャッシュ・タグ・アレイ25
及びデータ・キャッシュ・アレイ20は、検出されたス
ヌープの処理を行うことができる。同様に、クロック・
サイクルの立ち上がり区間において、命令キャッシュ
は、スヌープの処理を行うことができる。従って、不整
合の処理において、サイクルが損なわれることはなく、
タグ・アレイを追加する必要がない。従って、図3のプ
ロセッサのアドレス指定による交番サイクルおけるライ
ン42及び43においてスヌープが指示されている。ク
ロック・パルスによって駆動される論理回路26は、キ
ャッシュに対する入力ストリーム間の、すなわち、プロ
セッサに駆動されるアドレスとMバス・スヌープ・アド
レスの間のスイッチを制御する。クロックは論理回路2
6のMUXに送り込まれる。位相の1つで、プロセッサ
からアドレスへ向け、もう1つの位相ではスヌープ・ア
ドレスに向けられる。
ーラ多重処理システムにおいて用いられるので、新規の
解決法が開発された。交番位相のクロック・サイクルに
おいて、クロック・サイクル毎に1回、命令キャッシュ
及びデータ・キャッシュにアクセスされるので、それぞ
れ、交番サイクルにおいては自由のままである。すなわ
ち、データ・キャッシュは、クロック・サイクルの立ち
上がり区間において、プロセッサに検索を行うだけであ
り、クロック・サイクルの立ち下がり区間においては用
いられない。従って、クロック・サイクルの立ち下がり
区間において、データ・キャッシュ・タグ・アレイ25
及びデータ・キャッシュ・アレイ20は、検出されたス
ヌープの処理を行うことができる。同様に、クロック・
サイクルの立ち上がり区間において、命令キャッシュ
は、スヌープの処理を行うことができる。従って、不整
合の処理において、サイクルが損なわれることはなく、
タグ・アレイを追加する必要がない。従って、図3のプ
ロセッサのアドレス指定による交番サイクルおけるライ
ン42及び43においてスヌープが指示されている。ク
ロック・パルスによって駆動される論理回路26は、キ
ャッシュに対する入力ストリーム間の、すなわち、プロ
セッサに駆動されるアドレスとMバス・スヌープ・アド
レスの間のスイッチを制御する。クロックは論理回路2
6のMUXに送り込まれる。位相の1つで、プロセッサ
からアドレスへ向け、もう1つの位相ではスヌープ・ア
ドレスに向けられる。
【0035】TLB30、タグ・アレイ15及び25、
及び、データ・キャッシュ・アレイ10及び20は、二
重ポンピングすると言われている。すなわち、それぞ
れ、高いスループットを得るため、サイクル毎に2回ず
つアクセスされる。クロック・サイクル毎に1つの命令
だけしか処理できない先行技術によるシステムでは、性
能を高めるためには、クロック速度を高くする必要があ
った。この二重ポンピングは、多重処理システムだけで
しか実施する必要がない。これは、サイクル毎に2つ以
上の命令を実施することの可能な、任意の単一プロセッ
サ・システムでも有効である。
及び、データ・キャッシュ・アレイ10及び20は、二
重ポンピングすると言われている。すなわち、それぞ
れ、高いスループットを得るため、サイクル毎に2回ず
つアクセスされる。クロック・サイクル毎に1つの命令
だけしか処理できない先行技術によるシステムでは、性
能を高めるためには、クロック速度を高くする必要があ
った。この二重ポンピングは、多重処理システムだけで
しか実施する必要がない。これは、サイクル毎に2つ以
上の命令を実施することの可能な、任意の単一プロセッ
サ・システムでも有効である。
【0036】さらに、データ・キャッシュ及び命令キャ
ッシュは、交番位相において、サイクル毎に1回だけし
か利用されないので、サイクルの1つの位相において、
Mバス40からの行充填を行い、一方、次の位相におい
て、読み取りを行うことによって、機能停止することな
く、行充填とキャッシュ・アクセスが同時に行えるよう
にすることが可能である。これが、図3のタイミング・
ライン44及び45において示されている。この結果、
ミス時のキャッシングが、従来のキャッシング・システ
ムで通常可能な速度より速くなる。
ッシュは、交番位相において、サイクル毎に1回だけし
か利用されないので、サイクルの1つの位相において、
Mバス40からの行充填を行い、一方、次の位相におい
て、読み取りを行うことによって、機能停止することな
く、行充填とキャッシュ・アクセスが同時に行えるよう
にすることが可能である。これが、図3のタイミング・
ライン44及び45において示されている。この結果、
ミス時のキャッシングが、従来のキャッシング・システ
ムで通常可能な速度より速くなる。
【0037】望ましい実施例に関連して、本発明の解説
を行ってきたが、当この技術の熟練者であれば、もちろ
ん、本発明の精神及び範囲を逸脱することなく、各種修
正及び変更を施すことが可能である。従って、本発明
は、付属の請求項によって判断するのが望ましい。
を行ってきたが、当この技術の熟練者であれば、もちろ
ん、本発明の精神及び範囲を逸脱することなく、各種修
正及び変更を施すことが可能である。従って、本発明
は、付属の請求項によって判断するのが望ましい。
【図1】本発明の望ましい実施例に基づいて構成された
キャッシング・ハードウェアのブロック図である。
キャッシング・ハードウェアのブロック図である。
【図2】実行プロセスの仮想アドレスを形成するデータ
・ビットの配列を表した図である。
・ビットの配列を表した図である。
【図3】クロック・サイクルの交番位相において行われ
る各種操作を表したタイミング図である。
る各種操作を表したタイミング図である。
【図4】共用メモリ・バスによって、キャッシュをリン
クさせる、マルチ・プロセッサ・システムにおける2つ
のプロセッサを示すように構成された、ブロック図であ
る。
クさせる、マルチ・プロセッサ・システムにおける2つ
のプロセッサを示すように構成された、ブロック図であ
る。
10 命令キャッシュ・アレイ 15 命令タグ・アレイ 20 データ・キャッシュ・アレイ 25 データ・タグ・アレイ 26 論理回路 30 TLB 32 キャッシング装置 40 Mバス
フロントページの続き (72)発明者 アダム・アラミイ アメリカ合衆国 01890 マサチューセッ ツ州・ウィンチェスター・ワイルドウッド ストリート・39 (72)発明者 ラジヴ・エヌ・パテル アメリカ合衆国 95148 カリフォルニア 州・サン ホゼ・ホワイトサンド ドライ ブ・3116
Claims (3)
- 【請求項1】 プロセスの実行時に物理的アドレスに対
応する仮想アドレスを発生する少なくとも1つの中央演
算処理装置(CPU)と、少なくとも第1と第2の位相
を備えたサイクルを有するクロックと、それぞれ、物理
的アドレスで表示される複数の記憶場所を備える主メモ
リとを具備し、さらにキャッシュ・メモリ装置にアクセ
スするための仮想アドレスを伝送するための第1のバス
と、他の情報を前記キャッシュ・メモリ装置に伝送する
ための第2のバスを備えているコンピュータ・システム
で利用されるキャッシュ・メモリ装置において、 前記第1のバスに結合されて、それぞれ、クロック・サ
イクルの第1と第2の位相において第1と第2の仮想ア
ドレスを受信し、前記第1と第2の仮想アドレスを対応
する物理的アドレスに変換するアドレス変換バッファ
と、 前記第1のバス及び前記アドレス変換バッファに結合さ
れて、前記アドレス変換バッファが前記第1の仮想アド
レスを受信するのと同時に、クロック・サイクルの前記
第1の位相において前記第1の仮想アドレスの下位ビッ
トを受信し、その第1の仮想アドレスの下位ビットを利
用して、記憶されている物理的アドレスを判定し、さら
に、前記アドレス変換バッファに結合されて、変換され
た物理的アドレスを受信し、前記アドレス変換バッファ
からの前記変換された物理的アドレスと、下位ビットに
基づく第1のキャッシュ・タグ・アレイの索引付き位置
に配置された前記記憶されている物理的アドレスを比較
して、キャッシュ・ヒットを判定し、前記第2のバスに
結合されて、前記第1のバスからのアクセスがない場合
には、スヌープ・アドレスをモニターする、第1のキャ
ッシュ・タグ・アレイと、 前記第1のバスに結合されて、前記アドレス変換バッフ
ァ及び前記キャッシュ・タグ・アレイが前記第1の仮想
アドレスを受信するのと同時に、クロック・サイクルの
前記第1の位相において前記第1の仮想アドレスの下位
ビットを受信し、前記第1のキャッシュ・タグ・アレイ
が、前記第1の仮想アドレスに関するキャッシュ・ヒッ
トを表示すると、前記索引付き位置からのデータを前記
CPUに出力し、また、前記第2のバスに結合されて、
前記第1のバスからのアクセスがなければ、情報を受信
する、第1のキャッシュ・データ・アレイと、 前記第1のバス及び前記アドレス変換バッファに結合さ
れて、前記アドレス変換バッファが前記第2の仮想アド
レスを受信するのと同時に、クロック・サイクルの前記
第2の位相において、前記第2の仮想アドレスの下位ビ
ットを受信し、前記第2の仮想アドレスの下位ビットを
利用して、記憶されている物理的アドレスを判定し、さ
らに、前記アドレス変換バッファに結合されて、変換さ
れた物理的アドレスを受信し、前記アドレス変換バッフ
ァからの前記変換された物理的アドレスと、下位ビット
に基づく第2のキャッシュ・タグ・アレイの索引付き位
置に配置された前記記憶されている物理的アドレスを比
較して、キャッシュ・ヒットを判定し、前記第2のバス
に結合されて、前記第1のバスからのアクセスがない場
合には、スヌープ・アドレスをモニターする、第2キャ
ッシュ・タグ・アレイと、 前記第1のバスに結合されて、前記アドレス変換バッフ
ァ及び前記キャッシュ・タグ・アレイが前記第2の仮想
アドレスを受信するのと同時に、クロック・サイクルの
前記第2の位相において、前記第2の仮想アドレスの下
位ビットを受信し、前記第2のキャッシュ・タグ・アレ
イが、前記第2の仮想アドレスに関するキャッシュ・ヒ
ットを表示すると、前記索引付き位置からのデータを前
記CPUに出力し、また、前記第2のバスに結合され
て、前記第1のバスからのアクセスがなければ、情報を
受信する第2のキャッシュ・データ・アレイとから構成
され前記第1の仮想アドレスが、変換及びヒット判定の
ため、クロック・サイクルの立ち上がり区間において、
前記TLB(アドレス変換バッファ)及び前記第1のキ
ャッシュ・タグ・アレイ及び前記第1のキャッシュ・デ
ータ・アレイに供給され、前記クロック・サイクルの立
ち下がり区間において、前記第2の仮想アドレスが、前
記TLB及び前記第2のキャッシュ・タグ・アレイ及び
前記第2のキャッシュ・データ・アレイに供給されて、
この結果、各クロック・サイクル時に前記第1と前記第
2のキャッシュ・アレイからのキャッシングが可能にな
ることを特徴とするキャッシュ・メモリ装置。 - 【請求項2】 少なくとも1つの中央演算処理装置(C
PU)と、少なくとも第1と第2の位相を備えたサイク
ルを有するクロックと、キャッシュ・データ・アレイ及
びキャッシュ・タグ・アレイから成るキャッシュ装置を
備え、さらに、キャッシュ・メモリにアクセスするため
の仮想アドレスを伝送するための第1のバスと、他の情
報を前記キャッシュ・メモリに伝送するための第2のバ
スを備えているコンピュータ・システムにおいて、 前記第1のバス及び前記第2のバスに結合された第1の
キャッシュ・タグ・アレイが設けられており、前記クロ
ック・サイクルの第1の位相において、前記キャッシュ
・タグ・アレイが前記第1のバスからアクセスされ、前
記クロック・サイクルの第2の位相において、前記第1
のキャッシュ・タグ・アレイを利用して、前記第2のバ
スからスヌープ・アドレスを受信することができること
を特徴とするコンピュータシステム。 - 【請求項3】 アドレス変換バッファ、第1と第2のキ
ャッシュ・タグ・アレイ、及び、第1と第2のキャッシ
ュ・データ・アレイを備え、少なくとも2つの位相を有
するクロック・サイクルに応答して、対応する物理的ア
ドレスを備える仮想アドレスを利用する、スーパースケ
ーラ・マイクロプロセッサ・システムによってキャッシ
ングを行う方法において、 クロック・サイクルの第1の位相において、前記アドレ
ス変換バッファ、前記第1のキャッシュ・タグ・アレ
イ、及び、前記第1のキャッシュ・データ・アレイに仮
想アドレスを伝送するステップと、 前記アドレス変換バッファにおいて、前記仮想アドレス
の上位ビットを対応する物理的ページ・アドレスに変換
し、前記物理的ページ・アドレスを前記第1のキャッシ
ュ・タグ・アレイに与えるステップと、 前記変換ステップと同時に、前記仮想アドレスの下位ビ
ットによって表示される前記第1のキャッシュ・データ
・アレイの対応する位置に保持されたデータの物理的ア
ドレスを保持する、前記第1のキャッシュ・タグ・アレ
イの行に索引付けを行うステップと、 前記変換ステップと同時に、前記仮想アドレスの下位ビ
ットによって表示される前記第1のキャッシュ・データ
・アレイのブロックに索引付けを行うステップと、 前記変換された物理的アドレスと、前記第1のキャッシ
ュ・タグ・アレイの索引行に記憶された物理的アドレス
を比較して、キャッシュ・ヒットが生じるか否かを判定
するステップと、 キャッシュ・ヒットが生じると、前記マイクロプロセッ
サが、前記第1のキャッシュ・データ・アレイから前記
索引付きデータ・ブロックに対するアクセスが行えるよ
うにするステップと、 クロック・サイクルの第2の位相において、前記アドレ
ス変換バッファ、前記第2のキャッシュ・タグ・アレ
イ、及び、前記第2のキャッシュ・データ・アレイに仮
想アドレスを伝送するステップと、 前記アドレス変換バッファにおいて、前記仮想アドレス
の上位ビットを対応する物理的ページ・アドレスに変換
し、前記物理的ページ・アドレスを前記第2のキャッシ
ュ・タグ・アレイに与えるステップと、 前記変換ステップと同時に、前記仮想アドレスの下位ビ
ットによって表示される、前記第2のキャッシュ・デー
タ・アレイの対応する位置に保持されたデータの物理的
アドレスを保持する、前記第2のキャッシュ・タグ・ア
レイの行に索引付けを行うステップと、 前記変換ステップと同時に、前記仮想アドレスの下位ビ
ットによって表示される前記第2のキャッシュ・データ
・アレイのブロックに索引付けを行うステップと、 前記変換された物理的アドレスと、前記第2のキャッシ
ュ・タグ・アレイの索引行に記憶された物理的アドレス
を比較して、キャッシュ・ヒットが生じるか否かを判定
するステップと、 キャッシュ・ヒットが生じると、前記マイクロプロセッ
サが、前記第2のキャッシュ・データ・アレイから前記
索引付きデータ・ブロックに対するアクセスが行えるよ
うにするステップとから構成されるキャッシング方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US875,692 | 1992-04-29 | ||
US07/875,692 US5440707A (en) | 1992-04-29 | 1992-04-29 | Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0644138A true JPH0644138A (ja) | 1994-02-18 |
JP3473772B2 JP3473772B2 (ja) | 2003-12-08 |
Family
ID=25366209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12041593A Expired - Fee Related JP3473772B2 (ja) | 1992-04-29 | 1993-04-26 | キャッシュ・メモリを利用したデータ処理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US5440707A (ja) |
JP (1) | JP3473772B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010050799A (ko) * | 1999-10-01 | 2001-06-25 | 가나이 쓰토무 | 개선된 메모리 관리 유닛 및 캐시 메모리를 갖춘마이크로프로세서 |
JP2009524168A (ja) * | 2006-01-20 | 2009-06-25 | クゥアルコム・インコーポレイテッド | 効率的なメモリ階層管理 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905997A (en) * | 1994-04-29 | 1999-05-18 | Amd Inc. | Set-associative cache memory utilizing a single bank of physical memory |
US6223255B1 (en) * | 1995-02-03 | 2001-04-24 | Lucent Technologies | Microprocessor with an instruction level reconfigurable n-way cache |
US5897654A (en) * | 1995-02-10 | 1999-04-27 | International Business Machines Corporation | Method and system for efficiently fetching from cache during a cache fill operation |
US5659710A (en) * | 1995-11-29 | 1997-08-19 | International Business Machines Corporation | Cache coherency method and system employing serially encoded snoop responses |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5875469A (en) * | 1996-08-26 | 1999-02-23 | International Business Machines Corporation | Apparatus and method of snooping processors and look-aside caches |
US6012131A (en) * | 1996-11-06 | 2000-01-04 | Hyundai Electronics Industries. Co., Ltd. | High speed translation lookaside buffer employing content address memory |
GB2323187B (en) * | 1997-03-14 | 2001-09-19 | Nokia Mobile Phones Ltd | Data processing circuit using both edges of a clock signal |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
US6119204A (en) * | 1998-06-30 | 2000-09-12 | International Business Machines Corporation | Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization |
US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
US6487671B1 (en) * | 1998-09-29 | 2002-11-26 | International Business Machines Corporation | Elimination of turnaround cycles on multiplexed address/data buses |
US6529968B1 (en) * | 1999-12-21 | 2003-03-04 | Intel Corporation | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces |
JP2004094807A (ja) * | 2002-09-03 | 2004-03-25 | Toshiba Corp | 命令キャッシュおよびマイクロプロセッサとその設計方法 |
US7552436B2 (en) * | 2003-11-25 | 2009-06-23 | International Business Machines | Memory mapped input/output virtualization |
US7234037B2 (en) * | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
US7206916B2 (en) * | 2004-03-08 | 2007-04-17 | Sun Microsystems, Inc. | Partial address compares stored in translation lookaside buffer |
US7460989B2 (en) * | 2004-10-14 | 2008-12-02 | International Business Machines Corporation | Method and apparatus for modeling multiple concurrently dispatched instruction streams in super scalar CPU with a sequential language |
US20060095690A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method, and storage medium for shared key index space for memory regions |
US7502913B2 (en) | 2006-06-16 | 2009-03-10 | Microsoft Corporation | Switch prefetch in a multicore computer chip |
US8296482B2 (en) * | 2010-06-27 | 2012-10-23 | Intel Corporation | Translating requests between full speed bus and slower speed device wherein the translation logic is based on snoop result and modified cache state |
US20120124329A1 (en) | 2010-11-17 | 2012-05-17 | Mccombs Edward M | Translation Lookaside Buffer Structure Including a Data Array Having an Integrated Multiplexer |
JP6088951B2 (ja) | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US10069727B2 (en) | 2015-04-17 | 2018-09-04 | International Business Machines Corporation | Data packet retransmission processing |
US20170002465A1 (en) | 2015-06-30 | 2017-01-05 | Lam Research Corporation | Separation of Plasma Suppression and Wafer Edge to Improve Edge Film Thickness Uniformity |
JP5992592B1 (ja) | 2015-09-16 | 2016-09-14 | 株式会社東芝 | キャッシュメモリシステム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4953930A (en) * | 1989-03-15 | 1990-09-04 | Ramtech, Inc. | CPU socket supporting socket-to-socket optical communications |
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
US5222222A (en) * | 1990-12-18 | 1993-06-22 | Sun Microsystems, Inc. | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
US5317711A (en) * | 1991-06-14 | 1994-05-31 | Integrated Device Technology, Inc. | Structure and method for monitoring an internal cache |
US5335335A (en) * | 1991-08-30 | 1994-08-02 | Compaq Computer Corporation | Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed |
-
1992
- 1992-04-29 US US07/875,692 patent/US5440707A/en not_active Expired - Lifetime
-
1993
- 1993-04-26 JP JP12041593A patent/JP3473772B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010050799A (ko) * | 1999-10-01 | 2001-06-25 | 가나이 쓰토무 | 개선된 메모리 관리 유닛 및 캐시 메모리를 갖춘마이크로프로세서 |
JP2009524168A (ja) * | 2006-01-20 | 2009-06-25 | クゥアルコム・インコーポレイテッド | 効率的なメモリ階層管理 |
Also Published As
Publication number | Publication date |
---|---|
JP3473772B2 (ja) | 2003-12-08 |
US5440707A (en) | 1995-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3473772B2 (ja) | キャッシュ・メモリを利用したデータ処理システム | |
EP0088239B1 (en) | Multiprocessor cache replacement under task control | |
US7366829B1 (en) | TLB tag parity checking without CAM read | |
KR920005280B1 (ko) | 고속 캐쉬 시스템 | |
US6920531B2 (en) | Method and apparatus for updating and invalidating store data | |
JP3927556B2 (ja) | マルチプロセッサ・データ処理システム、変換索引バッファ無効化インストラクション(tlbi)のハンドリングを行うための方法、およびプロセッサ | |
US5392410A (en) | History table for prediction of virtual address translation for cache access | |
US5694568A (en) | Prefetch system applicable to complex memory access schemes | |
US7617378B2 (en) | Multiprocessor system with retry-less TLBI protocol | |
US5897655A (en) | System and method for cache replacement within a cache set based on valid, modified or least recently used status in order of preference | |
JP4065660B2 (ja) | 機能が並列に分散された変換索引バッファ | |
EP0243724A2 (en) | Multilevel storage hierarchy with a variable address mode | |
US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
US11775445B2 (en) | Translation support for a virtual cache | |
JPH07295886A (ja) | 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法 | |
US8127085B2 (en) | Method and apparatus for pipeline inclusion and instruction restarts in a micro-op cache of a processor | |
CA2240616C (en) | Cache address generation | |
JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
US6338128B1 (en) | System and method for invalidating an entry in a translation unit | |
JP2845754B2 (ja) | マルチプロセッサシステム | |
JPH06187244A (ja) | アドレス変換バッファ機構 | |
JPH0683709A (ja) | データ処理装置 | |
EP0362366A4 (en) | Instruction cache flush-on-rei control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |