CN110688061B - 存储器系统及其操作方法 - Google Patents

存储器系统及其操作方法 Download PDF

Info

Publication number
CN110688061B
CN110688061B CN201910261130.3A CN201910261130A CN110688061B CN 110688061 B CN110688061 B CN 110688061B CN 201910261130 A CN201910261130 A CN 201910261130A CN 110688061 B CN110688061 B CN 110688061B
Authority
CN
China
Prior art keywords
write data
write
transaction
memory
information
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.)
Active
Application number
CN201910261130.3A
Other languages
English (en)
Other versions
CN110688061A (zh
Inventor
崔海起
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 CN110688061A publication Critical patent/CN110688061A/zh
Application granted granted Critical
Publication of CN110688061B publication Critical patent/CN110688061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0625Power saving in 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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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

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)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种存储器系统。存储器系统可以包括:非易失性存储器装置;写入缓冲器;以及控制器,适于:在写入缓冲器上执行清除操作的时间点检查是否已提交第一写入数据,根据检查结果将清除操作分为彼此不重叠但彼此连续的第一清除操作和第二清除操作,当分组为事务的第一写入数据和未分组为事务的第二写入数据混合并存储在写入缓冲器中时,执行第一清除操作和第二清除操作;在存储在写入缓冲器中的写入数据之中,控制器在第一清除操作期间可选择提交的第一写入数据并将提交的第一写入数据存储在非易失性存储器装置的第一存储区域中。

Description

