JP2021034026A - データ保存装置及びその動作方法 - Google Patents

データ保存装置及びその動作方法 Download PDF

Info

Publication number
JP2021034026A
JP2021034026A JP2020111045A JP2020111045A JP2021034026A JP 2021034026 A JP2021034026 A JP 2021034026A JP 2020111045 A JP2020111045 A JP 2020111045A JP 2020111045 A JP2020111045 A JP 2020111045A JP 2021034026 A JP2021034026 A JP 2021034026A
Authority
JP
Japan
Prior art keywords
zone
data
random
storage device
data storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020111045A
Other languages
English (en)
Inventor
正基 盧
Jung Ki Noh
正基 盧
龍 秦
Long Qin
龍 秦
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 JP2021034026A publication Critical patent/JP2021034026A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/065Replication 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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/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
    • G06F3/068Hybrid 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/0688Non-volatile semiconductor memory arrays
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/1016Performance improvement
    • 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】本発明は、揮発性メモリのデータ保存空間をランダム書き込み(Random Write)が可能な領域に確保することで、書込み性能が向上したデータ保存装置及びその動作方法を提供する。
【解決手段】本発明の実施例に係るデータ保存装置は、ゾーンマッピングテーブル及びシステム情報を保存する領域と、ランダム書き込みが可能なランダムゾーン(Random Access Zone)とを含む揮発性メモリ;バックアップゾーン(Backup Zone)と、シーケンシャル書き込みが可能な複数のシーケンシャルゾーン(Sequential Zone)とを含む不揮発性メモリ;及び、ホスト装置から書き込みコマンド又は読み出しコマンド時に伝達される論理住所及びデータ大きさを受信すれば、論理住所がランダムゾーン又はシーケンシャルゾーンに属するか否かを把握して、書き込みコマンド又は読み出しコマンドに対応する動作を遂行するように制御するコントーラを含む。
【選択図】図1

Description

