JP2023001880A - コントローラ及びコントローラの動作方法 - Google Patents
コントローラ及びコントローラの動作方法 Download PDFInfo
- Publication number
- JP2023001880A JP2023001880A JP2022085888A JP2022085888A JP2023001880A JP 2023001880 A JP2023001880 A JP 2023001880A JP 2022085888 A JP2022085888 A JP 2022085888A JP 2022085888 A JP2022085888 A JP 2022085888A JP 2023001880 A JP2023001880 A JP 2023001880A
- Authority
- JP
- Japan
- Prior art keywords
- backup
- memory
- data chunks
- program
- memory device
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5671—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】メモリシステムの性能及び信頼性を維持しつつ、メモリシステムの製造費用を低減できるコントローラ及びコントローラの動作方法を提供する。【解決手段】コントローラの動作方法は、プログラムされるデータチャンクを書き込みバッファにバッファリングするステップと、データチャンクを選択的にバックアップメモリにバックアップするステップと、バッファリングされたデータチャンクのそれぞれのプログラム順序を決定し、ノンバックアップデータチャンクは、第2のプログラムステップ動作でプログラムされるように前記プログラム順序を決定するステップと、メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、第1の物理ページに第2のプログラムステップ動作を行うことにより、データチャンクをプログラムするステップと、を含む。【選択図】図7
Description
本発明は、コントローラ及びコントローラの動作方法に関する。
近年、コンピュータ環境に対するパラダイム(paradigm)がいつ、どこでもコンピュータシステムを使用できるようにするユビキタスコンピューティング(ubiquitous computing)に切り換えられている。これにより、携帯電話、デジタルカメラ、ノートブックコンピュータなどのような携帯用電子装置の使用が急増している。このような携帯用電子装置は、一般に、メモリ装置を利用するメモリシステム、言い換えれば、データ格納装置を使用する。データ格納装置は、携帯用電子装置の主記憶装置または補助記憶装置として使用される。
不揮発性メモリ装置を利用したデータ格納装置は、ハードディスクとは異なり、機械的な駆動部がないので、安定性及び耐久性に優れ、かつ、情報のアクセス速度が極めて速く、電力消費が少ないという長所がある。このような長所を有するメモリシステムの一例として、データ格納装置は、USB(Universal Serial Bus)メモリ装置、様々なインターフェースを有するメモリカード、ソリッドステートドライブ(SSD:Solid State Drive)などを含む。
本発明は、メモリシステムの性能及び信頼性を維持しつつ、メモリシステムの製造費用を低減できるコントローラ及びコントローラの動作方法を提供しようとする。
本発明の実施形態によれば、第1及び第2のプログラムステップ動作を経てプログラムされるマルチレベルセルを含むメモリ装置を制御するコントローラの動作方法は、プログラムされるデータチャンクを書き込みバッファにバッファリングするステップと、前記データチャンクのうち、少なくとも1つのバックアップデータチャンクを前記書き込みバッファと区別されるバックアップメモリにバックアップするステップと、前記データチャンクのプログラム順序を決定し、前記データチャンクのうち、ノンバックアップデータチャンクは、第2のプログラムステップ動作を介して前記マルチレベルセルにプログラムされるように前記プログラム順序を決定するステップと、前記メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、前記第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、前記第1の物理ページに第2のプログラムステップ動作を行うことにより、前記プログラム順序を基に前記データチャンクを前記マルチレベルセルにプログラムするように前記メモリ装置を制御するステップとを含むことができる。
また、前記プログラム順序を決定するステップは、前記データチャンクのうち、バックアップデータチャンクが前記第1または第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定するステップを含むことができる。
また、前記プログラム順序を決定するステップは、前記メモリ装置が前記第1のプログラムステップ動作を介して前記データチャンクのうち、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定するステップと、前記メモリ装置が前記第2のプログラムステップ動作を介して前記書き込みバッファにノンバックアップデータチャンクがバッファリングされた場合、前記ノンバックアップデータチャンクがプログラムされるように前記プログラム順序を決定するステップと、前記メモリ装置が前記第2のプログラムステップ動作を行う順序に前記書き込みバッファにバックアップデータチャンクのみバッファリングされた場合、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定するステップとを含むことができる。
また、前記動作方法は、前記書き込みバッファ内の前記ノンバックアップデータチャンクを前記メモリ装置に伝達するステップと、前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が成功的に完了すれば、前記ノンバックアップデータチャンクを前記書き込みバッファから除去するステップとをさらに含むことができる。
また、前記動作方法は、前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が失敗すれば、前記書き込みバッファにバッファリングされた前記ノンバックアップデータチャンクを前記メモリ装置に再度伝達するステップをさらに含むことができる。
また、前記動作方法は、前記書き込みバッファ内のバックアップデータチャンクを前記メモリ装置に伝達するステップと、前記バックアップデータチャンクを前記メモリ装置に伝達した後、伝達されたバックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作を行う前に、前記バックアップデータチャンクを前記書き込みバッファから除去するステップとをさらに含むことができる。
また、前記動作方法は、前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が成功的に完了すれば、前記バックアップデータチャンクに対応するバックアップデータチャンクを前記バックアップメモリから除去するステップをさらに含むことができる。
また、前記動作方法は、前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が失敗すれば、前記バックアップメモリにバックアップされた前記バックアップデータチャンクを前記メモリ装置に伝達するステップをさらに含むことができる。
また、前記データチャンクのうち、前記少なくとも1つのバックアップデータチャンクを前記バックアップメモリにバックアップするステップは、ホストから受信されたデータチャンクが前記バックアップメモリにバックアップされるデータパスでボトルネックが発生しないように前記データチャンクのうち、少なくとも1つのデータチャンクを廃棄するか、前記バックアップメモリにバックアップするステップを含むことができる。前記書き込みバッファは、前記バックアップメモリより高速で動作するメモリであることができる。
また、前記データチャンクのうち、前記少なくとも1つのバックアップデータチャンクを前記バックアップメモリにバックアップするステップは、前記ホストから受信されたデータチャンクが経由する臨時バッファに余裕空間がある場合、前記データチャンクを前記臨時バッファにバッファリングし、前記臨時バッファにバッファリングされたデータチャンクをバックアップメモリにバックアップするステップと、前記臨時バッファに余裕空間がない場合、前記データチャンクを臨時バッファにバッファリングせずに廃棄するステップとを含むことができる。
本発明の他の実施形態によれば、第1及び第2のプログラムステップ動作を経てプログラムされるマルチレベルセルを含むメモリ装置を制御するコントローラは、プログラムされるデータチャンクをバッファリングする書き込みバッファと、前記データチャンクのうち、少なくとも1つのバックアップデータチャンクをバックアップするバックアップメモリと、前記書き込みバッファにバッファリングされたデータチャンクに対するプログラム順序を決定し、前記データチャンクのうち、ノンバックアップデータチャンクは、第2のプログラムステップ動作を介してプログラムされるように前記プログラム順序を決定するプロセッサとを備えることができる。前記プロセッサは、前記メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、前記第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、前記第1の物理ページに第2のプログラムステップ動作を行うことにより、前記データチャンクを前記マルチレベルセルにプログラムするように前記メモリ装置を制御できる。
また、前記プロセッサは、前記データチャンクのうち、バックアップデータチャンクが、前記第1または第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。
また、前記プロセッサは、前記メモリ装置が前記第1のプログラムステップ動作を介して前記データチャンクのうち、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定し、前記メモリ装置が前記第2のプログラムステップ動作を介して前記書き込みバッファにノンバックアップデータチャンクがバッファリングされた場合、前記ノンバックアップデータチャンクがプログラムされるように前記プログラム順序を決定し、前記メモリ装置が前記第2のプログラムステップ動作を行う順序に前記書き込みバッファにバックアップデータチャンクのみバッファリングされた場合、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定できる。
また、前記プロセッサは、前記書き込みバッファ内の前記ノンバックアップデータチャンクを前記メモリ装置に伝達し、前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が成功的に完了すれば、前記ノンバックアップデータチャンクを前記書き込みバッファから除去することができる。
また、前記プロセッサは、前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が失敗すれば、前記書き込みバッファにバッファリングされた前記ノンバックアップデータチャンクを前記メモリ装置に再度伝達することができる。
また、前記プロセッサは、前記書き込みバッファ内のバックアップデータチャンクを前記メモリ装置に伝達し、前記バックアップデータチャンクを前記メモリ装置に伝達した後、伝達されたバックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作を行う前に、前記バックアップデータチャンクを前記書き込みバッファから除去することができる。
また、前記プロセッサは、前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が成功的に完了すれば、前記バックアップデータチャンクに対応するバックアップデータチャンクを前記バックアップメモリから除去することができる。
また、前記プロセッサは、前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が失敗すれば、前記バックアップメモリにバックアップされた前記バックアップデータチャンクを前記メモリ装置に伝達することができる。
また、前記バックアップメモリは、ホストから受信されたデータチャンクが前記バックアップメモリにバックアップされるデータパスでボトルネックが発生しないように前記データチャンクのうち、少なくとも1つのデータチャンクを廃棄するか、前記バックアップメモリにバックアップすることができる。前記書き込みバッファは、前記バックアップメモリより高速で動作するメモリであることができる。
また、前記コントローラは、前記データチャンクが伝達される前記データパス上に位置する臨時バッファをさらに備えることができる。前記臨時バッファは、前記臨時バッファに余裕空間がある場合、前記データチャンクを前記臨時バッファにバッファリングし、前記臨時バッファにバッファリングされたデータチャンクをバックアップメモリにバックアップし、前記臨時バッファに余裕空間がない場合、前記データチャンクを臨時バッファにバッファリングせずに廃棄することができる。
本発明の他の実施形態によれば、第1及び第2のプログラムステップ動作を経てプログラムされるマルチレベルセルを含むメモリ装置を制御するコントローラは、プログラムされるデータチャンクをバッファリングする書き込みバッファと、前記データチャンクを選択的にバックアップするバックアップメモリと、前記書き込みバッファにバッファリングされたデータチャンクのそれぞれのプログラム順序を決定し、前記データチャンクのうち、ノンバックアップデータチャンクは、第2のプログラムステップ動作でプログラムされるように前記プログラム順序を決定するプロセッサとを備えることができる。前記プロセッサは、前記メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、前記第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、前記第1の物理ページに第2のプログラムステップ動作を行うことにより、前記データチャンクをプログラムするように前記メモリ装置を制御し、前記ノンバックアップデータチャンクに連関した物理ページのプログラム動作が失敗すれば、前記書き込みバッファにバッファリングされた前記ノンバックアップデータチャンクを前記メモリ装置に再度提供することができる。
本発明は、メモリシステムの性能及び信頼性を維持しつつ、メモリシステムの製造費用を低減できるコントローラ及びコントローラの動作方法を提供できる。
以下、添付された図面を参照して本発明の望ましい実施形態を説明する。
しかしながら、本発明は、以下において開示される実施形態に限定されるものではなく、互いに異なる様々な形態で構成されることができ、単に本実施形態は、本発明の開示が完全なようにし、通常の知識を有する者に本発明の範疇を完全に知らせるために提供されるものである。
図1は、本発明の実施形態に係るメモリシステムを含むデータ処理システムの一例を概略的に示した図である。
図1に示すように、データ処理システム100は、ホスト102及びメモリシステム110を含む。
ホスト102は、電子装置、例えば、携帯電話、MP3プレーヤ、ラップトップコンピュータなどのような携帯用電子装置、またはデスクトップコンピュータ、ゲーム機、TV、プロジェクタなどのような電子装置を含むことができる。
ホスト102は、少なくとも1つの運営システム(OS:operating system)を含むことができる。運営システムは、ホスト102の機能及び動作を全般的に管理及び制御し、データ処理システム100またはメモリシステム110を使用するユーザとホスト102との間に相互動作を提供する。運営システムは、ユーザの使用目的及び用途に相応した機能及び動作を支援し、ホスト102の移動性(mobility)によって一般運営システムとモバイル運用システムとに区分することができる。運営システムにおける一般運営システムは、ユーザの使用環境によって個人用運営システムと企業用運営システムとに区分することができる。
メモリシステム110は、ホスト102の要請に応じてホスト102のデータを格納するために動作することができる。例えば、メモリシステム110は、ソリッドステートドライブ(SSD:Solid State Drive)、MMC、eMMC(embedded MMC)、RS-MMC(Reduced Size MMC)、micro-MMC形態のマルチメディアカード(MMC:Multi Media Card)、SD、mini-SD、micro-SD形態のセキュアデジタル(SD:Secure Digital)カード、USB(Universal Serial Bus)格納装置、UFS(Universal Flash Storage)装置、CF(Compact Flash)カード、スマートメディア(Smart Media(登録商標))カード、メモリスティック(Memory Stick)などのような様々な種類の格納装置のうち、いずれか1つで実現されることができる。
メモリシステム110は、様々な種類の格納装置により実現されることができる。例えば、前記格納装置は、DRAM(Dynamic Random Access Memory)、SRAM(Static RAM)などのような揮発性メモリ装置と、ROM(Read Only Memory)、MROM(Mask ROM)、PROM(Programmable ROM)、EPROM(Erasable ROM)、EEPROM(Electrically Erasable ROM)、FRAM(登録商標)(Ferromagnetic RAM)、PRAM(Phase change RAM)、MRAM(Magnetic RAM)、RRAM(Resistive RAM)、フラッシュメモリなどのような不揮発性メモリ装置を含むことができる。
メモリシステム110は、メモリ装置150及びコントローラ130を含むことができる。メモリ装置150は、ホスト102のためのデータを格納することができ、コントローラ130は、メモリ装置150へのデータ格納を制御できる。
コントローラ130及びメモリ装置150は、1つの半導体装置に集積されることができる。一例として、コントローラ130及びメモリ装置150は、1つの半導体装置に集積されてSSDを構成することができる。メモリシステム110がSSDとして使用されれば、メモリシステム110に連結されたホスト102の動作速度は向上することができる。さらに、コントローラ130及びメモリ装置150は、1つの半導体装置に集積されてメモリカードを構成することもできる。例えば、コントローラ130及びメモリ装置150は、PCカード(PCMCIA:Personal Computer Memory Card International Association)、コンパクトフラッシュ(登録商標)カード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS-MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュ記憶装置(UFS)などのようなメモリカードを構成することができる。
他の一例として、メモリシステム110は、コンピュータ、UMPC(Ultra Mobile PC)、ワークステーション、ネットブック(net-book)、PDA(Personal Digital Assistants)、ポータブル(portable)コンピュータ、ウェブタブレット(web tablet)、タブレットコンピュータ(tablet computer)、無線電話機(wireless phone)、モバイルフォン(mobile phone)、スマートフォン(smart phone)、e-ブック(e-book)、PMP(portable multimedia player)、携帯用ゲーム機、ナビゲーション(navigation)装置、ブラックボックス(black box)、デジタルカメラ(digital camera)、DMB(Digital Multimedia Broadcasting)再生機、3次元テレビ(3-dimensional television)、スマートテレビ(smart television)、デジタル音声録音機(digital audio recorder)、デジタル音声再生機(digital audio player)、デジタル画像録画機(digital picture recorder)、デジタル画像再生機(digital picture player)、デジタル動画録画機(digital video recorder)、デジタル動画再生機(digital video player)、データセンタを構成するストレージ、情報を無線環境で送受信できる装置、ホームネットワークを構成する様々な電子装置のうち1つ、コンピューターネットワークを構成する様々な電子装置のうち1つ、テレマティクスネットワークを構成する様々な電子装置のうち1つ、RFID(radio frequency identification)装置、またはコンピューティングシステムを構成する様々な構成要素のうち1つなどを構成することができる。
メモリ装置150は、不揮発性メモリ装置であることができ、電源が供給されなくても格納されたデータを維持できる。メモリ装置150は、プログラム動作を介してホスト102から提供されたデータを格納することができ、読み出し動作を介してホスト102にメモリ装置150に格納されたデータを提供することができる。メモリ装置150は、複数のメモリブロックを含み、メモリブロックの各々は、複数のページを含み、前記ページの各々は、ワードラインに連結された複数のメモリセルを含むことができる。一実施形態において、メモリ装置150は、フラッシュメモリになることができる。前記フラッシュメモリは、3次元スタック構造を有することができる。
コントローラ130は、ホスト102からの要請に応じてメモリ装置150を制御できる。例えば、コントローラ130は、メモリ装置150から読み出されたデータをホスト102に提供し、ホスト102から提供されたデータをメモリ装置150に格納することができる。このような動作のために、コントローラ130は、メモリ装置150の読み出し(read)、プログラム(program)、イレイス(erase)などの動作を制御できる。
コントローラ130は、書き込みバッファ146を備えることができる。コントローラ130は、メモリ装置150にプログラムされるデータ、例えば、ホスト102から書き込み要請とともに受信されたデータを書き込みバッファ146にバッファリングすることができる。コントローラ130は、書き込みバッファ146にバッファリングされたデータをメモリ装置150に提供しつつ、メモリ装置150が前記データをプログラムするように制御することができる。
コントローラ130は、メモリ装置150のプログラム動作が失敗する場合に備えて、前記データをメモリ装置150に提供した後にも、前記プログラム動作が成功的に完了するまで前記データをコントローラ130内部に維持することができる。
書き込みバッファ146は、書き込み要請を速かに処理するために、SRAMのような高速メモリで実現されることができる。高速メモリは、DRAMのような一般メモリに比べてアクセス速度が速いが、集積度が低く、製造費用が高いことがある。仮に、コントローラ130がメモリ装置150にプログラムされる全てのデータをプログラム動作が成功的に完了するまで書き込みバッファ146に維持すべきであるならば、高容量の書き込みバッファ146が要求され得る。メモリシステム110に高容量の書き込みバッファ146を含める場合、メモリシステム110の回路面積が増加し、製造費用が上昇することがある。
コントローラ130は、プログラム動作が成功的に完了するまでプログラムされるデータを維持するためのバックアップメモリ148を備えることができる。コントローラ130は、ホスト102からのデータを書き込みバッファ146にバッファリングし、バックアップメモリ148に同じデータをバックアップすることができる。バックアップメモリ148に前記バッファリングされたデータと同じデータがバックアップされた場合、コントローラ130は、書き込みバッファ146にバッファリングされたデータをメモリ装置150に提供した後に、前記データを書き込みバッファ146から除去することができる。
バックアップメモリ148は、DRAMのような一般メモリで実現されることができ、前記一般メモリは、前記高速メモリに比べて集積度が高く、製造費用が低いことがある。
コントローラ130がバックアップメモリ148を用いると、メモリ装置150にプログラムされるデータがコントローラ130に維持され得るので、メモリ装置150のプログラム動作が失敗してもメモリシステム110の信頼性が維持され得るだけでなく、メモリシステム110の回路面積及び製造費用が低減され得る。
一方、バックアップメモリ148にバックアップされたデータが除去される速度よりバックアップメモリ148に新しいデータがバックアップされる速度が速い場合、バックアップメモリ148でボトルネックが発生しうる。仮に、コントローラ130が書き込みバッファ146にバッファリングされるデータを全てバックアップメモリ148にバックアップすべきであるならば、バックアップメモリ148でボトルネックが発生したときは、書き込みバッファ146にもデータをバッファリングできないことがある。バックアップメモリ148でボトルネックが発生すれば、書き込みバッファ146が十分なデータ送信速度を提供できるにもかかわらず、メモリシステム110の書き込み性能が低下する恐れがある。
本発明の実施形態によれば、コントローラ130は、バックアップメモリ148でボトルネックが発生しないように書き込みバッファ146にバッファリングされるデータのうち一部はバックアップせずに廃棄(discard)することができる。図1に示すように、書き込みバッファ146は、複数のデータチャンク(data chunk)をバッファリングすることができる。書き込みバッファ146にバッファリングされた複数のデータチャンクのうち、あるデータチャンクは、バックアップメモリ148にバックアップされることができ、残りのデータチャンクは、バックアップメモリ148にバックアップされないことができる。
バックアップメモリ148にバックアップされたデータチャンクは、バックアップデータチャンクと称されることができ、バックアップデータチャンクは、図1において陰影が表示された四角形で図示される。書き込みバッファ146にバッファリングされたデータチャンクのうち、対応するバックアップデータチャンクを有するデータチャンクは、ノーマルデータチャンクと称されることができ、図1においてドットパターンが表示された四角形で図示される。書き込みバッファ146にバッファリングされたデータチャンクがバックアップデータチャンクを有するとは、前記データチャンクと同じ値を有するデータチャンクがバックアップメモリ148に格納されるということを指すことができる。書き込みバッファ146にバッファリングされたデータチャンクのうち、バックアップデータチャンクを有さないデータチャンクは、ノンバックアップデータチャンクと称されることができ、図1において斜線パターンが表示された四角形で図示される。図1において破線で連結されたノーマルデータチャンクとバックアップデータチャンクとは、互いに同じ値を有するデータチャンクを示すことができる。
コントローラ130は、ノーマルデータチャンクをメモリ装置150に提供してから直ちに前記ノーマルデータチャンクを書き込みバッファ146から除去しても、前記ノーマルデータチャンクと同じデータをバックアップメモリ148に維持することができる。それに対し、コントローラ130は、ノンバックアップデータチャンクをコントローラ130に維持するために、前記ノンバックアップデータチャンクが成功的にプログラム完了するまで前記ノンバックアップデータチャンクを書き込みバッファ146に維持することができる。
本発明の実施形態によれば、コントローラ130は、書き込みバッファ146に要求される容量を最小化するために、ノンバックアップデータチャンクが書き込みバッファ146で滞積される時間を減らそうとする。以下において、コントローラ130が、データチャンクが成功的にプログラムされるまで前記データチャンクをコントローラ130に維持しながらも、ノンバックアップデータチャンクを書き込みバッファ146から速かに除去することにより、ノンバックアップデータチャンクが書き込みバッファ146で滞積されないようにする方法が図2~図9Bを参照して詳細に説明される。
図2は、本発明の実施形態に係るメモリシステム110を詳細に説明する図である。
メモリシステム110は、コントローラ130及びメモリ装置150を含むことができる。図2に示されたコントローラ130及びメモリ装置150は、図1を参照して説明されたことと対応する。
コントローラ130は、互いに内部バスを介して動作可能なように連結されたホストインターフェース132、プロセッサ134、ECC(error correction code、138)、パワー管理ユニット140、メモリインターフェース142、及びメモリ144を備えることができる。
ホストインターフェース132は、ホスト102のコマンド(command)及びデータを処理し、USB(Universal Serial Bus)、MMC(Multi-Media Card)、PCI-E(Peripheral Component Interconnect-Express)、SAS(Serial-attached SCSI)、SATA(Serial Advanced Technology Attachment)、PATA(Parallel Advanced Technology Attachment)、SCSI(Small Computer System Interface)、ESDI(Enhanced Small Disk Interface)、IDE(Integrated Drive Electronics)、MIPI(Mobile Industry Processor Interface)などのような様々なインターフェースプロトコルのうち、少なくとも1つを介してホスト102と通信するように構成されることができる。
ホストインターフェース132は、ホスト102とデータをやりとりするために、ホストインターフェース階層(HIL:Host Interface Layer)と呼ばれるファームウェア(firmware)を駆動できる。
ECC(138)は、メモリ装置150から読み出されるデータに含まれたエラーを検出及び訂正できる。すなわち、ECC(138)は、ECCエンコードプロセスで使用されたECCコードを介してメモリ装置150から読み出されたデータにエラー訂正デコードプロセスを行うことができる。エラー訂正デコードプロセスの結果に応じて、ECC(138)は、例えば、エラー訂正成功/失敗信号のような信号を出力できる。エラービットの数が訂正可能なエラービットの閾値を超過すれば、ECC(138)は、エラービットを訂正できず、エラー訂正失敗信号を出力できる。
ECC(138)は、LDPC(low density parity check)コード(code)、BCH(Bose、Chaudhuri、Hocquenghem)コード、ターボコード(turbo code)、リード-ソロモンコード(Reed-Solomon code)、コンボリューションコード(convolution code)、RSC(recursive systematic code)、TCM(trellis-coded modulation)、BCM(Block coded modulation)などのコーデッドモジュレーション(coded modulation)を使用してエラー訂正を行うことができる。しかし、ECC(138)は、特定の構造に限定されるものではない。ECC(138)は、エラー訂正のための回路、モジュール、システム、または装置を全て含むことができる。
メモリインターフェース142は、コントローラ130がホスト102からの要請に応答してメモリ装置150を制御するように、コントローラ130とメモリ装置150との間のインターフェーシングのためのメモリ/ストレージ(storage)インターフェースとしての役割をすることができる。メモリ装置150がフラッシュメモリ、特に、NANDフラッシュメモリである場合、メモリインターフェース142は、メモリ装置150のための制御信号を生成し、プロセッサ134の制御下にメモリ装置150に提供されるデータを処理できる。メモリインターフェース142は、コントローラ130とメモリ装置150との間のコマンド及びデータを処理するためのインターフェース、例えば、NANDフラッシュインターフェースとして動作することができる。
メモリインターフェース142は、フラッシュインターフェース階層(FIL:Flash Interface Layer)と呼ばれるファームウェア(firmware)を駆動できる。
プロセッサ134は、メモリシステム110の全体的な動作を制御できる。プロセッサ134は、メモリシステム110の全般的な動作を制御するためにファームウェアを駆動できる。前記ファームウェアは、フラッシュ変換階層(FTL:Flash Translation Layer)と呼ばれることができる。そして、プロセッサ134は、マイクロプロセッサまたは中央処理装置(CPU)などで実現されることができる。
プロセッサ134は、フラッシュ変換階層を駆動してホスト102から受信された要請に対応するフォアグラウンド動作(foreground operation)を行うことができる。例えば、プロセッサ134は、ホストからの書き込み要請に応じてメモリ装置150の書き込み動作を制御し、読み出し要請に応じてメモリ装置150の読み出し動作を制御できる。
また、コントローラ130は、マイクロプロセッサまたは中央処理装置(CPU)などで実現されたプロセッサ134を介してメモリ装置150に対するバックグラウンド動作(background operation)を行うこともできる。例えば、メモリ装置150に対するバックグラウンド動作は、ガベージコレクション(GC:Garbage Collection)動作、ウェアレベリング(WL:Wear Leveling)動作、マップフラッシュ(map flush)動作、バッドブロック管理(bad block management)動作などを含むことができる。
メモリ144は、メモリシステム110及びコントローラ130の動作メモリとしての役割を行うことができ、メモリシステム110及びコントローラ130の駆動のためのデータを格納することができる。コントローラ130は、ホスト102からの要請に応じてメモリ装置150が読み出し、プログラム、イレイス動作を行うようにメモリ装置150を制御できる。コントローラ130は、メモリ装置150から読み出されるデータをホスト102に提供することができ、ホスト102から提供されるデータをメモリ装置150に格納することができる。メモリ144は、コントローラ130とメモリ装置150とがこのような動作を行うのに必要なデータを格納することができる。
メモリ144は、揮発性メモリで実現されることができる。例えば、メモリ144は、静的ランダムアクセスメモリ(SRAM:Static Random Access Memory)、または動的ランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)などで実現されることができる。メモリ144は、コントローラ130内部または外部に配置されることができる。図1は、コントローラ130内部に配置されたメモリ144を例示する。一実施形態において、メモリ144は、外部揮発性メモリ装置で実現されることができ、前記メモリ144は、コントローラ130とデータを入出力するためのメモリインターフェースを有することができる。
メモリ144は、図1を参照して説明された書き込みバッファ146及びバックアップメモリ148を備えることができる。コントローラ130がホスト102から受信されたデータチャンクを書き込みバッファ146にバッファリングし、データチャンクを選択的にバックアップメモリ148にバックアップするデータパス(data path)について図3を参照して詳細に説明される。
図3は、ホスト102から受信されたデータのデータパスを説明するための図である。
図3は、図1及び図2を参照して説明されたコントローラ130の構成のうち一部を示す。具体的に、図3は、ホストインターフェース132、書き込みバッファ146、及びバックアップメモリ148を示す。
図3は、メインデータパス302及びバックアップデータパス304を示す。メインデータパス302は、ホスト102から受信されたデータチャンクが書き込みバッファ146にバッファリングされるまでの経路を称することができる。バックアップデータパス304は、ホスト102からのデータチャンクがバックアップメモリ148にバックアップされるまでの経路を称することができる。
コントローラ130は、臨時バッファ140をさらに備えることができる。ホスト102からのデータチャンクは、ホストインターフェース132を介して受信され、臨時バッファ140を経由してバックアップメモリ148にバックアップされることができる。臨時バッファ140は、メモリ144に含まれることができる。
コントローラ130は、メモリシステム110の書き込み動作性能を維持するために、ホスト102からのデータチャンクを選択的にバックアップしたり、廃棄することによってバックアップデータパス304でボトルネックが発生しないようにすることができる。
図3の例において、ホストインターフェース132は、ホスト102から第1~第4のデータチャンクD1-D4を受信し、前記データチャンクをメインデータパス302及びバックアップデータパス304に提供することができる。書き込みバッファ146は、メインデータパス302を介して受信された第1~第4のデータチャンクD1-D4を全てバッファリングすることができる。臨時バッファ140は、内部にデータチャンクをバッファリングできる余裕空間があるか否かによってバックアップデータパス304を介して受信されたデータチャンクを選択的にバッファリングすることができる。例えば、臨時バッファ140は、第1~第3のデータチャンクD1-D3をバッファリングし、それ以上の余裕空間がない場合、第4のデータチャンクD4をバッファリングせずに廃棄することができる。臨時バッファ140は、バッファリングされた第1~第3のデータチャンクD1-D3をバックアップメモリ148にバックアップすることができる。
図3の例において、書き込みバッファ146にバッファリングされたデータチャンクのうち、第1~第3のデータチャンクD1-D3は、ノーマルデータチャンクに該当し、第4のデータチャンクD4は、ノンバックアップデータチャンクに該当することができる。バックアップメモリ148にバックアップされた第1~第3のデータチャンクD1-D3は、バックアップデータチャンクに該当することができる。
プロセッサ134は、第1~第4のデータチャンクD1-D4をメモリ装置150に提供しながらメモリ装置150のプログラム動作を制御できる。プロセッサ134は、ノーマルデータチャンクである第1~第3のデータチャンクD1-D3がメモリ装置150に提供された後、書き込みバッファ146から除去することができる。仮に、ノーマルデータチャンクに対するプログラム動作が失敗した場合、プロセッサ134は、前記ノーマルデータチャンクに対応するバックアップデータチャンクをバックアップメモリ148からメモリインターフェース142を介してメモリ装置150に再度提供することができる。
それに対し、プロセッサ134は、ノンバックアップデータチャンクである第4のデータチャンクD4がメモリ装置150に提供された後にも、書き込みバッファ146から除去せずに維持することができる。仮に、ノンバックアップデータチャンクに対するプログラム動作が失敗した場合、プロセッサ134は、前記ノンバックアップデータチャンクを書き込みバッファ146からメモリインターフェース142を介してメモリ装置150に提供することができる。プロセッサ134は、メモリ装置150のプログラム動作が成功的に完了すれば、バックアップデータチャンクをバックアップメモリ148から除去し、ノンバックアップデータチャンクを書き込みバッファ146から除去することができる。
本発明の実施形態によれば、コントローラ130は、データチャンクがメモリ装置150にプログラムされる順序を調整することにより、ノンバックアップデータチャンクに対するプログラム動作が速かに完了し得るようにし、ノンバックアップデータチャンクを書き込みバッファ146から速かに除去しようとする。本発明の実施形態によれば、ノンバックアップデータチャンクがメモリ装置150のプログラム動作が成功的に完了するまで書き込みバッファ146に維持されながらも、ノンバックアップデータチャンクが書き込みバッファ146に滞積されることが防止され得る。
メモリ装置150でデータがプログラムされる順序が図4~図6を参照して詳細に説明される。
図4は、メモリ装置150の3次元メモリセルアレイを示す図である。
図4に示すように、メモリ装置150は、複数のメモリブロックMB1~MBkを含むことができる。メモリブロックは、複数のストリングST11~ST1m、ST21~ST2mを含むことができる。実施形態として、複数のストリングST11~ST1m、ST21~ST2mの各々は、「U」字形で形成されることができる。第1のメモリブロックMB1内で行方向(X方向)にm個のストリングが配列され得る。図6において、列方向(Y方向)に2個のストリングが配列されることと示されたが、これは、説明の便宜のためのものであって、列方向(Y方向)に3個以上のストリングが配列され得る。
複数のストリングST11~ST1m、ST21~ST2mの各々は、少なくとも1つのソースセレクトトランジスタSST、第1~第nのメモリセルMC1~MCn、パイプトランジスタPT、及び少なくとも1つのドレインセレクトトランジスタDSTを含むことができる。
ソース及びドレインセレクトトランジスタSST及びDSTとメモリセルMC1~MCnとは、互いに類似した構造を有することができる。例えば、ソース及びドレインセレクトトランジスタSST及びDSTとメモリセルMC1~MCnとの各々は、チャネル膜、トンネル絶縁膜、電荷トラップ膜、及びブロッキング絶縁膜を含むことができる。例えば、チャネル膜を提供するためのピラー(pillar)が各ストリングに提供され得る。例えば、チャネル膜、トンネル絶縁膜、電荷トラップ膜、及びブロッキング絶縁膜のうち、少なくとも1つを提供するためのピラーが各ストリングに提供され得る。
各ストリングのソースセレクトトランジスタSSTは、ソースラインSLとメモリセルMC1~MCpとの間に連結されることができる。
実施形態として、同じ行に配列されたストリングのソースセレクトトランジスタは、行方向に延長されるソースセレクトラインに連結されることができ、相違した行に配列されたストリングのソースセレクトトランジスタは、相違したソースセレクトラインに連結されることができる。図4において、第1行のストリングST11~ST1mのソースセレクトトランジスタは、第1のソースセレクトラインSSL1に連結されることができる。第2行のストリングST21~ST2mのソースセレクトトランジスタは、第2のソースセレクトラインSSL2に連結されることができる。
他の実施形態として、ストリングST11~ST1m、ST21~ST2mのソースセレクトトランジスタは、1つのソースセレクトラインに共通に連結されることができる。
各ストリングの第1~第nのメモリセルMC1~MCnは、ソースセレクトトランジスタSSTとドレインセレクトトランジスタDSTとの間に連結されることができる。
第1~第nのメモリセルMC1~MCnは、第1~第pのメモリセルMC1~MCpと第p+1~第nのメモリセルMCp+1~MCnに区分されることができる。第1~第pのメモリセルMC1~MCpは、垂直方向(Z方向)に順次配列されることができ、ソースセレクトトランジスタSSTとパイプトランジスタPTとの間で互いに直列に連結されることができる。第p+1~第nのメモリセルMCp+1~MCnは、垂直方向(Z方向)に順次配列されることができ、パイプトランジスタPTとドレインセレクトトランジスタDSTとの間で互いに直列に連結されることができる。第1~第pのメモリセルMC1~MCpと第p+1~第nのメモリセルMCp+1~MCnとは、パイプトランジスタPTを介して互いに連結されることができる。各ストリングの第1~第nのメモリセルMC1~MCnのゲートは、各々第1~第nのワードラインWL1~WLnに連結されることができる。
実施形態として、第1~第nのメモリセルMC1~MCnのうち、少なくとも1つは、ダミーメモリセルとして用いられることができる。ダミーメモリセルが提供される場合、当該ストリングの電圧または電流は安定的に制御されることができる。各ストリングのパイプトランジスタPTのゲートは、パイプラインPLに連結されることができる。
各ストリングのドレインセレクトトランジスタDSTは、ビットラインとメモリセルMCp+1~MCnとの間に連結されることができる。行方向に配列されるストリングは、行方向に延長されるドレインセレクトラインに連結されることができる。第1行のストリングST11~ST1mのドレインセレクトトランジスタは、第1のドレインセレクトラインDSL1に連結されることができる。第2行のストリングST21~ST2mのドレインセレクトトランジスタは、第2のドレインセレクトラインDSL2に連結されることができる。
列方向に配列されるストリングは、列方向に延長されるビットラインに連結されることができる。図4において第1列のストリングST11、ST21は、第1のビットラインBL1に連結されることができる。第m列のストリングST1m、ST2mは、第mのビットラインBLmに連結されることができる。
行方向に配列されるストリングのうち、同じワードラインに連結されるメモリセルは、1つの物理ページを構成できる。例えば、第1行のストリングST11~ST1mのうち、第1のワードラインWL1に連結されたメモリセルは、1つの物理ページを構成できる。第2行のストリングST21~ST2mのうち、第1のワードラインWL1に連結されたメモリセルは、他の1つの物理ページを構成できる。ドレインセレクトラインDSL1、DSL2のうち、いずれか1つが選択されることにより、1つの行方向に配列されるストリングが選択されるであろう。ワードラインWL1~WLnのうち、いずれか1つが選択されることにより、選択されたストリングのうち、1つの物理ページが選択されるであろう。
メモリ装置150は、1つのメモリセルに1ビットデータを格納するSLC(Single Level Cell)メモリブロック、1つのメモリセルに複数ビットデータを格納するMLC(Multi Level Cell)メモリブロックなどを含む複数のメモリブロックを含むことができる。SLCメモリブロックは、1つのメモリセルに1つのビットデータを格納するメモリセルで実現される複数のページを含むことができる。SLCメモリブロックは、高い耐久性と速いデータ動作性能を有することができる。それに対し、MLCメモリブロックは、1つのメモリセルに2つ以上のビットのような複数ビットのデータを格納するメモリセルで実現される複数のページを含むことができる。例えば、前記MLCメモリブロックは、1つのメモリセルに2ビットのデータを格納できるDLC(Dual Level Cell)メモリブロック、1つのメモリセルに3ビットのデータを格納できるTLC(Triple Level Cell)メモリブロック、または1つのメモリセルに4ビットのデータを格納できるQLC(Quadruple Level Cell)メモリブロックであることができる。前記MLCメモリブロックは、前記SLCメモリブロックより大きいデータ格納空間を有することができる。すなわち、前記MLCメモリブロックは、高集積化されることができる。
メモリ装置150は、メモリセルに複数ビットデータをプログラムするために、種々のステップのプログラム動作を行うことができる。例えば、メモリ装置150は、DLCをプログラムするために、DLCの2ビットのうち、LSB(Least Significant Bit)に該当するデータを先にプログラムする第1のプログラムステップ動作を行うことができる。メモリ装置150は、第1のプログラムステップ動作を行った後、MSB(Most Significant Bit)に該当するデータをプログラムする第2のプログラムステップ動作を行うことにより、DLCの2ビットデータを全てプログラムすることができる。各プログラムステップは、複数のプログラムループを含むことができる。以下において、複数のプログラムステップを含むプログラム動作は、マルチステッププログラム動作と称される。
図5は、メモリ装置150のマルチステッププログラム動作を説明するための図である。
図5は、メモリセルの一例として、TLCの閾値電圧状態を表す分布図を示す。各分布図で横軸は、メモリセルの閾値電圧、縦軸は、当該閾値電圧を有するメモリセルの数を示す。
第1の分布図502は、イレイスされたメモリセルの閾値電圧状態を表す。第1の分布図502において、メモリセルは、全てイレイス状態を有することができる。図5の例において、イレイス状態のメモリセルは、論理「1」の値を有することができる。
第2の分布図504は、メモリ装置150が第1のプログラムステップ動作を行った後、メモリセルの閾値電圧状態を表す。メモリ装置150は、メモリセルのビットのうち、第1のビットデータ、例えば、LSB(Least Significant Bit)データをメモリセルに先にプログラムすることができる。第1のビットデータをプログラムする動作が第1のプログラムステップ動作と称される。第1のプログラムステップを行うために、メモリ装置150は、コントローラ130から第1のビットデータを取得できる。メモリ装置150が前記第1のビットデータを使用してメモリセルに第1のプログラムステップ動作を行うと、イレイス状態を有するメモリセルの一部がプログラム状態に移動することができる。図5の例においてメモリセルは、論理「1」または論理「0」の値を有することができる。
第3の分布図506は、メモリ装置150が第2のプログラムステップ動作を行った後、メモリセルの閾値電圧状態を表す。メモリ装置150は、第1のビットデータがプログラムされた後、前記メモリセルのビットのうち、第2のビットデータ、例えば、MSB(Most Significant Bit)データ及びCSB(Central Significant Bit)データをメモリセルにさらにプログラムすることができる。第2のビットデータをさらにプログラムする動作が第2のプログラムステップ動作と称される。メモリ装置150は、前記第1及び第2のビットデータを使用してメモリセルに第2のプログラムステップ動作を行うことができる。実現によって、第2のプログラムステップを行うために、メモリ装置150は、コントローラ130から第1及び第2のビットデータを取得することができ、コントローラ130からは、第2のビットデータのみを取得し、メモリセルから第1のビットデータを取得することもできる。メモリ装置150がメモリセルに第2のプログラムステップ動作を行うと、MSBデータ、CSBデータ、及びLSBデータが全てプログラム完了することができる。図5の例において、メモリセルは、「111」、「101」、「001」、「011」、「010」、「110」、「100」、及び「000」の値を有することができる。
図5は、TLCメモリブロックの場合を例に挙げてマルチステッププログラム動作を説明したが、マルチステッププログラム動作は、様々な類型のMLCメモリブロックに適用されることができる。例えば、メモリ装置150がDLCメモリブロックにマルチステッププログラム動作を行う場合、第1のプログラムステップ動作で2ビットデータのうち、LSBデータを用いて2個の閾値電圧状態を形成できる。そして、メモリ装置150は、第2のプログラムステップ動作でLSBデータ及びMSBデータを用いて最終的に4個の閾値電圧状態を形成できる。
一方、ある物理ページにプログラム動作を行う場合、ワードラインカップリングにより隣接した物理ページの閾値電圧分布も変わるプログラムディスターバンスが発生しうる。複数の物理ページをプログラムするとき、プログラムディスターバンスの影響を最小化するために、メモリ装置150のプログラム順序が決定され得る。
図6は、マルチステッププログラム動作を行うメモリ装置150のプログラム順序を説明する図である。
メモリ装置150がMLCメモリ装置である場合、各物理ページは、複数のサブページを含むことができる。例えば、メモリ装置150がDLCメモリ装置である場合、各物理ページは、第1のビットページ及び第2のビットページを含むことができる。
図6に示された第1のテーブル600は、1つのメモリブロックに含まれたサブページ別のプログラム順序を示す。第1のテーブル600の1番目の行には、第1~第8のドレインセレクトラインDSL1-DSL8が表示され、1番目の列には、第1~第3のワードラインWL1-WL3が表示される。図4を参照して説明されたように、1つのメモリブロックで複数の物理ページは、ドレインセレクトラインDSLとワードラインWLとによって選択されることができる。以下において、X番目のワードラインとY番目のドレインセレクトラインにより選択される物理ページは、ページXYと称されることができる。例えば、第1のワードラインWL1と第4のドレインセレクトラインDSL4とで特定される物理ページは、ページ14(Page14)と称されることができる。
第1のテーブル600の2番目の列には、第1~第3のワードラインWL1-WL3のそれぞれの第1のビット及び第2のビットが表示される。第1のテーブル600の各エントリー(entry)は、各サブページに対応することができ、第1のテーブル600に表示された「1」、「2」、...「40」のような数字は、各サブページのプログラム順序を表す。
メモリ装置150がN番目のワードラインで第1のプログラムステップ動作を行った後、前記N番目のワードラインで第2のプログラムステップ動作を連続して行う場合、イレイス状態であるN+1番目のワードラインに連結されたメモリセルがプログラムディスターバンスの影響を大きく受ける恐れがある。プログラムディスターバンスの影響を最小化するために、N番目のワードラインで第1のプログラムステップ動作を行い、前記N+1番目のワードラインで第1のプログラムステップ動作を行った後に、前記N番目のワードラインで第2のプログラムステップ動作を行うことができる。
例えば、第1のテーブル600のプログラム順序「1」~「8」を参照すれば、メモリ装置150は、メモリブロックの第1のワードラインWL1に連関したページ11ないしページ18の第1のビットページを順序通りにプログラムすることができる。プログラム順序「9」及び「10」を参照すれば、メモリ装置150は、ページ11ないしページ18の第1のビットページのプログラムが完了すればページ21に該当する第1のビットページのプログラムを先に行い、ページ11に該当する第2のビットページのプログラムを行うことができる。プログラム順序「11」~「24」を参照すれば、ページ11及びページ21の場合と同様に、ページ12ないしページ18とページ22ないしページ28でも第2のワードラインWL2に連関した第1のビットページが第1のワードラインWL1に連関した第2のビットページより先にプログラムされることができる。同様に、プログラム順序「25」~「40」を参照すれば、メモリ装置150は、第3のワードラインWL3に連関した第1のビットページを第2のワードラインWL2に連関した第2のビットページより先にプログラムすることができる。
ある物理ページの第1及び第2のプログラムステップが全て成功的に完了してはじめて、前記物理ページのプログラム動作が完了することができる。前記第1のプログラムステップが成功的に完了したとしても、前記第2のプログラムステップが失敗すれば、メモリ装置150は、前記物理ページのプログラム動作が失敗したことと判断し、第1及び第2のビットページを他の物理ページに再度プログラムすることができる。メモリシステム110の信頼性を保障するために、コントローラ130は、第2のプログラムステップが完了するまで第1及び第2のビットページを維持できる。
図6の例において、ページ21の第1のプログラムステップは、9番目の順序で行われ、第2のプログラムステップは、26番目の順序で行われることができる。前記26番目の順序で行われる第2のプログラムステップが完了してはじめて、ページ21のプログラム動作が完了することができる。仮に、9番目の順序でプログラムされたデータチャンクは、26番目の順序で行われる第2のプログラムステップが完了するまでコントローラ130に維持されることができる。仮に、前記データチャンクがノンバックアップデータチャンクであるならば、前記データチャンクは、26番目の順序の第2のプログラムステップが完了するまで書き込みバッファ146に維持されることができる。
仮に、前記ノンバックアップデータチャンクが10番目の順序でプログラムされるならば、前記ノンバックアップデータチャンクは、ページ12に第2のプログラムステップ動作を介してプログラムされることができ、10番目の順序の第2のプログラムステップが完了すれば、書き込みバッファ146から除去されることができる。
本発明の実施形態によれば、コントローラ130は、データチャンクがメモリ装置150にプログラムされる順序を調整し、ノンバックアップデータチャンクを第2のプログラムステップ動作でプログラムさせることにより、ノンバックアップデータチャンクが書き込みバッファ146から速かに除去されるようにすることができる。本発明の実施形態に係るコントローラ130の動作は、図7~図9Bを参照して詳細に説明される。
図7は、本発明の実施形態によって書き込み動作を行うためのコントローラ130及びメモリ装置150の相互作用(transaction)を示す。
ステップS702において、書き込みバッファ146は、ホストインターフェース132を介して受信されたデータチャンクをバッファリングすることができる。
ステップS704において、バックアップメモリ148は、ホストインターフェース132を介して受信された前記データチャンクを選択的にバックアップすることができる。
ステップS702及びステップS704は、各々図3を参照して説明されたメインデータパス302及びバックアップデータパス304を介して並列に行われることができる。
ステップS706において、プロセッサ134は、書き込みバッファ146にバッファリングされたデータチャンクがメモリ装置150にプログラムされる順序を決定できる。具体的に、プロセッサ134は、ノンバックアップデータチャンクが第2のビットページにプログラムされ得るようにプログラム順序を調整できる。
ステップS708において、メモリインターフェース142は、第1の物理ページの第1のビットページにプログラムされるデータチャンクをメモリ装置150に提供することができる。以下において、第1のビットページにプログラムされるデータチャンクは、第1のビットデータチャンクと称されることができる。本発明の実施形態によれば、第1のビットデータチャンクは、常にノーマルデータチャンクであることができる。
第1の物理ページの第1のビットデータチャンクがメモリ装置150に提供された後、プロセッサ134は、ステップS710で前記第1のビットデータチャンクを書き込みバッファ146から除去することができる。
ステップS712において、メモリ装置150は、コントローラ130から受信された第1のビットデータチャンクを用いて第1の物理ページの第1のプログラムステップ動作を行うことができる。
ステップS714において、メモリインターフェース142は、第1の物理ページに後続する第2の物理ページの第1のビットデータチャンクをメモリ装置150に提供することができる。
第2の物理ページの第1のビットデータチャンクがメモリ装置150に提供された後、プロセッサ134は、ステップS716で前記第1のビットデータチャンクを書き込みバッファ146から除去することができる。
ステップS718において、メモリ装置150は、コントローラ130から受信された第1のビットデータチャンクを用いて第2の物理ページの第1のプログラムステップ動作を行うことができる。
ステップS720において、メモリインターフェース142は、第1の物理ページの第2のビットページにプログラムされるデータチャンクである第2のビットデータチャンクをメモリ装置150に提供することができる。本発明の実施形態によれば、第2のビットデータチャンクは、ノンバックアップデータチャンクまたはノーマルデータチャンクであることができる。図7は、第2のビットデータチャンクがノンバックアップデータチャンクである場合を例示する。第2のビットデータチャンクがメモリ装置150に提供された後、プロセッサ134は、第2のビットデータチャンクを書き込みバッファ146から除去せずに書き込みバッファ146に維持することができる。
ステップS722において、メモリ装置150は、コントローラ130から受信された第2のビットデータチャンクを用いて第1の物理ページの第2のプログラムステップ動作を行うことができる。
ステップS712の第1のプログラムステップ及びステップS722の第2のプログラムステップが成功的に完了すれば、メモリ装置150は、ステップS724で第1の物理ページに対するプログラム完了信号をコントローラ130に提供することができる。
ステップS726において、プロセッサ134は、前記プログラム完了信号に応じて第1の物理ページと連関したバックアップデータチャンク及びノンバックアップデータチャンクを除去できる。具体的に、プロセッサ134は、前記第1の物理ページの第1のビットデータチャンクに該当するバックアップデータチャンクをバックアップメモリ148から除去することができる。そして、プロセッサ134は、ノンバックアップデータチャンクである第1の物理ページの第2のビットデータチャンクを書き込みバッファ146から除去することができる。
以下において、プロセッサ134が、前記ノンバックアップデータチャンクが第2のプログラムステップ動作を介してプログラムされ得るようにプログラム順序を決定する方法の例が図8を参照して詳細に説明される。
図8は、ステップS706の細部動作を例示する図である。
S802において、プロセッサ134は、メモリ装置150のプログラム順序にしたがって第1のプログラムステップ動作を行う順序であるか否かを判断できる。メモリ装置150のプログラム順序の例は、図6を参照して説明された。
メモリ装置150が第1のプログラムステップ動作を行う順序である場合(ステップS802において、「はい」)、プロセッサ134は、ステップS804において書き込みバッファ146にバッファリングされたデータチャンクのうち、ノーマルデータチャンクが前記第1のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。例えば、プロセッサ134は、書き込みバッファ146にバッファリングされたノーマルデータチャンクのうち、最も古いデータチャンクが前記第1のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。書き込みバッファ146にバッファリングされたデータチャンクのうち、最も古いデータチャンクがノンバックアップデータチャンクである場合でも、プロセッサ134は、前記ノンバックアップデータチャンクがプログラムされることを保留することができる。
メモリ装置150が第2のプログラムステップ動作を行う順序である場合(ステップS802において、「いいえ」)、プロセッサ134は、ステップS806で書き込みバッファ146にノンバックアップデータチャンクがバッファリングされたか否かを判断できる。
書き込みバッファ146にノンバックアップデータチャンクがバッファリングされた場合(ステップS806において、「はい」)、プロセッサ134は、ステップS808において前記ノンバックアップデータチャンクが前記第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。例えば、コントローラ130は、書き込みバッファ146にバッファリングされたノンバックアップデータチャンクのうち、最も古いデータチャンクが前記第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。
書き込みバッファ146にノーマルデータチャンクのみがバッファリングされた場合(ステップS806において、「いいえ」)、プロセッサ134は、ステップS804において前記ノーマルデータチャンクのうち、いずれか1つが前記第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。
本発明の実施形態によれば、ノンバックアップデータチャンクが後で受信されたノーマルデータチャンクより遅い順序でメモリ装置150にプログラムされる場合もある。例えば、ノンバックアップデータチャンクより後で受信されたノーマルデータチャンクが第2の物理ページの第1のビットページに先にプログラムされ、前記ノンバックアップデータチャンクが第1の物理ページの第2のビットページにプログラムされることができる。
しかし、第2の物理ページの第1のビットページにプログラムされたデータは、第2の物理ページの第2のビットページのプログラム動作まで完了した後に、コントローラ130から除去され得ることに対し、前記ノンバックアップデータチャンクは、第1の物理ページの第2のビットページに成功的にプログラムされれば、直ちに書き込みバッファ146から除去されることができる。したがって、書き込みバッファ146にバッファリングされるノンバックアップデータチャンクが速かに除去され得る。
以下において、本発明の実施形態に係るコントローラ130の動作が図9A及び図9Bの具体的な例示を参照して説明される。
図9Aは、書き込みバッファ146にバッファリングされたデータチャンクを例示する。
図9Aの例において、複数のデータチャンクが第1~第24のデータチャンクD1-D24の順序で書き込みバッファ146にバッファリングされることができる。前記複数のデータチャンクのうち、ノーマルデータチャンクは、ドットパターンが表示された四角形で図示され、ノンバックアップデータチャンクは、斜線パターンが表示された四角形で図示される。第1~第24のデータチャンクD1-D24のうち、第4、第7、第11、第15、第18、及び第23のデータチャンクD4、D7、D11、D15、D18、D23がノンバックアップデータチャンクであり、残りのデータチャンクがノーマルデータチャンクである場合を例に挙げてコントローラ130の動作が説明される。
図9Bは、図9Aの例において書き込みバッファ146にバッファリングされたデータチャンクがプログラムされる順序を説明するための図である。
第2のテーブル900は、1つのメモリブロックに含まれたサブページ別のプログラム順序及びサブページ別にプログラムされるデータチャンクを表す。第2のテーブル900の1番目の行は、第1~第8のドレインセレクトラインDSL1-DSL8を表し、1番目の列と2番目の列とは、第1~第3のワードラインWL1-WL3のそれぞれの第1のビットページ及び第2のビットページを表す。第2のテーブル900は、各サブページ別のプログラム順序PO及び本発明の実施形態によって各サブページにプログラムされるデータチャンクDを表す。第2のテーブル900のサブページ別のプログラム順序は、図6の第1のテーブル600を参照して説明されたことと同様である。
図9Bに示すように、ノーマルデータチャンクである第1~第3のデータチャンクD1-D3は、書き込みバッファ146にバッファリングされた順序通りに、プログラム順序「1」~「3」に該当するサブページにプログラムされることができる。
本発明の実施形態によれば、ノンバックアップデータチャンクである第4のデータチャンクD4は、第2のプログラムステップ動作でプログラムされ得るようにプログラム順序が決定され得る。図9Bにおいて第4のデータチャンクD4は、プログラム順序「4」~「9」に該当するサブページにはプログラムされることができず、プログラム順序「10」に該当するサブページにプログラムされることができる。プログラム順序「4」~「9」に該当するサブページには、第4のデータチャンクD4より後で受信されたノーマルデータチャンクが先にプログラムされ得る。
図9Bにおいて第1~第4のデータチャンクD1-D4だけでなく、第5~第24のデータチャンクD5-D24に対しても、各データチャンクがプログラムされる順序及び各データチャンクがプログラムされるサブページが図示される。図9Bにおいてノーマルデータチャンクがプログラムされるサブページには、ドットパターンが表示され、ノンバックアップデータチャンクがプログラムされるサブページには、斜線パターンが表示される。パターンが図示されていないサブページは、イレイス状態であることができる。
図9Bに示すように、ノーマルデータチャンクは、第1のビットページにもプログラムされ、第2のビットページにもプログラムされ得ることとは異なり、ノンバックアップデータチャンクは、全て第2のビットページにプログラムされることができる。
図9Bに示すように、ノンバックアップデータチャンクが第2のビットページにプログラムされ得るようにプログラム順序が調整される場合、データチャンクが書き込みバッファ146にバッファリングされた順序通りにメモリ装置150にプログラムされる場合より、ノンバックアップデータチャンクが書き込みバッファ146から速かに除去され得る。
第1の例として、本発明の実施形態によれば、第4のデータチャンクD4は、ページ11の第2のビットページにプログラムされることができる。第4のデータチャンクD4は、書き込みバッファ146に4番目の順序でバッファリングされて、10番目の順序でメモリ装置150にプログラムされることができる。ページ11の第2のビットページまで成功的にプログラムが完了すれば、第4のデータチャンクD4は、書き込みバッファ146から除去されることができる。対照的に、仮に、第4のデータチャンクD4を書き込みバッファ146に受信された順序のように4番目の順序でプログラムするならば、第4のデータチャンクD4は、ページ14の第1のビットページにプログラムされることができる。第4のデータチャンクD4は、ページ14の第2のビットページまで成功的にプログラム完了してはじめて、書き込みバッファ146から除去されることができ、ページ14の第2のビットページは、16番目の順序でプログラムされることができる。
第2の例として、本発明の実施形態によれば、第23のデータチャンクD23は、ページ18の第2のビットページに24番目の順序でプログラムされることができる。第23のデータチャンクD23は、24番目の順序のプログラムが成功的に完了すれば、書き込みバッファ146から除去されることができる。対照的に、第23のデータチャンクD23を23番目の順序でプログラムするならば、第23のデータチャンクD23は、ページ28の第1のビットページにプログラムされることができる。ページ28の第2のビットページは、40番目の順序でプログラムされることができ、第23のデータチャンクD23は、40番目の順序のプログラムが成功的に完了してはじめて、書き込みバッファ146から除去されることができる。
第4及び第23のデータチャンクD4、D23だけでなく、残りのノンバックアップデータチャンクの場合にも、第2のビットページにプログラムされ得るようにプログラム順序が調整される場合に、前記ノンバックアップデータチャンクが書き込みバッファ146に維持された時間は、バッファリングされた順序通りにメモリ装置150にプログラムされる場合に比べて減少されるか、同一であることができる。
本発明の実施形態によれば、コントローラ130は、メインデータパス302を介してメモリ装置150にプログラムするデータチャンクを書き込みバッファ146にバッファリングし、バックアップデータパス304にボトルネックが発生しないようにデータチャンクをバックアップメモリ148に選択的にバックアップすることができる。コントローラ130は、前記データチャンクのそれぞれのプログラム順序を決定できる。具体的に、コントローラ130は、ノンバックアップデータチャンクが第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。ノンバックアップデータチャンクが第2のビットページにプログラム完了する場合、前記第2のビットページを含む物理ページのプログラム動作が完了することができるので、コントローラ130は、前記ノンバックアップデータチャンクを書き込みバッファ146から速かに除去することができる。ノンバックアップデータチャンクが書き込みバッファ146から速かに除去されれば、書き込みバッファ146でノンバックアップデータチャンクが滞積されることが防止され得る。
一方、図5~図9Bにおいてメモリ装置150がDLCメモリ装置であり、2つのステッププログラム動作を行う場合を例に挙げて本発明の実施形態が説明されたが、本発明は、図5~図9Bの例に制限されない。
第1の例として、本発明は、メモリ装置150がTLCメモリ装置であり、第1のプログラムステップ動作でLSBデータをプログラムし、第2のプログラムステップ動作でCSBデータ及びMSBデータをプログラムする場合にも適用されることができる。コントローラ130は、データチャンクのプログラム順序を決定するとき、ノンバックアップデータチャンクがCSBページまたはMSBページにプログラムされるようにプログラム順序を決定できる。
第2の例として、本発明は、メモリ装置150が3つ以上のプログラムステップ動作を行うことによって物理ページをプログラムする場合にも適用されることができる。コントローラ130は、データチャンクのプログラム順序を決定するとき、ノンバックアップデータチャンクが最後のプログラムステップ動作でプログラムされるようにプログラム順序を決定できる。
本発明の実施形態によれば、バックアップメモリ148に書き込みバッファ146の全てのデータチャンクをバックアップする場合と同様に、データチャンクは、プログラム動作が完了するまでコントローラ130に維持されることができる。そして、本発明の実施形態によれば、バックアップメモリ148のボトルネックが防止されるので、バックアップメモリ148に書き込みバッファ146の全てのデータチャンクをバックアップする場合に比べてメモリシステム110の書き込み動作速度が向上しうる。さらに、本発明の実施形態によれば、書き込みバッファ146でノンバックアップデータチャンクが滞積されることが防止されるので、高速メモリで実現される書き込みバッファ146に要求される容量は、バックアップメモリ148に書き込みバッファ146の全てのデータチャンクをバックアップする場合に比べてほとんど増加しないことができる。したがって、メモリシステム110の性能が向上し、信頼性が維持されながら、メモリシステム110の製造費用や回路面積が増加することが防止され得る。
以上、本発明の実施形態に係るコントローラ及びコントローラの動作方法を具体的な実施形態として説明したが、これは例示に過ぎないものであって、本発明は、これに限定されないものであり、本明細書に開示された基礎思想による広範な範囲を有することと解釈されなければならない。当業者は、開示された実施形態等を組み合わせ、置換して、適示されていない実施形態を実施できるが、これも本発明の権利範囲を逸脱しないものである。その他にも、当業者は、本明細書に基づいて開示された実施形態を容易に変更または変形することができ、このような変更または変形も本発明の権利範囲に属することは明らかである。
Claims (21)
- 第1及び第2のプログラムステップ動作を経てプログラムされるマルチレベルセルを含むメモリ装置を制御するコントローラの動作方法において、
プログラムされるデータチャンクを書き込みバッファにバッファリングするステップと、
前記データチャンクのうち、少なくとも1つのバックアップデータチャンクを前記書き込みバッファと区別されるバックアップメモリにバックアップするステップと、
前記データチャンクのプログラム順序を決定し、前記データチャンクのうち、ノンバックアップデータチャンクは、第2のプログラムステップ動作を介して前記マルチレベルセルにプログラムされるように前記プログラム順序を決定するステップと、
前記メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、前記第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、前記第1の物理ページに第2のプログラムステップ動作を行うことにより、前記プログラム順序を基に前記データチャンクを前記マルチレベルセルにプログラムするように前記メモリ装置を制御するステップと、
を含む動作方法。 - 前記プログラム順序を決定するステップは、
前記データチャンクのうち、バックアップデータチャンクが前記第1または第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定するステップを含む請求項1に記載の動作方法。 - 前記プログラム順序を決定するステップは、
前記メモリ装置が前記第1のプログラムステップ動作を介して前記データチャンクのうち、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定するステップと、
前記メモリ装置が前記第2のプログラムステップ動作を介して前記書き込みバッファにノンバックアップデータチャンクがバッファリングされた場合、前記ノンバックアップデータチャンクがプログラムされるように前記プログラム順序を決定するステップと、
前記メモリ装置が前記第2のプログラムステップ動作を行う順序に前記書き込みバッファにバックアップデータチャンクのみバッファリングされた場合、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定するステップと、
を含む請求項2に記載の動作方法。 - 前記動作方法は、
前記書き込みバッファ内の前記ノンバックアップデータチャンクを前記メモリ装置に伝達するステップと、
前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が成功的に完了すれば、前記ノンバックアップデータチャンクを前記書き込みバッファから除去するステップと、
をさらに含む請求項1に記載の動作方法。 - 前記動作方法は、
前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が失敗すれば、前記書き込みバッファにバッファリングされた前記ノンバックアップデータチャンクを前記メモリ装置に再度伝達するステップをさらに含む請求項4に記載の動作方法。 - 前記動作方法は、
前記書き込みバッファ内のバックアップデータチャンクを前記メモリ装置に伝達するステップと、
前記バックアップデータチャンクを前記メモリ装置に伝達した後、伝達されたバックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作を行う前に、前記バックアップデータチャンクを前記書き込みバッファから除去するステップと、
をさらに含む請求項1に記載の動作方法。 - 前記動作方法は、
前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が成功的に完了すれば、前記バックアップデータチャンクに対応するバックアップデータチャンクを前記バックアップメモリから除去するステップをさらに含む請求項6に記載の動作方法。 - 前記動作方法は、
前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が失敗すれば、前記バックアップメモリにバックアップされた前記バックアップデータチャンクを前記メモリ装置に伝達するステップをさらに含む請求項7に記載の動作方法。 - 前記データチャンクのうち、前記少なくとも1つのバックアップデータチャンクを前記バックアップメモリにバックアップするステップは、
ホストから受信されたデータチャンクが前記バックアップメモリにバックアップされるデータパスでボトルネックが発生しないように前記データチャンクのうち、少なくとも1つのデータチャンクを廃棄するか、前記バックアップメモリにバックアップするステップを含み、
前記書き込みバッファは、前記バックアップメモリより高速で動作するメモリである請求項1に記載の動作方法。 - 前記データチャンクのうち、前記少なくとも1つのバックアップデータチャンクを前記バックアップメモリにバックアップするステップは、
前記ホストから受信されたデータチャンクが経由する臨時バッファに余裕空間がある場合、前記データチャンクを前記臨時バッファにバッファリングし、前記臨時バッファにバッファリングされたデータチャンクをバックアップメモリにバックアップするステップと、
前記臨時バッファに余裕空間がない場合、前記データチャンクを臨時バッファにバッファリングせずに廃棄するステップと、
を含む請求項9に記載の動作方法。 - 第1及び第2のプログラムステップ動作を経てプログラムされるマルチレベルセルを含むメモリ装置を制御するコントローラにおいて、
プログラムされるデータチャンクをバッファリングする書き込みバッファと、
前記データチャンクのうち、少なくとも1つのバックアップデータチャンクをバックアップするバックアップメモリと、
前記書き込みバッファにバッファリングされたデータチャンクに対するプログラム順序を決定し、前記データチャンクのうち、ノンバックアップデータチャンクは、第2のプログラムステップ動作を介してプログラムされるように前記プログラム順序を決定するプロセッサと、
を備え、
前記プロセッサは、
前記メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、前記第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、前記第1の物理ページに第2のプログラムステップ動作を行うことにより、前記データチャンクを前記マルチレベルセルにプログラムするように前記メモリ装置を制御するコントローラ。 - 前記プロセッサは、
前記データチャンクのうち、バックアップデータチャンクが、前記第1または第2のプログラムステップ動作でプログラムされるようにプログラム順序を決定する請求項11に記載のコントローラ。 - 前記プロセッサは、
前記メモリ装置が前記第1のプログラムステップ動作を介して前記データチャンクのうち、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定し、
前記メモリ装置が前記第2のプログラムステップ動作を介して前記書き込みバッファにノンバックアップデータチャンクがバッファリングされた場合、前記ノンバックアップデータチャンクがプログラムされるように前記プログラム順序を決定し、
前記メモリ装置が前記第2のプログラムステップ動作を行う順序に前記書き込みバッファにバックアップデータチャンクのみバッファリングされた場合、前記バックアップデータチャンクがプログラムされるように前記プログラム順序を決定する請求項12に記載のコントローラ。 - 前記プロセッサは、
前記書き込みバッファ内の前記ノンバックアップデータチャンクを前記メモリ装置に伝達し、
前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が成功的に完了すれば、前記ノンバックアップデータチャンクを前記書き込みバッファから除去する請求項11に記載のコントローラ。 - 前記プロセッサは、
前記ノンバックアップデータチャンクに対する前記第2のプログラムステップ動作が失敗すれば、前記書き込みバッファにバッファリングされた前記ノンバックアップデータチャンクを前記メモリ装置に再度伝達する請求項14に記載のコントローラ。 - 前記プロセッサは、
前記書き込みバッファ内のバックアップデータチャンクを前記メモリ装置に伝達し、
前記バックアップデータチャンクを前記メモリ装置に伝達した後、伝達されたバックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作を行う前に、前記バックアップデータチャンクを前記書き込みバッファから除去する請求項11に記載のコントローラ。 - 前記プロセッサは、
前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が成功的に完了すれば、前記バックアップデータチャンクに対応するバックアップデータチャンクを前記バックアップメモリから除去する請求項16に記載のコントローラ。 - 前記プロセッサは、
前記バックアップデータチャンクに対する前記第1あるいは第2のプログラムステップ動作が失敗すれば、前記バックアップメモリにバックアップされた前記バックアップデータチャンクを前記メモリ装置に伝達する請求項17に記載のコントローラ。 - 前記バックアップメモリは、
ホストから受信されたデータチャンクが前記バックアップメモリにバックアップされるデータパスでボトルネックが発生しないように前記データチャンクのうち、少なくとも1つのデータチャンクを廃棄するか、前記バックアップメモリにバックアップし、
前記書き込みバッファは、前記バックアップメモリより高速で動作するメモリである請求項11に記載のコントローラ。 - 前記コントローラは、
前記データチャンクが伝達される前記データパス上に位置する臨時バッファをさらに備え、
前記臨時バッファは、
前記臨時バッファに余裕空間がある場合、前記データチャンクを前記臨時バッファにバッファリングし、前記臨時バッファにバッファリングされたデータチャンクをバックアップメモリにバックアップし、
前記臨時バッファに余裕空間がない場合、前記データチャンクを臨時バッファにバッファリングせずに廃棄する請求項19に記載のコントローラ。 - 第1及び第2のプログラムステップ動作を経てプログラムされるマルチレベルセルを含むメモリ装置を制御するコントローラにおいて、
プログラムされるデータチャンクをバッファリングする書き込みバッファと、
前記データチャンクを選択的にバックアップするバックアップメモリと、
前記書き込みバッファにバッファリングされたデータチャンクのそれぞれのプログラム順序を決定し、前記データチャンクのうち、ノンバックアップデータチャンクは、第2のプログラムステップ動作でプログラムされるように前記プログラム順序を決定するプロセッサと、
を備え、
前記プロセッサは、
前記メモリ装置が第1の物理ページに第1のプログラムステップ動作を行い、前記第1の物理ページに後続する第2の物理ページに第1のプログラムステップ動作を行った後、前記第1の物理ページに第2のプログラムステップ動作を行うことにより、前記データチャンクをプログラムするように前記メモリ装置を制御し、前記ノンバックアップデータチャンクに連関した物理ページのプログラム動作が失敗すれば、前記書き込みバッファにバッファリングされた前記ノンバックアップデータチャンクを前記メモリ装置に再度提供するコントローラ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210079965A KR20220169642A (ko) | 2021-06-21 | 2021-06-21 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR10-2021-0079965 | 2021-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023001880A true JP2023001880A (ja) | 2023-01-06 |
Family
ID=84283744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022085888A Pending JP2023001880A (ja) | 2021-06-21 | 2022-05-26 | コントローラ及びコントローラの動作方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11789637B2 (ja) |
JP (1) | JP2023001880A (ja) |
KR (1) | KR20220169642A (ja) |
CN (1) | CN115576482A (ja) |
DE (1) | DE102022203891A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220169642A (ko) * | 2021-06-21 | 2022-12-28 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101626080B1 (ko) | 2010-02-17 | 2016-06-01 | 삼성전자주식회사 | 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들 |
KR101856506B1 (ko) * | 2011-09-22 | 2018-05-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 쓰기 방법 |
US9141308B2 (en) * | 2011-12-30 | 2015-09-22 | Sandisk Technologies Inc. | Controller and method for using a transaction flag for page protection |
KR102106866B1 (ko) * | 2013-01-29 | 2020-05-06 | 삼성전자주식회사 | 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 |
KR102271462B1 (ko) * | 2015-01-13 | 2021-07-05 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법 |
KR20170056782A (ko) | 2015-11-13 | 2017-05-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI578222B (zh) * | 2015-11-18 | 2017-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10319445B1 (en) * | 2017-11-30 | 2019-06-11 | Western Digital Technologies, Inc. | Programming unprogrammed upper page during lower page programming of multi-level storage cells |
JP6967959B2 (ja) * | 2017-12-08 | 2021-11-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP7051546B2 (ja) * | 2018-04-16 | 2022-04-11 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102583787B1 (ko) | 2018-11-13 | 2023-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200113989A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 쓰기 동작을 제어하는 방법 및 장치 |
KR102492806B1 (ko) | 2019-12-20 | 2023-01-30 | 김승연 | 재고관리 및 상품판매를 위한 스마트 진열대 및 스마트 진열대를 이용한 재고관리 및 상품 판매방법 |
KR20220169642A (ko) * | 2021-06-21 | 2022-12-28 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
-
2021
- 2021-06-21 KR KR1020210079965A patent/KR20220169642A/ko unknown
- 2021-11-29 US US17/536,712 patent/US11789637B2/en active Active
-
2022
- 2022-03-14 CN CN202210247077.3A patent/CN115576482A/zh active Pending
- 2022-04-21 DE DE102022203891.6A patent/DE102022203891A1/de active Pending
- 2022-05-26 JP JP2022085888A patent/JP2023001880A/ja active Pending
-
2023
- 2023-09-05 US US18/460,705 patent/US20230409228A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220404972A1 (en) | 2022-12-22 |
US20230409228A1 (en) | 2023-12-21 |
CN115576482A (zh) | 2023-01-06 |
DE102022203891A1 (de) | 2022-12-22 |
KR20220169642A (ko) | 2022-12-28 |
US11789637B2 (en) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10311920B2 (en) | Apparatus and method for controlling memory device | |
US10997017B2 (en) | Neighbor assisted correction error recovery for memory system and method thereof | |
US10452431B2 (en) | Data processing system and operating method thereof | |
KR102468751B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR102617411B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11551766B2 (en) | Memory device and operating method thereof | |
KR102495539B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US20200050515A1 (en) | Memory system and operation method thereof | |
CN110489271B (zh) | 存储器系统及其操作方法 | |
KR20160075174A (ko) | 메모리 시스템 및 그 동작방법 | |
US11481155B2 (en) | Controller and operating method thereof | |
KR20190042970A (ko) | 메모리 시스템 및 그의 동작방법 | |
US11922065B2 (en) | Memory system and operating method thereof | |
CN111367468A (zh) | 存储器系统及其操作方法 | |
US10938419B2 (en) | Encoding method and system for memory device including QLC cells | |
KR20190031692A (ko) | 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법 | |
US11538547B2 (en) | Systems and methods for read error recovery | |
KR102579824B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US20230409228A1 (en) | Controller and operation method thereof | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
KR20190068197A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US10984851B2 (en) | Memory system and method for operating the same | |
KR102632690B1 (ko) | 비휘발성 메모리 장치 및 그 프로그램 방법 | |
KR102529710B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
JP2023076806A (ja) | 半導体装置内の信号干渉を減らすための装置及び方法 |