JP2013065325A - アドレス変換方法及び装置 - Google Patents

アドレス変換方法及び装置 Download PDF

Info

Publication number
JP2013065325A
JP2013065325A JP2012247186A JP2012247186A JP2013065325A JP 2013065325 A JP2013065325 A JP 2013065325A JP 2012247186 A JP2012247186 A JP 2012247186A JP 2012247186 A JP2012247186 A JP 2012247186A JP 2013065325 A JP2013065325 A JP 2013065325A
Authority
JP
Japan
Prior art keywords
memory
address
page
physical address
translation
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.)
Granted
Application number
JP2012247186A
Other languages
English (en)
Other versions
JP5373173B2 (ja
Inventor
Joseph Kopec Brian
ブライアン・ジョセフ・コペック
Victor Roberts Augsburg
ビクター・ロバーツ・オーグスバーグ
Norris Diefenderfer James
ジェームズ・ノリス・ディーフェンダーファー
Andrew Sartorius Thomas
トマス・アンドリュー・サートリウス
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013065325A publication Critical patent/JP2013065325A/ja
Application granted granted Critical
Publication of JP5373173B2 publication Critical patent/JP5373173B2/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
    • 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/04Addressing variable-length words or parts of words
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same page detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

【課題】メモリの中の異なるページの間の境界クロシングの原因となるアドレスを識別し、プロセッサ内でのアドレス変換性能を改善する。
【解決手段】プロセッサは、第1及び第2のメモリページの間のページ境界をクロスするメモリ領域へのアクセスを認識するように構成される回路を備える。回路は、また、第1及び第2のメモリページと関連するアドレス変換情報をリンクするように構成される。このように、同一のメモリ領域へのその後のアクセスに応答して、第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索可能である。
【選択図】図4

Description

本発明は、一般にアドレス変換に関し、特にメモリページの境界クロシング条件(boundary crossing conditions)を生成する仮想アドレスを変換することに関する。
仮想メモリは、メモリ管理技術である。それによって、ことによると、非連続的な物理メモリ(物理アドレス空間)は、連続的なメモリ(仮想アドレス空間)としてプロセス(ソフトウェア)に提示される。割り当てられた物理メモリは常に連続的に組織されていないけれども(例えばSDRAM及びROMのような同一のメディアの中でさえも)、連続的な仮想アドレス空間を処理するので、プロセスは線形シーケンスとしてメモリを見る。更に、プログラムは、通常、物理メモリがどのように割り当てられているかに気づいていない。その代わりとして、プロセッサまたは他の装置は、慣習的に、仮想メモリ割り当てを管理する。
メモリ管理は、物理的なメモリを複数のページ(またはセグメント)に分割して、メモリにアクセスするプロセスに透過的である現実の物理メモリページ上への仮想アドレスのマッピングを提供する。物理アドレス空間が対応するデータがメモリの中に現実に存する場所である間、プロセスは、仮想アドレス空間だけを見る。プロセッサは、慣習的に、アドレス変換を用いて物理アドレス空間上に仮想アドレス空間をマップする。アドレス変換は、与えられた仮想アドレスに基づいて物理アドレスを探索することを伴う。仮想アドレスは、慣習的に、少なくとも2つの部分、仮想ページ番号とページオフセットとに分割される。仮想ページ番号は、仮想メモリの特定のページを識別する。ページオフセットは、そのページの範囲内で望ましい領域(またはブロック)を識別する。
メインメモリの中で保持されたページテーブルは、慣習的に、仮想ページ番号及び対応する物理ページ番号のリストを格納する。ページテーブルは、仮想アドレスの仮想ページ番号部分を用いて探索される。もし、仮想ページ番号がページテーブルの中のエントリと一致するならば、対応する物理ページ番号がそのテーブルから検索される。さもなければ、ページテーブルエラーが発生する。検索された物理ページ番号は、ページオフセットと一緒に、メモリから情報を検索するために用いられる物理アドレスを形成する。ページ番号は、物理メモリの適切なページを識別する。そのページの範囲内で望ましいメモリ領域は、その時、ページオフセットを用いてアクセスされる。
性能を改善するために、しばしばアクセスされたページテーブルエントリは、プロセッサ、例えば変換索引バッファ(TLB)に局所的に格納される。TLBは、ローカルキャッシュメモリのたった1つのレベルまたは多数のキャッシュレベル、例えば1次命令及びデータキャッシュ及び2次キャッシュを支援する。いずれにしても、TLBは、ページテーブルがするのと同様の同じ方法でアドレス変換を実行する。TLBが仮想ページ番号を用いて探索している間に一致が生じた場合、対応する物理ページ番号がTLBから検索されて、物理的にタグ付きのキャッシュに、ページオフセットと共に提供される。物理アドレスがキャッシュの中でヒットした場合、その物理アドレスに対応するキャッシュライン(cache line)がそのキャッシュから検索される。別な方法では、より高いレベルのキャッシュ探索が発生する可能性がある。
仮想メモリは、全体のアドレスを物理メモリの中に常駐させる必要なくプログラムを実行することを可能にさせる。このように、プログラムは、現実に必要とされるより少ない物理メモリを用いて実行されることができる。更に、プログラムの仮想アドレス空間の各々はそのプログラムに排他的に割り当てられた物理メモリの1または複数のページに独立してマップされることができるので、仮想メモリは、複数のプログラムを互いに切り離す。また、アプリケーションプログラムは、メモリ管理に対して責任がないという点で簡単にされる。しかしながら、あるタイプのメモリアクセスは、首尾よく完了するために付加的なアドレス変換処理を必要とする。
例えば、整列されていないメモリアクセスが発生するとき、望ましい語が、1つのメモリ行の一部分及び他の一部分に位置される。2つの行が異なるメモリページに割り当てられている場合、ページ境界クロシング(page boundary crossing)が発生する。2つのメモリページの間の境界をクロスするメモリの中の領域を参照する命令は、慣習的に、複製されて、2つのパーツ(parts)において実行される。複製された命令の第1のページピース(first page piece)は、第1のメモリページと関連する物理アドレスに基づいて実行を完了し、複製された命令の第2のページピース(second page piece)は、第2のメモリページと関連するアドレスに基づいて実行を完了する。このように、異なるメモリページは、命令を複製することによって別々にアクセスされる。
多数のアドレス変換は、異なるメモリページと関連する物理メモリアドレスを得るために、慣習的に必要とされる。第1のアドレス変換は、第1のメモリページと関連する物理アドレスを検索するために実行され、第2のアドレス変換は、第2のメモリページと関連する物理アドレスを検索するために実行される。境界クロシング条件(boundary crossing condition)を生成する命令のために必要とされる付加的なアドレス変換処理は、特にメインメモリに保持されているページテーブルへのアクセスが必要とされる場合に、プロセッサ性能を低下させ、電力消費を増加させる。
ここに教示される装置及び方法によれば、プロセッサ内でのアドレス変換性能は、メモリの中の異なるページ間における境界クロシングが発生する物理または仮想アドレスを識別することによって改善される。すなわち、ページ境界をクロスもする非整列メモリアクセスを発生する場合、命令が識別される。このような条件が認識されると、両方のメモリページと関連するアドレス変換情報は、一緒にリンクされて、プロセッサの中に格納される。両方のページと関連するアドレス変換情報は、続いてアクセスされるメモリの中の同一のページクロシング(page-crossing)領域に反応する1つのアドレス変換を用いて得られることができる。このように、多数のアドレス変換は、避けられる。
プロセッサの1つの態様によれば、プロセッサは、第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域へのアクセスを認識するように構成された回路を備える。その回路は、また、第1及び第2のメモリページと関連するアドレス変換情報をリンクするように構成される。このように、同一のメモリ領域へのその後のアクセスに対して応答して、第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索されることが可能となる。
メモリの中の同一の領域が続いてアクセスされると、プロセッサ回路は、対応する命令を認識し、その命令によって提示される仮想アドレスを第1のメモリページと関連する物理的なアドレスに変換する。回路は、仮想アドレスを第2のメモリページと関連する物理アドレスとリンクしている予め設定された情報に基づいて、第2のメモリページと関連する物理アドレスを検索する。このように、第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索される。
もちろん、本発明は、上述の特徴及び長所に限られない。当業者は、以下の詳細な説明を読み、その伴う図面を見ることで、付加的な特徴及び長所を認識するであろう。
図1は、アドレス変換の間のページ境界クロシングをトラッキングするための回路を有するプロセッサの1つの態様を説明するブロック図。 図2は、図1のページクロシングトラッキング回路の1つの態様を説明するブロック図。 図3は、図1のページクロシングトラッキング回路の中のアドレス変換情報を格納するためのプログラム論理の1つの態様を説明する論理フロー図。 図4は、図1のページクロシングトラッキング回路からアドレス変換情報を検索するためのプログラム論理の1つの態様を説明する論理フロー図。 図5は、図1のページクロシングトラッキング回路の他の態様を説明するブロック図。
図1は、命令ユニット12、実行ユニット14、データ及び命令キャッシュ16及び18、2次キャッシュ20及びバスインタフェースユニット22を含むプロセッサ10の1つの態様を説明する。命令ユニット12は、実行ユニット14に命令フロー(instruction flow)の集中制御を提供する。実行ユニット14は、データキャッシュ16の中においてロード及び格納されている情報を含む、命令ユニット12によってディスパッチされた命令を実行する。データ及び命令キャッシュ16及び18は、それぞれ、データ及び命令を格納する。L2キャッシュ20は、DRAM24及び/または1つまたは1つ以上のハードディスクドライブ(HDD)26のようなプロセッサの外にあるメインメモリ及びデータ及び命令キャッシュ16及び18の間の高速メモリバッファを提供する。バスインタフェースユニット22は、メインメモリ及び周辺装置28のようなプロセッサの外にある装置及びプロセッサ10の間で、データ、命令、アドレス及び制御信号を転送するための仕組みを提供する。
メインメモリは、プロセッサ10上で実行するプロセスに対して仮想メモリとして表される。すなわち、メインメモリのページは、プログラム実行の間のプロセスによる使用のための仮想メモリとして割り当てられる。メモリ管理は、物理メモリをページに分割し、メモリにアクセスするプロセスに透過的である物理メモリページ上への仮想アドレスのマッピングを提供する。ページテーブル(図示せず)は、仮想及び物理メモリアドレス間のマッピングを可能にするためにメインメモリの中に保持される。メモリ管理ユニット(MMU)30またはプロセッサ10の中に含まれる類似した装置は、アドレス変換性能を改善するために、度々または最近参照されたプロセッサ10にローカルなページテーブルエントリを保持する。
この結果、MMU30と関連する、または含まれる変換索引バッファ(TLB:Translation Lookaside Buffer)32は、最も度々または最近アクセスされたページテーブルエントリを格納する。アドレス変換は、TLB32によってプロセッサ10内で局所的に実行される。与えられた仮想ページ番号とTLBエントリが一致する場合、対応する物理ページ番号はTLB32によって提供される。さもなければ、より高いレベルのアドレス変換が、通常は、メインメモリに保持されているページテーブルを介してオペレーティングシステムソフトウェアによって、実行される。MMU30と関連する、または含まれるページクロシングトラッカー(page crossing tracker)34は、メモリページ境界をクロスする整列されていないメモリアクセスを収容するために実行されたアドレス変換の数を減らすことによってアドレス変換性能を改善する。
ページクロシングトラッカー34は、ページ境界クロシング条件(page boundary crossing condition)を生成する1つまたは複数の仮想または物理アドレスと関連するアドレス変換情報を格納する。すなわち、プロセッサ10によって実行された命令が2つの物理メモリページの間の境界をクロスするメモリ領域を参照する場合、ページクロシングトラッカー34は、第2のメモリページ、例えば第2のメモリページ及び仮想アドレスとのリンクを識別するページ番号または物理アドレスと関連するアドレス変換情報を格納する。このように、その後の命令が同一のアドレスを参照する場合、ページクロシングトラッカー34は、そのアドレスを認識し、対応する物理アドレス情報を提供することが可能となる。したがって、TLB32は、第1のメモリページと関連する物理ページ番号を検索するためにただ1つのアドレス変換を実行する。第2のメモリページと関連する物理ページ番号は、ページクロシングトラッカー34からノントランスレイショナリ(non-translationally)に検索される。すなわち、第2のメモリページと関連する物理ページ番号は、第2のアドレス変換を実行しなければならないことの代わりに、ページクロシングトラッカー34から検索される。その命令は、複製されて、それぞれの物理アドレスに基づいて2つのパーツにおいて実行される。その命令がいくつかのキャッシュラインにキャッシュ16、18及び22の1つにおいてクロスさせられる場合、その命令は、複数回、複製され得る。
図2は、プロセッサ10に含まれるロード−ストアユニット(すなわち、実行ユニット14の1つ)のいくつかのステージ及びページクロシングトラッカー34の1つの態様を説明する。この態様によれば、ページクロシングトラッカー34は、ページ境界クロシング条件(page boundary crossing condition)を生成するアドレスと関連するアドレス変換情報を格納するためのレジスタを備える。代わりに、ページクロシングトラッカー34は、複数のエントリを持つテーブルであっても構わない。どちらにしても、ページクロシングトラッカー34は、ページ境界クロシング(page boundary crossing)の原因となる少なくとも1つの仮想または物理アドレスと関連するアドレス変換情報を格納することによってアドレス変換処理を減らす。
ページクロシングトラッカー34の動作は、TLB32の中のどのエントリとも最初は一致しない命令によって提示される仮想アドレス及び図3のプログラム論理に関連して次に記述される。そういうものとして、より高いレベルのアドレス変換は、仮想アドレスに対応する物理アドレスを得るために実行される。より詳細には、仮想アドレスは、仮想ページ番号及びオフセットを備えていても構わない。ページオフセットがそのページの範囲内の位置を識別する間、特定の仮想メモリを識別する。一致するTLBエントリがこの例の中には最初は存在しないので、例えば図3のブロック100によって説明されるように、第1のレベルのアドレス変換ステージ36は、より高いレベルのアドレス変換が必要とされることを示す。より高いレベルのアドレス変換ステージ38は、例えばメインメモリの中に保持されるページテーブルまたはプロセッサ10に含まれるより高いレベルのTLB(図示せず)にアクセスすることによって、仮想アドレスの変換を要求する。どちらにしても、仮想アドレスと関連する物理アドレスは、結局は得られる。
例えば図3のブロック102によって説明されるように、アドレス変換情報は、TLBエントリの中に格納される。このように、アドレス変換情報は、同一の仮想アドレスがその後に要求されるという場合には、より容易に利用できる。1つの態様においては、例えば図3のブロック104によって説明されるように、マルチプレクサ回路(multiplexer circuitry)のような物理アドレス選択ステージ40または仮想アドレスが知られている他のいずれかのステージは、仮想アドレスが2つのページの間の境界をクロスする物理メモリ領域に変換されるかどうかも決定する。例えば、仮想アドレスのページオフセット部分は、ページ境界クロシング(page boundary crossing)が発生するかどうかを決定するために、メモリページサイズ設定と比較される。そのアドレスがメモリの単一のページの範囲内に位置付けられたメモリ領域に変換される場合、例えば図3のブロック106によって説明されるように、命令実行は、変換された物理アドレスに基づいて完了される。例えば、キャッシュアクセスステージ42は、データキャッシュ16またはL2キャッシュ20が物理アドレスによってタグが付けられたライン(line)を含むかどうかを決定する。もし、データキャッシュ16またはL2キャッシュ20が物理アドレスによってタグが付けられたラインを含まない場合、キャッシュステージ42は外部のメモリから当該ラインを検索する。
しかしながら、仮想アドレスが複数のメモリページをまたがるメモリ領域を参照する場合、例えば図3のブロック108によって説明されるように、命令複製ステージ44は、命令を複製する。例えば、そのアドレスが1つの物理メモリページの中に位置付けられている4バイト及び他のページの中に位置付けられている4バイトを持つクワドワード(quadword)を参照する場合、予め変換された物理アドレスは、第1のメモリページの中にある4バイトを検索するために用いられる。第2のメモリページの中に位置付けられた4バイトを検索するために、例えば図3のブロック110によって説明されるように、第2のページを識別する物理アドレスは、より高いレベルのアドレス変換ステージ38によって得られる。例えば図3のブロック112によって説明されるように、複製された命令の第1のページピースは、第1のメモリページを識別する物理アドレスに基づいて実行を完了する。例えば図3のブロック114によって説明されるように、複製された命令の第2のページピースは、第2のメモリページを識別する物理アドレスに基づいて実行を完了する。ライトバックステージ46は、命令実行結果の適切な記憶を確実にする。
ページ境界クロシングが検出されたので、第2のメモリページのために得られたアドレス変換情報は、その後の使用のために格納される。しかしながら、異なるTLBエントリの中にその情報を格納する代わりに、例えば図3のブロック116によって説明されるように、それはページクロシングトラッカー(page crossing tracker)34の物理アドレスフィールド48の中に格納される。更に、インジケータ値は、インジケータフィールド50の中に格納される。インジケータ値は、第2のページのアドレス変換情報を含むページクロシングトラッカーエントリ(page crossing tracker entry)を、第1のページのアドレス変換情報を含むTLBエントリとリンクする。
1つの態様においては、インジケータフィールド50は、第1のメモリページと関連するアドレス変換情報を含むTLBエントリのインデックス値を格納する。他の態様においては、インジケータフィールド50は、第1のメモリページと関連するページ番号または物理アドレスを格納する。更に他の態様においては、インジケータフィールド50は、境界条件(boundary crossing condition)を生成する仮想アドレスを格納する。当業者は、第1のメモリページと関連するTLBエントリと物理アドレス情報48をリンクするために、一般の様々な値がインジケータフィールド50の中に格納されることを容易に認識するであろう。更に、命令複製ステージ44は、例えばページ境界クロシングの原因となる物理アドレスを識別することによって、物理アドレス選択ステージ40の代わりにページ境界クロシングを識別しても構わない。それにもかかわらず、メモリの中の同一の領域がその後にアクセスされる場合、ページクロシングトラッカー34は、インジケータフィールド50を調査することによって境界クロシング条件(boundary crossing condition)を認識する。それに応じて、トラッカー34は、第2のページと関連するアドレス変換情報を提供する。
ページクロシングトラッカー34の動作は、前に論じられた境界クロシング条件(boundary crossing condition)の原因となった同一の仮想アドレスを提示するその後の命令及び図4のプログラム論理に関連して次に記述される。TLB32はこの例においては一致するエントリを含むので、例えば図4のブロック200によって説明されるように、仮想アドレスと関連するページ番号または物理アドレスは、TLB32によって提供される。例えば図4のブロック202によって説明されるように、物理アドレス選択ステージ40は、仮想アドレスがページ境界をクロスするメモリの中の領域を参照するかどうかを決定する。代わりに、命令複製ステージ44は、対応する物理アドレスがページ境界クロシング条件(page boundary crossing condition)の原因となるかどうかを決定する。それにもかかわらず、境界クロシング条件(boundary crossing condition)が検出されない場合、例えば図4のブロック204によって説明されるように、命令は、TLB32によって提供される物理アドレス情報に基づいて実行を完了する。
しかしながら、本例において、仮想アドレスは、第1及び第2のメモリページの間でページ境界クロシングの原因となると知られている。このように、例えば図4のブロック206によって説明されるように、命令は前に記述されたように複製される。更に、ページクロシングトラッカー34のインジケータフィールド50は、リンクが仮想アドレスと共に形成されているかどうかを決定するために調査される。1つの態様においては、一致するTLBエントリインデックスは、インジケータフィールド50に格納される1つまたは複数の値と比較される。他の態様においては、TLB32によって提供される対応する物理アドレス(またはページ番号)または仮想アドレスは、インジケータフィールド50に格納される1つまたは複数のアドレス値と比較される。
それにもかかわらず、インジケータフィールド50に格納される情報は、トラッカー34が望まれた物理アドレス情報を含むかどうかを示す。エントリが無効であることを有効フィールド52が示さない限り、図4のブロック208によって説明されるように、第2のページと関連する物理アドレス情報は、ページクロシングトラッカー34から検索される。TLBの中の対応するエントリが無効にされた場合、有効フィールド52は、無効を示す。
例えば図4のブロック210によって説明されるように、複製された命令の第1のページピースは、TLB32によって提供されるように第1のメモリページを識別する物理アドレスに基づいて実行を完了する。例えば図4のブロック212によって説明されるように、複製された命令の第2のページピースは、ページクロシングトラッカー34から検索されるように第2のメモリページを識別する物理アドレスに基づいて実行を完了する。ページクロシングトラッカー34が第2のページのためのアドレス変換情報を含む場合、回路(図示せず)は、その後のアドレス変換が発生しないように防ぐ。このように、ページクロシングトラッカー34がページ境界クロシング条件(page boundary crossing condition)を認識する場合、1つのアドレス変換のみが実行される。
図5は、ページクロシングトラッカー34の他の態様を説明する。この態様によれば、トラッカー34は、TLB32の一部として実現される。TLB32の中の各々のエントリは、有効フィールド54、インジケータフィールド56、インデックス58、タグフィールド60及び2つの物理アドレスフィールド62及び64を持つ。タグフィールド60は、これらの仮想アドレスの仮想アドレス(またはページ番号)を格納し、これらの仮想アドレスの物理アドレス情報はTLB32によって保持される。そういうものとして、タグフィールド60は、与えられた仮想アドレスと一致するレコードがTLB32に格納されているかどうかを決定するためにTLBアクセスの間に検索される。
第1の物理アドレスフィールド62は、TLB32によって保持されるレコードを持つ各々の仮想アドレスに対応する物理ページ番号または完全なアドレスのような物理アドレス情報を含む。特定の仮想アドレスが2つのメモリページの間で境界クロシングの原因となると知られている場合、そのときは第2の物理アドレスフィールド64は、第2のメモリページと関連する物理アドレス情報を含む。対応するTLBエントリが境界クロシング条件(boundary crossing condition)を生成する仮想アドレスと関連づけられている場合、インジケータフィールド56は、物理アドレスフィールド62及び64をリンクしている1または複数のビットを含む。
TLB32の一部として実現されるページクロシングトラッカー34の動作は、TLB32の中のいずれのエントリとも最初は一致しない命令によって提示される仮想アドレスに関連して次に記述される。例えば図3のブロック100によって説明されるように、より高いレベルのアドレス変換は、仮想アドレスに対応する物理アドレスを得るために実行される。例えば図3のブロック102によって説明されるように、対応するTLBエントリの中の物理アドレスフィールド62は、変換結果によりアップデートされる。仮想アドレスがメモリアクセス中に2つのメモリページの間の境界クロシングの原因となるであろうことを物理アドレス選択ステージ40が決定する場合に、第2のより高いレベルのアドレス変換は実行される。代わりに、命令複製ステージ44は、対応する物理アドレスに基づいてページ境界クロシング条件(page boundary crossing condition)を検出しても構わない。それにもかかわらず、例えば図3のブロック110によって説明されるように、第2のメモリページを識別する物理アドレスは、第2のより高いレベルのアドレス変換の間に得られる。このように、両方のページのための物理アドレス情報は、命令実行の完了のために利用できる。
例えば図3のブロック108、112及び114によって説明されるように、命令は複製されて、実行は前に記述されたように2つの物理メモリアドレスを用いて完了される。更に、例えば図3のブロック116によって説明されるように、第2のメモリページと関連する物理アドレス情報は、第1のページと関連する物理アドレス情報を含む同一のTLBエントリに格納される。すなわち、同一のTLBエントリにおいて、第1のページと関連する物理アドレス情報は第1のアドレスフィールド62に格納されて、第2のページと関連する物理アドレス情報は第2のアドレスフィールド64に格納される。TLBエントリの中のインジケータフィールド56は、2つの物理アドレスがリンクされて、ページ境界クロシング条件(page boundary crossing condition)を生成する仮想アドレスと関連付けられているということを示すために設定される。このように、その後の命令が同一の仮想または物理アドレスを参照する場合、1つのアドレス変換のみが第1及び第2のメモリページと関連する物理アドレス情報を得るために必要とされる。
TLB32の一部として実現されるページクロシングトラッカーの動作は、前に記述された境界クロシング条件(boundary crossing condition)を生成した同一の仮想アドレスをアクセスするその後の命令に関連して次に記述される。TLB32がアクセスされた場合、例えば図4のブロック200によって説明されるように、一致するエントリは、仮想アドレスをTLB32に格納されたタグ値と比較することによって識別される。本例において、仮想アドレスは、第1及び第2のメモリページの間のページ境界クロシングの原因となると知られている。このように、命令は、例えば図4のブロック206によって説明されるように、前に記述されたように複製される。更に、一致するTLBエントリの第1のアドレスフィールド62は、第1のメモリページと関連する物理アドレス情報を提供する。例えば図4のブロック210によって説明されるように、複製された命令の第1のページピースの実行は、第1のアドレスフィールド62から得られる物理アドレス情報に基づいて完了する。
更に、一致するTLBエントリの中のインジケータフィールド56は、第1及び第2の物理アドレスフィールド62及び64がリンクされているということを示す。したがって、例えば図4のブロック208によって説明されるように、第2のアドレスフィールド64に格納された物理アドレス情報は、検索される。第2のアドレスフィールド64から検索された物理アドレス情報は、第2のメモリページを識別する。例えば図4のブロック212によって説明されるように、複製された命令の第2のページピースの実行は、第2のアドレスフィールド64から得られた物理アドレス情報に基づいて完了する。このように、1つのアドレス変換のみがその後の命令の実行の間に実行される。
TLBエントリが無効にされたことを有効フィールド54が示す場合、例えば図3のブロック100及び110によって説明されるように、アドレス変換は実行されず、より高いレベルのアドレス変換ステージ38は、また、前に記述されたように必要な物理アドレスを得る。更に、インジケータフィールド56は、上書きされているTLBエントリまたは更新されているアドレス変換に影響を与えるアーキテキクトされたレジスタに応答して2つのメモリページの間のリンクが無効にされることを示しても構わない。無効ページクロシングリンク(invalid page crossing link)に遭遇した場合、リンクされたページと関連するアドレス変換情報は用いられない。その代わりとして、その後のアドレス変換が実行される。
上記範囲の変形例及び応用例を考慮した場合、本発明は、上記説明によっても添付図面によっても限定されないことが理解されるべきである。本発明は、特許請求の範囲及びその法律上の均等物によってのみ限定される。
上記範囲の変形例及び応用例を考慮した場合、本発明は、上記説明によっても添付図面によって限定されないことが理解されるべきである。本発明は、特許請求の範囲及びその法律上の均等物によってのみ限定される。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
〔1〕第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域へのアクセスを認識することと、
前記第1及び第2のメモリページと関連するアドレス変換情報をリンクすることと
を具備し、
メモリの中の前記同一の領域へのその後のアクセスに応答して、前記第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索可能である、
プロセッサの中において整列されていないメモリアクセスを取り扱う方法。
〔2〕前記アクセスを認識することは、メモリアクセスの間にページ境界クロシングの原因となるように構成されたアドレスを識別することを具備する、前記〔1〕に記載の方法。
〔3〕前記第1及び第2のメモリページと関連するアドレス変換情報をリンクすることは、前記アドレスを前記第2のメモリページと関連する前記アドレス変換情報とリンクすることを具備する、前記〔2〕に記載の方法。
〔4〕アドレスを提示した命令を複製することを更に具備し、
前記命令の実行は、第1のメモリページと関連する物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する物理アドレスに基づいて完了する、前記〔2〕に記載の方法。
〔5〕前記第1及び第2のメモリページと関連するアドレス変換情報をリンクすることは、
変換索引バッファエントリの中に、第1のメモリページと関連する物理アドレス情報及び仮想アドレス情報を格納することと、
前記変換索引バッファエントリを前記第2のメモリページと関連する物理アドレス情報とリンクすることと
を具備する、前記〔1〕に記載の方法。
〔6〕前記変換索引バッファエントリを前記第2のメモリページと関連する物理アドレス情報とリンクすることは、前記変換索引バッファエントリを識別する情報及び前記第2のメモリページと関連する物理アドレス情報を格納することを具備する、前記〔5〕に記載の方法。
〔7〕前記変換索引バッファエントリを前記第2のメモリページと関連する物理アドレス情報をリンクすることは、
前記変換索引バッファエントリの中に、前記第2のメモリページと関連する物理アドレス情報及び前記第1のメモリページと関連する仮想及び物理アドレス情報を格納することと、
前記ページ境界クロシングの原因となる前記第1のメモリページと関連する仮想アドレスを示すために変換索引バッファエントリの中に1または複数のビットを設定することと
を具備する、前記〔5〕に記載の方法。
〔8〕前記第1及び第2のメモリページと関連する前記アドレス変換情報の間のリンクを遮断することを更に具備する、前記〔1〕に記載の方法。
〔9〕前記リンクを遮断することは、前記第2のメモリページと関連する物理アドレス情報を前記第1のメモリページと関連する仮想アドレス情報とリンクする情報を無効にすることを具備する、前記〔8〕に記載の方法。
〔10〕第1及び第2のメモリページの間のページ境界をクロスするメモリ領域へのアクセスを認識し、
前記第1及び第2のメモリページと関連するアドレス変換情報をリンクし、前記同一のメモリ領域へのその後のアクセスに応答して、前記第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索可能である
ように構成された回路を具備するプロセッサ。
〔11〕前記回路は、メモリアクセスの間の前記ページ境界クロシングの原因となるように構成されたアドレスを識別するように構成される、前記〔10〕に記載のプロセッサ。
〔12〕前記回路は、前記アドレスを前記第2のメモリページと関連するアドレス変換情報とリンクするように構成される、前記〔11〕に記載のプロセッサ。
〔13〕前記回路は、前記アドレスを提示する命令を複製するように更に構成され、
前記命令の実行は、前記第1のメモリページと関連する物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する物理アドレスに基づいて完了する、前記〔11〕に記載のプロセッサ。
〔14〕前記回路は、変換索引バッファエントリの中に、前記第1のメモリページと関連する物理アドレス情報及び仮想アドレス情報を格納するように構成される、前記〔10〕に記載のプロセッサ。
〔15〕前記回路は、前記変換索引バッファエントリを識別する情報及び前記第2のメモリと関連する物理アドレス情報を格納するように構成される、前記〔14記載のプロセッサ。
〔16〕前記回路は、前記変換索引バッファエントリの中に、前記第2のメモリページと関連する物理アドレス情報及び前記第1のメモリページと関連する前記仮想及び物理アドレスを格納し、前記ページ境界クロシングの原因となる前記第1のメモリページと関連する仮想アドレスを示すために前記変換索引バッファエントリの中に1または複数のビットを設定するように構成される、前記〔14〕に記載のプロセッサ。
〔17〕前記回路は、前記第1及び第2のメモリページと関連する前記アドレス変換情報の間の前記リンクを遮断するように更に構成される、前記〔10〕に記載のプロセッサ。
〔18〕前記回路は、前記第2のメモリページと関連する物理アドレス情報を前記第1のメモリページと関連する仮想アドレス情報とリンクする情報を無効にするように構成される、前記〔17〕に記載のプロセッサ。
〔19〕第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域にアクセスするように構成された命令を認識することと、
前記命令によって提示された仮想アドレスを前記第1のメモリページと関連する物理アドレスに変換することと、
前記仮想アドレスを前記第2のメモリページと関連する前記物理アドレスとリンクする予め設定された情報に基づいて前記第2のメモリページと関連する物理アドレスを検索することと
を具備する、プロセッサにおいてアドレス変換を実行する方法。
〔20〕前記命令を複製することを更に具備し、
前記命令の実行は、前記第1のメモリページと関連する物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する物理アドレスに基づいて完了する、前記〔19〕に記載の方法。
〔21〕前記仮想アドレスを変換することは、
前記仮想アドレスに対応する変換索引バッファエントリを識別することと、
前記変換索引バッファエントリから前記第1のメモリページと関連する物理アドレスを検索することと
を更に具備する、前記〔19〕に記載の方法。
〔22〕前記第2のメモリページと関連する物理アドレスを検索することは、
前記予め設定された情報が前記変換索引バッファエントリに格納された対応する情報と一致するかどうかを決定することと、
前記情報の一致に応答してアドレス変換情報を検索することと
を具備する、前記〔21〕に記載の方法。
〔23〕前記第2のメモリページと関連する物理アドレスを検索することは、
前記変換索引バッファエントリの中の1または複数のビットが前記第1及び第2のメモリページの間のリンクを示すかどうかを決定することと、
前記第1及び第2のメモリページの間のリンクを示す前記1または複数のビットに応答して前記第1のメモリページと関連する前記物理アドレスを含む前記変換索引バッファエントリからアドレス変換情報を検索することと
を具備する、前記〔21〕に記載の方法。
〔24〕第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域にアクセスするように構成された命令を認識し、
前記命令によって提示された仮想アドレスを前記第1のメモリページと関連する物理アドレスに変換し、
前記仮想アドレスを前記第2のメモリページと関連する前記物理アドレスとリンクする予め設定された情報に基づいて前記第2のメモリページと関連する物理アドレスを検索する
ように構成された回路を具備するプロセッサ。
〔25〕前記回路は、前記命令を複製するように更に構成され、
前記命令の実行は、前記第1のメモリページと関連する前記物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する前記物理アドレスに基づいて完了する、前記〔24〕に記載のプロセッサ。
〔26〕前記回路は、前記仮想アドレスに対応する変換索引バッファエントリを識別し、前記変換索引バッファエントリから前記第1のメモリページと関連する前記物理アドレスを検索するように構成される、前記〔24〕に記載のプロセッサ。
〔27〕前記回路は、前記予め設定された情報が前記変換索引バッファエントリに格納された対応する情報と一致するかどうかを決定し、前記情報の一致に応答してアドレス変換情報を検索するように構成される、前記〔26〕に記載のプロセッサ。
〔28〕前記回路は、前記変換索引バッファエントリの中の1または複数のビットが前記第1及び第2のメモリページの間のリンクを示すかどうかを決定し、前記第1及び第2のメモリページの間のリンクを示す前記1または複数のビットに応答して前記第1のメモリページと関連する前記物理アドレスを含む前記変換索引バッファエントリからアドレス変換情報を検索するように構成される、前記〔26〕に記載のプロセッサ。

Claims (28)

  1. 第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域へのアクセスを認識することと、
    前記第1及び第2のメモリページと関連するアドレス変換情報をリンクすることと
    を具備し、
    メモリの中の前記同一の領域へのその後のアクセスに応答して、前記第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索可能である、
    プロセッサの中において整列されていないメモリアクセスを取り扱う方法。
  2. 前記アクセスを認識することは、メモリアクセスの間にページ境界クロシングの原因となるように構成されたアドレスを識別することを具備する、請求項1に記載の方法。
  3. 前記第1及び第2のメモリページと関連するアドレス変換情報をリンクすることは、前記アドレスを前記第2のメモリページと関連する前記アドレス変換情報とリンクすることを具備する、請求項2に記載の方法。
  4. アドレスを提示した命令を複製することを更に具備し、
    前記命令の実行は、第1のメモリページと関連する物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する物理アドレスに基づいて完了する、請求項2に記載の方法。
  5. 前記第1及び第2のメモリページと関連するアドレス変換情報をリンクすることは、
    変換索引バッファエントリの中に、第1のメモリページと関連する物理アドレス情報及び仮想アドレス情報を格納することと、
    前記変換索引バッファエントリを前記第2のメモリページと関連する物理アドレス情報とリンクすることと
    を具備する、請求項1に記載の方法。
  6. 前記変換索引バッファエントリを前記第2のメモリページと関連する物理アドレス情報とリンクすることは、前記変換索引バッファエントリを識別する情報及び前記第2のメモリページと関連する物理アドレス情報を格納することを具備する、請求項5に記載の方法。
  7. 前記変換索引バッファエントリを前記第2のメモリページと関連する物理アドレス情報をリンクすることは、
    前記変換索引バッファエントリの中に、前記第2のメモリページと関連する物理アドレス情報及び前記第1のメモリページと関連する仮想及び物理アドレス情報を格納することと、
    前記ページ境界クロシングの原因となる前記第1のメモリページと関連する仮想アドレスを示すために変換索引バッファエントリの中に1または複数のビットを設定することと
    を具備する、請求項5に記載の方法。
  8. 前記第1及び第2のメモリページと関連する前記アドレス変換情報の間のリンクを遮断することを更に具備する、請求項1に記載の方法。
  9. 前記リンクを遮断することは、前記第2のメモリページと関連する物理アドレス情報を前記第1のメモリページと関連する仮想アドレス情報とリンクする情報を無効にすることを具備する、請求項8に記載の方法。
  10. 第1及び第2のメモリページの間のページ境界をクロスするメモリ領域へのアクセスを認識し、
    前記第1及び第2のメモリページと関連するアドレス変換情報をリンクし、前記同一のメモリ領域へのその後のアクセスに応答して、前記第1及び第2のメモリページと関連するアドレス変換情報は、1つのアドレス変換に基づいて検索可能である
    ように構成された回路を具備するプロセッサ。
  11. 前記回路は、メモリアクセスの間の前記ページ境界クロシングの原因となるように構成されたアドレスを識別するように構成される、請求項10に記載のプロセッサ。
  12. 前記回路は、前記アドレスを前記第2のメモリページと関連するアドレス変換情報とリンクするように構成される、請求項11に記載のプロセッサ。
  13. 前記回路は、前記アドレスを提示する命令を複製するように更に構成され、
    前記命令の実行は、前記第1のメモリページと関連する物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する物理アドレスに基づいて完了する、請求項11に記載のプロセッサ。
  14. 前記回路は、変換索引バッファエントリの中に、前記第1のメモリページと関連する物理アドレス情報及び仮想アドレス情報を格納するように構成される、請求項10に記載のプロセッサ。
  15. 前記回路は、前記変換索引バッファエントリを識別する情報及び前記第2のメモリと関連する物理アドレス情報を格納するように構成される、請求項14記載のプロセッサ。
  16. 前記回路は、前記変換索引バッファエントリの中に、前記第2のメモリページと関連する物理アドレス情報及び前記第1のメモリページと関連する前記仮想及び物理アドレスを格納し、前記ページ境界クロシングの原因となる前記第1のメモリページと関連する仮想アドレスを示すために前記変換索引バッファエントリの中に1または複数のビットを設定するように構成される、請求項14に記載のプロセッサ。
  17. 前記回路は、前記第1及び第2のメモリページと関連する前記アドレス変換情報の間の前記リンクを遮断するように更に構成される、請求項10に記載のプロセッサ。
  18. 前記回路は、前記第2のメモリページと関連する物理アドレス情報を前記第1のメモリページと関連する仮想アドレス情報とリンクする情報を無効にするように構成される、請求項17に記載のプロセッサ。
  19. 第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域にアクセスするように構成された命令を認識することと、
    前記命令によって提示された仮想アドレスを前記第1のメモリページと関連する物理アドレスに変換することと、
    前記仮想アドレスを前記第2のメモリページと関連する前記物理アドレスとリンクする予め設定された情報に基づいて前記第2のメモリページと関連する物理アドレスを検索することと
    を具備する、プロセッサにおいてアドレス変換を実行する方法。
  20. 前記命令を複製することを更に具備し、
    前記命令の実行は、前記第1のメモリページと関連する物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する物理アドレスに基づいて完了する、請求項19に記載の方法。
  21. 前記仮想アドレスを変換することは、
    前記仮想アドレスに対応する変換索引バッファエントリを識別することと、
    前記変換索引バッファエントリから前記第1のメモリページと関連する物理アドレスを検索することと
    を更に具備する、請求項19に記載の方法。
  22. 前記第2のメモリページと関連する物理アドレスを検索することは、
    前記予め設定された情報が前記変換索引バッファエントリに格納された対応する情報と一致するかどうかを決定することと、
    前記情報の一致に応答してアドレス変換情報を検索することと
    を具備する、請求項21に記載の方法。
  23. 前記第2のメモリページと関連する物理アドレスを検索することは、
    前記変換索引バッファエントリの中の1または複数のビットが前記第1及び第2のメモリページの間のリンクを示すかどうかを決定することと、
    前記第1及び第2のメモリページの間のリンクを示す前記1または複数のビットに応答して前記第1のメモリページと関連する前記物理アドレスを含む前記変換索引バッファエントリからアドレス変換情報を検索することと
    を具備する、請求項21に記載の方法。
  24. 第1及び第2のメモリページの間のページ境界をクロスするメモリの中の領域にアクセスするように構成された命令を認識し、
    前記命令によって提示された仮想アドレスを前記第1のメモリページと関連する物理アドレスに変換し、
    前記仮想アドレスを前記第2のメモリページと関連する前記物理アドレスとリンクする予め設定された情報に基づいて前記第2のメモリページと関連する物理アドレスを検索する
    ように構成された回路を具備するプロセッサ。
  25. 前記回路は、前記命令を複製するように更に構成され、
    前記命令の実行は、前記第1のメモリページと関連する前記物理アドレスに基づいて完了し、前記複製された命令の実行は、前記第2のメモリページと関連する前記物理アドレスに基づいて完了する、請求項24に記載のプロセッサ。
  26. 前記回路は、前記仮想アドレスに対応する変換索引バッファエントリを識別し、前記変換索引バッファエントリから前記第1のメモリページと関連する前記物理アドレスを検索するように構成される、請求項24に記載のプロセッサ。
  27. 前記回路は、前記予め設定された情報が前記変換索引バッファエントリに格納された対応する情報と一致するかどうかを決定し、前記情報の一致に応答してアドレス変換情報を検索するように構成される、請求項26に記載のプロセッサ。
  28. 前記回路は、前記変換索引バッファエントリの中の1または複数のビットが前記第1及び第2のメモリページの間のリンクを示すかどうかを決定し、前記第1及び第2のメモリページの間のリンクを示す前記1または複数のビットに応答して前記第1のメモリページと関連する前記物理アドレスを含む前記変換索引バッファエントリからアドレス変換情報を検索するように構成される、請求項26に記載のプロセッサ。
JP2012247186A 2007-02-07 2012-11-09 アドレス変換方法及び装置 Expired - Fee Related JP5373173B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/672,066 2007-02-07
US11/672,066 US8239657B2 (en) 2007-02-07 2007-02-07 Address translation method and apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009549240A Division JP2010518519A (ja) 2007-02-07 2008-02-07 アドレス変換方法及び装置

Publications (2)

Publication Number Publication Date
JP2013065325A true JP2013065325A (ja) 2013-04-11
JP5373173B2 JP5373173B2 (ja) 2013-12-18

Family

ID=39495104

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009549240A Pending JP2010518519A (ja) 2007-02-07 2008-02-07 アドレス変換方法及び装置
JP2012247186A Expired - Fee Related JP5373173B2 (ja) 2007-02-07 2012-11-09 アドレス変換方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009549240A Pending JP2010518519A (ja) 2007-02-07 2008-02-07 アドレス変換方法及び装置

Country Status (12)

Country Link
US (1) US8239657B2 (ja)
EP (1) EP2118753B1 (ja)
JP (2) JP2010518519A (ja)
KR (1) KR101057526B1 (ja)
CN (1) CN101606134B (ja)
BR (1) BRPI0806994A2 (ja)
CA (1) CA2675702A1 (ja)
IN (1) IN2014MN01739A (ja)
MX (1) MX2009007982A (ja)
RU (1) RU2461870C2 (ja)
TW (1) TWI381275B (ja)
WO (1) WO2008098140A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US10387324B2 (en) * 2011-12-08 2019-08-20 Intel Corporation Method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution canceling the transactional execution upon conflict between physical addresses of transactional accesses within the transactional execution
US9460018B2 (en) 2012-05-09 2016-10-04 Qualcomm Incorporated Method and apparatus for tracking extra data permissions in an instruction cache
RU2504000C1 (ru) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Способ копирования данных в кэш-памяти и устройство для его осуществления
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9280488B2 (en) 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9804969B2 (en) * 2012-12-20 2017-10-31 Qualcomm Incorporated Speculative addressing using a virtual address-to-physical address page crossing buffer
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
US20140310500A1 (en) * 2013-04-11 2014-10-16 Advanced Micro Devices, Inc. Page cross misalign buffer
US9632948B2 (en) * 2014-09-23 2017-04-25 Intel Corporation Multi-source address translation service (ATS) with a single ATS resource
US11442760B2 (en) 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US11106596B2 (en) * 2016-12-23 2021-08-31 Advanced Micro Devices, Inc. Configurable skewed associativity in a translation lookaside buffer
US20190163642A1 (en) 2017-11-27 2019-05-30 Intel Corporation Management of the untranslated to translated code steering logic in a dynamic binary translation based processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298186A (ja) * 1992-04-20 1993-11-12 Nec Corp 情報処理装置
JP2000010863A (ja) * 1998-06-24 2000-01-14 Sony Computer Entertainment Inc 情報処理装置および方法、並びに提供媒体
WO2006099633A2 (en) * 2005-03-17 2006-09-21 Qualcomm Incorporated Method and system for optimizing translation lookaside buffer entries
WO2006125220A2 (en) * 2005-05-18 2006-11-23 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
DE69428881T2 (de) 1994-01-12 2002-07-18 Sun Microsystems Inc Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US5734881A (en) * 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
US6681311B2 (en) * 2001-07-18 2004-01-20 Ip-First, Llc Translation lookaside buffer that caches memory type information
US7363474B2 (en) 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
CN100495319C (zh) * 2003-12-23 2009-06-03 凌阳科技股份有限公司 处理器中读取未对齐资料的方法与装置
US7334107B2 (en) 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US7340582B2 (en) 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US20060174066A1 (en) * 2005-02-03 2006-08-03 Bridges Jeffrey T Fractional-word writable architected register for direct accumulation of misaligned data
US20060248279A1 (en) * 2005-05-02 2006-11-02 Al-Sukhni Hassan F Prefetching across a page boundary

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298186A (ja) * 1992-04-20 1993-11-12 Nec Corp 情報処理装置
JP2000010863A (ja) * 1998-06-24 2000-01-14 Sony Computer Entertainment Inc 情報処理装置および方法、並びに提供媒体
WO2006099633A2 (en) * 2005-03-17 2006-09-21 Qualcomm Incorporated Method and system for optimizing translation lookaside buffer entries
WO2006125220A2 (en) * 2005-05-18 2006-11-23 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary

Also Published As

Publication number Publication date
IN2014MN01739A (ja) 2015-07-03
TW200842580A (en) 2008-11-01
KR101057526B1 (ko) 2011-08-17
RU2009133295A (ru) 2011-03-20
US8239657B2 (en) 2012-08-07
CN101606134A (zh) 2009-12-16
EP2118753A1 (en) 2009-11-18
JP5373173B2 (ja) 2013-12-18
JP2010518519A (ja) 2010-05-27
CN101606134B (zh) 2013-09-18
MX2009007982A (es) 2009-08-07
EP2118753B1 (en) 2013-07-10
CA2675702A1 (en) 2008-08-14
US20080189506A1 (en) 2008-08-07
WO2008098140A1 (en) 2008-08-14
TWI381275B (zh) 2013-01-01
BRPI0806994A2 (pt) 2014-04-08
KR20090117798A (ko) 2009-11-12
RU2461870C2 (ru) 2012-09-20

Similar Documents

Publication Publication Date Title
JP5373173B2 (ja) アドレス変換方法及び装置
EP0036110B1 (en) Cache addressing mechanism
KR101563659B1 (ko) 집성된 소페이지들을 사용한 페이지 사이즈 확장
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US7472253B1 (en) System and method for managing table lookaside buffer performance
JP3666689B2 (ja) 仮想アドレス変換方法
US20160140042A1 (en) Instruction cache translation management
US20140095784A1 (en) Techniques for Utilizing Transaction Lookaside Buffer Entry Numbers to Improve Processor Performance
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
JP2014078248A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
US10545879B2 (en) Apparatus and method for handling access requests
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
US7472227B2 (en) Invalidating multiple address cache entries
US9996474B2 (en) Multiple stage memory management
US5539892A (en) Address translation lookaside buffer replacement apparatus and method with user override
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
GB2307319A (en) Dual-directory virtual cache
US7971002B1 (en) Maintaining instruction coherency in a translation-based computer system architecture
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
JPS6324337A (ja) キャッシュ・メモリ管理方式
MX2008005091A (en) Caching memory attribute indicators with cached memory data
JPH0245847A (ja) 仮想アドレスキャッシュ制御装置
JPH0679294B2 (ja) アドレス変換方法

Legal Events

Date Code Title Description
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: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130918

R150 Certificate of patent or registration of utility model

Ref document number: 5373173

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees