JP2019531546A - 高度dramメモリコントローラの内部キャッシュをバイパスするための方法および装置 - Google Patents
高度dramメモリコントローラの内部キャッシュをバイパスするための方法および装置 Download PDFInfo
- Publication number
- JP2019531546A JP2019531546A JP2019513044A JP2019513044A JP2019531546A JP 2019531546 A JP2019531546 A JP 2019531546A JP 2019513044 A JP2019513044 A JP 2019513044A JP 2019513044 A JP2019513044 A JP 2019513044A JP 2019531546 A JP2019531546 A JP 2019531546A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- circuit
- addresses
- command
- 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.)
- Pending
Links
Images
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/1016—Performance improvement
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)
- Memory System (AREA)
Abstract
Description
本願は、2016年6月10日に出願された仏国特許出願第FR2017/58373号に対する優先権を主張し、該文献は、本願明細書に統合された一部とみなされる。
HCPUは、通常、PIMプロセッサを使用するために、以下の動作を実行する。
・PIMメモリに、パラメータ、命令、およびデータを多数入力する。
・このPIMプロセッサのいくつかのインタフェースレジスタにおいて、比較的少ないパラメータ、命令、データおよびコマンドを入力する。
・PIMプロセッサのインタフェースレジスタから、比較的少ないステータスおよび結果を読み取る。
・PIMメモリからの多くの結果を読み取る。
HCPUによって生成され、PIMプロセッサのインターフェース、PIMメモリのいずれかを送信先とする入力は、遅延なく処理されなければならない。
遅延入力は、PIMプロセッサを備えない不揮発性メモリにとっても問題である。
例えば、エバースピン社が製造したMRAMメモリのようないくつかのMRAMメモリ(磁気メモリ)は、DRAM互換インターフェースを提供し、DRAMコントローラとの使用を可能にするように設計されている。
別の問題は、あるアドレスに書き込まれるべきClデータがDRAMキャッシュメモリに記憶される場合、同じアドレスに新しくC2データが到着すると、このデータはC2データで置き換えられてしまう。DRAMキャッシュメモリは、Clデータをメモリ回路に書き込まず、C2データによって置き換えることが最適であると推論してしまう。
また、DRAMキャッシュメモリは、データ入力の実行順序を変更する可能性があり、これらの入力が異なるアドレスを持っている場合でも問題となる。
・まず、PARAMと呼ばれるインターフェースレジスタへコマンドパラメータの入力する
・次に、CMDと呼ばれる別のインターフェースレジスタへ対応するコマンドを入力する
で構成されるコマンドは、DRAMキャッシュメモリによって反対の順序で実行できるので、CMDに書き込まれたコマンドは、まだ新しいパラメータが書き込まれていないPARAMレジスタの古い値を、パラメータとして用いて実行されるであろう。
HCPUがAVアドレスで値V2を読み取る場合、この値V2はPIMプロセッサによって生成されたため、HCPUによって読み取られる値は、この最新の値V2であり、この同じAVアドレスでのV2生成前の読み取り中にキャッシュメモリにコピーされた以前の値V1ではないことが重要である。
・有効であり、
・AVアドレスに対応し、
・まだ古い値V1を含んでいる。
最も論理的な解決策は、キャッシュメモリ管理命令がDRAMキャッシュにも影響を与えるようにHCPUを変更することである。
・HCPUの設計コストは非常に高く、そのような設計には数年かかる。
・このような変更によるHCPUの設計の遅れは、製造業者にとって非常に高いコストとなる。
・このような変更によるPIMプロセッサのサポートは、製造業者の工業およびマーケッティング戦略に反する可能性がある。
したがって、実施形態は、以下を備える計算システムを提供する。計算システムは、1つ又は複数の命令によって制御されるプロセッシングコア及びキャッシュメモリを備えるメモリコントローラを有する演算装置、および、データバス及びアドレスバスを介して前記メモリコントローラに接続されるメモリ回路と、を備える。前記メモリ回路は、前記アドレスバス上に提供される複数の第1のアドレスによってアクセス可能な第1のmビットメモリロケーションを有するように構成され、前記演算装置は、前記第1のmビットメモリロケーションにアクセスするメモリの動作ごとに、前記複数の第1のアドレスからアドレスを選択するように構成される。
第1の複数のアドレスのうちの1つおよび第2の複数のアドレスのうちの1つを含むアドレスの第1の範囲内の対応するアドレス;
第1の複数のアドレスのうちの1つおよび第2の複数のアドレスのうちの1つを含む第2のアドレス範囲における対応するアドレス;
前記メモリ回路は、前記第1および第2のアドレス範囲のアドレスを前記スライディングアドレスウィンドウの対応するアドレスに変換するように適合されたアドレス変換回路を含む。
・メモリコントローラのキャッシュメモリに格納されたキャッシュメモリ書き込みトランザクションの全部又は一部がメモリ回路に書き込まれる。
・メモリコントローラのメモリキャッシュに記憶された読み出しデータの全部または一部がメモリキャッシュから除去され、読み出しデータはキャッシュの退避動作によってメモリ回路から読み出されたデータを含む。
・メモリコントローラのメモリキャッシュに記憶されたキャッシュメモリ読み出しトランザクションの全部または一部がメモリ回路に書き込まれ、メモリコントローラのキャッシュメモリに記憶された読み出しデータの全部または一部がキャッシュメモリからクリアされる。
別の実施形態によれば、メモリは補助プロセッサをさらに含み、第1および第2のメモリロケーションは補助プロセッサ制御レジスタである。
コマンドの受信体のアドレス、
コマンド自体、または
部分的にはコマンド受信体のアドレスに、部分的にはコマンド自体に。
(DRAMキャッシュメモリのサイズ)
DRAMキャッシュメモリの存在は、以下の最適化を可能にする。
・ページオープン、特に低速動作を最小限に抑えるために、特にリフレッシュ要求を含むメモリ回路への要求を再スケジューリングすること。
・近い将来おそらくアクセスされるデータの予想される読み込み。
CPUキャッシュメモリのサイズがかなり大きい(最大数十Mb)ということは、DRAMキャッシュメモリが、それが達成できる性能向上の本質的な部分に対して大きなサイズである必要がないことを意味する。
これらの技術がDRAMキャッシュメモリ上で動作するならば、それらがCPUキャッシュメモリ上でも動作するであろうことが想像できるので、キャッシュメモリ管理命令なしで完全に実行するために、以下に説明する技術を使用するかどうかという問題が生じる。
本明細書では、説明を簡略化するために、キャッシュメモリ管理命令は、以下の場合に暗黙的に使用されるものとする。
・HCPUは、通常の書き込み命令を用いてこのデータをメモリに書き込む。
・HCPUは、CPUキャッシュメモリの対応する入力を更新するが、DRAMキャッシュメモリに影響しないキャッシュメモリ管理命令を使用する。
・HCPUは、CPUキャッシュメモリの対応する入力を無効にするが、DRAMキャッシュメモリに影響しないキャッシュメモリ管理命令を使用する。
・HCPUは、通常の書き込み命令を用いてメモリ内のこのデータ読み出す。
HCPUは、通常、高性能のプロセッサであり、したがって、順序を変えて命令を実行することができ(Out of order processor:000プロセッサ)、キャッシュメモリ管理命令に加えて、「メモリバリア」命令の使用が可能であり、適切な順序で命令の実行を強制することができる。
上記課題を解決するための技術は、以下を含む。
・インタフェースレジスタに関する問題の解決。
・PIMメモリに関する問題の解決
インタフェースレジスタの数がPIMメモリのメモリワードの数よりもはるかに少ないという事実から差異が生じる。
図1は、例えば、DDRタイプ(英語の「ダブルデータレート」から)のバスによってメモリ回路104に接続されたプロセッシング装置102を含む計算システムを示している。バスは、例えば、データバス106Aおよびアドレスバス106Bを含む。
・index_register、書き込み時のみアクセス可能
・write_register、書き込み時のみアクセス可能
・read_register、読み取り時のみアクセス可能
このようなインターフェースは、多数のレジスタへの間接的なアクセスを提供する。
・このレジスタのインデックスを、インデックスレジスタに書き込む必要がある。
・read_registerを読み込む必要がある。
・このレジスタのインデックスは、インデックスレジスタに書き込む必要がある。
・書き込むべきデータを、書き込みレジスタに書き込む必要がある。
図2に示されるように、メモリ回路104は2^Nのメモリワードを含むが、多くのアドレスを生成するために、これはi>0である2^(N+i)のメモリワードを有すると記述される。
・システム起動中に実行されるメモリテストは、実際のメモリに対応する物理アドレスの範囲のみに関係するものでなければならない。
・OSは、メモリの実際のサイズを考慮に入れて、そのメモリアロケータのデータベースを初期化しなければならない。
インターフェースレジスタの場合、インターフェースソフトウェアは、レジスタへのアクセス(例えば、図2のレジスタ202へのアクセス208、およびレジスタ204へのアクセス210)ごとに、それをマッピングする異なるアドレスを使用する。
・DRAMキャッシュメモリは、アドレスが一致しないので、その入力の1つに既に持っているデータを提供せず、DRAMキャッシュメモリに影響しないキャッシュメモリ無効化命令の問題を解決する。
・マージにはトランザクションが同じアドレスを有するが必要なので、DRAMキャッシュメモリは、書き込みトランザクションをマージしない。
・DRAMキャッシュメモリはすぐに「オーバーフロー」してしまうので、当然、そこに格納された書き込みトランザクションを転送する。
・アドレス指定されたインタフェースレジスタを再度読出すことによって、書込みが実際に実行されることを、いつでも保証する(もちろん、このレジスタをマッピングする別のアドレスを使用して)。
・一連の入力の後、読み出しまたは書き込みで、DRAMキャッシュメモリから以前の書き込みを押し出すことを唯一の目的とする「偽」アクセスを生成することができる(そして、これらの入力が実際に行われたことを確認でき、そうでない場合には、新しい偽アクセスを生成することができる)。
制御レジスタをマッピングする一連のアドレスは、円関数Fによって生成される:
アドレスA1を利用する場合、次のアドレスA2は、F(A1)で与えられる
「現在のアドレス」と呼ばれるメモリワードに関連する状態は、その最後のアクセスに利用されたアドレスによって要約される(アドレスの一部が固定されている場合は、このアドレスのフィールドを参照のこと)。
いくつかのインターフェースレジスタは、それぞれが個々の現在のアドレスに関連付けられる代わりに、共用の現在のアドレスを利用することができ、これは、以下のように、アクセスごとに管理される。
・レジスタへのアクセスのためのアドレスは、考慮されるレジスタに依存するオフセットと、共用の現在のアドレスとの和の結果である。
・アクセスに続いて、共用の現在アドレスが関数Fによって更新される。
本明細書では、コマンドを受け取ることができるインタフェースレジスタを、ドキュメントコントロールレジスタと呼び、このようなレジスタに到着するコマンドは2つのクラスに分けられる。
弱く順序付けられたクラス:例えば、データ書き込みコマンド、命令およびパラメータを含む。
高く順序付けられたクラス:例えば、以下のコマンドを含む;
・PIMプロセッサの起動
・PIMプロセッサの停止
・PIMプロセッサのステータスの取得
コマンドの一方または他方のクラスへの帰属は、コマンド自体にコード化される。順序付けの規則は、以下の通りである。
・別の弱く順序付けられたコマンドより前に発行された弱く順序付けられたコマンドは、それ(他の弱く順序付けられたコマンド)より後に実行することができる。
・強く順序付けられたコマンドの前に発行された弱く順序付けられたコマンドは、後者の後に実行することができない。
・高く順序が付けられたコマンドの後に発行された弱く順序付けられたコマンドは、後者の前に実行することができない。
・別の高く順序付けられたコマンドの前に発行された高く順序付けられたコマンドは、後者の後で実行できない。
DRAMキャッシュメモリがあるために、強く順序付けられたコマンドは、コマンドレジストリを受信することによって、順不同に受信され得るが、これらのコマンドは、コマンド生成の順序で実行されなければならない。この目的のために、強く順序付けられたコマンドは、コマンド生成中に番号が付けられる。
この方法では、あるコマンドレジスタに宛てられた強く順序付けられた各コマンドは、コマンドに番号を付けるために使用されるnビットの範囲を含む。
・実行すべき高く順序付けられたコマンドの現在の番号を含む、「現在コマンド番号」と呼ばれるnビットのカウンタ。
・コントロールバッファと呼ばれる2^N個の入力のメモリであって、それぞれの入力は、以下の通りである。
(2)初期では、無効状態であり、
(3)有効状態においては、高く順序付けられたコマンドを記憶することができる。
・高く順序付けられたコマンドがコマンドレジスタに書き込まれると、その番号Vが現在コマンド番号と比較される。
(2)そうでなければ、コマンドはバッファコマンド入力に[V]と記録され、この入力は有効として記録され、
(3)コマンドが完了すると、現在コマンド番号はインクリメントされ、その新しい値はWと記される。
・コマンドバッファのサイズを制限する。
・弱く順序付けられたコマンドを、発行順ではなく到着順で実行し、そのことによって性能を向上させる。
・インタフェースがそれをサポートする内部並列処理機構を有する場合、弱く順序付けられたコマンドを並列して実行する。
この方法は、前述した方法の変形例であり、コマンドが書き込まれるアドレスの一部をコマンド番号として用いる。
Alアドレスが利用される場合、A2によるアドレスはF(Al)によって与えられる。
・CAとマークされたアドレスのnビット範囲のみを修正する。
・CAのM個の可能な値のうちE個のセットを定義する。
・実行すべき高く順序付けられたコマンドの現在の番号を含む、現在コマンド番号と呼ばれるnビットのカウンタ。
・コマンドバッファと呼ばれるM個の入力のメモリであり、各入力は、
(1)組Eの値のうち1つによってのみインデックス付けされ、
(2)有効状態または無効状態にすることができ、
(3)初期では無効状態であり、
(4)有効状態において、高く順序付けられたコマンドを保存することができる。
・高く順序が付けられたコマンドがコマンドレジスタに到着すると、そのCAフィールドは、現在コマンド番号の値と比較される。
(2)さもなければ、コマンドは、このCAインデックスを有するコマンドバッファのエントリに記録され、この入力は有効と記録される。
(1)新しい現在コマンド番号によって指定されたコマンドバッファの入力が有効である場合、それを含むコマンドが実行され、その入力は無効としてフラグが立てられる。
この方法は、上述の両方の方法を利用する。コマンド番号は、部分的にはアドレスフィールドと、部分的にはコマンドフィールドとから構成される。
弱く順序付けられたコマンドは、リスケジュールされる必要はなく、以下のことが保障されるだけでよい。
(2)高く順位付けられたコマンドを生成する前に、実行されるのを待つ弱く順位付けられたコマンドがないこと。
・現在コマンド番号を読み込むことで、高く順位付けられたコマンドがいくつ実行されたか。
DRAMキャッシュメモリが早期読み取りを実行することを避けることが望ましい。このタイプの読み取りは、DRAMキャッシュが、各アクセスがその前のアクセスから固定された「アドレス距離」(厳密なアドレス)で起こる一連のアクセスのような、通常のアクセスパターンに従うときに、自動的に引き起こされる可能性がある。DRAMキャッシュメモリは、このようなアクセスパターンを検出し、このアクセスパターンに基づいて予めデータの読み出しを決定することができるロジックを有することができる。
DRAMキャッシュメモリの早期読取りのこのロジックに関し、これは、一連のアクセスのアドレスが同じDRAMページに残っているか否かという事実を考慮に入れる可能性が高く、インターフェースレジスタにアクセスするために利用される一連のアドレスは、この事実を考慮に入れなければならない。
インタフェースレジスタへのアクセスの問題は、基本的に、これらのレジスタの各々が複数回マッピングされるという事実によって解決される。
・メモリ回路の物理アドレス空間の1/4は、PIMプロセッサのインタフェースに充てる。そのレジスタの数は非常に少ないので、これらのレジスタの各々は何百万回もマッピングされ、これらのインタフェースレジスタに対するアクセス問題を容易に解決することができる。
メモリが4倍大きいことを公表する代わりに、さらに大きいことを公表することが必要であるが、これは、DRAMメモリコントローラによってサポートされていないメモリ構成に相当するため、一般的に不可能である。
例えば、前述の実施例のように、公表されたサイズが実際のサイズより4倍大きいPIMメモリを考えると、PIM回路の物理アドレスは以下のように編成され得る。
・最初の2^N個の物理アドレスは、従来通り、実際のメモリをマッピングする。
・次の2^N個の物理アドレスは、インターフェースを何度もマッピングし、
・2^N(N+l)個の物理アドレスはマルチプルウィンドウを構成し、マルチプルウィンドウではスライディングウィンドウが何度もマッピングされる。
注:従来PIMメモリをマッピングしていた物理アドレス空間は、PIMプロセッサによってアクセスされないPIMメモリの範囲にアクセスするために、HCPUによって利用され得る。
注:スライディングウインドウが配置されるPIMメモリ範囲は、実施形態によって、PIMメモリの従来の物理アドレス空間を介してアクセス可能であってもよいし、またはアクセス可能でなくてもよい。
・xはページ番号であり、
・yはページ上のバイトオフセットである。
・スライディングウインドウが考慮されるメモリ範囲と一致するように1つまたは複数のインタフェースレジスタを構成する。
・所望のアクセスを実行するために、変更するアドレスを用いてアクセスする。
・スライディングウインドウを介したすべてのアクセスが実行されたならば、次の範囲に移動することができる。
・書き込みは有効である。
・読み取りは有効である。
注:最後の2つのサブ項目に関して言うと、HCPUが000プロセッサである場合、メモリバリア命令の利用が必要となる場合がある。
スライディングウィンドウの移動は、現在のアドレスまたは共用のアドレスを変更しない。インタフェースソフトウェアは、個々の現在のアドレスまたは共通のアドレスがアクセスに利用される場合に限り、これを変更する。スライディングウィンドウを動かしても変更されない。
何度もマッピングされるインターフェースレジスタをいくつか実装することは、特にそのようなレジスタの数が非常に少ないので、ロジックの速度に関していうと、あまり困難ではない。
yは、ページ上のバイトオフセットである。
ロジックウィンドウ機構を実装するために、起動動作の待ち時間をわずかに延長するようにしてよく、この値は、メモリコントローラにおいてプログラム可能である。
この方法では、DRAMキャッシュを重要性のないトランザクションで満たすために、所定のアクセスシーケンスが利用される。
読み取ったデータを追跡して、無効化する。
DRAMキャッシュメモリの特性を知ることにより、以下のアクセスシーケンスを作成することが可能である。
DCM_BARRIER (Dram Cache Memory Barrier)DRAMキャッシュに対する読出しおよび書込みバリアであり、以下のいずれかに等しい。
DCR_BARRIERの前のDCW_BARRIER、または、DCW_BARRIERの前のDCR_BARRIER。
DCW_BARRIERおよびDCR_BARRIERは両方とも、DRAMキャッシュメモリから前のデータを追跡することによって動作するので、DRAMキャッシュメモリが読取りおよび書込みの管理において非対称でない限り、通常、以下の結果となる。
DCW_BARRIER= DCR_BARRIER= DCM_BARRIER
いくつかのDRAMキャッシュ・アーキテクチャは、DCW_BARRIER、DCR_BARRIERおよびDCM_BARRIERのシーケンスの減少を可能にし、したがって、これらのバリアの効果が、指定されたパラメータを有するアドレス範囲にのみ適用される場合、それらの実行時間の減少を可能にすることができる。
DCW_BARRIER(start_addr、end_addr)は、アドレス範囲{start_addr、end_addr}内のDCW_BARRIER(start_addr、end_addr)の開始前に実行されるすべての書き込みが、DCW_BARRIER(start_addr、end_addr)の終了時に有効であることを保証する。
DCR_BARRIER(start_addr、end_addr)は、DCR_BARRIER(start_addr、end addr)の終了後にアドレス範囲{start_addr、end addr}で読み込まれたすべての値が、DCR_BARRIER(start_addr、end addr)が開始された日付よりも最近であることを保証する。
DCM_BARRIER(start addr、end_addr)は、以下の何れかに等しい。
DCR−BARRIER(start_addr、end_addr)の前のDCW_BARRIER(start_addr、end_addr)、または、DCR−BARRIER(start_addr、end_addr)の前のDCR_BARRIER(start_addr、end_addr)。
PIMプロセッサは、不揮発性メモリを有しないにも関わらず、本発明の全ての態様の使用を可能にするインターフェースを有することができ、特に以下のものを許容する。
・DRAMキャッシュメモリから待機中の入力を転送し、
・PIMメモリへの書き込みが有効であることを確認する。
本発明で使用されるアドレスシーケンスは、DRAMキャッシュの特性に依存する。
HCPU製造業者にそのHCPUを変更するように依頼するよりも、HCPU製造業者からDRAMキャッシュに関する文書を入手する方がはるかに容易である。
HCPU内に存在するDRAMキャッシュに関する情報が入手できない場合、HCPUプロセッサのDRAMメモリコントローラによって生成されるトラフィックを解析することが可能である。この種の分析は、DRAMおよびDIMMメモリカードの製造業者によって、特に、それらの製品を開発し、それらの適合性を検査するために、一般に行われるが、HCPUプロセッサを使用するコンピュータ製造業者によっても、それらのシステムの開発のために行われる。
この目的のために設計されたプログラムをHCPU上で実行し、Tektronix社のトラフィック分析ツールなどを使用することによって、とりわけ、以下のDRAMキャッシュパラメータを決定することが可能である。
・DRAMキャッシュエントリの最大サイズ。
・DRAMキャッシュメモリの結合性(associativity)は、
・DRAMキャッシュメモリ内の入力の数。
・代替ポリシー
(インターフェースを介したDRAMキャッシュメモリの分析)
インターフェースは、受信されたN個の最後のトランザクション、または少なくともそれらの特性の十分な部分を記録する物理的手段を含むことができ、この記録は、インターフェース自体を介してアクセス可能である。
DRAMメモリは、ベンチ、ページ、および列に編成される。
Claims (18)
- 命令で制御される1つ以上のプロセッシングコア(108)と、キャッシュメモリ(114)を含むメモリコントローラ(112)とを有する演算装置(102)と、
データバス(106A)およびアドレスバス(106B)を介して前記メモリコントローラに接続されるメモリ回路(104)と、を備える計算システムであって、
前記メモリ回路(104)は、アドレスバス(106B)上に提供される複数の第1アドレスによってアクセス可能な第1のmビットのメモリロケーションを有するように適合され、
前記演算装置(102)は、前記第1のmビットのメモリロケーションにアクセスするメモリの動作ごとに、前記複数の第1アドレスのうちの1つのアドレスを選択するように構成される、計算システム。 - 前記第1のmビットのメモリロケーションは、複数のP個の第1アドレスによってアクセス可能であり、
前記演算装置(102)は、前記第1のメモリロケーションにアクセスするN番目と(N+P)番目のアクセス動作中に、前記第1のメモリロケーションにアクセスするために、前記アドレスのうち1番目を使用するように構成されている、請求項1に記載の計算システム。 - 前記複数の第1アドレスの各アドレスは、第1のnビット値および第2のpビット値を含み、
前記演算装置(102)は、第1の選択されたnビット値および書込データに従って生成された第2のpビット値を有する前記第1アドレスのうちの1つを使用して、前記第1のメモリロケーションの読み出し動作を実行することによって、mビットの前記第1のメモリロケーションに前記書込データを書き込む動作を実行するように構成される,請求項1または2に記載の計算システム。 - 前記メモリ回路(104)は、前記第1アドレスのうちの1つを使用して、前記第1のメモリロケーションに向けられた読み出し動作を受信することに応じて、前記アドレスの前記第2のpビット値を前記第1のメモリロケーションに書き込むように適合される、請求項3に記載の計算システム。
- pおよびmは正の整数であり、mがP以上である、請求項3または4に記載の計算システム。
- 前記メモリ回路(104)は、前記アドレスバス(106B)上に提供される複数の第2アドレスによってアクセス可能な第2のメモリロケーションを有するように適合される、請求項1から5のいずれか1項に記載の計算システム。
- 前記第1および第2のメモリロケーションは、前記メモリ回路(104)の第1のメモリロケーション範囲(304)の一部であり、前記第1のメモリロケーション範囲はスライディングアドレスウィンドウ(305)によって選択され、前記スライディングアドレスウィンドウ中では前記第1のメモリロケーション範囲のメモリロケーションが以下の(1)および(2)によってアドレス可能であり、
前記メモリ回路(104)は、第1および第2のアドレス範囲(R0,R1)内のアドレスを、前記スライディングアドレスウィンドウ(305)内の対応するアドレスに変換するように適合されたアドレス変換回路を含む、請求項6に記載の計算システム:
(1)前記第1の複数のアドレスのうちの1つおよび前記第2の複数のアドレスのうちの1つを含む第1のアドレスの範囲(R0)における対応するアドレス;
(2)前記第1の複数のアドレスのうちの別の1つのアドレスと前記第2の複数のアドレスのうちの別の1つのアドレスとを含む第2のアドレスの範囲(R1)における対応するアドレス。 - 前記アドレス変更回路(122)は、前記スライディングアドレスウィンドウ(305)の位置を定義するためにプログラム可能な少なくとも1つのレジスタを含む、請求項7に記載の計算システム。
- 前記アドレス変更回路(122)の前記少なくとも1つのレジスタは、前記スライディングアドレスウィンドウ(305)の位置およびサイズを定義するようにプログラム可能である、特徴とする請求項8に記載の計算システム。
- 前記メモリコントローラ(112)は、キャッシュクリア動作を実行するように適合され、前記キャッシュクリア動作は、前記メモリコントローラによって実行されるメモリアクセス命令の1つまたは複数のシーケンスを含み、以下の(1)、(2)、または(3)の結果ことをとなる、請求項1から9のいずれか1項に記載の計算システム:
(1)前記メモリコントローラ(112)の前記キャッシュメモリ(114)に格納されたキャッシュメモリ書き込みトランザクションの全部又は一部が、前記メモリ回路(104)に書き込まれる;
(2)前記メモリコントローラ(112)の前記キャッシュメモリ(114)に格納され、キャッシュクリア動作前に前記メモリ回路から読み出されたデータを含む読み出しデータの全部または一部を、前記キャッシュメモリからクリアする;または、
(3)前記メモリコントローラ(112)の前記キャッシュメモリ(114)に格納されたキャッシュメモリ書き込みトランザクションの全部または一部が前記メモリ回路(104)に書き込まれ、かつ、前記メモリコントローラの前記キャッシュメモリ(114)に格納された前記読み出しデータの全部または一部がキャッシュメモリからクリアされる。 - 前記メモリ回路(104)は、補助プロセッサ(118)をさらに含み、前記メモリアクセス命令シーケンスは、前記補助プロセッサを制御するために、前記メモリ回路(104)の1つまたは複数のコマンドレジスタにアクセスするためのレジスタアクセス命令のみを含む、請求項10に記載の計算システム。
- 前記メモリ回路(104)は、前記演算装置(102)によってアクセス可能であり、前記メモリ回路(104)において実行されるメモリアクセストランザクションを記録するように適合されたモニタリング回路(126)を含み、前記演算装置(102)は、前記モニタリング回路(126)によって記録された前記トランザクションに基づいて、前記1つまたは複数のメモリアクセス命令シーケンスを生成するように構成される、請求項10または11に記載の計算システム。
- 前記メモリ回路(104)は、さらに補助プロセッサ(118)を含み、前記第1および第2のメモリロケーションは、前記補助プロセッサの制御レジスタである、請求項6に記載の計算システム。
- 前記演算装置(102)は、第1および第2のタイプのコマンドを生成するように構成され、前記メモリ回路(104)は、前記演算装置(102)から受信されたコマンドの順序を変更するように適合され、それにより、前記第1のタイプの第1のコマンドと第2のコマンドの間で前記演算装置(102)によって生成された前記第2のタイプのコマンドの第1のグループについて、前記第2のタイプのコマンドのグループに関連して、前記第1のタイプの前記第1および第2のコマンドの順序が尊重される、請求項13に記載の計算システム。
- 前記メモリ回路(104)は、少なくとも前記第1のタイプの各順序に関連付けられた順序値に基づいて、前記コマンドの順序を変更するように適合され、前記各コマンドの順序値は以下の(1)から(3)の何れかに含まれる、請求項14に記載の計算システム:
(1)前記コマンドの受信体の前記アドレス;
(2)前記コマンド自体;
(3)部分的に前記コマンドの受信体の前記アドレス、および部分的に前記コマンド自体。 - 前記演算装置(102)は、キャッシュメモリ管理命令によって設定可能なCPUキャッシュメモリをさらに含み、前記コントローラメモリの前記キャッシュメモリ(114)は、キャッシュメモリ管理命令によって設定可能ではない、請求項1から15のいずれか1項に記載の計算システム。
- 前記メモリ回路(104)は、不揮発性メモリマトリックスを含む、請求項1から16のいずれか1項に記載の計算システム。
- データバス(106A)およびアドレスバス(106B)を介して演算装置(102)のメモリコントローラ(112)に接続されたメモリ回路(104)にアクセスする方法であって、
前記演算装置(102)は、1つまたは複数のコアプロセッサ(108)と、キャッシュメモリ(114)を含むメモリコントローラを備え、
前記プロセスは、前記演算装置によって、前記メモリ回路(104)の第1のmビットのメモリロケーションにアクセスするメモリの動作ごとに、複数の第1アドレスから1つのアドレスを選ぶことを含み、
前記第1のmビットのメモリロケーションは、前記アドレスバス(106B)上に提供される前記複数の第1のアドレスのそれぞれによって、アクセス可能である方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1658373A FR3055715B1 (fr) | 2016-09-08 | 2016-09-08 | Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue |
FR1658373 | 2016-09-08 | ||
PCT/FR2017/052368 WO2018046850A1 (fr) | 2016-09-08 | 2017-09-06 | Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019531546A true JP2019531546A (ja) | 2019-10-31 |
Family
ID=57750074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019513044A Pending JP2019531546A (ja) | 2016-09-08 | 2017-09-06 | 高度dramメモリコントローラの内部キャッシュをバイパスするための方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11494308B2 (ja) |
JP (1) | JP2019531546A (ja) |
KR (1) | KR102398616B1 (ja) |
CN (1) | CN109952567B (ja) |
FR (1) | FR3055715B1 (ja) |
WO (1) | WO2018046850A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7218556B2 (ja) * | 2018-12-06 | 2023-02-07 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US11048636B2 (en) * | 2019-07-31 | 2021-06-29 | Micron Technology, Inc. | Cache with set associativity having data defined cache sets |
US11481255B2 (en) * | 2019-09-10 | 2022-10-25 | International Business Machines Corporation | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator |
US11403111B2 (en) | 2020-07-17 | 2022-08-02 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic using look-up tables |
US11355170B1 (en) | 2020-12-16 | 2022-06-07 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic |
US12073251B2 (en) | 2020-12-29 | 2024-08-27 | Advanced Micro Devices, Inc. | Offloading computations from a processor to remote execution logic |
US11868657B2 (en) * | 2021-02-08 | 2024-01-09 | Samsung Electronics Co., Ltd. | Memory controller, method of operating the memory controller, and electronic device including the memory controller |
US11354134B1 (en) * | 2021-03-25 | 2022-06-07 | Micron Technology, Inc. | Processing-in-memory implementations of parsing strings against context-free grammars |
US11921634B2 (en) * | 2021-12-28 | 2024-03-05 | Advanced Micro Devices, Inc. | Leveraging processing-in-memory (PIM) resources to expedite non-PIM instructions executed on a host |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040155885A1 (en) * | 2000-06-28 | 2004-08-12 | Aaftab Munshi | Cache invalidation method and apparatus for a graphics processing system |
JP2006127251A (ja) * | 2004-10-29 | 2006-05-18 | Canon Inc | データ処理装置及びデータ処理装置におけるメモリ割り当て方法 |
JP2007249314A (ja) * | 2006-03-14 | 2007-09-27 | Yaskawa Electric Corp | 高速データ処理装置 |
WO2016132052A1 (fr) * | 2015-02-18 | 2016-08-25 | Upmem | Circuit dram muni d'un processeur integre |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
US5361391A (en) * | 1992-06-22 | 1994-11-01 | Sun Microsystems, Inc. | Intelligent cache memory and prefetch method based on CPU data fetching characteristics |
JP3964049B2 (ja) * | 1997-06-06 | 2007-08-22 | テキサス インスツルメンツ インコーポレイテツド | マイクロプロセッサ |
US6125422A (en) * | 1999-03-17 | 2000-09-26 | Rambus Inc | Dependent bank memory controller method and apparatus |
US6983354B2 (en) * | 2002-05-24 | 2006-01-03 | Micron Technology, Inc. | Memory device sequencer and method supporting multiple memory device clock speeds |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
US8253751B2 (en) * | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8386723B2 (en) * | 2009-02-11 | 2013-02-26 | Sandisk Il Ltd. | System and method of host request mapping |
JP5526697B2 (ja) * | 2009-10-14 | 2014-06-18 | ソニー株式会社 | ストレージ装置およびメモリシステム |
US10020036B2 (en) * | 2012-12-12 | 2018-07-10 | Nvidia Corporation | Address bit remapping scheme to reduce access granularity of DRAM accesses |
US9075557B2 (en) * | 2013-05-15 | 2015-07-07 | SanDisk Technologies, Inc. | Virtual channel for data transfers between devices |
KR101842621B1 (ko) * | 2013-09-26 | 2018-03-27 | 인텔 코포레이션 | 지속 메모리에 대한 블록 저장 애퍼처들 |
US9208103B2 (en) * | 2013-09-26 | 2015-12-08 | Cavium, Inc. | Translation bypass in multi-stage address translation |
US9690928B2 (en) * | 2014-10-25 | 2017-06-27 | Mcafee, Inc. | Computing platform security methods and apparatus |
EP3018587B1 (en) * | 2014-11-05 | 2018-08-29 | Renesas Electronics Europe GmbH | Memory access unit |
-
2016
- 2016-09-08 FR FR1658373A patent/FR3055715B1/fr active Active
-
2017
- 2017-09-06 US US16/331,429 patent/US11494308B2/en active Active
- 2017-09-06 WO PCT/FR2017/052368 patent/WO2018046850A1/fr active Application Filing
- 2017-09-06 JP JP2019513044A patent/JP2019531546A/ja active Pending
- 2017-09-06 CN CN201780062063.1A patent/CN109952567B/zh active Active
- 2017-09-06 KR KR1020197009869A patent/KR102398616B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040155885A1 (en) * | 2000-06-28 | 2004-08-12 | Aaftab Munshi | Cache invalidation method and apparatus for a graphics processing system |
JP2006127251A (ja) * | 2004-10-29 | 2006-05-18 | Canon Inc | データ処理装置及びデータ処理装置におけるメモリ割り当て方法 |
JP2007249314A (ja) * | 2006-03-14 | 2007-09-27 | Yaskawa Electric Corp | 高速データ処理装置 |
WO2016132052A1 (fr) * | 2015-02-18 | 2016-08-25 | Upmem | Circuit dram muni d'un processeur integre |
Also Published As
Publication number | Publication date |
---|---|
US20210349826A1 (en) | 2021-11-11 |
US11494308B2 (en) | 2022-11-08 |
KR102398616B1 (ko) | 2022-05-16 |
CN109952567B (zh) | 2023-08-22 |
KR20190067171A (ko) | 2019-06-14 |
FR3055715A1 (fr) | 2018-03-09 |
WO2018046850A1 (fr) | 2018-03-15 |
CN109952567A (zh) | 2019-06-28 |
FR3055715B1 (fr) | 2018-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109952567B (zh) | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 | |
US10908821B2 (en) | Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system | |
CN107636625B (zh) | 用于共享系统高速缓存的虚拟化控制的方法和装置 | |
US8205061B2 (en) | Seamless application access to hybrid main memory | |
US10133677B2 (en) | Opportunistic migration of memory pages in a unified virtual memory system | |
US10061526B2 (en) | Frame buffer access tracking via a sliding window in a unified virtual memory system | |
US9811456B2 (en) | Reliable wear-leveling for non-volatile memory and method therefor | |
EP3279788A1 (en) | Access method, device and system for expanding memory | |
US20100088459A1 (en) | Improved Hybrid Drive | |
US9830262B2 (en) | Access tracking mechanism for hybrid memories in a unified virtual system | |
US11914520B2 (en) | Separate read-only cache and write-read cache in a memory sub-system | |
US12007917B2 (en) | Priority scheduling in queues to access cache data in a memory sub-system | |
CN111201518B (zh) | 用于管理能力元数据的设备和方法 | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
US20190138448A1 (en) | Read-with-invalidate modified data in a cache line in a cache memory | |
US10635614B2 (en) | Cooperative overlay | |
JP2021506028A (ja) | 共通のメモリページからメモリへのキャッシュラインのリンス | |
US12086447B2 (en) | Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor | |
CN111742304B (zh) | 当调试要在处理电路上执行的程序时访问元数据的方法 | |
US11734011B1 (en) | Context partitioning of branch prediction structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200825 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211026 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220628 |