(57)【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
データ信号を転送するように構成されたバスと、
前記バスに作動的に結合されたキャッシュメモリと、
前記キャッシュメモリに結合された処理ユニットと、
システムメモリと、
前記バスと前記システムメモリとに作動的に結合され、前記システムメモリ内のデータの記憶および検索を制御するためのシステムメモリコントローラと、
前記バスに結合された代替バスマスタデバイスとを含み、前記代替バスマスタデバイスは前記バス上でメモリサイクルを実行することができ、さらに、
前記キャッシュメモリと前記バスとに作動的に結合され、前記キャッシュメモリ内のデータの記憶および検索を制御するためのキャッシュコントローラを含み、前記キャッシュコントローラは、
前記キャッシュメモリ内に記憶された複数のラインのデータを示す複数のラインアドレスを記憶するように構成されかつ各ラインに関連の複数のダーティビットを記憶するように構成されたタグ論理回路を含み、別々のダーティビットが各ライン内のデータの別々の倍長語に対応し、さらに、
前記キャッシュメモリ内に記憶されたダーティデータの前記システムメモリへのライトバックを制御するように構成されたスヌープ制御回路を含み、前記スヌープ制御回路は、バースト書込サイクルの第１の期間中に前記バス上の選択された順次的でない倍長語の第１のもののアドレスをアサートすることにより、かつ前記アドレスの予め定められた数の下位ビットを修正して前記バースト書込サイクルの第２の期間中に前記選択された順次的でない倍長語の第２のもののアドレスを特定することにより、前記複数のダーティビットの状態に基づいて所与のラインのダーティである前記選択された順次的でない倍長語を選択的にライトバックするように構成され、
前記システムメモリコントローラは、前記バースト書込サイクルの前記第２の期間中に前記アドレスの前記予め定められた数の下位ビットをサンプリングして順次的でない倍長語がライトバックされるか否かを判断する、コンピュータシステム。
【請求項２】
前記代替バスマスタデバイスは、ＤＭＡコントローラである、請求項１に記載のコンピュータシステム。
【請求項３】
前記代替バスマスタデバイスはバスブリッジである、請求項１に記載のコンピュータシステム。
【請求項４】
前記スヌープ制御回路は、前記代替バスマスタの前記メモリサイクルに応答して前記キャッシュメモリ内に記憶されたデータのヒットラインを無効にするように構成される、請求項１に記載のコンピュータシステム。
【請求項５】
前記キャッシュメモリ内に記憶された前記ダーティデータの前記システムメモリへの前記ライトバックは、選択されたデータが転送された後に生じ、前記選択されたデータは、所与のバーストサイクルの間に前記代替バスマスタデバイスから前記システムメモリに転送される、請求項１に記載のコンピュータシステム。
【請求項６】
インテグレーテッドプロセッサであって、
ＣＰＵコアと、
前記ＣＰＵコアに作動的に結合され、データ信号を転送するように構成されたバスと、
前記バスに作動的に結合されたキャッシュメモリと、
前記バスに作動的に結合され、システムメモリ内のデータの記憶および検索を制御するように構成されたシステムメモリコントローラと、
前記バスに結合された代替バスマスタデバイスとを含み、前記代替バスマスタデバイスは前記バス上でメモリサイクルを実行するように構成され、さらに、
前記キャッシュメモリと前記バスとに作動的に結合され、前記キャッシュメモリ内のデータの記憶および検索を制御するように構成されたキャッシュコントローラを含み、前記キャッシュコントローラは、
前記キャッシュメモリ内に記憶された複数のラインのデータを示す複数のラインアドレスを記憶するように構成されかつ各ラインに関連の複数のダーティビットを記憶するように構成されたタグ論理回路を含み、別々のダーティビットは各ライン内のデータの別々の倍長語に対応し、さらに、
前記キャッシュメモリ内に記憶されたダーティデータの前記システムメモリへの前記ライトバックを制御するように構成されたスヌープ制御回路を含み、前記スヌープ制御回路は、バースト書込サイクルの第１の期間中に前記バス上の選択された順次的でない倍長語の第１のもののアドレスをアサートすることにより、かつ前記アドレスの予め定められた数の下位ビットを修正して前記バースト書込サイクルの第２の期間中に前記選択された順次的でない倍長語の第２のもののアドレスを特定することにより、前記複数のダーティビットの状態に基づいて所与のラインのダーティである前記選択された順次的でない倍長語を選択的にライトバックするように構成され、
前記システムメモリコントローラは、前記バースト書込サイクルの前記第２の期間中に前記アドレスの前記予め定められた数の下位ビットをサンプリングして順次的でない倍長語がライトバックされるか否かを判断する、インテグレーテッドプロセッサ。
【請求項７】
前記代替バスマスタデバイスは、ＤＭＡコントローラである、請求項６に記載のインテグレーテッドプロセッサ。
【請求項８】
前記代替バスマスタデバイスはバスブリッジである、請求項６に記載のインテグレーテッドプロセッサ。
【請求項９】
前記スヌープ制御回路は、前記代替バスマスタの前記メモリサイクルに応答して前記キャッシュメモリ内に記憶されたデータのヒットラインを無効にするように構成される、請求項６に記載のインテグレーテッドプロセッサ。
【請求項１０】
前記キャッシュメモリ内に記憶された前記ダーティデータの前記システムメモリへの前記ライトバックは、選択されたデータが転送された後に生じ、前記選択されたデータは、所与のバーストサイクルの間に前記代替バスマスタデバイスから前記システムメモリに転送される、請求項６に記載のインテグレーテッドプロセッサ。
【請求項１１】
キャッシュベースのコンピュータシステムのためのスヌープ制御方法であって、
キャッシュメモリ内の複数のラインのデータを示す複数のラインアドレスを記憶するステップと、
各ラインに関連の複数のダーティビットを記憶するステップとを含み、別々のダーティビットは各ライン内のデータの各倍長語に対応し、さらに、
メモリサイクルを起動し、データを代替バスマスタからシステムメモリに転送するステップと、
キャッシュコントローラ内において前記メモリサイクルを検出するステップと、
対応するラインが前記キャッシュメモリ内にあるかどうかを判断するステップと、
前記複数のダーティビットの状態によりダーティであると示された、前記対応のライン内の順次的でない倍長語を前記システムメモリに選択的にライトバックするステップとを含み、前記選択的にライトバックするステップは、バースト書込サイクルの第１の期間中に前記バス上の選択された順次的でない倍長語の第１のもののアドレスをアサートするステップと、前記アドレスの予め定められた数の下位ビットを修正して前記バースト書込サイクルの第２の期間中に前記選択された順次的でない倍長語の第２のもののアドレスを特定するステップとを含み、さらに、
前記バースト書込サイクルの前記第２の期間中に前記アドレスの前記予め定められた数の下位ビットをサンプリングして次の倍長語が順次的な倍長語であるか順次的でない倍長語であるかを判断するステップを含む、キャッシュベースのコンピュータシステムのためのスヌープ制御方法。
【請求項１２】
前記対応のラインを無効にするステップをさらに含む、請求項１１に記載のスヌープ制御方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明はコンピュータシステムに関し、より特定的には、キャッシュメモリサブシステムを使用するコンピュータシステムに関する。この発明はまたコンピュータシステム内で使用されるインテグレーテッドプロセッサおよびバス転送機構に関する。
【０００２】
【関連技術の説明】
キャッシュベースのコンピュータアーキテクチャは、典型的にはキャッシュメモリの効率のよい使用を支持しかつデータコヒーレンシを維持するように、専用のバス転送機構を伴なう。キャッシュメモリは、実効メモリ転送速度を改良し、それに応じてシステム性能を改良すべく、より遅いシステムメモリとプロセッサとの間にコンピュータシステムのメモリ階層に介挿された高速メモリユニットである。この名前は小さなキャッシュメモリユニットは本質的にはユーザには見えず、透明であり、ユーザはより大きなシステムメモリしか認識しないという事実に言及する。キャッシュはたいていはプロセッサの速度に匹敵する速度を有する半導体記憶装置によって実現される一方、システムメモリはコストの低いより遅い速度の技術を利用する。キャッシュ概念は、システムメモリの選択されたデータのマイクロプロセッサによる起こり得る再使用を、その選択されたデータの複写をキャッシュメモリに記憶することによって予想する。
【０００３】
キャッシュメモリは典型的には複数のメモリセクションを含み、各メモリセクションは２つまたはそれ以上の語のデータのブロックまたは「ライン」を記憶する。特に普及しているモデル８０４８６マイクロプロセッシングに基づいたシステムでは、１ラインは４つの「倍長語」から成る（各倍長語は４つの８ビットバイトを含む）。各ラインには、それがシステムメモリのどのラインの複写かを一意に識別するアドレスタグが結びつく。新語（もしくは新倍長語または新バイト）の読出し要求がプロセッサで始まると、それがデータであろうと命令であろうと、要求された語の複写がキャッシュメモリのラインにあるかどうかを判断するためにアドレスタグ比較がなされる。もしあれば、データは直接キャッシュから使用される。この事象はキャッシュリード「ヒット」と呼ばれる。もしなければ、要求された語を含むラインはシステムメモリから検索されキャッシュメモリに記憶される。要求された語は同時にプロセッサに与えられる。この事象はキャッシュリード「ミス」と呼ばれる。
【０００４】
データを検索するためにキャッシュメモリを使用することに加えて、プロセッサはまた、システムメモリの代わりにキャッシュメモリに直接データを書込み得る。プロセッサがデータをメモリに書込むことを望めば、データが書込まれるべきラインがキャッシュメモリにあるかどうかを判断するためにアドレスタグ比較がなされる。もしそのラインがキャッシュメモリにあれば、データは直接ラインに書込まれる。この事象はキャッシュ書込「ヒット」と呼ばれる。以下で詳細に説明されるが、多くのシステムにおいてラインのデータ「ダーティビット」はその後設定される。ダーティビットはライン内に記憶されたデータがダーティである（つまり、修正された）ことを示しており、このためラインがキャッシュメモリから削除されるまたは重ね書きされる前に、修正されたデータはシステムメモリに書込まれなければならない。
【０００５】
データが書込まれるべきラインがキャッシュメモリになければ、ラインはデータがキャッシュに書込まれるのを可能にするためにシステムメモリからキャッシュメモリに取出されるか、またはデータが直接システムメモリに書込まれるかいずれかになる。この事象はキャッシュ書込「ミス」と呼ばれる。新データがキャッシュメモリに記憶されるときキャッシュメモリから複写されるまたは重ね書きされるラインは犠牲ブロックまたは犠牲ラインと呼ばれる。
【０００６】
キャッシュメモリが多くの異なった技術に従って最適化され得る。システム性能および設計複雑性に影響を及ぼす１局面には、プロセッサまたは代替バスマスタによって起動される書込みの処理がある。前述したように、特定の１つのデータまたは命令コードの２つの複写があり、１つはシステムメモリに、二重複写はキャッシュにあるので、システムメモリまたはキャッシュメモリいずれかへの書込みの結果２つの記憶ユニット間でインコヒーレンスになり得る。たとえば、同じデータが最初に予め定められたアドレスでキャッシュメモリおよびシステムメモリ両方に記憶される場合を考慮されたい。プロセッサはそれに続いて書込サイクルを開始し、新しいデータアイテムを予め定められたアドレスで記憶すると、キャッシュライト「ヒット」が生じ、プロセッサは続けて新しいデータをキャッシュメモリに予め定められたアドレスで書込む。データはキャッシュメモリで修正されるがシステムメモリでは修正されないので、キャッシュメモリおよびシステムメモリはインコヒーレントになる。同様に、代替バスマスタを備えるシステムにおいては、代替バスマスタによるシステムメモリへの書込サイクルはシステムメモリでデータを修正するがキャッシュメモリでは修正されない。ここでもまたキャッシュメモリおよびシステムメモリはインコヒーレントになる。
【０００７】
プロセッサ書込みの間のキャッシュメモリおよびシステムメモリ間のインコヒーレンスはいくつかの一般的に使用される技術の１つを実施することによって防がれるまたは処理され得る。第１の技術では、「ライトスルー」キャッシュが、キャッシュメモリおよびシステムメモリ両方に同じデータを書込むことによってキャッシュメモリとシステムメモリとの間の一貫性を保証する。キャッシュメモリおよびシステムメモリの内容は常に同一であって、このため２つの記憶システムが常にコヒーレントである。第２の技術では、「ライトバック」キャッシュが、キャッシュメモリだけに書込み「ダーティ」ビットを設定し、プロセッサによって変更されたキャッシュエントリを示すことによってプロセッサ書込みを処理する。「ダーティ」または変更されたキャッシュエントリが後に「キャッシュ置換え」の間に置き換えられるとき、修正されたデータはシステムメモリにライトバックされる。
【０００８】
代替バスマスタによる書込動作の間のキャッシュメモリとシステムメモリとの間のインコヒーレンスはいくぶん異なって処理される。ライトバックキャッシングを使用するシステムでは、代替バスマスタがデータをシステムメモリに書込もうとするとき、キャッシュメモリ内のデータのあるラインが無効にされるべきかシステムメモリにライトバックされるべきかを判断するためにさまざまなバスモニタリングまたは「スヌーピング」技術の１つが実現され得る。特に普及している「ＭＥＳＩ」プロトコルによって特定される１つのそのような技術では、代替バスマスタがデータをシステムメモリに書込もうとするとき、キャッシュコントローラはデータの対応のラインがキャッシュメモリ内に含まれているかどうかを判断する。もし対応のラインがキャッシュメモリには含まれていなければ、キャッシュコントローラによってどんな付加的な動作もなされず、代替バスマスタによって起動された書込サイクルの完了が可能になる。一方、データの対応のラインがキャッシュメモリに含まれているならば、キャッシュコントローラはデータのそのラインがダーティかクリーンかどうかを判断する。ラインがクリーンであるならば、ラインはキャッシュコントローラによって無効であると示され、代替バスマスタからシステムメモリへのデータの転送の完了が可能になる。修正された（このため最も最新の）データは今やシステムメモリ内だけに含まれているので（代替バスマスタによる書込サイクルの完了後）、データのラインは無効であると示されなければならない。その代わりにデータのラインがダーティであるならば、スヌープライトバックサイクルがキャッシュコントローラによって起動され、それは代替バスマスタがシステムバスのマスタ権を「バックオフ」しかつ解放することを引起こす。キャッシュコントローラはその後、キャッシュメモリ内のダーティデータのライン全体がシステムメモリにライトバックされることを引起こす。スヌープライトバックサイクルは、システムメモリにバーストライトサイクルを実行することによって達成され得る。当業者には周知であるように、バーストサイクルのデータ位相の間は、新語（または倍長語）は、アドレス位相を干渉することなくいくつかの連続クロックサイクルの各々の間システムメモリに書込まれ得る。（待機状態のない）最も速いバーストサイクルは第１の語に２つのクロックサイクル（アドレスに１クロック、対応の語に１クロック）を必要とし、それに続く語は各連続クロックサイクルで順次アドレスから戻される。
【０００９】
スヌープライトバックサイクルが完了した後、代替バスマスタはシステムバスのマスタ権を再び得て、代替バスマスタによる書込サイクルが再び実行される。この点で、新データはシステムメモリに書込まれることが可能になる。たとえ代替バスマスタからのデータの書込みが全キャッシュライン全体を含まなくてもスヌープライトバックサイクルにより確実にデータコヒーレンシは維持されることに注目されたい。
【００１０】
代替バスマスタによる読取動作の間のキャッシュメモリとシステムメモリとの間のインコヒーレンスは同様に処理される。代替バスマスタはシステムメモリからデータを読取ろうとするとき、キャッシュコントローラはデータの対応のラインがキャッシュメモリ内に含まれているかどうかを判断する。対応のラインがキャッシュメモリによって含まれるならば、さらに対応のラインがダーティであるならば、スヌープライトバックサイクルはキャッシュコントローラによって起動され、それは代替バスマスタがシステムバスのマスタ権をバックオフしかつ解放することを引起こす。キャッシュコントローラはその後キャッシュメモリ内のダーティデータの全ラインがシステムメモリにライトバックされることを引起こす。ライトバックサイクルが完了した後、代替バスマスタはシステムバスのマスタ権を再び得て、代替バスマスタによる読取サイクルが再び起動される。この点で、システムメモリ内のデータは読取られることが可能になる。
【００１１】
代替バスマスタの読取動作および書込動作の間にデータコヒーレンシを維持すべく前述されたようなスヌープライトバックサイクルが実行されるとき、代替バスマスタはその所望のデータ転送を実行する前にライトバックサイクルが完了するのを待たなければならないのでシステムバスの帯域幅は劣化する。ダーティでない語（または倍長語）では、このライトバック動作は不必要である。ゆえに、代替バスマスタによるメモリサイクルの実行に先立ってキャッシュメモリとシステムメモリとの間のインコヒーレンスが存在するデータの完全性を維持するときスヌープライトバック技術が一般的に成功であるにもかかわらず、システムバスが不必要なバストラフィックで占有されているのでコンピュータシステムの帯域幅は制限されるようになる。結果として、全システム機能は劣化し得る。
【００１２】
【発明の概要】
上で略述された問題は、この発明に従ったキャッシュされたダーティデータをバーストする機構を使用するインテグレーテッドプロセッサによって大部分解決される。一実施例では、ＣＰＵコア、キャッシュメモリ、および局部バスインタフェースを介して局部バスに結合されたキャッシュコントローラを含むインテグレーテッドプロセッサが提供される。インテグレーテッドプロセッサはさらには、システムメモリを局部バスに結合するためのメモリコントローラ、および外部周辺装置を局部バスに結合するためのバスインタフェースユニットを含む。キャッシュコントローラは、キャッシュメモリ内の各エントリに対応するシステムメモリの物理的アドレスの進路を追うアドレスタグおよび状態論理回路を含む。アドレスタグおよび状態論理回路はさらに、各ラインおよび内の各倍長語（または語）に割当られたダーティビットおよび各ラインに割当てられた有効ビットから成る状態情報を含む。各倍長語に割当られたダーティビットは、倍長語がダーティであるかクリーンであるかを示し、各ラインに割当てられた有効ビットはラインが有効であるか無効であるかを示す。キャッシュコントローラはさらには、メモリサイクルが代替バスマスタによって局部バスで実行されたかどうかを判断するために局部バスをモニタするスヌープライトバック制御回路を含む。代替バスマスタのメモリサイクルの間には、コンパレータ回路はキャッシュヒットが生じたかどうかを判断する。キャッシュヒットが生じ１つまたはそれ以上のダーティ倍長語が対応のライン内に含まれると、スヌープライトバック制御回路は、ダーティと示されるライン内のそれらの倍長語のみをライトバックするようにスヌープライトバック回路を起動する。ヒットキャッシュライン内に２つまたはそれ以上の倍長語がダーティであると示されると、スヌープライトバック制御回路は、局部バスでバースト書込サイクルを実行することによってダーティデータのライトバックを行なう。スヌープライトバック制御回路は、ダーティ倍長語がたとえ順次的でなくても指定されたバーストサイクルの間にライン内のどのダーティ倍長語もライトバックするように構成される。インテグレーテッドプロセッサに従えば、スヌープライトバックサイクルが実行されるとき特定のキャッシュライン内のダーティであるそれらの倍長語のみがシステムメモリにライトバックされ、順次的でないダーティデータのライトバックは単一バーストサイクルの間に与えられる。結果として、インテグレーテッドプロセッサは局部バスのトラフィックを低減しそれによってコンピュータシステムの全帯域幅を改良するという効果を奏する。
【００１３】
概括的にいえば、この発明は、バスに作動的に結合されたキャッシュメモリ、キャッシュメモリに結合された処理ユニット、システムメモリ、およびバスとシステムメモリとに作動的に結合されシステムメモリ内の記憶および検索を制御するためのシステムメモリコントローラを含むコンピュータシステムを企図する。コンピュータシステムはさらにはバスに結合された代替バスマスタデバイスを含み、代替バスマスタデバイスはバス上でメモリサイクルを実行することができる。キャッシュコントローラはキャッシュメモリとバスとに作動的に結合されキャッシュメモリ内のデータの記憶および検索を制御する。キャッシュコントローラは、キャッシュメモリ内に記憶された複数のラインのデータを示す複数のラインアドレスを記憶することができかつ各ラインに関連の複数のダーティビットを記憶することができるタグ論理回路を含む。別々のダーティビットが各ライン内のデータの別々の倍長語に対応する。キャッシュコントローラはさらには、キャッシュメモリ内に記憶されたダーティデータのシステムメモリへのライトバックを制御するためのスヌープ制御回路を含み、そのスヌープ制御回路は、複数のダーティビットの状態に基づいて所与のラインのダーティである選択された倍長語をライトバックすることができる。
【００１４】
この発明はさらには、ＣＰＵコア、バスに作動的に結合されたキャッシュメモリ、バスに作動的に結合されシステムメモリ内のデータの記憶および検索を制御するためのシステムメモリコントローラ、およびバスに結合された代替バスマスタデバイスを含むインテグレーテッドプロセッサを企図する。代替バスマスタデバイスはバス上でメモリサイクルを実行することができる。キャッシュコントローラは、キャッシュメモリとバスとに作動的に結合され、キャッシュメモリ内のデータの記憶および検索を制御する。キャッシュコントローラは、キャッシュメモリ内に記憶された複数のラインのデータを示す複数のラインアドレスを記憶することができかつ各ラインに関連の複数のダーティビットを記憶することができるタグ論理回路を含む。別々のダーティビットは各ライン内のデータの別々の倍長語に対応する。キャッシュコントローラはさらには、キャッシュメモリ内に記憶されたダーティデータのシステムメモリへのライトバックを制御するためにスヌープ制御回路を含み、スヌープ制御回路は、複数のダーティビットの状態に基づいて所与のラインのダーティである選択された倍長語をライトバックすることができる。
【００１５】
この発明は最終的には、キャッシュベースのコンピュータシステムのためのスヌープ制御方法を企図し、この方法はキャッシュメモリ内の複数のラインのデータを示す複数のラインアドレスを記憶するステップと、各ラインに関連の複数のダーティビットを記憶するステップとを含み、別々のダーティビットが各ライン内のデータの各倍長語に対応し、さらにメモリサイクルを起動し代替バスマスタからシステムメモリにデータを転送するステップを含む。その方法は、さらにはキャッシュコントローラ内のメモリサイクルを検出するステップと、対応のラインがキャッシュメモリ内にあるかどうかを判断するステップと、対応のライン内の１つまたはそれ以上のダーティ倍長語をシステムメモリにライトバックするステップとを含む。
【００１６】
この発明の他の目的および利点は、以下の詳しい説明および添付図面を参照すると明らかになるであろう。
【００１７】
この発明はさまざまな修正および代替の形態の余地があるが、その特定の実施例は、図面において一例として示されており、ここに詳しく説明される。しかしながら、図面およびその説明はこの発明を開示された特定の形態に限定することを意図されておらず、この発明は前掲の特許請求の範囲によって規定されるこの発明の精神および範囲内にあるすべての修正、均等物および変更を含むことが意図されることを理解されたい。
【００１８】
【発明の詳しい説明】
図面を参照して、図１は、この発明が適合されたコンピュータシステム１００のブロック図である。インテグレーテッドプロセッサ１０１は、キャッシュメモリ１０６とキャッシュコントローラ１０８とに結合されたＣＰＵコア１０２を含む。ＣＰＵコア１０２、キャッシュメモリ１０６、およびキャッシュコントローラ１０８は、局部バスインタフェース１０９を介して局部バス１１２に結合される。インテグレーテッドプロセッサ１０１はさらには、バスインタフェースユニット１１０、インテグレーテッド周辺装置１１１、および局部バス１１２と局部バスインタフェース１０９とを介してＣＰＵコア１０２に結合されたメモリコントローラ１１６を含む。バスインタフェースユニット１１０は外部システムバス１２０と局部バス１１２との間にインタフェースを提供する。外部システムメモリ１１４は、メモリコントローラ１１６を介して局部バス１１２に結合される。代替バスマスタ１２２は最終的にシステムバス１２０に結合されて示されている。
【００１９】
その示された形態では、コンピュータシステム１００は、単一プロセッサ、単一キャッシュアーキテクチャを実現する。しかしながら、この発明はマルチプロセッサおよび／またはマルチキャッシュシステムに適合され得ることを理解されたい。さまざまな他の装置がシステムバス１２０に結合され得ることをさらに理解されたい。
【００２０】
システムバス１２０は、ＣＤ−ＲＯＭユニットおよびローカルエリアネットワーク（ＬＡＮ）装置などの周辺装置をインテグレーテッドプロセッサ１０１の内部構成要素に結合するためのどんな適切なバスであってもよい。例示の周辺バス規格は、ＩＳＡ（工業規格アーキテクチャ）バス、ＥＩＳＡ（拡張工業規格）バスおよびＰＣＩ（周辺接続インタフェース）バスを含む。バスインタフェースユニット１１０は、システムバス１２０と局部バス１１２との間のインタフェースを提供する。
【００２１】
ＣＰＵコア１０２は、予め定められた命令セットを実現するデータ処理ユニットである。例示の処理ユニットは、モデル８０３８６および８０４８６のマイクロプロセッサを含む。
【００２２】
キャッシュコントローラ１０８は、処理ユニット１０２とキャッシュメモリ１０６と局部バス１１２との間のデータの転送を統制しかつ管理する。好ましい形態では、処理ユニット１０２、キャッシュメモリ１０６、およびキャッシュコントローラ１０８は、コンピュータシステム１００において最大持続性能を提供するように同時に動作する。
【００２３】
局部バス１１２は、予め定められたビット幅を有し、インテグレーテッドプロセッサの１次バスである。システムメモリ１１４は、予め定められた大きさの物理的メモリであってＤＲＡＭ（ダイナミックランダムアクセスメモリ）とともに実現され得る。メモリコントローラ１１６は、局部バス１１２とシステムメモリ１１４との間で通信するデータ、アドレス、および制御信号の転送を制御しかつ統制する。
【００２４】
インテグレーテッド周辺装置１１１は、インテグレーテッドプロセッサ１０１の一体部分として組込まれたさまざまな考えられる周辺装置を示す。典型的な周辺装置は、ＤＭＡコントローラ、割込コントローラ、およびタイマを含む。
【００２５】
バスマスタ１２２は、さまざまなバスマスタデバイスを示す。典型的な代替バスマスタは、ディスクドライブ、ＣＤ  ＲＯＭユニット、およびローカルエリアネットワーク（ＬＡＮ）デバイスを含む。
【００２６】
アドレスタグおよび状態情報はキャッシュメモリ１０６の各ラインと関連する。アドレスタグはキャッシュメモリ１０６内の各エントリに対応するシステムメモリ１１４の物理的アドレスを示す。この実施例ではキャッシュメモリ１０６内の各エントリはデータのラインを記憶することができる。データのラインは４つの倍長語から成る（各倍長語は３２ビットを含む）。しかしながら、ラインはシステムに依存していかなる数の語または倍長語をも含み得ることが理解される。さらに倍長語はいかなる数のビットからも成り得ることが理解される。
【００２７】
状態情報は有効ビットおよび１組のダーティビットを含む。別々のダーティビットは各ライン内の各倍長語に割当てられる。有効ビットは予め定められたキャッシュラインが有効キャッシュデータを含むかどうかを示す一方、ダーティビットは各キャッシュライン内の各倍長語の書込状態を識別する。無効の状態では、対応のキャッシュメモリエントリに有効データはない。有効かつクリーンな状態では、キャッシュメモリエントリはシステムメモリ１１４と一致するデータを含む。有効かつダーティな状態では、キャッシュメモリエントリはシステムメモリ１１４とは一致しない有効データを含む。典型的には、ダーティな状態はキャッシュメモリエントリが書込動作によって変更されるときに結果として生じる。
【００２８】
キャッシュコントローラ１０８は、アドレスタグおよび状態情報を含みかつ管理するアドレスタグおよび状態論理回路１３０、キャッシュヒットが生じたかどうかを判断するためのコンパレータ回路１３２、ならびにキャッシュメモリ１０６内のダーティデータのライトバックを制御するスヌープライトバック回路１３４を含む。キャッシュコントローラ１０８はさまざまな読取り、書込み、更新、無効化、コピーバック、およびフラッシュ動作などの周知のキャッシング機能を制御するために付加的な従来の回路を含み得ることは当業者によって理解されるであろう。そのような回路はさまざまな特定の回路構成を使用して実現され得る。そのような特定の回路構成の例示は、１９９２年２月２５日にルービンフェルド（Ｒｕｂｉｎｆｅｌｄ）に与えられた米国特許第５，０９１，８７５号、および１９９２年２月２５日にサックス（Ｓａｃｈｓ）らに与えられた米国特許第５，０９１，８７６号を含む既知の先行技術の多くの刊行物に見出される。
【００２９】
前述のように、キャッシュメモリ１０６内のデータの各ラインはデータの４つの倍長語を伴なう。アドレスタグおよび状態論理回路１３０は、キャッシュメモリ１０６内の各ラインエントリに対応するシステムメモリ１１４の物理的アドレスを示し、さらにデータの各ラインに関連の１組のダーティビットおよび有効ビットを記憶する。別々のダーティビットは各ライン内のデータの各倍長語に与えられる。以下からよりよく理解されるように、スヌープライトバック制御回路１３４は、代替バスマスタにより局部バス１１２上で実行するサイクルをモニタしかつメモリサイクル（すなわち、読取または書込サイクル）の起動を検出する。そのようなサイクルは代替バスマスタ１２２によってまたはインテグレーテッド周辺装置１１１によって（すなわち、ＤＭＡコントローラとして構成された場合）起動され得ることに注目されたい。代替バスマスタによって起動されたメモリサイクルが局部バス１１２上で検出されると、さらに対応の有効ラインがキャッシュメモリ１０６内に存在すると、スヌープライトバック制御回路１３４はキャッシュメモリ１０６の対応のライン内のダーティ倍長語のライトバックを引起こす。データのライン全体のライトバックではなく、スヌープライトバック制御回路１３４はダーティであるライン内のそれらの倍長語のみがシステムメモリ１１４にライトバックされることを引起こすことに注目されたい。好ましい実施例では、特定のライン内のダーティ倍長語が誤整列されているとしても、スヌープライトバック制御回路１３４はバーストライトサイクルをシステムメモリ１１４に実行し、順次的でないダーティ倍長語をシステムメモリ１１４にバーストする。これは以下からよりよく理解され得る。
【００３０】
図２−４は、代替バスマスタ１２２による書込動作が生じる（すなわち、代替バスマスタ１２０からシステムメモリ１１４にまたはその逆でデータを転送する）ときのコンピュータシステム１００内のデータの流れを示すブロック図である。データの流れはインテグレーテッド周辺装置１１１がバスマスタデバイスである場合と同様であることに注目されたい。以下で詳しく述べられるように、そのような動作の間に生じる特定のデータ転送は、キャッシュメモリ１０６内のデータの状態（すなわち、クリーン、ダーティ、無効）に依存する。キャッシュメモリの特定のライン内のある倍長語はダーティであり、かつキャッシュヒットが生じると、ダーティであるライン内の倍長語のみがシステムメモリ１１４にライトバックされる。
【００３１】
図２を参照して、代替バスマスタ１２２がデータのライン４００をシステムメモリ１１４のメモリ領域４１０に書込むことを望む状況の書込動作が示されている。この例では、ライン４００は４つの倍長語「Ａ」、「Ｂ」、「Ｃ」および「Ｄ」からなり、メモリ領域４１０は４つのアドレス位置「Ｗ」、「Ｘ」、「Ｙ」、および「Ｚ」から成る。書込動作が起動されると、サイクルはスヌープライトバック制御回路１３４によって検出され、キャッシュメモリ１０６はライン４００が書込まれるべきメモリ領域４１０に対応のデータのラインを含むかどうかを判断するように（すなわち、局部バス１１２上のラインアドレスをアドレスタグおよび状態論理回路１３０内のアドレスタグと比較することによって）比較回路１３２によってアドレスタグ比較が行なわれる。キャッシュメモリ１０６が対応のラインを含まないならば、キャッシュミスが生じ、データのライン４００はシステムメモリ１１４に転送される。このデータ転送は典型的には、システムバス１１２上で単一バースト書込サイクルを実行し、倍長語「Ａ」、「Ｂ」、「Ｃ」、および「Ｄ」をアドレス位置「Ｗ」、「Ｘ」、「Ｙ」、および「Ｚ」それぞれに書込むことによって達成される。しかしながら、別々に倍長語を転送するように別々の書込サイクルが実行され得ることに注目されたい。この状況のキャッシュメモリ１０６はメモリ領域４１０に対応のラインを含まないので、データインコヒーレンシはデータの転送の実行の前、またはその完了後に存在しない。ゆえに、キャッシュメモリ１０６内でデータの状態を変更するまたはデータをライトバックする必要はない。代替バスマスタ１２２が単一の倍長語をシステムメモリ１１４に書込むと同様の動作が生じることに注目されたい。
【００３２】
図３は、「クリーン」なデータに対するキャッシュ「ヒット」がＤＭＡ書込動作の間にキャッシュメモリ１０６内で生じるときに行なわれる同様のデータ転送を示す。代替バスマスタ１２２はライン４００内の単一倍長語またはライン４００内のいくつかの倍長語（すなわち、倍長語「Ａ」、「Ｂ」、「Ｃ」、および「Ｄ」の任意の１つまたはそれ以上）を転送するようにサイクルを実行し得ることに注目されたい。前述のように、キャッシュメモリ１０６が代替バスマスタ１２２がデータを転送するシステムメモリ１１４のメモリ領域４１０に対応の関連のライン４２０を含むとき、キャッシュ「ヒット」が生じる。「ヒット」ライン４２０はシステムメモリ１１４のメモリ領域４１０内に記憶された対応のデータと同一のデータを含むならばそれはクリーンである。すなわち、その構成要素倍長語「Ｅ」、「Ｆ」、「Ｇ」、および「Ｈ」がアドレス位置「Ｗ」、「Ｘ」、「Ｙ」、および「Ｚ」それぞれ内に記憶された倍長語にすべて等しいならば、ライン４２０はクリーンである。図面に示されているように、そのようなＤＭＡ書込みがキャッシュのクリーンなデータで生じると、対応してバスインタフェースユニット１１０を介して局部バス１１２に転送されるシステムバス１２０上での書込サイクル（すなわち、単一書込みまたはバースト書込み）の実行にによって、ライン４００はメモリ領域４１０に書込まれる。前述の図２の転送と同様に、選択された倍長語「Ａ」、「Ｂ」、「Ｃ」、および／または「Ｄ」は対応のアドレス位置「Ｗ」、「Ｘ」、「Ｙ」、および「Ｚ」それぞれに書込まれる。しかしながら、この場合には、キャッシュメモリ１０６内にあるライン４２０はもはや最も最新の情報を含めない（すなわちメモリ領域４１０に転送されたの倍長語「Ａ」、「Ｂ」、「Ｃ」、および「Ｄ」の１つまたはそれ以上は新しい有効データになっている）。結果として、アドレスタグおよび状態論理回路１３０はライン４２０を無効にする。
【００３３】
ライン４２０内の倍長語「Ｅ」、「Ｆ」、「Ｇ」、および「Ｈ」の１つまたはそれ以上がアドレスタグおよび状態論理回路１３０によってダーティであると示される場合のコンピュータシステム１００の動作が次で考慮される。当業者には理解されるように、システムメモリ１１４を更新することなく倍長語がＣＰＵコア１０２からキャッシュメモリ１０６に書込まれると、ライン４２０内の倍長語はアドレスタグおよび状態論理回路１３０によってダーティであると以前に示されていてもよい。
【００３４】
図４は、代替バスマスタ１２２がデータのライン４００（またはその選択された倍長語）をシステムメモリ１１４に書込もうと試みキャッシュ「ヒット」がキャッシュメモリ１０６内の対応の「ダーティ」データを伴って生じるときに行なわれるデータ転送を示す。そのような状況が生じると、スヌープライトバック制御回路１４０は代替バスマスタ１２０が局部バス１１２のマスタ権を（すなわち、バスインタフェースユニット１１０を介して）「バックオフ」しかつ解放することを引起こす。スヌープライトバック制御回路１４０はその後ダーティと示されているキャッシュメモリ１０６のライン４２０内の倍長語「Ｅ」、「Ｆ」、「Ｇ」、および「Ｈ」のいずれかが、システムメモリ１１４のメモリ領域４１０の対応の位置にライトバックされることを引起こす。もし１つより多い倍長語がダーティであると示されれば、ライン４２０のダーティな倍長語のシステムメモリ１１４へのライトバックは好ましくはバースト転送サイクルを実行することによって達成される。以下で詳しく述べられるように、ライン４２０のダーティな倍長語が誤整列されるか順次的でなくてもそのようなバーストサイクルは実行される。システムメモリ１１４へのライトバックに続いて、キャッシュメモリ１０６内のライン４２０が無効であると示され、代替バスマスタ１２０はその所望のデータ転送を行なうことが可能となる。スヌープライトバックサイクルに従って、データコヒーレンシは維持される。
図５は、キャッシュコントローラ１０８の動作を示すフロー図である。ステップ３０２の間に局部バス１１２のサイクルがスヌープライトバック制御回路１３４によって検出されると、ステップ３０４の間にキャッシュタグ比較動作が行なわれる。ステップ３０６によって判断されるように、有効ラインへのキャッシュヒットが生じると、いずれかのダーティな倍長語がヒットライン内に存在するかどうかが判断される（ステップ３０８）。もしヒットキャッシュライン内にダーティな倍長語が存在しなければ、ステップ３１０の間にラインは無効にされる。一方では、１つまたはそれ以上のダーティな倍長語がライン内に存在すれば、ステップ３１２の間に個々のダーティな倍長語はシステムメモリ１１４に書込まれる。それに続いて、ステップ３１０の間にキャッシュラインは無効にされる。キャッシュコントローラ１０８は、局部バス１１２で実行するサイクルが書込サイクルであるときだけステップ３１０の間に特定のヒットキャッシュラインを無効にするように構成され得る（すなわち、代替バスマスタによって実行される局部バスサイクルが読取サイクルであればヒットキャッシュラインは必ずしも無効にされ得ない）ことに注目されたい。
【００３５】
図６は、キャッシュメモリ１０６内の順次的でないダーティな倍長語のライトバック動作の間にアサートされる、局部バス１１２上の、さまざまな信号を示すタイミング図である。たとえばもし倍長語「Ｅ」および「Ｇ」をシステムメモリ１１４にライトバックするようにスヌープライトバック動作が実行されれば（すなわち図４）、バーストサイクルがスヌープライトバック制御回路１３４によって実行される。アドレスストローブ信号ＡＤＳ♯のアサーション時に、バーストライトサイクルが起動される。最初に、局部バースト１１２のアドレッシングラインは倍長語「Ｅ」のアドレスに対応する値で駆動される。メモリコントローラ１１６は倍長語「Ｅ」を受取ったとき、それはＢＲＤＹ♯信号をアサートする。それに続いて、スヌープライトバック制御回路１３４は倍長語「Ｇ」のアドレスに対応する値で局部バス１１２のアドレッシングラインを駆動し、同時にＢＬＡＳＴ♯信号をアサートし倍長語「Ｇ」の転送が行なわれるときメモリコントローラ１１６にサイクルが完了することを知らせる。メモリコントローラ１１６は倍長語を受取ると再びＢＲＤＹ♯信号をアサートする。メモリコントローラ１１６は、信号ＢＲＤＹ♯をアサートするに先立って局部バス１１２のアドレスラインをリサンプリングしまたは検出し、倍長語アドレスが変化したかどうかを判断し、順次的でない倍長語を特定するように、構成されなければならないことに注目されたい。一実施例では、メモリコントローラ１１６は順次的でない倍長語がライトバックされているかどうかを判断するために所与のバーストライトバックサイクルの起動後アドレッシングラインの２つの下位オーダビットをリサンプリングすればよい。メモリコントローラ１１６は、アドレス信号が所与のバーストサイクルの間に変化しないならば、通常のバースト順序付けをとるようにさらに構成され得る。
【００３６】
キャッシュコントローラ１０８は、コンピュータ補助の設計具を使用することによって、順次的な論理回路に低減され得る。典型的なコンピュータ補助の設計具は、行動言語ベリログ（Ｖｅｒｉｌｏｇ）およびＶＨＳＩＣハードウェア記述言語を含む。
【００３７】
この発明はさまざまな他のバス転送技術および代替のシステム構成に関連して実現され得ることに注目されたい。たとえば、この発明は非パイプライン技術またはパイプライン技術いずれかを使用するシステムと関連して実現され得る。同様には、この発明はマルチプロセッサシステムおよび／またはマルチキャッシュシステム内で実現され得る。
【００３８】
一旦上述の開示が十分に理解されるとさまざまな変形および修正が当業者には明らかになるであろう。たとえば、キャッシュメモリ内に予め規定されたラインを含む語の数は、この発明の精神および範囲から離れることなしに変更され得る。前掲の特許請求の範囲はすべてのそのような変形および修正が組込まれ得ることが意図されている。
【図面の簡単な説明】
【図１】この発明に従ったキャッシュコントローラを使用するインテグレーテッドプロセッサを含むコンピュータシステムのブロック図である。
【図２】代替バスマスタによる書込サイクルの発生のときの図１のコンピュータシステム内のデータの流れを示すブロック図である。
【図３】代替バスマスタによる書込サイクルの発生のときの図１のコンピュータシステム内のデータの流れを示すブロック図である。
【図４】代替バスマスタによる書込サイクルの発生のときの図１のコンピュータシステム内のデータの流れを示すブロック図である。
【図５】図１のキャッシュコントローラの動作を示すフロー図である。
【図６】順次的でないキャッシュされたダーティデータをシステムメモリにバーストするようにスヌープライトバック制御回路によって実行されるバーストサイクルを示すタイミング図である。
【符号の説明】
１００  コンピュータシステム
１０２  ＣＰＵコア
１０６  キャッシュメモリ
１０８  キャッシュコントローラ
１１４  システムメモリ
１１６  メモリコントローラ
１２０  システムバス
１２２  代替バスマスタ
１３２  コンパレータ回路
１３４  スヌープライトバック制御回路
【図１】
0003771603.tif 000002
【図２】
0003771603.tif 000003
【図３】
0003771603.tif 000004
【図４】
0003771603.tif 000005
【図５】
0003771603.tif 000006
【図６】
0003771603.tif 000007