IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特表2024-536013相乗的手法によってメモリデバイスを保護するための方法及び装置
<>
  • 特表-相乗的手法によってメモリデバイスを保護するための方法及び装置 図1
  • 特表-相乗的手法によってメモリデバイスを保護するための方法及び装置 図2
  • 特表-相乗的手法によってメモリデバイスを保護するための方法及び装置 図3
  • 特表-相乗的手法によってメモリデバイスを保護するための方法及び装置 図4
  • 特表-相乗的手法によってメモリデバイスを保護するための方法及び装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】相乗的手法によってメモリデバイスを保護するための方法及び装置
(51)【国際特許分類】
   G11C 11/409 20060101AFI20240927BHJP
   G06F 12/00 20060101ALI20240927BHJP
   G06F 12/0897 20160101ALI20240927BHJP
   G06F 12/02 20060101ALI20240927BHJP
【FI】
G11C11/409
G06F12/00 560A
G06F12/0897
G06F12/02 590
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515314
(86)(22)【出願日】2022-09-28
(85)【翻訳文提出日】2024-03-27
(86)【国際出願番号】 US2022045046
(87)【国際公開番号】W WO2023055806
(87)【国際公開日】2023-04-06
(31)【優先権主張番号】17/487,961
(32)【優先日】2021-09-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】セイエドモハマッド セイエドザデーデルシェー
(72)【発明者】
【氏名】ヴァムシ レディー コマレディー
【テーマコード(参考)】
5B160
5B205
5M024
【Fターム(参考)】
5B160AA13
5B160AA14
5B205UU31
5M024AA22
5M024AA23
5M024BB35
5M024BB36
5M024JJ03
5M024JJ05
5M024MM09
5M024PP01
(57)【要約】
ダイナミックランダムアクセスメモリ(DRAM)内のクロストークを軽減するための相乗的手法は、乱数発生器を使用して、確率的にカウンタをインクリメントする。カウンタは、ダブルデータレート(DDR)障害切り分け機能のバイトを再生することによって形成される。乱数発生器の値は、所定のパラメータ値と比較され、比較の結果に基づいて、カウンタを抽出し、インクリメントするか否かを決定し得る。論理コントローラは、カウンタ値を所定のホット性閾値パラメータと比較し、ローカルメモリ内のアドレス一致の存在に基づいてフラグが設定される。比較の結果に基づいて、DRAMに対するアクセスが低減される。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピュータシステムであって、
少なくとも1つのプロセッサと、
前記プロセッサに動作可能に結合された少なくとも1つのダイナミックランダムアクセスメモリ(DRAM)アレイと、
前記少なくとも1つのプロセッサに動作可能に結合され、前記DRAMアレイ内のクロストークを軽減するように構成された装置を備えるメモリコントローラと、
複数のデータパケットであって、前記複数のデータパケットの各データパケットは、メモリのラインを表し、前記DRAMアレイ内の各行に対するアクセスを追跡するカウンタを含むように構成されている、複数のデータパケットと、を備える、
コンピュータシステム。
【請求項2】
前記複数のデータパケットの各データパケットは、誤り訂正符号部分と、前記誤り訂正符号部分から再生されたバイトによって形成されたカウンタ部分と、を含むメタデータ部分を含む、
請求項1のコンピュータシステム。
【請求項3】
前記カウンタ部分は、前記DRAMアレイに対してアクセスが行われた回数を追跡するカウンタである、
請求項2のコンピュータシステム。
【請求項4】
前記メモリコントローラは、前記装置によって使用されるデバイスパラメータを記憶するメモリパラメータレジスタを備える、
請求項3のコンピュータシステム。
【請求項5】
前記カウンタは、乱数発生器の値が前記メモリパラメータレジスタに記憶された確率デバイスパラメータよりも小さい場合に、インクリメントされる、
請求項4のコンピュータシステム。
【請求項6】
クロストークを軽減するように構成された前記装置は、
前記メモリパラメータレジスタにロードされた前記確率デバイスパラメータに基づいて確率的に前記カウンタをインクリメントする乱数発生器と、
前記カウンタの値と前記メモリパラメータレジスタにロードされた閾値との比較に基づいて、前記DRAMアレイに対してアクセスが行われるか否かを判定する論理コントローラと、
前記論理コントローラに動作可能に結合されたスタティックランダムアクセスメモリ(SRAM)レジスタと、を備える、
請求項5のコンピュータシステム。
【請求項7】
前記論理コントローラは、前記SRAMレジスタが空であるか否かを示すフラグを含む、
請求項6のコンピュータシステム。
【請求項8】
前記フラグの設定、カウンタ出力値、前記閾値パラメータ及び読み出し要求に基づいて、前記SRAMレジスタからデータパケットを受信するように構成されたラストレベルキャッシュを備える、
請求項7のコンピュータシステム。
【請求項9】
前記SRAMレジスタは、行アドレスの一致及び前記メモリコントローラからの読み出し要求に応じて、データパケットを前記ラストレベルキャッシュに送信し、前記DRAMアレイに対する全てのアクセスをバイパスする、
請求項8のコンピュータシステム。
【請求項10】
前記SRAMレジスタは、行アドレスの一致及び前記メモリコントローラからの書き込み要求に応じて、データパケットを前記SRAMレジスタのメモリ位置に書き込み、前記DRAMアレイに対する全てのアクセスをバイパスする、
請求項8のコンピュータシステム。
【請求項11】
メモリコントローラ内の装置であって、
メインメモリに対するアクセス数をカウントする、データパケット構造に埋め込まれたカウンタと、
確率パラメータに基づいて確率的に前記カウンタをインクリメントする乱数発生器と、
前記メモリコントローラによって設定されたフラグに基づいてアクセスするように構成されたSRAMレジスタと、
前記フラグの設定を決定する論理コントローラと、を備える、
装置。
【請求項12】
メインメモリ内の行のリフレッシュ間隔を決定する前記確率パラメータを記憶するパラメータレジスタを備える、
請求項11の装置。
【請求項13】
前記パラメータレジスタは、ホット性閾値を含む、
請求項12の装置。
【請求項14】
前記カウンタは、前記メインメモリの誤り符号訂正機能の一部から再生されたバイト数のビットを含む、
請求項11の装置。
【請求項15】
メモリコントローラで実行される方法であって、
前記メモリコントローラにおいて行アドレスを受信することと、
前記行アドレス及び前記メモリコントローラによって設定されたフラグに基づいて、オンチップメモリ又はDRAMアレイの何れにアクセスするかを決定することと、を含む、
方法。
【請求項16】
前記決定することは、前記オンチップメモリ内の行アドレスの一致に応じて、前記行アドレスに対応するデータパケットのキャッシュラインを用いて前記オンチップメモリにアクセスすることと、DRAMアレイに対する全てのアクセスをバイパスすることと、を含む、
請求項15の方法。
【請求項17】
前記決定することは、
前記オンチップメモリ内での行アドレスミスに応じて、乱数発生器のランダムな出力を所定の確率パラメータと比較することと、
第1の条件及び第2の条件に基づいて、前記行アドレスに対応する前記データパケットの前記キャッシュラインを用いて前記DRAMアレイにアクセスすることと、を含む、
請求項16の方法。
【請求項18】
前記第1の条件は、前記乱数発生器の出力が前記所定の確率パラメータよりも小さく、前記データパケットのカウンタ値がホット閾値パラメータよりも大きいことに応じて、前記DRAMアレイと、前記オンチップメモリ及びラストレベルキャッシュのうち少なくとも1つ以上と、にアクセスすることを含む、
請求項17の方法。
【請求項19】
前記所定の確率パラメータは、N/Rの比率によって決定され、Nは、R個の行を有する前記DRAMアレイに対する可能な活性化又はアクセスの数であり、前記所定の確率パラメータは、N/Rの逆数よりも大きく、N及びRは正の整数である、
請求項17の方法。
【請求項20】
前記ホット閾値パラメータは、ロウハンマリング閾値及び前記DRAMアレイのワード線内のキャッシュライン数に基づいており、前記ロウハンマリング閾値を前記DRAMアレイのワード線当たりのキャッシュライン数で除算した値よりも小さくなるように選択される、
請求項18の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2021年9月28日に出願され、「METHOD AND APPARATUS FOR PROTECTING MEMORY DEVICES VIA A SYNERGIC APPROACH」と題する米国特許出願第17/487,961号の優先権を主張するものであり、その開示全体が参照により本明細書に組み込まれる。
【0002】
(発明の分野)
様々な実施形態は、概して、メモリデバイス内のクロストークの軽減に関し、より具体的には、ダイナミックランダムアクセスメモリを有するシステム内でクロストークの影響を低減するための方法及び装置に関する。
【背景技術】
【0003】
デスクトップコンピュータ及びモバイルからサーバ及びクラウドプラットフォームまでの全てのコンピューティングシステムにおいて、メインメモリは重要なコンポーネントである。ダイナミックランダムアクセスメモリ(Dynamic Random-Access Memory、DRAM)は、コストが低く、待ち時間が比較的短いため、メインメモリを構築するために使用される主要なデータ記憶技術となっている。DRAM技術プロセススケーリングは、DRAMセルサイズを縮小してメモリ容量及び性能を増加させることを可能にした。DRAMセルのサイズが小さくなるにつれて、DRAM内のキャパシタ及びアクセストランジスタの信頼性が低くなり、概して、クロストークとしてより一般的に知られている電気ノイズ及び外乱(disturbance)に対してより脆弱になる。
【0004】
DRAM技術プロセススケーリングによって引き起こされるクロストークの信頼性の問題は、セキュリティ脆弱性につながる。例えば、DRAM内の同一行(ロウ)を繰り返し読み出したり、アクセスしたりすると、物理的に隣接する行のデータが破損することがある。より具体的には、DRAM行が単一のDRAMリフレッシュ間隔内で繰り返しアクセスされると(ロウハンマリング(行ハンマリング)としても知られるプロセス)、物理的に隣接する行内の1ビット以上が誤った値にフリップされる場合がある。ロウハンマリング攻撃は、メインメモリに記憶されたデータの不正アクセス及び制御をもたらし得る。
【0005】
クロストークを軽減するために様々な解決策が存在する。これらの解決策の多くは、性能及び信頼性を高めるためにチップ面積を犠牲にするので、高価である。性能のために容量を犠牲にしない、改善された解決策が望まれる。
【発明の概要】
【課題を解決するための手段】
【0006】
装置及び関連する方法は、DRAMメモリに対するアクセス数を低減することによってクロストークを軽減する確率的(probabilistic)及び決定論的(deterministic)RAMアクセスモニタ(probabilistic and deterministic ram access monitor、PADRAM)に関する。PADRAMは、DRAMの既存の障害切り分け機能の一部をカウンタとして使用し、乱数発生器を使用することによって確率的にカウンタをインクリメントすることによって、ホット行(hot rows)と呼ばれる頻繁にアクセスされるDRAMの行を追跡する。カウンタ値は、ホット性閾値(hotness threshold)又はホット閾値(hot threshold)パラメータに基づいて、DRAM行がアクセスされるか否かを判定する。ホット性閾値は、ワードに対するDRAMアクセスの総数がロウハンマリング閾値を超えないことを保証するように設定される。ロウハンマリング閾値は、エラーの発生前に行われ得るDRAMに対するワード線アクセスの最小数として定義され得る。本開示では、DRAMは、ダブルデータレート(double data rate、DDR)メモリと同義であり、DDR同期DRAM又はDDR SDRAMと呼ばれることもある。
【0007】
一実施形態では、コンピュータシステムは、少なくとも1つのプロセッサと、プロセッサに動作可能に結合されたDRAMと、を備える。また、コンピュータシステムは、プロセッサに動作可能に結合されたメモリコントローラを含む。メモリコントローラは、DRAMアレイ内のクロストークを軽減するように構成された装置を含む。また、コンピュータシステムは、複数のデータパケットを含む。各データパケットは、メモリのラインを表し、DRAMアレイ内の各行に対するアクセスを追跡するカウンタを含むように構成されている。
【0008】
別の実施形態では、メモリコントローラ内の装置は、メインメモリに対するアクセス数をカウントする、データパケット構造に埋め込まれたカウンタを備える。乱数発生器は、確率パラメータに基づいて確率的にカウンタをインクリメントする。装置は、行アドレス一致に応じてアクセスするために構成されたスタティックランダムアクセス(static random-access、SRAM)レジスタを含む。論理コントローラは、SRAMレジスタ又はメインメモリに対するアクセスを行うか否かを制御する。
【0009】
更に別の実施形態では、メモリコントローラにおいて実施される方法は、行アドレスを受信することと、行アドレスに基づいて、オンチップメモリ又はDRAMアレイにアクセスするか否か、オンチップメモリ内に行アドレス一致が存在するか否かを判定することと、を含む。オンチップメモリ内に行アドレス一致が存在する場合、行アドレスに対応するデータパケットのキャッシュラインがオンチップメモリに書き込まれ、DRAMアレイに対する全アクセスがバイパスされる。行アドレスミスが発生した場合、DRAMアレイは、第1の条件及び第2の条件に基づいて、データパケットのキャッシュラインを用いてアクセスされる。
【0010】
様々な実施形態は、1つ以上の利点をもたらすことができる。例示的な一態様では、メモリの性能オーバーヘッドは、乱数発生器を使用して、DRAMに対する読み出しアクセス又は書き込みアクセスごとに決定論的にカウンタをインクリメントするのではなく、確率的にカウンタをインクリメントすることによって低減され得る。確率的にカウンタをインクリメントすることは、性能オーバーヘッドのコストを確率的に低減する。これは、読み出しアクセス及び書き込みアクセスごとにカウンタをインクリメントする必要がないためである。更に、攻撃者は、DRAMアクセスの頻度を予測又は計算することができにくくなる。
【0011】
別の例示的な態様では、DDR障害切り分け機能の再生ビットは、各DRAM行に対する読み出しアクセス及び書き込みアクセスを追跡するカウンタとして使用される。データパケットの誤り訂正部分(ECC)から再生される4バイト又は32ビットは、特定の条件に基づいて乱数発生器によって抽出され、インクリメントされ得る。行メモリごとにアクセスを追跡するためにチップ上に実装されたハードウェアカウンタによってチップ面積が消費されないので、再生ビットをカウンタとして使用することは、チップ容量を節約する。
【0012】
更に別の例示的な態様では、論理コントローラは、オンチップメモリ内のデータの存在を示すフラグが設定されているか否かをチェックすることができる。フラグが設定されている場合、メモリコントローラは、SRAMレジスタに対する読み出しアクセス及び書き込みアクセスを実行することができる。例えば、フラグが設定されている場合、メモリコントローラは、先ず、要求された行アドレスがSRAMで利用可能であるか否かをチェックする。利用可能な場合、キャッシュラインデータがSRAMから要求するコンポーネントに読み出され得るか、又は、キャッシュラインデータがSRAMに書き込まれ得る。SRAMに対するアクセスは、DRAMに対するアクセスの数を減少させ、したがってクロストークを軽減する。
【0013】
添付図面及び以下の発明を実施するための形態において、様々な実施形態の詳細を明らかにする。他の特徴及び利点は、添付の図面及び特許請求の範囲と併せて以下の詳細な説明から明らかになるであろう。
【0014】
本開示及びその利点をより十分に理解するために、添付の図面を参照する。添付の図面において、類似又は同一の符号は、類似又は同一のアイテムを表す。
【図面の簡単な説明】
【0015】
図1】例示的な実施形態による、例示的なコンピュータシステムのハイレベルブロック図である。
図2】例示的な実施形態による、障害切り分け機能を使用する、修正後のデータパケットのブロック図である。
図3】例示的な実施形態による、クロストークを軽減するために使用される装置のブロック図である。
図4】例示的な実施形態による、メモリにアクセスするための相乗的プロセスのハイレベルフロー図である。
図5】例示的な実施形態による、組み合わされた確率的及び決定論的メカニズムを使用する際にクロストークを軽減するためのメカニズムを示す方法の詳細なフローチャートである。
【発明を実施するための形態】
【0016】
装置及び関連する方法は、相乗的手法を使用することによってDRAMアレイ内のクロストークを軽減する機構に関する。相乗的という用語は、特定の目的を達成するためにユニットとして機能するように組み合わされている2つ以上の要素を使用することを意味する。本開示の実施形態では、決定論的手法が確率的手法と組み合わされて、DRAM内のクロストークのロウハンマリング効果を低減させる。より具体的には、決定論的要素と見なされるカウンタを、決定論的要素と見なされる乱数発生器と共に使用して、DRAM内のクロストークのロウハンマリング効果を低減させる。
【0017】
カウンタは、その出力の予測可能性のために決定論的要素であると見なされ得る。例えば、カウンタ出力は、1の値で始まり、2、3等の値まで順次線形方式で上方にインクリメントし得る。したがって、カウンタ出力は予測可能であると見なされ得る。
【0018】
乱数発生器は、その出力が予測可能ではないので、確率的要素であると見なされ得る。乱数発生器の出力値は、将来の出力値が現在又は以前の値に基づかないことがあるので、予測可能ではない。乱数発生器は、特定の範囲内の数を出力することができ、その範囲内の各数は、発生するか否かの特定の確率を有する。したがって、乱数発生器の出力は、不確定且つ予測不能であると見なされ得る。
【0019】
本開示では、乱数発生器の出力は、確率的にカウンタをインクリメントするために使用される。メモリコントローラは、カウンタ出力とホット性閾値とを比較して、DRAM行にアクセスするか否かを判定する。カウンタが予測可能な方法でインクリメントされないので、DRAM行が攻撃者によってアクセスされ得るタイミングを決定することは不可能である。
【0020】
DRAMアレイの各データパケットは、対応する行がアクセスされる回数を追跡するために自前のカウンタを含むように構成されている。カウンタは、乱数発生器によって出力された数と、実装におけるDRAMアレイに固有の所定の確率パラメータPPROBと、の比較の結果に基づいた間隔でインクリメントされる。
【0021】
乱数発生器の出力がPPROBよりも大きい場合、これは、DRAMが読み出し及び書き込みのためにアクセスされ得ることを示す。データは、DRAMからフェッチされるか又は読み出され、ラストレベルキャッシュ(last level cache、LLC)及びオンチップメモリSRAMに送信され得る。書き込みの場合、データは、DRAMに書き込まれ得る。
【0022】
また、カウンタ値は、DRAMアレイ実装に固有のホット閾値パラメータTHRESHOTと比較され得る。カウンタ値がTHRESHOTよりも大きい場合、これは、DRAM行が頻繁にアクセスされているか又はハンマリングしており、クロストーク妨害を受けていることを示す。THRESHOTは、ロウハンマリング閾値及びDRAMのワード線内のキャッシュライン数に基づいている。
【0023】
データがSRAMレジスタに記憶されると、フラグが設定されて、データがSRAMに存在する可能性があることを示す。フラグが設定されている限り、メモリコントローラは、最初にSRAMレジスタにアクセスする。メモリコントローラは、要求された情報がオンチップレジスタ又はSRAMに欠落している場合にのみ、DRAMにアクセスする必要がある。要求側コンポーネントのためにDRAMからデータがフェッチされる場合には、将来使用するためにSRAMにコピーも記憶され得る。
【0024】
図1を参照すると、ハイレベルブロック図は、本開示の例示的な実施形態による、例示的なコンピュータシステム100を示している。コンピュータシステム100は、メモリコントローラ150と通信するプロセッサ140を含む。プロセッサ140及びメモリコントローラ150は、バス120及びバス130を介して、ラストレベルキャッシュ(LLC)110及びDRAMアレイ170等の外部メモリと通信する。メモリコントローラ150は、LLC110及びDRAMアレイ170に対するアクセスを動作的に監視し、制御するコンポーネント群を含み得る。本開示では、このコンポーネント群は、確率的及び決定論的RAMアクセスモニタ(PADRAM)160と呼ばれることがある。PADRAM160の目的は、DRAMアレイ170に対する読み出しアクセス及び書き込みアクセスの数を低減させることである。
【0025】
概して、DRAM内の同一行に繰り返しアクセスすることは、ロウハンマリングとして知られる現象によって、物理的に隣接する行のデータを破損させることがある。限定するためではなく、一例として、DRAMに全て「1」を入力し、DRAM行から繰り返し読み出して確実に行を繰り返し活性化させると、ビットの一部又は全てが全て「0」にフリップされ得る。PADRAMは、キャッシュラインデータをオンチップに記憶することによって、DRAMアレイ170に対するアクセス数を低減し、その結果、コンポーネントは、DRAMアレイ170にアクセスせずにキャッシュラインデータを利用することができる。
【0026】
PADRAM160は、特定のDRAM行が高アクセスを有するか否かを追跡するカウンタとして使用するためにデータパケットの一部を再生するDRAM170の障害切り分けアーキテクチャ機能と共に動作する。
【0027】
次に、図2を参照すると、本開示の例示的な実施形態による、障害切り分けアーキテクチャ機能を有する、修正後のデータパケット200のブロック図が示されている。DRAMの各データパケット200は、64バイトのキャッシュライン210及びメタデータ220で構成され得る。メタデータ220の第1の部分230は、障害切り分け機能に使用され得る。メタデータ220の第2の部分250は、限定するものではないが、フラグインジケータ等の他の情報に使用され得る。より具体的には、メタデータ230の第1の部分は、16バイトの誤り訂正符号(error correcting code、ECC)で構成され得る。4バイトのECCは、32ビットカウンタ又は4バイトカウンタ240として使用するために再生され得る。要するに、80バイトのデータパケット260は、64バイトのキャッシュライン部分210、12バイトのECC部分230、及び、4バイトのカウンタ部分240で構成され得る。
【0028】
カウンタ240のカウンタビットは、図1のPADRAM160によって提供される条件に従って確率的に抽出され、インクリメントされ得る。したがって、カウンタは、行ごとのカウンタのアーキテクチャ実装又はハードウェア実装を提供することによって、容量を犠牲にすることなく、ソフトウェア実装によってDRAM行に対するアクセスを追跡することができる。
【0029】
図3は、例示的な実施形態による、クロストークを軽減するために使用される装置のブロック図を示している。一実施形態では、モニタシステムPADRAM300は、パラメータレジスタ340と、乱数発生器310と、論理コントローラ350と、SRAMレジスタ360と、を備え得る。動作中、乱数発生器310は、リセット、クロック、又は、当業者によって認識され得る他の信号等の制御信号330を論理コントローラ350から受信し得る。乱数発生器310は、パラメータレジスタ340にロードされた確率パラメータに基づいて、図2のカウンタ240等のカウンタをインクリメントするために使用され得る値rng_val320を生成し得る。
【0030】
パラメータレジスタ340には、所定のメモリパラメータ、及び、図1のコンピュータシステム100等のコンピュータシステムに実装されているメインメモリ又はDRAMメモリバンク(図示せず)の特定の構成又は設計に基づいたメモリパラメータをロードすることができる。より具体的には、パラメータレジスタ340は、確率パラメータPPROB342及びホット閾値パラメータTHRESHOT344等のパラメータを含み得る。
【0031】
PROB342は、DRAMバンク内のワード線の数に基づいて選択され、カウンタ値がランダムメモリアクセスを有するメモリ集約的な作業負荷のホット閾値パラメータTHRESHOT344を超えないことを保証し得る。より具体的には、限定するためではなく、一例として、DRAMのアクセス数がN、DRAMの行数がRで表され得る場合、各行のランダムアクセス数は、N/Rで表され得る。パラメータPPROB342は、1/(N/R)で表されるランダムアクセス数に反比例する。パラメータPPROB342は、全てのメモリ動作に先立って選択され、パラメータレジスタにロードされ得る。PPROBの値は、1行当たりの特定のアクセス数より大きい値を有し、PPROB>1/(N/R)である。
【0032】
パラメータPPROB342は、カウンタ240等のカウンタがインクリメントされるか否かを判定し得る。メモリコントローラ(図示せず)は、PPROB342の値を乱数発生器値rng_val320と比較することができる。カウンタ240の値は、rng_val320がPPROB342よりも小さい場合に抽出され、インクリメントされ得る。
【0033】
ホット閾値パラメータTHRESHOT344は、行が攻撃を受け得る前に、行に対するメモリアクセスに上限を提供する。THRESHOT344は、ロウハンマリング閾値TRH及びワード線内のキャッシュライン数に基づいて選択され得る。例えば、1ワード線当たりM本の個別のキャッシュラインが存在する場合、THRESHOT344は、TRH/Mに基づいて選択されてもよく、THRESHOT344は、TRH/Mより小さくなる(THRESHOT<TRH/M)ように選択され、ワード線内のキャッシュラインにアクセスするためのワード線の活性化の総数が決してTRHを超えないことを保証し得る。
【0034】
論理コントローラ350は、SRAMレジスタ360の内容を動作的に監視するように構成されている。論理コントローラ350は、SRAMレジスタ360の行についてデータの有無を示すフラグ(図示せず)を設定することができる。例えば、キャッシュラインがSRAM内の行に書き込まれる場合、メモリ位置が空でないことを示すようにフラグが設定され得る。メモリコントローラ(図示せず)は、SRAM360からデータパケットをフェッチし、DRAM(図示せず)等のメインメモリにアクセスすることなく、そのデータパケットをラストレベルキャッシュ(LLC)(図示せず)又は他の要求コンポーネントに送信することができる。
【0035】
図4を参照すると、ハイレベルフロー図400は、本開示の例示的な実施形態による、メモリにアクセスするための相乗的プロセスを示す。メモリサイクルは、402において、メモリコントローラへの行アドレスの受信によって開始され得る。PADRAMの論理コントローラは、404においてチェックして、フラグが設定されているか否かを判定し得る。論理コントローラは、SRAM等のオンチップメモリの位置にデータが存在し、SRAMが空ではない場合にフラグを設定することができる。
【0036】
404においてフラグが設定され、オンチップSRAMメモリにデータが存在することを示す場合、プロセスは、412におけるDRAMバイパスモジュールに進む。406において、プロセスは、行アドレスがSRAMにおいて利用可能であるか否かを判定する。行アドレス一致がSRAM内に存在する場合、プロセスはDRAMバイパス412を継続し、書き込み要求又は読み出し要求が存在するか否かを判定する。書き込み要求は、データパケットがSRAMに記憶される408へとプロセスを移動させる。読み出し要求は、行アドレスに対応するキャッシュラインデータがSRAMから読み出され、LLCに送信される410へとプロセスを移動させる。406において行アドレス一致が存在しない場合、プロセスは、DRAMバイパス412から抜け出し、414において始まる、DRAMに対する読み出しアクセス及び書込みアクセスを判定する条件付きプロセスへと進む。
【0037】
本発明の目的は、メインメモリ又はDRAM等へのアクセス数を低減させることによってクロストークを軽減し、したがって外乱を回避することであることに留意することが重要である。この目的は、DRAM等のメインメモリにアクセスする必要なく、オンチップSRAMメモリに対してデータを読み書きする、412のDRAMバイパスによって達成される。したがって、412のDRAMバイパスは、メインメモリに対するアクセス数を削減する。
【0038】
404において、オンチップSRAMメモリにデータが存在することを示すようにフラグが設定されていない場合、プロセスは、DRAMに対する読み出しアクセス及び書き込みアクセスを判定する、414における条件付きプロセスに進む。414における条件は、乱数発生器値が所定の確率パラメータよりも小さい(RNG_val<PPROB)か否かをチェックする。414における条件の結果が「いいえ」である場合、乱数発生器値は所定の確率パラメータ以上であり、プロセスは読み出し要求又は書き込み要求の存在をチェックする。書き込み要求はプロセスを416に移動させて、DRAM内の対応する行アドレス位置にキャッシュラインを書き込む。読み出し要求はプロセスを418に移動させて、402における行アドレスに対応するデータパケットをDRAMからフェッチして、SRAMに送信する。PADRAMの論理コントローラは、SRAM内のデータの存在を示すフラグを設定する。また、データパケットは、LLCに送信される。
【0039】
条件414の結果が「はい」である場合、乱数発生器値は所定の確率パラメータよりも小さく、420においてデータパケットのカウンタビットが抽出され、インクリメントされる。プロセスは続行し、422においてカウンタ値を所定のホット閾値パラメータと比較する。424において、条件は、カウンタ値がホット閾値より大きいか否かをチェックする。424において、条件の結果が「はい」である場合、カウンタ値はホット閾値よりも大きい。読み出し要求は、プロセスを424から426に移動させ、書込み要求は、プロセスを424から428に移動させる。426において、読み出し要求は、DRAMからキャッシュラインを読み出し、このキャッシュラインをLLCに送信する。キャッシュラインもSRAMに記憶される。論理コントローラは、フラグを設定して、SRAM内にデータが存在することを示す。428において、書込み要求は、更新されたカウンタ値を含むキャッシュラインデータをSRAMに書き込む。論理コントローラは、フラグを設定して、SRAM内にデータが存在することを示す。
【0040】
424において条件の結果が「いいえ」である場合、カウンタ値はホット閾値以上である。読み出し要求は、プロセスを430に移動させ、書き込み要求は、プロセスを432に移動させる。430において、読み出し要求は、DRAMからキャッシュラインデータを読み出し、それをLLCに送信する。432において、書き込み要求は、キャッシュラインデータをDRAMに書き込む。
【0041】
図5を参照すると、方法の詳細なフローチャート500は、例示的な実施形態による、組み合わされた確率的及び決定論的メカニズムを使用することによってクロストークを軽減するためのメカニズムを示す。
【0042】
502においてメモリコントローラによって初期化されると、504において行アドレスがコントローラに受信される。506において、メモリコントローラは、論理コントローラがフラグregister_emptyを設定したか否かをチェックし得る。506においてregister_emptyフラグが設定されている場合(register_emptyフラグ=1)、プロセスは、DRAMに対する読み出しアクセス及び書き込みアクセスを判定する第1の条件520に移動する。
【0043】
506においてregister_emptyフラグが設定されていない場合、プロセスは508を継続し、510においてデータについてSRAMレジスタが再チェックされる。次に、プロセスはDRAMバイパス518に移行する。DRAMバイパス518では、510においてプロセスは、504において受信した行アドレスがSRAMで利用可能であるか否かを判定する。510において行アドレスがSRAMで利用可能である場合、プロセスは512に進み、書き込み要求又は読見出し要求が存在するか否かを判定する。読み出し要求は、プロセスを512から514の手順に移動させ、データパケットは、行アドレスに対応するSRAM内の位置から読み出され、ラストレベルキャッシュ(LLC)に送信される。あるいは、書き込み要求は、プロセスを512から516の手順に移動させ、データパケットは、SRAMレジスタ内の行アドレスに対応する位置に書き込まれる。
【0044】
DRAMバイパス518の開始に戻ると、510においてSRAM内に行アドレス一致が存在しない場合、プロセスはDRAMバイパス518から抜け出し、DRAMに対する読み出しアクセス及び書き込みアクセスを判定する第1の条件520に進む。
【0045】
520における第1の条件は、乱数発生器によって出力された値を所定の確率パラメータPPROBと比較する。PPROBは固定値である。520において乱数発生器値がPPROBよりも小さい場合、DRAMは、データを読み出すか又は書き込むためにアクセスされ、したがって、ラインを更新する。先ず、522においてカウンタ値がデータパケットから抽出され、インクリメントされる。次に、524において第2の条件が、カウンタ値をホット性閾値パラメータTHRESHOTと照合する。
【0046】
カウンタ値が所定のホット閾値パラメータよりも大きい場合、プロセスは524から526へと移動し、読み出し要求又は書き込み要求が存在するか否かを判定する。526において読み出し要求が存在する場合、プロセスは532へと続く。532において、DRAM内の対応する行アドレス位置からデータパケットが読み出され、将来のアクセスのためにコピーがSRAMに記憶される。register_emptyフラグがリセットされ、現在はデータがSRAM内に存在することを示し得る。また、データパケットは、要求コンポーネントによって使用されるためにLLCに送信され得る。書き込み要求が存在する場合、プロセスは528へと続く。528において、DRAM内の対応する行アドレス位置からデータパケットが読み出され、将来のアクセス要求のためにコピーがSRAMに記憶される。register_emptyフラグがリセットされ、現在はデータがSRAM内に存在することを示す。
【0047】
524においてカウンタ値が所定のホット閾値パラメータ以下である場合、プロセスは524から530へと移動し、読み出し要求又は書き込み要求が存在するか否かを判定する。530において、読み出し要求は、プロセスを532へと続ける。532において、DRAM内の対応する行アドレス位置からデータパケットが読み出され、将来のアクセスのためにコピーがSRAMに記憶される。register_emptyフラグがリセットされ、現在はキャッシュラインデータがSRAMに存在することを示す。データパケットは、要求コンポーネントによって使用されるためにLLCに送信される。530において、読み出し要求は、プロセスを534へと続ける。534において、データパケットは、DRAM内の対応する行アドレス位置に書き込まれる。
【0048】
520の第1の条件に戻って、乱数発生器値が確率パラメータPPROB以上である場合、プロセスは520から530へと移動する。530において、プロセスは、読み出し要求又は書き込み要求が存在するか否かを判定する。読み出し要求は、プロセスを530から532へと続ける。532において、DRAM内の対応する行アドレス位置からデータパケットが読み出され、将来のアクセスのためにコピーがSRAMに記憶される。register_emptyフラグがリセットされ、現在はデータがSRAM内に存在することを示す。次いで、データパケットは、要求コンポーネントによって使用されるためにLLCに送信される。書き込み要求は、プロセスを530から534へと続ける。534において、データパケットは、DRAM内の対応する行アドレス位置に書き込まれる。
【0049】
異なる例示的な実施形態の説明は、例示及び説明を目的として提示されており、網羅的であること又は開示された形態での実施形態に限定されることを意図していない。様々な修正がなされ得ることが理解されるであろう。例えば、開示された技術のステップが異なる順序で行われた場合、開示されたシステムの構成要素が異なる様式で組み合わされた場合、又は、構成要素が他の構成要素で補われた場合に、有利な結果が得られる可能性がある。したがって、他の実施形態が企図される。
【0050】
更に、異なる例示的な実施形態は、他の望ましい実施形態と比較して異なる特徴を提供し得る。選択された1つ以上の実施形態は、実施形態の原理、実際の適用を最もよく説明するために、且つ、他の当業者が、企図される特定の使用に適した様々な修正を伴う様々な実施形態の開示を理解することを可能にするために、選択され、説明されている。
図1
図2
図3
図4
図5
【国際調査報告】