JPH06208508A - キャッシュタグメモリ - Google Patents

キャッシュタグメモリ

Info

Publication number
JPH06208508A
JPH06208508A JP5274530A JP27453093A JPH06208508A JP H06208508 A JPH06208508 A JP H06208508A JP 5274530 A JP5274530 A JP 5274530A JP 27453093 A JP27453093 A JP 27453093A JP H06208508 A JPH06208508 A JP H06208508A
Authority
JP
Japan
Prior art keywords
memory
cache
port
memory array
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5274530A
Other languages
English (en)
Inventor
David Charles Mcclure
シー. マククルーア デイビッド
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.)
STMicroelectronics lnc USA
Original Assignee
SGS Thomson Microelectronics 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 SGS Thomson Microelectronics Inc filed Critical SGS Thomson Microelectronics Inc
Publication of JPH06208508A publication Critical patent/JPH06208508A/ja
Pending 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays

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)【要約】 (修正有) 【目的】 キャッシュメモリの一貫性を維持すると共に
専用面積を減少させる。 【構成】 ローカルプロセサによってアクセスされる第
一ポートがそれと対応する単一ポートメモリアレイ40
及びデュアルポートメモリアレイ48から読取りを行な
い及びそれに対して書込みを行なうことが可能である。
グローバルシステムバスを介してアクセスされる第二ポ
ートもそれに対応する第二単一ポートメモリアレイ44
及びデュアルポートメモリアレイ48から読取りを行な
い及びそれに対して書込みを行なうことが可能である。
両方のポートは互いに非同期的に動作する。第一及び第
二単一ポートメモリアレイにおけるエントリのステータ
スを表わすステータスビットがデュアルポートメモリア
レイ内に格納されており、且つローカルプロセサがその
動作を行なっている間にグローバルシステムによって変
更することが可能である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、大略、デジタルコンピ
ュータシステムに関するものであって、更に詳細には、
キャッシュメモリに関するものである。
【0002】
【従来の技術】システム性能を改善するために多くのコ
ンピュータシステムにおいてキャッシュメモリが使用さ
れている。キャッシュメモリは、中央プロセサとメイン
システムメモリとの間に存在する比較的小型で高速のメ
モリである。該プロセサがキャッシュメモリ内に格納さ
れているメモリ位置の内容を読取る場合には、このよう
な位置へアクセスするのに必要な時間が著しく減少され
る。良好なキャッシュ技術は、90%をはるかに超える
「ヒット率」を与えることが可能であり、そのことは、
90%を超える読取動作に対してメインメモリのアクセ
スが必要とはされないことを意味している。キャッシュ
内に格納されているデータのアクセスは、3倍乃至10
倍アクセス時間を改善することが可能である。
【0003】キャッシュは、二つの異なったタイプのメ
モリを必要とする機能を行なう。第一のタイプはデータ
メモリであり、その中にデータが実際に格納される。第
二のタイプはタグメモリ又はタグRAMとして知られて
いるものであり、それはキャッシュ内にどのメモリ位置
が実際に格納されるかを決定するために使用される。一
般的に、キャッシュタグRAMはデータキャッシュのエ
ントリに対応する複数個のエントリを有している。各エ
ントリは中央プロセサによって発生されるアドレスのあ
る数の最小桁ビットによってインデックスされ、タグエ
ントリ自身は対応するデータキャッシュエントリ内に格
納されているメモリ位置の最大桁ビットを有している。
キャッシュタグ内に格納されている最大桁ビットが現在
発生されているアドレスの最大桁ビットと一致する場合
には、このアドレスの最小桁ビットがタグRAMに対す
るインデックスとして作用し、キャッシュ「ヒット」が
発生し且つ読取られるべきデータを対応するデータキャ
ッシュエントリから取ることが可能である。所望のアド
レスに対応するデータがデータキャッシュ内に位置され
ていない場合には、タグエントリはそのアドレスの最大
桁ビットと一致せず、従って「ミス」が発生する。この
ことは、データがメインシステムメモリから検索され且
つデータキャッシュ内に配置されねばならないことを表
わしている。この時に、キャッシュタグエントリの現在
の内容が新たに検索されたアドレスの最大桁ビットによ
って上書きされる。
【0004】マルチプロセサシステムにおいては、シス
テム内の各プロセサにそれ自身のキャッシュメモリを設
けることが可能である。各ローカルプロセサは可能であ
る場合にはいつでもそれ自身のキャッシュにアクセス
し、且つ必要である場合のみシステムバスを介してメイ
ンシステムメモリへアクセスする。
【0005】この状態は「キャッシュ一貫性問題(ca
che coherency problem)」とし
て知られる重要な問題を導入する。この問題は、メイン
システムメモリ内の共用変数がシステム内の二つ以上の
プロセサによってアクセスすることが可能である場合に
発生する。これらのプロセサはローカルな中央処理装置
であるか又はバスへ取りつけられた入力/出力装置とす
ることが可能である。このキャッシュ一貫性問題は、単
一のメモリ位置が二つ以上のローカルキャッシュによっ
てキャッシュされる場合に発生する。これらのプロセサ
のうちの一つは新たな値をそのメモリ位置へ書込む場合
には、それは他のキャッシュにおいて現在キャッシュさ
れている同一の変数又はメインメモリ位置の値と不一致
である。非キャッシュ装置が別の装置によってキャッシ
ュされているシステムメモリ内の位置へ書込みを行なう
場合にもこのキャッシュ一貫性問題が発生する。
【0006】キャッシュ一貫性問題を取扱う場合に使用
する一つの技術は、キャッシュを有する全てのローカル
プロセサをして常にメインシステムバスをモニタ即ち
「スヌープ(偵察)」させることである。別のプロセサ
又は装置がローカルキャッシュ内に現在格納されている
メモリ位置へデータを書込む場合には、ローカルキャッ
シュエントリは無効化される。その位置が後にローカル
プロセサによってアクセスされる場合には、アップデー
トされたデータがメインシステムメモリから検索され
る。
【0007】然しながら、このような態様でデュアルポ
ートメモリアレイを使用することによって、タグRAM
チップ上において面積に関するペナルティが発生する。
何故ならば、単一ポートメモリアレイと比較して、デュ
アルポートメモリは、2.5乃至3.5倍又はそれ以上
長いものとなる場合があるからである。
【0008】
【発明が解決しようとする課題】従って、本発明は、キ
ャッシュメモリの一貫性を維持しながら空間を節約する
ことの可能なキャッシュタグメモリを提供することを目
的とする。
【0009】
【課題を解決するための手段】本発明によれば、第一単
一ポートメモリアレイと、第二単一ポートメモリアレイ
と、デュアルポートメモリアレイとを有するメモリアレ
イを具備するキャッシュタグメモリ装置が提供される。
ローカルプロセサによってアクセスされる第一ポート
は、それに対応する単一ポートメモリアレイ及びデュア
ルポートメモリアレイから読取りを行なうことが可能で
あり且つそれに対して書込みを行なうことが可能であ
る。グローバルシステムバスを介してアクセスされる第
二ポートも、それの対応する第二単一ポートメモリアレ
イ及びデュアルポートメモリアレイから読取りを行なう
ことが可能であり且つそれに対して書込みを行なうこと
が可能である。両方のポートは互いに非同期的に動作す
る。第一及び第二単一ポートメモリアレイにおけるエン
トリのステータスを表わすステータスビットはデュアル
ポートメモリアレイ内に格納され、且つローカルプロセ
サがその動作を実行している間にグローバルシステムに
よって変更させることが可能である。
【0010】
【実施例】図1を参照すると、マルチプロセサコンピュ
ータシステムが示されており、それは大略参照番号10
で示してある。ローカルプロセサ12,14,16の各
々はローカルキャッシュメモリ18,20,22が設け
られている。プロセサ12,14,16は、システムバ
ス26を介して、相互に通信を行なうと共にメインシス
テムメモリ24と通信を行なう。複数個の入力/出力装
置28,30もシステムバス26へ取付けられている。
入力/出力装置28,30は、典型的には、ローカルキ
ャッシュメモリを有するものではない。
【0011】種々のローカルキャッシュメモリ18,2
0,22内に格納されている共用変数間の一貫性を維持
することの問題はいくつかの態様で発生する場合があ
る。例えば、その一つの態様においては、ローカルキャ
ッシュメモリ18及び20が各々メインシステムメモリ
24から共用変数のコピーを有する場合がある。ローカ
ルプロセサ14が共用変数の値をアップデートすると、
ローカルキャッシュメモリ20はメインシステムメモリ
24と同様にアップデートされる。キャッシュメモリ1
8のコヒーランシィ即ち一貫性を確保するために、19
90年1月31日付で出願した「デュアルポートキャッ
シュタグメモリ(DUAL−PORT CACHE T
AG MEMORY)」という名称の米国特許出願第0
7/473239号に開示されるような技術を使用し
て、キャッシュメモリ18内に格納されているそのよう
な局所的変数に対して時代遅れとなった値が無効なもの
としてマークが付けられることを確保する。入力/出力
装置28がメインメモリ24へ値を書込む場合に同様の
状態が発生する場合がある。このようなメモリ位置が前
にローカルキャッシュメモリ18内においてキャッシュ
されている場合には、ローカルキャッシュメモリ18内
のデータ及び現在のメモリデータは同一のものではな
い。
【0012】図2を参照すると、本発明に基づいてキャ
ッシュタグメモリを使用するキャッシュメモリを示した
高レベルブロック線図が図示されている。単一又はマル
チプロセサシステムにおいてキャッシュのコヒーランシ
ィ即ち一貫性を確保するための好適なシステムも示され
ている。データキャッシュ32及びキャッシュタグRA
M34はシステムバス26及びローカルプロセサ36と
通信を行なう。キャッシュコントローラ38は単一プロ
セサシステムの場合に使用するのに適したキャッシュに
おいて見出される通常のキャッシュ制御機能を実施す
る。
【0013】データキャッシュ32はキャッシュコント
ローラ38の制御下においてローカルプロセサ36及び
システムバス26とデータの交換を行なう。種々の制御
信号がローカルプロセサ36及びキャッシュコントロー
ラ38によって交換され且つキャッシュコントローラ3
8及びシステムバス26との間において交換される。ア
ドレス及び制御信号がローカルプロセサ36からキャッ
シュタグRAM34へ通信される。アドレス及び制御信
号は、更に、キャシュタグRAM34とシステムバス2
6との間において通信される。
【0014】あるキャッシュメモリフォーマットにおい
ては、制御信号SWがシステムバス26からキャッシュ
タグRAM34へ通信されて、スヌープ(偵察)書込み
として言及される書込動作がシステムバス26上におい
て発生していることを表わす。スヌープ書込み動作期間
中にシステムバスアドレスがキャッシュタグRAM34
におけるエントリと一致する場合には、制御信号MTC
B がシステムバス26へ帰還される。信号MTCHB
はキャッシュ制御機能の実施においてシステムによって
所望により使用することが可能である。
【0015】キャッシュタグRAM34は、更に、信号
MTCHA をキュッシュコントローラ38へパスする。
MTCHA 信号は、現在ローカルプロセサ36によって
アドレスされているメモリ位置がデータキャッシュ32
内に存在していることを表わすと共に、そのエントリが
現在有効であることを表わす。従って、キャッシュコン
トローラ38は、ローカルプロセサ36によってアクセ
スされている位置をしてデータキャッシュ32から直接
的に読みとらせる。信号MTCHA がミスを表わす場合
には、キャッシュコントローラ38は、アドレス位置の
内容をシステムバス26を介してメインメモリからアク
セスさせる。
【0016】図3は大略参照番号34によって示した好
適なキャッシュタグメモリを示したブロック図である。
キャッシュタグメモリ34は対応する行デコーダ42を
具備する第一単一ポートメモリアレイ40を有してい
る。好適実施例においては、この第一単一ポートメモリ
アレイ40はローカルプロセサに対して専用のものであ
る。第二単一ポートメモリアレイ44及び対応する行デ
コーダ46は、好適には、システム乃至はメインメモリ
に対して専用のものである。最後に、デュアルポートメ
モリアレイ48が、キャッシュメモリに関する情報即ち
ステータスビットを格納するために使用される。デュア
ルポートメモリアレイ48内に格納されるステータスビ
ットは、第一及び第二単一ポートメモリアレイ40,4
4の両方によって共用される。ステータスビットの例
は、スヌープ有効ビット、パリティビット、又はMOE
SIプロトコルのために必要なビットなどがある。MO
ESIは、修正され(Modified)、所有され
(Owned)、排他的で(Exclusive)、共
用され(Shared)、且つ無効な(Invali
d)状態を表わしており、キャッシュ状態を表示するた
めに使用される。基本的には、ローカルプロセサがその
動作を実行中にシステムポートによって変更することの
可能な任意のビットがデュアルポートメモリアレイ48
内に格納される。
【0017】デュアルポートメモリアレイと単一ポート
メモリアレイとの間の寸法差は、2.5乃至3.5倍大
きいか又はそれ以上大きなものとすることが可能であ
る。従って、二個の単一ポートメモリアレイと一個の小
型のデュアルポートメモリアレイとを有するキャッシュ
タグメモリを設けることによって、チップ上の空間を節
約することが可能である。例えば、全てがデュアルポー
トキャッシュタグメモリである場合と本発明のこの好適
なキャッシュタグメモリとの間の所要面積の差は、16
ビット幅+2ステータスビット(全部で18ビット幅)
であるタグを使用するキャッシュタグメモリに対して以
下に計算してある。
【0018】全てがデュアルポート: 18ビット×R 好適なキャッシュタグ: (2ビット×R)(16ビッ
ト×2) 単一ポートメモリアレイの寸法に対するデュアルポート
の寸法の比は変数Rで示してある。R=2.5である場
合には、全デュアルポートキャッシュタグメモリは好適
なキャッシュタグメモリよりも22%大きい。R=3.
0である場合には、全デュアルポートキャッシュタグメ
モリは42%大きなものである。最後に、R=3.5で
ある場合には全デュアルポートキャッシュタグメモリは
好適なキャッシュタグメモリアレイよりも62%大きな
ものである。
【0019】図4を参照すると、好適なキャッシュタグ
RAM34のブロック図が示されている。キャッシュタ
グRAM34はローカルプロセサに対して専用の第一単
一ポートメモリアレイ40と、システム乃至はメインメ
モリに対して専用の第二単一ポートメモリアレイ44
と、デュアルポートメモリアレイ48とを有している。
上述した如く、デュアルポートメモリアレイ48は、キ
ャッシュメモリに関する情報乃至はステータスビットを
格納し、且つそのエントリは二個の単一ポートメモリ4
0,44によって共用される。
【0020】第一単一ポートメモリアレイ40は、ロー
カルプロセサからのアドレスの最小桁ビット(LSB)
によってアドレスされる。ローカルアドレスの最大桁ビ
ット(MSB)は比較器50へ入力され、そこで、それ
らの最大桁ビットはライン52上で得られるローカルア
ドレスLSBによって現在選択されている第一単一ポー
トメモリアレイ40のエントリと比較される。その選択
されたエントリがローカルアドレスの最大桁ビット即ち
MSBと一致する場合には論理1が比較器50から出力
され、且つANDビット54の一方の入力端へ供給され
る。対応するアドレスからのスヌープ有効ビット56も
ANDゲート54への入力として供給され、且つAND
ゲート54の出力は信号MTCHA を定義する。従っ
て、ローカルアドレスの最小桁ビット即ちLSBによっ
てインデックスされる第一単一ポートメモリアレイ40
がローカルアドレスのMSBと一致する場合にのみ信号
MSCHA は論理1であってキャッシュヒットが発生し
たことを表わし、且つそのエントリに対する対応するス
ヌープ有効ビット56は論理1である。
【0021】第二単一ポートメモリアレイ44はシステ
ムアドレスの最小桁ビット即ちOSBによってアドレス
される。アレイ内のこのような位置に対応するエントリ
はデータライン58上に出力され且つ比較器60へ供給
される。比較器60は、ライン58上に存在するエント
リをシステムアドレスの最大桁ビット即ちMSBと比較
し、それらが一致する場合には論理1を発生する。比較
器60の出力はANDゲート62,64の両方の一方の
入力端へ供給される。システムアドレスの最小桁ビット
即ちLSBによってインデックスされるエントリのスヌ
ープ有効ビット56はANDゲート62へ供給される。
信号MTCHB はその選択されたエントリがシステムア
ドレスの最大桁ビット即ちLSBと一致する場合のみ、
論理1であり、且つスヌープ有効ビット56は論理1の
値を有している。然しながら、あるキャッシュシステム
はこのような態様でスヌープ有効ビット56がモニタさ
れることを必要とするものではなく、従って選択された
エントリがシステムアドレスの最大桁ビット即ちMSB
と一致する場合には、信号MTCHB は論理1である。
【0022】あるキャッシュフォーマットにおいては、
スヌープ書込信号(SW)をANDゲート64の第二入
力端へ供給することが望ましい。システムバス上のアド
レスMSBがシステムアドレスLSBによってインデッ
クスされる第二単一ポートメモリアレイ44におけるエ
ントリと一致する場合にのみANDゲート64の出力は
論理1であり、且つ書込動作がシステムバス上において
実行される。このような場合には、このようなエントリ
に対するデータキャッシュにおいて格納されている値は
もはや時代遅れのものであり、無効なものとしてマーク
が付けられねばならない。ANDゲート64の出力が論
理1である場合には、現在のシステムアドレスのLSB
によってインデックスされるエントリのスヌープ有効ビ
ットは論理0へリセットされる。このことは、ローカル
プロセサによるこのエントリの爾後のアクセスをミスと
して表示させる。何故ならば、このようなエントリに対
するANDゲート54の出力は現在のところ論理0だか
らである。
【0023】データキャッシュが再ロードされている場
合には、キャッシュタグRAM34に対する書込みを行
なうことを必要とし、所望のアドレスがローカルバス及
びシステムバスの両方の上に表われる。アドレスタグは
第一単一ポートメモリアレイ40内に書込まれ、且つ第
二単一ポートメモリアレイ44における対応するセル内
に書込まれる。この時に、ステータスビットもデュアル
ポートメモリアレイ48内に書込まれる。図3に関して
説明した如くスヌープ(偵察)動作が行なわれ、従って
スヌープヒットが登録される場合にエントリが無効化さ
れ即ちステータスビットが変更される。ステータスビッ
トセルのデュアルポートの特性によってシステムによっ
てステータスビットが変更されるので、ローカルプロセ
サは中断されることは必要ではない。
【0024】上述した如く、本発明によれば、RAMチ
ップ上の空間を著しく節約することが可能である。単一
ポートメモリアレイとデュアルポートメモリアレイの両
方を有するキャッシュタグメモリアレイを使用すること
によって、空間を著しく節約することが可能である。こ
のことは、デュアルポートメモリアレイは単一ポートメ
モリアレイよりも2.5乃至3.5倍又はそれ以上大き
なものとなる場合があるからである。
【0025】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図面の簡単な説明】
【図1】 マルチプロセサコンピュータシステムを示し
た高レベルブロック図。
【図2】 本発明に基づくキャッシュタグメモリを使用
したキャッシュメモリを示した高レベルブロック図。
【図3】 好適なキャッシュタグメモリを示したブロッ
ク図。
【図4】 好適なキャッシュタグメモリの更に詳細な構
成を示したブロック図。
【符号の説明】
10 マルチプロセサコンピュータシステム 12,14,16 ローカルプロセサ 18,20,22 ローカルキャッシュメモリ 24 メインシステムメモリ 26 システムバス 28,30 入力/出力装置 32 データキャッシュ 34 キャッシュタグRAM 36 ローカルプロセサ 38 キャッシュコントローラ

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュタグメモリにおいて、 複数個のエントリを持った第一単一ポートメモリアレ
    イ、 前記第一単一ポートメモリアレイにおける複数個のエン
    トリに対応する複数個のエントリを持ったデュアルポー
    トメモリアレイ、 前記第一単一ポートメモリアレイ及び前記デュアルポー
    トメモリアレイにおける前記複数個のエントリに対応す
    る複数個のエントリを持った第二単一ポートメモリアレ
    イ、 前記第一単一ポートメモリアレイ及び前記デュアルポー
    トメモリアレイへのエントリを書込むことが可能であり
    且つ前記第一単一ポートメモリアレイ及び前記デュアル
    ポートメモリアレイからエントリを読取ることが可能な
    第一メモリポート、 前記第二単一ポートメモリアレイ及び前記デュアルポー
    トメモリアレイからエントリを読取ることが可能であり
    且つ前記デュアルポートメモリアレイへエントリを書込
    むことが可能な第二メモリポート、 前記第一ポートへ接続されておりローカルアドレスの第
    一部分によって選択されるアレイエントリを前記ローカ
    ルアドレスの第二部分と比較し且つ一致を表わす信号を
    発生する第一比較器、 前記第二ポートへ接続されておりグローバルアドレスの
    第一部分によって選択されるアレイエントリを前記グロ
    ーバルアドレスの第二部分と比較し且つ一致を表わす信
    号を発生する第二比較器、を有することを特徴とするキ
    ャッシュタグメモリ。
  2. 【請求項2】 請求項1において、前記第一メモリポー
    トが前記第二単一ポートメモリアレイ内へのエントリを
    書込むことが可能であることを特徴とするキャッシュタ
    グメモリ。
  3. 【請求項3】 請求項1において、前記第二メモリポー
    トが前記第二単一ポートメモリアレイ内へのエントリを
    書込むことが可能であることを特徴とするキャッシュタ
    グメモリ。
  4. 【請求項4】 請求項1において、前記第一及び第二単
    一ポートメモリアレイ内に格納されているエントリの有
    効性を表わすために前記デュアルポートメモリアレイ内
    に一個又は複数個のビットから構成される有効状態が格
    納されていることを特徴とするキャッシュタグメモリ。
  5. 【請求項5】 請求項4において、前記エントリに対応
    する前記有効状態が、新たな値が前記エントリへ書込ま
    れる場合に第一値へ設定されることを特徴とするキャッ
    シュタグメモリ。
  6. 【請求項6】 請求項5において、更に、グローバルシ
    ステムアドレスの第一部分によってインデックスされる
    前記エントリの値が前記グローバルシステムアドレスの
    第二部分と同一であって、その際に一致を画定するか否
    かを決定する比較論理と、グローバルシステム書込動作
    期間中に一致が発生する場合にこのようにインデックス
    されたエントリに対応する前記第一有効状態を第二値へ
    設定する論理手段、を有することを特徴とするキャッシ
    ュタグメモリ。
  7. 【請求項7】 請求項6において、更に、グローバルシ
    ステム読取動作期間中に一致が発生する場合にはこのよ
    うなインデックスされたエントリに対応する前記第一有
    効状態を前記第二値へ設定する論理手段を有することを
    特徴とするキャッシュタグメモリ。
  8. 【請求項8】 請求項6において、前記比較論理が、前
    記第一比較器の出力及び前記有効状態と論理的に結合さ
    れた論理ゲートを有することを特徴とするキャッシュタ
    グメモリ。
  9. 【請求項9】 請求項8において、前記比較論理が、前
    記第二比較器の出力及び前記有効状態と論理的に結合さ
    れた論理ゲートを有することを特徴とするキャッシュタ
    グメモリ。
  10. 【請求項10】 請求項6において、前記論理手段が、
    前記第二比較器の出力及びスヌープ書込信号と論理的に
    結合された論理ゲートを有することを特徴とするキャッ
    シュタグメモリ。
  11. 【請求項11】 請求項1において、更に、前記第一及
    び第二単一ポートメモリアレイ内へ書込むための制御回
    路を有することを特徴とするキャッシュタグメモリ。
  12. 【請求項12】 請求項1において、前記デュアルポー
    トメモリアレイ内の少なくとも一つのビット位置がパリ
    ティビットを有することを特徴とするキャッシュタグメ
    モリ。
  13. 【請求項13】 キャッシュメモリにおいて、 少なくとも一個のローカルプロセサ、 第一単一ポートメモリアレイ部分、第二単一ポートメモ
    リアレイ部分、デュアルポートメモリアレイ部分を具備
    するキャッシュタグメモリ、 複数個のエントリを格納するデータキャッシュ、 前記ローカルプロセサとシステムバスとの間でデータ又
    は制御信号の交換を制御するキャッシュコントローラ、 前記ローカルプロセサによってアドレスされるメモリ位
    置が前記データキャッシュ内に存在することを表わすた
    めに第一一致信号を発生する手段、 前記ローカルプロセサによってアドレスされるメモリ位
    置が有効であることを表わす有効信号発生手段、 システムバスによってアドレスされるメモリ位置が前記
    キャッシュタグメモリ内のエントリと一致することを表
    わす第二一致信号を発生する手段、を有することを特徴
    とするキャッシュメモリ。
  14. 【請求項14】 請求項13において、更に、システム
    バス上で書込動作が発生することを表わすシステムバス
    からのキャッシュタグメモリへ通信すべき制御信号を発
    生する手段を有することを特徴とするキャッシュメモ
    リ。
  15. 【請求項15】 請求項13において、更に、エントリ
    がグローバルにアクセスされる場合に前記キャッシュタ
    グ内のエントリを無効化させる手段を有することを特徴
    とするキャッシュメモリ。
  16. 【請求項16】 請求項13において、システムバスに
    よってアドレスされるメモリ位置が前記キャッシュタグ
    メモリ内のエントリと一致することを表わす第二一致信
    号を発生する前記手段が、書込動作がシステムバス上で
    発生している場合に発生することを特徴とするキャッシ
    ュメモリ。
JP5274530A 1992-11-02 1993-11-02 キャッシュタグメモリ Pending JPH06208508A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/970,188 US5513335A (en) 1992-11-02 1992-11-02 Cache tag memory having first and second single-port arrays and a dual-port array
US970188 1992-11-02

Publications (1)

Publication Number Publication Date
JPH06208508A true JPH06208508A (ja) 1994-07-26

Family

ID=25516552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5274530A Pending JPH06208508A (ja) 1992-11-02 1993-11-02 キャッシュタグメモリ

Country Status (4)

Country Link
US (1) US5513335A (ja)
EP (1) EP0596636B1 (ja)
JP (1) JPH06208508A (ja)
DE (1) DE69317729T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100492041B1 (ko) * 1996-11-14 2005-08-25 프리스케일 세미컨덕터, 인크. 캐시를구비한데이터처리시스템및그방법
JP2008521114A (ja) * 2004-11-24 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ローカルメモリデータのコヒーレントなキャッシュ処理

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
US5640534A (en) * 1994-10-05 1997-06-17 International Business Machines Corporation Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
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
US5822758A (en) * 1996-09-09 1998-10-13 International Business Machines Corporation Method and system for high performance dynamic and user programmable cache arbitration
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6195674B1 (en) 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
KR100255510B1 (ko) * 1997-05-09 2000-05-01 김영환 원포트램셀구조로이루어진캐시데이터램
US6292705B1 (en) 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US6418537B1 (en) 1997-12-07 2002-07-09 Conexant Systems, Inc. Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL
US6633945B1 (en) 1997-12-07 2003-10-14 Conexant Systems, Inc. Fully connected cache coherent multiprocessing systems
US6516442B1 (en) 1997-12-07 2003-02-04 Conexant Systems, Inc. Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
US6341337B1 (en) 1998-01-30 2002-01-22 Sun Microsystems, Inc. Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic
US7035981B1 (en) * 1998-12-22 2006-04-25 Hewlett-Packard Development Company, L.P. Asynchronous input/output cache having reduced latency
US6469988B1 (en) 1999-07-08 2002-10-22 Conexant Systems, Inc. Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals
GB2419005B (en) * 2002-04-22 2006-06-07 Micron Technology Inc Providing a register file memory with local addressing in a SIMD parallel processor
KR100543932B1 (ko) * 2003-04-30 2006-01-23 주식회사 하이닉스반도체 초기화 동작시간이 감소된 태그블럭을 구비하는 반도체 메모리 장치 및 그의 구동방법
KR100522431B1 (ko) * 2003-04-30 2005-10-20 주식회사 하이닉스반도체 리프레쉬 동작이 향상된 고속 데이터 억세스를 위한반도체 메모리 장치
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
US8208418B1 (en) * 2009-01-16 2012-06-26 Extreme Networks, Inc. Methods, systems, and computer readable media for conserving multicast port list resources in an internet protocol (IP) packet forwarding device
US8856448B2 (en) * 2009-02-19 2014-10-07 Qualcomm Incorporated Methods and apparatus for low intrusion snoop invalidation
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
US9008091B1 (en) 2010-11-19 2015-04-14 Extreme Networks, Inc. Methods, systems, and computer readable media for improved multicast scaling through policy based redirection
CN108108188B (zh) 2011-03-25 2022-06-28 英特尔公司 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
US9842005B2 (en) 2011-03-25 2017-12-12 Intel Corporation Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
CN107729267B (zh) 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
WO2014022115A1 (en) * 2012-07-30 2014-02-06 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9454482B2 (en) * 2013-06-27 2016-09-27 Apple Inc. Duplicate tag structure employing single-port tag RAM and dual-port state RAM
US20150067246A1 (en) * 2013-08-29 2015-03-05 Apple Inc Coherence processing employing black box duplicate tags
US10565121B2 (en) * 2016-12-16 2020-02-18 Alibaba Group Holding Limited Method and apparatus for reducing read/write contention to a cache

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3740834A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
US4975872A (en) * 1988-11-17 1990-12-04 Matsushita Electric Industrial Co., Ltd. Dual port memory device with tag bit marking
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
EP0439952A3 (en) * 1990-01-31 1992-09-09 Sgs-Thomson Microelectronics, Inc. Dual-port cache tag memory
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
US5339322A (en) * 1991-03-29 1994-08-16 Sgs-Thomson Microelectronics, Inc. Cache tag parity detect circuit
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
US5287322A (en) * 1991-07-17 1994-02-15 Sgs-Thomson Microelectronics, Inc. Integrated circuit dual-port memory device having reduced capacitance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100492041B1 (ko) * 1996-11-14 2005-08-25 프리스케일 세미컨덕터, 인크. 캐시를구비한데이터처리시스템및그방법
JP2008521114A (ja) * 2004-11-24 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ローカルメモリデータのコヒーレントなキャッシュ処理

