JPH0612327A - キャッシュメモリを有するデータプロセッサ - Google Patents

キャッシュメモリを有するデータプロセッサ

Info

Publication number
JPH0612327A
JPH0612327A JP5046012A JP4601293A JPH0612327A JP H0612327 A JPH0612327 A JP H0612327A JP 5046012 A JP5046012 A JP 5046012A JP 4601293 A JP4601293 A JP 4601293A JP H0612327 A JPH0612327 A JP H0612327A
Authority
JP
Japan
Prior art keywords
data
cache
instruction
load
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5046012A
Other languages
English (en)
Other versions
JP3285644B2 (ja
Inventor
William C Moyer
ウィリアム・シー・モイヤー
John H Arends
ジョン・エイチ・アレンズ
Christopher E White
クリストファー・イー・ホワイト
Keith E Diefendorff
キース・イー・ディーフェンドルフ
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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JPH0612327A publication Critical patent/JPH0612327A/ja
Application granted granted Critical
Publication of JP3285644B2 publication Critical patent/JP3285644B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

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

Abstract

(57)【要約】 【目的】 データプロセッサ(20)におけるキャッシ
ュメモリに対する大幅なユーザ制御を可能にする。特
に、データキャッシュ(54)においてタッチロード、
フラッシュおよびアロケイト操作を行なうキャッシュ制
御命令を実現する。 【構成】 キャッシュ制御命令は命令キャッシュユニッ
ト(26)およびシーケンサ(34)の双方によってデ
コードされロード/ストアユニット(28)に必要な制
御およびアドレス情報を提供する。ロード/ストアユニ
ットは各命令の実行を順序立て、適切な時点でデータキ
ャッシュユニット(24)に必要な制御およびアドレス
情報を提供する。キャッシュ制御論理(60)は次に該
アドレスおよび制御情報を処理して各キャッシュ制御命
令を実行するのに必要な外部信号を提供する。さらに、
キャッシュ制御論理はユーザがキャッシュ処理がいつ行
なわれるかを知ることができるようにする外部転送コー
ド信号を提供する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は一般的にはデータ処理
システムに関し、かつより特定的にはデータ処理システ
ムにおけるキャッシュメモリに関する。
【0002】
【従来の技術】キャッシュメモリシステムはデータ処理
システムがより迅速かつより効率的に情報にアクセスで
きるようにするために開発されている。しかしながら、
効率を増大しても、キャッシュメモリシステムの柔軟性
およびユーザによる制御は制限されている。そのような
制限は一般にユーザが操作の間に不注意にエラーを引き
起こすことを防止するために必要でありかつ技術社会に
おいてはよく知られている。
【0003】大部分のデータプロセッサにおいては、外
部バスの処理の間に、メモリ、キャッシュまたはその他
のものへのアクセスを制御するため、かつ該データプロ
セッサの動作を制御するために2つのレベルの特権(p
rivilege)が設けられている。スーパバイザモ
ードは最高レベルの特権を提供する。スーパバイザモー
ドにある時、データプロセッサはスーパバイザモードと
ユーザモードの動作の双方に対して指定されたメモリを
アクセスできる。さらに、スーパバイザモードはすべて
の命令の実行および該データプロセッサのすべてのレジ
スタ位置へのアクセスを可能にする。典型的には、オペ
レーティングシステムのソフトウェアは通常データプロ
セッサがスーパバイザモードにある時実行される。提供
されるオペレーティングシステムのサービスの内にはメ
モリおよびペリフェラルの双方の資源の割当て、例外処
理、およびソフトウェア実行制御が含まれる。ソフトウ
ェア実行制御は通常ユーザプログラムの制御およびユー
ザプログラムによる偶然のまたは悪意による汚染からシ
ステムを保護することを含む。
【0004】ユーザモードは第2のレベルの特権を提供
する。ユーザモードの動作にある時、ユーザモードにお
いて使用するために指定されたメモリおよびレジスタの
みがアクセスできる。さらに、ユーザのインストラクシ
ョンメモリに格納された命令のみが参照され得る。例え
ば、アメリカ合衆国テキサス州オースチンのMotor
ola,Inc.から入手可能なMC88100型RI
SCプロセッサにおいては、4つの命令はスーパバイザ
モードの動作においてのみアクセス可能である。これら
の命令の内の3つはあるレジスタに読取り/書込みアク
セスを実行し、該レジスタはデータプロセッサがスーパ
バイザモードの動作にある時にのみアクセス可能であ
る。第4の命令は例外処理ルーチンの規律正しい終了を
実行する。
【0005】もしスーパバイザモードにおいてのみ使用
するよう特定されたメモリ、レジスタまたは命令がデー
タプロセッサがユーザモードにある時にアクセスされれ
ば、例外(exception)が発生する。この例外
はデータプロセッサの動作の中断を生ずる。例外処理ル
ーチンが次に実行されてその例外を処理しかつデータプ
ロセッサを通常の動作モードに回復する。
【0006】さらに、データプロセッサはある条件では
スーパバイザモードでのみ動作することができる。例え
ば、データプロセッサは例外が発生した時はスーパバイ
ザモードで動作する。該データプロセッサは適切な例外
処理ルーチンを実行するためにスーパバイザモードにな
ければならない。同様に、データプロセッサのリセット
が発生すると、該データプロセッサはスーパバイザモー
ドで動作する。データプロセッサの特権レベルはまたユ
ーザモードで実行される「トラップ(trap)」命令
によって変更できる。例外およびユーザおよびスーパバ
イザモードの動作に関するこれ以上の情報については、
1990年にMotorola,Inc.によって発行
されたMC88100 RISC Microproc
essor User′s Manualの第2版を参
照。
【0007】データ処理システムにおけるキャッシュメ
モリの限られた制御は通常システムのユーザには容易に
はアクセスできないスーパバイザ動作モードにおいての
み可能である。例えば、アメリカ合衆国テキサス州オー
スチンのMotorola,Inc.によって開発され
たMC88200キャッシュ/メモリ管理ユニットにお
いては、単一のキャッシュ制御動作はスーパバイザ動作
モードにおいてのみ実行される。すべての他のキャッシ
ュ制御動作は内部的に制御されかつスーパバイザ動作モ
ードにおいてでもユーザにアクセスできない。MC88
200型キャッシュ/メモリ管理ユニットに関するこれ
以上の情報については、1990年にMotorol
a,Inc.によって発行されたMC88200 Ca
che/Memory Management Uni
t User′s Manualの第2版を参照。
【0008】スーパバイザモードで実行可能なキャッシ
ュ制御動作は「フラッシュ(flush)」動作であ
る。フラッシュ動作においては、キャッシュメモリの変
更された、あるいは「汚れた(dirty)」記憶位置
が該キャッシュメモリからその汚れた記憶位置を移動さ
せ、あるいはフラッシュすることによりクリアされる。
通常、汚染された記憶位置は該記憶位置が新しいデータ
値のために割当てられなければならない場合にクリアさ
れる。
【0009】通常キャッシュ動作の間に実行されるが、
いずれの動作モードにおいてもユーザにアクセスできな
い他のキャッシュ制御動作は「キャッシュロード(ca
che load)」動作を含む。キャッシュロード動
作の間に、要求されたデータ値がキャッシュメモリに記
憶されていないため「ミス(miss)」が発生した場
合にのみ該キャッシュメモリにデータが記憶される。ミ
スが発生した時、キャッシュメモリのあるラインがデー
タ値を受信するために最初に割当てられなければならな
い。該データは引き続き読取られかつそのラインに記憶
される。該データは外部メモリ源から回収されなければ
ならないから、遅延が生じかつデータ処理システムの効
率が低下する。さらに、キャッシュメモリにおけるライ
ンの充填(filling)および割当ての間に不必要
なバスサイクルがしばしば実行される。前に述べたよう
に、ユーザはいずれの動作モードにおいてもキャッシュ
ロード動作を開始することはできない。キャッシュロー
ド動作は単にユーザによって影響されない通常のキャッ
シュ動作の副産物に過ぎない。
【0010】上にあげたキャッシュ制御動作の各々にお
いて、データプロセッサのユーザはデータプロセッサが
スーパバイザモードにある時に実行できるフラッシュ命
令動作を除きキャッシュ動作に対し制御を持たない。そ
の時でさえ、スーパバイザモードはアクセスするのが容
易ではなく、かつもしアクセスされれば、正しく使用さ
れない限り破滅的なエラーを生ずることがある。さら
に、データプロセッサの特権レベルを変更することに関
連する処理時間はしばしば法外に長い。上に述べたキャ
ッシュ制御動作の各々はデータ処理システムの効率を最
大にするよう設計された所定のアルゴリズムに従って実
行される。しかしながら、例外が発生し、その場合は前
記アルゴリズムはキャッシュメモリシステムの最も効率
のよい動作を提供しない。例外の場合は、ユーザはキャ
ッシュメモリの最も効率のよい動作を維持することがで
きないが、それはデータ処理システムが直接制御可能で
ないからである。
【0011】
【発明が解決しようとする課題】従って、キャッシュ制
御動作を実行する上でより一層の柔軟性を可能にするデ
ータ処理システムの必要性が存在する。さらに、データ
処理システムのユーザはキャッシュメモリの効率的な動
作を最大限にする一層の能力および洞察力を持つべきで
ある。
【0012】
【課題を解決するための手段および作用】前に述べた必
要性は本発明によって満たされる。従って、1つの形態
で、キャッシュメモリを有するデータ処理システムが提
供される。該データ処理システムは所定のフォーマット
を有する外部動作命令を受けるためのインタフェースを
含む。外部動作命令はキャッシュメモリの動作を制御す
るために与えられる。シーケンサが該インタフェースに
結合されて前記動作命令を受信する。該シーケンサは動
作命令をデコードして該動作命令に応じて実行されるべ
きキャッシュ動作を決定する。論理回路がまたシーケン
サに結合されて外部動作命令の第1の部分を受け取る。
該論理回路はその部分を評価して動作命令の実行の間に
操作されるべき情報値のキャッシュメモリにおける記憶
位置を決定する。キャッシュアクセス回路がまた前記シ
ーケンサに結合されて前記動作命令に対応する複数の制
御値を受け取る。該キャッシュアクセス回路はまた前記
論理回路に結合され操作されるべき前記情報値のキャッ
シュメモリにおける記憶位置を受け取る。キャッシュア
クセス回路はキャッシュメモリの該記憶位置をアクセス
して前記複数の制御値に応じて動作命令を実行する。
【0013】これらおよび他の特徴、および利点は、添
付の図面と共に以下の詳細な説明を参照することにより
さらに明瞭に理解されるであろう。図面は本発明の唯一
の形態を表すものではないことに注目することが重要で
ある。
【0014】
【実施例】本発明の好ましい実施例のこの説明において
は、用語「肯定する(assert)」および「否定す
る(negate)」およびそれらの種々の文法的な形
態は「アクティブハイ」および「アクティブロー」論理
信号の混合物を取り扱う場合に混乱を避けるために使用
されている。「肯定する」は論理信号またはレジスタの
ビットをそのアクティブ、または論理的に真の、状態に
することを意味するために使用されている。「否定す
る」は論理信号またはレジスタのビットをそのインアク
ティブ、または論理的に偽の状態にすることを言及する
ために使用されている。
【0015】本発明はデータ処理システムにおけるキャ
ッシュメモリに対するより大きなユーザ制御を提供する
装置および方法を提供する。特に、3つのユーザモード
のキャッシュ制御命令が使用されてデータ処理システム
のユーザがキャッシュメモリによって実行される動作に
対しより多くの制御を持つことができるようにする。そ
れらの命令は、キャッシュプリロード(cache p
reload)、フラッシュロード(flush lo
ad)、およびアロケイトロード(allocate
load)である。
【0016】キャッシュプリロード、または「タッチロ
ード(touch load)」命令はユーザがデータ
を該データが実際にデータ処理システムによって使用さ
れる前にキャッシュメモリシステムに記憶できるように
する。従来技術のシステムにおいては、データは該デー
タがデータ処理システムによって必要とされる場合にの
みキャッシュメモリに記憶される。その結果、キャッシ
ュメモリはデータ処理システムの外部の発生源からデー
タがアクセスされる間待たされる。タッチロード命令は
ユーザがデータ値の要求を予期しかつそのデータ値をキ
ャッシュメモリに記憶し、それによってロード動作の間
に導入される遅延が最小になるようにすることができる
ようにする。さらに、データ値がデータ処理システムの
外部の発生源から取り出される間に、データ処理システ
ムは同時に他の機能を実行することができる。これによ
ってさらにデータ処理システムの効率が増大する。
【0017】従来技術のシステムにおいては、キャッシ
ュメモリの汚染されたライン(dirty line)
が新しいデータ値に対しキャッシュメモリにおけるある
ラインを割当てる副作用として外部メモリにコピーされ
る。外部メモリは一般にキャッシュメモリのフラッシュ
されたラインに記憶されたデータを反映するために変更
されなければならない。そのような動作モードは「ライ
トスルー(write−through)」モードと称
される。ライトスルーモードにおいては、すでにキャッ
シュメモリにあるアドレスにデータ値を記憶する記憶動
作は外部メモリならびにキャッシュメモリを更新する。
該記憶動作はキャッシュメモリの前記アドレスのデータ
値のステータス(status)を変更しない。
【0018】ここで説明される本発明の実施例において
は、実現される第2のキャッシュ制御命令はキャッシュ
メモリの汚染されたラインをストア動作を行うために通
常要求されるオーバヘッドなしにデータ処理システムの
外部のメモリに強制的に移す。しかしながら、いくつか
の場合には、外部メモリはキャッシュメモリに記憶され
たデータを反映するためにより迅速に変更されるべきで
ある。フラッシュロード命令の応用は引き続きさらに詳
細に説明する。
【0019】本発明の1つの実施例において実現される
第3のキャッシュ制御命令はラインアロケイション、ま
たは「アロケイトロード(allocate loa
d)」動作を実行する。アロケイト命令はユーザが通常
のライン充填処理に対応するメモリアクセス時間を避け
ながら後の記憶動作のためにキャッシュメモリにおける
あるラインを割当てることができるようにする。
【0020】上に述べたキャッシュ制御命令の各々にお
いて、ユーザはキャッシュメモリの動作を制御すること
ができかつこれらの動作の各々を実行するために通常必
要とされる遅延を避けることができる。さらに、従来技
術のシステムにおいてはフラッシュロード動作は前にス
ーパバイザモードにおいて実行されているが、スーパバ
イザ動作モードは一般に完全に実行するためにはより多
くの時間を必要とし、かつユーザにアクセス可能なキャ
ッシュ制御命令と同様の柔軟性を可能にするものではな
い。
【0021】上に述べた各々のキャッシュ制御命令は所
定のレジスタへの所定の大きさのアクセスを有するロー
ド動作として符号化される。ここに述べる本発明の実施
の前は、所定のレジスタへのいずれのロードもノーオペ
レーション(NOP)が実行される結果となった。キャ
ッシュ制御動作を所定のレジスタへのロード動作として
エンコードすることにより、非常に少しの付加的回路が
必要であるのみであり、かつ命令は非常に効率的な様式
で実現されている。
【0022】さらに、本発明はデータ処理システムのユ
ーザにキャッシュメモリで生じている処理についての
「ヒント」を提供する装置および方法を提供する。例え
ば、ユーザは上にあげたキャッシュ制御命令の内の1つ
が実行される時を示すデータを与えられる。ユーザは次
にそのデータを使用してメモリコントローラ、または同
様の処理システム、の動作を制御し将来のキャッシュメ
モリの処理(transactions)についての仮
定を行うことができる。一例として、キャッシュメモリ
が現在のキャッシュメモリ処理がタッチロード動作であ
ることを示す外部データを提供するものと仮定する。も
し次のキャッシュラインが次の処理の間にアクセスされ
るべきである場合は、メモリコントローラは次にそれが
実際に要求される前に前記次のラインをアクセスするこ
とができ、かつ実効メモリアクセス時間が軽減される。
【0023】キャッシュメモリの制御動作へのユーザア
クセスを提供することにより、かつ現在のキャッシュ制
御動作を示す外部情報を提供することにより、本発明は
任意のキャッシュメモリの性能を増強するためのいくつ
かのメカニズムを提供する。
【0024】好ましい実施例の1つの構成が図1に示さ
れている。図1は、本発明にかかわるキャッシュメモリ
を有するデータ処理システム10を示す。データ処理シ
ステム10は概略的にデータプロセッサ20およびメイ
ンメモリ50を含む。情報バス(INFORMATIO
N BUS)15は双方向的にデータプロセッサ20と
メインメモリ50を結合し、データ、アドレスおよび制
御情報が各々の間で通信できるようにする。ユーザが提
供するプログラム52はメインメモリ50に記憶され
る。
【0025】データプロセッサ20はバスインタフェー
スユニット22、データキャッシュユニット24、命令
キャッシュユニット26、ロード/ストアユニット2
8、ヒストリバッファ30、レジスタファイル32、シ
ーケンサ34、および実行ユニット42を含む。実行ユ
ニット42は浮動小数点ユニット36、整数ユニット3
8、およびグラフィックユニット40を含む。1つの特
定の実施例においては、データプロセッサ20は、アメ
リカ合衆国テキサス州オースチンのMotorola,
Inc.から入手可能なMC88110型のような単一
の集積回路として実施することができる。
【0026】バスインタフェースユニット22は外部命
令およびデータアクセスの間の調停を行いかつ情報バス
15の内部アクセスを制御する。バスインタフェースユ
ニット22は命令キャッシュユニット26に双方向的に
結合され外部命令情報バス17を介して命令キャッシュ
ユニット26に外部命令情報を提供する。同様に、バス
インタフェースユニット22は双方向的にデータキャッ
シュユニット24に結合され外部データ情報バス19を
介してデータキャッシュユニット24に外部データ情報
を提供する。
【0027】命令キャッシュユニット26は、メインメ
モリ50に記憶されたソフトウェアプログラム52のよ
うな、ソフトウェアルーチンの実行の間にアクセスされ
迅速に命令を提供しかつ命令をフェッチするのに通常必
要な処理時間の量を低減する。命令キャッシュユニット
26は命令および該命令に対応する複数の制御信号を命
令情報(INSTRUCTION INFORMATI
ON)バス21を介してシーケンサ34に提供する。
【0028】シーケンサ34は前記命令および前記複数
の制御信号の双方をデコードしてデコードされた命令の
命令コード(opcode)を内部情報(INTERN
ALINFORMATION)バス27を介して実行ユ
ニット42およびロード/ストアユニット28の双方に
提供する。さらに、シーケンサ34は命令情報バス21
によって提供される前記命令および前記複数の制御信号
をデコードしてレジスタファイル32からの命令の実行
に必要なオペランドをアクセスする。
【0029】ここに述べる本発明の構成において、レジ
スタファイル32はオペランドおよびデータプロセッサ
20によって実行される各命令の結果を記憶するために
使用できる32個のレジスタを含む。“r0”と言及さ
れる単一のレジスタは常にゼロの一定値を含みかつ書込
み動作の間に変更されない。従来技術のシステムにおい
ては、レジスタr0へのロードは例外となるかあるいは
ノーオペレーション(NOP)となる。レジスタr0へ
のロードがキャッシュ制御動作を提供するためにデコー
ドされることを認識することにより、ユーザがデータプ
ロセッサ20におけるデータキャッシュユニット24の
動作に対して制御できるようにするために非常に少しの
付加的な回路が必要になるのみとなる。
【0030】レジスタファイル32はそこに格納された
オペランドをヒストリバッファ30および実行ユニット
42の双方に提供する。レジスタファイル32に記憶さ
れた情報は内部情報バス27を介して転送される。
【0031】ヒストリバッファ30はレジスタファイル
32に結合されてデータプロセッサ20によって実行さ
れる命令の各々のキュー(queue)を維持する。ヒ
ストリバッファ30は各々の命令に対応するレジスタ内
容のコピーを記憶することによりこのキューを維持す
る。典型的には、シーケンサ34によって発行される命
令はヒストリバッファ30のキューの後部(tail)
に置かれる。前記命令は次に前の命令が完全に実行され
かつキューから除去された時に該キューを通って移動す
る。命令がキューの先頭に到達しかつ実行を終了した
時、該命令はヒストリバッファ30のキューから除去さ
れる。ヒストリバッファ30はもしいずれかの命令の実
行中に例外が発生すれば非常に価値があることが分かっ
ている。ヒストリバッファ30はレジスタファイル32
の内容を命令の発行の前の状態に戻すことができる。従
って、処理時間は例外の間に失われるかもしれないが、
何らの誤ったデータまたは破滅的なエラーは通常発生し
ない。
【0032】内部情報バス27は双方向的に浮動小数点
ユニット36、整数ユニット38、およびグラフィック
ユニット40の各々を結合して命令実行に必要な情報を
通信する。浮動小数点ユニット36は精度が変化する浮
動小数点データを必要とする演算を実行する。浮動小数
点データを取り扱う命令を完全に実行するために乗算、
除算および加算が行われる。同様に、整数ユニット38
は整数、あるいは固定小数点、データに対し演算を行う
命令を実行する。グラフィックユニット40はコンピュ
ータのイメージングに直接関係する機能を行うための回
路を提供する。
【0033】さらに、内部情報バス27はロード/スト
アユニット28に結合されている。ロード/ストアユニ
ット28はデータキャッシュアドレスバス25およびデ
ータキャッシュ制御バス23の双方を介してデータキャ
ッシュユニット24に結合されている。
【0034】ロード/ストアユニット28はデータキャ
ッシュユニット24およびシーケンサ34とインタフェ
ースしてデータメモリをアクセスする命令を実行する。
ロード/ストアユニット28はまたデータプロセッサ2
0の効率を最適化するためにデータメモリをアクセスす
る命令の実行を順序立てる(sequences)。ロ
ード/ストアユニット28は図2にさらに詳細に示され
ている。ロード/ストアユニット28は概略的に実効ア
ドレス計算論理回路42、デコード制御ブロック、複数
のロードバッファ46、アドレス発行マルチプレクサ4
8、および制御発行マルチプレクサ49を含む。
【0035】内部情報バス27は「実効アドレスオペラ
ンド(EFFECTIVE ADDRESS OPER
ANDS)」と名付けられた信号を実効アドレス計算論
理回路42に提供する。実効アドレス計算論理回路42
は計算されたアドレス(CALCULATED ADD
RESS)信号を複数のロードバッファ46の内の1つ
の第1の入力およびアドレス発行マルチプレクサ48に
提供する。
【0036】内部情報バス27はまた「入力制御(IN
PUT CONTROL)」と名付けられた信号をデコ
ード制御ブロック45に提供する。デコード制御ブロッ
ク45は複数のデコードされた制御信号をデコード制御
(DECODED CONTROL)バス47を介して
制御発行マルチプレクサ49に提供する。
【0037】複数のロードバッファ46の1つは第2の
入力をアドレス発行マルチプレクサ48に提供する。該
第2の入力はバッファされたアドレス(BUFFERE
DADDRESS)信号によって与えられる。アドレス
発行マルチプレクサ48は実効アドレスをデータキャッ
シュアドレスバス25に提供する。さらに、制御発行マ
ルチプレクサ49は前記複数の制御信号をデータキャッ
シュ制御バス23に提供する。複数の制御信号の各々は
それぞれ「ロード(LOAD)」、「サイズ(SIZ
E)」、「フラッシュ(FLUSH)」、「タッチ(T
OUCH)」、「アロケイト(ALLOCATE)」お
よび「スーパバイザ(SUPERVISOR)」と名付
けられている。
【0038】さらに、データキャッシュ制御バス23は
それぞれ「ヒット(HIT)」および「例外(EXCE
PTION)」と名付けられた第1および第2の信号を
デコード制御ブロック45に提供する。デコード制御ブ
ロック45は、それぞれヒットおよび例外と名付けられ
た、前記第1および第2の信号を内部情報バス27にわ
たす。ロード/ストアユニット28の動作は以下により
詳細に説明する。
【0039】データキャッシュ制御バス23およびデー
タキャッシュアドレスバス25は共にロード/ストアユ
ニット28をデータキャッシュユニット24に結合す
る。データキャッシュユニット24は概略的にメモリア
クセス動作の間にアクセスされたデータ情報をデータプ
ロセッサ20の残りの部分あるいはメインメモリ50の
ような外部ソースに提供する。データキャッシュユニッ
ト24はまたデータキャッシュ54に記憶されたデータ
がデータ処理システム10内を正しく伝搬することを保
証するのに必要な制御情報を受信しかつ提供する。デー
タキャッシュユニット24は図3に非常に詳細に示され
ている。データキャッシュユニット24は概略的にデー
タキャッシュ54、データタグアレイ56、データキャ
ッシュメモリ管理ユニット(MMU)58、およびキャ
ッシュ制御論理回路60を含む。
【0040】データキャッシュアドレスバス25はそれ
ぞれ“A0”〜“A31”と名付けられた複数のアドレ
スビットをデータキャッシュユニット24に提供する。
データキャッシュユニット24においては、前記複数の
アドレスビットの各々はデータキャッシュMMU58に
提供される。さらに、それぞれ“A0”〜“A11”と
名付けられた、アドレスビット0〜11はデータキャッ
シュ54、バスインタフェースユニット22、およびデ
ータタグアレイ56に提供される。外部データ値はデー
タキャッシュ54とバスインタフェースユニットとの間
で外部データ情報バス19を介して通信される。バスイ
ンタフェースユニット22は次に前記外部データ値をメ
インメモリ50のような外部プロセッサに情報バス15
を介して提供する。内部データ値はまたデータキャッシ
ュ54とデータプロセッサ20の残りの部分との間で通
信される。内部データ値の通信は当業者によく知られて
おりかつ、従って、これ以上詳細に説明しない。さら
に、内部データ値の通信はここに説明される本発明の実
施例を理解するのに必要ではない。
【0041】データキャッシュ制御バス23はまたキャ
ッシュ制御情報をデータキャッシュユニットに転送す
る。データキャッシュユニット24においては、データ
キャッシュ制御バス23はスーパバイザ信号をデータキ
ャッシュMMU58に提供する。データキャッシュMM
U58は次に物理アドレスを物理アドレスバス57を介
してデータタグアレイ56の入力に提供する。物理アド
レスバス57は物理アドレスをデータタグアレイ56に
転送する。データタグアレイ56はキャッシュ制御論理
回路60に結合され「整合(MATCH)」と名付けら
れた第1の信号および「ステータス(STATUS)」
と名付けられた第2の信号を提供する。さらに、データ
タグアレイ56はバスインタフェースユニット22に結
合されてタグ物理アドレスバス59を介してタグ物理ア
ドレスを提供する。
【0042】データキャッシュ制御バス23はまたキャ
ッシュ制御論理回路60に結合されスーパバイザ信号を
提供する。さらに、タッチ、フラッシュ、アロケイトお
よびロード信号もまたキャッシュ制御論理回路60に提
供される。キャッシュ制御論理回路60は例外およびヒ
ット信号をデータキャッシュ制御バス23を介してロー
ド/ストアユニット28に提供する。
【0043】キャッシュ制御論理回路60はまた外部デ
ータ情報バス19を介してバスインタフェースユニット
22に結合されそれぞれ「無効化(INVALIDAT
E)」、「メモリサイクル(MEMORY CYCL
E)」、「サイズ(SIZE)」、「転送コード(TR
ANSFER CODE)」、「リード/ライト(RE
AD/WRITE)」、「バーストモード(BURST
MODE)」、および「バス要求(BUS REQU
EST)」とそれぞれ名付けられた複数の出力信号を提
供する。キャッシュ制御論理回路60はまた外部データ
情報バス19から「ターミネイト(TERMINAT
E)」と名付けられた信号を受信する。データキャッシ
ュユニット24の動作は以下にさらに詳細に説明する。
【0044】キャッシュ制御論理回路60はスーパバイ
ザ、タッチ、フラッシュ、アロケイト、ロード、整合お
よびステータス信号を受信しかつ各々を使用して上にあ
げた複数の出力信号を発生する。該複数の出力信号はデ
ータプロセッサ20によって現在実行されているオペレ
ーションを外部ユーザに示す情報を提供する。キャッシ
ュ制御論理回路60は図4にさらに詳細に示されてい
る。キャッシュ制御論理回路60はデータキャッシュフ
ィルタ62、データキャッシュ中央制御回路64を含
む。
【0045】データキャッシュ制御バス23はタッチ、
フラッシュ、アロケイトおよびロード信号の各々をデー
タキャッシュフィルタ62およびデータキャッシュ中央
制御回路64の双方に提供する。さらに、データキャッ
シュ制御バス23はスーパバイザ信号をデータキャッシ
ュ中央制御回路64に提供する。ステータスおよび整合
信号もまたデータキャッシュフィルタ62に提供され
る。
【0046】データキャッシュフィルタ62は複数の信
号を各々の入力信号に応じてデータキャッシュ中央制御
に与える。前記複数の信号の内の第1のものは「内部バ
ス要求(INTERNAL BUS REQUES
T)」と名付けられている。同様に、前記複数の信号の
内の第2のものは「内部リード/ライト(INTERN
AL READ/WRITE)」と名付けられかつ前記
複数の信号の内の第3のものは「内部バーストモード
(INTERNAL BURST MODE)」と名付
けられている。「内部メモリサイクル(INTERNA
L MEMORY CYCLE)」と名付けられた信号
および「内部無効化(INTERNAL INVALI
DATE)」と名付けらたれ信号はそれぞれ前記複数の
信号の内の第4および第5のものを含む。
【0047】データキャッシュ中央制御64はバス要
求、バーストモード、リード/ライト、メモリサイク
ル、無効化、サイズおよび転送コード信号を外部データ
情報バス19を介してバスインタフェースユニット22
に提供する。同様に、外部データ情報バス19はターミ
ネイト信号をデータキャッシュ中央制御回路64に通信
する。さらに、データキャッシュ中央制御回路64は例
外信号をデータキャッシュ制御バス23を介してロード
/ストアユニット28に提供する。
【0048】ここに説明する本発明の構成においては、
タッチロード、フラッシュロードおよびアロケイトロー
ド動作は各々レジスタr0へのロード動作によって実行
される。各動作はさらに大きさを示す接尾辞またはサイ
ズサフィックスによって規定される。例えば、Id.b
r0,〈ea〉の形式の命令ニーモニックはタッチロ
ード動作が実行されるべきことを示す。従って、レジス
タr0へのバイトサイズのロードはタッチロード動作に
対応する。同様に、Id.w r0,〈ea〉の形式の
命令ニーモニックはフラッシュロード動作が実行される
べきことを示し、かつId.h r0,〈ea〉の形式
の命令ニーモニックはアロケイトロード動作が行なわれ
るべきことを示す。同様に、ワードサイズのロードおよ
びハーフワードサイズのロードは、それぞれ、フラッシ
ュロードおよびアロケイトロード動作に対応する。フラ
ッシュロードおよびアロケイトロード動作の実行は次に
より詳細に説明する。
【0049】データプロセッサ20の動作の間に、命令
キャッシュユニット26、シーケンサ34、レジスタフ
ァイル32、およびヒストリバッファ30はデータプロ
セッサ20の動作を制御するよう機能し、これによって
メモリ記憶位置と実行ユニット42との間の正しい情報
の流れが達成されるようにする。
【0050】命令キャッシュユニット26はデータプロ
セッサ20によって実行されているプログラムの流れに
よって命令される通り内部命令キャッシュ(図示せず)
から命令をフェッチする。命令キャッシュユニット26
は次に該命令をシーケンサ34に提供する。例えば、タ
ッチロード動作の実行中に、命令キャッシュユニット2
6はId.b r0〈ea〉の形式の命令をフェッチす
る。このId.b r0,〈ea〉はタッチロード命令
のニーモニック表現である。命令キャッシュユニット2
6には実際には2進表現が提供される。
【0051】シーケンサ34は次にデータプロセッサ2
0によって実行されるプログラムの流れによって決定さ
れるシーケンスにおいて命令をデコードしかつ実行す
る。デコードされた命令の必要なオペランドがレジスタ
ファイル32からアクセスされ、あるいは「フェッチさ
れ」、かつ内部情報バス27を介して実行ユニット42
およびロード/ストアユニット28の双方に提供され
る。シーケンサ34はまたデータプロセッサ20がユー
ザ動作モードあるいはスーパバイザ動作モードのいずれ
で動作しているかを判定する。さらに、シーケンサ34
は命令の実行に応じて例外(exception)が発
行されるべきか否かを判定する。スーパバイザおよびユ
ーザモードはBruce A.Delagi他による米
国特許第3,858,182号により完全に開示されて
おり、この米国特許は本明細書に参照のため導入され
る。
【0052】シーケンサ34およびレジスタファイル3
2はそれぞれデコードされた命令および必要なオペラン
ド情報を内部情報バス27を介して実行ユニット42お
よびロード/ストアユニット28に提供する。ここに説
明するキャッシュ制御動作の実行中に、実行ユニット4
2はアクセスされない。しかしながら、もしデコードさ
れた命令が実行ユニット42のある構成要素をアクセス
すれば、該命令は浮動小数点ユニット36、整数ユニッ
ト38、またはグラフィックユニット40のいずれかに
提供される。
【0053】ここに説明する複数のキャッシュ制御動作
の内の1つの実行中に、前記命令はデータキャッシュユ
ニット24のある記憶位置をアクセスする。該記憶位置
は前記命令のニーモニック形式で特定された実効アドレ
ス(〈ea〉)である。従って、その位置をアクセスす
るのに必要なデータ情報は内部情報バス27を介してロ
ード/ストアユニット28に与えられる。
【0054】前記記憶位置にアクセスするのに必要な制
御およびデータ情報はそれぞれ内部情報バス27を介し
て入力マルチプレクサ42およびデコード制御ブロック
45に与えられる。実効アドレスオペランド信号が実効
アドレス計算論理回路42に与えられる。実効アドレス
計算論理回路は計算されたアドレスを提供する。この計
算されたアドレスはレジスタファイル32における2つ
のレジスタの内容を一緒に加算することにより形成でき
る。同様に、該計算されたアドレスは一定値をレジスタ
に記憶された値に加算することにより形成できる。該計
算されたアドレスを発生するのに数多くの他の変形も使
用できる。しかしながら、そのような変形は一般的なも
のでありかつ当業者によく知られたものである。
【0055】前記計算されたアドレスはアドレス発行マ
ルチプレクサ48および前記複数のロードバッファ46
の内の所定の1つの双方に与えられる。同時に、デコー
ド制御ブロック45は内部情報バス27を介してシーケ
ンサ34から入力制御信号を受け取る。該入力制御信号
はシーケンサ34によって発生された制御情報をタッチ
ロード命令に応じて転送する。該入力制御信号はデコー
ド制御ブロック45によってデコードされて複数のデコ
ードされた制御信号をデコード制御バス47を介して制
御発行マルチプレクサ49に提供する。
【0056】ロードバッファ46は前記計算されたアド
レスを、アドレス発行マルチプレクサ48がそれをデー
タキャッシュユニット24に発行できるまでキューに格
納するために設けられる。該複数のロードバッファ46
の各々はアドレス発行マルチプレクサ48に結合されバ
ッファされたアドレス信号を提供する。アドレス発行マ
ルチプレクサ48は前記計算されたアドレスまたはバッ
ファされたアドレス信号のいずれかをアドレス値のキュ
ーに応じて実効アドレスとして発行する。該実効アドレ
ス信号はデータキャッシュアドレスバス25を介してデ
ータキャッシュユニット24に提供される。
【0057】制御発行マルチプレクサ49はまた前記実
効アドレスに対応する制御情報を発行する。ここに説明
する本発明の構成においては、制御情報はスーパバイ
ザ、サイズ、ロード、タッチ、フラッシュおよびアロケ
イト信号を含み、これらはデコードされた制御バス47
を介して転送される。
【0058】キャッシュ制御動作の1つの実行中に、ス
ーパバイザ信号がデータプロセッサ20が動作している
動作モードを示すために与えられる。ここで説明する例
においてスーパバイザ信号が否定されてデータプロセッ
サ20がユーザモードで動作していることを示している
ものと仮定する。ユーザモードにおいては、データキャ
ッシュユニット24のアクセスは「ユーザメモリ」と称
されるメモリの小さな部分およびレジスタファイル32
の限られた数のレジスタに限定される。さらに、タッチ
ロード動作はまたスーパバイザ動作モードにおいて実行
できる。もしスーパバイザ信号が肯定されれば、データ
プロセッサ10はスーパバイザ動作モードで動作してい
る。スーパバイザ動作モードにおいては、データキャッ
シュユニット24およびレジスタファイル32へのアク
セスは制限されない。スーパバイザ信号の論理状態はシ
ーケンサ34によって決定されかつ内部情報バス27を
介してロード/ストアユニット28に与えられる。
【0059】サイズ信号はメモリアクセスがバイト、ハ
ーフワード、ワードまたはダブルワードの増分のいずれ
で行なわれべきかを示す。サイズ信号は典型的には命令
キャッシュユニット16によって与えられる命令オプコ
ード(opcode)においてエンコードされる。
【0060】ロード信号はデータプロセッサ20によっ
て現在実行されている命令がロードまたはストア動作の
いずれであるかを示すためにデータキャッシュユニット
24に与えられる。ロード信号はロード動作の間は肯定
されかつストア動作の間は否定される。キャッシュ制御
動作の各々はロード動作であるから、ロード信号は肯定
される。
【0061】フラッシュ、タッチおよびアロケイト信号
の各々は前に述べたキャッシュ制御動作の1つが命令に
よって開始されかつ実行されるべきか否かを示す。フラ
ッシュ、タッチおよびアロケイト信号は、それぞれ、フ
ラッシュロード、タッチロード、およびアロケイトロー
ド命令に対応する。
【0062】上に述べた各々の制御信号は次にデータキ
ャッシュ制御バス23を介してデータキャッシュユニッ
ト24に与えられる。同様に、実効アドレスがデータキ
ャッシュアドレスバス25を介してデータキャッシュユ
ニット24に与えられる。
【0063】図3に示されるように、データキャッシュ
MMU58は実効アドレスを物理アドレスに変換するた
めにスーパバイザ信号の論理状態に従って実効アドレス
のビット0〜31を処理する。該物理アドレスは次に物
理アドレスバス57を介してデータタグアレイ56に転
送される。データキャッシュMMU58は2つの論理ア
ドレス空間(図示せず)を提供する。第1のアドレス空
間はスーパバイザデータのためのものであり、かつ第2
のアドレス空間はユーザデータのためのものである。デ
ータキャッシュメモリMMU58におけるアドレス変換
キャッシュ(図示せず)は前記実効アドレスを物理アド
レスに変換する。データキャッシュMMU58の詳細な
動作は本発明を理解する上で必要でない。
【0064】前記物理アドレスは次にデータタグアレイ
56の所定のメモリ位置をアクセスするために使用され
る。実効アドレスのビット0〜11はデコードされてデ
ータタグアレイ56の所定のメモリ位置を決める。前記
所定のメモリ位置に記憶されたデータ値は次に物理アド
レスのビット12〜31と比較される。もし同じであれ
ば、データタグアレイ56は整合(MATCH)信号を
肯定する。同様に、該メモリ位置に記憶されたデータ値
のステータスはステータス信号を介して提供される。
【0065】前記データ値のステータスは無効(inv
alid)、共有アンモディファイド(shared
unmodified)、排他的モディファイド(ex
clusive modified)、または排他的ア
ンモディファイド(exclusive unmodi
fied)のいずれかとすることができる。もし該デー
タ値のステータスが無効であれば、該データ値はメイン
メモリ50の対応する値と同じではない。もしデータキ
ャッシュ54における該データ値のステータスが共有ア
ンモディファイドであれば、該データ値はデータプロセ
ッサ20の外部にある他のプロセッサ(図示せず)の間
で共有される。しかしながら、該データ値はメインメモ
リ50の対応する値と同じである。もしデータキャッシ
ュ54の該データ値のステータスが排他的モディファイ
ドであれば、データプロセッサ20のみが該データ値の
コピーを持っている。いずれの外部プロセッサも該デー
タ値にアクセスすることができない。さらに、該データ
値がモディファイドであるから、該データ値は「汚れて
おり(dirty)」、あるいはメインメモリ50の対
応する値と異なっている。最後に、もし前記データ値の
ステータスが排他的アンモディファイドであれば、デー
タプロセッサ20のみが該データ値のコピーを持ってお
り、かつ該データ値はメインメモリ50の対応する値と
同じである。
【0066】整合、ステータス、スーパバイザ、サイ
ズ、ロード、タッチ、フラッシュおよびアロケイト信号
の各々はキャッシュ制御論理回路60に提供される。キ
ャッシュ制御論理回路60は該制御信号の各々を処理し
てデータキャッシュユニット24の内部動作を示す複数
の制御信号を提供する。
【0067】図4に示されるように、データキャッシュ
制御バス23はタッチ、フラッシュ、アロケイトおよび
ロード信号をデータキャッシュフィルタ62に提供す
る。さらに、ステータスおよび整合信号はまたデータタ
グアレイ56によりデータキャッシュフィルタ62に与
えられる。データキャッシュフィルタ62は各入力を処
理して複数の出力を提供する。
【0068】データキャッシュフィルタ62の第1の出
力はヒット(HIT)信号である。ヒット信号はステー
タスおよひ整合信号の双方に応答して提供されロード/
ストアユニット24によってアクセスされるデータ値が
データキャッシュ54に記憶されているかあるいはメイ
ンメモリ50からアクセスされるべきかを示す。該ヒッ
ト信号はロード/ストアユニット28および内部情報バ
ス27を介してシーケンサ34に戻され実行されるべき
次の動作を示す。
【0069】該ヒット信号はデータがすでにデータキャ
ッシュ54のキャッシュ制御動作の実効アドレスに記憶
されている場合にのみ肯定される。逆に、もし前記ヒッ
ト信号が否定されれば、データはデータキャッシュ54
のキャッシュ制御動作の実効アドレスに記憶されていな
い。
【0070】データキャッシュフィルタ62は次にデー
タキャッシュ中央制御回路64への第2の出力、すなわ
ち内部バス要求信号、を肯定する。動作の間、データキ
ャッシュ中央制御回路64はバスインタフェースユニッ
ト22への各入力を順次的な(sequential)
様式で駆動する。従って、内部バス要求信号がデータキ
ャッシュ中央制御回路64に与えられた時、中央制御6
4は外部データ情報バス19を介してバスインタフェー
スユニット22へのバス要求信号を駆動する。内部バス
要求信号はデータプロセッサ20が情報バス15の所有
権を要求すべきか否かを示す。もし内部バス要求信号が
肯定されれば、データプロセッサ20は外部メモリ源か
らの情報を要求する動作を実行している。同様に、もし
内部バス要求信号が否定されれば、データプロセッサ2
0はメインメモリ50あるいは他のデータプロセッサ
(図示せず)へのアクセスを要求する動作を実行してい
ない。
【0071】さらに、キャッシュコントロール動作の実
行中は、データキャッシュフィルタ62の第3の出力は
内部読取り/書込み(INTERNAL READ/W
RITE)と名付けられた信号を肯定する。該内部読取
り/書込み信号はデータプロセッサがあるデータ値をあ
るメモリ位置から読取るかあるいはあるデータ値をある
メモリ位置に書込む動作を実行していることを示す。同
様に、データキャッシュ中央制御回路64は内部読取り
/書込み信号を読取り/書込み信号として外部データ情
報バス19に駆動する。
【0072】データキャッシュフィルタ62はまたキャ
ッシュ制御動作の実行中に内部バーストモード信号を第
4の出力として肯定する。内部バーストモード信号が肯
定された時、データプロセッサ20はバースト処理の間
にメインメモリ50に記憶されたすべてのラインのデー
タを読取りまたは書込むことができる。もし内部バース
トモード信号が否定されれば、データプロセッサ20は
単にサイズ信号により決定されるサイズ境界を有するデ
ータを読むだけである。
【0073】データキャッシュフィルタ62の第5の出
力は「内部メモリサイクル(INTERNAL MEM
ORY CYCLE)」と名付けられている。内部メモ
リサイクル信号はデータキャッシュ中央制御回路64に
よってメモリサイクル信号として外部データ情報バス1
9に駆動される。該メモリサイクル信号はデータプロセ
ッサ20がデータキャッシュユニット24とメインメモ
リ50との間で転送されていることを示すために肯定さ
れる。メモリサイクル信号が否定された時、無効動作が
実行され何らのデータも転送されない。無効動作の間、
有効なデータがデータプロセッサ20によって与えられ
るが、データキャッシュユニット24もメインメモリ5
0もデータ書込み動作を実行するために要求されない。
【0074】さらに、データキャッシュフィルタ62は
「内部無効化(INTERNALINVALIDAT
E)と名付けられた第6の出力信号を提供する。データ
キャッシュ中央制御64は該内部無効化信号を無効化信
号として外部データ情報バス19に駆動する。該無効化
信号が肯定された時、データ処理システム10における
他のキャッシュメモリシステム(図示せず)が前記アク
セスされたデータ値に対応するそれらの内部キャッシュ
ラインを無効化する。もしそれらのヒット信号が肯定さ
れかつステータス信号がデータキャッシュ54において
変更されるべきキャッシュラインが変更されたことを示
しておれば、該キャッシュラインは無効化される前にメ
インメモリ50にコピーされるべきである。
【0075】バス要求、バーストモード、読取り/書込
み、メモリサイクル、および無効化信号の各々を受信す
ると、メインメモリ50はデータキャッシュMMU58
によって発生される物理アドレスに位置するデータを提
供する。該データはメインメモリ50から情報バス15
を介してバスインタフェースユニット22に転送され
る。引続き、該データはデータキャッシュ54の前記物
理アドレスによって特定されるアドレスに転送されかつ
記憶される。
【0076】エラーが発生すると、バスインタフェース
ユニット22はバスサイクルが終了しかつ例外が発生し
たことを示すためにターミネイト(TERMINAT
E)信号を肯定する。バスインタフェースユニット22
は次に該ターミネイト信号を外部データ情報バス19を
介してデータキャッシュ中央制御回路64に提供する。
該ターミネイト信号はバスタイミングサイクルが完了し
たことおよびバスサイクルのステータスの双方を示す。
例えば、バスサイクルのステータスは例外が発生したこ
とを示すかもしれない。もし肯定されたターミネイト信
号が例外が発生したことを示しておれば、データキャッ
シュ中央制御回路64は例外(exception)信
号を肯定しかつそれをロード/ストアユニット28に提
供する。ロード/ストアユニット28は次に該例外信号
をシーケンサ34に渡してエラーが発生したことを表示
する。
【0077】図5は、図1〜図4に示された本発明の実
施例においてタッチロードキャッシュ制御動作を実行す
るのに必要なステップのフローチャートを示す。前に説
明したように、タッチロード命令はデータがユーザによ
ってデータキャッシュ54にロードできるようにする。
この構成においては、タッロードキャッシュ制御動作は
該データをフェッチしかつそれが実際に必要とされる前
にデータキャッシュにそれを格納する。従って、データ
がアクセスされる時、データキャッシュ54は該データ
を遅延なしに提供することができる。
【0078】ここに説明する本発明の構成においては、
タッチロードはId.b r0,〈ea〉の命令コード
(instruction opcode)を有する。
タッチロード動作の実行の間に、命令キャッシュユニッ
ト26はニーモニックId.b r0,〈ea〉を有す
る命令をフェッチする。シーケンサ34は次にそのI
d.b r0,〈ea〉のニーモニックの2進表現を完
全にデコードしかつデータプロセッサ20によって実行
されるプログラムの流れによって決定されるシーケンス
でそのタッチロード命令を実行する。デコードされた命
令の必要なオペランドがレジスタファイル32からアク
セスされ、あるいは「フェッチされ」、かつ内部情報バ
ス27を介して例外ユニット42およびロード/ストア
ユニット28の双方に与えられる。
【0079】シーケンサ34およびレジスタファイル3
2はそれぞれデコードされたタッチロード命令および必
要なオペランド情報を内部情報バス27を介して実行ユ
ニット42およびロード/ストアユニット28の双方に
提供する。タッチロード命令の実行の間に、データキャ
ッシュユニット24がアクセスされる。その記憶位置は
前記タッチロード命令によって特定される実効アドレス
(〈ea〉)である。
【0080】前記記憶位置をアクセスするのに必要な制
御およびデータ情報は次にロード/ストアユニット28
に与えられる。タッチロード動作の間にアクセスされた
実効アドレスおよび該実効アドレス信号に対応する制御
情報の双方はデータキャッシュユニット24に提供され
る。前に述べたように、該制御情報はスーパバイザ、サ
イズ、ロード、タッチ、フラッシュおよびアロケイト信
号を含む。
【0081】タッチロード動作の実行の間にスーパバイ
ザ信号が与えられてデータプロセッサ20が動作してい
る動作モードを示す。ここに説明する例においてスーパ
バイザ信号は否定されデータプロセッサ20は動作モー
ドで動作しているものと仮定する。さらに、タッチロー
ド動作もまた該スーパバイザ動作モードにおいて実行さ
れ得る。もし該スーパバイザ信号が肯定されれば、デー
タプロセッサ20はスーパバイザ動作モードで動作して
いる。前記サイズ信号は1バイトのアクセスが前記I
d.b r0,〈ea〉命令において特定されているこ
とを示す。タッチロード動作はロード動作であるから、
ロード(LOAD)信号が肯定される。さらに、前記タ
ッチ信号が肯定されてタッチロード動作が実行されてい
ることを示す。
【0082】データキャッシュMMU58は実効アドレ
スのビット0〜31を処理して該実効アドレスを物理ア
ドレスバス57によって転送される物理アドレスに変換
する。該物理アドレスは次にデータタグアレイ56の所
定のメモリ位置をアクセスするために使用される。該実
効アドレスのビット0〜11がデコードされてデータタ
グアレイ56の所定のメモリ位置を決める。所定のメモ
リ位置に記憶されたデータ値は次に前記物理アドレスの
ビット12〜31と比較される。もし同じあれば、デー
タタグアレイ56は前記整合信号を肯定する。同様に、
前記物理アドレスによって特定されるメモリ位置に記憶
されたデータ値のステータスがステータス信号を介して
提供される。
【0083】ヒット信号が前記ステータスおよび整合信
号の双方に応じて提供されロード/ストアユニット24
によってアクセスされるデータ値がデータキャッシュ5
4に記憶されているかあるいはメインメモリ50からア
クセスされるべきであるかを示す。該ヒット信号はロー
ド/ストアユニット28および内部情報バス27を介し
てシーケンサ34に戻され実行されるべき次の動作を示
す。もし前記ヒット信号がタッチロード命令の実行中に
肯定されれば、キャッシュ制御論理回路60は前記動作
を実行しない。前記ヒット信号はデータがすでにデータ
キャッシュ54のタッチロード命令によって特定される
実効アドレスに記憶されている場合に肯定される。従っ
て、新しいデータ値は必要ではない。しかしながら、も
し該ヒット信号がタッチロード命令の実行中に否定され
れば、キャッシュ制御論理回路60がイネーブルされて
タッチロード命令を実行するのに必要な制御およびデー
タ情報を提供する。
【0084】ロード/ストアユニット28はタッチロー
ド動作を実行するためにキャッシュ制御論理回路60を
イネーブルするのにスーパバイザ、サイズ、ロード、タ
ッチ、フラッシュおよびアロケイト信号を提供する。キ
ャッシュ制御論理回路60は各々の制御信号を処理して
データキャッシュユニット24の内部動作を示す複数の
制御信号を提供する。
【0085】キャッシュ制御論理回路60はバス要求信
号を肯定して情報バス15の所有権を要求する。キャッ
シュ制御論理回路60はまた読取り/書込み信号を肯定
してデータプロセッサ20がメインメモリ50からデー
タ値を読取る動作を実行していることを示す。さらに、
バーストモード信号が肯定されてデータプロセッサ20
がタッチロード命令の実行の間にメインメモリ50から
あるラインのデータを読取ることができるようにする。
メモリサイクル信号が肯定されてデータプロセッサ20
がデータをデータキャッシュユニット24とメインメモ
リ50との間で転送していることを示す。メインメモリ
50もデータ処理システム50の他のデータプロセッサ
(図示せず)も前記データの対応するコピーを無効化す
べきではないから前記無効化(INVALIDATE)
信号が否定される。
【0086】バス要求、バーストモード、読取り/書込
み、メモリサイクル、および無効化信号の各々を受信す
ると、メインメモリ50はデータをデータキャッシュ5
4にデータキャッシュMMU58によって発生される物
理アドレスにおいて提供する。
【0087】従って、Id.b r0,〈ea〉の形式
のタッチロード命令を発行することにより、ユーザはデ
ータキャッシュ54に記憶されるべきデータ値を特定で
きる。通常、データはそのデータが必要な場合にのみキ
ャッシュに記憶される。次に、外部メモリ源によって提
供されなければならないデータに対する依存性による命
令の立往生は貧弱な性能をもたらすことになる。それが
実際に必要になる前にデータをキャッシュに記憶するた
めにタッチロード命令を実行することにより、外部メモ
リからデータを取出すことの潜伏期(latency)
を現在実行されている有用な機能とオーバラップさせ命
令の立往生によって浪費される処理時間を最小限にする
ことができる。
【0088】ここではさらに詳しく述べないが、タッチ
ロード命令は決して例外を発生しない。従って、タッチ
ロード命令はそれがデータキャッシュユニット24に入
るや否やヒストリバッファ30から退去させることがで
きる。さらに、タッチロード命令の実行の間にロードさ
れた値はレジスタファイル32に書き戻されない。典型
的なロード動作の間は、データキャッシュ54にロード
されたデータ値は後続の動作において使用するためにレ
ジスタファイル32に書き戻される。しかしながら、タ
ッチロード命令は該命令において特定された実効アドレ
スにロードされたデータがレジスタファイル32に書き
戻されることを必要としない。従って、処理時間がさら
に短縮される。
【0089】図6は、データプロセッサ20においてフ
ラッシュロードキャッシュ制御動作を実行するために必
要とされるステップのフローチャートを示す。前に述べ
たように、フラッシュロード命令はデータキャッシュ5
4における汚染されたキャッシュラインがメインメモリ
50に書込まれるようにする。従来技術のシステムにお
いては、汚染されたキャッシュラインはデータキャッシ
ュ54における新しいラインを割当てる必要性の副作用
としてのみメインメモリに「コピーバック(copie
d back)」される。しかしながら、しばしばデー
タキャッシュ54におけるデータをフラッシュして直ち
にメインメモリ50に記憶された情報を更新できること
が都合がよい。1つの構成では、フラッシュロード命令
はユーザがデータキャッシュ54のあるラインに対する
複数のストア動作を行ない、かつ次にそのデータを単一
のバースト処理においてメインメモリ50に書くことが
できるようにする。該フラッシュロード命令はユーザ動
作モードにおいてより効率的に実効できる。スーパバイ
ザ動作モードにおいて動作するためには、データプロセ
ッサ20は一連の時間浪費的な命令の実行を要求され
る。従って、フラッシュロードを実行するのに必要とさ
れるオーバヘッド時間がかなり増大する。
【0090】ここに説明される本発明の構成において
は、フラッシュロードはId.w r0,〈ea〉の形
式の命令コードを有する。フラッシュロード動作の実行
の間に、命令キャッシュユニット26はId.w r
0,〈ea〉の形式の命令をフェッチする。シーケンサ
34は次にこのId.w r0,〈ea〉命令を完全に
デコードし、かつデータプロセッサ20によって実行さ
れるプログラムの流れによって決定されるシーケンスで
該フラッシュロード命令を実行する。デコードされた命
令の必要なオペランドはレジスタファイル32からアク
セスされ、あるいは「フェッチされ」、かつ内部情報バ
ス27を介して実行ユニット42およびロード/ストア
ユニット28の双方に提供される。
【0091】シーケンサ34およびレジスタファイル3
2はそれぞれデコードされたフラッシュロード命令およ
び必要なオペランド情報を内部情報バス27を介して実
行ユニット42およびロード/ストアユニット28の双
方に提供する。フラッシュロード命令の実行の間に、デ
ータキャッシュユニット24の記憶位置がアクセスされ
る。該記憶位置はフラッシュロード命令において特定さ
れる実効アドレス〈ea〉てある。
【0092】前記記憶位置をアクセスするのに必要な制
御およびデータ情報は次にロード/ストアユニット28
に提供される。フラッシュロード動作の間にアクセスさ
れる実効アドレスおよび該実効アドレスに対応する制御
情報の双方はデータキャッシュユニット24に与えられ
る。前に述べたように、該制御情報はスーパバイザ、サ
イズ、ロード、タッチ、フラッシュおよびアロケイト信
号を含む。
【0093】フラッシュロード動作の実行の間にデータ
プロセッサ20が動作している動作モードを示すために
スーパバイザ信号が提供される。ここに説明する例にお
いてスーパバイザ信号が否定されデータプロセッサ20
がユーザモードで動作しているものと仮定する。さら
に、フラッシュロード動作はまたスーパバイザ動作モー
ドにおいても実行できる。もしスーパバイザ信号が肯定
されれば、データプロセッサ20はスーパバイザ動作モ
ードにおいて動作している。サイズ信号は1ワードのア
クセスが前記Id.w r0,〈ea〉命令において特
定されていることを示す。フラッシュロード動作はロー
ド動作であるから、ロード(LOAD)信号が肯定され
る。さらに、フラッシュ(FLUSH)信号が肯定され
てフラッシュロード動作が実行されていることを示す。
【0094】データキャッシュMMU58は実効アドレ
スのビット0〜31を処理して該実効アドレスを物理ア
ドレスバス57によって転送される物理アドレスに変換
する。該物理アドレスは次にデータタグアレイ56にお
ける所定のメモリ位置をアクセスするために使用され
る。実効アドレスのビット0〜11がデコードされてデ
ータダクアレイ56の所定のメモリ位置を決める。前記
所定のメモリ位置に記憶されたデータ値は次に物理アド
レスのビット12〜31と比較される。もし同じであれ
ば、データタグアレイ56は整合(MATCH)信号を
肯定する。同様に、前記物理アドレスによって特定され
たメモリ位置に記憶されたデータ値のステータスがステ
ータス信号を介して提供される。
【0095】ロード/ストアユニット28によってアク
セスされるデータ値がデータキャッシュ54に記憶され
ているかあるいはメインメモリ50からアクセスされる
べきであるかを示すために前記ステータスおよび整合信
号の双方に応じてヒット信号が提供される。該ヒット信
号はロード/ストアユニット28および内部情報バス2
7を介してシーケンサ34に与えられ実行されるべき次
の動作を示す。
【0096】もし該ヒット信号がフラッシュロード命令
の実効の間に否定されれば、キャッシュ制御論理回路6
0は該動作を実行しない。キャッシュ制御論理回路60
は該フラッシュロード命令を実行しないが、それは実効
アドレスによって特定されるデータがデータキャッシュ
54に記憶されていないからである。したがって、メイ
ンメモリ50に書込まれるべきデータが存在しない。し
かしながら、もしヒット信号が肯定されれば、該信号の
ステータスがチェックされてそこに格納されたデータが
変更されているか否かを判定する。もし該データが変更
されていなければ、キャッシュ制御論理回路60は該動
作を実行しない。該データはメインメモリ50の対応す
る位置に記憶されたものと同じである。従って、新しい
コピーはメインメモリ50に記憶される必要がない。
【0097】ロード/ストアユニット28はスーパバイ
ザ、サイズ、ロード、タッチ、フラッシュおよびアロケ
イト信号を提供する。これらの信号はキャッシュ制御論
理回路60がもしデータが変更されていればフラッシュ
ロード動作を実行できるようにする。キャッシュ制御論
理回路60は前記制御信号の各々を処理してデータキャ
ッシュユニット24の内部動作を制御する複数の制御信
号を提供する。
【0098】キャッシュ制御論理回路60は情報バス1
5の所有権を要求するためバス要求信号を肯定する。キ
ャッシュ制御論理回路60はまた読取り/書込み信号を
否定してデータプロセッサ20がデータ値をメインメモ
リ50に書込む動作を実行していることを示す。さら
に、バーストモード信号が肯定されてデータプロセッサ
20がフラッシュロード命令の実行の間にメインメモリ
50からあるラインのデータを読取ることができるよう
にする。メモリサイクル信号がフラッシュロード命令の
実行の間に肯定されてデータプロセッサ20がデータキ
ャッシュユニット24とメインメモリ50との間でデー
タを転送していることを示す。また、該データ値のステ
ータスが変更される。従って、無効化信号が肯定されて
メインメモリ50およびデータ処理システム10の他の
データプロセッサ(図示せず)が該データの対応するコ
ピーを無効化できるようにする。
【0099】バス要求、バーストモード、読取り/書込
み、メモリサイクル、および無効化信号の各々を受信す
ると、メインメモリ50はデータキャッシュ54によっ
て与えられるデータをデータキャッシュMMU58によ
って発生される物理アドレスに格納する。
【0100】従って、Id.w r0〈ea〉の形式の
フラッシュロード命令を発行することにより、ユーザは
一般にスーパバイザ動作モードによって要求されるより
長い処理時間を必要とすることなくメインメモリ50に
書込まれるべきデータキャッシュ値を特定することがで
きる。スーパバイザ動作モードにおいて動作するため
に、データプロセッサ20は一連の時間を消費する命令
を実行することを要求される。従って、フラッシュロー
ドを実行するのに必要なオーバヘッド時間がかなり増大
する。
【0101】図7は、データプロセッサ20においてア
ロケイトロードキャッシュ制御動作を実行するのに必要
とされるステップのフローチャートを示す。従来技術の
データプロセッサにおいては、キャッシュメモリをアク
セスするストア動作は該ストア動作によって特定される
アドレスにデータ値を与えるためにライン充填(lin
e fill)動作を必要とした。しかしながら、ここ
に説明する本発明の構成においては、アロケイトロード
命令がユーザにメインメモリ50から通常のランイ充填
動作を避けながら一連の後続のストア動作のためにデー
タキャッシュ54におけるラインを割当てできるように
する。従って、ストア動作の間にメインメモリ50から
新しいラインをフェッチすることに伴なう処理時間が最
小になる。
【0102】ここに説明する本発明の構成においては、
アロケイトロードはId.h r0,〈ea〉の形式の
命令コードを有している。フラッシュロード動作の実行
の間に、命令キャッシュユニット26はId.h r
0,〈ea〉の形式の命令をフェッチする。シーケンサ
34は次に該Id.h r0,〈ea〉命令を完全にデ
コードしかつフラッシュロード命令をデータプロセッサ
20によって実行されるプログラムの流れによって決定
されるシーケンスで実行する。デコードされた命令の必
要なオペランドがレジスタファイル32からアクセスさ
れ、あるいは「フェッチされ」、かつ実行ユニット42
およびロード/ストアユニット28の双方に与えられ
る。さらに、タッチロード命令の実行のように、何らの
例外も認識されない。従って、アロケイトロード命令は
該命令の実行が開始されるや否やヒストリバッファ30
から退去される。
【0103】シーケンサ34およびレジスタファイル3
2はそれぞれデコードされたアロケイトロード命令およ
び必要なオペランド情報を内部情報バス27を介して実
行ユニット42およびロード/ストアユニット28の双
方に提供する。アロケイトロード命令の実行の間に、デ
ータキャッシュユニット24がアクセスされる。その記
憶位置は前記アロケイトロード命令によって特定される
実効アドレス(〈ea〉)である。
【0104】前記記憶位置にアクセスするのに必要な制
御およびデータ情報は次にロード/ストアユニット28
に与えられる。アロケイトロード動作の間にアクセスさ
れる実効アドレスおよび該実効アドレス信号に対応する
制御情報の双方はデータキャッシュユニット24に与え
らる。前に述べたように、該制御情報はスーパバイザ、
サイズ、ロード、タッチ、フラッシュおよびアロケイト
信号を含む。
【0105】アロケイトロード動作の実行の間に、スー
パバイザ信号が与えられてデータプロセッサ20が動作
している動作モードを示す。ここに説明する例において
該スーパバイザ信号は否定されデータプロセッサ20が
ユーザモードにおいて動作していることを示しているも
のと仮定する。さらに、アロケイトロード動作はまたス
ーパバイザ動作モードにおいても実行できる。もし該ス
ーパバイザ信号が肯定されれば、データプロセッサ20
はスーパバイザ動作モードで動作している。前記サイズ
信号はId.h r0,〈ea〉命令においてハーフワ
ードのアクセスが規定されていることを示す。アロケイ
トロード動作はロード動作であるから、ロード(LOA
D)信号が肯定される。さらに、アロケイト信号が肯定
されてアロケイトロード動作が実行されていることを示
す。
【0106】データキャッシュMMU58は実効アドレ
スのビット0〜31を処理して該実効アドレスを物理ア
ドレスバス57によって転送される物理アドレスに変換
する。該物理アドレスは次にデータタグアレイ56の所
定のメモリ位置をアクセスするために使用される。前記
実効アドレスのビット0〜11がデコードされてデータ
タグアレイ56の所定のメモリ位置を決定する。該所定
のメモリ位置に記憶されたデータ値は次に前記物理アド
レスのビット12〜31と比較される。もし同じであれ
ば、データタグアレイ56は整合信号を肯定する。同様
に、前記物理アドレスによって特定されるメモリ位置に
記憶されたデータ値のステータスがステータス信号を介
して提供される。
【0107】ヒット信号は前記ステータスおよび整合信
号の双方に応じて提供されロード/ストアユニット24
によってアクセスされるデータ値がデータキャッシュ5
4に記憶されているかあるいはメインメモリ50からア
クセスされるべきであるかを示す。ヒット信号はロード
/ストアユニット28および内部情報バス27を介して
シーケンサ34に戻され実行されるべき次の動作を示
す。
【0108】アロケイトロード命令の実行の間にもしヒ
ット信号が肯定されれば、キャッシュ制御論理回路60
は動作を実行しない。キャッシュ制御論理回路60はア
ロケイトロード命令を実行しないが、それは前記実効ア
ドレスによって特定されるデータがすでにデータキャッ
シュ54に記憶されておりかつ新しいラインが割当てら
れる必要がないからである。
【0109】ロード/ストアユニット28はスーパバイ
ザ、サイズ、ロード、タッチ、フラッシュおよびアロケ
イト信号をキャッシュ制御論理回路60に提供する。も
しヒット信号が否定されれば、キャッシュ制御論理回路
60がイネーブルされてアロケイトロード動作を実行す
るのに必要な複数の制御信号を提供する。キャッシュ制
御論理回路60は前記制御信号の各々を処理してデータ
キャッシュユニット24の内部動作を示す複数の制御信
号を提供する。
【0110】キャッシュ制御論理回路60は情報バス1
5の所有権を要求するためバス要求信号を肯定する。キ
ャッシュ制御論理回路60はまた読取り/書込み信号を
肯定してデータプロセッサ20がメインメモリ50から
データ値を読取る動作を実行していることを示す。バー
ストモード信号は否定され、それによりハーフワードの
データのみが単一のバス処理においてメインメモリ50
からアクセスできるようになる。もし該バーストモード
信号が肯定されていれば、メインメモリ50からのある
ラインのデータが読出される。そのラインのデータの読
取りは完了するのに少なくとも4つのバスサイクルを必
要とする。従って、アロケイトロード命令は従来技術の
解決方法と比較した時かなりの量の処理時間を節約す
る。
【0111】前記メモリサイクル信号はまたアロケイト
ロード命令の実行の間に否定されてデータプロセッサ2
0がデータキャッシュユニット24とメインメモリ50
との間でデータを転送していないことを表示する。無効
化信号が肯定されてメインメモリ50とデータ処理シス
テム10の他のデータ処理システム(図示せず)が前記
割当てられたラインのコピーを無効化し、それによって
システム全体にわたりデータの首尾一貫性が維持され
る。
【0112】従って、Id.h r0,〈ea〉の形式
のアロケイトロード命令を発行することにより、ユーザ
はライン充填動作および通常必要とされる対応する処理
時間を要することなくデータキャッシュ54の割当てら
れるラインを特定することができる。予めキャッシュの
あるライン全体が完全にオーバライトされていることが
分かる場合には、データ処理システムの性能は新しいラ
インのデータが外部メモリ源からフェッチされなければ
改善することができる。データ処理システム10におい
ては、アロケイトロード命令はデータキャッシュ54の
あるラインを「ミスした」典型的なロード動作において
実行されるように割当てる。しかしながら、アロケイト
ロード命令の実行の間に、ライン充填動作を実行するた
めに何らのデータも取出されずかつ処理時間のオーバヘ
ッドが最小化される。
【0113】タッチロード、フラッシュロード、および
アロケイトロード命令の各々はかなりの量の回路を加え
ることなく実施される。レジスタr0の行き先オペラン
ドを有するロード命令はキャッシュ制御動作が開始され
ていることを示すために使用される。サイズオペレーシ
ョン、 .b, .w,および .h,が次に使用され
てキャッシュ制御動作がタッチロード、フラッシュロー
ド、またはアロケイトロードのいずれであるかを示す。
従って、データキャッシュ54の動作のより大きな制御
が多くの命令コードまたはオプコード(opcode)
および該オプコードの各々をサポートするのに必要なオ
ーバヘッドを加えることなく実現される。従来技術の構
成においては、タッチロード、フラッシュロードおよび
アロケイトロード命令の各々は別個のオプコードを有し
ていた。r0を通常のロード命令によってアクセスする
ことにより、NOPであったオペレーションがいまやキ
ャッシュ制御命令の1つとなる。加える回路はほんの少
ししか要求されずかつシステムのオーバヘッドが、従っ
て、最小化される。さらに、キャッシュ制御動作の各々
は通常のロード動作の副産物であるから、各々をロード
動作で実施することは明白な利点を有する。より重要な
ことには、通常のロード操作を実行するのにすでに必要
とされている回路を使用してタッチロード、フラッシュ
ロードおよびアロケイトロード命令の各々を実行するこ
とができることである。従って、装置の機能が増大する
一方でシステムのオーバヘッドが最小化される。
【0114】前に述べたバス要求、バーストモード、読
取り/書込み、メモリサイクル、無効化およびサイズ信
号に加えて、データキャッシュ中央制御回路64はまた
転送コード(TRANSFER CODE)信号を外部
データ情報バス19に駆動する。該転送コード信号はス
ーパバイザ、タッチ、フラッシュおよびアロケイト信号
の各々に応じて発生される。上に述べた各々の信号はデ
ータプロセッサ20のバスサイクルの間にバスインタフ
ェースユニット22に与えられる。
【0115】前記転送コード信号はデータキャッシュユ
ニット24のオペレーションに関する情報をデータプロ
セッサ20のユーザに提供する。ここに説明する本発明
の実施例においては、前記転送コード信号はデータプロ
セッサ20によって現在の実行されているオペレーショ
ンに関する「ヒント」を提供する。次の表1は前記転送
コード信号のための符号化(encoding)の1つ
の実施例を示す。
【表1】 転送コード信号 オペレーション −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0000 リザーブ 0001 ユーザデータアクセス 0010 ユーザタッチ、フラッシュまたは アロケイトアセス 0011 データMMUテーブルサーチ オペレーション 0100 リザーブ 0101 スーパバイザデータアクセス 0110 スーパバイザタッチ、フラッシュまた はアロケイト 0111 スヌープコピーバック 1000 リザーブ 1001 ユーザ命令アクセス 1010 リザーブ 1011 命令MMUテーブルサーチ オペレーション 1100 リザーブ 1101 スーパバイザ命令アクセス 1110 リザーブ 1111 リザーブ
【0116】上の表1に挙げた各々のオペレーションを
表わすために転送コード信号を符号化することにより、
ユーザは内部情報バス26のバス活動を監視することが
できる。ユーザはこの情報を使用してデータキャッシュ
ユニット24のオペレーションへの洞察を得ることがで
きる。もし該転送コード信号によって符号化されたオペ
レーションが「リザーブ」であれば、何らのオペレーシ
ョンもまだ符号化されていない。リザーブされた符号化
は、0000,0100,1000,1010,110
0,1110および1111である。
【0117】転送コード信号が0001の2進値を有す
る場合、メインメモリ50のユーザアクセスが開始され
ている。もし転送コード信号が0010の2進値を持っ
ておれば、ユーザはタッチロード、フラッシュロードま
たはアロケイトロード命令のいずれかを開始している。
転送コード信号が0011の2進値を有する場合にはデ
ータキャッシュMMU58はハードウェアテーブルサー
チ操作を開始している。テーブルサーチ操作の間、デー
タMMU58は物理アドレス値をサーチする。転送コー
ド信号が0101の2進値である場合は、データキャッ
シュユニット24のデータのスーパバイザアクセスが開
始されている。もし転送コード信号が0110の2進値
を持っておれば、タッチロード、フラッシュロード、あ
るいはアロケイトロード命令がスーパバイザ動作モード
で開始されている。転送コード信号が0111の2進値
を有する場合にはスヌープコピーバック操作が開始され
ている。転送コード信号が1001の2進値を有する場
合には、ユーザは命令データ値のためにメインメモリ5
0をアクセスしている。転送コード信号が1011の2
進値を有する場合は命令キャッシュユニット26のメモ
リ管理ユニット(図示せず)がハードウェアテーブルサ
ーチ操作を開始している。転送コードが1101の2進
値を有する場合は、命令キャッシュユニット26がスー
パバイザ動作モードでアクセスされる。
【0118】前記表1はデータプロセッサ20のユーザ
に外部情報を提供するために符号化できる数多くのオペ
レーションを示しているがデータキャッシュ24のオペ
レーションに関する情報が特に重要である。転送コード
信号がタッチロード、フラッシュロードまたはアロケイ
トロードオペレーションが行なわれていることを示して
いる場合、ユーザは将来のキャッシュ処理のための制御
およびデータ情報を提供するため外部スマート(sma
rt)メモリコントローラ(図示せず)を実施するため
にその情報を使用することができる。前記サイズ信号が
使用されてタッチロード、フラッシュロードまたはアロ
ケイトロードオペレーションの各々の間を区別する。前
に述べたように、キャッシュ制御オペレーションはr0
を行き先オペランドとして有する現存するロードオプコ
ードを使用して実施された。ロードオペレーションのア
クセスのサイズは3つのオペレーションの各々の間の区
別をするために使用された。従って、転送コード信号が
キャッシュ制御操作が実行されたことを示している場
合、サイズ信号はそれがタッチロード、フラッシュロー
ドまたはアロケイトロードオペレーションのいずれであ
るかを判定するために使用できる。
【0119】転送コードおよびサイズ信号に加えて、前
記物理アドレス値のビット0〜4が情報バス15を介し
て外部メモリまたはデータプロセッサ(図示せず)に与
えられる。前記転送コードおよびサイズ信号に加えて、
該物理アドレス値は将来のキャッシュ処理に関する情報
を提供するためエンコードされる。例えば、本発明のこ
の実施例においては、物理アドレス値の下位4ビットは
特定の目的のために使用されない。従って、該物理アド
レスの下位4ビットはスマートメモリコントローラがデ
ータキャッシュ54の将来のオペレーションをより信頼
性よく予測できるようにするためにより多くの情報を提
供するようエンコードされる。
【0120】例えば、もしメインメモリ50からあるラ
インのデータを予めフェッチするためにタッチロード命
令が使用されれば、外部スマートメモリコントローラは
自動的にメインメモリ50から次のラインのデータをフ
ェッチすることができる。メインメモリ50から次のラ
インのデータをそれが実際に要求される前にフェッチす
ることにより、メインメモリ50への実効的なアクセス
時間が最小化される。ここに説明する短い例はユーザモ
ードのキャッシュ制御命令を実現するが、転送コード、
サイズおよび物理アドレス信号もまたいずれかのキャッ
シュ処理を予期するためにスマートメモリコントローラ
を動作可能にするため容易に使用できる。
【0121】他の例として、メモリのあるページが16
進アドレス$0から16進アドレス$1000にコピー
されるものと仮定する。コピー処理の間、アドレス$0
に記憶されたメモリが読取られかつ次にアドレス$10
00に書込まれる。このコピー処理はメモリの全頁がコ
ピーされるまでワードサイズの増分で継続する。従っ
て、転送コード、サイズおよび物理アドレス信号はメモ
リアクセス時間が最小化されるように前記コピー処理の
反復的な性質を予期するために使用できる。いずれの場
合も、転送コード信号はユーザがデータキャッシュユニ
ット24の内部動作への洞察を得かつその知識を将来の
キャッシュ処理を予期するために使用できるようにす
る。
【0122】
【発明の効果】ここに説明した本発明の構成において
は、キャッシュメモリの制御はキャッシュ制御オペレー
ションおよびキャッシュメモリのオペレーションに関連
する外部情報の双方によってユーザに与えられる。該キ
ャッシュ制御オペレーションはユーザがキャッシュ処理
の実行が効率的に行なわれるようにキャッシュメモリを
構成できるようにする。さらに、該キャッシュメモリの
オペレーションに関連する外部情報を提供することによ
り、ユーザは将来のキャッシュ処理を予期しかつ最小量
の時間で必要な情報を提供できる。
【0123】ここに説明した本発明の構成は、実例によ
ってのみ与えられている。しかしながら、ここに説明し
た機能を実行するために数多くの他の構成が存在し得
る。例えば、タッチロード、フラッシュロードおよびア
ロケイトロードオペレーション以外のオペレーションを
行なうこともできる。これら3つのオペレーションの各
々は本発明の1つの実施例として構成されている。さら
に、前記転送コード、サイズおよび物理アドレス信号の
リザーブされたエンコーディングはデータプロセッサ2
0の双方の動作に関するより多くの情報を提供するため
に使用できる。
【0124】ここでは本発明の原理が説明されたが、当
業者はこの説明は実例によってのみ行なわれておりかつ
本発明の範囲を制限するものとして行なわれているもの
でないことは明らかに理解できる。従って、添付の特許
請求の範囲により、本発明の真の精神および範囲内にあ
るすべての変形をカバーするものと考えている。
【図面の簡単な説明】
【図1】本発明に係わるデータキャッシュユニットを有
するデータ処理システムを示すブロック図である。
【図2】図1のロード/ストアユニットを示すブロック
図である。
【図3】図1のデータキャッシュユニットを示すブロッ
ク図である。
【図4】図3のキャッシュ制御論理を示すブロック図で
ある。
【図5】本発明に係わるキャッシュのタッチロードオペ
レーションの間に実行される一連のステップを示すフロ
ーチャートである。
【図6】本発明に係わるキャッシュのフラッシュロード
オペレーションの間に実行される一連のステップを示す
フローチャートである。
【図7】本発明に係わるキャッシュのアロケイトロード
オペレーションの間に実行される一連のステップを示す
フローチャートである。
【符号の説明】
10 データ処理システム 15 情報バス 20 データプロセッサ 22 バスインタフェースユニット 24 データキャッシュユニット 26 命令キャッシュユニット 28 ロード/ストアユニット 30 ヒストリバッファ 32 レジスタファイル 34 シーケンサ 36 浮動小数点ユニット 38 整数ユニット 40 グラフィックユニット 42 実行ユニット 50 メインメモリ 52 ユーザプログラム
フロントページの続き (72)発明者 ジョン・エイチ・アレンズ アメリカ合衆国テキサス州78735、オース チン、トレイビス・カントリー・サークル 4404 エイチ1 (72)発明者 クリストファー・イー・ホワイト アメリカ合衆国テキサス州78746、オース チン、バートンズ・ブラッフ・レーン 2800 #1607 (72)発明者 キース・イー・ディーフェンドルフ アメリカ合衆国テキサス州78731、オース チン、ハンコック・ドライブ 3405

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュメモリを有するデータプロセ
    ッサであって、 命令を受けるためのインタフェース手段、 複数のレジスタを有するレジスタファイル、 前記インタフェース手段に結合された命令デコード手段
    であって、該命令デコード手段は前記命令の第1の部分
    をデコードして制御信号を提供し、前記命令デコード手
    段は前記命令の第2の部分をデコードして前記複数のレ
    ジスタの1つを表示するもの、 前記命令デコード手段に結合され前記制御信号と前記命
    令の第2の部分によって示される複数のレジスタの内の
    前記1つの双方に応じて第1の操作を実行するための実
    行手段であって、該実行手段は前記複数のレジスタの内
    の前記1つが前記複数のレジスタの第1の部分に含まれ
    ている場合にのみ前記第1の操作を実行するもの、 前記命令デコード手段に結合され前記命令の第3の部分
    に応じて前記キャッシュメモリをアクセスするためのキ
    ャッシュアクセス手段、そして前記命令デコード手段に
    結合され前記制御信号と前記命令の第2の部分によって
    示される複数のレジスタの内の前記1つの双方に応じて
    第2の操作を実行するためのキャッシュ制御手段であっ
    て、該キャッシュ制御手段は前記複数のレジスタの内の
    前記1つが前記複数のレジスタの第2の部分に含まれて
    いる場合にのみ前記第2の操作を実行するもの、 を具備することを特徴とするキャッシュメモリを有する
    データプロセッサ。
  2. 【請求項2】 キャッシュメモリ(54)を有するデー
    タプロセッサ(10)であって、 ロード命令を受信するためのインタフェース手段(2
    2)、 複数のレジスタを有するレジスタファイル(32)、 前記インタフェース手段に結合された命令デコード手段
    (26)であって、該命令デコード手段は前記ロード命
    令の第1の部分をデコードしてロード制御信号を提供
    し、前記命令デコード手段は前記ロード命令の第2の部
    分をデコードして前記複数のレジスタの内の1つを示す
    もの、 前記命令デコード手段に結合され前記ロード制御信号お
    よび前記ロード命令の第2の部分によって示される前記
    複数のレジスタの内の1つの双方に応じてデータ値を前
    記複数のレジスタの内の前記1つにロードするためのロ
    ード操作を実行する実行手段(42)であって、該実行
    手段は前記複数のレジスタの内の前記1つが前記複数の
    レジスタの第1の部分に含まれている場合にのみ前記ロ
    ード操作を実行するもの、 前記命令デコード手段に結合され前記ロード命令の第3
    の部分に応じて前記キャッシュメモリをアクセスするた
    めのキャッシュアクセス手段(56)、そして前記命令
    デコード手段に結合され前記ロード制御信号および前記
    ロード命令の前記第2の部分によって示される前記複数
    のレジスタの内の1つの双方に応じてキャッシュ制御操
    作を実行するためのキャッシュ制御手段(60)であっ
    て、該キャッシュ制御手段は前記複数のレジスタの内の
    1つが前記複数のレジスタの第2の部分に含まれている
    場合にのみ前記キャッシュ制御操作を実行するもの、 を具備することを特徴とするキャッシュメモリ(54)
    を有するデータプロセッサ(10)。
  3. 【請求項3】 キャッシュメモリ(54)を有するデー
    タプロセッサ(10)であって、 複数のデータおよび制御信号を前記データプロセッサと
    前記データプロセッサの外部のソースとの間で通信する
    ためのインタフェース手段(22)であって、前記複数
    のデータおよび制御信号は複数のデータ処理操作を実行
    するために与えられるもの、 前記インタフェース手段に結合され前記複数のデータお
    よび制御信号を受信するための命令デコード手段(2
    6)であって、該命令デコード手段は前記複数のデータ
    および制御信号をデコードして前記複数のデータ処理操
    作の内の1つを行なうもの、 前記命令デコード手段に結合され前記複数のデータ処理
    操作の内の第1の部分を実行するための実行手段(4
    2)、 前記複数のデータ処理操作の内の第2の部分を実行する
    ためのキャッシュアクセス手段(56)であって、前記
    複数のデータ処理操作の内の前記第2の部分は前記キャ
    ッシュメモリをアクセスするもの、そして前記キャッシ
    ュアクセス手段に結合された入力および前記インタフェ
    ース手段に結合された双方向ターミナルを有するキャッ
    シュ制御回路(60)であって、該キャッシュ制御回路
    は前記複数のデータ処理操作の内の前記第2の部分に応
    じて前記インタフェース手段に複数の外部キャッシュ操
    作情報信号を提供するもの、 を具備することを特徴とするキャッシュメモリ(54)
    を有するデータプロセッサ(10)。
  4. 【請求項4】 キャッシュメモリを有する第1のデータ
    プロセッサおよび外部装置を有するデータ処理システム
    における、前記第1のデータプロセッサにおいて前記キ
    ャッシュメモリを動作させる方法であって、 複数のデータ処理操作に対応する複数のデータおよび制
    御信号を受信する段階、 前記複数のデータおよび制御信号をデコードして前記デ
    ータ処理操作の実行を開始する段階、 前記キャッシュメモリにおけるアドレスと前記複数の命
    令制御信号の双方に応じてキャッシュメモリをアクセス
    しない複数のデータ処理操作の第1の部分を実行する段
    階、 前記キャッシュメモリにおけるアドレスと前記複数の命
    令制御信号の双方に応じてキャッシュメモリをアクセス
    する前記複数のデータ処理操作の1つの第2の部分を実
    行する段階、そして前記複数のデータ処理操作に応じて
    複数の外部キャッシュ操作情報信号を前記外部装置に提
    供する段階、 を具備することを特徴とする、キャッシュメモリを備え
    た第1のデータプロセッサおよび外部装置を有するデー
    タ処理システムにおける、前記第1のデータプロセッサ
    においてキャッシュメモリを動作させる方法。
JP04601293A 1992-02-28 1993-02-10 キャッシュメモリを有するデータプロセッサ Expired - Lifetime JP3285644B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/844,011 US5375216A (en) 1992-02-28 1992-02-28 Apparatus and method for optimizing performance of a cache memory in a data processing system
US844,011 1992-02-28

Publications (2)

Publication Number Publication Date
JPH0612327A true JPH0612327A (ja) 1994-01-21
JP3285644B2 JP3285644B2 (ja) 2002-05-27

Family

ID=25291545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04601293A Expired - Lifetime JP3285644B2 (ja) 1992-02-28 1993-02-10 キャッシュメモリを有するデータプロセッサ

Country Status (5)

Country Link
US (1) US5375216A (ja)
EP (4) EP0838762B1 (ja)
JP (1) JP3285644B2 (ja)
KR (1) KR100242484B1 (ja)
DE (3) DE69326491D1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006501568A (ja) * 2002-09-30 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
WO2006112111A1 (ja) 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリシステム及びその制御方法
US7577954B2 (en) 2004-06-03 2009-08-18 Ricoh Company Limited Process management method and image forming apparatus
WO2010032435A1 (ja) * 2008-09-17 2010-03-25 パナソニック株式会社 キャッシュメモリ、メモリシステム、データコピー方法及びデータ書き換え方法

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2270791B (en) * 1992-09-21 1996-07-17 Grass Valley Group Disk-based digital video recorder
GB2273181A (en) * 1992-12-02 1994-06-08 Ibm Cache/non-cache access control.
US5524225A (en) * 1992-12-18 1996-06-04 Advanced Micro Devices Inc. Cache system and method for providing software controlled writeback
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
US5630095A (en) * 1993-08-03 1997-05-13 Motorola Inc. Method for use with a data coherency protocol allowing multiple snoop queries to a single snoop transaction and system therefor
US5848432A (en) 1993-08-05 1998-12-08 Hitachi, Ltd. Data processor with variable types of cache memories
US5802574A (en) * 1993-12-28 1998-09-01 Intel Corporation Method and apparatus for quickly modifying cache state
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
TW233354B (en) * 1994-03-04 1994-11-01 Motorola Inc Data processor with memory cache and method of operation
US6279099B1 (en) * 1994-04-29 2001-08-21 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US5669014A (en) * 1994-08-29 1997-09-16 Intel Corporation System and method having processor with selectable burst or no-burst write back mode depending upon signal indicating the system is configured to accept bit width larger than the bus width
JP3713312B2 (ja) * 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
US5651134A (en) * 1994-10-26 1997-07-22 Ncr Corporation Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program
US5802588A (en) * 1995-04-12 1998-09-01 Advanced Micro Devices, Inc. Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US5887152A (en) * 1995-04-12 1999-03-23 Advanced Micro Devices, Inc. Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions
US5774685A (en) * 1995-04-21 1998-06-30 International Business Machines Corporation Method and apparatus for biasing cache LRU for prefetched instructions/data based upon evaluation of speculative conditions
JP2902976B2 (ja) * 1995-06-19 1999-06-07 株式会社東芝 キャッシュフラッシュ装置
EP0752644A3 (en) * 1995-07-07 2001-08-22 Sun Microsystems, Inc. Memory management unit incorporating prefetch control
EP0752645B1 (en) 1995-07-07 2017-11-22 Oracle America, Inc. Tunable software control of Harvard architecture cache memories using prefetch instructions
US5751811A (en) * 1995-08-30 1998-05-12 Magnotti; Joseph C. 32N +D bit key encryption-decryption system using chaos
US5765190A (en) * 1996-04-12 1998-06-09 Motorola Inc. Cache memory in a data processing system
US6192449B1 (en) 1996-04-12 2001-02-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
US5964863A (en) * 1996-04-15 1999-10-12 Motorola, Inc. Method and apparatus for providing pipe fullness information external to a data processing system
US5835946A (en) * 1996-04-18 1998-11-10 International Business Machines Corporation High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations
DE19711322A1 (de) * 1997-03-18 1998-02-26 Siemens Ag Schaltungsanordnung mit einem Prozessor
US5943684A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system
US6202130B1 (en) 1998-04-17 2001-03-13 Motorola, Inc. Data processing system for processing vector data and method therefor
US6240490B1 (en) 1998-07-20 2001-05-29 International Business Machines Corporation Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment
US6978357B1 (en) * 1998-07-24 2005-12-20 Intel Corporation Method and apparatus for performing cache segment flush and cache segment invalidation operations
EP1059586B1 (en) * 1999-06-09 2004-09-08 Texas Instruments Incorporated Shared memory with programmable size
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
JP3973129B2 (ja) * 2000-07-19 2007-09-12 株式会社日立製作所 キャッシュメモリ装置及びそれを用いた中央演算処理装置
US7420929B1 (en) 2002-07-02 2008-09-02 Juniper Networks, Inc. Adaptive network flow analysis
US7251215B1 (en) 2002-08-26 2007-07-31 Juniper Networks, Inc. Adaptive network router
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7194582B1 (en) * 2003-05-30 2007-03-20 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
WO2005050455A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法
US9032095B1 (en) 2004-01-06 2015-05-12 Juniper Networks, Inc. Routing device having multiple logical routers
US20070204107A1 (en) * 2004-02-24 2007-08-30 Analog Devices, Inc. Cache memory background preprocessing
US8112584B1 (en) * 2004-06-28 2012-02-07 Cisco Technology, Inc Storage controller performing a set of multiple operations on cached data with a no-miss guarantee until all of the operations are complete
US7546635B1 (en) 2004-08-11 2009-06-09 Juniper Networks, Inc. Stateful firewall protection for control plane traffic within a network device
US20060277396A1 (en) * 2005-06-06 2006-12-07 Renno Erik K Memory operations in microprocessors with multiple execution modes and register files
US7376807B2 (en) * 2006-02-23 2008-05-20 Freescale Semiconductor, Inc. Data processing system having address translation bypass and method therefor
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
US7747737B1 (en) 2006-05-12 2010-06-29 Juniper Networks, Inc. Network device having service card for dynamic flow capture and monitoring of packet flows
US7633944B1 (en) 2006-05-12 2009-12-15 Juniper Networks, Inc. Managing timeouts for dynamic flow capture and monitoring of packet flows
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
US7831800B2 (en) * 2007-05-17 2010-11-09 Globalfoundries Inc. Technique for prefetching data based on a stride pattern
US7882309B2 (en) * 2007-07-26 2011-02-01 Globalfoundries Inc. Method and apparatus for handling excess data during memory access
JP4576568B2 (ja) * 2007-12-03 2010-11-10 Necカシオモバイルコミュニケーションズ株式会社 ヒンジ構造、及び折り畳み式電子機器
US7984273B2 (en) 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory
US8667226B2 (en) 2008-03-24 2014-03-04 Freescale Semiconductor, Inc. Selective interconnect transaction control for cache coherency maintenance
US8369345B1 (en) 2009-11-13 2013-02-05 Juniper Networks, Inc. Multi-router system having shared network interfaces
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8413132B2 (en) * 2010-09-13 2013-04-02 Samsung Electronics Co., Ltd. Techniques for resolving read-after-write (RAW) conflicts using backup area
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
WO2016012833A1 (en) * 2014-07-21 2016-01-28 Elliptic Technologies Inc. Pre-loading cache lines
US20160077945A1 (en) * 2014-09-11 2016-03-17 Netapp, Inc. Storage system statistical data storage and analysis
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9767041B2 (en) * 2015-05-26 2017-09-19 Intel Corporation Managing sectored cache
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10776118B2 (en) * 2016-09-09 2020-09-15 International Business Machines Corporation Index based memory access using single instruction multiple data unit
US20180074970A1 (en) * 2016-09-09 2018-03-15 Sap Se Cache-Efficient Fragmentation of Data Structures
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10846253B2 (en) 2017-12-21 2020-11-24 Advanced Micro Devices, Inc. Dynamic page state aware scheduling of read/write burst transactions
FR3102868B1 (fr) * 2019-11-04 2021-11-12 Idemia Identity & Security France Procédé pour exécuter une transaction
EP3848813B1 (en) * 2020-01-10 2023-03-08 NXP USA, Inc. Embedded information system and method for memory management
CN115617200A (zh) * 2022-10-18 2023-01-17 北京奕斯伟计算技术股份有限公司 触控电路、tddi芯片和电容式触摸屏
US12367144B2 (en) 2023-06-16 2025-07-22 Google Llc Cache control instructions using object lifetime information
US12554649B2 (en) 2024-03-21 2026-02-17 Google Llc Profile guided memory trimming

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3858182A (en) * 1972-10-10 1974-12-31 Digital Equipment Corp Computer program protection means
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
US4713755A (en) * 1985-06-28 1987-12-15 Hewlett-Packard Company Cache memory consistency control with explicit software instructions
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
US5255378A (en) * 1989-04-05 1993-10-19 Intel Corporation Method of transferring burst data in a microprocessor
US5067078A (en) * 1989-04-17 1991-11-19 Motorola, Inc. Cache which provides status information

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006501568A (ja) * 2002-09-30 2006-01-12 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
US7577954B2 (en) 2004-06-03 2009-08-18 Ricoh Company Limited Process management method and image forming apparatus
WO2006112111A1 (ja) 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリシステム及びその制御方法
EP1868101A4 (en) * 2005-04-08 2009-01-21 Panasonic Corp CACHE STORAGE SYSTEM AND CONTROL PROCEDURE THEREFOR
US7953935B2 (en) 2005-04-08 2011-05-31 Panasonic Corporation Cache memory system, and control method therefor
WO2010032435A1 (ja) * 2008-09-17 2010-03-25 パナソニック株式会社 キャッシュメモリ、メモリシステム、データコピー方法及びデータ書き換え方法

Also Published As

Publication number Publication date
KR100242484B1 (ko) 2000-02-01
EP0557884A1 (en) 1993-09-01
EP1286269A2 (en) 2003-02-26
EP0838762A3 (en) 1998-07-01
EP0838762A2 (en) 1998-04-29
KR930018378A (ko) 1993-09-21
DE69326491D1 (de) 1999-10-28
EP0838762B1 (en) 2002-01-09
EP0895163A1 (en) 1999-02-03
US5375216A (en) 1994-12-20
EP0557884B1 (en) 1999-09-22
JP3285644B2 (ja) 2002-05-27
EP1286269A3 (en) 2009-03-11
DE69332663D1 (de) 2003-02-27
DE69332663T2 (de) 2004-02-19
EP0895163B1 (en) 2003-01-22
DE69331448D1 (de) 2002-02-14
DE69331448T2 (de) 2002-06-20

Similar Documents

Publication Publication Date Title
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
US6151662A (en) Data transaction typing for improved caching and prefetching characteristics
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
US4701844A (en) Dual cache for independent prefetch and execution units
US4926323A (en) Streamlined instruction processor
US7133968B2 (en) Method and apparatus for resolving additional load misses in a single pipeline processor under stalls of instructions not accessing memory-mapped I/O regions
US6665749B1 (en) Bus protocol for efficiently transferring vector data
US6813701B1 (en) Method and apparatus for transferring vector data between memory and a register file
EP0514024B1 (en) Method and apparatus for an improved memory architecture
US6742106B2 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
US5263153A (en) Monitoring control flow in a microprocessor
JPH02190930A (ja) ソフトウエア命令実行装置
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US20030074530A1 (en) Load/store unit with fast memory data access mechanism
JP3218316B2 (ja) 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
EP0380842A2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
JPH05210589A (ja) 高速バッファコピー方法
GB2200481A (en) Maintaining coherence between a microprocessor's integrated cache and external memory
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
JPS63193239A (ja) 命令順序監視装置と方法
KR20010049340A (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080308

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100308

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120308

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130308

Year of fee payment: 11

EXPY Cancellation because of completion of term