存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2018年7月6日提交的申请号为10-2018-0078695的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
示例性实施例涉及一种存储器系统,更具体地,涉及一种存储分组为事务(transaction)的多个写入数据的存储器系统。
背景技术
计算环境范例已变成能够在任何时间和任何地点使用的普适计算系统。由于此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已迅速增长。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储装置或辅助存储装置。
因为存储器系统不具有移动部件,所以其可提供优异的稳定性、耐久性、快速信息访问速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例涉及一种可以有效存储分组为事务的多个写入数据的存储器系统及其操作方法。
在实施例中,一种存储器系统可包括:非易失性存储器装置;写入缓冲器,适于临时存储从主机接收的多个写入数据;以及控制器,适于:在对写入缓冲器执行清除操作的时间点检查是否已提交(commit)了第一写入数据,根据检查结果将清除操作分成彼此不重叠但彼此连续的第一清除操作和第二清除操作,并且当分组为事务的第一写入数据和未被分组为事务的第二写入数据根据从主机接收的写入数据的顺序被混合并存储在写入缓冲器中时,执行第一清除操作和第二清除操作。控制器在第一清除操作期间,可在存储在写入缓冲器中的写入数据之中选择提交的第一写入数据,并可将提交的第一写入数据存储在非易失性存储器装置的第一存储区域中,并且在第二清除操作期间,可在存储在写入缓冲器中的写入数据之中选择未完全提交的第一写入数据以及第二写入数据,并可将未完全提交的第一写入数据以及第二写入数据存储在非易失性存储器装置的第二存储区域中。
控制器可接收与主机的各个写入数据相对应的多个写入命令,写入命令的每一个可包括相对应的写入数据的事务信息,并且写入数据的每一个的事务信息可包括事务标识(ID)信息、提交信息和中止信息。
控制器可检查各个写入数据的事务信息的事务ID信息,可将其中没有设置事务ID信息的写入数据分类成第二写入数据,并可将具有设置为特定值的事务ID信息的写入数据分类成第一写入数据。
当写入缓冲器的预定存储空间已满时,控制器可执行清除操作;当检查到在执行清除操作的时间点,设置的提交信息包括在各个第一写入数据的事务信息中时,控制器在第一清除操作期间,可在存储在写入缓冲器中的写入数据之中选择提交的第一写入数据,并可将提交的第一写入数据存储在第一存储区域中,并且在第二清除操作期间,可选择未完全提交的第一写入数据以及第二写入数据,并可将未完全提交的第一写入数据以及第二写入数据存储在第二存储区域中。
当检查到在执行清除操作的时间点,设置的提交信息未包括在各个第一写入数据的事务信息中时,控制器在清除操作期间,可在存储在写入缓冲器中的写入数据之中选择未完全提交的第一写入数据以及第二写入数据,并可将未完全提交的第一写入数据以及第二写入数据编程到非易失性存储器装置。
当检查到在执行清除操作的时间点,设置的中止信息包括在各个第一写入数据的事务信息中时,控制器即使在清除操作期间,也可不将存储在写入缓冲器中的写入数据的中止的第一写入数据编程到非易失性存储器装置。
非易失性存储器装置可包括多个存储块,并且存储块的每一个包括多个页面,当写入数据的每一个设置为与一个或多个页面相对应的大小时,控制器可将一个或多个特定存储块设置为第一存储区域,并可将除存储块中的特定存储块之外的其它存储块的一个或多个存储块设置为第二存储区域,其中存储块之中的所述一个或多个特定存储块被同时或连续地访问以用于一次读取操作。
非易失性存储器装置可包括多个存储块,存储块的每一个包括多个页面,并且页面的每一个包括多个区段,当写入数据的每一个被设置为与一个或多个区段相对应的大小时,控制器可将一个或多个特定页面设置为第一存储区域,并可将除特定存储块中的特定页面之外的其它页面中的一个或多个页面设置为第二存储区域,其中所述一个或多个特定页面包括在存储块之中被同时或连续地访问以用于一次读取操作的一个或多个特定存储块中。
当在第一写入数据和第二写入数据通过第一清除操作和第二清除操作存储在第一存储区域和第二存储区域中之后,执行用于将第一存储区域和第二存储区域中的有效的第一和第二写入数据移动到非易失性存储器装置的另一存储区域的合并操作时,控制器可检查存储在第一存储区域中的第一写入数据是否全部有效,并可根据检查结果改变执行合并操作的方法。
当在具有设置为第一值的事务ID信息的第一写入数据和具有设置为第二值的事务ID信息的第一写入数据存储在第一存储区域之后执行合并操作时,控制器可将具有设置为第一值的事务ID信息的第一写入数据移动到非易失性存储器装置的第三存储区域,并且当具有设置为第一值的事务ID信息的第一写入数据全部有效且具有设置为第二值的事务ID信息的第一写入数据仅一部分有效时,可将具有设置为第二值的事务ID信息的第一写入数据的有效数据和第二写入数据的有效数据移动到非易失性存储器装置的第四存储区域。
在实施例中,一种用于存储器系统的操作方法,其中存储器系统包括非易失性存储器装置和用于临时存储从主机接收的多个写入数据的写入缓冲器,该操作方法可包括:第一检查步骤,检查分组为事务的第一写入数据和未分组为事务的第二写入数据是否根据从主机接收的写入数据的顺序被混合并存储在写入缓冲器中;第二检查步骤,当第一检查步骤的结果表明第一写入数据和第二写入数据被混合并存储在写入缓冲器中时,检查在对写入缓冲器执行清除操作的时间点是否已提交第一写入数据;以及划分和存储步骤,当第二检查步骤的结果表明第一写入数据已提交时,将对写入缓冲器的清除操作分成彼此不重叠但彼此连续的第一清除操作和第二清除操作、在第一清除操作期间在存储在写入缓冲器中的写入数据之中选择提交的第一写入数据并将该提交的第一数据存储在非易失性存储器装置的第一存储区域中,以及在第二清除操作期间在存储在写入缓冲器的写入数据之中选择未完全提交的第一写入数据以及第二写入数据并将该未完全提交的第一写入数据以及第二写入数据存储在非易失性存储器装置的第二存储区域中。
操作方法可进一步包括从主机接收与各个写入数据相对应的多个写入命令,写入命令的每一个可包括相对应的写入数据的事务信息,并且各个写入数据的事务信息可包括事务标识(ID)信息、提交信息和中止信息。
第一检查步骤可包括:第一分类步骤,检查各个写入数据的事务信息的事务ID信息并将其中没有设置事务ID信息的写入数据分类成第二写入数据;第二分类步骤,检查各个写入数据的事务信息的事务ID信息并将具有设置为特定值的事务ID信息的写入数据分类成第一写入数据;以及第三检查步骤,在通过第一分类步骤和第二分类步骤将存储在写入缓冲器中的写入数据分类成第一写入数据和第二写入数据之后,检查第一写入数据和第二写入数据是否被混合并存储在写入缓冲器中。
操作方法可进一步包括当写入缓冲器的预定存储空间已满时执行清除操作的清除操作步骤,当第三检查步骤的结果表明第一写入数据和第二写入数据被混合并存储在写入缓冲器中时,第二检查步骤可包括在执行清除操作步骤的时间点检查设置的提交信息是否包括在各个第一写入数据的事务信息中。
操作方法可进一步包括:当在第二检查步骤检查到在清除操作步骤开始的时间点,设置的提交信息包括在各个第一写入数据的事务信息中时,执行划分和存储步骤;以及当在第二检查步骤检查到在清除操作步骤开始的时间点,设置的提交信息未包括在各个第一写入数据的事务信息中时,在清除操作期间,在存储在写入缓冲器中的写入数据之中选择未完全提交的第一写入数据以及第二写入数据并将选择的数据编程到非易失性存储器装置。
操作方法可进一步包括:在执行清除操作步骤的时间点检查设置的中止信息是否包括在各个第一写入数据的事务信息中,并且当检查结果表明包括中止信息时,即使在清除操作期间也不将存储在写入缓冲器中的写入数据的中止的第一写入数据编程到非易失性存储器装置。
非易失性存储器装置可包括多个存储块,并且存储块的每一个包括多个页面,操作方法可进一步包括:当写入数据的每一个被设置成与一个或多个页面相对应的大小时,将一个或多个特定存储块设置为第一存储区域,并将除存储块中的特定存储块之外的其它存储块中的一个或多个存储块设置为第二存储区域,其中存储块之中的所述一个或多个特定存储块被同时或连续地访问以用于一次读取操作。
非易失性存储器装置可包括多个存储块,存储块的每一个包括多个页面,并且页面的每一个包括多个区段,操作方法可进一步包括:当每个写入数据被设置为与一个或多个区段相对应的大小时,将一个或多个特定页面设置为第一存储区域,并且将除特定存储块中的特定页面之外的其它页面之中的一个或多个页面设置为第二存储区域,其中所述一个或多个特定页面包括在存储块之中被同时或连续地访问以用于一次读取操作的一个或多个特定存储块中。
操作方法可进一步包括,当在第一写入数据和第二写入数据在划分和存储步骤通过第一清除操作和第二清除操作存储在第一存储区域和第二存储区域之后,执行用于将第一存储区域和第二存储区域中的有效的第一写入数据和第二写入数据移动到非易失性存储器装置的另一存储区域的合并操作时,检查存储在第一存储区域中的第一写入数据是否全部有效的第四检查步骤;以及根据第四检查步骤的结果改变用于执行合并操作的方法的合并操作步骤。
当在第二分类步骤中将具有设置为第一值的事务ID信息的第一写入数据和具有设置为第二值的事务ID信息的第一写入数据存储在第一存储区域中之后执行合并操作时,合并操作步骤可以包括将具有设置为第一值的事务ID信息的第一写入数据移动到非易失性存储器装置的第三存储区域,然后当在第四检查步骤检查到具有设置为第一值的事务ID信息的第一写入数据全部有效并且具有设置为第二值的事务ID信息的第一写入数据仅一部分有效时,将具有设置为第二值的事务ID信息的第一写入数据的有效数据和第二写入数据的有效数据移动到非易失性存储器装置的第四存储区域。
在实施例中,一种存储器系统可以包括:存储器装置,包括第一存储区域和第二存储区域;控制器,包括写入缓冲器,该控制器适于:接收包括多个事务数据和至少一个正常数据的多个写入数据并将其存储在写入缓冲器中;当写入缓冲器已满时,确定多个事务数据中的每一个是事务提交数据还是事务中止数据;清除存储器装置的第一存储区域中的事务提交数据;以及清除存储器装置的第二存储区域中的事务中止数据和正常数据。
附图说明
参照附图,在以下的详细描述中,本发明的这些和其它特征和优点对于本发明所属领域的技术人员来说将变得显而易见,其中:
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图;
图2是示出图1所示的存储器系统中采用的存储器装置的示图;
图3是示出图2所示的存储器装置中的存储块的存储器单元阵列的电路图;
图4是示出图2所示的存储器装置的三维结构的示图;
图5和图6A至图6D是示出根据实施例的将分组为事务的多个写入数据存储在存储器系统中的非易失性存储器装置中的操作的示图;
图7是示出在将分组为事务的多个写入数据存储在非易失性存储器中之后执行合并操作的方法的示图;
图8是示出根据本实施例的将分组为事务的多个写入数据存储在存储器系统的非易失性存储器装置中的操作的流程图;
图9至图17是示出根据本发明的各个实施例的数据处理系统的应用示例的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,注意的是,本发明可以不同的其它实施例、形式及其变型实现,且不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开将是完整和全面的,并将把本发明充分地传达给本发明所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。
将进一步理解的是,当元件被称为“连接至”或“联接到”另一元件时,它可直接在其它元件上、连接到或联接到其它元件,或者可存在一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员将显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括主机102和存储器系统110。
主机102可包括例如诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪的非便携式电子装置。
存储器系统110可响应于主机102的请求进行操作来为主机102存储数据。存储器系统110的非限制性示例可包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型MMC。SD卡可包括迷你SD卡和微型SD卡。
存储器系统110可通过各种类型的存储装置来实施。包括在存储器系统110中的存储装置的非限制性示例可包括诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置,和诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可为主机102存储数据,并且控制器130可控制数据存储到存储器装置150中。
控制器130和存储器装置150可被集成到一个半导体装置中,一个半导体装置可被包括在如上所示的各种类型的存储器系统中。
存储器系统110的非限制性应用示例可包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或构成计算系统的各种部件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力,其也可保留其中存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可包括多个存储器管芯(未示出),每个存储器管芯包括多个平面(未示出),每个平面包括多个存储块152至156,存储块152至156中的每一个可包括多个页面,页面中的每一个可包括联接到字线的多个存储器单元。
控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,并将由主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)单元132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器接口(I/F)(或NAND闪存控制器(NFC))142以及存储器144,其全部通过内部总线可操作地联接。
主机接口单元132可被配置成处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC单元138可检测并校正从存储器装置150读取的数据中包含的错误。换句话说,ECC单元138可通过ECC编码进程期间使用的ECC代码对从存储器装置150读取的数据执行错误校正编码进程。根据错误校正编码进程的结果,ECC单元138可输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值数量时,ECC单元138可能无法校正错误位,并可输出错误校正失败信号。
ECC单元138可通过诸如以下的编码调制执行错误校正:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)。然而,ECC单元138不限于此。ECC单元138可包括用于错误校正的所有电路、模块、系统或装置。
PMU 140可提供和管理控制器130的电力。
NFC 142可以用作用于将控制器130和存储器装置150接口连接的存储器或存储接口,使得控制器130可响应于来由主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或具体为NAND闪速存储器时,NFC 142可在处理器134的控制下生成用于存储器装置150的控制信号并处理待提供给存储器装置150的数据。NFC 142可用作处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,NFC 142可支持控制器130和存储器装置150之间的数据传输。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求控制存储器装置150执行读取操作、写入操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供到主机102,可将从主机102提供的数据存储在存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可通过易失性存储器来实施。例如,存储器144可通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。存储器144可设置在控制器130之内或之外。图1例示设置在控制器130内的存储器144。在实施例中,存储器144可通过具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器来实施。
处理器134可控制存储器系统110的全部操作。处理器134可驱动固件来控制存储器系统110的全部操作。固件可称为闪存转换层(FTL)。
控制器130的处理器134可包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可以执行对包括在存储器装置150中的多个存储块152至156之中、在编程操作期间由于NAND闪速存储器的特征而发生编程失败的坏块进行检查的坏块管理操作。管理单元可将坏块的编程失败的数据写入新的存储块。在具有3D堆叠结构的存储器装置150中,坏块管理操作可降低存储器装置150的利用效率和存储器系统110的可靠性。因此,坏块管理操作需要更可靠地执行。
图2是示出图1中存储器系统110的存储器装置150的示图。
参照图2,存储器装置150可包括多个存储块0至N-1,并且块0至N-1中的每一个可包括例如2M个页面的多个页面,页面的数量可根据电路设计而变化。包括在各个存储块0至N-1中的存储器单元可以是存储1位数据的单层单元(SLC)或存储2位或更多位数据的多层单元(MLC)的一个或多个。在实施例中,存储器装置150可包括每一个存储3位数据的多个三层单元(TLC)。在另一实施例中,存储器装置150可包括每一个存储4位数据的多个四层单元(QLC)。
图3是示出存储器装置150中的存储块330的存储器单元阵列的电路图。
参照图3,可对应于包括在存储器系统110的存储器装置150中的多个存储块152至156中的任意一个的存储块330可包括联接到多个相应位线BL0至BLm-1的多个单元串340。在单元串340中,每列可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,多个存储器单元MC0至MCn-1可串联联接。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多个位的数据信息的MLC实现。单元串340中的每一个可电联接到多个位线BL0到BLm-1之中的相应位线。例如,如图3中所示,第一单元串联接到第一位线BL0,并且最后一个单元串联接到最后位线BLm-1。
虽然图3示出NAND闪速存储器单元,但发明不限于此方式。注意的是,存储器单元可以是NOR闪速存储器单元,或包括其中组合了两种或多种存储器单元的混合闪速存储器单元。此外,注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或包括作为电荷存储层的绝缘层的电荷撷取闪存(CTF)存储器装置。
存储器装置150可以进一步包括电压供应单元310,其提供包括根据操作模式供给到字线的编程电压、读取电压和通过电压的字线电压。电压供应单元310的电压生成操作可由控制电路(未示出)控制。在控制电路的控制下,电压供应单元310可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并根据可能的需要将字线电压提供给所选择的字线和未选择的字线。
存储器装置150可包括由控制电路控制的读取和写入(读取/写入)电路320。在验证操作/正常读取操作期间,读取/写入电路320可用作读出放大器,其用于从存储器单元阵列读取数据。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PBs)322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
图4是示出图2中的存储器装置150的三维(3D)结构的示图。
存储器装置150可以由二维(2D)或3D存储器装置来实施。具体地,如图4所示,存储器装置150可通过具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1,其每一个存储块具有3D结构(或垂直结构)。
图5和图6A至图6D是示出根据实施例的将分组为事务的多个写入数据存储在存储器系统中的非易失性存储器装置中的操作的示图。
图5参照图1中所示的数据处理系统100的配置,示出包括主机102和存储器系统110的数据处理系统100。
参照图5,参照图1所述,存储器系统110可以包括控制器130和存储器装置150。
此外,如参照图1所述,存储器装置150可包括多个存储块152、154和156。存储块152、154和156可分别包括多个页面P<10,11,12,13,14,15>、P<20,21,22,23,24,25>和P<30,31,32,33,34,35>。
作为参考,图5示出存储器系统110仅包括一个非易失性存储器装置150。然而,为了便于描述,该配置仅是示例,并且在存储器系统110中可包括大量非易失性存储器装置。图5示出非易失性存储器装置150包括三个存储块152、154和156的配置。然而,这仅是为了方便起见的示例,并且在非易失性存储器装置150中可包括更多或更少数量的存储块。此外,图5示出存储块152、154和156分别包括六个页面P<10,11,12,13,14,15>、P<20,21,22,23,24,25>和P<30,31,32,33,34,35>。然而,这仅是为了方便起见的示例,并且在存储块152、154和156的每一个中可包括更多或更少数量的页面。
图1示出包括在控制器130中的主机接口132、处理器134、ECC单元138、电源管理单元140和NAND闪存控制器142,图5示出各个单元未包括在控制器130中。然而,这些单元仅是为了方便起见被省略了,并且可以包括在控制器130中。
下面描述的存储器系统110可以执行处理分组为事务的写入数据WDATA的操作。
在各个实施例中,将写入数据WDATA分组为事务可以指示在写入数据WDATA之中用于相同目的的多个写入数据WDATA分组为一个事务。
例如,用于校正、添加和更新存储在数据库中的数据的数据可以根据各自的用途被分组为事务。此时,用于校正数据库的数据可被设置为一个事务组,并且用于添加到数据库的数据可被设置为另一事务组。
因此,当分组为一个事务的写入数据WDATA从主机102传输到存储器系统110时,写入数据WDATA可仅具有提交状态或中止状态。当写入数据WDATA具有提交状态时,它可以指示所有写入数据WDATA都是有效的,因为所有写入数据WDATA已被正常地传输和存储。另一方面,当写入数据WDATA具有中止状态时,它可以指示根据主机102的中止请求,写入数据WDATA中的任意一个未被正常地传输和存储,或者所有写入数据WDATA都是无效的。即,仅当写入数据WDATA具有如下提交状态时,分组为一个事务的写入数据WDATA可具有重要性:在该提交状态中,由于所有写入数据WDATA已被正常地传输和存储,所以所有写入数据WDATA都是有效的。
例如,仅在所有多个第一写入数据TRAN_WDATA都正常地从主机102传输并存储到存储器系统110中,并且从主机102不提供中止请求时,从主机102传输到存储器系统110的写入数据WDATA之中的分组为事务的第一写入数据TRAN_WDATA可被确定为在存储器系统110中具有提交状态。如果第一写入数据TRAN_WDATA中的任意一个未正常地传输和存储,或者从主机102提供中止请求,则在存储器系统110中所有第一写入数据TRAN_WDATA可被确定具有中止状态。
上述通过将第一写入数据TRAN_WDATA区分为提交状态或中止状态来管理分组为一个事务的第一写入数据TRAN_WDATA的操作通常可被称为用于保证原子性(atomic)事务的操作。
再次参照图5,控制器130可以包括非易失性存储器装置150、易失性存储器装置144和事务管理器1300。
非易失性存储器装置150可以包括多个存储块152、154和156。存储块152、154和156可以分别包括多个页面P<10,11,12,13,14,15>、P<20,21,22,23,24,25>和P<30,31,32,33,34,35>。页面中的每一个可以包括多个区段N<1:4>。
易失性存储器装置144可以包括写入缓冲器1442。在操作1443,写入缓冲器1442可以临时存储从主机102输入的多个写入数据WDATA。
在操作1443,控制器130可以响应于写入缓冲器1442的预定存储空间已满而对写入缓冲器1442执行清除操作。例如,控制器130可以响应于易失性存储器装置144中被指定为写入缓冲器1442的所有存储空间已满而清除写入缓冲器1442。
在操作1301,事务管理器1300可以将写入数据WDATA分类成分组为事务的第一写入数据TRAN_WDATA和未被分组为事务的第二写入数据NMAL_WDATA。写入数据WDATA可以从主机102输入并存储在写入缓冲器1442中。也就是说,在写入数据WDATA从主机102输入并存储在写入缓冲器1442中之后,事务管理器1300可以在写入数据WDATA存储在非易失性存储器装置150中之前将写入数据WDATA分类成分组为事务的第一写入数据TRAN_WDATA和未被分组为事务的第二写入数据NMAL_WDATA。
存储在写入缓冲器1442中的写入数据WDATA可以根据从主机102输入的写入数据WDATA的顺序被顺序地存储。因此,分组为事务的写入数据WDATA即第一写入数据TRAN_WDATA,以及未被分组为事务的写入数据WDATA即第二写入数据NMAL_WDATA可以仅根据从主机102输入的写入数据WDATA的顺序而被混合并存储在写入缓冲器1442中。
因此,事务管理器1300可以将根据从主机102输入的写入数据WDATA的顺序而被混合并存储在写入缓冲器1442中的写入数据WDATA分类成分组为事务的第一写入数据TRAN_WDATA和未被分组为事务的第二写入数据NMAL_WDATA,这取决于写入数据WDATA是否分组为事务。
更具体地,将如下描述操作1301。
当从主机102输入写入数据WDATA时,与各个写入数据WDATA对应的写入命令WCMD可以被一起输入。
写入命令WCMD可以包括与各个写入命令WCMD对应的写入数据WDATA的事务信息TRINFO。
写入数据WDATA的事务信息TRINFO可以包括事务标识(ID)信息TRID、事务提交信息CMIF和事务中止信息ABIF。
在操作1021,主机102可以生成包括事务信息TRINFO的写入命令WCMD,事务信息TRINFO包括事务ID信息TRID、事务提交信息CMIF和事务中止信息ABIF。写入命令WCMD可以与写入数据WDATA一起输入到存储器系统110的控制器130。
因此,存储器系统110的控制器130可以响应于写入命令WCMD将写入数据WDATA存储在写入缓冲器1442中。然后,控制器130可以通过响应于写入缓冲器1442的预定存储空间已满而对写入缓冲器1442执行清除操作,将存储在写入缓冲器1442中的写入数据WDATA存储到非易失性存储器装置150中。
在操作1304,包括在控制器130中的事务管理器1300可以检查包括在写入命令WCMD中的事务信息TRINFO的事务ID信息TRID。此外,事务管理器1300可以将存储在写入缓冲器1442中的写入数据WDATA分类成分组为事务的第一写入数据TRAN_WDATA和未被分组为事务的第二写入数据NMAL_WDATA。
也就是说,事务管理器1300可以检查存储在写入缓冲器1442中的写入数据WDATA的事务信息TRINFO的事务ID信息TRID。当写入数据WDATA具有设置为特定值的事务ID信息TRID时,事务管理器1300可以将写入数据WDATA分类成第一写入数据TRAN_WDATA。
当写入数据WDATA中没有设置事务ID信息TRID时,事务管理器1300可以检查存储在写入缓冲器1442中的写入数据WDATA的事务信息TRINFO的事务ID信息TRID,并将写入数据WDATA分类成第二写入数据NMAL_WDATA。
例如,存储在写入缓冲器1442中的写入数据WDATA之中的、事务ID信息TRID具有第一值的写入数据WDATA是分组为第一事务的第一写入数据TRAN_WDATA。
类似地,存储在写入缓冲器1442中的写入数据WDATA之中的、事务ID信息TRID具有第二值的写入数据WDATA是分组为第二事务的第一写入数据TRAN_WDATA。
另一方面,存储在写入缓冲器1442中的写入数据WDATA之中的、事务ID信息TRID未被设置为任何值的写入数据WDATA是未被分组为事务的第二写入数据NMAL_WDATA。
当事务ID信息TRID未被设置为任何值时,它可以指示事务ID信息TRID被设置为预定义的初始值或不重要的值,作为事务ID信息。
在操作1302,事务管理器1300可以检查存储在写入缓冲器1442中的第一写入数据TRAN_WDATA在写入缓冲器1442被清除的时间点是否已经被提交。
此时,通过操作1301存储在写入缓冲器1442中的写入数据WDATA之中的分类成分组为事务的数据的第一写入数据TRAN_WDATA由于被分组为事务的数据的特征,根据第一写入数据TRAN_WDATA是否已提交而需要以不同的方式写入存储块152、154和156。
由于这个原因,事务管理器1300可以首先检查存储在写入缓冲器1442中的第一写入数据TRAN_WDATA在写入缓冲器1442被清除的时间点是否已被提交。
例如,当设置的提交信息CMIF包括在分组为第一事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA的事务信息TRINFO中时,在操作1306,可以确定分组为第一事务的第一写入数据TRAN_WDATA已完全提交。
当设置的提交信息CMIF未包括在分组为第二事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA的事务信息TRINFO中时,在操作1308,可以确定分组为第二事务的第一写入数据TRAN_WDATA未完全提交。
当设置的中止信息ABIF包括在分组为第三事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA的事务信息TRINFO中时,在操作1307,可以确定分组为第三事务的第一写入数据TRAN_WDATA被中止。
在各个实施例中,分组为第一事务的第一写入数据TRAN_WDATA的每一个可以处于事务信息TRINFO的事务ID信息TRID具有第一值的状态。此外,分组为第二事务的第一写入数据TRAN_WDATA的每一个可以处于事务信息TRINFO的事务ID信息TRID具有第二值的状态。此外,分组为第三事务的第一写入数据TRAN_WDATA的每一个可以处于事务信息TRINFO的事务ID信息TRID具有第三值的状态。
这样,存储在写入缓冲器1442中的第一写入数据TRAN_WDATA可以被区分为不同的事务组,这取决于事务信息TRINFO的事务ID信息TRID被指定为哪个值。
也就是说,存储在写入缓冲器1442中的第一写入数据TRAN_WDATA可以包括混合在其中的多个事务组。在多个事务组之中,事务可已被完全提交,另一事务可未完全提交,而另一事务可能被中止。
通过操作1302,事务管理器1300可以检查存储在写入缓冲器1442中的第一写入数据TRAN_WDATA是否已被提交。然后,事务管理器1300可以根据检查结果仅对写入缓冲器1442执行清除操作,或者分别执行彼此不重叠但彼此连续的第一清除操作FLUSH1和第二清除操作FLUSH2。
具体地,当操作1302的结果表明提交的第一写入数据TRAN_WDATA包括在第一写入数据TRAN_WDATA中时(操作1306),事务管理器1300可以分别执行彼此不重叠但彼此连续的第一清除操作FLUSH1和第二清除操作FLUSH2,作为对写入缓冲器1442的清除操作。换句话说,当检查到设置的提交信息CMIF包括在各个第一写入数据TRAN_WDATA的事务信息TRINFO中时,事务管理器1300可以分别执行第一清除操作FLUSH1和第二清除操作FLUSH2。
第一清除操作FLUSH1可以指示操作1309,其包括选择存储在写入缓冲器1442中的第一写入数据TRAN_WDATA之中的提交的第一写入数据TRAN_WDATA,并将所选择的数据存储在非易失性存储器装置150的“第一存储区域”中。
第二清除操作FLUSH2可以指示操作1310,其包括在存储在写入缓冲器1442中的第一写入数据TRAN_WDATA以及第二写入数据NMAL_WDATA之中选择未完全提交的第一写入数据TRAN_WDATA,然后将所选择的数据存储在非易失性存储器装置150的“第二存储区域”中。
也就是说,在操作1309,当操作1302的结果表明提交的第一写入数据TRAN_WDATA包括在存储在写入缓冲器1442中的第一写入数据TRAN_WDATA中时,事务管理器1300可以通过第一清除操作FLUSH1仅选择提交的第一写入数据TRAN_WDATA,并将所选择的数据存储在非易失性存储器装置150的“第一存储区域”中。在第一清除操作FLUSH1之后,在操作1310,事务管理器1300可以选择未完全提交的第一写入数据TRAN_WDATA以及第二写入数据NMAL_WDATA,并通过第二清除操作FLUSH2将所选择的数据存储在非易失性存储器装置150的“第二存储区域”中。
因此,当提交的第一写入数据TRAN_WDATA包括在存储在写入缓冲器1442中的第一写入数据TRAN_WDATA中时(操作1306),事务管理器1300可以仅选择提交的第一写入数据TRAN_WDATA并将所选择的数据存储在非易失性存储器装置150的“第一存储区域”中。此外,事务管理器1300可以选择未完成的第一写入数据TRAN_WDATA以及第二写入数据,然后将所选择的数据存储在非易失性存储器装置150的“第二存储区域”中。
例如,分组为第一事务的第一写入数据TRAN_WDATA、分组为第二事务的第一写入数据TRAN_WDATA和第二写入数据NMAL_WDATA存储在写入缓冲器1442中。此外,设置的提交信息CMIF包括在分组为第一事务的各个第一写入数据TRAN_WDATA的事务信息TRINFO中。此外,设置的提交信息CMIF和设置的中止信息ABIF未包括在分组为第二事务的各个第一写入数据TRAN_WDATA的事务信息TRINFO中。
在这种情况下,通过操作1302,事务管理器1300可以检查分组为第一事务并且存储在写入缓冲器1442中的第一写入数据TRAN_WDATA已经完全提交,分组为第二事务的第一写入数据TRAN_WDATA未完全提交。
因此,通过操作1309,事务管理器1300可以通过执行第一清除操作FLUSH1将分组为第一事务的第一写入数据TRAN_WDATA存储在非易失性存储器装置150的“第一存储区域”中。然后,通过操作1310,事务管理器1300可以将分组为第二事务的第一写入数据TRAN_WDATA以及第二写入数据NMAL_WDATA存储在非易失性存储器装置150的“第二存储区域”中。
当操作1302的结果表明所提交的第一写入数据TRAN_WDATA未包括在第一写入数据TRAN_WDATA中时(操作1308),事务管理器1300可以仅对写入缓冲器1442执行清除操作。换句话说,当设置的提交信息CMIF未包括在各个第一写入数据TRAN_WDATA的事务信息TRINFO中时,即使事务信息TRINFO全部被检查,事务管理器1300也可以仅对写入缓冲器1442执行清除操作。具体地,在操作1312,事务管理器1300可以选择存储在写入缓冲器1442中的写入数据WDATA之中的未完全提交的第一写入数据TRAN_WDATA以及第二写入数据NMAL_WDATA,然后将所选择的数据存储在非易失性存储器装置150中。
例如,分组为第一事务的第一写入数据TRAN_WDATA、分组为第二事务的第一写入数据TRAN_WDATA和第二写入数据NMAL_WDATA存储在写入缓冲器1442中。此外,设置的提交信息CMIF和设置的中止信息ABIF既未包括在分组为第一事务的各个第一写入数据TRAN_WDATA的事务信息TRINFO中,也未包括在分组为第二事务的各个第一写入数据TRAN_WDATA的事务信息TRINFO中。
在这种情况下,通过操作1302,事务管理器1300可以检查分组为第一事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA未完全提交,以及分组为第二事务的第一写入数据TRAN_WDATA未完全提交。
因此,事务管理器1300可以利用操作1312通过执行清除操作将分组为第一事务的第一写入数据TRAN_WDATA、分组为第二事务的第一写入数据TRAN_WDATA和第二写入数据NMAL_WDATA存储在非易失性存储器装置150中。
当操作1302的结果表明设置的中止信息ABIF包括在各个第一写入数据TRAN_WDATA的事务信息TRINFO中时(操作1307),在操作1311,事务管理器1300可以仅对写入缓冲器1442执行清除操作,但即使在清除操作期间,也不将存储在写入缓冲器1442中的写入数据WDATA的中止的第一写入数据TRAN_WDATA编程到非易失性存储器装置150。
例如,分组为第一事务的第一写入数据TRAN_WDATA、分组为第二事务的第一写入数据TRAN_WDATA和第二写入数据NMAL_WDATA存储在写入缓冲器1442中。此外,设置的提交信息CMIF和设置的中止信息ABIF未包括在分组为第一事务的各个第一写入数据TRAN_WDATA的事务信息TRINFO中,设置的中止信息ABIF包括在分组为第二事务的各个第一写入数据TRAN_WDATA的事务信息TRINFO中。
在这种情况下,通过操作1302,事务管理器1300可以检查分组为第一事务并且存储在写入缓冲器1442中的第一写入数据TRAN_WDATA未完全提交,分组为第二事务的第一写入数据TRAN_WDATA被中止。
因此,事务管理器1300可以通过操作1311执行清除操作,但是即使在清除操作期间也不将分组为第二事务的第一写入数据TRAN_WDATA存储在非易失性存储器装置150中。也就是说,在清除操作期间,事务管理器1300可以仅选择分组为第一事务的第一写入数据TRAN_WDATA以及第二写入数据NMAL_WDATA,并将所选择的数据存储在非易失性存储器装置150中。
图6A至图6D示出提交的第一写入数据TRAN_WDATA“0,1,2和3”和第二写入数据NMAL_WDATA“A,B,C和D”进行混合并存储在写入缓冲器1442中。
此外,图6A和6B示出事务管理器1300通过图5的操作1303在第一清除操作FLUSH1期间将第一写入数据TRAN_WDATA“0,1,2和3”存储在非易失性存储器装置150的“第一存储区域”中,并且在第二清除操作FLUSH2期间将第二写入数据NMAL_WDATA“A,B,C和D”存储在非易失性存储器装置150的“第二存储区域”中。即,设置的提交信息CMIF可以包括在与第一写入数据TRAN_WDATA“0,1,2和3”相对应的事务信息TRINFO中。因此,事务管理器1300可以执行操作1303。
图6A示出当存储在写入缓冲器1442中的每个写入数据WDATA被设置为与一个或多个“区段”相对应的大小时,如何设置在操作1303中使用的非易失性存储器装置150的“第一和第二存储区域”。
图6B示出当存储在写入缓冲器1442中的每个写入数据WDATA被设置为与一个或多个“页面”相对应的大小时,如何设置在操作1303中使用的非易失性存储器装置150的“第一和第二存储区域”。
如上参照图5所述,非易失性存储器装置150可包括多个存储块152、154和156。存储块152、154和156可分别包括多个页面P<10,11,12,13,14,15>、P<20,21,22,23,24,25>和P<30,31,32,33,34,35>。页面P<10,11,12,13,14,15>、P<20,21,22,23,24,25>和P<30,31,32,33,34,35>中的每一个可包括多个区段N<1:4>。
图6A示出存储在写入缓冲器1442中的每个写入数据WDATA被设置为与一个或多个“区段”相对应的大小。这样,存储在写入缓冲器1442中的每个写入数据WDATA可以被设置为与小于单位页面的一个或多个区段相对应的大小。
因此,控制器130可以将一个或多个“特定页面”设置为“第一存储区域”。一个或多个特定页面可以包括在存储块152、154和156之中的一个或多个“特定存储块”中,该“特定存储块”被同时或连续地访问以用于一次读取操作。此外,控制器130可以将一个或多个页面设置为“第二存储区域”。除了在“特定存储块”中被设置为“第一存储区域”的“特定页面”之外,一个或多个页面可以包括在其它页面中。
此时,一个或多个“特定存储块”可以指示可被同时或连续地访问以用于一次读取操作的一个或多个存储块。也就是说,一个或多个“特定存储块”可以指示为一次读取操作选择的一个存储块、指示被同时或连续地选择用于一次读取操作的两个或更多个存储块被分组为超级块、或者指示可以通过交错方法连续地被访问以用于一次读取操作的两个或更多个存储块。
例如,作为存储在写入缓冲器1442中的总共八个写入数据WDATA的“0,1,2,A,B,C,D和3”中的每一个具有与一个区段相对应的大小。因此,写入缓冲器1442具有与总共八个区段相对应的大小。在这种情况下,由于一个页面包括四个区段,所以写入缓冲器1442可以具有与总共两个页面相对应的大小。
因此,控制器130可以将存储块152、154和156的第一存储块152设置为“特定存储块”。此外,控制器130可以将设置为“特定存储块”的第一存储块152的第一页面P10设置为“第一存储区域”。此外,控制器130可以将其它页面P<11,12,13,14,15>的任意一个页面P11设置为“第二存储区域”,其它页面P<11,12,13,14,15>是排除设置为“特定存储块”的第一存储块152中的设置为“第一存储区域”的第一页面P10之外的页面。
在这种状态下,包括在控制器130中的事务管理器1300可以执行操作1303。操作1303可以包括在存储在写入缓冲器1442中的“0,1,2,A,B,C,D和3”的八个写入数据WDATA之中选择与分组为事务的第一写入数据TRAN_WDATA相对应的“0,1,2和3”。此外,操作1303可以包括通过第一清除操作FLUSH1将所选择的数据存储在包括在第一存储块152的第一页面P10中的四个区段中。此外,操作1303可以包括选择第二写入数据NMAL_WDATA“A,B,C和D”,并且通过第二清除操作FLUSH2将所选择的数据存储在包括在第一存储块152的第二页面P11中的四个区段中。
简而言之,分组为事务的第一写入数据TRAN_WDATA和未被分组为事务的第二写入数据NMAL_WDATA可根据从主机102输入的写入数据的顺序被混合并存储在写入缓冲器1442中。然而,事务管理器1300可以通过操作1303分别执行第一清除操作FLUSH1和第二清除操作FLUSH2作为写入缓冲器1442的清除操作。因此,分组为事务的第一写入数据TRAN_WDATA所存储的第一存储空间,即第一存储块152的第一页面P10,以及未被分组为事务的第二写入数据NMAL_WDATA所存储的第二存储空间,即第一存储块152的第二页面P11,可以在非易失性存储器装置150中彼此物理分开。
图6B示出存储在写入缓冲器1442中的每个写入数据WDATA被设置为与一个或多个“页面”相对应的大小。这样,存储在写入缓冲器1442中的每个写入数据WDATA可以被设置为与小于单位存储块的一个或多个页面相对应的大小。
因此,控制器130可以将一个或多个“特定存储块”设置为“第一存储区域”。存储块152、154和156之中的一个或多个“特定存储块”可被同时或连续地访问以用于一次读取操作。此外,控制器130可以将一个或多个存储块设置为“第二存储区域”。一个或多个存储块可以包括存储块152、154和156之中除了被设置为“第一存储区域”的“特定存储块”之外的其它存储块中。
此时,一个或多个“特定存储块”可以指示可被同时或连续地访问以用于一次读取操作的一个或多个存储块。也就是说,一个或多个“特定存储块”可以指示为一次读取操作选择的一个存储块、指示被同时或连续地选择以用于一次读取操作的两个或更多个存储块被分组为超级块、或者指示可以通过交错方法连续地访问以用于一次读取操作的两个或更多个存储块。
例如,作为存储在写入缓冲器1442中的总共八个写入数据WDATA的“0,1,2,A,B,C,D和3”中的每一个具有与一个页面相对应的大小。因此,写入缓冲器1442具有与总共八个页面相对应的大小。
因此,控制器130可以选择存储块152、154和156的第一存储块152作为“特定存储块”,并将所选择的存储块设置为“第一存储区域”。此外,控制器130可以将任意一个存储块154设置为“第二存储区域”。在存储块152、154和156之中,存储块154可以包括在除了被选择为“特定存储块”并被设置为“第一存储区域”的第一存储块152之外的其它存储块154和156中。
在这种状态下,包括在控制器130中的事务管理器1300可以执行操作1303。操作1303可以包括在存储在写入缓冲器1442中的八个写入数据WDATA“0,1,2,A,B,C,D和3”之中选择与分组为事务的第一写入数据TRAN_WDATA相对应的“0,1,2和3”,并且通过第一清除操作FLUSH1将所选择的数据存储在包括在第一存储块152中的四个页面P<10,11,12,13>中。此外,操作1303可以包括选择第二写入数据NMAL_WDATA“A,B,C和D”,并且通过第二清除操作FLUSH2将所选择的数据存储在包括在第二存储块154中的四个页面P<20,21,22,23>中。
简而言之,分组为事务的第一写入数据TRAN_WDATA和未被分组为事务的第二写入数据NMAL_WDATA可根据从主机102输入的写入数据的顺序被混合并存储在写入缓冲器1442中。然而,事务管理器1300可以通过操作1303分别执行第一清除操作FLUSH1和第二清除操作FLUSH2作为写入缓冲器1442的清除操作。因此,分组为事务的第一写入数据TRAN_WDATA所存储的第一存储空间,即第一存储块152,以及未被分组为事务的第二写入数据NMAL_WDATA所存储的第二存储空间,即第二存储块154,可以在非易失性存储器装置150中彼此物理分离。
图6C示出事务管理器1300通过图5的操作1311没有将第一写入数据TRAN_WDATA“0,1,2,3”存储在非易失性存储器装置150中,而是仅选择第二写入数据NMAL_WDATA“A,B,C和D”,然后在清除操作期间将所选择的数据存储在非易失性存储器装置150中。即,设置的中止信息ABIF可以包括在与第一写入数据TRAN_WDATA“0,1,2和3”相对应的事务信息TRINFO中。因此,事务管理器1300可以执行操作1311。
具体地,图6C示出存储在写入缓冲器1442中的每个写入数据WDATA被设置为与一个或多个“区段”相对应的大小,类似于图6A。也就是说,存储在写入缓冲器1442中的每个写入数据WDATA可以被设置为与小于单位页面的一个或多个区段相对应的大小。
因此,在图5的操作1311中,控制器130可以设置在存储块152、154和156之中被同时或连续地访问以用于一次读取操作的一个或多个“特定存储块”,然后使用所设置的一个或多个存储块作为用于存储被选择的第二写入数据NMAL_WDATA的空间。
例如,作为存储在写入缓冲器1442中的总共八个写入数据WDATA的“0,1,2,A,B,C,D和3”中的每一个具有与一个区段相对应的大小。因此,写入缓冲器1442具有与总共八个区段相对应的大小。在这种情况下,由于一个页面包括四个区段,所以写入缓冲器1442可以具有与总共两个页面相对应的大小。
因此,控制器130可以将存储块152、154和156的第一存储块152设置为“特定存储块”。在这种状态下,包括在控制器130中的事务管理器1300可以在存储在写入缓冲器1442中的八个写入数据WDATA“0,1,2,A,B,C,D和3”之中选择未被分组成事务的第二写入数据NMAL_WDATA“A,B,C和D”,然后通过清除操作将所选择的数据存储在包括在设置为“特定存储块”的第一存储块152的第一页面P10中的四个区段中。此时,在存储在写入缓冲器1442中的八个写入数据WDATA“0,1,2,A,B,C,D和3”之中被分组为事务的第一写入数据TRAN_WDATA“0,1,2和3”可以不存储在设置为“特定存储块”的第一存储块152中,因为设置的中止信息ABIF包括在与第一写入数据TRAN_WDATA“0,1,2和3”相对应的事务信息TRINFO中。
图6D示出事务管理器1300通过图5的操作1312在清除操作期间将存储在写入缓冲器1442中的写入数据WDATA存储到非易失性存储器装置150中。即,设置的提交信息CMIF和设置的中止信息ABIF可以未包括在与第一写入数据TRAN_WDATA“0,1,2和3”相对应的事务信息TRINFO中。因此,事务管理器1300可以执行操作1312。
具体地,图6D示出存储在写入缓冲器1442中的每个写入数据WDATA被设置为与一个或多个“区段”相对应的大小,类似于图6A。也就是说,存储在写入缓冲器1442中的每个写入数据WDATA可以被设置为与小于单元页面的一个或多个区段相对应的大小。
因此,控制器130可以设置在存储块152、154和156之中被同时或连续地访问以用于一次读取操作的一个或多个“特定存储块”。然后,控制器130可以使用设置的一个或多个存储块作为用于存储在操作1312选择的未完全提交的第一写入数据TRAN_WDATA以及第二写入数据NMAL_WDATA的空间。
例如,作为存储在写入缓冲器1442中的总共八个写入数据WDATA的“0,1,2,A,B,C,D和3”中的每一个具有与一个区段相对应的大小。因此,写入缓冲器1442具有与总共八个区段相对应的大小。在这种情况下,由于一个页面包括四个区段,所以写入缓冲器1442可以具有与总共两个页面相对应的大小。
因此,控制器130可以将存储块152、154和156的第一存储块152设置为“特定存储块”。在这种状态下,包括在控制器130中的事务管理器1300可以将存储在写入缓冲器1442中的八个写入数据WDATA“0,1,2,A,B,C,D和3”存储到设置为“特定存储块”的第一存储块152的第一和第二页面P10和P11中包括的八个区段中。此时,在存储在写入缓冲器1442中的八个写入数据WDATA“0,1,2,A,B,C,D和3”之中仅分组为事务的第一写入数据TRAN_WDATA“0,1,2和3”可不被选择并存储在单独的存储空间中,因为设置的提交信息CMIF和设置的中止信息ABIF未包括在与第一写入数据TRAN_WDATA“0,1,2和3”相对应的事务信息TRINFO中。
图7是示出在通过参照图5和图6A至图6D描述的操作将分组为事务的多个写入数据存储在非易失性存储器装置中之后执行合并操作的方法的示图。
图7示出图5的控制器130检查存储在“第一存储区域”中的每个第一写入数据TRAN_WDATA是否有效,并根据检查结果改变用于执行合并操作的方法。通过参照图5和图6A至图6D描述的操作,在将分组为事务的写入数据TRAN_WDATA存储在“第一存储区域”中并将未被分组为事务的第二写入数据NMAL_WDATA存储在“第二存储区域”中之后,执行用于将“第一和第二存储区域”中的有效的第一写入数据TRAN_WDTA和有效的第二写入数据NMAL_WDATA移动到非易失性存储器装置150的另一存储区域的合并操作时,可以执行图7的操作。
具体地,如图7中所示,可以选择非易失性存储器装置150的存储块152、154和156的第一存储块152作为“特定存储块”。第一存储块152的第一页面P10和第四页面P13中的每一个可以被设置为“第一存储区域”,并且第二、第三、第五和第六页面P11、P12、P14和P15中的每一个可以被设置为“第二存储区域”。
此时,分组为第一事务的第一写入数据TRAN_WDATA“0,1,2和3”存储在设置为“第一存储区域”的第一存储块152的第一页面P10中。此外,分组为第二事务的第一写入数据TRAN_WDATA“4,5,6和7”存储在设置为“第一存储区域”的第一存储块152的第四页面P13中。类似地,第二写入数据NMAL_WDATA“A,B,C,D,E,F,G,H,I,J,K,L,M,N,O和P”存储在设置为“第二存储区域”的第一存储块152的第二、第三、第五和第六页面P11、P12、P14和P15中。
然后,在存储器系统110进行操作时,存储在第一存储块152中的一些数据的状态可以转变为无效状态INVALID。
例如,如图7中所示,存储在第一存储块152的第二页面P11的第四区段N4中的数据“D”的状态、存储在第三页面P12的第二至第四区段N2至N4中的数据“F、G和H”、存储在第四页面P13的第二和第三区段N2和N3中的数据“5和6”、存储在第五页面P14的第二和第四区段N2和N4中的数据“J和L”、以及存储在第六页面P15的第二和第三区段N2和N3中的数据“N和O”可以转变成无效状态INVALID。
在这种状态下,控制器130可以选择第一存储块152作为用于合并操作的牺牲块VICTIM BLOCK。因此,控制器130可以检查分组为事务并存储在第一存储块152中的第一写入数据TRAN_WDATA中的每一个是否有效,然后根据检查结果改变用于执行合并操作的方法。
因此,控制器130在执行合并操作之前可以检查分组为第一事务并存储在第一存储块152中的第一写入数据TRAN_WDTA“0,1,2和3”是否全部有效。然后,控制器130可以检查分组为第二事务的第一写入数据TRAN_WDATA“4,5,6和7”是否全部有效。
通过检查结果,控制器130可以识别出分组为第一事务的所有第一写入数据TRAN_WDATA“0,1,2和3”保持有效状态。此外,在分组为第二事务的第一写入数据TRAN_WDATA“4,5,6和7”之中,控制器130可以识别出“5和6”被转换到无效状态INVALID并且仅“4和7”保留有效的状态。也就是说,控制器130可以识别出分组为第一事务的所有第一写入数据TRAN_WDATA“0,1,2和3”都是有效的,并且分组为第二事务的第一写入数据TRAN_WDATA“4,5,6和7”仅一部分是有效的。
因此,在执行合并操作时,控制器130可将分组为第一事务并确定为有效的第一写入数据TRAN_WDATA“0,1,2和3”移动到非易失性存储器装置150的“第三存储区域”,例如,包括在非易失性存储器装置150中的存储块152、154和156之中的第二存储块154的第一页面P10。然后,控制器130可以将分组为第二事务的第一写入数据TRAN_WDATA“4,5,6和7”之中的有效数据“4和7”以及未被分组为事务的第二写入数据NMAL_WDATA之中的有效数据“A,B,C,E,I,K,M和P”移动到非易失性存储器装置150的“第四存储区域”,例如,包括在非易失性存储器装置150中的存储块152、154和156之中的第二存储块154的第二、第三和第四页面P21、P22和P23。
简而言之,被分组为事务并且全部保持有效状态的第一写入数据TRAN_WDATA和被分组为事务并且部分地保持有效状态的第一写入数据TRAN_WDATA可以被混合并存储在非易失性存储器装置150的“第一存储区域”。此外,未被分组为事务并保持有效或无效状态的第二写入数据NMAL_WDATA可以被混合并存储在非易失性存储器装置150的“第二存储区域”中。
在这种状态下,当非易失性存储器装置150的“第一存储区域”和“第二存储区域”需要被选择为牺牲区域以执行合并操作时,控制器130可以首先选择分组为事务并且全部保持有效状态的第一写入数据TRAN_WDATA,然后将所选择的数据移动到设置为单独存储空间的“第三存储区域”。然后,控制器130可以将分组为事务并且部分地保持有效状态的第一写入数据TRAN_WDATA的有效数据和未被分组为事务的第二写入数据NMAL_WDATA的有效数据混合,然后将混合数据移动到“第四存储区域”。因此,即使在执行合并操作之后,也可以收集分组为事务并且全部保持有效状态的第一写入数据TRAN_WDATA并将其存储在与其它数据物理分离的存储空间中。
作为参考,分组为事务但未完全提交的第一写入数据TRAN_WDATA以及未被分组为事务并保持有效或无效状态的第二写入数据NMAL_WDATA可以进一步存储在非易失性存储器装置150的“第二存储区域”中,同时保持有效或无效状态。然而,分组为事务但未完全提交的第一写入数据TRAN_WDATA可能与未被分组为事务的第二写入数据NMAL_WDATA无法区分开,但在如操作1312的将第一写入数据TRAN_WDATA存储在“第二存储区域”中的时间点已与第二写入数据NMAL_WDATA混合。即,从分组为事务但未完全提交的第一写入数据TRAN_WDATA存储在非易失性存储器装置150的“第二存储区域”中的时间点起,该第一写入数据TRAN_WDATA可以以与未被分组为事务的第二写入数据NMAL_WDATA相同的方式管理。
在上述实施例中,“合并操作”可以指示垃圾收集操作。然而,“合并操作”不仅限于垃圾收集操作,而是用于合并两个或更多个块的操作,例如,读取回收操作或损耗均衡操作也可以包括在“合并操作”中。
图8是示出根据本实施例的将分组为事务的多个写入数据存储在存储器系统中的非易失性存储器装置中的操作的流程图。
图8示出根据实施例的将分组为事务的多个写入数据存储在存储器系统中的非易失性存储器装置中的操作的顺序,该操作已经参照图5和图6A至图6D进行了描述。
在步骤S10,写入数据WDATA可以从主机102中接收并存储在写入缓冲器1442中。
在步骤S20,控制器130可以检查写入缓冲器1442的预定存储空间是否已满。此时,步骤S20的示例可以包括检查分配给易失性存储器装置144中的写入缓冲器1442的存储空间是否已满。
当检查到写入缓冲器1442的预定存储空间未满时(S20,否),可以再次执行步骤S10。
当步骤S20的检查结果表明写入缓冲器1442的预定存储空间已满(S20,是)时,控制器130需要对写入缓冲器1442执行清除操作。此时,在对写入缓冲器1442执行清除操作之前,在步骤S30,控制器130可以检查分组为事务的第一写入数据TRAN_WDATA是否存在于存储在写入缓冲器1442中的写入数据WDATA之中。
当步骤S30的检查结果表明分组为事务的第一写入数据TRAN_WDATA不存在于写入缓冲器1442中时(S30,否),在步骤S40,控制器130可以对写入缓冲器1442执行清除操作。即,存储在写入缓冲器1442中的所有写入数据WDATA可以存储在非易失性存储器装置150中。
当步骤S30的结果表明分组为事务的第一写入数据TRAN_WDATA存在于写入缓冲器1442中时(S30,是),在步骤S50,控制器130可以检查分组为事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA的状态。通过步骤S50,控制器130可以检查分组为事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA是否已经完全提交(Commit)或中止(Abort)或者未完全提交(Continues)。
当步骤S50的结果表明提交的第一写入数据TRAN_WDATA包括在分组为事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA中时(S50,Commit),在步骤S70,控制器130可以通过第一清除操作FLUSH1,仅选择分组为事务的提交的第一写入数据TRAN_WDATA(即,提交数据)并将所选择的数据存储在非易失性存储器装置150的“第一存储区域”中。当执行步骤S70的操作时,在步骤S70之后的步骤S60,控制器130可以选择存储在写入缓冲器1442中的其它数据,即,未被分组为事务的第二写入数据NMAL_WDATA(即,正常数据)和分组为事务但未完全提交的第一写入数据TRAN_WDATA(即,继续数据),然后将所选择的数据存储在非易失性存储器装置150的“第二存储区域”中。
当步骤S50的结果表明中止的第一写入数据TRAN_WDATA包括在分组为事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA中时(S50,Abort),在步骤S60,控制器130可以在存储在写入缓冲器1442中的写入数据WDATA之中选择除了分组为事务但是被中止的第一写入数据TRAN_WDATA之外的其它数据。即,控制器130可以选择未被分组为事务的第二写入数据NMAL_WDATA(正常数据)和被分组为事务但未完全提交的第一写入数据TRAN_WDATA(继续数据)。然后,控制器130可以通过清除操作将所选择的数据存储在非易失性存储器装置150中。
当步骤S50的结果表明提交的第一写入数据TRAN_WDATA和中止的第一写入数据TRAN_WDATA未包括在分组为事务并存储在写入缓冲器1442中的第一写入数据TRAN_WDATA中,而是仅包括未完全提交的第一写入数据TRAN_WDATA时(S50,Continues),在步骤S40,控制器130可以对写入缓冲器1442执行清除操作。即,存储在写入缓冲器1442中的所有写入数据WDATA可以存储在非易失性存储器装置150中。
在下文中,参照图9至图17,将更详细地描述应用根据本实施例的存储器系统110的数据处理系统和电子装置,其中该存储器系统110包括参照图1至图8描述的存储器装置150和控制器130。
图9至图17是示出图1的数据处理系统的应用示例的示图。
图9是示出根据本实施例的包括存储器系统的数据处理系统的另一示例的示图。例如,图9示出应用了根据本实施例的存储器系统的存储卡系统6100。
参照图9,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可被连接至通过非易失性存储器(NVM)实施的存储器装置6130,并被可配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并且驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1和图5描述的存储器系统110的控制器130,存储器装置6130可对应于参照图1和图5描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正单元。存储器控制器6120可进一步包括图5所示的元件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)以及蓝牙。因此,根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置,或者特别是移动电子装置。
存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。存储器装置6130可包括如图5的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成至单个半导体装置中而构成固态驱动器(SSD)。而且,存储器控制器6120和存储器装置6130可构成存储卡,诸如PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图10是示出包括根据本实施例的存储器系统的数据处理系统6200的另一示例的示图。
参照图10,数据处理系统6200可包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图10所示的数据处理系统6200可作为如参照图1所示的诸如存储卡(例如,CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1至图5所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1至图5所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可包括一个或多个中央处理单元(CPU)6221、诸如随机存取存储器(RAM)6222的缓冲存储器、错误校正码(ECC)电路6223、主机接口6224以及诸如非易失性存储器装置(NVM)接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU 6221的控制来操作,并且用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,通过CPU 6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓冲存储器时,RAM 6222可辅助低速存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC单元138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的错误校正码(ECC)。ECC电路6223可对提供给存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。此时,ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)或诸如网格编码调制(TCM)或分组编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传输数据或信号和/或接收来自主机6210的数据或信号,并通过NVM接口6225向存储器装置6230传输数据或信号和/或接收来自存储器装置6230的数据或信号。主机接口6224可通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围组件互连(PCIe)或NAND接口连接至主机6210。存储器控制器6220可具有无线通信功能,该无线通信功能具有诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议。存储器控制器6220可连接至外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据和/或接收来自外部装置的数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据本实施例的存储器系统和数据处理系统可被应用于有线/无线电子装置或特别是移动电子装置。
图11是示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。图11示出应用了根据本实施例的存储器系统的固态驱动器(SSD)。
参照图11,SSD 6300可包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于图1和图5的存储器系统110中的控制器130,并且存储器装置6340可对应于图1和图5的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325以及诸如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可通过诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的易失性存储器或诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器来实施。为方便起见,图11示出缓冲存储器6325存在于控制器6320中。然而,缓冲存储器6325可存在于控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的错误校正码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并在失败的数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1和图5的存储器系统110的多个SSD 6300来实施数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。此时,RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图12是示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。例如,图12示出应用了根据本实施例的存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图12,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1和图5的存储器系统110中的控制器130,并且存储器装置6440可对应于图1和图5的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接至存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如NAND接口6433的存储器接口。
内核6432可控制eMMC 6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速(UHS)-I/UHS-II接口。
图13至图16是示出包括根据本实施例的存储器系统的数据处理系统的其它示例的示图。例如,图13至图16示出应用了根据本实施例的存储器系统的通用闪速存储(UFS)系统。
参照图13至图16,UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。主机6510、6610、6710和6810可用作有线/无线电子装置或特别是移动电子装置的应用处理器,UFS装置6520、6620、6720和6820可用作嵌入式UFS装置,以及UFS卡6530、6630、6730和6830可用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700和6800中的主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与诸如有线/无线电子装置或特别是移动电子装置的外部装置通信,并且UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过图1和图5所示的存储器系统110来实施。例如,在UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以参照图10至图12描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以以参照图9描述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS接口,例如,移动行业处理器接口(MIPI)中的MIPI M-PHY和MIPI统一协议(UniPro)彼此通信。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的各种协议,例如,通用存储总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD彼此通信。
在图13中所示的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每一个可以包括UniPro。主机6510可以执行交互操作以便与UFS装置6520和UFS卡6530进行通信。特别地,主机6510可以通过链路层交换,例如在UniPro的L3交换与UFS装置6520或UFS卡6530通信。此时,UFS装置6520和UFS卡6530可以通过在主机6510的UniPro处的链路层交换来彼此通信。在本实施例中,为了便于描述,已经例示其中一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,多个UFS装置和UFS卡可以并联或以星型形式连接到主机6410,并且多个UFS卡可以并联或以星型形式连接到UFS装置6520,或者串联或以链的形式连接到UFS装置6520。
在图14中所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro,并且主机6610可以通过执行交换操作的交换模块6640,例如,在UniPro处执行链路层交换例如L3交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可以通过UniPro处的交换模块6640的链路层交换来彼此通信。在本实施例中,为了便于描述,已经例示一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,多个UFS装置和UFS卡可以并联或以星型形式连接到交换模块6640,并且多个UFS卡可以串联或以链的形式连接到UFS装置6620。
在图15中所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可以包括UniPro,主机6710可以通过执行交换操作的交换模块6740,例如,通过在UniPro执行例如L3交换的链路层交换的交换模块6740,与UFS装置6720或UFS卡6730通信。此时,UFS装置6720和UFS卡6730可以通过UniPro处的交换模块6740的链路层交换来彼此通信,并且交换模块6740可以在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在本实施例中,为了便于描述,已经例示了一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,每个包括交换模块6740和UFS装置6720的多个模块可以并联或以星型形式连接到主机6710,或者彼此串联或以链的形式连接到彼此。此外,多个UFS卡可以并联或以星型形式连接到UFS装置6720。
在图16中所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可以包括M-PHY和UniPro。UFS装置6820可以执行交换操作以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可以通过在用于与主机6810通信的M-PHY和UniPro模块与用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如,通过目标标识符(ID)交换操作,与主机6810或UFS卡6830通信。此时,主机6810和UFS卡6830可以通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在本实施例中,为了便于描述,已经例示其中一个UFS装置6820连接到主机6810和一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可以并联或以星型形式连接到主机6810,或者串联或以链的形式连接到主机6810,并且多个UFS卡可以并联或以星型形式连接到UFS装置6820,或者串联或以链的形式连接到UFS装置6820。
图17是示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。例如,图17是示出应用了根据本实施例的存储器系统的用户系统6900的示图。
参照图17,用户系统6900可包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
更具体地,应用处理器6930可驱动包括在诸如操作系统(OS)的用户系统6900中的组件,并且包括控制包括在用户系统6900中的组件的控制器、接口和图形引擎。应用处理器6930可作为片上系统(SoC)被提供。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、低功率DDR(LPDDR)SDARM、LPDDR2 SDRAM或LPDDR3SDRAM的易失性随机存取存储器(RAM),或诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于堆叠式封装(POP)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WIMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存的非易失性半导体存储器装置来实施,并且可被设置为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1和图5描述的存储器系统110。此外,存储模块6950可被实施为如上参照图11至图16描述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
此外,当图1和图5的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据,或支持从触摸面板接收数据的功能。
根据本实施例,当临时将分组为事务的多个写入数据存储到存储器系统内的写入缓冲器中并且然后通过对写入缓冲器的清除操作将写入数据存储在存储块中时,存储器系统可根据事务是否已经提交来调整将分组为事务的多个写入数据存储在存储块中的方法。
因此,存储器系统可以有效地读取分组为事务并存储在存储块中的多个写入数据。
虽然为了说明性的目的已经描述了各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。

