JP2019192221A - メモリシステム及びその動作方法 - Google Patents

メモリシステム及びその動作方法 Download PDF

Info

Publication number
JP2019192221A
JP2019192221A JP2019048206A JP2019048206A JP2019192221A JP 2019192221 A JP2019192221 A JP 2019192221A JP 2019048206 A JP2019048206 A JP 2019048206A JP 2019048206 A JP2019048206 A JP 2019048206A JP 2019192221 A JP2019192221 A JP 2019192221A
Authority
JP
Japan
Prior art keywords
memory
memory device
available
memory devices
target data
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
JP2019048206A
Other languages
English (en)
Other versions
JP7299724B2 (ja
Inventor
金善雄
Sun-Woong 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 JP2019192221A publication Critical patent/JP2019192221A/ja
Application granted granted Critical
Publication of JP7299724B2 publication Critical patent/JP7299724B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies

Abstract

【課題】システムの可用性(availability)を高く維持しつつ、欠陥が発生されたメモリ装置を復旧できるメモリシステム、コンピュータシステム、及びそれらの各々の動作方法を提供すること。【解決手段】本発明の実施形態に係るメモリシステムにおいて、ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置と、前記複数のメモリ装置の各々を制御するコントローラとを備え、前記コントローラは、前記複数のメモリ装置のうち、欠陥メモリ装置を検出する検出部と、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサとを備えることができる。【選択図】図7

Description

本発明は、一般に、メモリシステムに関し、より具体的には、データ処理のためのメモリシステム及びメモリシステムの動作方法に関する。
データは、第4次産業革命時代において企業等のビジネスに最も重要な資産となっており、これにより、大規模データを早く送信及び分析するように支援する最新技術に対する需要が次第に増加している。例えば、人工知能、自律走行、ロボット、ヘルスケア、仮想現実(virtual reality、VR)/拡張現実(augmented reality、AR)、スマートホームなどが拡大されるにつれて、サーバやデータセンタに対する需要の増加が予想されている。
レガシ(legacy)データセンタは、資源等(例えば、コンピュータ、ネットワーク、ストレージ)を1つの装備内に含める構造であった。しかしながら、未来の大容量データセンタは、資源を各々別に構成し、論理的に資源を再構成する構造を有することができる。例えば、大容量データセンタは、資源を各々ラック(rack)水準でモジュール化し、用途に応じて資源を再構成して供給できる構造を有することができる。したがって、未来の大容量データセンタに使用するのに適した統合型ストレージまたはメモリデバイスが求められている。
本発明は、システムの可用性(availability)を高く維持しつつ、欠陥が発生されたメモリ装置を復旧できるメモリシステム、コンピュータシステム、及びそれらの各々の動作方法について提案する。
本発明の実施形態に係るメモリシステムにおいて、ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置と、前記複数のメモリ装置の各々を制御するコントローラとを備え、前記コントローラは、前記複数のメモリ装置のうち、欠陥メモリ装置を検出する検出部と、前記複数のメモリ装置の各々の前記オーバープロビジョニング領域の可用情報を格納する管理部、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサとを備えることができる。
本発明の実施形態に係るメモリシステムの動作方法において、複数のメモリ装置のうち、欠陥メモリ装置を検出するステップと、前記複数のメモリ装置の各々のオーバープロビジョニング領域の可用情報を格納するステップと、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択するステップと、前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるステップとを含むことができる。
本発明の実施形態に係るコンピュータシステムにおいて、複数のメモリシステムと、前記複数のメモリシステムの各々と通信するメモリシステム管理部とを備え、前記複数のメモリシステムの各々は、ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置及び前記複数のメモリ装置の各々を制御するコントローラを備え、前記コントローラは、前記複数のメモリ装置の各々に対応する信頼度をモニタリングして、予め設定された閾値より小さい信頼度を有するメモリ装置を前記欠陥メモリ装置として検出する検出部、前記複数のメモリ装置の各々の前記オーバープロビジョニング領域の可用情報を格納し、前記複数のメモリ装置の各々のメモリマップを格納する管理部、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部、及び前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサを備えることができる。
本発明の実施形態によれば、システムの可用性を高く維持しつつ、欠陥が発生されたメモリ装置を復旧でき、全体的なシステムの効率性を増加させることができる。
データ処理システムを示した図である。 本発明の実施形態に係るコンピュータラックの構造を概略的に示した図である。 本発明の実施形態に係るコンピュータラックのブロック構成を示した図である。 本発明の実施形態に係る演算ボードの構成を示した図である。 本発明の実施形態に係るメモリボードの構成を概略的に示した図である。 本発明の実施形態に係るメモリ装置の構造を示した図である。 本発明の一実施形態に係るメモリシステムの構造を示した図である。 本発明の一実施形態に係るデータコントローラの動作を示したフローチャートである。 本発明の一実施形態に係るデータコントローラの動作を示したフローチャートである。 本発明の一実施形態に係るコンピュータシステムの構造を示した図である。 本発明の一実施形態に係るコンピュータシステムの動作を示したフローチャートである。 本発明の一実施形態に係るコンピュータシステムの動作を示したフローチャートである。
以下、本発明に係る好ましい実施形態を添付した図面を参照して説明する。下記の説明では、本発明に係る動作を理解するのに必要な部分のみが説明され、それ以外の部分の説明は、本発明の要旨を濁さないように省略されるであろうということに留意すべきである。
本発明の実施形態等は、メモリシステムの使用を維持しつつ、バッドメモリ装置を復旧できるメモリシステムに関連する。
図1は、データ処理システム10を示した図である。図1に示すように、データ処理システム10は、複数のコンピュータラック(computing racks、20)と管理インターフェース(management interface、30)、そして、これらの間の通信が可能なようにするネットワーク(network、40)を備えることができる。このようなラックスケール構造(rack−scale architecture)を有するデータ処理システム10は、大容量データ処理のためのデータセンタなどに使用されることができる。
複数のコンピュータラック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は、メモリ装置等を容易に連結するか、連結を解除できるホットプラグ(hot−plug)を支援する直列インターフェースでありうる。例えば、I/Oインターフェース530は、PCIe(Peripheral Component Interconnect Express)、QPI(QuickPath Interconnect)、イーサネット(Ethernet)などのようなプロトコルにしたがってデータコントローラ510と相互接続ボード300との間の通信を支援できる。
今日、大容量のデータを処理するために、図2〜図5を介して説明されたように、複数の演算ボード200及び複数のメモリボード400を必要とする。さらに、大容量のデータを格納するために、複数のメモリボード400の各々は、複数のメモリ装置420を備えることができる。
ただし、複数のメモリ装置のうち、いずれか1つに欠陥が発生された場合、欠陥が発生されたメモリ装置(以下、欠陥メモリ装置)を復旧するために、全体システムが中断され得る。また、欠陥メモリ装置に格納されたデータは、保護を受けることができない場合がある。本発明は、複数のメモリ装置のうち、欠陥メモリ装置が発生されても、ほとんどのシステムの使用を維持しつつ、欠陥メモリ装置を復旧できるメモリシステム700、コンピュータシステム1000、及びそれらの各々の動作方法を提案する。
図6は、本発明の実施形態に係るメモリ装置600の構造を示した図である。図6に示されたメモリ装置600は、図5に示された複数のメモリ装置420の各々と対応することができる。
メモリ装置600は、一般的に、データが格納されるユーザ領域610と特別な事情がない限り、使用されないオーバープロビジョニング(over−provisioning)領域(以下、OP領域、630)を含むことができる。
OP領域630は、メモリ装置の寿命を増加させるために備えられることができる。メモリ装置600は、データが格納される複数のメモリセルを含むことができる。さらに、複数のメモリセルの各々は、一定の寿命を有することができる。例えば、メモリセルにデータが10000回書き込まれると、当該メモリセルの寿命は終了することができる。したがって、メモリセルの寿命を保存するための方法のうちの1つとして、メモリセルにデータが8000回書き込まれると、当該メモリセルにそれ以上書き込み動作が行われることを防き、読み出し動作のみが当該メモリセルに対して行われ得る。上記のような方法にてメモリセルの寿命を保存するためには、究極的に複数のメモリセルの各々は、なるべく均等に使用されなければならない。すなわち、特定メモリセルが繰り返し的に使用される場合、当該メモリセルの寿命は急速に減少されるであろう。ただし、OS動作を行うためのデータが格納されたメモリセルあるいは頻繁に使用されるデータが格納されたメモリセルのように、使用が集中するメモリセルが存在する場合、当該メモリセルの過度な使用を防止するために、メモリ装置600の余分領域が存在し得る。すなわち、当該メモリセルの過度な使用を防止するために、本来当該メモリセルに格納されるべきデータが余分領域に格納され得る。このような余分領域がOP領域630である。一実施形態において、メモリ装置は、特定割合のOP領域630を有することができる。
図7〜図12を介して説明される本発明は、前述したOP領域630を活用して、欠陥メモリ装置発生の際、無欠性を維持しつつ、欠陥メモリ装置を復旧できるメモリシステム700、コンピュータシステム1000、及びそれらの各々の動作方法を提案する。
図7は、本発明の一実施形態に係るメモリシステム700の構造を示した図である。図5を参照すれば、メモリシステム700は、メモリボード400と対応することができる。
メモリシステム700は、コントローラ710及び複数のメモリ装置720を備えることができる。コントローラ710は、図5に示されたコントローラ410と対応することができ、複数のメモリ装置720は、図5に示された複数のメモリ装置420と対応することができる。一実施形態において、複数のメモリ装置720に含まれたメモリ装置は、各々同種メモリ装置を含むことができる。ただし、これは、説明の便宜のためであり、これに制限されるものではない。他の実施形態において、複数のメモリ装置720に含まれたメモリ装置は、異種メモリ装置を含むことができ、同種メモリ装置を含むこともでき、これらの他の組み合わせを有することもできる。
コントローラ710は、データコントローラ730、I/Oインターフェース750、及びメモリコントローラ760を備えることができる。図5を参照すれば、データコントローラ730は、図5に示されたデータコントローラ510と対応し、I/Oインターフェース750は、図5に示されたI/Oインターフェース530と対応することができる。そして、メモリコントローラ760は、図5に示された複数のメモリコントローラ520A〜520Cの各々と対応することができる。
図5を参照して、I/Oインターフェース750は、図3の相互接続ボード300を介してのデータコントローラ730と演算ボード200との間でのインターフェーシングを支援できる。また、メモリコントローラ760は、データコントローラ730と複数のメモリ装置720との間に位置し、これらの間で各々のインターフェーシングを支援できる。前述したように、説明の便宜のために、図7に示された複数のメモリ装置720は、同じまたは同種のメモリ装置を含むことができる。したがって、複数のメモリ装置720に含まれた各々異なるメモリ装置間のインターフェーシングを支援するメモリコントローラ760は、同じメモリコントローラまたは同種のメモリコントローラを含むことができる。メモリコントローラ760に含まれた同種のメモリコントローラは、コントローラ710に含まれることができる。他の実施形態において、複数のメモリ装置720内のメモリ装置が他の類型の装置であるか、一種類のメモリ装置でない場合、複数のメモリ装置720に含まれた他の種類のメモリ装置等と関連した他の類型のインターフェーシングを支援するために、他の類型のメモリコントローラまたは一種類でないメモリコントローラがメモリコントローラ760に含まれ得る。
I/Oインターフェース750は、メモリ装置を容易に連結したり、連結を解除できるホットプラグ(hot−plug)を支援する直列インターフェースでありうる。
データコントローラ730は、検出部733、データ管理部735、選択部737、及びプロセッサ739を備えることができる。
検出部733は、複数のメモリ装置720の各々がどれほど信頼性があるかをモニタリングでき、さらに、複数のメモリ装置720のうち、欠陥メモリ装置を検出できる。例えば、データコントローラ730に含まれたECC(Error Correction Code)部(図示せず)は、複数のメモリ装置720の各々から伝達されたデータに対してECC復号動作を行うことができ、ECC復号動作を介して伝達されたデータに対するエラーデータを判断できる。ECC部(図示せず)は、判断されたエラーデータに関する情報を検出部733に伝達することができ、検出部733は、複数のメモリ装置720に対応してエラーデータを管理できる。そして、検出部733は、データのエラーの数に基づいて複数のメモリ装置720のうち、欠陥メモリ装置を検出できる。欠陥メモリ装置は、当該メモリ装置に対応する信頼度が予め設定された閾値より低くなった状態で判断されるメモリ装置を意味する。例えば、信頼度は、当該メモリ装置で発生されたエラーデータ数に基づいて判断されることができ、特定メモリ装置でエラーデータの数が予め設定された閾値より高い場合、検出部733は、当該メモリ装置を欠陥メモリとして判断することができる。ただし、これは、1つの実施形態に過ぎず、これに制限されるものではない。予め設定された閾値または予め設定された基準のようなパラメータと関連してここで使用された「予め設定された」という表現は、プロセスまたはアルゴリズムでパラメータが使用される前にパラメータ値が決定されるということを意味する。一部の実施形態において、パラメータに対する値は、プロセスまたはアルゴリズムが始まる前に決定されることができる。他の実施形態において、パラメータに対する値は、プロセスまたはアルゴリズムが行われる間に決定されるが、パラメータは、プロセスまたはアルゴリズムで使用される前に決定されることができる。
さらに、検出部733は、複数のメモリ装置620の各々に対応する前記決定されたエラーデータ情報を格納することができる。例えば、第1のメモリ装置723が欠陥メモリ装置として検出された場合、検出部733は、第1のメモリ装置723に対応する信頼度に関する情報及び第1のメモリ装置723に対応する前記決定されたエラーデータをアップデートすることができる。他の実施形態において、検出部733は、正常メモリ装置である第2のメモリ装置725に対応する信頼度に関する情報及び第2のメモリ装置725に対応する前記決定されたエラーデータを別にアップデートしないことがある。今後、第1のメモリ装置723が復旧されて、正常メモリ装置となった場合、例えば、対応メモリ装置で発生したエラーデータの数が予め設定された閾値より低い場合、検出部733は、第1のメモリ装置723に対応する信頼度に関する情報を再度アップデートすることができる。例えば、検出部733は、欠陥メモリ装置に対して「1」、正常メモリ装置に対して「0」に表して、複数のメモリ装置620の各々の信頼度に関する情報を管理できる。これは、一実施形態に該当し、これに制限されるものではない。
データ管理部735は、複数のメモリ装置720の各々のOP領域を管理できる。具体的に、データ管理部735は、複数のメモリ装置720の各々のOP領域のうち、可用(available)OP領域をモニタリングでき、複数のメモリ装置720の各々のOP領域に対する可用情報(以下、可用OP情報)を格納することができる。例えば、データ管理部735は、複数のメモリ装置720の各々の可用OP情報を「1」、不可用OP領域に対応する可用OP情報を「0」に表して、可用OP情報を当該メモリ装置と対応するように格納することができる。これは、一実施形態に該当し、これに制限されるものではない。
他の実施形態において、データ管理部735は、各々のメモリ装置の可用OP領域を「0」に表し、不可用OP領域を「1」に表すことにより、対応メモリ装置等と関連した可用OP情報を表すことができる。一部の実施形態において、データ管理部735は、各メモリ装置の可用OP領域を表す、対応メモリ装置等と関連した可用OP情報だけを格納することができる。一部の実施形態において、データ管理部735は、各メモリ装置の不可用OP領域を表す、対応メモリ装置等と関連した可用OP情報だけを格納することができる。一部の実施形態において、データ管理部735は、各メモリ装置の可用OP領域を表す、対応メモリ装置等と関連した可用OP情報及び各メモリ装置の不可用OP領域を表す対応メモリ装置等と関連した可用OP情報を格納することができる。
また、データ管理部735は、複数のメモリ装置720の各々のメモリマップを格納することができる。したがって、複数のメモリ装置720間にデータ移動が発生された場合、データ管理部735は、データ移動を反映するために、メモリマップをアップデートすることができる。
選択部737は、可用OP情報に基づいて欠陥メモリ装置に格納されたデータ(以下、ターゲットデータ)が格納され得るOP領域を有したメモリ装置(以下、可用メモリ装置)をメモリシステム700内で検索することができる。さらに、選択部737は、予め設定された基準にしたがって可用メモリ装置を選択できる。仮に、欠陥メモリ装置に格納されたデータのサイズが可用メモリ装置のOP領域より大きい場合、選択部737は、前記データが格納される複数の可用メモリ装置を選択できる。これは、一実施形態に該当し、これに制限されるものではない。
他の実施形態において、メモリシステム700内に可用メモリ装置が存在しないならば、ターゲットデータを他のメモリシステムに伝達することができる。これに対する動作は、図11において説明される。
プロセッサ739は、ターゲットデータを欠陥メモリ装置から選択部737により選択された可用メモリ装置のOP領域に移動させることができる。例えば、プロセッサ739は、ターゲットデータを欠陥メモリ装置から読み出すことができる。読み出されたターゲットデータは、図面に図示されていないが、データコントローラ710の内部メモリに仮に格納されることができる。そして、プロセッサ739は、可用メモリ装置のOP領域にターゲットデータを格納することができる。ターゲットデータが可用メモリ装置のOP領域に移動された後に、データ管理部735は、ターゲットデータに対応する住所情報を反映するために、メモリマップをアップデートすることができる。さらに、今後、ターゲットデータに対する読み出し要請が入力された場合、プロセッサ739は、メモリマップに基づいてOP領域に格納されたターゲットデータを読み出すことができる。
それから、欠陥メモリ装置が正常メモリ装置(以下、復旧メモリ装置)に復旧された場合、プロセッサ739は、OP領域に格納されたターゲットデータを読み出して復旧メモリ装置にターゲットデータを格納することができる。さらに、検出部733は、復旧メモリ装置に対する信頼度に関する情報をアップデートすることができ、データ管理部735は、ターゲットデータに対応する住所情報を反映するために、メモリマップをアップデートすることができる。
図8は、一実施形態に係るデータコントローラ710の動作を示したフローチャートである。
まず、ステップS801において、検出部733は、複数のメモリ装置720の各々の信頼度に関する情報をモニタリングできる。例えば、検出部733は、ステップS801において複数のメモリ装置720に含まれたメモリ装置またはメモリ装置に対応する決定されたエラーデータ情報をモニタリングできる。
ステップS803において、検出部733は、モニタリングされた信頼度に関する情報に基づいて、複数のメモリ装置720の各々に対応するデータエラーの数が予め設定された閾値より大きいか、同じメモリ装置を欠陥メモリ装置として検出することができる。
仮に、欠陥メモリ装置が検出されなかった場合(ステップS803において、「N」)、検出部733は、ステップS801においてメモリ装置等の信頼度に関する情報をモニタリングし続けて、各メモリ装置の予め設定された閾値より大きいか、同じデータエラー数を検出できる。
欠陥メモリ装置が検出された場合(ステップS803において、「Y」)、ステップS805において、プロセッサ739は、欠陥メモリ装置に格納されたターゲットデータを読み出すことができる。さらに、プロセッサ739は、ターゲットデータをデータコントローラ710の内部メモリに仮に格納することができる。
ステップS807において、選択部737は、データ管理部735に格納された複数のメモリ装置720の各々の可用OP領域情報に基づいて、メモリシステム700内で可用メモリ装置を検索できる。
仮に、メモリシステム700内に可用メモリ装置が存在しないならば(ステップS807において、「N」)、ステップS809において、図10で説明される動作が行われ得る。これに対する動作は、図10を介して説明される。
しかし、メモリシステム700内に可用メモリ装置が存在するならば、ステップS811において、選択部737は、予め設定された基準にしたがってメモリ装置を選択できる。
ステップS813において、プロセッサ739は、可用メモリ装置のOP領域にターゲットデータを格納することができる。一部の実施形態において、ステップS813でプロセッサ739は、複数のOP領域にターゲットデータを格納することができ、OP領域の各々は、他の可用メモリ装置等のターゲットデータを格納するために、対応する可用メモリ装置に位置することができる。
また、ステップS815において、データ管理部735は、ターゲットデータに対応する住所情報をアップデートすることができる。
図9は、本発明の一実施形態に係るデータコントローラ710の動作を示したフローチャートである。図9に示されたデータコントローラ710の動作は、図8において説明されたデータコントローラ710の動作の後続として進行されることができる。
ステップS901において、欠陥メモリ装置は、復旧メモリ装置と復旧されることができる。
仮に、欠陥メモリ装置が復旧されなかったならば(ステップS901において、「N」)、ステップS903において、ターゲットデータに対応するアクセス要請は、図8において説明されたOP領域で行われることができる。例えば、ターゲットデータに対応する読み出し要請に対してプロセッサ739は、ターゲットデータを読み出すようにターゲットデータが格納された可用メモリ装置を制御できる。
しかし、欠陥メモリ装置が復旧されたならば(ステップS901において、「Y」)、ステップS905において、データ管理部735は、復旧メモリ装置に対応する信頼度に関する情報をアップデートすることができる。
そして、ステップS907において、プロセッサ739は、現在ターゲットデータが格納されたOP領域でターゲットデータを読み出すことができる。ターゲットデータは、データコントローラ710内部のメモリに仮に格納されることができる。
さらに、ステップS909において、プロセッサ739は、ターゲットデータを復旧メモリ装置に格納することができる。
最後に、ステップS911において、データ管理部735は、ターゲットデータに対応する住所情報をアップデートすることができる。例えば、データ管理部735は、復旧メモリ装置に格納されたターゲットデータの住所情報を反映するために、メモリマップをアップデートすることができる。
図7〜図9に説明された本発明は、複数のメモリ装置720のうち、欠陥メモリ装置が発生されても、上記の過程を介してメモリシステム700のほとんどの可用性が維持された間、欠陥メモリ装置を復旧することができる。
先に、図7〜図9において、単一メモリシステム700に欠陥メモリ装置が発生された場合、メモリシステム700のほとんどの可用性を維持しつつ、欠陥メモリ装置を復旧する本発明の動作過程が説明された。ただし、単一メモリシステム700に、欠陥メモリ装置に格納されたデータを仮に格納することができる可用OP領域が存在しないとき、メモリシステム700の可用性を維持しつつ、欠陥メモリ装置を復旧できないという問題が生じる可能性がある。以下では、図10〜図12において、このような問題点を解決できるコンピュータシステム1000が説明される。
図10は、本発明の一実施形態に係るコンピュータシステム1000の構造を示した図である。
コンピュータシステム1000は、複数のメモリシステム700A及び700B及びメモリシステム管理部(以下、MMU、1010)を備えることができる。図10においてコンピュータシステム1000は、第1のメモリシステム700A及び第2のメモリシステム700Bだけを備えているが、より多くのメモリシステムを備えられることは当たり前である。
複数のメモリシステム700A及び700Bの各々は、図7に説明されたメモリシステム700と対応することができる。さらに、メモリシステム700A及び700B内部に備えられたコントローラ710A及び710B及び複数のメモリ装置720A及び720Bの各々は、図7に示されたコントローラ710及び複数のメモリ装置720と各々対応することができる。
MMU(1010)は、図2〜図4において説明された演算ボード200及び相互接続ボード300に対応することができる。したがって、MMU(1010)は、複数のメモリシステム700A及び700Bの各々を管理でき、複数のメモリシステム700A及び700Bの各々とデータ通信することができる。すなわち、MMU(1010)は、第1のメモリシステム700Aから伝達されたデータを第2のメモリシステム700Bに伝達することができる。MMU(1010)は、第2のメモリシステム700Bから受信されたデータを第1のメモリシステム700Aに提供することもできる。他の実施形態において、MMU(1010)は、2つ以上のメモリシステムを管理できる。
MMU(1010)は、複数のメモリシステム700A及び700Bの各々に含まれた複数のメモリ装置720A及び720Bの各々の可用OP情報をデータコントローラ730A及び730BからI/Oインターフェース750A及び750Bを介して伝達されることができる。したがって、MMU(1010)は、全てのメモリ装置の各々の可用OP領域に関する情報を分かることができる。さらに、可用OP情報のアップデートが発生された場合、MMU(1010)は、データコントローラ730A及び730Bからアップデートされた情報を伝達されてMMU(1010)に格納された可用OP情報をアップデートすることができる。
また、MMU(1010)は、複数のメモリ装置720A及び720Bの各々のメモリマップをデータコントローラ730A及び730BからI/Oインターフェース750A及び750Bを介して伝達されることができる。また、MMU(1010)は、前記メモリマップが全て反映されたグローバルマップ(global map)を格納することができる。データ移動が発生した後、MMU(1010)は、データコントローラ730A及び730Bからアップデートされた住所情報を伝達されてMMU(1010)に格納された各々のメモリマップ及び/又はグローバルマップをアップデートすることができる。
説明の便宜のために、第1のメモリシステム700Aに含まれた複数の第1のメモリ装置720Aのうち、欠陥メモリ装置が発生され、複数の第1のメモリ装置720Aのうち、可用メモリ装置が存在しないと仮定する。また、複数の第2のメモリ装置720Bのうち、可用メモリ装置が存在すると仮定する。
第1のデータコントローラ730Aは、欠陥メモリ装置に格納されたターゲットデータを読み出すことができる。第1のデータコントローラ730Aは、ターゲットデータを仮に格納する可用メモリ装置を複数の第1のメモリ装置720Aで検索することができる。ただし、複数の第1のメモリ装置720Aに可用メモリ装置が存在しないならば、第1のデータコントローラ730Aは、第1のI/Oインターフェース750Aを介してターゲットデータをMMU(1010)に伝達することができる。
MMU(1010)は、複数のメモリシステム700A及び700Bの各々に伝達された可用OP情報に基づいて、第1のメモリシステム700Aから伝達されたターゲットデータを仮に格納することができる可用メモリ装置が含まれた第2のメモリシステム700Bを検索できる。さらに、MMU(1010)は、ターゲットデータを第2のメモリシステム700Bに伝達することができる。
第2のデータコントローラ730Bは、第2のI/Oインターフェース750Bを介してターゲットデータを伝達されることができる。第2のデータコントローラ730Bは、ターゲットデータを仮に格納する可用メモリ装置を複数の第2のメモリ装置720Bで検索することができる。さらに、第2のデータコントローラ730Bは、ターゲットデータを検索された可用メモリ装置のOP領域に格納することができる。
第1のデータコントローラ730A及び第2のデータコントローラ730Bは、ターゲットデータに対応する住所情報を各々アップデートすることができる。例えば、第1のデータコントローラ730Aは、ターゲットデータが複数の第1のメモリ装置720Aに格納されていないということを表すことができるように、第2のデータコントローラ730Bは、ターゲットデータが前記OP領域に格納されているということを表すようにターゲットデータに対応する住所情報を各々アップデートすることができる。さらに、第1のデータコントローラ730A及び第2のデータコントローラ730Bは、アップデートされた住所情報を各々MMU(1010)に伝達することができる。MMU(1010)は、伝達されたターゲットデータの各々の住所情報を反映するために、第1のメモリシステム700A及び第2のメモリシステム700Bのメモリマップ及び/又はグローバルマップを各々アップデートすることができる。
それから、複数の第1のメモリ装置720Aに含まれた欠陥メモリ装置が復旧された場合、前述した動作過程の逆方向にターゲットデータを復旧メモリ装置に格納するための動作が進行され得る。
第1のデータコントローラ730Aは、欠陥メモリ装置が復旧されて、現在は復旧メモリ装置となったということを表す情報をMMU(1010)に伝達することができる。このとき、MMU(1010)は、復旧メモリ装置の信頼度に関する情報をアップデートすることができる。そして、MMU(1010)は、第2のメモリシステム700Bにターゲットデータに対する読み出し要請を発することができる。第2のデータコントローラ730Bは、ターゲットデータを読み出し、MMU(1010)に伝達することができる。MMU(1010)は、伝達されたターゲットデータを第1のメモリシステム700Aに伝達することができる。第1のデータコントローラ730Aは、ターゲットデータをMMU(1010)から伝達されることができ、ターゲットデータを復旧メモリ装置に格納することができる。
第1のデータコントローラ730A及び第2のデータコントローラ730Bは、ターゲットデータに対応する住所情報を各々アップデートすることができる。例えば、第2のデータコントローラ730Bは、ターゲットデータが複数の第2のメモリ装置720Bに格納されていないということを表すことができるように、第1のデータコントローラ730Aは、ターゲットデータが復旧メモリ装置に格納されているということを表すようにターゲットデータに対応する住所情報を各々アップデートすることができる。さらに、第1のデータコントローラ730A及び第2のデータコントローラ730Bは、アップデートされた住所情報を各々MMU(1010)に伝達することができる。MMU(1010)は、伝達されたターゲットデータの各々の住所情報を反映するために、第1のメモリシステム700A及び第2のメモリシステム700Bのメモリマップ及び/又はグローバルマップを各々アップデートすることができる。
図11は、一実施形態に係るコンピュータシステム1000の動作を示したフローチャートである。さらに、図11に示された動作は、図8に示されたステップS809に対応することができる。すなわち、ステップS1101ないしステップS1111の動作は、図8に示されたステップS807の後続動作でありうる。
ステップS1101において、第1のメモリシステム700Aは、図8に示されたステップS801ないしステップS807に対応する動作を行うことができる。
ステップS1103において、第1のメモリシステム700Aは、MMU(1010)にターゲットデータを伝達できる。例えば、第1のメモリシステム700Aに含まれた第1のデータコントローラ730Aが第1のI/Oインターフェース750Aを介してターゲットデータをMMU(1010)に伝達することができる。
ステップS1105において、MMU(1010)は、第1のメモリシステム700A以外のメモリシステムのうち、可用メモリ装置を含むメモリシステムを検索できる。
仮に、他のメモリシステムにも可用メモリ装置が存在しないならば(ステップS1107において、「N」)、MMU(1010)は、ステップS1105において、再度可用メモリ装置を含むメモリシステムを検索できる。
しかし、特定メモリシステム(以下、第2のメモリシステム、700B)に可用メモリ装置が存在する場合(ステップS1107において、「Y」)、ステップS1109において、MMU(1010)は、ターゲットデータを第2のメモリシステム700Bに伝達することができる。
さらに、ステップS1111において、第2のデータコントローラ730Bは、ターゲットデータを可用メモリ装置のOP領域に格納することができる。
その後、ステップS1113において、図10で説明されたように、第1のデータコントローラ730A、第2のデータコントローラ730B、及びMMU(1010)は、ターゲットデータに対応する住所情報をアップデートすることができる。
図12は、一実施形態に係るコンピュータシステム1000の動作を示したフローチャートである。図12に示された動作は、図11に示された動作以後に行われることができる。例えば、図11において説明されたように、第1のメモリシステム700Aで発生された欠陥メモリ装置が復旧されたとき、コンピュータシステム1000がターゲットデータを復旧メモリ装置に格納する動作が図12を介して説明される。しかし、図面に図示されてはいないが、欠陥メモリ装置が復旧されなかった場合、ターゲットデータに対するアクセス要請は、現在ターゲットデータが格納された第2のメモリシステム700BのOP領域に対して行われることができる。例えば、ターゲットデータに対する読み出し要請を発した場合、第2のデータコントローラ730Bは、前記OP領域に格納されたターゲットデータを読み出すことができる。
ステップS1201において、欠陥メモリ装置は、復旧メモリ装置として復旧されることができる。
ステップS1203において、第1のデータコントローラ730Aは、復旧メモリ装置に対応する信頼度に関する情報をアップデートすることができる。例えば、第1のデータコントローラ730Aは、欠陥メモリ装置に対して「1」であった信頼度に関する情報を、欠陥メモリ装置を復旧メモリ装置と復旧完了した後に、復旧メモリ装置に対して「0」にアップデートすることができる。
ステップS1205において、第1のメモリシステム700Aは、MMU(1010)に前記アップデートされた信頼度に関する情報を伝達できる。
ステップS1207において、MMU(1010)は、第1のメモリシステム700Aから伝達された信頼度に関する情報に基づいて、第1のメモリシステム700Aに対応する信頼度に関する情報をアップデートすることができる。
その後、ターゲットデータを本来格納位置であった第1のメモリシステム700Aに移動させるために、ステップS1209において、MMU(1010)は、第2のメモリシステム700Bにターゲットデータを読み出すように要請することができる。
ステップS1211において、第2のメモリシステム700Bは、前記読み出し要請に応じてターゲットデータを読み出すことができる。例えば、第2のデータコントローラ730Bは、ターゲットデータを読み出すようにターゲットデータが格納されたOP領域を有するメモリ装置を制御できる。
そして、ステップS1213において、第2のメモリシステム700Bは、ターゲットデータをMMU(1213)に出力することができる。
ステップS1215において、MMU(1010)は、第1のメモリシステム700Aにターゲットデータを伝達することができる。
ステップS1217において、第1のメモリシステム700Aは、MMU(1010)から伝達されたターゲットデータを復旧メモリ装置に格納することができる。例えば、第1のデータコントローラ730Aは、ターゲットデータを書き込むように復旧メモリ装置を制御できる。
その後、ステップS1219において、図10で説明されたように、第1のデータコントローラ730A、第2のデータコントローラ730B、及びMMU(1010)は、ターゲットデータに対応する住所情報をアップデートすることができる。
図10〜図12に説明されたように、複数のメモリシステムで構成されたコンピュータシステムは、単一メモリシステム700の問題点を克服でき、その結果、メモリシステム700のほとんどの可用性を維持して、欠陥メモリ装置を復旧できる。
一方、本発明の詳細な説明では、具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は、説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどにより決められるべきである。

Claims (23)

  1. ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置と、
    前記複数のメモリ装置の各々を制御するコントローラと、
    を備え、
    前記コントローラは、
    前記複数のメモリ装置のうち、欠陥メモリ装置を検出する検出部と、
    前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、
    前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサと、
    を備えるメモリシステム。
  2. 前記コントローラは、
    複数のメモリ装置の各OP領域の可用情報を格納する管理部をさらに備え、
    前記選択部は、前記可用情報に基づいて、前記複数のメモリ装置のうち、欠陥メモリ装置を除いた可用メモリ装置を選択する請求項1に記載のメモリシステム。
  3. 前記検出部は、
    前記複数のメモリ装置の各々に対応する信頼度に関する情報をモニタリングして、予め設定された閾値より低い信頼度に関する情報を有するメモリ装置を前記欠陥メモリ装置として検出する請求項1に記載のメモリシステム。
  4. 前記管理部は、
    前記複数のメモリ装置の各々のメモリマップを格納する請求項2に記載のメモリシステム。
  5. 前記管理部は、
    前記ターゲットデータが前記オーバープロビジョニング領域に移動された後、前記メモリマップをアップデートする請求項4に記載のメモリシステム。
  6. 前記可用メモリ装置が複数である場合、
    前記選択部は、
    前記可用メモリ装置のうち、少なくとも1つのメモリ装置を選択する請求項1に記載のメモリシステム。
  7. 前記欠陥メモリ装置が復旧された後、
    前記プロセッサは、前記ターゲットデータを前記復旧されたメモリ装置に移動させる請求項1に記載のメモリシステム。
  8. 前記検出部は、
    前記復旧されたメモリ装置の信頼度に関する情報ををアップデートする請求項7に記載のメモリシステム。
  9. 複数のメモリ装置の各OP領域の可用情報を格納する管理部をさらに備え、
    前記選択部は、
    前記可用情報に基づいて、前記複数のメモリ装置のうち、欠陥メモリ装置を除いた可用メモリ装置を選択し、
    前記管理部は、
    前記ターゲットデータに対応する移動動作が終了した後、前記メモリマップをアップデートする請求項7に記載のメモリシステム。
  10. 前記管理部は、
    可用OP領域と不可用OP領域の両方に対する各OP領域の可用情報を格納する請求項2に記載のメモリシステム。
  11. メモリシステムの動作方法において、
    複数のメモリ装置のうち、欠陥メモリ装置を検出するステップと、
    前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択するステップと、
    前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるステップと、
    を含むメモリシステムの動作方法。
  12. 前記メモリ装置の各々のオーバープロビジョニング領域の可用情報を格納するステップをさらに含み、
    前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択するステップは、前記可用情報に基づく請求項11に記載のメモリシステムの動作方法。
  13. 前記検出するステップは、
    前記複数のメモリ装置の各々に対応する信頼度に関する情報をモニタリングして、予め設定された閾値より低い値の信頼度に関する情報を有するメモリ装置を前記欠陥メモリ装置として検出する請求項11に記載のメモリシステムの動作方法。
  14. 前記複数のメモリ装置の各々のメモリマップを格納するステップをさらに含む請求項11に記載のメモリシステムの動作方法。
  15. 前記ターゲットデータが前記オーバープロビジョニング領域に移動された後、前記メモリマップをアップデートするステップをさらに含む請求項14に記載のメモリシステムの動作方法。
  16. 前記可用メモリ装置が複数である場合、
    前記可用メモリ装置を選択するステップは、
    予め設定された基準にしたがって前記可用メモリ装置のうち、少なくとも1つのメモリ装置を選択する請求項11に記載のメモリシステムの動作方法。
  17. 前記欠陥メモリ装置が復旧されて復旧メモリ装置となった場合、
    前記ターゲットデータを復旧メモリ装置に移動させるステップをさらに含む請求項11に記載のメモリシステムの動作方法。
  18. 前記復旧メモリ装置に対応する信頼度に関する情報をアップデートするステップをさらに含む請求項17に記載のメモリシステムの動作方法。
  19. 前記ターゲットデータに対応する移動動作が終了した後、前記メモリマップをアップデートするステップをさらに含む請求項17に記載のメモリシステムの動作方法。
  20. 複数のメモリシステムと、
    前記複数のメモリシステムの各々と通信するメモリシステム管理部と、
    を備え、
    前記複数のメモリシステムの各々は、
    ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置及び前記複数のメモリ装置の各々を制御するコントローラを備え、
    前記コントローラは、
    前記複数のメモリ装置の各々に対応する信頼度に関する情報ををモニタリングして、予め設定された閾値より小さい値の信頼度に関する情報を有するメモリ装置を前記欠陥メモリ装置として検出する検出部と、
    前記複数のメモリ装置の各々の前記オーバープロビジョニング領域の可用情報を格納し、前記複数のメモリ装置の各々のメモリマップを格納する管理部と、
    前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、
    前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサと、
    を備えるコンピュータシステム。
  21. 前記MMUは、
    前記複数のメモリ装置の各々の信頼度に関する情報、前記可用情報及び前記メモリマップを前記複数のメモリシステムの各々から伝達されて格納する請求項20に記載のコンピュータシステム。
  22. 第1のメモリシステムに前記欠陥メモリ装置が発生され、前記可用メモリ装置が存在しない場合、
    前記第1のメモリシステムは、ターゲットデータを前記MMUに伝達し、
    前記MMUは、前記可用情報に基づいて、前記ターゲットデータを第2のメモリシステムに伝達し、
    前記第2のメモリシステムは、前記MMUから伝達された前記ターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に格納する請求項21に記載のコンピュータシステム。
  23. 前記欠陥メモリ装置が復旧された場合、
    前記第2のメモリシステムは、前記ターゲットデータを前記オーバープロビジョニング領域で読み出して前記MMUに伝達し、
    前記MMUは、前記ターゲットデータを前記第1のメモリシステムに伝達し、
    前記第1のメモリシステムは、前記ターゲットデータを復旧メモリ装置に格納する請求項20に記載のコンピュータシステム。
JP2019048206A 2018-04-23 2019-03-15 メモリシステム及びその動作方法 Active JP7299724B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180046707A KR102586741B1 (ko) 2018-04-23 2018-04-23 메모리 시스템 및 그것의 동작방법
KR10-2018-0046707 2018-04-23

Publications (2)

Publication Number Publication Date
JP2019192221A true JP2019192221A (ja) 2019-10-31
JP7299724B2 JP7299724B2 (ja) 2023-06-28

Family

ID=68236904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019048206A Active JP7299724B2 (ja) 2018-04-23 2019-03-15 メモリシステム及びその動作方法

Country Status (4)

Country Link
US (1) US11036399B2 (ja)
JP (1) JP7299724B2 (ja)
KR (1) KR102586741B1 (ja)
CN (1) CN110389847A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907570B2 (en) * 2020-02-25 2024-02-20 Micron Technology, Inc. Predictive media management for read disturb

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261946A (ja) * 1994-03-22 1995-10-13 Hitachi Ltd アレイ型記憶装置
JPH08328760A (ja) * 1995-06-01 1996-12-13 Hitachi Ltd ディスクアレイ装置
JP2003208358A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd 情報処理装置
JP2011186553A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
US20150324262A1 (en) * 2014-05-06 2015-11-12 International Business Machines Corporation Using spare capacity in solid state drives
US20170123915A1 (en) * 2015-10-29 2017-05-04 Nimble Storage, Inc. Methods and systems for repurposing system-level over provisioned space into a temporary hot spare

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953745A (en) 1996-11-27 1999-09-14 International Business Machines Corporation Redundant memory array
US7426655B2 (en) * 2004-12-13 2008-09-16 Dell Products L.P. System and method of enhancing storage array read performance using a spare storage array
US8015438B2 (en) * 2007-11-29 2011-09-06 Qimonda Ag Memory circuit
US8041991B2 (en) * 2008-11-18 2011-10-18 Lsi Corporation System and method for recovering solid state drive data
US8694814B1 (en) * 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8799553B2 (en) * 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
US9535777B2 (en) * 2013-11-22 2017-01-03 Intel Corporation Defect management policies for NAND flash memory
US9575853B2 (en) * 2014-12-12 2017-02-21 Intel Corporation Accelerated data recovery in a storage system
JP2017010273A (ja) * 2015-06-22 2017-01-12 株式会社東芝 半導体故障検出装置
KR102403266B1 (ko) * 2015-06-22 2022-05-27 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
JP6403162B2 (ja) 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
US10296238B2 (en) * 2015-12-18 2019-05-21 Intel Corporation Technologies for contemporaneous access of non-volatile and volatile memory in a memory device
KR102573301B1 (ko) * 2016-07-15 2023-08-31 삼성전자 주식회사 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법
KR102435890B1 (ko) 2017-08-17 2022-08-25 삼성전자주식회사 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법
KR102387181B1 (ko) 2017-10-31 2022-04-19 에스케이하이닉스 주식회사 컴퓨팅 디바이스 및 그것의 동작방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261946A (ja) * 1994-03-22 1995-10-13 Hitachi Ltd アレイ型記憶装置
JPH08328760A (ja) * 1995-06-01 1996-12-13 Hitachi Ltd ディスクアレイ装置
JP2003208358A (ja) * 2002-01-11 2003-07-25 Hitachi Ltd 情報処理装置
JP2011186553A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
US20150324262A1 (en) * 2014-05-06 2015-11-12 International Business Machines Corporation Using spare capacity in solid state drives
US20170123915A1 (en) * 2015-10-29 2017-05-04 Nimble Storage, Inc. Methods and systems for repurposing system-level over provisioned space into a temporary hot spare

Also Published As

Publication number Publication date
CN110389847A (zh) 2019-10-29
KR102586741B1 (ko) 2023-10-11
US11036399B2 (en) 2021-06-15
KR20190123038A (ko) 2019-10-31
JP7299724B2 (ja) 2023-06-28
US20190324664A1 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
US10642704B2 (en) Storage controller failover system
US20230015404A1 (en) Memory system and data processing system including the same
US20170091042A1 (en) System and method for power loss protection of storage device
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
CN103534688B (zh) 数据恢复方法、存储设备和存储系统
US8984332B2 (en) Active/passive database management across clusters
JP2018181325A (ja) 分散ストレージネットワークにおけるデータ経路モニタリング
KR101778907B1 (ko) 분산 저장 시스템에서의 캐시 및 비-캐시 사용
US20200348871A1 (en) Memory system, operating method thereof and computing system for classifying data according to read and write counts and storing the classified data in a plurality of types of memory devices
JP7299724B2 (ja) メモリシステム及びその動作方法
KR102586768B1 (ko) 컴퓨팅 시스템 및 그것의 동작방법
US11531621B2 (en) Selective endpoint isolation for self-healing in a cache and memory coherent system
KR102387181B1 (ko) 컴퓨팅 디바이스 및 그것의 동작방법
US20180295195A1 (en) Method and apparatus for performing storage space management for multiple virtual machines
CN105051707A (zh) 外部存储器控制器
US11016666B2 (en) Memory system and operating method thereof
JP2020087409A (ja) データ処理システム
JP2020113256A (ja) メモリシステム及びデータ処理システム
US11487654B2 (en) Method for controlling write buffer based on states of sectors of write buffer and associated all flash array server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230616

R150 Certificate of patent or registration of utility model

Ref document number: 7299724

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150