JPH1055311A - インターリーブ式キャッシュ - Google Patents

インターリーブ式キャッシュ

Info

Publication number
JPH1055311A
JPH1055311A JP9100619A JP10061997A JPH1055311A JP H1055311 A JPH1055311 A JP H1055311A JP 9100619 A JP9100619 A JP 9100619A JP 10061997 A JP10061997 A JP 10061997A JP H1055311 A JPH1055311 A JP H1055311A
Authority
JP
Japan
Prior art keywords
data
arrays
content addressable
cache
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9100619A
Other languages
English (en)
Other versions
JP3468268B2 (ja
Inventor
Piitaa Riu Peichiyun
ペイチュン・ピーター・リウ
Rajinder Paul Singh
ラジンデル・ポール・シング
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1055311A publication Critical patent/JPH1055311A/ja
Application granted granted Critical
Publication of JP3468268B2 publication Critical patent/JP3468268B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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
    • 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/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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

Abstract

(57)【要約】 【課題】 単一サイクル複数アクセス機能を有するイン
ターリーブ式キャッシュ・メモリを提供する。 【解決手段】 このインターリーブ式キャッシュ・メモ
リは、複数のメモリ・セルからなる複数のサブアレイ
と、これらのサブアレイへの複数の入力アドレスを受け
取るためのアービトレーション論理回路と、これらのサ
ブアレイに複数の入力アドレスを印加するためのアドレ
ス入力回路とを含む。各サブアレイは、偶数データ・セ
クションおよび奇数データ・セクションと、3つの内容
アドレス可能メモリに格納されたタグと比較するために
複数の入力アドレスを受け取るための3つの内容アドレ
ス可能メモリとを含む。3つの内容アドレス可能メモリ
のうちの第1のメモリは偶数データ・セクションに関連
付けられ、3つの内容アドレス可能メモリのうちの第2
のメモリは奇数データ・セクションに関連付けられてい
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にデータ処理
システムに関し、具体的には高速データ処理システム内
で使用するためのキャッシュ・メモリに関する。より具
体的には、本発明は、単一プロセッサ・サイクル内に複
数の入力アドレスによってアクセス可能なキャッシュ・
メモリに関する。
【0002】
【従来の技術】多くの高性能データ処理システムは、シ
ステム・メモリとキャッシュ・メモリの両方を含む。キ
ャッシュ・メモリとは、システム・メモリの1つまたは
複数の部分にも格納される情報のコピーを格納する比較
的高速のメモリである。キャッシュ・メモリは、データ
処理システムのプロセッサ装置内に統合するか、または
データ処理システムのプロセッサ装置とは別個の状態を
維持することができる。
【0003】単一プロセッサ・サイクル中に複数の命令
を実行できるスーパースカラRISCプロセッサなどの
高速プロセッサ装置の場合、キャッシュ・メモリへの同
時複数アクセスの必要性が高まっている。プロセッサ装
置は、単一プロセッサ・サイクル内にキャッシュ・メモ
リの複数の有効アドレスまたは実アドレスあるいはその
両方にアクセスする必要がある場合もある。このため、
単一サイクル複数アクセス機能を達成するために、キャ
ッシュ・メモリが複数のサブアレイに区分される(すな
わち、インターリーブされる)場合が多い。インターリ
ーブ式キャッシュ・メモリは、複数のアドレスによって
アクセスされ、単一プロセッサ・サイクル中に複数のデ
ータ出力を生成する潜在能力を備えている。
【0004】様々な構成のサブアレイにより、キャッシ
ュ・メモリへの同時複数アクセスが可能になるが、依然
としてそれぞれのアクセスは、そのキャッシュ・メモリ
の個別のサブアレイ内で行わなければならない。これ
は、単一サブアレイ内で一度にワード線ドライバ回路に
よって駆動できるキャッシュ線が1本に限られているか
らである。このため、単一サブアレイ内のキャッシュ線
に対して複数のアクセスが試行された場合、キャッシュ
・メモリのアービトレーション論理回路により、1つの
アクセスを残りのアクセスより先に続行できるようにな
る。これにより、実際には、インターリーブ要因が小さ
すぎる(サブアレイ3つ以下)ためにすべての並列アク
セスが同一サブアレイ内で発生する傾向があるようなと
きは特に、インターリーブ式キャッシュの単一サイクル
複数アクセス機能の有効性が低減される。
【0005】キャッシュ・メモリのインターリーブ要因
を高めると、その単一サイクル複数アクセス機能も確か
に高まるはずである。しかし、キャッシュ・メモリ内の
サブアレイの数を増加するかまたは2重ポート式キャッ
シュ・メモリ・アレイを使用するという先行技術の解決
策は、必要なチップ面積の点で極めて不利になり、設計
上の複雑さも増すため、非常に高価なものになる傾向が
ある。その結果、チップ内の必要な物理配置面積を最小
限にしながらインターリーブ要因を最大にするような改
良されたキャッシュ・メモリ構成とともに、同時複数ア
クセス能力を非常に高めることができるようにこのキャ
ッシュ・メモリにアクセスするための関連方法を提供す
ることが望ましいものと思われる。
【0006】
【発明が解決しようとする課題】したがって、上記の点
を考慮すると、本発明の一目的は、高速データ処理シス
テム用の改良されたキャッシュ・メモリを提供すること
にある。
【0007】本発明の他の目的は、単一プロセッサ・サ
イクル中に複数アクセスを可能にするような改良された
キャッシュ・メモリを提供することにある。
【0008】本発明の他の目的は、単一サイクル複数ア
クセス機能を高めることができるような最大限のインタ
ーリーブ要因と最小限の必要物理面積とを有する改良さ
れたキャッシュ・メモリを提供することにある。
【0009】
【課題を解決するための手段】本発明の方法およびシス
テムにより、複数のメモリ・セルからなる複数のサブア
レイと、これらのサブアレイへの複数の入力アドレスを
受け取るためのアービトレーション論理回路と、これら
のサブアレイに複数の入力アドレスを出力するためのア
ドレス入力回路とを含む、インターリーブ式キャッシュ
・メモリが提供される。各サブアレイは、偶数データ・
セクションおよび奇数データ・セクションと、3つの内
容アドレス可能メモリに格納されたタグと比較するため
に複数の入力アドレスを受け取るための3つの内容アド
レス可能メモリとを含む。3つの内容アドレス可能メモ
リのうちの第1のメモリは偶数データ・セクションに関
連付けられ、3つの内容アドレス可能メモリのうちの第
2のメモリは奇数データ・セクションに関連付けられて
いる。次に、複数の入力アドレスのうち、複数の入力ア
ドレスが同一サブアレイの同一データ・セクションへの
アクセスを試みた場合に続行すべき1つの入力アドレス
を選択するために、アービトレーション論理回路を使用
する。
【0010】
【発明の実施の形態】本発明は、キャッシュベースのデ
ータ処理システムで実施することができる。また、本発
明の特徴は、内容アドレス可能メモリが有用であるかま
たは複数メモリ・アクセスが要求されるような、1次キ
ャッシュ、2次キャッシュ、変換バッファなどの様々な
データ処理システムで適用可能であることにも留意され
たい。
【0011】次に、添付図面、特に図1を参照すると、
同図には、本発明の好ましい実施例によるキャッシュ・
メモリを取り入れることができる、典型的なデータ処理
システムのブロック図が示されている。図1には単一プ
ロセッサ104しか示されていないが、本発明の特徴は
マルチプロセッサ・システムでも有用である。プロセッ
サ104は、スーパースカラRISCタイプにすること
ができるCPU106を有し、オンチップ命令キャッシ
ュ107とデータ・キャッシュ108とを含む単一チッ
プ装置として構築されている。どちらのキャッシュ10
7、108も、ローカル・バス構造内の別個の経路によ
りCPU106に接続されている。命令キャッシュ10
7はキャッシュ制御装置109aを介してローカル・バ
ス105に接続され、データ・キャッシュ108はキャ
ッシュ制御装置109bを介してローカル・バス105
に接続されている。2次キャッシュ110もキャッシュ
制御装置111を介してローカル・バス105に接続さ
れている。通常、2次キャッシュ110は、命令キャッ
シュ107またはデータ・キャッシュ108よりかなり
大きいので、2次キャッシュ110へのアクセスは、命
令キャッシュ107またはデータ・キャッシュ108へ
のアクセスよりいくらか遅くなる。また、CPU106
はバス・インタフェース112を介してシステム・バス
113にも接続され、そのインタフェースでは、ローカ
ル・バス105とシステム・バス113とのタイミング
および制御変換が行われている。さらに、メイン・メモ
リ115とディスク記憶装置116がシステム・バス1
13に結合されている。
【0012】命令キャッシュ107とデータ・キャッシ
ュ108は、有効(すなわち、未変換)アドレスならび
に実(すなわち、物理)アドレスによってアドレス指定
することができる。したがって、プロセッサ104内の
ローカル・バス105は、有効アドレス・バス、実アド
レス・バス、命令アドレス・バスを含む、いくつかのア
ドレス・バスを備えている。これに対して、2次キャッ
シュ110は、通常、実アドレスのみによってアドレス
指定される。
【0013】メモリ階層は、最高速から最低速へ、最小
から最大へ、ビット当たり最高価格からビット当たり最
低価格へとなり、キャッシュ107、108から、2次
キャッシュ110、メイン・メモリ115、ディスク記
憶装置116へという順番になっている。通常、メイン
・メモリ115はディスク記憶装置116の内容のサブ
セットを含み、2次キャッシュ110はメイン・メモリ
115の内容のサブセットを含み、各キャッシュ10
7、108は2次キャッシュ110の内容のサブセット
を含んでいる。CPU106は1つのプロセッサ・サイ
クル内にキャッシュ107、108にアクセスすること
ができるが、2次キャッシュ110へのアクセスには数
プロセッサ・サイクルを要する場合がある。キャッシュ
107、108と2次キャッシュ110でキャッシュ
「ミス」が発生した場合、キャッシュ線充填操作−−−
アドレス指定したデータを含む、メイン・メモリ115
からの同等ビット部分でキャッシュ線を置換すること−
−−を実行するためにメイン・メモリ115がアクセス
される。このキャッシュ線充填操作は、キャッシュ「ミ
ス」が発生したキャッシュ・アクセス試行を満足するた
めに行う必要がある。キャッシュ線充填操作が試行され
る位置がメイン・メモリ115に含まれていない場合、
キャッシュ線充填操作を完了できるように、このデータ
を含むページがディスク記憶装置116から獲得され
る。ディスク記憶装置116からページを獲得し、それ
をメイン・メモリ115に書き込むための時間は、通
常、何千ものプロセッサ・サイクルを必要とし、その間
に別のタスクを実行するようにCPU106を切り替え
るか、または要求を満足するためのデータを待つために
CPU106を停止することができる。
【0014】次に図2を参照すると、同図には、本発明
の特徴を取り入れることができるデータ・キャッシュ1
08のブロック図が示されている。好ましい実施例によ
れば、データ・キャッシュ108は、内容アドレス可能
メモリ(CAM)エレメントとして構成されたアドレス
比較回路を有するスタティック・ランダム・アクセス・
メモリ(RAM)デバイスである。データ・キャッシュ
108へは、4つの外部アドレス・ポートがある。EA
0 24とEA1 25は有効アドレス用であり、RA
26は実アドレス用である。ミスEA 29は、キャ
ッシュ「ミス」論理回路(すなわち、キャッシュ線充填
操作)によって処理される線の有効アドレス用であるこ
とが好ましいが、ミスEA 29は他のタイプの入力ア
クセスにも使用することができる。本発明の好ましい実
施例によれば、データ・キャッシュ108は、サブアレ
イ11、サブアレイ12、サブアレイ13、サブアレイ
14という4つのサブアレイに物理的に分割されてい
る。図2に示すように、サブアレイ11〜14と、デー
タ・セル・アレイ15、16など、各サブアレイ11〜
14内のデータ・セル・アレイは、ワイヤ長とチップ面
積を低減するために最適な配置になっている。すべての
サブアレイ11、12、13、14は同一構造になって
いるので、本発明の開示のためにサブアレイ11につい
てのみ、詳細に説明する。
【0015】サブアレイ11は128本のキャッシュ線
を含んでいる。この128本のキャッシュ線のそれぞれ
は、奇数ダブルワード・セクションと偶数ダブルワード
・セクションという2つのセクションに物理的に分割さ
れているが、論理的にはどちらのセクションもキャッシ
ュ線に属している。奇数ダブルワード・セクションはデ
ータ・セル・アレイ15内に位置し、偶数ダブルワード
・セクションはデータ・セル・アレイ16内に位置す
る。各ダブルワード・セクションは512ビット幅であ
る。したがって、サブアレイ11は、512+512=
1024ビット幅で、128ビットの深さであり、合わ
せて16Kバイトになる。1つのダブルワード(DW)
が64ビット(または8バイト)に等しいと定義する
と、各データ・セル・アレイ15、16は8DWの幅に
なる。各キャッシュ線は、1024ビットのデータ・フ
ィールドに加え、128ビットのパリティ・フィールド
と、31ビットの奇数RCAMフィールド17a、12
ビットの偶数ECAMフィールド18a、12ビットの
奇数ECAMフィールド18b、3ビットの偶数MES
Iフィールド19a、3ビットの奇数MESIフィール
ド19b、28ビットの偶数RTAGフィールド17b
など、様々な制御フィールドとを含むことが好ましい。
したがって、各キャッシュ線上のビット数は1200ビ
ットを上回ることになる。
【0016】図2に示すように、サブアレイ11は、デ
ータ・セル・アレイ15および16用の割振りバッファ
20も含んでいる。さらに、各ビット線対からの出力信
号を増幅するために、センス・アンプ22が設けられて
いる。データは、データ(0)27とデータ(1)28
という2つの出力上で同時に生成することができる。す
なわち、データ・キャッシュ108は、複数のアドレス
によって同時にアクセスすることができ、同一プロセッ
サ・サイクル内で複数のデータを出力することもでき
る。
【0017】次に図3を参照すると、同図には、本発明
の好ましい実施例により、データ・キャッシュ108を
アドレス指定するために使用可能なアドレス指定方式の
図が示されている。それぞれ図2の入力線EA0 24
およびEA1 25からの有効アドレス31および32
内のフィールド割振りは互いに同一である。それぞれの
有効アドレス31および32は64ビットであることが
好ましい。図示の通り、フィールド36のビット0〜4
2は本発明では使用しない。フィールド34のビット5
5〜56はデータ・キャッシュ108内の4つのサブア
レイ11〜14のうちの1つを選択するために使用す
る。フィールド33のビット57〜63は有効アドレス
31、32の線オフセットを表す。具体的には、ビット
60は奇数データ・アレイ15または偶数データ・アレ
イ16からキャッシュ線を選択するために使用し、ビッ
ト57〜59は指定のキャッシュ線内の8つのDWのう
ちの1つを選択するために使用し、ビット61〜63は
使用しない。最後に、フィールド35のビット43〜5
4は、本明細書で「ECAMタグ」と呼ぶ内容アドレス
可能メモリ・フィールドと比較するためのタグを形成す
るが、このフィールドはデータ・セル・アレイ16およ
びデータ・セル・アレイ15それぞれの偶数ECAM1
8aおよび奇数ECAM18b内に存在する。入力線ミ
スEA29用の有効アドレスの好ましい形式は、EA0
24およびEA1 25の両方と同一である。
【0018】図3には、本発明で使用可能な40ビット
実アドレス38の好ましい実施例も示されている。有効
アドレスと同様、フィールド40のビット31〜32は
データ・キャッシュ108内の4つのサブアレイ11〜
14のうちの1つを選択するために使用する。フィール
ド39のビット33〜39は実アドレスの線オフセット
用である。具体的には、ビット36は奇数データ・アレ
イ15または偶数データ・アレイ16からキャッシュ線
を選択するために使用し、ビット33〜35は指定のキ
ャッシュ線内の8つのDWのうちの1つを選択するため
に使用し、ビット37〜39は使用しない。最後に、フ
ィールド41のビット0〜30は、本明細書で「RCA
Mタグ」と呼ぶ、RCAM17aの第2の内容アドレス
可能フィールド内に格納される関連情報ブロック用であ
る。
【0019】したがって、図3に示すアドレス指定方式
によれば、本発明のデータ・キャッシュ108を取り入
れたデータ処理システム内の各情報ブロックは、1つの
サブアレイ11〜14内の1ブロック分の情報を選択す
るために有効アドレス31、32または実アドレス38
とともに使用可能な、少なくとも1つの個別の内容アド
レス可能フィールドを含むことになる。
【0020】次に図4を参照すると、同図には、サブア
レイ11のより詳細な図が示されている。前述のよう
に、サブアレイ11のデータ・セクションは、奇数デー
タ・アレイ15と偶数データ・アレイ16という2つの
個別のセクションに分割されている。サブアレイ11内
の各キャッシュ線は1024ビット幅であり、キャッシ
ュ線の半分が奇数データ・アレイ15に含まれ、半分が
偶数データ・アレイ16に含まれることが好ましい。し
たがって、EA0 24とEA1 26(またはその他
の2つのアドレスの組合せ)は、それぞれが別々のデー
タ・アレイ15または16に向けられている限り、両方
同時にサブアレイ11にアクセスすることができる。サ
ブアレイ11のこの構成により、4サブアレイ・データ
・キャッシュ108の全インターリーブ要因が効果的に
増加されるように同一サブアレイ内でのダブルワード・
インターリーブが可能になる。
【0021】データ・アレイ15および16に加え、M
ESIとECAMもそれぞれ偶数セクションと奇数セク
ションの両方に分割されている。MESIフィールド1
9a、19bは、変更済み、排他、共用、無効を意味す
るためにデータ・キャッシュ内で一般に使用される制御
ビットを含んでいる。したがって、データ・キャッシュ
108内の特定のキャッシュ線用のデータの状況は、M
ESIフィールド19aまたは19b内のこのようなM
ESIビットの状況を問い合わせることによって迅速か
つ効率よく判定することができる。同様に、特定のキャ
ッシュ線用のデータの状況は、MESIフィールド19
aまたは19bに異なるビットを書き込むことによって
変更することができる。
【0022】ECAM18a、18bはどちらも、関連
データ用の有効アドレス・ディレクトリ情報を含んでい
る。ライン・インターリーブ設計では、偶数ECAM1
8aは偶数データ・アレイ16用であり、奇数ECAM
18bは奇数データ・アレイ15用である。本発明の好
ましい実施例としては、アドレス・アービトレーション
論理回路により、偶数データ・アドレスが偶数ECAM
18aにアクセスしているのと同じサイクル中に奇数デ
ータ・アドレスが奇数ECAM18bにアクセスできる
ようになる。いずれかのECAM18a、18bでキャ
ッシュ「ヒット」が発生すると、「ヒット」を確認する
ために実アドレスを出力するように、関連RCAM17
a(またはRTAG)へのキャッシュ線に警報が出され
る。
【0023】PLRU23は、キャッシュ線充填操作中
にデータを廃棄すべきキャッシュ線を決定するために、
最低使用頻度(LRU)(またはこの実施例では擬似L
RUであることが好ましい)と呼ばれるアルゴリズムを
実行するために使用する。ワード線21aとワード線2
1bは、それぞれ偶数データ・アレイ16および奇数デ
ータ・アレイ15内のグローバル・ワード線を励起する
ためのドライバ回路である。
【0024】次に図5を参照すると、同図には、データ
・キャッシュ108のサブアレイ11内のデータの流れ
を示す機能ブロック図が示されている。データ・キャッ
シュ108は、EA0 24、EA1 25、ミスEA
29上のそれぞれで3つの有効アドレスを、RA 26
上で1つの実アドレスを同時に受け取ることができる。
しかし、2つまたはそれ以上のアドレスが同一サブアレ
イの同一データ・セクションにアクセスしようとした場
合、アービトレーション論理回路80は、マルチプレク
サ81aおよび81bにより、どちらのアドレスにアク
セスできるかを決定する。
【0025】いくつかの効率のよいシーケンスでデータ
にアクセスできるようにするために、サブアレイ11内
には、RCAM17a、偶数ECAM18a、奇数EC
AM18bという3つの別個の内容アドレス可能メモリ
が設けられている。一致があるかどうかを判定するため
に、RA 26はRCAM17aに出力され、EA02
4、EA1 25、ミスEA29はサブアレイ11のE
CAM18a、18b(および他のそれぞれのRCAM
と、他の各サブアレイ12〜14用のECAM)に出力
される。ECAM18aまたは18bあるいはその両方
に一致が存在する場合は、ematch_line50aまたは5
0bあるいはその両方がそれぞれ引き出される。RCA
M17aに一致が存在する場合は、rmatch_line51が
引き出される。グローバル・ワード線を励起するために
ematch_line50aとrmatch_line51との間で選択を行
うため、マルチプレクサ82aとともにアービトレーシ
ョン回路80を使用する。同様に、グローバル・ワード
線を励起するためにematch_line50bとrmatch_line5
1との間で選択を行うため、マルチプレクサ82bとと
もにアービトレーション回路80を使用する。ワード線
21aまたは21b内のドライバは、データ・アレイ1
5または16内のグローバル・ワード線の励起を担当す
る。
【0026】EA0 24、EA1 25、またはミス
EA29のいずれかの場合、データはデータ(0)27
またはデータ(1)28のいずれかから供給され、それ
ぞれのタグ出力はRTAG17aまたは17bのいずれ
かから供給される。RTAG17aまたは17bからの
タグ出力は、キャッシュ「ヒット」を確認するためにメ
モリ管理ユニットからの実タグ出力と比較しなければな
らない。しかし、RA26の場合、データ(0)27ま
たはデータ(1)28からのデータは、タグ確認なしで
データ・アレイ15または16から直接獲得することが
できる。
【0027】本発明の重要な特徴は、出力データのアー
ビトレーションと選択が順次ではなく並列で進行する間
に、タグを突き合わせ、データ・セルのアレイをアドレ
ス指定し、潜在的に使用可能なデータを生成するプロセ
スを続行することができ、そのために速度が上がること
である。競合アドレスのどれを続行すべきかをアービト
レーション論理回路80が判定する間に、一致があるか
どうかを判定する並列プロセスが独立して実行されてい
る。
【0028】ロード操作とストア操作の両方をデータ・
キャッシュ108内で並列実行することができる。実ア
ドレスによるストア要求とともに有効アドレスによるロ
ード要求を示す例は、以下の通りである。ロード要求の
場合、EA0 24、EA125、ミスEA29のいず
れかからの有効アドレスは、マルチプレクサ81aおよ
び81bによって選択することができる。選択した有効
アドレスは次に比較のためにECAM18aなどに送ら
れる。次に、ワード線マルチプレクサ82aは、rmatch
_line51ではなくematch_line50aを選択し、グロー
バル・ワード線を励起する。最後に、データは偶数デー
タ・アレイ16から読み出され、そのRTAGとMES
IはRTAG17bから読み出される。ストア要求の場
合、比較のために実アドレス26がRCAM17aに入
る。たとえば、ワード線マルチプレクサ82bは、奇数
データ・アレイ15にデータを格納するためのグローバ
ル・ワード線を励起するためにrmatch_line51を選択
する。同時に、rmatch_line51は、RCAMワード線
51aおよび51bも励起し、RCAM/MESI17
aおよび17b内の第2のポートを介してRCAM/M
ESI17aおよび17bをそれぞれ更新する。
【0029】前述のように、本発明は、インターリーブ
要因を最大限にすると同時にチップの物理的配置を最小
限にするような改良されたキャッシュ構成とともに、同
時複数アクセス機能を大幅に強化できるようにこのキャ
ッシュ・メモリにアクセスするための関連方法を提供す
る。
【0030】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0031】(1)複数のメモリ・セルからなる複数の
サブアレイであって、前記複数のサブアレイのそれぞれ
が偶数データ・セクションと奇数データ・セクションと
をそれぞれ含む複数のサブアレイと、単一プロセッサ・
サイクル中に前記複数のサブアレイに複数の入力アドレ
スを出力する手段と、前記複数のサブアレイのそれぞれ
の少なくとも3つの内容アドレス可能メモリであって、
前記少なくとも3つの内容アドレス可能メモリ内に格納
されたタグと比較するために前記複数の入力アドレスを
受け取り、前記少なくとも3つの内容アドレス可能メモ
リのうちの第1のメモリが前記偶数データ・セクション
に関連付けられ、前記少なくとも3つの内容アドレス可
能メモリのうちの第2のメモリが前記奇数データ・セク
ションに関連付けられている少なくとも3つの内容アド
レス可能メモリと、前記複数の入力アドレスのうちの複
数が前記複数のサブアレイのうちのいずれかのサブアレ
イ内の同一データ・セクションにアクセスしようと試み
た場合に前記複数のアドレスのうちの1つを選択するア
ービトレーション手段とを含むことを特徴とする、イン
ターリーブ式キャッシュ・メモリ。 (2)前記少なくとも3つの内容アドレス可能メモリの
うちの第3のメモリが前記偶数データ・セクションと前
記奇数セクションの両方に関連付けられていることを特
徴とする、上記(1)に記載のインターリーブ式キャッ
シュ・メモリ。 (3)前記複数の入力アドレスが3つの有効アドレスと
1つの実アドレスとを含むことを特徴とする、上記
(1)に記載のインターリーブ式キャッシュ・メモリ。 (4)2つまたはそれ以上のサブアレイに同時にアクセ
スするために前記複数の入力アドレスに応答する手段を
さらに含むことを特徴とする、上記(1)に記載のイン
ターリーブ式キャッシュ・メモリ。 (5)2つまたはそれ以上のデータ・セクションに同時
にアクセスするために前記複数の入力アドレスに応答す
る手段をさらに含むことを特徴とする、上記(1)に記
載のインターリーブ式キャッシュ・メモリ。 (6)複数のMESIフィールドをさらに含み、各ME
SIフィールドが前記少なくとも3つの内容アドレス可
能メモリのうちの1つによってアクセスされる少なくと
も2つのポートを含むことを特徴とする、上記(1)に
記載のインターリーブ式キャッシュ・メモリ。 (7)単一サイクル複数アクセス可能メモリ・キャッシ
ュ機能を有するデータ処理システムにおいて、前記デー
タ処理が、キャッシュ・メモリを含み、前記キャッシュ
・メモリが、複数のメモリ・セル・サブアレイであっ
て、前記複数のメモリ・セル・サブアレイのそれぞれが
偶数データ・セクションと奇数データ・セクションとを
さらに含む複数のメモリ・セル・サブアレイと、単一プ
ロセッサ・サイクル中に前記複数のサブアレイに複数の
入力アドレスを出力する手段と、前記複数のサブアレイ
のそれぞれの少なくとも3つの内容アドレス可能メモリ
であって、前記少なくとも3つの内容アドレス可能メモ
リ内に格納されたタグと比較するために前記複数の入力
アドレスを受け取り、前記少なくとも3つの内容アドレ
ス可能メモリのうちの第1のメモリが前記偶数データ・
セクションに関連付けられ、前記少なくとも3つの内容
アドレス可能メモリのうちの第2のメモリが前記奇数デ
ータ・セクションに関連付けられている少なくとも3つ
の内容アドレス可能メモリと、前記複数の入力アドレス
のうちの複数が前記複数のサブアレイのうちのいずれか
のサブアレイ内の同一データ・セクションにアクセスし
ようと試みた場合に前記複数のアドレスのうちの1つを
選択するアービトレーション手段とを含むことを特徴と
する、データ処理システム。 (8)前記少なくとも3つの内容アドレス可能メモリの
うちの第3のメモリが前記偶数データ・セクションと前
記奇数セクションの両方に関連付けられていることを特
徴とする、上記(7)に記載のデータ処理システム。 (9)前記複数の入力アドレスが3つの有効アドレスと
1つの実アドレスとを含むことを特徴とする、上記
(7)に記載のデータ処理システム。 (10)前記キャッシュ・メモリが、2つまたはそれ以
上のサブアレイに同時にアクセスするために前記複数の
入力アドレスに応答する手段をさらに含むことを特徴と
する、上記(7)に記載のデータ処理システム。 (11)前記キャッシュ・メモリが、2つまたはそれ以
上のデータ・セクションに同時にアクセスするために前
記複数の入力アドレスに応答する手段をさらに含むこと
を特徴とする、上記(7)に記載のデータ処理システ
ム。 (12)前記キャッシュ・メモリが複数のMESIフィ
ールドをさらに含み、各MESIフィールドが前記少な
くとも3つの内容アドレス可能メモリのうちの1つによ
ってアクセスされる少なくとも2つのポートを含むこと
を特徴とする、上記(7)に記載のデータ処理システ
ム。 (13)複数のメモリ・セルからなる複数のサブアレイ
を有するキャッシュ・メモリを操作する方法において、
各サブアレイが複数のキャッシュ線を含み、前記方法
が、前記複数のサブアレイのそれぞれを偶数データ・ア
レイと奇数データ・アレイに分離するステップと、3つ
の内容アドレス可能アレイを前記複数のサブアレイのそ
れぞれに関連付けるステップであって、前記3つの内容
アドレス可能アレイのうちの第1のアレイが前記偶数デ
ータ・アレイに関連付けられ、前記3つの内容アドレス
可能アレイのうちの第2のアレイが前記奇数データ・ア
レイに関連付けられるステップと、少なくとも2つのタ
イプのアドレスについて、前記3つの内容アドレス可能
アレイのそれぞれにタグを格納するステップと、単一プ
ロセッサ・サイクル中に前記複数のサブアレイに複数の
入力アドレスを出力するステップと、前記少なくとも3
つの内容アドレス可能メモリ内に格納されたタグと比較
するために前記複数の入力アドレスを受け取るステップ
と、前記複数の入力アドレスのうちの複数が前記複数の
サブアレイのうちのいずれかのサブアレイ内の同一デー
タ・セクションにアクセスしようと試みた場合に前記複
数のアドレスのうちの1つを選択し、アービトレーショ
ンを行うステップとを含むことを特徴とする方法。 (14)同一サブアレイの同一データ・セクションのた
めに1つのグローバル・ワード線信号を生成するために
複数の一致線のアービトレーションを行うステップをさ
らに含むことを特徴とする、上記(13)に記載の複数
のメモリ・セルからなる複数のサブアレイを有するキャ
ッシュ・メモリを操作する方法。 (15)前記受取りステップと前記アービトレーション
・ステップが前記複数のそれぞれで同時に行われること
を特徴とする、上記(13)に記載の複数のメモリ・セ
ルからなる複数のサブアレイを有するキャッシュ・メモ
リを操作する方法。
【図面の簡単な説明】
【図1】本発明の好ましい実施例によるキャッシュ・メ
モリを有するデータ処理システムのブロック図である。
【図2】本発明の好ましい実施例により4つのサブアレ
イを有するキャッシュ・メモリのブロック図である。
【図3】図2のキャッシュ・メモリに適用可能なアドレ
スの好ましいフォーマットを示す図である。
【図4】図2のキャッシュ・メモリのサブアレイの1つ
を示す詳細図である。
【図5】図2のキャッシュ・メモリのサブアレイ内のデ
ータの流れを示すブロック図である。
【符号の説明】
104 プロセッサ 105 ローカル・バス 106 CPU 107 命令キャッシュ 108 データ・キャッシュ 109a キャッシュ制御装置 109b キャッシュ制御装置 110 2次キャッシュ 111 キャッシュ制御装置 112 バス・インタフェース 113 システム・バス 115 メイン・メモリ 116 ディスク記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラジンデル・ポール・シング アメリカ合衆国78717 テキサス州オース チン エフライム・ロード 8403

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】複数のメモリ・セルからなる複数のサブア
    レイであって、前記複数のサブアレイのそれぞれが偶数
    データ・セクションと奇数データ・セクションとをそれ
    ぞれ含む複数のサブアレイと、 単一プロセッサ・サイクル中に前記複数のサブアレイに
    複数の入力アドレスを出力する手段と、 前記複数のサブアレイのそれぞれの少なくとも3つの内
    容アドレス可能メモリであって、前記少なくとも3つの
    内容アドレス可能メモリ内に格納されたタグと比較する
    ために前記複数の入力アドレスを受け取り、前記少なく
    とも3つの内容アドレス可能メモリのうちの第1のメモ
    リが前記偶数データ・セクションに関連付けられ、前記
    少なくとも3つの内容アドレス可能メモリのうちの第2
    のメモリが前記奇数データ・セクションに関連付けられ
    ている少なくとも3つの内容アドレス可能メモリと、 前記複数の入力アドレスのうちの複数が前記複数のサブ
    アレイのうちのいずれかのサブアレイ内の同一データ・
    セクションにアクセスしようと試みた場合に前記複数の
    アドレスのうちの1つを選択するアービトレーション手
    段とを含むことを特徴とする、インターリーブ式キャッ
    シュ・メモリ。
  2. 【請求項2】前記少なくとも3つの内容アドレス可能メ
    モリのうちの第3のメモリが前記偶数データ・セクショ
    ンと前記奇数セクションの両方に関連付けられているこ
    とを特徴とする、請求項1に記載のインターリーブ式キ
    ャッシュ・メモリ。
  3. 【請求項3】前記複数の入力アドレスが3つの有効アド
    レスと1つの実アドレスとを含むことを特徴とする、請
    求項1に記載のインターリーブ式キャッシュ・メモリ。
  4. 【請求項4】2つまたはそれ以上のサブアレイに同時に
    アクセスするために前記複数の入力アドレスに応答する
    手段をさらに含むことを特徴とする、請求項1に記載の
    インターリーブ式キャッシュ・メモリ。
  5. 【請求項5】2つまたはそれ以上のデータ・セクション
    に同時にアクセスするために前記複数の入力アドレスに
    応答する手段をさらに含むことを特徴とする、請求項1
    に記載のインターリーブ式キャッシュ・メモリ。
  6. 【請求項6】複数のMESIフィールドをさらに含み、
    各MESIフィールドが前記少なくとも3つの内容アド
    レス可能メモリのうちの1つによってアクセスされる少
    なくとも2つのポートを含むことを特徴とする、請求項
    1に記載のインターリーブ式キャッシュ・メモリ。
  7. 【請求項7】単一サイクル複数アクセス可能メモリ・キ
    ャッシュ機能を有するデータ処理システムにおいて、前
    記データ処理が、 キャッシュ・メモリを含み、前記キャッシュ・メモリ
    が、 複数のメモリ・セル・サブアレイであって、前記複数の
    メモリ・セル・サブアレイのそれぞれが偶数データ・セ
    クションと奇数データ・セクションとをさらに含む複数
    のメモリ・セル・サブアレイと、 単一プロセッサ・サイクル中に前記複数のサブアレイに
    複数の入力アドレスを出力する手段と、 前記複数のサブアレイのそれぞれの少なくとも3つの内
    容アドレス可能メモリであって、前記少なくとも3つの
    内容アドレス可能メモリ内に格納されたタグと比較する
    ために前記複数の入力アドレスを受け取り、前記少なく
    とも3つの内容アドレス可能メモリのうちの第1のメモ
    リが前記偶数データ・セクションに関連付けられ、前記
    少なくとも3つの内容アドレス可能メモリのうちの第2
    のメモリが前記奇数データ・セクションに関連付けられ
    ている少なくとも3つの内容アドレス可能メモリと、 前記複数の入力アドレスのうちの複数が前記複数のサブ
    アレイのうちのいずれかのサブアレイ内の同一データ・
    セクションにアクセスしようと試みた場合に前記複数の
    アドレスのうちの1つを選択するアービトレーション手
    段とを含むことを特徴とする、データ処理システム。
  8. 【請求項8】前記少なくとも3つの内容アドレス可能メ
    モリのうちの第3のメモリが前記偶数データ・セクショ
    ンと前記奇数セクションの両方に関連付けられているこ
    とを特徴とする、請求項7に記載のデータ処理システ
    ム。
  9. 【請求項9】前記複数の入力アドレスが3つの有効アド
    レスと1つの実アドレスとを含むことを特徴とする、請
    求項7に記載のデータ処理システム。
  10. 【請求項10】前記キャッシュ・メモリが、2つまたは
    それ以上のサブアレイに同時にアクセスするために前記
    複数の入力アドレスに応答する手段をさらに含むことを
    特徴とする、請求項7に記載のデータ処理システム。
  11. 【請求項11】前記キャッシュ・メモリが、2つまたは
    それ以上のデータ・セクションに同時にアクセスするた
    めに前記複数の入力アドレスに応答する手段をさらに含
    むことを特徴とする、請求項7に記載のデータ処理シス
    テム。
  12. 【請求項12】前記キャッシュ・メモリが複数のMES
    Iフィールドをさらに含み、各MESIフィールドが前
    記少なくとも3つの内容アドレス可能メモリのうちの1
    つによってアクセスされる少なくとも2つのポートを含
    むことを特徴とする、請求項7に記載のデータ処理シス
    テム。
  13. 【請求項13】複数のメモリ・セルからなる複数のサブ
    アレイを有するキャッシュ・メモリを操作する方法にお
    いて、各サブアレイが複数のキャッシュ線を含み、前記
    方法が、 前記複数のサブアレイのそれぞれを偶数データ・アレイ
    と奇数データ・アレイに分離するステップと、 3つの内容アドレス可能アレイを前記複数のサブアレイ
    のそれぞれに関連付けるステップであって、前記3つの
    内容アドレス可能アレイのうちの第1のアレイが前記偶
    数データ・アレイに関連付けられ、前記3つの内容アド
    レス可能アレイのうちの第2のアレイが前記奇数データ
    ・アレイに関連付けられるステップと、 少なくとも2つのタイプのアドレスについて、前記3つ
    の内容アドレス可能アレイのそれぞれにタグを格納する
    ステップと、 単一プロセッサ・サイクル中に前記複数のサブアレイに
    複数の入力アドレスを出力するステップと、 前記少なくとも3つの内容アドレス可能メモリ内に格納
    されたタグと比較するために前記複数の入力アドレスを
    受け取るステップと、 前記複数の入力アドレスのうちの複数が前記複数のサブ
    アレイのうちのいずれかのサブアレイ内の同一データ・
    セクションにアクセスしようと試みた場合に前記複数の
    アドレスのうちの1つを選択し、アービトレーションを
    行うステップとを含むことを特徴とする方法。
  14. 【請求項14】同一サブアレイの同一データ・セクショ
    ンのために1つのグローバル・ワード線信号を生成する
    ために複数の一致線のアービトレーションを行うステッ
    プをさらに含むことを特徴とする、請求項13に記載の
    複数のメモリ・セルからなる複数のサブアレイを有する
    キャッシュ・メモリを操作する方法。
  15. 【請求項15】前記受取りステップと前記アービトレー
    ション・ステップが前記複数のそれぞれで同時に行われ
    ることを特徴とする、請求項13に記載の複数のメモリ
    ・セルからなる複数のサブアレイを有するキャッシュ・
    メモリを操作する方法。
JP10061997A 1996-04-26 1997-04-17 インターリーブ式キャッシュ Expired - Fee Related JP3468268B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/638263 1996-04-26
US08/638,263 US5761714A (en) 1996-04-26 1996-04-26 Single-cycle multi-accessible interleaved cache

Publications (2)

Publication Number Publication Date
JPH1055311A true JPH1055311A (ja) 1998-02-24
JP3468268B2 JP3468268B2 (ja) 2003-11-17

Family

ID=24559311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10061997A Expired - Fee Related JP3468268B2 (ja) 1996-04-26 1997-04-17 インターリーブ式キャッシュ

Country Status (7)

Country Link
US (1) US5761714A (ja)
EP (1) EP0803818B1 (ja)
JP (1) JP3468268B2 (ja)
KR (1) KR970071281A (ja)
AT (1) ATE211276T1 (ja)
DE (1) DE69709226T2 (ja)
ES (1) ES2165564T3 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2748595B1 (fr) * 1996-05-10 1998-07-10 Sgs Thomson Microelectronics Memoire a acces parallele
US5930819A (en) * 1997-06-25 1999-07-27 Sun Microsystems, Inc. Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache
JPH1139857A (ja) * 1997-07-23 1999-02-12 Toshiba Corp メモリシステム及び情報処理システム
US6226710B1 (en) 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
US6226707B1 (en) * 1997-11-17 2001-05-01 Siemens Aktiengesellschaft System and method for arranging, accessing and distributing data to achieve zero cycle penalty for access crossing a cache line
JPH11212864A (ja) * 1998-01-29 1999-08-06 Sanyo Electric Co Ltd メモリ装置
US6240487B1 (en) * 1998-02-18 2001-05-29 International Business Machines Corporation Integrated cache buffers
US6202128B1 (en) * 1998-03-11 2001-03-13 International Business Machines Corporation Method and system for pre-fetch cache interrogation using snoop port
US6212616B1 (en) * 1998-03-23 2001-04-03 International Business Machines Corporation Even/odd cache directory mechanism
US6233655B1 (en) * 1998-04-30 2001-05-15 International Business Machines Corporation Method for Quad-word Storing into 2-way interleaved L1 cache
US6640220B1 (en) 2000-03-14 2003-10-28 Aeroflex Utmc Microelectronic Systems, Inc. Search coprocessor subsystem having multiple search engines and dedicated key-table memory for connection to a computer system
JP2002055879A (ja) * 2000-08-11 2002-02-20 Univ Hiroshima マルチポートキャッシュメモリ
US20050182884A1 (en) * 2004-01-22 2005-08-18 Hofmann Richard G. Multiple address two channel bus structure
TWI355588B (en) * 2008-01-25 2012-01-01 Realtek Semiconductor Corp Arbitration device and method thereof
US20150100733A1 (en) * 2013-10-03 2015-04-09 Synopsys, Inc. Efficient Memory Organization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6057090B2 (ja) * 1980-09-19 1985-12-13 株式会社日立製作所 データ記憶装置およびそれを用いた処理装置
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
GB2277181B (en) * 1991-12-23 1995-12-13 Intel Corp Interleaved cache for multiple accesses per clock in a microprocessor
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5689680A (en) * 1993-07-15 1997-11-18 Unisys Corp. Cache memory system and method for accessing a coincident cache with a bit-sliced architecture
US5805855A (en) * 1994-10-05 1998-09-08 International Business Machines Corporation Data cache array having multiple content addressable fields per cache line
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

Also Published As

Publication number Publication date
ATE211276T1 (de) 2002-01-15
DE69709226D1 (de) 2002-01-31
EP0803818A2 (en) 1997-10-29
DE69709226T2 (de) 2002-08-22
EP0803818A3 (en) 1998-04-15
ES2165564T3 (es) 2002-03-16
JP3468268B2 (ja) 2003-11-17
US5761714A (en) 1998-06-02
KR970071281A (ko) 1997-11-07
EP0803818B1 (en) 2001-12-19

Similar Documents

Publication Publication Date Title
US6477621B1 (en) Parallel access virtual channel memory system
KR100244841B1 (ko) 캐쉬 메모리 및 그 동작 방법
US6151658A (en) Write-buffer FIFO architecture with random access snooping capability
KR100454441B1 (ko) 전폭캐쉬를가진집적프로세서/메모리장치
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
US6708254B2 (en) Parallel access virtual channel memory system
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
US5960455A (en) Scalable cross bar type storage controller
JP3468268B2 (ja) インターリーブ式キャッシュ
JP3093807B2 (ja) キャッシュ
JPH08227380A (ja) データ処理システム
US6101589A (en) High performance shared cache
JPH11203192A (ja) 並列プロセッサおよび演算処理方法
US6038642A (en) Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US5333291A (en) Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination
WO2001075607A2 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
JP2002055879A (ja) マルチポートキャッシュメモリ
US6240487B1 (en) Integrated cache buffers
JPS63201851A (ja) バッファ記憶アクセス方法
US5905999A (en) Cache sub-array arbitration
US9146874B2 (en) Dual access for single port cache
US6704820B1 (en) Unified cache port consolidation
US7346746B2 (en) High performance architecture with shared memory

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees