JP2017021789A - 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法 - Google Patents

複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法 Download PDF

Info

Publication number
JP2017021789A
JP2017021789A JP2016122720A JP2016122720A JP2017021789A JP 2017021789 A JP2017021789 A JP 2017021789A JP 2016122720 A JP2016122720 A JP 2016122720A JP 2016122720 A JP2016122720 A JP 2016122720A JP 2017021789 A JP2017021789 A JP 2017021789A
Authority
JP
Japan
Prior art keywords
address
address space
nvm
control register
access mode
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
JP2016122720A
Other languages
English (en)
Other versions
JP2017021789A5 (ja
JP6744768B2 (ja
Inventor
ホンゾン ジョン
Hongzhong Zheng
ホンゾン ジョン
ディミン ニウ
Dimin Niu
ディミン ニウ
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 JP2017021789A publication Critical patent/JP2017021789A/ja
Publication of JP2017021789A5 publication Critical patent/JP2017021789A5/ja
Application granted granted Critical
Publication of JP6744768B2 publication Critical patent/JP6744768B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】アドレスマスクを格納するNVMコントロールレジスタを利用して複数のアクセスモードを支援する不揮発性メモリ装置を含むシステム及びそれのアクセス方法を提供する。
【解決手段】本発明による不揮発性メモリを含むシステムは、NVDIMM(Non−Volatile Dual In−Line Memory Module)と、第1アプリケーションに対する第1アドレス空間を第1アクセス(Access)モードに前記NVDIMMに割当し、第2アプリケーションに対する第2アドレス空間を第2アクセスモードに前記NVDIMMに割当し、少なくとも前記第1アドレス空間に対する第1アドレスマスクをNVM(Non−Volatile Memory)コントロールレジスタ内に格納するように動作するNVMガバナ(governor)と、を有し、前記第1アドレスマスクは、前記第1アクセスモードと関連する。
【選択図】 図1

Description

本発明はメモリに関し、特に、複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法に関する。
NVDIMM(Non−Volatile Dual In−Line Memory Module)は、不揮発性メモリをDIMM(Dual In−Line Memory Module)内のメモリチャンネルに配置する。
しかし、NVDIMMは、一般的にDRAMのものからは見られない新しい問題を発生させる。
DIMMは、一般的にバイト単位のアドレス化(Addressable)ストレージを支援する一方、NVDIMMはバイト単位又はブロック単位のアドレス化ストレージを支援する。
しかし、DIMMはOS(Operating System)の支援下にてブロック単位のアドレス化ストレージを支援する。
簡単な解決策としては、NVDIMMが1つのアドレッシング(Addressing)モードのみを使用するようにすることである。
1つのアドレッシングモードは、バイト単位のアドレス化メーンメモリ/ストレージ又はブロック単位のアドレス化ストレージの中で1つの形態のような特定NVDIMMの機能である。
しかし、これは単純な解決策である。また、このような単純な解決策ですべての状況に対応することができない。
多様なアプリケーションが異なるメモリ要求事項を有することができるため、NVDIMMを特定アドレスアドレスモードに制限することは、リソースを最適に活用するように誘導することができないようにし得るという問題がある。
1つのアクセスモードを使用する1つのNVDIMMは過負荷される一方、他のアドレスモードを使用する他のNVDIMMは十分に活用されない。
また、このシナリオでは複数のNVDIMMを含むコンピュータシステムを仮定する。
もし、コンピュータシステムが1つのNVDIMMのみを含む場合、該当NVDIMMによって支援されないアクセスモードは完全に使用することができない。
したがって、1つのNVDIMM内で複数のアクセスモードを使用するように支援する方法が必要となっている。
米国特許第8,832,408号公報 米国特許第8,880,777号公報 米国特許公開第2005/0251617号明細書 米国特許公開第2013/0275661号明細書
そこで、本発明は上記従来のNVDIMMにおける問題点に鑑みてなされたものであって、本発明の目的は、アドレスマスクを格納するNVMコントロールレジスタを利用して複数のアクセスモードを支援する不揮発性メモリ装置を含むシステム及びそのアクセス方法を提供することにある。
上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムは、NVDIMM(Non−Volatile Dual In−Line Memory Module)と、第1アプリケーションに対する第1アドレス空間を第1アクセス(Access)モードに前記NVDIMMに割当し、第2アプリケーションに対する第2アドレス空間を第2アクセスモードに前記NVDIMMに割当し、少なくとも前記第1アドレス空間に対する第1アドレスマスクをNVM(Non−Volatile Memory)コントロールレジスタ内に格納するように動作するNVMガバナ(governor)と、を有し、前記第1アドレスマスクは、前記第1アクセスモードと関連することを特徴とする。
上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムのアクセス方法は、NVDIMM(Non−Volatile Dual In−Line Memory Module)を含むシステムのアクセス方法において、前記NVDIMM内にアドレス空間を割り当てるための要請を受信する段階と、前記要請されたアドレス空間に対するアクセスモードを受信する段階と、前記NVDIMM内のアドレス空間を確認する段階と、前記要請されたアドレス空間として前記NVDIMM内のアドレス空間を返還(return)する段階と、を有し、前記アクセスモードは、少なくとも二つのアクセスモードを含むセットから抽出されることを特徴とする。
また、上記目的を達成するためになされた本発明による不揮発性メモリを含むシステムのアクセス方法は、NVDIMM(Non−Volatile Dual In−Line Memory Module)を含むシステムのアクセス方法において、前記NVDIMMからアドレス空間にアクセスするための要請を受信する段階と、前記アドレス空間に対するアクセスモードを決定する段階と、前記アクセスモードを利用して前記NVDIMMから前記アドレス空間にアクセスするための前記要請をスケジュールする段階と、を有することを特徴とする。
本発明に係る複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法によれば、複数の不揮発性メモリ装置又は複数のNVDIMMの各々に対して個別的なアクセスモードを通じてアクセスすることができるという効果がある。
これを通じて、システムはメモリ等のリソースを効率的に活用することができるという効果がある。
本発明の実施形態によるメモリチャンネル上のメモリ又はストレージにNVDIMMを利用したコンピュータシステムを概略的に示すブロック図である。 図1に示したコンピュータシステムの外部構成を概略的に示す図である。 図1に示したNVDIMMがアドレス空間に分離される構成を示す図である。 図1のNVMコントロールレジスタ及び複数のNVDIMMと相互作用する図1に示したNVMガバナを示すブロック図である。 16個の異なるアドレスマスク及びアクセスモードを格納する図1に示したNVMコントロールレジスタを示す図である。 本発明の実施形態による、図1に示したNVMガバナがどのようにしてNVMコントロールレジスタを利用して、要請されたアドレスに対するアクセスモードを決定するかを説明するための図である。 本発明の実施形態によるアプリケーションに対してNVDIMM内にアドレス空間を割り当てる方法を説明するためのフローチャートである。 本発明の実施形態によるNVMガバナがNVDIMMに新たに割り当てられたアドレス空間のために使用されるアクセスモードを決定する方法を説明するためのフローチャートである。 本発明の実施形態によるNVMガバナが割り当てられるアドレス空間に対する情報をNVMコントロールレジスタ内に格納する方法を説明するためのフローチャートである。 本発明の実施形態によるNVMガバナがNVDIMM内のアドレスにアクセス要請を処理する方法を説明するためのフローチャートである。 本発明の実施形態によるNVMガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。 本発明の他の実施形態によるNVMガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。 図1〜図12に示したメモリ又はストレージのための複数のNVDIMMを使用することができるシステムの概略を示すブロック図である。
次に、本発明に係る複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法を実施するための形態の具体例を図面を参照しながら説明する。
先の一般的な説明及び次の詳細な説明のすべてが例示的であることを理解しなければならなく、請求された発明の付加的な説明が提供されることとして理解されるべきである。
参照符号が本発明の望ましい実施形態に詳細に表示しており、その例を参照図面に表示している。可能な限り、どのような場合にも、同一な参照番号が同一又は類似な部分を参照するために説明及び図面に使用される。
以下では、不揮発性メモリ装置が本発明の特徴及び機能を説明するための例として使用するものである。
しかし、この技術分野に熟練された人はここに記載される内容によって本発明の他の長所及び性能を容易に理解することができる。また、本発明は他の実施形態を通じて具現されるか、或いは適用されることができる。その上に、詳細な説明は本発明の範囲、技術的思想、及び他の目的から相当に逸脱することなく、観点及び応用によって修正されるか、或いは変更されることができる。
本発明の実施形態は、適応的(Adaptive)アクセスモード及びスマート分割(Smart Partioning)メカニズムを有するNVDIMMを含む。
スマート分割メカニズムを遂行するために、NVM(Non−Volatile Memory)ガバナ(Governor)はNVDIMM内にバイト或いはブロック単位のアドレス化モードにアドレス空間を割り当てるように構成されたハードウェア及び/又はソフトウェアモジュールを含む。
アドレス化モードはアプリケーションによって要請される。
アプリケーションの動作によってランタイム時に、NVMガバナは動的にNVDIMMをバイト及びブロック単位のアドレス化部分に分割する。
また、スマート分割メカニズムは、複数のアクセスモードを有するアドレス範囲を格納することができるNVMコントロールレジスタを含む。
NVMガバナは、関係したアクセスモードを有するNVDIMMアドレス空間のためのアプリケーション要請を受信する。
アプリケーションは、多様なアクセスモードを有する1つ以上のアドレス空間を要請する。
NVMガバナは、情報をNVMコントロールレジスタに格納する。
例えば、情報は要請されたアドレス空間及びモードに対するアクセスモード及びアドレスマスクを含む。
アドレス空間に読み出し及び書き込み要請を遂行するために、NVMガバナはNVMコントロールレジスタ内のアドレスマスクを確認する。
これは個別的又は並列的に遂行されてもよい。アドレス空間とアクセスモードのマッチングが発見される場合、NVMガバナは選択されたアクセスモードを有する要請をスケジュールする。
図1は、本発明の実施形態によるメモリチャンネル上のメモリ又はストレージにNVDIMMを利用したコンピュータシステムを概略的に示すブロック図である。
図1にはプロセッサ105を示す。
図1を参照すると、プロセッサ105は、複数のNVDIMM(110、115)のようなメモリモジュールと接続され、他のメモリモジュールと接続される。
また、プロセッサ105は複数のDIMM120、125のような他のメモリモジュールと接続される。
他の実施形態では、すべてのメモリモジュールは同等に接続される。
他の実施形態では、複数のDIMM(120、125)は複数のNVDIMM(110、115)に対するキャッシュとして動作する。
他の実施形態では、所望する方式によって複数のNVDIMM(110、115)、複数のDIMM(120、125)、及び他のメモリ及び/又はストレージ装置が利用される。
例えば、これは装置の特性を最適化する階層構造内に他のメモリ及びストレージ装置を段々に積み重ねて遂行される。
また、プロセッサ105は、ストレージ130と接続される。
ストレージ130は、HDD(Hard Disk Drives)、SSD(Solid State Drives)、及び/又は他のNVM技術のような技術を含む何らかの形態のストレージでもなされる。加えて、ストレージ130は、HDD及びSDD等の他のストレージが混合されたタイプを含む。
結果的に、ストレージ130は、いかなる形態でもプロセッサ105と接続される。
例えば、接続形態はバスを通じる直接接続又はUSB(Universal Serial Bus)インターフェイスのようなインターフェイスを通じる外部ストレージとの接続等の形態を含む。
プロセッサ105は、オペレーティングシステム(Operating System:以下、OS)135の動作を支援する。
OS135は、一度に1つのアプリケーションの動作や並列的に複数のアプリケーションの動作を支援する何らかの形態のオペレーティングシステムであってもよい。
また、OS135は、複数の仮想マシンを支援してもよい。
複数の仮想マシンは、各々の仮想マシンにコンピュータシステム内のすべての資源(リソース)を完全に使用する形態を提供する。
図1を参照すると、OS135によって支援されるn個の複数の仮想マシンマシン(140〜145)を示す。
OS135は、NVMガバナ150を含む。
NVMガバナ150は、複数のNVDIMM(110、115)内のアドレス空間割当及び複数のNVDIMM(110、115)内のアドレス空間からの読出し/書込み動作の処理を制御する。
NVMガバナ150の動作の支援は、他の可能性の中ではプロセッサ105或いはメモリコントローラ内に配置され得るNVMコントロールレジスタ155によって遂行される。
以下では、図4〜図6に示すように、NVMコントロールレジスタ155は、アドレス空間が使用された方法に対する情報を格納する。
例えば、このような情報はアドレスマスク及びアクセスモード等を含む。
アドレスマスクは、アドレス空間のすべてのアドレス内の最上位ビットとマッチングされた特定のビット(Bit)パターンを含む。
アクセスモードは、NVDIMM内のアドレスにデータが書き込まれるか、或いはアドレスからデータを読み出す方法を指定する。
現在、読出し及び書込み動作はバイト単位のアドレス化モード又はブロック単位のアドレス化モードを利用して遂行される。
現在、二つのアクセスモードのみが存在することを考慮すれば、1つのアクセスモードはシングル(Single)ビットを使用するとすることができる。
しかし、仮に追加的なアクセスモードがデザインされると、NVMコントロールレジスタ155に格納されたアクセスモードは追加的なビットを使用する。
図2は、図1に示したコンピュータシステムの外部構成を概略的に示す図である。
図2には、コンピュータシステム205を示している。
図2を参照すると、コンピュータシステム205は、コンピュータ210、モニタ215、キーボード220、及びマウス225を含む。
当業者はコンピュータシステム205に他の構成要素が含まれることができることを容易に理解できる。
例えば、コンピュータシステム205は、プリンタのようなI/O装置等をさらに含む。さらに、コンピュータシステム205は、図1に示した既存の内部構成要素を含む。
例えば、既存の内部構成要素は、プロセッサ105、複数のNVDIMM(110、115)、複数のDIMM(120、125)、及びストレージ130等を含む。
図2に示さなかったが、当業者はコンピュータシステム205がグラフィックカード、モデム等の他の内部構成要素を含むことを容易に理解できる。
また、当業者はコンピュータシステム205が他のコンピュータシステムと直接的に或いは他のタイプのネットワーク(図示せず)を通じて相互作用することができることを容易に理解できる。
また、例えば、図2はコンピュータシステム205が既存のデスクトップ(Desktop)コンピュータとして示したが、当業者はコンピュータシステム205がどのような形態のマシン又はコンピューティング装置でもあり得ることを容易に理解できる。
例えば、上述したマシン又はコンピューティング装置はラップトップ(Laptop)コンピュータ、タブレットコンピュータ、PDA(Personal Digital Assistant)、及びスマートフォン等を含む。
図3は図1に示したNVDIMMがアドレス空間に分離された構成を示す図である。
図3には、NVDIMM110を示す。しかし、図3に示す内容は図1のNVDIMM115にも同様に適用される。
図3を参照すると、NVDIMM110は、アドレス空間(305、310、315)を含む16個の複数のアドレス空間に区分されたものを示す。
アドレス空間(305、310、315)の各々は、一部のアプリケーションに対して割り当てられたNVDIMM110の一部分であってもよい。
また、複数の他のアドレス空間が同一のアプリケーションに割り当てられる。
即ち、個別のアプリケーションは、NVDIMM110内の単一(Single)アドレス空間を使用することに限定されない。
加えて、アドレス空間(305、310、315)の各々は、どのアクセスモードでも使用する。
NVDIMM110のような単一NVDIMM内のアドレス空間(305、310、315)又は単一アプリケーションによって使用されたアドレス空間(305、310、315)は、所望する形態のどのようなアクセスモードでも使用される。
アドレス空間(305、310、315)がアプリケーション要請に応答して割り当てられたとき、図1のNVMガバナ150は、アドレス空間(305、310、315)のサイズを指定する役割を担当する。
図3では、NVDIMM110が16個のアドレス空間に区分されたものを示した。
しかし、NVDIMM110内に割り当てられるアドレス空間の数が16より大きいか、或いは小さいことも可能である。
また、図3は、アドレス空間(305、310、315)の各々が同一のサイズを有するものとして示した。
即ち、アドレス空間(305、310、315)の各々がNVDIMM110内に同一の数のアドレスを含むことを示した。
しかし、アドレス空間(305、310、315)は、NVDIMM110の自体サイズ内のどのようなサイズであってもよい。
例えば、アドレス空間305は単なる8Kbのデータのみを格納することができる一方、アドレス空間310は48Mbのデータを格納することができるようにし得る。
アドレス空間(305、310、315)に対して記述したサイズは単なる例示的なことであり、NVDIMM110内の個別なアドレス空間(305、310、315)のサイズはこれに限定されることではない。
加えて、図1のNVMガバナ150は、アドレス空間(305、310、315)の大きさを再調整する。
例えば、アドレス空間305が初期において1Mbのデータを格納するように割り当てられたと仮定する。
アドレス空間305を使用するアプリケーションが実行されている間に、アプリケーションが図1のNVMガバナ150に追加的なメモリ及び/又はストレージを要請する。
図1のNVMガバナ150は、単純に追加的なアドレス空間(310、315)を割り当てし、これを該当アプリケーションに配分する。
しかし、仮に該当アプリケーションによって要請された追加的なメモリ及び/又はストレージがアドレス空間305と同一のアクセスモードを使用し、アドレス空間305に隣接した可能なアドレスがあれば、アドレス空間310は(まだ割り当てされない場合)、図1のNVMガバナ150はアドレス空間305が隣接アドレスを含むように拡張する。
上述した例は、アドレス空間(305、310、315)のサイズが増加する例を説明したが、アドレス空間(305、310、315)のサイズは、同様な方法で減少することができる。
仮に、アプリケーションが不必要なメモリ及び/又はストレージを解除することを望む場合、該当メモリ及び/又はストレージは、図1のNVMガバナ150によって割り当て解除されるように考慮された後のメモリ及び/又はストレージに対する要請を満足するように利用され得る。
後述する図5及び図6で記述するように、図1のNVMコントロールレジスタ155はアドレス空間(305、310、315)の各々に対するアドレスマスクを格納する。
このようなアドレスマスクは、どのアドレス空間(305、310、315)が特定のアドレスを含むか否かを判断、決定するのに利用される。
仮に、上述したようにアドレス空間(305、310、315)の空間が再調整されると、アドレス空間(305、310、315)と関連されたアドレスマスクは、新しくサイズが再調整されたアドレス空間(305、310、315)を反映して変更される。
例えば、仮にアドレス空間(305、310、315)が拡張されると、関連するアドレスマスクはより少ない数のビットを含む。
仮に、アドレス空間(305、310、315)が減少された場合、関連するアドレスマスクは追加的なビットを含む。
アドレスマスク内のビット数は、アドレス空間(305、310、315)のサイズに影響を与え得る。
例えば、個別アドレスが64ビットを含むと仮定する。
仮に48ビットがアドレスマスクとして使用されると、最下位16ビットは該当アドレス空間内のアドレスを区分するのに使用される。
これはアドレス空間(305、310、315)が65536ビット、又は8192バイトのデータを格納することを意味する。
例えば、仮にアプリケーションがアドレス空間(305、310、315)に16777216ビット又は2097152バイトを格納するために拡張するように要請すれば、アドレスマスクは48ビットから40ビットに減少する。
アドレスマスクの長さがアドレス空間(305、310、315)のサイズに影響を与えることができる方法に対する一つの結果は、アドレス空間(305、310、315)が2の累乗の形態のサイズを有するようにする。
しかし、単なるアドレス空間(305、310、315)のサイズが2の累乗の形態であることが該当アプリケーションが全体アドレス空間にアクセス権限を与えることであることを意味しないため、アプリケーションがアクセスし難いアドレス空間の一部は結果的に使用されない。
使用できないメモリ及び/又はストレージを有しないため、仮にアプリケーションが2の累乗形態のサイズにアドレス空間(305、310、315)を拡張することによって適切に得られることができない追加的なメモリ及び/又はストレージを要求する場合、他のサイズを有する他のアドレス空間は図1のNVMコントロールレジスタ(155)内の追加的な構成と共に使用される。
図4は、図1のNVMコントロールレジスタ及び複数のNVDIMMと相互作用する図1に示したNVMガバナを示すブロック図である。
図4を参照すると、NVMガバナ150は、割当ロジック405、バイトアドレス化ロジック410、ブロックアドレス化ロジック415、及びソフトウェア420を含む。
アプリケーションからの要請に応答して、割当ロジック405は、アプリケーションに対して図3のアドレス空間(305、310、315)のようにNVDIMM110からメモリ及び/又はストレージの一部を割り当てる。
バイトアドレス化ロジック410は、バイト単位のアドレス化アクセスモードを利用するNVDIMM110内の図3のアドレス空間(305、310、315)からアドレスにアクセスする。
また、ブロックアドレス化ロジック415は、ブロック単位のアドレス化アクセスモードを利用するNVDIMM110内の図3のアドレス空間(305、310、315)からアドレスにアクセスする。
最終的に、一部の実施形態では、ブロックアドレス化ロジック415を含む代わりに、ソフトウェア420はバイトアドレス化ロジック410を利用してブロックアドレス化ロジック415をエミュレーション(Emulation)する。
即ち、メモリ及び/又はストレージのブロックアクセスがバイトアドレス化ロジック(410)を利用してソフトウェア(420)によってエミュレートすることができるので、一部の実施形態ではブロックアドレス化ロジック(415)を含む必要がない。
NVMガバナ150は、NVMコントロールレジスタ155にデータを格納するか、或いは格納されたデータにアクセスする。
NVMガバナ150が割当ロジック405を利用する場合、NVMガバナ150はNVMコントロールレジスタ155内にアドレスマスク及びアクセスモードを格納する。
そうすると、NVMガバナ150がアドレスにアクセスするための要請を受信する場合、NVMガバナ150はNVMコントロールレジスタ155内に格納されたアドレスマスク及びアクセスモードを使用する。
これは要請されたアドレスにアクセスする場合に使用されたアクセスモードを判断、決定するためである。
図5は、16個の異なるアドレスマスク及びアクセスモードを格納する図1に示したNVMコントロールレジスタを示す図である。
図5を参照すると、NVMコントロールレジスタ155は、複数のアドレスマスク(505、510、515)及び複数のアクセスモード(520、525、530)を含む。
アドレスマスク及びアクセスモードの各々のペアは、図1の複数のNVDIMM(110、115)内の図3のアドレス空間(305、310、315)と関連する。
図5では、NVMコントロールレジスタ155が16個の複数のアドレスマスク及びアクセスモードを含むように示した。
但し、これは例示的なものであって、NVMコントロールレジスタ155はこれに限定されない。
NVMコントロールレジスタ155は、いかなる数のアドレスマスク及びアクセスモードも格納できる。
加えて、図5は複数のアドレスマスクが48ビットの長さを有し、アクセスモードは1つのビットを有することを示した。
但し、これは例示的なものであって、複数のアドレスマスク及びアクセスモードはこれに限定されない。
複数のアドレスマスク(505、510、515)はどのようなサイズも有してもよく、各々異なるサイズであってもよい。
同様に、二つのアクセスモード(バイト単位及びブロック単位のアドレス化)を区分するために1つのビットのみが必要であるが、仮に追加的なアクセスモードが提供された場合、複数のアクセスモード(520、525、530)は1つ以上のビットを含む。
図6は、本発明の実施形態による、図1に示したNVMガバナがどのようにしてNVMコントロールレジスタを利用して、要請されたアドレスに対するアクセスモードを決定するかを説明するための図である。
図6を参照すると、要請されたアドレス605は、アプリケーションが読み出すか、或いは書き込みを所望するアドレスであってもよい。
続いて、複数の比較器(610、615、620)は、要請されたアドレス605を複数のアドレスマスク(505、510、515)と比較する。
これは図3のアドレス空間(305、310、315)の中でいずれのアドレス空間が要請されたアドレス605を含むか否かを判断、決定するためである。
このような比較はいずれのアドレスマスクが要請されたアドレス605内の最上位ビットとマッチングされるか否かを確認するためである。
正確なアドレスマスクが確認された場合、エンコーダ(Encoder)625は該当情報を、コントロール信号を生成するために使用する。
コントロール信号は、該当アクセスモード(520、525、530)を選択するためのマルチプレクサ630(Multiplexer)に対する信号である。
このように選択されたアクセスモードは、アクセスモード635として出力される。
図7は、本発明の実施形態によるアプリケーションに対してNVDIMM内にアドレス空間を割り当てる方法を説明するためのフローチャートである。
図7を参照すると、S705段階で、図1のNVMガバナ150は、アプリケーションから該当アプリケーションにNVMアドレス空間を割り当てるための要請を受信する。
S710段階で、図1のNVMガバナ150は、要請されたアドレス空間に対するアクセスモードを受信する。
S715段階で、図1のNVMガバナ150は、図1の複数のNVDIMM(110〜115)内の図3のアドレス空間(305、310、315)の中で有効なアドレス空間を確認する。
S720段階で、図1のNVMガバナ150は、図1のNVMコントロールレジスタ155内に図3の確認されたアドレス空間(305、310、315)に対するアクセスモード及びアドレスマスクを格納する。
S725段階で、図1のNVMガバナ150は、要請したアプリケーションに図3のアドレス空間(305、310、315)を返す(return)。
図7(及び以下に示す他のフローチャート)を参照すると、1つの実施形態が示される。
しかし、当業者は上述した段階の順序を変更するか、一部段階を省略するか、或いは図面で図示されない接続を含んで他の実施形態が具現できることは容易に理解できる。
明示的に説明されたか否かに関係無く、このようなフローチャートの変形は本発明の実施形態として見なされる。
図8は、本発明の実施形態によるNVMガバナがNVDIMMに新たに割り当てられたアドレス空間のために使用されるアクセスモードを決定する方法を説明するためのフローチャートである。
図8では、図7のS710段階を詳細に説明する。
図8を参照すると、S805段階で、図1のNVMガバナ150はバイト単位のアドレス化されたアドレス空間に対してアプリケーションからの要請を受信する。
又は、S805段階の代わりに、S810段階で、図1のNVMガバナ150はブロック単位のアドレス化されたアドレス空間に対してアプリケーションからの要請を受信する。
上述したように、一実施形態は、バイト単位のアドレス化及びブロックアドレス化の二つのアクセスモードを考慮する。
図8を参照すると、このような実施形態が反映する。
しかし、仮に追加的なアクセスモードが導入されると、図8は追加的なアクセスモードの使用を反映するように変形される。
図9は、本発明の実施形態によるNVMガバナが割り当てられたアドレス空間に対する情報をNVMコントロールレジスタ内に格納する方法を説明するためのフローチャートである。
図9では、図7のS720段階の動作を詳細に説明する。
図9を参照すると、S905段階で、図1のNVMガバナ150は、図1のNVMコントロールレジスタ155内に図3のすべてのアドレス空間(305、310、315)に対するアクセスモード及びアドレスマスクを格納する。
又は、S905段階の代わりに、S910段階で、図1のNVMガバナ150は、バイト単位のアドレス化アクセスモードを使用しない図3のアドレス空間(305、310、315)に対するアクセスモード及びアドレスマスクのみを格納する。
そうすると、仮に図6で要請されたアドレス605のように要請されたアドレスが図1のNVMコントロールレジスタ155のアドレスマスク内で発見されない場合、図3のアドレス空間(305、310、315)は、バイト単位のアドレス化アクセスモードを使用すると仮定される。
つまり、バイト単位のアドレス化アクセスモードは、図1のNVMコントロールレジスタ155内のマスクされないすべてのアドレスに対するデフォルト(Default)アクセスモードに見なされる。
S910段階に対する二つの内容は言及する価値がある。
最初に、デフォルトアクセスモードとしてバイト単位のアドレス化アクセスモードを設定することは1つの選択である。
しかし、ブロック単位のアドレス化されたアドレス空間と関連されたアドレスマスクが代わりに省略されることができる場合に、ブロック単位のアドレス化アクセスモードのような他のアクセスモードはデフォルトアクセスモードに見なされる。
二番目に、仮に複数のNVDIMM(110、115)が、ただバイト及びブロック単位のアドレス化アクセスモードのように二つのアクセスモードのみを提供する場合、該当アクセスモードは全体的に図1のNVMコントロールレジスタ155から省略される。
これは図1のNVMコントロールレジスタ155内にアドレスマスクが格納されることその自体に適切なアクセスモードを確認できるからである。
図10は、本発明の実施形態によるNVMガバナがNVDIMM内のアドレスにアクセス要請を処理する方法を説明するためのフローチャートである。
図10を参照すると、S1005段階で、図1のNVMガバナ150は、アプリケーションからアドレスにアクセスするための要請を受信する。
S1010段階で、図1のNVMガバナ150は、図1のNVMコントロールレジスタ155から該当要請されたアドレスに対する適切なアクセスモードを決定する。
図1のNVMガバナ150は、図1のNVMコントロールレジスタ155に格納されたアドレスマスクを該当要請されたアドレスと比較して(或いは、並列的に)このような決定を遂行する。
比較によって、マッチングがなされた場合、該当アクセスモードは図1のNVMコントロールレジスタ155から決定されたアクセスモードとして選択される。
そして、S1015段階で、アクセスモードを使用して、アドレス空間にアクセスするための要請をスケジュールする。
図11は、本発明の実施形態によるNVMガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。
図11では、図10のS1010段階を詳細に説明する。
図11を参照すると、S1105段階で、図1のNVMガバナ150は、アドレス空間(305、310、315)がバイト単位のアドレス化アクセスモードを使用するように決定する。
また、S1105段階の代わりに、S1110段階で、図1のNVMガバナ150は、アドレス空間(305、310、315)がブロック単位のアドレス化アクセスモードを使用するように決定する。
付加的に、仮に複数のNVDIMM(110、115)が追加的なアクセスモードを支援する場合、図11は他のアクセスモードを決定する方法を反映して変形される。
図12は、本発明の他の実施形態によるNVMガバナが要請されたアドレスに対してアクセスモードを決定する方法を説明するためのフローチャートである。
図12では、図10のS1010段階を詳細に説明する。
図12を参照すると、S1205段階で、図1のNVMガバナ150は、要請されたアドレスを図1のNVMコントロールレジスタ155内のアドレスマスクと比較する。
S1210段階で、図1のNVMガバナ150はマッチング結果が発見されたか否かを判断する。
マッチング結果が発見された場合(「はい」方向)、処理は、S1215段階に進行する。
マッチング結果が発見されない場合(「いいえ」方向)、処理は、S1220段階に進行する。
S1215段階で、図1のNVMガバナ150は、要請されたアドレスに対するアクセスモードをマッチングされたアドレスマスクに対応する図1のNVMコントロールレジスタ155に格納されたアクセスモードとして決定する。
S1220段階で、図1のNVMガバナ150は、アクセスモードをバイト単位のアドレス化アクセスモードとして決定する。
或いは、バイト単位のアドレス化アクセスモードがデフォルトではない場合、どちらかのアクセスモードがデフォルトアクセスモードとして指定される。
以下では、本発明の特定の一側面を適用することができる適切なシステム(又は装置)又はシステム(又は装置)に対する簡略的で一般的な説明が提供する。
図13は、図1〜図12に示したメモリ又はストレージのための複数のNVDIMMを使用することができるシステムの概略を示すブロック図である。
図13を参照すれば、一般的に、システム205は、1つ又は1つ以上のプロセッサ105、複数のメモリ(NVDIMM110、115、DIMM120、125)(例えば、RAM(Random Access Memory)、ROM(Read−Only Memory)、及び他の状態格納媒体)、NVMガバナのようなメモリコントローラ150、ストレージ130、ユーザーインターフェイス1310、I/O(Input/Output)エンジン1315、及びI/Oエンジン1315を利用して制御され得るI/Oインターフェイスポートが付着されたシステムバス1305を含む。
また、システム205は、例えば、イーサーネット(Ethernet)コネクタのようなネットワークコネクタ1320を含む。
クロック1325は、システムバス1305に接続された構成要素の動作を調整するために使用される。
システム205は、少なくとも部分的に既存の入力装置からの入力によって制御され得る。
例えば、既存の入力装置はキーボード、マウスを含む。
或いは、このような制御は、他のマシンから受信される指針、VR(Virtual Reality)環境との相互作用、生体認識フィードバック、仮想マシン、又は他の入力信号によって遂行される。
ここで、使用した「システム」という用語は幅広く、単一マシン或いはシステム、仮想マシン、又は通信結合型マシンのシステム、仮想マシン、又は共に動作する装置を含む。
例示的なシステムは、パーソナル(Personal)コンピュータ、ワークステーション、サーバ、ポータブル(Portable)コンピュータ、ハンドヘルド装置(Handheld Device)、携帯電話、タブレット等を含む。
或いは、例示的なシステムは、自動車、列車、タクシーのような個人用又は大衆交通等のような交通装置を含む。
システム205は、内蔵コントローラ等を含む。
例えば、内蔵コントローラは、プログラムが可能又は不可能なロジック装置、又はアレイ(Array)、ASIC(Application Specific Integrated Circuits)、内蔵コンピュータ、スマートカード等を含む。
システム205は、1つ又は1つ以上の遠隔マシンとの1つ又は1つ以上の接続を使用する。
例えば、このような接続は、ネットワークインターフェイス、モデム、又は他の擬似伝達接続を通じてなされる。
システム205は、イントラネット、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のような物理的及び/又は論理的ネットワーク方法によって相互接続される。
当業者はネットワーク通信が多様な有線及び/又は無線近距離、又は長距離キャリヤ及びプロトコルを利用できることを容易に理解できる。
例えば、キャリヤ及びプロトコルは、RF(Radio Frequency)、衛星(Satellite)、マイクロウェーブ(Microwave)、IEEE802.11無線LAN規格、Bluetooth(登録商標)、光学、赤外線、ケーブル、レーザー等を含む。
本発明の実施形態は、機能、段階、データ構造、アプリケーションプログラムを含む関連データを参照して説明している。
機能、段階、データ構造、アプリケーションプログラムは、システムによってアクセスされる場合にシステムがタスクを遂行するか、或いは抽象的なデータタイプ又はローレベル(Low−Level)のハードウェアコンテキスト(Context)を定義するようにする。
例えば、上述した関連データは、RAM、ROMのような揮発性及び/又は不揮発性メモリに格納される。
また、関連データは、他のストレージ装置及びその関連ストレージ媒体に格納される。
例えば、関連ストレージ媒体は、ハードドライブ、フロッピー(登録商標)ディスク、光学ストレージ(Optical Storage)、テープ(Tapes)、フラッシュメモリ(Flash Memory)、メモリスティック(登録商標)、デジタルビデオディスク、生体ストレージ(Biological Storage)等を含む。
関連データは、パケット、シリアル(Serial)データ、パラレル(Parallel)データ、伝播信号(propagated signal)等の形態に物理的及び/又は論理的ネットワークを含む通信環境を通じて伝送され得る。
また、関連データは、圧縮されるか、或いは暗号化された形態で利用される。
関連データは、分散環境で利用することもでき、システムアクセスに対して近くに及び/又は遠くに格納され得る。
本発明の実施形態は、類型のノントランジトリ(Non−transitory)のシステムリーダブル(Readable)媒体を含む。
システムリーダブル媒体は、1つ又は1つ以上のプロセッサによって遂行された命令、ここで記述された本発明の要素を遂行する命令に構成された命令を含む。
本発明の実施形態は、制限無しで次の例示に拡張される。
第1例示において、本発明の実施形態は、システムを含む。システムはNVDIMM及びNVMガバナを含む。NVMガバナは第1アプリケーションに対して第1アドレス空間を第1アクセスモードにNVDIMMに割り当て、第2アプリケーションに対して第2アドレス空間を第2アクセスモードにNVDIMMに割り当てるように動作する。また、NVMガバナは少なくとも第1アドレス空間に対する第1アドレスマスクをNVMコントロールレジスタ内に格納するように動作する。第1アドレスマスクは第1アクセスモードと関連する。
第2例示において、本発明の実施形態は、第1例示によるシステムを含む。第1アクセスモードは第2アクセスモードと異なる。
第3例示において、本発明の実施形態は、第1例示によるシステムを含む。第1アクセスモードはブロック単位のアドレス化モードを含み、第2アクセスモードはバイト単位のアドレス化モードを含む。
第4例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMコントロールレジスタは複数のアドレスマスクを格納するように動作する。複数のアドレスマスクの各々はブロック単位のアドレス化モードを使用するアドレス空間と関連する。NVMガバナはNVMコントロールレジスタ内に格納されないアドレスマスクに対するすべてのアドレス空間をバイト単位のアドレス化モードを利用するアドレス空間に処理する。
第5例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMコントロールレジスタは複数のアドレスマスクを格納するように動作する。複数のアドレスマスクの各々はバイト単位のアドレス化モードを使用するアドレス空間と関連する。NVMガバナはNVMコントロールレジスタ内に格納されないアドレスマスクに対するすべてのアドレス空間をブロック単位のアドレス化モードを利用するアドレス空間に処理する。
第6例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMコントロールレジスタは第2アドレス空間に対する第2アドレスマスクを格納するように動作する。第2アドレスマスクは第2アクセスモードと関連する。
第7例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMコントロールレジスタは16個のアドレスマスク及び16個のアクセスモードを格納するように動作する。これはNVDIMM内の16個のアドレス空間を支援するためである。16個のアドレスマスクの各々は48ビットのサイズを有する。
第8例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMガバナはバイト単位又はブロック単位のアドレス化モードにNVDIMM内にアドレス空間を割り当てる割当ロジックを含む。
第9例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMガバナはバイト単位のアドレス化モードを使用して第1アドレス空間にアクセスするバイトアドレス化ロジックを含む。NVMガバナはブロック単位のアドレス化モードを利用して第2アドレス空間にアクセスするためにエミュレーションするソフトウェアを含む。ソフトウェアはバイトアドレス化ロジックを利用する。
第10例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMガバナはバイト単位のアドレス化モードを利用して第1アドレス空間にアクセスするバイトアドレス化ロジック及びブロック単位のアドレス化モードを利用して第2アドレス空間にアクセスするブロックアドレス化ロジックを含む。
第11例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMガバナはNVMコントロールレジスタ内のすべてのアドレスマスクに対して並列的なアクセスチェックを遂行するように動作する。また、NVMガバナはマッチングされたアドレスマスクと関連したアクセスモードを利用してアドレス要請をスケジュールする。
第12例示において、本発明の実施形態は、第3例示によるシステムを含む。NVMコントロールレジスタは複数のアドレスマスクの各々を複数のアクセスモードの中で1つと関連させるように動作する。
第13例示において、本発明の実施形態は、第3例示によるシステムを含む。システムはNVDIMMと接続されたプロセッサをさらに含む。プロセッサはNVMコントロールレジスタを含む。
第14例示において、本発明の実施形態は、第3例示によるシステムを含む。システムはプロセッサ上で動作可能なOS(Operating System)をさらに含む。
OSはNVMガバナを含む。
第15例示において、本発明の実施形態は、システムのアクセス方法を含む。
システムのアクセス方法は、アドレス空間をNVDIMMに割り当てる要請を受信する段階、
要請されたアドレス空間に対するアクセスモードを受信する段階、
NVDIMM内のアドレス空間を確認する段階、及び
要請されたアドレス空間として前記アドレス空間を返還する段階を含み、前記アクセスモードは少なくとも二つのアクセスモードを含むセットから抽出される。
第16例示において、本発明の実施形態は、第15例示によるシステムのアクセス方法を含む。システムのアクセス方法はアドレス空間に対するアドレスマスク及びアドレス空間に対するアクセスモードをNVMコントロールレジスタ内に格納する段階をさらに含む。
第17例示において、本発明の実施形態は、第16例示によるシステムのアクセス方法を含む。アドレス空間に対するアドレスマスクを格納する段階は、仮に前記アドレス空間に対するアクセスモードがブロック単位のアドレス化モードである場合に前記アドレス空間に対するアドレスマスクのみを格納する段階を含む。
第18例示において、本発明の実施形態は、第16例示によるシステムのアクセス方法を含む。アドレス空間に対するアドレスマスクを格納する段階は、仮に前記アドレス空間に対するアクセスモードがバイト単位のアドレス化モードである場合に前記アドレス空間に対するアドレスマスクのみを格納する段階を含む。
第19例示において、本発明の実施形態は、第15例示によるシステムのアクセス方法を含む。要請されたアドレス空間に対するアクセスモードを受信する段階は、要請されたアドレス空間に対するブロック単位のアドレス化モードを受信する段階を含む。
第20例示において、本発明の実施形態は、第15例示によるシステムのアクセス方法を含む。要請されたアドレス空間に対するアクセスモードを受信する段階は、要請されたアドレス空間に対するバイト単位のアドレス化モードを受信する段階を含む。
第21例示において、本発明の実施形態は、さらなるシステムのアクセス方法を含む。
システムのアクセス方法は、NVDIMMからアドレス空間にアクセスするための要請を受信する段階、
前記アドレス空間に対するアクセスモードを決定する段階、及び
前記アクセスモードを利用してNVDIMMから前記アドレス空間にアクセスするための要請をスケジュールする段階を含む。
第22例示において、本発明の実施形態は、第21例示によるシステムのアクセス方法を含む。アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対するブロック単位のアドレス化モードを決定する段階を含む。
第23例示において、本発明の実施形態は、第21例示によるシステムのアクセス方法を含む。アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対するバイト単位のアドレス化モードを決定する段階を含む。
第24例示において、本発明の実施形態は、第21例示によるシステムのアクセス方法を含む。アドレス空間に対するアクセスモードを決定する段階は、プロセッサ内のNVMコントロールレジスタからアクセスモードを決定する段階を含む。
第25例示において、本発明の実施形態は、第24例示によるシステムのアクセス方法を含む。NVMコントロールレジスタから前記アクセスモードを決定する段階は、
前記アドレス空間を前記NVMコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階、及び
前記アドレス空間とマッチングされたNVMコントロールレジスタ内のアドレスマスクに対応するアクセスモードを決定する段階を含む。
第26例示において、本発明の実施形態は、第25例示によるシステムのアクセス方法を含む。前記アドレス空間を前記NVMコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階は、前記アドレス空間をNVMコントロールレジスタ内のアドレスマスクの各々と比較する段階を含む。
第27例示において、本発明の実施形態は、第26例示による方法を含む。前記アドレス空間をNVMコントロールレジスタ内のアドレスマスクの各々と比較する段階は、並列的に前記アドレス空間をNVMコントロールレジスタ内のアドレスマスクの各々と比較する段階を含む。
第28例示において、本発明の実施形態は、第25例示によるシステムのアクセス方法を含む。NVMコントロールレジスタから前記アクセスモードを決定する段階は、仮に前記アドレス空間が前記NVMコントロールレジスタ内のアドレスマスクとマッチングしない場合に前記アクセスモードをバイト単位のアドレス化モードとして決定する段階を含む。
第29例示において、本発明の実施形態は、第25例示によるシステムのアクセス方法を含む。NVMコントロールレジスタから前記アクセスモードを決定する段階は、仮に前記アドレス空間が前記NVMコントロールレジスタ内のアドレスマスクとマッチングしない場合に前記アクセスモードをブロック単位のアドレス化モードとして決定する段階を含む。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
105 プロセッサ
110、115 NVDIMM
120、125 DIMM
130 ストレージ
135 OS(Operating System)
140、145 仮想マシン
150 NVMガバナ(メモリコントローラ)
155 NVMコントロールレジスタ
205 コンピュータシステム
210 コンピュータ
215 モニタ
220 キーボード
225 マウス
305、310、315 アドレス空間
405 割当ロジック
410 バイトアドレス化ロジック
415 ブロックアドレス化ロジック
420 ソフトウェア
505、510、515 アドレスマスク
520、525、530 アクセスモード
605 要請されたアドレス
610、615、620 比較器
625 エンコーダ
630 マルチプレクサ
635 アクセスモード
1305 システムバス
1310 ユーザーインターフェイス
1315 I/Oエンジン
1320 ネットワークコネクタ
1325 クロック


Claims (23)

  1. NVDIMM(Non−Volatile Dual In−Line Memory Module)と、
    第1アプリケーションに対する第1アドレス空間を第1アクセス(Access)モードに前記NVDIMMに割当し、第2アプリケーションに対する第2アドレス空間を第2アクセスモードに前記NVDIMMに割当し、少なくとも前記第1アドレス空間に対する第1アドレスマスクをNVM(Non−Volatile Memory)コントロールレジスタ内に格納するように動作するNVMガバナ(governor)と、を有し、
    前記第1アドレスマスクは、前記第1アクセスモードと関連することを特徴とする不揮発性メモリを含むシステム。
  2. 前記第1アクセスモードは、ブロック単位のアドレス化(Block−addressable)モードを含み、
    前記第2アクセスモードは、バイト単位のアドレス化(Byte−addressable)モードを含むことを特徴とする請求項1に記載の不揮発性メモリを含むシステム。
  3. 前記NVMコントロールレジスタは、複数のアドレスマスクを格納するように動作し、
    前記NVMガバナは、前記NVMコントロールレジスタ内に格納されないアドレスマスクに対するすべてのアドレス空間を前記バイト単位のアドレス化モードを利用するアドレス空間に処理するように動作し、
    前記複数のアドレスマスクの各々は、前記ブロック単位のアドレス化モードを使用するアドレス空間と関連することを特徴とする請求項2に記載の不揮発性メモリを含むシステム。
  4. 前記NVMコントロールレジスタは、複数のアドレスマスクを格納するように動作し、
    前記NVMガバナは、前記NVMコントロールレジスタ内に格納されないアドレスマスクに対するすべてのアドレス空間を前記ブロック単位のアドレス化モードを利用するアドレス空間に処理するように動作し、
    前記複数のアドレスマスクの各々は、前記バイト単位のアドレス化モードを使用するアドレス空間と関連することを特徴とする請求項2項に記載の不揮発性メモリを含むシステム。
  5. 前記NVMコントロールレジスタは、前記第2アドレス空間に対する第2アドレスマスクを格納するように動作し、
    前記第2アドレスマスクは、前記第2アクセスモードと関連することを特徴とする請求項2に記載の不揮発性メモリを含むシステム。
  6. 前記NVMガバナは、前記バイト単位のアドレス化モードを使用して前記第1アドレス空間にアクセスするバイトアドレス化ロジックと、
    前記ブロック単位のアドレス化モードを利用して前記第2アドレス空間にアクセスするようにエミュレート(Emulate)するソフトウェアと、を含み、
    前記ソフトウェアは、前記バイトアドレス化ロジックを利用することを特徴とする請求項2に記載の不揮発性メモリを含むシステム。
  7. 前記NVMガバナは、前記バイト単位のアドレス化モードを利用して前記第1アドレス空間にアクセスするバイトアドレス化ロジックと、
    前記ブロック単位のアドレス化モードを利用して前記第2アドレス空間にアクセスするブロックアドレス化ロジックと、を含むことを特徴とする請求項2に記載の不揮発性メモリを含むシステム。
  8. 前記NVMガバナは、前記NVMコントロールレジスタ内のすべてのアドレスマスクに対して並列的なアクセスチェック(AccessCheck)を遂行するように動作し、マッチングしたアドレスマスクと関連するアクセスモードを利用してアドレス要請をスケジュールするように動作することを特徴とする請求項2に記載の不揮発性メモリを含むシステム。
  9. 前記NVDIMMと接続されるプロセッサをさらに有し、
    前記プロセッサは、前記NVMコントロールレジスタを含むことを特徴とする請求項2に記載の不揮発性メモリを含むシステム。
  10. 前記プロセッサ上で動作可能なオペレーティングシステム(OperatingSystem)をさらに有し、
    前記オペレーティングシステムは、前記NVMガバナを含むことを特徴とする請求項9に記載の不揮発性メモリを含むシステム。
  11. NVDIMM(Non−Volatile Dual In−Line Memory Module)を含むシステムのアクセス方法において、
    前記NVDIMM内にアドレス空間を割り当てるための要請を受信する段階と、
    前記要請されたアドレス空間に対するアクセスモードを受信する段階と、
    前記NVDIMM内のアドレス空間を確認する段階と、
    前記要請されたアドレス空間として前記NVDIMM内のアドレス空間を返還(return)する段階と、を有し、
    前記アクセスモードは、少なくとも二つのアクセスモードを含むセットから抽出されることを特徴とする不揮発性メモリを含むシステムのアクセス方法。
  12. 前記アドレス空間に対するアドレスマスク及び前記アドレス空間に対する前記アクセスモードをNVMコントロールレジスタ内に格納する段階をさらに有することを特徴とする請求項11に記載の不揮発性メモリを含むシステムのアクセス方法。
  13. 前記アドレス空間に対するアドレスマスクを格納する段階は、前記アドレス空間に対する前記アクセスモードがブロック単位のアドレス化モードである場合、
    前記アドレス空間に対するアドレスマスクのみを格納する段階を含むことを特徴とする請求項12に記載の不揮発性メモリを含むシステムのアクセス方法。
  14. 前記アドレス空間に対するアドレスマスクを格納する段階は、前記アドレス空間に対する前記アクセスモードがバイト単位のアドレス化モードである場合、
    前記アドレス空間に対するアドレスマスクのみを格納する段階を含むことを特徴とする請求項12に記載の不揮発性メモリを含むシステムのアクセス方法。
  15. NVDIMM(Non−Volatile Dual In−Line Memory Module)を含むシステムのアクセス方法において、
    前記NVDIMMからアドレス空間にアクセスするための要請を受信する段階と、
    前記アドレス空間に対するアクセスモードを決定する段階と、
    前記アクセスモードを利用して前記NVDIMMから前記アドレス空間にアクセスするための前記要請をスケジュールする段階と、を有することを特徴とする不揮発性メモリを含むシステムのアクセス方法。
  16. 前記アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対してブロック単位のアドレス化モードを決定する段階を含むことを特徴とする請求項15に記載の不揮発性メモリを含むシステムのアクセス方法。
  17. 前記アドレス空間に対するアクセスモードを決定する段階は、前記アドレス空間に対してバイト単位のアドレス化モードを決定する段階を含むことを特徴とする請求項15に記載の不揮発性メモリを含むシステムのアクセス方法。
  18. 前記アドレス空間に対するアクセスモードを決定する段階は、前記システムのプロセッサ内のNVMコントロールレジスタから前記アクセスモードを決定する段階を含むことを特徴とする請求項15に記載の不揮発性メモリを含むシステムのアクセス方法。
  19. 前記NVMコントロールレジスタから前記アクセスモードを決定する段階は、前記アドレス空間を前記NVMコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階と、
    前記アドレス空間とマッチングされる前記NVMコントロールレジスタ内の前記アドレスマスクに対応する前記アクセスモードを決定する段階と、を含むことを特徴とする請求項18に記載の不揮発性メモリを含むシステムのアクセス方法。
  20. 前記アドレス空間を前記NVMコントロールレジスタ内のアドレスマスクとマッチングさせるように試みる段階は、前記アドレス空間を前記NVMコントロールレジスタ内のアドレスマスクの各々と比較する段階を含むことを特徴とする請求項19に記載の不揮発性メモリを含むシステムのアクセス方法。
  21. 前記アドレス空間を前記NVMコントロールレジスタ内のアドレスマスクの各々と比較する段階は、並列的に前記アドレス空間を前記NVMコントロールレジスタ内の前記アドレスマスクの各々と比較する段階を含むことを特徴とする請求項20に記載の不揮発性メモリを含むシステムのアクセス方法。
  22. 前記NVMコントロールレジスタから前記アクセスモードを決定する段階は、前記アドレス空間が前記NVMコントロールレジスタ内のアドレスマスクとマッチングしない場合、
    前記アクセスモードをバイト単位のアドレス化モードとして決定する段階をさらに含むことを特徴とする請求項19に記載の不揮発性メモリを含むシステムのアクセス方法。
  23. 前記NVMコントロールレジスタから前記アクセスモードを決定する段階は、前記アドレス空間が前記NVMコントロールレジスタ内のアドレスマスクとマッチングしない場合、
    前記アクセスモードをブロック単位のアドレス化モードとして決定する段階をさらに含むことを特徴とする請求項19に記載の不揮発性メモリを含むシステムのアクセス方法。
JP2016122720A 2015-07-13 2016-06-21 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法 Active JP6744768B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562192028P 2015-07-13 2015-07-13
US62/192,028 2015-07-13
US14/957,568 2015-12-02
US14/957,568 US9886194B2 (en) 2015-07-13 2015-12-02 NVDIMM adaptive access mode and smart partition mechanism

Publications (3)

Publication Number Publication Date
JP2017021789A true JP2017021789A (ja) 2017-01-26
JP2017021789A5 JP2017021789A5 (ja) 2019-07-25
JP6744768B2 JP6744768B2 (ja) 2020-08-19

Family

ID=57775804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016122720A Active JP6744768B2 (ja) 2015-07-13 2016-06-21 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法

Country Status (5)

Country Link
US (1) US9886194B2 (ja)
JP (1) JP6744768B2 (ja)
KR (1) KR102363526B1 (ja)
CN (1) CN106354656B (ja)
TW (1) TWI691838B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018057039A1 (en) * 2016-09-26 2018-03-29 Hewlett-Packard Development Company, L. Update memory management information to boot an electronic device from a reduced power mode
US10025714B2 (en) * 2016-09-30 2018-07-17 Super Micro Computer, Inc. Memory type range register with write-back cache strategy for NVDIMM memory locations
KR20180061851A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
KR102400102B1 (ko) * 2017-05-11 2022-05-23 삼성전자주식회사 데이터 버퍼의 내부 데이터(dq) 터미네이션을 지원하는 메모리 시스템
TWI645295B (zh) 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
CN110720126B (zh) * 2017-06-30 2021-08-13 华为技术有限公司 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
CN109791589B (zh) * 2017-08-31 2021-07-16 华为技术有限公司 一种计算机内存数据加解密的方法及装置
US11194524B2 (en) 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US10782994B2 (en) * 2017-12-19 2020-09-22 Dell Products L.P. Systems and methods for adaptive access of memory namespaces
CN108255428B (zh) * 2018-01-10 2020-07-24 联想(北京)有限公司 一种数据处理方法、装置及电子设备
US11042374B2 (en) 2019-05-02 2021-06-22 International Business Machines Corporation Non-volatile dual in-line memory module storage
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US11314460B2 (en) * 2019-09-13 2022-04-26 Kioxia Corporation Solid state drive supporting both byte addressable protocol and block addressable protocol
US11003376B2 (en) * 2019-09-13 2021-05-11 Toshiba Memory Corporation Reconfigurable SSD storage pool
CN111753337B (zh) * 2020-07-02 2023-02-21 上海电器科学研究所(集团)有限公司 一种储能电池管理系统意外断电soc处理方法
TWI818732B (zh) * 2022-09-16 2023-10-11 新唐科技股份有限公司 記憶體裝置及其操作方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258804A (ja) * 2004-03-11 2005-09-22 Toshiba Corp メモリカード装置およびメモリカード制御方法
JP2008204257A (ja) * 2007-02-21 2008-09-04 Seiko Epson Corp メモリを制御するメモリコントローラ、メモリの制御方法。
JP2014170360A (ja) * 2013-03-04 2014-09-18 Hitachi Ltd 計算機及びメモリ管理方法
WO2015061971A1 (zh) * 2013-10-29 2015-05-07 华为技术有限公司 数据处理系统和数据处理的方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
KR19980033054A (ko) * 1996-10-23 1998-07-25 윌리엄비.켐플러 프로그램 가능 메모리 액세스
US6496916B1 (en) * 1998-04-17 2002-12-17 Agere Systems Inc. System for flexible memory paging in partitioning memory
US6854043B2 (en) * 2002-07-05 2005-02-08 Hewlett-Packard Development Company, L.P. System and method for multi-modal memory controller system operation
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US20060069849A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
TWI446171B (zh) * 2006-09-28 2014-07-21 Virident Systems Inc 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置
US20080250220A1 (en) * 2007-04-06 2008-10-09 Takafumi Ito Memory system
US8832408B2 (en) 2007-10-30 2014-09-09 Spansion Llc Non-volatile memory array partitioning architecture and method to utilize single level cells and multi-level cells within the same memory
US8261047B2 (en) * 2008-03-17 2012-09-04 Freescale Semiconductor, Inc. Qualification of conditional debug instructions based on address
KR101573047B1 (ko) * 2009-01-23 2015-12-02 삼성전자주식회사 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8239619B2 (en) * 2010-07-09 2012-08-07 Macronix International Co., Ltd. Method and apparatus for high-speed byte-access in block-based flash memory
TWI462103B (zh) * 2011-01-19 2014-11-21 Mstar Semiconductor Inc 記憶體控制器、記憶體控制方法及記憶體系統
WO2013048483A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Platform storage hierarchy with non-volatile random access memory having configurable partitions
CN103197985B (zh) * 2011-11-08 2018-07-13 索尼公司 存储控制装置
CN103514095B (zh) * 2012-06-18 2016-08-03 记忆科技(深圳)有限公司 一种数据库写入ssd 的方法和系统
CN102779096B (zh) * 2012-07-11 2015-02-04 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法
US9098402B2 (en) * 2012-12-21 2015-08-04 Intel Corporation Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US9135997B2 (en) * 2013-01-18 2015-09-15 Fujitsu Limited System and method for filtering addresses
US8949486B1 (en) * 2013-07-17 2015-02-03 Mellanox Technologies Ltd. Direct memory access to storage devices
WO2015112126A1 (en) * 2014-01-22 2015-07-30 Hewlett Packard Development Company, L.P. Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
US20160253123A1 (en) * 2014-03-19 2016-09-01 Bruce Ledley Jacob NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System
CN105094691B (zh) * 2014-05-21 2019-05-21 华为技术有限公司 一种数据操作的方法、设备和系统
US9396769B1 (en) * 2015-02-11 2016-07-19 Macronix International Co., Ltd. Memory device and operating method of same
US9645939B2 (en) * 2015-06-26 2017-05-09 Intel Corporation Hardware apparatuses and methods for distributed durable and atomic transactions in non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258804A (ja) * 2004-03-11 2005-09-22 Toshiba Corp メモリカード装置およびメモリカード制御方法
JP2008204257A (ja) * 2007-02-21 2008-09-04 Seiko Epson Corp メモリを制御するメモリコントローラ、メモリの制御方法。
JP2014170360A (ja) * 2013-03-04 2014-09-18 Hitachi Ltd 計算機及びメモリ管理方法
WO2015061971A1 (zh) * 2013-10-29 2015-05-07 华为技术有限公司 数据处理系统和数据处理的方法

Also Published As

Publication number Publication date
CN106354656B (zh) 2021-05-11
KR102363526B1 (ko) 2022-02-16
TW201706850A (zh) 2017-02-16
US9886194B2 (en) 2018-02-06
TWI691838B (zh) 2020-04-21
JP6744768B2 (ja) 2020-08-19
KR20170008141A (ko) 2017-01-23
CN106354656A (zh) 2017-01-25
US20170017402A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
JP6744768B2 (ja) 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法
KR102137761B1 (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
CN110663019B (zh) 用于叠瓦式磁记录(smr)的文件系统
KR102317657B1 (ko) Nvdimm을 포함하는 장치 및 그것의 엑세스 방법
US9058338B2 (en) Storing a small file with a reduced storage and memory footprint
KR20190111406A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
CN109213438B (zh) 预先管理待分配给写入数据的物理地址的存储装置
US10346052B2 (en) Memory system with priority processing and operating method thereof
CN112445423A (zh) 存储器系统、计算机系统及其数据管理方法
KR20190130831A (ko) 컨트롤러 및 이를 포함하는 메모리 시스템
US11835992B2 (en) Hybrid memory system interface
US11182289B1 (en) Memory system and operating method thereof
US20150212759A1 (en) Storage device with multiple processing units and data processing method
US10642534B2 (en) Data storage device
KR102549540B1 (ko) 스토리지 장치 및 그 동작 방법
US11200163B2 (en) Controller and method of operating the same
CN110865952B (zh) 利用缓存优化dma传输
US20230229493A1 (en) Electronic system, operating method thereof, and operating method of memory device
KR20230092227A (ko) 멀티코어 프로세서 및 스토리지 장치
JP2022165569A (ja) メモリシステム、メモリデバイス、およびデータ送信方法
KR20210053865A (ko) Usb 형태의 클라우드 드라이브 및 이를 이용한 데이터 관리 시스템
CN116257176A (zh) 数据存储系统、数据存储方法和存储介质
CN110568991A (zh) 降低锁引起的io命令冲突的方法与存储设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190621

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200731

R150 Certificate of patent or registration of utility model

Ref document number: 6744768

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250