Claims (20)

1.一种存储器系统,包括:
非易失性存储器装置;
写入缓冲器,临时存储从主机接收的多个写入数据;以及
控制器:
在对所述写入缓冲器执行清除操作的时间点检查是否已提交了第一写入数据,
根据检查结果,将所述清除操作分成彼此不重叠但彼此连续的第一清除操作和第二清除操作,以及
当分组为事务的所述第一写入数据和未被分组为事务的第二写入数据根据从所述主机接收的所述写入数据的顺序被混合并存储在所述写入缓冲器中时,执行所述第一清除操作和所述第二清除操作,其中,所述控制器在所述第一清除操作期间,在存储在所述写入缓冲器中的所述写入数据之中选择提交的所述第一写入数据并将提交的所述第一写入数据存储在所述非易失性存储器装置的第一存储区域中,并且所述控制器在所述第二清除操作期间,在存储在所述写入缓冲器中的所述写入数据之中选择未完全提交的所述第一写入数据以及所述第二写入数据,并将未完全提交的所述第一写入数据以及所述第二写入数据存储在所述非易失性存储器装置的第二存储区域中。
2.根据权利要求1所述的存储器系统,其中所述控制器接收与来自所述主机的各个写入数据相对应的多个写入命令,
其中所述写入命令的每一个包括相对应的写入数据的事务信息,并且
其中所述写入数据的每一个的所述事务信息包括事务标识信息即事务ID信息、提交信息和中止信息。
3.根据权利要求2所述的存储器系统,其中所述控制器检查所述各个写入数据的所述事务信息的所述事务ID信息,将没有设置事务ID信息的所述写入数据分类成所述第二写入数据,并将具有设置为特定值的所述事务ID信息的所述写入数据分类成所述第一写入数据。
4.根据权利要求3所述的存储器系统,其中当所述写入缓冲器的预定存储空间已满时,所述控制器执行所述清除操作,
其中当检查到在执行所述清除操作的时间点,设置的提交信息包括在所述各个第一写入数据的所述事务信息中时,所述控制器在所述第一清除操作期间,在存储在所述写入缓冲器中的所述写入数据之中选择提交的所述第一写入数据,并将提交的所述第一写入数据存储在所述第一存储区域中,并且所述控制器在所述第二清除操作期间,选择未完全提交的所述第一写入数据以及所述第二写入数据,并将未完全提交的所述第一写入数据以及所述第二写入数据存储在所述第二存储区域中。
5.根据权利要求4所述的存储器系统,其中当检查到在执行所述清除操作的时间点,所述设置的提交信息未包括在所述各个第一写入数据的所述事务信息中时,所述控制器在所述清除操作期间,在存储在所述写入缓冲器中的所述写入数据之中选择未完全提交的所述第一写入数据以及所述第二写入数据,并将未完全提交的所述第一写入数据以及所述第二写入数据编程到所述非易失性存储器装置。
6.根据权利要求5所述的存储器系统,其中当检查到在执行所述清除操作的时间点,设置的中止信息包括在所述各个第一写入数据的所述事务信息中时,所述控制器即使在所述清除操作期间,也不将存储在所述写入缓冲器中的所述写入数据的中止的第一写入数据编程到所述非易失性存储器装置。
7.根据权利要求1所述的存储器系统,其中所述非易失性存储器装置包括多个存储块,并且所述存储块的每一个包括多个页面,
其中当所述写入数据的每一个被设置为与一个或多个页面相对应的大小时,所述控制器将一个或多个特定存储块设置为所述第一存储区域,并将除所述存储块中的所述特定存储块之外的其它存储块的一个或多个存储块设置为所述第二存储区域,其中在所述存储块之中的所述一个或多个特定存储块被同时或连续地访问以用于一次读取操作。
8.根据权利要求1所述的存储器系统,其中所述非易失性存储器装置包括多个存储块,所述存储块的每一个包括多个页面,并且所述页面的每一个包括多个区段,
其中当所述写入数据的每一个被设置为与一个或多个区段相对应的大小时,所述控制器将一个或多个特定页面设置为所述第一存储区域,并将除特定存储块中的所述特定页面之外的其它页面的一个或多个页面设置为所述第二存储区域,其中所述一个或多个特定页面包括在所述存储块之中被同时或连续地访问以用于一次读取操作的一个或多个特定存储块中。
9.根据权利要求3所述的存储器系统,其中当在所述第一写入数据和第二写入数据通过所述第一清除操作和所述第二清除操作存储在所述第一存储区域和所述第二存储区域中之后,执行用于将所述第一存储区域和所述第二存储区域中有效的所述第一写入数据和所述第二写入数据移动到所述非易失性存储器装置的另一存储区域的合并操作时,所述控制器检查存储在所述第一存储区域中的所述第一写入数据是否全部有效,并根据检查结果改变用于执行所述合并操作的方法。
10.根据权利要求9所述的存储器系统,其中当在具有设置为第一值的所述事务ID信息的所述第一写入数据和具有设置为第二值的所述事务ID信息的所述第一写入数据存储在所述第一存储区域中之后执行所述合并操作时,所述控制器将具有设置为所述第一值的所述事务ID信息的所述第一写入数据移动到所述非易失性存储器装置的第三存储区域,并且当具有设置为所述第一值的所述事务ID信息的所述第一写入数据全部有效且具有设置为所述第二值的所述事务ID信息的所述第一写入数据仅一部分有效时,将具有设置为所述第二值的所述事务ID信息的所述第一写入数据的有效数据和所述第二写入数据的有效数据移动到所述非易失性存储器装置的第四存储区域。
11.一种用于存储器系统的操作方法,所述存储器系统包括非易失性存储器装置和用于临时存储从主机接收的多个写入数据的写入缓冲器,所述操作方法包括:
第一检查步骤,检查分组为事务的第一写入数据和未分组为事务的第二写入数据是否根据从所述主机接收的所述写入数据的顺序被混合并存储在所述写入缓冲器中;
第二检查步骤,当所述第一检查步骤的结果表明所述第一写入数据和所述第二写入数据被混合并存储在所述写入缓冲器中时,检查在对所述写入缓冲器执行清除操作的时间点是否已提交所述第一写入数据;以及
划分和存储步骤,当所述第二检查步骤的结果表明所述第一写入数据已提交时,将对所述写入缓冲器的所述清除操作分成彼此不重叠但彼此连续的第一清除操作和第二清除操作,在所述第一清除操作期间,在存储在所述写入缓冲器的所述写入数据之中选择提交的所述第一写入数据并将提交的所述第一写入数据存储在所述非易失性存储器装置的第一存储区域中,以及在所述第二清除操作期间,在存储在所述写入缓冲器中的所述写入数据之中选择未完全提交的所述第一写入数据以及所述第二写入数据并将未完全提交的所述第一写入数据以及所述第二写入数据存储在所述非易失性存储器装置的第二存储区域中。
12.根据权利要求11所述的操作方法,进一步包括:从所述主机接收与各个写入数据相对应的多个写入命令,
其中所述写入命令的每一个包括相对应的写入数据的事务信息,并且
其中所述各个写入数据的所述事务信息包括事务标识信息即事务ID信息、提交信息和中止信息。
13.根据权利要求12所述的操作方法,其中所述第一检查步骤包括:
第一分类步骤,检查所述各个写入数据的所述事务信息的所述事务ID信息并将没有设置事务ID信息的所述写入数据分类成所述第二写入数据;
第二分类步骤,检查所述各个写入数据的所述事务信息的所述事务ID信息并将具有设置为特定值的所述事务ID信息的所述写入数据分类成所述第一写入数据;以及
第三检查步骤,在通过所述第一分类步骤和第二分类步骤将存储在所述写入缓冲器中的所述写入数据分类成所述第一写入数据和第二写入数据之后,检查所述第一写入数据和第二写入数据是否被混合并存储在所述写入缓冲器中。
14.根据权利要求13所述的操作方法,进一步包括:当所述写入缓冲器的预定存储空间已满时,执行所述清除操作的清除操作步骤,
其中当所述第三检查步骤的结果表明所述第一写入数据和第二写入数据被混合并存储在所述写入缓冲器中时,所述第二检查步骤包括检查到在执行所述清除操作步骤的时间点,设置的提交信息是否包括在所述各个第一写入数据的事务信息中。
15.根据权利要求14所述的操作方法,进一步包括:
当在所述第二检查步骤检查到在所述清除操作步骤开始的时间点所述设置的提交信息包括在所述各个第一写入数据的所述事务信息中时,执行所述划分和存储步骤;以及
当在所述第二检查步骤检查到在所述清除操作步骤开始的时间点所述设置的提交信息未包括在所述各个第一写入数据的所述事务信息中时,在所述清除操作期间,在存储在所述写入缓冲器中的所述写入数据之中选择未完全提交的所述第一写入数据以及所述第二写入数据并将选择的数据编程到所述非易失性存储器装置。
16.根据权利要求15所述的操作方法,进一步包括:在执行所述清除操作步骤的时间点检查设置的中止信息是否包括在所述各个第一写入数据的所述事务信息中,并且当所述检查结果表明包括所述中止信息时,即使在所述清除操作期间也不将存储在所述写入缓冲器中的所述写入数据的中止的第一写入数据编程到所述非易失性存储器装置。
17.根据权利要求11所述的操作方法,其中,所述非易失性存储器装置包括多个存储块,并且所述存储块的每一个包括多个页面,
其中所述操作方法进一步包括:当所述写入数据的每一个被设置成与一个或多个页面相对应的大小时,将一个或多个特定存储块设置为所述第一存储区域,并将除所述存储块中的所述特定存储块之外的其它存储块之中的一个或多个存储块设置为所述第二存储区域,其中在所述存储块之中的所述一个或多个特定存储块被同时或连续地访问以用于一次读取操作。
18.根据权利要求11所述的操作方法,其中,所述非易失性存储器装置包括多个存储块,所述存储块的每一个包括多个页面,并且所述页面的每一个包括多个区段,
其中所述操作方法进一步包括:当所述写入数据的每一个被设置为与一个或多个区段相对应的大小时,将一个或多个特定页面设置为所述第一存储区域,并且将除特定存储块中的所述特定页面之外的其它页面之中的一个或多个页面设置为所述第二存储区域,其中所述一个或多个特定页面包括在所述存储块之中被同时或连续地访问以用于一次读取操作的一个或多个特定存储块中。
19.根据权利要求13所述的操作方法,进一步包括:当在所述第一写入数据和所述第二写入数据在所述划分和存储步骤中通过所述第一清除操作和所述第二清除操作存储在所述第一存储区域和所述第二存储区域中之后,执行用于将所述第一存储区域和所述第二存储区域中的有效的所述第一写入数据和所述第二写入数据移动到所述非易失性存储器装置的另一存储区域的合并操作时,
第四检查步骤,检查存储在所述第一存储区域中的所述第一写入数据是否全部有效;以及
合并操作步骤,根据所述第四检查步骤的结果改变用于执行所述合并操作的方法。
20.根据权利要求19所述的操作方法,其中当在所述第二分类步骤中将具有设置为第一值的所述事务ID信息的所述第一写入数据和具有设置为第二值的所述事务ID信息的第一写入数据存储在所述第一存储区域之后执行所述合并操作时,
所述合并操作步骤包括将具有设置为所述第一值的所述事务ID信息的所述第一写入数据移动到所述非易失性存储器装置的第三存储区域,然后当在所述第四检查步骤检查到具有设置为所述第一值的所述事务ID信息的所述第一写入数据全部有效并且具有设置为所述第二值的所述事务ID信息的所述第一写入数据仅一部分有效时,将具有设置为所述第二值的所述事务ID信息的所述第一写入数据的有效数据和所述第二写入数据的有效数据移动到所述非易失性存储器装置的第四存储区域。
CN201910261130.3A 2018-07-06 2019-04-02 存储器系统及其操作方法 Active CN110688061B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0078695 2018-07-06
KR1020180078695A KR20200005229A (ko) 2018-07-06 2018-07-06 메모리 시스템 및 메모리 시스템의 동작방법