Also Published As

Publication number Publication date
DE69317729D1 (de) 1998-05-07
EP0596636A2 (en) 1994-05-11
US5513335A (en) 1996-04-30
DE69317729T2 (de) 1998-08-20
EP0596636B1 (en) 1998-04-01
EP0596636A3 (en) 1994-06-29

Similar Documents

Publication Publication Date Title
JPH06208508A (ja) キャッシュタグメモリ
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US5067078A (en) Cache which provides status information
US6757784B2 (en) Hiding refresh of memory and refresh-hidden memory
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
JPH11272559A (ja) マルチレベル・メモリ・ハイアラ―キを含むデ―タ処理システムのためのキャッシュ・コヒ―レンシ・プロトコル
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
KR20110031361A (ko) 스누프 필터링 메커니즘
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US20110029712A1 (en) Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
JP2001043130A (ja) コンピュータシステム
US7325102B1 (en) Mechanism and method for cache snoop filtering
US5809537A (en) Method and system for simultaneous processing of snoop and cache operations
US5678025A (en) Cache coherency maintenance of non-cache supporting buses
EP0470739B1 (en) Method for managing a cache memory system
US5694575A (en) Direct I/O control system with processor, main memory, and cache employing data consistency retaining scheme
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US20030145174A1 (en) Reducing power in a snooping cache based multiprocessor environment
JPH04357539A (ja) 2重ポートのキャッシュタグメモリデバイス
WO1997004392A1 (en) Shared cache memory device
JPH11272558A (ja) Hr状態を含むキャッシュ・コヒ―レンシ・プロトコル