JP2017130194A - メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体 - Google Patents

メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体 Download PDF

Info

Publication number
JP2017130194A
JP2017130194A JP2016236056A JP2016236056A JP2017130194A JP 2017130194 A JP2017130194 A JP 2017130194A JP 2016236056 A JP2016236056 A JP 2016236056A JP 2016236056 A JP2016236056 A JP 2016236056A JP 2017130194 A JP2017130194 A JP 2017130194A
Authority
JP
Japan
Prior art keywords
memory device
volatile memory
computing system
storage
hwc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016236056A
Other languages
English (en)
Inventor
潮 紅 胡,
Chaohong Hu
潮 紅 胡,
宏 忠 ズン,
Hongzhong Zheng
宏 忠 ズン,
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 JP2017130194A publication Critical patent/JP2017130194A/ja
Pending legal-status Critical Current

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/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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • 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
    • 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
    • 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/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
    • G06F3/0658Controller construction arrangements
    • 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
    • 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/068Hybrid storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体を提供する。【解決手段】本発明の実施形態によるコンピューティングシステムは、ストレージコンポーネントとコントローラコンポーネントとを含む。ストレージコンポーネントは、ブロック指向(oriented)の大容量情報ストレージと共に永続的情報ストレージを可能にするように構成された不揮発性メモリ装置及び揮発性メモリ装置を含む。コントローラコンポーネントは、ストレージコンポーネントに連結され、スマートメモリドライバーを具現するように構成される。スマートメモリドライバーは、揮発性メモリ内のPM部分、HWC部分、及びBW部分の中の少なくとも1つを含む揮発性メモリを動的に管理するように構成される。【選択図】図1

Description

