JP4021555B2 - バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え - Google Patents
バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え Download PDFInfo
- Publication number
- JP4021555B2 JP4021555B2 JP13977698A JP13977698A JP4021555B2 JP 4021555 B2 JP4021555 B2 JP 4021555B2 JP 13977698 A JP13977698 A JP 13977698A JP 13977698 A JP13977698 A JP 13977698A JP 4021555 B2 JP4021555 B2 JP 4021555B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- address
- virtual address
- cache
- aliased
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
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
【発明の属する技術分野】
本発明は、一般的には、キャッシュアドレスパスのハードウエア変更に関するものであり、より詳細には、仮想アドレスエイリアシングをサポートする方法および装置に関するものである。
【0002】
【従来の技術】
データ/命令キャッシュに対する仮想アドレッシングは、物理アドレッシング技法に比べて利点を有している。仮想アドレスを使用するソフトウエアは、リローケーションに関連して有利であり、特に、多重処理環境において有用である。さらに、ハードドライブの如きより大きなデータストアにデータ/命令をキュッシングすることにより、マシンに存在する物理メモリよりも大きなメモリを必要とするプログラムを実行することができる。
【0003】
しかしながら、典型的には、ハードウエアは、仮想アドレッシングをサポートするために待ち時間ペナルティを被る。ソフトウエアによって発生され中央処理装置(CPU)または入力/出力(I/O)装置から発せられる仮想アドレスは、先ず、翻訳バッファを使用して仮想アドレスを物理アドレスへと変換するメモリ管理装置(MMU)へと通されねばならない。それから、この物理アドレスは、物理的にアドレスされるキャッシュへと通される。しかしながら、これらのオペレータは、直列的であるため、すなわち、仮想−物理アドレス翻訳に続いて物理アドレッシングを行なうので、情報がキャッシュから戻されて受信されるまでに時間がかかり、また、所望の情報がキャッシュに存在しないようなキャッシュミスの決定前に時間がかかってしまう。
【0004】
仮想アドレッシングに通常伴うハードウエア待ち時間を除去するようにした、仮想キャッシュ、すなわち、仮想アドレッシングをサポートするキャッシュが開発されてきている。CPUからの仮想アドレスは、MMUおよび仮想キャッシュへ並列に通される。MMUは、キャッシュアドレッシングおよび物理アドレスのための許可/アクセスを与え、仮想キャッシュは、アドレスされた情報を返すか、または、キャッシュミスを返す。キャッシュミス状況においては、MMUの物理アドレスが使用される。
【0005】
仮想キャッシュで生ずる共通の問題点は、エイリアシング、すなわち、多重の仮想アドレスがメモリの同じ物理アドレスにマッピングされてしまうことである。このような場合には、ライトバックデータキャッシュに問題が生じ、主メモリへ戻されるまで、データが有効な場所のみがキャッシュにあるように、ソフトウエアがそのキャッシュのデータを更新する。仮想キャッシュにエイリアシングされた仮想アドレスが存在する場合には、互いにインコヒーレントである仮想キャッシュの部分が生じてしまう。データが戻されるとき、主メモリは、CPUによって元々キャッシュに対してなされた変化の部分のみを含みうる。
【0006】
ハードウエアは、どうしても仮想アドレスエイリアシングの問題に直面する。それは、付加的ハードウエアでサポートされるか、または、単に無効とされるか、すなわち、サポートされないかであり、これは、そのソフトウエア両立性を制限する。
【0007】
仮想アドレスエイリアシングに対するハードウエアサポートは、バックマップの形をとる。これは、キャッシュと並列なタグストアである。バックマップは、キャッシュミスに関して、アクセスされたブロックが既にキャッシュに存在するがエイリアシングされたアドレスの下にあるかを指示する。バックマップは、キャッシュミスについてのみ調べられるようにクリチカルパスの外にあるという点で利点がある。したがって、これらは、待ち時間を増大しない。しかしながら、各キャッシュロケーションに対して付加的なタグストアを設けねばならないという欠点がある。このために、多くのハードウエアシステムは、仮想アドレスエイリアシングのためにバックマップを設けていない。
【0008】
【発明の概要】
本発明は、プロセススロット粒度でキャッシュアドレスに対してハードウエア変更をすることに向けられている。このスケールでの仮想アドレスエイリアシングは、多重処理オペレーティングシステムにおいては普通である。本発明は、多重のエイリアシングされたアドレスのためのハードウエアサポートを提供するものであり、すなわち、CPUの観点から、アドレススペースにおいて同じ物理アドレスに対する多重仮想アドレスをサポートする。しかしながら、この変更は、待ち時間に実質的に影響を与えない。
【0009】
本発明は、広義においては、仮想キャッシュのためのアドレスを発生する方法および装置に関する。本発明は、オペレーティングシステムがアクティブプロセスの間でのエイリアシングの可能性を必要とするだけであるような状況において最も有用である。より詳細に述べると、本発明は、2つの仮想アドレスロケーションに現在のプロセスのみが存在することを必要とするシステムにおける同じ物理アドレスに対する多重仮想アドレスを効果的にサポートする。
【0010】
次の実施例に関する説明は、仮想アドレスエイリアシングをサポートする方法を特徴付けている。仮想キャッシュおよび/またはメモリ管理装置に対するアドレスは、先ず、インターセプトされ、そのアドレスがエイリアシングされているかの判断がなされ、すなわち、1つより多い仮想アドレスがメモリの同じロケーションに存在するかの判断がなされる。もし、エイリアシングされていな場合には、それらアドレスは、単に、仮想キャッシュおよび/またはメモリ管理装置へ通される。しかしながら、エイリアシングがある場合には、デエイリアシング(dealiasing)が行われる。新しいアドレスが発生され、仮想キャッシュおよび/またはメモリ管理装置へと通され、エイリアシングされているアドレスが仮想キャッシュの同じロケーションへと向けられるようにされる。このようにして、仮想アドレスエイリアシングを使用するオペレーティングシステムは、サポートされる。何故ならば、CPUは、透過的にエイリアシングされた仮想アドレスを発し得るからである。しかしながら、これらのアドレスは、仮想キャッシュにおける同じロケーションへ向けられ、それらアドレスは、キャッシュの観点からはエイリアシングされていないようになり、したがって、アドレススペースエイリアシングを補償するために他のハードウエアを必要としないようにすることができる。
【0011】
好ましい実施例では、アドレスは、仮想キャッシュおよびメモリ管理装置の両方へ通される。しかしながら、ここで認識すべきことは、他の状況においては、キャッシュまたはメモリ管理装置の個々に対するパスに関して本発明のデエリアザー(dealiaser)を実施するのが望ましいということである。
【0012】
他の実施例では、仮想キャッシュは、現在のプロセススロットとアクティブプロセススロットのうちの1つとの間でアドレスエイリアシングが存在する状態で、別々のアクティブプロセスに対応するプロセススロットへと分割される。現在のプロセススロットに対するアドレスは、エイリアシングされたアクティブプロセススロットにアクセスするためにリダイレクションされる。これは、現在のプロセススロットに対するアドレスを検出し、エイリアシングされたアクティブプロセススロットにアクセスするように変更することによって達成される。いくつかの実施例では、アドレスの高位ビットのみを変更するだけでよい。
【0013】
【発明の実施の形態】
次に、添付図面に基づいて、本発明の好ましい実施例について、本発明をより詳細に説明する。添付図面において、同様の参照符号は、同様の部分を示すものである。また、これら図面は、尺度において必ずしも同じでなく、むしろ、本発明の好ましい実施例を例示するために強調がなされている。
【0014】
あるいくつかのオペレーティングシステム、例えば、Windows TM CEが有名であるが、これらは、プロセス管理において仮想アドレスエイリアシングを使用している。Windows TM CEの特定の例のコンテキストにおいては、オペレーティングシステムは、仮想アドレススペースの下位の2つのギガバイト(GB)を64スロット0..63に分割している。最上位仮想アドレス(VA)ビットは、ユーザスペースとシステムスペースとの間で選択する。このビットは、ユーザスペースでクリアされる(VA<31>==0)。
【0015】
ユーザスペースにおける最初のスロット、すなわち、最上位7ビットが零に等しい(VA<31:25>==0)仮想アドレスによって指定されるスロット0は、現在実行されているプロセスに対するものである。スロット1から63(VA<31:25>==1..63)は、このシステムによってサポートされる63のアクティブプロセスを保持する。これらのプロセスの各々は、32メガバイト(MB)へ制限される。このコンフィギュレーションは、図1に例示されている。
【0016】
このような構成は、有用である。何故ならば、インタープロセスコミュニケーションを容易とするからである。これらプロセスは、次のようにアドレスを確立するだけで互いにアドレスする。
VA=procNum * 225+addressInProc
ここで、procNum =1.63であり、すなわち、他のアクティブプロセスのうちの1つおよびaddressInProc =0..1×1FFFFFF
【0017】
仮想アドレスエイリアシングが起きる。何故ならば、CPUで実行されている現在のプロセスまたはアクティブプロセスは、そのスロット、すなわち、1..63のうちの1つおよびスロット0の両方に対して仮想アドレススペースにてマップされる。図1の例では、スロット#4におけるプロセスは、現在のプロセスであり、したがって、スロット#0にて見出される。このようなオペレーティングシステムは、バックマッピングハードウエアを必要とするようなページレベルでの仮想アドレスエイリアシングを必要としていない。その代わりに、仮想アドレスエイリアシングは、サポートされたアプリケーションの間で、または、プロセススロットスケールで起きる。
【0018】
仮想アドレスデエリアザーの効果は、図2に例示されている。スロット1..63プロセスパスにおけるアクティブプロセスの任意の1つに対する仮想アドレスは、仮想キャッシュを通して不変である。しかしながら、スロット0における現在のプロセスに対するどのアドレスもハードウエアにおて、スロット1から63におけるプロセスのうちの現在の1つへと、すなわち、例示した例におけるスロット#4におけるプロセスへとリダイレクションされる。
【0019】
効果において、データおよび命令アドレスパスに対して次のようなフィクスアップ(fix-up)がなされる。
ここで、va=CPUからのアドレス
va′=仮想アドレスデエリアザーからのMMUおよび仮想キャッシュへ送られた仮想アドレスであり、CPRは、現在のプロセスの番号(1..63)を保持する付加レジスタである。
【0020】
図3は、本発明を使用したマイクロプロセッサ10の構成を例示している。好ましい実施例では、プロセッサは、StrongARM 1100型プロセッサである。一般的には、レジスタファイル12は、読取りポートRNおよびRMを介して、データを演算論理装置(ALU)および乗算器(Mul)14へ供給する。シフタ13が、読取りポートRMに配置されており、シフトコントローラ36およびレジスタファイルポートRSによって制御される。読取りポートRMは、また、PCマルチプレクサ15によって、新しいプログラムカウンタのためのソースとして選択されうる。他のプログラムソースが示されている。アドフォアインクレメンター(add-four incrementer) 16が使用され、または、ALU14のレッグまたはブランチ命令のための前のPCからの出力をシフトする変位マルチプレクサ18が使用されうる。
【0021】
PCマルチプレクサ15からの命令は、これらの成分の観点からエイリアシングを除去するために、命令キャッシュ20および命令メモリ管理装置22の前に本発明の仮想アドレスデエリアザー100に通される。結果として、MMU22における仮想キャッシュ20または翻訳バッファは、エイリアシングされたアドレスを有さず、したがって、エイリアシングをサポートするための適当なハードウエアを必要としない。
【0022】
データ側で、データ仮想キャッシュ24およびデータMMU26に対するロード/ストアアドレスLD/STのソースは、LD/STマルチプレクサ28である。これは、3つの入力から、すなわち、レジスタファイル12からの読取りポートRN、ALU14からの出力、または、バイトアドレスキャッシュ24における次の32ビットアドレスを選択するアドレスインクレメントー30を選択する。仮想キャッシュからのアドレスされたデータは、レジスタファイル12のロードバスLbusへ通される。
【0023】
第2のデータデエリアザー100が、データアドレスをデエイリアシングするために仮想データキャッシュ24およびデータMMU26へのアドレスをインターセプトするように配置される。
【0024】
図4は、命令またはデータ仮想キャッシュおよびMMUのうちのどちらか、または両方のためのデエリアザー100の1つのハードウエア実施を示している。32ビット仮想アドレスVA<31:0>が、ALUまたは他のソースからデエリアザー100で受け取られる。その仮想アドレスの上位7ビットの値は、ロジック110において0と比較される。ロジック110は、例えば、7入力NORゲートとして実施されうる。このロジック110の出力は、マルチプレクサ112のための選択ビットとして使用される。もし、仮想アドレスVAがスロット0において現在のプロセスに対するものでない場合には、その仮想アドレスは、デエリアザーを通して不変のままVA′としてMMUおよび仮想キャッシュの両方へ通される。何故ならば、マルチプレクサ112は、そのsel =0入力でVAを通すからである。しかしながら、もし、アドレスがスロット0において現在のプロセスのためのものである場合には、その仮想アドレスの下位25ビットは、デエリアザー100のマルチプレクサ112に通される。上位7ビットは、1..63アクティブプロセススロットの中で現在のプロセスのスロットアドレスへと変えられる。これらの7ビットの値は、現在プロセスレジスタ(CPR)114に保持される。これにより、仮想キャッシュは、レンジ0..0×1FFFFFFにおけるアドレスに対するすべての基準を知り、CPR * 225 +0..+0×1FFFFFFに対する同様の基準をルックさせられる。このようなフィクスアップにより、仮想キャッシュの観点から仮想エイリアシングを避けつつ、現在のプロセスもスロット#0にあるとの仮定の下でのCPUのファンクションを行えるようにすることができる。このようにして、本発明は、バックマップを付加したり、各コンテキストスイッチ毎にキャッシュをフラッシュする必要なしに、制限された仮想アドレスエイリアシングをサポートする。
【0025】
好ましい実施例について本発明を特に説明してきたのであるが、当業者には、本発明の範囲から逸脱することなく、それら実施例について種々な変更をなすことができるものであることは、理解されよう。
【図面の簡単な説明】
【図1】プロセススロットスケール仮想アドレスエイリアシングを必要とするオペレーティングのための仮想アドレスマップを示す図である。
【図2】制限されたエイリアシングをサポートするため本発明の一実施例によって行われる仮想アドレス翻訳を例示するアドレスマップを示す図である。
【図3】マイクロプロセッサの内部アーキテクチャおよび本発明のデエリアザーの好ましい実施例の関係を例示するブロック図である。
【図4】本発明の好ましい実施例の一つのハドウエア実施例を示す図である。
【符号の説明】
10 マイクロプロセッサ
12 レジスタファイル
13 シフタ
14 演算論理装置および乗算器
15 PCマルチプレクサ
16 アドフォアインクレメンター
18 変位マルチプレクサ
20 命令キャッシュ
22 命令メモリ管理装置
24 データ仮想キャッシュ
26 データMMU
28 LD/STマルチプレクサ
30 アドレスインクレメンター
36 シフトコントローラ
100 データデエリアザー
110 ロジック
112 マルチプレクサ
114 現在プロセスレジスタ
Claims (15)
- オペレーティングシステムで動いている複数のアクティブプロセススロットの一つに対する仮想アドレスが現在のプロセススロットへエイリアシングされるシステムにおいて仮想アドレスエイリアシングをサポートする方法において、
仮想キャッシュまたはメモリ管理装置に対する仮想アドレスをインターセプトし、
前記の仮想アドレスがエイリアシングされているかどうかを決定し、
もしそれら仮想アドレスがエイリアシングされていなければ、前記の仮想キャッシュまたはメモリ管理装置へ前記の仮想アドレスを通し、そして
もし仮想アドレスがエイリアシングされていれば、前記のインターセプトされた仮想アドレスから新しい仮想アドレスを形成し、この新しい仮想アドレスを前記の仮想キャッシュまたはメモリ管理装置へ通す
ことを特徴とする方法。 - 前記オペレーティングシステムは、仮想アドレス空間を、別々のアクティブプロセスに対応する複数のプロセススロットに分割するものであり、ここで、アドレスのエイリアシングが現在のプロセススロットと前記アクティブプロセススロットの内の1つの間に存在していることを特徴とする請求項1に記載の方法。
- 前記現在のプロセススロットへのアドレスは、前記現在のプロセススロットへのアドレスを検出し、それを前記エイリアシングされたアクティブプロセスにアクセスするように変更することによって、前記エイリアシングされたアクティブプロセススロットにアクセスするためにリダイレクションされる請求項2に記載の方法。
- アクティブプロセスのうちの現在のアクティブプロセスに対する仮想アドレスをエイリアシングすることを更に含む請求項3に記載の方法。
- 現在のプロセスに対するアドレスエイリアシングをせずに、仮想キャッシュまたはメモリ管理装置がアドレスされるように、新しいアドレスを形成することを更に含む請求項4に記載の方法。
- 前記プロセスの内の一つをアクティブプロセスになるように割り当て、
CPUで実行されている前記アクティブプロセスを仮想アドレススペースでそれのスロットと付加的なスロットの両方にマップすることを更に含む請求項2に記載の方法。 - 新しいアドレスを形成するステップは、
現在のプロセススロットに対する仮想アドレスを検出し、そして
そのアドレスを変更して、アクティブプロセスのうちの現在のアクティブプロセスを保持する仮想キャッシュのセクションに対する新しいアドレスを発生する
ことを含む請求項6記載の方法。 - 仮想アドレスを変更するステップは、仮想アドレスの高位ビットをアクティブプロセスのうちの現在のアクティブプロセスのアドレスへと変えることを含む請求項7に記載の方法。
- オペレーティングシステムで動いている複数のアクティブプロセススロットの一つからの仮想アドレスからエイリアシングが除去されるシステムにおいて仮想アドレスデエイリアシングをサポートする仮想アドレスデエイリアサーを含むシステムにおいて、
仮想キャッシュまたはメモリ管理装置への仮想アドレスをインターセプトし、そして仮想アドレスがエイリアシングされているかどうかを決定する比較ロジックと、
もし仮想アドレスがエイリアシングされていないと前記の比較ロジックが決定すると、仮想アドレスを仮想キャッシュまたはメモリ管理装置へと通し、そしてもし仮想アドレスがエイリアシングされていると前記のインターセプトされた仮想アドレスから新しいアドレスを形成してその新しいアドレスを仮想キャッシュまたはメモリ管理装置へ通す選択ロジックと
を備えることを特徴とするシステム。 - 比較ロジックは、仮想アドレスが現在のプロセスを保持するだけであるアドレススペースのセクションに対するものであるかどうかを決定する請求項9に記載のシステム。
- 選択ロジックは、比較ロジックが現在のプロセスのセクションに対する仮想アドレスを検出するときに、現在のプロセスを保持しているアドレススペースの別のセクションに対応する新しい仮想アドレスを発生する請求項10に記載のシステム。
- アクティブプロセスのうちの現在のアクティブプロセスを記憶する現在プロセスレジスタを更に備えている請求項9に記載のシステム。
- 選択ロジックは、現在プロセスレジスタの内容を新しい仮想アドレスの高位ビットとして通す請求項12に記載のシステム。
- オペレーティングシステムで動いている複数のアクティブプロセススロットの一つに対する仮想アドレスが現在のプロセススロットへエイリアシングされるシステムにおいて仮想アドレスエイリアシングをサポートする方法において、
仮想キャッシュとメモリ管理装置に対する仮想アドレスをインターセプトし、
前記の仮想アドレスがエイリアシングされているかどうかを決定し、
もしそれら仮想アドレスがエイリアシングされていなければ、前記の仮想キャッシュとメモリ管理装置へ前記の仮想アドレスを通し、そして
もし仮想アドレスがエイリアシングされていれば、前記のインターセプトされた仮想アドレスから新しい仮想アドレスを形成し、この新しい仮想アドレスを前記の仮想キャッシュとメモリ管理装置へ通す
ことを特徴とする方法。 - オペレーティングシステムで動いている複数のアクティブプロセススロットの一つからの仮想アドレスからエイリアシングが除去されるシステムにおいて仮想アドレスデエイリアシングをサポートする仮想アドレスデエイリアサーを含むシステムにおいて、
仮想キャッシュとメモリ管理装置への仮想アドレスをインターセプトし、そして仮想アドレスがエイリアシングされているかどうかを決定する比較ロジックと、
もし仮想アドレスがエイリアシングされていないと前記の比較ロジックが決定すると、仮想アドレスを仮想キャッシュとメモリ管理装置へと通し、そしてもし仮想アドレスがエイリアシングされていると前記のインターセプトされた仮想アドレスから新しいアドレスを形成してその新しいアドレスを仮想キャッシュとメモリ管理装置へ通す選択ロジックとを備えることを特徴とするシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/863084 | 1997-05-23 | ||
US08/863,084 US6061774A (en) | 1997-05-23 | 1997-05-23 | Limited virtual address aliasing and fast context switching with multi-set virtual cache without backmaps |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1124992A JPH1124992A (ja) | 1999-01-29 |
JP4021555B2 true JP4021555B2 (ja) | 2007-12-12 |
Family
ID=25340200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13977698A Expired - Fee Related JP4021555B2 (ja) | 1997-05-23 | 1998-05-21 | バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え |
Country Status (3)
Country | Link |
---|---|
US (1) | US6061774A (ja) |
EP (1) | EP0880098A3 (ja) |
JP (1) | JP4021555B2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671762B1 (en) * | 1997-12-29 | 2003-12-30 | Stmicroelectronics, Inc. | System and method of saving and restoring registers in a data processing system |
US6167459A (en) * | 1998-10-07 | 2000-12-26 | International Business Machines Corporation | System for reassigning alias addresses to an input/output device |
US6560690B2 (en) | 2000-12-29 | 2003-05-06 | Intel Corporation | System and method for employing a global bit for page sharing in a linear-addressed cache |
GB2372589B (en) * | 2001-02-21 | 2003-01-22 | 3Com Corp | Memory aliasing in a processor system |
US20040117589A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corp. | Interrupt mechanism for a data processing system having hardware managed paging of disk data |
US20050055528A1 (en) * | 2002-12-12 | 2005-03-10 | International Business Machines Corporation | Data processing system having a physically addressed cache of disk memory |
US20040117583A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corporation | Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme |
US7017024B2 (en) * | 2002-12-12 | 2006-03-21 | International Business Machines Corporation | Data processing system having no system memory |
US20040117587A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corp. | Hardware managed virtual-to-physical address translation mechanism |
US20040117590A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corp. | Aliasing support for a data processing system having no system memory |
US20040117588A1 (en) * | 2002-12-12 | 2004-06-17 | International Business Machines Corporation | Access request for a data processing system having no system memory |
US7096341B1 (en) * | 2003-12-17 | 2006-08-22 | Storage Technology Corporation | System and method for reference count regeneration |
US7130983B1 (en) * | 2003-12-17 | 2006-10-31 | Storage Technology Corporation | System and method for reference count regeneration |
US7519791B2 (en) * | 2004-02-06 | 2009-04-14 | Intel Corporation | Address conversion technique in a context switching environment |
US7240179B1 (en) * | 2004-12-13 | 2007-07-03 | Nvidia Corporation | System, apparatus and method for reclaiming memory holes in memory composed of arbitrarily-sized memory devices |
US8473964B2 (en) | 2008-09-30 | 2013-06-25 | Microsoft Corporation | Transparent user mode scheduling on traditional threading systems |
US9996390B2 (en) | 2014-06-10 | 2018-06-12 | Samsung Electronics Co., Ltd. | Method and system for performing adaptive context switching |
US9842051B1 (en) * | 2015-03-25 | 2017-12-12 | Marvell International Ltd. | Managing aliasing in a virtually indexed physically tagged cache |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4400770A (en) * | 1980-11-10 | 1983-08-23 | International Business Machines Corporation | Cache synonym detection and handling means |
US4488256A (en) * | 1981-11-23 | 1984-12-11 | Motorola, Inc. | Memory management unit having means for detecting and preventing mapping conflicts |
US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
US5826057A (en) * | 1992-01-16 | 1998-10-20 | Kabushiki Kaisha Toshiba | Method for managing virtual address space at improved space utilization efficiency |
US5287508A (en) * | 1992-04-07 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for efficient scheduling in a multiprocessor system |
US5680577A (en) * | 1995-04-27 | 1997-10-21 | International Business Machines Corporation | Method and system for processing multiple requests for data residing at the same memory address |
US5787474A (en) * | 1995-11-20 | 1998-07-28 | Advanced Micro Devices, Inc. | Dependency checking structure for a pair of caches which are accessed from different pipeline stages of an instruction processing pipeline |
US5802567A (en) * | 1996-10-31 | 1998-09-01 | International Business Machines Corporation | Mechanism for managing offset and aliasing conditions within a content-addressable memory-based cache memory |
-
1997
- 1997-05-23 US US08/863,084 patent/US6061774A/en not_active Expired - Lifetime
-
1998
- 1998-05-08 EP EP98108447A patent/EP0880098A3/en not_active Withdrawn
- 1998-05-21 JP JP13977698A patent/JP4021555B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1124992A (ja) | 1999-01-29 |
US6061774A (en) | 2000-05-09 |
EP0880098A3 (en) | 2000-12-20 |
EP0880098A2 (en) | 1998-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4021555B2 (ja) | バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え | |
US10740249B2 (en) | Maintaining processor resources during architectural events | |
EP0797149B1 (en) | Architecture and method for sharing tlb entries | |
US7073044B2 (en) | Method and apparatus for sharing TLB entries | |
EP1096385B1 (en) | A method and apparatus for forming an entry address | |
US7197585B2 (en) | Method and apparatus for managing the execution of a broadcast instruction on a guest processor | |
US6604187B1 (en) | Providing global translations with address space numbers | |
US5475827A (en) | Dynamic look-aside table for multiple size pages | |
US6742104B2 (en) | Master/slave processing system with shared translation lookaside buffer | |
US6012132A (en) | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table | |
US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
US6738889B2 (en) | Apparatus and method for providing simultaneous local and global addressing with hardware address translation | |
JPH04232551A (ja) | 多重仮想アドレス変換方法及び装置 | |
US6742103B2 (en) | Processing system with shared translation lookaside buffer | |
US5187791A (en) | Microprocessor with improved interrupt response with data saving dependent upon processor status using status flag | |
US6606697B1 (en) | Information processing apparatus and memory control method | |
US7552254B1 (en) | Associating address space identifiers with active contexts | |
KR100308675B1 (ko) | 캐쉬어드레스발생방법 | |
US20020156989A1 (en) | Method for sharing a translation lookaside buffer between CPUs | |
US20050273572A1 (en) | Address translator and address translation method | |
US6338128B1 (en) | System and method for invalidating an entry in a translation unit | |
Smith | Design of CPU cache memories | |
US6766435B1 (en) | Processor with a general register set that includes address translation registers | |
EP1262875A1 (en) | Master/slave processing system with shared translation lookaside buffer | |
EP1262876B1 (en) | Multiprocessing system with shared translation lookaside buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050517 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070416 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070717 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20070717 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070814 |
|
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: 20070910 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070927 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |