JP2019175433A - メモリシステム、その動作方法、及びメモリシステムを含むコンピュータシステム - Google Patents

メモリシステム、その動作方法、及びメモリシステムを含むコンピュータシステム Download PDF

Info

Publication number
JP2019175433A
JP2019175433A JP2019000540A JP2019000540A JP2019175433A JP 2019175433 A JP2019175433 A JP 2019175433A JP 2019000540 A JP2019000540 A JP 2019000540A JP 2019000540 A JP2019000540 A JP 2019000540A JP 2019175433 A JP2019175433 A JP 2019175433A
Authority
JP
Japan
Prior art keywords
memory device
memory
target data
ratio
target
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
JP2019000540A
Other languages
English (en)
Other versions
JP7368942B2 (ja
Inventor
イ ソク キム
Yi-Seok Kim
イ ソク キム
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of JP2019175433A publication Critical patent/JP2019175433A/ja
Application granted granted Critical
Publication of JP7368942B2 publication Critical patent/JP7368942B2/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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】データの特性に基づいて、効率的にデータをメモリ装置に格納することができるメモリシステム及びその動作方法を提供する。【解決手段】メモリシステム(メモリボード400)において、互いに異なる種類である複数のメモリ装置420A〜420C、及びターゲットデータのR/W割合を測定するカウンタ610と、ターゲットデータに対応するメタデータを生成するデータ管理部630と、ターゲットデータのR/W割合を複数のメモリ装置の各々の閾値と比較して、ターゲットデータが格納されるターゲットメモリ装置を選択し、ターゲットデータが格納されるメモリ装置に基づいて、メタデータを格納するためのメタメモリ装置を選択する選択部650と、ターゲットメモリ装置にターゲットデータを格納し、メタメモリ装置にメタデータを各々格納するプロセッサ670とを備えるコントローラを備える。【選択図】図6A

Description

本発明は、メモリシステムに関し、より具体的には、効率的なデータ処理のためのメモリシステム及びその動作方法に関する。
データは、第4次産業革命時代において企業等のビジネスに最も重要な資産となっており、これにより、大規模データを早く送信及び分析するように支援する最新技術に対する需要が次第に増加している。例えば、人工知能、自律走行、ロボット、ヘルスケア、仮想現実(virtual reality、VR)/拡張現実(augmented reality、AR)、スマートホームなどが拡大されるにつれて、サーバやデータセンタに対する需要の増加が予想されている。
レガシ(legacy)データセンタは、資源等(例えば、コンピュータ、ネットワーク、ストレージ)を1つの装備内に含める構造であった。しかしながら、未来の大容量データセンタは、資源を各々別に構成し、論理的に資源を再構成する構造を有することができる。例えば、大容量データセンタは、資源を各々ラック(rack)水準でモジュール化し、用途に応じて資源を再構成して供給できる構造を有することができる。したがって、未来の大容量データセンタに使用するのに適した統合型ストレージまたはメモリデバイスが求められている。
本発明は、データの特性に基づいて、効率的にデータをメモリ装置に格納できるメモリシステム及びその動作方法について提案する。
本発明の実施形態に係るメモリシステムにおいて、互いに異なる種類である複数のメモリ装置と、前記複数のメモリ装置の各々を制御するコントローラとを備え、前記コントローラは、ターゲットデータのR/W割合を測定するカウンタと、前記ターゲットデータのR/W割合を前記複数のメモリ装置の各々の閾値と比較して、前記ターゲットデータが格納されるメモリ装置を選択する選択部と、前記選択されたメモリ装置に前記ターゲットデータを格納するプロセッサとを備えることができる。
本発明の実施形態に係るメモリシステムの動作方法において、ターゲットデータのR/W割合を測定するステップと、前記ターゲットデータのR/W割合を前記複数のメモリ装置の各々の閾値と比較して、前記ターゲットデータが格納されるメモリ装置を選択するステップと、前記選択されたメモリ装置に前記ターゲットデータを格納するステップとを含むことができる。
本発明の実施形態に係るコンピュータシステムにおいて、互いに種類の相違した複数のメモリ装置及び前記複数のメモリ装置の各々を制御する第1のコントローラを備える第1のメモリシステムと、前記第1のメモリシステムに含まれた複数のメモリ装置と種類の相違したメモリ装置及び前記メモリ装置を制御する第2のコントローラを備える第2のメモリシステムと、前記第1のメモリシステム及び前記第2のメモリシステムの各々とデータ通信するメモリシステム管理部とを備え、前記第1のコントローラは、前記MMUから伝達されたターゲットデータのR/W割合を測定し、前記ターゲットデータのR/W割合を前記複数のメモリ装置の各々の閾値と比較して、前記ターゲットデータが格納されるメモリ装置を選択し、前記選択されたメモリ装置に前記ターゲットデータを格納することができる。
本発明の実施形態によれば、データの特性に基づいて、データが格納されるメモリ装置を選択し、迅速にデータを処理でき、全体的なシステムの効率性を増加させることができる。
データ処理システムを示した図である。 本発明の実施形態に係るコンピュータラックの構造を概略的に示した図である。 本発明の実施形態に係るコンピュータラックのブロック構成を示した図である。 本発明の実施形態に係る演算ボードの構成を示した図である。 本発明の実施形態に係るメモリボードの構成を概略的に示した図である。 本発明の実施形態に係るメモリボードの構成を示した図である。 本発明の具体的な実施形態に係るメモリボードの構成を示した図である。 本発明の実施形態に係るデータコントローラの動作を示したフローチャートである。 本発明の実施形態に係るデータコントローラの動作を示したフローチャートである。 本発明の実施形態に係るコンピュータシステムの構造を示した図である。
以下、本発明に係る好ましい実施形態を添付した図面を参照して詳細に説明する。下記の説明では、本発明に係る動作を理解するのに必要な部分のみが説明され、それ以外の部分の説明は、本発明の要旨を濁さないように省略されるであろうということに留意すべきである。
図1は、データ処理システム10を示した図である。図1に示すように、データ処理システム10は、複数のコンピュータラック(computing racks、20)と管理インターフェース(management interface、30)、そして、これらの間の通信が可能なようにするネットワーク(network、40)を備えることができる。このようなラックスケール構造(rack−scale architecture)を有するデータ処理システム10は、大容量データ処理のためのデータセンタなどに使用されることができる。
複数のコンピュータラック20の各々は、他のコンピュータラック20との組み合わせで1つのコンピュータシステムを実現できる。このようなコンピュータラック20の具体的な構成及び動作についての説明は、後述されるであろう。
管理インターフェース30は、ユーザがデータ処理システム10を調整、運営、または管理できるようにするインタラクティブインターフェース(interactive interface)を提供できる。管理インターフェース30は、コンピュータ、マルチプロセッサシステム、サーバ、ラックマウント(rack−mount)サーバ、ボード(board)サーバ、ラップトップ(lap−top)コンピュータ、ノートブックコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータシステム、ネットワーク機器、ウェブ機器、分散コンピュータシステム、プロセッサ基盤システム、及び/又は消費者電子機器を備える、任意類型の演算デバイスとして実現されることができる。
一部の実施形態等において、管理インターフェース30は、コンピュータラック20により行われることができる演算機能や、管理インターフェース30により行われることができるユーザインターフェース機能を有する分散システムにより実現されることができる。他の一部の実施形態等において、管理インターフェース30は、ネットワーク40を介して分散された多重コンピュータシステムにより構成され、クラウド(cloud)として動作する仮想サーバ(virtual server)により実現されることができる。管理インターフェース30は、プロセッサ、入力/出力サブシステム、メモリ、データストレージデバイス、及び通信回路を備えることができる。
ネットワーク40は、コンピュータラックと管理インターフェース30との間及び/又はコンピュータラック間でのデータを送受信できる。ネットワーク40は、適切な数の様々な有線及び/又は有線ネットワークにより実現されることができる。例えば、ネットワーク40は、有線または無線LAN(local area network)、WAN(wide area network)セルラネットワーク、及び/又はインターネットのように公開的にアクセス可能なグローバルネットワーク(publicly−accessible、global network)により実現されるか、これを含むことができる。さらに、ネットワーク40は、補助的なコンピュータ、ルータ(router)、及びスイッチ等のような適切な数の補助的なネットワークデバイスを含むことができる。また、ネットワーク40は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN−Zのようなインターフェース規格にしたがって連結されることができる。
図2は、本発明の実施形態に係るコンピュータラック構造を概略的に示した図である。
図2に示すように、コンピュータラック20は、構成要素等の構造、形態、及び呼称などに制限されるものではないが、様々な形態の構成要素を備えることができる。例えば、コンピュータラック20は、複数のドロワー(drawer)21〜29を備えることができる。複数のドロワー21〜29の各々は、複数のボード(board)を備えることができる。
様々な実施形態において、コンピュータラック20は、適切な数の演算ボード(compute board)、メモリボード(memory board)、及び/又は相互接続ボード(interconnect board)の組み合わせにより実現されることができる。ここでは、コンピュータラック20が複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワー、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。このようなコンピュータラック20の構成要素等は、実現の都合上、機能別に分類及び区別される構造を有することができる。制限されるものではないが、コンピュータラック20は、上端から相互接続ボード、演算ボード、メモリボードの順序に分類された構造を有することができる。このようなコンピュータラック20及びこれにより実現されるコンピュータシステムは、「ラックスケールシステム(rack−scale system)」または「分類システム(disaggregated system)」として命名されることができる。
様々な実施形態において、コンピュータシステムは、1つのコンピュータラック20により実現されることができる。これに代えて、コンピュータシステムは、2個以上のコンピュータラックに含まれる全ての構成要素により実現されるか、2個以上のコンピュータラックに含まれる一部の構成要素等の組み合わせにより実現されるか、1つのコンピュータラック20に含まれる一部の構成要素等により実現されることができる。
様々な実施形態において、コンピュータシステムは、コンピュータラック20に含まれる適切な数の演算ボード、メモリボード、及び相互接続ボード(interconnect board)の組み合わせにより実現されることができる。例えば、コンピュータシステム20Aは、2個の演算ボード、3個のメモリボード、及び1個の相互接続ボードにより実現されることができる。他の例として、コンピュータシステム20Bは、3個の演算ボード、2個のメモリボード、及び1個の相互接続ボードにより実現されることができる。さらに他の例として、コンピュータシステム20Cは、1個の演算ボード、4個のメモリボード、及び1個の相互接続ボードにより実現されることができる。
例え、図2では、コンピュータラック20が適切な数の演算ボード、メモリボード、及び/又は相互接続ボードの組み合わせにより実現される場合を示しているが、コンピュータラック20は、通常のサーバなどで確認されることができる、パワーシステム、冷却システム、入力/出力デバイス等のような追加的な構成要素を備えることができる。
図3は、本発明の実施形態に係るコンピュータラック20のブロック構成を示した図である。
図3に示すように、コンピュータラック20は、複数の演算ボード(compute boards、200)、複数のメモリボード(memory boards、400)、及び相互接続ボード(interconnect board、300)を備えることができる。複数の演算ボード200は、プール演算ボード(pooled compute boards)、プール演算システムなどと呼ばれることができる。同様に、複数のメモリボードは、プールメモリボード(pooled memory board)、プールメモリシステムなどと呼ばれることができる。ここでは、コンピュータシステムが複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワー、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。
複数の演算ボード200の各々は、1つまたはそれ以上のプロセッサ、プロセシング/コントロール回路、または中央処理処置(central processing unit、CPU)のようなプロセシング要素を備えることができる。
複数のメモリボード400の各々は、複数の揮発性メモリ(volatile memory)及び/又は不揮発性メモリ(nonvolatile memory)などのような様々な形態のメモリを備えることができる。例えば、複数のメモリボード400の各々は、複数のDRAM(Dynamic Random Access Memory)、フラッシュメモリ(flash memory)、メモリカード、ハードディスクドライブ(hard disk drive、HDD)、ソリッドステートドライブ(solid state drive、SSD)、及び/又はこれらの組み合わせを含むことができる。
複数のメモリボード400の各々は、演算ボード200の各々に含まれる1つ以上のプロセシング要素により分割されるか、割り当てられるか、または指定されて使用されることができる。また、複数のメモリボード400の各々は、演算ボード200により初期化及び/又は実行されることができる1つ以上のオペレーティングシステム(operating system、OS)などを格納することができる。
相互接続ボード300は、演算ボード200の各々に含まれる1つ以上のプロセシング要素により分割、割当、または指定されて使用されることができる、任意の通信回路、デバイス、またはこれらの組み合わせにより実現されることができる。例えば、相互接続ボード300は、任意個数のネットワークインターフェースポート、カード、またはスイッチとして実現されることができる。相互接続ボード300は、通信を実行させるための、1つ以上の有線または有線通信技術等と関連したプロトコルを使用することができる。例えば、相互接続ボード300は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet、登録商標)などのようなプロトコルにしたがって演算ボード200とメモリボード400との間の通信を支援できる。さらに、相互接続ボード300は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN−Zのようなインターフェース規格にしたがって演算ボード200と連結されることができる。
図4は、本発明の実施形態に係る演算ボード200の構成を示した図である。
図4に示すように、演算ボード200は、1つ以上の中央処理処置(central processing unit、CPU、210)、1つ以上のローカルメモリ(local memory、220)、及び入出力(input/output、I/O)インターフェース(interface、230)を備えることができる。
CPU(210)は、図3に示された複数のメモリボード400の中で使用するための少なくとも1つのメモリボードを分割、割当、または指定することができる。また、CPU(210)は、分割、割当、または指定された少なくとも1つのメモリボードを初期化し、これらを介してデータの読み出し動作、書き込み(または、プログラム)動作などを行うことができる。
ローカルメモリ220は、CPU(210)の動作実行中に必要なデータを格納することができる。様々な実施形態において、1つのローカルメモリ220は、1つのCPU(210)に一対一に対応する構造を有することができる。
I/Oインターフェース230は、図3の相互接続ボード300を介してのCPU(210)とメモリボード400との間でのインターフェーシングを支援できる。I/Oインターフェース230は、1つ以上の有線または有線通信技術等と関連したプロトコルを使用して、CPU(210)から相互接続ボード300への送信データを出力し、相互接続ボード300からCPU(210)への受信データを入力できる。例えば、I/Oインターフェース230は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet、登録商標)などのようなプロトコルにしたがってCPU(210)と相互接続ボード300との間の通信を支援できる。さらに、I/Oインターフェース230は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN−Zのようなインターフェース規格にしたがってCPU(210)と相互接続ボード300との間の通信を支援できる。
図5は、本発明の実施形態に係るメモリボード400の構成を示した図である。
図5に示すように、メモリボード400は、コントローラ410と複数のメモリ420とを備えることができる。複数のメモリ420は、コントローラ410の制御によってデータを格納(または、書き込み)し、格納されたデータを出力(または、読み出し)することができる。複数のメモリ420は、第1のメモリ装置420A、第2のメモリ装置420B、及び第3のメモリ装置420Cを備えることができる。第1のメモリ装置420A、第2のメモリ装置420B、及び第3のメモリ装置420Cは、互いに同じ特性を有することができ、互いに異なる特性を有することもできる。様々な実施形態等において、第1のメモリ装置420A、第2のメモリ装置420B、及び第3のメモリ装置420Cは、格納容量(capacity)またはレイテンシ(latency)の側面で互いに異なる特性を有するメモリでありうる。
コントローラ410は、データコントローラ(data controller、510)、メモリコントローラ(memory controller、MC、520A−520C)、及びI/Oインターフェース530を備えることができる。
データコントローラ510は、図3の演算ボード200と複数のメモリ420との間で送受信されるデータを制御できる。例えば、書き込み要請またはコマンドに応答して、データコントローラ510は、演算ボード200からの書き込みのためのデータを受信し、このデータを複数のメモリ420のうち、該当するメモリに書き込む書き込み動作を制御できる。他の例として、読み出し要請またはコマンドに応答して、データコントローラ510は、演算ボード200から複数のメモリ420のうち、特定メモリに格納されたデータを読み出し、読み出しデータを演算ボード200のうち、該当する演算ボードに出力する読み出し動作を制御できる。
メモリコントローラ520A〜520Cは、データコントローラ510と複数のメモリ420との間に位置し、これらの間でのインターフェーシングを支援できる。メモリコントローラ520は、複数のメモリ420に含まれる第1のメモリ装置420A、第2のメモリ装置420B、及び第3のメモリ装置420Cの各々に対応するメモリコントローラ(iMC0、520A)、メモリコントローラ(iMC1、520B)、メモリコントローラ(iMC2、520C)を備えることができる。メモリコントローラ(iMC0、520A)は、データコントローラ510と第1のメモリ装置420Aとの間に位置し、これらの間でのデータ送受信を支援できる。メモリコントローラ(iMC1、520B)は、データコントローラ510と第2のメモリ装置420Bとの間に位置し、これらの間でのデータ送受信を支援できる。メモリコントローラ(iMC2、520C)は、データコントローラ510と第3のメモリ装置420Cとの間に位置し、これらの間でのデータ送受信を支援できる。例えば、第3のメモリ装置420Cがフラッシュメモリである場合、メモリコントローラ(iMC2、520C)は、フラッシュコントローラ(flash controller)でありうる。第1ないし第3のメモリ装置420A〜420Cは、説明の便宜のための例示であり、これに制限されるものではない。
I/Oインターフェース530は、図3の相互接続ボード300を介してのデータコントローラ510と演算ボード200との間でのインターフェーシングを支援できる。I/Oインターフェース530は、1つ以上の有線または有線通信技術等と関連したプロトコルを使用して、データコントローラ510から相互接続ボード300への送信データを出力し、相互接続ボード300からデータコントローラ510への受信データを入力できる。例えば、I/Oインターフェース530は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet、登録商標)などのようなプロトコルにしたがってデータコントローラ510と相互接続ボード300との間の通信を支援できる。さらに、I/Oインターフェース530は、CCIX(Cache Coherent Interconnect for accelerators)及びGEN−Zのようなインターフェース規格にしたがってデータコントローラ510と相互接続ボード300との間の通信を支援できる。
前述したように、データセンタのようなサーバシステムまたはデータ処理システムは、演算ボード、メモリ、またはストレージボードなどのような複数のボードが単位ラック内で区別されて装着される構造を有することができる。このとき、1つのメモリボードには、様々なユーザワークロード(user workload)を充足させるために、互いに異なる特性を有する複数のメモリが含まれ得る。すなわち、1つのメモリボードは、DRAM、PCRAM、MRAM、STT−RAM、フラッシュメモリのような複数のメモリが統合された形態を有する統合メモリボード(convergence memory board)でありうる。このような統合メモリボードは、各メモリが互いに異なる特性を有するので、様々な使用モデル(usage model)に活用されることができる。
図6Aは、本発明の実施形態に係るメモリボード400の構成を示した図である。特に、図6Aは、データコントローラ510の構造を具体的に示す。
図5に示すように、メモリボード400は、コントローラ410及び複数のメモリ装置420A〜420Cを備えることができる。さらに、複数のメモリ装置420A〜420Cの各々は、互いに異なる種類のメモリ装置でありうる。例えば、複数のメモリ装置420A〜420Cの各々は、DRAM、MDS(Managed Dram solution)、PCRAM、NAND flash memory等でありうる。
以下では、複数のメモリ装置420A〜420Cが第1のメモリ装置ないし第3のメモリ装置420A〜420Cで構成され、各々のメモリ装置は、互いに異なる種類と仮定する。ただし、これは、説明の便宜のための仮定であり、これよりさらに多くの互いに異なる種類のメモリ装置で構成され得ることは当たり前である。さらに、第1のメモリ装置420A、第2のメモリ装置420B、及び第3のメモリ装置420Cの順序にデータ処理速度が速いメモリ装置と仮定する。それに対し、第3のメモリ装置420C、第2のメモリ装置420B、そして、第1のメモリ装置420Aの順序にメモリ容量の大きいメモリ装置と仮定する。そして、第1のメモリ装置420Aは、揮発性メモリ装置(volatile memory device)であり、第2のメモリ装置420B及び第3のメモリ装置420Cは、不揮発性メモリ装置(non−volatile memory device)と仮定する。
コントローラ410は、図5において説明されたように、データコントローラ510、I/Oインターフェース530、及びメモリコントローラ520A〜520Cを備えることができる。
データコントローラ510は、カウンタ610、データ管理部630、選択部650、及びプロセッサ670を備えることができる。
カウンタ610は、外部からデータコントローラ510に読み出しあるいは書き込み要請されるデータ(以下、ターゲットデータ)に対応する書き込み動作の回数に対する読み出し動作の回数の割合(以下、R/W割合)を測定できる。具体的に、カウンタ610は、ターゲットデータに対応する読み出し動作の回数及び書き込み動作の回数を各々カウントでき、カウントされた読み出し動作の回数及び書き込み動作の回数からR/W割合を測定できる。
カウンタ610がターゲットデータに対応する読み出し動作の回数をカウントする方法は、次のとおりである。ターゲットデータに対する読み出しコマンドは、ターゲットデータに対する識別子(ID)、ターゲットデータに対する読み出し動作を行うための住所情報を含むことができる。コントローラ410は、識別子と住所情報を活用してターゲットデータに対する読み出し動作を認識できる。そして、カウンタ610は、ターゲットデータに対する読み出しコマンドに基づいてターゲットデータに対応する読み出し動作の回数をカウントできる。同じ原理として、カウンタ610は、ターゲットデータに対応する書き込み動作の回数をカウントできる。そして、カウンタ610は、カウントされた読み出し動作の回数及び書き込み動作の回数からターゲットデータに対応するR/W割合を測定できる。
ただし、前述した読み出し動作の回数及び書き込み動作の回数をカウントする方法は、1つの実施例であり、これに制限されるものではない。
さらに、カウンタ610は、カウントされた読み出し動作の回数及び書き込み動作の回数、そして、測定されたR/W割合をターゲットデータと対応させて格納することができる。また、格納された読み出し動作の回数、書き込み動作の回数、及びR/W割合は、メモリ装置にターゲットデータに対応するメタデータとして格納されることができる。
また、カウンタ610は、測定されたターゲットデータに対応するR/W割合をデータ管理部630に伝達することができる。
データ管理部630は、複数のメモリ装置420A〜420Cの各々のメモリマップを生成して格納することができる。すなわち、データ管理部630は、第1のメモリ装置420Aのメモリマップ、第2のメモリ装置420Bのメモリマップ、及び第3のメモリ装置420Cのメモリマップの各々を個別的に管理することができる。また、複数のメモリ装置420A〜420Cの各々に格納されたデータの移動によるメモリマップ変化があるとき、データ管理部630は、複数のメモリ装置420A〜420Cの各々のメモリマップをアップデートすることができる。
前述したように、データ管理部630は、カウンタ610で測定されたターゲットデータに対するR/W割合を伝達されることができる。データ管理部630は、伝達されたターゲットデータに対応するR/W割合をターゲットデータとマッチングして管理することができる。
さらに、データ管理部630は、ターゲットデータに対応するメタデータを生成することができる。メタデータは、ターゲットデータが格納されたメモリ装置の住所情報、ターゲットデータに対応するR/W割合、ターゲットデータの格納完了可否を表すことができる。例えば、ターゲットデータが第1のメモリ装置420Aに格納された場合、データ管理部630は、メモリマップを参照してターゲットデータが格納された第1のメモリ装置の住所情報、ターゲットデータのR/W割合、第1のメモリ装置へのターゲットデータの格納完了可否を表すメタデータを生成できる。
選択部650は、カウンタ610で測定されたR/W割合に基づいて、ターゲットデータが格納されるメモリ装置を選択できる。
複数のメモリ装置420A〜420Cの各々は、ターゲットデータを格納することができる閾値を各々有することができる。例えば、第1のメモリ装置420Aは、ターゲットデータのR/W割合が第1の閾値より大きいか、同じ場合にのみターゲットデータを格納することができる。また、第2のメモリ装置420Bは、ターゲットデータのR/W割合が第1の閾値よりは小さいが、第2の閾値よりは大きいか、同じ場合にのみターゲットデータを格納することができる。同様に、第3のメモリ装置420Cは、ターゲットデータのR/W割合が第2の閾値より小さい場合にのみターゲットデータを格納することができる。第1の閾値及び第2の閾値は、設計者によって設定されることができる。
したがって、選択部650は、ターゲットデータのR/W割合を前述した閾値の各々と比較することができ、ターゲットデータが格納されるのに最も適したメモリ装置を選択できる。
プロセッサ670は、選択されたメモリ装置にターゲットデータを格納することができる。例えば、第1の閾値より大きいR/W割合を有するターゲットデータに対して、プロセッサ670は、ターゲットデータを第1のメモリ装置420Aに格納することができる。また、第3のメモリ装置に格納されたデータが第1の閾値より小さい接近時間を有する場合、プロセッサ670は、当該ターゲットデータを第3のメモリ装置420Cから読み出し、第1のメモリ装置420Aに格納することができる。このとき、データ管理部630は、住所が変わったデータに対するマップアップデートを行うことができる。
さらに、プロセッサ670は、データ管理部630で生成されたメタデータをターゲットデータが格納されたメモリ装置に基づいて格納することができる。
本発明の一実施形態によれば、上位メモリ装置は、下位メモリ装置よりデータをさらに早く処理することができる。それに対し、下位メモリ装置の格納容量は、上位メモリ装置の格納容量よりさらに大きいことがある。
本発明の一実施形態によれば、第2のメモリ装置420Bは、第1のメモリ装置420Aの下位メモリ装置でありうる。そして、第3のメモリ装置420Cは、第2のメモリ装置420Bの下位メモリ装置でありうる。さらに、不揮発性メモリ装置は、揮発性メモリ装置の下位メモリ装置でありうる。ただし、これは、一実施形態であり、これに制限されるものではない。
このとき、ターゲットデータが格納されたメモリ装置が揮発性メモリ装置である場合、プロセッサ670は、ターゲットデータが格納されたメモリ装置の下位メモリ装置にメタデータを格納することができる。
例えば、第1のメモリ装置420Aが揮発性メモリ装置と仮定し、プロセッサ670がターゲットデータを第1のメモリ装置420Aに格納した場合、プロセッサ670は、ターゲットデータに対応するメタデータを第2のメモリ装置420Bあるいは第3のメモリ装置420Cに格納することができる。
さらに他の例としては、第2のメモリ装置420Bは、不揮発性メモリ装置と仮定し、プロセッサ670がターゲットデータを第2のメモリ装置420Bに格納した場合、プロセッサ670は、ターゲットデータに対応するメタデータを第3のメモリ装置420Cに格納することができる。
さらに他の例としては、第3のメモリ装置が最下位メモリ装置と仮定する。プロセッサ670がターゲットデータを第3のメモリ装置420Cに格納した場合、プロセッサ670は、第3のメモリ装置420Cにターゲットデータに対応するメタデータを格納することができる。
さらに他の例としては、ターゲットデータが第2のメモリ装置420Bに格納されており、ターゲットデータに対応するメタデータが第3のメモリ装置420Cに格納されていると仮定する。プロセッサ670が第2のメモリ装置420Bから読み出したターゲットデータを第1のメモリ装置420Aに格納した場合、プロセッサ670は、第2のメモリ装置420Bにターゲットデータに対応するメタデータを移動させることができる。しかし、第2のメモリ装置420Bが揮発性メモリ装置である場合、プロセッサ670は引き続き、第3のメモリ装置420Cにメタデータを格納することができる。
さらに他の例としては、ターゲットデータとメタデータとが第3のメモリ装置420Cに格納されていると仮定する。プロセッサ670が第3のメモリ装置420Cから読み出されたターゲットデータを第2のメモリ装置420Bに格納した場合、プロセッサ670は引き続き、第3のメモリ装置420Cにメタデータを格納することができる。
不揮発性メモリ装置の場合、前述されたように、ターゲットデータとメタデータとを分けて互いに異なるメモリ装置に格納する理由は、SPO(Sudden Power Off)発生の際、データコントローラ510がSPOR(Sudden Power Off Recovery)動作を円滑に行わせるようにするためである。仮に、データコントローラ410に含まれている揮発性メモリ装置420Aとインターフェーシングできるインターフェースユニット520AがNVD(non−volatile DIMM)である場合、SPOが発生してもインターフェースユニット520Aの電源が暫くの間維持され得る。その結果、SPO発生の際、揮発性メモリ装置420Aの電源が暫くの間維持され得る。ただし、揮発性メモリ装置420Aに格納されたデータが格納が完了したデータであるか、それとも、格納が進んでいたデータであるか否かを確認できない。このとき、プロセッサ670は、ターゲットデータの格納完了可否を確認するために、揮発性メモリ420Aの下位メモリ装置420Bに格納されたメタデータを読み出してターゲットデータの格納完了可否を確認できる。仮に、ターゲットデータが格納完了していないと、当該ターゲットデータは、不完全なデータであるため、データコントローラ410は、当該ターゲットデータに対するSPOR動作を行うことができる。さらに、データ管理部630は、SPO発生の際に消滅されたメモリマップをメタデータに基づいて復旧することができる。
図6Bは、本発明の具体的な実施形態に係るメモリボードの構成を示した図である。具体的に、図6Aに示すように、DRAM(690A)は、第1のメモリ装置420Aと対応することができる。PCRAM(690B)は、第2のメモリ装置420Bと対応することができ、NAND(690C)は、第3のメモリ装置420Cと対応することができる。ただし、このような実施形態は、1つの例に過ぎず、これに制限されるものではない。
各々のメモリ装置の特性上、DRAM(690A)に格納されたデータは、PCRAM(690B)及びNAND(690C)の各々に格納されたデータより早く処理されることができる。例えば、DRAM(690A)に格納されたデータは、PCRAM(690B)あるいはNAND(690C)に格納されたデータよりさらに早く読み出されることができる。例えば、データは、PCRAM(690B)あるいはNAND(690C)よりDRAM(690A)にさらに早く書き込まれることができる。それに対し、DRAM(690A)は、PCRAM(690B)あるいはNAND(690C)よりさらに小さい格納容量を有している。したがって、DRAM(690A)は、R/W割合の高いデータあるいは早い処理を要するデータを処理するのに適したメモリ装置である。
それに対し、NAND(690C)に格納されたデータは、PCRAM(690B)及びDRAM(690A)の各々に格納されたデータより遅く処理されることができる。しかし、NAND(690C)は、PCRAM(690B)あるいはDRAM(690A)より大きい格納容量を有している。したがって、NAND(690C)は、R/W割合の低いデータあるいは早い処理を要しないデータを処理するのに適したメモリ装置である。
PCRAM(690B)は、メモリ特性上、DRAM(690A)とNAND(690C)の中間性質を有しているので、DRAM(690A)とNAND(690C)の中間役割が可能なメモリ装置である。
図6Aに示すように、データ管理部630は、DRAM(690A)、PCRAM(690B)、及びNAND(690C)のメモリマップの各々を生成できる。また、前述したように、データ管理部630は、メモリ装置690A〜690Cの各々のメモリマップを個別的にアップデートすることができる。そして、データ管理部630は、複数のメモリマップを格納することができる。
また、選択部650は、メモリ装置690A〜690Cのうち、ターゲットデータが格納されるメモリ装置を選択できる。そして、選択部650は、ターゲットデータが格納されたメモリ装置に基づいて、メモリ装置690A〜690Cのうち、ターゲットデータに対応するメタデータが格納されるメモリ装置を選択できる。
例えば、ターゲットデータのR/W割合が第1の閾値より大きいか、同じ場合には、選択部650は、DRAM(690A)にターゲットデータを格納することができる。すなわち、図6Aにおいて説明された原理と同様に、選択部650は、メモリ装置をターゲットデータの特性に応じて選択することができる。
図7は、本発明の実施形態に係るデータコントローラ410の動作を示したフローチャートである。具体的に、図7は、データコントローラ410がターゲットデータの特性を判断し、ターゲットデータを格納するのに適したメモリ装置を検索して、ターゲットデータを格納する過程を示す。このとき、ターゲットデータは、書き込みデータと仮定する。説明の都合上、データ管理部630は、既にメモリ装置を各々のメモリマップに格納していると仮定する。説明の都合上、図6Aを参照してデータコントローラ410の動作が説明される。図6Aに示すように、第1のメモリ装置420Aは、揮発性メモリ装置であり、第2のメモリ装置420B及び第3のメモリ装置420Cは、不揮発性メモリ装置である。
ステップS701において、カウンタ610は、ターゲットデータのR/W割合を測定できる。
まず、ステップS703において、選択部650は、ターゲットデータのR/W割合を第1のメモリ装置420Aの第1の閾値と比較することができる。
仮に、ターゲットデータのR/W割合が第1の閾値より大きいか、同じ場合(ステップS703において「Y」)、ステップS705において、選択部650は、ターゲットデータを格納するメモリ装置として第1のメモリ装置420Aを選択できる。
ステップS707において、プロセッサ670は、ターゲットデータを第1のメモリ装置420Aに格納することができる。
そして、ステップS709において、データ管理部630は、ターゲットデータが格納される第1のメモリ装置420Aの住所情報、ターゲットデータのR/W割合、及び格納完了可否を表すメタデータを生成できる。ただし、メタデータを生成する時点は、説明の都合上、ステップS709に位置させたものであり、これに制限されるものではない。例えば、データ管理部630は、ターゲットデータに対応するメタデータを図7に説明される動作以前に生成することができ、データコントローラ410が住所情報を認知した時点、R/W割合を測定した時点、ターゲットデータの格納が完了した時点毎にデータ管理部630は、メタデータをアップデートすることができる。
次に、ステップS711において、プロセッサ670は、生成されたメタデータを第2のメモリ装置420Bに格納することができる。図6Aにおいて説明されたように、第1のメモリ装置420Aが揮発性メモリ装置であるから、プロセッサ670は、第1のメモリ装置420Aに格納されたターゲットデータに対応するメタデータを第2のメモリ装置420Bに格納することができる。
その後、ステップS731において、データ管理部630は、第1のメモリ装置420Aに格納されたターゲットデータに関する情報を反映するために、メモリマップをアップデートすることができる。
それに対し、ターゲットデータのR/W割合が第1の閾値より小さい場合(ステップS703において「N」)、ステップS713において、選択部650は、ターゲットデータのR/W割合を第2の閾値と比較することができる。
仮に、ターゲットデータのR/W割合が第2の閾値より大きいか、同じ場合(ステップS713において「Y」)、ステップS715において、選択部650は、ターゲットデータを格納したメモリ装置として第2のメモリ装置420Bを選択できる。
ステップS717において、プロセッサ670は、ターゲットデータを第2のメモリ装置420Bに格納することができる。
そして、ステップS719において、データ管理部630は、ターゲットデータが格納される第2のメモリ装置420Bの住所情報、ターゲットデータのR/W割合、及び格納完了可否を表すメタデータを生成できる。前述したように、メタデータを生成する時点は、説明の便宜のためのものである。
次に、ステップS721において、プロセッサ670は、生成されたメタデータを第2のメモリ装置420Bに格納することができる。図6Aにおいて説明されたように、第2のメモリ装置420Bが不揮発性メモリ装置であるから、プロセッサ670は、第2のメモリ装置420Bに格納されたターゲットデータに対応するメタデータを第2のメモリ装置420Bに格納することができる。
その後、ステップS731において、データ管理部630は、第2のメモリ装置420Bに格納されたターゲットデータに関する情報を反映するために、メモリマップをアップデートすることができる。
それに対し、ターゲットデータのR/W割合が第1の閾値より小さい場合(ステップS703において「N」)、ステップS723において、選択部650は、ターゲットデータを格納したメモリ装置として第3のメモリ装置420Cを選択できる。
ステップS725において、プロセッサ670は、ターゲットデータを第3のメモリ装置420Cに格納することができる。
そして、ステップS727において、データ管理部630は、ターゲットデータが格納される第3のメモリ装置420Cの住所情報、ターゲットデータのR/W割合、及び格納完了可否を表すメタデータを生成できる。前述したように、メタデータを生成する時点は、説明の便宜のためのものである。
次に、ステップS729において、プロセッサ670は、生成されたメタデータを第3のメモリ装置420Cに格納することができる。図6Aにおいて説明されたように、第3のメモリ装置420Cが不揮発性メモリ装置であるから、プロセッサ670は、第3のメモリ装置420Cに格納されたターゲットデータに対応するメタデータを第3のメモリ装置420Cに格納することができる。
その後、ステップS731において、データ管理部630は、第3のメモリ装置420Cに格納されたターゲットデータに関する情報を反映するために、メモリマップをアップデートすることができる。
図8は、本発明の他の実施形態に係るデータコントローラ410の動作を示したフローチャートである。具体的に、図8は、ターゲットデータが読み出しデータである場合、データコントローラ410の動作を示したフローチャートである。
まず、ステップS801において、データ管理部630は、選択されたメモリ装置のメモリマップを確認できる。すなわち、データ管理部630は、ターゲットデータの住所情報を確認できる。
その後、ステップS803において、プロセッサ410は、ターゲットデータを選択されたメモリ装置から読み出すことができる。
その後、ステップS805において、データ管理部630は、ターゲットデータが格納されるメモリ装置の変更が必要であるか判断することができる。例えば、ターゲットデータが第3のメモリ装置420Cに格納されている場合、ターゲットデータに対する読み出し割合が高まり、ターゲットデータに対するR/W割合が第2の閾値より大きくなったとするなら、ターゲットデータは、第3のメモリ装置420Cから第2のメモリ装置420Bに格納されるメモリ装置を変更する必要がありうる。
仮に、ターゲットデータが格納されるメモリ装置の変更が必要な場合ならば(ステップS805において「Y」)、ステップS807において、データコントローラ410は、ステップS703ないしS731を行うことができる。
それに対し、ターゲットデータが格納されるメモリ装置の変更が必要でない場合ならば(ステップS805において「N」)、データコントローラ410は、ターゲットデータが格納されたメモリ装置を変更せずに維持することができる。
図6Aに示すように、第1のメモリボード400Aのデータコントローラ510Aは、ターゲットデータの特性、すなわち、ターゲットデータのR/W割合に応じてターゲットデータを格納するのに適したメモリ装置を選択し、選択されたメモリ装置にターゲットデータを格納することができる。例えば、ターゲットデータのR/W割合を複数のメモリ装置420A〜420Cの各々の閾値と比較して、データコントローラ510Aは、早いデータ処理を要する場合には、第1のメモリ装置に格納することができ、早いデータ処理を要しない場合には、第3のメモリ装置420Cに格納することができる。ただし、データコントローラ510Aは、第3のメモリ装置420Cの閾値とは比較しなかった。以下では、図6Aにおいて説明されたデータ処理動作を拡張させて適用されたコンピュータシステム900が図9を介して説明される。
図9は、本発明の一実施形態に係るコンピュータシステム900の構造を概略的に示した図である。
コンピュータシステム900は、メモリボード管理部(Memory board Management、以下、MMU、910)及び複数のメモリボード400A及び400Bを備えることができる。MMU(910)は、図2〜図4において説明された複数の演算ボード200及び相互接続ボード300と対応することができる。例え、図面に2個のメモリボード400A及び400Bが示されており、第2のメモリボード400Bは、一種類のメモリ装置420Dを備えているが、これは、説明の便宜のための一実施形態であり、これに制限されるものではない。図6Aを参照して、第1のメモリ装置420Aは、DRAM、第2のメモリ装置420Bは、PCRAM、そして、第3のメモリ装置420Cは、NANDと仮定し、さらに、第4のメモリ装置は、HDDと仮定する。
図6Aに示すように、第1のメモリボード400A及び第2メモリボード400Bは、メモリボード400と対応することができ、各々のメモリボードに含まれた構成要素も各々対応することができる。例えば、第1のデータコントローラ510A及び第2のデータコントローラ510Bは、データコントローラ510と対応することができる。
MMU(910)は、複数のメモリボード400A及び400Bのメモリ装置構成に関する情報を管理できる。具体的に、MMU(910)は、第1のメモリボード400Aに第1のメモリ装置ないし第3のメモリ装置420A〜420Cが含まれたことが分かり、第2のメモリボード400Bに第4のメモリ装置420Dが含まれたことが分かる。
さらに、MMU(910)は、複数のメモリボード400A及び400Bの各々と通信することができる。したがって、MMU(910)は、第1のメモリボード400A及び第2のメモリボード400Bの各々にデータを伝達することができ、データを伝達されることもできる。また、MMU(910)は、第1のメモリボード400Aから伝達されたデータを第2のメモリボード400Bに伝達することができる。
図6Aに示すように、第1のメモリボード400Aの第1のデータコントローラ510Aは、ターゲットデータの特性に応じてターゲットデータを当該メモリ装置に格納することができる。前述したように、第1のデータコントローラ510Aは、ターゲットデータに対するR/W割合を測定し、第1のメモリ装置420Aの第1の閾値及び第2のメモリ装置420Bの第2の閾値と測定されたR/W割合とを比較してターゲットデータが格納されるメモリ装置を選択できる。さらに、第1のデータコントローラ510Aは、第3のメモリ装置420Cの第3の閾値と前記測定されたR/W割合とを比較することができる。仮に、ターゲットデータに対するR/W割合が第2の閾値より小さく、第3の閾値より大きいか、同じ場合、第1のデータコントローラ510Aは、ターゲットデータを第3のメモリ装置420Cに格納することができる。それに対し、ターゲットデータに対するR/W割合が第3の閾値より小さい場合、第1のデータコントローラ510Aは、ターゲットデータを第1のI/Oインターフェース530Aを介してMMU(910)に伝達することができる。MMU(910)は、複数のメモリボード400A及び400Bに含まれた複数のメモリ装置420A〜420Dの各々の特徴を知っているので、第1のメモリボード400Aから伝達されたターゲットデータを第2のメモリボード400Bに伝達することができる。第2のメモリボード400Bは、MMU(910)からターゲットデータを伝達されることができる。第2のデータコントローラ510Bは、第2のI/Oインターフェース530Bを介してターゲットデータを伝達されることができる。また、第2のデータコントローラ510Bは、第4のメモリ装置420Dにターゲットデータを格納することができる。同じ原理として、第2のデータコントローラ510Bは、ターゲットデータのメタデータも第4のメモリ装置420Dに格納することができる。
また、第4のメモリ装置420Dに格納されたターゲットデータのR/W割合が増加した場合、第2のデータコントローラ510Bは、ターゲットデータを読み出すことができる。そして、第2のデータコントローラ510Bは、ターゲットデータを第2のI/Oインターフェース530Bを介してMMU(910)に伝達することができる。MMU(910)は、第2のメモリボード400Bから伝達されたターゲットデータを第1のメモリボード400Aに伝達することができる。第1のデータコントローラ510Aは、ターゲットデータを第1のI/Oインターフェース530Aを介して伝達されることができる。その後、図6Aに説明された動作と同様に、第1のデータコントローラ510Aは、ターゲットデータに対するR/W割合に基づいて、当該メモリ装置にターゲットデータを格納することができる。同じ原理として、第1のデータコントローラ510Aは、ターゲットデータのメタデータを当該メモリ装置に格納することができる。
前述したように、本発明の一実施形態に係るデータコントローラ410及びコンピュータシステム900は、データ特性に応じてデータが格納されるメモリ装置を選択して格納することにより、データを効率的に処理することができる。すなわち、本発明の一実施形態に係るデータコントローラ410及びコンピュータシステム900は、早い処理を要するデータが格納されるメモリ装置及び相対的に早い処理を要しないデータが格納されるメモリ装置を分類して効率的にデータを処理できる。その結果、全体的なシステムの性能が向上することができる。
一方、本発明の詳細な説明では、具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は、説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどにより決められるべきである。