Publications (2)

Publication Number Publication Date
CN110688061A CN110688061A (zh) 2020-01-14
CN110688061B true CN110688061B (zh) 2023-07-14

Family

ID=69102018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910261130.3A Active CN110688061B (zh) 2018-07-06 2019-04-02 存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US11163689B2 (zh)
KR (1) KR20200005229A (zh)
CN (1) CN110688061B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102547950B1 (ko) * 2021-01-13 2023-06-27 삼성전자주식회사 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템
US20220283735A1 (en) * 2021-03-08 2022-09-08 Micron Technology, Inc. Enabling memory access transactions for persistent memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107643985A (zh) * 2016-07-21 2018-01-30 爱思开海力士有限公司 存储器系统及其操作方法
CN107851037A (zh) * 2015-07-22 2018-03-27 华为技术有限公司 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101734199B1 (ko) * 2010-12-29 2017-05-24 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9141531B1 (en) * 2012-12-14 2015-09-22 Western Digital Technologies, Inc. Data flush from cache to disk based on track limit
US9330749B1 (en) 2014-10-21 2016-05-03 Xilinx, Inc. Dynamic selection of output delay in a memory control device
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851037A (zh) * 2015-07-22 2018-03-27 华为技术有限公司 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议
CN107643985A (zh) * 2016-07-21 2018-01-30 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

Publication number Publication date
US11163689B2 (en) 2021-11-02
CN110688061A (zh) 2020-01-14
KR20200005229A (ko) 2020-01-15
US20200012603A1 (en) 2020-01-09

Similar Documents

Publication Publication Date Title
CN107643985B (zh) 存储器系统及其操作方法
CN107797882B (zh) 存储器系统及其操作方法
CN108304141B (zh) 存储器系统及其操作方法
CN107562649B (zh) 存储器系统及其操作方法
CN109947358B (zh) 存储器系统及其操作方法
CN107346213B (zh) 存储器系统及其操作方法
CN110825318B (zh) 控制器及其操作方法
CN108345550B (zh) 存储器系统
CN107450845B (zh) 存储器系统及其操作方法
CN108268212B (zh) 控制器及操作方法
US20180101454A1 (en) Memory system and operation method for the same
CN107346214B (zh) 存储器系统及其操作方法
CN110347330B (zh) 存储器系统及其操作方法
US20180074718A1 (en) Memory system and method for operating the same
CN108694138B (zh) 控制器及其操作方法
CN110716883B (zh) 存储器系统及其操作方法
CN108108308B (zh) 存储器系统及其操作方法
CN110308867B (zh) 存储器系统及其操作方法
US10019173B1 (en) Memory system and operating method thereof
CN110362270B (zh) 存储器系统及其操作方法
CN110727398B (zh) 存储器系统及其操作方法
CN107562653B (zh) 存储器系统及其操作方法
CN108389602B (zh) 存储器系统及其操作方法
CN110647290B (zh) 存储器系统及其操作方法
CN108733616B (zh) 包括多处理器的控制器及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant