JPH11288386A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH11288386A
JPH11288386A JP10368137A JP36813798A JPH11288386A JP H11288386 A JPH11288386 A JP H11288386A JP 10368137 A JP10368137 A JP 10368137A JP 36813798 A JP36813798 A JP 36813798A JP H11288386 A JPH11288386 A JP H11288386A
Authority
JP
Japan
Prior art keywords
cache
information
pixel
pixel data
memory
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
JP10368137A
Other languages
English (en)
Inventor
Steven D Krueger
ディ.クルーゲル スチーブン
Jonathan H Shiell
エイチ.シェル ジョナサン
Ian Chen
チェン イアン
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH11288386A publication Critical patent/JPH11288386A/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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 コンピュータシステムにおける記憶データに
対するアクセスを含む動作効率を向上する。 【解決手段】 コンピュータシステム(8)は、中央処
理装置(12)及び記憶階層を含む。この記憶階層は、
第1のキャッシュメモリ(16)と第2のキャッシュメ
モリ(26)を含む。第1のキャッシュメモリは非画素
情報を記憶出来、そこにこの非画素情報は、中央処理装
置による処理のためアクセス可能である。第2のキャッ
シュメモリは、記憶階層において、第1のキャッシュメ
モリより上位にあり、非画素情報(26b)と画素デー
タ(26a)を記憶出来る幾つかの記憶場所を持つ。最
後に、このコンピュータシステムは、該幾つかの記憶場
所を動的に配分するためのキャッシュ制御回路(24)
を含み、これにより記憶場所の第1のグループは非画素
情報を記憶するためのものであり、また記憶場所の第2
のグループは画素データを記憶するためのものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムに関し、特にマイクロプロセッサ及びマイクロプロ
セッサ使用システム、ならびにより詳しくは、オンチッ
プ画素と非画素の組合せキャッシュ構造をもつマイクロ
プロセッサ回路、システム及び方法を対象とする。
【0002】マイクロプロセッサ技術は、設計のあらゆ
る局面を考慮し、急速に進歩し続けている。設計者は、
効率を最大にしながら、性能の増加のため常に努力して
いる。性能については、種々の関係しまた関係しないマ
イクロプロセッサ回路及び動作の速度を改善することに
より、より大きな全般的なマイクロプロセッサ速度が達
成されている。例えば、動作効率が改善されている1つ
の領域は、平行した順序外れの命令実行を備えることに
よる。別の例としては、動作効率は、命令及び/又はデ
ータを含む情報に対して、より早い、多数のアクセスを
与えることにより改善されている。本発明は、主として
このアクセス能力に指向され、より詳しくは、同一マイ
クロプロセッサによる、命令、非画素データ、及び画素
データを含む種々の形式の情報へのアクセスの改善及び
均一化に指向される。
【0003】
【従来の技術】近代の高性能データ処理システムの分野
における1つの共通のアプローチは、単一チップマイク
ロプロセッサを中央処理装置(CPU)として使用し、
また外部半導体ランダムアクセスメモリ(RAM)を主
システムメモリとして使用することによりそのシステム
を実現することである。主システムメモリは、一般に、
高い密度と低いビット当たり費用のダイナミックRAM
(DRAM)の様なランダムアクセスメモリ(RAM)
装置の形態において実施されるが、従来のDRAMメモ
リの待ち時間及び帯域幅は、時には所望の又は受容でき
るものより小さく、またしばしば近代のマイクロプロセ
ッサのクロックレートに追い付かない。従って,以下に
おいてより良く理解できる様に、このシステムの追加の
局面を開発するときは、今や他のメモリの考察が含まれ
る。
【0004】近代のコンピュータシステムにおける情報
へのアクセス時間の改善のための別の極めて普通なアプ
ローチは、システム内に1つ又はそれより多いレベルの
キャッシュメモリを含めることであり、ここにこのアプ
ローチは、主メモリにおけるデータへのアクセスに較べ
て十分に速い。これらキャッシュメモリは、典型的には
高速スタテイックRAM(SRAM)の比較的小さなブ
ロックであり、これは近い将来にアクセスされそうな記
憶場所の内容を記憶するための、マイクロプロセッサを
もつオンチップ又はオフチップのどちらか(又は両方)
である。典型的には、キャッシュメモリはまた、最近ア
クセスされた記憶場所に近い隣接の記憶場所の内容をも
記憶するが、その理由は、マイクロプロセッサはしばし
ば順次様式でメモリにアクセスし、連続したサイクルに
おける連続したメモリアクセスは、メモリスペースにお
いて相互に接近したメモリアドレスにアクセスすること
が多いからである。従って、近隣の記憶場所の内容を1
つのキャッシュに記憶することにより、メモリアクセス
の大部分は、主メモリに対してなされるよりは、マイク
ロプロセッサによりキャッシュに対して行うことが出来
る。システムの全体の性能は、従って、1つ又はそれよ
り多いキャッシュメモリの具備を通じて改善される。
【0005】最も近代的なマイクロプロセッサシステム
は、多数レベルのキャッシュメモリ(オン又はオフチッ
プのどちらか)を含み、性能を最適化するため、キャッ
シュの容量は、各引き続くレベルでは増加する(またそ
の速度は減少する)。典型的には、最低レベルのキャッ
シュ(即ち、アクセスされる最初のもの)は、階層にお
いてそれより上のキャッシュ(又は複数キャッシュ)よ
りも小さく且つ速く、また与えられた記憶階層における
キャッシュの数は変化してもよい。ともかく、キャッシ
ュを利用する時、1つの情報アドレスが出された時、そ
のアドレスは、典型的には最低レベルのキャッシュへ送
られ、そのキャッシュがそのアドレスに対応する情報を
記憶するかどうかを調べ、即ち、そのキャッシュにおい
て「ヒット」があるかどうかを調べる。もしヒットが発
生すると、そのアドレスされた情報は、記憶階層におけ
る上位のメモリにアクセスする必要なしにそのキャッシ
ュから検索され、そこにその上位のメモリはヒットした
キャッシュメモリよりもアクセスするのに遅そうであ
る。他方、キャッシュのヒットが発生しなければ、そこ
でそれはキャッシュ「ミス」が発生したと言われる。こ
れに応じて、次に上位のメモリ構造に問題のアドレスが
与えられる。この動作は、より下位のレベルのキャッシ
ュのアドレス指定の後に行われてもよく、又はこれと同
じ時間中に行われてもよい。もしこの次に上位のメモリ
構造がもう1つのキャッシュであれば、そこでもう1回
ヒット又はミスが発生するかも知れない。もし各キャッ
シュでミスが発生すると、その時はプロセスは、終局的
にシステムにおける最上位のメモリ構造に到達し、その
時点において、アドレスされた情報はそのメモリから検
索することが出来る。
【0006】その上の背景として、近代のコンピュータ
に関する効率改善の別の方法は、いわゆる統一メモリア
ーキテクチャ(「UMA」)の使用によるものである。
より詳しくは、全体のシステム費用における1つの要因
は、上述のキャッシュシステムを含む、種々の形式及び
数のメモリ構造を含む。しかし、もう1つの考慮は、時
折ビデオメモリ又は画素メモリと呼ばれるものの実施で
あり、即ち、画素データ(即ち、陰極線管モニタの様な
ある形式の画像表示又は他の形式の表示の駆動のための
データ)を記憶するために利用される記憶資源の形式で
ある。UMAシステムの下では画素データは、システム
主メモリへ直接にマッピングされ、その中に記憶され
る。この選択は、1つの別個の画素メモリを備えること
の代替であり、このメモリは、典型的にはマイクロプロ
セッサの外部にあって、画素データを入力し、出力する
ための全くの専用である。従って、UMAシステムは、
システムにおけるこの追加のメモリ構造の必要性又は存
在を除去しており、そこにこの構造は全くの画素データ
の専用である。このアプローチは、典型的には有利であ
ると認められているが、その理由は、主メモリへの潜在
的に遅いアクセスにも拘らず、より大きい主メモリの費
用は、別個の画素メモリを必要とするよりは典型的にか
なり少ないからである。注目すべきは、しかしUMAシ
ステムは特定の面において欠点を含むと考えられること
である。例えば、その画素データの直接のマッピングで
あるために、システム主メモリのある一定の量は他の形
式のデータには利用できないが、それはそのアドレスス
ペースは必然的に画素データの専用であるからである。
別の例として、典型的にシステム主メモリは、単一のバ
スを経由してのみアクセス可能であり、従って、メモリ
構造に記憶されている画素データの一方又は他方又は非
画素データに対してのみ一度に単一のアクセスをするこ
とが出来る。
【0007】
【発明が解決しようとする課題】上述のことからみて、
本発明者は、メモリシステムに関する上の要因の種々の
制約を認識した。従って、これらの従来技術の欠点は勿
論、当業者が理解する他の欠点と較べても種々の面にお
いて効率を改善できる種々の発明性あるコンピュータシ
ステムを以下に提供する。
【0008】
【課題を解決するための手段】本発明においては、中央
処理装置と記憶階層とを含むコンピュータシステムが提
供される。この記憶階層は、第1のキャッシュメモリと
第2のキャッシュメモリを含む。第1のキャッシュメモ
リは、非画素情報を記憶することができ、そこに非画素
情報は、処理のため中央処理装置によりアクセス出来
る。第2のキャッシュメモリは、記憶階層において第1
のキャッシュメモリより上位であり、非画素情報及び画
素データを記憶できる幾つかの記憶場所を持っている。
最後に、コンピュータシステムは、第2のキャッシュメ
モリの該幾つかの記憶場所を動的に配分するためのキャ
ッシュ制御回路を含み、これにより第1のグループの記
憶場所は非画素情報を記憶するためのものであり、また
第2のグループの記憶場所は画素データを記憶するため
のものである。他の回路、システム、及び方法もまた開
示され請求の範囲に記載される。
【0009】
【発明の実施の形態】図1は、本実施例によるコンピュ
ータシステム8のブロック図を示し、これは一般に10
で示す単一集積回路マイクロプロセッサを含む。前置き
として、注目すべきことは、マイクロプロセッサ10の
機能性は種々の形式のマイクロプロセッサ構造内に含ま
れ、この様な形式については当業者により確認すること
が出来る。従って、この様なマイクロプロセッサに関す
る種々の詳細は、図1のメモリ及び他の関係する構成部
品以外は、本記載を簡単にするため示されずまた説明も
されない。最後に注目すべきことは、マイクロプロセッ
サ10の種々の局面は、単一集積回路構成内に含まれて
示されるが、種々の代わりの実施例も引き出すことが出
来、そこではこれ等の機能のあるものはマイクロプロセ
ッサの外部の回路上に形成される。
【0010】図1に示すブロックに移ると、マイクロプ
ロセッサ10は中央処理装置(「CPU」)12を含
む。CPU12は、種々のパイプラインステージ(例え
ば、命令取出し、デコーデイング、スケジューリング、
及び実行)を含むことが出来るが、本実施例の目的とし
てこの様なステージの詳細を探求する必要はなく、それ
よりも注目すべきは、この様なステージの1つ又はそれ
より多くは、一般に以下から理解できるようにキャッシ
ュメモリの種々のレベルへ、またレベルからのアクセス
を提供することである。一般に主メモリ(図示なし)を
加えたキャッシュメモリのこれ等の種々のレベルは、1
つの記憶階層を画定し、そこでは階層的キャッシュメモ
リの一般概念は当該技術において知られている。この様
な階層においては、メモリからのデータの読出し又はメ
モリへのデータの書込みは、最初に最低位の記憶システ
ムから試みられ、次第に上方へとより上位の記憶システ
ムへ向い、そのデータ(又はそれが記憶されるべき場
所)の位置確認が首尾良くできるまで継続される。以下
で理解される様に、しかし、本実施例のキャッシュ階層
の種々の局面は従来技術とは異り、また勿論、後述のよ
うに種々の利益を提供する。
【0011】記憶階層の最低レベルには、16で一般に
示すL1キャッシュがある。この「L1」指示は、当該
技術において知られる様に記憶階層の内容を表示する。
特に、より低い数字指定をもつキャッシュ回路は、後述
のL2及びL3キャッシュ回路の様なより高い数字指定
をもつキャッシュ回路に較べて通常はマイクロプロセッ
サパイプライン(図示なし)の実行ユニットにより接近
している。更に、キャッシュの数字指定は、順位の上昇
の指示であり、キャッシュからデータの読出し又はキャ
ッシュへのデータの書込みのどちらかの時、これらキャ
ッシュは、CPU命令パイプラインのステージによりア
クセスされる。従って、この様なアクセスは、最初にL
1キャッシュに対して行われ、もしこのキャッシュにキ
ャッシュミスが発生すると、L2キャッシュに対するア
クセスがこれに続き、以下これが記憶階層を通して行わ
れ、あるキャッシュか又は他のメモリ構造のどちらかに
おいてヒットが発見されるまでなされる。本実施例にお
いて、L1キャッシュ16は、2つの別個のメモリ構造
に分離され、第1の構造はL1データキャッシュ16a
を形成し、第2の構造はL1命令キャッシュ16bを形
成する。代わりの実施例においては、しかし、これらの
2つの構造は、統一キャッシュを形成するために組み合
わせることが出来る。L1データキャッシュ16a及び
L1命令キャッシュ16bに戻ると、各々は、夫々のバ
ス18a及び18bを経由してCPU12に接続され
る。好ましい実施例においては、L1データキャッシュ
16a及びL1命令キャッシュ16bの各々は、合計8
キロバイトのデータを32個のバイトブロックの中に記
憶出来る双方向セット連想キャッシュであり、各方向
(way)は一度に128ビット(即ち、16バイト)
を出力するように動作できる。キャッシュ16a及び1
6bに関して注目すべきは、各々の名称は対応するキャ
ッシュにより記憶される情報の形式を指定する。より詳
しくは、データキャッシュ16aは、現在のマイクロプ
ロセッサにおいて使用される様な意味においてキャッシ
ュ可能なデータの記憶に好ましくは制限されが、命令を
含むことは制限されない。これに対して、命令キャッシ
ュ16bは、好ましくは、CPU12へ取り出されるべ
き、そしてこれにより実行される命令の記憶に制限され
る。
【0012】マイクロプロセッサ10は、更にL2統一
キャッシュ20を含み、これはバス22aを経由してL
1データキャッシュ16aに接続され、バス22bを経
由してL1命令キャッシュ16bに接続される。注目す
べきは、L2キャッシュは、「統一」キャッシュと呼ば
れるが、それはデータ(これはアドレス変換情報を含
む)の記憶に加えて命令を記憶するからである。好まし
い実施例においては、L2統一キャッシュ20は、4方
向セット連想キャッシュであり、合計64キロバイトの
情報を32個のバイトサブブロックの中に記憶出来、各
方向(way)は一度に256ビット(即ち、32バイ
ト)を出力するように動作できる。
【0013】図1における最初の2つの異るレベルのキ
ャッシュに注目した後、更に注目すべきは、この様なキ
ャッシュ16、及び20の各々はまた、アドレス及び裁
定回路24に接続されることである。裁定回路24は、
一般に、1つ又はそれより多いキャッシュ制御回路の機
能性を表示するために含まれ、このキャッシュ制御回路
はCPU12が既知の方法で異るキャッシュをアドレス
指定することを可能にし、これにより階層は、最初によ
り下位の優先するキャッシュをアドレス指定し、また下
位キャッシュのミスの場合はより上位のキャッシュをア
ドレス指定することにより正しく維持される。従って、
この明細書に裁定及び/又は優先付与方法を示した後
は、裁定回路24を形成するために当該技術における知
識を用いて種々の回路手段を使用することが出来る。更
に、注目すべきことは、裁定回路24は、変換索引バッ
ファ(「TLB」)24aを含む。TLB24aは、一
般に当該技術で知られた様に動作し、即ち、前に決定さ
れたアドレス変換(対応するタグと共に)、即ち、論理
アドレスを物理アドレスへ変換したものを記憶する。こ
れらの変換されたものは、当該技術で知られた方法で、
L1キャッシュ16及びL2キャッシュ20のアドレス
指定に向けられてもよい。更に、TLB24aは、当該
技術で知られた様にアドレスへ変換を提供するが、これ
らの変換されたものは、後述の追加のキャッシュ回路
を、発明性ある本実施例に従ってアドレスするため使用
される。更に、後述する様に、この追加のキャッシュへ
向けられるようなTLB24aのエントリは、種々の追
加の機能性を支援するための追加のタグ情報を含めるた
めに更に修正される。最後に注目すべきことは、アドレ
ス及び裁定回路24は、次に述べるメモリアクセス機能
性を達成するのに必要な限度で追加の回路を含むことが
出来、そこにこの様な追加の回路は、現在のキャッシュ
制御回路は勿論、この明細書に述べられている追加の機
能の説明が与えられているので、当業者により確認する
ことが出来る。
【0014】上述により、当業者はこの時点において、
CPU12は、階層的な方法において情報(例えば、デ
ータ、命令、アドレス変換情報)を読出し及び書込むた
めにキャッシュメモリの2つのレベルをアドレスするこ
とが出来ることを理解するであろう。この点について、
これらのキャッシュへのアクセスは、種々の知られた方
法、又は本出願の譲受人に譲渡された特許により教示さ
れる他の方法で行うことが出来る。1つのこの様な例と
して、読者に、米国仮特許出願60/029,231
(代理人ドケットTI−20837)で「マイクロプロ
セッサ回路、システム、及びキャッシュ読出時間の少な
い方法」と題し、発明者がパトリックW.ボッシャート
氏で1996年10月31日出願されたものを参照し、
これは、ここに引用して組入れる。
【0015】これまで紹介したキャッシュメモリの2つ
のレベルに加えて、注目すべきは本実施例は、L3キャ
ッシュ26として一般に示されるキャッシュメモリの第
3のレベルを更に含む。好ましい実施例において、L3
キャッシュ26は、その大きさ(size)が与えられ
ると、構造を簡単化するため直接マッピングされるメモ
リであり(即ち、上述のキャッシュ構造がそうであるよ
うなセット連想構造と反対に)、また合計5メガバイト
の情報を記憶できる。また好ましい実施例において、L
3キャッシュ26は、ページ指向(page orie
nted)であり、そのブロックの各々は4キロバイト
の情報を記憶する。注目すべきは、いくらかの筆者はサ
ブブロックに分けられていないキャッシュにおけるこの
様なブロックをキャッシュラインと呼んでいる。ともか
く、4キロバイトブロックの各々は好ましくはサブブロ
ックに分けられ、これによりその複数あるサブブロック
はL2キャッシュ20のブロックの大きさに匹敵し、従
って、L3キャッシュ26における各ブロックは複数の
64バイトサブブロックを含み、ブロック当たり合計6
4サブブロック(即ち、64バイトサブブロック*64
サブブロック=4キロバイト)となる。従って、好まし
い実施例において、L3キャッシュ26は、単一アクセ
スにおいてこれら64バイトサブブロックの1個から6
4個までを出力するように動作出来る。L3キャッシュ
26からの情報の出力に関しては、注目すべきは、それ
はその出力を3つの異る宛先へ提供出来る。
【0016】第1に、L3キャッシュ26は、64個の
サブブロックまで、サイクル当たり1個をバス28を経
由してL2キャッシュ20へ出力出来る。第2に、L3
キャッシュ26は、64個のサブブロックまで、サイク
ル当たり多数のサブブロックをバス30を経由して画素
出力FIFO32へ出力出来る。画素出力FIFO32
は、情報の多数のブロックを並列様式で入力出来る記憶
装置であり、更に、この情報を、以下により明らかな理
由により、直列様式で出力するように動作出来る。第3
に、L3キャッシュ26は、64個のサブブロックま
で、サイクル当たり1個をバス34を経由してバイパス
レジスタ36ヘ出力出来る。バイパスレジスタ36は、
一群の情報の一部又は全部のどちらかを並列様式で入力
及び出力出来る標準記憶レジスタである。最後に、注目
すべきは、バス34は、双方向であり、従って、情報は
バイパスレジスタ36からL3キャッシュ26へ書込む
ことが出来る。
【0017】図1の例示を大体終わるが,L3キャッシ
ュ26は更にバス44によりバスインタフェースユニッ
ト(「BIU」)46に接続され、これはバスBに接続
される。バスBは、マイクロプロセッサ10から外部へ
延び、従って、マイクロプロセッサ10とその外部の他
の要素との間の通信を制御し遂行出来、これらの要素に
は、記憶階層においてL3キャッシュ26より上位の外
部メモリ(及び、勿論、下位レベルキャッシュより上位
のものも)含まれる。この点で、マイクロプロセッサの
外部のいかなる追加の要素も、簡単化のため詳細には述
べないが、この様な要素の例は当業者により容易に確認
出来る。
【0018】L3キャッシュ26の物理的大きさと接続
と紹介したが、本実施例に関して、L3キャッシュ26
が2つの異る記憶領域26aと26bを含むように形成
するのが好ましいことが発見された。より詳しくは、L
3キャッシュ26の全体の大きさは固定(例えば、5メ
ガバイトに)されるが、好ましい実施例では、この固定
された大きさは2つの異る記憶領域に配分される。これ
らの2つの記憶領域26aと26bの間で異るものは、
各この様な領域に書込みが許される情報の形式である。
特に、好ましい実施例では、記憶領域26aは、現在の
技術においてビデオデータと呼ばれ、より正確には画素
データと呼ばれる情報の形式を記憶するだけに動作出来
る。当該技術において知られる様に、画素はピクチャエ
レメントに対する略語であり、そこにピクチャエレメン
トは、コンピュータモニタ又は他の表示装置上に表示す
るための単一の点を表す。現在の従来技術システムにお
いては、この様な画素データは、UMAシステムにおけ
る主メモリ内又は他のメモリ構造内の様な、マイクロプ
ロセッサの外部、ビデオグラフィックカード上のメモリ
の様な、マイクロプロセッサの外部に記憶される。これ
に対し、本実施例では、画素データのこの形式は、26
aで識別される構造内に記憶出来、従って、この構造
は、今後画素データ記憶領域26aと呼ばれる。これに
対して、しかし、記憶領域26bは、画素データ以外の
情報を記憶するように動作出来、この情報は、その当時
の技術の下でキャッシュ構造内に典型的に記憶される情
報の形式である(例えば、命令、アドレス変換、非画素
オペランド等)。従って、構造26bは、今後非画素情
報記憶領域26bと呼ばれる。
【0019】最後に、領域26aと26bの異る性質を
紹介したが、注目すべきは、これらの領域が相互に別個
であるとする記述を、物理的方法よりはむしろ論理的方
法において実施するのが好ましい。換言すれば、記憶領
域26bは、その全体において単一の記憶領域である
が、その領域の隣接する複数の場所か隣接しない複数の
場所かのどちらかを、画素データ記憶領域26aか非画
素情報記憶領域26bかのどちらかに割当てることが出
来る。アドレススペースの割当は勿論、記憶領域26a
と26bの各々に利用可能な記憶の量についても以下に
述べる。
【0020】L3キャッシュ26の追加の局面として、
注目すべきは、記憶領域26aと26bの間の記憶スペ
ースの配分は、本実施例の下では、好ましくは動的に形
成可能である。好ましい実施例において、この動的な形
成は、マイクロプロセッサ10が実施されるコンピュー
タ環境のビデオセットアップに基づいている。より詳し
くは、今や注目すべきは、マイクロプロセッサ10は、
ビデオ制御回路38と通信するため更に接続され、より
詳しくはマイクロプロセッサ10のCPU12がこの方
法で接続される。好ましい実施例において、ビデオ制御
回路38は、ビデオマイクロコントローラ(時には、グ
ラフィックスコントローラと呼ばれる)により典型的に
は実施される1つ又はそれより多い回路を表し、従っ
て、アドレス及びビデオタイミング信号発生の様な画素
データの使用に関連する種々の機能を遂行することが出
来る。ビデオ制御回路38は、好ましくはプログラマブ
ルであり、従って、図示はないが、その機能性をプログ
ラムするためのパラメタを記憶するレジスタを含み、そ
こにこの様なレジスタは、この様な情報を導体又はバス
Bの様なバスから受ける(導体も示されていないが)。
更に、ビデオ制御回路38は、マイクロプロセッサ10
の外部にあるとして示されるが、その機能性の一部か全
部かのいずれかは、マイクロプロセッサ10を形成する
単一の集積回路内に含めることが出来ることに注目すべ
きである。またこの面において、及び後でより明らかに
なる理由により、画素出力FIFO32は、外部に存在
する従来のデイジタルアナログ変換(「DAC」)回路
40に接続されていることに注目すべきである。DAC
40は、しばしばビデオRAM・DACと呼ばれる装置
としてビデオ技術において知られた方法で動作し、即
ち、デイジタル画素データをRAMから直列様式で受
け、このデータを変換して対応するアナログ信号を表示
装置へ供給する1つの装置である。この最後の点におい
て、注目すべきは、この好ましい実施例において、この
DAC40は、その出力を表示装置42へ供給するため
に接続され、そこにこの表示装置42は、当業者により
確認できるようにっ種々の型式のデイスプレイから選択
出来る。
【0021】勿論、更に注目すべきは、図1はこのデイ
ジタルアナログ変換属性を示しているが、現在の教示内
で代わりの実施例を作ることが出来、そこではデイスプ
レイはアナログ信号ではなくデイジタルを受入れ、この
場合、DAC40により遂行される変換は必要がないで
あろう。ともかく、CPU12とビデオ制御回路38と
の間の接続に戻ると、本実施例はCPU12が、ビデオ
制御回路38に関してなされるセッテイングへのアクセ
スをもつことを予期しており、これはいかなる与えられ
た時にマイクロプロセッサ10により使用されているビ
デオモードの形式を示している。この理由により、ビデ
オモードを直ぐ以下に紹介し、これに引き続いて、この
モードに応じた好ましい実施例の下でのL3キャッシュ
26の動的な構成を述べる。
【0022】ビデオ技術においては、ビデオモードは、
画素当たりのビットの数が与えられると必要な画素メモ
リの量を定義することは知られている。この点につい
て、注目すべきは、画素データは通常グループ分けさ
れ、これにより単一画素は、8、16、24、又は32
ビットにより表される。非UMAシステムに対する従来
技術の下では、典型的にはこのモードは、ある量の専用
のメモリを持つグラフィックスカードに関連している。
例えば、その当時の標準の下では、1メガバイトの画素
メモリをもつ1つのグラフィックスカードは、その1メ
ガバイトメモリに対して1メガバイトビデオモードを定
義する。換言すれば、画素メモリの1メガバイトが画素
データを記憶するために利用でき、従って、そのメモリ
の1メガバイトにより与えられる制限を超えないように
種々のシステム制約は維持されなければならない。1つ
のこの様な制限として、そのメモリは1メガバイトに制
限されているので、システムソフトウエア(自動的にか
ユーザ入力によるかのどちらか)は、そのシステムによ
り使用されているカラーの数が与えられたとき、画素表
示の分解能が高過ぎないことを確保しなければならな
い。従って、1メガバイトビデオモード(例えば、グラ
フィックスカード)のユーザが、8ビットカラー方式を
選択していれば、そのユーザは1024x768画素の
画面分解能を使用出来るが、その理由は、それが、画素
メモリの768キロバイトのオーダしか要求しないから
である。他方、その同じユーザは、もしそのユーザが6
4Kカラー(即ち、画素当たり16ビット)を希望すれ
ばその同じ画面分解能を使用出来ないが、その理由は、
それにより要求される合計メモリ(即ち、約1.5メガ
バイト)は、そのビデオモード(即ち、1メガバイト)
により与えられるものを超えるからである。勿論、この
ユーザは、800x600画素の様なより低い分解能を
選択することが出来、この場合、64Kカラーは収容出
来る。
【0023】ビデオモードを紹介したが、さて画素デー
タ記憶領域26aと非画素情報記憶領域26bの間のL
3キャッシュ26のメモリスペースの配分を参照する。
第1に思い出すことは、CPU12は、例としてビデオ
制御回路38から、現在のビデオモード、即ち、ビデオ
制御回路38がその時その下で動作しているビデオモー
ドの指示が受けられるように接続されていることであ
る。第2に思い出すことは、TLB24aは、次に更に
詳細に述べる様に、L3キャッシュ26をアドレスする
ための情報を含むことである。これらの特徴が与えられ
ると、この好ましい実施例の下で且つ検出されたビデオ
モードに応じて、CPU12はTLB24aに指示を提
供し、これによりTLB24aは、第1のメモリスペー
スの量を画素データ記憶領域26aに配分し、L3キャ
ッシュ26の残りのスペースを非画素情報記憶領域26
bに配分する。例えば、L3キャッシュ26が上述の様
に5メガバイトの場合には、下の表1は、1024x7
68デイスプレイに対して、画素当たりのビット数で定
義されるモードの小分け及び記憶場所のこれらの5メガ
バイトの配分を示している。
【0024】
【表1】
【0025】表1において、文字は単に与えられたビデ
オモードを示すために用いられ、そこにそのモードはビ
デオ制御回路38により種々の方法でCPU12へ伝え
られ、この例では画素当たりのビットの数に基づいてい
る。ともかく、表1が与えられると、CPU12はビデ
オ制御回路38から、それはモードAであることを検出
するものと仮定する。これに応じて、CPU12は十分
な情報をTLB24aへ出し、これにより、それが提供
するアドレス変換は、L3キャッシュ26ヘ向けられる
と、画素データ記憶領域26aに対する記憶の量を画素
データの0.75メガバイトに制限する。更に、従っ
て、合計5メガバイトの残りの4.25メガバイトは非
画素情報記憶領域26bに記憶されるべき非画素のため
に配分される。注目すべきは、この変化を生じさせる回
路及びこの変化により課せられる限界は、当業者により
確認される種々の方法により達成できる。例えば、種々
のレジスタ又はテーブルをTLB24a内に備えること
が出来、これらは、領域26aと26bの所望の分離を
維持するためにL3キャッシュ26の物理アドレスを正
しく配分するため設定されそして次に再設定される。と
もかく、残りのモードのBからDは、従って、当業者に
より理解されるであろう。更に、注目すべきは、表1
は、単なる例としてであり、他のモードを含めることも
出来、またL3キャッシュ26の大きさを全体として修
正することも出来る。ともかく、この好ましい実施例
は、修正されることが出来、これによりこれらのシナリ
オの各々において、L3キャッシュ26の配分は、マイ
クロプロセッサ10及びビデオ制御回路38を含むシス
テムが動作しているビデオモードに応じて動的に変更出
来る。
【0026】L3キャッシュ26の2つの記憶領域の間
の記憶スペースの配分の局面について説明したが、今や
これらの領域に記憶されている情報のアクセス及び出力
に注意すべきである。CPU12によりある形式の情報
が所望されると(即ち、画素か非画素かのどちらか)、
CPU12は、論理アドレスをアドレス及び裁定回路2
4へ出す。更に、注目すべきは、ある他のアドレス指定
回路が要求されたアドレスをアドレスバス上に置くこと
が出来、従って、CPU12は、例としてのみ使用され
る。さて論理アドレスの効果を見ると、それはアドレス
及び裁定回路24のTLB24aへ向けられる。これに
応じて、TLB24aが早くからこの論理アドレスに対
する有効な応答を記憶していると仮定すると、それは、
L1キャッシュ16とL2キャッシュ20の両方のアド
レス指定に使用されるための物理アドレスを出力し、ま
たL3キャッシュ26のためのタグを出力する。1つの
実施例においては、物理アドレスのL1キャッシュ16
とL2キャッシュ20への供給は、当該技術において知
られた方法で進行し、即ち、その物理アドレスをL1キ
ャッシュ16に関連するタグメモリに記憶されているア
ドレスと比較することによりL1キャッシュ16内にヒ
ットがあるかどうかの決定がなされ、ヒットの場合は情
報はそのキャッシュから出力され、代わりに、もしL1
キャッシュ16内にミスがあれば、情報は、もしL2キ
ャッシュ20内にヒットがあればそのL2キャッシュか
ら出力される。これらのより下位のキャッシュは、当該
技術において理解されており、この好ましい実施例は、
さらにL3キャッシュ26の動的に変更可能な構造を対
象としており、従って、以下の論議はこの構造へのアド
レス指定及びこの構造からの情報の出力に集中する。更
に、代わりの実施例においては、L1キャッシュ16及
びL2キャッシュ20におけるアドレスされた情報を求
めるため、もしアドレスされた情報が画素データである
ことが決定(例えば、L3キャッシュタグから)される
と、L1キャッシュ16及びL2キャッシュ20は調査
される必要はない。それは定義により、これらのキャッ
シュは画素データを記憶しないからである。従って、そ
れよりも、プロセスは、更に以下から理解されるように
L3キャッシュ26のアクセスで続けることができる。
【0027】L1キャッシュ16及びL2キャッシュ2
0の両方にミスがあると仮定すると(又はアドレスされ
た情報が画素データであることが知られると)、問題に
なっている論理アドレスに対応するTLB24aからの
タグ情報が(タグ情報はTLB24aで利用可能であっ
たと仮定すると)、L3キャッシュ26内の情報がCP
U12からの論理アドレスに応じて出力されるべきもの
であることを識別する。さらに進む前に、注意すべきこ
とは、この好ましい実施例においては、L3キャッシュ
26へのエントリに対応するタグ情報は、図2において
後で詳細にする様にとりわけ、単一ビットで実施できる
情報形式インジケータを含むのが好ましい。この情報形
式インジケータは、第1の2進状態(例えば、0)にあ
る時は、対応する情報が非画素情報であることを示し、
また第2の2進状態(例えば、1)にある時は、対応す
る情報が画素データであることを示す。形式インジケー
タがTLB24aタグ内に存在すれば、L3キャッシュ
26の動作は、アドレスされている情報が非画素情報で
あることを示しているインジケータに対して第1の方法
で応答し、またアドレスされている情報が画素データで
あることを示しているインジケータに対して第2の方法
で応答する。これらの二者択一の各々については以下に
述べる。
【0028】論理アドレスがCPU12により出される
と、ミスが既にL1キャッシュ16とL2キャッシュ2
0に発生しており、また有効タグが既にTLB24aに
より出力されており、このタグは、L3キャッシュ26
内のアドレスされた情報は非画素情報であることを示す
情報形式インジケータを含み、それで、このアドレスさ
れた情報の経路はさらに、アドレスバス上へのアドレス
の供給に伴う動作要求が読取りか又は書込みかに依存す
る。最初に読取りの場合に気を付けると、そこでL3キ
ャッシュ26内のアドレスされた情報は、L3キャッシ
ュ26により好ましくは2つの異る宛先の1つに与えら
れ、そこに宛先の各々は早くから導入されたものであ
る。これらの宛先に立ち戻る前に、より具体的に注目す
べきは、アドレスされた情報は非画素情報であるので、
それはL3キャッシュ26の非画素情報記憶領域26a
からアクセスされ、即ち、それは、早くから非画素情報
だけを記憶するために配分されたL3キャッシュ26の
部分からアクセスされる。
【0029】さて、読取りの場合、非画素情報記憶領域
26bからのアドレスされた情報の第1の宛先に気を付
けると、L3キャッシュ26はアドレスされた情報をバ
ス28を経由してバイパスレジスタ36へ出力すること
ができる。さて、読取りの場合、非画素情報記憶領域2
6bからのアドレスされた情報の第2の宛先に気を付け
ると、L3キャッシュ26はアドレスされた情報をバス
28を経由してL2キャッシュ20へ出力することがで
きる。上のことが与えられると、当業者は、アドレスさ
れた情報は、バイパスレジスタ36を経由してCPU1
2で直ちに利用出来、又はL2キャッシュ20から始ま
るより下位のキャッシュへ回すことができることを理解
する筈である。また、これについて注目すべきは、バイ
パスレジスタ36はこの機能性を提供するため別個の記
憶装置として示されるが、L2キャッシュ20とL1キ
ャッシュ16の経路を通るバス28からのバイパス回路
を含む代わりの実施例において匹敵する結果が達成さ
れ、これによりこれらのキャッシュ構造はCPU12に
よるアドレスされた情報への即時のアクセスのためにバ
イパスされることが出来る。読取りのための情報経路の
上の論議が与えられると、当業者は書込みのための反対
方向における情報経路を理解する筈である。換言すれ
ば、もしCPU12が、L3キャッシュ26における非
画素情報のヒットを生じるアドレスを提供し、また動作
要求の形式が書込みであれば、その時は、この非画素情
報はCPU12からバイパスレジスタ36へ出されるこ
とが出来、またこの点から非画素情報記憶領域26bへ
転送することが出来る。
【0030】論理アドレスがCPU12から出される
と、ミスがL1キャッシュ16とL2キャッシュ20に
おいて既に発生しており、またL3キャッシュ26にお
けるアドレスされた情報が画素情報であることを示す情
報形式インジケータを含む有効タグが既にTLB24a
により出力されていれば、その時は、アドレスされた情
報の経路は、もう一度、アドレスバス上へのアドレスの
発行に伴う動作要求にさらに依存する。しかし、注目す
べきは、画素データが関係するので、読取り及び書込み
動作に加えて、ここに表示動作と呼ばれる第3の動作が
ある。その上、読取り及び書込みの例に対する経路は、
非画素情報に対して上に述べたのと同じであり、1つの
例外は、その主題のデータは、非画素情報記憶領域26
bよりは画素データ記憶領域26aから読取られるかそ
こへ書込まれるかのどちらかであり、また別の例外は、
画素データが記憶領域26aから読取られると、好まし
くはバイパスレジスタ36を経由してCPU12に到達
し、L2キャッシュ20とL1キャッシュ16を通過し
ないことであり、その理由は、これらのキャッシュはこ
の好ましい実施例では画素データを記憶しないからであ
る。ともかく、従って、読者には、より詳細な読取り及
び書込みについては、前述の論議を参照する。
【0031】さて、画素データが表示動作のためにアド
レスされる場合に移ると、その時は、アドレスされたデ
ータは好ましくはL3キャッシュ26により画素出力F
IFO32に与えられる。ここで注目すべきは、アドレ
スされた情報が画素データであるので、その時は、その
データはL3キャッシュ26の画素データ記憶領域26
aからアクセスされ、即ち、そのデータは、早くから画
素データのみを記憶するように配分されたL3キャッシ
ュ26の部分からアクセスされる。さて、画素出力FI
FO32へのアドレスされた画素データの宛先に戻る
と、当業者は、今や、FIFOの出力能力を理解出来
る。より詳しくは、注目すべきは、画素出力FIFO3
2は、1つ又はそれより多い制御信号をビデオ制御回路
38から受けるように接続され、また回路38は、とり
わけタイミング制御信号を提供することが出来ることが
思い出される。従って、一旦画素データが、L3キャッ
シュ26から画素出力FIFO32へ出力されると、こ
れらの制御信号は、画素出力FIFO32に対してこの
画素データをDAC回路40へ出力させる。前述のよう
に、これに応じて、DAC回路40は、表示装置42を
駆動するため直列データを適当なアナログ信号へ変換
し、これにより画素データを画像出力としてユーザに提
示する。最後に注目すべきは、画素出力FIFO32
は、充満/空制御信号(図1においてF/Eと略称す
る)をアドレス及び裁定回路24へ与える。より詳しく
は、画素出力FIFO32が、空又は空に近付くと、そ
れは、この状態をアドレス及び裁定回路24へ示して次
の画素データアドレスがL3キャッシュ26へ出される
ようにし、これにより追加の画素データは画素出力FI
FO32へ出力され、直ぐ前に述べたと同じ方法で表示
のために出力される。
【0032】上の動作も説明が与えられると、当業者は
この好ましい実施例の多くの利益を理解する筈である。
この好ましい実施例の利益の最初の例として、画素デー
タは、従来技術のシステムに較べてCPU(例えば、C
PU12)により容易にアクセスすることが出来、従来
技術ではこの様なデータは、マイクロプロセッサの外部
の記憶回路にのみ記憶されることを要求する。換言すれ
ば、画素データはこの好ましい実施例においては、キャ
ッシュ可能なデータとなり、ところが、現在の技術の下
では、この様なデータは、普通、非キャッシュ可能デー
タと考えられ、従って、オンチップにもオフチップキャ
ッシュ構造にも記憶されることは許されない。これらの
システムにおいて、画素データが、キャッシュ不可能
(non−cacheable)であれば、この様なデ
ータへのアクセスは、画素データを記憶する非キャッシ
ュ構造に対するバス制限及びアクセス時間の様な制限に
より制約される。これに対して、この好ましい実施例に
おいては、画素データ記憶領域26aに記憶される画素
データは、非画素情報記憶領域26bに記憶される非画
素情報がそうである様に容易且つ直ちにアクセスされる
ことが容易に理解される。この好ましい実施例の利益の
第2の例として、画素データ及び非画素情報の両方に利
用出来る記憶の量は動的に変更可能である。これはまた
従来技術とも対照的である。例えば、画素データのため
にメモリにおける専用の又は固定のマッピングを使用す
る従来のシステムにおいては、そのシステムに利用でき
るビデオモードは制限されるが、その理由は、画素記憶
の固定された量は、利用できる記憶装置が与えられたと
き許されるビデオモードを制限するかも知れないからで
ある。これに対して、好ましい実施例の下で且つL3キ
ャッシュ26が十分に大きいと仮定すると、この制限
は、L3キャッシュ26の十分の記憶領域を画素データ
の記憶のために配分することにより克服できる。
【0033】更に、注目すべきは、L3キャッシュ26
の配分を動的に変更出来る能力は、この利益をさらに支
持するのは勿論、他の利益も提供する。特に、あるビデ
オモードを収容するためにL3キャッシュ26を配分す
ることが出来るが、他方それでいて、比較的大きいか比
較的小さい量のスペースかのどちらかをキャッシュ内に
おいて非画素情報のために使用されることを許してい
る。これは、専用の画素メモリとは対照的であり、この
メモリは、たとえある与えられた時間に十分に使用され
ていなくても、非画素情報のために追加の記憶スペース
を提供しない。更に、この好ましい実施例では、動作し
ている現在のビデオモードに基づいてL3キャッシュ2
6を配分するが、注目すべきは、そのスペースを画素デ
ータと非画素情報の間で配分することが望ましい他の場
合が起こる可能性があり、またこれらの場合も同様に従
来技術に勝る利益を与えることが出来る。この好ましい
実施例の利益の第3の例として、この強化されたビデオ
能力はさらに改善されるであろうし、またオンチップメ
モリを形成する能力が進歩し続けるに従って容易に修正
される。換言すれば、上記で与えられた5メガバイトの
値は種々のその当時の応用には適しているかも知れない
が、本実施例は、種々の要因が、マイクロプロセッサの
機能性として同じ集積回路上に形成されるメモリの大き
さを受容できる様に増加させる能力に寄与するにつれて
将来において更に強化され、これにより5メガバイトよ
り遥かに大きい全体キャッシュを提供する。この場合、
より大きな構造はある場合には、その記憶能力の大部分
を画素データに配分し、他方それでも、非画素情報のた
めの追加の記憶の後退(fallback)位置を与え
ている。更に追加の利益は、画素データタグ情報及びL
3キャッシュ26の他の動作局面に関して以下に詳細に
述べるように、この好ましい実施例の追加の局面から生
じることが理解されるであろう。
【0034】この好ましい実施例に関する1つの追加の
局面は、L3キャッシュ26に記憶される情報のスヌー
ピング(snooping)に関して生じる。特に、キ
ャッシュ構造として、正しいメモリのコヒーレンシイ
(coherency)を維持するのが望ましく、即
ち、L3キャッシュ26内の情報のどのコピーも、より
上位のメモリ(例えばメモリ)に記憶されているものに
一致するか、情報の完全さを保持するためより上位のメ
モリにおけるコピーを更新するため出力されるかのどち
らかである。この点について、従って注目すべきは、ア
ドレス及び裁定回路24は、L3キャッシュ26のスヌ
ーピングを許し、またこの様なスヌーピングが、画素デ
ータ記憶領域26a内の画素データ及び非画素情報記憶
領域26b内の非画素情報の両方に適用されるための適
当な回路を更に含む。スヌーピングは、当該技術におい
て知られており、一般に2つの異る形式のスヌープ要求
を含み、これらの各々は、そのスヌープ要求に伴う又は
これに対応する明示アドレスにより識別される1つ又は
それより多い記憶場所に関連している。2つの形式のス
ヌープ要求については、一般に、この様な要求の第1の
形式は、要求している回路がアドレスされている情報の
共有を求めていることを、1つのキャッシュ又は複数の
キャッシュ(例えば、L3キャッシュ26を含む)に示
す。もしL3キャッシュ26がアドレスされている情報
のコピーを持たない時は、それは要求に対してなんらの
行動も取らないだけである。他方、もしL3キャッシュ
26がアドレスされている情報のコピーを持っており、
またその情報が、それがキャッシュ内に記憶された時以
来修正されていれば、そのときは、L3キャッシュ26
は、アドレスされている情報を、BIU46及びバスB
を経由して主メモリへ出力する(図1に示されず)。
【0035】従って、要求している回路は、そこでアド
レスされている情報を主メモリから読出すことが出来
(又はそれはキャッシュから主メモリへ書込まれている
ので、バスからそれを「スナーフ」(snarf)出来
る)。スヌープ要求の第2の形式は、要求している回路
がアドレスされている情報を求めており、またその情報
を変更するであろうことを1つのキャッシュ又は複数の
キャッシュに示す(L3キャッシュ26を含む)。再
び、もしL3キャッシュ26がアドレスされている情報
のコピーを持たない時は、それは要求に対してなんらの
行動も取らないだけである。他方、もしL3キャッシュ
26がアドレスされている情報のコピーを持っており、
またその情報が、それがL3キャッシュ26内に記憶さ
れた時以来修正されていれば(即ち、その情報のコピー
は、当該技術において呼ばれるように「汚れている」
(dirty))、その時は、そのキャッシュはまたア
ドレスされている情報を主メモリへ出力する。しかし、
注目すべきは、要求している回路は、その情報を変更す
るので、L3キャッシュ26は、変更された情報の引き
続く使用を防止するためそれ自身の情報のコピーを無効
にしなければならない。
【0036】図2は、情報の種々のフィールドを示し、
これは、L3キャッシュ26におけるエントリに対応す
るTLB24aのための各エントリに含めることが出来
る。初めに、注目すべきは、TLB情報の幾つかのフィ
ールドは、画素データと非画素情報の両方に向けられ、
他方、情報の他のフィールドは、画素データのみに向け
られ、これは以下の論議から明らかであろう。一般に図
2は、8個の情報フィールドを示し、そこにこれらのフ
ィールドの各々は、フィールド当たり1個又はそれより
多いビットを用いて2進形式でコード化出来る。更に、
最初の2つのフィールド(即ち、図2で左へ最も遠く示
されるもの)は、アドレス検出に関係するが、残りの7
つのフィールドは、TLBエントリに対応するデータを
特徴付ける。これらフィールドの各々は以下に説明され
る。
【0037】さて最初の2つの情報フィールドを見る
と、第1の情報フィールドは、仮想アドレスコンパレー
タ(VAと略す)であり、他方、第2の情報フィールド
は、L3キャッシュ26における対応する物理アドレス
(PAと略す)である。換言すれば、ある与えられたT
LBエントリに対して、この物理アドレスは、L3キャ
ッシュ26における特定のブロック(又はライン)を識
別し、これはそのエントリにおける残りのフィールドに
より記述される。注目すべきは、この物理アドレス(時
には、ブロック及びオフセット識別子と呼ばれる)をT
LB24に含めることは、この好ましい実施例の1つの
利益ある局面である。特に、この物理アドレスをTLB
24に含めることにより、L3キャッシュ26にアクセ
スする時要求される別個のタグ比較はない。従って、こ
の様なタグ比較に費やされる追加の要求時間はない。こ
の好ましい実施例においては、このアプローチは、キャ
ッシュタグは勿論TLBにおけるエントリとも両方に比
較される仮想アドレスに対して同じ長さを使用すること
により実施される。
【0038】第3のタグフィールドは、前に述べた1ビ
ット情報形式識別子である。この1ビット識別子の状態
は、L3キャッシュ26に記憶され、またTLBエント
リに対応する情報のブロックが、画素データか非画素情
報かのどちらであるかを示すことが思い出される。残り
の7つの情報フィールドについて、各々が以下に説明さ
れる。先に進む前に、注目すべきは、図2は、好ましい
実施例のための8個の情報フィールドを示すが、当業者
は、TLBエントリが、与えられた実施に基づいて多少
のフィールドを含めるために修正することが出来る。勿
論、この点について、注目すべきは、上に説明したスヌ
ーピング構想を行うためには、各タグエントリが、既知
のMESIキャッシュコヒーレンシイプロトコルを実行
するのに使用される様な十分のインジケータを含むこと
が更に好ましい。加えて、MESI情報は、ブロック当
たり基準よりむしろL3キャッシュ26における各サブ
ブロックに対して維持されるのが好ましい。
【0039】図2におけるタグ情報の第4のフィールド
は、好ましくは、2ビット状態フィールドである。この
状態フィールドは、タグ情報に対応するL3キャッシュ
26におけるブロックを読出すか書込むかどちらかの能
力、又はこの欠如を示す。より詳しくは、この好ましい
実施例においては、次の表2に示す様に4つの可能な状
態指示がある。
【0040】
【表2】
【0041】表2の検討から、当業者は4つの異る状態
シナリオの意味を理解するであろう。例えば、00に等
しいTLB状態フィールドは、L3キャッシュ26にお
ける対応する情報のブロックは、読出し、書込み、又は
置換出来ることを示す。書込みと置換との差異に関して
は、注目すべきは、情報のブロックへの書込みはその情
報が変化することを意味するが、重ね書きされている情
報と同じアドレスに対応する他の情報についてだけであ
る。これに対して、情報を置換することは、先の情報は
より上位の記憶装置(例えば、主メモリ)へ立ち退かさ
れ、異る論理アドレスに対応する新しい情報がその場所
へ提供されることを意味する。この説明から、当業者
は、今や表2の残りの3行に対して許され又は禁止され
ている夫々異る活動をも理解する筈である。
【0042】図2におけるタグ情報の第5のフィールド
は、好ましくは、整数Xのビット数をもつ誤り訂正符号
(図2において「ECC」と略す)である。このECC
フィールドは、当該技術で知られた様な標準誤り訂正情
報を示す。加えて注目すべきは、このフィールドコード
は、パリテイフィールド等で置換又はさらに他の誤り訂
正技法で補充することが出来る。
【0043】図2におけるタグ情報の第6のフィールド
は、好ましくは、単一ビットで形成されるマップインジ
ケータである。この好ましい実施例においては、このマ
ップインジケータフィールドは、タグエントリ(及び従
って、またこのタグ情報に対応するL3キャッシュ26
における位置)が単に保有されたことを示すためにセッ
ト出来る。換言すれば、もしマップがこの保有された状
態(例えば、0)にセットされ、またアクセスがこのタ
グエントリに対して試みられると、その時は、この保有
された状態マップの検出が、オペレーテイングシステム
に対する割り込みを生じさせるのが好ましい。これに応
じて、オペレーテイングシステムは、そのタグ情報に対
応するL3キャッシュ26における位置を、データで更
新するため適当な行動を取るように通知される。この行
動を取ると、勿論マップインジケータが非保有状態(例
えば、1)にスイッチされることが予期され、これによ
り、タグ情報に対する次の引き続くアクセスは、その
時、タグ情報は既に更新され、L3キャッシュ26内の
対応する位置における画素データか非画素情報のどちら
かを正しく特徴付けていることを認識するであろう。
【0044】図2におけるタグ情報の第7及び第8のフ
ィールドは、非画素情報に対立する画素データにのみ関
する。このため、1ビット情報形式識別子(即ち、タグ
情報の第1のフィールド)が対応する情報が非画素情報
であることを示す場合は、これらの第7及び第8のフィ
ールドは関係がなく、他の目的に用いることが出来る。
しかし、1ビット情報形式識別子が、タグ情報は画素デ
ータを特徴付けていることを示す時は、その時は、第5
及び第6のフィールドは、直ぐ次に述べる機能性を与え
るのが好ましい。
【0045】図2におけるタグ情報の第7のフィールド
は、TLB24aにおける異るタグエントリ間のリンク
(link)機能を許し、この結果、画素データ記憶領
域26a内の画素データの異るブロック間のリンクを確
立する。特に、この好ましい実施例においては、タグエ
ントリがアクセスされると、そこでこのフィールドは、
現在のアクセスに直ぐ続いてアクセスされるべき次のタ
グ(従って、画素データの次のブロック)を識別する。
この様にして、従って、画素データの多くの引き続くブ
ロックが、CPU12により各この様なブロックのため
に別個の論理アドレスを発生する必要なしに画素データ
記憶領域26aから検索できる。この結果、この様なリ
ンクに応じて検索される画素データは、DAC40及び
表示装置42へ出力するためのより容易に利用出来る画
素データのストリームを提供出来る。より詳しくは、図
1から、画素出力FIFO32は、空又は空に近い状態
をアドレス及び裁定回路24に示すことが出来ることを
思い出す。従って、これが起こると、前のタグから検索
され、アドレス及び裁定回路24に記憶されるようなリ
ンクフィールドは、次には、L3キャッシュ26により
出力されるべき画素データの次のブロックのためのアド
レスを出すために使用出来る。加えて、注目すべきは、
このリンクフィールドは、種々のリンク技法を使用して
達成することが出来、従って、このフィールドは、長さ
がいかなる整数Nのビット数でよい。最後に、注目すべ
きは、上に述べた様な前方リンク(即ち、そこではリン
クが、次にアクセスされるブロックのタグを識別する)
に加えて、このリンクフィールドは、更に後方リンクを
も含むことが出来、そこではこの後方リンクは、画素デ
ータの前のブロックのタグを識別する。勿論、当業者に
より確認できる様に更に追加のリンクを含めることが出
来る。
【0046】図2におけるタグ情報の第8のフィールド
は、画素大きさフィールドで、ビットの数の指示を提供
し、このビットの数は、タグに対応する画素データ記憶
領域26a内の画素データのブロックにおける該ビット
に対する1つの画素を特徴付ける。換言すれば、現在の
技法の下では、異る数のビットが各画素を特徴付けるた
めに使用出来、より多くのビットが典型的には、1つの
与えられた画素に対する多数のカラーを提供するために
使用される。この容量が与えられると、この好ましい実
施例においては、例として、タグ情報の1つの与えられ
たラインに対してこの画素大きさフィールドが、16ビ
ット画素特徴付け(8ビット、24ビット、32ビット
等の様な他の大きさも使用できるが)を指示することが
仮定される。従って、画素データ記憶領域26a内の画
素データの対応する4キロバイトのブロックに対して、
16ビットの各グループは、従って、データの単一画素
の価値を特徴付けるために決定される。従って、この情
報は、ビデオ制御回路38へ伝達され、表示装置42上
の画像の描写を制御するために使用される。
【0047】加えて、注目すべきは、画素大きさフィー
ルドにより使用されるビットの数は、表すべき異るシナ
リオの数に依存する。例えば、もし4つの異る予期され
る画素のグループ分け(例えば、8ビット、16ビッ
ト、32ビット、64ビット)があれば、その時は、こ
れら4つのどれでも、この画素フィールドにおいて、合
計2ビットで表すことが出来る。勿論、より大きなバリ
エーションはより大きなビットの数を必要とし、しかる
により少ないバリエーションはより少ないビットを必要
とし、このため、この柔軟性を表示するため、図2は、
この画素大きさフィールドは、いかなる整数Tのビット
数の長さを用いても達成できることを示している。最後
に注目すべきは、この画素大きさフィールドは、1つの
画素に関する他の属性を含むことが出来、又は追加のフ
ィールドを図2のエントリに含めることも出来る。1例
は、画素データに対応するカラーパレットを識別するこ
とが出来る。他の例は、当業者により確認出来るであろ
う。
【0048】先行する構造及び原理を更に理解するた
め、図3は、マイクロプロセッサ10の動作の方法50
の動作ステップの幾つかの簡単化された流れ図を与え、
このマイクロプロセッサ10の動作は、画素データと非
画素情報の両方を記憶するためL3キャシュ26の配分
におけるものである。方法50は、ステップ51で始ま
り、そこでマイクロプロセッサ10は、L3キャシュ2
6(例えば、5メガバイト)において利用可能な記憶装
置の全体の大きさを配分する必要性における変化を検出
する。この好ましい実施例においては、記載される様
に、この必要性は、マイクロプロセッサ10を具備して
いるコンピュータにおいてビデオモードが変化したとき
起こり、またビデオ制御回路38からマイクロプロセッ
サ10への出力により明示されることが出来る。従っ
て、ステップ51は、立ち上りに遂行されてもよく、又
はもしユーザが動作のビデオモードを変更すればその後
再び起こってもよい。注目すべきは、変化の検出におい
て、ステップ51は、配分における必要な変化の量を決
定し、即ち、画素データ又は非画素情報のために追加の
スペースが要求されるかどうか及び変化するためこの様
なスペースがどれくらい多く必要かである。この好まし
い実施例においては、領域26aと26bは隣接してお
り、またポインタ又は他の記憶手段が一方の領域の端を
監視しており、またこのゆえに他方の領域の始め(即
ち、領域26aと26bの間の割当)を監視している。
従って、新しく要求される量がステップ51で検出され
ると、それはこのポインタの値を調節するため使用され
る。この情報は勿論当時通用している配分(好ましくは
アドレス及び裁定回路24に記憶されている様な)のな
にかの指示が与えられると、方法50は以下の様に進行
する。
【0049】ステップ52は、その事象がステップ51
で検出されたとすると、L3キャッシュ26に追加すべ
き情報の形式に基づく方法50の流れにおける1つの変
化を単に表す。従って、もしL3キャッシュ26の割当
が、より多くの画素データの記憶を許すため増加すべき
であれば、方法50はステップ52からステップ53へ
継続する。これに反して、もしL3キャッシュ26の割
当が、より多くの非画素データの記憶を許すため増加す
べきであれば、方法50はステップ52からステップ5
4へ継続する。これらの代替の経路の各々は以下に述べ
る。
【0050】ステップ53は、より多くの画素データの
記憶を許すためL3キャッシュ26の割当が変化した時
の方法50内の1つのループの始まりを表す。注目すべ
きは、L3キャッシュ26の全体の固定された大きさが
与えられると、この変化は、画素データ記憶領域26a
内のキャッシュブロックの数における増加を表し、従っ
て、非画素情報記憶領域26b内のキャッシュブロック
の数における対応する減少を表す。従って、配分におけ
るこの変化は、現在非画素情報を記憶しているブロック
の適当な数を、画素データを記憶する準備のできた1つ
の形式へ変換することにより達成される。このブロック
の数は、ステップ51において識別されたものであり、
即ち、割当における変化を生じさせる事象を収容するた
め要求される数である。ステップ53に続いて、それゆ
えに、割当におけるこの変化を作るための2つのステッ
プ55と56があり、そこではこれらステップの各々
は、変換されている各ブロックに適用される。これらス
テップの各々は、以下に説明される。
【0051】ステップ55は、非画素情報記憶領域26
bの処理に関し、この記憶領域26bは新たに追加され
る画素データにより重ね書きされる。特に、ステップ5
5において、そのブロック内の非画素情報のどれが、も
しあれば、汚れているかを決定することにより、非画素
情報の1つの与えられたブロックに関してメモリコヒー
レンシイを確保する。これについて、上に述べたMES
Iビットがこの決定を行うために使用できる。当該技術
において知られている様に、汚れの指示は、そのキャッ
シュ内の情報の1つのコピーが変化したことを表すが、
その変化以来その情報はより上位のメモリへ提供されて
はいない。従って、ステップ55は、この様な汚れた情
報をより上位のメモリへコピーする。例えば、非画素情
報の主メモリへの書き戻しにより達成できる.別の例と
して、もしL3キャッシュ26とシステム主メモリとの
間に利用できる1つの上位キャッシュ構造があれば、こ
の非画素情報はその上位キャッシュ構造へコピーするこ
とが出来る。次に、方法50は、ステップ55からステ
ップ56へ継続する。
【0052】ステップ56は、ステップ55において評
価された非画素情報に対応するTLBエントリの処理に
関する。ステップ56において、方法50は、TLB2
4aのエントリにおけるタグ情報をクリアする。この点
について、このクリア動作は、TLB24aにおける少
なくとも2つのフィールドに影響する。第1のフィール
ドに対して、ステップ56は、MESI情報において存
在するように、有効タグを無効にセットする。第2のフ
ィールドに対して、ステップ56は、情報形式ビットを
画素データへセットする。これらのステップが与えられ
ると、注目すべきは、TLB24aエントリは、今やL
3キャッシュ26へ新たに追加されるべき画素データに
対応する用意ができている。次に、方法50は、ステッ
プ56からステップ57へ継続する。
【0053】ステップ57は、ステップ53で開始され
たループを終了する。従って、もし、画素データを記憶
するために割当てられるべき、非画素情報を記憶してい
る追加のブロックがあれば、その時は、方法50は、ス
テップ57からステップ55へ戻り、この場合、ステッ
プ55と56は、そのブロックのために反復される。こ
のプロセスは、従って、非画素情報の記憶から画素デー
タへ変換されるべき全部のL3キャッシュブロックが処
理されてしまうまで継続する。この時点において、ステ
ップ57は、この流れをステップ58へ継続し、これに
より方法50を終結する。
【0054】L3キャッシュ26内のブロックの非画素
情報記憶から画素データ記憶への変換について説明した
が、これと反対のことが、ステップ52がこの流れをス
テップ54へ継続する時に起こる。ステップ54を見る
と、このステップは、L3キャッシュ26の配分が、よ
り多くの非画素情報を記憶出来るように変更される時の
方法50内の1つのループの始まりを表している。再
び、L3キャッシュ26の全体の固定された大きさが与
えられると、この変更は、非画素情報記憶領域26bに
おけるキャッシュブロックの数における増加を表し、ま
た、従って、画素データ記憶領域26aにおけるキャッ
シュブロックの数における対応する減少を表す。この配
分における変更は、現在画素データを記憶するブロック
の適当な数を、非画素情報を記憶するため用意された1
つの形式へ変換することにより達成される。ステップ5
4に続いて、従って、配分における変更を行うためのス
テップ59があり、そこにステップ59は、以下で更に
理解されるように、変換されている各ブロックに適用さ
れる。
【0055】ステップ59は、記憶領域26a内の画素
データに対応するTLBエントリの処理に関し、この記
憶領域26aは新たに追加される非画素情報により重ね
書きされる。ステップ59において、方法50は、TL
B24aにおけるタグ情報をクリアする。この点につい
て、このクリア動作は、ステップ55において変更され
た様に、TLB24aにおける少なくとも2つのフィー
ルドに影響する。従って、第1のフィールドに対して、
ステップ59は、有効タグ(例えば、MESIから)を
無効にセットする。第2のフィールドは、再び情報形式
ビットである。しかし、ここでは、状態における変化
は、ステップ55に記載されているものとは反対であ
り、即ち、ここではステップ59は、そのビットを非画
素情報にセットする。これらのステップが与えられる
と、TLB24aエントリは、今や、L3キャッシュ2
6へ新たに追加されるべき非画素情報に対応する用意が
できている。次に、方法50は、ステップ59からステ
ップ60へ継続する。この流れが与えられると、注目す
べきは、ステップ54とステップ60の間には、より多
くの画素データのために用意する変換に適用されるステ
ップ55に匹敵するステップがない。従って、当業者
は、画素データがL3キャッシュ26に記憶され、その
情報が記憶されている場所が非画素情報により重ね書き
されるべき時は、すると、この好ましい実施例において
は、その画素データのコピーアウトは無く、代わりに、
それは単に新たに追加されるオン画素(on−pixe
l)により重ね書きされる。
【0056】ステップ60は、ステップ53で開始され
たループを終結する。従って、非画素情報を記憶するた
め割当られるべき、画素データを記憶している追加のブ
ロックがあれば、その時は、方法50は、ステップ60
からステップ59へ戻り、この場合、ステップ59はそ
のブロックのために反復される。このプロセスは、従っ
て、画素データ記憶から非画素情報記憶へ変換されるべ
き全部のL3キャッシュブロックが処理されてしまうま
で継続する。この時点において、ステップ60はこの流
れをステップ58へ継続し、これにより方法50を終結
する。
【0057】最後に図3に関し、注目すべきは、ステッ
プ58の後、この流れはステップ51へ戻ることが示さ
れる。勿論、ステップ51が再び1回起こるまえに、多
くの他の活動を行うことが出来るが、この流れの戻り
は、ある与えられた配分の後、もう1つの事象が発生し
(例えば、ビデオモードにおけるもう1つの変化)、そ
こにこの変化はもう1回ステップ51により検出され、
その後のステップが画素データと非画素情報との間のL
3キャッシュ26の配分を変更できることを示唆するた
め含められる。
【0058】L3キャッシュ26内の情報のアクセスを
一般に説明したが、図4は、これらステップの幾つかの
流れ図を示し、更にL3キャッシュ26を含む記憶階層
をアドレス指定する面におけるマイクロプロセッサ10
の動作の方法61を更に説明する。方法61は、ステッ
プ62において始まり、そこで、CPU12の様な1つ
のユニットが、システムメモリ内に情報に向けた論理ア
ドレスを出す。定義により、しかし、外部メモリ(例え
ば、主メモリ又はハード記憶装置上)に記憶されている
情報もまたCPU12によりアクセス可能なキャッシュ
の1つ又はそれより多くに記憶出来る。従って、残りの
ステップは、どの様にしてこの情報がこれらのキャッシ
ュから検索できるかを示す。
【0059】ステップ64において、方法61は、CP
U12からの論理アドレスをTLB24aへ与える。T
LB24aは種々の方法で応じることが出来る。例え
ば、TLB24aは、ミスを出すことが出来、これによ
り、それは、CPU12により出された論理アドレスに
対するアドレス変換を現在記憶していないことを示す。
代わりに、TLB24aは、アドレス変換を持つことが
出来るが、そのタグは、その変換が無効とマークされて
しまったことを示してもよい。更に、TLB24aは、
有効アドレス変換を持つことが出来る。この場合、注目
すべきは、この有効変換は、L1キャッシュ16かL2
キャッシュ20のどちらかにヒットがあるかどうかを決
定するためその時供給されるべき物理アドレスを提供
し、またこの有効変換は、L3キャッシュ26への可能
性あるアクセスのためのインデックス及びタグ情報(図
2からのものを含む)をも提供する。ともかく、ステッ
プ64におけるTLB24aからの応答が与えられる
と、方法61はステップ66へ継続する。
【0060】ステップ66において、方法61は、TL
B24aがステップ64においてミスを出したかどうか
を決定する。もしそうであれば、方法61はステップ6
8へ継続する。ステップ68はすると、TLBミスに応
じて、当該技術において普通のことと知られる様に、メ
モリテーブルウオークスルーを遂行する。換言すれば、
メモリテーブルウオークスルーは、正しいアドレス変換
を識別し、それを、次にはTLB24aに記憶出来る。
この結果、ステップ68の後、方法61はステップ64
へ戻り、このステップは再び1回、出されたアドレスを
TLB24aへ供給し、またこのステップは従って今
や、先行する節で説明したように、1つの有効変換の位
置を確認する結果となる筈である。この反復に基づくこ
の有効変換のためか、TLB24aへの初期のアクセス
からのヒットに起因するかのどちらかにより、方法61
はステップ70へ継続する。
【0061】ステップ70において、方法61は、TL
B24aにおけるヒットが有効情報に対応するかどうか
を決定する。換言すれば、ステップ64の前の説明から
思い出すのは、TLB24aが1つのアドレス変換を持
っているにも拘らず、その変換は無効とマークされるこ
とも出来ることである。この場合、ステップ70は、こ
の方法の流れをステップ72へ指向する。ステップ72
においては、ページ障害であるマイクロプロセッサ10
によるハードウエア障害があり、より詳しくは、この指
示はオペレーテイングシステムへ向けられる。従って、
この時点においてハードウエアだけがこれ以上の行動を
取らないが、その代わり、ページ障害を補正するためオ
ペレーテイングシステムにより受容可能と認められるど
の様な仕方であれ別進路(recourse)がとられ
る。終局的に、即ち、補正の後か、TLB24aへの初
期のヒットが有効な変換に対応すると仮定するかどちら
かにより、方法61はステップ74へ継続する。
【0062】ステップ74において方法61は、TLB
24a変換からの物理アドレスをL1キャッシュ16へ
及びおそらくL2キャッシュ20へ、当該技術で知られ
た方法で供給する。例えば、時間を節約するため、これ
らキャッシュの各々へのアドレスの供給は同時又は、交
互に行われ、L2キャッシュ20へのアドレスの供給
は、ミスがL1キャッシュ16において最初に検出され
たときのみ行ってもよい。ステップ74の終結におい
て、有効な情報に対するヒットは、これら2つのキャッ
シュの1つに発生したかこれら両方がミス(又はヒッ
ト、しかし無効情報に対して)に終わったかどちらかで
ある。従って、ステップ76は、これら2つの場合のど
ちらが発生したかを決定する。もしステップ76が、有
効な情報に対するヒットが、L1キャッシュ16かL2
キャッシュ20のどちらかに発生したことを決定すれ
ば、その時は、そのアドレスに対応する情報が、ヒット
のあったキャッシュから提供され、方法61は、ステッ
プ62へ戻り、CPU12による次のアドレスの発行を
待つ。他方、もし両方のL1キャッシュ16とL2キャ
ッシュ20がTLB24aからの物理アドレスに対して
ミスで応答すれば(又は無効情報のヒット)、その時
は、方法61は、ステップ78へ継続する。
【0063】ステップ78において、方法61は、TL
B24a及び対応するL3キャッシュ26により出され
たタグを評価する。より詳しくは、そのタグが有効とマ
ークされているか又は無効とマークされているかを決定
する。もしそのタグが無効であれば、方法61は、ステ
ップ80へ継続する。もしそのタグが有効であれば、方
法61は、ステップ82へ継続する。これら代替の各々
は以下に説明する。
【0064】ステップ80において、L3キャッシュ2
6に対応する無効タグを検出すると、2つの行動の一方
が取られる。無効タグに応じる第1の行動として、この
無効タグはある指示であるかも知れないことに注目すべ
きであり、この指示は追加の指示(タグ内かどこかのど
ちらか)に気を付けることにより確認することが出来、
この追加の指示は、そのアドレスに対応する情報はL3
キャッシュ26へのトランジットを示している。この形
式のトランジット指示は、そのアドレスにより求められ
ている情報は実際に現在L3キャッシュ26へ向かって
おり、また従って、受容出来る短時間以内にそこへ到着
しそうであることを示唆している。もしこの通りであれ
ば、ステップ80は、単にいくらかの持続時間待つこと
が出来、その次に、TLB24aにおいて発行されてい
るそのタグが、今や有効になったかを再評価する(即
ち、トランジットにあったその情報が今や完全にL3キ
ャッシュ26へ記憶されたか)。無効タグに応じる第2
の行動として、そこでステップ80は、直ちにか、また
は求められている情報はトランジットにないとの決定に
応じてかどちらかで、オペレーテイングシステムへハー
ドウエア障害を与える。従って、この時点においてハー
ドウエアだけがこれ以上の行動を取らないが、その代わ
り、L1キャッシュ16、L2キャッシュ20及びL3
キャッシュ26の各々におけるミスと今や考えられるも
のを補正するためオペレーテイングシステムにより受容
可能と認められるどの様な仕方であれ別進路がとられ
る。
【0065】ステップ82から前方へ、読者は残りのス
テップが、先に回路の一例としてCPU12を用い図1
に関して説明した動作を表していることを理解する筈で
あり、この回路は、アドレスを、次には非画素情報の読
出しか書込みかのどちらかを、又は画素データに関する
読出し、書込みか表示動作要求のどちらかを提供する。
要約として、従って、残りのステップは図4に示され、
また以下の簡単に説明する。
【0066】ステップ82において、L3キャッシュ2
6に対応する有効タグ検出された後、どの形式の情報が
問題のアドレスに対応するかを決定する。換言すれば、
所望の情報はL3キャッシュ26に記憶されていること
は、今や知られており、従って、そのタグの情報形式イ
ンジケータを調べることにより(図2の適当なフィール
ドをみよ)、その情報は画素データか非画素情報かを更
に決定する。これに応じて、もしその情報が画素データ
であれば方法61はステップ84へ継続し、又はこの代
わりに、もしその情報が非画素情報であれば方法61は
ステップ86へ継続する。最後に、従って、ステップ8
4と86に続くステップは、先に説明した方法で且つ情
報の形式に従って動作する。この様な行動の詳細は前の
説明から復習できるが、以下簡単に記す。
【0067】ステップ84は、アドレスされた画素デー
タに対応する動作形式に基づいて、方法のながれを指向
する。もしこの動作が画素データを表示することであれ
ば、方法61はステップ88へ継続し、このステップ
は、アドレスされた画素データを記憶領域26aから画
素出力FIFO32へ伝達する。さきの説明から、この
画素データは、画素出力FIFO32からDAC40
へ、そして終局的に表示装置42へ出力出来ることが認
められるであろう。もしアドレスされた画素データに対
するこの動作が、読出しであれば、その時は、ステップ
90は、アドレスされた画素データを記憶領域26aか
らこのデータの要求者へ伝達する(例えば、CPU1
2)。この点について、図1の先の説明から、このアド
レスされた画素データの伝達は、バイパスレジスタ36
へバス28経由でよく、従ってCPU12へ利用可能に
することを思い出すべきである。上のことが与えられる
と、当業者は、アドレスされた情報はバイパスレジスタ
36を経由してCPU12へ直ちに利用可能であり、又
はL2キャッシュ20で始まるより下位のキャッシュへ
回すことも出来る。最後にもしアドレスされた画素デー
タに対するこの動作が、書込みであれば、その時は、ス
テップ92は、アドレスされた画素データを書込み装置
から記憶領域26aへ戻す(これもバイパスレジスタ3
6経由でよい)。ステップ88、90及び92のどれで
もの後、方法61はステップ94へ終結し、そしてステ
ップ62へ戻り、そこでは新しく出された論理アドレス
は、方法61のそれぞれのステップにより処理される。
【0068】ステップ86は方法の流れを、アドレスさ
れた非画素情報に対応する動作形式に基づいて指向す
る。もしこのアドレスされた非画素情報に対する動作が
読出しであれば、その時は、ステップ96はアドレスさ
れた非画素情報を、非画素情報記憶領域26bからこの
データの要求者へ伝達する(例えば、CPU12)。も
う1回再び、この非画素情報の伝達は、バス28を経由
してバイパスレジスタ36へ、従ってCPU12へ利用
可能であり、又は、この代わり、L2キャッシュ20及
び、そこでL1キャッシュ16を経由してCPU12へ
伝達してもよい。これとは逆に、もしこのアドレスされ
た非画素情報に対する動作が書込みであれば、その時
は、ステップ98はアドレスされた非画素情報を、書込
装置から記憶領域26bへ後方へ伝達する(これは再び
バイパスレジスタ36を経由し又はL1キャッシュ16
及び、そこでL2キャッシュ20を通してでよい)。ス
テップ96かステップ98かどちらかの後、方法61は
ステップ94へ終結し、ステップ62へ戻り、そこに再
びもう1回、新たに出される論理アドレスは方法61の
夫々のステップを通して処理することが出来る。図4を
終結するが、注目すべきは。この流れはステップ94か
らステップ62へ戻る様に示されるが、ステップ62が
再び発生する前に1つ又はそれより多い他の活動が行わ
れるかも知れないが、それにも拘らずこの流れの戻り
は、与えられたメモリアクセスの後、次のメモリアクセ
スが望まれる前に他の臨時の事象が発生するかも知れな
いが、一旦この様なアクセスが希望されると方法61は
もう1回ステップ62により開始することを示唆するた
め含められる。
【0069】上のことから、上述の実施例は、コンピュ
ータシステムの面において多くの利益を提供することが
理解できる。例えば、1つの階層記憶システムは、その
階層の1つ(又はそれより多い)のキャッシュが画素デ
ータと非画素情報の両方を記憶するように動作すること
が出来るコンピュータシステム内に含まれることが出来
る。この結果、その組み合わされたキャッシュは、その
システムのCPU(複数)が画素データと非画素情報の
両方に等しいアクセスをすることを可能にする。他の例
として、多目的キャッシュの記憶スペースを動的に配分
する能力を含めることにより、そのコンピュータシステ
ムは、画素データか非画素情報かのいずれかに重みを置
いて、その時存在する記憶要求を賄うため周期的に再形
成することが出来る。他の例として、上に述べた種々の
タグ情報は、それが多目的キャッシュから検索されると
き、画素データの効率的な使用を更に便利にすることが
出来る。更に追加の例は、当業者により理解されるであ
ろう。更に最後の利益として、注目すべきは、上述のこ
とは、種々の代替の局面を表しており、これにより本発
明の範囲内の実施例を与えている。従って、本実施例は
詳細に記載されたが、種々の置換、修正又は変更が、特
許請求の範囲により定義される発明の範囲を逸脱するこ
となく上述の記載に行うことができる。
【0070】以上の説明に関して更に以下の項を開示す
る。 (1)コンピュータシステムであって、中央処理装置
と、記憶階層であって、非画素情報を記憶する第1のキ
ャッシュメモリを含み、そこに非画素情報は中央処理装
置によりアクセス可能であり、前記記憶階層は更に、記
憶階層において第1のキャッシュメモリより上位の第2
のキャッシュメモリを含み、前記第2のキャッシュメモ
リは幾つかの記憶場所を持ち、且つ非画素情報及び画素
データを記憶できる、記憶階層と、前記幾つかの記憶場
所を動的に分配するキャッシュ制御回路であって、これ
により記憶場所の第1のグループは非画素情報を記憶
し、記憶場所の第2のグループは画素データを記憶す
る、キャッシュ制御回路とを包含するコンピュータシス
テム。 (2)第1項記載のコンピュータシステムにおいて、中
央処理装置、第1のキャッシュメモリ、及び第2のキャ
ッシュメモリの全部は、単一の集積回路上に位置する、
コンピュータシステム。 (3)第1項記載のコンピュータシステムであって、そ
こに中央処理装置及び第1のキャッシュメモリは第1の
集積回路上に位置し、またそこに第2のキャッシュメモ
リは、第1の集積回路の外部の第2の集積回路上に位置
する、コンピュータシステム。 (4)第1項記載のコンピュータシステムであって、更
に複数のビデオモードの下で動作するためのビデオ制御
回路を含み、そこに該幾つかの記憶場所を動的に配分す
るキャッシュ制御回路は、該幾つかの記憶場所を、現在
選択された複数のビデオモードの1つに応じて動的に配
分する、コンピュータシステム。
【0071】(5)第4項記載のコンピュータシステム
であって、そこに中央処理装置、第1のキャッシュメモ
リ、第2のキャッシュメモリ、及びビデオ制御回路は、
全部は単一の集積回路上に位置する、コンピュータシス
テム。 (6)第4項記載のコンピュータシステムであって、そ
こに中央処理装置、第1のキャッシュメモリ、及び第2
のキャッシュメモリの全部は、第1の集積回路上に位置
し、またそこにビデオ制御回路は、第1の集積回路の外
部の第2の集積回路上に位置する、コンピュータシステ
ム。 (7)第4項記載のコンピュータシステムであって、更
に画素データを第2のキャッシュメモリから受ける画素
出力装置を含む、コンピュータシステム。 (8)第1項記載のコンピュータシステムであって、そ
こにキャッシュ制御回路は、複数のエントリをもつTL
Bを含み、そこに複数のエントリの各々は該幾つかの記
憶場所の1つに対応する、コンピュータシステム。 (9)第8項記載のコンピュータシステムであって、そ
こに該エントリの各々は、該幾つかの記憶場所の対応す
る1つが、画素データを記憶するか又は非画素情報を記
憶するかを指示するための情報形式インジケータを含
む、コンピュータシステム。 (10)第8項記載のコンピュータシステムであって、
そこに画素データを記憶する該幾つかの記憶場所の1つ
に対応する該エントリの各々は、リンクインジケータを
含み、そこにこのリンクインジケータの動作において
は、画素データを記憶する該幾つかの記憶場所の第1の
1つに対応する第1のリンクインジケータは、画素デー
タを記憶する該幾つかの記憶場所の第2の1つを特定す
ることが出来、そこに該幾つかの記憶場所の第2の1つ
の画素データは、該幾つかの記憶場所の第1の1つの画
素データを出力した直後に出力されることになってい
る、コンピュータシステム。 (11)第8項記載のコンピュータシステムであって、
そこに画素データを記憶する該幾つかの記憶場所の1つ
に対応する該エントリの各々は、画素大きさインジケー
タを含み、そこに各画素大きさインジケータは、各エン
トリに対応する第2のキャッシュメモリ内の画素データ
に対して、表示画素に対応する画素データのビットの数
を特定する、コンピュータシステム。
【0072】(12)コンピュータシステム(8)は、
中央処理装置(12)及び記憶階層を含む。この記憶階
層は、第1のキャッシュメモリ(16)と第2のキャッ
シュメモリ(26)を含む。第1のキャッシュメモリは
非画素情報を記憶出来、そこにこの非画素情報は、中央
処理装置による処理のためアクセス可能である。第2の
キャッシュメモリは、記憶階層において、第1のキャッ
シュメモリより上位にあり、非画素情報(26b)と画
素データ(26a)を記憶出来る幾つかの記憶場所を持
つ。最後に、このコンピュータシステムは、該幾つかの
記憶場所を動的に配分するためのキャッシュ制御回路
(24)を含み、これにより記憶場所の第1のグループ
は非画素情報を記憶するためのものであり、また記憶場
所の第2のグループは画素データを記憶するためのもの
である。
【図面の簡単な説明】
【図1】マイクロプロセッサが、キャッシュメモリの3
つのレベルを含み、キャッシュメモリの最高のレベル
が、画素と非画素データの両方を記憶出来る本実施例に
従った単一集積回路上のマイクロプロセッサを含むシス
テムの電気的ブロック図である。
【図2】タグビットが、好ましくは、第3レベルキャッ
シュへマッピングを提供する変換索引バッファに記憶さ
れる図1のマイクロプロセッサ内のキャッシュメモリの
第3のレベルに記憶されるデータの各行に対応する、変
換索引バッファに記憶される種々のタグビットの図式表
示である。
【図3】図1のマイクロプロセッサ内のL3キャッシュ
に対する記憶場所の配分を動的に変更する方法の流れ図
である。
【図4】図1のマイクロプロセッサ内の種々のレベルを
アドレス指定する方法の流れ図である。
【符号の説明】
8 コンピュータシステム 12 中央処理装置 16 第1のキャッシュメモリ 26 第2のキャッシュメモリ 24 キャッシュ制御回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 イアン チェン アメリカ合衆国 カリフォルニア州サンタ クララ,ホームステード ロード 3131,アパートメント 3エフ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムであって、 中央処理装置と、 記憶階層であって、 非画素情報を記憶できる第1のキャッシュメモリであっ
    て、そこに非画素情報は処理のため中央処理装置により
    アクセス可能な、第1のキャッシュメモリ及び、 記憶階層において第1のキャッシュメモリより上位の第
    2のキャッシュメモリであって、幾つかの記憶場所をも
    ち、非画素情報及び画素データを記憶する、第2のキャ
    ッシュメモリを含む前記記憶階層と、 該幾つかの記憶場所を動的に配分し、これにより該記憶
    場所の第1のグループは非画素情報を記憶し、該記憶場
    所の第2のグループは画素データを記憶するキャッシュ
    制御回路と、を含むコンピュータシステム。
JP10368137A 1997-12-24 1998-12-24 コンピュータシステム Pending JPH11288386A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7144697P 1997-12-24 1997-12-24
US071446 1997-12-24

Publications (1)

Publication Number Publication Date
JPH11288386A true JPH11288386A (ja) 1999-10-19

Family

ID=22101380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10368137A Pending JPH11288386A (ja) 1997-12-24 1998-12-24 コンピュータシステム

Country Status (4)

Country Link
US (1) US6449692B1 (ja)
EP (1) EP0926600B1 (ja)
JP (1) JPH11288386A (ja)
DE (1) DE69815482T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507028A (ja) * 2004-07-14 2008-03-06 シリコン オプティックス インコーポレイテッド キャッシュメモリーを管理するシステムと方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3690277B2 (ja) * 1998-07-09 2005-08-31 セイコーエプソン株式会社 駆動装置及び液晶装置
US6801207B1 (en) 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US7206344B1 (en) * 2000-01-05 2007-04-17 Genesis Microchip Inc. Method and apparatus for displaying video
US6801208B2 (en) * 2000-12-27 2004-10-05 Intel Corporation System and method for cache sharing
US7589738B2 (en) * 2004-07-14 2009-09-15 Integrated Device Technology, Inc. Cache memory management system and method
CN100527099C (zh) 2005-02-15 2009-08-12 皇家飞利浦电子股份有限公司 用于提高数据处理设备的存储单元的性能的装置和方法
US7764289B2 (en) * 2005-04-22 2010-07-27 Apple Inc. Methods and systems for processing objects in memory
US9131004B2 (en) * 2009-04-26 2015-09-08 Jeffrey Alan Carley Method and apparatus for network address resolution
US10599433B2 (en) * 2013-07-15 2020-03-24 Texas Instruments Incorported Cache management operations using streaming engine
US9954533B2 (en) 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
US11398453B2 (en) 2018-01-09 2022-07-26 Samsung Electronics Co., Ltd. HBM silicon photonic TSV architecture for lookup computing AI accelerator
US11625332B2 (en) * 2020-01-14 2023-04-11 Arm Limited Cache miss handling for read operations in data processing systems
US11789867B2 (en) 2020-01-14 2023-10-17 Arm Limited Cache arrangement for data processing systems
US11205243B2 (en) 2020-01-14 2021-12-21 Arm Limited Data processing systems

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
FR2664719A1 (fr) * 1990-07-10 1992-01-17 Philips Electronique Lab Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
JPH06110781A (ja) * 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
US5544306A (en) * 1994-05-03 1996-08-06 Sun Microsystems, Inc. Flexible dram access in a frame buffer memory and system
US5579473A (en) * 1994-07-18 1996-11-26 Sun Microsystems, Inc. Interface controller for frame buffer random access memory devices
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US6038645A (en) * 1996-08-28 2000-03-14 Texas Instruments Incorporated Microprocessor circuits, systems, and methods using a combined writeback queue and victim cache

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507028A (ja) * 2004-07-14 2008-03-06 シリコン オプティックス インコーポレイテッド キャッシュメモリーを管理するシステムと方法

Also Published As

Publication number Publication date
DE69815482T2 (de) 2004-04-29
US6449692B1 (en) 2002-09-10
EP0926600B1 (en) 2003-06-11
DE69815482D1 (de) 2003-07-17
EP0926600A1 (en) 1999-06-30

Similar Documents

Publication Publication Date Title
US7415575B1 (en) Shared cache with client-specific replacement policy
JP3264319B2 (ja) バスブリッジ
US6249853B1 (en) GART and PTES defined by configuration registers
US8230179B2 (en) Administering non-cacheable memory load instructions
JP4006436B2 (ja) 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US8037281B2 (en) Miss-under-miss processing and cache flushing
US6069638A (en) System for accelerated graphics port address remapping interface to main memory
EP0435475B1 (en) High-performance frame buffer and cache memory system
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
JP3846638B2 (ja) 画素エンジン・データ・キャッシング機構
US20020010839A1 (en) Multiple variable cache replacement policy
US20080046736A1 (en) Data Processing System and Method for Reducing Cache Pollution by Write Stream Memory Access Patterns
US20070033318A1 (en) Alias management within a virtually indexed and physically tagged cache memory
JPH11288386A (ja) コンピュータシステム
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
JP2008507019A (ja) メモリ管理システム
US7809889B2 (en) High performance multilevel cache hierarchy
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP2003044358A (ja) キャッシュメモリ制御装置
US6223266B1 (en) System and method for interfacing an input/output system memory to a host computer system memory
KR100395768B1 (ko) 멀티 레벨 캐쉬 시스템
US6311253B1 (en) Methods for caching cache tags
US6282625B1 (en) GART and PTES defined by configuration registers