JP6317048B1 - バースト変換ルックアサイドバッファ - Google Patents

バースト変換ルックアサイドバッファ Download PDF

Info

Publication number
JP6317048B1
JP6317048B1 JP2017552466A JP2017552466A JP6317048B1 JP 6317048 B1 JP6317048 B1 JP 6317048B1 JP 2017552466 A JP2017552466 A JP 2017552466A JP 2017552466 A JP2017552466 A JP 2017552466A JP 6317048 B1 JP6317048 B1 JP 6317048B1
Authority
JP
Japan
Prior art keywords
burst
tlb
entry
burst entry
tag
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.)
Active
Application number
JP2017552466A
Other languages
English (en)
Other versions
JP2018514861A (ja
Inventor
ジェイソン・エドワード・ポダイマ
ポール・クリストファー・ジョン・ウィアーシエンスキー
アレクサンダー・マイアトスキー
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Application granted granted Critical
Publication of JP6317048B1 publication Critical patent/JP6317048B1/ja
Publication of JP2018514861A publication Critical patent/JP2018514861A/ja
Active 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/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
    • 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/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or 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/651Multi-level translation tables
    • 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/652Page size control
    • 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/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Abstract

仮想アドレスを含む被比較数が受信される。バーストエントリタグへの被比較数の一致を判定する時に、候補の一致する変換データユニットが選択される。選択は、バーストエントリタグに関連する複数の変換データユニットからであり、仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づく。候補の一致する変換データユニットの内容が、被比較数の少なくとも一部と比較される。一致の時に、ヒットが生成される。

Description

米国特許法第119条に基づく優先権の主張
本特許出願は、本願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、2015年4月15日に出願されたBURST TRANSLATION LOOK-ASIDE BUFFERと題する仮出願第62/148,121号の優先権を主張するものである。
本願は、全般的にはメモリ管理に関する。
プロセッサは、メモリ内のターゲット位置の実際の物理アドレスではなく、「仮想アドレス」をまず生成することによってメモリにアクセスすることができる。ターゲット位置にアクセスするために、仮想アドレスは、物理アドレスにマッピングされ得る。仮想アドレスから物理アドレスへ(「VA-to-PA」)のマッピングは、キャッシュ内に記憶され得、たとえばオペレーティングシステムの制御の下で動的に更新され得る。仮想アドレッシングは、様々な利益、たとえば、物理メモリ空間の動的割振り、セキュアメモリ空間の許可されないアクセスに対する保護、および複数のプログラムが物理メモリ内のオーバーラップする空間を不注意に使用することの防止を提供することができる。仮想アドレッシングは、たとえば、連続しない物理メモリ空間がソフトウェアプログラムにとって連続空間に見えることを可能にすることもできる。
従来の仮想アドレッシング技法は、物理メモリをブロックまたは「ページ」にセグメント化することができ、このページは、「ページ番号」によって識別される。VA-to-PAマッピングは、仮想ページ番号と物理ページ番号との間の関係を提供し、マッピング情報は、「ページテーブル」のエントリ内に記憶される。ページテーブルは、仮想アドレスのビットのサブセット(たとえば、「VAタグビット」)を使用して、「ページテーブルウォーク」プロセスによって検索され得る。しかしながら、ページテーブルウォークがメモリアクセスごとに要求される場合には、処理オーバーヘッドが生じる。ページエントリの選択(たとえば、最も最近に使用されたエントリ)を保持するキャッシュは、ページテーブルウォークを減らす1つの従来の技法である。このキャッシュは、しばしば「変換ルックアサイドバッファ」または「TLB」と呼ばれるが、N個のエントリを有することができる。各TLBエントリは、VAタグビットを使用して検索され得、物理アドレス、たとえばVAタグビットがマッピングする物理ページ番号を含むことができる、「タグビット」を保持する「タグ」を含む。CPUが仮想アドレスを生成する時に、TLBは、VAタグビットを使用して、N個のエントリ内でタグビットを検索する。一致がある場合には、TLBは、ヒットを識別し、一致するエントリからの物理ページ番号を出力する。一致がない場合には、TLBは、「ミス」を識別し、メモリ管理リソースが、ページテーブルの「ページテーブルウォーク」検索を実行することができる。上で言及したように、ページテーブルウォークは、処理時間およびメモリ管理リソースを消費する可能性がある。したがって、低いミスレートが、TLB性能目標とされ得る。
TLBの他の性能目標は、たとえば1クロックサイクル以内の、高速の検索速度と、高速のTLB無効化とを含むことができる。
しかしながら、異なるTLB性能目標は、従来のTLB設計技法を適用する時に、衝突する設計目標を生じる可能性がある。たとえば、TLBサイズの増加すなわち、同時に記憶できるエントリの個数の増加は、ミスレートを低下させるための1つの従来のTLB設計技法である。増加したTLBサイズは、増加したコストと、TLB回路面積および検索回路複雑性の対応する増加に起因する低下した性能と、伝搬遅延の付随する増加とにつながる可能性がある。
TLBミスレートの低下を目指す他の従来の技法がある。たとえば、1つの従来の技法は、チップ面積の効率的な使用を可能にすることができる「セットアソシアティブ」TLBアーキテクチャを使用する。しかしながら、セットアソシアティブTLBアーキテクチャは、多数のTLB衝突を示す可能性もあり、検索とTLB無効化との両方が、複数のサイクルを消費する可能性がある。
この「発明の概要」は、例の特徴とその諸態様とを識別し、開示される主題の排他的または網羅的な説明ではない。特徴または態様がこの「発明の概要」に含まれるのか省略されるのかは、そのような特徴の相対的重要性を示すものとして意図されたものではない。以下の詳細な説明を読み、その一部を形成する図面を見ることによって、追加の特徴および態様が記載され、当業者に明らかになるであろう。
本開示を読む時に諒解されるように、特徴は、改善された面積効率とスケーラビリティとを提供すると同時に、高速TLBルックアップ特性と高速TLB無効化特性とを有するフルアソシアティブTLBの品質を維持することができるバーストTLBを含むことができるが、これに限定はされない。
仮想アドレスを変換するための方法が開示され、1つの例示的な方法では、例の動作は、様々な態様に従って、被比較数を受信するステップであって、被比較数は、仮想アドレスを含むことができる、受信するステップと、バーストエントリタグへの被比較数の一致を判定する際に、候補の一致する変換データユニットを選択するステップであって、選択は、複数の変換データユニットからであり、複数のデータ変換ユニットは、バーストエントリタグに関連し、選択は、仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づく、選択するステップとを含むことができる。様々な態様による例の動作は、候補の一致する変換データユニットの内容を被比較数の少なくとも一部と比較し、比較の結果が一致を示す時に、ヒットを生成するステップをも含むことができる。
変換ルックアサイドバッファ(TLB)を提供できる装置が開示され、1つの例示的なTLBでは、特徴は、被比較数を受信し、これに応答して、被比較数とバーストエントリタグとが一致であるかどうかを判定するように構成されたバーストTLBエントリ選択論理手段であって、被比較数は、仮想アドレスを含むことができる、バーストTLBエントリ選択論理手段を含むことができる。TLB特徴は、様々な態様によれば、バーストTLBエントリ選択論理手段が、被比較数とバーストエントリタグとが一致であると判定することに応答して、候補の一致する変換データユニットを選択するように構成され得る列セレクタ論理手段であって、候補の一致する変換データユニットは、バーストエントリタグに関連する複数の変換データユニットの中にあり、仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づいて候補の一致する変換データユニットを選択するようにさらに構成され得る、列セレクタ論理手段とをさらに含むことができる。TLB特徴は、様々な態様によれば、一致論理手段であって、一致論理手段は、候補の一致する変換データユニットの内容を被比較数の少なくとも一部と比較し、比較の結果が一致を示す時に、ヒットを生成するように構成され得る、一致論理手段をさらに含むことができる。
様々な態様による非一時的コンピュータ可読媒体の例は、プロセッサによって読み取られ、実行される時に、プロセッサに、被比較数を受信させることができるコードであって、被演算数は、仮想アドレスを含むことができる、受信させることができるコードと、被比較数とバーストエントリタグとが一致であるかどうかを判定させ、被比較数とバーストエントリタグとが一致であると判定する時に、候補の一致する変換データユニットを選択させ、候補の一致する変換データユニットは、バーストエントリタグに関連する複数の変換データユニットの中の変換データユニットであり、仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づいて、候補の一致する変換データユニットを選択させることができるコードと含むことができる。一態様では、様々な態様による非一時的コンピュータ可読媒体は、プロセッサによって読み取られ、実行される時に、プロセッサに、候補の一致する変換データユニットの内容を被比較数の少なくとも一部と比較させ、比較の結果が一致を示す時に、ヒットを生成させることができるコードをさらに含むことができる。
1つまたは複数の態様による例の装置は、変換ルックアサイドバッファ(TLB)を提供することができ、特徴は、被比較数を受信するための手段であって、被比較数は、仮想アドレスを含む、受信するための手段と、被比較数とバーストエントリタグとが一致であるかどうかを判定し、被比較数とバーストエントリタグとが一致であると判定する時に、候補の一致する変換データユニットを選択するための手段とを含むことができる。1つまたは複数の態様によれば、特徴は、候補の一致する変換データユニットの内容を被比較数の少なくとも一部と比較し、比較の結果が一致を示す時に、ヒットを生成するための手段をさらに含むことができ、候補の一致する変換データユニットは、複数の変換データユニットの中の変換データユニットとすることができ、候補の一致する変換データユニットの選択は、仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づく。
添付図面は、態様の記述を助けるために提示され、単に説明のために提供され、態様のいかなる限定でもない。
従来技術の変換ルックアサイドバッファ(TLB)の構成と論理動作とを示す図である。 本開示の態様による、1つの例示的なバーストエントリTLB内の1つの配置と、1つの例のバーストエントリとを示す図である。 本開示の態様による、1つのバーストエントリと共に1つの例示的なバーストエントリTLB内の論理フローを示す図である。 本開示の態様による、別の例示的なバーストエントリTLB内の1つの配置と、1つの例の代替のバーストエントリとを示す図である。 本開示の態様による、別の例示的なバーストエントリTLB内の1つの配置と、1つの例の代替のバーストエントリとを示す図である。 本開示の態様による、バーストエントリの例示的なセットを保持する1つの例示的なバーストエントリTLB内のバースト復号機能およびバースト一致機能の1つの構成を示す図である。 様々な態様による、1つのバーストエントリTLB内の例の動作を示す流れ図である。 本開示の態様による、バーストエントリTLBの第1のステージマッピングと第2のステージマッピングとを有する高水準マッピング図を示す図である。 本開示の態様による、バーストエントリTLB内のバーストエントリの1つの例の生成における論理フローを示す図である。 本開示の態様による、バーストエントリTLB内のバーストエントリの1つの例の代替の生成における論理フローを示す図である。 本開示の1つまたは複数の態様が有利に使用され得る例示的なワイヤレスデバイスを示す図である。
諸態様が、特定の例示的態様を対象とする以下の説明および関連する図面で開示される。代替の態様が、開示される概念の範囲から逸脱せずに考案され得る。いくつかの説明される例の実施態様では、様々な構成要素の構造および動作の部分が既知の従来技法から得られ、次いで1つまたは複数の態様に従って配置される場合に、実例が識別される。そのような実例では、既知の従来の構成要素の構造および/または動作の部分の内部詳細は、開示される概念の潜在的な混乱を回避するのを助けるために省略される。
本明細書で使用される用語法は、特定の態様を示す例を説明するためのみのものであって、限定的であるものとして意図されたものではない。
「例示的」という単語は、本明細書では、「例、実例、または例示として働く」を意味するのに使用される。本明細書で「例示的」として説明されるすべての態様は、必ずしも他の態様より好ましいまたは有利と解釈されるべきではない。同様に、「本発明の態様」という用語は、すべての実践が議論される特徴、利点、または動作のモードを含むことを要求するものではない。
本明細書で使用される時に、単数形「a」、「an」、および「the」は、文脈がそうではないと明瞭に示さない限り、複数形を含むことが意図されている。本明細書で使用される時に、「含む(comprises、comprising)」、「含む(includes)」、および/または「含む(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を除外するものではないことを理解されたい。
ある種の態様は、たとえば様々なプロセス内のまたはこれに関連する、動作およびステップに関して説明される。明示的にそうではないと述べられる実例、または特定の文脈から明らかにされる実例を除いて、そのような動作およびステップの記載された順序が、例示の目的に過ぎず、様々な例示的な態様による実践において適用され得る動作またはステップの順序を必ずしも限定するものではないことを理解されたい。
さらに、流れ図を参照して、様々なプロセスにおける動作が説明される。流れ図は、必ずしも1つのブロックによって示される動作が終了することを意味するものではなく、別のブロックによって示される動作の開始時に継続できないことを意味するものでもないことを理解されたい。
ある種の態様は、たとえば、コンピューティングデバイスまたはコンピューティングデバイスの要素によって実行されまたはその制御下で実行され得る、例の動作、ステップ、動作のアクションおよびシーケンス、ステップ、ならびにアクションに関して説明される。当業者は、本開示を読む時に、そのような動作、ステップ、アクション、シーケンス、およびその組合せが、特定の回路(たとえば、特定用途向け集積回路(ASIC))によってもしくはその制御の下で、1つまたは複数のプロセッサによって実行されるプログラム命令によって、またはその両方の組合せによって実行され得ることを理解されたい。
したがって、動作、ステップ、アクション、シーケンス、およびそれらの他の組合せが、実行時に関連するプロセッサに本明細書で説明される動作、ステップ、アクション、シーケンス、および他の組合せを直接にまたは間接に実行させるコンピュータ命令の対応するセットをその中に記憶された任意の形のコンピュータ可読記憶媒体内で完全に実施され得ることが、そのような当業者によって諒解される。したがって、様々な態様は、複数の異なる形で実施され得、そのすべてが、請求される主題の範囲内であることが企図されている。
図1は、従来の変換ルックアサイドバッファ(TLB)102の論理構成と例の動作とを示す。従来のTLB 102は、集合的に「従来のTLBエントリ104」(図1に別々には示されていないラベル)と呼ばれる、4つの従来のTLBエントリ104-0、104-1、104-2、および104-3を記憶して図示されている。4つの従来のTLBエントリ104の量は、任意の例である。4つの従来のTLBエントリ104の各々は、TLBタグとTLBマッピングデータとを含む。
4つの従来のTLBエントリ104のTLBタグは、それぞれTLBタグ0、TLBタグ1、TLBタグ2、およびTLBタグ3としてラベルを付けられ、便宜のために、集合的に「TLBタグX」(図1に別々には示されていないラベル)として参照される。従来のTLBエントリ104のTLBマッピングデータは、それぞれTLBデータ0、TLBデータ1、TLBデータ2、およびTLBデータ3としてラベルを付けられ、集合的に「TLBデータX」(図1に別々には示されていないラベル)として参照される。
当業者に既知の従来の技法によれば、TLBタグXの各々は、TLBデータXがそれに関する有効な変換データである可能性がある仮想アドレスブロックを識別することができる。図1の例では、TLBタグ0は、仮想アドレスブロックA0と一致し、同様の形で、TLBタグ1は、仮想アドレスブロックA1と一致し、TLBタグ2およびTLBタグ3は、それぞれ仮想アドレスブロックA2および仮想アドレスブロックA3と一致する。仮想アドレスブロックA0、A1、A2、およびA3は、集合的に「仮想アドレスブロックAX」(図1に別々には示されていないラベル)として参照される。仮想アドレスブロックAXの各々は、図1の例では、図1に示された4キロバイト(KB)である、サイズ(連続仮想アドレスに関して)を有する。サイズは、「グラニュール(granule)サイズ」と呼ばれる可能性がある。
図1を参照すると、従来のTLB 102は、仮想アドレスの素早い変換を提供することができるが、これは、仮想アドレスが有効な従来のTLBエントリ104を保持する仮想アドレスブロックAX内にある場合に限る。仮想アドレスが仮想アドレスブロックAX内にある確率すなわち、TLB「ヒット」の確率は、少なくとも部分的に、有効な従来のTLBエントリ104の個数に依存する。しかし、様々な実施形態では、所与のグラニュールサイズでのTLBヒットの所望の確率を達成することが、エントリの個数が多いことにつながる可能性がある。本開示で前に説明したように、多数の従来のTLBエントリを保持できる従来のTLBキャッシュを設計することは、コスト、たとえばチップ面積および伝搬遅延をこうむる可能性がある。
他の特徴の中でも、それぞれが複数の仮想アドレスブロックのVA-to-PAマッピングを保持するS個の単一TLBエントリの素早く検索可能なセットを提供できるTLBキャッシュを含む方法およびシステムが開示される。便宜のために、開示される態様によるTLBキャッシュの方法、システム、およびプロセスの例の本明細書の説明は、排他的にではないが、「バーストTLBキャッシュ」および「バーストTLBエントリ」というラベルを使用する。「バーストTLBキャッシュ」および「バーストTLBエントリ」が、固有の意味を有しておらず、どの開示される態様の範囲をも限定しない、造り出されたラベルであることを理解されたい。
1つまたは複数の態様による1つのバーストTLBでは、各バーストTLBエントリが、TLBタグとM個の特に構成されたTLBフィールドのセットとを含むことができる。TLBタグは、その代わりに「バーストTLBタグ」として参照される。特に構成されたTLBフィールドは、その代わりに集合的に「変換データユニット」として、および包括的に「変換データユニット」として参照される。「変換データユニット」および「バーストTLBタグ」が、固有の意味を有しておらず、どの開示される態様の範囲をも限定しない、造り出されたラベルであることを理解されたい。
一態様では、バーストTLBエントリのM個の変換データユニットの各々は、M個の仮想アドレスブロックのうちの異なる1つのVA-to-PA変換の情報を保持することができる。したがって、各バーストTLBエントリは、M個の仮想アドレスブロックのVA-to-PAマッピング情報を保持することができる。比較して、従来のTLBは、M個の仮想アドレスブロックのためにM個のTLBエントリを必要とする。
一態様では、バーストTLBタグは、M個の変換データユニットがそれに関するVA-to-PAマッピング情報を集合的に保持する全体的な仮想アドレス範囲を識別する情報を含むことができる。
一態様では、M個の変換データユニットの各々は、変換データ有効性フラグを含むことができる。変換データ有効性フラグは、たとえばビットとすることができる。一態様では、変換データ有効性フラグは、変換データ有効フラグと変換データ無効フラグとの間で切替可能とすることができる。各バーストTLBエントリのバーストTLBタグは、一態様では、バーストエントリ有効性フラグを含むことができる。一態様では、バーストエントリ有効性フラグは、バーストエントリ有効フラグ、たとえば論理「0」または「1」とバーストエントリ無効フラグ、たとえば論理「1」または「0」との間で切替可能とすることができる。一態様では、バーストエントリ有効フラグは、M個の変換データユニット有効フラグの論理和として生成され得る。別の態様では、バーストエントリ有効フラグは、変換データユニット有効フラグとは独立に、選択的にセットされ得る。
一態様では、各バーストTLBエントリデータは、本明細書で説明される特徴に加えて、従来のタイプおよび種類の変換情報を含むことができる。例は、メモリページ属性、キャッシュ可能性/共有可能性、およびアクセス許可を含む。これらおよび他の従来のタイプおよび種類の変換テーブル情報は、当業者に既知であり、したがって、さらなる詳細な説明は省略する。
1つまたは複数の態様による1つの例のバーストTLBでは、Mは、たとえば2つとすることができる。2のMを仮定すると、一例のバーストTLB内の各バーストTLBエントリは、第1の変換データユニット、第2の変換データユニット、およびバーストエントリタグを含むことができる。一態様では、この例のバーストエントリ有効フラグは、第1のTLB変換データユニットと第2のTLB変換データユニットとのそれぞれの変換データ有効性フラグの論理和として生成され得る。2と等しいMは、例示のみのための任意の例である。たとえば、限定なしに、Mを、4と等しいまたは4より大きいものとすることができる。
図2は、様々な態様による、1つのバーストエントリTLB 202を含む配置200を示す。バーストエントリTLB 202は、個々に204-1、204-2…204-s…204-Sとラベルを付けられた例など、量S個のバーストTLBエントリを保持することができる。説明のために、バーストTLBエントリ204-1、204-2…204-Sは、その代わりに集合的に「バーストTLBエントリ204」(図2で別々に可視ではないラベル)として参照される。また、説明のために、バーストTLBエントリ204の任意の1つの拡大図によって示されるそれぞれは、バーストTLBタグ206を含むことができ、4のMを仮定すると、第1の変換データユニット208-1、第2の変換データユニット208-2、第3の変換データユニット208-3、および第4の変換データユニット208-4を含むことができる。第1の変換データユニット208-1、第2の変換データユニット208-2、第3の変換データユニット208-3、および第4の変換データユニット208-4は、集合的に「変換データユニット208」(図2で別々に可視ではないラベル)として参照される。
例のために、4KBのグラニュールサイズが仮定され、これは、変換データユニット208の各々が4KBのVAアドレスのブロックのVA-to-PAマッピングを保持できることを意味する。変換データユニット208は、例のために、4つの連続するVAブロックのVA-to-PAマッピングを保持すると仮定される。この例に加えて、図2では「BD1」としてラベルを付けられた第1の変換データユニット208-1の内容は、VA「0」からVA「4KB-1」までのVA-to-PAマッピングに関する情報とすることができ、ここで、VA「0」は、説明のために、他のVAがそれに対してオフセットされる「0」アドレスとして使用される任意の仮想アドレスとすることができる。図2では「BD2」としてラベルを付けられた第2の変換データユニット208-2の内容は、VA「4KB」から「8KB-1」までのVA-to-PAマッピングに関する情報とすることができる。図2では「BD3」としてラベルを付けられた第3の変換データユニット208-3の内容は、VA「8KB」から「12KB-1」までのVA-to-PAマッピングに関する情報とすることができる。最後に、図2では「BD4」としてラベルを付けられた第4の変換データユニット208-4の内容は、VA「12KB」から「16KB-1」までのVA-to-PAマッピングに関する情報とすることができる。バーストTLBタグ206は、この例の範囲および上で説明された例の4KB粒度に関してVA「0」からVA(16K-1)までになる、4つの変換データユニット208によってまたがれるVA範囲を識別する情報を含むことができる。本開示で使用される時に、ラベル「BTAG」、「BD1」、「BD2」、「BD3」、および「BD4」が、固有の意味を有しておらず、開示される態様のいずれの範囲をも限定しないことを理解されたい。
図3は、図2を参照して上で説明した、任意のバーストTLBエントリ204ーsによって提供され得る例のVA-to-PAマッピング300を示す。図3を参照すると、4つの変換データユニット208は、「A0」、「A1」、「A2」、および「A3」というラベルを付けられた4KB VAの4つの連続するVAブロックを、それぞれ4KBの「P0」、「P1」、「P2」、および「P3」というラベルを付けられた対応する4つのPAブロックにマッピングすることができる。図示されているように、4つのPAブロックは、必ずしも連続的ではなく、必ずしもVAブロックA0、A1、A2、およびA3として順序付けられない(位置に関して)。図3を参照すると、第1の変換データユニット208-1のBD1内容は、VAアドレスブロックA0(0から4KB-1まで)を4KB PAブロックP0にマッピングする情報とすることができる。第2の変換データユニット208-2のBD2内容は、VAアドレスブロックA1(4KBから8KB-1まで)を4KB PAブロックP1にマッピングする情報とすることができる。第3の変換データユニット208-3のBD3内容は、VAアドレスブロックA2(8KBから12KB-1まで)を4KB PAブロックP2にマッピングする情報とすることができ、第4の変換データユニット208-4のBD4内容は、VAアドレスブロックA3(12KBから16KB-1まで)を4KB PAブロックP3にマッピングする情報とすることができる。
図4は、R KBのグラニュールサイズを有する、本開示の態様による1つのバーストエントリTLB内の1つの配置400を示す。図4の配置400は、便宜のために、図2の配置200の変形形態として図示されている。配置400では、図4で「BDR1」というラベルを付けられている第1の変換データユニット208-1の内容は、仮想アドレス(VA)「0」からVA「R KB-1」までの範囲にわたる仮想アドレスのVA-to-PA変換に関する情報とすることができる。図4で「BDR2」というラベルを付けられている第2の変換データユニット208-2の内容は、VA「R KB」から「2R KB-1」までのVA-to-PA変換に関する情報とすることができる。図4で「BDR3」、「BDR4」というラベルを付けられている第3の変換データユニット208-3の内容および第4の変換データユニットの内容は、それぞれVA「2R KB」から「3R KB-1」およびVA「3R KB」から「4R KB-1」までのVA-to-PAマッピングに関する情報とすることができる。一態様では、図4で「BTGR」というラベルを付けられているバーストTLBタグ206の内容は、バーストTLBエントリアドレス範囲情報(図4では可視ではない)を含むことができる。バーストTLBエントリアドレス範囲情報は、各TLBエントリ204-s内の4つの変換データユニット208の集合的内容すなわち、BDR1、BDR2、BDR3、およびBDR4が、VA「0」からVA「4R KB-1」までの仮想アドレスの範囲に関するVA-to-PAマッピング情報を含むことを示すことができる。本開示で使用される時に、ラベル「BTGR」、「BDR1」、「BDR2」、「BDR3」、および「BDR4」が、固有の意味を有しておらず、開示される態様のいずれの範囲をも限定しないことを理解されたい。
図2および図4を参照すると、それぞれの配置200および400は、4と等しいMすなわち4つの変換データユニット208を有することを用いて説明された。したがって、バーストTLBエントリ204の各々は、配置200と400との両方で、4つの仮想アドレスブロックを変換することに関する情報を保持することができる。
図5は、個別に504-1、504-2…504-Tというラベルを付けられた量T個のバーストTLBエントリを保持する例示的なバーストエントリTLB 502を有する1つの例の包括的な配置500を示す。説明のために、バーストTLBエントリ504-1、504-2…504-t…504-Tは、その代わりに、集合的に「バーストTLBエントリ504」(図5で別々に可視ではないラベル)として参照される。バーストTLBエントリ504の構成は、全般的に、上で説明したバーストTLBエントリ204の構成に従うものとすることができ、各バーストTLBエントリ504は、特定の量4ではなく、総称的な量M個の変換データユニットを保持する。前に説明したように、Mは、2の任意の整数べきとすることができる。
バーストTLBエントリ504のすべてを代表することのできるバーストTLBエントリ504-tの拡大図は、これが、バーストTLBタグ506、第1の変換データユニット508-1、第2の変換データユニット508-2…第mの変換データユニット508-m…および第Mの変換データユニット508-M(集合的に「変換データユニット508」(図5で別々に可視ではないラベル)を含むことを示す。変換データユニット508のそれぞれの内容は、「BE1」、「BE2」、…「BEm」…「BEM」というラベルを付けられている。バーストTLBタグ506の内容は、「BTG」というラベルを付けられている。ラベル「BTG」、「BE1」、「BE2」…「BEm」…「BEM」が、固有の意味を有しておらず、開示される態様のいずれの範囲をも限定しないことを理解されたい。
たとえば4KBであるがこれに限定されない特定の粒度を仮定すると、各バーストTLBエントリ504のバーストTLBタグ506の内容BTGは、Mかけるその粒度、たとえばMかける4KBにまたがる仮想アドレスの範囲を示すことができる。より大きい量Mは、より小さい粒度を提供することができ、または、集合的にそのM個の変換データユニット508によって仮想アドレスのより広い範囲のVA-to-PAマッピングに関する情報を保持するバーストTLBエントリ504の各々を提供することができる。本開示のより後の、バーストTLBエントリを検索し、選択する論理と、変換データユニット508の間で選択する論理との説明をより詳細に読む時にさらに理解されるように、より大きい量Mは、たとえばチップ面積および伝搬遅延というコストを有する可能性がある。
図6は、1つまたは複数の態様による、バーストTLB 600の特徴を示す。一態様によるTLB 600は、バーストTLBデータセットバッファ602を含むことができる。TLBデータセットバッファ602は、たとえば、第1のバーストTLBデータセット604-1、第2のバーストTLBデータセット604-2…および第SのバーストTLBデータセット604-Sを含むバーストTLBデータセットのセットを保持することができ、それらは、説明のために、その代わりに集合的に「バーストTLBデータセット604」(図6に別々のラベルとしては現れない)として参照される。バーストTLBデータセット604の各々は、一般に、図2を参照して説明したバーストTLBエントリ204の各々の4つの変換データユニット208として構成され得る。したがって、バーストTLBデータセット604の各々は、M個の変換データユニットを含むことができ、Mは、上で説明したように2の整数べきである。この例に関して、Mは4として仮定される。4つの変換データユニットは、集合的に「変換データユニット605」(図6に別々のラベルとしては現れない)として参照される、第1の変換データユニット605-1、第2の変換データユニット605-2、第3の変換データユニット605-3、および第4の変換データユニット605-4を含む。変換データユニット605は、一般に、本開示で前に説明した変換データユニット208および508に従って構成され得る。一態様では、4つの変換データユニット605の各々は、本開示で前に識別された変換データ有効性フラグを含むことができる。
図6を参照すると、バーストTLBタグバッファ606は、各バーストTLBデータセット604に関連して、バーストTLBタグ、たとえば、説明のためにその代わりに集合的に「バーストTLBタグ608」(図6に別々のラベルとしては現れない)として参照される、第1のバーストTLBタグ608-1、第2のバーストTLBタグ608-2…および第SのバーストTLBタグ608-Sを保持することができる。第1のバーストTLBタグ608-1および第1のバーストTLBデータセット604-1は、組み合わされて、第1のバーストTLBエントリ(図6では別々にラベルを付けられていない)を形成することができ、この第1のバーストTLBエントリは、図2を参照して説明した第1のバーストTLBエントリ204-1として機能することができる。同様に、第2のバーストTLBタグ608-2および第2のバーストTLBデータセット604-2は、組み合わされて、第2のバーストTLBエントリ(図6では別々にラベルを付けられていない)を形成することができ、この第2のバーストTLBエントリは、図2を参照して説明した第2のバーストTLBエントリ204-2として機能することができる。一態様では、バーストTLBタグ608は、それぞれ、本開示で前に説明したものなどのバーストTLBエントリ有効性フラグ(図6内で明示的に可視ではない)を含むことができる。
図6を参照すると、バーストTLB 600は、バーストTLBエントリ選択論理610を含むことができる。バーストTLBエントリ選択論理610は、仮想アドレスおよびオプションで関連する他の情報(たとえば、コンテキスト情報)の受信時に、ステップ1検索被比較数を形成し、そのステップ1検索被比較数をバーストTLBタグ608の各々と比較できるように構成され得る。ステップ1検索被比較数は、たとえば、受信された仮想アドレスの指定されたビットである、上で説明した「VAタグビット」とすることができる。一態様では、「一致」は、a)VAタグビットがバーストTLBタグ608のうちの少なくとも1つ内に保持されたアドレス範囲に含まれる(一致する)ことと、b)一致するバーストTLBタグ608に対応するTLBエントリのうちの少なくとも1つが有効であることとを含むことができる、2つの条件の同時発生によって確立され得る。後者の条件は、本開示で前に説明したバーストエントリ有効性フラグから判定され得る。
図6を参照すると、一態様では、バーストTLBエントリ選択論理610は、1つまたは複数の一致するバーストTLBタグ608に関連するそれぞれのアドレスをアドレスデコーダ612に通信するように構成される。バーストTLBデータセット604は、行として配置され得、したがって、アドレスデコーダ612は、行デコーダとして構成され得る。そのように構成されて、バーストTLBエントリ選択論理610から各アドレスを受信する時に、アドレスデコーダ612は、行としてバーストTLBデータセット604を選択することができる。この行は、M個の変換データユニットを含み、図6の例では、Mは4と等しい。
一態様では、列選択/行デコーダ614は、「セレクトビット(select bit)」と呼ばれるビットを仮想アドレスから受信し、セレクトビットに基づいて、候補の一致する変換データユニットとして4つ(または、4以外のMに関して他の複数)の変換データユニット605のうちの1つを選択するように構成され得る。選択は、仮想アドレスの指定されたビットに基づくものとすることができ、それらは、その代わりに「選択ビット(selection bit)」と呼ばれる。選択ビットの個数は、一態様ではMの2を底とする対数とすることができる。したがって、Mが2である場合に、1つの選択ビットが要求され、Mが4である場合に、2つの選択ビットが要求される。一態様では、バーストTLB 600は、一致論理616を含むことができ、一致論理616は、候補の一致する変換データユニット内に記憶された情報を、バーストTLBエントリ選択論理610によって使用されるステップ1検索被比較数またはその所定の部分と比較するように構成され得る。例示として、18ビット仮想アドレスを受信する例のバーストTLB(600)を仮定する。この例での被比較数は、仮想アドレスの最上位6ビット(仮想アドレスアドレスビット[15:12])からなる。この例の検索被比較数の任意のビット値が「001010」になると仮定する。また、第2のバーストTLBタグ608-2が、「001010」というこの例の被比較数と一致すること仮定する。この例のTLB 600の動作は、バーストTLBエントリ選択論理610が、「001010」を使用して、第2のバーストTLBタグ608-2を選択することを含むことができる。選択は、被比較数ビット「001010」が、検索被比較数に関連する仮想アドレスを含む第2のバーストTLBタグ608-2アドレス範囲値と一致することに基づく。アドレスデコーダ612は、第2のバーストTLBタグ608-2からの情報を使用して、第2のバーストTLBデータセット604-2を選択し、第2のバーストTLBデータセット604-2を列選択/行デコーダ614に供給することができる。次いで、列選択/行デコーダ614は、この例(Mが4である)に関して2ビットを含む仮想アドレスからのセレクトビットを使用して、第2のバーストTLB変換データセットの4つの変換データユニット605のうちの1つを選択することができる。1つまたは複数の態様による動作では、選択された変換データユニット605が有効であり、検索被比較数に関連する仮想アドレスを含むアドレス範囲に関係する場合に、一致論理616は、少なくとも部分的に、一致を識別する。次いで、ブロック618によって表される機能性は、選択された変換データユニット内に記憶された変換情報を使用して、仮想アドレスのVA-to-PA変換の動作を適用することができる。一致論理616が一致を検出しない場合には、TLBミスが報告され得る。
図6を参照すると、一態様では、被比較数と一致するバーストTLBタグ608のバーストTLBタグバッファ606を検索するバーストTLBエントリ選択論理610の上で説明した動作は、説明のために、「ステップ1検索」と呼ばれ得る。列選択/行デコーダ614および一致論理616の上で説明した動作は、「ステップ2検索」と呼ばれ得る。ステップ1検索に使用される被比較数の部分(たとえば、仮想アドレスの割り当てられたビット)は、「ステップ1検索被比較数」と呼ばれ得る。ステップ2検索に使用される被比較数の部分(たとえば、仮想アドレスの割り当てられたビット)は、「ステップ2検索被比較数」と呼ばれ得る。ステップ1検索被比較数の形成が、全体的にまたは部分的に、バーストTLB 600の外部の外部で実施され得ることを理解されたい。
一態様では、ステップ1検索被比較数をバーストTLBタグ608と比較する動作が、複数のバーストTLBタグ608との一致を作る場合がある。さらなる態様では、バーストTLBエントリ選択論理610は、複数一致の場合に、順次ステップ1検索が一致するバーストTLBタグ608のうちの最初のバーストTLBタグを取り出すように構成され得る。ステップ1検索のシーケンスは、ルールに従うものとすることができる。ルールは、応用例固有とすることができ、様々な応用例に関して、不当な実験なしで、本開示を読む時に、当業者によって識別され、実施され得る。したがって、ルールのさらなる詳細な説明は、省略する。
図6を参照すると、一態様では、バーストTLBタグ608の各々(ならびに、図2および図4を参照して説明した「BTAG」の各々)に含まれるものとして前に説明したバーストエントリアドレス範囲は、バーストエントリプライマリアドレス範囲(図6内で明示的に可視ではない)とすることができる。一態様では、バーストTLBタグ608の各々は、バーストエントリセカンダリアドレス範囲(図6内で明示的に可視ではない)をも含むことができる。バーストエントリセカンダリアドレス範囲は、1つまたは複数の態様で、VA-to-PA変換情報を見つけること以外の目的のためにバーストTLBタグの間で選択するのに使用され得る。1つの目的は、バーストTLBタグ608などのバーストTLBタグのアドレス可能な選択的な無効化とすることができる。
一態様では、バーストTLB 600は、そのバーストTLBタグ608の選択的無効化を提供するように構成され得る。図6を参照すると、別の態様では、図示の無効化被比較数などの被比較数が、バーストTLBタグバッファ606に提示され得る。無効化被比較数は、特定のバーストTLBタグ608のバーストエントリセカンダリアドレス範囲内に含まれるようにセットされた無効化アドレス(図6内で可視ではない)を含むことができる。次いで、すべてのバーストTLBタグ608のバーストエントリセカンダリアドレス範囲が、無効化被比較数と比較され得る。バーストTLBタグ608が、無効化被比較数と一致するバーストエントリセカンダリアドレス範囲を有する時に、バーストTLBタグ608は、「無効化」され得る。無効化は、たとえば、そのバーストTLBエントリ有効性フラグをバーストTLBエントリ無効フラグに切り替えることを含むことができる。無効化被比較数は、追加の情報、たとえば、コンテキストおよび/またはアドレス空間識別子を含むことができる。そのような情報は、従来のTLB技法で使用される情報を含むことができる。一態様では、無効化プロセスは、バーストエントリセカンダリアドレス範囲との上で説明した比較に加えて、そのような情報をバーストTLBタグ608内の対応する情報と比較することを含むことができる。
図7は、様々な態様による、1つのバーストエントリTLB内の例の動作の流れ図700を示す。図7を参照して例を説明する際に、「流れ700」という用語は、流れ図700に従う動作を含む例のプロセスを意味すると理解される。一態様では、流れ700は、仮想アドレスを受信する動作を有する702で開始することができる。流れ700は、これに応答して、704に進み、たとえば図6を参照して説明したように、第1のステップ検索の動作を適用することができる。704での動作は、たとえば、「一致」がある可動化を判定するために、図6の一致論理616が、仮想アドレスの指定されたタグビットすなわち「VAタグビット」をバーストTLBタグ608と比較することを含むことができる。判断ブロック706から出る「No」分岐によって示されるように、第1のステップ検索の704での動作が一致を見つけない場合、流れ700は、708に進み、「ミス」を報告し、次いで、710に進み、新しいバーストTLBエントリの作成の動作を適用し、その作成されたTLBバーストエントリを用いてバーストTLBを更新することができる。そのような動作の例は、本開示のより後でさらに詳細に説明される。
図7を参照すると、704での動作が、バーストTLBタグのうちの1つまたは複数(たとえば、バーストTLBタグ608のうちの1つまたは複数)がVAタグビットに一致することを見つける場合に、流れ700は、判断ブロック706から出る「Yes」分岐によって示されるように、712に進み、対応するバーストTLBデータセットに対して第2のステップ検索の動作を適用することができる。たとえば、図6を参照すると、712での動作は、一致するバーストTLBタグ608に対応するバーストTLBデータセット604に対して第2のステップ検索を実行することができる。第2のステップ検索の712での動作は、上で説明した選択ビットを使用して、候補の一致する変換データユニットとしてM個の変換データユニットのうちの1つを選択することと、候補の一致する変換データユニットの内容をステップ1被比較数と比較することとを含むことができる。712での比較動作は、たとえば、バーストTLB 600の一致論理616によって実行され得る。判断ブロック714から出る「Yes」分岐によって示されるように、一致がある場合に、流れ700は、716に進み、仮想アドレスのVA-to-PA変換を実行することができる。716でのVA-to-PA動作は、たとえば、バーストTLB 600のブロック618に関して上で説明した機能性によって実行され得る。
図7を参照すると、712での比較動作が、候補の一致する変換データユニットがステップ1被比較数と一致しないことを示す場合には、判断ブロック714から出る「No」分岐によって示されるように、流れ700は708に進み、「ミス」を報告し、その後、710に進み、新しいバーストTLBエントリの作成の動作を適用することができる。一態様では、新しいバーストエントリの作成は、候補の一致する変換データユニットに関連するバーストTLBデータセット604を変更されないままにし、対応する新しいバーストTLBデータセット604を作成することができる。別の対応では、候補の一致する変換データユニットに関連するバーストTLBデータセット604は、たとえばそのバーストTLBエントリ有効性フラグをバーストTLBエントリ無効フラグに切り替えることによって、無効化され得る。図7のブロック710と図6とを参照すると、一態様では、バーストTLB 600は、M個(たとえば4つ)すべてを更新することなく、個々のTLB変換データユニットを更新するように構成され得る。一態様では、個々のTLB変換データユニットのそのような更新は、1つまたは複数の一致するバーストTLBタグ608を生じるステップ1検索に応答して実行され得るが、一致は、ステップ2検索すなわちステップ1検索被比較数と候補の一致する変換データユニットの内容との比較によって見つけられない。個々のTLB変換データユニット更新は、一態様では、変換データユニットのうちの1つまたは複数内で新しい情報を書き込むか上書きすることと、それぞれについて、対応する有効ビットを有効としてセットすることとによって実行され得る。
図8は、VA空間から中間物理アドレス(IPA)空間への第1のステージ変換802と、IPA空間からPA空間への第2のステージ変換804とを含む2ステージ変換の一部の高水準マッピング図800を示す。例示のために、第1のステージ変換802は、たとえば、限定なしに、ARM(登録商標)「Cortex A」シリーズおよび様々な匹敵するプロセッサタイプのメモリ管理ユニットによって実行される「ステージ1変換」に従うものとすることができる。第2のステージ変換804は、たとえば、限定なしに、ARM(登録商標)「Cortex A」シリーズおよび様々な匹敵するプロセッサタイプのメモリ管理ユニットによって使用される「ステージ2変換」に従うものとすることができる。高水準マッピング図800によって表されるものなどの2ステージ変換の全般的な概念、動作は、当業者に既知であり、したがってそのような概念および動作のさらなる詳細な説明は、省略する。図2および図8を参照すると、例示のために、第1のステージ変換802の例のVA範囲は、バーストTLBエントリ204の16KB範囲に対応する、図2の例に関して16KBであるVA範囲806とすることができる。16KB範囲は、図2を参照して説明したように、バーストTLBエントリ204の4つの変換データユニット208によってまたがれる。図9を参照してより詳細に説明するように、図8によって示される2ステージ変換は、様々な態様では、バーストTLBエントリ204の作成または更新に関連付けられ得る。
図9は、本開示の態様による、バーストエントリTLB内のバーストエントリを生成し、ロードする1つのプロセス内の例の動作の流れ図900を示す。図9を参照して動作を説明する際に、「流れ900」という用語は、流れ図900に従う動作を含む例のプロセスを意味すると理解される。流れ900は、上書きすべきターゲット/犠牲バーストTLBエントリを選択することを仮定する。一態様では、上書きすべきターゲット/犠牲バーストTLBエントリを選択する動作は、流れ900において、当業者によって、不当な実験なしで、本開示を読む時に素早く実行される、既知の従来のTLBのターゲット/犠牲を選択する既知の従来の技法、たとえば「置換」の適合とすることができる。したがって、上書きすべきターゲット/犠牲バーストTLBエントリの選択のさらなる詳細な説明は、省略する。
流れ900による動作は、キャッシュロードイベントの表示の検出または受信の時に、902で開始することができる。902でのキャッシュロードイベントは、たとえば、判断ブロック706から708に出る「No」分岐によって示される図7のステップ1ミスとすることができる。902で検出されまたは受信されるキャッシュロードイベントは、たとえば、判断ブロック714から708に出る「No」分岐によって示されるステップ2ミスとすることができる。一態様では、902でのキャッシュロードイベントは、たとえば、指定されたバーストTLBエントリをバーストTLBに事前にロードするためにアプリケーションプログラム(図内で明示的に可視ではない)によって提供される直接コマンド(図内で明示的に可視ではない)の受信の発生とすることができる。新しいバーストTLBエントリの生成およびロードを開始するために902で検出されまたは受信され得る例のイベントだけがある。
キャッシュロードイベントが902で検出されまたは受信される時に、流れ900は、904に進み、ステージ1マッピング情報のページ906およびステージ2マッピング情報のページ908を取り出す動作を適用することができる。図8および図9を参照すると、ステージ1ページ906は、VAツーIPAの第1のステージ変換802に対応することができ、この例に関して、4KBの図8の例のサイズではなく2MBの図8の例のサイズを有する。同様の形で、ステージ2ページ908は、4KBの図8の例のサイズではなく2MBの図8の例のサイズを有する、IPAツーPAの第2のステージ変換804に対応することができる。次いで、流れ900は、910に進み、ステージ1ページ906およびステージ2ページ908をマージする動作を適用することができる。
図9を参照すると、動作910の後に、流れ900は、912に進み、「関心を持たれているブロック」変換範囲をセットする動作を適用し、次いで、914に進み、「関心を持たれているブロック」の外部の変換情報を破棄する動作を適用することができる。図2、図8、および図9を参照すると、1つの例の関心を持たれているブロックは、図2のバーストTLBエントリ204-sを参照して説明した16KB仮想アドレス空間とすることができる。
これは、たとえば、図8に示された仮想アドレス空間806の16KB範囲に対応することができる。914で破棄される「関心を持たれているブロック」の外部の変換情報は、図8を参照すると、それぞれ4KBの4つのIPAブロック(図8に示されているが別々に番号を付けられてはいない)内ではなく、それぞれ4KBの4つのPAブロック(図8に示されているが別々に番号を付けられてはいない)内ではない、IPAアドレスへのステージ1マッピング変換情報に対応することができる。
914での動作の後に、流れ900は、次いで、916に進み、新しい(または更新された)「関心を持たれているブロック」バーストTLBエントリ918を用いてバーストTLBを更新する動作を適用することができる。916での動作は、上書きされまたは更新される前に犠牲/ターゲット「関心を持たれているブロック」バーストTLBエントリを無効化することをも含むことができる。
図10は、別の態様による、バーストエントリTLB内のバーストエントリを生成し、ロードする1つの代替のプロセス内の例の動作の流れ図1000を示す。図10を参照して例を説明する際に、「流れ1000」という用語は、流れ図1000に従う動作を含む例のプロセスを意味すると理解される。上で図9の流れ900を参照して説明したように、バーストエントリTLB内のバーストエントリの図10ローディングは、上書きすべきターゲット/犠牲バーストTLBエントリを選択することを含むことができることを理解されたい。上でも説明したように、そのような動作は、既知の従来のTLBのターゲット/犠牲を選択するための既知の従来の技法、たとえば「置換」の適合とすることができ、したがって、さらなる詳細な説明は省略する。
図10を参照すると、流れ1000は、キャッシュロードイベントを検出しまたは受信することによって1002で開始することができる。キャッシュロードイベントは、たとえば、図9のブロック902を参照して上で説明した例のキャッシュロードイベントのいずれかとすることができる。1002でのキャッシュロードイベントの際に、流れ1000は、1004に進み、ステージ1ページ1006およびステージ2ページ1008を取り出すための動作を適用することができる。情報は、たとえば、その例が図11を参照してより詳細に説明される、メインメモリ内の変換テーブル(図内で明示的に可視ではない)から取り出され得る。1004での動作の後に、流れ1000は、1010に進み、ステージ1ページ1006およびステージ2ページ1008をマージする動作を適用することができる。次いで、流れ1000は、1012に進み、変換サイズ(すなわち、プライマリアドレス範囲バーストエントリタグ(たとえば、図6のバーストTLBタグ608)内で符号化されるアドレス範囲)をセットする動作を適用する。一態様では、1012での動作は、有効ページサイズおよびバーストTLBグラニュールサイズの中で最大のものとして変換サイズをセットすることができる。有効ページサイズは、図10を参照すると、この例では2Mバイトであるステージ1ページサイズおよびステージ2ページサイズの中からの最小値とすることができる。バーストTLBグラニュールサイズは、図2を参照すると、図2の変換データユニット208の4KBバーストTLBグラニュールサイズとすることができる。より一般的な例では、1010での動作に利用されるバーストTLBグラニュールサイズは、図4のバーストTLBデータユニット408のR KBバーストTLBグラニュールサイズとすることができる。変換サイズをセットする1012での動作は、たとえば、下記として表現することができる。
変換サイズ(バーストTLBタグのプライマリアドレス範囲内で符号化される)を、
max(有効ページサイズ, 2Q×バーストTLBグラニュールサイズ) (式1)
にセットする。ただし、Q=Mの2を底とする対数。
したがって、変換サイズは、式1によれば、有効ページサイズとMかけるバーストTLBグラニュールサイズとの間の最大値である。
一態様では、1010での動作は、無効化サイズ(バーストTLBタグのセカンダリアドレス範囲内で符号化される)をセットすることをも含むことができる。無効化サイズは、たとえば、下記として表現することができる。
max(無効化ページサイズ, 2Q×バーストTLBグラニュールサイズ) (式2)
ただし、無効化ページサイズは、ステージ1ページサイズ(906)である。
したがって、無効化サイズは、式2によれば、ステージ1ページサイズ1006とMかけるバーストTLBグラニュールサイズとの間の最大値である。
変換サイズをセットする1012での動作の際に、流れ1000は、1014に進み、対応するVA-to-PAマッピング情報を有する新しい(または更新された)バーストTLBエントリ1016を用いてバーストTLBを更新する動作を適用することができる。1014での動作は、上で説明した上書きまたは更新に関連して、上書きされまたは更新される前に、犠牲/ターゲットTLBエントリを無効化することを含むことができる。犠牲/ターゲットTLBエントリを無効化するための動作は、たとえば、バーストTLBエントリの有効フラグを有効から無効に変更することを含むことができる。
当業者は、本開示全体を読む時に、動作1014および新しい(または更新された)バーストTLBエントリ1016が、少なくとも部分的に、有効ページサイズとMかけるバーストTLBグラニュールサイズの量との相対サイズに依存し得ることを理解することができる。たとえば、有効ページサイズが、M(または2Q)かけるバーストTLBグラニュールサイズより大きい場合に、1014での動作は、M個すべての変換データユニット内で同一の変換データをセットすることができる。一態様では、1014での動作は、各M個の変換データユニットのデータ有効フラグを「有効」にセットすることもできる。図10の新しい(または更新された)バーストTLBエントリ1016は、この態様による例として示され、例のバーストTLBデータ(「バーストTLBデータ1、バーストTLBデータ2…バーストTLBデータ4」というラベルを付けられている)の4つすべてが、「0」から(2MB-1)の範囲(この例では)を変換するための同一の情報を保持する。「0」アドレスに関して、これは、説明のために基準として使用される任意のアドレスとすることができる。代替案では、やはり有効ページサイズがM(または2Q)かけるバーストTLBグラニュールサイズより大きい場合に、1014での動作は、特定の固定されたバーストTLBデータ位置に変換を記憶し、このバーストTLBデータ位置有効フラグに有効をセットすることができる。
図10を参照すると、一態様では、有効ページサイズが2Q(または整数M)×バーストTLBグラニュールサイズ以下である場合に、1014での動作は、有効ページサイズに対応するバーストTLBデータを投入し、これらのバーストTLBデータフラグを有効にセットすることができる。
図11は、本開示の1つまたは複数の態様が有利に使用され得るワイヤレスデバイス1100を示す。
ここで図11を参照すると、ワイヤレスデバイス1100は、システムバス(図11内で可視であるが、別々のラベルを付けられていない)によって相互接続されたCPU 1104、プロセッサメモリ1106、およびメモリ管理ユニット(MMU) 1107を有するプロセッサ1102を含む。MMU 1107は、図6のバーストTLB 600として構成され得るバーストTLB 600を含むことができる。CPU 1104は、プロセッサメモリ1106または外部メモリ1110にアクセスするための仮想アドレスを生成することができる。仮想アドレスは、システムバスを介してMMU 1107に通信され得る。MMU 1107は、これに応答して、たとえば図6を参照して説明したように、まずバーストTLB 600を検索する。
ワイヤレスデバイス1100は、図9および図10を参照して説明した様々な方法を実行するように構成され得、図9および図10を参照して説明した方法のいずれかを実行するために、プロセッサメモリ1106または外部メモリ1110から取り出された命令を実行するようにさらに構成され得る。
図11は、プロセッサ1102およびディスプレイ1128に結合されたディスプレイコントローラ1126をも示す。コーダ/デコーダ(コーデック)1134(たとえば、オーディオコーデックおよび/または音声コーデック)は、プロセッサ1102に結合され得る。(モデムを含んでもよい)ワイヤレスコントローラ1140などの他の構成要素も示されている。たとえば、スピーカ1136およびマイクロホン1138が、コーデック1134に結合され得る。図11は、ワイヤレスコントローラ1140が、ワイヤレスアンテナ1142に結合され得ることをも示す。特定の態様では、プロセッサ1102、ディスプレイコントローラ1126、プロセッサメモリ1106、外部メモリ1110、コーデック1134、およびワイヤレスコントローラ1140は、システムインパッケージまたはシステムオンチップデバイス1122内に含まれ得る。
特定の態様では、入力デバイス1130および電源1144は、システムオンチップデバイス1122に結合され得る。さらに、特定の態様では、図11に示されているように、ディスプレイ1128、入力デバイス1130、スピーカ1136、マイクロホン1138、ワイヤレスアンテナ1142、および電源1144は、システムオンチップデバイス1122の外部にある。しかし、ディスプレイ1128、入力デバイス1130、スピーカ1136、マイクロホン1138、ワイヤレスアンテナ1142、および電源1144の各々は、インターフェースまたはコントローラなど、システムオンチップデバイス1122の構成要素に結合され得る。
バーストTLB 600が、プロセッサ1102の必要な部分ではなく、その代わりに、MMUによって「変換」され、システムメモリにリダイレクトされるメモリ要求をMMUに発行する、ハードウェアアクセラレータブロック(図11内で明示的に可視ではない)、たとえばカメラシステム、ビデオエンコーダ、ディスプレイコントローラを有するMMUの一部とすることができることを理解されたい。
図11は、ワイヤレス通信デバイスを示すが、プロセッサ1102とバーストTLB 600を有するそのMMU 1107が、セットトップボックス、音楽プレイヤ、ビデオプレイヤ、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、コンピュータ、ラップトップ、タブレット、携帯電話機、または他の同様のデバイスに一体化もされ得ることにも留意されたい。
前述の開示されるデバイスおよび機能性は、設計され、1つまたは複数のコンピュータ可読媒体上に記憶されるコンピュータファイル(たとえば、RTL、GDSII、GERBERなど)内に構成され得る。そのようなファイルの一部またはすべてが、そのようなファイルに基づいてデバイスを製造する製造ハンドラ(fabrication handler)に供給され得る。結果として得られる製品は、半導体ウェハを含み、次いで、半導体ウェハは半導体ダイに切断され、半導体チップにパッケージングされる。次いで、この半導体チップが、上述のデバイス内で使用される。
当業者は、情報および信号が、様々な異なる技術および技法のいずれかを使用して表現され得ることを諒解する。たとえば、上の説明全体を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、あるいはその任意の組合せによって表現され得る。
さらに、本明細書内で開示される諸態様に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施されてもよいことが当業者には諒解されよう。コンピュータソフトウェアは、プロセッサによって実行される時に、プロセッサに説明する態様に従ってステップおよび関連する動作を実行させることができる命令を含む非一時的コンピュータ可読媒体を含んでもよい。ハードウェアおよびソフトウェアの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、概してそれらの機能性に関して上で説明された。そのような機能性がハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例およびシステム全体に課される設計制約に依存する。当業者は、特定の応用例ごとに変化する形で説明された機能性を実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈されてはならない。
本明細書で説明した様々な方法、シーケンス、および/またはアルゴリズムは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで実施されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で既知の任意の他の形の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替案では、記憶媒体は、プロセッサに一体とされ得る。
上記の開示は、本発明の説明的な例および適用例を示したものであるが、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が加えられてもよいことに留意されたい。請求する方法に記載する機能、ステップ、および/または行為は、特定の順序で実行される必要はない。さらに、特徴は、単数形で説明または請求されていることがあるが、単数形への限定が明示的に述べられていない限り、複数形が想定される。
102 従来の変換ルックアサイドバッファ(TLB)
104 従来のTLBエントリ
104-0 従来のTLBエントリ
104-1 従来のTLBエントリ
104-2 従来のTLBエントリ
104-3 従来のTLBエントリ
200 配置
202 バーストエントリTLB
204 バーストTLBエントリ
204-1 バーストTLBエントリ
204-2 バーストTLBエントリ
204-s バーストTLBエントリ
204-S バーストTLBエントリ
206 バーストTLBタグ
208 変換データユニット
208-1 第1の変換データユニット
208-2 第2の変換データユニット
208-3 第3の変換データユニット
208-4 第4の変換データユニット
300 VA-to-PAマッピング
400 配置
500 配置
502 バーストエントリTLB
504 バーストTLBエントリ
504-1 バーストTLBエントリ
504-2 バーストTLBエントリ
504-t バーストTLBエントリ
504-T バーストTLBエントリ
506 バーストTLBタグ
508 変換データユニット
508-1 第1の変換データユニット
508-2 第2の変換データユニット
508-m 第mの変換データユニット
508-M 第Mの変換データユニット
600 バーストTLB
602 バーストTLBデータセットバッファ
604 バーストTLBデータセット
604-1 第1のバーストTLBデータセット
604-2 第2のバーストTLBデータセット
604-S 第SのバーストTLBデータセット
605 変換データユニット
605-1 第1の変換データユニット
605-2 第2の変換データユニット
605-3 第3の変換データユニット
605-4 第4の変換データユニット
606 バーストTLBタグバッファ
608 バーストTLBタグ
608-1 第1のバーストTLBタグ
608-2 第2のバーストTLBタグ
608-S 第SのバーストTLBタグ
610 バーストTLBエントリ選択論理
612 アドレスデコーダ
614 列選択/行デコーダ
616 一致論理
700 流れ図
800 高水準マッピング図
802 第1のステージ変換
804 第2のステージ変換
806 VA範囲
900 流れ図
906 ステージ1マッピング情報のページ
908 ステージ2マッピング情報のページ
1000 流れ図
1006 ステージ1ページ
1008 ステージ2ページ
1016 バーストTLBエントリ
1100 ワイヤレスデバイス
1102 プロセッサ
1104 CPU
1106 プロセッサメモリ
1107 メモリ管理ユニット(MMU)
1110 外部メモリ
1122 システムインパッケージまたはシステムオンチップデバイス
1126 ディスプレイコントローラ
1128 ディスプレイ
1130 入力デバイス
1134 コーダ/デコーダ(コーデック)
1136 スピーカ
1138 マイクロホン
1140 ワイヤレスコントローラ
1142 ワイヤレスアンテナ
1144 電源

Claims (25)

  1. 仮想アドレスを変換するための方法であって、
    被比較数を受信するステップであって、前記被比較数は、仮想アドレスを含む、受信するステップと、
    バーストエントリタグへの前記被比較数の一致を判定する際に、
    候補の一致する変換データユニットを選択するステップであって、前記選択は、複数の変換データユニットからであり、前記複数の変換データユニットは、前記バーストエントリタグに関連し、前記複数の変換データユニットは、対応する複数のデータ有効性フラグに関連し、前記複数のデータ有効性フラグの各フラグは、前記複数の変換データユニットのそれぞれのユニットの有効性を示し、前記選択は、前記仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づ、選択するステップと、
    前記候補の一致する変換データユニットの内容を前記被比較数の少なくとも一部と比較し、前記比較の結果が一致を示す時に、ヒットを生成するステップと
    を含み、
    前記バーストエントリタグは、前記複数のデータ有効性フラグの論理和に少なくとも部分的に基づくバーストエントリ有効性フラグを含み、前記被比較数が前記バーストエントリタグと一致すると判定することは、前記バーストエントリ有効性フラグに少なくとも部分的に基づく、方法。
  2. バーストエントリを記憶するステップをさらに含み、前記バーストエントリは、前記バーストエントリタグと前記複数の変換データユニットとを含む、請求項1に記載の方法。
  3. 前記バーストエントリタグは、バーストエントリアドレス範囲を含み、前記バーストエントリタグへの前記被比較数の前記一致は、前記仮想アドレスが前記バーストエントリアドレス範囲内のアドレスであることに少なくとも部分的に基づく、請求項1に記載の方法。
  4. 前記方法は、
    無効化被比較数を受信するステップと、
    前記バーストエントリタグへの前記無効化被比較数の一致に少なくとも部分的に基づいて、前記バーストエントリタグに対応するバーストエントリを無効化するステップと
    をさらに含む、請求項3に記載の方法。
  5. 前記バーストエントリアドレス範囲は、バーストエントリプライマリアドレス範囲であり、前記バーストエントリタグは、バーストエントリセカンダリアドレス範囲をさらに含み、前記方法は、
    無効化被比較数を受信するステップと、
    前記バーストエントリセカンダリアドレス範囲への前記無効化被比較数の一致に少なくとも部分的に基づいて、前記バーストエントリセカンダリアドレス範囲に対応する前記変換データユニットを無効化するステップと
    をさらに含む、請求項3に記載の方法。
  6. バーストエントリを記憶するステップをさらに含み、前記バーストエントリは、前記バーストエントリタグと前記複数の変換データユニットとを含み、前記バーストエントリ有効性フラグは、バーストエントリ有効フラグとバーストエントリ無効フラグとの間で切替可能である、請求項1に記載の方法。
  7. 前記バーストエントリタグは、バーストエントリアドレス範囲を含み、前記バーストエントリタグへの前記被比較数の前記一致は、前記仮想アドレスが前記バーストエントリアドレス範囲内のアドレスであることに少なくとも部分的にさらに基づく、請求項6に記載の方法。
  8. 前記方法は、
    無効化被比較数を受信するステップと、
    前記バーストエントリタグへの前記無効化被比較数の一致に少なくとも部分的に基づいて、前記バーストエントリ有効性フラグを前記バーストエントリ無効フラグに切り替えるステップと
    をさらに含む、請求項7に記載の方法。
  9. 前記変換データユニットの各々は、変換データ有効性フラグを含み、前記変換データ有効性フラグは、変換データ有効フラグと変換データ無効フラグとの間で切替可能であり、一致を示す前記比較の結果は、前記候補の一致する変換データユニットの前記変換データ有効性フラグが前記変換データ有効フラグであることを要求する、請求項7に記載の方法。
  10. 前記バーストエントリアドレス範囲は、バーストエントリプライマリアドレス範囲であり、前記バーストエントリタグは、バーストエントリセカンダリアドレス範囲をさらに含み、前記方法は、
    無効化被比較数を受信するステップと、
    前記バーストエントリセカンダリアドレス範囲への前記無効化被比較数の一致に少なくとも部分的に基づいて、前記候補の一致する変換データユニットの前記変換データ有効性フラグを前記変換データ無効フラグに切り替えるステップと
    をさらに含む、請求項9に記載の方法。
  11. バーストエントリは、複数のバーストエントリの中にあり、前記バーストエントリの各々は、対応するバーストエントリタグと対応する複数の変換データユニットとを含み、
    各バーストエントリの前記複数の変換データユニットは、M個の変換データユニットを含み、Mは整数であり、
    前記被比較数が前記バーストエントリタグと一致するかどうかを判定することは、前記被比較数が前記バーストエントリのうちの少なくとも1つの前記対応するバーストエントリタグと一致するかどうかを判定することを含む
    請求項1に記載の方法。
  12. 前記M個の変換データユニットの各々は、バーストTLBグラニュールサイズに対応するアドレスのスパンのためのマッピング情報を保持し、前記バーストTLBグラニュールサイズは、前記整数Mと前記バーストエントリタグに対応するアドレス範囲とに基づき、
    前記被比較数が前記バーストエントリタグと一致するかどうかを判定することは、前記被比較数が前記バーストエントリのうちの少なくとも1つの前記対応するバーストエントリタグと一致するかどうかを判定することを含み、
    前記方法は、
    前記バーストエントリタグのいずれもが前記被比較数と一致しないと判定する時に、ミスを検出するステップと、
    前記ミスを検出する時に、更新されたバーストエントリを生成するステップであって、前記更新されたバーストエントリは、前記被比較数を含むアドレス範囲のアドレス変換を含み、
    ステージ1マッピング情報のページを受信するステップであって、ステージ1マッピング情報の前記ページは、ステージ1ページサイズを有する、受信するステップと、
    ステージ2マッピング情報のページを受信するステップであって、ステージ2マッピング情報の前記ページは、ステージ2ページサイズを有する、受信するステップと、
    有効ページサイズを判定するステップであって、前記有効ページサイズは、前記ステージ1ページサイズおよび前記ステージ2ページサイズからの最小値である、判定するステップと、
    変換サイズを
    変換サイズ=max(有効ページサイズ, 2Q×バーストTLBグラニュールサイズ)
    ただし、Q=Mの2を底とする対数
    としてセットするステップと、
    前記変換サイズと、ステージ1マッピング情報の前記ページおよびステージ2マッピング情報の前記ページからのマッピング情報とに基づいて前記更新されたバーストエントリを生成するステップと
    を含む、生成するステップと、
    前記複数のバーストエントリのうちの1つとして前記更新されたバーストエントリを記憶するステップと
    をさらに含む、請求項11に記載の方法。
  13. 有効ページサイズの判定に関連して、
    無効化サイズを
    無効化サイズ=max(無効化ページサイズ, 2Q×バーストTLBグラニュールサイズ)
    としてセットするステップ
    をさらに含み、前記無効化ページサイズは、前記ステージ1ページサイズである
    請求項12に記載の方法。
  14. 前記更新されたバーストエントリを記憶するステップは、前記有効ページサイズとMかける前記バーストTLBグラニュールサイズとの相対サイズに少なくとも部分的に基づく、請求項13に記載の方法。
  15. 前記有効ページサイズが2Qかける前記バーストTLBグラニュールサイズより大きい時に、前記更新されたバーストエントリを記憶するステップは、M個すべての前記変換データユニット内に同一の変換データをセットするステップを含む、請求項14に記載の方法。
  16. 前記更新されたバーストエントリを生成するステップは、関心を持たれているブロックの外部の、ステージ1マッピング情報の前記ページからのマッピング情報、ステージ2マッピング情報の前記ページからのマッピング情報、またはその両方を破棄するステップを含み、前記更新されたバーストエントリは、関心を持たれている前記ブロック内の、ステージ1マッピング情報の前記ページからのマッピング情報、ステージ2マッピング情報の前記ページからのマッピング情報、またはその両方である、請求項12に記載の方法。
  17. 前記仮想アドレスは、1つまたは複数の選択ビットであり、前記候補の一致する変換データユニットを選択することは、前記選択ビットの状態に基づいて、前記複数の変換データユニットの間で選択する、請求項1に記載の方法。
  18. 変換ルックアサイドバッファ(TLB)であって、
    被比較数を受信し、これに応答して、前記被比較数とバーストエントリタグとが一致であるかどうかを判定するように構成されたバーストTLBエントリ選択論理手段であって、前記被比較数は、仮想アドレスを含む、バーストTLBエントリ選択論理手段と、
    前記バーストTLBエントリ選択論理手段が、前記被比較数と前記バーストエントリタグとが一致であると判定することに応答して、候補の一致する変換データユニットを選択するように構成された列セレクタ論理手段であって、前記候補の一致する変換データユニットは、前記バーストエントリタグに関連する複数の変換データユニットの中にあり、前記仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づいて前記候補の一致する変換データユニットを選択するように構成され、前記複数の変換データユニットは、対応する複数のデータ有効性フラグに関連し、前記複数のデータ有効性フラグの各フラグは、前記複数の変換データユニットのそれぞれのユニットの有効性を示すように構成される、列セレクタ論理手段と、
    一致論理手段であって、前記一致論理手段は、前記候補の一致する変換データユニットの内容を前記被比較数の少なくとも一部と比較し、前記比較の結果が一致を示す時に、ヒットを生成するように構成される、一致論理手段と
    を含み、
    前記バーストエントリタグは、前記複数のデータ有効性フラグの論理和に少なくとも部分的に基づいて生成されたバーストエントリ有効性フラグを含み、前記バーストTLBエントリ選択論理手段は、前記バーストエントリ有効性フラグに少なくとも部分的に基づいて前記被比較数と前記バーストエントリタグとが一致すると判定する、TLB。
  19. 前記仮想アドレスは、1つまたは複数の選択ビットであり、前記列セレクタ論理手段は、前記選択ビットの状態に基づいて、前記複数の変換データユニットの間前記候補の一致する変換データユニットを選択するように構成される、請求項18に記載のTLB。
  20. 前記バーストエントリタグは、バーストエントリアドレス範囲を含み、前記バーストTLBエントリ選択論理手段は、前記仮想アドレスが前記バーストエントリアドレス範囲内のアドレスであることに少なくとも部分的に基づいて、前記被比較数と前記バーストエントリタグとが一致であると判定するようにさらに構成される、請求項18に記載のTLB。
  21. 前記バーストエントリアドレス範囲は、バーストエントリプライマリアドレス範囲であり、前記バーストエントリタグは、バーストエントリセカンダリアドレス範囲をさらに含み、前記バーストTLBエントリ選択論理手段は、
    無効化被比較数を受信し、
    前記バーストエントリセカンダリアドレス範囲との前記無効化被比較数の一致に少なくとも部分的に基づいて、前記バーストエントリタグを無効化する
    ようにさらに構成される、請求項20に記載のTLB。
  22. 記バーストエントリ有効性フラグは、バーストエントリ有効フラグとバーストエントリ無効フラグとの間で切替可能であ、請求項20に記載のTLB。
  23. プロセッサによって読み取られ、実行される時に、前記プロセッサに、
    被比較数を受信させるコードであって、前記被比較数は、仮想アドレスを含む、受信させるコードと、
    前記被比較数とバーストエントリタグとが一致であるかどうかを判定させ、前記被比較数とバーストエントリタグとが一致であると判定する時に、
    候補の一致する変換データユニットを選択させ、前記候補の一致する変換データユニットは、前記バーストエントリタグに関連する複数の変換データユニットの中の変換データユニットであり、前記複数の変換データユニットは、対応する複数のデータ有効性フラグに関連し、前記複数のデータ有効性フラグの各フラグは、前記複数の変換データユニットのそれぞれのユニットの有効性を示し、前記仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づいて、前記候補の一致する変換データユニットを選択させ、
    前記候補の一致する変換データユニットの内容を前記被比較数の少なくとも一部と比較させ、前記比較の結果が一致を示す時に、ヒットを生成させる
    コードと
    を含み、
    前記バーストエントリタグは、前記複数のデータ有効性フラグの論理和に少なくとも部分的に基づくバーストエントリ有効性フラグを含み、前記被比較数が前記バーストエントリタグと一致すると判定させるコードは、前記バーストエントリ有効性フラグに少なくとも部分的に基づく、非一時的コンピュータ可読媒体。
  24. 被比較数を受信するための手段であって、前記被比較数は、仮想アドレスを含む、受信するための手段と、
    前記被比較数とバーストエントリタグとが一致であるかどうかを判定し、前記被比較数と前記バーストエントリタグとが一致であると判定する時に、候補の一致する変換データユニットを選択するための手段と、
    前記候補の一致する変換データユニットの内容を前記被比較数の少なくとも一部と比較し、前記比較の結果が一致を示す時に、ヒットを生成するための手段と
    を含み、前記候補の一致する変換データユニットは、複数の変換データユニットの中の変換データユニットであり、前記複数の変換データユニットは、対応する複数のデータ有効性フラグに関連し、前記複数のデータ有効性フラグの各フラグは、前記複数の変換データユニットのそれぞれのユニットの有効性を示し、
    前記候補の一致する変換データユニットを選択することは、前記仮想アドレスの少なくとも1つのビットに少なくとも部分的に基づき、
    前記バーストエントリタグは、前記複数のデータ有効性フラグの論理和に少なくとも部分的に基づくバーストエントリ有効性フラグを含み、判定するための手段は、前記バーストエントリ有効性フラグに少なくとも部分的に基づいて前記被比較数と前記バーストエントリタグとが一致すると判定する、
    変換ルックアサイドバッファ(TLB)。
  25. 前記バーストエントリタグは、バーストエントリアドレス範囲を含み、前記被比較数とバーストエントリタグとが一致であるかどうかを判定するための前記手段は、前記判定を、前記仮想アドレスが前記バーストエントリアドレス範囲内のアドレスであることに少なくとも部分的に基づかせるように構成される、請求項24に記載のTLB。
JP2017552466A 2015-04-15 2016-03-15 バースト変換ルックアサイドバッファ Active JP6317048B1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562148121P 2015-04-15 2015-04-15
US62/148,121 2015-04-15
US14/865,965 US9836410B2 (en) 2015-04-15 2015-09-25 Burst translation look-aside buffer
US14/865,965 2015-09-25
PCT/US2016/022435 WO2016167912A1 (en) 2015-04-15 2016-03-15 Burst translation look-aside buffer

Publications (2)

Publication Number Publication Date
JP6317048B1 true JP6317048B1 (ja) 2018-04-25
JP2018514861A JP2018514861A (ja) 2018-06-07

Family

ID=55637479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017552466A Active JP6317048B1 (ja) 2015-04-15 2016-03-15 バースト変換ルックアサイドバッファ

Country Status (6)

Country Link
US (1) US9836410B2 (ja)
EP (1) EP3283967B1 (ja)
JP (1) JP6317048B1 (ja)
KR (1) KR101895388B1 (ja)
CN (1) CN107533513B (ja)
WO (1) WO2016167912A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417140B2 (en) 2017-02-24 2019-09-17 Advanced Micro Devices, Inc. Streaming translation lookaside buffer
US11030117B2 (en) * 2017-07-14 2021-06-08 Advanced Micro Devices, Inc. Protecting host memory from access by untrusted accelerators
GB2565069B (en) * 2017-07-31 2021-01-06 Advanced Risc Mach Ltd Address translation cache
KR101942663B1 (ko) * 2017-09-28 2019-01-25 한국과학기술원 가상 메모리 주소 변환 효율화를 위한 연속성 활용 주소 변환 방법 및 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
JP2005135396A (ja) * 2003-10-30 2005-05-26 Microsoft Corp アドレス変換制御のためのシャドウ・ページテーブル
JP2011526042A (ja) * 2008-06-26 2011-09-29 クゥアルコム・インコーポレイテッド システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
WO2012015766A2 (en) * 2010-07-28 2012-02-02 Rambus Inc. Cache memory that supports tagless addressing
US8707011B1 (en) * 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US7558939B2 (en) 2005-03-08 2009-07-07 Mips Technologies, Inc. Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor
US7734892B1 (en) 2005-03-31 2010-06-08 Rozas Guillermo J Memory protection and address translation hardware support for virtual machines
US7426626B2 (en) * 2005-08-23 2008-09-16 Qualcomm Incorporated TLB lock indicator
US7822926B2 (en) 2007-04-16 2010-10-26 Arm Limited Cache memory
JP5526626B2 (ja) 2009-06-30 2014-06-18 富士通株式会社 演算処理装置およびアドレス変換方法
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US9092358B2 (en) * 2011-03-03 2015-07-28 Qualcomm Incorporated Memory management unit with pre-filling capability
US9684601B2 (en) * 2012-05-10 2017-06-20 Arm Limited Data processing apparatus having cache and translation lookaside buffer
US9355040B2 (en) * 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US20140281116A1 (en) * 2013-03-15 2014-09-18 Soft Machines, Inc. Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
JP2005135396A (ja) * 2003-10-30 2005-05-26 Microsoft Corp アドレス変換制御のためのシャドウ・ページテーブル
US8707011B1 (en) * 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
JP2011526042A (ja) * 2008-06-26 2011-09-29 クゥアルコム・インコーポレイテッド システムインターフェースへダイレクトアクセスするメモリマネージメントユニット
WO2012015766A2 (en) * 2010-07-28 2012-02-02 Rambus Inc. Cache memory that supports tagless addressing

Also Published As

Publication number Publication date
US9836410B2 (en) 2017-12-05
US20160306746A1 (en) 2016-10-20
CN107533513B (zh) 2021-06-04
EP3283967B1 (en) 2020-07-15
JP2018514861A (ja) 2018-06-07
CN107533513A (zh) 2018-01-02
KR20170137107A (ko) 2017-12-12
WO2016167912A1 (en) 2016-10-20
EP3283967A1 (en) 2018-02-21
KR101895388B1 (ko) 2018-09-07

Similar Documents

Publication Publication Date Title
US10372618B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US8082416B2 (en) Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US20060161758A1 (en) Multiple page size address translation incorporating page size prediction
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US20110145542A1 (en) Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
JPH11203199A (ja) キャッシュ・メモリ
JP6317048B1 (ja) バースト変換ルックアサイドバッファ
JP2015503805A (ja) 物理アドレスを用いる非割当てメモリアクセス
US20170091117A1 (en) Method and apparatus for cache line deduplication via data matching
US9996474B2 (en) Multiple stage memory management
US10713168B2 (en) Cache structure using a logical directory
US9208102B2 (en) Overlap checking for a translation lookaside buffer (TLB)
US11836079B2 (en) Storage management apparatus, storage management method, processor, and computer system
US20120173843A1 (en) Translation look-aside buffer including hazard state
JP2020514859A (ja) 変換索引バッファにおける構成可能なスキューアソシエイティビティ
CN114925001A (zh) 处理器、页表预取方法、电子设备
CN114637700A (zh) 针对目标虚拟地址的地址转换方法、处理器及电子设备
KR20210037216A (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
US10146698B2 (en) Method and apparatus for power reduction in a multi-threaded mode
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171219

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171219

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171219

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180216

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: 20180226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180328

R150 Certificate of patent or registration of utility model

Ref document number: 6317048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150