Claims (20)

  1. 互いに異なる種類である複数のメモリ装置及び、
    ターゲットデータのR/W割合を測定するカウンタと、
    前記ターゲットデータに対応するメタデータを生成するデータ管理部と、
    前記ターゲットデータのR/W割合を前記複数のメモリ装置の各々の閾値と比較して、前記ターゲットデータが格納されるターゲットメモリ装置を選択し、前記ターゲットデータが格納されるメモリ装置に基づいて、前記メタデータを格納するためのメタメモリ装置を選択する選択部と、
    前記ターゲットメモリ装置に前記ターゲットデータを格納し、前記メタメモリ装置に前記メタデータを各々格納するプロセッサとを備えるコントローラを備え、
    前記R/W割合は、前記ターゲットデータの書き込み回数に対する前記ターゲットデータの読み出し回数の割合であるメモリシステム。
  2. 前記選択部は、前記ターゲットデータのR/W割合を前記第1のメモリ装置に対応する第1の閾値と比較し、前記第1の閾値より前記R/W割合が大きいか、同じ場合、前記ターゲットメモリ装置として前記第1のメモリ装置を選択し、
    前記プロセッサは、前記第1のメモリ装置に前記ターゲットデータを格納する請求項1に記載のメモリシステム。
  3. 前記選択部は、前記ターゲットメモリ装置に基づいて、前記メタメモリ装置として第2のメモリ装置を選択し、
    前記プロセッサは、前記第2のメモリ装置に前記メタデータを格納する請求項2に記載のメモリシステム。
  4. 前記R/W割合が前記第1の閾値より小さい場合、
    前記選択部は、前記R/W割合を前記第2のメモリ装置に対応する第2の閾値と比較し、前記第2の閾値より前記R/W割合が大きいか、同じ場合、前記ターゲットメモリ装置として前記第2のメモリ装置を選択し、
    前記プロセッサは、前記第2のメモリ装置に前記ターゲットデータを格納する請求項3に記載のメモリシステム。
  5. 前記選択部は、前記ターゲットメモリ装置に基づいて、前記メタメモリ装置として第3のメモリ装置を選択し、
    前記プロセッサは、前記第3のメモリ装置に前記メタデータを格納する請求項4に記載のメモリシステム。
  6. 前記R/W割合が前記第2の閾値より小さい場合、
    前記選択部は、前記ターゲットメモリ装置として前記第3のメモリ装置を選択する請求項5に記載のメモリシステム。
  7. 前記複数のメモリ装置が揮発性メモリ装置と不揮発性メモリ装置とを備え、
    前記ターゲットメモリ装置が揮発性メモリ装置である場合、
    前記プロセッサは、
    前記ターゲットデータに対応する前記メタデータを前記不揮発性メモリ装置に格納する請求項6に記載のメモリシステム。
  8. 互いに異なる種類の複数のメモリ装置及び前記複数のメモリ装置の各々を制御するコントローラを備えるメモリシステムの動作方法において、
    ターゲットデータのR/W割合を測定するステップと、
    前記ターゲットデータのR/W割合を前記複数のメモリ装置の各々の閾値と比較するステップと、
    前記比較結果に基づいて、前記ターゲットデータが格納されるターゲットメモリ装置を選択するステップと、
    前記ターゲットデータが格納されたメモリ装置に基づいて、前記複数のメモリ装置のうち、前記ターゲットデータに対応するメタデータを格納するメタメモリ装置を選択するステップと、
    前記ターゲットメモリ装置に前記ターゲットデータを格納するステップと、
    前記メタメモリ装置に前記メタデータを格納するステップと、
    を含み、
    前記R/W割合は、前記ターゲットデータの書き込み回数に対する前記ターゲットデータの読み出し回数の割合であるメモリシステムの動作方法。
  9. 前記比較するステップは、第1のメモリ装置に対応する第1の閾値と前記R/W割合とを比較し、
    前記R/W割合が前記第1の閾値より大きいか、同じ場合、
    前記ターゲットメモリ装置を選択するステップは、前記ターゲットメモリ装置として前記第1のメモリ装置を選択し、
    前記ターゲットデータを格納するステップは、前記第1のメモリ装置に前記ターゲットデータを格納する請求項8に記載のメモリシステムの動作方法。
  10. 前記メタメモリ装置を選択するステップは、第2のメモリ装置を選択し、
    前記メタデータを格納するステップは、前記第2のメモリ装置に前記メタデータを格納する請求項9に記載のメモリシステムの動作方法。
  11. 前記R/W割合が前記第1の閾値より小さい場合、
    前記R/W割合を比較するステップは、前記R/W割合を前記第2のメモリ装置に対応する第2の閾値と比較し、
    前記ターゲットメモリ装置を選択するステップは、前記第2の閾値より前記R/W割合が大きいか、同じ場合、前記ターゲットメモリ装置として前記第2のメモリ装置を選択し、
    前記ターゲットデータを格納するステップは、前記第2のメモリ装置に前記ターゲットデータを格納する請求項10に記載のメモリシステムの動作方法。
  12. 前記メタメモリ装置を選択するステップは、第3のメモリ装置を選択し、
    前記メタデータを格納するステップは、前記第3のメモリ装置に前記メタデータを格納する請求項11に記載のメモリシステムの動作方法。
  13. 前記R/W割合が前記第2の閾値より小さい場合、
    前記ターゲットメモリ装置を選択するステップは、前記第3のメモリ装置を選択し、
    前記メタメモリ装置を選択するステップは、第3のメモリ装置を選択し、
    前記ターゲットデータを格納するステップ及び前記メタデータを格納するステップは、前記第3のメモリ装置に前記ターゲットデータ及び前記メタデータを格納する請求項12に記載のメモリシステムの動作方法。
  14. 前記複数のメモリ装置が揮発性メモリ装置と不揮発性メモリ装置とを備え、
    前記ターゲットメモリ装置が揮発性メモリ装置である場合、
    前記ターゲットデータを格納するステップは、前記揮発性メモリ装置に前記ターゲットデータを格納し、
    前記メタデータを格納するステップは、前記不揮発性メモリ装置に前記メタデータを格納する請求項13に記載のメモリシステムの動作方法。
  15. コンピュータシステムにおいて、
    複数のメモリ装置の各々を制御する第1のコントローラ及び互いに種類の相違した複数のメモリ装置を備える第1のメモリシステムと、
    前記第1のメモリシステムに含まれた複数のメモリ装置と種類の相違した追加的な複数のメモリ装置及び前記追加的な複数のメモリ装置を制御する第2のコントローラを備える第2のメモリシステムと、
    前記第1のメモリシステム及び前記第2のメモリシステムとデータ通信するメモリボード管理部と、
    を備え、
    前記R/W割合は、前記ターゲットデータの書き込み回数に対する前記ターゲットデータの読み出し回数の割合であり、
    前記第1のコントローラ及び前記第2のコントローラは、
    前記メモリボード管理部から受信されたターゲットデータに対するR/W割合を決定し、前記第1のメモリシステムに含まれた前記複数のメモリ装置の各々の閾値と前記第2のメモリシステムに含まれた前記追加的な複数のメモリ装置の各々の閾値とを前記R/W割合と比較し、前記複数のメモリ装置及び前記追加的な複数のメモリ装置のうち、前記ターゲットデータを格納するターゲットメモリ装置を選択し、前記ターゲットメモリ装置に前記ターゲットデータを格納するコンピュータシステム。
  16. 前記複数のメモリ装置が第1のメモリ装置、第2メモリ装置、及び第3のメモリ装置を備えるとき、
    前記第1のコントローラは、前記R/W割合を前記第1のメモリ装置に対応する第1の閾値と比較し、前記R/W割合が前記第1の閾値より大きいか、同じ場合、前記ターゲットメモリ装置として前記第1のメモリ装置を選択する請求項15に記載のコンピュータシステム。
  17. 前記R/W割合が前記第1の閾値より小さい場合、
    前記第1のコントローラは、前記R/W割合を前記第2のメモリ装置に対応する第2の閾値と比較し、前記R/W割合が前記第2の閾値より大きいか、同じ場合、前記ターゲットメモリ装置として前記第2のメモリ装置を選択する請求項16に記載のコンピュータシステム。
  18. 前記R/W割合が前記第2の閾値より小さい場合、
    前記第1のコントローラは、前記R/W割合を前記第3のメモリ装置に対応する第3の閾値と比較し、前記R/W割合が前記第3の閾値より大きいか、同じ場合、ターゲットメモリ装置として前記第3のメモリ装置を選択する請求項17に記載のコンピュータシステム。
  19. 前記R/W割合が前記第3の閾値より小さい場合、
    前記第1のコントローラは、前記ターゲットデータを前記メモリボード管理部に伝達し、
    前記メモリボード管理部は、伝達された前記ターゲットデータを第2のコントローラに伝達し、
    前記第2のコントローラは、前記追加メモリ装置に前記ターゲットデータを格納する請求項18に記載のコンピュータシステム。
  20. 前記R/W割合が第1の閾値あるいは第2の閾値あるいは第3の閾値より大きくなった場合、
    前記第2のコントローラは、前記ターゲットデータを前記メモリボード管理部に提供し、
    前記メモリボード管理部は、提供された前記ターゲットデータを第1のコントローラに伝達し、
    前記第1のコントローラは、前記ターゲットデータを前記第1のメモリシステムに含まれた前記複数のメモリ装置のうち、いずれか1つのターゲットメモリ装置に格納する請求項19に記載のコンピュータシステム。
JP2019000540A 2018-03-28 2019-01-07 メモリシステムを含むコンピュータシステム Active JP7368942B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180036122A KR20190113437A (ko) 2018-03-28 2018-03-28 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 컴퓨팅 시스템
KR10-2018-0036122 2018-03-28

Publications (2)

Publication Number Publication Date
JP2019175433A true JP2019175433A (ja) 2019-10-10
JP7368942B2 JP7368942B2 (ja) 2023-10-25

Family

ID=68054382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019000540A Active JP7368942B2 (ja) 2018-03-28 2019-01-07 メモリシステムを含むコンピュータシステム

Country Status (5)

Country Link
US (2) US10754570B2 (ja)
JP (1) JP7368942B2 (ja)
KR (1) KR20190113437A (ja)
CN (1) CN110321071B (ja)
TW (1) TWI795505B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021060406A1 (ja) 2019-09-26 2021-04-01 日本電気株式会社 送信側中継装置、システム、方法、及び非一時的なコンピュータ可読媒体

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520488B2 (en) * 2020-04-22 2022-12-06 Dell Products, L.P. Method and apparatus for identifying a device missing from a consistency group
TWI767584B (zh) * 2021-02-24 2022-06-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007115232A (ja) * 2005-09-22 2007-05-10 Hitachi Ltd 低消費電力記憶装置とその制御方法
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US20170075812A1 (en) * 2015-09-16 2017-03-16 Intel Corporation Technologies for managing a dynamic read cache of a solid state drive
US20170242609A1 (en) * 2016-02-23 2017-08-24 SK Hynix Inc. Memory system and operation method thereof

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341300B1 (en) * 2007-08-30 2012-12-25 Virident Systems, Inc. Systems for sustained read and write performance with non-volatile memory
KR101464338B1 (ko) 2007-10-25 2014-11-25 삼성전자주식회사 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템
US7801994B2 (en) * 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
US8230123B2 (en) * 2010-08-23 2012-07-24 International Business Machines Corporation Using information on input/output (I/O) sizes of accesses to an extent to determine a type of storage device for the extent
JP2012094030A (ja) 2010-10-28 2012-05-17 Hitachi Ltd 計算機システム及び処理制御方法
US8773904B2 (en) * 2011-12-28 2014-07-08 Apple Inc. Optimized threshold search in analog memory cells
KR101999132B1 (ko) 2012-12-17 2019-10-01 삼성전자주식회사 가상 머신 환경에서 메모리 관리 방법 및 장치
US9792227B2 (en) 2014-08-19 2017-10-17 Samsung Electronics Co., Ltd. Heterogeneous unified memory
KR102491651B1 (ko) * 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
KR102435873B1 (ko) * 2015-12-18 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 리드 리클레임 방법
JP2018032323A (ja) * 2016-08-26 2018-03-01 株式会社東芝 記憶装置、メモリic、および、メモリicへのライト処理方法
TWI602061B (zh) * 2017-03-16 2017-10-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元
KR102394695B1 (ko) 2017-11-08 2022-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007115232A (ja) * 2005-09-22 2007-05-10 Hitachi Ltd 低消費電力記憶装置とその制御方法
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US20170075812A1 (en) * 2015-09-16 2017-03-16 Intel Corporation Technologies for managing a dynamic read cache of a solid state drive
US20170242609A1 (en) * 2016-02-23 2017-08-24 SK Hynix Inc. Memory system and operation method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021060406A1 (ja) 2019-09-26 2021-04-01 日本電気株式会社 送信側中継装置、システム、方法、及び非一時的なコンピュータ可読媒体

Also Published As

Publication number Publication date
TWI795505B (zh) 2023-03-11
CN110321071A (zh) 2019-10-11
US10754570B2 (en) 2020-08-25
KR20190113437A (ko) 2019-10-08
TW201942750A (zh) 2019-11-01
US20200348871A1 (en) 2020-11-05
US20190303032A1 (en) 2019-10-03
JP7368942B2 (ja) 2023-10-25
CN110321071B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN110008149B (zh) 融合式存储器件及其操作方法
US11636014B2 (en) Memory system and data processing system including the same
JP7449063B2 (ja) メモリシステム及びメモリシステムの動作方法
JP7368942B2 (ja) メモリシステムを含むコンピュータシステム
US11461024B2 (en) Computing system and operating method thereof
KR102455880B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210006664A (ko) 메모리 시스템 및 그것의 동작방법
US11221931B2 (en) Memory system and data processing system
KR102394695B1 (ko) 메모리 시스템 및 그것의 동작방법
KR102586741B1 (ko) 메모리 시스템 및 그것의 동작방법
US10928871B2 (en) Computing device and operation method thereof
KR102433549B1 (ko) 통합 메모리 디바이스 및 그의 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230828

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231013

R150 Certificate of patent or registration of utility model

Ref document number: 7368942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150