JP2017073129A - Nvdimmを含む装置及びそのアクセス方法 - Google Patents

Nvdimmを含む装置及びそのアクセス方法 Download PDF

Info

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
Application number
JP2016187239A
Other languages
English (en)
Other versions
JP6799427B2 (ja
JP2017073129A5 (ja
Inventor
ハンソン,クレイグ
Hanson Craig
スワーブリック,イアン
Swarbrick Ian
ベッカーマン,マイケル
Bekerman Michael
張志任
Chihjen CHANG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017073129A publication Critical patent/JP2017073129A/ja
Publication of JP2017073129A5 publication Critical patent/JP2017073129A5/ja
Application granted granted Critical
Publication of JP6799427B2 publication Critical patent/JP6799427B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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

【課題】メモリアドレスをインターセプトする装置ドライバを利用してDIMMスロット上のインターフェイスを支援するNVDIMMを含む装置及びそのアクセス方法を提供する。【解決手段】装置は、NVDIMM105及び装置ドライバ160を含む。NVDIMM(Non−Volatile Dual In−Line Memory Module)はDIMMソケットに装着される。装置ドライバは、ホストプロセッサ上で動作する。NVDIMMは、メモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含む。装置ドライバは、ホストメモリコントローラに伝送されるメモリアドレスをインターセプトし、メモリアドレスを事前マッピングされたメモリアドレスに変換するように動作する。事前マッピングされたメモリアドレスはメモリアドレスと異なってもよい。【選択図】図1

Description

本発明はメモリ装置に関し、さらに具体的にNVDIMMを含む装置及びそのアクセス方法に関する。
DIMMに対する要求事項は数年間確立されてきた。1944年に設立され、1958年に現在の名前を持つようになったJEDEC(Joint Electron Device Engineering Council)はDIMM装置に対する技術仕様(Specifications)を提供する。DIMM装置の多様な変形が存在するので、JEDECはDIMMが動作する方法に対する多様な標準に対する草案を作成してきた。
DIMMはDIMMスロット(Slot)コネクタに連結され、メモリチャンネルのアドレス信号ラインを通じてホストプロセッサと通信する。また、ホストプロセッサ(さらに詳細にはメモリコントローラ)とDIMMとの間の通信する方式はよく確立されている。
DIMMは一般的に揮発性メモリを含む。即ち、メモリセル内のデータ値は周期的にリフレッシュ(Refresh)される必要があり、そうでなければ、メモリセルはメモリに格納されたデータの値を失うことになる。リフレッシュと関連して、DIMMはJEDECによって定められた最小のリフレッシュ周期を支援することができなければならない。
DIMMのような揮発性メモリとは対照的に、不揮発性メモリ(NVM:Non−Volatile Memory)の形態も存在する。不揮発性メモリの形態は周期的なリフレッシュ無しでもメモリに格納されたデータ値を維持することができる。不揮発性メモリの1つの例示的な形態はNAND(Nand)フラッシュメモリである。NANDフラッシュメモリはUSB(Universal Serial Bus)キー及びSSD(Solid State Devices)等で容易に見つけることができる。
DIMMスロットに互換される不揮発性メモリの形態は持続的に開発されてきた。しかし、不揮発性メモリはDIMMとは異なる原理によって動作する。不揮発性メモリの形態がDIMMソケット(Socket)で動作するようにするためには、不揮発性メモリはホストプロセッサ及びメモリコントローラにDIMMとして認識されなければならない。DIMM内のメモリアドレッシング(Addressing)は不揮発性メモリ形態とは異なる形で遂行されるので、これは解決されるべき幾つかの問題を発生させる。
したがって、DIMMスロットで不揮発性メモリ形態を使用することに伴って発生するメモリアドレッシング方法及び多様な問題を解決するための方法が要求される。
米国特許公開第2011/0035540号明細書 米国特許公開第2014/0237176号明細書 米国特許公開第2014/0237205号明細書 米国特許公開第2014/0181364号明細書
本発明は、上記従来のDIMMにおける問題点に鑑みてなされたものであって、本発明の目的はメモリアドレスをインターセプトする装置ドライバを利用してDIMMスロット上のインターフェイスを支援するNVDIMMを含む装置及びそのアクセス方法を提供することにある。
本発明の実施形態による装置はNVDIMM及び装置ドライバを含むことができる。NVDIMM(Non−Volatile Dual In−Line Memory Module)はDIMM(Dual In−Line Memory Module)ソケットに装着されることができる。装置ドライバはホストプロセッサ上で動作することができる。NVDIMMはメモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含むことができる。装置ドライバはホストメモリコントローラに伝送されるメモリアドレスをインターセプトし、メモリアドレスを事前マッピングされたメモリアドレスに変換するように動作することができる。事前マッピングされたメモリアドレスはメモリアドレスと異なってもよい。
本発明の実施形態によるNVDIMMを含む装置のアクセス方法はNVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階、メモリアドレスを中間アドレスに事前マッピングする段階、中間アドレスをホストメモリコントローラに伝送する段階を含むことができる。NVDIMMはメモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含むことができる。中間アドレスはメモリアドレスと異なってもよい。ホストメモリコントローラはターゲットメモリアドレスをNVDIMMに伝送することができる。ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を示すことができる。
非一時的(Non−Transitory)命令を格納する類型のストレージ媒体を含む装置において、非一時的命令はシステムによって実行される時、NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階、メモリアドレスを中間アドレスに事前マッピングする段階、中間アドレスをホストメモリコントローラに伝送する段階を実行することができる。NVDIMMはメモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含むことができる。中間アドレスはメモリアドレスと異なってもよい。ホストメモリコントローラはターゲットメモリアドレスをNVDIMMに伝送することができる。ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を示すことができる。
本発明に係るNVDIMMを含む装置によれば、複数の不揮発性メモリ装置を含むNVDIMMがDIMMスロット上で動作することができる。これを通じて、NVDIMMは速度が速いメモリチャンネルを利用することができ、結果的にメモリの通信速度が向上される。
本発明の実施形態によるホストプロセッサと通信するNVDIMMを示すブロック図である。 図1の装置ドライバの設計において考慮される多様な事項を示す図面である。 図1のホストプロセッサ及びNVDIMMを支援することができるコンピュータシステムを示す図面である。 図1のNVDIMMを使用することができるシステムの構造を示す図面である。 本発明の実施形態による図1のNVDIMMのメモリ空間のレイアウトを例示的に示す図面である。 本発明の実施形態による図1のNVDIMM内のメモリアドレスにアクセスするための要求をインターセプトし、要求されたメモリアドレスを事前にマッピングする図1の装置ドライバを示す図面である。 本発明の実施形態によるアドレスエイリアスを実行する図1の装置ドライバを示す図面である。 本発明の他の実施形態による図1のNVDIMMのメモリ空間のレイアウトを例示的に示す図面である。 本発明の実施形態による図1のNVDIMM及び装置ドライバが図1のNVDIMM内のメモリアドレスに対する要求を処理する方法を説明するためのフローチャートである。 本発明の実施形態による図1のNVDIMMが図1のホストコンピュータにメモリを露出させる方法を説明するためのフローチャートである。
次に、本発明に係るNVDIMMを含む装置及びそのアクセス方法を実施するための形態の具体例を、図面を参照しながら説明する。
本発明の実施形態は制限的な方法ではなく、例として図示されており、添付図面で類似な参照番号は類似な要素を参照する。
先の一般的な説明及び次の詳細な説明のすべてが例示的であることを理解されなければならず、請求された発明の付加的な説明が提供されることとして理解されるべきである。参照符号が本発明の望ましい実施形態に詳細に表示されており、その例が参照図面に表示されている。可能であるどんな場合にも、同一の参照番号が同一又は類似な部分を参照するために説明及び図面に使用される。
以下では、不揮発性メモリ装置が本発明の特徴及び機能を説明するための例として使用される。しかし、この技術分野に精通する人はここに記載された内容によって本発明の他の長所及び性能を容易に理解することができる。また、本発明は他の実施形態を通じて具現されるか、或いは適用され得る。その上に、詳細な説明は本発明の範囲、技術的思想、そして他の目的から相当に逸脱することのない観点及び応用によって修正されるか、或いは変更され得る。
ストレージ媒体としてNANDフラッシュメモリを使用するSSD(Solid State Devices)のようなソリッドステートコンピュータストレージ装置は恒久的なデータストレージサービスを提供し、多様な方法を通じてホストコンピュータと接続される。運用的な観点で、重要な構成要素としては、恒久的な格納能力のためにストレージ装置が利用するNANDフラッシュメモリ回路、ホストインターフェイスロジック、そしてプロセシング及び媒体コントロールロジック等がある。
1つの重要なホストインターフェイス方法としてNVMe(Non−Volatile Memory Express)がある。ホストはPCIe(Peripheral Component Interconnect Express)チャンネルを通じてNVMeストレージ装置とインターフェイスする。これは複数の標準化された方式にメモリマッピングされたサブミッションキュー(Submission Queue)及び完了キューペア(Completion Queue pair)を利用して実行される。
ホストのDRAM(Dynamic Random Access Memory)アドレス空間内の割当されたメモリ位置と関連付けられたデータ及びコマンドを通じて、ホストプロセッサはNVMeストレージ装置にデータI/O(Input/Output)要求を伝送する。このような割当された位置アドレスはNVMeサブミッションキューとホストメモリマッピングされる。NVMe装置は伝送された要求を感知し、装置プロセシングロジックが要求の移行のために要求を装置に移すまでこれを保管する。
NVMe装置が要求を実行した場合、NVMe装置はホストが要求を配置するサブミッションキューと関連付けられた完了キューに応答を伝送する。サブミッションキューのように、完了キューはホストメモリマッピングされる。ホストは応答の存在を感知し、メモリマッピングされたデータの移動方法を利用して応答にアクセスし、それが応答を受信したか否かを示す方法を有している。
NVMeと対照的に、NVDIMM(Non−Volatile Dual In−Line Memory Module)はホストと接続するためにホストDRAMメモリチャンネルを利用する。NVDIMMはNVMeを利用するSSDより著しく速くホストプロセッサと通信する。これはNVDIMMが著しく速いホストプロセッサ接続方法を使用するためである。メモリチャンネルの伝送速度は相対的にPCIe接続より速い。
しかし、このような形態は追加的な問題を有する。NVDIMMがホストメモリチャンネルに存在するので、NVDIMMはホストメモリコントローラにJEDEC(Joint Electron Device Engineering Council)標準に準拠するDRAMDIMMに認識されなければならず、標準DRAMDIMMソケットを利用してホストメモリチャンネルと接続されなければならない。特に、NVDIMMは完全にJEDECDIMM技術仕様に準拠しなければならない。
JEDECDIMM技術仕様に準拠するために、NVDIMMはホストにそれが特定なメモリ容量を有するDRAMDIMMであると報告しなければならず、報告されるDRAMDIMMタイプと区別されないように動作しなければならない。また、NVDIMMはホストにメモリマップ動作のためのインターフェイスを提供しなければならない。このようなインターフェイスはメモリチャンネルの速度で動作し、システムメモリとして見分けがつかないように動作する。一般的に、NVDIMMは少ない量のメモリのみを、メモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出(expose)する。このように露出されるメモリはDRAM、SRAM(Static Random Access Memory)のような揮発性メモリ又はNVDIMM内の不揮発性メモリの一部分であり、以下露出メモリと称する。
図1は本発明の実施形態によるホストプロセッサと通信するNVDIMMを示すブロック図である。図1は、ホストメモリコントローラ115、及びメモリ信号ライン120を通じてホストプロセッサ110と通信するNVDIMM105を示す。
ホストメモリコントローラ115はNVDIMM105が提供するメモリとの読出し及び書込み動作を実行する。NVDIMM105はDIMMソケット125を通じてホストメモリコントローラ115、及びホストプロセッサ110と通信する。DIMMソケット125はホストプロセッサ110、及びNVDIMM105を含むコンピュータ内に装着された標準DIMMソケットである。
NVDIMM105は不揮発性メモリ130、ホストインターフェイスロジック135、プロセシング及びコントロールロジック140、内蔵DRAM145、及び露出メモリ150を含む。不揮発性メモリ130は何らかの形態の不揮発性メモリであってもよい。本発明の一実施形態として、不揮発性メモリ130はNANDフラッシュストレージを含む。他の実施形態として、不揮発性メモリ130はNORフラッシュストレージ、PCM(Phase Change Memory)、STT(Spin−Transfer Torque)、そしてMRAM(Magnetic RAM)のような他の形態の不揮発性メモリを含むことができる。ホストインターフェイスロジック135はホストプロセッサ110とNVDIMM105との間の通信の制御を担当する。プロセシング及びコントロールロジック140は不揮発性メモリ130の使用の制御を担当する。
また、露出メモリ150はメモリマッピング動作のためにホストプロセッサ110に露出されたメモリを含む。露出メモリ150は内蔵DRAM145の一部、不揮発性メモリ130の一部、又はNVDIMM105とは別の構成要素であってもよい。例えば、本発明の一実施形態として、不揮発性メモリ130は露出メモリ150として割り当てられた1MB及びこれを含む8GBの全体メモリを含む。本発明の他の実施形態は不揮発性メモリ130の総メモリの概ね大部分であるか、或いは露出メモリ150の概ね大部分、又は両方の全てを含む。
NVDIMM105を利用してDIMMをシミュレーション(Simulation)することにおいて発生する1つの問題はホストプロセッサ110及びさらに具体的にはホストプロセッサ110上で実行されるプログラムがメモリに対する特別なヴュー(view)を有しているということである。このような特別なヴューは多様なアプリケーションの各々がそれぞれの用途に対してあたかもすべての利用可能なメモリを有するように動作することを許容する。ホストメモリコントローラ115はメモリアドレスの論理−物理変換を実行してこのようなメモリのヴューを收容する。即ち、アプリケーションがメモリからデータを読み出すか、或いは書込むためにメモリ位置にアクセスを要求する場合、アプリケーションはそれが認識しているメモリアドレスを提供する。このメモリアドレスは所望するメモリセルが位置する装置上の実際メモリアドレスではない場合がしばしばある。ホストメモリコントローラ115はこのような論理的なメモリヴュー(アプリケーションの各々が自体の論理的なヴューを有しているので)とメモリモジュールの物理的アドレスとの間の変換を処理する。
問題はNVDIMM105内の露出メモリ150が直接メモリにアドレスすることができ、ホストメモリコントローラ115によるこのような論理−物理変換を要求しないことである。ホストメモリコントローラ115がこのような論理−物理変換を実行する場合、ホストメモリコントローラ115は所望するメモリセルの正確な位置を防ぐ方法にてアドレスをコンボルブ(Convolve)する。
このような問題に対する解決策は装置ドライバ160を導入することである。装置ドライバ160は要求されたメモリアドレスを事前にマッチングし、これにホストメモリコントローラ115がその論理−物理変換を実行した後にNVDIMM105が予想する直接的なメモリアドレスを受信する。
装置ドライバ160がこのような事前マッピングを実行する方法は様々な要素に依存する。
図2は図1の装置ドライバの設計において考慮される多様な事項を示す図面である。装置ドライバ160の動作に入る要素は、露出メモリのサイズ205、露出メモリの基本アドレス210、露出メモリの論理セグメント(Segment)のサイズ215、メモリコントローラ動作モード220、そしてメモリコントローラによって利用される論理−物理変換225等を含む。論理セグメントは図5及び図8を参照して説明する。
装置ドライバ160は、メモリコントローラ動作モード220、及びホストメモリコントローラ115の論理−物理変換225を決定するために基本システムのバスを探索する。他の要素は図1のNVDIMM105の設計において決定され、装置ドライバ160は事前にこのことを認知する。
本発明の一実施形態として、メモリコントローラ動作モード220はページオープンコントローラモードにて動作する。ページオープンコントローラモードはホストメモリコントローラ115が、メモリアクセスアドレスが互いに接近して離隔されていると仮定するモードである。例えば、このような要求はしばしばデスクトップコンピュータシステムやI/O要求で発生する。
本発明の他の実施形態として、メモリコントローラ動作モード220はページクローズ(Closed)コントローラモードにて動作する。ページクローズコントローラモードはホストメモリコントローラ115がメモリ要求の中でアクセスの減少された局所性(Locality)があると仮定するモードである。
一般的に、ホストメモリコントローラ115は基本システムが再び開始する時、他の動作モードに変更することができるとしても、ホストメモリコントローラ115は基本システムの動作の中でモードを変更せずただ1つのモードにて動作する。論理−物理変換225は自体にランクアドレス(Rank Address)、バンクグループアドレス(Bank Group Address)、バンクアドレス(Bank Address)、ロウアドレス(Row Address)、そしてカラムアドレス(Column Address)等の多様な要素を含む。
図1の装置ドライバ160が事前マッピングを実行する方法の例を説明する前に追加的な情報に言及することは有用である。
図3は図1のホストプロセッサ及びNVDIMMを支援することができるコンピュータシステムを示す図面である。図3を参照すると、コンピュータシステム305はコンピュータ310、モニタ315、キーボード320、及びマウス325を含む。当業者はコンピュータシステム305に他の構成要素が含まれることを容易に理解できる。例えば、コンピュータシステム305はプリンタのようなI/O装置等をさらに含む。さらに、コンピュータシステム305は図1に示した既存の内部構成要素を含む。例えば、既存の内部構成要素は図1のホストプロセッサ110、図1のNVDIMM105、及び追加的なストレージ等を含む。
図3に示していないが、当業者はコンピュータシステム305がグラフィックカード、モデム等の他の内部構成要素を含み得ることを容易に理解できる。また、当業者はコンピュータシステム305が他のコンピュータシステムと直接的に或いは他のタイプのネットワーク(図示せず)を通じて相互作用できることを容易に理解できる。また、図3はコンピュータシステム305が既存デスクトップ(Desktop)コンピュータとして示したが、当業者はコンピュータシステム305が何らかの形態のマシン又はコンピューティング装置であることを容易に理解できる。例えば、上述したマシン又はコンピューティング装置はラップトップ(Laptop)コンピュータ、タブレットコンピュータ、PDA(Personal Digital Assistant)、又はスマートフォン等を含む。
図4は図1のNVDIMMを使用することができるシステムの構造を示す図面である。図4を参照すると、一般的にコンピュータシステム305は1つ又は1つ以上のホストプロセッサ110を含む。ホストプロセッサ110はホストメモリコントローラ115及びクロック405を含む。クロック405はコンピュータシステム305の構成要素の動作を同期化するために使用される。また、ホストプロセッサ110はメモリ435と接続される。例えば、メモリ435はNVDIMM、RAM(Random Access Memory)、ROM(Read−Only Memory)、又は他の状態格納媒体等を含む。ホストプロセッサ110はまたストレージ装置410、及びネットワークコネクタ415と接続される。例えば、ネットワークコネクタ415はイーサーネット(登録商標)(Ethernet)コネクタであってもよい。ホストプロセッサ110はまたバス420と接続される。バス420は他の構成要素の中でI/Oエンジン430を利用して制御され得るI/Oインターフェイスポート、及びユーザーインターフェイス425と接続される。
図5は本発明の実施形態による図1のNVDIMMのメモリ空間のレイアウトを例示的に示す図面である。図5は、不揮発性メモリ130を示す。不揮発性メモリ130は基本アドレス210で始まる総メモリ容量505を含む。不揮発性メモリ130は論理セグメント510、515、520、525、530のような論理セグメントに区分される。論理セグメントは不揮発性メモリ130が細分化された区画である。一般的には論理セグメント(510、515、520、525、530)は2の累乗形態に構成された多数のバイトを含むが、論理セグメント(510、515、520、525、530)は何らかの所望されるサイズ215であってもよい。
論理セグメント(510、515、520、525、530)のサイズ215と不揮発性メモリ130の総メモリ容量505との間には如何なる関係も要求されない。また、論理セグメント(510、515、520、525、530)のサイズ215と露出メモリ150のサイズ205との間にも如何なる関係も要求されない。しかし、仮に論理セグメント(510、515、520、525、530)のサイズ215があまりにも小さい場合、論理セグメント(510、515、520、525、530)の各々はメモリ要求に対して十分でないストレージを有することになる。
本発明の一実施形態として、図5は8GBの不揮発性メモリ130の総メモリ容量505、1MBの露出メモリ150のサイズ205、そして4kBの論理セグメント(510、515、520、525、530)の各々のサイズ215を示す。しかし、本発明の他の実施形態は、不揮発性メモリ130の総メモリ容量505、露出メモリ150のサイズ205、そして論理セグメント(510、515、520、525、530)の各々のサイズ215の中で一部或いは全てに対してその他の値も支援する。図5、及び図8はいずれも露出メモリ150を不揮発性メモリ130の一部として図示しているが、露出メモリ150は不揮発性メモリ130と分離されて具現されてもよい。
図6は本発明の実施形態による図1のNVDIMM内のメモリアドレスにアクセスするための要求をインターセプトし、要求されたメモリアドレスを事前にマッピングする図1の装置ドライバを示す図面である。図6を参照すると、アプリケーション又は他のプロセスはメモリアドレス605を生成する。メモリアドレス605は図1のNVDIMM105内のメモリアドレスに該当する。
メモリアドレス605を図2の論理−物理変換225を実行するホストメモリコントローラ115が処理するように許用するよりも、装置ドライバ160はメモリアドレス605をインターセプトし、メモリアドレスを事前マッピングする。事前マッピングの結果は事前マッピングされたメモリアドレス610である。事前マッピングされたメモリアドレス610は中間アドレス(Intermediate Address)とも称する。
続いて、装置ドライバ160は事前マッピングされたメモリアドレス610をホストメモリコントローラ115に提供する。ホストメモリコントローラ115は事前マッピングされたメモリアドレス610上の論理−物理変換225を実行する。該当結果はターゲットメモリアドレス615である。ターゲットメモリアドレス615は図1のNVDIMM105が所望するメモリセルに格納した所の実際アドレスである。
図1に戻って、ホストシステム内で、すべてのDRAMサブシステム(Sub−System)のアドレス信号はDIMMソケットの各々に到達する。DIMMソケットの各々はNVDIMM105が装着されたDIMMソケット125を含む。アドレス分散をするため、装置ドライバ160は論理メモリセグメントに露出された正確なNVDIMMを探すために一部信号を使用する。たとえ,残った信号が図1のNVDIMM105によって使用され得るとしても、残った信号の値はマッピングとは関係ない。上述したように、正確なマッピングはこれとは異なることがあり、論理セグメントサイズ215、及びホストメモリコントローラ動作モード220に依存する。
装置ドライバ160が事前マッピングを実行するように動作する方法の一例として、NVDIMM105が図5の8GBの総メモリ容量505、図2の1MBの露出メモリ150のサイズ205、そして図2の4kBの論理セグメント(510、515、520、525、530)の各々のサイズ215を含むと仮定する。また、露出メモリ150がメモリ信号ライン120上で次の入力アドレスビット(row[2:0]、column[9:0]、ba[1:0]、bg[1:0]、3’b000)とマッピングされると仮定する。上述の記載は容易に理解するためにヴェリログ(Verilog)コード列で記述されただけで、マッピング方法が必ずハードウェア技術事項の文書として表現される必要はない。
例えば、仮にメモリコントローラ動作モード220がページオープンモードである場合、図1の論理−物理変換225は次の変換(rank[1:0]、row[16:0]、ba[1:0]、bg[1:0]、column[9:0]、3‘h0)にしたがってビットをマッピングする。また、装置ドライバ160は次のマッピング(16’hxxxx、row[2:0]、ba[1:0]、bg[1:0]、column[9:0]、3’h0)を利用してメモリアドレスを事前マッピングする。ここで、‘x’は任意(‘Don’t care’)を意味する値であり、‘x’の代わりに結果に影響を及ぼさない任意の値であっても使用され得る。
一方、例えば、仮にメモリコントローラ動作モード220がページクローズモードである場合、図1の論理−物理変換225は次の変換(rank[1:0]、column[9:3]、row[16:0]、ba[1:0]、bg[1:0]、column[2:0]、3’h0)にしたがってビットをマッピングする。また、装置ドライバ160は次のマッピング(2’hx、column[9:3]、14’hxxxx、row[2:0]、ba[1:0]、bg[1:0]、column[2:0]、3’h0)を利用してメモリアドレスを事前マッピングする。また、ここで‘x’は‘Don’t care’を意味する値である。
上述した事前マッピングの例は必然的に現実的なマッピングであるというより、構成のみである。各々のグループ内のアドレスビットはDRAM技術仕様として使用され、相対的にシステムアドレスに対する例示的な内訳(Breakdown)として選択される。例えば、DRAM技術仕様はロウ(Row)ビットの数、カラム(Column)ビットの数、バンクビットの数、そしてバンクグループビットの数を含む。但し、現実のメモリコントローラに対する事前マッピングは類似な方法で実行される。
メモリ信号ライン120を通じて、NVDIMM105はNVMeを利用して動作する不揮発性メモリ装置より著しく速くホストプロセッサ110と通信する。これはメモリチャンネルの伝送速度は相対的にPCIe接続より速いからである。しかし、ここには潜在的な問題が存在する。すべてのメモリマッピングされたI/Oの動作は非常に狭いアドレス範囲(例えば、図5で示すように1MB)でなされるため、NVDIMM105は潜在的にロウハンマ(Row Hammer)のようなDRAMDIMM標準不足によって発生する深刻な性能制約にさらされる。
簡単に説明すると、特定メモリセルに反復的にアクセスが実行される場合、ロウハンマは付近の1つ又は1つ以上のメモリセルに変化を誘発して発生する。ロウハンマはDRAM標準が最初に開発されたときJEDEC標準委員会に知られていなかった。ロウハンマ問題に対して、新しいJEDEC技術仕様はメモリコントローラ(例えば、図1のホストメモリコントローラ115)に同一のDRAMのロウアドレスにアクセスする周期を減少させて抑制(Throttle)するようにした。これはターゲットロウリフレッシュ(Target Row Refresh)と呼ぶ。
DRAMの特定ロウアドレスへのアクセスを遅くすることがロウハンマを防止する反面、アクセス周期を減少させることはメモリ動作を遅くする。また、図1のNVDIMM105のようにロウハンマが問題とされないメモリが使用される場合、抑制(Throttling)は必要としない。しかし、図1のNVDIMM105はJEDEC技術仕様に準拠し、ホストプロセッサ110と正しくインターフェイスするために一般的なDIMMに見せるため、ホストメモリコントローラ115はロウハンマが問題にならないことを認識しない。
図1の露出メモリ150のアドレス範囲が狭いほど、図1のホストメモリコントローラ115がロウハンマを避けるために図1のNVDIMM105への要求を抑制(Throttle)する確率が増加する。したがって、ホストメモリコントローラ115が、ロウハンマが問題になると認識しないようにすることが必要である。
図1のホストメモリコントローラ115が、ロウハンマが問題になると認識しないようにする1つの方法はメモリアドレスが図1のメモリコントローラ115に到達する前にメモリアドレスをエイリアス(Alias)することである。図7を参照して、装置ドライバ160がエイリアスを使用する方法を説明する。
図7は本発明の実施形態によるアドレスエイリアスを実行する図1の装置ドライバを示す図面である。図7を参照すると、装置ドライバ160はメモリアドレス605を事前マッピングされたメモリアドレス610に事前マッピングする。しかし、事前マッピングの例として上述したように、事前マッピングは関連ない値を有するビットを含む。それらのビットには如何なる値も利用され得る。図1のホストメモリコントローラ115内の物理ロウビットにマッピングされた1つ又は1つ以上の‘Don’t care’ビットを変更することによって、エイリアス(Alias)は図6のターゲットメモリアドレス615に対して生成される。したがって、例えば、事前マッピングメモリアドレスエイリアス705、710の各々は所望するメモリアドレスに対するエイリアスを代表するが、他のビットパターンを含む。特に、‘Don’t care’ビット内の他のビットパターンを含む。
装置ドライバ160は‘Don’t care’ビットを変更してエイリアスを生成するために望ましい如何なるテクニックも使用することができる。一実施形態として、装置ドライバ160は‘Don’t care’ビットに対するランダム値(或いは、擬似ランダム(Pseudo−random)値)を生成する。他の実施形態として、装置ドライバ160は‘Don’t care’ビットに対する順次的な値を生成することができる。他の実施形態は‘Don’t care’ビットに対する値を生成する他の方法を含むことができる。
他の実施形態として、装置ドライバ160はアクセスされたメモリアドレスを追跡することができる。また、図1のホストメモリコントローラ115が図1のNVDIMM105に対するアクセスを抑制(Throttle)しようとする場合に、装置ドライバ160は‘Don’t care’ビットのみを変更することができる。他の実施形態として、図1のホストメモリコントローラ115が図1のNVDIMM105に対するアクセスを抑制(Throttle)しようとすることと関係なく、装置ドライバ160の各々のメモリアクセスに‘Don’t care’ビットの値を変更することができる。
図1のホストメモリコントローラ115が、ロウハンマが問題であると認識することを防止するための他の方法は図1の露出メモリ150を不連続的なメモリアドレスを有する論理セグメントにパーティション(Partition)することである。
図8は本発明の他の実施形態による図1のNVDIMMのメモリ空間のレイアウトを例示的に示す図面である。図8は図1の露出メモリ150が不連続的なメモリアドレスを有する論理セグメントにパーティションされる方法を例示的に示す。図8を参照すると、図1の露出メモリ150はサイズ205の論理セグメントの一部のみを含む。サイズ205は図1の露出メモリ150の実際サイズより大きい。例えば、図1の露出メモリ150は論理セグメント805、810、815、820のみを含む。一方、サイズ205範囲内の論理セグメント825、830、835は図1の露出メモリ150の一部ではない。露出メモリ150内の論理セグメントに対するメモリアドレスが連続的ではないため、ロウハンマはそれ以上問題にならない。
図9は本発明の実施形態による図1のNVDIMM、及び装置ドライバが図1のNVDIMM内のメモリアドレスに対する要求を処理する方法を説明するためのフローチャートである。図9を参照すると、S905段階で、図1のNVDIMM105は図1の露出メモリ150をホストコンピュータ(さらに、詳細には図1のホストメモリコントローラ115)に公開(Open)する。
S910段階で、図1の装置ドライバ160は図1のホストメモリコントローラ115に伝送される予定である図1のメモリアドレス605にアクセスするための要求をインターセプトする。
S915段階で、図1の装置ドライバ160は図6のメモリアドレス605にアクセスするための要求を受信する。S920段階で、図1の装置ドライバ160は図6の事前マッピングされたメモリアドレス610を生成するために図6のメモリアドレス605を事前マッピングする。
S925段階で、メモリアドレス605の図7の事前マッピングされたメモリアドレスエイリアス(705、710)を生成するために、図1の装置ドライバ160は図6の事前マッピングされたメモリアドレス610内の1つ又は1つ以上のビットを変形する。図7を参照して上述したように、図6の事前マッピングされたメモリアドレス610の図7の事前マッピングされたメモリアドレスエイリアス(705、710)を生成することは選択的なことであり、したがってS925段階もまた選択的である。
S930段階で、結果的に図1の装置ドライバ160は事前マッピングされたメモリアドレスエイリアス(705、710)又は図6の事前マッピングされたメモリアドレス610を図1のホストメモリコントローラ115に伝送する。
図10は本発明の実施形態による図1のNVDIMMが図1のホストコンピュータにメモリを露出させる方法を説明するためのフローチャートである。図10を参照すると、S1005段階で、図1のNVDIMM105は図1の不揮発性メモリ130内の連続したメモリブロックを選択する。また、上述したように、図1の露出メモリ150は図1の不揮発性メモリ130とは別の所に格納される。図1の露出メモリ150が格納された所を変更することを除き、図10のフローチャートはこのような状況でも変形すること無く使用される。
図1のNVDIMM105は何らかの望ましい方式でメモリの連続的なブロックを選択する。例えば、図1のNVDIMM105は基本アドレス‘0’から始まる連続的なブロック、図5の総メモリ容量505の上端で終わる連続的なブロック、或いは他の形態のメモリの連続的なブロックを選択する。
S1010段階で、図1のNVDIMM105はメモリの連続したブロックを論理セグメントに分割する。例えば、論理セグメントは図5の論理セグメント(510、515、520、525、530)である。S1015段階で、図1のNVDIMM105は図1の露出メモリ150のように論理セグメント(例えば、図5の論理セグメント(510、515、520、525、530))を露出させる。
S1015段階の代わりにS1020段階で、図1のNVDIMM105は図1の不揮発性メモリ130内のメモリの不連続的なブロックを選択する。ブロックの各々は図2の同一のサイズ215を有する。S1005段階のように、図1のNVDIMM105は何らかの望ましい方式でメモリの不連続的なブロックを選択する。S1025段階で、図1のNVDIMM105は不連続なメモリのブロックを論理セグメント(805、810、815、820)として露出させる。
図10は図1のNVDIMM105がメモリの不連続的なブロック又は連続的なブロックの中で1つを露出することとして提案しているが、他の実施形態は2つの変形を結合する。例えば、図1の不揮発性メモリ130の4つの大きい部分の各々は連続的なブロックに識別されることができ、各々の部分は図1のNVDIMM105によって露出されることができる論理セグメントに分離される。
図9及び図10を参照すると、1つの実施形態が図示される。しかし、当業者は上述した段階の順序を変更するか、一部段階を省略するか、或いは図面で図示されない連結を含んで他の実施形態が具現できることは容易に理解できる。明視的に説明されたか否かに関係無く、このようなフローチャートの変形は本発明の実施形態として看做される。
以下で、本発明の特定の実施形態が適用され得る適合なシステム又はシステムに対する簡略で、一般的な説明が提供される。システムは少なくとも部分的に既存の入力装置からの入力によって制御される。例えば、既存の入力装置はキーボード、マウスを含む。また、このような制御は他のマシンから受信されたガイドライン、VR(Virtual Reality)環境との相互作用、生体認識フィードバック、仮想マシン、又は他の入力信号によって実行される。
ここで、使用した‘システム’という用語は幅広く単一マシン或いはシステム、仮想マシン、又は通信結合マシンのシステム、仮想マシン、又は共に動作する装置を含む。例示的なシステムはパーソナル(Personal)コンピュータ、ワークステーション、サーバー、ポータブル(Portable)コンピュータ、携帯(Handheld)装置、携帯電話、タブレット等を含む。また、例示的なシステムは自動車、汽車、タクシーのような個人用又は公共交通等のような交通装置を含む。
システムは内蔵コントローラ等を含む。例えば、内蔵コントローラはプログラムが可能であるか、或いは不可能なロジック装置又はアレイ(Array)、ASIC(Application Specific Integrated Circuits)、内蔵コンピュータ、スマトカード等を含む。システムは1つ又は1つ以上の遠隔マシンとの1つ又は1つ以上の接続を使用することができる。例えば、このような接続はネットワークインターフェイス、モデム、又は他の擬似伝達接続を通じてなされる。
システムはイントラネット、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のような物理的及び/又は論理的ネットワーク方法によって相互設続される。当業者はネットワーク通信が多様な有線及び/又は無線近距離又は長距離キャリヤ、及びプロトコルを利用できることを容易に理解できる。例えば、キャリヤ及びプロトコルはRF(Radio Frequency)、衛星(Satellite)、マイクロウェーブ(Microwave)、IEEE(Institute of Electrical and Electronics Engineers)802.11、Bluetooth(登録商標)、光学、赤外線、ケーブル、レーザー等を含む。
本発明の実施形態は機能、段階、データ構造、アプリケーションプログラムを含む関連データを参照して説明される。機能、段階、データ構造、アプリケーションプログラムはシステムによってアクセスされる場合にシステムがタスクを実行するか、或いは抽象的なデータタイプ又はローレベル(Low−Level)のハードウェアコンテキスト(Context)を定義するようにする。例えば、上述した関連データはRAM、ROMのような揮発性及び/又は不揮発性メモリに格納される。また、関連データは他のストレージ装置及びそれらの関連ストレージ媒体に格納される。例えば、関連ストレージ媒体はハードディスクドライブ、フロッピー(登録商標)ディスク(Floppy−Disks)、光学ストレージ(Optical Storage)、テープ(Tapes)、フラッシュメモリ(Flash Memory)、メモリスティック(Memory Sticks)、デジタルビデオディスク(Digital Video Disks)、生体ストレージ(Biological Storage)等を含む。
関連データはパケット、シリアル(Serial)データ、パラレル(Parallel)データ、電波信号等の形態に物理的及び/又は論理的ネットワークを含む通信環境を通じて伝送される。また、関連データは圧縮されるか、或いは暗号化された形態に利用される。関連データは分散環境で利用されることができ、システムアクセスに対して近くに及び/又は遠く格納される。
本発明の実施形態は類型の非一時的(Non−transitory)のシステムリーダブル(Readable)媒体を含む。システムリーダブル媒体は1つ又は1つ以上のプロセッサによって実行される命令、ここで記述された本発明の要素を実行する命令で構成された命令を含む。
本発明の実施形態は制限無しで次の例示に拡張され得る。
第1例にしたがう本発明の実施形態は装置を含むことができる。
前記装置はDIMMソケットに装着されたNVDIMM、そして
ホストプロセッサ上で動作する装置ドライバを含み、
NVDIMMはメモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
装置ドライバはホストメモリコントローラに伝送されるメモリアドレスをインターセプトし、メモリアドレスを事前マッピングされたメモリアドレスに変換するように動作し、
事前マッピングされたメモリアドレスはメモリアドレスとは異なる装置である。
第2例は第1例にしたがう装置を含む。NVDIMMはSSD(Solid State Device)を含む。
第3例は第1例にしたがう装置を含む。事前マッピングされたメモリアドレスはホストメモリコントローラがターゲットメモリアドレスをNVDIMMに伝送するように設計され、ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を示す。
第4例は第3例にしたがう装置を含む。装置ドライバはNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、及びホストメモリコントローラのメモリコントローラ動作モードに基づいてメモリアドレスから事前マッピングされたメモリアドレスを生成するように動作する。
第5例は第4例にしたがう装置を含む。装置ドライバはホストメモリコントローラによるメモリアドレスの論理−物理変換に基づいてメモリアドレスから事前マッピングされたメモリアドレスを生成するように動作する。
第6例は第3例にしたがう装置を含む。ターゲットメモリアドレスはメモリアドレスである。
第7例は第3例にしたがう装置を含む。ターゲットメモリアドレスはメモリアドレスのエイリアス(Alias)である。
第8例は第7例にしたがう装置を含む。事前マッピングされたメモリアドレスはメモリアドレスに対する少なくとも1つの変更されたビットを含む。少なくとも1つの変更されたビットはNVDIMMによって使用されない。
第9例は第3例にしたがう装置を含む。NVDIMMの露出メモリはNVDIMMのメモリ内の不連続的な論理セグメントに分割される。
第10例は第3例にしたがう装置を含む。露出メモリはメモリの集合である。
第11例にしたがう本発明の実施形態は方法を含む。方法は
NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階、
メモリアドレスを中間アドレスに事前マッピングする段階、
中間アドレスをホストメモリコントローラに伝送する段階を含み、
NVDIMMはメモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
中間アドレスはメモリアドレスと異なり、
ホストメモリコントローラはターゲットメモリアドレスをNVDIMMに伝送し、ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を意味する方法である。
第12例は第11例による方法を含む。NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階はホストメモリコントローラに要求が到着する前に、メモリアドレスにアクセスするための要求をホストプロセッサでホストメモリコントローラにインターセプトする段階を含む。
第13例は第11例による方法を含む。NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階はSSDのメモリアドレスにアクセスするための要求を受信する段階を含む。
第14例は第11例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、そしてホストメモリコントローラのメモリコントローラ動作モードに基づいてメモリアドレスを中間アドレスに事前マッピングする段階を含む。
第15例は第14例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、ホストメモリコントローラのメモリコントローラ動作モード、そしてホストメモリコントローラによって使用される論理−物理変換に基づいてメモリアドレスを中間アドレスに事前マッピングする段階を含む。
第16例は第11例にしたがう方法を含む。ホストメモリコントローラはNVDIMMにメモリアドレスを伝送する。
第17例は第11例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスのエイリアスをメモリアドレスに事前マッピングする段階を含む。
第18例は第11例にしたがう方法を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスに対して中間アドレス内の少なくとも1つのビットを変更する段階を含む。少なくとも1つの変更されたビットはNVDIMMによって使用されない。
第19例は第11例にしたがう方法を含む。方法はホストメモリコントローラに露出メモリを露出する段階をさらに含む。
第20例は第19例にしたがう方法を含む。ホストメモリコントローラに露出メモリを露出する段階は、
第1サイズを有するメモリの連続されたブロックを確認する段階、
メモリの連続されたブロックを論理セグメントに分割する段階、そして
論理セグメントをホストメモリコントローラに露出する段階を含み、
論理セグメントの各々は第2サイズを有する。
第21例は第19例にしたがう方法を含む。ホストメモリコントローラに露出メモリを露出する段階は、
メモリの不連続的なブロックのセットを探す段階、そして
メモリの不連続的なブロックをホストメモリコントローラに論理セグメントとして露出する段階を含む。
第22例にしたがう本発明の実施形態は類型のストレージ媒体を含む装置を含む。類型のストレージ媒体はシステムによって実行される場合、そこに格納された非一時的な命令を有する。非一時的な命令はシステムによって実行される時、
NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階、
メモリアドレスを中間アドレスに事前マッピングする段階、
中間アドレスをホストメモリコントローラに伝送する段階を実行し、
NVDIMMはメモリ及び露出メモリを含み、露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
中間アドレスはメモリアドレスと異なり、
ホストメモリコントローラはターゲットメモリアドレスをNVDIMMに伝送し、ターゲットメモリアドレスはメモリアドレスに格納された値の物理的位置を意味する。
第23例は第22例による装置を含む。NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階はホストメモリコントローラに要求が到着する前に、メモリアドレスにアクセスするための要求をホストプロセッサでホストメモリコントローラにインターセプトする段階を含む。
第24例は第22例にしたがう装置を含む。NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階はSSDのメモリアドレスにアクセスするための要求を受信する段階を含む。
第25例は第22例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、そしてホストメモリコントローラのメモリコントローラ動作モードに基づいてメモリアドレスを中間アドレスに事前マッピングする段階を含む。
第26例は第25例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はNVDIMM内の露出メモリの第1サイズ、NVDIMM内の露出メモリの基本アドレス、NVDIMM内の露出メモリの論理セグメントの第2サイズ、ホストメモリコントローラのメモリコントローラ動作モード、そしてホストメモリコントローラによって使用される論理−物理変換に基づいてメモリアドレスを中間アドレスに事前マッピングする段階を含む。
第27例は第22例にしたがう装置を含む。ホストメモリコントローラはNVDIMMにメモリアドレスを伝送する。
第28例は第22例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスのエイリアスをメモリアドレスに事前マッピングする段階を含む。
第29例は第22例にしたがう装置を含む。メモリアドレスを中間アドレスに事前マッピングする段階はメモリアドレスに対して中間アドレス内の少なくとも1つのビットを変更する段階を含む。少なくとも1つの変更されたビットはNVDIMMによって使用されない。
第30例は第22例にしたがう装置を含む。非一時的な命令はホストメモリコントローラに露出メモリを露出する段階をさらに実行する。
第31例は第30例にしたがう装置を含む。ホストメモリコントローラに露出メモリを露出する段階は、
第1サイズを有するメモリの連続されたブロックを確認する段階、
メモリの連続されたブロックを論理セグメントに分割する段階、そして
論理セグメントをホストメモリコントローラに露出する段階を含み、
論理セグメントの各々は第2サイズを有する。
第32例は第30例にしたがう装置を含む。ホストメモリコントローラに露出メモリを露出する段階は、
メモリの不連続的なブロックのセットを探す段階、そして
メモリの不連続的なブロックをホストメモリコントローラに論理セグメントとして露出する段階を含む。
以上のように図面と明細書で最適の実施形態を開示した。ここで、特定な用語を使用したが、これは単に本発明を説明するための目的で使用したものであり、意味の限定や特許請求範囲に記載された本発明の範囲を制限するために使用したものではない。したがって、本技術分野の通常の知識を有する者であれば、これからの多様な変形及び均等な他の実施形態が可能である点を理解できる。したがって、本発明の真正なる技術的な保護範囲は添付された特許請求範囲の技術的思想によって定められなければならない。
105 NVDIMM
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)

  1. DIMM(Dual In−Line Memory Module)ソケットに装着されたNVDIMM(Non−Volatile Dual In−Line Memory Module)と、
    ホストプロセッサ上で動作する装置ドライバと、を有し、
    前記NVDIMMは、メモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、前記露出メモリは露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
    前記装置ドライバは、ホストメモリコントローラに伝送されるメモリアドレスをインターセプトし、前記メモリアドレスを事前マッピングされたメモリアドレスに変換するように動作し、
    前記事前マッピングされたメモリアドレスは、前記メモリアドレスと異なることを特徴とするNVDIMMを含む装置。
  2. 前記NVDIMMは、SSD(Solid State Device)を含むことを特徴とする請求項1に記載のNVDIMMを含む装置。
  3. 前記事前マッピングされたメモリアドレスは、前記ホストメモリコントローラがターゲットメモリアドレスを前記NVDIMMに伝送するように設計され、
    前記ターゲットメモリアドレスは、前記メモリアドレスに格納された値の物理的位置を示すことを特徴とする請求項1に記載のNVDIMMを含む装置。
  4. 前記装置ドライバは、前記NVDIMM内の露出メモリの第1サイズ、前記NVDIMM内の露出メモリの基本アドレス、前記NVDIMM内の露出メモリの論理セグメントの第2サイズ、及び前記ホストメモリコントローラのメモリコントローラ動作モードに基づいて前記メモリアドレスから前記事前マッピングされたメモリアドレスを生成するように動作することを特徴とする請求項3に記載のNVDIMMを含む装置。
  5. 前記装置ドライバは、前記第1サイズ、基本アドレス、第2サイズ、メモリコントローラ動作モード、及び前記ホストメモリコントローラによる前記メモリアドレスの論理−物理変換に基づいて前記メモリアドレスから前記事前マッピングされたメモリアドレスを生成するように動作することを特徴とする請求項4に記載のNVDIMMを含む装置。
  6. 前記ターゲットメモリアドレスは、前記メモリアドレスのエイリアス(Alias)であることを特徴とする請求項3に記載のNVDIMMを含む装置。
  7. 前記事前マッピングされたメモリアドレスは、前記メモリアドレスに対する少なくとも1つの変更されたビットを含み、
    前記少なくとも1つの変更されたビットは、前記NVDIMMによって使用されないことを特徴とする請求項6に記載のNVDIMMを含む装置。
  8. NVDIMMを含む装置のアクセス方法において、
    前記NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階と、
    前記メモリアドレスを中間アドレスに事前マッピングする段階と、
    前記中間アドレスをホストメモリコントローラに伝送する段階と、を有し、
    前記NVDIMMは、メモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、前記露出メモリは、露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
    前記中間アドレスは、前記メモリアドレスと異なり、
    前記ホストメモリコントローラは、ターゲットメモリアドレスを前記NVDIMMに伝送し、
    前記ターゲットメモリアドレスは、前記メモリアドレスに格納された値の物理的位置を示すことを特徴とするNVDIMMを含む装置のアクセス方法。
  9. 前記NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階は、SSDの前記メモリアドレスにアクセスするための前記要求を受信する段階を含むことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
  10. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記NVDIMM内の露出メモリの第1サイズ、前記NVDIMM内の露出メモリの基本アドレス、前記NVDIMM内の露出メモリの論理セグメントの第2サイズ、及び前記ホストメモリコントローラのメモリコントローラ動作モードに基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
  11. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記第1サイズ、基本アドレス、第2サイズ、メモリコントローラ動作モード、及び前記ホストメモリコントローラによって使用される論理−物理変換に基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項10に記載のNVDIMMを含む装置のアクセス方法。
  12. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスを前記メモリアドレスのエイリアス(Alias)に事前マッピングする段階を含むことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
  13. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスに対して前記中間アドレス内の少なくとも1つのビットを変更する段階を含み、前記変更された少なくとも1つのビットは、前記NVDIMMによって使用されないことを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
  14. 前記ホストメモリコントローラに前記露出メモリを露出する段階をさらに有することを特徴とする請求項8に記載のNVDIMMを含む装置のアクセス方法。
  15. 前記ホストメモリコントローラに前記露出メモリを露出する段階は、
    前記第1サイズを有するメモリの連続したブロックを確認する段階と、
    前記メモリの連続したブロックを複数の論理セグメントに分割する段階と、
    前記複数の論理セグメントを前記ホストメモリコントローラに露出する段階と、を含み、
    前記複数の論理セグメントの各々は、第2サイズを有することを特徴とする請求項14に記載のNVDIMMを含む装置のアクセス方法。
  16. 非一時的(Non−Transitory)命令を格納する類型のストレージ媒体を含む装置において、
    前記非一時的命令は、システムによって実行される時、
    NVDIMMのメモリアドレスに対してアクセスするための要求を受信する段階と、
    前記メモリアドレスを中間アドレスに事前マッピングする段階と、
    前記中間アドレスをホストメモリコントローラに伝送する段階を実行し、
    前記NVDIMMは、メモリ及びメモリマッピングされたホストデータの伝送に使用されるメモリチャンネル上でアクセス可能であるように露出される露出メモリを含み、前記露出メモリは、露出メモリの第1サイズ及び露出メモリの基本アドレスを含み、
    前記中間アドレスは、前記メモリアドレスと異なり、
    前記ホストメモリコントローラは、ターゲットメモリアドレスを前記NVDIMMに伝送し、
    前記ターゲットメモリアドレスは、前記メモリアドレスに格納された値の物理的位置を示すことを特徴とする装置。
  17. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記NVDIMM内の露出メモリの第1サイズ、前記NVDIMM内の露出メモリの基本アドレス、前記NVDIMM内の露出メモリの論理セグメントの第2サイズ、及び前記ホストメモリコントローラのメモリコントローラ動作モードに基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項16に記載の装置。
  18. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記第1サイズ、基本アドレス、第2サイズ、メモリコントローラ動作モード、及び前記ホストメモリコントローラによって使用される論理−物理変換に基づいて前記メモリアドレスを前記中間アドレスに事前マッピングする段階を含むことを特徴とする請求項17に記載の装置。
  19. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスを前記メモリアドレスのエイリアス(Alias)に事前マッピングする段階を含むことを特徴とする請求項16に記載の装置。
  20. 前記メモリアドレスを中間アドレスに事前マッピングする段階は、前記メモリアドレスに対して前記中間アドレス内の少なくとも1つのビットを変更する段階を含み、前記変更された少なくとも1つのビットは、前記NVDIMMによって使用されないことを特徴とする請求項16に記載の装置。
JP2016187239A 2015-10-07 2016-09-26 Nvdimmを含む装置及びそのアクセス方法 Active JP6799427B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 清华大学 持久性内存事务处理缓存管理方法与装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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