本発明は、半導体装置に関し、より詳しくはデータ保存装置及びその動作方法に関する。
メモリ装置を用いたデータ保存装置は、機械的な駆動部がなくて安全性及び耐久性が優れ、情報のアクセス速度が非常に速く、電力消耗が少ないという長所がある。このような長所を持つデータ保存装置は、USB(Universal Serial Bus)メモリ装置、多様なインターフェースを持つメモリカード、UFS(Universal Flash Storage)装置及びソリッドステートドライブ(Solid State Drive)を含む。
大部分のソリッドステートドライブは、ナンドフラッシュメモリ(NAND Flash Memory)に基づいて用いられている。ナンドフラッシュメモリは上書き(Overwrite)されないため、ホスト装置で使用する論理住所と、ナンドフラッシュメモリで使用する物理住所とを互いにマッチングして管理しなければならない。
一般に、論理住所及び物理住所間のマッピングテーブルは4KB単位に管理されるが、データ接近性能を高めるためにDRAM(Dynamic Random Access Memory)に保存できる。
本発明の実施例は、揮発性メモリのデータ保存空間をランダム書き込み(Random Write)が可能な領域に確保することで、書き込み性能が向上したデータ保存装置及びその動作方法を提供する。
本発明の実施例に係るデータ保存装置は、ゾーンマッピングテーブル及びシステム情報を保存する領域と、ランダム書き込みが可能なランダムゾーン(Random Access Zone)とを含む揮発性メモリ;バックアップゾーン(Backup Zone)及びシーケンシャル書き込みが可能な複数のシーケンシャルゾーン(Sequential Zone)を含む不揮発性メモリ;及び、ホスト装置から書き込みコマンド又は読み出しコマンド時に伝達される論理住所を受信すれば、前記論理住所が前記ランダムゾーン又はシーケンシャルゾーンに属するか否かを把握した後、把握されたゾーンの前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するように制御するコントローラを含み、前記コントローラは、前記ランダムゾーンに保存されたデータを既設定の基準によって前記バックアップゾーンにバックアップし、電源がオフ(Off)された後、オン(On)状態に転換すれば、前記バックアップゾーンに保存されたデータを前記ランダムゾーンに復元できる。
本発明の実施例に係るデータ保存装置の動作方法は、ホスト装置から書き込みコマンド又は読み出しコマンド時に伝達される論理住所を受信するステップ;前記論理住所が揮発性メモリ内のランダムゾーン又は不揮発性メモリ内のシーケンシャルゾーンに属するか否かを把握するステップ;及び、前記把握されたランダムゾーン又はシーケンシャルゾーンに従い、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するステップを含み、前記揮発性メモリは、ゾーンマッピングテーブル及びシステム情報を保存する領域と、ランダム書き込みが可能な前記ランダムゾーンとを含み、前記不揮発性メモリは、バックアップゾーンと、シーケンシャル書き込みが可能な複数の前記シーケンシャルゾーンとを含むことができる。
本実施例によれば、マッピングテーブルの構造変更により揮発性メモリにデータの書込みのための余裕空間が確保されることで、データ保存空間が確保でき、揮発性メモリの特性により書込み速度を増加させることで、書込み動作の性能が向上できる。
また、揮発性メモリに保存されたデータを不揮発性メモリにバックアップ及び復元することで、揮発性メモリのデータの損失が予め防止できる。
本発明の実施例に係るデータ保存装置の構成を示す図である。 本発明の実施例に係る不揮発性メモリの構成を示す図である。 本発明の実施例に係るメモリセルアレイの構成を示す図である。 本発明の実施例に係るデータ処理システムの構成を示す図である。 本発明の実施例に係る揮発性メモリの構成を示す図である。 本発明の実施例に係るゾーンマッピングテーブルの一例を示す図である。 本発明の実施例に係るバックアップ過程を説明するための例示図である。 本発明の実施例に係る復元過程を説明するための例示図である。 本発明の実施例に係るデータ保存装置の動作方法を説明するためのフローチャートである。 図9に示すデータ書き込み方法を詳細に説明するためのフローチャートである。 図9に示すデータ読み出し方法を詳細に説明するためのフローチャートである。 本発明の他の実施例に係るデータ保存装置の動作方法を説明するためのフローチャートである。 本発明の実施例に係るソリッドステートドライブ(SSD)を含むデータ処理システムの例示図である。 図13に示すコントローラの構成の例示図である。 本発明の実施例に係るデータ保存装置を含むデータ処理システムの例示図である。 本発明の実施例に係るデータ保存装置を含むデータ処理システムの例示図である。 本発明の実施例に係るデータ保存装置を含むネットワークシステムの例示図である。
以下、添付図面に基づき、本発明の好適な実施例を詳細に説明する。
図1は、本発明の実施例に係るデータ保存装置10の構成を示す図である。
図1を参照すれば、本実施例に係るデータ保存装置10は、携帯電話、MP3プレーヤー、ラップトップコンピュータ、デスクトップコンピュータ、ゲーム機、TV及び車両用インフォテインメント(in-vehicle infotainment)システムなどのようなホスト装置(図示せず)によりアクセスされるデータが保存できる。データ保存装置10はメモリシステムと呼ばれることができる。
データ保存装置10は、ホスト装置と連結するインターフェースプロトコルによって多様な種類の保存装置の何れか一つで製造できる。例えば、データ保存装置10は、ソリッドステートドライブ(solid state drive、SSD)、MMC、eMMC、RS−MMC、micro−MMC形態のマルチメディアカード(multimedia card)、SD、mini−SD、micro−SD形態のセキュアデジタル(secure digital)カード、USB(universal storage bus)保存装置、UFS(universal flash storage)装置、PCMCIA(personal computer memory card international association)カード形態の保存装置、PCI(peripheral component interconnection)カード形態の保存装置、PCI−E(PCI-express)カード形態の保存装置、CF(compact flash)カード、スマートメディア(smart media)カード及びメモリスティック(memory stick)などのような多様な種類の保存装置の何れか一つで構成できる。
データ保存装置10は、多様な種類のパッケージ(package)形態の何れか一つで製造できる。例えば、データ保存装置10は、POP(package on package)、SIP(system in package)、SOC(system on chip)、MCP(multi chip package)、COB(chip on board)、WFP(wafer-level fabricated package)及びWSP(wafer-level stack package)などのような多様な種類のパッケージ形態の何れか一つで製造できる。
図1に示すように、データ保存装置10は、不揮発性メモリ100、コントローラ200及び揮発性メモリ300を含むことができる。
不揮発性メモリ100は、データ保存装置10の保存媒体として動作できる。不揮発性メモリ100は、メモリセルによりナンド(NAND)フラッシュメモリ装置、ノア(NOR)フラッシュメモリ装置、強誘電体キャパシタを用いた強誘電体RAM(ferroelectric random access memory、FRAM(登録商標))、TMR(tunneling magneto-resistive)膜を用いたマグネチックRAM(magnetic random access memory、MRAM)、カルコゲン化合物(chalcogenide alloys)を用いた相変化RAM(phase change random access memory、PRAM)及び遷移金属化合物(transition metal oxide)を用いた抵抗性RAM(resistive random access memory、ReRAM)などのような多様な形態の不揮発性メモリの何れか一つで構成できる。
図2は本発明の実施例に係る不揮発性メモリ100の構成を示す図、図3は本発明の実施例に係るメモリセルアレイ(memory cell array)110の構成を示す図である。
図2を参照すれば、不揮発性メモリ100は、メモリセルアレイ110、ロウデコーダ(row decoder)120、書き込み/読み出し回路130、カラムデコーダ(column decoder)140、ページバッファ(page buffer)150、電圧発生器(voltage generator)160、制御ロジック(control logic)170及び入出力回路(I/O circuit)180を含むことができる。
メモリセルアレイ110は、複数のビットラインBL及び複数のワードラインWLが交差する領域に各々配置される複数のメモリセル(図示せず)を含むことができる。図3を参照すれば、メモリセルアレイ110は複数のメモリブロックBLK1〜BLKiを含むことができ、複数のメモリブロックBLK1〜BLKiは各々複数のページPG1〜PGjを含むことができる。本実施例において、メモリブロックは独立的に消去可能なメモリセルアレイ110の最小単位に対応でき、ページは独立的に書き込み可能なメモリセルアレイ110の最小単位に対応できる。
メモリセルアレイ110のメモリセルは、各々1ビットのデータを保存するシングルレベルセル(single level cell、SLC)、2ビットのデータを保存するマルチレベルセル(multiple level cell、MLC)、3ビットのデータを保存するトリプルレベルセル(triple level cell、TLC)、4ビットのデータを保存するクアッドレベルセル(quadruple level cell、QLC)及びこれらの組合であり得る。メモリセルアレイ110は、シングルレベルセル、マルチレベルセル、トリプルレベルセル及びクアッドレベルセルの少なくとも一つ以上を含むことができる。メモリセルアレイ110は、2次元の水平構造に配置されたメモリセルを含むことができ、或いは、3次元の垂直構造に配置されたメモリセルを含むこともできる。
ロウデコーダ120はワードラインWLを介してメモリセルアレイ110と連結できる。ロウデコーダ120は制御ロジック170の制御によって動作できる。ロウデコーダ120は、制御ロジック170から提供されるロウアドレスX_ADDRをデコーディングし、デコーディング結果に基づいてワードラインWLの少なくとも一つを選択して駆動させることができる。ロウデコーダ120は、電圧発生器160から提供される動作電圧Vopを選択されたワードラインWLに提供できる。
書き込み/読み出し回路130は、ビットラインBLを介してメモリセルアレイ110と連結できる。書き込み/読み出し回路130は、ビットラインBLの各々に対応する書き込み/読み出し回路(図示せず)を含むことができる。書き込み/読み出し回路130は制御ロジック170の制御によって動作できる。書き込み/読み出し回路130は、メモリセルにデータを書き込むための書き込みドライバWDと、メモリセルから読み出したデータを増幅するセンスアンプSAとを含むことができる。書き込み/読み出し回路130は、メモリセルアレイ110のメモリセルのうち、ロウデコーダ120及びカラムデコーダ140により選択されるメモリセルに電流パルス又は電圧パルスを提供することにより、選択されたメモリセルに対する書込み及び読み出しの動作が遂行できる。
カラムデコーダ140は制御ロジック170の制御によって動作できる。カラムデコーダ140は、制御ロジック170から提供されるカラムアドレスY_ADDRがデコーディングできる。カラムデコーダ140は、デコーディング結果に基づき、ビットラインBLの各々に対応する書き込み/読み出し回路130の書込み/読み出し回路等及びページバッファ150が連結できる。
ページバッファ150は、コントローラ200のメモリインターフェース240から提供され、メモリセルアレイ110に書き込まれるデータ又はメモリセルアレイ110から読み出し、コントローラ200のメモリインターフェース240に提供されるデータを一時保存するように構成できる。ページバッファ150は制御ロジック170の制御によって動作できる。
電圧発生器160は、制御ロジック170から提供される電圧制御信号CTRL_volに基づき、メモリセルアレイ110に対する書き込み、読み出し及び消去の動作を遂行するための多様な電圧が生成できる。電圧発生器160は、複数のワードラインWL及びビットラインBLを駆動するための駆動電圧Vopが生成できる。また、電圧発生器160は、メモリセルMCに保存されたデータを読み出すために少なくとも一つ以上の基準電圧が生成できる。
制御ロジック170は、コントローラ200から受信されたコマンドCMD、アドレスADDR及び制御信号CTRLに基づき、メモリセルアレイ110にデータDATAを書き込んだり、メモリセルアレイ110からデータDATAを読み出すための各種制御信号が出力できる。制御ロジック170から出力される各種制御信号は、ロウデコーダ120、書き込み/読み出し回路130、カラムデコーダ140、ページバッファ150及び電圧発生器160に提供され得る。これにより、制御ロジック170は不揮発性メモリ100で遂行される各種動作を全般的に制御できる。
具体的に、制御ロジック170は、コマンドCMD及び制御信号CTRLに基づいて動作制御信号CTRL_opが生成でき、生成された動作制御信号CTRL_opを書き込み/読み出し回路130に提供できる。制御ロジック170は、アドレスADDRに含まれたロウアドレスX_ADDR及びカラムアドレスY_ADDRを各々ロウデコーダ120及びカラムデコーダ140に提供できる。
入出力回路180は、コントローラ200から提供されるコマンドCMD、アドレスADDR及びデータDATAを受信したり、メモリセルアレイ110から読み出されたデータDATAをコントローラ200に提供するように構成できる。入出力回路180は、コントローラ200から受信されたコマンドCMD及びアドレスADDRは制御ロジック170に出力し、データDATAはページバッファ150に出力できる。入出力回路180はページバッファ150から受信されたデータDATAをコントローラ200に出力できる。入出力回路180は制御ロジック170の制御によって動作できる。
コントローラ200は、メモリ230にローディングされたファームウエア又はソフトウェアの駆動によってデータ保存装置10の全ての動作が制御できる。コントローラ200は、ファームウエア又はソフトウェアのようなコード形態の命令(instruction)やアルゴリズムを解読して駆動できる。コントローラ200は、ハードウェア、或いは、ハードウェア及びソフトウェアの組合せ形態で具現できる。
コントローラ200は、ホスト装置20から伝達される書き込みコマンド又は読み出しコマンドにより、不揮発性メモリ100や揮発性メモリ300にデータの書き込み又は読み出を遂行するように制御できる。これに関する詳細は後述する。
コントローラ200は、ホストインターフェース210、プロセッサ220、メモリ230及びメモリインターフェース240を含むことができる。
ホストインターフェース210は、ホスト装置のプロトコルに応じてホスト装置及びデータ保存装置10間がインターフェーシングできる。例えば、ホストインターフェース210は、USB(universal serial bus)、UFS(universal flash storage)、MMC(multimedia card)、PATA(parallel advanced technology attachment)、SATA(serial advanced technology attachment)、SCSI(small computer system interface)、SAS(serial attached SCSI)、PCI(peripheral component interconnection)及びPCI−e(PCI express)プロトコルの何れか一つを介してホスト装置と通信できる。
プロセッサ220は、マイクロコントロールユニット(micro control unit、MCU)及び中央処理装置(central processing unit、CPU)から構成できる。プロセッサ220はホスト装置から転送された要請が処理できる。ホスト装置から転送された要請を処理するために、プロセッサ220は、メモリ230にローディングされたコード形態の命令(instruction)やアルゴリズム、すなわち、ファームウエアを駆動し、ホストインターフェース210、メモリ230及びメモリインターフェース240などのような内部機能ブロック及び不揮発性メモリ100が制御できる。
プロセッサ220は、ホスト装置から転送された要請に基づいて不揮発性メモリ100の動作を制御する制御信号を生成し、生成された制御信号をメモリインターフェース240を介して不揮発性メモリ100に提供できる。
メモリ230は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)のようなランダムアクセスメモリで構成できる。メモリ230はプロセッサ220により駆動されるファームウエアが保存できる。また、メモリ230は、ファームウエアの駆動に必要なデータ、例えばメタデータが保存できる。すなわち、メモリ230はプロセッサ220の動作メモリ(working memory)として動作できる。
メモリ230は、ホスト装置から不揮発性メモリ100に転送される書き込みデータ、又は、不揮発性メモリ100からホスト装置に転送される読み出しデータを一時保存するためのデータバッファ(data buffer、DB)(図示せず)を含むように構成できる。すなわち、メモリ230はバッファメモリ(buffer memory)として動作できる。
メモリインターフェース240は、プロセッサ220の制御によって不揮発性メモリ100が制御できる。メモリインターフェース240はメモリコントローラとも呼ばれる。メモリインターフェース240はチャンネル信号CHを用いて不揮発性メモリ100と通信できる。チャンネル信号CHは、不揮発性メモリ100を制御するためのコマンドCMD、アドレスADDR及び動作制御信号CTRLなどを含むことができる。メモリインターフェース240は、チャンネル信号CHを用いてデータDATAを不揮発性メモリ100に提供したり、不揮発性メモリ100からデータDATAが受信できる。
図5に示すように、揮発性メモリ300は、ゾーンマッピングテーブル及びシステム情報を保存する領域300aと、ランダム書き込みが可能なランダムゾーン(Random access Zone)300bとを含むことができるが、これに関する詳細は後述する。
図4は、本発明の実施例に係るデータ処理システム1100の構成を示す図である。
以下では、本発明の実施例に係る揮発性メモリの構成を示す図5、本発明の実施例に係るゾーンマッピングテーブル600の一例を示す図6、本発明の実施例に係るバックアップ過程を説明するための例示図の図7、本発明の実施例に係る復元過程を説明するための例示図の図8を参照して説明する。
図4を参照すれば、データ処理システム1100は、データ保存装置10(例えば、SSD)及びホスト装置20を含むことができる。
データ保存装置10は、不揮発性メモリ100、コントローラ200及び揮発性メモリ300を含むことができる。
不揮発性メモリ100は、ナンドフラッシュ(NAND Flash)領域であって、同一の大きさを持つゾーン(Zone)の集合Zone0〜ZoneNで構成できる。このとき、ゾーンは複数の物理的なブロックの集合で構成できる。
図4を参照すれば、不揮発性メモリ100は、バックアップゾーン(Backup Zone)100aと、シーケンシャル書き込み(Sequential Write)が可能な複数のシーケンシャルゾーン(Sequential Zone)100bとを含むことができる。
バックアップゾーン100aは、揮発性メモリ300領域のうち、システム領域の以外の余裕空間であるランダムゾーン(Random Access Zone)300bの不揮発特性を提供するためのバックアップ空間であって、SLC方式により用いられる。バックアップゾーン100aは、ランダムゾーン300bの大きさの2倍又は3倍サイズであり得るが、これに限定されるものではない。
シーケンシャルゾーン100bは、使用者領域であって、TLC又はQLC方式により用いられる。このとき、シーケンシャルゾーン100bはシーケンシャル書き込み方式により書き込みが遂行できる。
図5を参照すれば、揮発性メモリ300は、ゾーン等の物理住所を管理するゾーンマッピングテーブル及びシステム情報を保存する領域300aと、ランダム書き込み(Random Write)が可能なランダムゾーン(Random Access Zone)300bとを含むことができる。このとき、揮発性メモリ300はDRAMで具現できるが、これに限定されるものではない。
本発明の実施例に係るゾーンはページ(Page)又はブロック(Block)に比べて相対的に大きいサイズを有し、ゾーンマッピングテーブルは各ゾーンに対して開始物理住所(Start PBA)、全体大きさ(Total Length)及び最終書き込み位置だけをマッチングして保存するため、既存に比べて保存されるマッピングデータの量が低減して揮発性メモリ300の領域に余裕空間が発生し得る。
具体的に、図6に示すように、揮発性メモリ300に保存されるゾーンマッピングテーブル600は、各ゾーンに対する論理住所グループ、ゾーンインデックス、開始物理住所(PBA0)、全体大きさ及び最終書き込み位置を含むことができ、これらが互いにマッチングされる形態で保存できる。このとき、論理住所グループは複数の論理住所を任意の個数でグループ化したことを意味し、ゾーンインデックスは各ゾーンを識別するための識別情報を意味し、ゾーンマッピングテーブル600の最終書き込み位置は現在を基準として各ゾーンの最後に書き込まれた位置を意味し、全体大きさは物理住所の全体長さを意味すると定義する。
例えば、論理住所グループ0(LBAG0)はLBA0乃至LBA99を含むことができ、他の論理住所グループも100個ずつの論理住所を含むことができる。このような論理住所グループは各々一つのゾーンとマッチングできる。すなわち、従来には論理住所及び物理住所が各々一対一にマッチングされるため、マッピングテーブルに含まれるデータの量が相対的に大きかった。本発明の実施例では、複数の論理住所が一つのゾーンにマッチングされて管理されるため、マッピングテーブルのデータ量が低減できる。
前述した理由により、ゾーンマッピングテーブル600は、既存のように4KB単位のマッピング方式を使用することなく、ゾーン単位に管理できるため、マッピングデータの大きさを相対的に低減して揮発性メモリ300の余裕空間が確保できる。このようなゾーンマッピングテーブル600の構造変更により、ゾーンマッピングテーブル600の大きさが縮小されて確保された揮発性メモリ300の領域は、ランダム書き込みが可能なランダムゾーン300bとして用いられる。
前述した不揮発性メモリ100及び揮発性メモリ300は、各々複数のゾーン(Zone0〜ZoneN+1)で構成できる。これにより、ホスト装置20は、揮発性メモリ300及び不揮発性メモリ100内の複数のゾーンの各々に対して論理的領域として認識できる。すなわち、ホスト装置20は、データ保存装置10を複数のゾーンを保有するストレージ装置として認識できる。例えば、ホスト装置20は、N+1個のゾーン(図4を参照)が認識できる。
コントローラ200は、ホスト装置20から書き込みコマンド又は読み出しコマンド時に伝達される論理住所を受信すれば、ゾーンマッピングテーブル600を用いて論理住所がランダムゾーン300b又はシーケンシャルゾーン100bに属するか否かを把握した後、把握されたゾーンの書き込みコマンド又は読み出しコマンドに対応する動作を遂行するように制御できる。このとき、コントローラ200は、ホスト装置20から書き込みコマンド又は読み出しコマンド時にデータの大きさも受信できる。前記論理住所はゾーンの開始論理住所が意味でき、前記論理住所がランダムゾーン又はシーケンシャルゾーンに属するということは前記論理住所に対応する物理住所がランダムゾーン又はシーケンシャルゾーンに属するという意味であり得る。
すなわち、コントローラ200は、論理住所がシーケンシャルゾーンに属する場合、論理住所に対応する物理住所を開始住所として、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するように制御できる。このとき、物理住所はシーケンシャルゾーン内の住所であり得る。
論理住所がランダムゾーンに属する場合、コントローラ200は、論理住所に対応する物理住所を開始住所として、書き込みコマンド又は読み出しコマンドに対応する動作が遂行されるように制御できる。このとき、物理住所はランダムゾーン内の住所であり得る。
また、コントローラ200は、ランダムゾーン300bに保存されたデータを既設定の基準によってバックアップゾーン100aにバックアップし、電源がオフ(Off)された後、オン(On)状態に転換すれば、前記バックアップゾーン100aに保存されたデータを前記ランダムゾーン300bに復元できる。
コントローラ200は、ゾーンマッピングテーブル600に基づいてゾーンの開始論理住所にマッチングされるゾーンインデックスを確認し、ゾーンインデックスがランダムゾーン300bであるか、又は、シーケンシャルゾーン100bであるかが把握できる。
例えば、ゾーンの開始論理住所がLBA5の場合、コントローラ200は、ゾーンマッピングテーブル600に基づいてLBA5が論理住所グループ0(図6のLBAG0)に属することを把握し、論理住所グループ0はゾーンインデックス0とマッチングされていることによりシーケンシャルゾーン100bに属することを把握する。ここで、論理住所グループ0はLBA0〜LBA99を含み、ゾーンインデックス0とマッチングされることを例として説明できる。このように、論理住所グループ別にマッチングされるLBA及びゾーンインデックスなどは予め設定され得る。
前述したランダムゾーン300bは揮発性メモリであり、シーケンシャルゾーン100bは不揮発性メモリであるため、コントローラ200は、書き込みコマンド又は読み出しコマンド時、物理住所を把握する方式を互いに異なるように適用する。
コントローラ200は、ホスト装置20から書き込みコマンド時に受信した論理住所がシーケンシャルゾーン100bに属する場合、ゾーンマッピングテーブル600に基づいてゾーンの開始論理住所にマッチングされたゾーンインデックスを把握し、把握されたゾーンインデックスの最終書き込み位置の以後から書き込みコマンド時に受信したデータサイズ程度のデータを書き込んた後、ゾーンマッピングテーブル600に最終書き込み位置がアップデートできる。
例えば、ゾーンの開始論理住所がLBA5の場合、コントローラ200は、ゾーンマッピングテーブル600に基づいてLBA5にマッチングされる論理住所グループ0及びゾーンインデックス0が把握できる。コントローラ200は、ゾーンインデックス0の最終書き込み物理住所が10の場合、ゾーンインデックス0に対応するゾーンの物理住所11から始めて書き込みコマンド時に転送されたデータサイズ(例えば、4)程度のデータを書き込むことができる。また、コントローラ200は、最終書き込み位置に物理住所14をゾーンマッピングテーブル600にアップデートできる。
コントローラ200は、ホスト装置20から書き込みコマンド受信時に受信した論理住所がランダムゾーン300bに属する場合、ランダムゾーン300bの開始物理住所に基づいてホスト装置20から伝達されたデータサイズ程度のデータを書き込むことができる。
例えば、書き込み動作の開始論理住所が902の場合、コントローラ200は、ゾーンマッピングテーブル600に基づいてLBA902が属する論理住所グループ10及び予めランダムゾーン300bに設定されたゾーンインデックス10が把握できる。揮発性メモリ300のゾーンマッピングテーブル600及びシステム情報を保存する領域300aの物理住所が物理ブロック0〜599を含み(例えば、各ブロックが4KBを含む)、ランダムゾーン300bの物理住所が物理ブロック600〜999の場合、コントローラ200は、ランダムゾーン300bの開始物理住所である物理ブロック住所600からデータサイズ(例えば、4)程度のデータを書き込む。例えば、書き込み動作の開始論理住所がLBA902の属するLBAG10の開始から住所オフセット9000に対応すれば、書き込み動作は物理ブロック600の開始から9000程度でオフセットされた開始物理住所を用いて遂行される。ここで、ランダムゾーン300bは揮発性メモリであるため、コントローラ200はランダムゾーン300bの開始物理住所からデータ書込みが遂行できる。
コントローラ200は、ホスト装置20から読み出しコマンド受信時に受信した論理住所がシーケンシャルゾーン100bに属する場合、ゾーンマッピングテーブル600に基づいて論理住所にマッチングされたゾーンインデックスを把握し、把握されたゾーンインデックスの該ゾーンで論理住所に対応する物理住所を開始住所として、ホスト装置20から伝達されたデータサイズ程度のデータを読み出すことができる。
コントローラ200は、ホスト装置20から読み出しコマンド受信時に論理住所がランダムゾーン300bに属する場合、ランダムゾーン300bの開始物理住所にホスト装置20から伝達された論理住所の該論理住所グループに相対的なオフセットを合算して最終物理住所を把握し、最終物理住所から、ホスト装置20から伝達されたデータサイズ程度のデータを読み出すことができる。例えば、論理住所がLBAG10の開始から8000のオフセットに該当する場合、LBAG10はランダムゾーン300bの開始するゾーンにマッピングされ、開始物理住所はランダムゾーン300bの開始から8000程度で住所オフセットされることができる。
図7を参照すれば、ランダムゾーン300bは複数のスライス(Slice)領域(Backup Slice0〜n)を含み、複数のスライス領域の各々は順次ランダムインデックス0〜nが付与できる。このとき、ランダムインデックスはランダムゾーン300b内の複数のスライス領域の各々に付与されたインデックスを意味する。前記スライス領域は、1回に書き込み可能なデータの大きさに対応するサイズ(すなわち、不揮発性メモリ100のページサイズ)であり得るが、これに限定されものではない。
また、ランダムインデックスの各々は、ランダムゾーン300bに保存されたデータをバックアップゾーン100aにバックアップしたか否かを示すフラッシュフラッグ(Flush Flag)Flush1又は0、及び、ランダムゾーン300bに保存されたデータが新規データにアップデートされたか否かを示すアップデートフラッグ(Update Flag)Update1又は0とマッチングできる。
また、バックアップゾーン100aは、ランダムゾーン300bに書き込まれるデータを一対一にバックアップする第1の領域Index0、Index1と、パワーオフ時にランダムゾーン300bにアップデートされた最新データをバックアップする第2の領域Index2とを含むことができる。前記第1の領域及び第2の領域の各々は一つ以上のバックアップインデックスと各々マッチングできる。前記バックアップインデックスは仮想であり得る。このとき、バックアップインデックスは、バックアップゾーンの各々に付与されたインデックスを意味するものと定義する。例えば、第1の領域はIndex0、Index1、第2の領域はIndex2のような仮想のゾーンインデックスが付与できる。
一方、図7に示すように、ランダムゾーン300bと同一又は類似な大きさの領域を一つとして見なす時、第1の領域はIndex0、Index1のように二つ以上の各々のサブ領域を含むように構成できる。前記第1領域の各々のサブ領域はランダムゾーン300bの大きさ以上のサイズを有することができる。
コントローラ200は、Index1及びIndex2のうち、最新データを保存するバックアップインデックスをシステム情報として別に管理できる。すなわち、どのインデックスが最新バックアップインデックスであるかを示すことができる。このような最新バックアップインデックスは、システム情報として揮発性メモリ300に保存され得る。
一例として、コントローラ200は、ランダムゾーン300bに書き込まれたデータ量が基準値以上である場合、ランダムゾーン300bに保存されたデータをバックアップゾーン100aにバックアップし、バックアップしたランダムゾーンに対してフラッシュフラッグの値を1(One)に変更できる。
具体的に説明すれば、コントローラ200は、バックアップゾーン100aのインデックス0に該当するサブ領域にデータをバックアップした場合、インデックス0を第1の領域の最新バックアップインデックスで設定できる。コントローラ200は、バックアップゾーン100aのインデックス1に該当するサブ領域にデータをバックアップした場合、インデックス1を第1の領域の最新バックアップインデックスで設定できる。また、一実施例において、コントローラ200は、データがインデックス0に対応するサブ領域にバックアップされた後、インデックス1に対応するサブ領域が消去でき、次のバックアップ動作を準備するためにデータがインデックス1に対応するサブ領域にバックアップされた後、インデックス0に対応するサブ領域が消去できる。
また、データを第1の領域にバックアップした後、コントローラ200は、第2の領域を消去し、スライスに対するアップデートフラッグを再設定して、例えば、停電時にバックアップデータを受容させるように第2の領域が準備できる。このとき、コントローラ200は、ランダムゾーン300bのデータをインデックス0のサブ領域にバックアップする動作と、インデックス1のサブ領域にバックアップする動作とが交互に行われる。
他の例として、コントローラ200は、ホスト装置20から伝達される書き込みコマンドの回数が基準値以上である場合、複数のスライス領域に保存されたデータをランダムインデックスの番号によって順次バックアップゾーン100aに書き込み、バックアップしたスライス領域に対して前記フラッシュフラッグの値を1(One)に変更できる。このとき、フラッシュフラッグ1はデータをバックアップゾーン100aにバックアップした状態を示し、フラッシュフラッグ0はデータをバックアップゾーン100aにバックアップしない状態を示す。
コントローラ200は、バックアップ条件として書き込みコマンドの回数でないホスト装置20の要請によって書き込まれたデータがスライスの大きさに到達することを適用することもでき、これに限定されず、運用者の必要によって変更又は追加が可能である。
コントローラ200は、ランダムゾーン300b内の全てのスライス領域に対するデータバックアップが完了すれば、全てのフラッシュフラッグの値を0(Zero)にリセットできる。
コントローラ200は、複数のスライス領域に保存されたデータがバックアップゾーン100aに書き込まれた後、ホスト装置20からランダムゾーン300bに保存されたデータのアップデートが発生する場合、該スライス領域に対するアップデートフラッグの値を1(One)に変更できる。このとき、アップデートフラッグ1は、新規データにアップデートされたが、バックアップ前の状態を示し、アップデートフラッグ0は、新規データをバックアップゾーン100aにバックアップした状態を示す。
図7を参照すれば、コントローラ200は、ランダムゾーン300bに保存されたデータのうち、アップデートフラッグが1であるデータを第2の領域(Index2)にバックアップできる。コントローラ200は、アップデートデータに対するバックアップを完了した後、該スライス領域に対するアップデートフラッグを0にリセットできる。
コントローラ200は、電源がオフ(Off)される信号を受信すれば、ランダムゾーン300bからフラッシュフラッグが0である、或いは、アップデートフラッグが1であるデータを第2の領域Index2に書き込まれる。コントローラ200は、第2の領域Index2にデータを書き込む時、該ランダムインデックスを共に保存できる。このとき、ランダムインデックスは第2の領域の最初のページのスペア(Spare)領域に共に書き込まれる。
複数のスライスが第2の領域にバックアップされる時、複数の対応するランダムアクセスインデックスは第2の領域の第1のページのスペア領域に保存でき、他の実施例では各々のスライスを保存するのに用いられるページのスペア領域に保存できる。前記共に保存されたランダムインデックスは、データの復元時、バックアップ前のランダムゾーン内のバックアップされたデータの位置を把握するのに活用できる。前記フラッシュフラッグが0である場合は、第1の領域へのバックアップ動作が部分的だけに完了され、データをバックアップしなかったことを示す。また、アップデートフラッグが1である場合は、第1の領域に対する最後のバックアップの以後にデータが修正されたことを示す。
仮に、非正常な終了である場合、データ保存装置10は、内部Cap又は外部電源によってバックアップ動作が遂行されるようにすることは当然である。
図8を参照すれば、コントローラ200は、電源がオフ(Off)された後、オン(On)状態に転換すれば、第1の領域(Index0に該当するサブ領域又はIndex1に該当するサブ領域)の最後のバックアップインデックスに該当する物理住所を計算して、ランダムゾーン300bに順次データが読み出される。具体的に、コントローラ200は、バックアップインデックスにランダムゾーンの開始物理住所を反映して、データを復元しなければならない最終物理住所が計算できる。本実施例において、コントローラ200は、不揮発性メモリに保存されたシステム情報を用いて消去状態のサブ領域を判断して、インデックス0のサブ領域又はインデックス1のサブ領域が復元されるデータを保有するか否かが判断できる。
また、コントローラ200は、第1の領域に対するロードが終了すれば、第2の領域(図8のIndex2)のバックアップゾーン100aに保存された最新データを読み出して、ランダムゾーン300bに書き込まれる。
コントローラ200は、第2の領域に共に保存された該ランダムインデックスに基づき、最新データを書き込むランダムゾーン300bの位置が把握できる。このような方式により、第1の領域へのバックアップ動作が失敗したり、第1の領域への最後のバックアップ動作の以後にデータがアップデートされてバックアップされないデータは第2の領域から復元できる。
図9は、本発明の実施例に係るデータ保存装置の動作方法900を説明するためのフローチャートである。
図9を参照すれば、データ保存装置10は、ホスト装置20から書き込みコマンド又は読み出しコマンド時に伝達される論理住所が受信できる(S101)。このとき、データ保存装置10は、ホスト装置20から書き込みコマンド又は読み出しコマンド時にデータの大きさも受信できる。
次に、データ保存装置10は、論理住所が、揮発性メモリ300内のランダムゾーン300b又は不揮発性メモリ100内のシーケンシャルゾーン100bに属するか否かが把握できる(S103、S105)。
前記論理住所はゾーンの開始論理住所を意味し、前記論理住所がランダムゾーン又はシーケンシャルゾーンに属するということは、前記論理住所に対応する物理住所がランダムゾーン又はシーケンシャルゾーンに属するという意味であり得る。すなわち、データ保存装置10は、論理住所がシーケンシャルゾーンに属する場合、論理住所に対応する物理住所を開始住所として、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するように制御できる。
前記揮発性メモリ300は、ゾーンマッピングテーブル600及びシステム情報を保存する領域300aと、ランダム書き込みが可能なランダムゾーン300bとを含むことができる。前記不揮発性メモリは、バックアップゾーン100aと、シーケンシャル書き込みが可能な複数のシーケンシャルゾーン100bとを含むことができる。
データ保存装置10は、ステップS103において把握されたランダムゾーン300b又はシーケンシャルゾーン100bに従い、書き込みコマンド又は読み出しコマンドに対応する動作が遂行できる(S107、S117)。これに関する詳細は後述する。
次に、データ保存装置10は、ランダムゾーン300bに保存されたデータを既設定の基準によってバックアップゾーン100aにバックアップできる(S109、S111)。
前記ランダムゾーン300bは複数のスライス(Slice)領域を含み、前記複数のスライス領域の各々はランダムインデックスとマッチングされ、前記ランダムインデックスの各々は、前記ランダムゾーン300bに保存されたデータを前記バックアップゾーン100aにバックアップしたか否かを示すフラッシュフラッグ(Flush Flag)、及び、前記ランダムゾーン300bに保存されたデータが新規データにアップデートされたか否かを示すアップデートフラッグ(Update Flag)とマッチングされる。
前記バックアップゾーン100aは、ランダムゾーン300bに書き込まれるデータを一対一にバックアップする第1の領域(図7のIndex0、Index1)と、パワーオフ時にランダムゾーン300bにアップデートされた最新データをバックアップする第2の領域(図7のIndex2)とを含み、前記第1の領域及び前記第2の領域は、各々該領域に最新バックアップデータを保存するサブ領域を識別するための各々の最新バックアップインデックスを有することができる。
一例として、ステップS109及びS111において、データ保存装置10は、ランダムゾーン300bに書き込まれたデータ量が基準値以上である場合、ランダムゾーン300bに保存されたデータをバックアップゾーン100aにバックアップし、バックアップしたランダムゾーン300bに対してフラッシュフラッグの値を1(One)に変更できる。
他の例として、ステップS109及びS111において、データ保存装置10は、ホスト装置20から伝達される書き込みコマンドの回数が基準値以上である場合、前記複数のスライス領域に保存されたデータをランダムインデックスの番号によって順次バックアップゾーン100aに書き込むことができる。
図7を参照すれば、データ保存装置10は、ランダムインデックス0からnまで順次スライス領域に保存されたデータをバックアップゾーン100aにバックアップできる。
以後、データ保存装置10は、バックアップしたスライス領域に対してフラッシュフラッグの値を1(On)に変更できる。
次に、データ保存装置10は、複数のスライス領域に保存されたデータがバックアップゾーン100aに書き込まれた後、ホスト装置20からランダムゾーン300bに保存されたデータのアップデートが発生する場合、該スライス領域に対するアップデートフラッグの値を1(One)に変更できる。
一方、データ保存装置10は、電源がオフ(Off)される信号を受信すれば、ランダムゾーン300bからフラッシュフラッグが0(Flush0)である、或いは、アップデートフラッグが1(Update1)であるデータを第2の領域Index2に書き込むことができる。
データ保存装置10は、第2の領域にデータを書き込む時、該ランダムインデックスを共に保存できる。
次に、データ保存装置10は、電源がオフ(Off)された後、オン(On)状態に転換すれば、バックアップゾーン100aに保存されたデータをランダムゾーン300bに復元できる(S113、S115)。ステップS111の後にS113及びS115を示したが、これに限定されず、図9の動作900の間にいつでも電力中断及び後続復元が発生し得る。
具体的に、データ保存装置10は、電源がオフ(Off)された後、オン(On)状態に転換すれば、第1の領域Index0、Index1の最新バックアップインデックスに該当する物理住所を計算して、ランダムゾーン300bに順次データを読み出すことができる。
このとき、データ保存装置10は、最新データを保存する該領域を識別するための第1の領域に属する最新バックアップインデックスと、第2の領域に属する最新バックアップインデックスとをシステム情報として別に管理できる。このような最新バックアップインデックスは、システム情報として揮発性メモリ300に保存できる。ステップS115において、データ保存装置10は、最新バックアップインデックスを確認した後、該バックアップインデックスのデータをランダムゾーン300bに復元させることができる。
次に、データ保存装置10は、第1の領域に対するデータロードが終了すれば、第2の領域のバックアップゾーン100aの第2の領域に保存された最新データを前記ランダムゾーン300bに読み出すことができる。
図10は、図9に示すデータ書き込み方法910を詳細に説明するためのフローチャートである。
データ保存装置10は、ホスト装置20から書き込みコマンド時に伝達される論理住所が受信できる(S201)。このとき、コントローラ200は、ホスト装置20から書き込みコマンド又は読み出しコマンド時にデータの大きさも受信できる。
次に、データ保存装置10は、論理住所が揮発性メモリ内のランダムゾーン300b又は不揮発性メモリ内のシーケンシャルゾーン100bに属するか否かが把握できる(S203、S205)。
ステップS205の確認結果、論理住所がランダムゾーン300bに属する場合、データ保存装置10は、ランダムゾーン300bの開始物理住所に基づき、ホスト装置20から伝達されたデータサイズ程度のデータを書き込むことができる(S207、S209)。
仮に、ステップS205の確認結果、論理住所が前記シーケンシャルゾーン100bに属する場合、データ保存装置10は、ゾーンマッピングテーブル600に基づき、ホスト装置20から書き込みコマンド時に伝達される論理住所にマッチングされたゾーンインデックスが把握できる。
次に、データ保存装置10は、把握されたゾーンインデックスの最終書き込み位置を確認して、書き込みを遂行する物理住所が把握できる(S211)。
次に、データ保存装置10は、把握されたゾーンインデックスの最終書き込み位置の以後からデータサイズ程度のデータを書き込むことができる(S213)。一実施例において、データの大きさはシーケンシャルゾーン100bのページの大きさに対応できる。他の実施例において、データの大きさはシーケンシャルゾーン100bのページの大きさよりも小さいことができ、読み出し−修正−書き込みの動作がデータの書き込みを遂行するのに用いられる。
次に、データ保存装置10は、書き込みを遂行した後、ゾーンマッピングテーブル600に最終書き込み位置がアップデートできる(S215)。
図11は、図9に示すデータ読み出し方法920を詳細に説明するためのフローチャートである。
データ保存装置10は、ホスト装置20から読み出しコマンド時に伝達される論理住所が受信できる(S301)。次に、データ保存装置10は、論理住所が揮発性メモリ内のランダムゾーン300b又は不揮発性メモリ内のシーケンシャルゾーン100bに属するか否かが把握できる(S303、S305)。
ステップS305の確認結果、論理住所がランダムゾーン300bに属する場合、データ保存装置10は、ランダムゾーン300bの開始物理住所にホスト装置20から伝達された論理住所を合算して、最終物理住所が把握できる(S307)。このとき、ホスト装置20から伝達された論理住所は、該論理住所グループの開始論理住所において論理住所のオフセットが意味できる。
図5に示すように、揮発性メモリ300は、ゾーンマッピングテーブル600及びシステム情報を保存する領域300aがメモリ空間の一部を占め、残りの余裕空間をランダムゾーン300bとして用いるため、ランダムゾーン300bの開始物理住所は0でないゾーンマッピングテーブル600及びシステム情報を保存する領域300aの次の順番の物理住所であり得る。これにより、データ保存装置10は、ホスト装置20から伝達されたゾーンの開始論理住所をランダムゾーン300bの開始物理住所に合算して、実際にデータを読み出す最終物理住所が把握できる。
次に、データ保存装置10は、最終物理住所から読み出しコマンド時に伝達されたデータサイズ程度のデータを読み出すことができる(S309)。
ステップS305の確認結果、論理住所がシーケンシャルゾーン100bに属する場合、データ保存装置10は、ゾーンマッピングテーブル600に基づき、論理住所にマッチングされたゾーンインデックスが把握できる。データ保存装置10は、把握されたゾーンインデックスから論理住所に対応する開始物理住所が把握できる(S311)。
次に、データ保存装置10は、ステップS311において把握された開始物理住所から、ホスト装置20から要請されたデータサイズ程度のデータを読み出すことができる(S313)。
図12は、本発明の他の実施例に係るデータ保存装置の動作方法930を説明するためのフローチャートであって、データ保存装置10がランダムゾーン300bに保存されたデータをバックアップゾーン100aに移動する場合を例として説明する。
データ保存装置10は、バックアップ条件を満足させる場合、ランダムゾーン300bに保存されたデータをバックアップゾーン100aにバックアップできる。
一例として、データ保存装置10は、ランダムゾーン300bに書き込まれたデータ量が基準値以上であるか否かが確認できる(S401)。
前記ランダムゾーン300bは複数のスライス(Slice)領域を含み、前記複数のスライス領域の各々はランダムインデックスとマッチングされ、前記ランダムインデックスの各々は、前記ランダムゾーン300bに保存されたデータを前記バックアップゾーン100aにバックアップしたか否かを示すフラッシュフラッグ、及び、前記ランダムゾーン300bに保存されたデータが新規データにアップデートされたか否かを示すアップデートフラッグとマッチングできる。
前記バックアップゾーン100aは、ランダムゾーン300bに書き込まれるデータを一対一にバックアップする第1の領域(図7のIndex0、Index1)と、パワーオフ時にランダムゾーン300bにアップデートされた最新データをバックアップする第2の領域(図7のIndex2)とを含む。前記第1の領域及び前記第2の領域は、各々該領域に最新バックアップデータを保存するサブ領域を識別するための各々の最新バックアップインデックスを有することができる。
ステップS401の確認結果、ランダムゾーン300bに書き込まれたデータ量が基準値以上である場合、データ保存装置10は、ランダムゾーン内の複数のスライス領域に保存されたデータをランダムインデックスの番号によって順次バックアップゾーン100aに書き込むことができる(S403)。
次に、データ保存装置10は、バックアップしたランダムゾーン300bに対してフラッシュフラッグの値を1(One)に変更できる(S405)。
一方、ステップS401の確認結果、ランダムゾーン300bに書き込まれたデータ量が基準値以上でない場合、データ保存装置10は、ホスト装置20から伝達される書き込みコマンドの回数が基準値以上であるか否かが確認できる(S407)。
ステップS407の確認結果、書き込みコマンドの回数が基準値以上である場合、データ保存装置10は、複数のスライス領域に保存されたデータをランダムインデックスの番号によって順次バックアップゾーン100aに書き込むことができる(S409)。
以後、データ保存装置10は、バックアップしたスライス領域に対してフラッシュフラッグの値を1(One)に変更できる(S411)。
次に、データ保存装置10は、複数のスライス領域に保存されたデータがバックアップゾーン100aの第1の領域に書き込まれた後、ホスト装置20からランダムゾーン300bに保存されたデータのアップデートが発生する場合、該スライス領域に対するアップデートフラッグの値を1(One)に変更できる(S413)。
一方、データ保存装置10は、電源がオフ(Off)される信号を受信すれば(S415)、ランダムゾーン300bの第2の領域から、フラッシュフラッグが0(Flush0)である、或いは、アップデートフラッグが1(Update1)であるデータを第2の領域Index2に書き込むことができる(S417)。このとき、データ保存装置10は、第2の領域にデータを書き込む時、該ランダムインデックスを共に保存できる。
図示しなかったが、データ保存装置10は、電源がオフ(Off)された後、オン(On)状態に転換すれば、バックアップゾーン100aに保存されたデータをランダムゾーン300bに復元できる。
図13は、本発明の実施例に係るソリッドステートドライブ(SSD)を含むデータ処理システムの例示図である。図13を参照すれば、データ処理システム2000は、ホスト装置2100及びソリッドステートドライブ(solid state drive)2200(以下、SSDと称する)を含むことができる。
SSD(2200)は、コントローラ2210、バッファメモリ装置2220、不揮発性メモリ2231〜223n、電源供給器2240、信号コネクター2250及び電源コネクター2260を含むことができる。
コントローラ2210は、SSD(2200)の全ての動作が制御できる。
バッファメモリ装置2220は、不揮発性メモリ2231〜223nに保存されるデータを一時保存できる。また、バッファメモリ装置2220は、不揮発性メモリ2231〜223nから読み出されたデータを一時保存できる。バッファメモリ装置2220に一時保存されたデータは、コントローラ2210の制御によってホスト装置2100又は不揮発性メモリ2231〜223nに転送できる。
不揮発性メモリ2231〜223nは、SSD(2200)の保存媒体として用いられる。不揮発性メモリ2231〜223nの各々は、複数のチャンネルCH1〜CHnを介してコントローラ2210と連結できる。一つのチャンネルには一つ又はその以上の不揮発性メモリが連結できる。一つのチャンネルに連結する不揮発性メモリは、同一の信号バス及びデータバスに連結できる。
電源供給器2240は、電源コネクター2260を介して入力された電源(PWR)をSSD(2200)内に提供できる。電源供給器2240は補助電源供給器2241を含むことができる。補助電源供給器2241は突然のパワーオフ(sudden power off)が生じる場合、SSD(2200)が正常に終了するように電源が供給できる。補助電源供給器2241は、電源(PWR)の充電が可能な大容量キャパシタ(capacitors)を含むことができる。
コントローラ2210は、信号コネクター2250を介してホスト装置2100と信号(SGL)の送受信が可能である。ここで、信号(SGL)はコマンド、アドレス及びデータなどを含むことができる。信号コネクター2250は、ホスト装置2100及びSSD(2200)のインターフェース方式によって多様な形態のコネクターで構成できる。
図14は、図13に示すコントローラの構成の例示図である。図14を参照すれば、コントローラ2210は、ホストインターフェースユニット2211、コントロールユニット2212、ランダムアクセスメモリ2213、エラー訂正コード(ECC)ユニット2214及びメモリインターフェースユニット2215を含むことができる。
ホストインターフェースユニット2211は、ホスト装置2100のプロトコルにより、ホスト装置2100及びSSD(2200)がインターフェーシングできる。例えば、ホストインターフェースユニット2211は、セキュアデジタル(secure digital)、USB(universal serial bus)、MMC(multi-media card)、eMMC(embedded MMC)、PCMCIA(personal computer memory card international association)、PATA(parallel advanced technology attachment)、SATA(serial advanced technology attachment)、SCSI(small computer system interface)、SAS(serial attached SCSI)、PCI(peripheral component interconnection)、PCI−E(PCI Express)及びUFS(universal flash storage)プロトコルの何れか一つを介してホスト装置2100と通信できる。また、ホストインターフェースユニット2211は、ホスト装置2100がSSD(2200)を汎用データ保存装置、例えば、ハードディスクドライブ(HDD)として認識するように支援するディスクエミュレーション(disk emulation)機能が遂行できる。
コントロールユニット2212は、ホスト装置2100から入力された信号(SGL)を分析して処理できる。コントロールユニット2212は、SSD(2200)を駆動するためのファームウエア又はソフトウェアによって内部機能ブロック等の動作が制御できる。ランダムアクセスメモリ2213は、このようなファームウエア又はソフトウェアを駆動するための動作メモリとして用いられる。
エラー訂正コード(ECC)ユニット2214は、不揮発性メモリ2231〜223nに転送されるデータのパリティデータが生成できる。生成されたパリティデータは、データと共に不揮発性メモリ2231〜223nに保存できる。エラー訂正コード(ECC)ユニット2214は、パリティデータに基づいて不揮発性メモリ2231〜223nから読み出されたデータのエラーが検出できる。仮に、検出されたエラーが訂正範囲内であれば、エラー訂正コード(ECC)ユニット2214は検出されたエラーが訂正できる。
メモリインターフェースユニット2215は、コントロールユニット2212の制御により、不揮発性メモリ2231〜223nにコマンド及びアドレスのような制御信号が提供できる。また、メモリインターフェースユニット2215は、コントロールユニット2212の制御により、不揮発性メモリ2231〜223nとデータの送受信が可能である。例えば、メモリインターフェースユニット2215は、バッファメモリ装置2220に保存されたデータを不揮発性メモリ2231〜223nに提供したり、不揮発性メモリ2231〜223nから読み出られたデータをバッファメモリ装置2220に提供できる。
図15は、本発明の実施例に係るデータ保存装置を含むデータ処理システムの例示図である。図15を参照すれば、データ処理システム3000は、ホスト装置3100及びデータ保存装置3200を含むことができる。
ホスト装置3100は、印刷回路基板(printed circuit board)のような基板状で構成できる。図示していないが、ホスト装置3100は、ホスト装置の機能を遂行するための内部機能ブロックを含むことができる。
ホスト装置3100は、ソケット(socket)、スロット(slot)又はコネクター(connector)のような接続ターミナル3110を含むことができる。データ保存装置3200は、接続ターミナル3110にマウント(mount)されることができる。
データ保存装置3200は、印刷回路基板のような基板状で構成できる。データ保存装置3200は、メモリモジュール又はメモリカードと呼ばれることができる。データ保存装置3200は、コントローラ3210、バッファメモリ装置3220、不揮発性メモリ3231〜3232、PMIC(power management integrated circuit)3240及び接続ターミナル3250を含むことができる。
コントローラ3210は、データ保存装置3200の全ての動作が制御できる。コントローラ3210は、図13に示すコントローラ2210と同様に構成できる。
バッファメモリ装置3220は、不揮発性メモリ3231〜3232に保存されるデータを一時保存できる。また、バッファメモリ装置3220は、不揮発性メモリ3231〜3232から読み出されたデータを一時保存できる。バッファメモリ装置3220に一時保存されたデータは、コントローラ3210の制御によりホスト装置3100又は不揮発性メモリ3231〜3232に転送できる。
不揮発性メモリ3231〜3232は、データ保存装置3200の保存媒体として用いられる。
PMIC(3240)は、接続ターミナル3250を介して入力された電源をデータ保存装置3200内に提供できる。PMIC(3240)は、コントローラ3210の制御によりデータ保存装置3200の電源が管理できる。
接続ターミナル3250は、ホスト装置の接続ターミナル3110に連結できる。接続ターミナル3250を介して、ホスト装置3100及びデータ保存装置3200間にコマンド、アドレス及びデータなどのような信号や電源が伝達されることができる。接続ターミナル3250は、ホスト装置3100及びデータ保存装置3200のインターフェース方式によって多様な形態で構成できる。接続ターミナル3250は、データ保存装置3200の何れか一辺に配置されることができる。
図16は、本発明の実施例に係るデータ保存装置を含むデータ処理システムの例示図である。図16を参照すれば、データ処理システム4000は、ホスト装置4100及びデータ保存装置4200を含むことができる。
ホスト装置4100は、印刷回路基板のような基板状で構成できる。図示していないが、ホスト装置4100は、ホスト装置の機能を遂行するための内部機能ブロックを含むことができる。
データ保存装置4200は、表面実装型パッケージ状で構成できる。データ保存装置4200は、ソルダボール(solder ball)4250を介してホスト装置4100にマウントされることができる。データ保存装置4200は、コントローラ4210、バッファメモリ装置4220及び不揮発性メモリ4230を含むことができる。
コントローラ4210は、データ保存装置4200の全ての動作が制御できる。コントローラ4210は、図13に示すコントローラ2210と同様に構成できる。
バッファメモリ装置4220は、不揮発性メモリ4230に保存されるデータを一時保存できる。また、バッファメモリ装置4220は、不揮発性メモリ4230から読み出されたデータを一時保存できる。バッファメモリ装置4220に一時保存されたデータは、コントローラ4210の制御によりホスト装置4100又は不揮発性メモリ4230に転送できる。
不揮発性メモリ4230は、データ保存装置4200の保存媒体として用いられる。
図17は、本発明の実施例に係るデータ保存装置を含むネットワークシステム5000の例示図である。図17を参照すれば、ネットワークシステム5000は、ネットワーク5500を介して連結されたサーバーシステム5300及び複数のクライアントシステム5410〜5430を含むことができる。
サーバーシステム5300は、複数のクライアントシステム5410〜5430の要請に応じてデータがサービスできる。例えば、サーバーシステム5300は、複数のクライアントシステム5410〜5430から提供されたデータが保存できる。他の例として、サーバーシステム5300は、複数のクライアントシステム5410〜5430にデータが提供できる。
サーバーシステム5300は、ホスト装置5100及びデータ保存装置5200を含むことができる。データ保存装置5200は、図1のデータ保存装置10、図13のデータ保存装置2200、図15のデータ保存装置3200及び図16のデータ保存装置4200から構成できる。
本発明の属する技術分野における通常の技術者は、本発明がその技術的思想や必須特徴から逸脱しない範囲内において、他の具体的な形態で実施できるので、前述した実施例は全ての面において例示的なものであり、限定的なものではないと理解しなければならない。本発明の範囲は前記詳細な説明よりも後述する特許請求の範囲により示され、特許請求の範囲の意味及び範囲、その等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものと解析しなければならない。
10 データ保存装置
20 ホスト装置
100 不揮発性メモリ
200 コントローラ
210 ホストインターフェース
220 プロセッサ
230 メモリ
240 メモリインターフェース
300 揮発性メモリ

Claims (29)

  1. ゾーンマッピングテーブル及びシステム情報を保存する領域と、ランダム書き込みが可能なランダムゾーンとを含む揮発性メモリ;
    バックアップゾーンと、シーケンシャル書き込みが可能な複数のシーケンシャルゾーンとを含む不揮発性メモリ;及び、
    ホスト装置から書き込みコマンド又は読み出しコマンド時に伝達される論理住所を受信すれば、前記論理住所が前記ランダムゾーン又はシーケンシャルゾーンに属するか否かを把握した後、把握されたゾーンの前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するように制御するコントローラを含み、
    前記コントローラは、前記ランダムゾーンに保存されたデータを既設定の基準によって前記バックアップゾーンにバックアップし、電源がオフ(Off)された後、オン(On)状態に転換すれば、前記バックアップゾーンに保存されたデータを前記ランダムゾーンに復元することを特徴とする、データ保存装置。
  2. 前記コントローラは、前記論理住所が前記シーケンシャルゾーンに属する場合、前記論理住所に対応する物理住所を開始住所として、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するように制御することを特徴とする、請求項1に記載のデータ保存装置。
  3. 前記ゾーンマッピングテーブルは、論理住所グループ、ゾーンインデックス、開始物理住所、全体大きさ及び最終書き込み位置を含むことを特徴とする、請求項2に記載のデータ保存装置。
  4. 前記ホスト装置から書き込みコマンド時に受信した前記論理住所が前記シーケンシャルゾーンに属する場合、前記コントローラは、前記ゾーンマッピングテーブルに基づいて前記論理住所にマッチングされたゾーンインデックスを把握し、把握された前記ゾーンインデックスの前記最終書き込み位置の以後から、前記ホスト装置から伝達されたデータサイズ程度のデータを書き込んた後、前記ゾーンマッピングテーブルに最終書き込み位置をアップデートすることを特徴とする、請求項3に記載のデータ保存装置。
  5. 前記ホスト装置から前記書き込みコマンド時に受信した前記論理住所が前記ランダムゾーンに属する場合、前記コントローラは、前記ランダムゾーンの開始物理住所に基づき、前記ホスト装置から伝達されたデータサイズ程度のデータを書き込むことを特徴とする、請求項3に記載のデータ保存装置。
  6. 前記ホスト装置から前記読み出しコマンド時に受信した前記論理住所が前記シーケンシャルゾーンに属する場合、前記コントローラは、前記ゾーンマッピングテーブルに基づき、前記論理住所にマッチングされたゾーンインデックスを把握し、把握された前記ゾーンインデックスの該ゾーンで前記論理住所に対応する物理住所を開始住所として、前記ホスト装置から伝達されたデータサイズ程度のデータを読み出すことを特徴とする、請求項3に記載のデータ保存装置。
  7. 前記ホスト装置から前記読み出しコマンド時に受信した前記論理住所が前記ランダムゾーンに属する場合、前記コントローラは、前記ランダムゾーンの開始物理住所に前記ホスト装置から伝達された前記論理住所を合算して最終物理住所を把握し、前記最終物理住所から、前記ホスト装置から伝達されたデータサイズ程度のデータを読み出すことを特徴とする、請求項3に記載のデータ保存装置。
  8. 前記ランダムゾーンは複数のスライス領域を含み、前記複数のスライス領域の各々はランダムインデックスとマッチングされ、前記ランダムインデックスの各々は、前記ランダムゾーンに保存されたデータを前記バックアップゾーンにバックアップしたか否かを示すフラッシュフラッグ、及び、前記ランダムゾーンに保存されたデータが新規データにアップデートされたか否かを示すアップデートフラッグとマッチングされることを特徴とする、請求項1に記載のデータ保存装置。
  9. 前記コントローラは、前記ランダムゾーンに書き込まれたデータ量が基準値以上である場合、前記ランダムゾーンに保存されたデータを前記バックアップゾーンにバックアップし、バックアップしたランダムゾーンに対して前記フラッシュフラッグの値を1(One)に変更することを特徴とする、請求項8に記載のデータ保存装置。
  10. 前記コントローラは、前記ホスト装置から伝達される書き込みコマンドの回数が基準値以上である場合、前記複数のスライス領域に保存されたデータを前記ランダムインデックスの番号によって順次前記バックアップゾーンに書き込み、バックアップしたスライス領域に対して前記フラッシュフラッグの値を1(One)に変更することを特徴とする、請求項8に記載のデータ保存装置。
  11. 前記コントローラは、前記ランダムゾーン内の全てのスライス領域に対するデータバックアップが完了すれば、全てのフラッシュフラッグの値を0(Zero)にリセットすることを特徴とする、請求項10に記載のデータ保存装置。
  12. 前記コントローラは、前記複数のスライス領域に保存されたデータが前記バックアップゾーンに書き込まれた後、前記ホスト装置から前記ランダムゾーンに保存されたデータのアップデートが発生する場合、該スライス領域に対する前記アップデートフラッグの値を1(On)に変更することを特徴とする、請求項8に記載のデータ保存装置。
  13. 前記バックアップゾーンは、前記ランダムゾーンに書き込まれるデータを一対一にバックアップする第1の領域と、パワーオフ時に前記ランダムゾーンにアップデートされた最新データをバックアップする第2の領域とを含み、
    前記第1の領域及び前記第2の領域の各々は、一つ以上のバックアップインデックスと各々マッチングされることを特徴とする、請求項12に記載のデータ保存装置。
  14. 前記コントローラは、前記電源がオフ(Off)される信号を受信すれば、前記ランダムゾーンから前記フラッシュフラッグが0である、或いは、前記アップデートフラッグが1であるデータを前記第2の領域に書き込み、前記第2の領域に前記データを書き込む時、該ランダムインデックスを共に保存することを特徴とする、請求項13に記載のデータ保存装置。
  15. 前記コントローラは、前記電源がオフ(Off)された後、オン(On)状態に転換すれば、前記第1の領域のバックアップインデックスに該当する物理住所を計算して、前記ランダムゾーンに順次データをロードし、前記第1の領域に対するロードが終了すれば、前記第2の領域のバックアップゾーンに保存された最新データを前記ランダムゾーンにロードすることを特徴とする、請求項14に記載のデータ保存装置。
  16. 前記コントローラは、前記第2の領域に共に保存された該ランダムインデックスに基づき、前記最新データを書き込む前記ランダムゾーンの位置を把握することを特徴とする、請求項15に記載のデータ保存装置。
  17. ホスト装置から書き込みコマンド又は読み出しコマンド時に伝達される論理住所を受信するステップ;
    前記論理住所が揮発性メモリ内のランダムゾーン又は不揮発性メモリ内のシーケンシャルゾーンに属するか否かを把握するステップ;及び、
    前記把握されたランダムゾーン又はシーケンシャルゾーンに従い、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するステップを含み、
    前記揮発性メモリは、ゾーンマッピングテーブル及びシステム情報を保存する領域と、ランダム書き込みが可能な前記ランダムゾーンとを含み、前記不揮発性メモリは、バックアップゾーンと、シーケンシャル書き込みが可能な複数の前記シーケンシャルゾーンとを含むことを特徴とする、データ保存装置の動作方法。
  18. 前記論理住所が前記シーケンシャルゾーンに属する場合、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行するステップにおいて、
    前記論理住所に対応する物理住所を開始住所として、前記書き込みコマンド又は前記読み出しコマンドに対応する動作を遂行することを特徴とする、請求項17に記載のデータ保存装置の動作方法。
  19. 前記論理住所が前記シーケンシャルゾーンに属する場合、前記書き込みコマンドに対応する動作を遂行するステップは、
    前記ゾーンマッピングテーブルに基づき、前記ホスト装置から書き込みコマンド時に伝達される前記論理住所にマッチングされたゾーンインデックスを把握するステップ;
    把握された前記ゾーンインデックスの前記最終書き込み位置の以後から前記ホスト装置から伝達されたデータサイズ程度のデータを書き込むステップ;及び、
    前記ゾーンマッピングテーブルに最終書き込み位置をアップデートするステップ;を含むことを特徴とする、請求項18に記載のデータ保存装置の動作方法。
  20. 前記論理住所が前記ランダムゾーンに属する場合、前記書き込みコマンドに対応する動作を遂行するステップにおいて、
    前記ランダムゾーンの開始物理住所に基づき、前記ホスト装置から伝達されたデータサイズ程度のデータを書き込むことを特徴とする、請求項18に記載のデータ保存装置の動作方法。
  21. 前記論理住所が前記シーケンシャルゾーンに属する場合、前記読み出しコマンドに対応する動作を遂行するステップは、
    前記ゾーンマッピングテーブルに基づき、前記論理住所にマッチングされたゾーンインデックスを把握するステップ;
    把握された前記ゾーンインデックスの該ゾーンで前記論理住所に対応する物理住所を開始住所として設定するステップ;及び、
    設定された前記開始住所から、前記ホスト装置から伝達されたデータサイズ程度のデータを読み出すステップ;を含むことを特徴とする、請求項18に記載のデータ保存装置の動作方法。
  22. 前記論理住所が前記ランダムゾーンに属する場合、前記読み出しコマンドに対応する動作を遂行するステップは、
    前記ランダムゾーンの開始物理住所に前記ホスト装置から伝達された前記論理住所を合算して最終物理住所を把握するステップ;及び、
    前記最終物理住所から前記データサイズ程度のデータを読み出すステップ;を含むことを特徴とする、請求項18に記載のデータ保存装置の動作方法。
  23. 前記ランダムゾーンに保存されたデータを既設定の基準によって前記バックアップゾーンにバックアップするステップ;及び、
    電源がオフ(Off)された後、オン(On)状態に転換すれば、前記バックアップゾーンに保存されたデータを前記ランダムゾーンに復元するステップをさらに含むことを特徴とする、請求項18に記載のデータ保存装置の動作方法。
  24. 前記ランダムゾーンは複数のスライス領域を含み、前記複数のスライス領域の各々はランダムインデックスとマッチングされ、前記ランダムインデックスの各々は、前記ランダムゾーンに保存されたデータを前記バックアップゾーンにバックアップしたか否かを示すフラッシュフラッグ、及び、前記ランダムゾーンに保存されたデータが新規データにアップデートされたか否かを示すアップデートフラッグとマッチングされることを特徴とする、請求項23に記載のデータ保存装置の動作方法。
  25. 前記バックアップゾーンにバックアップするステップにおいて、
    前記ランダムゾーンに書き込まれたデータ量が基準値以上である場合、前記ランダムゾーンに保存されたデータを前記バックアップゾーンにバックアップするステップ;及び、
    バックアップしたランダムゾーンに対して前記フラッシュフラッグの値を1(One)に変更するステップ;を含むことを特徴とする、請求項24に記載のデータ保存装置の動作方法。
  26. 前記バックアップゾーンにバックアップするステップは、
    前記ホスト装置から伝達される書き込みコマンドの回数が基準値以上である場合、前記複数のスライス領域に保存されたデータを前記ランダムインデックスの番号によって順次前記バックアップゾーンに書き込むステップ;及び、
    バックアップしたスライス領域に対して前記フラッシュフラッグの値を1(One)に変更するステップ;を含むことを特徴とする、請求項24に記載のデータ保存装置の動作方法。
  27. 前記バックアップゾーンにバックアップするステップは、
    前記複数のスライス領域に保存されたデータが前記バックアップゾーンに書き込まれた後、前記ホスト装置から前記ランダムゾーンに保存されたデータのアップデートが発生する場合、該スライス領域に対するアップデートフラッグの値を1(One)に変更するステップをさらに含むことを特徴とする、請求項24に記載のデータ保存装置の動作方法。
  28. 前記バックアップゾーンは、前記ランダムゾーンに書き込まれるデータを一対一にバックアップする第1の領域と、パワーオフ時に前記ランダムゾーンにアップデートされた最新データをバックアップする第2の領域とを含み、前記第1の領域及び前記第2の領域は、各々仮想のバックアップインデックスとマッチングされ、
    前記バックアップゾーンにバックアップするステップは、
    前記電源がオフ(Off)される信号を受信すれば、前記ランダムゾーンから前記フラッシュフラッグが0である、或いは、前記アップデートフラッグが1であるデータを前記第2の領域に書き込み、
    前記第2の領域に前記データを書き込む時、該ランダムインデックスを共に保存することを特徴とする、請求項27に記載のデータ保存装置の動作方法。
  29. 前記ランダムゾーンに復元するステップは、
    前記電源がオフ(Off)された後、オン(On)状態に転換すれば、前記第1の領域のバックアップインデックスに該当する物理住所を計算して、前記ランダムゾーンに順次データをロードするステップ;及び、
    前記第1の領域に対するロードが終了すれば、前記第2の領域のバックアップゾーンに保存された最新データを前記ランダムゾーンにロードするステップ;を含むことを特徴とする、請求項28に記載のデータ保存装置の動作方法。
JP2020111045A 2019-08-22 2020-06-29 データ保存装置及びその動作方法 Pending JP2021034026A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190103087A KR20210023203A (ko) 2019-08-22 2019-08-22 데이터 저장 장치 및 그것의 동작 방법
KR10-2019-0103087 2019-08-22

Publications (1)

Publication Number Publication Date
JP2021034026A true JP2021034026A (ja) 2021-03-01

Family

ID=74495906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020111045A Pending JP2021034026A (ja) 2019-08-22 2020-06-29 データ保存装置及びその動作方法

Country Status (5)

Country Link
US (1) US11243709B2 (ja)
JP (1) JP2021034026A (ja)
KR (1) KR20210023203A (ja)
CN (1) CN112416242B (ja)
DE (1) DE102020112512A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11843597B2 (en) * 2016-05-18 2023-12-12 Vercrio, Inc. Automated scalable identity-proofing and authentication process
US11734175B2 (en) * 2019-08-22 2023-08-22 SK Hynix Inc. Storage device and method of operating the same
TWI777087B (zh) * 2019-09-06 2022-09-11 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US11762769B2 (en) 2019-09-20 2023-09-19 SK Hynix Inc. Memory controller based on flush operation and method of operating the same
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
US11604740B2 (en) * 2020-12-01 2023-03-14 Capital One Services, Llc Obfuscating cryptographic material in memory
US11620084B2 (en) 2020-12-30 2023-04-04 Samsung Electronics Co., Ltd. Storage device including memory controller and operating method of memory controller
CN112947996B (zh) * 2021-05-14 2021-08-27 南京芯驰半导体科技有限公司 基于虚拟映射的片外非易失性存储器动态装载系统及方法
CN113568579B (zh) * 2021-07-28 2022-05-03 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法
CN113687710B (zh) * 2021-10-26 2022-03-22 西安羚控电子科技有限公司 一种固定翼无人机的飞控管理计算机掉电处理方法及系统
KR102385572B1 (ko) 2021-11-02 2022-04-13 삼성전자주식회사 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법
US20230205705A1 (en) * 2021-12-23 2023-06-29 Advanced Micro Devices, Inc. Approach for providing indirect addressing in memory modules
US11941286B2 (en) 2022-02-04 2024-03-26 Western Digital Technologies, Inc. Keeping a zone random write area in non-persistent memory
EP4343767A3 (en) * 2022-08-31 2024-05-22 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and operating method of storage device

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US20070150645A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Method, system and apparatus for power loss recovery to enable fast erase time
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100825802B1 (ko) 2007-02-13 2008-04-29 삼성전자주식회사 기입 데이터의 논리적 페이지보다 이전 논리적 페이지들을가지는 데이터들을 데이터 블록으로부터 복사하는 불휘발성메모리 장치의 데이터 기입 방법
US7752489B2 (en) * 2007-05-10 2010-07-06 International Business Machines Corporation Data integrity validation in storage systems
US8751859B2 (en) * 2007-05-10 2014-06-10 International Business Machines Corporation Monitoring lost data in a storage system
KR101449524B1 (ko) 2008-03-12 2014-10-14 삼성전자주식회사 스토리지 장치 및 컴퓨팅 시스템
KR101506675B1 (ko) 2008-12-09 2015-03-30 삼성전자주식회사 보조 전원 장치를 갖는 사용자 장치
US8347041B2 (en) * 2009-01-02 2013-01-01 Lsi Corporation System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages
KR20110046243A (ko) 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
US9753847B2 (en) * 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
KR101636248B1 (ko) 2009-12-10 2016-07-06 삼성전자주식회사 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법
TWI399644B (zh) * 2009-12-24 2013-06-21 Univ Nat Taiwan 非揮發記憶體區塊管理方法
WO2012016089A2 (en) * 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
JP5553309B2 (ja) * 2010-08-11 2014-07-16 国立大学法人 東京大学 データ処理装置
US8595414B2 (en) 2010-09-30 2013-11-26 Apple Inc. Selectively combining commands for a system having non-volatile memory
US9690695B2 (en) * 2012-09-20 2017-06-27 Silicon Motion, Inc. Data storage device and flash memory control method thereof
US20140229657A1 (en) * 2013-02-08 2014-08-14 Microsoft Corporation Readdressing memory for non-volatile storage devices
US9454474B2 (en) * 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US9218279B2 (en) * 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
JP6020278B2 (ja) 2013-03-21 2016-11-02 富士通株式会社 自律分散型キャッシュ配置制御システム
KR102025180B1 (ko) * 2013-08-08 2019-09-26 삼성전자주식회사 스토리지 시스템 및 그것의 쓰기 방법
KR102218735B1 (ko) * 2014-01-21 2021-02-23 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법
US9383927B2 (en) * 2014-05-28 2016-07-05 SandDisk Technologies LLC Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device
US9418699B1 (en) 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
US9507711B1 (en) * 2015-05-22 2016-11-29 Sandisk Technologies Llc Hierarchical FTL mapping optimized for workload
KR102447471B1 (ko) * 2015-06-24 2022-09-27 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR20180024615A (ko) 2016-08-30 2018-03-08 삼성전자주식회사 보조 전력을 공급하기 위한 커패시터들을 포함하는 전자 장치의 전력 및 성능 관리 방법
JP2018073040A (ja) 2016-10-27 2018-05-10 東芝メモリ株式会社 メモリシステム
US10564888B2 (en) * 2016-11-09 2020-02-18 Sandisk Technologies Llc Method and system for visualizing a correlation between host commands and storage system performance
KR102610537B1 (ko) 2016-11-10 2023-12-06 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
KR20180080589A (ko) * 2017-01-04 2018-07-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10698817B2 (en) 2017-06-12 2020-06-30 Dell Products, L.P. Method for determining available stored energy capacity at a power supply and system therefor
US10733100B2 (en) * 2017-06-12 2020-08-04 Western Digital Technologies, Inc. Method and apparatus for classifying and buffering write commands
WO2018232089A1 (en) * 2017-06-14 2018-12-20 Burlywood, LLC Extent-based data location table management
US10643707B2 (en) * 2017-07-25 2020-05-05 Western Digital Technologies, Inc. Group write operations for a data storage device
US10289557B2 (en) * 2017-08-28 2019-05-14 Western Digital Technologies, Inc. Storage system and method for fast lookup in a table-caching database
TWI670600B (zh) * 2017-09-18 2019-09-01 深圳大心電子科技有限公司 資料備份方法、資料恢復方法以及儲存控制器
US10379948B2 (en) * 2017-10-02 2019-08-13 Western Digital Technologies, Inc. Redundancy coding stripe based on internal addresses of storage devices
KR102410671B1 (ko) 2017-11-24 2022-06-17 삼성전자주식회사 스토리지 장치, 스토리지 장치를 제어하는 호스트 장치, 및 스토리지 장치의 동작 방법
WO2019126072A1 (en) * 2017-12-18 2019-06-27 Formulus Black Corporation Random access memory (ram)-based computer systems, devices, and methods
KR20190087217A (ko) * 2018-01-16 2019-07-24 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
EP3866013A1 (en) 2020-02-11 2021-08-18 Aptiv Technologies Limited Data logging system for collecting and storing input data