本発明はメモリ管理メカニズムに係り、より詳しくは、メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体に関する。
コンピューティングシステム(computing system)、サーバー、家庭用機器、テレビジョン、携帯電話、自動車、衛星、及びその組合せ装置のような現代の家庭用及び産業用電子機器は、現代生活を支援するために機能の水準を向上させて提供されている。消費者用製品、企業用又は商用製品とに要求される性能には差異があるが、電力消費を減少しながら、向上した性能を提供することが共通的に要求されている。既存技術の研究及び開発は多様な方向に向かっている。
1つの方向は有用なリソースの管理面の改善を含む。電子装置の数と各々の装置のプロセシング電力が増加し、コンピューティングリソースに対する要求が急激に増加している。効率的に又は効果的に有用なリソースを管理することは複数の装置において向上した水準の性能及び機能を提供する。
したがって、メモリ管理メカニズム(mechanism)を有するコンピューティングシステムに対する要求は相変わらず、存在する。持続的に増加する商業的な競合圧力の面において、市場にて意味ある製品差別化のための機会が減ること及び増加する消費者期待と共に、このような問題に対する答を探すことが段々重要になっている。また、費用節減、効率及び性能改善、及び競合圧力はこのような問題の答を探すことに対する重要な必要性にさらに大きな緊急性(urgency)を加えている。
このような問題に対する解決策は長い時間模索されて来たが、以前の開発は何らの解決策も暗示せず、或いは教示せず、したがって、当業者はこのような問題に対する解決策を得なかった。
米国特許第9,128,824号公報 米国特許第8,874,831号公報 米国特許公開第2015/0006831号明細書 米国特許公開第2013/0304980号明細書 米国特許公開第2014/0310451号明細書 米国特許公開第2014/0281151号明細書
本発明の目的は、メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体を提供することにある。
本発明の実施形態によるコンピューティングシステムは、ストレージコンポーネントとコントローラコンポーネントを含む。ストレージコンポーネント(component)は、ブロック指向(oriented)の大容量情報ストレージと共に永続的情報ストレージを可能にするように構成された不揮発性メモリ装置及び揮発性メモリ装置を含むストレージコンポーネントと、前記ストレージコンポーネントに連結され、スマートメモリドライバーを具現するように構成された前記コントローラコンポーネントを含み、前記スマートメモリドライバーは、前記揮発性メモリ装置内のPM(Persistent Memory)部分、HWC(Hardware Cache)部分、及びBW(Block Window)部分の中の少なくとも1つを含む前記揮発性メモリ装置を動的に管理するように構成される。
本発明の他の実施形態によるコンピューティングシステムの動作方法は、ユーザー特性及びアプリケーション特性の中の少なくとも1つを示すメモリ要求事項を決定する段階と、前記メモリ要求事項にしたがって揮発性メモリ装置内のPM部分、HWC部分、及びBW部分をバランシング(balancing)することに基づいて揮発性メモリ装置を構成する段階と、を含み、
前記揮発性メモリ装置は、PMモード及びブロックモードの中の少なくとも1つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とする。
本発明の他の実施形態によるコンピューティングシステムに対する命令を含み、コンピュータによって非一時的に(non−transitory)読み出される媒体(medium)において、前記命令が前記コンピュータによって実行される時、媒体は、ユーザー特性及びアプリケーション特性の中の少なくとも1つを示すメモリ要求事項を決定する段階と、前記メモリ要求事項にしたがって揮発性メモリ装置内のPM部分、HWC部分、及びBW部分をバランシング(balancing)することに基づいて揮発性メモリ装置を構成する段階と、が遂行されるようにし、前記揮発性メモリ装置は、PMモード及びブロックモードの中の少なくとも1つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とする。
本発明によれば、コンピュータシステム上の有用なリソースを効率的に管理できる。これと共に、電力消費が減少し、同時に向上した性能を提供できる。
本発明の実施形態によるメモリ管理メカニズムを有するコンピューティングシステムを例示的に示すブロックダイヤグラムである。 コンピューティングシステムの構造ダイヤグラムを例示的に示すブロック図である。 図2のストレージコンポーネントの例示的なタイミングダイヤグラムである。 本発明の実施形態によるコンピューティングシステムの動作方法を示す順序図である。
以下の実施形態は、永続的メモリモード及びブロックメモリの全てを支援するためのソフトウェアを使用するNVDIMM(Non Volatile Dual In−line Memory Module)−P構造を含む。以下の実施形態に対して、DRAM(Dynamic Random Access Memory)又はフラッシュメモリ等の既存のメモリ技術が利用できる。NVDIMM−P構造はスマートメモリドライバーに基づいて具現される。更に、以下の実施形態は、不揮発性メモリ装置、管理回路、メモリデータバッファ、又はそれらの組合せと共に永続的メモリ部分、ハードウェアキャッシュ部分、ブロックウインドー部分、又は上述した部分(永続的メモリ部分、ハードウェアキャッシュ部分、ブロックウインドー部分)の組合せを含む揮発性メモリを構成することに基づく。
以下の実施形態は当業者が本発明を構成し、使用できるように十分に詳細に記述する。他の実施形態は本発明に基づいて明確であり、システム、プロセス、構造的、又は機械的変化は本発明の実施形態の範囲を逸脱しなく、構成されることは理解される。
以下の説明において、多数の特定細部事項は本発明の完全な理解を提供するために与えられる。但し、本発明及び多様な実施形態がこのような特定細部事項が無くとも実施できることが分かる。本発明の実施形態が曖昧になることを避けるために、一部広く公知された回路、システム構成、及びプロセス段階は詳細に説明しない。
システムの実施形態を示した図面は半図式的(semi−diagrammatic)であり、寸法として正確ではない。寸法(dimensions)は表現の明確性のために、図面において誇張して図示した。同様に、説明を簡単にするために、図面の観点(views)は一般的に類似な方向を示しているが、図面のこのような描写の大部分は任意的である。一般的に、実施形態はいずれの方向にも動作できる。
ここで、記述された‘‘コンポーネント(component)’’という用語は、該用語が使用される文脈にしたがって本発明の実施形態においてソフトウェア、ハードウェア、又はそれらの組合せを含む。例えば、ソフトウェアはマシンコード、ファームウェア(firmware)、内装コード、アプリケーションソフトウェア等である。また、例えば、ハードウェアは、回路、プロセッサ、コンピュータ、集積回路、集積回路コア、圧力センサー、慣性センサー、MEMS(Micro Electro Mechanical System)、受動装置、又はそれらの組合せ等である。更に、仮に以下においてコンポーネントが特許請求の範囲の装置(apparatus)に関する請求項の部分に書かれた場合、該コンポーネントは装置の請求項の範囲及び目的のためのハードウェア回路を含むと看做される。
実施形態の以下の説明におけるコンポーネントは記述されるように、又は図示されるように他のものと連結される。該連結は各々結合された構成の間に介在するか、又は介在無しに直接的に、又は間接的に連結される。該連結は物理的接触、又は構成間の通信によってなされる。
図1は、本発明の実施形態によるメモリ管理メカニズムを有するコンピューティングシステムを例示的に示すブロックダイヤグラムである。コンピューティングシステム100は装置102を含む。装置102はクライアント(client)装置、サーバー、ディスプレイインターフェイス、又はそれらの組合せである。
例えば、装置102は、スマートフォン、ウェアラブル(wearable)装置又は健康(health)モニター、IoT(Internet of Things)のためのプロセシング装置、又はセンサー、又はそれらの組合せである。また、例えば、装置102は、コンピュータ、グリッド(grid)コンピューティングリソース(resources)、仮想化されたコンピュータリソース、クラウド(cloud)コンピューティングリソース、ルータ(routers)、スイッチ、ピアツーピア(peer−to−peer)分散コンピューティング装置、又はそれらの組合せを含む。また、例えば、装置102は、サービス提供者によって使用されるサーバーであってもよい。
装置102は、コントロール回路112、ストレージ回路114、通信回路116、ユーザーインターフェイス118を含む。コントロール回路112は、コントロールインターフェイス122を含む。コントロール回路112は、コンピューティングシステム100のソフトウェア126を実行する。
一実施形態において、コントロール回路112は、コンピューティングシステム100に処理(processing)能力及び機能を提供する。コントロール回路112は多数の多様な方式により具現される。例えば、コントロール回路112は、プロセッサ又はその中の一部、ASIC(Application Specific Integrated Circuit)、内装プロセッサ、マイクロプロセッサ、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、ハードウェアコントロールロジック、ハードウェアFSM(Finite State Machine)、DSP(Digital Signal Processor)、コンピューティング能力を有するハードウェア、又はそれらの組合せである。
追加的な例として、多様な実施形態が、システムケーシング(casing)内のシステムボード又はドーターボード(daughter board)上のコンポーネントと共に単一集積回路上に具現されるか、又は多様なネットワークトポロジー(topology)を通じてシステムからシステムに分散されるか、又はそれらの組合せを通じて具現される。ネットワークトポロジー(topology)の例は、PAN(Personal Area Network)、LAN(Local Area Network)、SAN(Storage Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、又はそれらの組合せを含む。
コントロールインターフェイス122は、コントロール回路112と装置102内の他の機能回路ユニットとの間の通信のために使用される。また、コントロールインターフェイス122は、装置102の外部との通信のために使用される。
コントロールインターフェイス122は、他の機能回路ユニット又は外部ソース(sources)から情報を受信するか、或いは外部の目的地又は他の機能回路ユニットに情報を送信する。外部ソース及び外部目的地は装置102の外部の目的地及びソースを意味する。
コントロールインターフェイス122は、他の方法により具現されることもあり、コントロールインターフェイス122と通信する外部回路ユニット又は機能回路ユニットにしたがう他の具現例を含む。例えば、コントロールインターフェイス122は、圧力センサー、重力センサー、MEMS(Micro Electro Mechanical System)、光(optical)回路、導波管(waveguide)、無線回路、有線回路、又はそれらの組合せと共に具現される。
ストレージ回路114は、ソフトウェア126を格納する。また、ストレージ回路114は、データ、イメージ、プログラム、音ファイル、又はそれらの組合せ等の関連情報を格納する。ストレージ回路114は、追加的なストレージ容量を提供するための大きさを有する。
ストレージ回路114は、揮発性メモリ、不揮発性メモリ、内装メモリ、外装メモリ、又はそれらの組合せである。例えば、ストレージ回路114は、NVRAM(Non−Volatile Random Access Memory)、フラッシュメモリ、ディスクストレージのような不揮発性メモリやSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、他のメモリ技術、又はそれの組合せ等の揮発性メモリである。
さらに具体的な例として、ストレージ回路114は、メモリ連結(interconnect)上にあるフラッシュ装置を利用するNVDIMM(Non−Volatile Dual In−Line Memory Module)−F、バイトアドレス可能な(byte−addressable)メモリマッピングされた(memory−mapped)装置を利用するNVDIMM−N、又はそれらの組合せを含むNVDIMMである。NVDIMM−Nメモリは、フラッシュメモリの使用を通じて永続的(persistent)になったDRAMにより構成された適応した(adapted)メモリモジュールである。NVDIMM−Fメモリは、ブロック指向(block−oriented)の大容量ストレージ装置のようなシステムコントローラにアクセス可能な追加的なフラッシュに基づく。
ストレージ回路114は、ストレージインターフェイス124を含む。ストレージインターフェイス124は、装置102内の他の機能回路ユニットとの通信のために利用される。ストレージインターフェイス124は、また装置102の外部の通信のために利用される。
ストレージインターフェイス124は、他の機能回路ユニット又は外部ソース(sources)から情報を受信するか、或いは外部の目的地又は他の機能回路ユニットに情報を送信する。外部ソース及び外部目的地は装置102外部の目的地及びソースを意味する。
ストレージインターフェイス124は、ストレージ回路114と通信する外部回路又は機能回路ユニットにしたがう他の具現例を含む。ストレージインターフェイス124は、コントロールインターフェイス122の具現例と同様の技術及びテクニックにより具現される。
例示的な目的のために、ストレージ回路114を単一要素として図示した。但し、ストレージ回路114は、ストレージ要素が分配(distribution)された形態であることも理解されるべきである。また、例示的な目的のために、コンピューティングシステム100を、単一階層のストレージシステムとしてストレージ回路114と共に図示した。但し、コンピューティングシステム100は、他の構成としてストレージ回路114を含むことは理解されるべきである。例えば、ストレージ回路114は、他の階層のキャッシング(caching)、メーンメモリ、ソリッドステートメディア(solid state media)、回転(rotating)メディア、又はオフラインストレージを含むメモリ階層システムを形成する他のストレージ技術により構成される。
通信回路116は、装置102に、また装置102から外部通信を可能にする。例えば、通信回路116は、装置102が第2番目の装置(図示せず)、周辺装置のような付着装置、通信パス、又はそれらの組合せと通信することを許容する。
また、通信回路116は、装置102が通信パス(path)の一部として機能する通信ハブ(hub)として機能する。但し、これは通信パスへのエンドポイント(end point)又はターミナルユニット(terminal unit)に制限されない。通信回路116は、通信パスと相互作用のためのマイクロエレクトロニクス(microelectronics)又はアンテナのようなアクティブ(active)及びパッシブ(passive)素子を含む。
通信回路116は、通信インターフェイス128を含む。通信インターフェイス128は、通信回路116と装置102内の他の機能回路ユニットとの間の通信のために使用される。通信インターフェイス128は、他の機能回路ユニットから情報を受信し、又は他の機能回路ユニットに情報を送信する。
通信インターフェイス128は、通信回路116とインターフェイスする機能回路ユニットにしたがう他の具現例を含む。通信インターフェイス128は、コントロールインターフェイス122、ストレージインターフェイス124、又はそれらの組合せの具現例と同様の技術及びテクニックにより具現される。
ユーザーインターフェイス118は、ユーザー(図示せず)が装置102とインターフェイスし、相互作用するようにする。ユーザーインターフェイス118は、入力装置、出力装置、又はそれらの組合せを含む。ユーザーインターフェイス118の入力装置の例は、データ及び通信入力を提供するためのキーパッド(key pad)、タッチパッド(touch pad)、ソフトキー(soft−keys)、キーボード(key board)、マイクロフォン(microphone)、遠隔信号を受信するための赤外線センサー、他の入力装置、又はそれらの何らかの組合せも含む。
ユーザーインターフェイス118は、ディスプレイインターフェイス130を含む。ディスプレイインターフェイス130は、ディスプレイ、プロジェクター(projector)、ビデオスクリーン、スピーカー、又はそれらの組合せも含む。
コントロール回路112は、コンピューティングシステム100によって生成された情報をディスプレイするためにユーザーインターフェイス118を駆動する。また、コントロール回路112は、コンピューティングシステム100の他の機能のためにソフトウェア126を実行する。さらに、コントロール回路112は、通信回路116を通じて通信パスと相互作用するためのソフトウェア126を実行する。
また、装置102は、複数の装置の実施形態のコンピューティングシステム100の実施形態を具現するために最適化される。装置102は、付加的であるか、或いはより高性能の処理能力を提供する。
例示的な目的のために、装置102は、ユーザーインターフェイス118、ストレージ回路114、コントロール回路112、及び通信回路116に分割されたものとして図示した。但し、装置102は、これに制限されず、多様に分割されることは理解されるべきである。例えば、ソフトウェア126は、異なる方式に分割でき、少なくとも一部の機能がコントロール回路112及び通信回路116内にあり得る。また、装置102は、明確性のために図示しなかった他の機能回路ユニットを含むことができる。
装置102内の機能回路ユニットは、他の機能回路ユニットと独立的であり、個別的に動作できる。例示的な目的のために、コンピューティングシステム100を装置102の動作によって記述した。但し、これに制限されず、装置102は、コンピューティングシステム100の何らかのプロセス及び機能も動作させることは容易に理解される。
本出願のプロセスは、ハードウェアの具現、すなわちハードウェア回路構成、又はコントロール回路112内のハードウェアのアクセル(accelerators)加速器によってもよい。プロセスは、またコントロール回路112の外部であるが、装置102の内部において具現される。
本出願のプロセスは、ソフトウェア126の一部であってもよい。このようなプロセスは、またストレージ回路114内に格納される。コントロール回路112は、コンピューティングシステム100を駆動するためのこのようなプロセスを実行する。
図2はコンピューティングシステムの構造ダイヤグラムを例示的に示すブロック図である。構造ダイヤグラムは、図1のストレージ回路114、図1のコントロール回路112、1つ以上のインターフェイス、又はコンピューティングシステム100におけるそれらの組合せを示す。
以下の詳細な説明においては、構造ダイヤグラムにより例示するように、コンピューティングシステム100は、ストレージ回路114においてNVDIMM−F及びNVDIMM−Nを具現又は有効化する。例えば、コンピューティングシステム100は、ソフトウェア定義されたNVDIMM−P構造がNVDIMM−Nに対するフラッシュメモリの使用を通じて永続的(persistent)になったDRAMを含む適応した(adapted)メモリモジュールを具現又は有効化する。更に、このような具現は、NVDIMM−Fに対するブロック指向(block−oriented)の大容量ストレージ装置としてシステムコントローラにアクセス可能な追加的なフラッシュと共に具現される。
NVDIMM−Nは一般的に、永続的機能のために必要なシステムアクセス可能なフラッシュメモリ無しに具現される。コンピューティングシステム100は、追加的なフラッシュ機能を提供し、NVDIMM−F及びNVDIMM−N特性の全てを効果的に提供するためにソフトウェア定義されたNVDIMM−P構造をさらに使用する。コンピューティングシステム100は、ソフトウェア定義されたNVDIMM−P構造と共に、DRAM及びフラッシュを使用するような既存メモリ技術を利用して永続的メモリ(PM、Persistent Memory)モード202及びブロックモード204の全てを支援するソフトウェア定義されたNVDIMM−P構造を使用する。
PMモード202は、格納されたデータを生成するか、或いは最後に変形したプロセスの終了の後に格納されたデータに持続的なアクセスを提供するための(コンピューティングシステム100、ストレージ回路114、それらの一部、或いはそれらの組合せのための)ハードウェア構成要素又は構成、動作方法、又はそれらの組合せである。PMモード202は、NVDIMM−Nと関連される。PMモード202は、メモリ命令又はメモリAPI(Application Program Interface)を利用してコンピューティングシステム100が持続的に格納されたデータにアクセスするようにする。
PMモード202は、ストレージ回路114又はその一部が一般動作モードの間にDDR4メモリとして機能するようにする。コンピューティングシステム100は、パワーロス(power loss)動作又はパワーアップ(power up)動作の間にDRAMとフラッシュとの間のデータ移動のために‘‘SAVE’’又は‘‘STORE’’機能を使用する。
PMモード202は、プロセスのフォールト(fault)区域の外側に存在するプログラム状態(state)を強調した永続性の概念に密接に連結される。プロセスは、フォールト(fault)区域を生成してデータへのメモリ類似(memory like)アクセスを提供するように作る。PMモード202は、フラッシュメモリの使用を通じて永続的になるように作られたDRAMを含む。PMモード202には上記アクセス可能な追加的なフラッシュメモリが無いことがあり得る。
ブロックモード204は、ブロック指向の大容量ストレージ装置を提供するためのハードウェア構成要素又は構成、動作方法、又はそれらの組合せである。ブロックモード204は、ブロック指向の大容量ストレージ装置を提供するためのDRAM、フラッシュメモリ、それらの組合せを使用する。ブロックモード204は、NVDIMM−Fと関連される。
コンピューティングシステム100は、ブロックモード204に対するノーマル(normal)動作の間にドライバーからDRAMへのデータ移動、そしてDRAMからフラッシュへのデータ移動をスケジュールするためにコントロール回路又はSOC(System On Chip)を利用する。コンピューティングシステム100は、パワーロス(power loss)動作又はパワーアップ(power up)動作の間にDRAMとフラッシュとの間のデータ移動のために‘‘SAVE’’又は‘‘STORE’’機能を使用する。
ソフトウェア定義されたNVDIMM−P構造のためのコンピューティングシステム100の構造は、コントローラコンポーネント206、ストレージコンポーネント208、又はそれらの組合せを含む。コントローラコンポーネント206は、ソフトウェア定義されたNVDIMM−P構造を具現するために構成又は動作を制御するように構成される。
コントローラコンポーネント206は、プロセス、メカニズム(mechanism)、方法、又はそれらの組合せとして具現される。コントローラコンポーネント206は、図1のソフトウェア126の一部であるか、それに含まれるか、それを実行するか、それを具現するか、又はそれらの組合せである。コントローラコンポーネント206は、追加的にコントロール回路112、ストレージ回路114、1つ以上のインターフェイス、それらの一部、又はそれらの組合せと共に具現される。例えば、コントローラコンポーネント206は、スマートメモリドライバー214と共にMMU(Memory Management Unit)210、PMFS(Persistent Memory File System)212、又はそれらの組合せを含む。
MMU210は、仮想メモリアドレスと物理アドレスとの間の変換のような多様なアドレスを変換するための回路を含む。MMU210は、ハードウェアであってもよい。MMU210は、例えばCPU又は個別集積回路、ストレージ回路114、又はそれらの組合せ等のためのコントロール回路112の一部であってもよい。
PMFS212は、永続的メモリのためのファイルシステムを含む。CPUロード(load)命令、格納命令、又はそれらの組合せ等に対してファイルシステムは、コントロール回路112を通じて直接アクセス可能な永続的メモリへのアクセスを提供するのに効率的であり、軽いように最適化される。
スマートメモリドライバー214は、コンピューティングシステム100がストレージ回路114、ストレージコンポーネント208、それらの一部、又はそれらの組合せと通信が可能にするためのプロセス、メカニズム、方法、又はそれらの組合せである。スマートメモリドライバー214は、ソフトウェア定義されたNVDIMM−P構造を具現するためにストレージコンポーネント208を具体的に制御し、構成する。
スマートメモリドライバー214は、ソフトウェアであってもよい。例えば、スマートメモリドライバー214は、ソフトウェア126と類似であるか、或いはソフトウェア126に含まれる。スマートメモリドライバー214は、コントロール回路112、ストレージ回路114、1つ以上のインターフェイス、又はそれらの組合せによって有効化されるか、或いは具現される。
スマートメモリドライバー214は、ストレージコンポーネント208の内部又はそのセグメント(segment)のための1つ以上の領域を定義するか、或いは構成する。スマートメモリドライバー214は、動的にユーザー又はアプリケーション要求にしたがってストレージコンポーネント208を定義するか、或いは構成する。スマートメモリドライバー214は、ストレージコンポーネント208がNVDIMM−F、NVDIMM−N、NMNVDIMM−P、又はそれらの組合せとして機能するように構成する。スマートメモリドライバー214は、永続的ソフトウェア体系(framework)を提供する。追加的に、スマートメモリドライバー214は、他の以前のNVDIMM−N専用装置又は他の以前のNVDIMM−F専用装置に該当するハードウェアドライバーを代替する。
ストレージコンポーネント208は、データに対するアクセスを提供し、格納するように構成される装置、回路、それらの一部、それらに関連したプロセス又は方法、又はそれらの組合せである。ストレージコンポーネント208は、PMモード202、ブロックモード204、又はそれらの組合せを提供するか、或いは支援するように動的に構成される。ストレージコンポーネント208は、該当構成に基づいてNVDIMM−N、NVDIMM−F、又はそれらの組合せをエミュレート(emulate)する。
ストレージコンポーネント208は、ハードウェアメモリを含む。ストレージコンポーネント208は、ストレージ回路114内の一部又はセグメントである。例えば、ストレージコンポーネント208は、NVDIMMを含む。また、例えば、ストレージコンポーネント208は、DRAM、フラッシュメモリ装置、それと関連した他の回路又はバッファ、又はそれらの組合せを含む。さらに具体的な例として、ストレージコンポーネント208は、ブロック指向の大容量情報ストレージと共に情報の永続的(persistent)ストレージを可能にするためにMDB(Memory Data Buffer)216、管理回路218、揮発性メモリ装置220、不揮発性メモリ装置222、パワーストレージ装置224、又はそれらの組合せを含む。
MDB216は、揮発性メモリ装置220に連結され、メモリバスを通じてコントローラコンポーネント206に連結され、そして管理回路218に連結される。MDB216は、不揮発性メモリ装置222に連結されるか、或いは管理回路218を通じて不揮発性メモリ装置222に間接的に連結される。MDB216は、揮発性メモリ装置220、不揮発性メモリ装置222、又はそれらの組合せとコントローラコンポーネント206との間に位置する。
管理回路218は、不揮発性メモリ装置222、MDB216、揮発性メモリ装置220と連結されるか、メモリバスを通じてコントローラコンポーネント206と連結されるか、又はそれらの組合せと連結される。MDB216を利用するか、或いはMDB216を通じて、管理回路218は、追加的に揮発性メモリ装置220と間接的に連結される。管理回路218は、アクセス可能な情報を格納するように指定されたストレージコンポーネント208のセグメントとコントローラコンポーネント206との間にある。例えば、アクセス可能な情報を格納するように指定されたストレージコンポーネント208は、MDB216、不揮発性メモリ装置222、揮発性メモリ装置220、又はそれらの組合せを含む。
コントローラコンポーネント206及びストレージコンポーネント208は、メモリバスを通じて連結(connect)されるか、或いは結合(couple)される。メモリバスは、図1のコントロールインターフェイス122、図1のストレージインターフェイス124、それらの一部、又はそれらの組合せである。メモリバスは、回路又はその中の構成要素の間のデータを交換するための電気的連結を含む。
メモリバスは、1つ以上のデータパス226、1つ以上のコントロールパス228、それらの一部、それらの組合せを含む。1つ以上のデータパス226は、プロセスによって探知(seek)されるか、或いは目標になったデータ又は内容情報を交換するように構成された1つ以上の電気的連結を含む。例えば、データ又は内容情報は、読出し又は書込み動作のために目標になるか、或いは処理された情報を含む。1つ以上のデータパス226は、PMモード202等に対する実線の矢印、ブロックモード204等に対する粗い点線、又はそれらの組合せとして図2に図示した。
1つ以上のコントロールパス228は、プロセスを具現するためのコマンド又は状態信号のようなコントロール信号、読出し又は書込み動作を具現するコントロール又は状態信号のようなコントロール信号を交換するように構成された1つ以上の電気的連結を含む。1つ以上のコントロールパス228は、図2において微細点線(finely−dotted line)として図示した。
図2において例示したように、1つ以上のデータパス226のすべては、ストレージコンポーネント208のためにMDB216に連結される。コンピューティングシステム100は、コントローラコンポーネント206から揮発性メモリ装置220への直接アクセスが不在か、或いはできなく、又は不揮発性メモリ装置222への直接アクセスができない、又はそれらの組合された形態である。
パワーストレージ装置224は、データの永続的アクセスを可能にするためのエネルギーソースを含む。パワーストレージ装置224は、ストレージコンポーネント208にエネルギーを提供するためのバッテリー又は蓄電器を含む。
不揮発性メモリ装置222は、ブロック内のメモリを処理するために不揮発性メモリを提供するための装置又は回路を含む。不揮発性メモリ装置222は、ブロックの単位又はページの単位により書き込むか、或いは読み出す方式により使用される。不揮発性メモリ装置222は、NAND又はNORタイプの構成要素を利用する。不揮発性メモリ装置222は、PMモード202、ブロックモード204、又はそれらの組合せに対する永続的ストレージを提供する。
揮発性メモリ装置220は、装置の電源が入っている間にそのデータを維持する1つ以上のストレージ回路を含む。揮発性メモリ装置220は、装置又は回路上のストレージ位置又は該当データの物理的ストレージ位置によって影響を受けないが、データに対して速やかであるか、或いは一貫性ある(consistent)アクセスを提供するための装置又は回路を含む。例えば、揮発性メモリ装置220は、DRAMとして具現される。さらに具体的な例として、揮発性メモリ装置220は、NVDIMM−N等のためにパワーロス(power loss)動作の間にデータ持続性を提供するためにパワーストレージ装置224を使用するDDR4 DRAMを含む。
揮発性メモリ装置220は、PMモード202、ブロックモード204、又はそれらの組合せを支援するために動的に構成される。揮発性メモリ装置220は、PM(Persistent Memory)部分230、HWC(Hardware Cache)部分232、BW(Block Window)部分234、又はそれらの組合せを含むように動的に構成される。
PM部分230、HWC部分232、及びBW部分234は、各々データへのアクセスを提供し、格納し、削除するように構成された揮発性メモリ装置220内の部分又はセグメントである。PM部分230、HWC部分232、及びBW部分234は、バンク(bank)レベルの細分化(granularity)に基づく。
PM部分230は、データを処理するか、或いは生成するプロセスが終了した後にPM部分230内のデータに対するアクセスを持続的に提供するためにPMモード202を具現するように構成された揮発性メモリ装置220の一部である。PM部分230は、ストレージコンポーネント208のためのNVDIMM−F特性を容易にする。
HWC部分232は、不揮発性メモリ装置222を支援するために管理回路218によって構成された揮発性メモリ装置220の一部である。HWC部分232は、不揮発性メモリ装置222のハードウェアキャッシュとして動作する。
BW部分234は、不揮発性メモリ装置222に対するインターフェイスを提供するように構成された揮発性メモリ装置220の一部である。BW部分234は、不揮発性メモリ装置222に該当するメモリのブロックにアクセスするのに使用されるブロックウインドー(block window)インターフェイスのように動作する。
揮発性メモリ装置220は、工場又は製造会社設定によってハードウェア内に事前に設定されるか、或いは事前に決定された構成の代わりにソフトウェアを利用して動的に決定される構成にしたがうPM部分230、HWC部分232、BW部分234、又はそれらの組合せを含む。例えば、動的な構成は、PM部分230、HWC部分232、BW部分234、又はそれらの組合せのための存在可否、物理的大きさ、物理的位置、又はそれらの組合せを決定する。
また、例えば、PM部分230、HWC部分232、BW部分234、又はそれらの組合せは、バンクレベルの細分化(granularity)のために揮発性メモリ装置220の1つ以上のバンクを含む。動的構成に対する細部事項は以下において詳細に説明する。
MDB216は、PMモード202、ブロックモード204、又はそれらの組合せを提供するか、或いは具現しながら、一時的にデータを格納するように構成される。MDB216は、メモリバス、揮発性メモリ装置220、管理回路218、不揮発性メモリ装置222、又はそれらの組合せの間にデータを一時的に格納するのに使用される物理的メモリストレージを含む。MDB216は、揮発性メモリ装置220、不揮発性メモリ装置222、コントローラコンポーネント206、又はそれらの組合せの間のデータ交換を管理するように構成される。また、MDB216は、管理回路218、コントローラコンポーネント206、又はそれらの組合せに対するコントロール信号又はコントロール機能を管理するように構成される。
管理回路218は、ストレージ又はその中の情報に対するアクセス機能を遂行するために揮発性メモリ装置220、不揮発性メモリ装置222、又はそれらの組合せを制御するように構成される。管理回路218は、SOC(System On Chip)として具現される。管理回路218は、コントローラコンポーネント206からのコマンド又は命令(例えば、書込み又は読出し)にしたがって揮発性メモリ装置220及び/又は不揮発性メモリ装置222を制御する。
例えば、管理回路218は、揮発性メモリ装置220に対するDDR4 RCD(Registered Clock Driver)機能を制御するか、或いは提供する。また、例えば、管理回路218は、不揮発性メモリ装置222に対するフラッシュコントローラである。また、例えば、以下において説明するソフトウェア制御の所有状態(software controlled ownership state)等を利用して、管理回路218は、揮発性メモリ装置220と不揮発性メモリ装置222との間のデータ移動又はそのスケジューリング(scheduling)を制御するか、或いは具現する。また、例えば、管理回路218は、上述した例の組合せや他の方法又はプロセスを利用して制御する。
管理回路218は、スマートデータ及びコントロール順序と共にPMモード202、ブロックモード204、又はそれらの組合せを支援する。例えば、管理回路218は、ストレージコンポーネント208がノーマル動作の間にDDR4メモリとして又はPMモード202のNVDIMIM−Nとして動作するように制御する。パワーロス(power loss)状態又はパワーアップ(power up)状態に対して、管理回路218は、揮発性メモリ装置220と不揮発性メモリ装置222との間のデータ移動のために‘‘SAVE’’又は‘‘STORE’’機能を使用する。
また、例えば、管理回路218は、スマートメモリドライバー214から揮発性メモリ装置220へのデータ移動、そしてノーマル動作の中においてブロックモード204に対する揮発性メモリ装置220から不揮発性メモリ装置222へのデータ移動をスケジューリング(scheduling)する。揮発性メモリ装置220において、データ移動は、BW部分234からHWC部分232への移動と以後の不揮発性メモリ装置222への移動とを含む。データ移動は、揮発性メモリ装置220のバンクレベルの細分化(granularity)に基づく。追加的に、管理回路218は、パワーロス(power loss)状態又はパワーアップ(power up)状態に対して揮発性メモリ装置220と不揮発性メモリ装置222との間のデータ移動のために‘‘SAVE’’又は‘‘STORE’’機能を使用する。
また、例えば、管理回路218は、揮発性メモリ装置220に対するタイミング問題又はDRAMタイミング問題を解決する。ここで、コントローラコンポーネント206に対するMMU210及び管理回路218は、他のDRAMタイミングパラメーター(parameter)を観察する。タイミング問題に関する細部事項は以下に説明する。また、例えば、管理回路218は、上述した例のプロセッサ又は方法の組合せや他の方法又はプロセスを利用してPMモード202、ブロックモード204、又はそれらの組合せを支援する。
コンピューティングシステム100は、バンク所有レジスター236をさらに含む。バンク所有レジスター236は、PMモード202、ブロックモード204、又はそれらの組合せを支援するための状態又は制御メカニズムや回路である。バンク所有レジスター236は、NVDIMMのようにストレージ回路114に含まれるか、或いはストレージ回路114上にある。バンク所有レジスター236は、コントローラコンポーネント206、MMU210、又はそれらの組合せによって設定される。
バンク所有レジスター236は、コンピューティングシステム100において1つ以上の回路、構成要素、装置、ソフトウェア、又はそれらの組合せ等のプロセス又はデータ所有を示すための回路又はメカニズムを含む。バンク所有レジスター236は、揮発性メモリ装置220に格納されたデータに対する制御をコントローラコンポーネント206又はストレージコンポーネント208に提供するために使用される。
例えば、バンク所有レジスター236は、コントローラ所有状態238、管理所有状態240、又はそれらの組合せを制御するか、或いは指し示す。コントローラ所有状態238は、揮発性メモリ装置220の1つ以上のターゲット(target)バンクを有するソフトウェア、スマートメモリドライバー214、MMU210、又はそれらの組合せに対する制御の構成又はメモリの管理である。管理所有状態240は、揮発性メモリ装置220の1つ以上のターゲット(target)バンクを有するMMU210に対する制御の構成又はメモリの管理である。所有状態に対する詳細説明は以下において説明する。
コンピューティングシステム100は、マルチプレクサー(MUX、multiplexer)248の代わりに又はマルチプレクサー248無しに揮発性メモリ装置220へのアクセスを提供するためにMDB216、管理回路218、又はそれらの組合せを使用するように構成されるストレージコンポーネント208を含む。ストレージコンポーネント208は、他の形態の装置において使用されるマルチプレクサー248を通じてのDRAMに対する何らかの直接的なアクセス無しに、アクセスを提供するためにMDB216、管理回路218、又はそれらの組合せを使用する。
マルチプレクサー248は、複数の入力信号の中の1つを選択し、選択した信号を出力するように構成された装置を含む。マルチプレクサー248は、1つの信号の選択、1つのパス(path)の選択、可能な決定又は選択のセットからの1つのアクセスの選択を提供するように利用される。
コンピューティングシステム100は、動的にストレージコンポーネント208を構成し、又はPMモード202やブロックモード204又は両方を可能であるようにするか、或いは支援し、又はこれにしたがってメモリ動作を管理するか、或いは具現し、又はそれらの組合せを遂行するために上述した機能回路又はブロックを使用する。コンピューティングシステム100は、ユーザー、アプリケーション、又はそれらの組合せによって永続的情報ストレージを可能であるようにする揮発性メモリ装置220を動的に構成するためのスマートメモリドライバー214を具現するように追加的に構成されるコントローラコンポーネント206を含む。
コントローラコンポーネント206は、揮発性メモリ装置220がPM部分230、HWC部分232、BW部分234、又はそれらの組合せを含むように動的に構成する。スマートメモリドライバー214と共に、コントローラコンポーネント206は、動的構成のために部分の位置244、部分の大きさ246、又はそれらの組合せを含むメモリ構成プロフィール242を生成する。
メモリ構成プロフィール242は、揮発性メモリ装置220の1つ以上の部分に対する詳細内容に対する説明である。メモリ構成プロフィール242は、PM部分230、HWC部分232、BW部分234、又はそれらの組合せのような1つ以上の部分の大きさ又は容量、物理的位置、又はそれらの組合せを制御するか、或いは記述する。
部分の位置244は、PM部分230、HWC部分232、BW部分234、又はそれらの組合せのような該当部分に対する揮発性メモリ装置220上の物理的位置に対する記述である。部分の大きさ246は、該当部分の大きさ又は容量である。
コントローラコンポーネント206は、メモリ要求事項250にしたがうメモリ構成プロフィール242を生成する。メモリ要求事項250は、ユーザーのユーザー特性252、アプリケーション又はソフトウェアのアプリケーション特性254、又はそれらの組合せを含む。メモリ要求事項250は、ストレージコンポーネント208を使用して情報にアクセスするか、或いは格納するための要求又は必要を示す。メモリ要求事項250は、ユーザー特性252、アプリケーション特性254、又はそれらの組合せに基づいて決定される。
ユーザー特性252は、コンピューティングシステム100を使用するユーザーと関連した特性又はパターンを含む。ユーザー特性252は、使用パターン、ユーザーからの選好度又は設定、ユーザーの選好度又は設定、それらの表現、それらの組合せを含む。
コンピューティングシステム100は、多様な方法によりユーザー特性252を決定する。例えば、コンピューティングシステム100は、ユーザーに対応するアクセス情報又は使用を記録することによってユーザー特性252を決定するようにスマートメモリドライバー214又はソフトウェア126を使用する。
又は、例えば、コンピューティングシステム100は、何らかの選好度又は設定情報であっても決定するためにユーザーインターフェイスを通じてユーザーと相互作用する。又は、例えば、コンピューティングシステム100は、パターン認識メカニズム、機械学習(machine−learning)メカニズム、又はそれらの組合せに基づいてユーザー特性252を決定する。又は、例えば、コンピューティングシステム100は、上述した方法又はプロセスの組合又は他のプロセスや方法を利用してユーザー特性252を決定する。
アプリケーション特性254は、コンピューティングシステム100に格納されるか、或いは活性化されたユーザーアプリケーション又はソフトウェアパッケージを含む。アプリケーション特性254は、ユーザーアプリケーション又はソフトウェアパッケージを除外すれば、ユーザー特性252と類似である。アプリケーション特性254は、1つ以上のソフトウェア126のインスタンス(instance)、その部分、又はそれらの組合せを記述するか、或いは示す。例えば、アプリケーション特性254は、ユーザーアプリケーション又はソフトウェアパッケージに対する大きさ、性能、ランタイム(runtime)要求事項や要求、又はそれらの組合せに基づく。
コンピューティングシステム100は、多様な方法によりアプリケーション特性254を決定する。例えば、コンピューティングシステム100は、スマートメモリドライバー214又はソフトウェア126を利用する。これはユーザーアプリケーション又はソフトウェアパッケージ自体、そのメタデータ、又はそれらの組合せを分析してアプリケーション特性254を決定する。また、例えば、コンピューティングシステム100は、ユーザーアプリケーション又はそれに格納されるか、或いは活性化するようになったソフトウェアパッケージのソフトウェア、その提供者又は分配者(distributer)からの情報又は説明に対するアクセスに基づいてアプリケーション特性254を決定する。
コンピューティングシステム100は、動的にコンピューティングシステム100の持続的な使用量に基づいてメモリ要求事項250を決定する。追加的に、コンピューティングシステム100は、動的にコンピューティングシステム100上の(又は実時間にアクセスされる)ユーザーアプリケーション又はソフトウェアパッケージに関連した現在状態又は構成に基づいてメモリ要求事項250を決定する。
コンピューティングシステム100は、追加的にメモリ要求事項250に基づいてメモリ構成プロフィール242を生成する。例えば、コンピューティングシステム100は、ランタイムの間にメモリ構成プロフィール242を生成する。この場合、例えば、コンピューティングシステム100は、アプリケーションの開始(initiation)又は実行に基づくか、或いは使用量に基づく。また、例えば、コンピューティングシステム100は、シャットダウン(shutdown)又はリセットの一部としてのスタートアップ(start−up)又は開始(initiation)の場合、又はそれらの組合せである場合に、メモリ構成プロフィール242を生成する。
また、例えば、コンピューティングシステム100は、ソフトウェア内に具現されたスマートメモリドライバー214を利用してメモリ構成プロフィール242を生成する。ブロックモード204、PMモード202、又はそれらの組合せを支援する1つ以上の部分に割当された揮発性メモリ装置220内に大きさ、位置、優先順位、又はそれらの組合せを特定するか、或いは割当することによって、コンピューティングシステム100は、メモリ構成プロフィール242を生成する。
コンピューティングシステム100は、揮発性メモリ装置220内にPM部分230、HWC部分232、BW部分234、又はそれらの組合せを設定するか、或いは指定するためにメモリ構成プロフィール242を生成する。コンピューティングシステム100は、PM部分230、HWC部分232、BW部分234、又はそれらの組合せに対応する部分の位置244、部分の大きさ246、又はそれらの組合せを含むメモリ構成プロフィール242を生成する。
例えば、コントローラコンポーネント206は、BW部分234、HWC部分232、又はそれらの組合せを増加させることができる。これは不揮発性メモリ装置222、ブロックモード204、NVDIMM−F特徴又は機能、又はそれらの組合せの具現又は使用量を増加させるか、或いは有効化するためである。又は、例えば、コントローラコンポーネント206は、揮発性メモリ装置220、PMモード202、NVDIMM−N特徴又は機能、又はそれらの組合せの具現又は使用量を増加させるか、或いは有効化するためにPM部分230を増加させる。
さらに具体的な例として、揮発性メモリ装置220内のBW部分234、HWC部分232、PM部分230、又はそれらの組合せを構成するか設定するための大きさ又は容量、物理的位置、又はそれらの組合せを制御するために、コントローラコンポーネント206は、メモリ構成プロフィール242を生成する。メモリ要求事項250にしたがって、コントローラコンポーネント206は、BW部分234、HWC部分232、PM部分230、又はそれらの組合せとして揮発性メモリ装置220の1つ以上のバンクの具体的な例(instance)を説明するか、或いは指定するメモリ構成プロフィール242を生成する。
コンピューティングシステム100は、追加的にメモリ構成プロフィール242にアクセスするか、アップデートするか、調整するか、又は上述したような組合せを遂行する。コントローラコンポーネント206、スマートメモリドライバー214、管理回路218、ストレージコンポーネント208、コントロール回路112、ストレージ回路114、それらの組合せを利用して、コンピューティングシステム100は、メモリ要求事項250、メモリ構成プロフィール242、又はそれらの組合せを処理する。
PMモード202、ブロックモード204、又はそれらの組合せを具現するか、或いは活性化するために、コントローラコンポーネント206、管理回路218、又はそれらの組合せは、動的にメモリ構成プロフィール242を具現するか、或いは揮発性メモリ装置220を構成する。メモリ構成プロフィール242にしたがってBW部分234、HWC部分232、PM部分230、又はそれらの組合せを設定するか、或いは指定することによって、揮発性メモリ装置220は、動的に構成される。
揮発性メモリ装置220は、BW部分234、HWC部分232、PM部分230、又はそれらの組合せ等に該当するか、制御するか、説明する部分の位置244、部分の大きさ246、又はそれらの組合せによって動的に構成される。揮発性メモリ装置220に部分の位置244、部分の大きさ246、又はそれに対応するそれらの組合せによってPM部分230、HWC部分232、BW部分234、又はそれらの組合せを定義することによって、揮発性メモリ装置220は、追加的にメモリ構成プロフィール242に基づいて構成される。揮発性メモリ装置220は、部分の位置244、部分の大きさ246、又はそれらの組合せにしたがうバンクの1つ以上の具体的な例示を上述したことに対応するBW部分234、HWC部分232、又はPM部分230として指定することに基づいて構成される。
揮発性メモリ装置220は、PMモード202、ブロックモード204、又はそれらの組合せにしたがう不揮発性メモリ装置222と共に情報を格納するためのハードウェアメモリである。揮発性メモリ装置220は、メモリ要求事項250にしたがって揮発性メモリ装置220内のPM部分230、HWC部分232、及びBW部分234に対するバランシング(balancing)に基づいて構成される。コンピューティングシステム100に対する必要、要求事項、その推定値、又はそれらの組合せによってPM部分230、HWC部分232、BW部分234、又はそれらの組合せに対する位置又は大きさを変更することによって、揮発性メモリ装置220は、バランス(balance)を取る。
さらに具体的な例として、揮発性メモリ装置220は、BW部分234を含むように構成される。BW部分234は、動的に構成される。BW部分234は、コントローラコンポーネント206から不揮発性メモリ装置222への間接的なアクセスを提供する。BW部分234は、揮発性メモリ装置220の直接的なアクセスを通じて不揮発性メモリ装置222への間接的なアクセスを提供する。
また、さらに具体的な一例として、揮発性メモリ装置220は、増加した数のバンクを割当することにしたがってバランシング(balancing)されるか、又はPMモード202を収容するためにPM部分230に対するプロセッサ又はバスの近くにあるバンクを割当する。追加的に、揮発性メモリ装置220を構成するか、或いは制御するためのメモリ構成プロフィール242は、同様にPM部分230に対する依存性又は効率性を増加させる。これは容量要求事項に比べてメモリ又はデータの急な(immediate)アクセスに対する比重が大きい依存性に関連したメモリ要求事項250に基づいてバランシング(balancing)を取るためである。
また、さらに具体的な例として、ブロックモード204を収容するためのBW部分234、HWC部分232、又はそれらの組合せに対する割当されたバンクの数又は位置に対する依存性又は効率を同様に増加するか、或いは減少させることによって、メモリ構成プロフィール242は、追加的にバランシング(balancing)を取る。追加的に、メモリ構成プロフィール242は、アクセススピードに比べて容量に対する比重が大きい依存性に関連したメモリ要求事項250に基づいてBW部分234、HWC部分232、又はそれらの組合せに対する依存性又は効率を増加させる。
追加的に、コントローラコンポーネント206は、コンピューティングシステム100のランタイム又は動作の間にストレージ内の情報のアクセス又はストレージを制御するためにスマートメモリドライバー214を使用する。コントローラコンポーネント206は、バンク所有レジスター236を設定する。これは揮発性メモリ装置220に格納されたデータに対する制御をコントローラコンポーネント206又はストレージコンポーネント208に提供するためである。
コントローラコンポーネント206は、コントローラ所有状態238又は管理所有状態240を設定するためにバンク所有レジスター236を設定する。揮発性メモリ装置220のバンクに格納された情報を制御するために、コントローラコンポーネント206は、追加的にコントローラ所有状態238又は管理所有状態240にしたがってバンク所有レジスター236を設定する。
特定コピーモード又は移動モードと共に又はこれを具現するために、コントローラコンポーネント206は、コントローラ所有状態238と管理所有状態240を使用する。例えば、ソフトウェア、MMU210、スマートメモリドライバー214、又はそれらの組合せからデータ又は情報を移動させるために、コントローラコンポーネント206は、‘‘MemcopyA’’のようなデータ移動モードを使用する。BW機能に対するソフトウェア、MMU210、スマートメモリドライバー214、又はそれらの組合せのインターフェイスを使用して、‘‘MemcopyA’’モードはデータ又は情報をBW部分234へ移動させる。
また、例えば、管理回路218又はSOCを通るか、或いはこれを利用してBW部分234からデータ又は情報を不揮発性メモリ装置222に移動させるために、コントローラコンポーネント206は‘‘MemcopyB’’のようなデータ移動モードを使用する。また、例えば、管理回路218又はSOCを通るか、或いはこれを利用してBW部分234からデータ又は情報をHWC部分232へ移動させるために、コントローラコンポーネント206は‘‘MemcopyB1’’のようなデータ移動モードを使用する。
また、例えば、管理回路218又はSOCを通るか、或いはこれを利用してHWC部分232からデータ又は情報を不揮発性メモリ装置222に移動させるために、コントローラコンポーネント206は‘‘MemcopyB2’’のようなデータ移動モードを使用する。揮発性メモリ装置220に対するバンク所有状態を保障するために、コンピューティングシステム100は、追加的に‘‘PCOMMIT’’命令を含むか、或いは使用する。‘‘PCOMMIT’’命令は、MMU210アウトオブオーダー(out−of−order)問題を除去する。
実施形態として、ブロックモードデータ移動のハイレベル(high−level)な流れは次の通りである。特定バンクを有するソフトウェア又はMMU210に対するコントローラ所有状態238を設定する。‘‘MemcopyA’’を具現するか、或いは有効化する。‘‘PCOMMIT’’を具現するか、或いは有効化する。特定バンクを有するSOC又は管理回路218に対する管理所有状態240を設定する。‘‘MemcopyB2’’と共に‘‘MemcopyB’’又は‘‘MemcopyB1’’を具現するか、或いは有効化する。続いて、特定バンクに対するコントローラ所有状態238を設定する。上述した例は書込みの場合に対する例である。
また、コンピューティングシステム100の動作の間に、コンピューティングシステム100は、不揮発性メモリ装置222内の情報にアクセスし、格納するためにBW部分234を使用して不揮発性メモリ装置222にアクセスする。メモリバスは、間接的な方法又はプロセッサーを通じて不揮発性メモリ装置222内のデータ又は情報の格納又はアクセスを有効化するか、或いは具現する。BW部分234は、上述したように動的に構成される。
また、コンピューティングシステム100の動作の間に、マルチプレクサー248を使用しないか、或いはマルチプレクサー248無しに不揮発性メモリ装置222、揮発性メモリ装置220、又はそれらの組合せ内の情報にアクセスし、格納するために、コンピューティングシステム100は、MDB216にアクセスする。ストレージコンポーネント208又はその中の揮発性メモリ装置220に対するデータ又は情報に対する要請又はアクセスは、DRAMに直接的にアクセスするためにマルチプレクサー248を使用しないか、或いはこれの代わりにMDB216を使用する。
揮発性メモリ装置220と共に不揮発性メモリ装置222は、NVDIMMが既存の構成要素(例えば、DRAM及びフラッシュ)と共にPMモード202とブロックモード204との全てを支援するように提供することが分かる。ここで、揮発性メモリ装置220は、ソフトウェア内に具現されたスマートメモリドライバー214にしたがってPM部分230、HWC部分232、BW部分234、又はそれらの組合せを含むように動的に構成され、管理される。性能向上、ビックデータ時代の電力節減、又はそれらの組合せのために、多様な部分に対する動的構成は、効果的にデータ持続性(persistence)をコントロール回路112(例えば、CPU)の近くに移動させることも分かる。
また、他のDRAMタイミングパラメーターを観察する管理回路218とMMU210と共にタイミング問題の解決に基づいて、管理回路218とMDB216の位置及び構成が向上した正確度を提供することも分かる。コントローラコンポーネント206と揮発性メモリ装置220との間に位置した管理回路218、不揮発性メモリ装置222、及びMDB216は、タイミングを変更するか、或いは多様なタイミングパラメーターを表示するための機能を提供する。また、コントローラコンポーネント206と揮発性メモリ装置220との間に位置したMDB216、不揮発性メモリ装置222、及び管理回路218は、タイミングを変更するか、或いは多様なタイミングパラメーターを表示するための機能を提供する。タイミング問題と関連した細部事項は以下にて説明する。
更に、ストレージコンポーネント208内のデータのアクセス及びストレージの処理のためのコントローラ所有状態238及び管理所有状態240の具現及び使用は、ストレージコンポーネント208に対する向上した有用性を提供することも分かる。コントローラ所有状態238及び管理所有状態240の使用は、従来の技術と共にNVDIMM−FとNVDIMM−Nとの両方に対する支援を可能にする。また、更に、このことは、2つの装置の特性を1つの装置又は回路ユニットに混合し、バランシングし、選択するための機能を可能であるようにする。
更に、メモリ構成プロフィール242がストレージ回路114に向上した適応性(flexibility)を提供することも分かる。メモリ構成プロフィール242は、PM部分230、HWC部分232、BW部分234、又はそれらの組合せを構成し、管理するためにメモリ要求事項250に基づいて動的に生成される。ストレージコンポーネント208とその中の揮発性メモリ装置220は、メモリ構成プロフィール242を使用してメモリ要求事項250にしたがって動的に構成され、マッチ(match)される。動的な構成は、1つのNVDIMMを使用してNVDIMM−F、NVDIMM−N、又はそれらの組合せが可能にするように使用される。
図3は、図2のストレージコンポーネントの例示的なタイミングダイヤグラムである。タイミングダイヤグラムは、図2の揮発性メモリ装置220と関連したタイミングを説明するためである。
DRAMタイミング問題を解決するために、図1のコンピューティングシステム100は、図2のスマートメモリドライバー214、図2のMDB216、図2の管理回路218、又はそれらの組合せを使用する。コンピューティングシステム100は、MMU210と管理回路218に対する多様なDRAMタイミングパラメーターを表示することによってタイミング問題を解決するために上述した構造と構成を使用する。
図3の例において示すように、揮発性メモリ装置220又はDRAMに対して‘‘tAA’=tAA−5clk’’となる。MMU210は、何らの変化無しに‘‘tAA’’を維持する。管理回路218又はSOCが特定バンクXのACT/CASを要請し、ソフトウェアホストメモリコントローラ又はスマートメモリドライバー214が他の特定バンクYのACT/CASを同時に要請する場合、ソフトウェアホストメモリコントローラからの要請は、管理回路218のリスケジューリング(rescheduling)によって‘‘5clk’’くらい遅延される。バンクXに対する第1要請は、揮発性メモリ装置220において‘‘tRCD+tAA−1clk’’により終了される。バンクYに対する第2要請は、‘‘tRCD+tAA+4clk’’により終了される。
図4は本発明の実施形態によるコンピューティングシステムの動作方法を示す順序図である。方法400は、S402、S404、S406、S408、S410、及びS412段階を含む。S402段階において、ユーザー特性、アプリケーション特性、又はそれらの組合せを示すメモリ要求事項を決定する。S404段階において、ソフトウェアにおいて具現されたスマートメモリドライバーを利用してメモリ要求事項に基づいてメモリ構成プロフィールを生成する。メモリ構成プロフィールは、PM部分、HWC部分、及びBW部分に該当する部分の位置、部分の大きさ、又はそれらの組合せを含む。
S406段階において、メモリ要求事項にしたがって揮発性メモリ装置のPM部分、HWC部分、及びBW部分をバランシング(balancing)することに基づいて揮発性メモリ装置を構成する。ここで、揮発性メモリ装置は、PMモード、ブロックモード、又はそれらの組合せによって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリである。S406段階において、追加的に、該当する部分の位置、部分の大きさ、それらの組合せによって揮発性メモリ装置内にPM部分、HWC部分、BW部分、又はそれらの組合せを定義することによって、メモリ構成プロフィールに基づいて揮発性メモリ装置を構成する。
方法400は、コンピューティングシステム100のランタイムの間に動作又はプロセスをさらに含む。S408段階において、揮発性メモリ装置のバンクに格納された情報を制御するためにコントローラ所有状態又は管理所有状態にしたがってバンク所有レジスターを設定する。
S410段階において、マルチプレクサーを使用しないか、或いはマルチプレクサーを使用する代わりに、不揮発性メモリ装置、揮発性メモリ装置、又はそれらの組合せに情報を格納し、アクセスするためにMDBにアクセスする。方法400は、S412段階において、不揮発性メモリ装置内に情報を格納し、アクセスするためにBW部分を使用して不揮発性メモリ装置にアクセスすることを含む。
方法400は、上述した1つ以上の回路、1つ以上の構成要素、1つ以上の部分、1つ以上の装置、又はそれらの組合せを利用して具現されるか、或いは有効化される。例えば、上述したように、図2のコントローラコンポーネント206、図2のストレージコンポーネント208、又はそれに含まれたものの組合せと共に、方法400は、図1のコントロール回路112、図1のストレージ回路114、又はそれらの組合せを利用して具現されるか、或いは有効化される。
さらに具体的な例として、S402、S404、又はそれらの組合せに表現された方法又はプロセスは、コントローラコンポーネント206を利用して具現されるか、或いは有効化される。また、さらに具体的な例として、S406に表現された方法又はプロセスは、図2のスマートメモリドライバー214、図2の揮発性メモリ装置220、図2の管理回路218、又はそれらの組合せを利用して具現されるか、或いは有効化される。
また、さらに具体的な例として、S408に表現された方法又はプロセスは、スマートメモリドライバー214、揮発性メモリ装置220、図2の不揮発性メモリ装置222、管理回路218、又はそれらの組合せを利用して具現されるか、或いは有効化される。また、さらに具体的な例として、S410に表現された方法又はプロセスは、コントローラコンポーネント206、揮発性メモリ装置220、不揮発性メモリ装置222、管理回路218、又はそれらの組合せを利用して具現されるか、或いは有効化される。また、さらに具体的な例として、S412に表現された方法又はプロセスは、コントローラコンポーネント206、揮発性メモリ装置220、不揮発性メモリ装置222、管理回路218、図2のMDB216、又はそれらの組合せを利用して具現されるか、或いは有効化される。
結果的に方法、プロセス、器具(apparatus)、装置、生成物、及び/又はシステムは、簡単であり、費用効率が高く、複雑ではなく、非常に多用途であり、正確であり、敏感であり、効果的である。また、これらは準備され、効果的であり、経済的に製造され、利用、応用できる公知の構成要素を適用することによって具現できる。本発明の実施形態に対する他の重要な観点は、費用節減、システムの単純化、性能向上という伝統的なトレンド(trend)を価値あるように(valuably)支援し、サービスするという点である。
本発明の実施形態のこのような観点及び他の価値ある観点は、結果的に技術の状態を少なくとも次の段階に進行させる。
本発明を具体的な最高のモードと関連して記述したが、多様な代替、修正、及び変形が前述した説明に照らして当業者に明らかである。したがって、特許請求の範囲に属するすべての代替、修正、変形を本願は含む。本明細書に明示するか、或いは添付した図面に図示したすべての構成要素は例示的なことであり、本発明を制限するためのことではない。
100 コンピューティングシステム
102 装置
112 コントロール回路
114 ストレージ回路
116 通信回路
118 ユーザーインターフェイス
122 コントロールインターフェイス
124 ストレージインターフェイス
126 ソフトウェア
128 通信インターフェイス
130 ディスプレイインターフェイス
202 PMモード
204 ブロックモード
206 コントローラコンポーネント
208 ストレージコンポーネント
210 MMU
212 PMFS
214 スマートメモリドライバー
216 MDB
218 管理回路
220 揮発性メモリ装置
222 不揮発性メモリ装置
224 パワーストレージ装置
226 1つ以上のデータパス
228 1つ以上のコントロールパス
230 PM部分
232 HWC部分
234 BW部分
236 バンク所有レジスター
238 コントローラ所有状態
240 管理所有状態
242 メモリ構成プロフィール
244 部分の位置
246 部分の大きさ
248 マルチプレクサー
250 メモリ要求事項
252 ユーザー特性
254 アプリケーション特性
400 方法

Claims (20)

  1. ブロック指向(oriented)の大容量情報ストレージと共に永続的情報ストレージを可能にするように構成された不揮発性メモリ装置及び揮発性メモリ装置を含むストレージコンポーネント(component)と、
    前記ストレージコンポーネントに連結され、スマートメモリドライバーを具現するように構成されたコントローラコンポーネントと、を含み、
    前記スマートメモリドライバーは、前記揮発性メモリ装置内のPM(Persistent Memory)部分、HWC(Hardware Cache)部分、及びBW(Block Window)部分の中の少なくとも1つを含む前記揮発性メモリ装置を動的に管理するように構成されることを特徴とするコンピューティングシステム。
  2. 前記ストレージコンポーネントは、MDB(Memory Data Buffer)をさらに含み、
    前記MDBは、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントに連結され、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントの間のデータ交換を管理するように構成されることを特徴とする請求項1に記載のコンピューティングシステム。
  3. 前記ストレージコンポーネントは、管理回路をさらに含み、
    前記管理回路は、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントに連結され、前記コントローラコンポーネントにしたがって前記揮発性メモリ装置及び前記不揮発性メモリ装置を制御するように構成されることを特徴とする請求項1に記載のコンピューティングシステム。
  4. 前記コントローラコンポーネントは、前記揮発性メモリ装置に格納されたデータに対する制御を前記コントローラコンポーネント又は前記ストレージコンポーネントに提供するためにバンク(bank)所有(ownership)レジスターを設定するように構成されることを特徴とする請求項1に記載のコンピューティングシステム。
  5. 前記コントローラコンポーネントは、メモリ構成プロフィールを決定するように構成され、
    前記メモリ構成プロフィールは、前記揮発性メモリ装置に対する前記PM(Persistent Memory)部分、前記HWC(Hardware Cache)部分、及び前記BW(Block Window)部分の中の少なくとも1つを構成するための部分の位置と部分の大きさの中の少なくとも1つを含み、
    前記ストレージコンポーネントは、前記揮発性メモリ装置を含み、
    前記揮発性メモリ装置は、対応する前記部分の位置と前記部分の大きさの中の少なくとも1つにしたがって構成される前記PM(Persistent Memory)部分、前記HWC(Hardware Cache)部分、及び前記BW(Block Window)部分の中の少なくとも1つを含むことを特徴とする請求項1に記載のコンピューティングシステム。
  6. 前記コントローラコンポーネントは、ソフトウェアにより具現された前記スマートメモリドライバーを含み、
    前記ストレージコンポーネントは、NVDIMM(Non−Volatile Dual In−Line Memory Module)であり、
    前記NVDIMMは、
    前記揮発性メモリ装置に連結され、データパス(path)を通じて前記コントローラコンポーネントに連結され、前記揮発性メモリ装置、前記不揮発性メモリ装置、及び前記コントローラコンポーネントの間のデータ交換を管理するように構成されるMDB(Memory Data Buffer)と、
    SOC(System On Chip)として具現され、前記不揮発性メモリ装置、前記MDB、及び前記コントローラコンポーネントに連結され、前記コントローラコンポーネントにしたがって前記揮発性メモリ装置と前記不揮発性メモリ装置を制御するように構成される管理回路と、
    DRAM(Dynamic Random Access Memory)として具現された前記揮発性メモリ装置を含むことを特徴とする請求項1に記載のコンピューティングシステム。
  7. 前記揮発性メモリ装置は、BW部分を含み、
    前記BW部分は、前記不揮発性メモリ装置へのアクセスを前記コントローラコンポーネントに提供するように動的に構成されることを特徴とする請求項6に記載のコンピューティングシステム。
  8. 前記MDBは、前記ストレージコンポーネントに対する前記データパスのすべてのインスタンス(instance)に連結されることを特徴とする請求項6に記載のコンピューティングシステム。
  9. 前記ストレージコンポーネントは、マルチプレクサー(multiplexer)無しに前記揮発性メモリ装置へアクセスを提供するように前記MDB及び前記管理回路の中の少なくとも1つを使用するように構成されることを特徴とする請求項6に記載のコンピューティングシステム。
  10. 前記PM部分は、プロセスが終了された後に前記PM部分に格納されたデータへのアクセスを持続的に提供するためにPM(Persistent Memory)モードを具現するように構成され、
    前記HWC部分は、前記不揮発性メモリ装置を支援するために前記管理回路によって有するように構成され、
    前記BW部分は、インターフェイスを前記不揮発性メモリ装置に提供するように構成されることを特徴とする請求項6に記載のコンピューティングシステム。
  11. ユーザー特性及びアプリケーション特性の中の少なくとも1つを示すメモリ要求事項を決定する段階と、
    前記メモリ要求事項にしたがって揮発性メモリ装置内のPM部分、HWC部分、及びBW部分をバランシング(balancing)することに基づいて前記揮発性メモリ装置を構成する段階と、を含み、
    前記揮発性メモリ装置は、PMモード及びブロックモードの中の少なくとも1つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とするコンピューティングシステムの動作方法。
  12. スマートメモリドライバーを利用して前記メモリ要求事項に基づいてメモリ構成プロフィールを生成する段階をさらに含み、
    前記メモリ構成プロフィールは、前記PM部分、前記HWC部分、及び前記BW部分に対応する部分の位置及び部分の大きさの中の少なくとも1つを含み、
    前記揮発性メモリ装置を構成する段階は、対応する前記部分の位置及び前記部分の大きさの中の少なくとも1つにしたがって前記揮発性メモリ装置内に前記PM部分、前記HWC部分、及び前記BW部分の中の少なくとも1つを定義することによって前記メモリ構成プロフィールに基づいて前記揮発性メモリ装置を構成する段階を含むことを特徴とする請求項11に記載のコンピューティングシステムの動作方法。
  13. 前記不揮発性メモリ装置に情報を格納し、アクセスするために前記BW部分を利用して前記不揮発性メモリ装置にアクセスする段階をさらに含むことを特徴とする請求項11に記載のコンピューティングシステムの動作方法。
  14. マルチプレクサーを使用しないか、或いはマルチプレクサーを使用する代わりに、前記不揮発性メモリ装置及び前記揮発性メモリ装置の中の少なくとも1つに情報を格納し、アクセスするためにMDBにアクセスする段階をさらに含むことを特徴とする請求項11に記載のコンピューティングシステムの動作方法。
  15. 前記揮発性メモリ装置のバンクに格納された情報を制御するためにコントローラ所有状態又は、管理所有状態にしたがってバンク所有レジスターを設定する段階をさらに含むことを特徴とする請求項11に記載のコンピューティングシステムの動作方法。
  16. コンピューティングシステムに対する命令を含み、コンピュータによって非一時的に(non−transitory)読み出される媒体(medium)において、
    前記命令が前記コンピュータによって実行される時、
    ユーザー特性及びアプリケーション特性の中の少なくとも1つを示すメモリ要求事項を決定する段階と、
    前記メモリ要求事項にしたがって揮発性メモリ装置内のPM部分、HWC部分、及びBW部分をバランシング(balancing)することに基づいて前記揮発性メモリ装置を構成する段階とが遂行されるようにし、
    前記揮発性メモリ装置は、PMモード及びブロックモードの中の少なくとも1つにしたがって不揮発性メモリ装置と共に情報を格納するためのハードウェアメモリであることを特徴とする媒体。
  17. スマートメモリドライバーを利用して前記メモリ要求事項に基づいてメモリ構成プロフィールを生成する段階がさらに遂行されるようにし、
    前記メモリ構成プロフィールは、前記PM部分、前記HWC部分、及び前記BW部分に対応する部分の位置及び部分の大きさの中の少なくとも1つを含み、
    前記揮発性メモリ装置を構成する段階は、対応する前記部分の位置及び前記部分の大きさの中の少なくとも1つにしたがって前記揮発性メモリ装置内に前記PM部分、前記HWC部分、及び前記BW部分の中の少なくとも1つを定義することによって前記メモリ構成プロフィールに基づいて前記揮発性メモリ装置を構成する段階を含むことを特徴とする請求項16に記載の媒体。
  18. 前記不揮発性メモリ装置に情報を格納し、アクセスするために前記BW部分を利用して前記不揮発性メモリ装置にアクセスする段階がさらに遂行されるようにすることを特徴とする請求項16に記載の媒体。
  19. マルチプレクサーを使用しないか、或いはマルチプレクサーを使用する代わりに、前記不揮発性メモリ装置及び前記揮発性メモリ装置の中の少なくとも1つに情報を格納し、アクセスするためにMDBにアクセスする段階がさらに遂行されるようにすることを特徴とする請求項16に記載の媒体。
  20. 前記揮発性メモリ装置のバンクに格納された情報を制御するためにコントローラ所有状態又は管理所有状態にしたがってバンク所有レジスターを設定する段階がさらに遂行されるようにすることを特徴とする請求項16に記載の媒体。
JP2016236056A 2016-01-22 2016-12-05 メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体 Pending JP2017130194A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662286212P 2016-01-22 2016-01-22
US62/286212 2016-01-22
US15/098,965 US20170212835A1 (en) 2016-01-22 2016-04-14 Computing system with memory management mechanism and method of operation thereof
US15/098965 2016-04-14

Publications (1)

Publication Number Publication Date
JP2017130194A true JP2017130194A (ja) 2017-07-27

Family

ID=59360840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016236056A Pending JP2017130194A (ja) 2016-01-22 2016-12-05 メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体

Country Status (5)

Country Link
US (1) US20170212835A1 (ja)
JP (1) JP2017130194A (ja)
KR (1) KR20170088268A (ja)
CN (1) CN106997276A (ja)
TW (1) TW201727473A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
US20190095299A1 (en) * 2017-09-28 2019-03-28 Cnex Labs, Inc. Storage system with machine learning mechanism and method of operation thereof
US20210141547A1 (en) * 2017-10-31 2021-05-13 HEWLETT-PACKARD DEVELOPMENT Companu, L.P. Configuration of non-volatile dual in-line memory modules
US10956323B2 (en) * 2018-05-10 2021-03-23 Intel Corporation NVDIMM emulation using a host memory buffer
US10636455B2 (en) 2018-07-12 2020-04-28 International Business Machines Corporation Enhanced NVDIMM architecture
KR20200014964A (ko) 2018-08-02 2020-02-12 삼성전자주식회사 버츄얼 메모리 영역을 제공하는 스토리지 장치, 이를 포함하는 전자 시스템 및 전자 시스템의 동작 방법
KR20200130011A (ko) 2019-05-10 2020-11-18 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
JP2022048701A (ja) * 2020-09-15 2022-03-28 富士通株式会社 プロセッサ,情報処理装置,プログラム及び情報処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9977618B2 (en) * 2013-12-27 2018-05-22 Intel Corporation Pooling of memory resources across multiple nodes
US9904586B2 (en) * 2015-10-28 2018-02-27 Intel Corporation Interfacing with block-based storage in a processor
US9460791B1 (en) * 2015-12-08 2016-10-04 Inphi Corporation Data clock synchronization in hybrid memory modules

Also Published As

Publication number Publication date
TW201727473A (zh) 2017-08-01
KR20170088268A (ko) 2017-08-01
CN106997276A (zh) 2017-08-01
US20170212835A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
JP2017130194A (ja) メモリ管理のためのコンピューティングシステム、その動作方法、及びコンピューティングシステムに対する命令を含む媒体
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
CN105144106B (zh) 集成电路存储器分配方法、装置、介质以及系统
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
US7685376B2 (en) Method to support heterogeneous memories
TWI472914B (zh) 具有可移除式非揮發性半導體記憶體模組之硬碟驅動器、硬碟總成、膝上型電腦和用於非揮發性半導體記憶體模組移除檢測之硬碟控制器積體電路
JP6069031B2 (ja) 計算機及びメモリ管理方法
JP6240745B2 (ja) 複数のハイパーバイザを実行するシステムおよび方法
JP5947302B2 (ja) 複数のメモリチャネルを有するコンピューティングシステムにおけるメモリバッファの割り当て
US20180039523A1 (en) Information processing system that determines a memory to store program data for a task carried out by a processing core
KR20150017725A (ko) 컴퓨터 시스템 및 메모리 관리의 방법
US20140129759A1 (en) Low power write journaling storage system
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
JP2008538834A5 (ja)
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
WO2014165514A1 (en) Embedded memory management scheme for real-time applications
WO2014142809A1 (en) Accelerator buffer access
KR20210011010A (ko) 가상화를 위한 프로세서 피쳐 id 응답
US10180904B2 (en) Cache memory and operation method thereof
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
CN111290701B (zh) 数据读写控制方法、装置、介质和电子设备
US20160188534A1 (en) Computing system with parallel mechanism and method of operation thereof
JP4872942B2 (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
TW201702859A (zh) 記憶體控制器