(57)【特許請求の範囲】
【請求項１】
外部キャッシュ・メモリを有するプロセッサ・サブシステムと、
前記プロセッサ・サブシステムに結合され、前記プロセッサ・サブシステムから分離されているメモリ・サブシステムとを備え、
前記プロセッサ・サブシステムは、前記メモリ・サブシステムに記憶されるべきデータ・ブロックを指定する書込み無効化（ＷＲＩ）動作を発行し、
前記書込み無効化（ＷＲＩ）動作は、前記データ・ブロックが前記外部キャッシュ・メモリに在るか否かを前記メモリ・サブシステムに指示する無効化助言（ＩＶＡ）表示を含み、
前記ＩＶＡ表示によって、前記メモリ・サブシステムは、前記ＷＲＩ動作の受信に応答して、前記データ・ブロックを無効化するためにメッセージを前記プロセッサ・サブシステムに送るか否か、を決める、
コンピュータ・システム。
【請求項２】
外部キャッシュ・メモリと関連した外部タグを有するプロセッサ・サブシステムと、
前記外部キャッシュ内のデータ・ブロックを無効化するメカニズムを含むメモリ相互接続サブシステムであって、前記プロセッサ・サブシステムから分離されている前記メモリ相互接続サブシステムと、
を備え、
前記メモリ相互接続サブシステムが、前記データ・ブロックを指定する前記プロセッサ・サブシステムによって発行される書込み無効化（ＷＲＩ）動作に含まれる無効化助言（ＩＶＡ）表示に応答して、前記データ・ブロックを無効化する、
コンピュータ・システム。
【請求項３】
メモリ相互接続サブシステムにデータを転送する方法において、
前記メモリ相互接続サブシステムは、プロセッサ・サブシステムから分離されているが、前記プロセッサ・サブシステムに接続されており、前記プロセッサ・サブシステムは外部キャッシュ・メモリを含む、方法であって、
前記外部キャッシュ・メモリ内にデータ・ブロックが在るか否かを判定するステップと、
前記データ・ブロックが前記メモリ相互接続サブシステム内に記憶されるように指示する書込み無効化（ＷＲＩ）動作を発行するステップであって、前記書込み無効化（ＷＲＩ）動作は、前記データ・ブロックが前記外部キャッシュ・メモリに在るか否かを前記メモリ相互接続サブシステムに示す無効化助言（ＩＶＡ）表示をさらに含む、ステップと、
前記ＩＶＡ表示の検出に応答して前記データ・ブロックを無効化するステップと、
を含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータシステムの分野に関し、特にコンピュータシステムのプロセッサの外部キャッシュに記憶したデータを無効化するシステムレベルのメカニズムを含むコンピュータシステムに関する。
【０００２】
【従来の技術】
従来のコンピュータシステムは一般に、主記憶サブシステムに接続した１以上のプロセッササブシステム及び１以上の入出力サブシステムを含んでいる。そのような主記憶サブシステムは一般に、プロセッサの命令やデータの記憶領域並びに入出力サブシステムに接続した入出力装置に対するデータ転送用の記憶領域を提供する。一般にプロセッササブシステム及び入出力サブシステムは共通バスないし交換相互接続データパス(switched interconnect data path) を提供する物理的相互接続を通して主記憶サブシステムに接続している。
【０００３】
そのようなシステムのプロセッササブシステムは一般に付随の外部キャッシュメモリを含んでいる。そのような外部キャッシュメモリは通常、主記憶サブシステムから選択されたブロックを記憶する。外部キャッシュメモリは通常、主記憶サブシステムからのフェッチを避けることで、キャッシュに記憶したデータブロックにコードとデータに対する高速プロセッサアクセスを提供する。更にそのようなコンピュータシステムは一般に、主記憶装置と外部キャッシュメモリ内の対応するデータブロック間のデータコヒーレンスを維持するプロトコルを実施する。例えば各々の外部キャッシュメモリは一般に外部キャッシュに記憶されたデータブロックの妥当性(validity)状況を示す１組のタグを含んでいる。
【０００４】
一般にそのようなコンピュータシステムはコヒーレントなデータ入出力を行うメカニズムを提供する。例えばそのようなコンピュータシステムの入出力サブシステムは通常、書込み無効（ＷＲＩ）動作を主記憶サブシステムに出すことで新しいデータをシステムに注入する。そのような書込み無効動作は例えば、入出力サブシステムに接続したディスク装置から新しいページのデータを読み込むときに生じ得る。
【０００５】
更にプロセッササブシステムは通常、ブロックコピー動作中にＷＲＩ動作を用いて新しいデータをコンピュータシステムに注入する。そのようなブロックコピー動作は例えば、コンピュータシステムでデータ構成初期化ないしファイルコピー動作中に生じる。そのようなブロックコピー動作は一般的な従来のコンピュータシステムでは比較的高い割合で生じる。
【０００６】
そのようなＷＲＩ動作では通常、システム内のデータコヒーレンシィを維持するため、外部プロセッサキャッシュに記憶した対応するデータブロックの無効化が必要となる。一般にそのような外部キャッシュでの無効化動作は、その外部キャッシュのタグによって新しく注入したデータブロックの存在が示される場合にのみ必要である。
【０００７】
【発明が解決しようとする課題】
一部の従来のコンピュータシステムでは、そのような無効化動作が各々のプロセッササブシステム内で行われている。そのようなシステムでは、プロセッサは対応する外部タグを読んで書込み無効化トランザクション中に無効化動作が必要かどうかを判定する。しかしそのようなメカニズムでは各々のプロセッサがタグ読取り動作を行い、記憶サブシステムに出す各々のＷＲＩ動作のタグ読取り・修正・書込み動作を潜在的に行う必要がある。一般的な従来システムではそのようなＷＲＩ動作が頻繁に生じ、プロセッサが行う通常の命令実行を妨げ、それによりそのようなシステムの全体的な性能は低下する。更にそのような自己無効化動作を行うプロセッササブシステムは記憶サブシステムでディレクトリベースのタグを提供するシステムと互換性がないことがある。
【０００８】
一部のコンピュータシステムはそのような無効化動作に対して最悪ケースのアプローチを実施することがある。例えばシステムは書込み無効化トランザクションで指定されたデータブロックが外部キャッシュに存在するか否かにかかわらず全ての書込み無効化トランザクションに付いて外部キャッシュ無効化動作を盲目的に行うことがある。そのような無効化動作は、指定データブロックが外部キャッシュに記憶されていない場合にはいつでも不必要である。残念ながら、そのような不必要な無効化動作はプロセッサの通常動作の妨げになる。
【０００９】
更にそのような無効化動作は、一部の種類のブロックコピー動作中に必要になるが、他の種類のブロックコピー動作中には必要とされない。例えばプロセッササブシステムは、プロセッササブシステムが後にアクセスしない新しいメモリデータブロックを生成するブロックコピー動作中に無効化動作を必要とすることがある。他方、データブロックをコンピュータシステムの安定記憶装置に書き込むブロックコピー動作は、プロセッサが安定記憶装置に転送したデータブロックに対する制御を保持する場合は一般に外部キャッシュに対する無効化動作を必要としない。盲目的に無効化動作を行う従来システムでは通常、プロセッササブシステムは指定データブロックに付いて記憶サブシステムに対する外部取り出しを後に行う。残念ながら、記憶サブシステムに対するそうした不必要な外部取り出しはそのようなコンピュータシステムの全体的なスループットを低下させることになる。
【００１０】
【課題を解決するための手段】
記憶サブシステムと外部キャッシュを有するプロセッササブシステムを含み、記憶サブシステムが外部キャッシュのデータブロックを無効化するメカニズムを含むコンピュータシステムを開示する。コンピュータシステムは更に外部キャッシュのデータの状態について記憶サブシステムにヒントを提供することにより間違った無効化動作を削減するメカニズムも含む。
【００１１】
プロセッササブシステムは、記憶サブシステムに対して、データブロックを指定し、無効化助言表示を含む書込み無効化メッセージを出す。無効化助言表示はデータブロックが外部キャッシュに存在するかどうかを示す。また無効化助言表示は、記憶サブシステムが、外部キャッシュのデータブロックを無効化する無効化メッセージを、プロセッササブシステムに対して転送するかどうかを決定する。
【００１２】
プロセッサの外部キャッシュを無効化する、記憶サブシステム内のメカニズムにより、プロセッサから外部キャッシュへのインターフェイスの設計が簡素になり、システム内の書込み無効化動作のプロセッサ性能に対する悪影響が低減される。キャッシュ無効化のためのそうした外部メカニズムにより、その外部メカニズムがなければプロセッサの性能に悪影響を与える書込み無効化動作中の外部キャッシュに対するプロセッサによる読取り・修正・書込み動作を省くことができる。更にキャッシュ無効化のためのそのような外部メカニズムは、ディレクトリベースないし複製されたタグを維持するマルチプロセッサシステムとディレクトリベースないし複製タグ(duplicate tag) を維持しないユニプロセッサシステムと互換性のあるプロセッササブシステムを提供する。
【００１３】
【発明の実施の形態】
図１は一実施形態としてのコンピュータシステム１０を示す。コンピュータシステム１０はプロセッササブシステム２０と、入出力ポート２２と、メモリ相互接続サブシステム１８とからなる。メモリ相互接続サブシステム１８はプロセッササブシステム２０及び入出力ポート２２に主記憶装置１４に対する共有アクセスを提供する。コンピュータシステム１０の構成要素は１組のメモリポート１−Ｎを通してメモリ相互接続サブシステム１８と通信する。例えばプロセッササブシステム２０に対するポート１はデータパス４０、アドレス経路４２、制御経路４４からなり、入出力サブシステム２２に対するポートＮはデータパス４６、アドレス経路４８、制御経路５０とからなる。
【００１４】
メモリ相互接続サブシステム１８は主記憶装置１４に対するデータパススィッチ１２とシステムコントローラ１６とからなる。一実施形態では、データパススィッチ１２は１組の制御信号５４を通してシステムコントローラ１６により制御されるクロスバースィッチである。データパススィッチ１２はデータパス４０とデータパス４６を含む各々のポート１−Ｎのデータパスを通して主記憶装置１４へのデータパスアクセスを可能にする。システムコントローラ１６はプロセッササブシステム２０−２２から受け取ったアドレスを復号し、メモリ制御バス５６を通して主記憶装置１４に対する行アドレス選択（ＲＡＳ）及び列アドレス選択（ＣＡＳ）信号を生成することでメモリコントローラとしての機能を果たす。
【００１５】
システムコントローラ１６は、サブシステム２０−２２からメモリアクセス要求を、アドレスパス４２及びアドレスパス４８を含む各ポート１−Ｎのアドレスパスを通して受け取る。システムコントローラ１６はサブシステム２０−２２からの要求間の仲裁を行い、データパススィッチ１２を構成（コンフィギャ）してメモリデータバス５２を通した主記憶装置１４へのアクセスのための必要な接続、或いはサブシステム間のデータ転送に必要な接続を提供する。システムコントローラ１６は必要に応じてプロセッササブシステム２０へのキャッシュ状態遷移制御メッセージに応答する。
【００１６】
メモリアクセス要求には例えば書込み無効化（ＷＲＩ）要求が含まれる。サブシステム２０−２２はシステムコントローラ１６に対するＷＲＩ要求を用いて指定データブロックを主記憶装置１４に書き込む。システム・コントローラ１６は、データパススィッチ１２を構成（コンフィギャ）して指定データブロックに対して固有の資源を提供することによりＷＲＩ要求を処理する。ＷＲＩ要求がプロセッササブシステム２０から生じる場合は、システムコントローラ１６はメッセージを制御パス４４を経て転送して、プロセッササブシステム２０の外部キャッシュ内のキャッシュ状態遷移を制御する。例えば、システムコントローラ１６は無効化メッセージを制御パス４４を経て転送して、プロセッササブシステム２０の外部キャッシュのデータブロックを適宜無効化する。
【００１７】
別の実施形態では、システムコントローラ１６は外部タグに対応する１組の複製タグを維持する。そのようなマルチプロセッサ実施形態では、システムコントローラ１６はシステムコントローラ１６と複製タグ間に接続したスヌープバスを介して複製タグにアクセスする。そのような実施形態の例示に付いては、名称「パケット交換型キャッシュコヒーレント・マルチプロセッサコンピュータシステム」の１９９５年３月３１日の米国出願（番号：        ）を参照されたい。
【００１８】
入出力ポート２２により、標準化入出力バス５８を通して１組の周辺装置３０−３３との通信が可能になる。標準化入出力バス５８は、例えばＳＢＵＳあるいは周辺構成部品相互接続（ＰＣＩ）標準化バスで構成することが出来る。入出力ポート２２はシステムコントローラ１６を通して主記憶装置１４へのコヒーレントな入出力動作を提供する直接メモリアクセスメカニズムを実施する。
【００１９】
図２は一実施形態としてのプロセッササブシステム２０を示したものである。プロセッササブシステム２０はプロセッサ７０、外部キャッシュ７４、ポートインターフェイス７２に関連した１組の外部タグ７６からなる。
【００２０】
プロセッサ７０は外部キャッシュ７４にメモリロード及びメモリ記憶動作を出す。ポートインターフェイス７２はアドレスパス４２を介して転送されるメッセージパケットを用いて、システムコントローラ１６にキャッシュ要求を出す。キャッシュ要求にはプロセッサ７０によるブロックコピー動作中のＷＲＩトランザクションが含まれる。アドレスパス４２を通して転送する各々のメッセージパケットには、書込み無効化トランザクションのデータブロックを指定するアドレスと共に書込み無効化要求タイプを指定するヘッダが含まれる。システムコントローラ１６はデータパススィッチ１２を構成して対応するデータブロックを主記憶装置１４に転送することで書込み無効化トランザクションを処理する。
【００２１】
一実施形態としてのシステムコントローラ１６に対するＷＲＩ要求パケットには、無効化助言（ＩＶＡ, invalidate advisory ）表示が含まれる。ＩＶＡ表示はシステムコントローラ１６がプロセッササブシステム２０に対して無効化要求を出し戻して、外部キャッシュ７４内の対応するデータブロックを無効化するかどうかを判定する。更にプロセッササブシステム２０は、指定された無効化データブロックが外部キャッシュ７４にあれば、無効化要求に応答してメモリ相互接続サブシステム１８に対してコピーバック動作を行う。
【００２２】
図３は一実施形態としての入出力ポート２２を示したものである。入出力ポート２２はポートインターフェイス８２と共に標準入出力バスインターフェイス８０からなる。ポートインターフェイス８２により、システムコントローラ１６を通して主記憶装置１４に対するコヒーレントな入出力直接メモリアクセスが可能になる。
【００２３】
図４はメモリポートのポート１−ポートＮの１つからシステムコントローラ１６への要求パケットの一実施形態を示す。この実施形態に付いては、要求パケットはシステムコントローラ１６に適切なメモリ経路を介して２つのサイクルで転送される。要求パケットの物理的アドレスで要求パケットについて主記憶装置１４のデータブロックを指定する。プロセッササブシステム２０からのＷＲＩトランザクション中、要求パケットの最初のサイクルのトランザクションタイプ欄は書込み無効化トランザクションタイプを示す。ＩＶＡビットは、プロセッササブシステム２０が外部キャッシュ７４内のデータブロック及びタグ７６を無効化するのに対応する書込み無効化トランザクションに対する無効化要求を必要とするかどうかを示す。
【００２４】
図５は一実施形態としてのプロセッササブシステム２０によるブロック記憶動作を示す。ブロック記憶動作は、例えばプロセッササブシステム２０によるブロックコピー中に生じることがある。ブロック１００では、プロセッサ７０が外部キャッシュ７４に対してブロック記憶動作を出す。
【００２５】
図５において、ブロック１０２では、ポートインターフェイス７２がプロセッサ７０からのブロック記憶動作のデータブロックを指定する書込み無効化要求パケットを生成する。判断ブロック１０４では、プロセッサ７０が指定データブロックが保持されていないと判定するならば、制御はブロック１０６に進む。
【００２６】
ブロック１０６では、プロセッサ７０はポートインターフェイス７２内に組み込まれた書込み無効化要求パケット内のＩＶＡビットをクリアする。その後、ブロック１０８でポートインターフェイス７２が書込み無効化要求をアドレスパス４２を介してシステムコントローラ１６に出す。
【００２７】
判断ブロック１０４では、プロセッサ７０が指定データブロックが保持されていると判定するならば、制御は決定ブロック１１０に進む。判断ブロック１１０では、プロセッサ７０は、外部タグ７６に対してタグ参照動作を行って指定データブロックが外部キャッシュ７４内に存在するか否かを判定する。指定データブロックが外部キャッシュ７４内になければ、制御はブロック１０８に進み、書込み無効化要求をシステムコントローラ１６に出す。そうでなければ制御はブロック１１２に進む。
【００２８】
ブロック１１２では、プロセッサ７０は書込み無効化要求パケットにＩＶＡを設定して、データブロックに対する書込み無効化要求がシステムコントローラ１６から要求されていることを示す。その後、制御はブロック１０８に進み、書込み無効化要求パケットをシステムコントローラ１６に出す。
【００２９】
以上、本発明をその特定の実施形態を参照して説明したが、様々な修正や変更を、特許請求項の範囲記載の本発明の趣旨から逸脱せずに行い得ることは明かである。従って明細書や図面は例示的なものと見なすべきである。
【図面の簡単な説明】
【図１】    プロセッササブシステム、入出力ポート、メモリ相互接続サブシステムを含むコンピュータシステム１０の一実施形態を示す。
【図２】    プロセッサ、外部キャッシュと付随の外部タグ・セットと、メモリ相互接続ポートインターフェイスを含むプロセッササブシステムを示す。
【図３】    標準入出力バスインターフェイスと主記憶装置へのコヒーレントな入出力直接メモリアクセスを可能にするポートインターフェイスを含む入出力ポートの一実施形態を示す。
【図４】    メモリポートのポート１−ポートＮの１つからシステムコントローラへの要求パケットの一実施形態を示す。
【図５】    一実施形態としてのプロセッササブシステムによるブロック記憶動作を取り扱いを示す。
【符号の説明】
１２・・データパススィッチ、      １４・・主記憶装置、
１６・・システムコントローラ、    ２０・・プロセッササブシステム、
２２・・入出力ポート、            ３０，３１，３２，３３・・周辺装置、
７０・・プロセッサ、              ７２・・ポートインターフェイス、
７４・・外部キャッシュ、          ７６・・外部タグ、
４０・・データパス、              ４２・・アドレスパス、
８０・・標準入出力バスインターフェイス、
８２・・ポートインターフェイス。
【図１】
0003887036.tif 000002
【図２】
0003887036.tif 000003
【図３】
0003887036.tif 000004
【図４】
0003887036.tif 000005
【図５】
0003887036.tif 000006