JP2019096307A - 複数のデータ・タイプのためのデータ・ストレージ - Google Patents
複数のデータ・タイプのためのデータ・ストレージ Download PDFInfo
- Publication number
- JP2019096307A JP2019096307A JP2018213366A JP2018213366A JP2019096307A JP 2019096307 A JP2019096307 A JP 2019096307A JP 2018213366 A JP2018213366 A JP 2018213366A JP 2018213366 A JP2018213366 A JP 2018213366A JP 2019096307 A JP2019096307 A JP 2019096307A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- storage
- data storage
- input
- 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
Links
- 238000013500 data storage Methods 0.000 title claims description 83
- 230000004044 response Effects 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 199
- 238000006243 chemical reaction Methods 0.000 claims description 103
- 230000009466 transformation Effects 0.000 claims description 36
- 230000011664 signaling Effects 0.000 claims 1
- 238000013519 translation Methods 0.000 abstract description 108
- 239000000872 buffer Substances 0.000 abstract description 90
- 238000012423 maintenance Methods 0.000 description 213
- 230000014616 translation Effects 0.000 description 105
- 238000000034 method Methods 0.000 description 75
- 230000008569 process Effects 0.000 description 50
- 238000012545 processing Methods 0.000 description 42
- 230000009471 action Effects 0.000 description 16
- 238000000844 transformation Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 101000712600 Homo sapiens Thyroid hormone receptor beta Proteins 0.000 description 2
- 102100033451 Thyroid hormone receptor beta Human genes 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space 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)
- Human Computer Interaction (AREA)
Abstract
Description
図2は、いくつかの実施例による装置200の実例を示す。この装置は、ルックアップ動作及びメンテナンス動作(集合的に「要求」と呼ばれる)を制御回路240に提供する入力ポート210のセットを備える。入力アドレスを有するルックアップ動作(ルックアップ要求)は、たとえば変換索引バッファ(TLB)の形態を取るルックアップ回路230に渡される。いくつかの実施例では、TLBはDRAMを介して提供され得る。メンテナンス動作(メンテナンス要求)はメンテナンス・キュー220に渡される。そのような装置200は、ストレージ・システムにおける非同期メンテナンスを提供するために使用され得、リクエスタから、入力アドレスを備えるルックアップ動作と、メンテナンス動作とのいずれか1つを受信するための入力ポート210と、少なくとも1つのメンテナンス動作のメンテナンス・キューを記憶するためのメンテナンス・キュー回路220と、入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶するためのアドレス・ストレージ230とを備え、入力アドレスの受信に応答して、出力アドレスがメンテナンス・キューに依存して提供され、メンテナンス動作を記憶することに応答して、メンテナンス・キュー回路が確認応答をリクエスタへ送らせる装置200の一例として提供される。
図4は、選択されたメンテナンス動作が、アドレス・ストレージ230のうちの少なくとも一部をスキャンし、満たされた条件に応答してアクションを実行することを備える実例を示し、スキャンの間、メンテナンス回路250は、満たされたさらなる条件に応答してさらなるアクションを実行し、さらなるアクション及びさらなる条件は、メンテナンス・キューから実行されるべきさらなるメンテナンス動作に対応する。
図5は、メンテナンス・キュー内の重複するメンテナンス動作と重複するアドレス・ストレージ230のエントリに関する入力アドレスに応答して、装置200が重複するメンテナンス動作を優先するように適合された実例を示す。
図6のフローチャートは、メンテナンス・キューが一杯であるときにメンテナンス動作を受信したことに応答して、メンテナンス回路が選択されたメンテナンス動作を実行するように適合される実例に関する。具体的には、図6は、選択が、実行される時間が最も短いメンテナンス・キュー内のメンテナンス動作に基づく実例に関する。
図7は、1つ又は複数の条件に基づいてメンテナンス・キュー内の複数のエントリを結合するための結合回路260の実例を示す。たとえば、いくつかの実施例では、結合回路260は、アドレス・ストレージ230内の隣接するアドレスを結合する。たとえば、アドレスが隣接する同じASID及びVMIDに関連するエントリである。このようにして、メンテナンス動作のキューは、隣接するアドレスに関連する複数のエントリをアドレスの範囲に関する単一のエントリに置換することによって圧縮され得る。
図8は、新しい変換のための少なくとも1つの充填動作をアドレス・ストレージ230に記憶するための充填キュー回路800の実例を示しており、入力ポート210は充填動作を受信するように適合されており、メンテナンス・キュー内の重複するメンテナンス動作と少なくとも一部が重複する充填動作に応答して、充填キュー回路800は充填動作を記憶し、充填動作がメンテナンス動作と完全に重複する場合、メンテナンス・キューからメンテナンス動作が除去され、重複しない場合、重複するメンテナンス動作の優先度が高くなる。
図11は、選択されたメンテナンス動作が、アドレス・ストレージ230のうちの少なくとも一部をスキャンすることと、満たされた条件に応答してアクションを実行することとを備える実例を提供し、入力アドレスに関連する充填動作を受信したことに応答して、入力アドレスが選択された維持動作に関してすでにスキャンされたアドレス・ストレージ230の一部に対応するときに充填動作が実行される。
図12は、プロセッサ要素1220が入力アドレスを入力ポート1210に提供する、いくつかの実施例による装置1200を示す。入力アドレスは、入力アドレスと出力空間内の出力アドレスとの間の変換を記憶する変換索引バッファ(TLB)1230に提供される。出力アドレス・ポート1240は、そのアドレスのメモリ1290にアクセスするために、出力アドレス(又は、出力アドレスのさらなる変換)が出力されることを可能にする。同時に、プロセッサ要素1220は、入力データ・ポート1250を介してデータを受信することができる。いくつかの実施例(図12に示される実施例など)では、入力データ・ポートはメモリ1290から装置1200へのものであり、メモリ1290がアクセスされると、メモリ1290内のその場所におけるデータが装置に戻される。このデータは、たとえば、DRAMによって支援される(backed)キャッシュ1260に記憶され得る。最後に、データが出力される出力データ・ポート1270がある。図12に示される実施例などのいくつかの実施例では、データ出力ポートは、装置1200がデータをプロセッサ要素に戻すことを可能にするために設けられている。制御回路1280は、TLB1230及び1260を制御するために使用される。さらに、キャッシュ1260はデータを記憶するために使用されるが、いくつかの変換を記憶するためにも使用される。このようにして、TLB1230は、たとえば、そうしなければTLB1230が変換を記憶することができないときに、変換を記憶するためにするストレージ空間をキャッシュ1260から「盗む」。入力データ・ポート1250及び出力データ・ポートが、それらの方法で配置される義務はない点に留意されたい。たとえば、データはプロセッサ要素1220から受信され、メモリ1290に出力され得る。実際には、データがメモリ1290から読み出され、メモリ1290に書き込まれる結果、両方向でデータを受信されて出力され得る。さらに、様々なポート1210、1240、1250、1270は、入力ポート1210、1250を一緒に、さらに出力ポート1240、1270を一緒に結合すること、又はプロセッサ・ポート1210、1270を一緒に、さらにメモリ・ポート1240、1250を一緒に結合することのいずれかによって、或いはすべての4つのポート1210、1240、1250、1270を一緒に結合することによっても結合され得る。
図15は、いくつかの実施例によるポリシーの実例を示す。具体的には、図15は、ポリシーが複数の場所ごとに、データと比較して変換を記憶するための嗜好を示す実例を示す。ポリシーは、フローチャート1500の形態で示される。ステップ1510において、新たな変換が受信される。ステップ1520において、ストレージ場所wが変換に基づいて決定される。これは、変換の対象である入力アドレス又は出力アドレスに対してモジュラス演算を実行するなど、ハッシュ演算を実行することに基づいて計算され得る。ステップ1530において、現在のアドレス・ミス率がストレージ場所w1560の値xより大きいかどうかが決定される。図15の実例において、wのxの値は1000のうち5である。したがって、この場合のアドレス・ミス率がプロセッサ回路1220によって実行される1000個の命令ごとに5より大きい場合、本プロセスはステップ1540に進み、そこで変換が(たとえば、データ・ストレージ1260内に)記憶される。大きくない場合、ステップ1550において、データ・ミス率がストレージ場所w1570の値yより大きいかどうかが決定される。この場合、値は1000のうち30に設定される。したがって、データ・ストレージ・ミス率がプロセッサ回路1220によって実行される1000個の命令ごとに30より大きい場合、本プロセスはステップ1540に進み、そこで変換がデータ・ストレージ1260に記憶される。或いは、本プロセスはステップ1555に進み、そこでアドレス・ストレージ・アクセス速度がストレージ場所w1580の値zより大きいかどうかが決定される。この場合、値は4のうち3に設定される。したがって、アドレス・ストレージに対するアクセス速度がプロセッサ回路1220によって実行される4つの命令のうち3つを超える場合、本プロセスはステップ1540に進み、そこで変換がデータ・ストレージ1260に記憶される。或いは、本プロセスは1510に戻る。言い換えれば、変換は記憶されない。この実例では、変換は3つの条件のうちのいずれかが満たされた結果としてデータ・ストレージに記憶される。第1は、アドレス・ミス率が第1の変数xよりも大きいことである。この実例では、xの値は、プロセッサ回路1220によって実行される1000個の命令につき5として与えられる。しかしながら、別のシステムでは、この値は、たとえば、実行される1000個の命令につき10個のミスである可能性がある。高いアドレス・ストレージ・ミス率は、システム内で発生する非効率性を示すことができる。したがって、アドレス・ストレージ・ミス率がある点に達すると、システムの効率を上げるために変換を記憶することがより望ましいものとなる。変換が記憶されるために満たされ得る第2の条件は、データ・ミス率が変数yを上回ることである。この実例では、ストレージ場所wの変数yは、実行される1000個の命令当たり30に等しい。しかしながら、別のシステムでは、これは1000個の命令につき40個のミスに等しい可能性がある。データ・ストレージに関する多数のミスは、実行される命令にデータ・ローカリティが乏しいことを示す。したがって、データの記憶のために通常使用される空間は、代わりに変換を記憶するために使用される方がよい場合がある。したがって、データ・ストレージ速度がある点に達すると、変換を記憶することがより望ましい場合がある。変換が記憶されるために満たされ得る第3の条件は、アドレス・ストレージ・アクセス速度が変数zを上回ることである。この実例では、ストレージ場所wの変数zは、実行される4個の命令につき3に等しい。アクセス速度が大きいことは、ストレージ・デバイスのうちの1つに競合があり得ることを示しており、したがって、代わりにデータ・ストレージにデータを記憶することによって作業負荷を分散することが望ましい場合がある。
図17Aは、アドレス・ストレージ1230における入力アドレスのミスに応答して、読出し要求が変換のためにデータ・ストレージ1260に送られる実例を示す。具体的には、処理回路1220からTLB1230において要求が受信される。要求は、対応する出力アドレスが所望される入力アドレスを備える。そのような変換がTLB1230で見つかると、「ヒット」が発生し、出力アドレスが処理回路1220に返送される。見つからない場合、「ミス」が発生し、要求はキャッシュ1260に転送され、キャッシュ1260はいくつかの実施例ではラスト・レベル・キャッシュ(LLC)である。ここで、TLB1230によって使用されるために「盗まれた」キャッシュ1260の一部は、入力アドレスを検索される。「ヒット」が発生した場合、要求された出力アドレスは処理回路1220に返送される。そうでなければ「ミス」が発生し、キャッシュ1260がLLCであるため、これによりページ・ウォークが実行される。TLB1230及びキャッシュ1260が単一のメモリである実例では、転送は同じ回路内で局所的に発生し得る点に留意されたい。しかしながら、そのような状況では、TLB1230によって使用される第1のストレージ場所と、キャッシュ1260によって主に使用される第2の場所との2つの検索が依然として実行され得る。或いは、単一の検索が実行されてもよい。これらの実例の各々において、検索が失敗した場合、処理回路1220によってページ・ウォークが実行される。
図19は、1つ又は複数の処理要素(PE)1900と、相互接続回路1910と、ダイナミック・ランダム・アクセス・メモリ(DRAM)1920と、DRAMコントローラ1930とを備えるデータ処理装置の別の実例を概略的に示す。これは、物理メモリ・アドレスに従ってアクセス可能なメモリ1920と、メモリへのアクセスのための仮想メモリ・アドレスを生成するための1つ又は複数の処理要素1900と、及び1つ又は複数の処理要素によって生成された初期メモリ・アドレスの、メモリに提供された物理メモリ・アドレスへの変換を提供するためのメモリ・アドレス変換装置1915とを備えるデータ処理装置の実例を提供する。いくつかの実例では、ページ属性、読出し、書込み、実行許可などの属性も、変換プロセスの一部として取得され、出力メモリ・アドレスとともに提供され得る。例示的な構成では、1つ又は複数の処理要素1900は、それぞれ、その処理要素によって生成された初期メモリ・アドレスの、メモリに提供された物理メモリ・アドレスへの変換のセットを記憶するためのそれぞれの変換索引バッファ1905を備え、変換索引バッファは、メモリ・アドレス変換装置から変換索引バッファによって記憶されていない変換を要求するように構成されている。
物理メモリ・アドレスに従ってアクセス可能なメモリ1920と、
メモリにアクセスするための仮想メモリ・アドレスを生成するための1つ又は複数の処理要素1900と、
1つ又は複数の処理要素によって生成された仮想メモリ・アドレスを、メモリに提供された物理メモリ・アドレスに変換するためのメモリ・アドレス変換装置1915と
を備えるデータ処理装置の実例を提供する。
しかしながら、DRAM支援TLBアクセス回路2010によるヒットがある場合、任意で、ページ・テーブル・ウォークが終了され得る(段階2210において概略的に示される)。これは必須ではなく、実際にはページ・テーブル・ウォークを完了させることができ、その場合、同じ変換データがページ・テーブルからも取り出されることになるだけである。しかしながら、TLBヒットの場合に2210においてページ・テーブル・ウォークを終了することによって、(もう発生しないページ・テーブル・ウォークの残りの部分に関して)節電が潜在的に達成され得る。
初期メモリ・アドレス空間は仮想メモリ・アドレス空間であり、出力メモリ・アドレス空間は物理メモリ・アドレス空間である、又は、
初期メモリ・アドレス空間は中間物理メモリ・アドレス空間であり、出力メモリ・アドレス空間は物理メモリ・アドレス空間である、又は、
初期メモリ・アドレス空間は仮想メモリ・アドレス空間であり、出力メモリ・アドレス空間は中間物理メモリ・アドレス空間である、
技法を使用して実装され得る。
次に図24を参照すると、いくつかの実例では、制御回路2000は、入力初期メモリ・アドレスが現在変換データ・バッファによって保持されているかどうかの予測を導出するように構成される。この予測が導出され、使用され得る方法については、以下で論じる。
・変換を要求する仮想マシンを示すカテゴリ(たとえば、変換要求の一部を形成する仮想マシン識別子によって示されるように)と、
・複数の初期アドレス空間のうちの初期アドレス空間を示すカテゴリ(たとえば、変換要求の一部を形成するアドレス空間識別子によって示される)と、
・変換を要求するプロセッサのプログラム・カウンタを示すカテゴリ(たとえば、変換要求の一部を形成するプログラム・カウンタ値によって示されるように)と、
・変換が要求される初期アドレスを示すカテゴリ。
図25は、図19のDRAM1920の例示的な構成の態様を概略的に示し、ストレージ場所のアレイを提供するためのダイナミック・ランダム・アクセス・メモリの実例を提供する。
初期メモリ・アドレス空間内の初期メモリ・アドレスと出力アドレス空間内の対応する出力メモリ・アドレスとの間のアドレス変換を定義する変換データを取り出すために、ページ・テーブルにアクセスするステップ(ステップ3100において)と、
初期アドレス空間のサブセットに対して、行及び列内に配置されたストレージ場所のアレイを有する変換データ・バッファに、変換データの1つ又は複数のインスタンスを記憶するステップ(ステップ3110において)と、
アレイの行のそれぞれの部分からの情報をそれぞれ記憶するために複数のエントリをバッファリングするステップ(ステップ3120において)と、
少なくとも初期メモリ・アドレスに依存するキー値に応答して、キー値を、行バッファの少なくとも1つのキー・エントリ(たとえば、少なくとも2つのキー・エントリ)の各々に記憶された情報と比較するために、対応する出力メモリ・アドレスの少なくとも1つの表現を記憶するための関連付けられる値エントリを有する各キー・エントリを比較するステップ(ステップ3130において)と、
を備える要約方法を表す概略的なフローチャートである。
少なくとも1つのキー・エントリのうちのどれが、もしあれば、キー値に一致する情報を記憶する一致するキー・エントリであるかを識別するステップと(ステップ3150において)、
一致するキー・エントリがある場合、少なくとも一致するキー・エントリに関連付けられる値エントリ内の出力メモリ・アドレスの表現を出力するステップ(ステップ3160において)、
のように継続する。
105a プロセッサ
105b プロセッサ
110a 専用の変換索引バッファ
115 メモリ
120 コントローラ
125 相互接続
130 制御回路
135 入力ポート
140 出力ポート
145 メンテナンス・キュー
150 メンテナンス回路
155 アドレス・ストレージ
160 キャッシュ
200 装置
210 入力ポート
220 メンテナンス・キュー回路
230 ルックアップ回路
240 制御回路
250 メンテナンス回路
260 結合回路
310 CPU
800 充填キュー回路
1000 カウンタ
1200 装置
1210 入力アドレス・ポート
1220 プロセッサ要素
1230 変換索引バッファ(TLB)
1240 出力アドレス・ポート
1250 入力データ・ポート
1260 キャッシュ
1270 出力データ・ポート
1280 制御回路
1290 メモリ
1400 領域ポインタ
1410 変換
1420 データ
1500 フローチャート
1560 ストレージ場所w
1570 ストレージ場所w
1580 ストレージ場所w
1600 第1のインジケータ
1610 第2のインジケータ
1650 第1のストレージ場所
1660 第2のストレージ場所
1900 処理要素(PE)
1905 変換索引バッファ
1910 相互接続回路
1915 メモリ・アドレス変換装置
1920 ダイナミック・ランダム・アクセス・メモリ(DRAM)
1930 DRAMコントローラ
2000 制御回路
2005 信号
2010 DRAM支援TLBアクセス回路
2015 信号
2020 ページ・テーブル・ウォーク・アクセス回路
2400 カウンタ回路
2410 比較器
2420 カウンタ
2430 信号
2500 DRAMバンク
2505 ストレージ場所
2510 行バッファ
2515 列マルチプレクサ
2520 行デコーダ
2525 行アドレス
2530 列アドレス
2600 キー値
2610 セット
2620 比較回路
2630 出力回路
2632 出力
2634 回路
2640 出力値
2800 ハッシュ生成器
2810 入力データ
2900 行セレクタ
2920 検出器
2930 ビクティム選択及び削除回路
2940 ストレージ回路
Claims (19)
- プロセッサ回路から入力アドレスを受信するための入力アドレス・ポートと、
前記入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶するためのアドレス・ストレージと、
前記出力アドレスを出力するための出力アドレス・ポートと、
データを受信するための入力データ・ポートと、
前記データを複数の場所のうちの1つに記憶するためのデータ・ストレージと、
前記データ・ストレージに記憶された前記データを出力するための出力データ・ポートと、
前記データ・ストレージに前記入力アドレスと前記出力アドレスとの間の前記変換を記憶させるための制御回路と
を備え、
前記制御回路が、前記入力アドレスが前記アドレス・ストレージ及び前記データ・ストレージにないことに応答してページ・ウォークを発生させるための信号を出すように適合される、装置。 - 前記データ・ストレージと前記アドレス・ストレージが別個のメモリである、請求項1に記載の装置。
- 前記データ・ストレージと前記アドレス・ストレージが同じメモリ内の異なる領域である、請求項1に記載の装置。
- 前記複数の場所がnウェイのセット・アソシエイティブ・メモリの形態を取り、
前記制御回路が、前記データ・ストレージに前記nウェイの1つ又は複数の転用されたウェイに前記変換を記憶させるように適合される、請求項3に記載の装置。 - 前記複数の場所がnウェイのセット・アソシエイティブ・メモリの形態を取り、
前記制御回路が、前記データ・ストレージに前記メモリの1つ又は複数の転用されたセットに前記変換を記憶させるように適合される、請求項3に記載の装置。 - 前記アドレス・ストレージ及び前記データ・ストレージに前記変換が存在しない場合に、前記変換に対する要求に応答して、前記制御回路が、ページ・ウォークを発生させるための信号を出すように適合される、請求項1から5までのいずれか一項に記載の装置。
- 前記アドレス・ストレージによって使用される領域と前記データ・ストレージによって使用される領域との間の境界を示すための領域ポインタを備える、請求項3に記載の装置。
- 置換ポリシーが、前記複数の場所のそれぞれについて、データと比較される変換を記憶するための嗜好を示す、請求項1に記載の装置。
- 前記置換ポリシーが、動的に構成可能である、請求項8に記載の装置。
- 前記制御回路が、前記データ・ストレージに、少なくとも1つの第1の条件に依存して前記入力アドレスと前記出力アドレスとの間の前記変換を記憶させるように適合される、請求項1から9までのいずれか一項に記載の装置。
- 前記第1の条件が、
前記アドレス・ストレージのミス率と、
前記アドレス・ストレージのヒット率と、
前記アドレス・ストレージのアクセス速度と、
前記データ・ストレージのミス率と、
前記データ・ストレージのヒット率と、
前記データ・ストレージのアクセス速度と
を含むリストからのものである、請求項10に記載の装置。 - 前記制御回路が、前記入力アドレスと前記アドレスとの間の前記変換を前記データ・ストレージの一部に記憶させるように適合される、請求項1から11までのいずれか一項に記載の装置。
- 前記一部のサイズが少なくとも1つの第2の条件に依存する、請求項12に記載の装置。
- 前記第2の条件が、
前記アドレス・ストレージのミス率と、
前記アドレス・ストレージのヒット率と、
前記アドレス・ストレージのアクセス速度と、
前記データ・ストレージのミス率と、
前記データ・ストレージのヒット率と、
前記データ・ストレージのアクセス速度と
を含むリストからのものである、請求項13に記載の装置。 - 前記アドレス・ストレージにおける前記入力アドレスのミスに応答して、読出し要求が前記変換のために前記データ・ストレージに送られる、請求項1から14までのいずれか一項に記載の装置。
- ページ・ウォーク要求が出されるのと並行して、前記読出し要求が前記データ・ストレージに送られる、請求項15に記載の装置。
- 入力アドレスに基づいて前記出力アドレスが決定されたことに応答して、前記装置が、前記出力アドレスに関連付けられる前記データ・ストレージに記憶されたデータをフェッチするように適合される、請求項1から16までのいずれか一項に記載の装置。
- プロセッサ回路から入力アドレスを受信するステップと、
アドレス・ストレージにおいて、前記入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶するステップと、
データを受信するステップと、
前記データをデータ・ストレージに記憶するステップと、
前記データ・ストレージに前記入力アドレスと前記出力アドレスとの間の前記変換を記憶させるステップと、
前記入力アドレスが前記アドレス・ストレージ及び前記データ・ストレージにないことに応答して、ページ・ウォークを発生させるための信号を出すステップと
を備える、方法。 - プロセッサ回路から入力アドレスを受信するための手段と、
前記入力アドレスと出力アドレスとの間の変換を出力アドレス空間に記憶するための手段と、
データを受信するための手段と、
前記データを記憶するための手段であって、前記入力アドレスと前記出力アドレスとの間の前記変換を記憶するようになされている、手段と、
前記入力アドレスが前記アドレス・ストレージ及び前記データ・ストレージにないことに応答してページ・ウォークを発生させるための信号を出すための手段と
を備える、装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GR20170100523 | 2017-11-22 | ||
GR20170100523 | 2017-11-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019096307A true JP2019096307A (ja) | 2019-06-20 |
JP7311959B2 JP7311959B2 (ja) | 2023-07-20 |
Family
ID=66532359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018213366A Active JP7311959B2 (ja) | 2017-11-22 | 2018-11-14 | 複数のデータ・タイプのためのデータ・ストレージ |
Country Status (3)
Country | Link |
---|---|
US (1) | US10866904B2 (ja) |
JP (1) | JP7311959B2 (ja) |
KR (1) | KR20190059220A (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6051955A (ja) * | 1983-09-01 | 1985-03-23 | Mitsubishi Electric Corp | 数値制御装置 |
JPH09101916A (ja) * | 1995-10-06 | 1997-04-15 | Fujitsu Ltd | マルチプロセス処理装置 |
US20020062418A1 (en) * | 1998-08-31 | 2002-05-23 | International Business Machines Corporation | Partition of on-chip memory buffer for cache |
US7251710B1 (en) * | 2004-01-12 | 2007-07-31 | Advanced Micro Devices, Inc. | Cache memory subsystem including a fixed latency R/W pipeline |
JP2009003768A (ja) * | 2007-06-22 | 2009-01-08 | Fujitsu Ltd | メモリ共有システム装置 |
JP2016504686A (ja) * | 2012-12-21 | 2016-02-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | アドレス変換プロービングを用いる処理デバイスおよび方法 |
JP2016177687A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社東芝 | メモリシステム |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
US4905188A (en) * | 1988-02-22 | 1990-02-27 | International Business Machines Corporation | Functional cache memory chip architecture for improved cache access |
US5526504A (en) | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
JPH07287668A (ja) * | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
US5960463A (en) * | 1996-05-16 | 1999-09-28 | Advanced Micro Devices, Inc. | Cache controller with table walk logic tightly coupled to second level access logic |
US5915262A (en) * | 1996-07-22 | 1999-06-22 | Advanced Micro Devices, Inc. | Cache system and method using tagged cache lines for matching cache strategy to I/O application |
US5946718A (en) * | 1997-05-30 | 1999-08-31 | National Semiconductor Corporation | Shadow translation look-aside buffer and method of operation |
US6182266B1 (en) | 1997-09-12 | 2001-01-30 | Lucent Technologies, Inc. | Self-auditing protection method for sorted arrays |
US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
EP1182567B1 (en) * | 2000-08-21 | 2012-03-07 | Texas Instruments France | Software controlled cache configuration |
US6697909B1 (en) | 2000-09-12 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory |
US6851070B1 (en) | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
JP4026753B2 (ja) | 2002-07-25 | 2007-12-26 | 株式会社日立製作所 | 半導体集積回路 |
US7810067B2 (en) | 2002-08-30 | 2010-10-05 | Sap Aktiengesellschaft | Development processes representation and management |
US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US20050021925A1 (en) | 2003-07-25 | 2005-01-27 | Clark Lawrence T. | Accessing in parallel stored data for address translation |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7181556B2 (en) | 2003-12-23 | 2007-02-20 | Arm Limited | Transaction request servicing mechanism |
US7433364B2 (en) | 2003-12-24 | 2008-10-07 | Intel Corporation | Method for optimizing queuing performance |
US7562179B2 (en) * | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
GB2451668A (en) | 2007-08-08 | 2009-02-11 | Advanced Risc Mach Ltd | Error correction in a set associative cache |
US9087102B2 (en) | 2007-10-09 | 2015-07-21 | International Business Machines Corporation | Adaptive query processing infrastructure |
US9244855B2 (en) * | 2007-12-31 | 2016-01-26 | Intel Corporation | Method, system, and apparatus for page sizing extension |
US9569349B2 (en) * | 2008-12-19 | 2017-02-14 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
WO2010095182A1 (ja) | 2009-02-17 | 2010-08-26 | パナソニック株式会社 | マルチスレッドプロセッサ及びデジタルテレビシステム |
US8510511B2 (en) | 2009-12-14 | 2013-08-13 | International Business Machines Corporation | Reducing interprocessor communications pursuant to updating of a storage key |
CN102812518B (zh) | 2010-01-28 | 2015-10-21 | 惠普发展公司,有限责任合伙企业 | 存储器存取方法和装置 |
US8756377B2 (en) | 2010-02-02 | 2014-06-17 | Arm Limited | Area and power efficient data coherency maintenance |
US9606867B2 (en) | 2014-06-05 | 2017-03-28 | International Business Machines Corporation | Maintaining data storage in accordance with an access metric |
GB2479780B (en) | 2010-04-22 | 2018-04-04 | Advanced Risc Mach Ltd | Preload instruction control |
US8732430B2 (en) * | 2011-03-22 | 2014-05-20 | Oracle International Corporation | Method and apparatus for using unused bits in a memory pointer |
US8935506B1 (en) | 2011-03-31 | 2015-01-13 | The Research Foundation For The State University Of New York | MemX: virtualization of cluster-wide memory |
US9086989B2 (en) * | 2011-07-01 | 2015-07-21 | Synopsys, Inc. | Extending processor MMU for shared address spaces |
TWI521343B (zh) | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US8930674B2 (en) * | 2012-03-07 | 2015-01-06 | Soft Machines, Inc. | Systems and methods for accessing a unified translation lookaside buffer |
US9081706B2 (en) | 2012-05-10 | 2015-07-14 | Oracle International Corporation | Using a shared last-level TLB to reduce address-translation latency |
US8924832B1 (en) | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US9129071B2 (en) | 2012-10-24 | 2015-09-08 | Texas Instruments Incorporated | Coherence controller slot architecture allowing zero latency write commit |
US9208102B2 (en) | 2013-01-15 | 2015-12-08 | Qualcomm Incorporated | Overlap checking for a translation lookaside buffer (TLB) |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9229854B1 (en) | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
WO2014142867A1 (en) | 2013-03-14 | 2014-09-18 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US9218383B2 (en) | 2013-03-15 | 2015-12-22 | International Business Machines Corporation | Differentiated secondary index maintenance in log structured NoSQL data stores |
US10210096B2 (en) | 2013-10-01 | 2019-02-19 | Ampere Computing Llc | Multi-stage address translation for a computing device |
US9535614B2 (en) | 2013-11-21 | 2017-01-03 | Sandisk Technologies Llc | Temperature based flash memory system maintenance |
US9293188B2 (en) | 2014-02-03 | 2016-03-22 | Advanced Micro Devices, Inc. | Memory and memory controller for high reliability operation and method |
US11531624B2 (en) | 2015-02-06 | 2022-12-20 | Arm Limited | Address translation in a data processing apparatus |
GB2538054B (en) | 2015-04-28 | 2017-09-13 | Advanced Risc Mach Ltd | Data processing apparatus, controller, cache and method |
US20160365137A1 (en) | 2015-06-11 | 2016-12-15 | Broadcom Corporation | Pre-Emphasis and Equalization for DRAM |
US9626300B2 (en) * | 2015-07-27 | 2017-04-18 | Google Inc. | Address caching in switches |
US9678788B2 (en) | 2015-11-10 | 2017-06-13 | International Business Machines Corporation | Enabling poll/select style interfaces with coherent accelerators |
US20170162235A1 (en) | 2015-12-02 | 2017-06-08 | Qualcomm Incorporated | System and method for memory management using dynamic partial channel interleaving |
US10061707B2 (en) * | 2015-12-26 | 2018-08-28 | Intel Corporation | Speculative enumeration of bus-device-function address space |
US9727484B1 (en) * | 2016-01-29 | 2017-08-08 | International Business Machines Corporation | Dynamic cache memory management with translation lookaside buffer protection |
US9846652B2 (en) * | 2016-03-31 | 2017-12-19 | Intel Corporation | Technologies for region-biased cache management |
EP3264317B1 (en) * | 2016-06-29 | 2019-11-20 | Arm Ltd | Permission control for contingent memory access program instruction |
US10719451B2 (en) * | 2017-01-13 | 2020-07-21 | Optimum Semiconductor Technologies Inc. | Variable translation-lookaside buffer (TLB) indexing |
US10380032B2 (en) * | 2017-03-09 | 2019-08-13 | Internatinoal Business Machines Corporation | Multi-engine address translation facility |
JP2019016135A (ja) * | 2017-07-06 | 2019-01-31 | 富士通株式会社 | 情報処理システム、情報処理システムの制御プログラム及び情報処理システムの制御方法 |
US11232037B2 (en) | 2017-10-23 | 2022-01-25 | Seagate Technology Llc | Using a first-in-first-out (FIFO) wraparound address lookup table (ALT) to manage cached data |
US10929308B2 (en) * | 2017-11-22 | 2021-02-23 | Arm Limited | Performing maintenance operations |
US10831673B2 (en) * | 2017-11-22 | 2020-11-10 | Arm Limited | Memory address translation |
-
2018
- 2018-10-24 US US16/169,219 patent/US10866904B2/en active Active
- 2018-11-13 KR KR1020180138866A patent/KR20190059220A/ko not_active Application Discontinuation
- 2018-11-14 JP JP2018213366A patent/JP7311959B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6051955A (ja) * | 1983-09-01 | 1985-03-23 | Mitsubishi Electric Corp | 数値制御装置 |
JPH09101916A (ja) * | 1995-10-06 | 1997-04-15 | Fujitsu Ltd | マルチプロセス処理装置 |
US20020062418A1 (en) * | 1998-08-31 | 2002-05-23 | International Business Machines Corporation | Partition of on-chip memory buffer for cache |
US7251710B1 (en) * | 2004-01-12 | 2007-07-31 | Advanced Micro Devices, Inc. | Cache memory subsystem including a fixed latency R/W pipeline |
JP2009003768A (ja) * | 2007-06-22 | 2009-01-08 | Fujitsu Ltd | メモリ共有システム装置 |
JP2016504686A (ja) * | 2012-12-21 | 2016-02-12 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | アドレス変換プロービングを用いる処理デバイスおよび方法 |
JP2016177687A (ja) * | 2015-03-20 | 2016-10-06 | 株式会社東芝 | メモリシステム |
Also Published As
Publication number | Publication date |
---|---|
US10866904B2 (en) | 2020-12-15 |
US20190155742A1 (en) | 2019-05-23 |
KR20190059220A (ko) | 2019-05-30 |
JP7311959B2 (ja) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7340326B2 (ja) | メンテナンス動作の実行 | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US6427188B1 (en) | Method and system for early tag accesses for lower-level caches in parallel with first-level cache | |
JP5536658B2 (ja) | バッファメモリ装置、メモリシステム及びデータ転送方法 | |
US20170293567A1 (en) | Proxy identifier for data access operation | |
US10380030B2 (en) | Caching of virtual to physical address translations | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US8195881B2 (en) | System, method and processor for accessing data after a translation lookaside buffer miss | |
US20160140042A1 (en) | Instruction cache translation management | |
CN108459975B (zh) | 用于有效使用地址转换缓存的技术 | |
CN115292214A (zh) | 页表预测方法、存储访问操作方法、电子装置和电子设备 | |
US10831673B2 (en) | Memory address translation | |
US20110167223A1 (en) | Buffer memory device, memory system, and data reading method | |
KR102482516B1 (ko) | 메모리 어드레스 변환 | |
JPH10214226A (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
US9639467B2 (en) | Environment-aware cache flushing mechanism | |
US20020188805A1 (en) | Mechanism for implementing cache line fills | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US20200097415A1 (en) | Arithmetic processor, information processing device and control method of arithmetic processor | |
US7143239B2 (en) | Cache structure and methodology | |
GR20180200044U (el) | Μεταφραση διευθυνσεων μνημης | |
GR20180200051U (el) | Μεταφραση διευθυνσεων μνημης | |
GR20180200050U (el) | Πραγματοποιηση λειτουργιων συντηρησης | |
GR20180200062U (el) | Αποθηκευτικος χωρος δεδομενων για πολλαπλους τυπους δεδομενων |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230606 |
|
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: 20230614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230707 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7311959 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |