JPH1055306A - メモリコントローラ - Google Patents

メモリコントローラ

Info

Publication number
JPH1055306A
JPH1055306A JP9073174A JP7317497A JPH1055306A JP H1055306 A JPH1055306 A JP H1055306A JP 9073174 A JP9073174 A JP 9073174A JP 7317497 A JP7317497 A JP 7317497A JP H1055306 A JPH1055306 A JP H1055306A
Authority
JP
Japan
Prior art keywords
cache
information
memory
memory controller
data
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
JP9073174A
Other languages
English (en)
Inventor
Thomas Basilio Genduso
トーマス・バズリオ・ジェンドゥソ
Edward Robert Vanderslice
エドワード・ロバート・ヴェンダースライス
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 JPH1055306A publication Critical patent/JPH1055306A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 ルックアサイドキャッシュアーキテクチャの
データ処理システムに設けられる、改善されたメモリコ
ントローラが開示される。 【解決手段】 データ処理システムは上位レベルキャッ
シュを結合されたプロセッサと、コントローラメモリを
結合されたメモリコントローラと、プロセッサとメモリ
コントローラとの間に接続されたプロセッサバスと、メ
インメモリとを含む。さらに、データ処理システムは、
プロセッおサとメモリコントローラに並列にプロセッサ
バスへ接続された下位レベルキャッシュを含む。本発明
の第一の局面に従えば、メモリコントローラに設けられ
たロジックは、書き込み要求が下位レベルキャッシュに
よってサービスされない場合に、その書き込み要求に関
連づけられたデータが置換され変更されたキャッシュラ
インであれば、その書き込み要求の受け取りに応答し
て、メモリコントローラに結合されたコントローラメモ
リの中に上記関連づけられたデータを記憶し、よってデ
ータ処理システム内のデータ記憶を最適化する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般的にはデータ処
理装置に関し、具体的にはデータ処理システム内でデー
タの記憶を管理する装置に関する。さらに具体的には、
本発明は、ルックアサイドキャッシュアーキテクチャの
データ処理システム内で、スタック動作をキャッシュし
選択された情報をプリフェッチしてプロセッサの次のア
クセスに備えるメモリコントローラに関する。
【0002】
【従来の技術】遅延を減少させるため、データ処理シス
テムはキャッシュメモリ構成をますます使用するように
なった。当業者に周知であるように、キャッシュは高
速、高価、ゼロ待ち状態の小型メモリであって、メイン
メモリに存在する命令とデータの中で頻繁にアクセスさ
れるもののコピーを記憶するために使用される。804
86、Intel Pentium(TM)、IBM
PowerPC(TM)、または同類のプロセッサを使
用する最新世代のパーソナルコンピュータは、典型的に
オンチップのレベル1(L1)プロセッサキャッシュを
含んでいる。さらに、これらのパーソナルコンピュータ
は、しばしばレベル2(L2)キャッシュを含んでお
り、システムパフォーマンスを高めている。L1および
L2キャッシュの双方を備えるキャッシュシステムは、
典型的に二つの形式の一つで構成される。第一のキャッ
シュシステム構成では、L2キャッシュはプロセッサと
システムバスまたはメモリバスとの間で直列にインター
フェースされている。この構成は、通常、ルックスルー
(look−through)構成またはインライン
(in−line)構成と呼ばれ、プロセッサはメモリ
またはシステムバスと直接に通信することはできず、L
2キャッシュコントローラによって提供されるインター
フェースを介して通信する。
【0003】インラインL2キャッシュ構成は概して最
適のパフォーマンスを実現するが、多くのパーソナルコ
ンピュータシステムは、ルックアサイド構成ではL2キ
ャッシュをオプションとしてサポートするように設計さ
れている。それはエントリレベルのコンピュータシステ
ムの価格を下げるためであり、L2キャッシュの取り付
けは、パフォーマンスを高めるためのオプションとして
提供するのである。ルックアサイド構成では、L2キャ
ッシュはプロセッサおよびメモリコントローラの両者と
並列にプロセッサバスに接続されるので、プロセッサバ
スに接続されたプラグ可能モジュール上に便宜的に取り
付けることができる。
【0004】ルックアサイドL2キャッシュ構成を使用
するコンピュータシステムでは、L2キャッシュとメモ
リコントローラの各々は、メモリ読み取りを始動するプ
ロセッサに応答して、同時にプロセッサメモリ読み取り
サイクルを開始する。L2キャッシュの読み取りヒット
に応答して、L2キャッシュは指示されたメモリ読み取
りを中止するようにメモリコントローラへ信号を出し、
要求されたデータをゼロ待ち状態でプロセッサへ戻す。
しかし、L2キャッシュの読み取りミスの場合には、メ
モリコントローラが要求されたデータをメインメモリか
らフェッチし、そのデータをL2キャッシュが存在しな
かったかのようにプロセッサへ戻す。L2キャッシュと
メモリコントローラの双方は、プロセッサのデータ読み
取り要求に対して同時にサービスを開始するので、ルッ
クアサイドキャッシュアーキテクチャのコンピュータシ
ステムでは、データの読み取り中にL2キャッシュミス
の不利が生じることはない。
【0005】しかし、ルックアサイド構成を使用するコ
ンピュータシステム内にL2キャッシュを実装すると、
必然的にパフォーマンスの不利が生じる。たとえば、デ
ータの書き込み中にルックアサイドL2キャッシュのキ
ャッシュミスが起こると、パフォーマンス上の不利が生
じる。なぜなら、L2キャッシュは、プロセッサがメモ
リコントローラへデータを書き込んでいる間、必要なキ
ャッシュラインをフェッチするためにプロセッサバスの
制御を得ることができないからである。そのため、典型
的に、ルックアサイドL2キャッシュは、書き込みミス
でキャッシュラインの割り振りを実行しない。さらに、
I/O動作中に、システムバスへの競争がシステムパフ
ォーマンスを低下させる。なぜなら、プロセッサはI/
O動作中にL2キャッシュにアクセスできないからであ
る。さらに、ルックアサイドL2キャッシュ構成の制約
は、それがL1キャッシュラインのサイズよりも大きな
キャッシュラインのサイズを効率的にサポートしないこ
とである。これに対して、インラインL2キャッシュラ
インは、しばしばL1キャッシュラインの長さの2倍に
なるように設計される。その理由は、データ局在性の統
計的確率に基づいて命令とデータをプリフェッチするこ
とによりキャッシュミス率を減少させるためである。
【0006】これらのことから分かるように、データ処
理システム内にオプションのルックアサイドL2キャッ
シュを実装するための改善された方法およびシステムを
提供することが望ましい。特に、ルックアサイドL2キ
ャッシュ構成のデータ処理システム内で、L2書き込み
ミスでの割り振りをサポートし、データと命令のプリフ
ェッチを可能にする改善されたキャッシュシステムを提
供することが望ましい。
【0007】
【発明が解決しようとする課題】本発明の目的は、改善
されたデータ処理システムを提供することである。
【0008】本発明の他の目的は、データ処理システム
内でデータの記憶を管理する改善された装置を提供する
ことである。
【0009】さらに、本発明の他の目的は、ルックアサ
イドキャッシュアーキテクチャのデータ処理システム内
で、スタック動作をキャッシュし選択された情報をプリ
フェッチして、プロセッサによる次のアクセスに備える
改善されたメモリコントローラを提供することである。
【0010】
【課題を解決するための手段】前述した目的はこれから
説明するようにして達成される。すなわち、ルックアサ
イドキャッシュアーキテクチャを備えたデータ処理シス
テム内の改善されたメモリコントローラが開示される。
データ処理システムは、上位レベルのキャッシュを結合
されたプロセッサと、コントローラメモリを結合された
メモリコントローラと、プロセッサとメモリコントロー
ラとの間で接続されたプロセッサバスと、メインメモリ
とを含む。さらに、データ処理システムは、プロセッサ
およびメモリコントローラと並列にプロセッサバスへ接
続された下位レベルのキャッシュを含む。本発明の第一
の局面に従えば、メモリコントローラはロジックを含
み、このロジックは、下位レベルキャッシュによってサ
ービスされない書き込み要求で、関連するデータが修正
済みの置換されたキャッシュラインではないような書き
込み要求を受け取って、メモリコントローラに結合され
たコントローラメモリ内に、関連するデータを記憶し、
よってデータ処理システム内のデータ記憶を最適化す
る。本発明の第二の局面に従えば、メモリコントローラ
はロジックを含み、このロジックは、メインメモリ内に
のみ存在する情報への要求を受け取って、要求された情
報をメインメモリからフェッチし、メインメモリ内で上
記要求されたデータに隣接している追加情報をプリフェ
ッチバッファに記憶し、よってプリフェッチされた情報
へのアクセスタイムを最小にする。
【0011】本発明の上記および他の目的、特徴、およ
び利点は以下に記載する詳細な説明から明らかとなる。
【0012】
【発明の実施の形態】ここで図1を参照すると、そこに
は本発明の方法およびシステムに従ったデータ処理シス
テムの実施例のブロック図が示される。当業者に明らか
であるように、データ処理システム10の本発明に関連
しない詳細部分の多くは、説明を明瞭にするために省い
てある。図示されるように、データ処理システム10
は、ソフトウェア命令を実行する中央処理装置(CP
U)12を含む。中央処理装置(CPU)12として
は、任意の適切なマイクロプロセッサを使用できるが、
中央処理装置(CPU)12は、IBM Microe
lectronicsから提供されるPowerPC
(TM)系マイクロプロセッサの一つであることが望ま
しい。それに替えて、中央処理装置(CPU)12はI
ntel Pentium(TM)または80486マ
イクロプロセッサを使用できる。データおよび命令のア
クセスタイムを改善するために、中央処理装置(CP
U)12はオンボードのレベル1(L1)キャッシュ1
4を備えている。以下の説明では、レベル1(L1)キ
ャッシュ14のキャッシュラインサイズはXバイトの長
さとして記述されているが、中央処理装置(CPU)1
2のワード長が8バイトである本発明の実施例では、レ
ベル1(L1)キャッシュ14のキャッシュライン長は
32バイトである。中央処理装置(CPU)12はプロ
セッサバス18へ接続される。プロセッサバス18は、
中央処理装置(CPU)12、レベル2(L2)キャッ
シュ16、およびメモリコントローラ20の間でデータ
と命令のやりとりを容易にするために、8バイトのバン
ドワイズであることが望ましい。
【0013】図示されるように、ルックアサイドキャッ
シュ構成では、レベル2(L2)キャッシュ16は中央
処理装置(CPU)12およびメモリコントローラ20
と並列にプロセッサバス18へ接続される。したがっ
て、中央処理装置(CPU)12によりプロセッサバス
18を介して転送された読み取りおよび書き込み要求
は、メモリコントローラ20およびレベル2(L2)キ
ャッシュ16によって同時に受け取られる。レベル2
(L2)キャッシュ16は、L2キャッシュのヒットに
応答して、指示された動作を中止するようメモリコント
ローラ20へ信号を出し、要求されたデータをゼロ待ち
状態で中央処理装置(CPU)12へ戻す。レベル2
(L2)キャッシュ16は、共用バス上で種々のキャッ
シュラインサイズをもつ複数のキャッシュをサポートす
ることから生じる複雑性を避けるために、Xバイトのキ
ャッシュライン長であることが望ましい。図示されるよ
うに、レベル2(L2)キャッシュ16はL2キャッシ
ュコントローラ17を含む。L2キャッシュコントロー
ラ17は、レベル2(L2)キャッシュ16の動作を制
御する。したがって、L2キャッシュコントローラ17
は、選択された整合プロトコルに従うことによってL2
キャッシュの整合性を維持し、メインメモリ22内のメ
モリアドレスに関連づけられたデータがキャッシュ可能
かどうか、またはそのようなデータがレベル2(L2)
キャッシュ16内に存在できるかどうかを決定し、また
他の通常のキャッシュ管理機能を実行する。
【0014】さらに、データ処理システム10はメモリ
コントローラ20を含む。メモリコントローラ20はロ
ジック回路を含み、このロジック回路は、レベル2(L
2)キャッシュ16によってサービスを受けることがで
きない読み取り要求および書き込み要求を中央処理装置
(CPU)12から受け取ったとき、メインメモリ22
からデータと命令をフェッチする。したがって、メモリ
コントローラ20は中央処理装置(CPU)12とメイ
ンメモリ22との間のメモリインターフェースを提供す
る。さらに、メモリコントローラ20は、システムバス
24と中央処理装置(CPU)12とメインメモリ22
との間のシステムバスインターフェースを提供するロジ
ック回路を含む。本発明の実施例において、メモリコン
トローラ20内のシステムバスインターフェースは、指
定されたアドレスがI/O装置に割り当てられたアドレ
スへマップされるとき、中央処理装置(CPU)12か
ら受け取られたデータをシステムバス24へ転送するこ
とによってメモリマップI/Oをサポートする。
【0015】さらに図1に示されるように、データ処理
システム10は読み取り専用メモリ(ROM)26、I
/Oアダプタ28、2次記憶装置30、およびディスプ
レイアダプタ32を含む。これらの各々はシステムバス
24へ接続される。読み取り専用メモリ(ROM)26
および2次記憶装置30は、オペレーティングシステ
ム、アプリケーションプログラム、およびデータのため
の記憶装置となる。I/Oアダプタ28はデータ処理シ
ステム10への入力装置(マウスやキーボードなど)の
接続をサポートし、ユーザがデータや命令を入力できる
ようにする。ディスプレイアダプタ32はビデオ表示装
置の接続を可能にし、データをユーザへ出力できるよう
にする。
【0016】ここで図2を参照すると、そこには本発明
の方法およびシステムに従うメモリコントローラ20の
論理構造の詳細が示される。図示されるように、メモリ
コントローラ20は通常の読み取り/書き込みバッファ
40と書き込みバッファ42とを含む。読み取り/書き
込みバッファ40は、プロセッサバス18を介して中央
処理装置(CPU)12との間で転送されるデータをバ
ッファするために使用される。書き込みバッファ42
は、メインメモリ22へ書き込まれるべきデータをバッ
ファするために使用される。読み取り/書き込みバッフ
ァ40と書き込みバッファ42の各々は、レベル1(L
1)キャッシュ14のキャッシュラインと同じ長さであ
ることが望ましい。それは、メモリコントローラ20と
中央処理装置(CPU)12との間で効率的なデータ転
送(たとえば、バースト転送)をサポートするためであ
る。
【0017】本発明に従えば、メモリコントローラ20
はさらに命令プリフェッチバッファ(IPB)44とデ
ータプリフェッチバッファ(DPB)46とを含む。命
令プリフェッチバッファ(IPB)44とデータプリフ
ェッチバッファ(DPB)46とは、中央処理装置(C
PU)12のためにデータと命令をプリフェッチするた
めにメモリコントローラ20によって使用される。前述
したように、参照の局在性原理に基づいて、メモリから
の各フェッチでデータおよび命令の追加のL1キャッシ
ュラインをプリフェッチするために、L2対L1のキャ
ッシュラインサイズを2:1にすることによって、キャ
ッシュミス率が大幅に減少することが分かっている。ル
ックアサイドキャッシュ構成の場合、L2およびL1キ
ャッシュラインのサイズを違ったものにすると、サポー
トが容易でなくなるので、メモリコントローラ20は、
フェッチ動作の間にメインメモリ22から2キャッシュ
ライン分のデータまたは命令をフェッチし、中央処理装
置(CPU)12によって直ちには要求されていないキ
ャッシュライン内に含まれているデータまたは命令を、
命令プリフェッチバッファ(IPB)44およびデータ
プリフェッチバッファ(DPB)46の適切な一つに記
憶する。したがって、以下で詳細に説明するように、メ
モリコントローラ20は、レベル2(L2)キャッシュ
16のルックアサイド構成と組み合わせた、データおよ
び命令のプリフェッチをサポートする。
【0018】さらに、本発明の他の局面に従えば、メモ
リコントローラ20は、書き込み割り振り/読み取り無
効(WA/RI)キャッシュ48と、それに結合された
キャッシュコントロール兼タグ50とを含む。ルックア
サイドL2キャッシュを実装した通常のデータ処理シス
テムでは、メモリコントローラは、L2キャッシュ書き
込みミスに応答して、プロセッサから受け取られたデー
タを単純にメインメモリへ書き込む。したがって、通常
のルックアサイドキャッシュは、典型的に書き込みミス
に応答してキャッシュラインを割り振ることはしない。
この記憶管理方式は、書き込まれるべきデータが置換さ
れたL1またはL2キャッシュラインである場合に有利
である。なぜなら、置換されたキャッシュラインがすぐ
に再びアクセスされる確率は小さいからである。しか
し、データ書き込みがスタック動作である場合、書き込
みミスに応答してキャッシュラインを割り振ることがで
きないと、システムパフォーマンスが低下する。
【0019】当業者に周知であるように、スタックは先
入れ後出し(first−in/last−out)
(FILO)待ち行列である。この待ち行列は、パラメ
ータを保管するプロシージャ呼び出しや他のソフトウェ
ア動作の間にパラメータを保管するために使用される。
スタック動作はパラメータを最初にデータ位置へ書き込
み(プッシュ)、その後でそのデータ位置から読み取る
(ポップ)傾向がある。スタックデータは典型的にただ
一回だけ読み取られるので、ポップに続くスタックデー
タは無効と考えられる。本発明に従えば、プッシュスタ
ック動作を効率的にサポートするために、メモリコント
ローラ20内の書き込み割り振り/読み取り無効(WA
/RI)キャッシュ48は、レベル2(L2)キャッシ
ュ16の、単一ワード(非バースト)書き込みのミスで
キャッシュラインを割り振る。書き込み割り振り/読み
取り無効(WA/RI)キャッシュ48は、複数ワード
書き込み(バースト書き込み)でキャッシュラインを割
り振ることはしない。なぜなら、バースト書き込みは典
型的にもはやキャッシュされる必要のない置換されたキ
ャッシュラインを表すからである。さらに、書き込み割
り振り/読み取り無効(WA/RI)キャッシュ48
は、読み取りヒット(ポップ)に続いてデータを無効に
する。
【0020】最後に、メモリコントローラ20は制御回
路52を含む。制御回路52は図3から図6までに示さ
れる論理プロセスに従ってメモリコントローラ20の動
作を管理する。図3から図6までを参照すると、直列形
式で書かれた多くの動作が実際には並列に実行できるこ
とが、当業者に明らかであろう。まず図3を参照する
と、そこには本発明の方法およびシステムに従うメモリ
コントローラ20の動作の高レベル論理フローチャート
が示される。図示されるように、プロセスはブロック6
0で始まり、その後でブロック62へ進む。ブロック6
2は、中央処理装置(CPU)12からプロセッサバス
18を介して受け取られた動作要求が命令フェッチ要求
であるかどうかを決定する。動作要求が命令フェッチ要
求ではないという決定に応答して、プロセスはブロック
64へ進む。しかし、動作要求が命令フェッチ要求であ
るという決定に応答して、プロセスはオフページコネク
タAを通り図4のオンページコネクタAに進む。
【0021】ここで図4を参照すると、本発明の方法お
よびシステムに従って命令をプリフェッチするためにメ
モリコントローラ20によって使用されるプロセスの実
施例の高レベル論理ブロック図が示される。図示される
ように、プロセスはオンページコネクタAからブロック
70へ進む。ブロック70では、命令フェッチ要求がL
2キャッシュのヒットを生じたかどうかが決定される。
要求された命令をレベル2(L2)キャッシュ16が記
憶していれば、レベル2(L2)キャッシュ16はメモ
リコントローラ20へその動作を中止するように信号を
出す。したがって、指定されたメモリアドレスに関連づ
けられた命令がレベル2(L2)キャッシュ16内に記
憶されていれば、プロセスはブロック70からブロック
118へ進んで終了する。しかし、ブロック70で、命
令フェッチ要求がL2キャッシュミスを生じたことが決
定されると、レベル2(L2)キャッシュ16はその命
令フェッチ要求をサービスすることはできず、プロセス
はブロック72へ進む。
【0022】ブロック72では、命令フェッチ要求によ
って指定された命令が書き込み割り振り/読み取り無効
(WA/RI)キャッシュ48内に記憶されているかど
うかが決定される。もし記憶されていなければ、プロセ
スはブロック72からブロック80へ進む。しかし、ブ
ロック72で、書き込み割り振り/読み取り無効(WA
/RI)キャッシュ48が要求された命令を記憶してい
ることが決定されると、プロセスはブロック72からブ
ロック74−78に進む。ブロック74−78では、メ
モリコントローラ20が、要求された命令をプロセッサ
バス18を介して中央処理装置(CPU)12へ転送
し、要求された命令を含むWA/RIキャッシュライン
をメインメモリ22へ書き戻し、要求された命令を含む
WA/RIキャッシュラインを無効にする。その後で、
プロセスはブロック118へ進んで終了する。ブロック
72へ戻って、要求された命令が書き込み割り振り/読
み取り無効(WA/RI)キャッシュ48内に記憶され
ていないという決定がなされると、プロセスはブロック
80へ進む。ブロック80では、要求された命令がデー
タプリフェッチバッファ(DPB)46内に記憶されて
いるかどうかについて決定が行われる。中央処理装置
(CPU)12によって出された動作要求は命令フェッ
チ要求であるが、メモリコントローラ20は、データプ
リフェッチバッファ(DPB)46が要求された命令を
記憶しているかどうかを決定する。なぜなら、コンピュ
ータアーキテクチャは、典型的に、自己修正コードをサ
ポートするために、情報が命令としてアクセスされるこ
ともデータとしてアクセスされることも許すからであ
る。要求された命令がデータプリフェッチバッファ(D
PB)46内に記憶されているという決定に応答して、
プロセスはブロック80からブロック82へ進む。ブロ
ック82では、メモリコントローラ20が要求された命
令を中央処理装置(CPU)12へ転送する。次に、プ
ロセスはブロック84−86へ進む。これらのブロック
では、L1キャッシュラインの全体が中央処理装置(C
PU)12へ転送された場合に、無効ビット47をセッ
トすることによってデータプリフェッチバッファ(DP
B)46が無効にされる。次に、プロセスはブロック1
18へ進んで終了する。
【0023】ブロック80へ戻って、要求された命令が
データプリフェッチバッファ(DPB)46内に記憶さ
れていないという決定がなされると、プロセスはブロッ
ク88へ進む。ブロック88では、要求された命令が命
令プリフェッチバッファ(IPB)44に記憶されてい
るかどうかについて決定が行われる。要求された命令が
命令プリフェッチバッファ(IPB)44に記憶されて
いるという決定に応答して、プロセスはブロック90へ
進む。ブロック90では、メモリコントローラ20が要
求された命令を中央処理装置(CPU)12へ転送す
る。次に、プロセスはブロック92へ進む。ブロック9
2では、命令のL1キャッシュラインの全体が中央処理
装置(CPU)12へ転送されたかどうかが決定され
る。転送されていなければ、プロセスは単にブロック1
18へ進んで終了する。しかし、L1キャッシュライン
の全体が転送されたのであれば、プロセスはブロック9
4へ進む。ブロック94では、メモリコントローラ20
が無効ビット45をセットすることによって命令プリフ
ェッチバッファ(IPB)44の内容を無効にする。次
に、プロセスはブロック96へ進む。ブロック96で
は、メインメモリ22内で要求された命令に続くXバイ
ト(Xはレベル1(L1)キャッシュ14のキャッシュ
ライン長である)がキャッシュ可能かどうかについて決
定が行われる。キャッシュ可能でなければ、プロセスは
ブロック118へ進んで終了する。しかし、メインメモ
リ22内の次のXバイトがキャッシュ可能であるという
決定がなされると、プロセスはブロック98へ進む。ブ
ロック98では、メモリコントローラ20が要求された
命令に続くXバイトをフェッチし、それらを命令プリフ
ェッチバッファ(IPB)44に記憶し、そして無効ビ
ット45をクリアする。その後で、プロセスはブロック
118へ進んで終了する。
【0024】ブロック88へ戻って、要求された命令が
命令プリフェッチバッファ(IPB)44内に存在して
いないという決定がなされると、プロセスはブロック1
00へ進む。ブロック100では、要求された命令がL
1キャッシュラインの全体を表し、また要求された命令
を含むアドレスおよび後続のXバイトの情報を含むアド
レスが共にキャッシュ可能かについて決定が行われる。
もしそうであれば、プロセスはブロック102へ進む。
ブロック102では、メインメモリ22から2つのL1
キャッシュライン長の情報バイトがフェッチされる。次
に、ブロック104で示されるように、メモリコントロ
ーラ20は命令の最初のXバイトを中央処理装置(CP
U)12へ転送し、二番目のXバイトを命令プリフェッ
チバッファ(IPB)44に記憶する。このようにし
て、二番目のXバイト情報内にある命令が続いて要求さ
れる可能性があるために、メモリコントローラ20は命
令の二番目のL1キャッシュラインを効果的にプリフェ
ッチする。次に、プロセスはブロック118へ進んで終
了する。
【0025】ブロック100へ戻って、L1キャッシュ
ラインの全体が中央処理装置(CPU)12によって要
求されなかったか、または2Xバイトがキャッシュ可能
でないという決定がなされると、プロセスは106へ進
む。ブロック106では、要求された命令のメインメモ
リ22内のアドレスを含むXバイトがキャッシュ可能か
どうかについて決定が行われる。キャッシュ可能でなけ
れば、プロセスはブロック108へ進む。ブロック10
8では、メモリコントローラ20が要求された命令をメ
インメモリ22からフェッチし、要求された命令を中央
処理装置(CPU)12へ送る。次に、プロセスはブロ
ック118へ進んで終了する。しかし、ブロック106
で、要求された命令を含むXバイトの情報がキャッシュ
可能であるという決定がなされると、プロセスはブロッ
ク110および112へ進む。これらのブロックでは、
メモリコントローラ20が、要求された命令を含むXバ
イトをメインメモリ22からフェッチし、要求された命
令を中央処理装置(CPU)12へ転送する。次に、ブ
ロック114で、L1キャッシュラインの全体より成る
Xバイトが中央処理装置(CPU)12へ送られたかど
うかについて決定がなされる。もし送られたのであれ
ば、プロセスはブロック118へ進んで終了する。しか
し、キャッシュラインの全体よりも少ない命令バイトが
中央処理装置(CPU)12へ送られたのであれば、プ
ロセスはブロック116へ進む。ブロック116では、
フェッチされたXバイトの情報を命令プリフェッチバッ
ファ(IPB)44に記憶し、無効ビット45をクリア
することによってそれらXバイトを有効としてマークす
る。その後で、プロセスはブロック118へ進んで終了
する。
【0026】ここで再び図3を参照する。ブロック62
で、メモリコントローラ20によって受け取られたCP
U動作要求が命令フェッチ要求ではないという決定がな
されると、プロセスはブロック64へ進む。ブロック6
4では、CPU動作要求がデータ書き込み要求であるか
どうかについて決定がなされる。もしデータ書き込み要
求であれば、プロセスはブロック64からオフページコ
ネクタBを介して図5へ進む。図5は、データ書き込み
要求をサービスするためにメモリコントローラ20によ
って使用されるプロセスの実施例を示す。
【0027】ここで図5を参照すると、データ書き込み
要求をサービスするためにメモリコントローラ20によ
って使用されるプロセスは、オンページコネクタBから
始まり、その後でブロック130へ進む。ブロック13
0では、データ書き込み要求がレベル2(L2)キャッ
シュ16によってサービスされるかどうかについて決定
が行われる。命令フェッチ要求に関して前述したよう
に、レベル2(L2)キャッシュ16は、中止信号をメ
モリコントローラ20へ転送することによって、指定さ
れたアドレスに記憶されたデータのコピーが、レベル2
(L2)キャッシュ16内に存在することを知らせる。
データ書き込み要求がレベル2(L2)キャッシュ16
によってサービスされることを示す中止信号の受け取り
に応答して、プロセスはブロック130からブロック1
72へ進んで終了する。しかし、データ書き込み要求が
レベル2(L2)キャッシュ16によってサービスされ
ないとの決定がなされると、プロセスはブロック130
からブロック132へ進む。ブロック132では、デー
タ書き込み要求に関連づけられたデータが、レベル1
(L1)キャッシュ14またはレベル2(L2)キャッ
シュ16からカーストアウトされた(置換された)キャ
ッシュラインであるか、ロックされているか、またはキ
ャッシュ可能でないかについて決定が行われる。肯定の
決定がなされると、プロセスはブロック132からブロ
ック134へ進む。ブロック134では、メモリコント
ローラ20がデータ書き込み要求に関連づけられたデー
タをメインメモリ22内の指定されたアドレスへ書き込
む。次に、ブロック136で、メモリコントローラ20
は書き込み割り振り/読み取り無効(WA/RI)キャ
ッシュ48、命令プリフェッチバッファ(IPB)4
4、およびデータプリフェッチバッファ(DPB)46
を調べて、指定されたアドレスに対応するメモリコント
ローラ20内のデータを無効にする。次に、プロセスは
ブロック172へ進んで終了する。ブロック132へ戻
って、データ書き込み要求に関連づけられたデータが、
レベル1(L1)キャッシュ14またはレベル2(L
2)キャッシュ16からカーストアウトされたキャッシ
ュラインではなく、またロックされておらず、またキャ
ッシュ可能であれば、プロセスはブロック138へ進
む。ブロック138では、データプリフェッチバッファ
(DPB)46が指定されたアドレスに対応するデータ
を記憶しているかどうかが決定される。もし記憶してお
れば、プロセスはブロック138からブロック140へ
進む。ブロック140では、データ書き込み要求に関連
づけられたデータがデータプリフェッチバッファ(DP
B)46内のデータと組み合わせられる。次に、ブロッ
ク142で、データプリフェッチバッファ(DPB)4
6内の情報は書き込み割り振り/読み取り無効(WA/
RI)キャッシュ48へ書き込まれる。その後で、デー
タプリフェッチバッファ(DPB)46の内容は無効ビ
ット47をセットすることによって無効にされ、プロセ
スはブロック172へ進んで終了する。
【0028】ブロック138へ戻って、データプリフェ
ッチバッファ(DPB)46が、指定されたアドレスに
関連づけられたデータを含んでいないという決定がなさ
れると、プロセスはブロック138からブロック146
へ進む。ブロック146では、命令プリフェッチバッフ
ァ(IPB)44が、指定されたアドレスに関連づけら
れた情報を記憶しているかどうかについて決定が行われ
る。もし記憶しておれば、プロセスはブロック148−
152へ進む。これらのブロックでは、ブロック140
−144と同じように、メモリコントローラ20がデー
タ書き込み要求に関連づけられたデータを命令プリフェ
ッチバッファ(IPB)44の内容と組み合わせ、命令
プリフェッチバッファ(IPB)44の内容を書き込み
割り振り/読み取り無効(WA/RI)キャッシュ48
に記憶し、その後で、無効ビット45をセットすること
によって命令プリフェッチバッファ(IPB)44を無
効にする。次に、プロセスはブロック172へ進んで終
了する。ブロック146へ戻って、命令プリフェッチバ
ッファ(IPB)44が、指定されたアドレスに関連づ
けられた情報を記憶していないという決定がなされる
と、プロセスはブロック146からブロック154へ進
む。ブロック154では、指定されたアドレスに関連づ
けられた情報が書き込み割り振り/読み取り無効(WA
/RI)キャッシュ48内に記憶されているかどうかに
ついて決定が行われる。ブロック154の決定は、指定
されたアドレス内の選択されたビットをキャッシュコン
トロール兼タグ50内に記憶されたアドレスタグと比較
することによって行うことが望ましい。指定されたアド
レス内の選択されたビットが、キャッシュコントロール
兼タグ50内に記憶されたアドレスタグの一つと一致す
れば、それは書き込み割り振り/読み取り無効(WA/
RI)キャッシュ48が、指定されたアドレスに関連づ
けられた情報を記憶していることを示し、プロセスはブ
ロック154からブロック156へ進む。ブロック15
6では、メモリコントローラ20がデータ書き込み要求
に関連づけられたデータでWA/RIキャッシュライン
を更新する。次に、プロセスはブロック172へ進んで
終了する。
【0029】ブロック154へ戻って、データ書き込み
要求が書き込み割り振り/読み取り無効(WA/RI)
キャッシュ48のキャッシュミスになったことが決定さ
れると、プロセスはブロック154からブロック158
へ進む。ブロック158では、データ書き込み要求に関
連づけられたデータに対して、書き込み割り振り/読み
取り無効(WA/RI)キャッシュ48内のキャッシュ
ラインを割り振る。次に、ブロック160で、メモリコ
ントローラ20が、指定されたアドレスを含むXバイト
のデータをメインメモリ22からフェッチし、フェッチ
されたデータを読み取り/書き込みバッファ40に記憶
する。さらに、メモリコントローラはデータ書き込み要
求に関連づけられたデータを読み取り/書き込みバッフ
ァ40の内容と組み合わせる。次に、プロセスはブロッ
ク162へ進む。ブロック162では、置換されるWA
/RIキャッシュラインが変更されたかどうかを決定す
る。ブロック162の決定は、たとえばキャッシュライ
ンに関連づけられた整合プロトコルビットを検査するこ
とによってなされてよい。キャッシュラインが変更され
たものとしてマークされていれば、プロセスはブロック
164へ進む。ブロック164では、置換されるWA/
RIキャッシュラインをメインメモリ22へ書き込む。
次に、プロセスはブロック164またはブロック162
からブロック168へ進む。ブロック168では、読み
取り/書き込みバッファ40の内容を、割り振られたW
A/RIキャッシュラインへ記憶する。次に、ブロック
170で、キャッシュラインは変更(有効)としてマー
クされる。その後で、プロセスはブロック172へ進ん
で終了する。
【0030】ここで再び図3を参照すると、ブロック6
4で、メモリコントローラ20で受け取られたCPU動
作要求がデータ書き込み要求ではないという決定がなさ
れると、プロセスはブロック66へ進む。ブロック66
では、CPU動作要求がデータ読み取り要求であるかど
うかについて決定が行われる。データ読み取り要求でな
ければ、プロセスはブロック68へ進んで終了する。し
かし、ブロック66で、CPU動作要求がデータ読み取
り要求であると決定されると、プロセスはオフページコ
ネクタCを介して図6のオンページコネクタCへ進む。
ここで図6を参照すると、そこにはデータ読み取り要求
をサービスするために本発明によって使用される方法の
実施例の高レベルフローチャートが示される。図示され
るように、プロセスはオンページコネクタCからブロッ
ク180へ進む。ブロック180では、CPU動作要求
がレベル2(L2)キャッシュ16によってサービスさ
れるかどうかについて決定が行われる。サービスされる
のであれば、プロセスは単にブロック232へ進んで終
了する。しかし、ブロック180の決定が、レベル2
(L2)キャッシュ16がCPU動作要求をサービスし
ないことであれば、プロセスはブロック182へ進む。
ブロック182では、データ読み取り要求内で指定され
たアドレスに関連づけられたデータが書き込み割り振り
/読み取り無効(WA/RI)キャッシュ48内に記憶
されているかどうかについて決定が行われる。記憶され
ていれば、プロセスはブロック182からブロック18
4−190へ進む。これらのブロックでは、書き込み割
り振り/読み取り無効(WA/RI)キャッシュ48の
読み取り無効動作が行われる。まず、ブロック184で
示されるように、データ読み取り要求内で指定されたア
ドレスに関連づけられたデータが、プロセッサバス18
を介して中央処理装置(CPU)12へ転送される。次
に、プロセスはブロック186へ進む。ブロック186
では、Xバイトのデータ(L1キャッシュラインの全
体)が中央処理装置(CPU)12へ転送されたかどう
かについて決定が行われる。転送されていなければ、プ
ロセスはブロック232へ進んで終了する。しかし、L
1キャッシュラインの全体が中央処理装置(CPU)1
2へ転送されたのであれば、プロセスはブロック188
−190へ進む。これらのブロックでは、メモリコント
ローラ20が、要求されたデータLを含むWA/RIキ
ャッシュラインをメインメモリ22へ書き戻し、キャッ
シュラインを無効とマークする。次に、プロセスはブロ
ック232へ進んで終了する。
【0031】ブロック182へ戻って、要求されたデー
タが書き込み割り振り/読み取り無効(WA/RI)キ
ャッシュ48内に記憶されていないという決定がなされ
ると、プロセスはブロック192へ進む。ブロック19
2では、要求されたデータが命令プリフェッチバッファ
(IPB)44内に記憶されているかどうかについて決
定が行われる。要求された情報が命令プリフェッチバッ
ファ(IPB)44に記憶されているという決定がなさ
れると、プロセスはブロック194へ進む。ブロック1
94では、要求されたデータが中央処理装置(CPU)
12へ戻される。次に、ブロック196で、要求された
データがL1キャッシュラインの全体から構成されるか
どうかについて決定が行われる。構成されていなけれ
ば、プロセスはブロック232へ進んで終了する。しか
し、要求されたデータがL1キャッシュラインの全体か
ら構成されるという決定がなされると、プロセスはブロ
ック198へ進む。ブロック198では、無効ビット4
5をセットすることによって命令プリフェッチバッファ
(IPB)44の内容が無効にされる。次に、プロセス
はブロック232へ進んで終了する。ブロック192へ
戻って、もし命令プリフェッチバッファ(IPB)44
が要求されたデータを含まないという決定がなされる
と、プロセスはブロック200へ進む。ブロック200
では、要求されたデータがデータプリフェッチバッファ
(DPB)46内に存在するかどうかについて決定がな
される。もし存在すれば、プロセスはブロック200か
らブロック202へ進む。ブロック202では、要求さ
れたデータが中央処理装置(CPU)12へ戻される。
次に、ブロック204で、要求されたデータがL1キャ
ッシュラインの全体から構成されるかどうかについて決
定がなされる。構成されていなければ、プロセスはブロ
ック232へ進んで終了する。しかし、要求されたデー
タがL1キャッシュラインの全体から構成されていれ
ば、プロセスはブロック206へ進む。ブロック206
では、メモリコントローラ20が無効ビット47をセッ
トすることによってデータプリフェッチバッファ(DP
B)46の内容を無効にする。プロセスはブロック20
6からブロック208へ進む。ブロック208では、メ
インメモリ22内で、要求されたXバイトのデータに続
く次のXバイトの情報がキャッシュ可能かどうかについ
て決定が行われる。キャッシュ可能でなければ、プロセ
スはブロック232へ進んで終了する。しかし、メイン
メモリ22内の次のXバイトの情報がキャッシュ可能で
あると決定されると、プロセスはブロック208からブ
ロック210へ進む。ブロック210では、メモリコン
トローラ20がメインメモリ22から後続のXバイトの
情報をフェッチし、そのXバイトをデータプリフェッチ
バッファ(DPB)46内に記憶する。さらに、メモリ
コントローラ20は無効ビット47をクリアすることに
よってデータプリフェッチバッファ(DPB)を有効と
マークする。また、ブロック210では、メモリコント
ローラ20が、L2キャッシュミスから生じる将来のメ
インメモリアクセスを避けるため、参照の局在性原理に
基づいてデータをプリフェッチする。
【0032】ブロック200へ戻って、要求されたデー
タがデータプリフェッチバッファ(DPB)46内に存
在しないという決定がなされると、要求されたデータは
メインメモリ22からフェッチされなければならず、プ
ロセスはブロック212へ進む。ブロック212では、
データ読み取り要求がXバイトの情報を要求しているか
どうか、また指定されたアドレスを含むメインメモリ2
2内の2Xバイトの情報がキャッシュ可能かどうかにつ
いて決定がなされる。決定結果が肯定であれば、プロセ
スはブロック212から214へ進む。ブロック214
では、指定されたアドレスを含む2Xバイトの情報がメ
インメモリ22からフェッチされる。次に、ブロック2
16−218で、メモリコントローラ20は、最初のX
バイトの情報を中央処理装置(CPU)12へ転送し、
二番目のXバイトの情報をデータプリフェッチバッファ
(DPB)46内に記憶し、無効ビット47をクリアす
ることによってそれらXバイトを有効とマークする。そ
の後で、プロセスはブロック232で終了する。ブロッ
ク212へ戻って、要求されたデータがL1キャッシュ
ラインの全体から構成されていないか、2つのキャッシ
ュライン分のデータがキャッシュ可能ではないという決
定がなされると、プロセスはブロック220へ進む。ブ
ロック220では、メインメモリ内の指定されたアドレ
スに続くXバイトの情報がキャッシュ可能かどうかにつ
いて決定が行われる。キャッシュ可能であれば、プロセ
スはブロック220からブロック222へ進む。ブロッ
ク222では、指定されたアドレスに続くXバイトのデ
ータがメインメモリ22からフェッチされ、要求された
データが中央処理装置(CPU)12へ送られる。次
に、ブロック224で、要求されたデータがL1キャッ
シュラインの全体から構成されるかどうかについて決定
がなされる。もしL1キャッシュラインの全体から構成
されていれば、プロセスはブロック232へ進んで終了
する。しかし、要求されたデータがL1キャッシュライ
ンの全体から構成されていなければ、プロセスはブロッ
ク226へ進む。ブロック226では、メモリコントロ
ーラ20がメインメモリ22からフェッチされたXバイ
トのデータをデータプリフェッチバッファ(DPB)4
6内に記憶し、無効ビット47をクリアする。次に、プ
ロセスはブロック232へ進んで終了する。
【0033】ブロック220へ戻って、メインメモリ2
2内の指定されたアドレスを含むXバイトの情報がキャ
ッシュ可能でないと決定されると、プロセスはブロック
228−230へ進む。これらのブロックでは、メモリ
コントローラ20が、要求されたデータをメインメモリ
22からフェッチし、要求されたデータを中央処理装置
(CPU)12へ転送する。その後で、プロセスはブロ
ック232で終了する。
【0034】これまでの説明から明らかであるように、
ルックアサイドキャッシュ構成のデータ処理システム内
でデータの記憶を管理する改善された方法およびシステ
ムが提供される。特に、本発明は、スタック動作を効率
的に処理するためメモリコントローラ内に書き込み割り
振り/読み取り無効(WA/RI)キャッシュを設ける
ことによってデータのアクセスタイムを最適化する。さ
らに、本発明に従えば、メモリコントローラは、L2ル
ックアサイドキャッシュのミスによって引き起こされる
遅延を最小にするプリフェッチバッファを備えている。
【0035】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)ルックアサイドキャッシュ構成のデータ処理シス
テム内でデータ記憶を管理するメモリコントローラにし
て、上記データ処理システムは上位レベルキャッシュを
結合されているプロセッサと、上記メモリコントローラ
へ接続するためのコントローラメモリと、上記プロセッ
サと上記メモリコントローラとの間を接続するプロセッ
サバスと、上記プロセッサと並列に上記プロセッサバス
へ接続された下位レベルキャッシュと、メインメモリと
を含み、上記高レベルキャッシュと上記下位レベルキャ
ッシュの各々は1つまたは複数のキャッシュラインを含
み、さらに上記メモリコントローラは、上記メインメモ
リ内の指定されたアドレスに対する書き込み要求とデー
タの受け取りに応答して、上記書き込み要求が上記下位
レベルキャッシュによってサービスされるかどうか、ま
た上記データが上記上位レベルキャッシュまたは上記下
位レベルキャッシュから置換された変更済みのキャッシ
ュラインであるかどうかを決定する手段と、上記書き込
み要求が上記下位レベルキャッシュによってサービスさ
れず上記データが上記上位レベルキャッシュまたは上記
下位レベルキャッシュから置換された変更済みキャッシ
ュラインであるという決定に応答して、上記データを上
記メインメモリ内の上記指定されたアドレスに記憶する
手段と、上記書き込み要求が上記下位レベルキャッシュ
によってサービスされず上記データが上記上位レベルキ
ャッシュまたは上記下位レベルキャッシュから置換され
た変更済みキャッシュラインではないという決定に応答
して、上記データを上記メモリコントローラに結合され
たコントローラメモリ内に記憶する手段とを備え、よっ
て上記データ処理システム内のデータ記憶を最適化する
ようにしたメモリコントローラ。 (2)上記(1)に記載されたメモリコントローラにお
いて、上記データが上記プロセッサによってアクセスさ
れたことに応答して上記コントローラメモリ内の上記デ
ータを無効にする手段を具備するメモリコントローラ。 (3)上記(1)に記載されたメモリコントローラにお
いて、上記コントローラメモリが上記メモリコントロー
ラ内にオンボードのキャッシュメモリを含むことを特徴
とするメモリコントローラ。 (4)プロセッサと、上記プロセッサに接続されたプロ
セッサバスと、上記プロセッサに接続された上位レベル
キャッシュと、上記プロセッサと並列に上記プロセッサ
バスに接続された下位レベルキャッシュと、メインメモ
リと、上記メインメモリと上記プロセッサバスに接続さ
れコントローラメモリと制御ロジックを備えたメモリコ
ントローラであって、上記制御ロジックが、上記メイン
メモリ内の指定されたアドレスに対する書き込み要求と
データを受け取り、上記書き込み要求が上記下位レベル
キャッシュによってサービスされず上記データが上記上
位レベルキャッシュまたは下位レベルキャッシュから置
換された変更済みキャッシュラインでないことに応答し
て、上記データを上記コントローラメモリ内に記憶する
メモリコントローラと、上記メモリコントローラに接続
されたシステムバスと、上記システムバスへ接続された
1つまたは複数のアダプタと、を具備するデータ処理シ
ステムであって、該アダプタが上記データ処理システム
への入力を受け取り、また上記データ処理システムの出
力をユーザに与えるように構成したデータ処理システ
ム。 (5)上記(4)に記載されたデータ処理システムにお
いて、上記メモリコントローラの上記制御ロジックが、
上記コントローラメモリ内に記憶されたデータを上記プ
ロセッサがアクセスしたことに応答して該データを無効
にする手段を含むことを特徴とするデータ処理システ
ム。 (6)上記(4)に記載されたデータ処理システムにお
いて、上記コントローラメモリが上記メモリコントロー
ラ内のオンボードキャッシュメモリであることを特徴と
するデータ処理システム。 (7)分散型キャッシュメモリを備えたプロセッサとメ
インメモリとを含むデータ処理システム内で使用される
メモリコントローラであって、プリフェッチバッファ
と、上記プロセッサが情報を要求したことに応答して、
上記要求された情報が上記分散型キャッシュメモリ内に
記憶されているかどうかを決定する手段と、上記要求さ
れた情報が上記分散型キャッシュメモリ内に記憶されて
いないという決定に応答して、上記要求された情報が上
記メモリコントローラ内の上記プリフェッチバッファに
記憶されているかどうかを決定する手段と、上記要求さ
れた情報が上記プリフェッチバッファに記憶されている
という決定に応答して、上記要求された情報を上記プロ
セッサへ転送する手段と、上記要求された情報が上記プ
リフェッチバッファに記憶されていないという決定に応
答して、上記プロセッサのために上記メインメモリから
上記要求された情報をフェッチし、上記メインメモリ内
で上記要求されたデータに隣接している追加情報を上記
プリフェッチバッファに記憶する手段とを備え、プリフ
ェッチされた情報への上記プロセッサのアクセスタイム
を最小にするように構成したメリコントローラ。 (8)上記(7)に記載されたメモリコントローラにお
いて、上記要求された情報が少なくとも1つの命令を含
むことを特徴とするメモリコントローラ。 (9)上記(8)に記載されたメモリコントローラにお
いて、該メモリコントローラがメモリコントローラキャ
ッシュを含み、上記要求された情報が上記分散型キャッ
シュメモリ内に記憶されているかどうかを決定する上記
手段が、上記メモリコントローラキャッシュの中に少な
くとも1つの命令が含まれているかどうかを決定する手
段を含んでいることを特徴とするメモリコントローラ。 (10)上記(9)に記載されたメモリコントローラに
おいて、上記要求された情報が上記メモリコントローラ
キャッシュ内に記憶されているという決定に応答するこ
とと、上記少なくとも1つの命令を上記プロセッサへ転
送する手段と、上記少なくとも1つの命令を含んでいる
上記メモリコントローラキャッシュのラインを上記メイ
ンメモリ内に記憶する手段と、上記メモリコントローラ
キャッシュの上記ラインを無効にする手段と、を具備す
るメモリコントローラ。 (11)上記(8)のメモリコントローラにおいて、該
メモリコントローラが命令プリフェッチバッファとデー
タプリフェッチバッファを備え、上記分散型キャッシュ
メモリが少なくとも上位レベルキャッシュを含み、該上
位レベルキャッシュがXバイトのキャッシュライン長を
もつ1つまたは複数のキャッシュラインを含み、さらに
上記メモリコントローラは、上記要求された情報が上記
命令プリフェッチバッファ内に記憶されているという決
定に応答する手段であって、上記要求された情報がXバ
イトで構成されるとき上記要求された情報が上記プロセ
ッサへ転送されたことに続いて上記命令プリフェッチバ
ッファ内に記憶された情報を無効にする手段と、上記命
令プリフェッチバッファ内の上記情報が無効にされたこ
とに応答して、上記メインメモリ内で上記Xバイトの要
求された情報に隣接しているXバイトの情報がキャッシ
ュ可能かどうかを決定する手段と、上記メインメモリ内
で上記Xバイトの要求された情報に隣接しているXバイ
トの情報がキャッシュ可能であるという決定に応答し
て、上記メインメモリから上記Xバイトの要求された情
報に隣接している上記Xバイトの情報をフェッチし、フ
ェッチされた上記Xバイトの情報を上記命令プリフェッ
チバッファの中に記憶する手段と、を具備するメモリコ
ントローラ。 (12)上記(8)に記載されたメモリコントローラに
おいて、上記分散型キャッシュメモリは少なくとも上位
レベルキャッシュを含み、該上位レベルキャッシュはX
バイトのキャッシュライン長をもつ1つまたは複数のキ
ャッシュラインを含み、上記プロセッサのために上記要
求された情報を上記メインメモリからフェッチして上記
メインメモリ内で上記要求されたデータに隣接している
追加情報を上記プリフェッチバッファの中に記憶する手
段は、上記要求された情報がXバイトで構成されるかど
うか、また後続のXバイトの情報がキャッシュ可能かど
うかを決定する手段と、上記要求された情報がXバイト
で構成され、また後続のXバイトの情報がキャッシュ可
能であるという決定に応答することと、上記Xバイトの
要求された情報と上記後続のXバイトの情報を上記メイ
ンメモリからフェッチする手段と、上記Xバイトの要求
された情報を上記プロセッサへ転送する手段と、上記後
続のXバイトの情報を上記プリフェッチバッファの中に
記憶する手段と、上記要求された情報がXバイトで構成
されていないという決定、または上記後続のXバイトの
情報がキャッシュ可能ではないという決定に応答して、
上記メインメモリ内で上記要求された情報を含んでいる
Xバイトの情報がキャッシュ可能かどうかを決定する手
段と、上記メインメモリ内で上記要求された情報を含ん
でいる上記Xバイトの情報がキャッシュ可能であるとの
決定に応答することと、上記要求された情報がXバイト
よりも少ないバイトで構成される場合、上記要求された
情報を含む上記Xバイトの情報を上記メインメモリから
フェッチして、フェッチされた上記Xバイトの情報を上
記プリフェッチバッファの中に記憶する手段と、上記要
求された情報を上記プロセッサへ転送する手段と、を具
備するメモリコントローラ。 (13)上記(7)に記載されたメモリコントローラに
おいて、上記要求された情報がデータで構成されるメモ
リコントローラ。 (14)上記(13)に記載されたメモリコントローラ
において、該メモリコントローラがメモリコントローラ
キャッシュを含み、上記要求された情報が上記分散型キ
ャッシュメモリ内に記憶されているかどうかを決定する
手段が、上記少なくとも1つの命令が上記メモリコント
ローラキャッシュ内に記憶されているかどうかを決定す
る手段を含んでいるメモリコントローラ。 (15)上記(14)に記載されたメモリコントローラ
において、上記分散型キャッシュメモリが少なくとも上
位レベルキャッシュを含み、該上位レベルキャッシュが
Xバイトのキャッシュライン長をもつ1つまたは複数の
キャッシュラインを含み、さらに上記メモリコントロー
ラが、上記要求されたデータが上記メモリコントローラ
キャッシュ内に記憶されているという決定に応答するこ
とと、上記要求されたデータを上記プロセッサへ転送す
る手段と、上記要求されたデータがXバイトのデータで
構成されるかどうかを決定する手段と、上記要求された
データがXバイトのデータで構成されるという決定に応
答して、上記要求されたデータを含む上記メモリコント
ローラキャッシュのラインを上記メインメモリの中に記
憶し、上記メモリコントローラキャッシュの上記ライン
を無効にする手段と、を具備するメモリコントローラ。 (16)上記(13)に記載されたメモリコントローラ
において、上記分散型キャッシュメモリが少なくとも上
位レベルキャッシュを含み、該上位レベルキャッシュが
Xバイトのキャッシュライン長をもつ1つまたは複数の
キャッシュラインを含み、上記メモリコントローラが命
令プリフェッチバッファとデータプリフェッチバッファ
とを備え、さらに上記メモリコントローラが、上記要求
された情報が上記データプリフェッチバッファ内に記憶
されているという決定に応答して、上記要求された情報
がXバイトで構成されるとき上記要求された情報が上記
プロセッサへ転送されたことに続いて上記データプリフ
ェッチバッファ内に記憶された情報を無効にする手段
と、上記データプリフェッチバッファ内の上記情報が無
効にされたことに応答して、上記メインメモリ内で上記
Xバイトの要求された情報に隣接しているXバイトの情
報がキャッシュ可能かどうかを決定する手段と、上記メ
インメモリ内で上記Xバイトの要求された情報に隣接し
ているXバイトの情報がキャッシュ可能であるという決
定に応答して、上記Xバイトの要求された情報に隣接し
ている上記Xバイトの情報を上記メインメモリからフェ
ッチし、フェッチされた上記Xバイトの情報を上記デー
タプリフェッチバッファの中に記憶する手段と、を具備
するメモリコントローラ。 (17)上記(13)に記載されたメモリコントローラ
において、上記分散型キャッシュメモリが少なくとも上
位レベルキャッシュを含み、該上位レベルキャッシュは
Xバイトのキャッシュライン長をもつ1つまたは複数の
キャッシュラインを含み、上記プロセッサのために上記
メインメモリから上記要求された情報をフェッチし上記
メインメモリ内で上記要求されたデータに隣接している
追加情報を上記プリフェッチバッファの中に記憶する上
記手段が、上記要求された情報がXバイトで構成される
かどうか、また後続のXバイトの情報がキャッシュ可能
かどうかを決定する手段と、上記要求された情報がXバ
イトで構成され後続のXバイトの情報がキャッシュ可能
であるという決定に応答することと、上記Xバイトの要
求された情報と上記後続のXバイトの情報を上記メイン
メモリからフェッチする手段と、上記Xバイトの要求さ
れた情報を上記プロセッサへ転送する手段と、上記後続
のXバイトの情報を上記プリフェッチバッファの中に記
憶する手段と、上記要求された情報がXバイトで構成さ
れないとの決定、または上記後続のXバイトの情報がキ
ャッシュ可能でないとの決定に応答して、上記要求され
た情報を含む上記メインメモリ内のXバイトの情報がキ
ャッシュ可能であるかどうかを決定する手段と、上記メ
インメモリ内で上記要求された情報を含む上記Xバイト
がキャッシュ可能であるという決定に応答することと、
上記要求された情報がXバイトよりも少ないバイトで構
成される場合、上記要求された情報を含む上記Xバイト
を上記メインメモリからフェッチし、フェッチされた上
記Xバイトの情報を上記プリフェッチバッファの中に記
憶する手段と、上記要求された情報を上記プロセッサへ
転送する手段と、を具備するメモリコントローラ。 (18)プロセッサバスと、上記プロセッサバスに接続
されたプロセッサと、上記プロセッサへ接続された分散
型キャッシュメモリと、メインメモリと、上記プロセッ
サバスと上記メインメモリへ接続されたメモリコントロ
ーラとを具備し、上記メモリコントローラは、プリフェ
ッチバッファと、上記プロセッサによる情報の要求に応
答して、上記要求された情報が上記分散型キャッシュメ
モリ内に記憶されているかどうかを決定する手段と、上
記要求された情報が上記分散型キャッシュメモリ内に記
憶されていないという決定に応答して、上記要求された
情報が上記メモリコントローラ内の上記プリフェッチバ
ッファの中に記憶されているかどうかを決定する手段
と、上記要求された情報が上記プリフェッチバッファ内
に記憶されているという決定に応答して、上記要求され
た情報を上記プロセッサへ転送する手段と、上記要求さ
れた情報が上記プリフェッチバッファの中に記憶されて
いないという決定に応答して、上記要求された情報を上
記メインメモリから上記プロセッサのためにフェッチ
し、上記メインメモリ内で上記要求された情報に隣接し
ている追加情報を上記プリフェッチバッファの中に記憶
する手段と、上記メモリコントローラへ接続されたシス
テムバスと、上記システムバスへ接続された1つまたは
複数のアダプタと、を具備するデータ処理システムであ
って、上記アダプタが、上記データ処理システムへの入
力を受け取り、上記データ処理システムの出力をユーザ
へ与えるように構成されたデータ処理システム。 (19)上記(18)に記載されたデータ処理システム
において、上記分散型キャッシュメモリが、上記プロセ
ッサへ接続された上位レベルキャッシュを含み、また上
記プロセッサおよび上記メモリコントローラと並列に上
記プロセッサバスへ接続された下位レベルキャッシュを
含むことを特徴とするデータ処理システム。 (20)上記(19)に記載されたデータ処理システム
において、上記分散型キャッシュメモリが上記メモリコ
ントローラ内にメモリコントローラキャッシュを含むこ
とを特徴とするデータ処理システム。
【図面の簡単な説明】
【図1】本発明の方法およびシステムに従ったデータ処
理システムの高レベルのブロック図である。
【図2】本発明の方法およびシステムに従ったメモリコ
ントローラの詳細なブロック図である。
【図3】本発明の高レベルの論理フローチャートであ
る。
【図4】本発明に従って命令フェッチ要求をサービスす
るためにメモリコントローラが使用する方法の高レベル
論理フローチャートである。
【図5】本発明に従ってデータ書き込み要求をサービス
するためにメモリコントローラが使用する方法の高レベ
ル論理フローチャートである。
【図6】本発明に従ってデータ読み取り要求をサービス
するためにメモリコントローラが使用する方法の高レベ
ル論理フローチャートである。
【符号の説明】
10 データ処理システム 12 中央処理装置(CPU) 14 レベル1(L1)キャッシュ 16 レベル2(L2)キャッシュ 17 L2キャッシュコントローラ 18 プロセッサバス 20 メモリコントローラ 22 メインメモリ 24 システムバス 26 読み取り専用メモリ(ROM) 28 I/Oアダプタ 30 2次記憶装置 32 ディスプレイアダプタ 40 読み取り/書き込みバッファ 42 書き込みバッファ 44 命令プリフェッチバッファ(IPB) 45 無効ビット 46 データプリフェッチバッファ(DPB) 47 無効ビット 48 書き込み割り振り/読み取り無効(WA
/RI)キャッシュ 50 キャッシュコントロール兼タグ 52 制御回路
フロントページの続き (72)発明者 エドワード・ロバート・ヴェンダースライ ス アメリカ合衆国33486、フロリダ州 ボカ ラトンサウスウェスト サーティーンス ストリート 1339

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 ルックアサイドキャッシュ構成のデータ
    処理システム内でデータ記憶を管理するメモリコントロ
    ーラにして、上記データ処理システムは上位レベルキャ
    ッシュを結合されているプロセッサと、上記メモリコン
    トローラへ接続するためのコントローラメモリと、上記
    プロセッサと上記メモリコントローラとの間を接続する
    プロセッサバスと、上記プロセッサと並列に上記プロセ
    ッサバスへ接続された下位レベルキャッシュと、メイン
    メモリとを含み、上記高レベルキャッシュと上記下位レ
    ベルキャッシュの各々は1つまたは複数のキャッシュラ
    インを含み、さらに上記メモリコントローラは、上記メ
    インメモリ内の指定されたアドレスに対する書き込み要
    求とデータの受け取りに応答して、上記書き込み要求が
    上記下位レベルキャッシュによってサービスされるかど
    うか、また上記データが上記上位レベルキャッシュまた
    は上記下位レベルキャッシュから置換された変更済みの
    キャッシュラインであるかどうかを決定する手段と、上
    記書き込み要求が上記下位レベルキャッシュによってサ
    ービスされず上記データが上記上位レベルキャッシュま
    たは上記下位レベルキャッシュから置換された変更済み
    キャッシュラインであるという決定に応答して、上記デ
    ータを上記メインメモリ内の上記指定されたアドレスに
    記憶する手段と、上記書き込み要求が上記下位レベルキ
    ャッシュによってサービスされず上記データが上記上位
    レベルキャッシュまたは上記下位レベルキャッシュから
    置換された変更済みキャッシュラインではないという決
    定に応答して、上記データを上記メモリコントローラに
    結合されたコントローラメモリ内に記憶する手段とを備
    え、よって上記データ処理システム内のデータ記憶を最
    適化するようにしたメモリコントローラ。
  2. 【請求項2】請求項1に記載されたメモリコントローラ
    において、上記データが上記プロセッサによってアクセ
    スされたことに応答して上記コントローラメモリ内の上
    記データを無効にする手段を具備するメモリコントロー
    ラ。
  3. 【請求項3】請求項1に記載されたメモリコントローラ
    において、上記コントローラメモリが上記メモリコント
    ローラ内にオンボードのキャッシュメモリを含むことを
    特徴とするメモリコントローラ。
  4. 【請求項4】プロセッサと、上記プロセッサに接続され
    たプロセッサバスと、上記プロセッサに接続された上位
    レベルキャッシュと、上記プロセッサと並列に上記プロ
    セッサバスに接続された下位レベルキャッシュと、メイ
    ンメモリと、上記メインメモリと上記プロセッサバスに
    接続されコントローラメモリと制御ロジックを備えたメ
    モリコントローラであって、上記制御ロジックが、上記
    メインメモリ内の指定されたアドレスに対する書き込み
    要求とデータを受け取り、上記書き込み要求が上記下位
    レベルキャッシュによってサービスされず上記データが
    上記上位レベルキャッシュまたは下位レベルキャッシュ
    から置換された変更済みキャッシュラインでないことに
    応答して、上記データを上記コントローラメモリ内に記
    憶するメモリコントローラと、上記メモリコントローラ
    に接続されたシステムバスと、上記システムバスへ接続
    された1つまたは複数のアダプタと、を具備するデータ
    処理システムであって、該アダプタが上記データ処理シ
    ステムへの入力を受け取り、また上記データ処理システ
    ムの出力をユーザに与えるように構成したデータ処理シ
    ステム。
  5. 【請求項5】請求項4に記載されたデータ処理システム
    において、上記メモリコントローラの上記制御ロジック
    が、上記コントローラメモリ内に記憶されたデータを上
    記プロセッサがアクセスしたことに応答して該データを
    無効にする手段を含むことを特徴とするデータ処理シス
    テム。
  6. 【請求項6】請求項4に記載されたデータ処理システム
    において、上記コントローラメモリが上記メモリコント
    ローラ内のオンボードキャッシュメモリであることを特
    徴とするデータ処理システム。
  7. 【請求項7】分散型キャッシュメモリを備えたプロセッ
    サとメインメモリとを含むデータ処理システム内で使用
    されるメモリコントローラであって、プリフェッチバッ
    ファと、上記プロセッサが情報を要求したことに応答し
    て、上記要求された情報が上記分散型キャッシュメモリ
    内に記憶されているかどうかを決定する手段と、上記要
    求された情報が上記分散型キャッシュメモリ内に記憶さ
    れていないという決定に応答して、上記要求された情報
    が上記メモリコントローラ内の上記プリフェッチバッフ
    ァに記憶されているかどうかを決定する手段と、上記要
    求された情報が上記プリフェッチバッファに記憶されて
    いるという決定に応答して、上記要求された情報を上記
    プロセッサへ転送する手段と、上記要求された情報が上
    記プリフェッチバッファに記憶されていないという決定
    に応答して、上記プロセッサのために上記メインメモリ
    から上記要求された情報をフェッチし、上記メインメモ
    リ内で上記要求されたデータに隣接している追加情報を
    上記プリフェッチバッファに記憶する手段とを備え、プ
    リフェッチされた情報への上記プロセッサのアクセスタ
    イムを最小にするように構成したメリコントローラ。
  8. 【請求項8】請求項7に記載されたメモリコントローラ
    において、上記要求された情報が少なくとも1つの命令
    を含むことを特徴とするメモリコントローラ。
  9. 【請求項9】請求項8に記載されたメモリコントローラ
    において、該メモリコントローラがメモリコントローラ
    キャッシュを含み、上記要求された情報が上記分散型キ
    ャッシュメモリ内に記憶されているかどうかを決定する
    上記手段が、上記メモリコントローラキャッシュの中に
    少なくとも1つの命令が含まれているかどうかを決定す
    る手段を含んでいることを特徴とするメモリコントロー
    ラ。
  10. 【請求項10】請求項9に記載されたメモリコントロー
    ラにおいて、上記要求された情報が上記メモリコントロ
    ーラキャッシュ内に記憶されているという決定に応答す
    ることと、上記少なくとも1つの命令を上記プロセッサ
    へ転送する手段と、上記少なくとも1つの命令を含んで
    いる上記メモリコントローラキャッシュのラインを上記
    メインメモリ内に記憶する手段と、上記メモリコントロ
    ーラキャッシュの上記ラインを無効にする手段と、を具
    備するメモリコントローラ。
  11. 【請求項11】請求項8のメモリコントローラにおい
    て、該メモリコントローラが命令プリフェッチバッファ
    とデータプリフェッチバッファを備え、上記分散型キャ
    ッシュメモリが少なくとも上位レベルキャッシュを含
    み、該上位レベルキャッシュがXバイトのキャッシュラ
    イン長をもつ1つまたは複数のキャッシュラインを含
    み、さらに上記メモリコントローラは、上記要求された
    情報が上記命令プリフェッチバッファ内に記憶されてい
    るという決定に応答する手段であって、上記要求された
    情報がXバイトで構成されるとき上記要求された情報が
    上記プロセッサへ転送されたことに続いて上記命令プリ
    フェッチバッファ内に記憶された情報を無効にする手段
    と、上記命令プリフェッチバッファ内の上記情報が無効
    にされたことに応答して、上記メインメモリ内で上記X
    バイトの要求された情報に隣接しているXバイトの情報
    がキャッシュ可能かどうかを決定する手段と、上記メイ
    ンメモリ内で上記Xバイトの要求された情報に隣接して
    いるXバイトの情報がキャッシュ可能であるという決定
    に応答して、上記メインメモリから上記Xバイトの要求
    された情報に隣接している上記Xバイトの情報をフェッ
    チし、フェッチされた上記Xバイトの情報を上記命令プ
    リフェッチバッファの中に記憶する手段と、を具備する
    メモリコントローラ。
  12. 【請求項12】請求項8に記載されたメモリコントロー
    ラにおいて、上記分散型キャッシュメモリは少なくとも
    上位レベルキャッシュを含み、該上位レベルキャッシュ
    はXバイトのキャッシュライン長をもつ1つまたは複数
    のキャッシュラインを含み、上記プロセッサのために上
    記要求された情報を上記メインメモリからフェッチして
    上記メインメモリ内で上記要求されたデータに隣接して
    いる追加情報を上記プリフェッチバッファの中に記憶す
    る手段は、上記要求された情報がXバイトで構成される
    かどうか、また後続のXバイトの情報がキャッシュ可能
    かどうかを決定する手段と、上記要求された情報がXバ
    イトで構成され、また後続のXバイトの情報がキャッシ
    ュ可能であるという決定に応答することと、上記Xバイ
    トの要求された情報と上記後続のXバイトの情報を上記
    メインメモリからフェッチする手段と、上記Xバイトの
    要求された情報を上記プロセッサへ転送する手段と、上
    記後続のXバイトの情報を上記プリフェッチバッファの
    中に記憶する手段と、上記要求された情報がXバイトで
    構成されていないという決定、または上記後続のXバイ
    トの情報がキャッシュ可能ではないという決定に応答し
    て、上記メインメモリ内で上記要求された情報を含んで
    いるXバイトの情報がキャッシュ可能かどうかを決定す
    る手段と、上記メインメモリ内で上記要求された情報を
    含んでいる上記Xバイトの情報がキャッシュ可能である
    との決定に応答することと、上記要求された情報がXバ
    イトよりも少ないバイトで構成される場合、上記要求さ
    れた情報を含む上記Xバイトの情報を上記メインメモリ
    からフェッチして、フェッチされた上記Xバイトの情報
    を上記プリフェッチバッファの中に記憶する手段と、上
    記要求された情報を上記プロセッサへ転送する手段と、
    を具備するメモリコントローラ。
  13. 【請求項13】請求項7に記載されたメモリコントロー
    ラにおいて、上記要求された情報がデータで構成される
    メモリコントローラ。
  14. 【請求項14】請求項13に記載されたメモリコントロ
    ーラにおいて、該メモリコントローラがメモリコントロ
    ーラキャッシュを含み、上記要求された情報が上記分散
    型キャッシュメモリ内に記憶されているかどうかを決定
    する手段が、上記少なくとも1つの命令が上記メモリコ
    ントローラキャッシュ内に記憶されているかどうかを決
    定する手段を含んでいるメモリコントローラ。
  15. 【請求項15】請求項14に記載されたメモリコントロ
    ーラにおいて、上記分散型キャッシュメモリが少なくと
    も上位レベルキャッシュを含み、該上位レベルキャッシ
    ュがXバイトのキャッシュライン長をもつ1つまたは複
    数のキャッシュラインを含み、さらに上記メモリコント
    ローラが、上記要求されたデータが上記メモリコントロ
    ーラキャッシュ内に記憶されているという決定に応答す
    ることと、上記要求されたデータを上記プロセッサへ転
    送する手段と、上記要求されたデータがXバイトのデー
    タで構成されるかどうかを決定する手段と、上記要求さ
    れたデータがXバイトのデータで構成されるという決定
    に応答して、上記要求されたデータを含む上記メモリコ
    ントローラキャッシュのラインを上記メインメモリの中
    に記憶し、上記メモリコントローラキャッシュの上記ラ
    インを無効にする手段と、を具備するメモリコントロー
    ラ。
  16. 【請求項16】請求項13に記載されたメモリコントロ
    ーラにおいて、上記分散型キャッシュメモリが少なくと
    も上位レベルキャッシュを含み、該上位レベルキャッシ
    ュがXバイトのキャッシュライン長をもつ1つまたは複
    数のキャッシュラインを含み、上記メモリコントローラ
    が命令プリフェッチバッファとデータプリフェッチバッ
    ファとを備え、さらに上記メモリコントローラが、上記
    要求された情報が上記データプリフェッチバッファ内に
    記憶されているという決定に応答して、上記要求された
    情報がXバイトで構成されるとき上記要求された情報が
    上記プロセッサへ転送されたことに続いて上記データプ
    リフェッチバッファ内に記憶された情報を無効にする手
    段と、上記データプリフェッチバッファ内の上記情報が
    無効にされたことに応答して、上記メインメモリ内で上
    記Xバイトの要求された情報に隣接しているXバイトの
    情報がキャッシュ可能かどうかを決定する手段と、上記
    メインメモリ内で上記Xバイトの要求された情報に隣接
    しているXバイトの情報がキャッシュ可能であるという
    決定に応答して、上記Xバイトの要求された情報に隣接
    している上記Xバイトの情報を上記メインメモリからフ
    ェッチし、フェッチされた上記Xバイトの情報を上記デ
    ータプリフェッチバッファの中に記憶する手段と、を具
    備するメモリコントローラ。
  17. 【請求項17】請求項13に記載されたメモリコントロ
    ーラにおいて、上記分散型キャッシュメモリが少なくと
    も上位レベルキャッシュを含み、該上位レベルキャッシ
    ュはXバイトのキャッシュライン長をもつ1つまたは複
    数のキャッシュラインを含み、上記プロセッサのために
    上記メインメモリから上記要求された情報をフェッチし
    上記メインメモリ内で上記要求されたデータに隣接して
    いる追加情報を上記プリフェッチバッファの中に記憶す
    る上記手段が、上記要求された情報がXバイトで構成さ
    れるかどうか、また後続のXバイトの情報がキャッシュ
    可能かどうかを決定する手段と、上記要求された情報が
    Xバイトで構成され後続のXバイトの情報がキャッシュ
    可能であるという決定に応答することと、上記Xバイト
    の要求された情報と上記後続のXバイトの情報を上記メ
    インメモリからフェッチする手段と、上記Xバイトの要
    求された情報を上記プロセッサへ転送する手段と、上記
    後続のXバイトの情報を上記プリフェッチバッファの中
    に記憶する手段と、上記要求された情報がXバイトで構
    成されないとの決定、または上記後続のXバイトの情報
    がキャッシュ可能でないとの決定に応答して、上記要求
    された情報を含む上記メインメモリ内のXバイトの情報
    がキャッシュ可能であるかどうかを決定する手段と、上
    記メインメモリ内で上記要求された情報を含む上記Xバ
    イトがキャッシュ可能であるという決定に応答すること
    と、上記要求された情報がXバイトよりも少ないバイト
    で構成される場合、上記要求された情報を含む上記Xバ
    イトを上記メインメモリからフェッチし、フェッチされ
    た上記Xバイトの情報を上記プリフェッチバッファの中
    に記憶する手段と、上記要求された情報を上記プロセッ
    サへ転送する手段と、を具備するメモリコントローラ。
  18. 【請求項18】プロセッサバスと、上記プロセッサバス
    に接続されたプロセッサと、上記プロセッサへ接続され
    た分散型キャッシュメモリと、メインメモリと、上記プ
    ロセッサバスと上記メインメモリへ接続されたメモリコ
    ントローラとを具備し、上記メモリコントローラは、プ
    リフェッチバッファと、上記プロセッサによる情報の要
    求に応答して、上記要求された情報が上記分散型キャッ
    シュメモリ内に記憶されているかどうかを決定する手段
    と、上記要求された情報が上記分散型キャッシュメモリ
    内に記憶されていないという決定に応答して、上記要求
    された情報が上記メモリコントローラ内の上記プリフェ
    ッチバッファの中に記憶されているかどうかを決定する
    手段と、上記要求された情報が上記プリフェッチバッフ
    ァ内に記憶されているという決定に応答して、上記要求
    された情報を上記プロセッサへ転送する手段と、上記要
    求された情報が上記プリフェッチバッファの中に記憶さ
    れていないという決定に応答して、上記要求された情報
    を上記メインメモリから上記プロセッサのためにフェッ
    チし、上記メインメモリ内で上記要求された情報に隣接
    している追加情報を上記プリフェッチバッファの中に記
    憶する手段と、上記メモリコントローラへ接続されたシ
    ステムバスと、上記システムバスへ接続された1つまた
    は複数のアダプタと、を具備するデータ処理システムで
    あって、上記アダプタが、上記データ処理システムへの
    入力を受け取り、上記データ処理システムの出力をユー
    ザへ与えるように構成されたデータ処理システム。
  19. 【請求項19】請求項18に記載されたデータ処理シス
    テムにおいて、上記分散型キャッシュメモリが、上記プ
    ロセッサへ接続された上位レベルキャッシュを含み、ま
    た上記プロセッサおよび上記メモリコントローラと並列
    に上記プロセッサバスへ接続された下位レベルキャッシ
    ュを含むことを特徴とするデータ処理システム。
  20. 【請求項20】請求項19に記載されたデータ処理シス
    テムにおいて、上記分散型キャッシュメモリが上記メモ
    リコントローラ内にメモリコントローラキャッシュを含
    むことを特徴とするデータ処理システム。
