JP2018060538A - コンピューティングシステム及びその動作方法 - Google Patents

コンピューティングシステム及びその動作方法 Download PDF

Info

Publication number
JP2018060538A
JP2018060538A JP2017190020A JP2017190020A JP2018060538A JP 2018060538 A JP2018060538 A JP 2018060538A JP 2017190020 A JP2017190020 A JP 2017190020A JP 2017190020 A JP2017190020 A JP 2017190020A JP 2018060538 A JP2018060538 A JP 2018060538A
Authority
JP
Japan
Prior art keywords
memory
computing system
interface
page
central processing
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
JP2017190020A
Other languages
English (en)
Other versions
JP2018060538A5 (ja
JP6788566B2 (ja
Inventor
ティ. マラディ クリシュナ
T Malladi Krishna
ティ. マラディ クリシュナ
鍾 民 金
Jongmin Kim
鍾 民 金
宏 忠 ジェン
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
Priority claimed from US15/282,848 external-priority patent/US10372606B2/en
Priority claimed from US15/663,619 external-priority patent/US10515006B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018060538A publication Critical patent/JP2018060538A/ja
Publication of JP2018060538A5 publication Critical patent/JP2018060538A5/ja
Application granted granted Critical
Publication of JP6788566B2 publication Critical patent/JP6788566B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】メモリを効率的に増加させてデータを格納するためのコンピューティングシステム及びその動作方法を提供する。【解決手段】本発明によるコンピューティングシステムは中央処理装置と、メモリアダプター回路及び第1メモリを含むメモリシステムと、を有し、前記メモリアダプター回路は、前記中央処理装置に接続された第1メモリインターフェイスと、前記第1メモリに接続された第2メモリインターフェイスと、を含み、前記第1メモリインターフェイスは、2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであり、前記メモリアダプター回路は、前記第1メモリの格納容量の増加を用いて前記第1メモリにデータを格納し、前記第1メモリからデータを回収するよう構成される。【選択図】 図2

Description

本発明はデータ格納装置に関し、特に、メモリ増加を用いてデータを格納するためのコンピューティングシステム及びその動作方法に関する。
データベース、仮想デスクトップコンピュータインフラ(infra structure)、及びデータ分析のような一部の現代のアプリケーションは、大きなメインメモリ空間を有する可能性がある。
システムが拡張されることによって、このようなメモリ容量の要求が大きく増加している。
したがって、より大きい格納容量を提供するシステム及び方法が要求されるという問題がある。
本発明は上記従来の大きなメインメモリ空間を有する可能性があるシステムにおける問題点に鑑みてなされたものであって、本発明の目的は、メモリを効率的に増加させてデータを格納するためのコンピューティングシステム及びその動作方法を提供することにある。
上記目的を達成するためになされた本発明によるコンピューティングシステムは中央処理装置(central processing unit:CPU)と、メモリアダプター回路及び第1メモリを含むメモリシステムと、を有し、前記メモリアダプター回路は、前記中央処理装置に接続された第1メモリインターフェイスと、前記第1メモリに接続された第2メモリインターフェイスと、を含み、前記第1メモリインターフェイスは、2倍速同期式(double data rate synchronous)ダイナミックランダムアクセスメモリインターフェイスであり、前記メモリアダプター回路は、前記第1メモリの格納容量の増加を用いて前記第1メモリにデータを格納し、前記第1メモリからデータを回収するよう構成されることを特徴とする。
前記第1メモリの格納容量の増加は圧縮、重複除去、及びエラー訂正の中の少なくとも1つを含むことが好ましい。
前記第1メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記第2メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記第1メモリインターフェイスは、フラッシュメモリインターフェイスであり、前記コンピューティングシステムはブロック装置として前記メモリシステムを動作するように構成されることが好ましい。
前記中央処理装置はメモリ管理回路を通じて前記メモリアダプター回路に接続されることが好ましい。
前記第1メモリは、ダイナミックランダムアクセスメモリであり、前記第2メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路(single integrated circuit)であることが好ましい。
メモリ管理回路を通じて前記中央処理装置に接続される第2メモリをさらに有することが好ましい。
前記第2メモリは、第3メモリインターフェイスを通じて前記メモリ管理回路に接続され、前記第3メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることが好ましい。
前記中央処理装置は、前記第2メモリにページキャッシュを保持するように構成され、前記中央処理装置は、前記ページキャッシュからクリーンページを追い出す(evicting)時、前記クリーンページに対するクリーンキャッシュ機能を呼び出すよう構成され、前記クリーンキャッシュ機能は、前記クリーンページを格納するために構成され、前記クリーンページを格納するための充分な空間が前記第1メモリで利用可能する時、前記クリーンページは前記第1メモリに格納され、前記クリーンページを格納するための充分な空間が前記第1メモリで利用可能でない時は、、前記クリーンページは、持続性(persistent)格納装置に格納されることが好ましい。
前記クリーンキャッシュ機能は、推定増加比率に基づいて前記第1メモリで前記クリーンページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は設定された時間隔間の間に前記第1メモリに格納されたデータに対する増加比率の関数であることが好ましい。
前記中央処理装置は、前記第2メモリに使用者メモリ空間を保持するよう構成され、前記中央処理装置は、前記使用者メモリ空間からダーティページを追い出す(evicting)時、前記ダーティページに対するフロントスワップ機能を呼び出すよう構成され、前記フロントスワップ機能は、前記ダーティページを格納するよう構成され、前記ダーティページを格納するための充分な空間が前記第1メモリで利用可能する時、前記ダーティページは前記第1メモリに格納され、前記ダーティページを格納するための充分な空間が前記第1メモリで利用可能でない時は、前記ダーティページは、持続性格納装置に格納されることが好ましい。
前記フロントスワップ機能は、推定増加比率に基づいて前記第1メモリで前記ダーティページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は、設定された時間間隔の間に前記第1メモリに格納されたデータに対する増加比率の関数であることが好ましい。
前記中央処理装置は、1つ以上のアプリケーションを実行し、システム情報関数に対する1つ以上のアプリケーションに応答して、前記第1メモリのサイズ及び前記第2メモリのサイズに基づいたトータル有効(total available)メモリに対する値、及び前記第1メモリで使用可能なメモリの量(the amount of free memory)及び前記第2メモリで使用可能なメモリの量に基づいたトータル使用可能な(total free)メモリに対する値を返す(return)よう構成されることが好ましい。
前記トータル使用可能なメモリに対する前記値は、前記第2メモリで使用可能なメモリの量及び最小増加比率と、前記第1メモリで使用可能なメモリの量とを乗算した値を総和した値であり、前記最小増加比率は、システム開始の後に設定された間隔が経過した時、前記設定された間隔の時間の間に前記第1メモリに格納されたデータに対する増加比率の関数であり、有意義な推定の基礎となるデータが利用できない場合、「1.0」であることが好ましい。
上記目的を達成するためになされた本発明によるコンピュータシステムの動作方法は、中央処理装置と、メモリアダプター回路及び第1メモリを含むメモリシステムとを有し、前記メモリアダプター回路は前記中央処理装置に接続された第1メモリインターフェイスと前記第1メモリに接続された第2メモリインターフェイスとを含み、前記第1メモリインターフェイスは2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであるコンピュータシステムの動作方法であって、前記第1メモリの格納容量の増加を用いて前記第1メモリにデータを格納し、前記第1メモリからデータを回収する段階を有することを特徴とする。
前記第1メモリの格納容量の増加は、圧縮、重複除去、及びエラー訂正の中の少なくとも1つを含むことが好ましい。
前記メモリシステムをフラッシュメモリプロトコルで動作することができるブロック装置として使用する段階をさらに有することが好ましい。
前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路であることが好ましい。
本発明に係るコンピューティングシステム及びその動作方法によれば、圧縮及び/又は重複除去及び/又はエラー訂正によってインラインメモリ増加を配置するための効率的な擬似メモリメカニズムにより、メモリを効率的に増加させてデータを格納するためのシステムを提供することができるという効果がある。
本発明の一実施形態に係る擬似メインメモリとしてメモリABCDEを使用したシステムメモリ階層を示す図面である。 本発明の一実施形態に係るコンピューティングシステムのハードウェアブロック図である。 本発明の一部の実施形態に係るハイブリッドハードウェア−ソフトウェアブロック図である。 本発明の実施形態に係るsysinfo関数呼出に対する応答を修正するためのシステムのソフトウェアブロック図である。
次に、本発明に係るコンピューティングシステム及びその動作方法を実施するための形態の具体例を図面を参照しながら説明する。
添付した図面と関連して以下本明細書の詳細な説明は、本発明に関して提供されるコンピューティングシステム(擬似メインメモリシステム)の例示的な実施形態に対する説明であり、本発明が構成するか、或いは利用することができる単一の形態を示すものではない。
詳細な説明は、例示的な実施形態と関連して本発明の特徴に対する説明である。
しかし、本発明の思想や範囲内に含まれる他の実施形態によって同一であるか、或いは同一の機能及び構造が遂行されることを理解されるべきである。本明細書で示す同じ構成の番号は同じ要素又は特徴を示す。
本発明の実施形態において、システムは“メモリABCDE”(以下、この呼称を用いるものとする。)と呼ぶことができる圧縮及び/又は重複除去及び/又はエラー訂正によってインラインメモリ増加を配置するための効率的な擬似メモリメカニズムである。
このようなシステムは、メモリシステムに完全に局部的なハードウェア技術に依存しながら、メモリ密度を劇的に増加させることができる。
メモリABCDEシステムのための課題は、2倍速同期式ダイナミックランダムアクセスメモリ(DDR:double data rate synchronous dynamic random−access memory)バスに対する統合と、このようなシステムが提供することができる可変メモリ密度に対する管理(例えば、アプリケーションデータ又は外部条件(例えば、エラーに影響を及ぶ外部条件)に応じて変化するメモリ密度)を含む。
さらに、一部のアプリケーションは、メモリABCDEシステムによって提供される追加容量を明示的に使用するように作成されなくともよい。
本発明の実施形態において、システムは、シミュレーションされたシステムメモリ容量を提供して使用者空間アプリケーションが大容量のメモリを処理できるようにする。
本発明の実施形態において、オペレーティングシステム(OS:operating system)は、下部メモリの物理的構成及び容量を認識し、関連動作を遂行してアプリケーションからこのような細部事項をマスクする。
使用者空間下で、オペレーティングシステムのメモリ管理装置(MMU:memory management unit)(又は“メモリ管理回路”)は、リナックス(登録商標)カーネルに存在する超越メモリ(transcendent memory)機能を再使用してメモリABCDEシステムをDDRインターフェイス(例えば、第4世代DDR(DDR4)インターフェイス)に対する高速スワップブロック装置として示す。
図1は、本発明の一実施形態に係る擬似メインメモリとしてメモリABCDEを使用したシステムメモリ階層を示す図である。
メモリABCDEシステムは、ブロック装置として動作できるので、メモリABCDE“ドライブ”であると称する。
図2は、本発明の一実施形態に係るコンピューティングシステムのハードウェアブロック図である。
本発明の一実施形態において、メモリABCDEシステムを使用するコンピューティングシステムは、次の3つの構成を含み得る。
第1に、コンピューティングシステムは、フラッシュメモリ(NVDIMM−F)フォームファクタ及びインターフェイス(例えば、図2で、メモリABCDEシステム240とメモリ管理回路220との間のインターフェイス)を具備する不揮発性デュアルインラインメモリモジュール(NVDIMM)に基づいたメモリABCDEシステム240を含む。
フラッシュメモリ(NVDIMM−F)は、メモリABCDEシステムと共通の属性を有し、このような理由は、例えば両方とも可変格納密度を示すことができるためである。
第2に、コンピューティングシステムは、超越(transcendent)メモリを基盤としたソフトウェアインフラを使用することができる。
このようなインフラは、メモリABCDEシステムにアクセスするためにオペレーティングシステムによって使用されるメモリABCDEドライバーであると称するドライバーを含む。
第3に、コンピューティングシステムは、増加したメインメモリ容量をシミュレーションするために修正されたシステム機能(例えば、修正されたシステム情報(関数(sysinfo()))を採用することができる。
フラッシュメモリ(NVDIMM−F)プロトコルは、DDRメモリバス上にフラッシュモジュールを配置するために関連技術分野のアプリケーションで採用することができる。
このようなアプリケーションは、64バイトキャッシュラインを具備する短いアクセスバーストのみをサポートするインターフェイス(例えば、DDRインターフェイス)を使用して長いアクセス待機時間を有するブロックアクセスを可能にすることができる。
このようなアプリケーションでは、アドレス空間はDDRコマンドバスが自身のピン制限(pin limits)内でロジックブロックアドレス(LBA)を伝送できないほど、十分に大きい場合がある。
したがって、フラッシュメモリ(NVDIMM−F)インターフェイスは、DRAMデータバスを用いてフラッシュモジュールに命令(アドレスを含む)を伝送することができる。
本発明の実施形態において、ブロックアクセスを提供するためにダイナミックランダムアクセスメモリ(DRAM)基盤メモリABCDEシステムに対するアクセスを含むようにフラッシュメモリ(NVDIMM−F)プロトコルが代わりに採用される。
本発明の実施形態において、メモリABCDEシステムは、フラッシュ基盤システムより少ない容量を有するので、フラッシュメモリ(NVDIMM−F)プロトコルが命令とアドレスとのための命令及びアドレスバス(データバスの代わりに)を使用するように修正することができる。
このような実施形態で、アドレスは、命令及びアドレスバス上に(メモリABCDEドライバーによって)書き込まれ、したがってメモリ位置に直接アクセス(修正されないフラッシュメモリ(NVDIMM−F)プロトコルでのようにアドレス自体を小さいバッファに書き込む代わりに)する。
本発明の実施形態において、システムは、メモリABCDEシステムに対する読出し及び書込み命令がキャッシュされないように保障し、したがって命令が中央処理装置(CPU)キャッシュからフラッシュ(flush)されるのを待つ代わりにメモリABCDEシステムに直接伝送される。
これを達成するために、メモリABCDEドライバーは、フラッシュキャッシュライン(例えば、CLFLUSH)CPU命令及びフラッシュオンデマンド(例えば、PCOMMIT)CPU命令を使用して命令がABCDEモジュールに到達するようにする。
追加的に、メモリABCDEシステムで効率的なメモリ−メモリダイレクトメモリアクセス(DMA)エンジンを、メインメモリとメモリABCDEシステムとの間でページを速やかに移動することができるように、メモリABCDEシステムのブロック基盤の内部ページからコンピューティングシステムのDDR4バスにデータを伝送するために採用することができる。
図2の実施形態で、中央処理装置(CPU)210は、メモリ管理回路(MMU)220を通じて
(i)メインメモリ230(DDRメモリ、例えば、DDR4メモリ又は他の実施形態で第2世代又はそれ以上の世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイス(例えば、DDR2、DDR3、DDR4、又はDDR5メモリ))と通信する。
メモリ管理回路220は、またメモリアダプター回路250及び中間メモリ260(その役割がメインメモリ230と持続性記憶装置(例えば、ソリッドステートドライブ(SSD))との中間役割をすることと看做されるので、“中間メモリ”と称される)を含むメモリABCDEシステム240に接続される。
メモリアダプター回路250は、システムオンチップ(SoC)であり、例えば、それはプロセッサ、メモリ(プロセッサのためのプログラム及びデータを格納するための)、及び他のロジックやドライブ回路を含む単一集積回路である。
メモリアダプター回路250は、メモリ管理回路220に接続された(例えば、DDRバスを通じて)第1メモリインターフェイス(例えば、DDR4インターフェイス)及び中間メモリ260に接続された第2メモリインターフェイスを含む。
第2メモリインターフェイスは、中間メモリ260が互換可能な任意の適合なインターフェイス(例えば、中間メモリ260がDDR4メモリであれば、DDR4インターフェイス)である。
メモリアダプター回路250は、先に説明したように、第1メモリインターフェイスで、フラッシュメモリ(NVDIMM−F)プロトコル、又は修正されたフラッシュメモリ(NVDIMM−F)プロトコル(後者はデータバスの代わりに制御及びアドレスバス上のアドレスを送信する)を実行する。
メモリアダプター回路250は、本発明の実施形態において、圧縮、重複除去、及びエラー訂正の中の1つ以上によってメモリ増加(メモリ可用空間増加)を提供するようにさらに構成することができる。
例えば、メモリアダプター回路250は、メモリ管理回路220から受信したデータを圧縮して中間メモリ260に格納し、メモリ管理回路220からの要請によって中間メモリ260から圧縮されたデータを取り出し、圧縮されたデータの圧縮を解除してメモリ管理回路220に伝送することができる。
同様に、メモリアダプター回路250は、中間メモリ260に格納されたデータから重複したデータを除去し(重複エントリが含まれたデータがメモリ管理回路220によって要請される時、重複エントリを復元する)、中間メモリ260にデータを格納する前にエラー訂正コードを通じてデータをエンコーディングし、中間メモリ260から回収する任意のデータに対してエラー訂正を遂行することができる。
図3は、本発明の一実施形態に係るハイブリッドハードウェア−ソフトウェアブロック図である。
中央処理装置210は、メインメモリ230及びメモリABCDEシステム240を含む複合メモリ310にアクセスする。
ブーティングの時(At boot−up)、基本入/出力システム(BIOS)の命令は、DDRバスのアドレス範囲をメモリABCDEシステムに登録し、アドレス範囲に対してアドレスインタリービングを非活性化し、ブロック装置に対応するアドレス範囲を指定する。
メモリABCDEシステム240は、
(i)データを圧縮及び圧縮解除する等の一部の動作が個別的なワードアクセスよりブロックアクセスにさらに適合であり、
(ii)中央処理装置210が同期式DDRメモリとしての動作に不適切に依存しないので、ブロック装置として登録される。
本発明の実施形態において、オペレーティングシステムがローディングされる時、メモリABCDEドライバー320は、フロントスワップ機能及びクリーンキャッシュ機能を登録し、実行する。
このような機能は、このような機能がリナックス(登録商標)カーネルに存在し、使用可能であれば、リナックス(登録商標)カーネルの超越(transcendent)メモリ機能であると称される。
超越メモリ機能は、カーネル動作をインターセプトして
(i)クリーンキャッシュページ、又は
(ii)ダーティ(dirty)使用者ページを追い出し(evicting)、メモリABCDEドライバー320のクリーンキャッシュ及びフロントスワップ機能を呼び出すことができる。
例えば、クリーンキャッシュページが追い出される時、超越メモリ機能は、追い出し動作をインターセプトし、メインメモリ230からメモリABCDEシステム240にページをコピーすることができるクリーンキャッシュ機能を呼び出し、中央処理装置210によって次にアクセスされるか、又は代わりに削除されることより、さらに速くメインメモリ230に再びコピーすることができる(後続のアクセスは、SSD又はハードドライブのような持続性格納装置から復旧することが要求される)。
ダーティ使用者ページがカーネルによって追い出される時、超越メモリ機能は、追い出し動作をインターセプトし、追い出されるダーティ使用者ページをメモリABCDEシステム240にコピーすることができるフロントスワップ機能を呼び出す、これはページを持続性格納装置に書き込むことよりさらに速く遂行される動作である。
メモリABCDEドライバー320は、メモリABCDEシステム240によって受信された任意の書込み要請を収容又は拒絶するか否かを決定するための方法を含む。
メモリABCDEドライバー320は、推定増加比率(estimated augmentation ratio)によって中間メモリ260の自由空間を増加させ、その結果を書き込み要請のデータ量と比較することによってこのような決定を行う。
推定増加比率は、例えば、推定された重複除去比率、即ち重複除去を使用した結果として、どのぐらい多くデータがさらに格納されるかに対する推定値である。
本発明の実施形態において、メモリABCDEドライバー320は、完了した書き込み動作に対する実際の増加比率に基づくか、時間に応じてゆっくりと変化する推定増加比率を算出するように構成され、実際の増加比率(例えば、少ない量のデータに関連された書き込み動作に対する)の大きな変動が推定増加比率の大きな変動をもたらさない。
例えば、始動時に、推定増加比率を、「1.0」に設定し、設定された長さの時間間隔が経過した後、このような設定された長さとエンディングを有する時間間隔の間の実際の増加比率の平均とが同一になるように周期的にアップデートする。
最終使用者(エンドユーザー)及びアプリケーションフレームワークは、他のページングされていない(non−paged)メモリシステムが(例えば、持続的格納装置内に)二次的な格納装置に存在し、長いアクセス待ち時間を有する可能性があるため、ページングされていないメモリの使用を避けるように特別に設計することができる。
本発明の実施形態において、メモリABCDEシステム240はページジングされていないメモリを提供するので、これはメモリABCDEシステム240の長所を不必要に先行するようなアプリケーションをもたらす可能性がある。
1つの可能な解法は、開発者がアプリケーションライブラリ及びミドルウェアフレームワークを再作成することであるが、これは多い既存のフレームワークに対する修正を伴う重大な課題を引き起こす。
したがって、本発明の実施形態において、カーネルは、メモリABCDEシステム240がシステム情報関数に対する呼び出しのようなシステム呼び出しに応答するためにメインメモリをシミュレーションするように修正され得る。
図4は、本発明の実施形態に係るシステム情報関数呼出に対する応答を修正するためのシステムのソフトウェアブロック図である。
図4を参照すると、本発明の一実施形態において、アプリケーション又はミドルウェア410がシステム関数(sysinfo())を呼び出す時、リターンされる構造420は
(i)メインメモリ230のサイズ及び中間メモリ260のサイズに基づいたトータル可用メモリ(total available memory)(例えば、図4でトラム(tram))に対する値、及び
(ii)メインメモリ230の使用可能なメモリ(free memory)の量及び中間メモリ260の使用可能なメモリ(free memory)の量に基づいた全体使用可能なメモリ(total free memory)に対する値を含むことができる。
中間メモリ260内での格納を考慮して、トータルメモリ及び使用可能なメモリ(free memory)情報を増加させる量は、中間メモリ260に格納されるデータに対する予想増加比率を考慮する。
本発明の実施形態において、リターンされた全体使用可能なメモリ(total free memory)に対する値は
(i)メインメモリ230で使用可能なメモリの量と
(ii)(1)推定増加比率及び(2)中間メモリ260で使用可能なメモリの量を乗算した値の総和と同一である。
推定増加比率は、先に説明した通りに計算してもよく、また、システム開始の時に値「1.0」を使用することによって、有意義な推定の基礎となるデータが利用できない場合には、控えめな(conservative)アルゴリズム(“最小増加比率”と称する推定の結果)に応じて計算されることができる。
有意義な推定の基礎になるデータが利用可能である時、推定増加比率は、例えば、一定期間の間に完了された書き込み動作に対する最小実際増加比率を使用して計算することができる。
このようなアプローチは、mlock()システム機能の具現という追加的な課題を提起する可能性がある。
このようなシステム機能は、呼び出されると、仮想アドレスをメインメモリから開始して、2次的な格納装置にスワップしないように特定のサイズのメモリを固定又はロックするよう設計することができる。
本発明の実施形態において、動作時、このようなメモリの一部はメインメモリ230に存在し、他の部分はメモリABCDEシステム240に存在することができる。
使用者空間要請を履行するために、メモリABCDEドライバーは、メモリABCDEシステム内の現在ページがそこに固定されたままであることを確実にさせ、それらを2次的な格納装置(例えば持続性格納装置)にスワッピングすることを遅延させるよう構成することができる。
前述した観点より、本発明の実施形態は、擬似メインメモリシステムを提供する。
このシステムは、圧縮、重複除去、及び/又はエラー訂正を使用してメモリ増加を遂行するためのメモリアダプター回路を含む。
メモリアダプター回路はメモリに接続され、メモリ増加方法を採用してメモリの有効格納容量を増加させる。
“第1”、“第2”、“第3”等の用語が本明細書で多様な要素、構成、領域、層、及び/又はセクションを説明するために使用するが、このような要素、構成、領域、層、及び/又はセクションがこのような用語に制限されない。
これらの用語は、ただ1つの要素、構成、領域、層、又はセクションを他の要素、構成、領域、層、又はセクションと区別するために使用する。したがって、第1要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱しなく、第2要素、成分、領域、層、又はセクションとして説明することができる。
本明細書で使用する用語は特定の実施形態を説明するためのことであり、本発明の思想を制限するものではない。
本明細書で使用された用語“実質的に”、“約”、及び類似する用語は類似する用語として使用し、程度(等級)の用語として使用せず、これらによって認識される測定又は計算された値の固有な偏差を説明するためのものである。
本明細書で使用した単数形態は文脈の上に異なりに指示しない限り、複数の形態を含むことと意図する。
本明細書で使用する用語“含んでいる”及び/又は“含む”は説明された特徴、整数、段階、動作、要素、及び/又は構成が存在することを示すが、このような存在を排除することはなく、また1つ以上の他の特徴、整数、段階、動作、要素、構成、及び/又はグループの追加を含むことと理解されるべきである。
本明細書で使用した用語“及び/又は”は1つ以上の関連されて列挙された項目の任意及びすべての組み合わせを含む。
“少なくとも1つ”のような表現は要素の目録の先で要素の全体目録を修正し、要素の個別要素を修正しない。
さらに、本発明の実施形態を説明する時に使用された“することができる”という用語は本発明の1つ以上の実施形態を意味する。また、“例示的な”という用語は例又は説明を意味する。本明細書で使用された用語“使用する”、“使用”、及び“使用された”は各々“活用する”、“活用する”、及び“活用された”と同意語として考慮されることができる。
構成要素又は層が他の構成要素又は層の“上”、“接続された”、“結合された”、又は“隣接する”と言及される時、これは他の構成要素又は層の直ちに上、直ちに接続された、直ちに結合された、直ちに隣接することを示すか、又は構成要素又は層の間に少なくとも1つ以上の構成要素及び層が存在することを示す。対照的に1つの構成要素又は層が他の構成要素又は層の“直ちに上”、“直ちに接続された”、“直ちに結合された”、“直ちに隣接する”ことと言及される時、構成要素又は層間に構成要素及び層が存在しない。
中間に介在される構成が第2構成に連結された第1構成の間に存在する時、第1構成は中間に介在される構成を通じて第2構成に連結されることと看做される。
擬似メインメモリシステムの例示的な実施形態を本明細書で具体的であり、例示的に説明したが、多様な変形及び変更が当業者に可能である。
したがって、本発明の思想にしたがって構成されたコンピューティングシステム及びその動作方法が本明細書で具体的に説明したもの以外の他のことと具現することができることが理解されるべきである。
本発明は、特許請求の範囲によって定義される。
210 中央処理装置(CPU)
220 メモリ管理回路(MMU)
230 メインメモリ
240 メモリABCDEシステム
250 メモリアダプター回路
260 中間メモリ
310 複合メモリ
320 メモリABCDEドライバー
410 アプリケーション又はミドルウェア
420 リターンされる構造

Claims (20)

  1. コンピューティングシステムであって、
    中央処理装置(central processing unit:CPU)と、
    メモリアダプター回路及び第1メモリを含むメモリシステムと、を有し、
    前記メモリアダプター回路は、前記中央処理装置に接続された第1メモリインターフェイスと、前記第1メモリに接続された第2メモリインターフェイスと、を含み、
    前記第1メモリインターフェイスは、2倍速同期式(double data rate synchronous)ダイナミックランダムアクセスメモリインターフェイスであり、
    前記メモリアダプター回路は、前記第1メモリの格納容量の増加を用いて前記第1メモリにデータを格納し、前記第1メモリからデータを回収するよう構成されることを特徴とするコンピューティングシステム。
  2. 前記第1メモリの格納容量の増加は、圧縮、重複除去、及びエラー訂正の中の少なくとも1つを含むことを特徴とする請求項1に記載のコンピューティングシステム。
  3. 前記第1メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項1に記載のコンピューティングシステム。
  4. 前記第2メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項1に記載のコンピューティングシステム。
  5. 前記第1メモリインターフェイスは、フラッシュメモリインターフェイスであり、前記コンピューティングシステムは、ブロック装置として前記メモリシステムを動作するように構成されることを特徴とする請求項3に記載のコンピューティングシステム。
  6. 前記中央処理装置は、メモリ管理回路を通じて前記メモリアダプター回路に接続されることを特徴とする請求項1に記載のコンピューティングシステム。
  7. 前記第1メモリは、ダイナミックランダムアクセスメモリであり、前記第2メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項1に記載のコンピューティングシステム。
  8. 前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路(single integrated circuit)であることを特徴とする請求項1に記載のコンピューティングシステム。
  9. メモリ管理回路を通じて前記中央処理装置に接続される第2メモリをさらに有することを特徴とする請求項1に記載のコンピューティングシステム。
  10. 前記第2メモリは、第3メモリインターフェイスを通じて前記メモリ管理回路に接続され、前記第3メモリインターフェイスは、第2世代又はそれより高い世代の2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであることを特徴とする請求項9に記載のコンピューティングシステム。
  11. 前記中央処理装置は、前記第2メモリにページキャッシュを保持するように構成され、
    前記中央処理装置は、前記ページキャッシュからクリーンページを追い出す(evicting)時、前記クリーンページに対するクリーンキャッシュ機能を呼び出すよう構成され、前記クリーンキャッシュ機能は、前記クリーンページを格納するために構成され、
    前記クリーンページを格納するための充分な空間が前記第1メモリで利用可能する時、前記クリーンページは、前記第1メモリに格納され、前記クリーンページを格納するための充分な空間が前記第1メモリで利用可能でない時は、前記クリーンページは、持続性(persistent)格納装置に格納されることを特徴とする請求項9に記載のコンピューティングシステム。
  12. 前記クリーンキャッシュ機能は、推定増加比率に基づいて前記第1メモリで前記クリーンページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は、設定された時間間隔の間に前記第1メモリに格納されたデータに対する増加比率の関数であることを特徴とする請求項11に記載のコンピューティングシステム。
  13. 前記中央処理装置は、前記第2メモリに使用者メモリ空間を保持するよう構成され、
    前記中央処理装置は、前記使用者メモリ空間からダーティページを追い出す(evicting)時、前記ダーティページに対するフロントスワップ機能を呼び出すよう構成され、前記フロントスワップ機能は、前記ダーティページを格納するよう構成され、
    前記ダーティページを格納するための充分な空間が前記第1メモリで利用可能する時、前記ダーティページは、前記第1メモリに格納され、前記ダーティページを格納するための充分な空間が前記第1メモリで利用可能でない時は、前記ダーティページは、持続性格納装置に格納されることを特徴とする請求項9に記載のコンピューティングシステム。
  14. 前記フロントスワップ機能は、推定増加比率に基づいて前記第1メモリで前記ダーティページを格納するための充分な空間が利用可能であるか否かを評価するよう構成され、前記推定増加比率は、設定された時間間隔の間に前記第1メモリに格納されたデータに対する増加比率の関数であることを特徴とする請求項13に記載のコンピューティングシステム。
  15. 前記中央処理装置は、1つ以上のアプリケーションを実行し、
    システム情報関数に対する1つ以上のアプリケーションに応答して、前記第1メモリのサイズ及び前記第2メモリのサイズに基づいたトータル有効(total available)メモリに対する値、及び前記第1メモリで使用可能なメモリの量(the amount of free memory)及び前記第2メモリで使用可能なメモリの量に基づいたトータル使用可能な(total free)メモリに対する値を返す(return)よう構成されることを特徴とする請求項9に記載のコンピューティングシステム。
  16. 前記トータル使用可能なメモリに対する前記値は、前記第2メモリで使用可能なメモリの量及び最小増加比率と、前記第1メモリで使用可能なメモリの量とを乗算した値を総和した値であり、
    前記最小増加比率は、システム開始の後に設定された間隔が経過した時、前記設定された間隔の時間の間に前記第1メモリに格納されたデータに対する増加比率の関数であり、有意義な推定の基礎となるデータが利用できない場合、「1.0」であることを特徴とする請求項15に記載のコンピューティングシステム。
  17. 中央処理装置と、メモリアダプター回路及び第1メモリを含むメモリシステムと、を有し、前記メモリアダプター回路は、前記中央処理装置に接続された第1メモリインターフェイスと前記第1メモリに接続された第2メモリインターフェイスとを含み、前記第1メモリインターフェイスは、2倍速同期式ダイナミックランダムアクセスメモリインターフェイスであるコンピュータシステムの動作方法であって、
    前記第1メモリの格納容量の増加を用いて前記第1メモリにデータを格納し、前記第1メモリからデータを回収する段階を有することを特徴とするコンピュータシステムの動作方法。
  18. 前記第1メモリの格納容量の増加は、圧縮、重複除去、及びエラー訂正の中の少なくとも1つを含むことを特徴とする請求項17に記載のコンピュータシステムの動作方法。
  19. 前記メモリシステムをフラッシュメモリプロトコルで動作することができるブロック装置として使用する段階をさらに有することを特徴とする請求項17に記載のコンピュータシステムの動作方法。
  20. 前記メモリアダプター回路は、圧縮、重複除去、及びエラー訂正を遂行するよう構成された単一集積回路であることを特徴とする請求項17に記載のコンピュータシステムの動作方法。
JP2017190020A 2016-09-30 2017-09-29 コンピューティングシステム及びその動作方法 Active JP6788566B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US15/282,848 2016-09-30
US15/282,848 US10372606B2 (en) 2016-07-29 2016-09-30 System and method for integrating overprovisioned memory devices
US201762489997P 2017-04-25 2017-04-25
US62/489,997 2017-04-25
US15/663,619 US10515006B2 (en) 2016-07-29 2017-07-28 Pseudo main memory system
US15/663,619 2017-07-28

Publications (3)

Publication Number Publication Date
JP2018060538A true JP2018060538A (ja) 2018-04-12
JP2018060538A5 JP2018060538A5 (ja) 2020-11-12
JP6788566B2 JP6788566B2 (ja) 2020-11-25

Family

ID=61781195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017190020A Active JP6788566B2 (ja) 2016-09-30 2017-09-29 コンピューティングシステム及びその動作方法

Country Status (4)

Country Link
JP (1) JP6788566B2 (ja)
KR (1) KR102266477B1 (ja)
CN (2) CN107885676B (ja)
TW (1) TWI710903B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074007B2 (en) * 2018-08-08 2021-07-27 Micron Technology, Inc. Optimize information requests to a memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099774A (ja) * 2004-09-28 2006-04-13 Sony Computer Entertainment Inc データ処理方法および装置、処理システム、コンピュータ処理システム、コンピュータのネットワーク
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
WO2015175062A2 (en) * 2014-02-21 2015-11-19 Microsoft Technology Licensing, Llc Modified memory compression

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668957A (en) * 1995-11-02 1997-09-16 International Business Machines Corporation Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support
JP2004139503A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
JP4700562B2 (ja) * 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
CN100524244C (zh) * 2006-12-14 2009-08-05 英业达股份有限公司 网络存储系统的存储空间不足预警方法
US20100161909A1 (en) 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
KR20100133710A (ko) * 2009-06-12 2010-12-22 삼성전자주식회사 메모리 시스템 및 그것의 코드 데이터 로딩 방법
US8966477B2 (en) 2011-04-18 2015-02-24 Intel Corporation Combined virtual graphics device
US9507639B2 (en) * 2012-05-06 2016-11-29 Sandisk Technologies Llc Parallel computation with multiple storage devices
KR20140030383A (ko) * 2012-08-27 2014-03-12 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099774A (ja) * 2004-09-28 2006-04-13 Sony Computer Entertainment Inc データ処理方法および装置、処理システム、コンピュータ処理システム、コンピュータのネットワーク
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
WO2015175062A2 (en) * 2014-02-21 2015-11-19 Microsoft Technology Licensing, Llc Modified memory compression
JP2017512340A (ja) * 2014-02-21 2017-05-18 マイクロソフト テクノロジー ライセンシング,エルエルシー 修正されたメモリー圧縮

Also Published As

Publication number Publication date
CN107885676A (zh) 2018-04-06
CN116594931A (zh) 2023-08-15
TWI710903B (zh) 2020-11-21
KR102266477B1 (ko) 2021-06-18
TW201823994A (zh) 2018-07-01
KR20180036591A (ko) 2018-04-09
CN116594931B (zh) 2024-04-05
JP6788566B2 (ja) 2020-11-25
CN107885676B (zh) 2023-06-13

Similar Documents

Publication Publication Date Title
US11030088B2 (en) Pseudo main memory system
US10956323B2 (en) NVDIMM emulation using a host memory buffer
Bae et al. 2B-SSD: The case for dual, byte-and block-addressable solid-state drives
JP5752989B2 (ja) プロセッサ・メインメモリのための持続性メモリ
CN109154907B (zh) 在输入-输出存储器管理单元中使用多个存储器元件来执行虚拟地址到物理地址转译
US11544093B2 (en) Virtual machine replication and migration
KR20130088883A (ko) 2-레벨 시스템 메인 메모리
US10073644B2 (en) Electronic apparatus including memory modules that can operate in either memory mode or storage mode
US20130111103A1 (en) High-speed synchronous writes to persistent storage
US10754785B2 (en) Checkpointing for DRAM-less SSD
KR102168193B1 (ko) 초과 공급 메모리 장치들을 통합하기 위한 시스템 및 방법
JP2008501190A (ja) マルチプロセッサシステムにおいてデータ変換バッファ項目を無効にするメカニズム
US11526441B2 (en) Hybrid memory systems with cache management
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
WO2019041903A1 (zh) 一种基于非易失存储的计算装置及其使用方法
KR102266477B1 (ko) 의사 메인 메모리 시스템
US10241906B1 (en) Memory subsystem to augment physical memory of a computing system
KR20150062646A (ko) 전자 시스템 및 이의 동작 방법
JP4792065B2 (ja) データ記憶方法
US20230409472A1 (en) Snapshotting Pending Memory Writes Using Non-Volatile Memory
Li et al. A NUMA-aware Key-Value Store for Hybrid Memory Architecture
US20240176740A1 (en) Host managed memory shared by multiple host systems in a high availability system
US20220114118A1 (en) System, device and method for indirect addressing
CN117806560A (zh) 内存语义固态盘及数据存储系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200928

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200928

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201002

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: 20201013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201030

R150 Certificate of patent or registration of utility model

Ref document number: 6788566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250