JPH09506729A - 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム - Google Patents

浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム

Info

Publication number
JPH09506729A
JPH09506729A JP7516928A JP51692895A JPH09506729A JP H09506729 A JPH09506729 A JP H09506729A JP 7516928 A JP7516928 A JP 7516928A JP 51692895 A JP51692895 A JP 51692895A JP H09506729 A JPH09506729 A JP H09506729A
Authority
JP
Japan
Prior art keywords
data
cache
memory
integer
address
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.)
Ceased
Application number
JP7516928A
Other languages
English (en)
Inventor
ブレンナン、ジョン
スー、ピーター・ヤン−テック
ハフマン、ウィリアム・エイ
ロッドマン、ポール
スカンロン、ヨセフ・ティー
タン、マン・キット
チャバグリア、スティーブ・ジェイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Graphics Properties Holdings Inc
Original Assignee
Silicon Graphics 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 Silicon Graphics Inc filed Critical Silicon Graphics Inc
Publication of JPH09506729A publication Critical patent/JPH09506729A/ja
Ceased 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
    • 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/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; 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

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)【要約】 単一のチップの整数装置(10)と、例えば浮動小数点装置(20)などのアレイプロセッサと、主メモリ(27)と、スプリットレベルキャッシュとを含むデータプロセッサのためのメモリシステム。スプリットレベルキャッシュは、整数データとアドレスデータのロード及び記憶のための整数装置(10)によって使用されるための短い待ち時間を有するオンチップの高速データキャッシュ(12)と、例えばアレイプロセッサによって使用される浮動小数点や、データキャッシュを再充填するための整数データ及びアドレスデータのようなデータのアレイを記憶するためのオフチップのパイプライン化されたグローバルキャッシュ(14)とを含む。上記データキャッシュ(12)とグローバルキャッシュ(14)との間のコヒーレンスは、整数の記憶中においてグローバルキャッシュに書き込むことによって保持される。データキャッシュのワードは、アレイプロセッサの記憶中においてデータがグローバルキャッシュに対して書き込まれるときに無効にされる。

Description

