JP4021555B2 - バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え - Google Patents

バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え Download PDF

Info

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
Application number
JP13977698A
Other languages
English (en)
Other versions
JPH1124992A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH1124992A publication Critical patent/JPH1124992A/ja
Application granted granted Critical
Publication of JP4021555B2 publication Critical patent/JP4021555B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address 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

【0001】
【発明の属する技術分野】
本発明は、一般的には、キャッシュアドレスパスのハードウエア変更に関するものであり、より詳細には、仮想アドレスエイリアシングをサポートする方法および装置に関するものである。
【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 * 25+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)がなされる。
Figure 0004021555
ここで、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. オペレーティングシステムで動いている複数のアクティブプロセススロットの一つに対する仮想アドレスが現在のプロセススロットへエイリアシングされるシステムにおいて仮想アドレスエイリアシングをサポートする方法において、
    仮想キャッシュまたはメモリ管理装置に対する仮想アドレスをインターセプトし、
    前記の仮想アドレスがエイリシングされているかどうかを決定し、
    もしそれら仮想アドレスがエイリアシングされていなければ、前記の仮想キャッシュまたはメモリ管理装置へ前記の仮想アドレスを通し、そして
    もし仮想アドレスがエイリアシングされていれば、前記のインターセプトされた仮想アドレスから新しい仮想アドレスを形成し、この新しい仮想アドレスを前記の仮想キャッシュまたはメモリ管理装置へ通す
    ことを特徴とする方法。
  2. 前記オペレーティングシステムは、仮想アドレス空間を、別々のアクティブプロセスに対応する複数のプロセススロットに分割するものであり、ここで、アドレスのエイリアシングが現在のプロセススロットと前記アクティブプロセススロットの内の1つの間に存在していることを特徴とする請求項1に記載の方法。
  3. 前記現在のプロセススロットへのアドレスは、前記現在のプロセススロットへのアドレスを検出し、それを前記エイリアシングされたアクティブプロセスにアクセスするように変更することによって、前記エイリアシングされたアクティブプロセススロットにアクセスするためにリダイレクションされる請求項2に記載の方法。
  4. アクティブプロセスのうちの現在のアクティブプロセスに対する仮想アドレスをエイリアシングすることを更に含む請求項3に記載の方法。
  5. 現在のプロセスに対するアドレスエイリアシングをせずに、仮想キャッシュまたはメモリ管理装置がアドレスされるように、新しいアドレスを形成することを更に含む請求項4に記載の方法。
  6. 前記プロセスの内の一つをアクティブプロセスになるように割り当て、
    CPUで実行されている前記アクティブプロセスを仮想アドレススペースでそれのスロットと付加的なスロットの両方にマップすることを更に含む請求項2に記載の方法。
  7. 新しいアドレスを形成するステップは、
    現在のプロセススロットに対する仮想アドレスを検出し、そして
    そのアドレスを変更して、アクティブプロセスのうちの現在のアクティブプロセスを保持する仮想キャッシュのセクションに対する新しいアドレスを発生する
    ことを含む請求項6記載の方法。
  8. 仮想アドレスを変更するステップは、仮想アドレスの高位ビットをアクティブプロセスのうちの現在のアクティブプロセスのアドレスへと変えることを含む請求項7に記載の方法。
  9. オペレーティングシステムで動いている複数のアクティブプロセススロットの一つからの仮想アドレスからエイリアシングが除去されるシステムにおいて仮想アドレスデエイリアシングをサポートする仮想アドレスデエイリアサーを含むシステムにおいて、
    仮想キャッシュまたはメモリ管理装置への仮想アドレスをインターセプトし、そして仮想アドレスがエイリアシングされているかどうかを決定する比較ロジックと、
    もし仮想アドレスがエイリアシングされていないと前記の比較ロジックが決定すると、仮想アドレスを仮想キャッシュまたはメモリ管理装置へと通し、そしてもし仮想アドレスがエイリアシングされていると前記のインターセプトされた仮想アドレスから新しいアドレスを形成してその新しいアドレスを仮想キャッシュまたはメモリ管理装置へ通す選択ロジックと
    を備えることを特徴とするシステム。
  10. 比較ロジックは、仮想アドレスが現在のプロセスを保持するだけであるアドレススペースのセクションに対するものであるかどうかを決定する請求項9に記載のシステム
  11. 選択ロジックは、比較ロジックが現在のプロセスのセクションに対する仮想アドレスを検出するときに、現在のプロセスを保持してるアドレススペースの別のセクションに対応する新しい仮想アドレスを発生する請求項10に記載のシステム
  12. アクティブプロセスのうちの現在のアクティブプロセスを記憶する現在プロセスレジスタを更に備えている請求項9に記載のシステム
  13. 選択ロジックは、現在プロセスレジスタの内容を新しい仮想アドレスの高位ビットとして通す請求項12に記載のシステム
  14. オペレーティングシステムで動いている複数のアクティブプロセススロットの一つに対する仮想アドレスが現在のプロセススロットへエイリアシングされるシステムにおいて仮想アドレスエイリアシングをサポートする方法において、
    仮想キャッシュとメモリ管理装置に対する仮想アドレスをインターセプトし、
    前記の仮想アドレスがエイリシングされているかどうかを決定し、
    もしそれら仮想アドレスがエイリアシングされていなければ、前記の仮想キャッシュとメモリ管理装置へ前記の仮想アドレスを通し、そして
    もし仮想アドレスがエイリアシングされていれば、前記のインターセプトされた仮想アドレスから新しい仮想アドレスを形成し、この新しい仮想アドレスを前記の仮想キャッシュメモリ管理装置へ通す
    ことを特徴とする方法。
  15. オペレーティングシステムで動いている複数のアクティブプロセススロットの一つからの仮想アドレスからエイリアシングが除去されるシステムにおいて仮想アドレスデエイリアシングをサポートする仮想アドレスデエイリアサーを含むシステムにおいて、
    仮想キャッシュとメモリ管理装置への仮想アドレスをインターセプトし、そして仮想アドレスがエイリアシングされているかどうかを決定する比較ロジックと、
    もし仮想アドレスがエイリアシングされていないと前記の比較ロジックが決定すると、仮想アドレスを仮想キャッシュとメモリ管理装置へと通し、そしてもし仮想アドレスがエイリアシングされていると前記のインターセプトされた仮想アドレスから新しいアドレスを形成してその新しいアドレスを仮想キャッシュとメモリ管理装置へ通す選択ロジックとを備えることを特徴とするシステム。
JP13977698A 1997-05-23 1998-05-21 バックマップを有しないマルチセット仮想キャッシュでの制限された仮想アドレスエイリアシングおよび高速コンテキスト切換え Expired - Fee Related JP4021555B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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