(57)【特許請求の範囲】
【請求項１】
データを格納するアドレス可能な記憶空間を有する外部リード／ライトメモリに接続するマイクロプロセッサであって、該マイクロプロセッサは、
ノンキャッシャブルデータを含む前記データの一部を格納するデータ記憶回路と、
前記ノンキャッシャブルデータに対応するクラス識別子を格納するクラス記憶回路と、
終結信号を受信する入力と、
クラス信号を受信する入力と、
前記終結信号および前記クラス識別子と一致する前記クラス信号のアサートに応答して、前記データ記憶回路内の前記ノンキャッシャブルデータが時間切れであることを表示するインジケータと、
を含む、マイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本実施例はマイクロプロセッサに関し、特にノンキャッシャブル（ｎｏｎ−ｃａｃｈｅａｂｌｅ）データを格納するクラスカテゴリー記憶回路を有するマイクロプロセッサ回路、システム、および方法に向けられている。
【０００２】
【従来の技術】
この分野において明らかなように、最新の高性能データ処理システムは従来シングルチップマイクロプロセッサを中央処理装置（ＣＰＵ）として使用し、半導体ランダムアクセスメモリ（ＲＡＭ）を主システム記憶装置として使用して実現されている。主記憶装置は一般的に高密度低コスト／ビットであるダイナミックＲＡＭ（ＤＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）の形で実現されるが、従来のＤＲＡＭメモリのアクセスおよびサイクルタイムは比較的遅く、最新のマイクロプロセッサのクロックレートについて行くことができない。
【０００３】
従来のマイクロプロセッサベースデータ処理システムは、高密度ＤＲＡＭの低コストの利点を享受しながら、キャッシュメモリを使用して主記憶装置アクセスの性能の制約に取り組んでいる。典型的に、キャッシュメモリは近い将来にアクセスされるであろうメモリ位置の内容を格納する、マイクロプロセッサ付きオンチップもしくはオフチップ（もしくはその両方）の、高速スタティックＲＭ（ＳＲＡＭ）の小ブロックである。典型的に、キャッシュメモリは最近アクセスされたメモリ位置のごく近隣のメモリ位置の内容を格納し、マイクロプロセッサはメモリに逐次アクセスすることが多いため、連続サイクルで連続メモリアクセスを行えばメモリスペース内の互いに非常に近いメモリアドレスがアクセスされてしまいかねない。したがって、近隣メモリ位置の内容をキャッシュに格納すれば、マイクロプロセッサにより大部分のメモリアクセスを主記憶装置ではなくキャッシュに対して行うことができる。したがって、キャッシュメモリの実現によりシステムの全体性能が改善される。最新のマイクロプロセッサには、性能を最適化するために、連続する各レベル毎にキャッシュ容量が増大する（その速度は減少する）マルチレベルキャッシュメモリを含んでいるものもある。インテリジェントなキャッシュのデザインおよび実施により、主記憶装置へのアクセスを最小限に抑えてシステム性能を著しく改善することができる。
【０００４】
マイクロプロセッサベースシステムにおけるメモリアクセス性能のもう一つの改善方法は、一般的に“バースト”アクセスサイクルと呼ばれる特殊なメモリアクセスサイクルを使用することである。バーストメモリアクセスサイクルは、メモリデバイスの動作において、一連のメモリ位置へのアクセスを得るのに使用される。典型的に、バーストアクセスはマイクロプロセッサと主記憶装置との間に配置されたメモリコントローラチップにより実施され、それはマイクロプロセッサから与えられるアドレス情報および制御信号に応答して作動する。バーストサイクルはメモリアクセス性能を改善するのに非常に有効である。例えば、８バイトバスを有する最新のシステムでは、最善のキャッシュを使用する場合、バーストサイクルは一つのメモリアドレスの提供により僅か５バスサイクル（２−１−１−１）内にメモリの３２バイトをアクセスすることができる。また、バーストアクセスはページモードＤＲＡＭを使用しても非常に効率的であり、その場合８−３−３−３（合計１７バスサイクル）のバスサイクルシーケンスで３２バイトアクセスを実施することができ、Ｅａｒｌｙ  Ｄａｔａ  Ｏｕｔ（ＥＤＯ）や同期ＤＲＡＭ等の特殊なＤＲＡＭ機能を使用すれば、最善の場合、６−１−１−１（合計９バスサイクル）のバスサイクルシーケンスで３２バイトバーストアクセスを遂行することができる。これは、８つの個別の４バイトリードの一群としてアクセスされる場合に３２バイトラインのアクセスに６４サイクルを必要とする非バーストのケースに較べれば思い切った改善である（ノンバーストアクセスは一般的に４バイトよりも長くないものと考えて）。このように、バーストモードメモリアクセスは非バーストサイクルよりも典型的に２−６倍高速である。
【０００５】
いわゆる“Ｐｅｎｔｉｕｍ−クラス”マイクロプロセッサ（インテル社製ＰＥＮＴＩＵＭマイクロプロセッサと互換性のある機能性および命令セットを有するマイクロプロセッサ）を含む、周知の“ｘ８６”アーキテクチュアを利用するマイクロプロセッサでは、バーストメモリアクセスはキャッシュ動作に連結されている。すなわち、これらのｘ８６アーキテクチュアマイクロプロセッサでは、バーストメモリ動作はキャッシュ線記入動作（メモリからの読み出し）およびキャッシュライトバック動作（メモリへの書き込み）だけに関して実施される。大概のデータおよび命令検索がキャッシュメモリにより行われる、これらのマイクロプロセッサのキャッシュアーキテクチュアが与えられると、キャッシュ動作に対してバーストメモリアクセスを実施することにより得られる性能は極めて高い。
【０００６】
マイクロプロセッサはメモリ位置のそのキャッシュコピーが主記憶装置内のコピーに一致することを保証できるため、従来のメモリアクセス動作を使用してマイクロプロセッサしかデータの読み書きを行うことができない“真の”メモリ位置に対して典型的にキャッシングは極めて良好に働く。同じメモリ位置のキャッシュおよび主記憶装置コピーが同じである限り、主記憶装置コピーの替わりにキャッシュコピーを読み出しても副作用はない。しかしながら、Ｉ／Ｏデバイスの状態やスクリーンバッファのグラフィクアクセラレータにより変えることができる部分を含むあるメモリ位置は、これらのメモリ位置のキャッシュコピーがしばしば古臭く（ｏｕｔ−ｏｆ−ｄａｔｅ）なってしまう程度に揮発性である。主記憶装置位置の替わりにこれらの揮発性メモリ位置のキャッシュコピーを読み出すと、システムの動作に著しい副作用が生じる。したがって、従来のＩＢＭ  ＰＣアーキテクチュアシステムでは、マイクロプロセッサによるこれらの揮発性位置へのアクセスは、典型的にはメモリコントローラの動作により、“キャッシャブル（ｃａｃｈｅａｂｌｅ）”となる（すなわち、キャッシュメモリに格納される）ことが阻止される。
【０００７】
例えば、メモリマップドレジスタはそれに応答してある制御機能が遂行されるデバイス状態の変化を検出するようにポーリングされる場合が多いため、従来のメモリアクセスを介してアクセスされるにもかかわらず、一般的にはキャッシャブルアクセスセンス感覚でブロックされたエリアである。メモリマップドレジスタがキャッシュされる場合には、デバイス状態の変化はメモリマップドレジスタの主記憶装置コピーには反映されるがキャッシュしたメモリには反映されず、メモリマップドレジスタの周期的ポーリングによりキャッシュコピーだけが読み出され、したがってデバイス状態の求められる変化は検出されず、制御は効果的に停止される。もう一つの例として、オンチップキャッシュメモリの読み出しはバスサイクルとしては現れないため、メモリマップドＩ／Ｏ機能等の非メモリデバイスのキャッシングによりバス上のリード動作に応答して状態変化するこの種のＩ／Ｏデバイスに対してさらに副作用を生じることがある。キャッシュは主記憶装置よりもアップツーデートなコピーを含むことができるため、ライトバックキャッシングによってもこれらの非メモリ位置に対して副作用が生じ、それはライトバックキャッシュへの書き込みはバス上には現れず、これらの位置のキャッシングはバス上で行われる書き込みを再指令するように見えるためである。
【０００８】
揮発性であって典型的にはキャッシャブルアクセスから阻止されるメモリエリアのもう一つの例はビデオメモリであり、それは論理的にはマイクロプロセッサのメモリマップ内にあり物理的には主記憶装置（グラフィクスアダプタ内等の）内に配置されているかそこから離されている。ビデオメモリは、グラフィクスプロセッサやグラフィックスアダプタ等の、マイクロプロセッサ以外のデバイスの制御下にある場合が多く、したがってその内容がマイクロプロセッサの制御が及ばない所で頻繁に変えられるために主マルチプレクサによるキャッシャブルアクセスには適さない。ビデオメモリの一部がマイクロプロセッサキャッシュ内に格納される場合には、グラフィクスプロセッサが変更を行うために後続するアクセスに対してキャッシュ内容は無効になるものと思われる。
【０００９】
そのため、従来のｘ８６アーキテクチュアマイクロプロセッサに従って、バースタブル（ｂｕｒｓｔａｂｌｅ）メモリアクセスがアクセスされるメモリ位置のキャッシャビリティに連結される。例えば、ＰＥＮＴＩＵＭマイクロプロセッサはメモリへのアクセス中（Ｍ／ＩＯ＃端子にハイ論理レベルを与えるマイクロプロセッサにより示される）にＣＡＳＨＥ＃端子（＃はロー論理レベルにおいて信号がアクティブであることを示す）に制御信号をアサート（ａｓｓｅｒｔ）することによりバースタブルメモリアクセスを要求する。この要求に応答して、メモリコントローラはマイクロプロセッサから与えられるメモリアドレスがメモリスペースのキャッシャブルエリア内にあるかどうかを確認し、キャッシャブルエリア内にある場合、マイクロプロセッサへＫＥＮ＃をアサートしてバーストアクセスを遂行する。この従来の実施例では、マイクロプロセッサがキャッシャブルアクセスから阻止されるメモリのエリアへバースタブルアクセスを要求すると、メモリコントローラはバースタブルアクセスを遂行せず、ＫＥＮ＃をデアサート（ｄｅａｓｓｅｔ）することによりそれを表示する。次に、所望のメモリ位置への単独転送アクセスが進行される。
【００１０】
さらに背景として、キャッシュアーキテクチュアの複雑さとして考慮されるもう一つの点はスヌープケーパビリティ（ｓｎｏｏｐ  ｃａｐａｂｉｌｉｔｙ）の存在および時にはその必要条件である。スヌーピングは従来技術で周知であり、一般的に異なる２種のスヌープ要求を含み、その各々がスヌープ要求を伴うかもしくはそれに対応する明確なアドレスにより識別される一つ以上のメモリ位置に関連している。例えば、スヌープ要求はアドレスを含んで発行することができ、アドレスされた情報を含む全キャッシュ線がスヌープ要求に応答して作動される。多くのイベントにおいて、２種のスヌープ要求に関して、一般的にこのような第１種の要求は、要求する回路がアドレスされた情報の共有を求めていることをキャッシュへ示す。キャッシュがアドレスされた情報のコピーを所有していない場合には、要求に対して何のアクションもとらないだけである。一方、キャッシュがアドレスされた情報のコピーを所有していてその情報がキャッシュに格納された時以来修正されている場合には、キャッシュはアドレスされた情報を主記憶装置へ出力する。したがって、要求する回路は次に主記憶装置からアドレスされた情報を読み出すことができる（あるいは、キャッシュから主記憶装置へ書き込まれているためそれをバスから“スナーフ（ｓｎａｒｆ）”することができる）。第２種のスヌープ要求は、要求回路がアドレスされた情報を捜しておりその情報を変更することをキャッシュへ示す。ここでも、キャッシュがアドレスされた情報のコピーを所有していない場合には、要求に対して何のアクションもとらないだけである。一方、キャッシュがアドレスした情報のコピーを所有していてその情報がキャッシュに格納された時以来修正されている場合には、やはりキャッシュはアドレスされた情報を主記憶装置へ出力する。しかしながら、要求回路は情報を変更するため、出力するキャッシュも情報のそれ自体のコピーを無効にして変更されている情報を後で使用するのを防止しなければならない。
【００１１】
前記したようにスヌーピングが存在する場合には、現在のアーキテクチュアの元でキャッシャブルと考えられる情報のタイプをさらに制限することができる。例えば、マイクロプロセッサの外部にデバイスがあってマイクロプロセッサが使用する主記憶装置のデータを変えるように作動するものとする。さらに、この外部デバイスはスヌーピングケーパビリティを提供しないものとする。したがって、この外部デバイスに関連するデータのタイプは典型的にはノンキャッシャブルと見なされ、それはノンキャッシャブルでなくてもよければこの外部デバイスにより変えられるデータのタイプがマイクロプロセッサ上のキャッシュ内に存在して、デバイスにはスヌーピングケーパビリティがないために、キャッシュによって主記憶装置へ適切に出力されない危険性を生じるためである。したがって、スヌーピングによりキャッシュ技術および制約の要件がさらに複雑化する。
【００１２】
【発明が解決しようとする課題】
前記したことから、発明者はケーパビリティに関する前記要因のさまざまな制約を認識した。したがって、従来技術の欠点に較べて性能を改善する発明のさまざまな実施例を以下に提示する。
【００１３】
【課題を解決するための手段】
実施例には、データを格納するアドレス可能な記憶スペースを有する外部リード／ライトメモリへ接続するマイクロプロセッサがある。マイクロプロセッサはデータの一部を格納するデータ記憶回路を含み、データのその部分はノンキャッシャブルデータを含んでいる。マイクロプロセッサはさらに、終結信号を受信する入力およびクラス信号を受信する入力の他に、ノンキャッシャブルデータの一部に対応するクラス識別子を格納するクラス記憶回路を含んでいる。最後に、マイクロプロセッサは終結信号およびクラス識別子と一致するクラス信号のアサートに応答して、データ記憶回路内のノンキャッシャブルデータ部分が時間切れであることを示すインジケータを含んでいる。その他の回路、システム、および方法も開示され特許請求される。
【００１４】
【発明の実施の形態】
次に図１を参照して、第１の好ましい実施例を実現する典型的なマイクロプロセッサベースシステム２について詳細に検討する。図１に示すように、システム２は中央処理装置（ＣＰＵ）５を含み、それはこの実施例では周知の“ｘ８６−アーキテクチュア”のマイクロプロセッサであり、好ましくはＰｅｎｔｉｕｍ−クラスマイクロプロセッサである。ＣＰＵ５はバスインターフェイスユニット（ＢＩＵ）８を含んでいる。ＢＩＵ８はＣＰＵ５とシステム２の残部間の通信を制御し達成するように働くＣＰＵ５内の回路である。本実施例では、ＣＰＵ５のＢＩＵ８はアドレスバスＡＢＵＳ、データバスＤＢＵＳ、およびコントロールバスＣＢＵＳからなるバスに接続されている。従来技術と同様に、アドレスバスＡＢＵＳはＣＰＵ５がシステム２の他の要素へアクセスするための２進アドレスを与えるバスであり、データバスＤＢＵＳはＣＰＵ５と他のシステム要素間でデジタルデータを通信するためのバスであり、コントロールバスＣＢＵＳはシステム２の要素間で制御信号が通信されるバスである。
【００１５】
図１のシステム２では、通常のシステム機能を実施するためにさまざまな周辺要素が関連するコントローラを介してバスＡＢＵＳ，ＤＢＵＳ，ＣＢＵＳに接続されている。システム２の主記憶装置２０はメモリコントローラ１０によりバスＡＢＵＳ，ＤＢＵＳ，ＣＢＵＳに接続されており、そのためメモリコントローラ１０はＣＰＵ５からアドレス値および制御信号を受信し、対応する制御信号を主記憶装置２０へ与えて所望の動作を達成し、それには一般的にデータバスＤＢＵＳを介したＣＰＵ５との通信が含まれる。システム２には従来の方法でキャッシュコントローラ１２に接続されたレベル３キャッシュメモリ２２も含まれ、キャッシュコントローラ１２はバスＡＢＵＳ，ＤＢＵＳ，ＣＢＵＳに接続されていてＣＰＵ５とレベル３キャッシュメモリ２２間のデータの通信を制御する。本例では、レベル３キャッシュメモリ２２はシステム２に対する第３のレベルキャッシュメモリであり、レベル１およびレベル２キャッシュメモリはＣＰＵ５内に存在する（レベル２キャッシュ６は図１に図示されている）。システム２にはＩ／Ｏコントローラ１４も含まれ、それはバスＡＢＵＳ，ＤＢＵＳ，ＣＢＵＳを介してＣＰＵ５に接続されかついくつかの入出力装置２４にも接続されている。入出力装置２４は、ビデオモニタ、キーボード、ポインティングデバイス、ディスクドライブサブシステム等のシステム２内の典型的な入出力周辺装置を含むことができる。コントローラ１０，１２，１４は典型的にはＣＰＵ５と共に作動するように設計されているいわゆる“チップセット”により実現される。システム２はさらにクロック発生器回路１６を含み、それはＣＬＫ線上に周期的クロック信号を発生して、ＢＩＵ８を介したＣＰＵ５を含む、システム２の各要素へ与えかつそこからさまざまなシステム要素の各要素内で内部クロック信号を発生することができる。したがって、システム２はコンピュータプログラムがディスク記憶装置（入出力装置２４の一つにより表される）内に格納され主記憶装置２０へダウンロードされて操作されるディスクトップ、ワークステーションもしくは可搬型の典型的な最新のコンピュータに対応するものと考えられる。
【００１６】
メモリアクセスはコントロールバスＣＢＵＳ上の適切な制御信号（リード／ライト選択信号を含む）と組み合わせてＣＰＵ５によりバスＡＢＵＳ上にアドレス値を与えることにより達成され、次にメモリコントローラ１０は適切な制御信号を主記憶装置２０へ与えて所望の位置へアクセスする。本例では、主記憶装置２０の２０ｖ部分はビデオメモリであり、それはバスＡＢＵＳ，ＤＢＵＳ，ＣＢＵＳもしくは第２のバス（図示せず）を介してグラフィクスアダプタ（もしくはコントローラ）であるＩ／Ｏ機能２４の一つにより独立にアクセスすることができ、あるいはビデオメモリ２０ｖはＰＣＩビデオカードの場合のようにバス上にそれ自体のデバイスとして実現することができる。一般的にメモリコントローラ１０とコントロールバスＣＢＵＳを介したＣＰＵ５との間のハンドシェーキングにより達成されるメモリコントローラ１０の制御の元で、ＣＰＵ５はデータバスＤＢＵＳ上にデータを与えるか（メモリライトにおいて）あるいはデータバスＤＢＵＳからデータを受信する（メモリリードにおいて）。
【００１７】
図１に示すように、メモリおよび入出力トラフィックの両方が同じバス、すなわちアドレスバスＡＢＵＳ，データバスＤＢＵＳ，およびコントロールバスＣＢＵＳを介して生じる。したがって、ｘ８６−アーキテクチュアマイクロプロセッサベースシステムにおいて典型的であるように本実施例では、入出力アクセスは前記したメモリアクセスと同様に実施され、ＣＰＵ５はＣＢＵＳ線上の適切な制御信号と組み合わせてアドレスバスＡＢＵＳ上にアドレスを与える。Ｉ／Ｏ操作に対して、アドレスバスＡＢＵＳ上のアドレスは入出力機能２４の特定の一つに対応する。Ｉ／Ｏコントローラ１４の制御の元で、次にＣＰＵ５から選択されたＩ／Ｏ機能２４へデータバスＤＢＵＳを介してデータが送られるか（出力動作）あるいは選択されたＩ／Ｏ機能２４からＣＰＵ５へデータバスＤＢＵＳを介してデータが送られる（入力動作）。
【００１８】
次に図２を参照して、第１の実施例に従ったメモリコントローラ１０の構造および動作を、ＣＰＵ５および主記憶装置２０と共に詳細に説明する。図２に示すように、ＣＰＵ５のＢＩＵ８はＣＰＵ５の特定端子に接続されたアドレスバスＡＢＵＳ，データバスＤＢＵＳ，およびコントロールバスＣＢＵＳを介してメモリコントローラ１０と通信する。ＣＰＵ５の端子はその外部コネクタであり、ピン（ピングリッドアレイパッケージ）、はんだボール、パッケージリード、ボンドパッド（チップ形式の場合）、もしくは従来の他の任意のタイプの集積回路パッケージ用外部接続とすることができる。従来技術で周知のように、ＣＰＵ５の端子は従来ピンや信号名で呼ばれるが、この明細書ではＣＰＵ５の端子に接続されるバス線は対応する端子と同じ名称とされている。図２に示すように、コントロールバスＣＢＵＳにはＣＰＵ５の端子に対応する線が含まれ、本例ではメモリ／ＩＯセレクトＭ／ＩＯ＃，キャッシュ要求ＣＡＣＨＥ＃，バーストレディーＢＲＤＹ＃およびキャッシュイネーブルＫＥＮ＃等の従来のＰｅｎｔｉｕｍ−クラスマイクロプロセッサ端子が含まれる。メモリアクセスを実施するのに使用される他の従来のＰｅｎｔｉｕｍ−クラス端子（図２には図示せず）にはバイトイネーブル信号ＢＥ７＃−ＢＥ０，アドレス状態信号ＡＤＳ＃，データ／コントロールセレクトＤ／Ｃ＃，ライト／リードセレクトＷ／Ｒ＃，ライトバック／ライトスルー信号ＷＢ／ＷＴ＃，等が含まれる。クロック発生器１６によりＣＬＫ線を介してＣＰＵ５（ＢＩＵ８を経由）およびメモリコントローラ１０へクロック信号が与えられる。
【００１９】
メモリコントローラ１０はＣＰＵ５と主記憶装置２０間の通信を行うためのいくつかの機能ブロックを含んでいる。これらのブロックは図２に機能的に示され、当業者ならば機能的説明からメモリコントローラ１０の構造および動作を完全に理解できるものと思われる。従来技術と同様に、アドレスバッファ２１がアドレスバスＡＢＵＳを介してＣＰＵ５からメモリアドレスを受信し、そのメモリアドレスをアドレスマルチプレクサ２６へ転送しアドレス線ＡＮ−Ａ０を介して主記憶装置２０へ与える。メモリコントローラ１０内のデータバッファ２３も同様にデータバスＤＢＵＳを介してＣＰＵ５からデータを受信し、そのデータをデータ線Ｄinを介して主記憶装置２０と通信するライトバッファ２７へライト動作において転送するが、この経路は双方向性であるためライトバッファ２７はＤout 線を介して主記憶装置２０からデータを受信し、このデータをデータバッファ２３へ転送してメモリリード動作においてＣＰＵ５へ与えることができる。
【００２０】
ＣＰＵ５と主記憶装置２０間の通信の制御はコントロールバスＣＢＵＳおよびメモリコントロール回路２９に接続されたバスコントロール回路２５により遂行され、さらに、メモリコントローラ１０はその内部動作を制御するコントロール論理２８も含んでいる。特に、バスコントロール回路２５はＭ／ＩＯ＃およびＣＡＣＨＥ＃信号を含むコントロール信号をＣＰＵ５からコントロールバスＣＢＵＳを介して受信し、メモリアクセス要求に応答して、適切な従来のＤＲＡＭコントロールおよびタイミング信号を主記憶装置２０へ発行するようメモリコントロール回路２９を命令してメモリアクセスを遂行し、このような信号にはローアドレスストローブ（ＲＡＳ＃），カラムアドレスストローブ（ＣＡＳ＃），ライトイネーブル（ＷＥ＃）が含まれる。さらに、バスコントロール回路２５はメモリアクセスの状態を示すコントロール信号をＣＰＵ５へ発行し、このようなコントロール信号には後述するようにバーストアクセスにとって特に重要なバーストレディー信号ＢＲＤＹ＃だけでなく、キャッシュイネーブル信号ＫＥＮ＃が含まれる。
【００２１】
メモリコントローラ１０の制御論理２８は、好ましくは、主記憶装置２０のノンキャッシャブル位置を規定するレジスタを含む、メモリコントローラ１０の動作を制御するプログラマブルレジスタも含んでいる。ＣＰＵ５が要求する各メモリアクセスに応答して、制御論理２８はこれらのレジスタを調べてアドレスバスＡＢＵＳ上に与えられた所望のメモリアドレスがメモリアドレススペースのノンキャッシャブルエリアであるか確認する。従来技術で周知のように、メモリコントローラ１０は所望のメモリアクセスがキャッシャブルであることをＣＰＵ５へ示すようＫＥＮ＃線をアサートし、所望のメモリアドレスがノンキャッシャブルであればＫＥＮ＃線をデアサートする。
【００２２】
従来技術では、発明の背景に関して前記したように、バースタブルメモリアクセスを利用できるのはノンキャッシャブルエリアではないメモリアドレスだけであった。したがって、従来技術のマイクロプロセッサの実施例では、ノンキャッシャブルエリアへのメモリアクセス要求に応答してＫＥＮ＃線がデアサートされ、さらに、マイクロプロセッサのＢＲＤＹ＃端子はバーストアクセスの場合の多数のバスサイクルではなくメモリのノンキャッシャブルエリアへの一つの転送動作（リードもしくはライト）の持続時間中だけアサートされる。
【００２３】
本実施例に従ったシステム２内の各アドレススペースを図３に略示する。従来のＰｅｎｔｉｕｍ−クラスマイクロプロセッサにおける典型的なシステム２では、４Ｇｂｙｔｅメモリアドレススペース３０（００００  ００００ｈからＦＦＦＦ  ＦＦＦＦｈまでのメモリアドレス）および６４ｋｂｙｔｅＩ／Ｏアドレススペース４０（００００  ００００ｈから００００  ＦＦＦＦｈまでのメモリアドレス）が設けられている。また、ＣＰＵ５を含むＰｅｎｔｉｕｍ−クラスマイクロプロセッサでは典型的なことであるが、メモリアドレススペース３０およびＩ／Ｏアドレススペース４０は同じアドレス値を共有している（すなわち、００００  ００００ｈと００００ＦＦＦＦｈ間のアドレス値はメモリアドレススペース３０およびＩ／Ｏアドレススペース４０の両方の位置に対応している）。前記したように、従来のｘ８６−アーキテクチュアマイクロプロセッサはＭ／ＩＯ＃と呼ばれる端子に制御信号を与え、それはハイ論理レベルにおいてメモリアクセスが行われようとしていたことを示し、ロー論理レベルではＩ／Ｏ動作が行われようとしていたことを示す。
【００２４】
図３に示すように、メモリアドレススペース３０はノンキャッシャブルエリア３２を含んでいる。前記したように、ノンキャッシャブルエリア３２はキャッシュライトもしくはキャッシュリードによりアクセスされることが阻止されるメモリアドレススペース３０の領域に対応する。ノンキャッシャブルエリアへのキャッシャブルアクセスは、キャッシャブルアクセスが防止されるアドレスを含むあるレジスタの内容に従って、メモリコントローラ１０特にその制御論理２８により防止される。ノンキャッシャブルエリア３２はビデオメモリ２０ｖ（図１参照）、もしくはメモリマップドコントロールレジスタを含むことができ、典型的にはそのいずれもキャッシュ記憶装置には適さないと考えられている。このようにして、ノンキャッシャブルエリア３２の内容はメモリコントローラ１０の動作およびＫＥＮ＃線上へ発行されるデアサート状態により、図１に示すレベル２キャッシュ６等のＣＰＵ５内の内部キャッシュに格納されないようにされる。
【００２５】
しかしながら、本発明によりｘ８６−アーキテクチュアマイクロプロセッサ内の主記憶装置２０のノンキャッシャブルエリアへのバーストアクセスケーパビリティを提供すると役にたつことが判った。たとえば、ＣＰＵ５はノンキャッシャブルエリア３２内のビデオメモリ２０ｖの一部の内容へ高速アクセス（すなわち、バーストモード）したい場合がある。たとえば、ＣＰＵ５は画面の画像をメモリ内へコピーしたり、メモリの他の部分をビデオメモリ内へコピーしたいことがある。ビデオメモリ２０ｖはノンキャッシャブルであるため、従来技術のｘ８６−アーキテクチュアシステムはノンキャッシャブルエリア３２へのバースタブルアクセスを防止する。
【００２６】
しかしながら、第１の好ましい実施例に従って、ＣＰＵ５はコントロールバスＣＢＵＳ内の既存の制御信号を使用して主記憶装置２０にバースタブルでノンキャッシャブルなアクセスを要求することができる。前記したように、コントロール出力信号Ｍ／ＩＯ＃は従来のｘ８６−アーキテクチュアマイクロプロセッサがメモリアクセスを実施すべきか（Ｍ／ＩＯ＃ハイ）Ｉ／Ｏ動作を実施すべきか（Ｍ／ＩＯ＃ロー）を示すのに使用される。これに対して、本実施例では、ＣＡＣＨＥ＃信号のアサートと組み合わせたＭ／ＩＯ＃線上のロー論理レベルをＣＰＵ５が使用してメモリアドレススペース３０のノンキャッシャブルエリアへのバースタブルメモリアクセスを要求する。メモリコントローラ１０、特にそのバスコントロール回路２５、はＭ／ＩＯ＃ローとＣＡＣＨＥ＃ローのこの組合せをバーストメモリアクセス要求と解釈し（従来技術に従った解釈のように、Ｉ／Ｏ要求ではなく）、メモリアドレスがメモリアドレススペース３０のノンキャッシャブルエリア３２内にあることを制御論理２８が示している場合でも、主記憶装置２０へのノンキャッシャブルバーストメモリアクセスを実施する。ＣＰＵ５がメモリアドレススペース３０のキャッシャブルエリア内にあるＭ／ＩＯ＃およびＣＡＣＨＥ＃ローの組合せのアドレスを与える場合には、バーストアクセスが要求されて実施されるが、この場合アドレスされたメモリ位置に対してキャッシュアクセスを利用できてもＣＰＵ５はアクセスのキャッシュを試みることはない。
【００２７】
したがって、本実施例に従ったメモリおよびＩ／Ｏ動作は下記の表１および図３の対応する論理に従って、制御信号Ｍ／ＩＯ＃およびＣＡＣＨＥ＃を介してＣＰＵ５により要求される。
【００２８】
【表１】
0003964049.tif 000002
【００２９】
この動作はシングルメモリ転送サイクル（すなわち、ノンバースタブル、ノンキャッシャブル）に対する制御信号ＭＥＮ１、バースタブルキャッシャブルメモリアクセスに対するＭＥＮＢＣ、Ｉ／Ｏ動作に対するＩＯＥＮ、およびバースタブルノンキャッシャブルメモリアクセスに対するＭＥＮＢＮＣを駆動するのに使用されるバスコントロール回路２５の部分により図３に略示されている。ＡＮＤゲート３１はＭ／ＩＯ＃およびＣＡＣＨＥ＃線の両方のハイに応答した時だけＭＥＮ１線をハイに駆動し、ＡＮＤゲート３３はＭ／ＩＯ＃線のローとＣＡＣＨＥ＃線のハイに応答した時だけＩＯＥＮ線をハイに駆動し、ＡＮＤゲート３５はＭ／ＩＯ＃のハイとＣＡＣＨＥ＃線のローに応答した時だけＭＥＮＢＣ線をハイに駆動し、ＡＮＤゲート３７はＭ／ＩＯ＃およびＣＡＣＨＥ＃線の両方のローに応答した時だけＭＥＮＢＮＣをハイに駆動する。
【００３０】
もちろん、この実施例では、Ｉ／Ｏコントローラ１４はＣＡＣＨＥ＃線ローと組み合わせたＭ／ＩＯ＃線上のロー論理レベルには応答しないで、意図せぬＩ／Ｏ動作と同時に生じるバースタブルノンキャッシャブルメモリアクセスによるバス競合を防止するように構成されている。
【００３１】
次に図４を参照して、さらに説明を行うために、この第１の実施例に従ってＣＰＵ５により要求され主記憶装置２０およびメモリコントローラ１０により実施されるバースタブル、ノンキャッシャブルメモリリードの動作を示すタイミング図について説明する。本例では、リードメモリアクセスはバイトイネーブル線ＢＥ７＃−ＢＥ０＃上の０値と組み合わせてアドレスバス線Ａ３１−Ａ３上へメモリアドレスを発行するＣＰＵ５により要求され、このアドレスはＡＤＳ＃線上にロー論理レベルをアサートするＣＰＵ５により有効として表示される。バースタブルノンキャッシャブルメモリリードのこの例では、ＣＰＵ５により与えられるアドレスはメモリアドレススペース３０のノンキャッシャブルエリア３２内にある。メモリアドレスと組み合わせて、ＣＰＵ５はこの動作がデータ動作であることを示すハイ論理レベルもＤ／Ｃ＃線を介して発行し、Ｗ／Ｒ＃線ローをアサートしてメモリリードを要求する。これらの信号は従来のｘ８６−アーキテクチュアマイクロプロセッサリード動作に対するものである。本発明のこの第１の実施例では、ＣＰＵ５はＣＡＣＨＥ＃線上のロー論理レベルと組み合わせてＭ／ＩＯ＃線上にもロー論理レベルを与える。これらの信号は全て図４ａのバスサイクルＢ０内に存在する。
【００３２】
この信号の組合せは主記憶装置２０のノンキャッシャブルエリアへのバースタブルアクセスが要求されていることをメモリコントローラ１０へ示す。メモリコントローラ１０は適切な制御信号を発行することによりこの要求に応答し、主記憶装置２０内のアドレスしたメモリデバイスへアドレスする。バスサイクルＢ２において（バスサイクルＢ１は待機状態）、メモリコントローラ１０はＫＥＮ＃線をローにアサートすることにより主記憶装置２０へのバースタブルアクセスが許されていることをＣＰＵ５へ示し、かつＢＲＤＹ＃線をローにアサートすることによりデータバスＤＢＵＳが現在のクロックサイクルの終わりに有効なメモリデータを配置していることを示す。メモリリードがノンキャッシャブルであるため、ＷＢ／ＷＴ＃線はこの動作ではドントケアである。次に、カッド（ｑｕａｄ）語ＱＷ０からＱＷ３（各々が６４ビット、すなわち８バイト）の形式の有効データが現在のバスサイクルＢ２および次の連続する３つのバスサイクルＢ３からＢ５（待機状態はないものとする）の終わりにデータバスＤＢＵＳ上に現れる。次に、ＢＲＤＴ＃線をハイ状態へ駆動するメモリコントローラにより、本実施例に従ったバーストメモリリードはバスサイクルＢ６において完了であると表示される。バースタブル、ノンキャッシャブル、もしくは他のタイプのメモリアクセスを引き続き従来の方法で実施することができる。
【００３３】
次に図４ｂを参照して、バースタブル、ノンキャッシャブルメモリライト動作について詳細に説明する。図４ａのメモリリードの場合と同様に、ＣＰＵ５はバスサイクルＷＭ０においてＡＤＳ＃信号をローにアサートする時のＤ／Ｃ＃線上のハイレベルと共に、アドレス線Ａ３１からＡ３上に所望のアドレスおよびバイトイネーブルビットＢＥ＃に対するゼロ値を与えて動作を立ち上げる。このサイクルＷＢ０でも、ＣＰＵ５はＷ／Ｒ＃線をハイにアサートすることによりメモリライトを実施したいことを示し、ＣＡＣＨＥ＃線ローと組み合わせてＭ／ＩＯ＃線をローにアサートすることによりノンキャッシャブルメモリ位置へのバーストライトを要求する。ここでも、リードの場合と同様に、アドレスがメモリアドレススペース３０のキャッシャブルエリアを指示する場合には、バーストアクセスが実施されるがライトはキャッシュを介して実施される。ＣＰＵ５によるこの要求に応答して、現在のバスサイクルＷＢ２の終わりに有効なデータが期待されることを示すＢＲＤＹ＃線上のロー論理レベルと組み合わせて、メモリコントローラ１０はＫＥＮ＃線上へロー論理レベルを発行して（一つの待機状態の後で、バスサイクルＷＢ２内で）主記憶装置２０へのバーストアクセスが許可されていることを示す。次に、ＣＰＵ５はバスサイクルＷＢ２および続く３つのバスサイクルＷＢ３からＷＢ５の終わりにデータバスＤＢＵＳ上に有効なデータを配置することによりライトを実施する。次に、最後のバスサイクルＷＢ６においてＢＲＤＹ＃を駆動するメモリコントローラ１０によりバーストライト動作は完了であると表示される。
【００３４】
したがって、この実施例では、バースタブルアクセスはｘ８６−アーキテクチュアマイクロプロセッサベースコンピューシステム内の主記憶装置のノンキャッシャブルエリアに対して行われる。このようにして、バーストレートでメモリ動作を達成する有利性が広範なメモリ動作に対して、特にビデオＲＡＭ位置等のキャッシャビリティに適さないメモリ位置へアクセスする時に、得られる。さらに、本実施例に従ってこのようなアクセスはマイクロプロセッサ上に付加ピンを必要とせずに行われる。
【００３５】
付加マイクロプロセッサピンおよびマザーボード導体を利用できる場合には、図５に関して説明するように、第２の実施例に従ってさまざまな発明の特徴を実施することができる。図５では、図２に示すのと同じ要素を参照するのに同じ参照番号が使われている。
【００３６】
図５にＣＰＵ５が図示されており、それも図２に関して前記したＰｅｎｔｉｕｍ−クラスマイクロプロセッサであるが、ここではある種のメモリアクセスがバースタブルアクセス要求を含むように構成されている。これらの要求はメモリコントローラ６０内のバスコントロール論理５５へ送られ（明示的もしくは暗示的に）、バーストメモリアクセス要求として解釈される。
【００３７】
例えば、ＲＥＰＭＯＶ命令等のＣＰＵ５によるブロックメモリアクセス動作の実行によりバスコントロール論理５５へ送られるＢＩＵ８内にコントロールフラグを設定することができる。このイベントにおいて、コントロールフラグが設定されると、バスコントロール論理５５は引き続く全てのメモリアクセス要求（Ｍ／ＩＯ＃線ハイ）を、メモリアドレススペースのキャッシャブルおよびノンキャッシャブルの両エリアへアクセスするための、バーストアクセス要求として解釈する。あるいは、特定の命令をＣＰＵ５により実行することができ、それは明示的にメモリのキャッシャブルおよびノンキャッシャブルの両エリアへのバーストメモリアクセスに関係しており、フラグや制御信号がやはりＣＰＵ５により設定されてバーストアクセスが要求されることがメモリコントローラ６０へ表示される。
【００３８】
この第２の実施例では、バーストメモリアクセスはＣＰＵ５０によりメモリのキャッシャブルおよびノンキャッシャブルエリアの両方へ要求できるため、好ましくはキャッシャビリティとバースタビリティの別々の表示がメモリコントローラ６０からＣＰＵ５０へ与えられる。それはメモリアドレスがメモリアドレススペースのキャッシャブルエリア内にあるかどうかを知らずに、ＣＰＵ５０が黙示的バーストアクセス要求を発行することができるためであり、たとえメモリアクセスがノンキャッシャブルであっても、バースタブルアクセスが望ましい。したがって、この実施例ではバーストイネーブル信号ＢＥＮ＃が与えられ、それは従来のＰｅｎｔｉｕｍ−クラス制御信号およびピンの他に、信号および本実施例で提供される対応するＣＰＵ端子である。図５に示すように、この実施例ではバスコントロール論理５５がメモリアクセスのキャッシャビリティを示す信号をＫＥＮ＃線を介して発行し（最初の実施例について前記したものと同様に）、かつバーストアクセスが許可されているかどうかを示す信号をＢＥＮ＃線を介して発行する。ＣＰＵ５０がノンキャッシャブルメモリ位置へのバーストアクセス要求した場合は、ＫＥＮ＃線はバスコントロール論理５５によりハイに維持され（ノンキャッシャブルアクセスを示す）ＢＥＮ＃線はバスコントロール論理５５によりローに駆動されて、バースタブルアクセスを示しデータバスＤＢＵＳ上にデータの４つのカッド語を与えるもしくは要求するようＣＰＵ５０を命令する。
【００３９】
ノンキャッシャブルデータに向けられた実施例のさまざまな特徴について説明してきたので、次に従来ノンキャッシャブルとして処理されているデータ（すなわち、キャッシュ記憶装置等の１個以上の２次記憶装置内に重複が許されない）の処理に向けられた特徴をさらに提供し、別の実施例ではこのようなデータは分類構造に従って処理されて、データがノンキャッシャブルであると見なされる従来の制約にもかかわらずメモリや他の記憶装置に一時的にを記憶できるようにされる（すなわち、キャッシュ式に）。すなわち、下記の実施例では、多数のコピーにノンキャッシャブルデータのあるタイプ、すなわち“クラス”、が許可されしかも潜在的な付加コピーが適切なメモリコヒーレンシと干渉はないことを保証する適切な技術が実施される。このような処理例を提供するために、発明的なＣＰＵ構成のさらにもう一つの実施例を図６に示し、それは本文書の残部で使用される用語であるデータのクラスの例としても提供されるものである。
【００４０】
次に、図６を参照して、再びＣＰＵを６２で示しそれはやはり前記ＣＰＵ５やＣＰＵ５０について説明したようにＢＩＵ８を含んでいる。したがって、一般的にＢＩＵ８はＣＰＵ６２から外部通信を行うバスを含み、それらはそれぞれアドレス、データ、およびコントロールバスＡＢＵＳ，ＤＢＵＳ，およびＣＢＵＳである。これらの各バスは前記したように作動することができるが、下記の実施例を詳細に説明するのにここではＣＢＵＳの付加特徴を説明するだけでよい。この点に関して、ＣＰＵ６２はそのＣＢＵＳ信号の一部として２つの新しい信号を含んでいてこれらの信号はノンキャッシャブルデータの処理に関連しており、前記したＣＢＵＳ信号に付加したりそのいくつかの替わりとすることができる。いずれにせよ、これらの信号はＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥと呼ばれる。その各々について後述する。
【００４１】
ＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥ信号は組み合わされて、従来の感覚ではノンキャッシャブルデータと見なされるものをキャッシュ式に限定期間格納できるようにするのに使用される。特に、下記の実施例では、例示する所望タイプのデータをクラスへ割り当てることができ、この割当てはＣＢＵＳ上のＣＬＡＳＳ信号内に符号化される。例えば、図６を続ければお判りのように、クラスのタイプはビデオデータに関連することができる。したがって、ＣＰＵ６２はグラフィクスアダプタ６４に接続され、グラフィクスアダプタ６４は画面ディスプレイ６６へ駆動信号を出力するように接続される。後述するようにＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥ信号のケーパビリティを除けば、グラフィクスアダプタ６４は当業者には周知の多くのさまざまな構成の一つとすることができる。同様に、画面ディスプレイ６６自体もＣＲＴ装置やフラット画面（例えば、ＬＣＤ）装置等を含むさまざまなタイプとすることができる。
【００４２】
グラフィクスアダプタ６４の周知の特徴を考えると、それにはビデオケーパビリティを実現するのに使用するさまざまな種類の制御もしくはマイクロプロセッサ装置とすることができるビデオコントローラ６８が含まれ、さらにビデオデータを格納するＣＰＵ６２の主記憶スペースへマップされるメモリ７０もしくは他種のデータ記憶装置が含まれる。本実施例がなければ、ＭＥＭＯＲＹ７０に格納されたデータはＣＰＵ６２とは無関係に変化を受ける、すなわちビデオコントローラ６８により変えられることがあるため、典型的にはノンキャッシャブルと指示される。考慮すべき第２の点として、ＭＥＭＯＲＹ７０内に格納されたデータに対して周知のキャッシング技術が許されている場合に必要な典型的なスヌーピングをビデオコントローラ６８はサポートしない。グラフィクスアダプタ６４も２つの付加ブロックを含んで図示されており、それには文字および属性回路７２および信号発生器７４が含まれている。これらのブロックはテキストおよび／もしくはグラフィクスデータを収容するために典型的に実現されるさまざまな機能をサポートし、データを十分に処理して信号発生器７４へシリアル化しかつ画面ディスプレイ６６から所望データが出力されるように有意駆動信号として与えられるようにするための別個の付加回路を含むことができる。
【００４３】
次に、ＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥ信号に注目すると、それらはグラフィクスアダプタ６４（およびＣＰＵ６２）を従来技術から区別して、この状況もしくは他の状況において、ノンキャッシャブルデータをＭＥＭＯＲＹ７０以外の記憶回路内へ一時的にコピーできるようにする付加ケーパビリティを提供する。図６のビデオデータの例に対して、後述する理由から異なる各走査線に対応するＭＥＭＯＲＹ７０内の各データ群が異なるクラスへ割り当てられるものとする。特に、走査線は従来技術では画面ディスプレイ６６を横切する水平トレース数に対応することが知られている。したがって、このような各走査線について、その走査線（すなわち、一つの水平トレース）を画面ディスプレイ６６を横切させるのに必要な対応するデータ群がある。例えば、画面ディスプレイ６６は１０２４ｘ７６８ピクセルの総解像度を与え、したがって画面ディスプレイ６６の完全な更新には７６８の水平トレースが伴うことを示しているものとする。したがって、定義により、これはＭＥＭＯＲＹ７０内のデータの合計７６８の異なる走査線を示す。このデータが与えられたものとして、本発明のこの実施例に対してこれらの各走査線には１から７６８のＣＬＡＳＳ番号が付されるものとする。
【００４４】
前記した分類システムが与えられたものとして、ＭＥＭＯＲＹ７０内の１走査線データをそのＣＬＡＳＳに従って識別してＴＥＲＭＩＮＡＴＥ信号と共に使用して、その走査線データをキャッシュもしくはキャッシュ式構造内で一時的に重複することができる。この操作については後述する。しかしながら、前置きとしてこの機能性の一例は有益である。前記したように、従来技術ではＭＥＭＯＲＹ７０内のデータはノンキャッシャブルであり、したがって、そのデータの唯一のコピーがＭＥＭＯＲＹ７０内に配置される。しかしながら、下記の実施例ではデータの各ＣＬＡＳＳに対して“寿命”が定義され、その寿命のライブ期間中に所与のＣＬＡＳＳ内のデータをキャッシュ式にＭＥＭＯＲＹ７０以外の記憶装置内へコピーすることができる。ＴＥＲＭＩＮＡＴＥ信号がアサートされると、前記データＣＬＡＳＳの寿命が終わり付加記憶装置は後述するように応答するよう指令される。すなわち、ＴＥＲＭＩＮＡＴＥ信号がアサートされる前に、このデータのコピーは他の記憶装置へのアクセスを有する回路で使用および／もしくは変化することができる。したがって、実際上、ノンキャッシャブルデータはキャッシュ式に使用するために一時的に利用することができる。これらの操作および利点はすぐ後の図７の説明の後で良く理解される。
【００４５】
図７に図６のＣＰＵ６２の詳細回路図を示し、したがって、それはＣＰＵ６２がノンキャッシャブルデータをある期間一時的に格納および修正することができる構成に向けられている。次に、図７を参照すると、前記したＢＩＵ８がここにも図示されており、それはクロック発生回路１６からＣＬＫ信号を受信するだけでなく３本のバスＤＢＵＳ，ＡＢＵＳ，およびＣＢＵＳにも接続されている。さらに、図７ではＣＢＵＳは図６に導入されたＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥ信号を含んでいる。さらに、ＢＩＵ８の下には未検討の（Ｌ２キャッシュ６以外）おびただしい付加回路がある。これらの付加回路に関して、最初に簡単にするためにＤＢＵＳ，ＡＢＵＳおよびＣＢＵＳの各々がＢＩＵ８を介して共通バスＢに接続されて図示されている。したがって、マイクロプロセッサ５内でバスＢは任意のデータ、アドレス、もしくは制御情報を運べるようにされている。バスＢは第１のレジスタ７６に対してＤＡＴＡトランザクション単位を送受するように接続されている。本実施例では、ＤＡＴＡのバスＢトランザクション幅は８バイトである。さらに、後述する目的で、好ましい実施例ではレジスタ７６は１バースト線までのデータを格納するサイズとされており、したがって、バスバーストサイズが３２バイトであれば、レジスタ７６は３２データバイトを格納することができる。しかしながら、別の実施例ではレジスタ７６はデータの１バーストサイズよりも大きいことも小さいこともある。バスＢはさらに第２のレジスタ７８に対してＡＤＤＲＥＳＳを送受するように接続されており、そのアドレスはレジスタ７６に対して読み書きされるＤＡＴＡに対応している。最後に、バスＢは適用可能であればＣＬＡＳＳ識別子をＣＢＵＳから第３のレジスタ８０へ与えるように接続されており、第３のレジスタ８０もレジスタ７６に対して読み書きされるＤＡＴＡに対応している。
【００４６】
レジスタ７６，７８および８０には好ましくは３個のインジケータ８２，８４および８６も関連している。インジケータ８２はレジスタ７６内のＤＡＴＡが後述するようにライブ（ｌｉｖｅ）であるか時間切れ（ｅｘｐｉｒｅｄ）であるかを表示し、したがって、インジケータ８２は以後Ｌ／Ｅインジケータ８２と呼ばれる。インジケータ８４はレジスタ７６内のＤＡＴＡがクリーン（ｃｌｅａｎ）であるかダーティ（ｄｉｒｔｙ）であるかを表示し、したがって、以後Ｃ／Ｄインジケータ８４と呼ばれる。クリーンおよびダーティという用語はここではキャッシュ技術と同様に使用され、したがってレジスタ７６に受信された後でＤＡＴＡが修正されているかどうかを示す。さらに、前記したことからデータレジスタ７６は好ましくは３２バイトの情報を格納するサイズとされていることを思い出して戴きたい。したがって、別の実施例では、Ｃ／Ｄインジケータ８４はレジスタ７６内に格納された全セットのＤＡＴＡに対して１個のインジケータとすることができ、あるいは各バイトについて別々の表示を含むことができ、したがって、レジスタ７６内に格納された考えられる３２のＤＡＴＡバイトの各々に一つの合計３２個のインジケータを含むことができる。さらにまた、Ｃ／Ｄインジケータ８４は８バイトのバストランザクション単位サイズ、もしくは４バイトのグループや他のグループ等の他のバイトグルーピングに対する別々の表示を含むことができる。インジケータ８６はＤＡＴＡの一部が有効（ｖａｌｉｄ）か無効（ｉｎｖａｌｉｄ）かを表示し、したがって、以後Ｖ／Ｉインジケータ８６と呼ばれる。特記なき限り、有効および無効という用語はキャッシュ技術のようにも使用される、すなわち、ＤＡＴＡの所与の部分（例えば、バイト）がその情報を読み出す回路により有効情報として信頼されるかどうかを表示するのに使用される。ここでも、前記したことからデータレジスタ７６は好ましくは３２バイトの情報を格納するサイズとされていることを思い出して戴きたい。これに関して、好ましい実施例では、Ｖ／Ｉインジケータ８６は好ましくは各バストランザクションサイズについて別々の表示を含み、したがって、レジスタ７６内に格納されたＤＡＴＡの８バイトトランザクション単位の各々に一つづつの合計４個のインジケータを含んでいる。しかしながら、Ｃ／Ｄインジケータ８４の場合と同様に、別の実施例のインジケータ８６は４バイト、個別バイトのグループ、もしくは他のグループ等の他のバイトグルーピングに対して別々の表示を含むことができる。各インジケータ８２，８４および８６は個別もしくは共通レジスタ内のビット、導体上の信号、もしくは状態機械内の状態等の従来技術で周知のさまざまな方法で表現することができる。ライブもしくは時間切れ、有効もしくは無効、およびダーティもしくはクリーンである表示の定義については図７の回路の動作に介して後述する。
【００４７】
Ｌ／Ｅインジケータ８２はＬ／Ｅ制御および応答回路８８に接続されている。特に、好ましい実施例では、Ｌ／Ｅ制御および応答回路８８はＬ／Ｅインジケータ８２へ状態を書き込むことができ、その後後述する目的でその同じ値を読み出すことができる。さらに、Ｌ／Ｅ制御および応答回路８８はバスＢからＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥ信号を受信するように接続されている。後述するように、Ｌ／Ｅ制御および応答回路８８は格納されたＤＡＴＡに関連するＨＩＴ／ＭＩＳＳ信号、そのＣＬＡＳＳ、およびそのＬ／Ｅ表示を出力するように作動することができる。最後に、当業者ならば後述するその機能性および回路を理解すれば、さまざまな周知の方法を使用してＬ／Ｅ制御および応答回路８８を構成できる。
【００４８】
図７には、さらにＣ／Ｄ制御および応答回路９０が含まれている。特に、好ましい実施例では、Ｃ／Ｄ制御および応答回路９０はＣ／Ｄインジケータ８４およびＶ／Ｉインジケータ８６へ状態を書き込むことができ、その後後述する目的でこれらの同じ値を読み出すことができる。さらに、Ｃ／Ｄ制御および応答回路９０はレジスタ７６内のＤＡＴＡを読み出すことができ、また両方のレジスタ７６および７８へ制御信号を与えて、後述する状況の元で、これらのレジスタのＤＡＴＡおよびＡＤＤＲＥＳＳをバスＢへ書き込ませることができる。さらに、またＣ／Ｄ制御および応答回路９０はバスＢから前記したＣＬＡＳＳ信号を受信するように接続されている。最後に、当業者ならば後述するその機能性および回路を理解すれば、さまざまな周知の方法を使用してＣ／Ｄ制御および応答回路９０を構成できる。
【００４９】
最後に、図７にはさらにレベル２キャッシュ回路６が図示されている。後述する理由から、レベル２キャッシュ回路６は図７の回路の記憶技術の違いを対比するために含まれている。ここで、前記したように主記憶装置（図３参照）はキュッシャブルおよびノンキャッシャブルデータへ分離される記憶スペースを有することができることを思い出して戴きたい。図７に関して、キュッシャブルデータ部分はレベル２キャッシュ回路６（もしくは他のキャッシュ構造）に格納することができる。それに対して、ノンキャッシャブルデータ部分はデータレジスタ７６に格納することができる。後者の記憶装置から得られる利益や技術については後述する。
【００５０】
図８は図７の回路のさまざまな動作ステップの方法９２のフロー図を示す。これらのステップを詳細に説明する前に、方法９２のさまざまなステップの順序は例にすぎず、当業者ならば本回路により提供されるさまざまな発明的特徴を利用しながらこのような順序を容易に変えられる。さらに、図８のさまざまなステップは逐次的に実施するのではなく共通クロックサイクル中に同時に実施することもできるが、この説明を単純化するために逐次的なフローが提示されている。
【００５１】
図８に関して、方法９２はステップ９４で開始され、そこでＣＰＵ６２はＤＡＴＡをレジスタ７６へ、その対応するＡＤＤＲＥＳＳをレジスタ７８へ、その対応するＣＬＡＳＳ識別子をレジスタ８０へ読み込む。好ましい実施例では、読み込まれるＤＡＴＡはノンキャッシャブルデータである。当業者ならば本実施例で使用できるさまざまな種類のノンキャッシャブルデータを確認できるであろう。事実、前記した図６にはこのような一つの例、すなわち、ビデオメモリ（すなわち、ＭＥＭＯＲＹ７０）からのデータが導入されている。さらに別の例が後述される。いずれにせよ、前記したように、ＤＡＴＡレジスタ７６は好ましくはＤＡＴＡのバーストシーケンスまでを格納するサイズとされる。したがって、ステップ９４の後で、レジスタ７６はＤＡＴＡの３２バイト全てを格納する。図４ａに関してデータのバーストシーケンスをアドレスするためにバス線Ａ３１−Ａ３を介してアドレスが発行されたことを思い出して戴きたい。このアドレスはＤＡＴＡに対応するため、ＡＤＤＲＥＳＳとしてレジスタ７８に格納される。最後に、本実施例では、データレジスタ７６に格納されるデータにはＣＬＡＳＳ識別子が割り当てられる。したがって、ステップ９４ではバスＢからレジスタ８０へのこのＣＬＡＳＳの読み出しも行われる。また前記説明はＤＡＴＡのバーストシーケンスを好ましいものとしているが、別の動作ではＤＡＴＡのバースト以下のもの（レジスタ７６が１バーストサイズよりも大きい場合にはバースト以上のもの）をレジスタ７６に格納することができる。したがって、レジスタ７６は１バースト線までのデータを格納するように作動できると前記したが、僅か１単位のデータ（例えば、８バイト）等のバースト以下のものを格納できることは明らかである。さらに、後述するように、最初のＤＡＴＡがレジスタ７６に到来するとその寿命が本質的に開始されている。さらに、このＤＡＴＡがバーストとして到来する場合、好ましくは寿命は最初の８バイト等のバーストの最初の部分の受信時に開始される。寿命の終わりについては後述する。
【００５２】
ステップ９６において、インジケータ８２，８４および８６の値が初期設定される。ここでも、このステップは図８ではステップ９４に続くように図示されているが、それはこの検討を切り離して行うためにすぎない。したがって、後続するアクションはステップ９４と同じクロックサイクル中に生じることがあり、レジスタ７６により受信される新しいＤＡＴＡに応答してインジケータが設定される。次にインジケータに関して、後述するように、Ｌ／Ｅインジケータ８０はレジスタ７６に新たに受信されるＤＡＴＡがライブであることを表示するように初期設定される。さらに、キャッシュ技術の趣旨と同様の方法で、Ｃ／Ｄインジケータ８４はレジスタ７６に新たに受信されるＤＡＴＡがクリーンであることを表示するように初期設定され、Ｖ／Ｉインジケータ８６はレジスタ７６に新たに受信されるＤＡＴＡが有効であることを表示するように初期設定される。さらに、これらの設定はＬ／Ｅインジケータ８２へ新しい値を書き込むＬ／Ｅ制御および応答回路８８およびＣ／Ｄインジケータ８４およびＶ／Ｉインジケータ８６へ新しい値を書き込むＣ／Ｄ制御および応答回路９０により遂行することができる。ここでも、これら２つの後者の表示はキャッシュ技術で典型的に使用される意味を有している。したがって、Ｃ／Ｄインジケータ８４に関して、クリーン表示はレジスタ７６内へ読み込まれて以来ＤＡＴＡが不変であることを表し、逆にＤＡＴＡがダーティであるという表示はレジスタ７６へ読み込まれて以来変化しており、したがって、コヒーレンシの目的に対してそのＤＡＴＡの最もカレントな形式であることを表している（すなわち、ＤＡＴＡの線は周知の“ライトバック”方式で作用する）。Ｖ／Ｉインジケータ８６に関して、有効表示はレジスタ７６内のＤＡＴＡをそのＤＡＴＡへのアクセスを有する回路により読み出せることを表し、逆に無効マークであれば同じＤＡＴＡ読み出してはならない。
【００５３】
ステップ９８はレジスタ７６内のＤＡＴＡをキャッシュ式に使用することができる待機期間を示し、ここでも前記ステップ９４および９６と並行動作とされることがある。特に、ステップ９８ではレジスタ７６に格納されているＤＡＴＡのＣＬＡＳＳが終結しているかどうかが確認される。特に、ＴＥＲＭＩＮＡＴＥ信号がアサートされると、Ｌ／Ｅ制御および応答回路８８はバスＢ上のＣＬＡＳＳ信号をレジスタ８０に格納されたＣＬＡＳＳ識別子と比較する。ＣＬＡＳＳ信号と一致したら、実施例ではレジスタ内のＤＡＴＡはもはやそのＤＡＴＡへのアクセスを有する他の回路で使用してはならず、方法９２はステップ１００へ続く。一方、ＴＥＲＭＩＮＡＴＥ信号がまだアサートされていないか、あるいはアサートされてはいるがバスＢ上のＣＬＡＳＳ信号がＣＬＡＳＳレジスタ８０に格納されたＣＬＡＳＳ識別子と一致しない場合には、ステップ９８はこれらの条件が満たされるまで待機した後で方法９２へ進む。したがって、ステップ９８中にレジスタ７６内のＤＡＴＡのコピーはライブである（そのＬ／Ｅインジケータで示されるように）。したがって、その表示が替わるまで、ＤＡＴＡへのアクセスを有する任意の回路がそこへ読み書きを行うことができる（もちろん、ＤＡＴＡも有効マークされているものとする）。したがって、ステップ９８が未決である間に通常はノンキャッシャブルと見なされるＤＡＴＡをキャッシュ感覚で使用することができる、すなわち、ノンキャッシュで存在していたオリジナルバージョン（例えば、ＭＥＭＯＲＹ７０）からＤＡＴＡのコピーが重複されており、そのコピーはＣＰＵ６２内の回路へ容易にアクセスして同じ回路がＤＡＴＡのオリジナルコピー（例えば、ＭＥＭＯＲＹ７０）へのオフチップアクセスを実施することなくそのＤＡＴＡを読み出しもしくは更新することができる。
【００５４】
ステップ１００において、一度ＴＥＲＭＩＮＡＴＥ信号がアサートされて検出されかつ前記したバスＢ上のＣＬＡＳＳ信号がレジスタ８０内のＣＬＡＳＳ識別子と一致する場合には、Ｌ／Ｅインジケータ８２の状態はライブから時間切れへ変化する。ここでも、この操作はＬ／Ｅインジケータ８２へ新しい値を書き込むＬ／Ｅ制御および応答回路８８により遂行される。このような操作が行われると、ここでもステップ９６とステップ１００との間でＤＡＴＡとＡＤＤＲＥＳＳの格納によりノンキャッシャブルデータに対するキャッシュ式格納が行われることは明らかである。特に、ステップ９８の条件が満たされる前に、インジケータ８２はＤＡＴＡがライブであることを表示する。この表示はライブ状態中にレジスタ７６へのＤＡＴＡの読み書きが許可されることを任意の要求回路へ示す。もちろん、この表示は他の２つのインジケータ８４および８６を考慮して行われる。例えば、ＤＡＴＡの全バーストがレジスタ７６に格納され（すなわち、インジケータ８６が有効を示す）、格納されたＤＡＴＡのＣＬＡＳＳは終結しておらず（すなわち、インジケータ８２がライブを示す）、ＤＡＴＡは受信されて以来修正されていない（すなわち、インジケータ８４がクリーンを示す）ものとする。したがって、キャッシュ構成と同様に、バスＢ上に提示されて対応するデータの読み出しを求めるアドレスはレジスタ７６内のＤＡＴＡをアドレスすることができる。特に、このようなアドレスはＬ／Ｅ制御および応答回路８８により受信される。次に、回路８８はバスＢ上のアドレスがレジスタ７６内のＡＤＤＲＥＳＳに一致するかまたＤＡＴＡがライブで有効であるかどうかを確認し、これらの条件が満たされれば回路８８はキャッシュ回路の方式でＨＩＴを発行する。したがって、ＨＩＴ信号に応答して、次にＡＤＤＲＥＳＳを発行した回路がレジスタ７６からＤＡＴＡを読み出すことができる。同様に、スヌープアドレスも回路８８により受信することができる。従来技術で周知のように、スヌーピングによりキャッシュ構造は適切なメモリコヒーレンシを維持することができる。しかしながら、本実施例ではレジスタ７６に格納されるのは一般的にノンキャッシャブルデータであることを思い出して戴きたい。それでも、ステップ９８に関して前記したように、レジスタ７６内のＤＡＴＡは実際上ステップ９８の待機期間中にキャッシュされたデータに匹敵し、したがって、ここでも適切なメモリコヒーレンシを保証するために（すなわち、主記憶装置内の共通アドレスに属するデータのさまざまなコピー間にデータコヒーレンシを維持するために）、前記したように回路８８にスヌープアドレスを受信させることによりこのＤＡＴＡもスヌープすることができる。したがって、ここでも回路８８はスヌープアドレスをレジスタ７６内のＡＤＤＲＥＳＳと比較して、対応するＤＡＴＡがライブで有効であればＨＩＴを発行することができる。さらに、スヌープ要求がさらにキャストアウト操作を要求する場合には、対応するＤＡＴＡをバスＢにも書き込むことができ、したがって、スヌープに応答して入手することができる。この場合、レジスタ７６内のＤＡＴＡのコピーはもはやその情報の唯一のコピーではないため、Ｃ／Ｄインジケータ８４もクリーンに設定される。さらにもう一つの例として、スヌープ要求はＤＡＴＡのキャストアウトの要求の他に無効化も要求することができる。したがって、ＤＡＴＡを出力する他に、Ｖ／Ｉインジケータ８６が無効に設定される。事実、さらに本実施例では、データはライブではあるが無効であるために有用な状態が提供されないことがあるため、無効化するスヌープに応答してＶ／Ｉインジケータ８６も時間切れするように設定することができる。したがって、他のスヌープ技術だけでなくこれらのスヌープ技術も含めることができ、このような技術はここに本開示の一部として組み入れられている、１９９６年モルガンカウフマンパブリッシャーズ社刊、ヘネシーおよびパターソンによるテキスト“Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ＡＱｕａｎｔｉｔａｔｉｖｅ  Ａｐｐｒｏａｃｈ”第２版の８．３節“Ｃｅｎｔｒａｌｉｚｅｄ  Ｓｈａｒｅｄ−Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ”に明示されているように従来技術で周知である。
【００５５】
さらに、前記したキャッシュ式操作により、レジスタ７６内のＤＡＴＡはライブである間にやはりキャッシュ技術と同様の方式で修正することができる。したがって、情報の書き込みを求めるアドレスがバスＢ上に提示されると、ここでも回路８８はアドレスがレジスタ７６内のＡＤＤＲＥＳＳと一致するかどうかを確認し、一致すればさらにレジスタ７６内のＤＡＴＡがライブであるかどうかを確認する。ライブであれば、レジスタ７６内のＤＡＴＡは修正することができる。さらに、このような場合、回路９０はＤＡＴＡへの変化を検出しＣ／Ｄインジケータ８４の状態をクリーンからダーティへ変える。これらには他のキャッシュ式操作と共に本実施例を含めることができ、ここに本開示の一部として組み入れられている前記したテキスト“Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ＡＱｕａｎｔｉｔａｔｉｖｅ  Ａｐｐｒｏａｃｈ”等のさまざまな参考文献から確認することができる。
【００５６】
図７の選択回路に対するキャッシュ式操作についてすぐ前の２節で説明してきたが、ＤＡＴＡの所与のＣＬＡＳＳに対するＴＥＲＭＩＮＡＴＥ信号のアサートにより最終的に規定されるレジスタ７６内のＤＡＴＡの“寿命（ｌｉｆｅ  ｓｐａｎ）”の概念をあからさまに察知できるであろう。特に、ステップ１００の間にＤＡＴＡは時間切れとマークされ、したがってそのアクションの後で回路８８は常にそのＤＡＴＡに対するミスを表示する。すなわち、たとえアドレス（バスＢからの読み書きに対するバスアドレス、もしくはスヌープアドレス）が回路８８へ発行されてレジスタ７８内のアドレスと一致しても、ステップ９８の条件は予め満たされている（すなわち、レジスタ８０で説明したＣＬＡＳＳのＤＡＴＡに関してＴＥＲＭＩＮＡＴＥがアサートされた）ため、回路８８はＤＡＴＡが時間切れであることを検出する。したがって、レジスタ７６へのＤＡＴＡの初期ローディングとその終結までの“寿命”中しかＤＡＴＡをキャッシュ式に入手することができない。しかしながら、この操作は典型的なキャッシュ構造の操作に類似しているためにキャッシュ式と呼ばれるにすぎない。しかしながら、ＤＡＴＡは定義上ノンキャッシャブルであるため（主記憶装置もしくは主記憶スペースにマップされる他の記憶装置から表示されるように）、レベル２キャッシュ６やＣＰＵ６２の内部もしくは外部の他のキャッシュ等の他の非クラス識別キャッシュ構造には与えられない。
【００５７】
次にステップ１０２において、Ｃ／Ｄインジケータ８４が有効ＤＡＴＡに対応してクリーンであるかダーティであるかが確認される。レジスタ７６内のＤＡＴＡがクリーンである（かつ有効である）ことをインジケータが表示する場合には、方法９２はステップ１０６へ進む。一方、レジスタ７６内のＤＡＴＡがダーティであることをインジケータが表示する場合には、方法はステップ１０４を続ける。
【００５８】
ステップ１０４中に、回路９０はレジスタ７８に格納されたＡＤＤＲＥＳＳに従って、レジスタ７６内のＤＡＴＡが主記憶装置（もしくはグラフィクスアダプタメモリ等の他のよりハイレベルの記憶装置構造）へ書き込まれるように適切な制御信号を発行して適切なメモリコヒーレンシを保証する。さらに、好ましくはＣＰＵ６２はダーティＤＡＴＡが主記憶装置へまだ書き込まれていない時にステップ１００からステップ１０４までの期間中に十分な待機引起し回路（ｗａｉｔｃａｕｓｉｎｇ  ｃｉｒｃｕｉｔｒｙ）を含んでいる。すなわち、ステップ１０２はダーティデータを識別しステップ１０４はそのデータを主記憶装置へ書き込み開始するが、書込動作中に同じデータの読み出し要求があるものとする。一つの方法として、読み出しを実施する回路はＤＡＴＡが主記憶装置へ書き込まれるまで待機するようにし、次にその回路が主記憶装置からＤＡＴＡを読み出すようにすることができる。もう一つの方法として、読み出しを実施する回路はＤＡＴＡが主記憶装置へ書き込まれる時にそのＤＡＴＡをバスから読み出すことができる。
【００５９】
しばらくステップ１０２へ戻って、別の実施例ではそれを変更もしくは削除することができる。例えば、方法９２はＴＥＲＭＩＮＡＴＥおよび適切なＣＬＡＳＳ信号のアサートに応答してＤＡＴＡが終結した後でしかダーティＤＡＴＡが主記憶装置へ書き込まれないことを示しているが、Ｃ／Ｄ制御および応答回路９０も終結する前に周期的にこのアクションをとることができる。すなわち、ＴＥＲＭＩＮＡＴＥがアサートされているかに無関係にある周期的な間隔でＣ／Ｄインジケータ８４を評価し、ＤＡＴＡがダーティであればＤＡＴＡを主記憶装置へ書き込ませる適切な制御信号を発行するように回路９０を構成することができる。したがって、終結以外の考慮すべき事柄に基づいて主記憶装置を周期的に更新することができる。前記修正の別の例として、よりハイレベルの記憶装置へダーティ情報を書き戻す概念は従来技術においてライトバック方法、すなわち、データが最初にキャッシュ（もしくはキャッシュ式）構造へ書き込まれ後でハイレベルメモリ構造を更新するために出力される方法、と呼ばれる状況において生じる。したがって、別の実施例では周知のライトスルー方法を使用することができる。そのような場合には、レジスタ７６内に既に格納されているＤＡＴＡを修正するたびに、それは主記憶装置（例えば、図６の例におけるＭＥＭＯＲＹ７０）へも書き込まれる。その場合、定義により、ＤＡＴＡは常にクリーンであるため（それは常にハイレベルメモリ内で得られる同じ情報のコピーであるため）ダーティ対クリーンインジケータは不要である。事実、ライトバックおよびライトスルーの代替策が与えられれば、本実施例のさらに別の方法は選択をダイナミックに変えられるようにすることである。例えば、イネーブル信号を使用することができる。その場合、信号が第１の状態であれば、ＤＡＴＡはライトバック式に書き込まれ、したがってそのＤＡＴＡに対してＣ／Ｄインジケータ８４を保守しその表現を厳守する必要がある。逆に、信号が第２の状態であれば、ＤＡＴＡはライトスルー式に書き込まれ、したがってそのＤＡＴＡに対するＣ／Ｄインジケータ８４の表現を維持したりそれに応答する必要がない。最後に、適切な技術を使用してレジスタ７６内のＤＡＴＡの修正によりメモリコヒーレンシが保証されると、方法９２はステップ１０６へ続く。
【００６０】
ステップ１０６はＤＡＴＡの特定例に対するフロー終りとその対応するＡＤＤＲＥＳＳを示しているにすぎない。したがって、ＤＡＴＡは現在時間切れとなっているため無効としてマークされ、ここでも有効な時間切れ状態は有用ではない。次に、ステップ１０６の後で、方法９２はレジスタ７６へ書き込まれた異なるノンキャッシャブルＤＡＴＡに関して繰り返し、次に前記したように方法９２のステップを繰り返すことができる。
【００６１】
図７の検討を終えたので、次に図６に戻って図７のステップをどのようにＭＥＭＯＲＹ７０に格納されたビデオデータの例に実施することができるかを明示する、したがって、ＣＬＡＳＳおよびＴＥＲＭＩＮＡＴＥ信号の操作を明示することが有益である。したがって、画面ディスプレイ６６の走査線は画面の頂部から底部へ増分するように分類されるものとする。すなわち、画面ディスプレイ６６上の最上位線に対応するＭＥＭＯＲＹ７０内のデータは１の対応するＣＬＡＳＳ識別子を有し、画面ディスプレイ６６上の最下位線に対応するＭＥＭＯＲＹ７０内のデータは７６８の対応するするＣＬＡＳＳ識別子を有し、各ＣＬＡＳＳ識別子はＣＬＡＳＳ１およびＣＬＡＳＳ７６８間で画面を下るにつれて上昇する。次に、ＭＥＭＯＲＹ７０は第１の例では７６８の全ての走査線に対応する全てのデータを格納するものとする。したがって、本実施例を使用して最上位走査線が画面ディスプレイ６６の両端間でトレースされる間に、連続する次の走査線（すなわち、ＣＬＡＳＳ２）をＤＡＴＡとしてレジスタ７６に格納することができる（すなわち、ステップ９４の例として）、したがってそれもＣＬＡＳＳレジスタ８０に２の識別子値を格納し、格納されたＤＡＴＡに対応するインジケータを初期設定する。したがって、この点において、レジスタ７６へのアクセスを有する任意の回路が格納されたデータ（すなわち、第２の走査線）を、それがライブで、クリーンで、有効であるために使用もしくは修正することができる。次に、画面ディスプレイ６６両端間の頂部走査線が完結しているものとする。この時、従来技術で周知のように、ビデオコントローラ６８は水平同期化信号をアサートする。このようにして、非常に近い将来第２の走査線がトレースされること知られている。したがって、本実施例では、ＴＥＲＭＩＮＡＴＥ信号は水平同期化と同じとするか、それによりトリガすることができる。この信号が与えられると、同時にＴＥＲＭＩＮＡＴＥがアサートされ、ビデオコントローラ６８はＣＬＡＳＳ信号に対する値としてＣＬＡＳＳ２の値をＣＰＵ６２へアサートする。それに応答して、ステップ９８においてＣＬＡＳＳ信号とレジスタ８０に格納されたＣＬＡＳＳ識別子との一致が検出され、Ｌ／Ｅインジケータ８２は時間切れするように変えられ格納されたデータは、ダーティであれば、ＭＥＭＯＲＹ７０へ書き出される。したがって、画面ディスプレイ６６両端間の次の水平トレースが生じると、それは現在ＤＡＴＡレジスタ７６から出力されているＭＥＭＯＲＹ７０内のデータを使用して生じることがある。したがって、この例が与えられると、同業者ならば水平同期化信号に応答して終わる寿命中にノンキャッシャブルビデオデータは、本質的に、キャッシュのように利用できることを理解できるであろう。事実、走査線が画面ディスプレイ６６の両端間でトレースされる間、連続する次の線がＤＡＴＡレジスタ７６に格納されキャッシュ式アベイラビリティに対してライブであるように各走査線に対してこの過程を繰り返すことができる。また前記したタイミングは単なる例にすぎず他の代替策も使用することができる。例えば、第１の走査線が完結したら、第３の走査線に対応するＣＬＡＳＳ信号と共にＴＥＲＭＩＮＡＴＥ信号を発行することもできる。したがって、ＤＡＴＡがＤＡＴＡレジスタ７６に格納されていてその第３の走査線に対応する場合には、それも時間切れとされその後キュッシュ式に使用することはできない（そのＤＡＴＡがダーティであればメモリ７０へ出力されるだけでなく）。当業者ならば他のさまざまな例を確認できるであろう。
【００６２】
前記したことから、さらにＤＡＴＡは本実施例に使用して前記した水平同期化信号以外の状況で終結することができる。例えば、やはりビデオデータのエリア内で、画面ディスプレイ６６両端間の最下位水平走査線が完結する時にビデオコントローラ６８は垂直同期化信号も与えられることが知られている。したがって、ＴＥＲＭＩＮＡＴＥ信号はこの垂直同期化信号に応答することができる、すなわち、ＴＥＲＭＩＮＡＴＥ信号は垂直同期化信号のアサートと同じ、もしくはそれによりトリガすることができる。事実、本実施例はビデオデータ以外のデータへ応用することができる。例えば、主記憶装置内の他のさまざまな記憶位置はＩ／Ｏデバイスの状態に関するデータを含むことができ、そのデータは典型的にはノンキャッシャブルでありしかも本実施例と矛盾しない方法で一時的に格納することができる。このような状況では、このようなデータのコピーを格納して特定のＩ／Ｏデバイスに対応するＣＬＡＳＳ識別子を割り当てることができる。したがって、主記憶装置からのデータをＩ／Ｏデバイスが利用できるようにしたい場合、Ｉ／Ｏデバイスからの信号を使用してＴＥＲＭＩＮＡＴＥ信号をトリガしかつ指示されたＣＬＡＳＳ識別子をアサートして、主記憶装置がＤＡＴＡを更新し修正して次にＩ／Ｏデバイスが利用できるようにすることができる。Ｉ／Ｏの例として、ディスクコントローラはディスクデータバッファを含む場合が多く、そのバッファはデータで埋められそれは、データを埋める過程中もしくはバッファが埋められた後で、対応するディスク装置内のディスクへ書き込まれる（バッファは主記憶装置等へ書き出されるディスクからのデータも受信することができる）。この点に関して、ディスクコントローラから制御信号を出力することができ、その制御信号はバッファがある空状態に達する時にアサートされる（すなわち、バッファのある部分が空となりさらにデータで埋める準備が完了している時）。このような制御信号が与えられると、ＣＬＡＳＳ識別子が同時に与えられる間（ディスクコントローラ等により）、本実施例の元でＴＥＲＭＩＮＡＴＥ信号をトリガするのにそれを使用することができる。より詳細には、ディスクデータバッファからディスクへデータが書き込まれている時にバッファが埋め尽くされていないある状態に達すると、制御信号がアサートされてＴＥＲＭＩＮＡＴＥをアサートする。同時に、ＣＬＡＳＳ識別子がバッファへ書き込まれる一群のデータを表示する。その結果、それに応答して、バッファを埋めるのに必要なデータがレジスタ７６から主記憶装置へ更新され、ディスクデータバッファにも利用することができる。当業者ならば他の例も確認できるであろう。
【００６３】
図９に図７の別の実施例を示し、多くの同じ概念が使用されしかもＤＡＴＡおよびＡＤＤＲＥＳＳＥＳのさまざまな独立セットを格納するために重複される。したがって、図７および図９の共通の特徴を単純化するために大概の場合同じ参照番号が使用されるが、変化した特徴を区別するために後述するように下付添字を付したり参照番号が変えられている。
【００６４】
図９の実施例は対応するレジスタ７６1 ，７６2 ，および７６3 内の異なる３線のデータを格納することができる。ここでも、これらの各線は好ましくは１バースト線までのデータ（例えば、３２バイト）を格納するように作動することができる。さらに、ＤＡＴＡの各線は各レジスタ７８1 ，７８2 ，および７８3 内に格納された対応するＡＤＤＲＥＳＳを有する。さらに、これらの各線は対応するＣＬＡＳＳレジスタ８０1 ，８０2 ，および８０3 も有している。事実、図９に示すように多数の記憶装置が使用される場合、一つの方法は既存のマイクロプロセッサ記憶回路を使用することである。例えば、マイクロプロセッサはデータ線および対応するアドレスを格納するケーパビリティを含むプリフェッチバッファを含む場合が多い。したがって、図９の多数のデータおよびアドレスレジスタを実現する一つの技術はプリフェッチバッファの責任をこの文書に記載された操作と共有することである。すなわち、イネーブル信号に各記憶線を関連づけることができる。イネーブル信号が第１の状態であれば、線はマイクロプロセッサの所定のプリフェッチ機能に従って作動する。しかしながら、イネーブル信号が第２の状態であれば、線は本実施例に従って作動する。発明的プリフェッチバッファ構成に関する詳細情報については、ここに本開示の一部として組み入れられている１９９６年８月２８日に出願された、米国仮特許出願第６０／０２４，８６０号（アトーニドケット番号ＴＩ−１８８５１Ｐ）“Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｃｉｒｃｕｉｔ  Ｓｙｓｔｅｍ，Ａｎｄ  Ｍｅｔｈｏｄｓ  Ｕｓｉｎｇ  Ａ  Ｃｏｍｂｉｎｅｄ  Ｗｒｉｔｅｂａｃｋ  Ｑｕｅｕｅ  Ａｎｄ  Ｖｉｃｔｉｍ  Ｃａｃｈｅ”を参照されたい。
【００６５】
本実施例の感覚で図９から得られる各情報線に戻って、このような各線はさらに対応するＬ／Ｅインジケータ８２1 ，８２2 ，および８２3 ，対応するＣ／Ｄインジケータ８４1 ，８４2 ，および８４3 ，および対応するＶ／Ｉインジケータ８６1 ，８６2 ，および８６3 を含んでいる。前記各レジスタおよびインジケータはここでも、Ｌ／Ｅ制御および応答回路８８およびＣ／Ｄ制御および応答回路９０等の制御回路に接続されている。しかしながら、ここでは回路８８および９０は複数の独立したデータ線および対応するＡＤＤＲＥＳＳおよびＣＬＡＳＳレジスタを収容する付加ハードウェアを含んでいる。最後に、ＴＥＲＭＩＮＡＴＥおよびＣＬＡＳＳ信号はＬ／Ｅ制御および応答回路８８およびＣ／Ｄ制御および応答回路９０に接続され、したがって、後述するように終結したＣＬＡＳＳに対応する各線は識別されて主記憶装置へ出力することができる。
【００６６】
図９の回路の動作は一般的に前記した図８の方法９２と同じである。しかしながら、方法９２について前記したのと同じステップは好ましくは異なる各線について独立に実施される（すなわち、ＤＡＴＡ，その対応するＡＤＤＲＥＳＳ，ＣＬＡＳＳ識別子、インジケータ、およびＴＥＲＭＩＮＡＴＥおよびＣＬＡＳＳ信号）。したがって、読者は最初に広範な説明について前記図８の検討を参照されたい。この点において、同業者ならばＤＡＴＡおよび対応するＡＤＤＲＥＳＳの各線について、寿命は対応するＣＬＡＳＳによりその線に関連しており、寿命中にＤＡＴＡを読み書きすることができその寿命中もしくは寿命の終りでもメモリコヒーレンシが保証されることを理解できるであろう。しかしながら、同じＣＬＡＳＳを共有する多数の線の影響に注目されたい。特に、図９の例は前記した情報（すなわち、ＤＡＴＡ，ＣＬＡＳＳ，ＡＤＤＲＥＳＳ，およびインジケータ）を格納するための異なる３線を含んでいる。次に、例として図９の頂部線および底部線はＣＬＡＳＳレジスタ内に３の識別子値を含み、中間線はＣＬＡＳＳレジスタ内に２の識別子値を含むものとする。次に、ＴＥＲＭＩＮＡＴＥ信号がアサートされると、Ｌ／Ｅ制御および応答回路８８は同時にアサートされたＣＬＡＳＳ信号がＣＬＡＳＳレジスタのいずれか一つ以上と一致するかどうかを確認する。例えば、ＴＥＲＭＩＮＡＴＥがアサートされ次にＣＬＡＳＳ信号がバスＢ上で３の値を示すものとする。したがって、Ｌ／Ｅ制御および応答回路８８は図９の頂部および底部情報線の両方の一致を見つけ出す。それに応答して、Ｌ／Ｅ制御および応答回路８８はＬ／Ｅインジケータ８２1 および８２3 を時間切れに設定し、インジケータ８２2 はライブに設定されたままとされる。さらに、それに応答して、前記したようにＣ／Ｄ制御および応答回路９０がＤＡＴＡの頂部および底部線に対して作動する。すなわち、そのＤＡＴＡがダーティであればよりハイレベルのメモリへ出力されて適切なコヒーレンシを保証する。
【００６７】
すぐ前節に示した例から、同業者ならば本実施例はさらに記憶構造内に任意数の線を含むように修正することができ、各線はＣＬＡＳＳを線内に格納されたＤＡＴＡへ関連づけられることを理解できるであろう。このケーパビリテイがあれば、一つのＣＬＡＳＳ識別子はＴＥＲＭＩＮＡＴＥ信号のアサートに応答して評価される時に、ＤＡＴＡの異なるさまざまな線を記憶構造によってよりハイレベルのメモリへ出力させることができる。したがって、本実施例はさまざまな典型的なキャッシュからのデータの出力方法において区別される。例えば、典型的なキャッシュの場合、ハイレベルメモリへの出力を要求するものとして１本のキャッシュ線しか識別されない。これに較べて、本実施例では、２線以上のＤＡＴＡが同じＣＬＡＳＳ識別子に関連している場合には、これらの各線がＴＥＲＭＩＮＡＴＥおよびＣＬＡＳＳ信号の一つのアサートにより出力を要求するものとして識別される（データがダーティである場合）。もう一つの例として、典型的なキャッシュではキャッシュへ向けられる要求はキャッシュへアドレスを与えることによってなされ、そのアドレスからアドレスしてデータおよび恐らくはそのデータに隣接するあるデータ（すなわち、アドレスしたデータと同じキャッシュ線内の一般的に周りのデータ）が要求により影響されることが知られている。これに較べて、本実施例では、ダーティＤＡＴＡを出力する記憶構造への要求に明確なアドレスは与えられない。さらに、本実施例では、一つのＣＬＡＳＳ識別子が記憶構造内のさまざまな線内のＤＡＴＡに影響を及ぼすことがあり、したがってそれは必ずしも隣接記憶位置に格納されたデータを反映するとは限らない。同業者ならば他の違いや利益も理解できるであろう。
【００６８】
図９の別の実施例を図１０に示し、前記したさまざまな概念が発明の範囲内で修正されている。したがって、ここにも一般的にＣＬＫ信号の他に３つの外部バス信号（すなわち、ＤＢＵＳ，ＡＢＵＳ，およびＣＢＵＳ）を受信するＢＩＵ８を有するマイクロプロセッサ６２が図示されている。判り易くするために、ここでもＤＢＵＳ，ＡＢＵＳおよびＣＢＵＳの各々がＢＩＵ８を介して共通バスＢに接続されている。始めに、図１０の実施例は既存のキャッシュ構造を修正することにより本発明のさまざまな概念をさらにどのように結合できるかを明示している。例えば、図１０に示すバスＢには前記さまざまな図面に示すＬ２キャッシュ６等のキャッシュ構造を含める、すなわち関連づけることができる。本実施例を既存のキャッシュと関連づけることにより、個別のデータパスを既存のキャッシュから完全に独立した構造へ構成する必要がないため、データパスのような方法で設計の複雑度が最小限に抑えられる。この前置きの後で、以下にさまざまな回路とその本実施例および現在のキャッシュ構造との関係について説明する。
【００６９】
図１０の回路はタグメモリ１０８および関連するデータメモリ１１０を含んでいる。一般的に、タグメモリとデータメモリの関連は従来技術で周知であり、タグメモリはデータメモリの対応するエントリに関する情報を格納する。タグメモリ１０８およびデータメモリ１１０は、図１０に整数Ｎとして示す、対応するロー数を有している。タグメモリ１０８について、その各ローは従来技術で周知の３つの部分を含み他の部分も含むことができる。図示する周知の３つの部分に関して、タグメモリ１０８はデータメモリ１１０内の対応するデータのＡＤＤＲＥＳＳ、対応するデータがクリーンであるかダーティであるかを示すインジケータ（すなわち、Ｃ／Ｄインジケータとして示す）、および対応するデータが有効か無効かを示すインジケータ（すなわち、Ｖ／Ｉインジケータとして示す）を含んでいる。前記した実施例と同様に、インジケータは信号すなわちビットで表現することができ、データエントリの全幅に対するものとするかデータエントリの部分に対する多数のインジケータを含むことができる（例えば、パーバイト、マルチプルバイト、バーストサイズ等）。最後に、後述するように適切なＨＩＴ／ＭＩＳＳ信号を与えるために、タグメモリ１０８からのＡＤＤＲＥＳＳを読み出すことができ、Ｃ／ＤインジケータおよびＶ／Ｉインジケータの各々をＣ／ＤおよびＶ／Ｉ制御および応答回路１１２の両方により読み書きすることができる。
【００７０】
タグメモリ１０８の周知の要素の他に、少なくとも他の２つの特徴を含めて本発明の実施例の中にシステムを作り出すことができる。最初の特徴として、従来技術で周知の目的のために有効性を表示する他に、各Ｖ／ＩインジケータはＬ／Ｅ制御および応答回路１１４に応答して無効に設定することもできる。したがって、後述するようにタグエントリメモリに対応するデータの寿命がそのしきい値に達すると、Ｖ／Ｉインジケータは無効に設定される。第２の特徴として、好ましい実施例ではＮロー全部を含む、タグメモリ１０８内のいくつかのローには前記した他の３つの部分の他にＣＬＡＳＳレジスタが含まれる。ＣＬＡＳＳレジスタ内のＣＬＡＳＳインジケータの詳細機能性については後述する。
【００７１】
図１０の残りの接続を完結するために、ここでもＣＢＵＳはＴＥＲＭＩＮＡＴＥおよびＣＢＵＳ信号の両方をバスＢへ通すことができるように図示されている。ＣＬＡＳＳ信号はＤＡＴＡが線へ書き込まれる時に所与の１線に対応するＣＬＡＳＳレジスタへ入力できるように接続される。さらに、後述する理由でＴＥＲＭＩＮＡＴＥ信号だけでなくＣＬＡＳＳ信号もＣ／ＤおよびＶ／Ｉ制御および応答回路１１２およびＬ／Ｅ制御および応答回路１１４の両方に接続されている。
【００７２】
図１０の回路の動作は前の図面に関して説明したさまざまな実施例とある共通性を共有し、したがって、読者は前記した実施例を理解していてある詳細については再度説明する必要がないものとする。最初の感覚で本実施例の付加特徴として、タグメモリ１０８およびデータメモリ１１０は周知の技術に従ってＣＬＡＳＳレジスタ内に格納されたＣＬＡＳＳ識別子の値に基づいて作動するようにすることができる。特に、ＣＬＡＳＳレジスタ内の値がある所定値（例えば、ＣＬＡＳＳ＝０）に設定されておれば、そのＣＬＡＳＳレジスタに対応するＤＡＴＡに関して標準キャッシュ操作を行うことができる。したがって、ＣＬＡＳＳが所定値（例えば、０）に等しければバスＢ上のＡＤＤＲＥＳＳがタグメモリ１０８に接続され、ＡＤＤＲＥＳＳが有効なＤＡＴＡに対応するタグメモリ１０８内のＡＤＤＲＥＳＳに一致すれば、Ｃ／ＤおよびＶ／Ｉ制御および応答回路１１２はＨＩＴ信号を出力しそこから適切なアクションを取り出すことができる（すなわち、ＤＡＴＡの読み出し、ＤＡＴＡの更新、もしくはあるタイプのスヌープへの応答等のＡＤＤＲＥＳＳに対応する要求に応じて）。一方、ＣＬＡＳＳレジスタ内の値が所定値でなければ（例えば、非ゼロ）、前の実施例について前記しかつ後述するような動作となる。
【００７３】
タグメモリ１０８の周知の機能性の他に、図１０の実施例はさらに寿命をデータメモリ１１０内のＤＡＴＡと関連づけられるようにする発明的操作を含んでいる。特に、タグメモリ１０８内の各ローはＣＬＡＳＳ識別子を格納するＣＬＡＳＳレジスタを含むことを思い出して戴きたい。所与のローに対するＣＬＡＳＳ識別子は異なる多くのクラスの中の任意の一つの識別を格納するように作動することができ、あるいは、前記したようにローのＤＡＴＡが任意特定のクラスに関連していないことを示すある所定値（例えば、ゼロ）に設定することができる。例えば、ＤＡＴＡ1 に対応するＣＬＡＳＳ1 は１の値を指定するものとする。したがって、ＴＥＲＭＩＮＡＴＥ信号が１のＣＬＡＳＳ信号と共に一度アサートされただけで、ＤＡＴＡ1 はライブから時間切れへ変化する。したがって、そのイベントの前にＤＡＴＡ1 はライブでありデータメモリ１１０へのアクセスを有する回路によりアクセスおよび／もしくは更新することができる。また、図１０のＣＬＡＳＳレジスタの実施例も２ロー以上のＤＡＴＡを同じＣＬＡＳＳ識別子に関連づけるか、あるいは異なる各ローを異なるＣＬＡＳＳ識別子に関連づけることができる。
【００７４】
図１０の構成およびその動作によりさらにもう一つの特徴、すなわちデータがライブであるか時間切れであるかの表示に関連した特徴が得られる。図７および図９の実施例には各線のＶ／Ｉインジケータから独立した個別のＬ／Ｅインジケータが含まれていることを思い出して戴きたい。しかしながら、替わりに、図１０の実施例では各線に個別の独立したＶ／Ｉインジケータは設けられてはいない。替わりに、Ｌ／Ｅ制御および応答回路１１４はタグメモリ１０８の各線についてＶ／Ｉインジケータを修正できるように接続されている。その結果、一度ＤＡＴＡのＣＬＡＳＳがＴＥＲＭＩＮＡＴＥ信号により終結されると、個別のＬ／Ｅインジケータを時間切れに設定するのではなく、Ｌ／Ｅ制御および応答回路１１４はその線に対するＶ／Ｉインジケータを無効に設定する。前記した実施例と同様に、このイベントが起こると対応するデータがダーティであるかどうかも確認され（その対応するＣ／Ｄインジケータにより）、ダーティであれば、ダーティデータは適切なメモリコヒーレンシを保証するためによりハイレベルの記憶装置へ書き込まれる。いずれにせよ、個別のＬ／Ｅインジケータが無いため、Ｖ／Ｉインジケータは周知のキャッシュポリシーに従って対応するデータが有効であるかを表示するだけでなく、さらにＴＥＲＭＩＮＡＴＥ信号をアサートさせたイベントによりデータを無効であると明示することができる。したがって、Ｖ／Ｉインジケータの無効状態は周知のキャッシュ技術でデータがもはや有効ではないことを表示するため、時間切れしたＤＡＴＡはその後無効として処理され、したがって、時間切れデータはデータメモリ１１０からその情報を求める回路により信頼されることはない。この機能性が与えられれば、同業者ならばさらにＬ／Ｅ制御および応答回路１１４には非ゼロＣ／Ｄ識別子を格納する各ＣＬＡＳＳレジスタの値だけでなく着信ＴＥＲＭＩＮＡＴＥ信号を監視する十分な回路が含まれることを理解できるであろう。したがって、終結されるデータのＣＬＡＳＳと共にＴＥＲＭＩＮＡＴＥ信号がアサートされると、一致するＣＬＡＳＳ識別子を有する各線に対するＤＡＴＡは無効とされる、すなわち、このような各線に対応するＶ／Ｉインジケータが回路１１４により無効に設定される。例として、ＣＬＡＳＳ1 およびＣＬＡＳＳ2 の両方が３の値を識別し、３のＣＬＡＳＳ値を有するＴＥＲＭＩＮＡＴＥ信号がバスＢ上にアサートされるものとする。このような例では、Ｌ／Ｅ制御および応答回路１１４はＣＬＡＳＳ信号とＣＬＡＳＳ1 およびＣＬＡＳＳ2 の両レジスタ内の値との一致を検出する。それに応答して、Ｌ／Ｅ制御および応答回路１１４はＶ／Ｉ1 およびＶ／Ｉ2 の両方を無効に設定する。最後に、個別の独立したＬ／Ｅインジケータを削除するこの代替策により、適用できるＴＥＲＭＩＮＡＴＥ信号の欠如に基づいてまだライブであるデータが無効としてマークされる。例えば、所与の線のＤＡＴＡがＴＥＲＭＩＮＡＴＥ信号と共にアサートされていないＣＬＡＳＳに対応し、その線に対するタグメモリ１０８によりスヌープおよび無効要求が受信される場合には、たとえその線に対応するＴＥＲＭＩＮＡＴＥ信号が受信されていなくてもＣ／ＤおよびＶ／Ｉ制御および応答回路１１２によりその線は無効に設定される。それに対して、図７および図９に示すような個別のＬ／Ｅ表示はこのようなイベントを許さず、したがって、ＴＥＲＭＩＮＡＴＥ信号に応答して終結していない線の個別の表示を与える。したがって、ここの任意の実施例がいずれかの代替策、すなわち、Ｖ／Ｉインジケータから独立した個別のＬ／Ｅインジケータ、もしくは周知のキャッシュポリシーに従って作動する一つのＶ／Ｉインジケータを使用することができるが、それはさらにそのデータの寿命がそのしきい値に達した場合にデータを無効と識別する。
【００７５】
前記したことから、前記実施例によりノンキャッシャブルデータをそのデータのある寿命の間キャッシュ式構造内へ格納することができ、この構造は既存のキャッシュ構造から独立したり併合したりできることが理解できるであろう。いずれにせよ、この時間中に寿命データを主記憶装置から捜し出すことなく読み出して修正することができる。さらに、寿命の持続時間は異なるさまざまなイベントおよび状況に結び付けて同じアドレスに対応するデータの２つの異なるバージョンへのアクティブな動作の可能性を最小限に抑えたり解消したりすることができる。さらに、本実施例について詳細に説明してきたが、発明の範囲を逸脱することなく前記説明にさまざまな置換、修正もしくは変更を行うことができる。そのようなさまざまな例が前記されている。さらに別の例として、本文書に記載されたさまざまな原理を互いに独立して実施できることを理解されたい。例えば、図６から図１０の寿命概念は図１から図５とは異なる技術を使用するプロセッサに応用することができる。もう一つの例として、本実施例は前に本開示の一部として組み入れられた１９９６年１０月３１日に出願された特許出願第６０／０２９，２３２号“Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  ＣｉｒｃｕｉｔＡｎｄ  Ｓｙｓｔｅｍｓ  Ｗｉｔｈ  Ｌｉｆｅ  Ｓｐａｎｎｅｄ  Ｓｔｏｒａｇｅ  Ｃｉｒｃｕｉｔ  Ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｎｏｎ−ｃａｓｃｅａｂｌｅ  Ｄａｔａ”（アトーニドケット番号ＴＩ−２３３３１Ｐ）と組み合わせることができる。簡単に言えば、本出願と同じ発明者である特許出願第６０／０２９，２３２号にはノンキャッシャブルデータをデータのある寿命だけキャッシュ式構造へ格納することができる構造も開示されている。しかしながら、組み入れられた特許出願では寿命はタイマの時間切れ、すなわち、所定のあるしきい値に達することによりタイマ内のカウントが時間切れする時に規定される。したがって、組み入れられた特許出願では、本出願のような非タイマイベントではなくこの時間切れによりデータが時間切れとマークされる。しかしながら、２つの技術を組み合わせて、Ｌ／Ｅインジケータが（１）本発明のようなイベント、もしくは（２）参照した特許出願のようなタイマの時間切れのいずれかの発生に応答して時間切れ状態を表示することができる。したがって、これら２つの発生のいずれかに応答してＴＥＲＭＩＮＡＴＥ信号をアサートすることができる。当業者ならば、さらに他の例も確認できるであろう。したがって、前記したさまざまな例のフレキシビリティや前記利点は、特許請求の範囲に明記された、本実施例の多くの特徴を明示するものである。
【００７６】
以上の説明に関して更に以下の項を開示する。
（１）  データを格納するアドレス可能な記憶スペースを有する外部リード／ライトメモリに接続するマイクロプロセッサであって、前記マイクロプロセッサは、
ノンキャッシャブルデータを含む前記データの一部を格納するデータ記憶回路と、
前記ノンキャッシャブルデータに対応するクラス識別子を格納するクラス記憶回路と、
終結信号を受信する入力と、
クラス信号を受信する入力と、
前記終結信号および前記クラス識別子と一致する前記クラス信号のアサートに応答して、前記データ記憶回路内の前記ノンキャッシャブルデータが時間切れであることを表示するインジケータと、
を含む、マイクロプロセッサ。
【００７７】
（２）  第１項記載のマイクロプロセッサであって、さらに、前記データ記憶回路内の前記ノンキャッシャブルデータが前記データ記憶回路に格納された後で修正されていることを表示するクリーン／ダーティインジケータを含む、マイクロプロセッサ。
【００７８】
（３）  第２項記載のマイクロプロセッサであって、さらに、
前記クリーン／ダーティインジケータを評価する回路と、
前記クリーン／ダーティインジケータがクリーン状態からダーティ状態へ変化したことを評価検出する前記回路に応答して、前記ノンキャッシャブルデータを前記アドレス可能な記憶スペースへ書き込む回路と、
を含む、マイクロプロセッサ。
【００７９】
（４）  第３項記載のマイクロプロセッサであって、前記クリーン／ダーティインジケータを評価する前記回路は、前記終結信号および前記クラス識別子と一致する前記クラス信号のアサートに応答して前記クリーン／ダーティインジケータを評価する、マイクロプロセッサ。
【００８０】
（５）  第３項記載のマイクロプロセッサであって、前記クリーン／ダーティインジケータを評価する前記回路は、前記終結信号および前記クラス識別子と一致する前記クラス信号のアサートに応答する前に前記クリーン／ダーティインジケータを評価する、マイクロプロセッサ。
【００８１】
（６）  第１項記載のマイクロプロセッサであって、さらに、前記終結信号および前記クラス識別子と一致する前記クラス信号のアサートに応答する前に、前記データ記憶回路に格納されている間に変えられる前記ノンキャッシャブルデータに応答して前記ノンキャッシャブルデータを前記記憶スペースへ書き込む回路を含む、マイクロプロセッサ。
【００８２】
（７）  第１項記載のマイクロプロセッサであって、前記データの前記部分は画面ディスプレイ上にトレースを生じるビデオデータを含む、マイクロプロセッサ。
【００８３】
（８）  第７項記載のマイクロプロセッサであって、前記終結信号は水平同期化信号に応答してアサートされる、マイクロプロセッサ。
【００８４】
（９）  第７項記載のマイクロプロセッサであって、前記終結信号は垂直同期化信号に応答してアサートされる、マイクロプロセッサ。
【００８５】
（１０）  第１項記載のマイクロプロセッサであって、さらに、
一つのアドレス値を提示して前記アドレス可能な記憶スペース内の複数のアドレス可能なメモリ位置へのアクセス要求を表示するバースト要求信号を出力する回路を含み、
前記複数のアドレス可能なメモリ位置はデータ量の整数バーストサイズ数を表し、
前記データ記憶回路は前記整数バーストサイズ数までのデータ量を格納するサイズとされている、マイクロプロセッサ。
【００８６】
（１１）  第１０項記載のマイクロプロセッサであって、前記データ記憶回路は前記ノンキャッシャブルデータを受信し、前記ノンキャッシャブルデータは前記整数バーストサイズ数のデータ量のサイズである、マイクロプロセッサ。
【００８７】
（１２）  第１０項記載のマイクロプロセッサであって、前記データ記憶回路は前記ノンキャッシャブルデータを受信し、前記ノンキャッシャブルデータは前記整数バーストサイズ数のデータ量よりも小さいサイズである、マイクロプロセッサ。
【００８８】
（１３）  第１項記載のマイクロプロセッサであって、さらに、
一つのアドレス値を提示して前記アドレス可能な記憶スペース内の複数のアドレス可能なメモリ位置へのアクセス要求を表示するバースト要求信号を出力する回路を含み、
前記複数のアドレス可能なメモリ位置はデータ量の整数バーストサイズ数を表し、
前記データ記憶回路は前記整数バーストサイズ数のデータ量よりも大きい数のデータ量サイズとされている、マイクロプロセッサ。
【００８９】
（１４）  第１項記載のマイクロプロセッサであって、さらに、前記ノンキャッシャブルデータに対応するアドレスを格納するアドレス記憶回路を含む、マイクロプロセッサ。
【００９０】
（１５）  第１４項記載のマイクロプロセッサであって、さらに、
スヌープアドレスを前記アドレス記憶回路に格納された前記アドレスと比較する回路と、
前記データ記憶回路内の前記データが時間切れではないことを表示する前記インジケータおよび前記スヌープアドレスと前記アドレス記憶回路に格納された前記アドレスとの一致を見つけ出す前記比較回路に応答してヒットを出力する回路と、
を含む、マイクロプロセッサ。
【００９１】
（１６）  第１５項記載のマイクロプロセッサであって、さらに、
前記データ記憶回路内の前記ノンキャッシャブルデータが前記データ記憶回路内に格納された後で修正されていることを表示するクリーン／ダーティインジケータと、
前記ヒットに応答して前記ノンキャッシャブルデータを出力する回路と、
前記ヒットに応答して前記ノンキャッシャブルデータを出力する前記回路に応答して前記クリーン／ダーティインジケータをクリーンに設定する回路と、
を含む、マイクロプロセッサ。
【００９２】
（１７）  第１５項記載のマイクロプロセッサであって、さらに、
前記データ記憶回路内の前記ノンキャッシャブルデータが有効か無効かを表示する有効／無効インジケータと、
前記ヒットに応答して前記ノンキャッシャブルデータを出力する回路と、を含み、
前記有効／無効インジケータは前記ヒットに応答して有効から無効へ変えられる、マイクロプロセッサ。
【００９３】
（１８）  第１４項記載のマイクロプロセッサであって、さらに、
バスアドレスを前記アドレス記憶回路内に格納された前記アドレスと比較する回路と、
前記データ記憶回路内の前記ノンキャッシャブルデータが時間切れではないことを表示する前記インジケータおよび前記バスアドレスと前記アドレス記憶回路内に格納された前記アドレスとの一致を見つけ出す前記比較回路に応答してヒットを出力する回路と、
を含む、マイクロプロセッサ。
【００９４】
（１９）  第１項記載のマイクロプロセッサであって、さらにプリフェッチバッファを含み、前記データ記憶回路は前記プリフェッチバッファ内の記憶回路である、マイクロプロセッサ。
【００９５】
（２０）  第１９項記載のマイクロプロセッサであって、
前記プリフェッチバッファはプリフェッチ機能を実施するように作動することができ、
さらに前記データ記憶回路に関連するイネーブル信号を含み、
前記イネーブル信号が第１の状態にアサートされると、
前記データ記憶回路は格納された前記ノンキャッシャブルデータに従って作動し、
前記終結信号および前記クラス識別子と一致する前記クラス信号のアサートに応答して、前記データ記憶回路内の前記ノンキャッシャブルデータが時間切れであることを表示する前記インジケータが確立され、
前記イネーブル信号が第２の状態にアサートされると、前記データ記憶回路は前記プリフェッチ機能を実施するように作動する、マイクロプロセッサ。
【００９６】
（２１）  第２０項記載のマイクロプロセッサであって、
前記プリフェッチバッファはさらに、各々がノンキャッシャブルデータを含む前記データの一部を格納する複数のデータ記憶回路を含み、
さらに、各々が前記複数のデータ記憶回路の対応する一つと関連して対応するクラス識別子を格納するように作動することができる、複数のクラス記憶回路を含み、
さらに、前記複数のデータ記憶回路の各々に対応する複数のインジケータであって、前記終結信号および前記対応するクラス識別子と一致する前記クラス信号のアサートに応答して前記対応する記憶回路内の前記ノンキャッシャブルデータが時間切れであることを表示する複数のインジケータを含む、マイクロプロセッサ。
【００９７】
（２２）  第２１項記載のマイクロプロセッサであって、さらに、
前記ノンキャッシャブルデータを含む前記データの前記部分に対応するアドレスを格納するアドレス記憶回路と、
各々が前記複数のデータ記憶回路の対応する一つに格納されたノンキャッシャブルデータを含む前記データの前記部分に対応するアドレスを格納する複数のアドレス記憶回路と、
スヌープアドレスを前記各アドレス記憶回路に格納された前記アドレスと比較する回路と、
前記スヌープアドレスと前記アドレス記憶回路の一つの前記アドレスとの一致を見つけ出す前記比較回路および前記対応するデータ記憶回路内の前記データが時間切れではないことを表示する前記一つの前記アドレス記憶回路に対応する前記データ記憶回路に対応する前記インジケータに応答してヒットを出力する回路と、
を含む、マイクロプロセッサ。
【００９８】
（２３）  第２２項記載のマイクロプロセッサであって、
さらに、各々が前記データ記憶回路の一つに対応する複数のクリーン／ダーティインジケータを含み、
前記複数のクリーン／ダーティインジケータの各々が、前記データ記憶回路の前記対応する一つの前記ノンキャッシャブルデータが前記データ記憶回路に格納された後で修正されていることを表示し、さらに、
前記ヒットに応答して、前記アドレス記憶回路の前記一つに対応する前記データ記憶回路から前記ノンキャッシャブルデータを出力する回路、および、
前記ヒットに応答して前記ノンキャッシャブルデータの前記部分を出力する前記回路に応答して、前記アドレス記憶回路の前記一つに対応する前記データ記憶回路に対応する前記クリーン／ダーティインジケータをクリーンに設定する回路、
を含む、マイクロプロセッサ。
【００９９】
（２４）  第２２項記載のマイクロプロセッサであって、
さらに、各々が前記データ記憶回路の一つに対応する複数の有効／無効インジケータを含み、
前記複数の有効／無効インジケータの各々が前記データ記憶回路の前記対応する一つのノンキャッシャブルデータが有効か無効かを表示し、さらに、
前記ヒットに応答して、前記アドレス記憶回路の前記一つに対応する前記データ記憶回路から前記ノンキャッシャブルデータを出力する回路、および、
前記ヒットに応答して前記ノンキャッシャブルデータを出力する前記回路に応答して、前記アドレス記憶回路の前記一つに対応する前記データ記憶回路に対応する前記有効／無効インジケータを有効から無効へ設定する回路、
を含む、マイクロプロセッサ。
【０１００】
（２５）  第１項記載のマイクロプロセッサであって、
ノンキャッシャブルデータを含む前記データの前記部分は前記ノンキャッシャブルデータの第１の部分を含み、
前記ノンキャッシャブルデータの前記部分に対応するクラス識別子を格納する前記クラス記憶回路は前記ノンキャッシャブルデータの前記第１の部分に対応するクラス識別子を格納する第１のクラス記憶回路を含み、
前記データ記憶回路内の前記ノンキャッシャブルデータの前記部分が時間切れであることを表示する前記インジケータは第１のインジケータを含み、さらに、
前記ノンキャッシャブルデータの第２の部分を格納する第２の記憶回路と、
前記ノンキャッシャブルデータの前記第２の部分に対応するクラス識別子を格納する第２のクラス記憶回路と、
前記終結信号および前記第２のクラス記憶回路内の前記クラス識別子と一致する前記クラス信号のアサートに応答して前記第３の記憶回路内の前記ノンキャッシャブルデータの前記第２の部分が時間切れであることを表示する第２のインジケータと、
を含む、マイクロプロセッサ。
【０１０１】
（２６）  第１項記載のマイクロプロセッサであって、さらにキャッシャブルデータを含む前記データの一部を格納するキャッシュ回路を含む、マイクロプロセッサ。
【０１０２】
（２７）  第１項記載のマイクロプロセッサであって、前記データ記憶回路内の前記ノンキャッシャブルデータが時間切れであることを表示する前記インジケータは、さらに前記データ記憶回路内の前記ノンキャッシャブルデータの前記部分が有効か無効かを表示するマイクロプロセッサ。
【０１０３】
（２８）  第１項記載のマイクロプロセッサであって、前記データの前記部分はディスクデータバッファ内に格納するデータを含む、マイクロプロセッサ。
【０１０４】
（２９）  第２８項記載のマイクロプロセッサであって、前記終結信号は所定のデータ量よりも少ない前記ディスクデータバッファ内に格納されたデータ量に応答してアサートされる、マイクロプロセッサ。
【０１０５】
（３０）  第１項記載のマイクロプロセッサであって、前記終結信号は所定のしきい値に達するタイマに応答してアサートされる、マイクロプロセッサ。
【０１０６】
（３１）  第３０項記載のマイクロプロセッサであって、前記タイマはマイクロプロセッサ上に配置される、マイクロプロセッサ。
【０１０７】
（３２）  データを格納するアドレス可能な記憶スペースを有する外部リード／ライトメモリ７０に接続されるマイクロプロセッサ６２。マイクロプロセッサはデータの一部を格納するデータ記憶回路６２を含み、データのその部分はノンキャッシャブルデータを含んでいる。マイクロプロセッサはさらに終結信号を受信する入力（ＴＥＲＭＩＮＡＴＥ）およびクラス信号を受信する入力（ＣＬＡＳＳ）の他にノンキャッシャブルデータの部分に対応するクラス識別子を格納するクラス記憶回路８０を含んでいる。最後に、マイクロプロセッサは終結信号およびクラス識別子と一致するクラス信号のアサートに応答してデータ記憶回路内のノンキャッシャブルデータの部分が時間切れであることを表示するインジケータ８２を含んでいる。
【０１０８】
関連出願の相互参照
本出願は、１９９５年１２月１８日に出願され、ここに本開示の一部として組み入れられている未済の米国仮特許出願第６０／００８，７９９号“Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｓｙｓｔｅｍ  Ｗｉｔｈ  Ｂｕｒｓｔａｂｌｅ，Ｎｏｎ−ｃａｃｈｅａｂｌｅ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｓｕｐｐｏｒｔ”（アトーニドケット番号ＴＩ−２１０７１Ｐ）に関連している。
【０１０９】
本出願は、１９９６年１０月３１日に出願され、ここに本開示の一部として組み入れられている未済の米国仮特許出願第６０／０２９，２３２号“Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｃｉｒｃｕｉｔｓ  Ａｎｄ  Ｓｙｓｔｅｍｓ  Ｗｉｔｈ  Ｌｉｆｅ  Ｓｐａｎｎｅｄ  Ｓｔｏｒａｇｅ  Ｃｉｒｃｕｉｔ  Ｆｏｒ  Ｓｔｏｒｉｎｇ  Ｎｏｎ−ｃａｃｈｅａｂｌｅ  Ｄａｔａ”（アトーニドケット番号ＴＩ−２３３３１Ｐ）に関連している。
政府支援研究開発に関する声明は適用されない。
【図面の簡単な説明】
【図１】本実施例に従ったデータ処理システムの、ブロック形式の、電気回路図。
【図２】図１のメモリおよび入出力コントローラの第１の実施例の、ブロック形式の、電気回路図。
【図３】各アドレススペースがアクセスされる状態を略示する、図１のデータ処理システムのメモリアドレススペースおよび入出力アドレススペースの略図。
【図４】ａは、第１の実施例に従ってノンキャッシャブルメモリからのバーストリードの要求および手順を示すタイミング図。ｂは、第１の実施例に従ってノンキャッシャブルメモリからのバーストライトの要求および手順を示すタイミング図。
【図５】図１のシステムのメモリおよび入出力コントローラの第２の実施例の、ブロック形式の、電気回路図。
【図６】グラフィクスアダプタを介して画面ディスプレイに接続されたマイクロプロセッサの第３の実施例の、ブロック形式の、電気回路図。
【図７】終結信号および対応するクラス信号のアサートによって決まる寿命中にマイクロプロセッサがノンキャッシャブルデータを読み書きして修正することができる、ノンキャッシャブルデータおよびそのデータに対応するクラス識別子を格納するマイクロプロセッサの実施例の回路図。
【図８】図７の回路の動作方法の実施例のフロー図。
【図９】各線がその線のデータに対応するクラス識別子を有し、終結信号および対応するクラス信号のアサートによって決まる寿命中にマイクロプロセッサが各線を読み書きし修正することができる複数のノンキャッシャブルデータ線を格納するマイクロプロセッサの実施例の回路図。
【図１０】いくつかの線が周知のキャッシュポリシーにより支配され、終結信号のアサートによって決まる寿命中にマイクロプロセッサが他の線を読み書きし修正することができる複数のデータ線および対応するクラス識別子を格納するマイクロプロセッサの実施例の回路図。
【符号の説明】
２  マイクロプロセッサベースシステム
５  ＣＰＵ
６，８  ＢＩＵ
１０，６０  メモリコントローラ
１２    キャッシュコントローラ
１４    Ｉ／Ｏコントローラ
１６    クロック発生器回路
２０    主記憶装置
２１    アドレスバッファ
２２    レベル３キャッシュメモリ
２３    データバッファ
２４    入出力装置
２５    バス制御回路
２６    アドレスマルチプレクサ
２７    ライトバッファ
２８    制御論理
２９    メモリ制御回路
３０    メモリアドレススペース
３１，３３，３５，３７    ＡＮＤゲート
３２    ノンキャッシャブルエリア
４０    Ｉ／Ｏアドレススペース
５０，６２    ＣＰＵ
５５    バス制御論理
６４    グラフィクスアダプタ
６６    画面ディスプレイ
６８    ビデオコントローラ
７０    メモリ
７２    属性回路
７４    信号発生器
７６，７８，８０，７６1 ，７６2 ，７６3 ，７８1 ，７８2 ，７８3 ，
８０1 ，８０2 ，８０3   レジスタ
８２，８２1 ，８２2 ，８２3   Ｌ／Ｅインジケータ
８４，８４1 ，８４2 ，８４3   Ｃ／Ｄインジケータ
８６，８６1 ，８６2 ，８６3   Ｖ／Ｉインジケータ
８８，１１４  Ｌ／Ｅ制御および応答回路
９０  Ｃ／Ｄ制御および応答回路
１００，１０８  タグメモリ
１１０  データメモリ
１１２  Ｃ／ＤおよびＶ／Ｉ制御および応答回路
【図１】
0003964049.tif 000003
【図２】
0003964049.tif 000004
【図３】
0003964049.tif 000005
【図４】
0003964049.tif 000006
【図５】
0003964049.tif 000007
【図６】
0003964049.tif 000008
【図７】
0003964049.tif 000009
【図８】
0003964049.tif 000010
【図９】
0003964049.tif 000011
【図１０】
0003964049.tif 000012