Also Published As

Publication number Publication date
CN112416242B (zh) 2024-06-28
KR20210023203A (ko) 2021-03-04
US11243709B2 (en) 2022-02-08
US20210055864A1 (en) 2021-02-25
DE102020112512A1 (de) 2021-02-25
CN112416242A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN112416242B (zh) 数据存储设备及其操作方法
US10891225B2 (en) Host- directed sanitization of memory
US10372481B2 (en) Information processing device and system capable of preventing loss of user data
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
US20190317892A1 (en) Memory system, data processing system, and operating method of memory system
KR20200085967A (ko) 데이터 저장 장치 및 그 동작 방법
US10459803B2 (en) Method for management tables recovery
KR20200020464A (ko) 데이터 저장 장치 및 그 동작 방법
KR20170051563A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20180130229A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
CN111813328A (zh) 存储器系统及其操作方法
KR20210144249A (ko) 저장 장치 및 이의 동작 방법
KR102578191B1 (ko) 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN111916140A (zh) 控制器及其操作方法以及包括控制器的存储器系统
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102620727B1 (ko) 전자 장치
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210068734A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11720276B2 (en) Memory system and controller for managing write status
KR20230160620A (ko) 메모리 시스템에서 데이터를 복구하는 장치 및 방법
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법
KR20210079894A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20220049230A (ko) 메모리 시스템에서 비휘발성 메모리 장치 내 오류를 확인하는 장치 및 방법