JP9073174A 1996-04-04 1997-03-26 メモリコントローラ Pending JPH1055306A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/628230 1996-04-04
US08/628,230 US5778422A (en) 1996-04-04 1996-04-04 Data processing system memory controller that selectively caches data associated with write requests

Publications (1)

Publication Number Publication Date
JPH1055306A true JPH1055306A (ja) 1998-02-24

Family

ID=24518023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9073174A Pending JPH1055306A (ja) 1996-04-04 1997-03-26 メモリコントローラ

Country Status (6)

Country Link
US (1) US5778422A (ja)
EP (1) EP0800137B1 (ja)
JP (1) JPH1055306A (ja)
KR (1) KR100268204B1 (ja)
DE (1) DE69708188T2 (ja)
TW (1) TW408266B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100364800B1 (ko) * 2000-08-29 2002-12-16 주식회사 하이닉스반도체 반도체 메모리의 데이터 입출력 제어 장치

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6094708A (en) 1997-05-06 2000-07-25 Cisco Technology, Inc. Secondary cache write-through blocking mechanism
US6341335B1 (en) 1997-10-29 2002-01-22 Hitachi, Ltd. Information processing system for read ahead buffer memory equipped with register and memory controller
US6115385A (en) 1998-03-11 2000-09-05 Cisco Technology, Inc. Method and system for subnetting in a switched IP network
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US6785274B2 (en) 1998-10-07 2004-08-31 Cisco Technology, Inc. Efficient network multicast switching apparatus and methods
US20020056027A1 (en) * 1998-10-29 2002-05-09 Hiroki Kanai Information processing system
US7157314B2 (en) 1998-11-16 2007-01-02 Sandisk Corporation Vertically stacked field programmable nonvolatile memory and method of fabrication
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
JP2001060169A (ja) * 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム
US7099998B1 (en) * 2000-03-31 2006-08-29 Intel Corporation Method for reducing an importance level of a cache line
US8575719B2 (en) 2000-04-28 2013-11-05 Sandisk 3D Llc Silicon nitride antifuse for use in diode-antifuse memory arrays
EP2323164B1 (en) 2000-08-14 2015-11-25 SanDisk 3D LLC Multilevel memory array and method for making same
US6598119B2 (en) * 2001-02-09 2003-07-22 At&T Corp. Database management system with a multiple-level cache arrangement
US7352199B2 (en) 2001-02-20 2008-04-01 Sandisk Corporation Memory card with enhanced testability and methods of making and using the same
US6843421B2 (en) 2001-08-13 2005-01-18 Matrix Semiconductor, Inc. Molded memory module and method of making the module absent a substrate support
US6525953B1 (en) 2001-08-13 2003-02-25 Matrix Semiconductor, Inc. Vertically-stacked, field-programmable, nonvolatile memory and method of fabrication
US6593624B2 (en) 2001-09-25 2003-07-15 Matrix Semiconductor, Inc. Thin film transistors with vertically offset drain regions
US6624485B2 (en) 2001-11-05 2003-09-23 Matrix Semiconductor, Inc. Three-dimensional, mask-programmed read only memory
US6731011B2 (en) 2002-02-19 2004-05-04 Matrix Semiconductor, Inc. Memory module having interconnected and stacked integrated circuits
US6853049B2 (en) 2002-03-13 2005-02-08 Matrix Semiconductor, Inc. Silicide-silicon oxide-semiconductor antifuse device and method of making
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
US6737675B2 (en) 2002-06-27 2004-05-18 Matrix Semiconductor, Inc. High density 3D rail stack arrays
EP1387276A3 (en) * 2002-07-31 2004-03-31 Texas Instruments Incorporated Methods and apparatus for managing memory
JP2005115603A (ja) 2003-10-07 2005-04-28 Hitachi Ltd 記憶デバイス制御装置及びその制御方法
DE102004055013A1 (de) * 2004-11-15 2006-05-24 Infineon Technologies Ag Computereinrichtung
US7409502B2 (en) * 2006-05-11 2008-08-05 Freescale Semiconductor, Inc. Selective cache line allocation instruction execution and circuitry
JP4412676B2 (ja) * 2007-05-30 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メインメモリに書き込むデータをキャッシュする技術
US20120324195A1 (en) * 2011-06-14 2012-12-20 Alexander Rabinovitch Allocation of preset cache lines
US9431064B2 (en) 2012-11-02 2016-08-30 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration
US9384136B2 (en) 2013-04-12 2016-07-05 International Business Machines Corporation Modification of prefetch depth based on high latency event
US9478495B1 (en) 2015-10-26 2016-10-25 Sandisk Technologies Llc Three dimensional memory device containing aluminum source contact via structure and method of making thereof
KR102398201B1 (ko) * 2017-06-30 2022-05-17 삼성전자주식회사 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US5155828A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Computing system with a cache memory and an additional look-aside cache memory
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
CA2044487A1 (en) * 1990-06-15 1991-12-16 Michael E. Tullis Lookaside cache
EP0468831B1 (en) * 1990-06-29 1997-10-15 Digital Equipment Corporation Bus protocol for write-back cache processor
EP0470735B1 (en) * 1990-08-06 1999-03-10 NCR International, Inc. Computer memory system
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
WO1993018459A1 (en) * 1992-03-06 1993-09-16 Rambus Inc. Prefetching into a cache to minimize main memory access time and cache size in a computer system
US5367657A (en) * 1992-10-01 1994-11-22 Intel Corporation Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
GB2276964A (en) * 1993-03-31 1994-10-12 Hypertech Pty Ltd Buffering write cycles.
US5623628A (en) * 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5561779A (en) * 1994-05-04 1996-10-01 Compaq Computer Corporation Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5737565A (en) * 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100364800B1 (ko) * 2000-08-29 2002-12-16 주식회사 하이닉스반도체 반도체 메모리의 데이터 입출력 제어 장치

