JP5128093B2 - 複数のアドレス・キャッシュ・エントリを無効化する装置 - Google Patents

複数のアドレス・キャッシュ・エントリを無効化する装置 Download PDF

Info

Publication number
JP5128093B2
JP5128093B2 JP2006217586A JP2006217586A JP5128093B2 JP 5128093 B2 JP5128093 B2 JP 5128093B2 JP 2006217586 A JP2006217586 A JP 2006217586A JP 2006217586 A JP2006217586 A JP 2006217586A JP 5128093 B2 JP5128093 B2 JP 5128093B2
Authority
JP
Japan
Prior art keywords
address
address cache
data
entry
register
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.)
Expired - Fee Related
Application number
JP2006217586A
Other languages
English (en)
Other versions
JP2007048296A (ja
Inventor
アンドリュー、ヘンリー、ウォトレング
チャド、ビー、マクブライド
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007048296A publication Critical patent/JP2007048296A/ja
Application granted granted Critical
Publication of JP5128093B2 publication Critical patent/JP5128093B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Landscapes

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

Description

本発明は、一般に、コンピュータシステムに関し、より詳細には、複数のアドレス・キャッシュ・エントリを無効する方法及び装置に関する。
コンピュータシステムのメモリは、入力/出力(I/O)アドレス及び実アドレスのマッピングを含むテーブルを含み、入力/出力アドレスと実アドレスの変換を可能にする。コンピュータシステムは、変換テーブルから、頻繁にアクセスされエントリを局所的に格納するための、アドレス・キャッシュ(例えば、変換索引バッファ(TLB))を含むことがある
I/O操作の完了に際して、変換テーブルとTLB内の1つ以上のエントリ無効化しなければならないことがある。TLBエントリを無効化する従来の方法及び装置は、高コストである。というのは、それら方法及び装置は、各アドレス・キャッシュ・エントリごとに無効操作を必要とするので、システム性能に悪影響を及ぼすからである。さらに、変換テーブルへの全てのメモリ書き込みをスヌープし、次に対応するアドレス・キャッシュ・エントリを無効する他の方法、多大なチップ面積を必要とする。従って、アドレス・キャッシュ・エントリを無効する改良された方法及び装置が求められる。
本発明の第1の側面では、アドレス・キャッシュから複数のアドレス・キャッシュ・エントリ(以下単に「エントリ」とも称する)を除去するための第1の方法が提供される。前記第1の方法は、(1)アドレス・キャッシュ・エントリ無効レジスタ(以下、「無効レジスタ」と略記)にデータを書き込むステップと、(2)前記無効レジスタに書き込まれた前記データに基づいて、前記アドレス・キャッシュから複数のエントリを除去するステップとを備える。
本発明の第2の側面では、データ・キャッシュから複数のデータ・キャッシュ・エントリ(以下単に「エントリ」とも称する)を除去するための第2の方法が提供される。前記第2の方法は、(1)無効レジスタにデータを書き込むステップと、(2)前記無効レジスタに書き込まれた前記データに基づいて、前記データ・キャッシュから複数のエントリを除去するステップとを備える。
本発明の第3の側面では、アドレス・キャッシュから複数のエントリを除去するための第1の装置が提供される。前記第1の装置は、無効レジスタを含むアドレス・キャッシュ・エントリ除去論理(以下、「ACER」と略記)を備え、前記ACERは、前記アドレス・キャッシュに結合するように適合され、(1)無効レジスタに書き込まれたデータを格納し、(2)前記無効レジスタに書き込まれた前記データに基づいて、前記アドレス・キャッシュから複数のエントリを除去するようにさらに適合されている。
本発明の第4の側面では、アドレス・キャッシュから複数のエントリを除去するための第1のシステムが提供される。前記第1のシステムは、(1)ソフトウェアを実行するように適合されているプロセッサと、(2)アドレス・キャッシュと、(3)アドレス・キャッシュからエントリを除去する装置とを含む。前記装置は、無効レジスタを含むACERを有し、該無効レジスタは、前記プロセッサ及びアドレス・キャッシュに結合される。前記システムは、(a)前記無効レジスタにデータを書き込み、(b)前記無効レジスタに書き込まれた前記データに基づいて、前記アドレス・キャッシュから複数のエントリを除去するように適合されている。他の複数の側面は、本発明のこれら及び他の側面に従って提供される。
本発明の他の特徴及び側面は、次の発明を実施するための最良の形態、添付の請求項及び添付の図面からより完全に明らかとなる。
本発明は、アドレス・キャッシュ・エントリを(例えば、無効することによって)除去する方法及び装置を提供して、従来のシステムに関連するコストを回避する。より詳細には、本発明は、(例えば、連続アドレスに対応する)複数のアドレス・キャッシュ・エントリを除去する方法及び装置を提供する。無効レジスタは、除去される第1のアドレス・キャッシュ・エントリを示すアドレス、除去されるアドレス・キャッシュ・エントリの数を示すカウント、及びソフトウェア(例えば、コンピュータシステムのオペレーティング・システム(OS))が、除去中のアドレス・キャッシュ・エントリを使用するのを禁止する無効状態ビットを格納る。前記無効レジスタに結合されたACERを使用して、必要に応じ、連続アドレスに対応する複数のアドレス・キャッシュ・エントリを除去する。一旦完了すると、前記ACERは、無効状態ビットを更新して、アドレス・キャッシュのエントリの除去が完了していることをシステム(例えば、OS)に示す。従って、sその後に行われるI/O操作は、不正確なデータを含む、アドレス・キャッシュ・エントリにアクセスしない。このように、本発明は、アドレス・キャッシュ・エントリを除去するために必要な論理量を低減することができるとともに、アドレス・キャッシュ・エントリを除去するために必要な多くのソフトウェアコマンドを低減することができる。このように、本発明は、従来のシステムに関連するコストを必要としない、アドレス・キャッシュ・エントリを除去する方法及び装置を提供する。
図1は、本発明の実施例によるアドレス・キャッシュ・エントリを除去するシステム100のブロック図である。システム100は、コンピュータ又は同様の装置の一部を形成する。図1を参照すると、システム100は、I/Oバス106を介してI/O変換論理104に結合され且つこれと通信するようになされている1つ以上のI/O装置102をむ。I/O変換論理104は、I/Oアドレスを実アドレスに変換するために使用されデータを格納及び/又は検索する。I/O変換論理104は、システムバス110を介して、メモリ108に結合され且つこれと通信する。メモリ108は、I/Oアドレス及びそれらと関連するそれぞれの実アドレスを格納するようになされている変換テーブル112を含む。このように、変換テーブル112は、例えば、I/O装置102による、メモリアクセスの間に、I/Oアドレスを実アドレスに、またその逆に変換する。変換テーブル112は大容量であることがあり(例えば8MB)、そして1つ以上のI/O装置102が、I/O変換論理104を介して変換テーブル112の情報に頻繁にアクセスすることがあるので、I/O変換論理104は、頻繁にアクセスされる変換テーブル・エントリを局所的に格納するようになされているアドレス・キャッシュ114を含む。従って、I/O操作を行っている間、システム100は、(例えば、システムバス110を介して)変換テーブル112からアドレス変換データを検索せずに、アドレス・キャッシュ114からそのようなデータを検索することができる。アドレス・キャッシュ114は、ディレクトリ配列116及びデータ配列118を含む。ディレクトリ配列116は、データ配列118内の対応するアドレス・キャッシュデータエントリに関連するアドレス・キャッシュディレクトリ情報を格納するエントリをむ。実施例によっては、アドレス・キャッシュ114は、変換索引バッファ(TLB)又は他の適切なストレージ領域とすることができる。一実施例では、アドレス・キャッシュ114は、64のエントリをむ。代替的に、アドレス・キャッシュ114は、より多くの又はより少ないエントリを使用することができる。
一旦I/O操作(例えば、I/O装置102によるメモリアクセス)が行われると、変換テーブル112及び/又はアドレス・キャッシュ114からのデータ変換エントリを除去することができる。従って、システム100は、I/O変換論理104に結合されるか又はI/O変換論理104内に含まれる、ACER120を含む。より詳細には、ACER120は、アドレス・キャッシュ114のディレクトリ配列116に結合する。ACER120は、例えば、システムOSなどのソフトウェアによって、ACER120に書き込まれたデータに基づいて、アドレス・キャッシュ114から1つ以上のエントリを除去するようになされている。例えば、ACER120は、そこに書き込まれたデータに基づいて、連続アドレスに対応する複数のアドレス・キャッシュ・エントリを除去する。より詳細には、ACER120は、アドレス・キャッシュ・エントリが無効であることを示すように、アドレス・キャッシュ・エントリに関連するビット(例えば、有効ビット)を設定する。このように、システム100(より詳細には、システム100によって実行されるI/O変換論理104)は、アドレス・キャッシュ114全体として無効化せずに、アドレス・キャッシュ114から複数のエントリを除去する。さらに、システム100は、複数の命令を使用して複数のアドレス・キャッシュ・エントリをそれぞれ除去するのではなく、単一の命令を使用して(例えば、ACER120にデータを書き込むことにより)、アドレス・キャッシュ114から複数のエントリを除去することができる。このように、ACER120は、効率的にアドレス・キャッシュ・エントリを除去することができる。ACER120の詳細を、図2を参照して以下説明する。
図2は、本発明の実施例によるアドレス・キャッシュ・エントリを除去するシステムに含まれる、ACER120のブロック図である。前述のように、ACER120は、アドレス・キャッシュ114のディレクトリ配列116に結合する。ACER120は、データを格納するようになされている無効レジスタ200を含む。無効レジスタ200は、アドレス・キャッシュ114から除去すべき第1のアドレス・キャッシュ・エントリのアドレスを示す第1のデータ202を格納る。第1のデータ202の第1の部分は、アドレス・キャッシュ114をインデックスすることにより、アドレス・キャッシュ・エントリにアクセスするために使用され、第1のデータ202の第2の部分は、アクセスされたアドレス・キャッシュ・エントリが、第1のデータ202の第2の部分によって識別されたエントリと一致するかどうか決定するために使用される。また、無効レジスタ200は、アドレス・キャッシュ114から除去すべきエントリの数を示す第2のデータ204を格納る。さらに、無効レジスタ200は、アドレス・キャッシュ・エントリ除去の状態を示す第3のデータ206を格納る。このように、第3のデータ206は、無効状態ビットとして機能する。
無効レジスタ200は、第1のデータ202(例えば、アドレス)の第1の部分、第1の入力210を介して第1マルチプレクサ208に入力するように、第1マルチプレクサ208に結合する。第1マルチプレクサ208の出力212は、第1マルチプレクサ208から出力されたデータ(例えば、アドレス)を格納するようになされた現アドレス・レジスタ214に結合する。このように、現アドレス・レジスタ214は、アドレス・キャッシュ114から除去すべきエントリのアドレスを格納る。現アドレス・レジスタ214の出力216は、入力220を介してインクリメント論理218に結合する。インクリメント論理218は、入力アドレスを次の有効アドレスにインクリメントし、出力222を介してインクリメントされたアドレスを出力するようになされている。
インクリメント論理218の出力222は、インクリメントされたアドレスが、第1マルチプレクサ208に入力されるように、第1マルチプレクサ208の第2の入力224に結合する。第1マルチプレクサ208は、その第1又は第2の入力210、224に入力されたデータを選択的に出力するようになされている。例えば、第1の期間(例えば、1つ以上のクロックサイクル)に、第1マルチプレクサ208は、第1のデータ202の第1の部分を出力する。後続の期間に、第1マルチプレクサ208は、インクリメント論理218によってインクリメントされた第1のアドレス・キャッシュ・エントリアドレスの第1の部分を表すデータを出力して、第2のアドレス・キャッシュ・エントリアドレス(例えば、インクリメントされたアドレス)を形成する。同様に、後続の期間に、第1マルチプレクサ208は、インクリメント論理218によってインクリメントされた第2のアドレス・キャッシュ・エントリアドレスの第1の部分を表すデータを出力して、第3のアドレス・キャッシュ・エントリアドレスを形成する。
現アドレス・レジスタ214の出力216は、アドレス・キャッシュ114のディレクトリ配列116へのインデックスとして機能する。例えば、現アドレス・レジスタ214の出力216は、ディレクトリ配列116の第1の入力226に結合され、そのような入力に基づいて、ディレクトリ配列116から情報を出力するように機能する。代替的に現アドレス・レジスタ214の出力216は、ハッシング論理228の入力230を介してハッシング論理228に結合することができる。ハッシング論理228の出力232は、ディレクトリ配列116の第1の入力226に結合する。ハッシング論理228は、そこに入力されたデータを或る値(例えば、インデックス)に変換し且つ出力232を介してそのような値を出力することにより、ディレクトリ配列116にアクセスするようになされている。ハッシング論理228は、そこに入力されたデータをインデックスに変換するために、論理EXCLUSIVE−OR(XOR)操作又は他の適切な論理演算を行う。
ACER120は、無効レジスタ200及びアドレス・キャッシュ114に結合された比較論理234を含む。より詳細には、比較論理234の第1の入力236は、第1のデータ202の第2の部分、比較論理234に入力するように、無効レジスタ200に結合する。さらに、比較論理234の追加の入力(例えば、第2、第3の入力238、240)は、アドレス・キャッシュ114の対応する出力242〜244に結合する。比較論理234は、アドレス・キャッシュ114(例えば、アドレス・キャッシュ114のディレクトリ配列116)の対応する入力(例えば、第2、第3の入力250、252)に結合された1つ以上の出力(例えば、第1及び第2の出力246、248)を含む。比較論理234は、第1の入力236を介して入力された第1のデータ202の第2の部分を、第2と第3の入力238、240を介して入力されたそれぞれのデータ(例えば、アドレスデータ)と比較するようになされている。第2又は3の入力238、240を介して入力されたデータ(アドレス・キャッシュ・エントリに対応するデータ)が、第1の入力236を介して入力されたデータと一致する場合、比較論理234は、一致するエントリに対応する出力246、248を介してアドレス・キャッシュ114にデータを出力する。そのようなデータは、一致するアドレス・キャッシュ・エントリが無効であることを有効ビットが示すように、一致するエントリ用の有効ビットの値として機能する。このように、アドレス・キャッシュ・エントリ、除去することができる。
ACER120は、アドレス・キャッシュ114からデータを読み出し、アドレス・キャッシュ114から出力されたデータを第1のデータ202の第1の部分比較し及び/又はアドレス・キャッシュ114にデータを書き込む間に、現アドレス・レジスタ214によって出力されたデータをインクリメントするようになされている。代替的に、ACER120は、その前又はその後に現アドレス・レジスタ214によって出力されるデータをインクリメントすることができる。
さらに、無効レジスタ200は、第2のデータ204、第1の入力256を介して第2マルチプレクサ254に入力するように、第2マルチプレクサ254に結合する。第2マルチプレクサ254の出力258は、第2マルチプレクサ254から出力されたデータ(アドレス・キャッシュ114から除去すべきエントリの数を示す値)を格納するようになされているカウント・レジスタ260に結合する。カウント・レジスタ260の出力262は、入力266を介してデクリメント論理264に結合する。デクリメント論理264は、入力値(アドレス・キャッシュ114から除去すべきエントリの数を示す値)を1だけデクリメントし、出力268を介してデクリメントされた値を出力するようになされている。ACER120は、現アドレス・レジスタ214によって出力されたデータをインクリメントする間に、カウント・レジスタ260から出力されたデータをデクリメントするようになされている。代替的に、ACER120は、その前又はその後にカウント・レジスタから出力されたデータをデクリメントすることができる。
デクリメント論理264の出力268は、デクリメントされた値、第2マルチプレクサ254に入力するように、第2マルチプレクサ254の第2の入力270に結合する。第2マルチプレクサ254は、その第1又は第2の入力256、270によって入力されたデータを選択的に出力するようになされている。例えば、第1の期間中に、第2マルチプレクサ254は、第2のデータ204を出力する。第2の期間中に、第2マルチプレクサ254は、1だけデクリメントされた第2のデータ204表すデータを出力する。同様に、第3の期間中に、第2マルチプレクサ254は、2だけデクリメントされた第2のデータ204表すデータを出力する。
カウント・レジスタ260は、無効状態ビット設定論理272に結合する。より詳細には、カウント・レジスタ260の出力262は、無効状態ビット設定論理272の入力274に結合する。無効状態ビット設定論理272は、カウント・レジスタ260の出力262が0値を有する場合に、これを検知することができる。無効状態ビット設定論理272の出力276は、無効レジスタ200に結合されている。その結果、カウント・レジスタ260の出力262が0値を有することを検知するときに無効状態ビット設定論理272から出力されるデータが、第3のデータ206を更新して、1つ以上のアドレス・キャッシュ・エントリの除去が完了していることを示すことができる。
次に、図1〜図3を参照して、アドレス・キャッシュ・エントリを除去するためのシステムの操作を説明する。図3を参照すると、ステップ302で、方法300は開始する。ステップ304で、データを無効レジスタ200に書き込む。例えば、システム100によって実行されるI/O変換論理104は、ACER120の無効レジスタ200にデータを書き込む。より詳細には、I/O変換論理104は、第1のデータ202を無効レジスタ200に書き込み、該データ202は、アドレス・キャッシュ114から除去すべき第1のエントリのアドレスを示す。さらに、システム100によって実行されるI/O変換論理104は、第2のデータ204を無効レジスタ200に書き込み、該データ204は、アドレス・キャッシュ114から除去すべきエントリの数Nを示す。さらに、システム100によって実行されるI/O変換論理104は、第3のデータ206を無効レジスタ200に書き込み、該データ206は、アドレス・キャッシュ・エントリ除去の状態を示し、それによって、無効状態ビットとして機能する以上では、第1〜第3のデータ202〜206を説明したが、これより多い又は少ないのデータ及び/又は異なるデータを無効レジスタ200に書き込むことができる。3つのデータ202〜206は全て、1つの操作として同時に書き込むようになされている。代替的に、データ202〜206は、異なる時間に書き込むこともできる。
例えば、I/O操作を行った後、システム100は、変換テーブル112及び/又はアドレス・キャッシュ114から1つ以上のエントリを除しなければならないことがある。従って、第1の期間中に、システム100によって実行されるI/O変換論理104は、第1〜第3のデータ202〜206を無効レジスタ200に書き込む。第3のデータ206は、(例えば、I/O変換論理104に対し)1つ以上のアドレス・キャッシュ・エントリの除去が進行中であることを示す。
ステップ306で、無効レジスタ200に書き込まれたデータに基づいて、アドレス・キャッシュ114から複数のアドレス・キャッシュ・エントリを除去する。無効レジスタ200に書き込まれたデータは、ハードウェアシーケンスを開始して、1つ以上のアドレス・キャッシュ・エントリを除去する。より詳細には、無効レジスタ200に書き込まれた第1〜第3のデータ202〜206に基づいて、ACER120は、アドレス・キャッシュ114から1つ以上のエントリを除去する。例えば、無効レジスタ200に書き込まれた第1〜第3のデータ202〜206は、(例えば、連続アドレスに対応する)2つのエントリをアドレス000Aにおけるエントリから開始して、アドレス・キャッシュ114から除去すべきことを示し、そして1つ以上のアドレス・キャッシュ・エントリの除去が進行中であることを示す。従って、第2の期間に、ACER120は、第1のデータ202(例えば、アドレス・キャッシュ114から除去すべき第1のエントリのアドレス)の第1の部分を、無効レジスタ200から第1マルチプレクサ208に出力する。第1のデータ202の第1の部分は、第1マルチプレクサ208から現アドレス・レジスタ214に出力され、そこに格納される。
第3の期間に、第1のデータ202の第1の部分は、アドレス・キャッシュ114内の1つ以上のエントリにアクセスするために使用される。例えば、第1のデータ202の第1の部分を、現アドレス・レジスタ214から出力し、これをハッシング論理228に入力する。第1のデータ202の第1の部分に基づいて、ハッシング論理228は、データ(例えば、インデックス)を作成して、アドレス・キャッシュ114に出力し、該データは、アドレス・キャッシュ114(例えば、そのディレクトリ配列116)にアクセスするために使用される。そのようなデータに基づいて、アドレス・キャッシュ114は、アドレス・キャッシュ114の1つ以上のエントリに対応するデータを出力する。例えば、アドレス・キャッシュ114が、2ウェイのセット・アソシアティブ・キャッシュである場合、2つのエントリに対応するデータ、アドレス・キャッシュ114から出力される。同様に、アドレス・キャッシュ114が、4ウェイのセット・アソシアティブ・キャッシュである場合、4つのエントリに対応するデータ、アドレス・キャッシュ114から出力される。エントリに対応するデータは、エントリに関連するアドレスを示すデータ(例えば、タグ)及びアクセスされたエントリが有効かどうかを示すデータ(例えば、有効ビット)を含む。しかし、エントリに対応するデータは、これより多い又は少ないのデータ及び/又は異なるデータを含むことができる。例えば、実施例によっては、エントリに対応するデータは、アクセスされたエントリが「最も長い間使われていない」(LRU)エントリの1つかどうかを示すデータ(例えば、LRUビット)を含むことができる。
アドレス・キャッシュ114から出力されたエントリに対応するデータは、比較論理234に入力する。さらに、第1のデータ202(例えば、第1のアドレス)の第2の部分、無効レジスタ200から出力して、比較論理234に入力する。比較論理234は、エントリに対応するデータに含まれた有効ビットにアクセスすることができ、該データは、アドレス・キャッシュ114から出力される。有効ビットがエントリが有効であることを示す場合、比較論理234は、そのようなエントリに関連するアドレスを示すデータ(例えば、タグ)を、第1のデータ202の第2の部分と比較する。該データが一致する場合、比較論理234は、そのようなアドレス・キャッシュ・エントリの有効ビットを更新(例えば、書き込む)して、エントリが無効であることを示す。このように、エントリは、アドレス・キャッシュ114から除去することができる。代替的にデータが一致しない場合、比較論理234は、そのようなアドレス・キャッシュ・エントリの有効ビットを更新しない。
さらに、第3の期間に、インクリメント論理218は、アドレスの一部を表す第1のデータ202を更新し、これを現アドレス・レジスタ214から出力して、次のアドレス(例えば000B)の一部を表す新しいデータを形成する。第3の期間中又は第4の期間中に、新しいデータを、第1マルチプレクサ208に入力し、第1マルチプレクサ208から出力し、現アドレス・レジスタ214に入力し、現アドレス・レジスタ214から出力する。後続の期間に、新しいデータを使用して、第1のデータ202の第1の部分を使用する述されたものに類似する方法で、アドレス・キャッシュ114の1つ以上のエントリにアクセスし、場合によっては、これを除去することができる。
さらに、第3の期間に、アドレス・キャッシュ114から除去すべきエントリの数をカウントするために、無効レジスタ200は、第2のデータ204を第2マルチプレクサ254に出力する。第2マルチプレクサ254は、デクリメント論理に第2のデータ204を出力する。代替的に、そのようなデータは、第2マルチプレクサ254及び/又はカウント・レジスタ260から、その前又はその後に、出力することができる。また、第2のデータ204は、カウント・レジスタ260から無効状態ビット設定論理272に出力し、該無効状態ビット設定論理272は、アドレス・キャッシュ・エントリ除去の状態を示す第3のデータ206を更新する。より詳細には、カウント・レジスタ260の出力262が0値を有することを検知する場合、無効状態ビット設定論理272は、第3のデータ206を更新して、アドレス・キャッシュ・エントリ除去が完了していることを示す。
第3の期間中に、第1のデータ202(例えば、アドレス)の第1の部分を使用して、アドレス・キャッシュ114の対応するエントリからデータを読み出すか、又はアドレス・キャッシュ114の対応するエントリにデータを書き込む間に、デクリメント論理264は第3のデータ206を1だけデクリメントして、アドレス・キャッシュ114から除去すべきエントリの新しい数を形成する。第3の期間中又は後続の期間(例えば、第4の期間)中に、アドレス・キャッシュ114から除去すべきエントリの新しい数、第2マルチプレクサ254に入力し、第2マルチプレクサ254から出力し、カウント・レジスタ260の出力262を介してデクリメント論理264及び無効状態ビット設定論理272に入力する。後続の期間(例えば、新しいデータを使用してアドレス・キャッシュ114の1つ以上のエントリにアクセスし、可能であればこれらのエントリを除去する期間)中に、デクリメント論理264は、ように、アドレス・キャッシュ114から除去すべきエントリの新しい数を1だけデクリメントする。
無効状態ビット設定論理272によって受け取られる、アドレス・キャッシュ114から除去すべきエントリの新しい数が、0値となるまで、記プロセスを繰り返す。一旦、無効状態ビット設定論理272によって受け取られる、アドレス・キャッシュ114から除去すべきエントリの新しい数が、0値となれば、無効状態ビット設定論理272は、第3のデータ206を更新して、アドレス・キャッシュ・エントリ除去が完了していることを示す。従って、システム100によって実行されるI/O変換論理104は(例えば、無効レジスタ200をポーリングすることによって)第3のデータ206にアクセスし、アドレス・キャッシュ・エントリ除去が完了していることを決定することができる。
その後、ステップ308を行う。ステップ308で、方法300は終了する。本発明の方法及び装置の使用を通て、(例えば、連続アドレスに対応する)複数のエントリを、アドレス・キャッシュ114から除去することができる。システム100は、単一の命令に応答して、アドレス・キャッシュ114から複数のエントリを除去することができる。例えば、システム100によって実行されるI/O変換論理104は、第1〜第3のデータ202〜206を無効レジスタ200に書き込むことにより、アドレス・キャッシュ114から複数のエントリを除去することができる。このように、本発明は、効率的に、アドレス・キャッシュ114からエントリを除去することができる。より詳細に本発明の方法及び装置は、従来のシステムより少ない命令を使用して、アドレス・キャッシュ114から複数のエントリを除去することができる。このように、本発明は、複数のアドレス・キャッシュ・エントリを除去するのに必要な命令の数を最小限にすることができる。さらに、本発明の方法及び装置は、より少ない論理を使用し、従って、従来のシステムより、より少ないチップ面積を必要とするにすぎない。従って、本発明は、アドレス・キャッシュ114からの複数のエントリの除去を最適化することができる。
一旦、1つ以上のエントリが、アドレス・キャッシュ114から除去されると、システム100は、1つ以上のI/O操作を行う。I/O操作中に、システム100は、アドレス・キャッシュ114の1つ以上のエントリにアクセスして、I/Oアドレス変換を行う。複数のエントリが、アドレス・キャッシュ114から除去されるまで、システム100、アドレス・キャッシュ114にアクセスすることができないので、I/Oアドレス変換を必要とするI/Oアクセスは、不正確な(例えば、古い)データを含むアドレス・キャッシュ・エントリにアクセスしない。
前述の記載は、本発明の例示的実施形態のみを開示する。本発明の範囲内の、記開示した装置及び方法の変形例は、当業者に容易に明らかとなる。例えば、実施例によっては、無効レジスタ200は、メモリマップ(mmio)レジスタとすることができる。mmioレジスタを対象とする読み出し及び書き込みは、システム操作に著しい遅延を導入する可能性がある。本発明は、複数のアドレス・キャッシュ・エントリを除去するために、システム100によって実行されるI/O変換論理104が、無効レジスタ200に書き込む回数を低減することができるので、本発明は、そのような遅延を低減及び/又は去することができる。従って、本発明は、多くのI/O操作を行い、従って、頻繁にアドレス・キャッシュ114のエントリの追加及び/又は去を行うシステムに性能利点を提供することができる。
I/Oアドレス変換テーブル112は、単一レベルテーブル又は複数レベルテーブルとすることができる。例えば、I/Oアドレス変換テーブル112は、I/Oセグメントテーブル及びI/Oページテーブルを含む複数レベルテーブルとすることができる。実施例によっては(図1〜3を参照して述した実施例など)では、変換が、ページ(例えば、データの4KBブロック)ごと行われ、ページ番号に対応するI/Oアドレスの一部が、除されるアドレス・キャッシュ・エントリを識別することができると想定する。
実施例によっては、アドレス・キャッシュ除去が進行中であることを第3のデータ206が示している間にI/O変換論理104が、無効レジスタ200からデータを読み出す試みをする場合、ACER120は、I/O変換論理104にデータを出力することができない。非同期分割トランザクションに対応するシステムでは、I/O変換論理104が、無効レジスタ200を読み出す場合、ACER論理120は、アドレス・キャッシュ・エントリ除去が完了するまで、データを返すことができない。このように、本発明は、システムバス110上の読み出し操作の数を低減することができる。
以上では、本発明の方法及び装置、アドレス・キャッシュを参照て説明したが本発明の方法及び装置は、データ・キャッシュの複のエントリを無効するためにも使用することができる。従って、本発明は、明示的な命令(例えば、コプロセッサのソフトウェア管理キャッシュコヒーレン)でデータ・キャッシュ無効が行われるシステムを更新するのに有用とすることができる。さらに、実施例によっては、アドレス・キャッシュ・エントリは、複数のページの1つに対応することができ、各ページは、複数サイズの1つとすることができる。このように、キャッシュ無効のための本発明の方法及び装置は、複数ページサイズで使用することができる。例えば、I/Oアドレス変換テーブル112は、I/Oセグメントテーブル及びI/Oページテーブルを含む複数レベルテーブルとすることができる。各I/Oセグメントテーブルエントリは、I/Oセグメントのページのサイズを指定することができ、I/Oページテーブルエントリは、ページサイズに拘わらず、同数のバイトを含む。従って、I/Oページテーブルの連続エントリは、連続ページを表すことができる。従って、連続アドレスを無効するための本発明の方法及び装置は、ページサイズに拘わらず正確に機能することができる。
従って、本発明は、その例示的実施形態に関して開示されているが、請求項によって定義されるように、他の実施例は、本発明の精神及び範囲内にあることは当然のことである。
本発明の実施例によるアドレス・キャッシュ・エントリを除去するシステムのブロック図である 本発明の実施例によるアドレス・キャッシュ・エントリを除去するシステムに含まれる、アドレス・キャッシュ・エントリ除去論理のブロック図である 本発明の実施例によるアドレス・キャッシュ・エントリを除去する方法のフロー図である
102 I/O装置
104 I/O変換論理
106 I/Oバス
108 メモリ
110 システムバス
112 変換テーブル
114 アドレス・キャッシュ
120 アドレス・キャッシュ・エントリ除去論理

Claims (1)

  1. 入力/出力(I/O)アドレス変換を行うためのアドレス・キャッシュからI/Oアドレスおよび実アドレスのマッピングを保持するアドレス・キャッシュ・エントリを除去する装置であって、
    データ配列及び該データ配列内のデータ・エントリに対応するタグ・エントリを格納するディレクトリ配列から成る前記アドレス・キャッシュに結合されたキャッシュ・エントリ除去論理を備え、
    前記キャッシュ・エントリ除去論理は、
    前記アドレス・キャッシュから除去すべき第1のアドレス・キャッシュ・エントリのアドレス、前記アドレス・キャッシュから除去すべきアドレス・キャッシュ・エントリの数N、及びアドレス・キャッシュ・エントリ除去が進行中であることを示すアドレス・キャッシュ・エントリ除去状態ビットを格納する無効レジスタと、
    第1及び第2の入力を有し、最初は該第1の入力を介して前記無効レジスタから前記第1のアドレス・キャッシュ・エントリのアドレスの第1の部分を受け取り且つこれを現アドレス・レジスタに出力し、その後は該第2の入力を介して該現アドレス・レジスタの出力に結合されたインクリメント論理からインクリメントされた新しいアドレス・キャッシュ・エントリのアドレスの第1の部分を受け取り且つこれを該現アドレス・レジスタに出力する第1マルチプレクサと、
    第1及び第2の入力を有し、最初は該第1の入力を介して前記無効レジスタから前記アドレス・キャッシュ・エントリの数Nを受け取り且つこれをカウント・レジスタに出力し、その後は該第2の入力を介して該カウント・レジスタの出力に結合されたデクリメント論理からデクリメントされた新しいアドレス・キャッシュ・エントリの数を受け取り且つこれを該カウント・レジスタに出力する第2マルチプレクサと、
    前記現アドレス・レジスタから前記第1のアドレス・キャッシュ・エントリのアドレスの第1の部分又は前記インクリメントされた新しいアドレス・キャッシュ・エントリのアドレスの第1の部分を受け取り且つこれを前記ディレクトリ配列内の少なくとも1つのタグ・エントリにアクセスするためのインデックスに変換して前記ディレクトリ配列に出力するハッシング論理と、
    前記無効レジスタから前記第1のアドレス・キャッシュ・エントリのアドレスの第2の部分を受け取り、これを前記ディレクトリ配列内の前記少なくとも1つのタグ・エントリから出力されたアドレス・データと比較し、両者が一致する場合は、該少なくとも1つのタグ・エントリに対応する前記データ配列内の少なくとも1つのデータ・エントリが無効であることを示すように、該少なくとも1つのタグ・エントリ内の有効ビットを更新する比較論理と、
    前記カウント・レジスタ内に格納されている前記新しいアドレス・キャッシュ・エントリの数が0値を有するかどうかを検知するように前記カウント・レジスタの出力に結合された無効状態ビット設定論理とを有し、
    単一の命令に応答して、前記第1のアドレス・キャッシュ・エントリのアドレス、前記アドレス・キャッシュ・エントリの数N、及び前記アドレス・キャッシュ・エントリ除去状態ビットを前記無効レジスタに書き込み、
    前記第1のアドレス・キャッシュ・エントリから始まる連続アドレスに対応するN個のアドレス・キャッシュ・エントリが前記アドレス・キャッシュから除去されるまで、前記第1マルチプレクサ、前記第2マルチプレクサ、前記ハッシング論理及び前記比較論理の操作を繰り返し、
    前記カウント・レジスタ内に格納されている前記新しいアドレス・キャッシュ・エントリの数が0値を有することを前記無効状態ビット設定論理が検知した場合、アドレス・キャッシュ・エントリ除去が完了していることを示すように、前記無効レジスタ内に格納されている前記アドレス・キャッシュ・エントリ除去状態ビットを前記無効状態ビット設定論理によって更新する、装置。
JP2006217586A 2005-08-11 2006-08-09 複数のアドレス・キャッシュ・エントリを無効化する装置 Expired - Fee Related JP5128093B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/201,971 US7472227B2 (en) 2005-08-11 2005-08-11 Invalidating multiple address cache entries
US11/201971 2005-08-11

Publications (2)

Publication Number Publication Date
JP2007048296A JP2007048296A (ja) 2007-02-22
JP5128093B2 true JP5128093B2 (ja) 2013-01-23

Family

ID=37721794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006217586A Expired - Fee Related JP5128093B2 (ja) 2005-08-11 2006-08-09 複数のアドレス・キャッシュ・エントリを無効化する装置

Country Status (3)

Country Link
US (1) US7472227B2 (ja)
JP (1) JP5128093B2 (ja)
CN (1) CN100392623C (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7468975B1 (en) * 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
CN104461942B (zh) 2009-09-15 2018-06-08 威盛电子股份有限公司 串流上下文的高速缓存系统
US8214598B2 (en) * 2009-12-22 2012-07-03 Intel Corporation System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries
JP5845910B2 (ja) 2012-01-13 2016-01-20 富士通株式会社 画像描画装置、画像描画プログラム、及び、画像描画方法
JP5982847B2 (ja) * 2012-02-08 2016-08-31 大日本印刷株式会社 コンピュータ装置、情報処理システム、及び、プログラム
JP5915221B2 (ja) * 2012-02-08 2016-05-11 大日本印刷株式会社 コンピュータ装置、情報処理システム及びプログラム
US9223717B2 (en) * 2012-10-08 2015-12-29 Wisconsin Alumni Research Foundation Computer cache system providing multi-line invalidation messages
US10254999B2 (en) * 2016-03-31 2019-04-09 EMC IP Holding Company LLC Method and system for optimistic flow control for push-based input/output with buffer stealing
US10223305B2 (en) 2016-06-27 2019-03-05 International Business Machines Corporation Input/output computer system including hardware assisted autopurge of cache entries associated with PCI address translations
US10268580B2 (en) * 2016-09-30 2019-04-23 Intel Corporation Processors and methods for managing cache tiering with gather-scatter vector semantics

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
JPS63201852A (ja) * 1987-02-18 1988-08-19 Nec Corp キヤツシユメモリのアクセス制御方式
JPS63231648A (ja) * 1987-03-20 1988-09-27 Nec Corp キヤツシユメモリ消去方式
JPH06139149A (ja) * 1992-10-29 1994-05-20 Mitsubishi Electric Corp 多重仮想空間制御装置
JPH09231133A (ja) * 1996-02-21 1997-09-05 Nec Corp キャッシュメモリ装置
US6345352B1 (en) * 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
JP2001134490A (ja) * 1999-11-01 2001-05-18 Fujitsu Ltd キャッシュメモリの制御方法及びその方法を実現する計算機
US6604187B1 (en) * 2000-06-19 2003-08-05 Advanced Micro Devices, Inc. Providing global translations with address space numbers
EP1182571B1 (en) * 2000-08-21 2011-01-26 Texas Instruments Incorporated TLB operations based on shared bit
US7188215B2 (en) * 2003-06-19 2007-03-06 Ip-First, Llc Apparatus and method for renaming a cache line
US7069389B2 (en) * 2003-11-26 2006-06-27 Microsoft Corporation Lazy flushing of translation lookaside buffers

Also Published As

Publication number Publication date
CN1912854A (zh) 2007-02-14
US20070038797A1 (en) 2007-02-15
JP2007048296A (ja) 2007-02-22
US7472227B2 (en) 2008-12-30
CN100392623C (zh) 2008-06-04

Similar Documents

Publication Publication Date Title
JP5128093B2 (ja) 複数のアドレス・キャッシュ・エントリを無効化する装置
US7958298B2 (en) System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
US7657696B2 (en) Method to detect NAND-flash parameters by hardware automatically
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
JP3666689B2 (ja) 仮想アドレス変換方法
JP5373173B2 (ja) アドレス変換方法及び装置
US7472253B1 (en) System and method for managing table lookaside buffer performance
US5666509A (en) Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
KR100228940B1 (ko) 메모리 일관성 유지 방법
US8499123B1 (en) Multi-stage pipeline for cache access
JP2006172499A (ja) アドレス変換装置
US6463514B1 (en) Method to arbitrate for a cache block
US7549035B1 (en) System and method for reference and modification tracking
US5530835A (en) Computer memory data merging technique for computers with write-back caches
JP2768503B2 (ja) 仮想記憶アドレス空間アクセス制御方式
TWI407306B (zh) 快取記憶體系統及其存取方法與電腦程式產品
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
KR100304318B1 (ko) 프로세서버스에대한캐시조작의요구에기초해서명령을발행하는방법및장치
JPS6237752A (ja) 別々の命令及びデ−タインタ−フエ−ス及びキヤツシユを持つたマイクロプロセサを有するマルチプルバスシステム
JPS61224051A (ja) バッファメモリ制御方法
JP4116346B2 (ja) 演算処理装置及びそのアドレス変換方法
US7546439B1 (en) System and method for managing copy-on-write faults and change-protection
JP4220258B2 (ja) ノンキャッシュ領域内高速メモリアクセス方法
JPH03271859A (ja) 情報処理装置
JPH0212358A (ja) データ転送方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120710

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120912

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121009

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121031

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5128093

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees