JPH10177519A - 統合されたプロセッサ・メモリ装置 - Google Patents

統合されたプロセッサ・メモリ装置

Info

Publication number
JPH10177519A
JPH10177519A JP9187286A JP18728697A JPH10177519A JP H10177519 A JPH10177519 A JP H10177519A JP 9187286 A JP9187286 A JP 9187286A JP 18728697 A JP18728697 A JP 18728697A JP H10177519 A JPH10177519 A JP H10177519A
Authority
JP
Japan
Prior art keywords
cache
bank
data cache
main memory
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.)
Pending
Application number
JP9187286A
Other languages
English (en)
Inventor
Ashley Saulsbury
アシュレイ・ソールズバリー
Andreas Nowatzyk
アンドレアス・ノアズィック
Fong Pong
フォン・ポン
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10177519A publication Critical patent/JPH10177519A/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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 メイン・メモリ、CPU及び全幅のキャッシ
ュを具備することによってメモリの壁の問題を解決する
統合されたプロセッサ/メモリ装置を得ること。 【解決手段】 メイン・メモリはメイン・メモリ・バン
クを有し、各メイン・メモリ・バンクはワードの行をス
トアする。行は所定ワード数の幅である。各キャッシュ
・ラインは、対応するメイン・メモリ・バンクにおいて
対応する行を有する。キャッシュ・ラインは所定ワード
数の幅である。CPUが対応するメイン・メモリ・バン
クのアドレス空間のアドレスを送出すると、キャッシュ
・バンクはこのアドレスとキャッシュ・ラインのタグか
らキャッシュ・バンク・ヒットが生じたか、あるいはキ
ャッシュ・ミスが生じたかを判定する。キャッシュ・バ
ンク・ミスが生ずると、キャッシュ・バンクはキャッシ
ュ・ラインのヴィクティム・キャッシュ・ラインを送出
されたアドレスによって指定された対応するメモリ・バ
ンクの対応する行を有する新しいキャッシュ・ラインで
置き換える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にオンチップ
のキャッシュとオンチップのメイン・メモリを有する統
合されたプロセッサ・メモリ(P/M)装置に係り、特
にオンチップのメイン・メモリと同じ幅(すなわち全
幅)のキャッシュを有するP/M装置に関する。
【0002】
【従来の技術】従来プロセッサとメモリ装置の開発は別
々に進められて来た。プロセス技術、回路設計及び集積
チップ(IC)体系の進歩によって、プロセッサの速度
とメモリの容量は指数関数的に増大した。しかし、メモ
リ装置の遅延は劇的には改善されず、アクセス・タイム
はますますプロセッサの性能に対する制限要因となって
きつつある。このことは、メモリの壁として知られてい
る問題であり、ウィリアム・A・ウルフ(William A. w
ulf)及びサリー・A・マッキー(Sally A. Mckee)に
よる「メモリの壁の打開:明白なものとの関連」(Hitt
ing the Memory Wall: Implication of the Obviou
s),ACMコンピュータ・アーキテクチャー・ニュー
スVol.23, No. 1,1995年3月,に詳細に記載
されており、参照により明細書に組み込まれるものとす
る。
【0003】階層化されたキャッシュを介して外部のオ
フチップのメイン・メモリにインターフェースする複雑
なスーパー・スカラー中央処理装置(CPU)を用いる
現在の高性能プロセッサは特にこのメモリの壁の問題に
影響される。事実、このCPU中心の設計方法ではCP
Uとメモリとの間の速度のギャップを埋めるのに多大な
電力とチップ領域を必要とする。
【0004】かかるメモリの壁の問題の解決の努力は、
数段階のキャッシュをメモリ・システムに追加して、小
型で高速なスタティック・ランダム・アクセス・メモリ
(SRAM)によりCPUに低遅延でデータを与えるよ
うにすることによって行われている。プリフェッチや適
切なコード・スケジュールのような遅延隠しの技術と組
み合わせることによって、キャッシュが十分活用できる
局所性を持つアプリケーションに対しては高性能プロセ
ッサを妥当な効率で動作させることが可能である。しか
し、キャッシュにうまく適合するアプリケーションにつ
いては劇的なパフォーマンスを達成するけれども、これ
らのプロセッサはますますアプリケーションに対する依
存性が高くなってしまった。例えば、CADプログラ
ム、データベース・アプリケーションあるいは科学技術
アプリケーションは、しばしばCPUベースの高速度の
期待から大きくはずれることがある。
【0005】更に、CPU中心の設計方式によって、深
いパイプラインを有する非常に複雑なスーパー・スカラ
ー・プロセッサがもたらされた。順不同実行やレジスタ
・スコアボード等の複雑さの多くはメモリ・システムの
遅延隠しのためである。さらに、これらのプロセッサは
外部のメイン・メモリと通信するためにキャッシュ、コ
ントローラおよびデータ・パスに関する膨大なサポート
・ロジックを必要とする。これによって、コスト、消費
電力及び設計の複雑さがかなり増大する。
【0006】スーパー・スカラー・プロセッサを完全に
利用するためには、大きなメモリ・システムが必要であ
る。この結果、CPUとメイン・メモリの間の距離が長
くなるというボトルネックが生ずることになる。特に、
パッケージングや接続制限事項によって、利用可能なメ
モリ帯域幅を減少させるインターフェース及びチップ境
界が増加してしまう。
【0007】しかし、プロセッサとメモリ装置を統合す
ることによって、CPU中心の設計方式の問題の大半が
避けられる。更に、そうすることによって、単一チップ
設計の技術的制約を効果的に補償する多くの利点が生ず
る。
【0008】
【発明が解決しようとする課題】特に、CPU中心のプ
ロセッサ設計においては、命令とキャッシュ・ラインの
幅はメイン・メモリの幅よりもかなり狭い。これは主と
して、オフチップのメイン・メモリからこれらのキャッ
シュ・ラインにフィルするための時間によってプロセッ
サのメモリ・インターフェースで厳しい2次衝突効果(s
econd order contention effects)が生ずるためであ
る。この結果、このような全幅より小さな幅のキャッシ
ュでは、命令とデータ・スリームに関してしばしば高い
空間的局所性の利点を活用できない。
【0009】従って、多くのアプリケーションで命令と
データ・ストリームに関して存在する空間的局所性の利
点を活用できる全幅の、命令とデータ用のキャッシュが
必要となる。更に、1996年7月1日出願のアシュレ
イ・サウルスバリ(Ashley Saulsbuly)、アンドレ・ノ
ワチク(Andreas Nowatzyk)、及びフォン・ポン(Fong
Pong)による「ヴィクティム・データ・キャッシュを
有する統合されたプロセッサ・メモリ装置(INTEGRATED
PROCESSOR/MEMORY DEVICE WITH VICTIM DATACACHE)」
という標題の対応米国特許出願第675272号(代理
人整理番号第A−63500/GSW/SMK)であり、この明
細書内に参照して組み込まれているものにおいて、ヴィ
クティム(犠牲)・データ・キャッシュを用いて更に全幅
のデータ・キャッシュのミス率を改善することが記載さ
れ、クレームされている。
【0010】
【課題を解決するための手段】まとめると、本発明は、
統合されたプロセッサ・メモリ装置に関するものであ
り、メイン・メモリ、CPU及び全幅のキャッシュを備
える。
【0011】メイン・メモリは、所定のアドレス空間を
有し、メイン・メモリ・バンクを有する。各メイン・メ
モリ・バンクはアドレス空間の対応する部分を占め、ア
ドレス空間の対応部分におけるアドレスを有するメモリ
位置にワードの行をストアする。行は所定ワード数の幅
である。
【0012】キャッシュはキャッシュ・バンクを有す
る。キャッシュ・バンクはそれぞれメイン・メモリ・バ
ンクの中の対応するメイン・メモリ・バンク及びCPU
に結合されている。各キャッシュ・バンクはキャッシュ
・バンク・ライン・ストレージ、キャッシュ・バンク・
タグ・ストレージ及びキャッシュ・バンク・ロジックを
具備する。キャッシュ・バンク・ライン・ストレージは
対応するメイン・メモリ・バンクに結合され、ワードの
1つ以上のキャッシュ・ラインをストアする。各キャッ
シュ・ラインは対応するメイン・メモリ・バンクにおけ
る対応する行を有する。キャッシュ・ラインは所定ワー
ド数の幅である。キャッシュ・バンク・タグ・ストレー
ジは各キャッシュ・ラインの対応するタグをストアす
る。各タグは対応するキャッシュ・ラインの対応するメ
モリ・バンクの行を識別する。キャッシュ・バンク・ロ
ジックはCPU、対応するメモリ・バンク及びキャッシ
ュ・ストレージに結合される。CPUが対応するメイン
・メモリ・バンクのアドレス空間内のアドレスを発する
と、キャッシュ・バンク・ロジックはそのアドレスとキ
ャッシュ・ラインのタグからキャッシュ・バンク・ライ
ン・ストレージ内でキャッシュ・バンク・ヒットが起こ
ったか、あるいはキャッシュ・ミスが起こったかを判定
する。キャッシュ・バンク・ミスが発生するとキャッシ
ュ・バンク・ロジックはキャッシュ・ラインのヴィクテ
ィム(犠牲)・キャッシュ・ラインをその送出されたア
ドレスによって指定された対応するメモリ・バンクの対
応する行を含む新しいキャッシュ・ラインで置き換え
る。
【0013】
【発明の実施の形態】図1を参照すると、本発明による
統合されたP/M装置100の典型的な実施形態が示さ
れている。P/M装置の統合されている構成要素にはC
PU102、オンチップ・メモリ・システム103、6
4ビット・データ・バス108、25ビット・データ・
アドレス・バス110、32ビット命令バス112、2
5ビット命令アドレス・バス114及び制御バス116
が含まれる。メモリ・システムは16個のメモリ・ブロ
ック104及び1個のヴィクティム・キャッシュ106
を有する。
【0014】各メモリ・ブロック104には、対応する
メイン・メモリ・バンク118、対応する命令キャッシ
ュ・バンク120及び対応するデータ・キャッシュ・バ
ンク122が含まれる。以下の検討から明らかなよう
に、16個のメイン・メモリ・バンクはP/M装置のメ
イン・メモリを形成する。更に16個の命令キャッシュ
・バンクは直接マップされた命令キャッシュを形成し、
16個のデータ・キャッシュ・バンクは2ウェイのセッ
ト・アソシエイティブ・データ・キャッシュを形成す
る。更に、ヴィクティム・キャッシュは16ウェイのフ
ル・アソシエイティブ・キャッシュである。
【0015】図2を参照すると、各メモリ・ブロック1
04のメイン・メモリ・バンク118はメモリ・セル1
23の4096(4K)行を有する16MビットDRA
Mを具備する。各行は4096のメモリ・セルを有す
る。メイン・メモリ・バンクには12アドレス・ビット
によってアドレス(識別)される行を突き止めるための
12アドレス・ビットをデコードする行デコーダ124
が含まれる。更に、メイン・メモリ・バンクには、アド
レスされた行のメモリ・セルに対して同時に4096ビ
ットをまとめて読み書きする4096個のセンス・アン
プ126が含まれる。典型的実施形態では、メイン・メ
モリ・バンクはDRAMを具備しているので、メイン・
メモリ・バンクに対するアクセス・タイムは6サイクル
(30ns)である。
【0016】各メイン・メモリ・バンク118の行は4
096ビットすなわち512バイト幅であるので、各メ
イン・メモリ・バンクは2Mバイトを有し、16個のメ
イン・メモリ・バンクでは合わせて32Mバイトを有す
ることになる。従って、各メイン・メモリ・バンクは3
2Mバイトのメイン・メモリ・アドレス空間のうちの2
Mバイト部分を占有する。更に、各バイトは25ビット
・アドレスA24〜A0でアドレス可能であり、このう
ち最上位4アドレス・ビットA24〜A21はメイン・
メモリ・バンクを識別し、次の12アドレス・ビットA
20〜A9はメイン・メモリ・バンクの行を識別し、最
下位9アドレス・ビットA0〜A8は行内のバイトを識
別する。
【0017】〔命令キャッシュ〕図2を再び参照する
と、各メモリ・ブロック104の命令キャッシュ・バン
ク120は命令キャッシュ・バンク・ライン・ストレー
ジ128を含む。この命令キャッシュ・バンク・ライン
・ストレージは4096個のラッチを有する単一の長い
バッファ130を具備する。このバッファのラッチは、
メモリ・ブロックのメイン・メモリ・バンク118の各
行のように、4096ビットすなわち512バイト幅で
ある単一の長い命令キャッシュ・ライン(又はブロッ
ク)を一括してストアする。更に、命令キャッシュ・ラ
インはメイン・メモリ・バンクの各行の幅と同じ幅であ
るので、全幅であると考えられる。典型的実施形態にお
いて、各命令ワードは32ビットすなわち4バイト長で
ある。この結果、命令キャッシュ・ラインは128命令
ワード幅であり、同様にメイン・メモリ・バンクの各行
も命令ワードをストアする。
【0018】更に、各メモリ・ブロック104におい
て、メイン・メモリ・バンク118の各行は命令キャッ
シュ・バンク・ライン・ストレージ128の単一命令キ
ャッシュ・バンク・ラインにインデックス付け(マッ
プ)される。従って、メイン・メモリ・バンクの1行を
指定する25ビットの命令アドレスA24〜A0は全て
命令キャッシュ・バンク・ライン・ストレージに対して
同一のインデックスを有する。このインデックスは、こ
れらアドレスの上位4ビットA24〜A21であり、メ
イン・メモリ・バンクも識別する。
【0019】各メイン・メモリ・バンク104の命令キ
ャッシュ・バンク120も命令キャッシュ・バンク・タ
グ・ストレージ132を含む。命令キャッシュ・バンク
・タグ・ストレージは、12ビットの命令キャッシュ・
タグ(これは、命令キャッシュ・バンク・ライン・スト
レージ128に現在ストア(キャッシュ)されている命
令キャッシュ・ラインで通常占有されている対応するメ
イン・メモリ・バンク118の行を識別する)をストア
する。このタグは、まもなく説明するように、生成され
てメイン・メモリ・アドレス空間の対応するメイン・メ
モリ・バンク部分に存在する25ビットの各命令アドレ
スA24〜A0の中の12アドレス・ビットA20〜A
9に対して、命令キャッシュ・バンク・ロジック134
によって比較される。
【0020】各メモリ・ブロック104の命令キャッシ
ュ・バンク120の動作は命令キャッシュ・バンク・ロ
ジック134によって制御される。図3に転じると、各
命令キャッシュ・バンクの命令キャッシュ・バンク・ロ
ジックは、命令キャッシュ・バンク制御状態マシン13
6、命令キャッシュ・バンク・アドレス/タグ比較回路
138及び命令キャッシュ・バンク選択回路140を含
む。図4は、命令キャッシュ・バンク制御状態マシンの
動作状態を示す。
【0021】図2〜4を参照すると、CPUがその命令
パイプラインに対する新しい命令ワードをフェッチしよ
うとするとき、命令ワードをフェッチするため、CPU
は25ビットの命令アドレスA24〜A0を命令アドレ
ス・バス114に送出する。この送出された命令アドレ
スは、メイン・メモリのアドレス空間における命令ワー
ドのメモリ位置を指定する。
【0022】各命令キャッシュ・バンク120におい
て、命令キャッシュ・バンク・ロジック134の命令キ
ャッシュ・バンク選択回路140は、命令アドレス・バ
ス114から、この送出された命令アドレスの最上位4
ビットA24〜A21を受け取る。それに応答して、命
令キャッシュ・バンク選択回路140はこれら4アドレ
ス・ビットをデコードし、これらが対応するメイン・メ
モリ・バンク118を識別しているかどうか(すなわ
ち、送出されたアドレスがメイン・メモリ・アドレス空
間の対応するメイン・メモリ部分にあるかどうか)を判
定する。もしこれらが対応するメイン・メモリ・バンク
を識別していれば、命令キャッシュ・バンク選択回路
は、バンク選択信号を、命令キャッシュ・バンク制御状
態マシン136及び命令キャッシュ・バンク・アドレス
/タグ比較回路138に送って対応するメイン・メモリ
・バンクが選択されたことを知らせる。そうでない場合
は、バンク選択信号は対応するメイン・メモリ・バンク
が選択されなかったことを示し、命令キャッシュ・バン
ク制御状態マシンはアイドル状態(図4の状態137)
のままである。
【0023】各命令キャッシュ・バンク120におい
て、バンク選択信号により対応するメイン・メモリ・バ
ンク118の選択が示されると、命令キャッシュ・バン
ク・アドレス/タグ比較回路138は、命令キャッシュ
・バンク・タグ・ストレージ132に現在ストアされて
いる命令キャッシュ・ライン・タグと、命令アドレス・
バス114上に送出された12アドレス・ビットA20
〜A9とを比較する。前にそれとなく述べたように、こ
れら12アドレス・ビットは、命令ワードがストアされ
ている対応するメイン・メモリ・バンクの行のメモリ位
置を識別する。
【0024】もし、一致の結果が得られれば、命令キャ
ッシュ・バンク・アドレス/タグ比較回路138は、バ
ンク選択信号と共に命令キャッシュ・バンク・ヒットが
生じたことを示す命令キャッシュ・バンク・ヒット/ミ
ス信号を送出する。これは、送出された命令アドレスで
指定されたメモリ位置が命令キャッシュ・バンク・ライ
ン・ストレージ128に現在ストアされている命令キャ
ッシュ・ラインにおいて現在アクセス可能であることを
意味する。
【0025】各命令キャッシュ・バンク120からの命
令キャッシュ・バンク・ビット/ミス信号及びバンク選
択信号は、制御バス116を介してCPU102に与え
られる。命令キャッシュ・バンクからの命令キャッシュ
・バンク・ヒット/ミス信号及びバンク選択信号が、命
令キャッシュ・バンク内で命令キャッシュ・バンク・ヒ
ットが生じたことを示すと、これにより、命令ワードが
命令キャッシュ・バンク120から直接フェッチされる
ことがCPUに知らされる。この結果、命令キャッシュ
・バンク・ミスが生じた場合のように、メイン・メモリ
・バンクから命令キャッシュ・バンクへ命令が読み出さ
れるのを待つために、CPUが命令パイプラインを失速
させる必要がない。
【0026】各命令キャッシュ・バンク120におい
て、命令キャッシュ・バンク・ヒット/ミス信号は命令
キャッシュ・バンク制御状態マシン136にも与えられ
る。命令キャッシュ・バンク制御状態マシン136は、
更に命令アドレス・バス114から、送出された命令ア
ドレスの7アドレス・ビットA8〜A2、及び、命令キ
ャッシュ・バンク・ライン・ストレージ128に現在ス
トアされている命令キャッシュ・ラインを受け取る。
【0027】命令キャッシュ・バンク120からの命令
キャッシュ・バンク・ヒット/ミス信号及びバンク選択
信号が、命令キャッシュ・バンク内で命令キャッシュ・
バンク・ヒットが生じたことを示すと、命令キャッシュ
・バンクの命令キャッシュ・バンク制御状態マシン13
6はそのアイドル状態(図4の状態137)を脱し、受
け取った7アドレス・ビットをデコードして送出された
命令アドレスによって指定された命令キャッシュ・ライ
ン内のアクセス可能なメモリ位置を決定する。次に命令
キャッシュ・バンク状態マシン136はこのメモリ位置
から命令ワードをフェッチし、CPU102へ与える
(図4の状態139)。これは、その命令ワードがCP
U102によって受信されるようにその命令ワードを命
令バス112へルーティング(マルチプレクシング)す
ることによって行われる。その結果、命令ワードのフェ
ッチが完了する。典型的実施形態では、これは単一サイ
クル(例えば5ns)で行われる。
【0028】しかし、各命令キャッシュ・バンク120
において、命令キャッシュ・バンク・アドレス/タグ比
較回路138は、命令キャッシュ・ライン・タグと12
アドレス・ビットA20〜A9との比較で一致しなかっ
たと判定したときには、バンク選択信号と共に命令キャ
ッシュ・バンク・ミスが生じたことを示す命令キャッシ
ュ・バンク・ヒット/ミス信号を送出する。これは、送
出された命令アドレスで指定された場所が、命令キャッ
シュ・バンク・ライン・ストレージ128に現在ストア
されている命令キャッシュ・ラインではアクセスが現在
可能でないことを意味する。
【0029】従って、命令キャッシュ・バンク120か
らCPU102が受け取った命令キャッシュ・バンク・
ヒット/ミス信号及びバンク選択信号により、命令キャ
ッシュ・バンク・ミスが生じたことを示されると、動作
を遅らせて、送出された命令アドレスによって指定され
たメモリ位置での新しい命令キャッシュ・ラインが、命
令キャッシュ・バンク制御状態マシンによって対応する
メイン・メモリ・バンク118から命令キャッシュ・バ
ンクへと読み出されるように(図4の状態141)す
る。この場合、命令キャッシュ・バンク制御状態マシン
136は、命令キャッシュ・バンク・ヒット/ミス信号
及びバンク選択信号を受け取ると、読み出しが行われる
ことを示すW/R制御信号及びメモリ・アドレス・バス
114から受け取った12アドレス・ビットA20〜A
9を、メイン・メモリ・バンク118へと送出する。こ
の12アドレス・ビットに応答して、行デコーダは、こ
の12アドレス・ビットによって識別されるメイン・メ
モリ・バンクの行を突き止める。更に、このW/R制御
信号に応答して、センス・アンプ126はこの行を新し
い命令キャッシュ・ラインとして読み出す。この動作が
行われている間に、命令キャッシュ・バンク制御状態マ
シン136は命令キャッシュ・バンク・ライン・ストレ
ージ128のバッファ130へバッファ制御信号を送出
する。これに応答して、バッファはセンス・アンプ12
6から受け取った新しい命令キャッシュ・ラインをラッ
チし、これによって以前そのバッファにラッチされてい
た前の命令キャッシュ・ラインを置き換える。典型的な
実施形態では、これを行うために6サイクルを必要と
し、その内訳は、キャッシュ・バンク・ミスが生じたこ
とを判定するのに1サイクル、センス・アンプのプリチ
ャージと行デコーダによるアドレス・ビットのデコード
に4サイクル、センス・アンプによって読み出された新
しい命令キャッシュ・ラインをバッファにラッチするの
に1サイクルとなっている。
【0030】各命令キャッシュ・バンクにおいて、一旦
新しい命令キャッシュ・ラインが命令キャッシュ・バン
ク・ライン・ストレージ128にストアされると、命令
キャッシュ・バンク制御状態マシン136は、送出され
た命令アドレスの7アドレス・ビットA8〜A2をデコ
ードして新しい命令キャッシュ・ライン内の命令ワード
を突き止め、次にその突き止めた命令ワードを命令キャ
ッシュ・ラインからフェッチし、前に述べたようにその
命令ワードをCPU102へ送る(図4の状態13
9)。前述のように、典型的な実施形態では、これは1
サイクルで行われる。これが実行された後、命令キャッ
シュ・バンク制御状態マシン136はアイドル状態に戻
り(図4の状態137)、次に送出される命令アドレス
を待つ。
【0031】前述の通り、16個の命令キャッシュ・バ
ンク120は、8Kバイトを有する直接マップされたオ
ンチップの命令キャッシュ・メモリを形成している。各
命令キャッシュ・バンクにストアされている命令キャッ
シュ・ラインは全幅であるのでキャッシュ・ミスの割合
は、全幅より少ない幅の命令キャッシュ・ラインを有す
る従来のプロセッサに比べて、大幅に低減される。この
低いキャッシュ・ミスの割合は長い命令キャッシュ・ラ
インをプリフェッチする効果と命令ストリームにおける
常に高い空間的局所性によるものである。
【0032】更に、オフチップのメイン・メモリとオン
チップの命令キャッシュを有する従来のプロセッサは、
全幅の命令キャッシュ・ラインの利益を受けられない。
これは、全幅のキャッシュ・ラインをメイン・メモリか
ら命令キャッシュへ読み出すときにメモリ・インターフ
ェースに導入される厳しい2次衝突効果によるためであ
る。しかし、本発明では、命令キャッシュ・バンク11
8とメイン・メモリ・バンク120が両方共オンチップ
であるためにこれらの衝突効果は除去される。従って、
典型的実施形態では、全幅の命令キャッシュ・ラインの
全体はメイン・メモリ・バンクから対応する命令キャッ
シュ・バンクへ6サイクルで読み出すことができる。
【0033】〔データ・キャッシュ及びヴィクティム・
データ・キャッシュ〕再び図2を参照すると、各メモリ
・ブロック104の1次(プライマリイの)データ・キ
ャッシュ・バンク122には、2つのバッファ146を
有する1次(プライマリイの)データ・キャッシュ・バ
ンク・ライン・ストレージ144が含まれる。各命令キ
ャッシュ・バンク・ライン・ストレージ128のバッフ
ァ130のように、1次データ・キャッシュ・バンク・
ライン・ストレージの各バッファは、4096ビットす
なわち512バイト幅である1次データ・キャッシュ・
バンク・ラインをストアする4096個のラッチを含
む。更に、典型的な実施形態では、各1次データ・キャ
ッシュ・ラインは、各ワードが64ビットすなわち8バ
イト長である64データ・ワードの幅である。
【0034】各メモリ・ブロック104では、メイン・
メモリ・バンク118の各行は、命令キャッシュ・バン
ク・ライン・ストレージ128の命令キャッシュ・ライ
ンに対してインデックス付けされていると共に、1次デ
ータ・キャッシュ・バンク・ライン・ストレージ144
の両方の1次データ・キャッシュ・ラインに対してイン
デックス付けされている。従って、メイン・メモリ・バ
ンクの行を指定する25ビットのデータ・アドレスA2
4〜A0は1次データ・キャッシュ・バンク・ライン・
ストレージに対して同一のインデックスを有する。命令
アドレスと同様に、このインデックスはデータ・アドレ
スの最上位4ビットA24〜A21であり、メイン・メ
モリ・バンクを識別する。
【0035】各メモリ・ブロック104の1次データ・
キャッシュ・バンク122は、1次データ・キャッシュ
・バンク・タグ/フラグ・ストレージ148も有する。
1次データ・キャッシュ・バンク・タグ/フラグ・スト
レージは、1次データ・キャッシュ・バンク・ストレー
ジ144に現在ストアされていつ2つの1次データ・キ
ャッシュ・ラインのそれぞれに対する対応する、12ビ
ットの1次データ・キャッシュ・ライン・タグ及び対応
するダーティ・フラグをストアする。各タグは、対応す
る1次データ・キャッシュ・ラインで通常占有されてい
る対応するメイン・メモリ・バンク118の行を識別す
る。これらのタグは、送出されてメイン・メモリ・アド
レス空間の対応するメイン・メモリ・バンク部分に存在
する各25ビットのデータ・アドレスA24〜A0の1
2アドレス・ビットと1次データ・キャッシュ・バンク
・ロジック150によって比較される。各ダーティ・フ
ラグは、対応する1次データ・キャッシュ・ラインがダ
ーティ(すなわち、1つ以上のデータ・ワードが1次デ
ータ・キャッシュ・ラインには書き込まれたが、まだメ
イン・メモリ・バンクには書き込まれていない状態)で
あるか否か、を識別する。更に、この1次データ・キャ
ッシュ・バンク・タグ/フラグ・ストレージは、どの1
次データ・キャッシュ・ラインが最も古い時点で用いら
れた(アクセスされた)かを示す最古使用(LRU, L
east Recently Used)フラグをストアする。
【0036】各メモリ・ブロック104の1次(プライ
マリイの)データ・キャッシュ・バンク120の動作
は、1次(プライマリイの)データ・キャッシュ・バン
ク・ロジック150によって制御される。図5に示すよ
うに、各1次データ・キャッシュ・バンクの1次データ
・キャッシュ・バンク・ロジックは、1次データ・キャ
ッシュ・バンク制御状態マシン152、1次データ・キ
ャッシュ・バンク・アドレス/タグ比較回路154及び
1次データ・キャッシュ・バンク選択回路156を含
む。図6は1次データ・キャッシュ・バンク・ロジック
制御状態マシンの動作の状態を示す。
【0037】図7を参照すると、後に詳細に説明するよ
うに、ヴィクティム・データ・キャッシュを用いて、最
近置き換えられた(置換ヴィクティムであった)1次デ
ータ・キャッシュ・ラインのヴィクティム・データ・キ
ャッシュ・サブライン(又はサブブロック)に、1次デ
ータ・キャッシュ・バンク122における新しい1次デ
ータ・キャッシュ・ラインをストアする。ヴィクティム
・データ・キャッシュは、16個のバッファ162を具
備したヴィクティム・データ・キャッシュ・ライン・ス
トレージ160を含む。ヴィクティム・データ・キャッ
シュ・ライン・ストレージの各バッファは、256ビッ
トすなわち32バイト幅のヴィクティム・データ・キャ
ッシュ・サブラインをストアする256個のラッチを含
む。従って、典型的な実施形態では、各ヴィクティム・
データ・キャッシュ・サブラインは4データ・ワード幅
である。
【0038】ヴィクティム・データ・キャッシュ106
は、ヴィクティム・データ・キャッシュ・タグ/フラグ
・ストレージ164も含む。ヴィクティム・データ・キ
ャッシュ・タグ/フラグ・ストレージは、ヴィクティム
・データ・キャッシュ・ライン・ストレージ160に現
在ストアされている16個のヴィクティム・データ・キ
ャッシュ・サブ・ラインのそれぞれに対する対応する2
2ビットのタグをストアする。各タグは、対応するヴィ
クティム・データ・キャッシュ・サブラインを識別し、
そのヴィクティム・データ・キャッシュ・サブラインが
通常メイン・メモリ内に占有するメモリ位置を示す。こ
れらのタグは、ヴィクティム・データ・キャッシュ・ロ
ジック166によって、送出された各25ビット・デー
タ・アドレスA24〜A0の19アドレス・ビットA2
4〜A6と比較される。更に、ヴィクティム・データ・
キャッシュ・タグ/フラグ・ストレージはフラッシュ・
フラグをストアし、そのフラッシュ・フラグは、次にど
のヴィクティム・データ・キャッシュ・サブラインがフ
ラッシュされ、新しいヴィクティム・データ・キャッシ
ュ・サブラインがそのヴィクティム・データ・キャッシ
ュに書き込まれるかを識別する。
【0039】ヴィクティム・データ・キャッシュ106
の動作はヴィクティム・データ・キャッシュ・ロジック
166によって制御される。図8に示すように、ヴィク
ティム・データ・キャッシュ・ロジック166はヴィク
ティム・データ・キャッシュ制御状態マシン168及び
ヴィクティム・データ・キャッシュ・アドレス/タグ比
較回路170を含む。図9は、ヴィクティム・データ・
キャッシュ・ロジック制御状態マシンの動作状態を示
す。
【0040】図1を参照すると、CPUは、メイン・メ
モリに対してデータ・ワードを読み書きしようとすると
き、25ビットのデータ・アドレスA24〜A0をデー
タ・アドレス・バス110上に送出する。送出されたデ
ータ・アドレスは、データ・ワードが読み書きされるメ
イン・メモリ内のアドレス空間のメモリ位置を指定す
る。CPUは読み出しか書き込みかを示す書き込み/読
み出し(W/R)信号も制御バス116上に送出する。
【0041】次に図7〜図9に移り、CPU102によ
ってデータ・アドレスが送出される毎に、ヴィクティム
・データ・キャッシュ106のヴィクティム・データ・
キャッシュ・アドレス/タグ比較回路170は、ヴィク
ティム・データ・キャッシュ・タグ/フラグ・ストレー
ジ164に現在ストアされているタグとデータ・アドレ
ス・バス110上に送出されたデータ・アドレスの中の
19アドレス・ビットA24〜A6とを比較する。もし
一致すれば、ヴィクティム・データ・キャッシュ・アド
レス/タグ比較回路は、ヴィクティム・データ・キャッ
シュ・ヒットが生じたことを示すヴィクティム・データ
・キャッシュ・ヒット/ミス信号を送出する。これは、
送出されたアドレスによってアドレスされたメモリ位置
がヴィクティム・データ・ライン・ストレージ160内
にストアされたヴィクティム・データ・キャッシュ・サ
ブラインの1つで現在アクセス可能である事を意味す
る。ヴィクティム・データ・キャッシュ・ヒット/ミス
信号はまた、ヴィクティム・データ・キャッシュ・ヒッ
トが生じたヴィクティム・データ・キャッシュ・サブラ
インを識別する。しかし、一致しなければ、送出された
アドレスによってアドレスされたメモリ位置が、ヴィク
ティム・データ・キャッシュ・ライン・ストレージ内に
ストアされているヴィクティム・データ・キャッシュ・
サブラインの1つにおいて現在アクセスできないことを
意味し、ヴィクティム・データ・キャッシュ・アドレス
/タグ比較回路は、ヴィクティム・データ・キャッシュ
・ミスが生じたことを示すヴィクティム・データ・キャ
ッシュ・ヒット/ミス信号を送出する。
【0042】従来のヴィクティム・データ・キャッシュ
と異なり、典型的実施形態におけるヴィクティム・デー
タ・キャッシュ106は、ヴィクティム・データ・キャ
ッシュ・サブラインを1次データ・キャッシュ・バンク
122へライト・バックする(書き戻す)ためには使用
されない。言い換えれば、ヴィクティム・データ・キャ
ッシュは、データ・ワードをヴィクティム・データ・キ
ャッシュ・サブラインに書き込むことができず、またダ
ーティ・ヴィクティム・データ・キャッシュ・サブライ
ンを対応する1次データ・キャッシュ・バンクにライト
・バックすることができない。これは、後で論ずるよう
にタイミングと体系的制約によるものである。
【0043】ヴィクティム・データ・キャッシュ制御状
態マシン168は、CPU102からのW/R信号を制
御バス上で受け取り、ヴィクティム・データ・キャッシ
ュ・ヒット/ミス信号をヴィクティム・データ・キャッ
シュ・アドレス/タグ比較回路170から受け取り、送
出されたアドレスの中の6アドレス・ビットA8〜A3
をデータ・アドレス・バス110上で受け取り、ヴィク
ティム・データ・キャッシュ・ライン・ストレージ16
0に現在ストアされているヴィクティム・データ・キャ
ッシュ・サブラインを受け取る。W/R信号により読み
出しが行われていることが示され、ヴィクティム・デー
タ・キャッシュ・ヒット/ミス信号がヴィクティム・デ
ータ・キャッシュ・ヒットが生じたことを示すと、ヴィ
クティム・データ・キャッシュ制御状態マシンはそのア
イドル状態(図9の状態171)から脱し、受け取った
6アドレス・ビットをデコードしてデータ・ワードを読
み出すべき識別されたヴィクティム・データ・キャッシ
ュ内のデータ・ワードのアクセス可能なメモリ位置を決
定する。ヴィクティム・データ・キャッシュ制御状態マ
シン168は、データ・ワードを識別されたヴィクティ
ム・データ・キャッシュ・サブラインから読み出し、C
PU102へ与える(図9の状態173)。これは、識
別されたヴィクティム・データ・キャッシュ・サブライ
ンのデータをデータ・バス108に送出してCPUが受
け取れるようにすることによって行われる。典型的実施
形態では、ヴィクティム・データ・キャッシュをアクセ
スし、ヴィクティム・データ・キャッシュ・サブライン
をCPUへ読み出すのにわずか1サイクルが必要なだけ
である。
【0044】しかし、CPU102から受け取ったW/
R信号が書き込みが行われることを示し、あるいはヴィ
クティム・データ・キャッシュ・ミスが生じたことを示
すヴィクティム・データ・キャッシュ・ヒット/ミス信
号が送出されると、ヴィクティム・データ・キャッシュ
制御状態マシン168はアイドル状態(図9の状態17
1)のままである。この場合、送出されたデータ・アド
レスによって指定されたメモリ位置に読み書きされるデ
ータ・ワードは、送出されたデータ・アドレスによって
指定されたメモリ位置を有する対応するメイン・メモリ
・バンク118を有するメモリ・ブロック104内の1
次データ・キャッシュ・バンク122に対して読み書き
をされなければならない。
【0045】CPU102はヴィクティム・データ・キ
ャッシュ・ヒット/ミス信号も受け取る。従って、CP
Uは、読み出し中にヴィクティム・データ・キャッシュ
・ヒットが生じたことを示すヴィクティム・データ・キ
ャッシュ・ヒット/ミス信号を受け取ると、データ・バ
ス108を介してヴィクティム・データ・キャッシュ1
06によって与えられるべき送出されたデータ・アドレ
スによって指定されたメモリ位置でそのデータ・ワード
を待つ。しかし、CPUは、書き込み中にヴィクティム
・データ・キャッシュ・ヒットが生じたことを示すヴィ
クティム・データ・キャッシュ・ヒット/ミス信号を受
け取るか、あるいはヴィクティム・データ・キャッシュ
・ミスが生じたことを示すヴィクティム・データ・キャ
ッシュ・ヒット信号を受け取ると、送出されたデータ・
アドレスによって指定されたメモリ位置を有するメイン
・メモリ・バンク118に対応する1次データ・キャッ
シュ・バンク122によって1次データ・キャッシュ・
バンクのヒット信号又はミス信号が送出されたかどうか
を判定する。
【0046】図2、5及び6を参照すると、各1次デー
タ・キャッシュ・バンク122において、1次データ・
キャッシュ・バンク・ロジック150の1次データ・キ
ャッシュ・バンク選択回路156は、各命令キャッシュ
・バンク120の命令キャッシュ・バンク・ロジック1
34の命令キャッシュ・バンク選択回路140と同様に
動作する。従って、1次データ・キャッシュ・バンク選
択回路156は、送出されたデータ・アドレスの上位4
ビットA24〜A21をデータ・アドレス・バス110
から受け取る。それに応答して、1次データ・キャッシ
ュ・バンク選択回路156は、これら4アドレス・ビッ
トをデコードしてこれらのビットが対応するメイン・メ
モリ・バンク118を識別しているかどうか判定する。
もし対応するメイン・メモリ・バンクを識別していれ
ば、1次データ・キャッシュ・バンク選択回路はバンク
選択信号を1次データ・キャッシュ・バンク制御状態マ
シン152及び1次データ・キャッシュ・バンク・アド
レス/タグ比較回路154に送って対応するメイン・メ
モリ・バンクが選択されたことを知らせる。その他の場
合は、バンク選択信号は、対応するメイン・メモリ・バ
ンクが選択されなかったことを示し、1次データ・キャ
ッシュ・バンク制御状態マシンはアイドル状態(図6の
状態157)のままである。
【0047】各1次データ・キャッシュ・バンク122
において、バンク選択信号が、対応するメイン・メモリ
・バンク118が選択されたことを示すと、1次データ
・キャッシュ・バンク・アドレス/タグ比較回路154
は、1次データ・キャッシュ・バンク・タグ/フラグ・
ストレージ148に現在ストアされている1次データ・
キャッシュ・ライン・タグと、データ・アドレス・バス
110上に送出された12アドレス・ビットA20〜A
9とを比較する。これらの12アドレス・ビットは、読
み出しのため現在データ・ワードがストアされている
か、あるいは書き込みのためにこれからデータ・ワード
がストアされる対応するメイン・メモリ・バンクの行の
メモリ位置を識別する。
【0048】もし一致していれば、1次データ・キャッ
シュ・アドレス/タグ比較回路154は、バンク選択信
号と共に1次データ・キャッシュ・バンク・ヒットが生
じたことを示す1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号を送出する。これは、送出されたデータ・
アドレスによって指定されたメモリ位置が、1次データ
・キャッシュ・バンク・ライン・ストレージ144にス
トアされている1次データ・キャッシュ・ラインの1つ
で現在アクセス可能であることを意味する。1次データ
・キャッシュ・バンク・ヒット/ミス信号は、この1次
データ・キャッシュ・ラインも識別する。一方、一致し
なければ、これは、送出されたデータ・アドレスによっ
てアドレスされたメモリ位置が、1次データ・キャッシ
ュ・バンク・ライン・ストレージ144にストアされて
いる1次データ・キャッシュ・ラインの1つにおいて現
在アクセス可能でないことを意味し、1次データ・キャ
ッシュ・バンク・アドレス/タグ比較回路は、バンク選
択信号と共に1次データ・キャッシュ・バンク・ミスが
生じたことを示す1次データ・キャッシュ・バンク・ヒ
ット/ミス信号を送出する。
【0049】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンク・ヒット/
ミス信号が1次データ・キャッシュ・バンク制御状態マ
シン152に与えられる。ヴィクティム・データ・キャ
ッシュ106からのヴィクティム・データ・キャッシュ
・ヒット/ミス信号も、CPUからのW/R信号と共に
制御バス116を介して1次データ・キャッシュ・バン
ク制御状態マシンに与えられる。
【0050】前に示したように、読み出し中にヴィクテ
ィム・データ・キャッシュ・ヒットを表すヴィクティム
・データ・キャッシュ・ヒット/ミス信号が送出される
と、ヴィクティム・データ・キャッシュ106はCPU
に、送出されたアドレスによってアドレスされたメモリ
位置のデータ・ワードを与える。従って、各1次データ
・キャッシュ・バンク122において、1次データ・キ
ャッシュ・バンク制御状態マシン152は、ヴィクティ
ム・データ・キャッシュ・ヒットを示すヴィクティム・
データ・キャッシュ・ヒット/ミス信号及び読み出しを
示すW/R信号を受け取ると、アイドル状態(図6の状
態157)のままとなる。これは、1次データ・キャッ
シュ・バンク制御状態マシンが、1次データ・キャッシ
ュ・バンク・アドレス/タグ比較回路154から1次デ
ータ・キャッシュ・バンク・ヒットが生じたことを示す
1次データ・キャッシュ・バンク・ヒット/ミス信号を
受け取ったときも同じである。
【0051】しかし、ヴィクティム・データ・キャッシ
ュ・ヒットを示すヴィクティム・データ・キャッシュヒ
ット/ミス信号が書き込み中に送出されたときや、ヴィ
クティム・データ・キャッシュ・ミスを示すヴィクティ
ム・データ・キャッシュ・ヒット/ミス信号が送出され
たときは、ヴィクティム・データ・キャッシュ106
は、送出されたデータ・アドレスによってアドレスされ
た場所をアクセスするためには用いられない。従って、
各1次データ・キャッシュ・バンク122において、今
説明した2つの条件のどちらにおいても、1次データ・
キャッシュ・バンク制御状態マシン152は、1次デー
タ・キャッシュ・バンク・ヒット/ミス信号及びバンク
選択信号が1次データ・キャッシュ・バンクのヒットが
生じたことを示す場合やミスが生じたことを示す場合の
何れにおいても、送出されたデータ・アドレスによって
指定されたメモリ位置でのデータ・ワードの読み・書き
を制御する。
【0052】各1次データ・キャッシュ・バンク122
からの1次データ・キャッシュ・バンク・ヒット/ミス
信号及びバンク選択信号は、制御バス116を介してC
PU102に与えられる。1次データ・キャッシュ・バ
ンクからのこれらの信号が、1次データ・キャッシュ・
バンク・ヒットが生じたことを示し、ヴィクティム・デ
ータ・キャッシュ・ヒットが生じたことを示すヴィクテ
ィム・データ・キャッシュ・ヒット/ミス信号が書き込
み中に受信された場合や、ヴィクティム・データ・キャ
ッシュ・ミスが生じたことを示すヴィクティム・データ
・キャッシュ・ヒット/ミス信号が受信された場合、C
PUは書き込みされるデータは1次データ・キャッシュ
・バンク122に対して直接読み・書きされることを知
る。CPUは従って、1次データ・キャッシュ・バンク
・ミスが生じた場合のように、送出されたデータ・アド
レスによって指定されたアクセス可能なメモリ位置を有
する1次データ・キャッシュ・ラインがメイン・メモリ
・バンクから1次データ・キャッシュ・バンクへ読み出
されるのを待つために命令パイプラインを遅らせること
はしない。
【0053】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンク制御状態マ
シン152は、1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号、バンク選択信号及びW/R信号の他に、
データ・アドレス・バス110から、送出された6アド
レス・ビットA8〜A3及び1次データ・キャッシュ・
バンク・ライン・ストレージ144に現在ストアされて
いる1次データ・キャッシュ・ラインを受け取る。1次
データ・キャッシュ・バンク・ヒット/ミス信号及びバ
ンク選択信号が1次データ・キャッシュ・バンク・ヒッ
トが生じたことを示すと、1次データ・キャッシュ・バ
ンク制御状態マシン152は受け取った6データ・ビッ
トをデコードして1次データ・キャッシュ・バンク・ヒ
ット/ミス信号によって識別された1次データ・キャッ
シュ・ライン内の送出されたアドレスによって指定され
たアクセス可能なメモリ位置を1次データ・キャッシュ
・バンク・ヒットが生じた1次データ・キャッシュ・ラ
インと決定する。もしW/R信号が読み出しを示すと、
1次データ・キャッシュ・バンク制御状態マシンは、識
別されたデータ・キャッシュ・ライン内の決定された場
所からデータ・ワードを読み出してCPU102へ与え
る(図6の状態159)。これは、識別されたデータ・
キャッシュ・ラインのデータ・ワイドをデータ・バス1
08へ送出し、CPUがそれを受け取れるようにするこ
とによって行われる。典型的な実施形態では、1次デー
タ・キャッシュ・バンクをアクセスしてデータ・ワード
をCPUへ読み出すのにわずか1サイクルしか要しな
い。読み出しが一旦完了すると、1次データ・キャッシ
ュ・バンク制御状態マシンはアイドル状態へ戻る(図6
の状態157)。
【0054】しかし、もしW/R信号が書き込みを示す
場合には、1次データ・キャッシュ・バンク制御状態マ
シン152は、CPUからのデータ・ワードを識別され
たデータ・キャッシュ・ライン内の決定された場所へ書
き込む。これは、データ・バス108からのデータ・ワ
ードを、識別された1次データ・キャッシュ・ラインを
ストアする1次データ・キャッシュ・バンク・ライン・
ストレージ144内のバッファ146へ送出し、バッフ
ァにそのデータ・ワードをラッチさせる(図6の状態1
59)バッファ制御信号を送出することによって行われ
る。次に、識別された1次データ・キャッシュ・ライン
に対する対応するダーティ・フラグが1次データ・キャ
ッシュ・ラインがダーティであることを示していない場
合には、1次データ・キャッシュ・バンク制御状態マシ
ンは、そのダーティ・フラグを更新して1次データ・キ
ャッシュ・ラインがダーティであることを示す(図6の
小状態161)。これは、更新されたダーティ・フラグ
を1次データ・キャッシュ・バンク・タグ/フラグ・ス
トレージ148に与え、1次データ・キャッシュ・バン
ク・タグ/フラグ・ストレージにその更新されたダーテ
ィ・フラグをストアさせるストレージ制御信号を送出す
ることによって行われる。一旦書き込みが終了すると、
1次データ・キャッシュ・バンク制御状態マシンはアイ
ドル状態(図6の状態157)に戻る。
【0055】しかし、CPUが1次データ・キャッシュ
・バンク122から1次データ・キャッシュ・バンク・
ミスが生じたことを示す1次データ・キャッシュ・バン
ク・ヒット/ミス信号及びバンク選択信号を受信し、ヴ
ィクティム・データ・キャッシュ・ヒットが生じたこと
を示すヴィクティム・データ・キャッシュ・ヒット/ミ
ス信号を書き込み中に受信するか、あるいはヴィクティ
ム・データ・キャッシュ・ミスが生じたことを示すヴィ
クティム・データ・キャッシュ・ヒット/ミス信号を受
信すると、CPUは、送出されたデータ・アドレスによ
って指定されたメモリ位置を有する新しい1次データ・
キャッシュ・ラインが対応するメイン・メモリ・バンク
118から1次データ・キャッシュ・バンクへ読み出さ
れる間時間稼ぎを行う。1次ヴィクティム・データ・キ
ャッシュ・ラインに対する対応するダーティ・フラグ
が、1次ヴィクティム・データ・キャッシュ・ラインが
ダーティであることを示すと、新しいデータ・キャッシ
ュ・ラインによって置き換えられつつある1次ヴィクテ
ィム・データ・キャッシュ・ラインをメイン・メモリ・
バンクに書き込む必要がある。この場合、CPUは更に
失速させられる。
【0056】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンク制御状態マ
シン152は、ダーティかどうかを判定するため、1次
データ・キャッシュ・バンク・ライン・ストレージ14
4にストアされている1次データ・キャッシュ・ライン
に対するダーティ・フラグを1次データ・キャッシュ・
バンク・タグ/フラグ・ストレージ148から受け取
る。前に説明したように、各ダーティ・フラグは、デー
タ・ワードが対応する1次データ・キャッシュ・ライン
に書き込まれ、ダーティ・フラグが1次データ・キャッ
シュ・ラインはダーティであることを示していないとき
はいつでも、対応する1次データ・キャッシュ・ライン
がダーティであることを示すように更新される。
【0057】各1次データ・キャッシュ・バンク122
の1次データ・キャッシュ・バンク制御状態マシン15
2は、1次データ・キャッシュ・バンクの1次データ・
キャッシュ・バンク・タグ/フラグ・ストレージ148
からLRUフラグを受信する。前に述べたように、LR
Uフラグは最も古い時点で用いられた1次データ・キャ
ッシュ・ラインを識別する。LRUフラグは、異なった
1次データ・キャッシュ・ラインが読み出し又は書き込
みのためにアクセスされる毎に1次データ・キャッシュ
・バンク制御状態マシンによって更新される。更新され
たLRUフラグは1次データ・キャッシュ・バンク・タ
グ/フラグ・ストレージに与えられ、1次データ・キャ
ッシュ・バンク制御状態マシンによって送出されたスト
レージ制御信号と共にストアされる。
【0058】各1次データ・キャッシュ・バンク122
において、1次データ・キャッシュ・バンクの1次デー
タ・キャッシュ・バンク制御状態マシン152は、1次
データ・キャッシュ・バンク・ミスが生じたことを示す
1次データ・キャッシュ・バンク・ヒット/ミス信号及
びバンク選択信号を受信し、ヴィクティム・データ・キ
ャッシュ・ヒットが生じたことを示すヴィクティム・デ
ータ・キャッシュ・ヒット/ミス信号及び書き込みが行
われることを示すW/R信号を受信するか、あるいはヴ
ィクティム・データ・キャッシュ・ミスが生じたことを
示すヴィクティム・データ・キャッシュ・ヒット/ミス
信号を受信すると、これは、送出されたデータ・アドレ
スによって指定されたメモリ位置を有する新しい1次デ
ータ・キャッシュ・ラインが対応するメイン・メモリ・
バンク118から読み出されなければならないことを意
味する。しかし、そうする前に、1次データ・キャッシ
ュ・バンク制御状態マシンはLRUフラグから、現在ス
トアされている1次データ・キャッシュ・ラインの内の
どちらが最も古く用いられたものであるか従って、新し
いデータ・キャッシュ・ラインによって置き換えられる
1次ヴィクティム・データ・キャッシュ・ラインである
かを決定する。
【0059】しかし、各1次データ・キャッシュ・バン
ク122において、ヴィクティム・データ・キャッシュ
・ラインを新しいデータ・キャッシュ・ラインで置き換
える前に1次データ・キャッシュ・バンク制御状態マシ
ン152は、もしダーティであれば(図6の状態16
3)1次ヴィクティム・データ・キャッシュ・ラインを
対応するメイン・メモリ・バンク118にライト・バッ
クする。1次データ・キャッシュ・バンク制御状態マシ
ンは、1次データ・キャッシュ・バンク・タグ/フラグ
・ストレージ148から与えられた対応するダーティ・
フラグからその1次ヴィクティム・データ・キャッシュ
・ラインがダーティであるかどうかを判定することによ
ってこれを行う。もしダーティであれば、1次データ・
キャッシュ・バンク制御状態マシンは、ダーティな1次
ヴィクティム・データ・キャッシュ・ラインをライト・
バックする必要があることを示すダーティ・キャッシュ
・ライン書き込み信号を制御バス116上に送出する。
この信号はCPU102によって受信され、それに応答
してCPUは、ダーティな1次ヴィクティム・データ・
キャッシュ・ラインが対応するメイン・メモリ・バンク
にライト・バックされ、新しい1次データ・キャッシュ
・ラインが1次データ・キャッシュ・バンクに読み出さ
れるのを可能にするために時間稼ぎを行う。
【0060】1次データ・キャッシュ・バンク制御状態
マシン152は、書き込みが行われることを示すW/R
制御信号及び1次データ・キャッシュ・バンク・タグ/
フラグ・ストレージ148から与えられたダーティな1
次ヴィクティム・データ・キャッシュ・ラインに対する
対応するタグから受け取った12アドレス・ビットA2
0〜A9を対応するメイン・メモリ・バンク118に送
出することによって、ダーティな1次ヴィクティム・デ
ータ・キャッシュ・ラインをライト・バックする。更
に、1次データ・キャッシュ・バンク制御状態マシン
は、バッファ制御信号をライト・バックされつつあるダ
ーティな1次ヴィクティム・データ・キャッシュ・ライ
ンをストアするバッファ146に送出してダーティな1
次ヴィクティム・データ・キャッシュ・ラインが対応す
るメイン・メモリ・バンクのセンス・アンプ126へ送
出されるようにする。この12アドレス・ビットに応答
して、行デコーダ124は、その12アドレス・ビット
によって識別された対応するメイン・メモリ・バンクの
行を突き止める。更に、W/R制御信号に応答して、セ
ンス・アンプ126は、与えられたダーティな1次ヴィ
クティム・データ・キャッシュ・ラインを対応するメイ
ン・メモリ・バンクの識別された行に書き込む。典型的
実施形態では、ダーティな1次ヴィクティム・データ・
キャッシュ・ラインをライト・バックするのに6サイク
ルを必要とし、その内訳は、1次データ・キャッシュ・
バンク・ミスが生じたことを判定し、ダーティな1次ヴ
ィクティム・データ・キャッシュ・ラインを識別するた
めに1サイクル、センス・アンプをプリチャージし、行
デコーダによるアドレス・ビットのデコードに4サイク
ル、ダーティな1次ヴィクティム・データ・キャッシュ
・ラインをメイン・メモリ・バンクに書き込むのに1サ
イクルである。
【0061】更に、CPUはダーティな1次ヴィクティ
ム・データ・キャッシュ・ラインがライト・バック中は
時間稼ぎ(失速)をしているので、他の1次データ・キ
ャッシュ・バンク122はそれぞれ、もし少なくとも1
つのダーティな1次データ・キャッシュ・ラインをスト
アしていれば(図6の状態163)、ダーティな1次デ
ータ・キャッシュ・ラインを対応するメイン・メモリ・
バンク118にライト・バックする。これら他の1次デ
ータ・キャッシュ・バンクのそれぞれにおいて、制御バ
ス116上のダーティ・キャッシュ・ライン書き込み信
号が、ダーティな1次ヴィクティム・データ・キャッシ
ュ・ラインがライト・バック中であることを示し、バン
ク選択信号が、対応するメイン・メモリ・バンクが選択
されていないことを示していると、これが行われる。こ
のライト・バックは、他の1次データ・キャッシュ・バ
ンクのそれぞれの1次データ・キャッシュ・バンク制御
状態マシン152によって、今説明したと同様に制御さ
れる。しかし、1次データ・キャッシュ・バンクにスト
アされているダーティな1次データ・キャッシュ・ライ
ンが1つだけのときは、そのダーティな1次データ・キ
ャッシュ・ラインがライト・バックされる。しかし、2
つのダーティな1次データ・キャッシュ・ラインがある
とLRUフラグによってLRU1次データ・キャッシュ
・ラインと識別されたダーティな1次データ・キャッシ
ュ・ラインがライト・バックされる。このライト・バッ
クが完了すると、1次データ・キャッシュ・バンク制御
状態マシンはアイドル状態(図6の状態157)に戻
る。
【0062】各1次データ・キャッシュ・バンク122
において、ダーティな1次ヴィクティム・データ・キャ
ッシュ・ラインが対応するメイン・メモリ・バンク11
8にライト・バックされるか、あるいは1次ヴィクティ
ム・データ・キャッシュ・ラインに対する対応するダー
ティ・フラグがその1次ヴィクティム・データ・キャッ
シュ・ラインはダーティでないことを示すと、1次デー
タ・キャッシュ・バンク制御状態マシン152は、送出
されたデータ・アドレスによって指定されたメモリ位置
を有する新しい1次データ・キャッシュ・ラインを対応
するメイン・メモリ・バンク118から1次データ・キ
ャッシュ・バンクに読み出す(図6の状態163)。こ
れは、書き込みが行われることを示すW/R制御信号及
びデータ・アドレス・バス110上に送出されたデータ
・アドレスの12アドレス・ビットA20〜A9を対応
するメイン・メモリ・バンク118へ送出することによ
って行われる。この12アドレス・ビットに応答して、
行デコーダ124は、この12アドレス・ビットによっ
て識別された対応するメイン・メモリ・バンクの行を突
き止める。更に、W/R制御信号に応答して、センス・
アンプ126は、対応するメイン・メモリ・バンクの識
別された行から新しい1次データ・キャッシュ・ライン
を読み出す。更に、1次データ・キャッシュ・バンク制
御状態マシンは、置き換えられつつある1次ヴィクティ
ム・データ・キャッシュ・ラインをストアしているバッ
ファ146にバッファ制御信号を送出して、新しい1次
ヴィクティム・データ・キャッシュ・ラインがそのバッ
ファにラッチされ、その1次ヴィクティム・データ・キ
ャッシュ・ラインを置き換えるようにする。典型的実施
形態では、これには5サイクルを必要とし、その内訳
は、センス・アンプのプリチャージ及び行デコーダによ
るアドレス・ビットのデコードに4サイクル、センス・
アンプによって読み出された新しい1次データ・キャッ
シュ・ラインをメイン・メモリ・バックにラッチするの
に1サイクルである。
【0063】しかし、メイン・メモリ・バンク118を
アクセスして新しいデータ・キャッシュ・ラインを読み
出すには、行デコーダ124によるアドレス・ビット・
デコード及びセンス・アンプ126のプリチャージに時
間がかかるので、この時間を有効に使って、新しい1次
データ・キャッシュ・ラインがバッファ146にラッチ
される前に、1次ヴィクティム・データ・キャッシュ・
ラインの最近使われた(MRU, Most Recently Used)
1次データ・キャッシュ・サブラインをヴィクティム・
データ・キャッシュ106に書き込むことができる。1
次ヴィクティム・データ・キャッシュ・ラインのどの1
次データ・キャッシュ・サブラインがMRUサブライン
かを判定するために、各1次データ・キャッシュ・バン
ク122の1次データ・キャッシュ・バンク・タグ/フ
ラグ・ストレージ148は1次データ・キャッシュ・バ
ンク・ライン・ストレージ144にストアされている各
1次データ・キャッシュ・ラインのMRUヴィクティム
・データ・キャッシュ・サブラインを識別するMRUフ
ラグをストアする。更に、この時間中データ・バス10
8は使われていないので、これを有効に使ってMRUヴ
ィクティム・データ・キャッシュ・サブラインをヴィク
ティム・データ・キャッシュに書くことができる。
【0064】従って、センス・アンプのプリチャージ中
及び行デコーダがアドレス・ビットをデコードしている
間、1次データ・キャッシュ・バンク制御状態マシン1
52は、1次データ・キャッシュ・バンク・タグ/フラ
グ・ストレージ148から受け取った対応するMRUフ
ラグからMRUヴィクティム・データ・キャッシュ・サ
ブラインを識別する。1次データ・キャッシュ・バンク
制御状態マシン152は、次にデータ・バス106を用
いて、MRUヴィクティム・データ・キャッシュ・サブ
ラインをヴィクティム・データ・キャッシュ106に送
出する(図6の小状態165)。典型的実施形態では、
データ・バスが64ビット幅すなわち1データ・ワード
幅であり、MRUヴィクティム・データ・キャッシュ・
サブラインが256ビット幅すなわち4データ・ワード
幅であるので、これは4サイクルで行われる。従って、
1次データ・キャッシュ・バンク制御状態マシンは、こ
の時間中64ビットすなわち1データ・ワードのMRU
ヴィクティム・データ・キャッシュ・サブラインを各サ
イクル毎にデータ・バスに送出する。
【0065】図7〜9を再び参照すると、ヴィクティム
・データ・キャッシュ制御状態マシン168は、制御バ
ス116から、各1次データ・キャッシュ・バンク12
2からの1次データ・キャッシュ・バンク・ヒット/ミ
ス信号とバンク選択信号及びダーティ・キャッシュ・ラ
イン書き込み信号を受け取る。1次データ・キャッシュ
・バンクからの1次データ・キャッシュ・バンク・ヒッ
ト/ミス信号及びバンク選択信号が、1次データ・キャ
ッシュ・バンク・ミスが生じたことを示し、ダーティ・
キャッシュ・ライン書き込み信号が、ダーティな1次ヴ
ィクティム・データ・キャッシュ・ラインがライト・バ
ックされないことを示すと、ヴィクティム・データ・キ
ャッシュ制御状態マシンは、1次データ・キャッシュ・
バンクによってデータ・バス108上に与えられたMR
Uヴィクティム・データ・キャッシュ・サブラインをヴ
ィクティム・データ・キャッシュ・ライン・ストレージ
160に書き込む(図9の状態175)。
【0066】ヴィクティム・データ・キャッシュ制御状
態マシン168は、どのヴィクティム・データ・キャッ
シュ・サブラインがMRUヴィクティム・データ・キャ
ッシュ・サブラインで置き換えられるべきかを先ず決定
することによってこれを行う。読み出し中にヴィクティ
ム・データ・キャッシュ・ヒットがあった場合は、ヴィ
クティム・データ・キャッシュ制御状態マシン168
は、ヒットが生じたヴィクティム・データ・キャッシュ
・サブラインをMRUヴィクティム・データ・キャッシ
ュ・サブラインで置き換える。これは、MRUヴィクテ
ィム・データ・キャッシュ・サブラインを与える1次デ
ータ・キャッシュ・バンク122で1次データ・キャッ
シュ・バンク・ミスが生じ、それに対応して対応するメ
イン・メモリ・バンクから1次データ・キャッシュ・バ
ンクに読み出される1次データ・キャッシュ・ラインが
置き換えられるヴィクティム・データ・キャッシュ・サ
ブラインを含んでいるために行われる。これは、置き換
えられつつあるヴィクティム・データ・キャッシュ・サ
ブラインでヴィクティム・データ・キャッシュ・ヒット
が生じたという事実によって示される。
【0067】しかし、ヴィクティム・データ・キャッシ
ュ・ミスがあった場合には、ヴィクティム・データ・キ
ャッシュ制御状態マシン168は、LRUヴィクティム
・データ・キャッシュ・サブラインをMRUヴィクティ
ム・データ・キャッシュ・サブラインで置き換える。L
RUヴィクティム・データ・キャッシュ・サブラインは
ヴィクティム・データ・キャッシュ・タグ/フラグ・ス
トレージ164にストアされているLRUフラグによっ
て識別される。LRUフラグは、ヴィクティム・データ
・キャッシュ・サブラインが読み出しのためにアクセス
される毎にヴィクティム・データ・キャッシュ制御状態
マシンによって更新される。更新されたLRUフラグ
は、次にヴィクティム・データ・キャッシュ・タグ/フ
ラグ・ストレージに与えられ、ヴィクティム・データ・
キャッシュ制御状態マシンから送出されたストレージ制
御信号と共にストアされる。
【0068】ヴィクティム・データ・キャッシュ制御状
態マシン168は、MRUヴィクティム・データ・キャ
ッシュ・サブラインを、置き換えられつつあるヴィクテ
ィム・データ・キャッシュ・サブラインを現在ストアし
ているバッファ162にストアする。これは、MRUヴ
ィクティム・データ・キャッシュ・サブラインを転送す
るのに要する4サイクル中にデータ・バス上で受信した
64ビットのブロックをバッファの対応するラッチへ送
出することによって行われる。同時に、64ビットのブ
ロックをバッファにラッチできるように、この4サイク
ルの間にバッファ制御信号が対応するラッチに送出され
る。
【0069】再び図2、5及び6に転ずると、各1次デ
ータ・キャッシュ・バンク122において、新しい1次
データ・キャッシュ・ラインが1次データ・キャッシュ
・バンクに読み出され、MRUヴィクティム・データ・
キャッシュ・サブラインがヴィクティム・データ・キャ
ッシュ106に読み出された後、前に説明したようにデ
ータ・ワードが新しい1次データ・キャッシュ・ライン
に対して読み・書きされる(図6の状態159及び16
1)。
【0070】従って、前述から、16個の1次データ・
キャッシュ・バンク122は16Kバイトを有する2ウ
ェイのセット・アソシエイティブ・データ・キャッシュ
を形成し、ヴィクティム・データ・キャッシュ106は
16ウェイのフル・アソシエイティブのヴィクティム・
データ・キャッシュである。更に、まとめると、P/M
装置100のデータ・キャッシュ・システムを形成す
る。各データ・キャッシュ・バンクにストアされる1次
データ・キャッシュ・ラインは全幅であり、オンチップ
であるので、全幅より少ないデータ・キャッシュ・ライ
ンをストアする従来のデータ・キャッシュに比べてキャ
ッシュ・ミスは大幅に低減される。命令キャッシュ・バ
ンク120によって形成される命令キャッシュのよう
に、この低いミス率は、高い空間的局所性でアクセスす
るために長いデータ・キャッシュ・ラインをプリフェッ
チする利点に起因する。更に、このミス率は、低い局所
性でのアクセスを吸収するオンチップのヴィクティム・
データ・キャッシュの利用によって一層低減される。更
に、オフチップのメイン・メモリとオンチップの命令キ
ャッシュに関して前述したような厳しい2次衝突効果の
ために、オフチップのメイン・メモリとオンチップのデ
ータ・キャッシュを有する従来のプロセッサは、全幅の
データ・キャッシュ・ラインの利益を利用することがで
きない。
【0071】当業者は、図1〜9の典型的実施形態に対
する多くの代替実施形態が存在することを認識するであ
ろう。例えば、メイン・メモリ・バンク118の行、及
びデータ及び命令キャッシュ・バンク・ライン・ストレ
ージにおけるバッファ130、146は4096ビット
の典型的幅とは異なった幅を有することができるが、同
じサイズの幅であることが望ましい。更に、各命令キャ
ッシュ・バンク及び各データ・キャッシュ・バンクは1
つ以上のバッファを持つことができる。更に、ヴィクテ
ィム・データ・キャッシュは、1次データ・キャッシュ
・バンクに対して使用されるヴィクティム・データ・キ
ャッシュのように、命令キャッシュ・バンクに使用でき
る。最後に、LRU方式によってヴィクティム・データ
・キャッシュ・ラインを判定したり、MRU方式によっ
てヴィクティム・データ・キャッシュに書き込むヴィク
ティム・データ・キャッシュ・サブラインを判定するの
ではなく、他の方式も使用できる。
【0072】本発明についていくつかの具体的実施形態
を参照して説明したけれども、説明は本発明の例示的な
ものであり、発明を限定するように解釈すべきでない。
添付特許請求の範囲で定義された発明の真の精神と範囲
を逸脱することなく、様々な変更が当業者によって行わ
れるであろう。
【図面の簡単な説明】
【図1】 本発明による統合されたプロセッサ・メモリ
(P/M)装置のブロック図である。
【図2】 P/M装置の各メモリ・ブロックのメイン・
メモリ・バンクと、1次データ・キャッシュ・バンク及
び命令キャッシュ・バンクのブロック図である。
【図3】 各命令キャッシュ・バンクの命令キャッシュ
・バンク・ロジックのブロック図である。
【図4】 各命令キャッシュ・バンクの命令キャッシュ
・バンク・ロジックの状態の状態図である。
【図5】 各1次データ・キャッシュ・バンクの1次キ
ャッシュ・バンク・ロジックのブロック図である。
【図6】 各1次データ・キャッシュ・バンクの1次デ
ータ・キャッシュ・バンク・ロジックの状態の状態図で
ある。
【図7】 P/M装置のヴィクティム・キャッシュのブ
ロック図である。
【図8】 ヴィクティム・キャッシュのヴィクティム・
キャッシュ・ロジックのブロック図である。
【図9】 ヴィクティム・キャッシュ・ロジックの状態
の状態図である。
【符号の説明】
100・・統合されたP/M装置 102・・CPU 103・・オン・チップのメモリ・システム 104・・メモリ・ブロック 118・・メイン・メモリ・バック 120・・命令キャッシュ・バンク 122・・データ・キャッシュ・バンク 128・・命令キャッシュ・バンク・ライン・ストレー
ジ 136・・命令キャッシュ・バンク制御状態マシン 144・・データ・キャッシュ・バンク・ライン・スト
レージ 152・・1次データ・キャッシュ・バンク制御状態マ
シン 168・・ヴィクティム・データ・キャッシュ制御状態
マシン
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年10月21日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 アンドレアス・ノアズィック アメリカ合衆国・94101−1901・カリフォ ルニア州・マウンテン ヴュー・チャーチ ストリート・801 (72)発明者 フォン・ポン アメリカ合衆国・94040・カリフォルニア 州・マウンテン ヴュー・ブライアント アヴェニュ・150

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 所定のアドレス空間を有し、複数のメイ
    ン・メモリ・バンクを有するメイン・メモリにして、各
    メイン・メモリ・バンクは前記アドレス空間の対応する
    部分を占有し、それぞれ所定のワード数の幅であるワー
    ド行を、前記アドレス空間の対応する部分内のアドレス
    のメモリ位置にストアするメイン・メモリと、 前記メモリ・バンクのそれぞれに結合された中央処理装
    置(CPU)と、 前記メイン・メモリ・バンクの対応するメイン・メモリ
    ・バンクおよび前記CPUに結合された複数のキャッシ
    ュ・バンクをそれぞれ有するキャッシュとを備え、 各キャッシュ・バンクは、 対応するメイン・メモリ・バンクに結合され、1つ以上
    の複数ワードのキャッシュラインをストアするキャッシ
    ュ・バンク・ライン・ストレージであって、各キャッシ
    ュ・ラインは対応するメイン・メモリ・バンク内に対応
    する行を有し、所定のワード数の幅であるキャッシュ・
    バンク・ライン・ストレージと、 前記キャッシュ・ラインのそれぞれに対する対応するタ
    グをストアするキャッシュ・バンク・タグ・ストレージ
    であって、前記タグはそれぞれ対応するキャッシュ・ラ
    インの対応するメモリ・バンクの行を識別するキャッシ
    ュ・バンク・タグ・ストレージと、 CPU、対応するメモリ・バンク及びキャッシュ・スト
    レージに結合されたキャッシュ・バンク・ロジックであ
    って、CPUが対応するメイン・メモリ・バンクのアド
    レス空間内のアドレスを送出すると、このアドレス及び
    前記キャッシュ・ラインのタグから、前記キャッシュ・
    バンク・ライン・ストレージ内でキャッシュ・バンク・
    ヒットが生じたか、キャッシュ・ミスが生じたかを判定
    し、キャッシュ・バンク・ミスが生じると、前記キャッ
    シュ・ラインのヴィクティム・キャッシュ・ラインを送
    出されたアドレスによって指定された対応するメモリ・
    バンクの対応する行を有する新しいキャッシュ・ライン
    で置き換えるキャッシュ・バンク・ロジックとを備えた
    統合されたプロセッサ・メモリ装置。
  2. 【請求項2】 中央処理装置及びメイン・メモリと共に
    用いるキャッシュであって、前記メイン・メモリは所定
    のアドレス空間を有し、複数のメイン・メモリ・バンク
    を有し、各メイン・メモリ・バンクは前記アドレス空間
    の対応する部分を占有し、それぞれ所定のワード数の幅
    であるワード行を、前記アドレス空間の対応する部分内
    のアドレスのメモリ位置にストアし、 前記メイン・メモリ・バンクのメイン・メモリ・バンク
    にそれぞれ対応している複数のキャッシュ・バンクを備
    え、 各キャッシュ・バンクは、 1つ以上の複数ワードのキャッシュ・ラインをストアす
    るキャッシュ・バンク・ライン・ストレージであって、
    各キャッシュ・ラインは、対応するメイン・メモリ・バ
    ンク内に対応する行を有し、所定のワード数幅であるキ
    ャッシュ・バンク・ライン・ストレージと、 前記キャッシュ・ラインのそれぞれに対する対応するタ
    グをストアするキャッシュ・バンク・タグ・ストレージ
    であって、前記タグはそれぞれ対応するキャッシュ・ラ
    インの対応するメモリ・バンクの行を識別するキャッシ
    ュ・バンク・タグ・ストレージと、 キャッシュ・バンク・ロジックであって、CPUが対応
    するメイン・メモリ・バンクのアドレス空間内のアドレ
    スを送出すると、このアドレス及び前記キャッシュ・ラ
    インのタグから、前記キャッシュ・バンク・ライン・ス
    トレージ内でキャッシュ・バンク・ヒットが生じたか、
    キャッシュ・ミスが生じたかを判定し、キャッシュ・バ
    ンク・ミスが生じると、前記キャッシュ・ラインのヴィ
    クティム・キャッシュ・ラインを送出されたアドレスに
    よって指定された対応するメモリ・バンクの対応する行
    を有する新しいキャッシュ・ラインで置き換えるキャッ
    シュ・バンク・ロジックとを備えたキャッシュ。
  3. 【請求項3】 中央処理装置及びメイン・メモリと共に
    用いるキャッシュを提供する方法であって、前記メイン
    ・メモリは所定のアドレス空間を有し、複数のメイン・
    メモリ・バンクを有し、各メイン・メモリ・バンクは前
    記アドレス空間の対応する部分を占有し、それぞれ所定
    のワード数の幅であるワード行を前記アドレス空間の対
    応する部分内のアドレスのメモリ位置にストアし、 前記メイン・メモリ・バンクのメイン・メモリ・バンク
    にそれぞれ対応している複数のキャッシュ・バンクを設
    けるステップを有し、 各キャッシュ・バンクにおいて、 1つ以上の複数ワードのキャッシュ・ラインをストアす
    るステップあって、各キャッシュ・ラインは、対応する
    メイン・メモリ・バンク内に対応する行を有し、所定の
    ワード数幅である、キャッシュ・ラインをステップと、 前記キャッシュ・ラインのそれぞれに対して対応し、そ
    れぞれ対応するキャッシュ・ラインの対応するメモリ・
    バンクの行を識別するタグをストアするステップと、 CPUが対応するメイン・メモリ・バンクのアドレス空
    間内のアドレスを送出すると、このアドレス及び前記キ
    ャッシュ・ラインのタグから、前記キャッシュ・バンク
    内でキャッシュ・バンク・ヒットが生じたか、キャッシ
    ュ・ミスが生じたかを判定するステップと、 キャッシュ・バンク・ミスが生じると、前記キャッシュ
    ・ラインのヴィクティム・キャッシュ・ラインを送出さ
    れたアドレスによって指定された対応するメモリ・バン
    クの対応する行を有する新しいキャッシュ・ラインで置
    き換えるステップとを有するキャッシュを提供する方
    法。
JP9187286A 1996-07-01 1997-06-30 統合されたプロセッサ・メモリ装置 Pending JPH10177519A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/675254 1996-07-01
US08/675,254 US6199142B1 (en) 1996-07-01 1996-07-01 Processor/memory device with integrated CPU, main memory, and full width cache and associated method

Publications (1)

Publication Number Publication Date
JPH10177519A true JPH10177519A (ja) 1998-06-30

Family

ID=24709688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9187286A Pending JPH10177519A (ja) 1996-07-01 1997-06-30 統合されたプロセッサ・メモリ装置

Country Status (4)

Country Link
US (1) US6199142B1 (ja)
EP (1) EP0817066A3 (ja)
JP (1) JPH10177519A (ja)
KR (1) KR100454441B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000022543A1 (en) * 1998-10-09 2000-04-20 Aztech Systems Limited Method and system for interrogating the internet
US7173839B2 (en) 2004-06-14 2007-02-06 Samsung Electronics Co., Ltd. Large scale integrated circuit and at speed test method thereof

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311280B1 (en) * 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
US6484237B1 (en) * 1999-07-15 2002-11-19 Texas Instruments Incorporated Unified multilevel memory system architecture which supports both cache and addressable SRAM
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6757784B2 (en) * 2001-09-28 2004-06-29 Intel Corporation Hiding refresh of memory and refresh-hidden memory
AU2002357420A1 (en) * 2002-12-30 2004-07-22 Intel Corporation Cache victim sector tag buffer
US7254681B2 (en) * 2003-02-13 2007-08-07 Intel Corporation Cache victim sector tag buffer
US7050351B2 (en) * 2003-12-30 2006-05-23 Intel Corporation Method and apparatus for multiple row caches per bank
US6990036B2 (en) * 2003-12-30 2006-01-24 Intel Corporation Method and apparatus for multiple row caches per bank
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7418582B1 (en) 2004-05-13 2008-08-26 Sun Microsystems, Inc. Versatile register file design for a multi-threaded processor utilizing different modes and register windows
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7509484B1 (en) 2004-06-30 2009-03-24 Sun Microsystems, Inc. Handling cache misses by selectively flushing the pipeline
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
FR2872879B1 (fr) * 2004-07-07 2008-05-30 Hutchinson Sa Support antivibratoire hydraulique a commande pneumatique
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US9256502B2 (en) * 2012-06-19 2016-02-09 Oracle International Corporation Method and system for inter-processor communication
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US11086526B2 (en) * 2018-06-07 2021-08-10 Micron Technology, Inc. Adaptive line width cache systems and methods
US11327891B2 (en) 2019-09-20 2022-05-10 Samsung Electronics Co., Ltd. Prefetching operations in storage devices
US20230393992A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Row hammer mitigation using a victim cache

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577293A (en) * 1984-06-01 1986-03-18 International Business Machines Corporation Distributed, on-chip cache
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US5184320A (en) 1988-02-12 1993-02-02 Texas Instruments Incorporated Cached random access memory device and system
US5353429A (en) * 1991-03-18 1994-10-04 Apple Computer, Inc. Cache memory systems that accesses main memory without wait states during cache misses, using a state machine and address latch in the memory controller
US5652723A (en) * 1991-04-18 1997-07-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
US5345576A (en) * 1991-12-31 1994-09-06 Intel Corporation Microprocessor simultaneously issues an access to an external cache over an external cache bus and to an internal cache, cancels the external cache access on an internal cache hit, and reissues the access over a main memory bus on an external cache miss
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
US5510934A (en) * 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
US5590078A (en) * 1994-10-07 1996-12-31 Mukesh Chatter Method of and apparatus for improved dynamic random access memory (DRAM) providing increased data bandwidth and addressing range for current DRAM devices and/or equivalent bandwidth and addressing range for smaller DRAM devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000022543A1 (en) * 1998-10-09 2000-04-20 Aztech Systems Limited Method and system for interrogating the internet
US7173839B2 (en) 2004-06-14 2007-02-06 Samsung Electronics Co., Ltd. Large scale integrated circuit and at speed test method thereof

Also Published As

Publication number Publication date
EP0817066A2 (en) 1998-01-07
KR980010781A (ko) 1998-04-30
EP0817066A3 (en) 1998-02-04
KR100454441B1 (ko) 2004-12-17
US6199142B1 (en) 2001-03-06

Similar Documents

Publication Publication Date Title
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
JPH10177519A (ja) 統合されたプロセッサ・メモリ装置
US5586295A (en) Combination prefetch buffer and instruction cache
US5559986A (en) Interleaved cache for multiple accesses per clock cycle in a microprocessor
US6161166A (en) Instruction cache for multithreaded processor
US5070502A (en) Defect tolerant set associative cache
JP3683739B2 (ja) オーバラップしたl1およびl2メモリ・アクセス方法および装置
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US5781926A (en) Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill
JPH08328958A (ja) 命令キャッシュ、キャッシュメモリ装置及びその方法
KR20010101695A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
JPH10232837A (ja) 完全統合型キャッシュ・アーキテクチャ
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
JP2001297037A (ja) スマート・キャッシュ
US5835929A (en) Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of a line fill
US5761714A (en) Single-cycle multi-accessible interleaved cache
JPH0836491A (ja) パイプライン・ストア命令を実行する装置及びその方法
JP2003256275A (ja) バンク競合決定
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
US6976130B2 (en) Cache controller unit architecture and applied method
JP2716350B2 (ja) 電子データ記憶システム
US6415362B1 (en) Method and system for write-through stores of varying sizes