Also Published As

Publication number Publication date
DE69708188T2 (de) 2002-06-20
KR970071282A (ko) 1997-11-07
EP0800137A1 (en) 1997-10-08
US5778422A (en) 1998-07-07
TW408266B (en) 2000-10-11
EP0800137B1 (en) 2001-11-14
DE69708188D1 (de) 2001-12-20
KR100268204B1 (ko) 2000-10-16

Similar Documents

Publication Publication Date Title
JPH1055306A (ja) メモリコントローラ
US6721848B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US6499085B2 (en) Method and system for servicing cache line in response to partial cache line request
US7237068B2 (en) Computer system employing bundled prefetching and null-data packet transmission
US5996048A (en) Inclusion vector architecture for a level two cache
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US6643745B1 (en) Method and apparatus for prefetching data into cache
US6338119B1 (en) Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance
US5715428A (en) Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
US6223258B1 (en) Method and apparatus for implementing non-temporal loads
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US6574710B1 (en) Computer cache system with deferred invalidation
US5909697A (en) Reducing cache misses by snarfing writebacks in non-inclusive memory systems
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US6205520B1 (en) Method and apparatus for implementing non-temporal stores
US7330940B2 (en) Method and system for cache utilization by limiting prefetch requests
US7165146B2 (en) Multiprocessing computer system employing capacity prefetching
JPH0721085A (ja) メモリとi/o装置の間で転送されるデータをキャッシュするためのストリーミングキャッシュおよびその方法
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
JPH09160827A (ja) コールド・キャッシュ命令のプリフェッチ
JP4162493B2 (ja) 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
JPH11328024A (ja) 垂直キャッシュのための擬似精細i―キャッシュ包含性
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US20060179173A1 (en) Method and system for cache utilization by prefetching for multiple DMA reads
US6643741B1 (en) Method and apparatus for efficient cache management and avoiding unnecessary cache traffic