【発明の詳細な説明】 スプリットレベルキャッシュ 発明の背景 1.発明の分野 本発明は、一般的に高速データ処理装置によって利用されるメモリシステムに 関し、また特に、高速データキャッシュを含むメモリのハイアラーキに関する。 2.関連技術の説明 マイクロプロセッサのアーキテクチャに基づいて何十億もの浮動小数点方式の 演算(ギガフロップス:GFLOPS)を行うスーパーコンピュータが市場に導 入されつつある。 一般にスーパーコンピュータは、脅威的なその浮動小数点方式の計算速度を特 徴としているが、メモリサイズと帯域幅はまた、他のコンピュータからスーパー コンピュータを区別している。各浮動小数点演算(フロップ:FLOP)は、1 回から3回までのメモリアクセスを実行することを要求する。従って、数百メガ フロップのマイクロプロセッサは、1秒当たり数ギガバイトの帯域幅を伝送する ことができるメモリのハイアラーキを必要とする。 十分に広い帯域幅を提供するパイプライン化されたメモリを使用することがで きるが、これらのメモリに関連する待ち時間は、例えば、浮動小数点プログラム の計数回路(スケーラ)部分とともに、オペレーティングシステムやコンパイラ のような、整数プログラムの実行速度に対して直接に影響を与えることが知られ ている。これらのプログラムは、例えば、小型のオンチップキャッシュのような 短い待ち時間のメモリデバイスから整数データやアドレスデータに直接にアクセ スすることが好ましい。 従って、整数演算と浮動小数点演算という相反する要求は、マイクロプロセッ サを基盤とするスーパーコンピュータの設計に際して大きな課題を提供している 。 図面の簡単な説明 図1は、本発明のブロック図である。 図2は、図1に開示されたシステムのより詳細な図である。 図3は、オフチップのグローバルキャッシュのパイプライン化されたアーキテ クチャのハイレベル図である。 図4は、図3において図示されたパイプラインのより詳細な図である。 図5は、物理アドレスのフォーマットを図示する図である。 図6は、カスタムタグRAMの詳細な図である。 図7は、オンチップのデータキャッシュの論理図である。 図8は、記憶データパスのブロック図である。 発明の概要 本発明は、整数データとアドレスデータとを記憶するための小型で短い待ち時 間を有するデータキャッシュと、浮動小数点データ又はアレイプロセッサによっ て要求されるデータを記憶するための大型でより長い待ち時間を有するグローバ ルキャッシュを含むスプリットレベルキャッシュである。このデータキャッシュ はグローバルキャッシュの特定のサブセットであり、整数装置(整数演算装置又 は整数ユニット)のための1次のキャッシュである。グローバルキャッシュは、 浮動小数点装置又はアレイプロセッサによって使用するためのデータのアレイを 記憶し、アレイプロセッサのための1次のキャッシュであるととともに、整数装 置の2次のキャッシュである。 本発明の態様の1つによれば、フローティングプロセッサによる記憶データは グローバルキャッシュにのみ書き込まれ、これによって、データキャッシュとの コヒーレンシー(首尾一貫性又は一致性)の欠如を生じさせる。このインコヒー レンシー(首尾一貫性がないこと又は一致しないこと)は、データキャッシュに 記憶されたキャッシュラインにおける各ワードに対して有効ビットを付加し、浮 動小数点の記憶操作中においてグローバルキャッシュで修正される与えられたワ ードに対応する有効ビットをリセットすることにより追跡される。 本発明の別の態様によれば、整数装置によるデータキャッシュへの記憶データ は、インコヒーレンシーを回避するために、グローバルキャッシュにライトスル ーで書き込まれる。整数記憶操作によって修正されるデータキャッシュ内のワー ドに対応する有効ビットは、コヒーレンシーを示すようにセットされる。 本発明の他の態様によれば、グローバルキャッシュはセット連想式であり、イ ンターリーブに配置されたデータ記憶装置の奇数バンクと偶数バンクとを含むこ とにより、両方のバンクから同時にアクセスすることを可能にする。 本発明の他の態様によれば、グローバルキャッシュはパイプライン化されたキ ャッシュであり、単一のマシンサイクル中に記憶された複数のタグに基づいてセ ット選択信号を符号化するセット選択信号の段階を含む。 他の特徴や効果は、添付の図面及び以下の詳細な説明から明らかになるであろ う。 好ましい実施例の説明 図1は、整数装置に対して整数データとアドレスデータとを供給するための短 い待ち時間を有する小型の高速のパイプライン化されていない(非パイプライン 化)オンチップキャッシュと、浮動小数点装置に浮動小数点データを供給するた めの大型のパイプライン化されたオフチップキャッシュとを利用する本発明の好 ましい実施例のブロック図である。 図1において、整数装置(IU)10はオンチップの第1のレベルデータキャ ッシュ(D$)12を含む。IU10のアドレス出力はアドレスバス16を介し てオフチップの第2のレベルキャッシュ(G$)14に接続され、オンチップの 第1のレベルキャッシュ12のデータ入力はフィル(fill:全占有)バス18を 介してオフチップの第2のレベルキャッシュのデータ出力ポートに接続される。 IU10の命令ポートは、Tバス(TBUS)22を介して浮動小数点装置(FP U)20の命令ポートに接続される。さらに、FPU20のポートにおけるデー タはロードバス24を介してオフチップの第2のレベルキャッシュ14のデータ 出力ポートに接続され、FPU20のデータ出力ポートはストアバス(記憶バス )26を介してオフチップの第2のレベルキャッシュ14のデータ入力ポートに 接続される。さらに、オフチップの第2のレベルキャッシュ14のデータ入力ポ ートは、主メモリ27のデータ入力/出力ポートに接続される。 G$14は、G$タグ記憶装置28と、G$データ記憶装置30とを含む。ア ドレスバス16は、低次アドレスビットを伝送するためのオフセットバス16O と、高次ビットを伝送するインデックスバス16Iと、タグフィールドビットの ためのタグ(TAG)バス16Tとを含む。インデックスバス16Iとタグバス1 6Tは、G$タグ記憶装置28の複数のアドレス入力に接続され、インデックス バス16Iとオフセットバス16Oは、G$データ記憶装置30のアドレスに接 続される。G$タグ記憶装置28のセット選択出力は、選択バス34を介してG $データ記憶装置30のセットアドレス入力に接続される。 制御装置35は、データ転送を制御するためのタイミング信号及び制御信号を 発生する。この制御装置35は標準的な技術を使用して構成され、本発明の一部 を成すものではない。 図2は、図1において図示される実施例のより詳細な図である。図2から、I U10とFPU20とは、IU上に含まれるD$12を有する単一のチップとし て構成される。好ましい実施例では、IU10はRISCタイプの処理装置であ って、レジスタファイル36に記憶されたデータに関するすべてのデータ処理命 令を実行する。処理されたデータ又は処理すべきデータは、ロード操作及び記憶 操作を実行することによってレジスタファイルとメモリとの間で伝送される。 IU内のアドレス発生器(AGEN)38は仮想アドレスを発生し、当該仮想 アドレスはD$12をアドレス指定するために使用され、TLB40へと送られ 、TLB40は、データロード及びデータ記憶のための外部主メモリ27におけ る物理アドレスを発生する。 好ましい実施例のメモリのハイアラーキにおいては、データプロセッサによっ てアクセスすることが可能なすべてのデータを記憶する仮想メモリは、AGEN 38によって発生される仮想アドレスによってアドレス指定される。外部主メモ リ27において保持されるデータは仮想メモリにおいて保持されるデータのサブ セットであり、TLB40によって発生される物理アドレスによってアドレス指 定される。G$14において保持されるデータは主メモリ27において保持され るデータのサブセットであり、TLB40から出力される物理アドレスのインデ ックスフィールドとオフセットフィールド、及びG$タグ記憶装置28から出力 される選択(SELECT)フィールドによってアドレス指定される。D$12におい て 保持されるデータは、G$14において保持されるデータのサブセットである。 D$12はAGEN38によって発生される仮想アドレスのインデックスフィー ルドとオフセットフィールドによってアクセスされ、物理的なタグ付けが行われ る。 以下でさらに詳細に説明するように、G$タグ記憶装置28は、複数のタグR AMを利用することにより構成され、G$データ記憶装置30は、汎用同期スタ ティックRAM(SSRAM)を利用して構成され、SSRAMは、4つの連想 セットから1つを選択するG$タグ記憶装置28から出力される選択フィールド を有する4方向セット(4-way set)連想キャッシュとして構成される。さらに、 G$データ記憶装置30は、同時に帯域幅を増大するようにアクセスすることが 可能な奇数バンクと偶数バンクとを有するインターリーブされたメモリとして構 成される。 複数のSSRAMは、入力レジスタと出力レジスタとをチップ上に統合し、こ れによって、RAMアクセスを3つのサイクル、すなわち、アドレスセットアッ プのサイクル、RAMアクセスのサイクル、データ出力のサイクルに、パイプラ イン化する。付加的な複数のパイプラインの段階は、アドレス変換機構からの結 果として生じる。4方向セット連想タグRAMは、セット情報を2ビットに符号 化する。各データSSRAMチップは、タグRAMから供給される高次アドレス ビットによって4つのセグメントに分割される。 従って、D$パイプラインは、図3においてハイレベルで図示され、図4にお いてさらに詳細が図示された5つの段階を有する。各段階における処理は、1マ シンサイクルで完了する。これらの図においては、順序付けされたG$パイプラ イン段階はG、H、I、J、及びKとラベル付けされている。 いま、図3及び図4を参照すれば、複数のアドレスは、IUチップからG段階 のタグRAMチップに送られ、複数のタグが検査されて、ヒット/ミス情報がH 段階のセット選択情報に符号化され、タグRAM42からの符号化された情報は 、I段階の複数のデータRAMに供給され、SSRAM44は、J段階のチップ 内で内部的にアクセスされ、アクセスされたデータはK段階のSSRAMチップ 4 4からIUチップ及びFPUチップに返送される。 すべてのサイクルはI段階及びK段階のチップ交差部に割り当てられているが 、これは、目標周波数の75MHzで大きなロードを有するTTLドライバがほ とんど全サイクルを必要とするためである。 G$パイプラインのJ段階において利用されるタグRAM42について、図5 及び図6を参照して説明する。物理アドレスの一般的なフォーマットが図5にお いて図示されている。各アドレスは、タグフィールドと、インデックスフィール ドと、オフセットフィールドとを含む。当該技術分野において公知であるように 、インデックスフィールドとオフセットフィールドは、キャッシュの物理的ブロ ックをアクセスするインデックスフィールドと、当該ブロックにおける1つのラ インをアクセスするオフセットフィールドとを有するキャッシュの複数の物理ア ドレスを形成する。物理的主メモリ27の全体は、キャッシュよりも遥かに大き く、そのアドレスは物理タグフィールドを含む。 上述したように、好ましい実施例は、与えられたインデックスフィールドを有 する外部主メモリにおける1ブロックが、上記与えられたインデックスによって アクセスされたキャッシュ内の4ブロックの組のうちの1つにマッピングされる ことを意味する4方向セット連想式である。好ましい実施例においては、キャッ シュアドレスの高次の2ビットはセット選択データとして利用され、残りのアド レスビットはインデックスフィールドとして機能する。G$記憶装置30におけ るインデックスが付与された各位置に対して、4つのタグフィールドはG$タグ 記憶装置28のインデックスフィールドによってアクセスされた位置に記憶され る。 図6を参照すれば、インデックスレジスタ50はインデックスバス56を介し てタグRAM52のADDR(アドレス)入力と、ダーティービットRAM54 とに接続される。タグレジスタ58は、タグバス62を介して4個のコンパレー タ60A−Dのそれぞれの第1の入力に接続される。各コンパレータ60A−D の第2の入力はそれぞれ、タグ−アウトバス64を介してタグ記憶装置のタグ− アウト出力に接続される。各コンパレータ60A−Dの出力は、エンコーダ66 とNORゲート68の複数の入力にルート指定(接続)される。エンコーダ66 の出力はセット−選択レジスタ70にルート指定(接続)され、NORゲート6 8の出力は一致照合(MATCH)レジスタ72にルート指定(接続)される。キャ ッシュの読み出し/書き込み信号(RWSA)は、RWSAレジスタ74に記憶 され、RWSAバス78を介してダーティービット書き込み論理回路76に供給 される。エンコーダ66とNORゲート68の出力はまた、ダーティービット書 き込み論理回路76にルート指定(接続)される。 与えられた物理アドレスがIU10によって供給されるとき、そのタグフィー ルドはタグレジスタに記憶され、そのインデックスフィールドはインデックスレ ジスタに記憶される。インデックスフィールドによってアクセスされるタグ記憶 装置52における記憶位置は、インデックスフィールドによってアクセスされる ことが可能である連想セットにおける4つの位置にそれぞれ記憶されるキャッシ ュデータに関連するタグフィールドを記憶する。タグRAM52は、第1の連想 セットに記憶されたデータのタグフィールドが第1のコンパレータ60Aの第2 の入力に供給され、また第2の連想セットに記憶されたものが第2のコンパレー タ60Bに供給され、以下同様となるように構成される。 任意のコンパレータ60A−Bの第2の出力に供給されるタグデータがタグレ ジスタ58に記憶されたタグフィールドに一致しているならば、当該コンパレー タの出力は論理“1”であり、そうでないときはコンパレータの出力は論理“0 ”である。 NORゲート68はコンパレータの出力を受信し、その複数の入力のうちの1 つがゼロでないときのみ“0”を発生する。このように、NORゲートから出力 される“0”は、ヒットを示し、すなわち、物理アドレス全体によって指定され るデータのブロックがG$14に記憶されていることを示す。 キャッシュがヒットされたとき、エンコーダ66は、与えられた物理アドレス 全体によって指定されるデータを記憶するセットを指定する2ビット信号を出力 する。このセット選択信号は、G$記憶装置30を形成するSSRAMチップに 与えられる高次の2ビットとして機能する。従って、上述のように、ヒット/ミ スデータ及びセット指定情報の発生は、単一のマシンサイクル中にH段階で実行 される。 当該技術分野において公知の通り、物理アドレス全体によって指定されるデー タがキャッシュに記憶されていないならば、外部主メモリ27からのデータはキ ャッシュに書き込まれ、キャッシュに前に記憶されていたデータに取って代わる 。キャッシュにおける取って代わったデータは、それが外部主メモリ27からキ ャッシュへと転送されたものであるので修正されていないときは、キャッシュに おけるデータと主メモリ27におけるデータとは同一であり、これらのデータは コヒーレント(首尾一貫又は一致)である。従って、主メモリ27には同一のデ ータが記憶されているので、キャッシュデータは問題なく取って代わることがで き、また必要に応じてアクセスされることが可能である。しかしながら、もしキ ャッシュ内の取って代わったデータが書き込み操作によって修正されていたなら ば、取って代わったデータは、主メモリ27に記憶されたデータともはやコヒー レント(一致)ではない。従って、取って代わる前にキャッシュ内のデータは、 ライトバック操作中で記憶され、その結果、訂正されたデータが主メモリ27に 記憶されプロセッサによってアクセスすることができる。従って、キャッシュ内 のデータが書き込み操作によって修正されるときに、データに関連する“ダーテ ィービット”は、データが“ダーティー”であり(汚染され)、すなわち、もは や主メモリに記憶されたデータとコヒーレント(一致)でないことを示すために クリアされる。 図6において、RWSA信号がデータがキャッシュに書き込むべきであること を示し、かつ一致(MATCH)信号がキャッシュのヒットを示すときはいつでも、 インデックスフィールドによってアクセスされるダーティービットRAMの記憶 位置に記憶されたダーティービットはクリアされる。このように、ダーティービ ットは単一のマシンサイクル中に、Jパイプライン段階で処理される。 図6に記述されたシステムは、G$14に記憶されたデータと主メモリ27に 記憶されたデータとの間のコヒーレンス(一致性)の欠如を示すために利用され る。しかしながら、スプリットレベル(分割レベル)キャッシュの構成が特異で あるため、D$12とG$14との間のコヒーレンス(一致性)の欠如を示すた めのシステムがまた必要とされる。 上述のように、IU10はD$12を1次のキャッシュとして利用し、またG $14を2次のキャッシュとして利用し、FPU20はG$14を1次のキャッ シュとして利用するが、D$12を全く利用しない。同一のデータがキャッシュ 12と14の両方に記憶されているならば、インコヒーレンシーを有する(互い に不一致である)2つのソースが存在することになる。第1のソースはIUによ るD$12への書き込みによるD$データのみの修正であり、第2のソースはF PUによるG$14への書き込みによるG$データのみの修正である。 インコヒーレンシー(一致しない)を有する第1のソースは、D$データのG $14へのライトスルー操作によって解消される。G$14の非常に広い書き込 み帯域幅のために、上記ライトスルー操作は可能である。G$14は全帯域幅に わたって書き込みを吸収できるために、外部バッファを必要としない。 インコヒーレンシー(一致しない)を有する第2のソースは、スプリットレベ ル(分割レベル)キャッシュシステムに固有のものであり、整数データと浮動小 数点データとの間のインコヒーレンス(不一致性)という結果を生じさせる。問 題は、IUがD$12とG$14の両方へのアクセスをロードしかつ記憶する一 方、FPUはG$14に対するアクセスのみをロードしかつ記憶することである 。従って、例えば、特定のメモリ位置はまず最初にIU記憶装置によって書き込 まれた後FPU記憶装置によって再書き込み(又は書き直し)されたならば、続 くIUのロードは、何か対策が行われない限り、D$14からは陳腐化された古 いデータを得ることになる。 直接的な解決方法は、FPUの記憶が発生する毎にD$12におけるキャッシ ュラインを無効化することであるが、各キャッシュラインが幾つかのワードを保 持し、特定のキャッシュラインが浮動小数点データと整数データとの混合データ を含む場合があるという事実によって問題をさらに複雑化させている。もしプロ グラムが最初に整数キャラクタデータにアクセスし、特定のキャッシュラインを D$12にロードさせたとき、続く浮動小数点の記憶はライン全体の無効化する で あろう。しかしながら、この場合において、D$12の特定のキャッシュライン における整数データは依然として有効であるが、ラインが無効化されているため に、与えられたラインにおける整数データに対する他の参照は、再度、特別なキ ャッシュラインをD$にロードさせることを要求する他のキャッシュミスを生じ させる可能性がある。整数と浮動小数点の混合構造は、特にグラフィックスのア プリケーションでは一般的であるため、この種のキャッシュのスラッシングは許 容できるものではない。従って、D$ラインの全体を無効化することは低い性能 をもたらすであろう。 好ましい実施例において利用された解法は、D$12におけるキャッシュライ ン毎の各ワードに対して有効ビットを付与し、これによって、複数の有効ビット にさらに微細な細分性を与えることである。FPUの記憶操作中に、アドレスが D$12及びG$14の両方に供給される。もしアドレス指定されたデータがD $に存在している場合、アドレス指定されたワードに付加された有効ビットは、 D$12とG$14の修正されたワード間においてコヒーレンス(一致性)の欠 如を示すために、クリアされる。IUの記憶中にアクセスされたワードに付与さ れた有効ビットは、上記のライトスルー操作によってキャッシュ12及び14の 間のコヒーレンス(一致性)を示すためにセットされる。 この解法は、FPUの書き込みによって修正された任意の浮動小数点データは それに付加されたクリアされた有効ビットを有するので、D$における特定のラ インに整数データのみを記憶させることができる。従って、上記のスラッシング の問題は回避される。 以下、G$14における浮動小数点データを記憶するときの、D$12におけ る有効ビットのクリアについて、D$12の詳細な論理図である図7を参照して 説明する。 以下、浮動小数点の記憶操作中におけるD$12における有効ビットのクリア について、図8を参照して説明する。好ましい実施例では、D$12は、1サイ クル当たり2つのロード又は1つのロードのいずれか、及び1つの記憶をサポー トするために、デュアルポート化される。D$12は、各ラインが8ワードに構 成された32バイトを保持する16KBの直接マッピングされるキャッシュであ る。D$12は、7マシンサイクルでG$14から再充填される。D$は仮想的 にアドレス指定され、物理的にタグ付けされ、また、D$12はG$14の固有 のサブセットである。 図8において、IU10のTLB40から出力された物理アドレスは第1の保 持レジスタ90において保持される。D$12はVRAM12T及びデータ記憶 装置12Dに論理的に分割されて図示されている。データ記憶装置12Dにおけ る各キャッシュライン92は、それぞれが4バイトのデータを有する8つのワー ドの位置を含む。仮想アドレスのインデックスフィールドは、VRAM12Vの 記憶位置とデータ記憶装置12Dのキャッシュラインから、タグフィールドやマ スクフィールドに対してアクセスを行う。仮想アドレスのオフ(OFF)フィール ドは、キャッシュライン92における特定のワード位置を指定する。VRAM1 2Vから読み出されたタグフィールド及びマスクフィールドは、第2の保持レジ スタ94に保持される。VRAM12Vからアクセスされるタグフィールドは、 キャッシュライン92において保持されたデータの物理アドレスに含まれるタグ フィールドであり、アクセスされたマスクフィールドは、それぞれがキャッシュ ライン92における対応するワードに付与されている8ビットの有効ビットを保 持する。第2の保持レジスタ94において保持されるタグフィールドは、コンパ レータ96の第1の入力に供給され、物理アドレスのタグフィールドはコンパレ ータ96の第2の入力に供給される。マスクビットクリア論理回路98は第2の 保持論理回路のマスク記憶部と、仮想メモリのオフフィールドと、コンパレータ 96の出力とに接続される。 第1の保持レジスタ90において保持される物理アドレスによって指定された 位置への浮動小数点の記憶操作中において、タグフィールド及びマスクフィール ドは第1のマシンサイクル中にVRAM12Vからアクセスされる。もしアクセ スされたタグフィールドが物理アドレスのタグフィールドと一致している場合、 コンパレータの出力はマスクビットクリア論理回路に対して第2の保持レジスタ に保持されているVBをクリアをさせ、ここで、VBは、仮想アドレスのオフフ ィ ールドによって指定されるキャッシュライン92におけるワードに対応する。こ の一致は、浮動小数点データがG$14において修正され、仮想アドレスによっ て指定されたデータワードがもはやコヒーレント(一致)でなくなり、これによ り、マスクにおけるVBのクリアは、D$12におけるこのワードを無効化する ことを示している。次のクロックサイクル中に、クリアされたVBを含む修正さ れたマスクフィールドは、インデックスフィールドの仮想アドレスによって指定 されたVRAM12Vにおける記憶位置にライトバックで書き込まれる。 以下、D$12に記憶された整数データのライトスルー操作について、図9を 参照して説明する。好ましい実施例においては、浮動小数点命令と、アドレスと 、データとは、G$14及びFPU20の待ち時間を補償するために待ち行列に 入れられる。さらに、IU10からG$14への直接記憶データパスは存在しな い。従って、IUの記憶操作のために、D$12は、記憶されたデータをFP命 令行列100に転送し、当該データはTバス22を介してFPU20にディスパ ッチされ、ライトスルーデータとして符号化される。さらに、このライトスルー データの物理アドレスは、記憶アドレス待ち行列102に転送される。FPU2 0はこのライトスルーデータを認識し、それを記憶データ待ち行列104にバイ パスさせる。待ち行列のタイミングは、同一のマシンサイクル中にライトスルー データのアドレスとライトスルーデータをG$14の記憶装置へ供給するように 設定される。 本発明は、好ましい実施例を参照して説明してきた。しかしながら、変形例や 代替物は当業者に明らかになるであろう。例えば、好ましい実施例においては、 D$は、IUと同一チップ上に実装されており、またG$は、汎用SSRAMを 利用してオフチップで実装されている。しかしながら、技術の変化に伴って、小 型で短い待ち時間を有するキャッシュをオフチップで実装したり、大型で高速待 ち時間を有するキャッシュをチップ上に実装することが可能になるであろう。し かしながら、本発明の原理は、依然としてそのような代替装置に対して適用可能 である。従って、本発明の範囲は、添付の請求の範囲によって示されることを除 いて、請求の範囲を限定することは意図されない。
【手続補正書】特許法第184条の8 【提出日】1996年2月29日 【補正内容】 明細書 浮動小数点データと整数データを記憶するためのローカルキャッシュとグロー バルキャッシュを含むメモリシステム 発明の背景 発明の分野 本発明は、一般的に高速データ処理装置によって利用されるメモリシステムに 関し、また特に、高速データキャッシュを含むメモリのハイアラーキに関する。 関連技術の説明 マイクロプロセッサのアーキテクチャに基づいて1秒当たり何十億もの浮動小 数点方式の演算(ギガフロップス:GFLOPS)を行うスーパーコンピュータ が市場に導入されている。 一般にスーパーコンピュータは、脅威的なその浮動小数点方式の計算速度を特 徴としているが、メモリサイズと帯域幅はまた、他のコンピュータからスーパー コンピュータを区別している。各浮動小数点演算(フロップ:FLOP)は、1 演算当たり1回から3回までのメモリアクセスを実行することを要求する。従っ て、数百メガフロップのマイクロプロセッサは、1秒当たり数ギガバイトの帯域 幅を伝送することができるメモリのハイアラーキを必要とする。 十分に広い帯域幅を提供するパイプライン化されたメモリを使用することがで きるが、これらのメモリに関連する待ち時間は、例えば、浮動小数点プログラム の計数回路(スケーラ)部分とともに、オペレーティングシステムやコンパイラ のような、整数プログラムの実行速度に対して直接に影響を与えることが知られ ている。これらのプログラムは、例えば、小型のオンチップキャッシュのような 短い待ち時間のメモリデバイスから整数データやアドレスデータに直接にアクセ スすることが好ましい。 従って、整数演算と浮動小数点演算という相反する要求は、マイクロプロセッ サを基盤とするスーパーコンピュータの設計に際して大きな課題を提供している 。 発明の概要 本発明は、整数データとアドレスデータとを記憶するための小型で短い待ち時 間を有するローカルキャッシュと、浮動小数点データ又はアレイプロセッサによ って要求されるデータを記憶するための大型でより長い待ち時間を有するグロー バルキャッシュを含むスプリットレベルキャッシュである。このローカルキャッ シュはグローバルキャッシュのサブセットであり(すなわち、ローカルキャッシ ュに記憶されたデータはグローバルキャッシュに記憶されたデータのサブセット であり)、整数装置(整数演算装置又は整数ユニット)のための1次のキャッシ ュである。グローバルキャッシュは、浮動小数点装置又はアレイプロセッサによ って使用するためのデータのアレイを記憶し、上記浮動小数点装置又はアレイプ ロセッサのための1次のキャッシュであるととともに、整数装置の2次のキャッ シュである。 本発明の態様の1つによれば、浮動小数点装置又はアレイプロセッサによる記 憶データはグローバルキャッシュにのみ書き込まれ、これによって、ローカルキ ャッシュとのコヒーレンシー(首尾一貫性又は一致性)の欠如を生じさせる。こ のインコヒーレンシー(首尾一貫性がないこと又は一致しないこと)は、ローカ ルキャッシュに記憶されたキャッシュラインにおける各ワードに対して有効ビッ トを付加し、浮動小数点の記憶操作中においてグローバルキャッシュで修正され るある与えられたワードに対応する有効ビットをリセットすることにより追跡さ れる。 本発明の別の態様によれば、整数装置によるローカルキャッシュへの記憶デー タは、インコヒーレンシーを回避するために、グローバルキャッシュにライトス ルーで書き込まれる。整数記憶操作によって修正されるローカルキャッシュ内の ワードに対応する有効ビットは、コヒーレンシーを示すようにセットされる。 本発明の他の態様によれば、グローバルキャッシュはセット連想式であり、イ ンターリーブに配置されたデータ記憶装置の奇数バンクと偶数バンクとを含むこ とにより、両方のバンクから同時にアクセスすることを可能にする。 本発明の他の態様によれば、グローバルキャッシュはパイプライン化されたキ ャッシュであり、単一のマシンサイクル中に記憶された複数のタグに基づいてセ ット選択信号を符号化するセット選択信号の段階を含む。 他の特徴や効果は、添付の図面及び以下の詳細な説明から明らかになるであろ う。 図面の簡単な説明 図1は、ローカルキャッシュと、グローバルキャッシュと、浮動小数点装置と 、整数装置と、外部主メモリとの間の相互接続を図示するスプリットレベルキャ ッシュシステムのハイレベルのブロック図である。 図2は、図1に開示されたシステムのより詳細な図である。 図3は、オフチップのグローバルキャッシュのパイプライン化されたアーキテ クチャのハイレベル図である。 図4は、図3において図示されたパイプライン化されたアキーテクチャのより 詳細な図である。 図5は、物理アドレスのフォーマットを図示する図である。 図6は、カスタムタグRAMの詳細な図である。 図7は、オンチップのローカルキャッシュの論理図である。 図8は、記憶データパスのブロック図である。 好ましい実施例の詳細な説明 図1は、整数装置に対して整数データとアドレスデータとを供給するための短 い待ち時間を有する小型の高速のパイプライン化されていない(非パイプライン 化)オンチップキャッシュと、浮動小数点装置に浮動小数点データを供給するた めの大型のパイプライン化されたオフチップキャッシュとを備えた本発明の好ま しい実施例のブロック図である。 図1において、整数装置(IU)10は、同一のチップ上に、第1のレベルロ ーカルキャッシュ(以下、ローカルキャッシュ)12を含む。IU10のアドレ ス出力はアドレスバス16を介してオフチップの第2のレベルグローバルキャッ シュ(以下、グローバルキャッシュ)14に接続される。ローカルキャッシュ1 2のデータ入力ポートLCは、フィル(fill:全占有又は充填)バス18を介して グローバルキャッシュ14のデータ出力ポートGCに接続される。 IU10の命令ポートは、Tバス(TBUS)22を介して浮動小数点装置(FP U)20の命令ポートに接続される。FPU20のデータ入力ポートFPUは、ロ ードバス24を介してグローバルキャッシュ14のデータ出力ポートGCに接続さ れる。FPU20のデータ出力ポートFPUはストアバス(記憶バス)26を介し てグローバルキャッシュ14のデータ入力ポートGCに接続される。 グローバルキャッシュ14のデータ入力ポートGCはさらに、外部主メモリ27 のデータ入力/出力ポートに接続される。FPU20のデータ出力ポートFPUは また外部主メモリ27のデータ入力/出力ポートに接続される。 グローバルキャッシュ14は、グローバルキャッシュタグ記憶装置28と、グ ローバルキャッシュデータ記憶装置30とを含む。アドレスバス16は、低次ア ドレスビットを伝送するためのオフセットバス16Oと、高次のアドレスビット を伝送するインデックスバス16Iと、タグフィールドビットのためのタグ(TA G)バス16Tとを含む。インデックスバス16Iとタグバス16Tは、グロー バルキャッシュタグ記憶装置28の複数のアドレス入力に接続される。インデッ クスバス16Iとオフセットバス16Oは、グローバルキャッシュデータ記憶装 置30の複数のアドレス入力に接続される。グローバルキャッシュタグ記憶装置 28のセット選択信号は、選択バス34を介してグローバルキャッシュデータ記 憶装置30のセットアドレス入力に接続される。 制御装置は、データ転送を制御するためのタイミング信号及び制御信号を発生 する。この制御装置は標準的な技術を使用して構成され、本発明の一部を成すも のではなく、図面において図示していない。 図2は、図1において図示される実施例のより詳細な図である。図2から、I U10とFPU20とは、IU上に含まれるローカルキャッシュ12を有する単 一のチップとして構成される。好ましい実施例では、IU10はRISCタイプ の処理装置であって、レジスタファイル36に記憶されたデータに関するすべて のデータ処理命令を実行する。レジスタファイル36に保持された処理されるデ ータは、記憶操作中においてレジスタファイルから(すなわち、データ出力ポー トIUを介して)ローカルキャッシュ12に(すなわち、データ入力ポートLCを介 して)転送される。同様に、ローカルキャッシュ12に保持されたデータは、ロ ード操作中において、ローカルキャッシュから(すなわち、データ出力ポートLC を介して)レジスタファイル36に(すなわち、データ入力ポーIUを介して)転 送される。 IU内のアドレス発生器(AGEN)38は複数の仮想アドレスを発生し、当 該複数の仮想アドレスはローカルキャッシュ12をアドレス指定するために使用 される。これらの仮想アドレスは、外部主メモリにおけるデータに対してアクセ スするために用いられる複数の物理アドレスを発生するアドレストランスレータ に供給される。好ましい実施例におけるアドレストランスレータは、トランスレ ーション(翻訳又は変換)ルックアサイドバッファ(TLB)40である。 好ましい実施例のメモリのハイアラーキにおいては、データプロセッサによっ てアクセスすることが可能なすべてのデータを記憶する仮想メモリは、AGEN 38によって発生される仮想アドレスによってアドレス指定される。外部主メモ リ27において保持されるデータは仮想メモリにおいて保持されるデータのサブ セットであり、TLB40によって発生される物理アドレスによってアドレス指 定される。グローバルキャッシュ14において保持されるデータは外部主メモリ 27において保持されるデータのサブセットであり、TLB40から出力される 物理アドレスのインデックスフィールドとオフセットフィールド、及びグローバ ルキャッシュタグ記憶装置28から出力されるセット選択信号によってアドレス 指定される。ローカルキャッシュ12において保持されるデータは、グローバル キャッシュ14において保持されるデータのサブセットである。データキャッシ ュ12はAGEN38によって発生される仮想アドレスのインデックスフィール ドとオフセットフィールドによってアクセスされ物理的なタグ付けが行われる。 以下でさらに詳細に説明するように、グローバルキャッシュタグ記憶装置28 は、複数のランダムアクセスメモリ(RAM)チップを利用することにより構成 され、グローバルキャッシュデータ記憶装置30は、4方向(4-way)セット連 想キャッシュとして構成される汎用同期スタティックRAM(SSRAM)を利 用して構成される。グローバルキャッシュタグ記憶装置28から出力されるセッ ト選択信号は、4つの連想セットから1つを選択する。さらに、グローバルキャ ッ シュデータ記憶装置30は、同時に帯域幅を増大するようにアクセスすることが 可能な奇数バンクと偶数バンクとを有するインターリーブされたメモリとして構 成される。 グローバルキャッシュのパイプラインは、図3においてハイレベルで図示され 、図4においてさらに詳細が図示された(G、H、I、J及びKとラベル付けさ れる)5つの段階を有する。各段階における処理は、1マシンサイクルで完了す る。 いま、図3及び図4を参照すれば、複数のアドレスは、IUチップからG段階 中のタグRAMチップに送られる。複数のタグは検査されて、ヒット/ミス情報 がH段階中においてセット選択信号に符号化される。各4方向セット連想タグR AMは、セット情報を2ビットに符号化する。複数のタグRAM42からの符号 化された情報は、I段階中においてグローバルキャッシュデータ記憶装置の複数 のSSRAM44に供給される。 各グローバルキャッシュデータ記憶装置のSSRAM44は、J段階のチップ 内で内部的にアクセスされる。複数のSSRAMは、入力レジスタと出力レジス タとをチップ上に統合し、これによって、RAMアクセスを3つのサイクル、す なわち、アドレスセットアップと、RAMアクセスと、データ出力サイクルとに パイプライン化される。最後に、アクセスされたデータは、K段階中に、複数の SSRAMチップ44からIU及びFPUに返送される。 すべてのサイクルはI段階及びK段階の“チップ交差部”に割り当てられてい るが、これは、目標周波数の75MHzで大きなロードを有するトランジスター トランジスタロジック(TTL)ドライバがほとんど全サイクルを必要とするた めである。 グローバルキャッシュのパイプラインのH段階において利用されるタグRAM 42について、図5及び図6を参照して説明する。物理アドレスの一般的なフォ ーマットが図5において図示されている。各アドレスは、タグフィールドと、イ ンデックスフィールドと、オフセットフィールドとを含む。当該技術分野におい て公知であるように、インデックスフィールドとオフセットフィールドは、キャ ッシュ内のデータに対して物理的にアドレス指定するために用いられている。イ ン デックスフィールドは特定のセットをアクセスし、ここで、各セットは4本のキ ャッシュラインを含む。もしアクセスされるデータを含むラインが当該キャッシ ュにあるならば、それはこれら4本のアクセスされるラインのうちの1本であろ う。アクセスされるラインと関連するタグは、これら4本のキャッシュラインの それぞれと関連するタグと比較され、当該キャッシュが興味ある当該データを含 むか否かを決定する。もし一致しているならば、オフセットフィールドは識別さ れたライン内のどのワードがアクセスされたデータに対応するかを示す。 上述したように、好ましい実施例は、4方向(4-way)のセット連想メモリで ある。与えられたインデックスフィールドを有する外部主メモリにおける1本の ラインは、上記与えられたインデックスによってアクセスされたキャッシュ内の 4本のラインのうちの1本にマッピングされる。好ましい実施例においては、キ ャッシュアドレスの高次の2ビットはセット選択信号データとして利用され、残 りのアドレスビットはインデックスフィールドとして機能する。グローバルキャ ッシュデータ記憶装置30におけるインデックスが付与された各セットに対して 、4つのタグフィールドはグローバルキャッシュタグ記憶装置28のインデック スフィールドによってアクセスされた位置に記憶される。 図6を参照すれば、インデックスレジスタ50はインデックスバス56を介し てタグRAM52のADDR(アドレス)入力と、ダーティービットRAM54 とに接続される。タグレジスタ58は、タグバス62を介して4個のコンパレー タ60A−Dのそれぞれの第1の入力に接続される。各コンパレータ60A−D の第2の入力はそれぞれ、タグ−アウトバス64を介してタグRAM52のタグ −アウト出力に接続される。コンパレータ60A−Dの複数の出力は、エンコー ダ66とNORゲート68の複数の入力にルート指定(接続)される。エンコー ダ66の出力はセット−選択レジスタ70にルート指定(接続)され、NORゲ ート68の出力は一致照合(MATCH)レジスタ72にルート指定(接続)される 。キャッシュの読み出し/書き込み信号(RWSA)は、RWSAレジスタ74 に記憶され、RWSAバス78を介してダーティービット書き込み論理回路76 に供給される。エンコーダ66とNORゲート68の出力はまた、ダーティービ ッ ト書き込み論理回路76にルート指定(接続)される。 与えられた物理アドレスがIU10によって供給されるとき、そのタグフィー ルドはタグレジスタ58に記憶され、そのインデックスフィールドはインデック スレジスタ50に記憶される。インデックスフィールドによってアクセスされる タグRAM52における記憶位置は、インデックスフィールドによってアクセス されることが可能である連想セットにおける4本のラインにそれぞれ記憶される キャッシュデータに関連するタグフィールドを記憶する。タグRAM52は、連 想セットの第1のラインに記憶されたデータのタグフィールドが第1のコンパレ ータ60Aの第2の入力に供給され、また連想セットの第2のラインに記憶され たものが第2のコンパレータ60Bに供給され、以下同様となるように構成され る。 もし任意のコンパレータ60A−Dの第2の入力に供給されるタグデータがタ グレジスタ58に記憶されたタグフィールドに一致しているならば、当該コンパ レータの出力は論理1(“1”)である。そうでないときはコンパレータの出力 は論理“0”である。 NORゲート68はコンパレータの出力を受信し、もしその複数の入力の任意 の1つが論理“1”であるならば”0”を発生する。このように、NORゲート から出力される“0”は、ヒットを示し、すなわち、物理アドレス全体によって 指定されるデータのブロックがグローバルキャッシュ14に記憶されていること を示す。 キャッシュがヒットされたとき、エンコーダ66は、当該セット内のどのライ ンが与えられた物理アドレス全体によって指定されたデータを含むかを指定する 2ビットのセット選択信号を出力する。従って、タグRAM52と、コンパレー タ60A−Dと、エンコーダ66はセット選択信号を発生するための選択信号発 生器を形成する。このセット選択信号は、グローバルキャッシュデータ記憶装置 30を形成するSSRAMチップに与えられる高次の2ビットとして機能する。 従って、上述のように、ヒット/ミスデータ及びセット指定情報の発生は、グロ ーバルキャッシュのパイプラインのH段階中に生じ、単一のマシンサイクルを要 求する。 当該技術分野において公知の通り、もし物理アドレス全体によって指定される データがキャッシュに記憶されていないならば、外部主メモリ27からのデータ はキャッシュに書き込まれ、キャッシュに前に記憶されていたデータに取って代 わる。キャッシュにおける取って代わったデータは、それが外部主メモリ27か らキャッシュへと転送されたものであるので修正されていないときは、キャッシ ュにおけるデータと外部主メモリ27におけるデータとは同一である(すなわち 、データはコヒーレント(首尾一貫又は一致)である)。従って、外部主メモリ 27には同一のデータが記憶されているので、キャッシュデータは問題なく取っ て代わることができ、また必要に応じてアクセスされることが可能である。しか しながら、もしキャッシュ内の取って代わったデータが書き込み操作によって修 正されていたならば、取って代わったデータは、外部主メモリ27に記憶された データともはやコヒーレント(一致)ではない。従って、取って代わる前にキャ ッシュ内のデータは、ライトバック操作中で記憶され、その結果、訂正されたデ ータが外部主メモリ27に記憶されプロセッサによってアクセスすることができ る。従って、キャッシュ内のデータが書き込み操作によって修正されるときに、 データに関連する“ダーティービッド”は、データが“ダーティー”である(汚 染されている)(すなわち、もはや外部主メモリに記憶されたデータとコヒーレ ント(一致)でない)ことを示すためにクリアされる。 図6において、RWSA信号がデータがキャッシュに書き込むべきであること を示し、かつ一致(MATCH)信号がキャッシュのヒットを示すときはいつでも、 インデックスフィールドによってアクセスされるダーティービットRAMの記憶 位置に記憶されたダーティービットはクリアされる。このように、ダーティービ ットの処理は、単一のマシンサイクルを要求し、グローバルキャッシュのパイプ ラインのJ段階中に生じる。 図6に記述されたシステムは、グローバルキャッシュ14に記憶されたデータ と外部主メモリ27に記憶されたデータとの間のコヒーレンシー(一致性)の欠 如を示すために利用される。しかしながら、スプリットレベル(分割レベル)キ ャ ッシュの構成が独特であるため、ローカルキャッシュ12とグローバルキャッシ ュ14との間のコヒーレンス(一致性)の欠如を示すためのシステムがまた必要 とされる。 上述のように、IU10はローカルキャッシュ12を1次のキャッシュとして 利用し、またグローバルキャッシュ14を2次のキャッシュとして利用する。F PU20はグローバルキャッシュ14を1次のキャッシュとして利用するが、ロ ーカルキャッシュ12を全く利用しない。同一のデータがキャッシュ12と14 の両方に記憶されているならば、インコヒーレンシーを有する(互いに不一致で ある)2つのソースが存在することになる。第1のソースはIUによるローカル キャッシュ12への書き込みによるローカルキャッシュデータのみの修正であり 、第2のソースはFPUによるグローバルキャッシュ14への書き込みによるグ ローバルキャッシュデータのみの修正である。 インコヒーレンシー(一致しない)を有する第1のソースはライトスルー操作 によって解消される:ローカルキャッシュ12に書き込まれるデータはまたグロ ーバルキャッシュ14に対して“ライトスルーで”書き込まれる。グローバルキ ャッシュ14の非常に広い書き込み帯域幅のために、上記ライトスルー操作は可 能である。グローバルキャッシュ14は全帯域幅にわたって書き込みを吸収でき るために、外部バッファを必要としない。 インコヒーレンシー(一致しない)を有する第2のソースは、スプリットレベ ル(分割レベル)キャッシュシステムに固有のものであり、整数データと浮動小 数点データとの間のインコヒーレンス(不一致性)という結果を生じさせる。問 題は、IUがローカルキャッシュ12とグローバルキャッシュ14の両方へのア クセスをロードしかつ記憶する一方、FPUはグローバルキャッシュ14に対す るアクセスのみをロードしかつ記憶することである。従って、例えば、特定のメ モリ位置はまず最初にIU記憶装置によって書き込まれた後FPU記憶装置によ って再書き込み(又は書き直し)されたならば、続くIUのロードは、何か対策 が行われない限り、ローカルキャッシュ14からは陳腐化された古いデータを得 ることになる。 直接的な解決方法は、FPUの記憶が発生する毎にローカルキャッシュ12に おけるキャッシュラインを無効化することであるが、各キャッシュラインが幾つ かのワードを保持し、特定のキャッシュラインが浮動小数点データと整数データ との混合データを含む場合があるという事実によって問題をさらに複雑化させて いる。もしプログラムが最初に整数キャラクタデータにアクセスし、特定のキャ ッシュラインをローカルキャッシュ12にロードさせたとき、続く浮動小数点の 記憶はライン全体の無効化するであろう。しかしながら、この場合において、ロ ーカルキャッシュ12の特定のキャッシュラインにおける整数データは依然とし て有効であるが、ラインが無効化されているために、与えられたラインにおける 整数データに対する他の参照は、再度、特別なキャッシュラインをローカルキャ ッシュにロードさせることを要求する他のキャッシュミスを生じさせる可能性が ある。整数と浮動小数点の混合構造は一般的であるため、グラフィックスのアプ リケーションは、特にこの動作を示すであろう。キャッシュの性能は、新しいデ ータをキャッシュにロードする必要がある頻度で大きく依存しているので、ロー カルキャッシュ全体を無効化することは、低い性能をもたらすであろう。 好ましい実施例において利用された解法は、ローカルキャッシュ12における キャッシュライン毎の各ワードに対して有効ビットを付与し、これによって、複 数の有効ビットにさらに微細な細分性を与えることである。FPUの記憶操作中 に、アドレスがローカルキャッシュ12及びグローバルキャッシュ14の両方に 供給される。もしアドレス指定されたデータがローカルキャッシュに存在してい る場合、アドレス指定されたワードに付加された有効ビットは、ローカルキャッ シュ12とグローバルキャッシュ14の修正されたワード間においてコヒーレン シー(一致性)の欠如を示すために、クリアされる。IUの記憶中にアクセスさ れた特定のワードに付与された有効ビットは、上記のライトスルー操作によって キャッシュ12及び14の間のコヒーレンス(一致性)を示すためにセットされ る。 この解法は、FPUの書き込みによって修正された任意の浮動小数点データは それに付加されたクリアされた有効ビットを有するので、IUが、陳腐化された 古いデータの危険性なしにローカルキャッシュから自由にデータをアクセスする ことを可能にする。従って、不必要なキャッシュのロードによる性能の損失は、 最小化される。 以下、浮動小数点記憶操作中におけるローカルキャッシュ12における有効ビ ットをクリアすることについて、図7を参照して説明する。好ましい実施例では 、ローカルキャッシュ12は、1サイクル当たり2つのロード又は1つのロード のいずれか、及び1つの記憶をサポートするために、デュアルポート化される。 ローカルキャッシュ12は、各ラインが8ワードに構成された32バイトを保持 する16KBの直接マッピングされるキャッシュである。ローカルキャッシュ1 2は、7マシンサイクルでグローバルキャッシュ14から再充填される。ローカ ルキャッシュ12は仮想的にアドレス指定され、物理的にタグ付けされ、また、 ローカルキャッシュ12はグローバルキャッシュ14のサブセットである。 図7において、IU10(図2参照。)のアドレス発生器38から出力された 仮想アドレスは第1の保持レジスタ90において保持される。ローカルキャッシ ュ12はVRAM12V及びデータ記憶装置12Dに論理的に分割されて図示さ れている。データ記憶装置12Dにおける各キャッシュライン92は、それぞれ が4バイトのデータを有する8つのワードの位置を含む。仮想アドレスのインデ ックスフィールドは、VRAM12Vの記憶位置とデータ記憶装置12Dのキャ ッシュラインから、タグフィールドやマスクフィールドに対してアクセスを行う 。仮想アドレスのオフ(OFF)フィールドは、キャッシュライン92における特 定のワード位置を指定する。VRAM12Vから読み出されたタグフィールド及 びマスクフィールドは、第2の保持レジスタ94に保持される。VRAM12V からアクセスされるタグフィールドは、キャッシュライン92において保持され たデータの物理アドレスの高次ビットに対応する。アクセスされたマスクフィー ルドは、それぞれがキャッシュライン92における対応するワードに付与されて いる8ビットの有効ビットを保持する。第2の保持レジスタ94において保持さ れるタグフィールドは、コンパレータ96の第1の入力に供給され、仮想アドレ スのタグフィールドはコンパレータ96の第2の入力に供給される。マスクビッ ト クリア論理回路98は、マスクを記憶する第2の保持レジスタ94の部分と、仮 想アドレスのオフフィールドと、コンパレータ96の出力とに接続される。 第1の保持レジスタ90において保持される仮想アドレスによって指定された 位置への浮動小数点の記憶操作中において、タグフィールド及びマスクフィール ドは第1のマシンサイクル中にVRAM12Vからアクセスされる。もしアクセ スされたタグフィールドが仮想アドレスのタグフィールドと一致している場合、 コンパレータの出力はマスクビットクリア論理回路に対して第2の保持レジスタ に保持されている有効ビットをクリアをさせ、ここで、有効ビットは、仮想アド レスのオフフィールドによって指定されるキャッシュライン92におけるワード に対応する。この一致は、浮動小数点データがグローバルキャッシュ14におい て修正され、仮想アドレスによって指定されたデータワードがもはやコヒーレン ト(一致)でなるであろうことを示している。これにより、マスクにおける有効 ビットのクリアは、ローカルキャッシュ12におけるこのワードを無効化する。 次のクロックサイクル中に、クリアされた有効ビットを含む修正されたマスクフ ィールドは、インデックスフィールドの仮想アドレスによって指定されたVRA M12Vにおける記憶位置にライトバックで書き込まれる。 以下、ローカルキャッシュ12に記憶された整数データのライトスルー操作に ついて、図8を参照して説明する。好ましい実施例においては、浮動小数点命令 と、アドレスと、データとは、グローバルキャッシュ14及びFPU20の待ち 時間を補償するために待ち行列に入れられる。さらに、IU10からグローバル キャッシュ14への直接記憶データパスは存在しない。従って、IUの記憶操作 のために、ローカルキャッシュ12は、記憶されたデータをFP命令行列100 に転送し、当該データはTバス22を介してFPU20にディスパッチされ、ラ イトスルーデータとして符号化される。さらに、このライトスルーデータの物理 アドレスは、記憶アドレス待ち行列102に転送される。FPU20はこのライ トスルーデータを認識し、それを記憶データ待ち行列104にバイパスさせる。 待ち行列のタイミングは、同一のマシンサイクル中にライトスルーデータのアド レスとライトスルーデータをグローバルキャッシュのデータ記憶装置30へ供給 するように設定される。 本発明は、好ましい実施例を参照して説明してきた。しかしながら、変形例や 代替物は当業者に明らかになるであろう。例えば、好ましい実施例においては、 ローカルキャッシュは、IUと同一チップ上に実装されており、またグローバル キャッシュは、汎用SSRAMを利用してオフチップで実装されている。しかし ながら、技術の変化に伴って、小型で短い待ち時間を有するキャッシュをオフチ ップで実装したり、大型で高速待ち時間を有するキャッシュをチップ上に実装す ることが可能になるであろう。しかしながら、本発明の原理は、依然としてその ような代替装置に対して適用可能である。従って、本発明の範囲は、添付の請求 の範囲によって示されることを除いて、請求の範囲を限定することは意図されな い。 請求の範囲 1.削除された 2.削除された 3.削除された 4.削除された 5.削除された 6.データプロセッサにおけるスプリットレベルキャッシュメモリシステムであ って、 データ入力ポートIUとデータ出力ポートIUを有する整数装置と、 データ入力ポートFPUとデータ出力ポートFPUとを有する浮動小数点装置と、 上記整数装置によって処理される整数データとアドレスデータとを記憶し、上 記入力ポートIUに接続されかつ整数データとアドレスデータとを上記整数装置に 転送するためのデータ出力ポートLCと、上記データ出力ポートIUに接続されかつ 上記整数装置から整数データとアドレスデータとを受信するためのデータ入力ポ ートLCとを有する第1のメモリキャッシュと、 上記整数装置によって処理される上記整数データと上記アドレスデータとを記 憶するとともに、上記浮動小数点装置によって処理される浮動小数点データを記 憶し、上記データ出力ポートFPUに接続されかつ上記浮動小数点装置から浮動小 数点データを受信しさらに上記データ出力ポートLCに接続されかつ上記第1のメ モリキャッシュから整数データとアドレスデータとを受信するためのデータ入力 ポートGCと、上記データ入力ポートFPUに接続されかつ浮動小数点データを上 記浮動小数点装置に転送しさらに上記データ入力ポートLCに接続されかつ整数デ ータとアドレスデータとを上記第1のメモリキャッシュに転送するためのデータ 出力ポートGCを有する第2のメモリキャッシュとを備えたスプリットレベルキャ ッシュメモリシステム。 7.整数データと、アドレスデータと、浮動小数点データとを記憶し、上記デー タ入力ポートGCに接続されかつ上記整数データと上記アドレスデータと上記浮動 小数点データとを上記第2のメモリキャッシュに転送しさらに上記データ出力ポ ートGCに接続されかつ上記第2のメモリキャッシュから整数データとアドレスデ ータと浮動小数点データとを受信するデータ入力/出力ポートを有する外部主メ モリをさらに備えた請求項6記載のスプリットレベルキャッシュメモリシステム 。 8.特定のキャッシュラインの第1のコピーは第1のキャッシュメモリに記憶さ れ、特定のキャッシュラインの第2のコピーは第2のキャッシュメモリに記憶さ れ、上記特定のキャッシュラインは、整数データと、アドレスデータと、浮動小 数点データとを含む複数のワードを含み、 上記第1のメモリキャッシュはさらに、 上記特定のキャッシュラインの上記第1のコピーを記憶するための第1のデー タ記憶装置を備え、 上記第2のメモリキャッシュはさらに、 上記特定のキャッシュラインの上記第2のコピーを記憶するための第2のデー タ記憶装置を備え、 上記スプリットレベルキャッシュメモリシステムはさらに、 上記整数装置が上記第1のメモリキャッシュに対して整数記憶操作を実行させ るときに整数記憶操作を上記第2のメモリキャッシュに対してライトスルーで書 き込み、上記特定のキャッシュラインの両方のピースにおける特定のワードがコ ヒーレントであるように上記特定のキャッシュラインの上記第1のコピーにおけ る特定のワードを修正するための手段を備えた請求項7記載のスプリットレベル キャッシュメモリシステム。 9.上記第1のメモリキャッシュはさらに、 上記第1のデータ記憶装置に接続されかつ上記第1のデータ記憶装置に記憶さ れた上記特定のキャッシュラインの上記第1のコピーにおける各ワードに付加さ れた唯一の有効ビットを有するマスクフィールドと、 上記マスクフィールドに接続されかつ上記キャッシュラインの第2のコピーに おける同一の浮動小数点ワードが浮動小数点記憶操作によって修正されたときに 上記特定のキャッシュラインの上記第1のコピーにおける浮動小数点ワードに付 加された有効ビットをクリアする一方、整数ワードが整数記憶操作によって修正 されたときに上記特定のキャッシュラインの上記第1のコピーにおける整数ワー ドに付加された有効ビットをセットするためのマスクビットクリア論理回路とを 備えた請求項8記載のスプリットレベルキャッシュメモリシステム。 10.データプロセッサにおけるスプリットレベルキャッシュメモリシステムに よって使用される整数データと浮動小数点データのコヒーレントな記憶のための 方法であって、 整数データとアドレスデータと浮動小数点データとを含む第1のセットのデー タを第1のメモリキャッシュに記憶するステップと、 浮動小数点装置を介して上記第1のセットのデータから上記浮動小数点データ をアクセスするステップと、 整数データとアドレスデータと浮動小数点データとを含みかつ上記第1のセッ トのデータのサブセットである第2のセットのデータを第2のメモリキャッシュ に記憶するステップと、 整数装置を介して、上記第2のセットのデータから上記整数データと上記アド レスデータをアクセスし、上記整数装置が上記第2のセットのデータ内でデータ を見つけることができないときに、上記第1のセットのデータから上記整数デー タと上記アドレスデータをアクセスするステップと、 上記整数装置がデータの上記第1の特定のワードを修正するときに、上記第2 のセットのデータにおけるデータの第1の特定のワードに付加された有効ビット をセットするステップと、 上記浮動小数点装置が上記第1のセットのデータにおけるデータの第2の特定 のワードを修正するときに、上記第2のセットのデータにおけるデータの第2の 特定のワードに付加された有効ビットをクリアするステップと、 上記整数装置が整数記憶操作を上記第2のメモリキャッシュに対して実行させ るときに、上記整数記憶操作によって修正された整数データとアドレスデータと が上記第1と第2のセットのデータの両方においてコヒーレントのままであるよ うに、すべての整数記憶操作をライトスルーで上記第1のメモリキャッシュに対 して書き込むステップとを含む方法。 【図1】 【図3】 【図2】 【図4】 【図5】 【図6】 【図7】 【図8】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ハフマン、ウィリアム・エイ アメリカ合衆国95032カリフォルニア州ロ ス・ガトス、ロウズリーフ・レーン16205 番 (72)発明者 ロッドマン、ポール アメリカ合衆国94306カリフォルニア州パ ロ・アルト、ウェーバーリー・ストリート 3204番 (72)発明者 スカンロン、ヨセフ・ティー アメリカ合衆国94086カリフォルニア州サ ニーベイル、エス・フェアオークス・アベ ニュー、655番、アパートメント ケイ− 209 (72)発明者 タン、マン・キット アメリカ合衆国95035カリフォルニア州ミ ルピタス、 ファームクレスト・ストリー ト2285番 (72)発明者 チャバグリア、スティーブ・ジェイ アメリカ合衆国05495バーモント州ウィリ ストン、ヴィレッジ・グロウブ8番

Claims (1)

  1. 【特許請求の範囲】 1.それぞれデータ入力ポートとデータ出力ポートとを有する整数装置と浮動小 数点装置とを含み、 仮想アドレスによってアクセスされかつデータプロセッサによって使用される データのすべてを保持する仮想メモリと、 物理アドレスによりアクセスされかつ仮想メモリに保持されるデータのサブセ ットを保持する外部主メモリとを備え、 上記整数装置は、上記仮想アドレスを発生するためのアドレス発生器と、仮想 アドレスを物理アドレスに変換するためのトランスレータとを備えたデータプロ セッサにおいて、 上記整数装置に接続されたデータ出力ポートと、データ入力ポートと、上記仮 想メモリの一部分を受信するように接続されたアドレス入力ポートとを有し、上 記整数装置によって処理される整数データとアドレスデータとを記憶するための 第1のメモリキャッシュと、 データ入力ポートと、データ出力ポートと、上記物理アドレスを受信するよう に上記整数装置に接続されたアドレス入力ポートとを有し、上記整数装置によっ て処理される上記整数データと上記アドレスデータを記憶するとともに、浮動小 数点データを記憶するための第2のメモリキャッシュと、 上記第2のメモリキャッシュのデータ出力ポートと、上記第1のメモリキャッ シュのデータ入力ポートと、浮動小数点装置のデータ入力とに接続され、上記第 2のメモリキャッシュの整数データとアドレスデータとが上記整数装置によって 処理するために要求されるときに、データを上記第2のメモリキャッシュから上 記第1のメモリキャッシュに転送し、浮動小数点データが上記浮動小数点装置に よって処理するために要求されるときに、上記第2のメモリキャッシュと上記浮 動小数点装置との間でデータを転送するための第1のデータ転送手段と、 浮動小数点装置のデータ出力ポートと、上記第2のメモリキャッシュのデータ 入力ポートとに接続され、浮動小数点の記憶操作中に、上記浮動小数点装置から 上記第2のメモリキャッシュにデータを転送するための第2のデータ転送手段と 備えた改善されたスプリットレベルキャッシュメモリシステム。 2.それぞれデータ入力ポートとデータ出力ポートとを有し単一のチップ上に実 装された整数装置と浮動小数点装置とを含み、 仮想アドレスによりアクセスされかつデータプロセッサによって使用されるデ ータのすべてを保持する仮想メモリと、 物理アドレスによりアクセスされかつ上記仮想メモリに保持されるデータのサ ブセットを保持する外部主メモリとを備え、 上記整数装置は、上記仮想アドレスを発生するためのアドレス発生器と、仮想 アドレスを物理アドレスに変換するためのトランスレータとを含み、 上記単一のチップ上に実装され、上記整数装置に接続されたデータ出力ポート と、データ入力ポートと、上記仮想メモリの一部を受信するように接続されたア ドレス入力ポートとを有し、上記整数装置によって処理される整数データとアド レスデータとを記憶するための第1のメモリキャッシュと、 単一のチップから分離され、データ入力ポートと、データ出力ポートと、上記 物理アドレスを受信するように上記整数装置に接続されたアドレス入力ポートと を有し、上記整数装置によって処理される上記整数データと上記アドレスデータ とを記憶するとともに、浮動小数点データを記憶するための第2のメモリキャッ シュと、 上記第2のメモリキャッシュのデータ出力ポートと、上記第1のメモリキャッ シュのデータ入力ポートと、浮動小数点装置のデータ入力とに接続され、上記第 2のメモリキャッシュの整数データとアドレスデータとが上記整数装置によって 処理するために要求されるときに、上記第2のメモリキャッシュから上記第1の メモリキャッシュにデータを転送し、浮動小数点データが上記浮動小数点装置に よって処理するために必要であるときに、上記第2のメモリキャッシュと上記浮 動小数点装置の間でデータを転送するための第1のデータ転送手段と、 浮動小数点装置のデータ出力ポートと、上記第2のメモリキャッシュのデータ 入力ポートとに接続され、浮動小数点の記憶操作中に、上記浮動小数点装置から 上記第2のメモリキャッシュにデータを転送するための第2のデータ転送手段と を備えた改善されたスプリットレベルキャッシュメモリシステム。 3.各仮想アドレスと各物理アドレスは、インデックスフィールドとオフセット フィールドとを含み、 特定のキャッシュラインの第1のコピーは上記第1のキャッシュメモリに記憶 され、 上記特定のキャッシュラインの第2のコピーは上記第2のキャッシュメモリに 記憶され、 上記特定のキャッシュラインは、整数データと、浮動小数点データとを含む複 数のワードを含み、 上記第1のメモリキャッシュはさらに、上記仮想アドレスの上記インデックス フィールドによってアクセスされた記憶位置において上記特定のキャッシュライ ンの上記第1のコピーを記憶するための第1のデータ記憶装置を含み、 上記第2のメモリキャッシュはさらに、上記物理アドレスの上記インデックス フィールドによってアクセスされる記憶位置において上記特定のキャッシュライ ンの上記第2のコピーを記憶するための第2のデータ記憶装置を含み、 上記スプリットレベルキャッシュはさらに、 整数装置の記憶操作中に、上記特定のキャッシュラインの第1のコピーに含ま れる整数データの特定のワードを修正するための手段と、 上記第2のデータ転送手段に接続され、上記与えられたキャッシュラインにお ける両方のコピーの特定のワードが一致するように、上記修正された特定のワー ドを、上記第2のデータ記憶装置に記憶された上記特定のキャッシュラインの第 2のコピーにおける特定のワードにライトスルーで書き込むための手段とを備え た請求項2記載のスプリットレベルキャッシュ。 4.上記スプリットレベルキャッシュはさらに、 上記第1のデータ記憶装置に記憶された上記特定のキャッシュラインの上記第 1のコピーにおける各ワードに有効ビットを付加するための手段と、 上記キャッシュラインの第2のコピーにおける同一の浮動小数点ワードが浮動 小数点の記憶操作によって修正されるときに、上記特定のキャッシュラインの上 記第1のコピーにおける浮動小数点ワードに付加された上記有効ビットをリセッ トするための手段と、 上記整数ワードが整数記憶操作によって修正されるときに、上記特定のキャッ シュラインの上記第1のコピーにおける整数ワードに付加された上記有効ビット をセットするための手段とを備えた請求項3記載のスプリットレベルキャッシュ 。 5.上記物理アドレスは、タグフィールドと、インデックスフィールドとを含み 、 上記第2のキャッシュメモリは、データ記憶装置と、選択信号発生器とを含み 、 上記データ記憶装置は、N方向セット連想式の記憶装置であり、ここで、Nは 2のべき乗に等しい整数であり、与えられたセットは、セット選択信号によって 選択され、セットにおける与えられたキャッシュラインは、物理アドレスのイン デックスフィールドによって選択され、 上記選択信号発生器は、 インデックスフィールドによってアクセスされたN個のタグフィールドを供給 するためのタグ記憶装置を備え、各タグフィールドは上記データ記憶装置の複数 のセットの1つに保持されたデータに対応し、 各コンパレータが上記物理アドレスのタグフィールドを受信するように接続さ れた第1の入力と、上記タグ記憶装置によって供給される上記タグフィールドの 各1つを受信するように接続された第2の入力とを有し、複数のコンパレータ入 力におけるタグフィールドが一致したときにセットされ、複数のコンパレータ入 力におけるタグフィールドが一致しないときにリセットされる出力信号を有する N個のコンパレータと、 上記複数のコンパレータからの複数の出力信号を受信するように接続され、上 記コンパレータの複数の入力におけるタグフィールドが一致することを示す出力 信号を有するコンパレータの位置を符号化する選択信号を発生するためのエンコ ーダ手段とを備えた請求項1記載のスプリットレベルキャッシュ。
JP7516928A 1993-12-15 1994-12-12 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム Ceased JPH09506729A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/168,832 1993-12-15
US08/168,832 US5510934A (en) 1993-12-15 1993-12-15 Memory system including local and global caches for storing floating point and integer data
PCT/US1994/014380 WO1995016961A1 (en) 1993-12-15 1994-12-12 Split level cache

Publications (1)

Publication Number Publication Date
JPH09506729A true JPH09506729A (ja) 1997-06-30

Family

ID=22613120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7516928A Ceased JPH09506729A (ja) 1993-12-15 1994-12-12 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム

Country Status (5)

Country Link
US (1) US5510934A (ja)
EP (1) EP0734553B1 (ja)
JP (1) JPH09506729A (ja)
DE (1) DE69432314T2 (ja)
WO (1) WO1995016961A1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378062B1 (en) * 1994-01-04 2002-04-23 Intel Corporation Method and apparatus for performing a store operation
US6021471A (en) * 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
WO1996012229A1 (en) 1994-10-14 1996-04-25 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5710944A (en) * 1996-02-09 1998-01-20 Motorola, Inc. Memory system and data communications system
US6199142B1 (en) * 1996-07-01 2001-03-06 Sun Microsystems, Inc. Processor/memory device with integrated CPU, main memory, and full width cache and associated method
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US5809526A (en) * 1996-10-28 1998-09-15 International Business Machines Corporation Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US5920890A (en) * 1996-11-14 1999-07-06 Motorola, Inc. Distributed tag cache memory system and method for storing data in the same
US5898849A (en) * 1997-04-04 1999-04-27 Advanced Micro Devices, Inc. Microprocessor employing local caches for functional units to store memory operands used by the functional units
US6161167A (en) * 1997-06-27 2000-12-12 Advanced Micro Devices, Inc. Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group
US6088789A (en) * 1998-05-13 2000-07-11 Advanced Micro Devices, Inc. Prefetch instruction specifying destination functional unit and read/write access mode
US6272597B1 (en) * 1998-12-31 2001-08-07 Intel Corporation Dual-ported, pipelined, two level cache system
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6732234B1 (en) * 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6751707B2 (en) 2002-05-06 2004-06-15 Sony Computer Entertainment Inc. Methods and apparatus for controlling a cache memory
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7631149B2 (en) * 2006-07-24 2009-12-08 Kabushiki Kaisha Toshiba Systems and methods for providing fixed-latency data access in a memory system having multi-level caches
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US9946547B2 (en) * 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US20080104333A1 (en) * 2006-10-31 2008-05-01 Veazey Judson E Tracking of higher-level cache contents in a lower-level cache
US8365169B1 (en) 2008-01-10 2013-01-29 Hewlett-Packard Development Company, L.P. Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support
US20090248986A1 (en) * 2008-03-26 2009-10-01 Daniel Citron Apparatus for and Method of Implementing Multiple Content Based Data Caches
US8645404B2 (en) * 2011-10-21 2014-02-04 International Business Machines Corporation Memory pattern searching via displaced-read memory addressing
US9421793B2 (en) * 2014-06-26 2016-08-23 Cellresin Technologies, Llc Electrostatic printing of cyclodextrin compositions
US12105629B2 (en) 2022-07-25 2024-10-01 Samsung Electronics Co., Ltd. Adaptive cache indexing for a storage device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
US5155816A (en) * 1989-02-10 1992-10-13 Intel Corporation Pipelined apparatus and method for controlled loading of floating point data in a microprocessor
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
DE69130588T2 (de) * 1990-05-29 1999-05-27 National Semiconductor Corp., Santa Clara, Calif. Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür

Also Published As

Publication number Publication date
WO1995016961A1 (en) 1995-06-22
US5510934A (en) 1996-04-23
EP0734553A1 (en) 1996-10-02
DE69432314D1 (de) 2003-04-24
EP0734553B1 (en) 2003-03-19
DE69432314T2 (de) 2004-02-12
EP0734553A4 (en) 1997-07-16

Similar Documents

Publication Publication Date Title
JPH09506729A (ja) 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム
US20220358082A1 (en) Coprocessors with Bypass Optimization, Variable Grid Architecture, and Fused Vector Operations
US6138209A (en) Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof
US5781924A (en) Computer caching methods and apparatus
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
US6594728B1 (en) Cache memory with dual-way arrays and multiplexed parallel output
JP2839060B2 (ja) データ処理システムおよびデータ処理方法
US7203800B2 (en) Narrow/wide cache
JP2001184263A (ja) 旧キャッシュラインを無効化および除去する装置
JP2008542948A (ja) コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
US6351797B1 (en) Translation look-aside buffer for storing region configuration bits and method of operation
JP2000231549A (ja) マイクロプロセッサ
CN103729306A (zh) 经由地址范围检查的多cpu块无效操作绕过
US6094711A (en) Apparatus and method for reducing data bus pin count of an interface while substantially maintaining performance
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
US8108621B2 (en) Data cache with modified bit array
US6301647B1 (en) Real mode translation look-aside buffer and method of operation
US6338128B1 (en) System and method for invalidating an entry in a translation unit
US5895486A (en) Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
US8108624B2 (en) Data cache with modified bit array
JP2000215102A (ja) プロセッサ用の進歩したメモリ階層構造
Crisu An architectural survey and modeling of data cache memories in verilog hdl
JP2924708B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050315

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20050801

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050906