JP2017073129A - Nvdimmを含む装置及びそのアクセス方法 - Google Patents
Nvdimmを含む装置及びそのアクセス方法 Download PDFInfo
- Publication number
- JP2017073129A JP2017073129A JP2016187239A JP2016187239A JP2017073129A JP 2017073129 A JP2017073129 A JP 2017073129A JP 2016187239 A JP2016187239 A JP 2016187239A JP 2016187239 A JP2016187239 A JP 2016187239A JP 2017073129 A JP2017073129 A JP 2017073129A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- nvdimm
- exposed
- host
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000015654 memory Effects 0.000 claims abstract description 560
- 230000009977 dual effect Effects 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 51
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 6
- 239000007787 solid Substances 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
Description
DIMMはDIMMスロット(Slot)コネクタに連結され、メモリチャンネルのアドレス信号ラインを通じてホストプロセッサと通信する。また、ホストプロセッサ(さらに詳細にはメモリコントローラ)とDIMMとの間の通信する方式はよく確立されている。
DIMMのような揮発性メモリとは対照的に、不揮発性メモリ(NVM:Non−Volatile Memory)の形態も存在する。不揮発性メモリの形態は周期的なリフレッシュ無しでもメモリに格納されたデータ値を維持することができる。不揮発性メモリの1つの例示的な形態はNAND(Nand)フラッシュメモリである。NANDフラッシュメモリはUSB(Universal Serial Bus)キー及びSSD(Solid State Devices)等で容易に見つけることができる。
したがって、DIMMスロットで不揮発性メモリ形態を使用することに伴って発生するメモリアドレッシング方法及び多様な問題を解決するための方法が要求される。
本発明の実施形態は制限的な方法ではなく、例として図示されており、添付図面で類似な参照番号は類似な要素を参照する。
先の一般的な説明及び次の詳細な説明のすべてが例示的であることを理解されなければならず、請求された発明の付加的な説明が提供されることとして理解されるべきである。参照符号が本発明の望ましい実施形態に詳細に表示されており、その例が参照図面に表示されている。可能であるどんな場合にも、同一の参照番号が同一又は類似な部分を参照するために説明及び図面に使用される。
NVMe装置が要求を実行した場合、NVMe装置はホストが要求を配置するサブミッションキューと関連付けられた完了キューに応答を伝送する。サブミッションキューのように、完了キューはホストメモリマッピングされる。ホストは応答の存在を感知し、メモリマッピングされたデータの移動方法を利用して応答にアクセスし、それが応答を受信したか否かを示す方法を有している。
しかし、このような形態は追加的な問題を有する。NVDIMMがホストメモリチャンネルに存在するので、NVDIMMはホストメモリコントローラにJEDEC(Joint Electron Device Engineering Council)標準に準拠するDRAMDIMMに認識されなければならず、標準DRAMDIMMソケットを利用してホストメモリチャンネルと接続されなければならない。特に、NVDIMMは完全にJEDECDIMM技術仕様に準拠しなければならない。
ホストメモリコントローラ115はNVDIMM105が提供するメモリとの読出し及び書込み動作を実行する。NVDIMM105はDIMMソケット125を通じてホストメモリコントローラ115、及びホストプロセッサ110と通信する。DIMMソケット125はホストプロセッサ110、及びNVDIMM105を含むコンピュータ内に装着された標準DIMMソケットである。
このような問題に対する解決策は装置ドライバ160を導入することである。装置ドライバ160は要求されたメモリアドレスを事前にマッチングし、これにホストメモリコントローラ115がその論理−物理変換を実行した後にNVDIMM105が予想する直接的なメモリアドレスを受信する。
装置ドライバ160がこのような事前マッピングを実行する方法は様々な要素に依存する。
装置ドライバ160は、メモリコントローラ動作モード220、及びホストメモリコントローラ115の論理−物理変換225を決定するために基本システムのバスを探索する。他の要素は図1のNVDIMM105の設計において決定され、装置ドライバ160は事前にこのことを認知する。
一般的に、ホストメモリコントローラ115は基本システムが再び開始する時、他の動作モードに変更することができるとしても、ホストメモリコントローラ115は基本システムの動作の中でモードを変更せずただ1つのモードにて動作する。論理−物理変換225は自体にランクアドレス(Rank Address)、バンクグループアドレス(Bank Group Address)、バンクアドレス(Bank Address)、ロウアドレス(Row Address)、そしてカラムアドレス(Column Address)等の多様な要素を含む。
図3は図1のホストプロセッサ及びNVDIMMを支援することができるコンピュータシステムを示す図面である。図3を参照すると、コンピュータシステム305はコンピュータ310、モニタ315、キーボード320、及びマウス325を含む。当業者はコンピュータシステム305に他の構成要素が含まれることを容易に理解できる。例えば、コンピュータシステム305はプリンタのようなI/O装置等をさらに含む。さらに、コンピュータシステム305は図1に示した既存の内部構成要素を含む。例えば、既存の内部構成要素は図1のホストプロセッサ110、図1のNVDIMM105、及び追加的なストレージ等を含む。
メモリアドレス605を図2の論理−物理変換225を実行するホストメモリコントローラ115が処理するように許用するよりも、装置ドライバ160はメモリアドレス605をインターセプトし、メモリアドレスを事前マッピングする。事前マッピングの結果は事前マッピングされたメモリアドレス610である。事前マッピングされたメモリアドレス610は中間アドレス(Intermediate Address)とも称する。
図1のホストメモリコントローラ115が、ロウハンマが問題になると認識しないようにする1つの方法はメモリアドレスが図1のメモリコントローラ115に到達する前にメモリアドレスをエイリアス(Alias)することである。図7を参照して、装置ドライバ160がエイリアスを使用する方法を説明する。
図1のホストメモリコントローラ115が、ロウハンマが問題であると認識することを防止するための他の方法は図1の露出メモリ150を不連続的なメモリアドレスを有する論理セグメントにパーティション(Partition)することである。
S910段階で、図1の装置ドライバ160は図1のホストメモリコントローラ115に伝送される予定である図1のメモリアドレス605にアクセスするための要求をインターセプトする。
S930段階で、結果的に図1の装置ドライバ160は事前マッピングされたメモリアドレスエイリアス(705、710)又は図6の事前マッピングされたメモリアドレス610を図1のホストメモリコントローラ115に伝送する。
図1のNVDIMM105は何らかの望ましい方式でメモリの連続的なブロックを選択する。例えば、図1のNVDIMM105は基本アドレス‘0’から始まる連続的なブロック、図5の総メモリ容量505の上端で終わる連続的なブロック、或いは他の形態のメモリの連続的なブロックを選択する。
図9及び図10を参照すると、1つの実施形態が図示される。しかし、当業者は上述した段階の順序を変更するか、一部段階を省略するか、或いは図面で図示されない連結を含んで他の実施形態が具現できることは容易に理解できる。明視的に説明されたか否かに関係無く、このようなフローチャートの変形は本発明の実施形態として看做される。
システムは内蔵コントローラ等を含む。例えば、内蔵コントローラはプログラムが可能であるか、或いは不可能なロジック装置又はアレイ(Array)、ASIC(Application Specific Integrated Circuits)、内蔵コンピュータ、スマトカード等を含む。システムは1つ又は1つ以上の遠隔マシンとの1つ又は1つ以上の接続を使用することができる。例えば、このような接続はネットワークインターフェイス、モデム、又は他の擬似伝達接続を通じてなされる。
本発明の実施形態は類型の非一時的(Non−transitory)のシステムリーダブル(Readable)媒体を含む。システムリーダブル媒体は1つ又は1つ以上のプロセッサによって実行される命令、ここで記述された本発明の要素を実行する命令で構成された命令を含む。
第1例にしたがう本発明の実施形態は装置を含むことができる。
前記装置はDIMMソケットに装着されたNVDIMM、そして
ホストプロセッサ上で動作する装置ドライバを含み、
NVDIMMはメモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
装置ドライバはホストメモリコントローラに伝送されるメモリアドレスをインターセプトし、メモリアドレスを事前マッピングされたメモリアドレスに変換するように動作し、
事前マッピングされたメモリアドレスはメモリアドレスとは異なる装置である。
第3例は第1例にしたがう装置を含む。事前マッピングされたメモリアドレスはホストメモリコントローラがターゲットメモリアドレスをNVDIMMに伝送するように設計され、ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を示す。
第4例は第3例にしたがう装置を含む。装置ドライバはNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、及びホストメモリコントローラのメモリコントローラ動作モードに基づいてメモリアドレスから事前マッピングされたメモリアドレスを生成するように動作する。
第6例は第3例にしたがう装置を含む。ターゲットメモリアドレスはメモリアドレスである。
第7例は第3例にしたがう装置を含む。ターゲットメモリアドレスはメモリアドレスのエイリアス(Alias)である。
第9例は第3例にしたがう装置を含む。NVDIMMの露出メモリはNVDIMMのメモリ内の不連続的な論理セグメントに分割される。
第10例は第3例にしたがう装置を含む。露出メモリはメモリの集合である。
NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階、
メモリアドレスを中間アドレスに事前マッピングする段階、
中間アドレスをホストメモリコントローラに伝送する段階を含み、
NVDIMMはメモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
中間アドレスはメモリアドレスと異なり、
ホストメモリコントローラはターゲットメモリアドレスをNVDIMMに伝送し、ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を意味する方法である。
第13例は第11例による方法を含む。NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階はSSDのメモリアドレスにアクセスするための要求を受信する段階を含む。
第15例は第14例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、ホストメモリコントローラのメモリコントローラ動作モード、そしてホストメモリコントローラによって使用される論理−物理変換に基づいてメモリアドレスを中間アドレスに事前マッピングする段階を含む。
第17例は第11例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスのエイリアスをメモリアドレスに事前マッピングする段階を含む。
第18例は第11例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスに対して中間アドレス内の少なくとも1つのビットを変更する段階を含む。少なくとも1つの変更されたビットはNVDIMMによって使用されない。
第20例は第19例にしたがう方法を含む。ホストメモリコントローラに露出メモリを露出する段階は、
第1サイズを有するメモリの連続されたブロックを確認する段階、
メモリの連続されたブロックを論理セグメントに分割する段階、そして
論理セグメントをホストメモリコントローラに露出する段階を含み、
論理セグメントの各々は第2サイズを有する。
メモリの不連続的なブロックのセットを探す段階、そして
メモリの不連続的なブロックをホストメモリコントローラに論理セグメントとして露出する段階を含む。
NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階、
メモリアドレスを中間アドレスに事前マッピングする段階、
中間アドレスをホストメモリコントローラに伝送する段階を実行し、
NVDIMMはメモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
中間アドレスはメモリアドレスと異なり、
ホストメモリコントローラはターゲットメモリアドレスをNVDIMMに伝送し、ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を意味する。
第24例は第22例にしたがう装置を含む。NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階はSSDのメモリアドレスにアクセスするための要求を受信する段階を含む。
第26例は第25例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、ホストメモリコントローラのメモリコントローラ動作モード、そしてホストメモリコントローラによって使用される論理−物理変換に基づいてメモリアドレスを中間アドレスに事前マッピングする段階を含む。
第28例は第22例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスのエイリアスをメモリアドレスに事前マッピングする段階を含む。
第29例は第22例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスに対して中間アドレス内の少なくとも1つのビットを変更する段階を含む。少なくとも1つの変更されたビットはNVDIMMによって使用されない。
第31例は第30例にしたがう装置を含む。ホストメモリコントローラに露出メモリを露出する段階は、
第1サイズを有するメモリの連続されたブロックを確認する段階、
メモリの連続されたブロックを論理セグメントに分割する段階、そして
論理セグメントをホストメモリコントローラに露出する段階を含み、
論理セグメントの各々は第2サイズを有する。
第32例は第30例にしたがう装置を含む。ホストメモリコントローラに露出メモリを露出する段階は、
メモリの不連続的なブロックのセットを探す段階、そして
メモリの不連続的なブロックをホストメモリコントローラに論理セグメントとして露出する段階を含む。
110 ホストプロセッサ
115 ホストメモリコントローラ
120 メモリ信号ライン
125 DIMMソケット
130 不揮発性メモリ
135 ホストインターフェイスロジック
140 プロセシング及びコントロールロジック
145 内蔵DRAM
150 露出メモリ
155 DRAMDIMM
160 装置ドライバ
305 コンピュータシステム
310 コンピュータ
315 モニタ
320 キーボード
325 マウス
405 クロック
410 ストレージ装置
415 ネットワークコネクタ
420 バス
425 ユーザーインターフェイス
430 I/Oエンジン
435 メモリ
Claims (20)
- DIMM(Dual In−Line Memory Module)ソケットに装着されたNVDIMM(Non−Volatile Dual In−Line Memory Module)と、
ホストプロセッサ上で動作する装置ドライバと、を有し、
前記NVDIMMは、メモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、前記露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
前記装置ドライバは、ホストメモリコントローラに伝送されるメモリアドレスをインターセプトし、前記メモリアドレスを事前マッピングされたメモリアドレスに変換するように動作し、
前記事前マッピングされたメモリアドレスは、前記メモリアドレスと異なることを特徴とするNVDIMMを含む装置。 - 前記NVDIMMは、SSD(Solid State Device)を含むことを特徴とする請求項1に記載のNVDIMMを含む装置。
- 前記事前マッピングされたメモリアドレスは、前記ホストメモリコントローラがターゲットメモリアドレスを前記NVDIMMに伝送するように設計され、
前記ターゲットメモリアドレスは、前記メモリアドレスに格納された値の物理的位置を示すことを特徴とする請求項1に記載のNVDIMMを含む装置。 - 前記装置ドライバは、前記NVDIMM内の露出メモリの第1サイズ、前記NVDIMM内の露出メモリの基本アドレス、前記NVDIMM内の露出メモリの論理セグメントの第2サイズ、及び前記ホストメモリコントローラのメモリコントローラ動作モードに基づいて前記メモリアドレスから前記事前マッピングされたメモリアドレスを生成するように動作することを特徴とする請求項3に記載のNVDIMMを含む装置。
- 前記装置ドライバは、前記第1サイズ、基本アドレス、第2サイズ、メモリコントローラ動作モード、及び前記ホストメモリコントローラによる前記メモリアドレスの論理−物理変換に基づいて前記メモリアドレスから前記事前マッピングされたメモリアドレスを生成するように動作することを特徴とする請求項4に記載のNVDIMMを含む装置。
- 前記ターゲットメモリアドレスは、前記メモリアドレスのエイリアス(Alias)であることを特徴とする請求項3に記載のNVDIMMを含む装置。
- 前記事前マッピングされたメモリアドレスは、前記メモリアドレスに対する少なくとも1つの変更されたビットを含み、
前記少なくとも1つの変更されたビットは、前記NVDIMMによって使用されないことを特徴とする請求項6に記載のNVDIMMを含む装置。 - NVDIMMを含む装置のアクセス方法において、
前記NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階と、
前記メモリアドレスを中間アドレスに事前マッピングする段階と、
前記中間アドレスをホストメモリコントローラに伝送する段階と、を有し、
前記NVDIMMは、メモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、前記露出メモリは、露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
前記中間アドレスは、前記メモリアドレスと異なり、
前記ホストメモリコントローラは、ターゲットメモリアドレスを前記NVDIMMに伝送し、
前記ターゲットメモリアドレスは、前記メモリアドレスに格納された値の物理的位置を示すことを特徴とするNVDIMMを含む装置のアクセス方法。 - 前記NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階は、SSDの前記メモリアドレスにアクセスするための前記要求を受信する段階を含むことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記NVDIMM内の露出メモリの第1サイズ、前記NVDIMM内の露出メモリの基本アドレス、前記NVDIMM内の露出メモリの論理セグメントの第2サイズ、及び前記ホストメモリコントローラのメモリコントローラ動作モードに基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記第1サイズ、基本アドレス、第2サイズ、メモリコントローラ動作モード、及び前記ホストメモリコントローラによって使用される論理−物理変換に基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項10に記載のNVDIMMを含む装置のアクセス方法。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスを前記メモリアドレスのエイリアス(Alias)に事前マッピングする段階を含むことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスに対して前記中間アドレス内の少なくとも1つのビットを変更する段階を含み、前記変更された少なくとも1つのビットは、前記NVDIMMによって使用されないことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
- 前記ホストメモリコントローラに前記露出メモリを露出する段階をさらに有することを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
- 前記ホストメモリコントローラに前記露出メモリを露出する段階は、
前記第1サイズを有するメモリの連続したブロックを確認する段階と、
前記メモリの連続したブロックを複数の論理セグメントに分割する段階と、
前記複数の論理セグメントを前記ホストメモリコントローラに露出する段階と、を含み、
前記複数の論理セグメントの各々は、第2サイズを有することを特徴とする請求項14に記載のNVDIMMを含む装置のアクセス方法。 - 非一時的(Non−Transitory)命令を格納する類型のストレージ媒体を含む装置において、
前記非一時的命令は、システムによって実行される時、
NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階と、
前記メモリアドレスを中間アドレスに事前マッピングする段階と、
前記中間アドレスをホストメモリコントローラに伝送する段階を実行し、
前記NVDIMMは、メモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、前記露出メモリは、露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
前記中間アドレスは、前記メモリアドレスと異なり、
前記ホストメモリコントローラは、ターゲットメモリアドレスを前記NVDIMMに伝送し、
前記ターゲットメモリアドレスは、前記メモリアドレスに格納された値の物理的位置を示すことを特徴とする装置。 - 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記NVDIMM内の露出メモリの第1サイズ、前記NVDIMM内の露出メモリの基本アドレス、前記NVDIMM内の露出メモリの論理セグメントの第2サイズ、及び前記ホストメモリコントローラのメモリコントローラ動作モードに基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項16に記載の装置。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記第1サイズ、基本アドレス、第2サイズ、メモリコントローラ動作モード、及び前記ホストメモリコントローラによって使用される論理−物理変換に基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項17に記載の装置。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスを前記メモリアドレスのエイリアス(Alias)に事前マッピングする段階を含むことを特徴とする請求項16に記載の装置。
- 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスに対して前記中間アドレス内の少なくとも1つのビットを変更する段階を含み、前記変更された少なくとも1つのビットは、前記NVDIMMによって使用されないことを特徴とする請求項16に記載の装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562238660P | 2015-10-07 | 2015-10-07 | |
US62/238,660 | 2015-10-07 | ||
US15/060,596 | 2016-03-03 | ||
US15/060,596 US10031674B2 (en) | 2015-10-07 | 2016-03-03 | DIMM SSD addressing performance techniques |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017073129A true JP2017073129A (ja) | 2017-04-13 |
JP2017073129A5 JP2017073129A5 (ja) | 2019-10-17 |
JP6799427B2 JP6799427B2 (ja) | 2020-12-16 |
Family
ID=58498625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016187239A Active JP6799427B2 (ja) | 2015-10-07 | 2016-09-26 | Nvdimmを含む装置及びそのアクセス方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10031674B2 (ja) |
JP (1) | JP6799427B2 (ja) |
KR (1) | KR102317657B1 (ja) |
CN (1) | CN106776358B (ja) |
TW (2) | TWI699646B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10956085B2 (en) | 2018-01-05 | 2021-03-23 | Toshiba Memory Corporation | Memory system and processor system |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437483B2 (en) * | 2015-12-17 | 2019-10-08 | Samsung Electronics Co., Ltd. | Computing system with communication mechanism and method of operation thereof |
US10635553B2 (en) * | 2017-10-20 | 2020-04-28 | Microsoft Technology Licensing, Llc | Error recovery in non-volatile storage partitions |
KR102353859B1 (ko) * | 2017-11-01 | 2022-01-19 | 삼성전자주식회사 | 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈 |
JP7279889B2 (ja) * | 2017-11-07 | 2023-05-23 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | メモリブロックリクレーム方法およびメモリブロックリクレーム装置 |
KR102410671B1 (ko) | 2017-11-24 | 2022-06-17 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 제어하는 호스트 장치, 및 스토리지 장치의 동작 방법 |
US11029879B2 (en) | 2018-01-29 | 2021-06-08 | Samsung Electronics Co., Ltd | Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel |
US10838637B2 (en) | 2018-02-08 | 2020-11-17 | Micron Technology, Inc. | Status management in storage backed memory package |
US11074189B2 (en) | 2019-06-20 | 2021-07-27 | International Business Machines Corporation | FlatFlash system for byte granularity accessibility of memory in a unified memory-storage hierarchy |
US11113188B2 (en) | 2019-08-21 | 2021-09-07 | Microsoft Technology Licensing, Llc | Data preservation using memory aperture flush order |
KR102657760B1 (ko) | 2019-09-23 | 2024-04-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 메모리 시스템의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012119018A (ja) * | 2010-11-30 | 2012-06-21 | Hitachi Ltd | 半導体装置および情報処理システム |
JP2015162253A (ja) * | 2014-02-26 | 2015-09-07 | Necプラットフォームズ株式会社 | 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム |
US20150332768A1 (en) * | 2008-02-12 | 2015-11-19 | Virident Systems, Inc. | Memory modules with multi-chip packaged integrated circuits having flash memory |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732249B1 (en) * | 2000-06-09 | 2004-05-04 | 3Com Corporation | Host computer virtual memory within a network interface adapter |
EP1473638B1 (en) * | 2003-04-28 | 2008-07-23 | Texas Instruments Incorporated | Terminal management bus |
US20060044934A1 (en) * | 2004-09-02 | 2006-03-02 | Micron Technology, Inc. | Cluster based non-volatile memory translation layer |
US20060168485A1 (en) * | 2005-01-26 | 2006-07-27 | Via Technologies, Inc | Updating instruction fault status register |
US7716411B2 (en) * | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
TWI462112B (zh) * | 2006-08-04 | 2014-11-21 | Marvell World Trade Ltd | 具有誤差修正功能之完全緩衝式雙直列記憶體模組 |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8082384B2 (en) * | 2008-03-26 | 2011-12-20 | Microsoft Corporation | Booting an electronic device using flash memory and a limited function memory controller |
US7941568B2 (en) * | 2008-05-05 | 2011-05-10 | International Business Machines Corporation | Mapping a virtual address to PCI bus address |
US20110035540A1 (en) | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
US9552175B2 (en) | 2011-02-08 | 2017-01-24 | Diablo Technologies Inc. | System and method for providing a command buffer in a memory system |
US9575908B2 (en) | 2011-02-08 | 2017-02-21 | Diablo Technologies Inc. | System and method for unlocking additional functions of a module |
US8607003B2 (en) * | 2011-07-15 | 2013-12-10 | International Business Machines Corporation | Memory access to a dual in-line memory module form factor flash memory |
WO2013028849A1 (en) * | 2011-08-24 | 2013-02-28 | Rambus Inc. | Methods and systems for mapping a peripheral function onto a legacy memory interface |
US9026717B2 (en) * | 2011-09-30 | 2015-05-05 | SanDisk Technologies, Inc. | Apparatus, system, and method for a persistent object store |
US9317429B2 (en) * | 2011-09-30 | 2016-04-19 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
KR20130078455A (ko) * | 2011-12-30 | 2013-07-10 | 삼성전자주식회사 | 메모리 특성 정보를 저장하는 반도체 메모리 장치, 이를 포함하는 메모리 모듈, 메모리 시스템 및 반도체 메모리 장치의 동작방법 |
US9046915B2 (en) * | 2012-02-27 | 2015-06-02 | Advanced Micro Devices, Inc. | Circuit and method for initializing a computer system |
US9280497B2 (en) | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
CA2941702A1 (en) * | 2014-03-08 | 2015-09-17 | Diamanti, Inc. | Methods and systems for converged networking and storage |
CN104881371B (zh) * | 2015-05-29 | 2018-02-09 | 清华大学 | 持久性内存事务处理缓存管理方法与装置 |
-
2016
- 2016-03-03 US US15/060,596 patent/US10031674B2/en active Active
- 2016-04-12 KR KR1020160044912A patent/KR102317657B1/ko active IP Right Grant
- 2016-06-15 TW TW105118703A patent/TWI699646B/zh active
- 2016-06-15 TW TW109121231A patent/TWI718969B/zh active
- 2016-09-26 JP JP2016187239A patent/JP6799427B2/ja active Active
- 2016-10-08 CN CN201610877643.3A patent/CN106776358B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150332768A1 (en) * | 2008-02-12 | 2015-11-19 | Virident Systems, Inc. | Memory modules with multi-chip packaged integrated circuits having flash memory |
JP2012119018A (ja) * | 2010-11-30 | 2012-06-21 | Hitachi Ltd | 半導体装置および情報処理システム |
JP2015162253A (ja) * | 2014-02-26 | 2015-09-07 | Necプラットフォームズ株式会社 | 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10956085B2 (en) | 2018-01-05 | 2021-03-23 | Toshiba Memory Corporation | Memory system and processor system |
Also Published As
Publication number | Publication date |
---|---|
US20170102873A1 (en) | 2017-04-13 |
TW202040367A (zh) | 2020-11-01 |
JP6799427B2 (ja) | 2020-12-16 |
TW201714090A (zh) | 2017-04-16 |
TWI699646B (zh) | 2020-07-21 |
KR102317657B1 (ko) | 2021-10-26 |
US10031674B2 (en) | 2018-07-24 |
CN106776358A (zh) | 2017-05-31 |
TWI718969B (zh) | 2021-02-11 |
KR20170041616A (ko) | 2017-04-17 |
CN106776358B (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017073129A (ja) | Nvdimmを含む装置及びそのアクセス方法 | |
CN106354656B (zh) | 用于存储管理的方法和系统 | |
US10558393B2 (en) | Controller hardware automation for host-aware performance booster | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
US10943635B2 (en) | Memory device shared by two or more processors and system including the same | |
KR102661020B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
EP3506075A1 (en) | Mass storage device capable of fine grained read and/or write operations | |
US20190146926A1 (en) | Storage device and operating method of storage device | |
US20170255565A1 (en) | Method and apparatus for providing a contiguously addressable memory region by remapping an address space | |
US11907120B2 (en) | Computing device for transceiving information via plurality of buses, and operating method of the computing device | |
EP3465450B1 (en) | Improving throughput in openfabrics environments | |
US10503657B2 (en) | DIMM SSD Addressing performance techniques | |
US9904622B2 (en) | Control method for non-volatile memory and associated computer system | |
US10102125B2 (en) | PCI device, interface system including the same, and computing system including the same | |
US20180018090A1 (en) | Method for transferring command from host to device controller and system using the same | |
US10657274B2 (en) | Semiconductor device including memory protector | |
US10922239B2 (en) | Device for performing iterator operation in database | |
EP4170495A1 (en) | Resource isolation in computational storage devices | |
US9239768B2 (en) | Distributed pin map memory | |
JP2022165569A (ja) | メモリシステム、メモリデバイス、およびデータ送信方法 | |
US20140012904A1 (en) | Providing byte enables for peer-to-peer data transfer within a computing environment | |
KR20180009401A (ko) | 메모리 콘트롤러, 이를 포함하는 메모리 시스템 및 메모리 콘트롤러의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190909 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190909 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201030 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201120 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6799427 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |