CN114579485A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN114579485A CN114579485A CN202110782181.8A CN202110782181A CN114579485A CN 114579485 A CN114579485 A CN 114579485A CN 202110782181 A CN202110782181 A CN 202110782181A CN 114579485 A CN114579485 A CN 114579485A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- addresses
- address
- processor
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器系统,该存储器系统包括:存储器装置,包括包含多个平面的多个存储器管芯;以及控制器,被配置成将数据存储在多个条带中,每个条带包括不同平面的物理页面以及多个单位区域,该控制器包括:处理器,被配置成使写入命令在写入队列中排队,并且在多个条带之中选择将存储与写入命令相对应的数据组块的条带;以及条带化引擎,被配置成接收写入命令的排队顺序,并且通过参考查找表,将待布置数据组块的单位区域的地址输出到处理器,其中处理器被配置成控制存储器装置以将数据组块存储在所选择条带的与所输出的地址相对应的单位区域中。
Description
相关申请的交叉引用
本申请要求于2020年12月2日提交的申请号为10-2020-0166644的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本文所述的一个或多个实施例涉及一种包括存储器装置的存储器系统。
背景技术
许多便携式电子装置(例如,移动电话、数码相机、膝上型计算机等)使用包括用于存储数据的一个或多个存储器装置的存储器系统。存储器系统可用作主存储器装置或辅助存储器装置。一些存储器系统不具有移动部件,因此提供改进的稳定性、耐久性、高信息访问速度和低功耗。这些类型的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
根据一个或多个实施例,提供具有改进的访问性能的存储器系统。这些和/或其它实施例提供一种能够快速执行写入数据的条带化的存储器系统及其操作方法。还提供用于操作这些和/或其它类型的存储器系统的方法的一个或多个实施例。
根据实施例,一种存储器系统包括:存储器装置,包含包括多个物理页面的多个存储块、包括多个存储块的多个平面、包括多个平面的多个存储器管芯,多个平面被配置成彼此并行操作;以及控制器,被配置成将数据存储在多个条带中,每个条带包括不同平面的物理页面以及多个单位区域,该控制器包括:处理器,被配置成使写入命令在写入队列中排队,并且在多个条带之中选择将存储与写入命令相对应的数据组块的条带;以及条带化引擎,被配置成接收写入命令的排队顺序,并且通过参考查找表,将待布置数据组块的单位区域的地址输出到处理器,其中处理器被配置成控制存储器装置以将数据组块存储在所选择条带的与所输出的地址相对应的单位区域中。
根据实施例,一种操作存储器系统的方法,该存储器系统包含包括多个物理页面的多个存储块、包括多个存储块的多个平面和包括多个平面的多个存储器管芯,多个平面被配置成彼此并行操作,该方法包括:使写入命令在写入队列中排队;在多个条带之中选择将存储与写入命令相对应的数据组块的条带,多个条带中的每一个包括不同平面的物理页面以及多个单位区域;通过参考查找表,将与写入命令的排队顺序相对应的单位区域的地址确定为待布置数据组块的单位区域的地址;并且将数据组块存储在所选择条带的与所确定的地址相对应的单位区域中。
根据实施例,一种存储器系统包括:存储器装置,包含包括多个物理页面的多个存储块、包括多个存储块的多个平面和包括多个平面的多个存储器管芯,多个平面被配置成彼此并行操作;以及控制器,被配置成:将数据存储在多个条带中,每个条带包括不同平面的物理页面以及多个单位区域,使写入命令在写入队列中排队;在多个条带之中选择将存储与写入命令相对应的数据组块的条带;通过参考查找表,将与写入命令的排队顺序相对应的单位区域的地址确定为待布置数据组块的单位区域的地址;并且将数据组块存储在所选择条带的与所确定的地址相对应的单位区域中。
本公开的实施例可提供一种具有改进的访问性能的存储器系统及其操作方法。
本公开的实施例可提供一种能够快速执行写入数据的条带化的存储器系统及其操作方法。
从本公开实现的效果可不限于上述效果。本公开所属技术领域的普通技术人员可从下面的描述中清楚地理解其它未提及的效果。
附图说明
图1示出包括存储器系统的数据处理系统的实施例。
图2示出存储器管芯中的平面的实施例。
图3示出作为多层单元的示例提供的三层单元的阈值电压分布的实施例。
图4示出存储器装置的分层结构的示例。
图5A和图5B示出控制器的条带化操作的示例,并且图5C示出已经提出的一种类型的条带化操作。
图6示出控制器的实施例。
图7示出将数据组块布置在簇(cluster)中的方法的实施例。
图8A至图12B示出根据各种条带化模式的查找表的示例。
图13示出根据写入命令的控制器的操作的实施例。
图14示出根据清除命令的控制器的操作的实施例。
具体实施方式
下面将参照附图更详细地描述各个实施例。然而,本公开可以不同的形式实现,并且不应被解释为限于本文中阐述的实施例。相反,提供这些实施例以使本公开将是彻底且完整的,并且将本公开的范围充分地传达给本领域的技术人员。在整个公开中,相同的附图标记在本公开的各个附图和实施例中始终表示相同的部件。
图1是示出数据处理系统100的实施例的框图,数据处理系统100可包括可操作地联接到存储器系统110的主机102。主机102可包括各种便携式电子装置(例如,移动电话、MP3播放器、膝上型计算机等)或各种非便携式电子装置(例如,台式计算机、游戏机、电视(TV)、投影仪等)。
主机102可包括至少一个操作系统(OS),该OS管理和控制主机102的全部功能和操作,并且在一些情况下,可控制例如主机102和使用数据处理系统100或存储器系统110的用户之间的操作。OS可支持与数据处理系统100的预期目的和用户的使用相对应的功能和操作。例如,根据主机102的移动性,OS可被划分为通用OS和移动OS。例如,根据用户的环境,通用OS可被划分为个人OS和企业OS。
存储器系统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可例如集成到单个半导体装置中。在一个实施例中,控制器130和存储器装置150可集成为一个半导体装置以构成固态驱动器(SSD)。当存储器系统110用作SSD时,可提高连接到存储器系统110的主机102的操作速度。
在一个实施例中,控制器130和存储器装置150可集成为一个半导体装置以构成存储卡。存储卡的示例包括:个人计算机存储卡国际协会(PCMCIA)卡,紧凑式闪存(CF)卡,智能媒体(SM)卡,记忆棒,包括尺寸减小的MMC(RS-MMC)和微型MMC的多媒体卡(MMC),包括迷你SD卡、微型SD卡和SDHC卡的安全数字(SD)卡,以及通用闪存(UFS)装置。
存储器系统110的非限制性应用示例可包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或构成计算系统的各种组件中的一种。
存储器装置150可以是一组非易失性存储器装置,并因此,即使不供应电力,也可保留所存储的数据。存储器装置150可在编程操作中存储从主机102提供的数据,并且在读取操作中将所存储的数据提供到主机102。存储器装置150可包括多个存储块,多个存储块中的每一个可包括多个页面。页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是闪速存储器组。闪速存储器可具有例如三维(3D)堆叠结构。
控制器130可响应于来自主机102的请求而控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供到主机102,并且可将从主机102提供的数据存储到存储器装置150中。对于这种操作,控制器130可控制存储器装置150的读取操作、编程操作和擦除操作。
(由主机102向控制器130提供的)写入请求或读取请求可包括主机102中使用的逻辑地址。例如,该逻辑地址可以是在主机102的操作系统的文件系统中使用的逻辑块地址(LBA)。
可例如由不同于逻辑地址的物理地址来识别存储器装置150的存储器区域。在一个实施例中,可将不同的物理地址分配给存储器装置150的每个页面。控制器130可通过映射逻辑地址和物理地址来生成映射数据以便控制存储器装置150。控制器130可在内部存储器中存储基于逻辑地址的映射数据。例如,映射数据可指示与逻辑地址相对应的物理地址。
存储器装置150可包括多个存储器管芯,多个存储器管芯例如可通过多个通道CH1至CH4联接到控制器130。在图1中,联接到多个通道CH1至CH4的存储器管芯分别被识别为第一存储器管芯DIE1至第四存储器管芯DIE4。在一个实施例中,多个存储器管芯可通过多个通路联接到多个通道CH1至CH4。联接到每个通道的多个通路可被识别为第一通路WAY1至第四通路WAY4,例如,第一存储器管芯DIE1可通过第一通路WAY1至第四通路WAY4联接到第一通道CH1。控制器130可使用通道地址和通路地址来识别每个存储器管芯。在其它实施例中,可使用不同数量的管芯、通道和/或通路。
一个通道可顺序地将命令传送到联接到该通道的存储器管芯,或者可顺序地将数据从存储器管芯传送到控制器130。在一个实施例中,通过通道来接收命令的多个存储器管芯可同时执行命令操作。例如,参照图2描述每个存储器管芯的实施例。
图2是示出可被包括在每个存储器管芯中的平面300的配置的示例的电路图。图1的第一存储器管芯DIE1至第四存储器管芯DIE4中的每一个可包括至少一个平面。而且,图2示出一个存储块330。然而,在其它实施例中,平面300可包括多个存储块。在这种情况下,存储块330可以是多个存储块中的每一个的代表性示例。
参照图2,平面300可包括电压供应装置310、读取/写入电路320和存储块330。存储块330可包括联接到多个相应的位线BL0至BLm-1的多个单元串340。每列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管MC0至MCn-1可串联联接在漏极选择晶体管DST和源极选择晶体管SST之间。
在实施例中,存储器单元MC0至MCn-1中的每一个可通过能够存储多个位的数据信息的MLC来实现。单元串340中的每一个可电联接到多个位线BL0至BLm-1之中相应的位线。例如,如图2所示,第一单元串联接到第一位线BL0,并且最后的单元串联接到最后的位线BLm-1。(在图2中,“DSL”表示漏极选择线,“SSL”表示源极选择线,并且“CSL”表示公共源极线。)
图2示出NAND闪速存储器单元,但是在其它实施例中可使用不同类型的存储器单元。例如,存储器单元可以是NOR闪速存储器单元,或者是包括所组合的两种或更多种类型的存储器单元的混合闪速存储器单元。而且,在一个或多个实施例中,包括平面300的存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置,或者是包括作为电荷存储层的绝缘层的电荷撷取闪速(CTF)存储器装置。
平面300可进一步包括例如根据操作模式向字线提供电压(例如,编程电压、读取电压和通过电压)的电压供应装置310。电压供应装置310的电压生成操作可通过控制电路来控制。在控制电路的控制下,电压供应装置310根据需要可选择存储器单元阵列的存储块(或扇区)中的一个,可选择所选择的存储块的字线中的一个,并且可将字线电压提供到所选择的字线和未选择的字线。
平面300可包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可用作用于根据将被存储在存储器单元阵列中的数据来驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器接收将被存储在存储器单元阵列中的数据,并且可根据所接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PB)322至326。页面缓冲器322至326中的每一个可包括多个锁存器。
存储块330的存储器单元可联接到多个字线WL0至WLn-1。联接到一个字线的存储器单元可被称为物理页面。图2示出包括联接到字线WL1的存储器单元MC1的物理页面350。存储器单元可由电压供应装置310和读取/写入电路320以页面为单位进行访问。
一个存储器管芯可针对多个平面从通道顺序地接收命令。接收命令的多个平面可各自使用电压供应装置和读取/写入电路来同时执行命令操作。
根据可在一个存储器单元中存储的位的数量,存储器单元可被称为单层单元(SLC)或多层单元(MLC)。多层单元指代作为一个存储器单元可存储具有至少两个位的数据的存储器单元。例如,多层单元可包括三层单元(TLC)或四层单元(QLC)。
图3是示出作为多层单元的示例的三层单元的阈值电压分布的实施例的曲线图。当三个位被编程在三层单元中时,可在存储器单元中形成23(例如,八)个阈值电压分布中的任意一个。由于多个存储器单元之间的电学特性的细微差别,利用相同数据进行编程的存储器单元的阈值电压可形成阈值电压分布的某一范围。在三层单元的情况下(如图所示),可形成八个阈值电压分布P1至P8。八个阈值电压分布P1至P8可代表彼此不同的逻辑状态。例如,八个阈值电压分布P1至P8中的第一阈值电压分布P1可代表具有逻辑状态“111”的擦除状态。被编程在三层单元中的三个位可分别被称为最高有效位(MSB)、中间有效位(CSB)和最低有效位(LSB)。
在一个实施例中,存储器单元的八个阈值电压分布P1至P8可例如通过单个编程操作形成。在一个实施例中,电压供应装置310可执行编程操作和验证脉冲施加操作。编程操作可包括重复地执行用于迁移存储器单元的阈值电压分布的编程脉冲施加操作。验证脉冲施加操作可包括验证存储器单元的阈值电压是否对应于与将被编程的数据相对应的阈值电压分布。通过这些操作,可形成存储器单元的八个阈值电压分布P1至P8。用于一次形成与三个位相对应的多个阈值电压分布的编程操作可被称为单触发编程操作。
可例如使用多个读取电压R1至R7来识别存储器单元具有哪个逻辑状态。在一个实施例中,当施加(例如,具有高于存储器单元的阈值电压的电平的)读取电压时,存储器单元可导通,并且当施加(例如,具有低于存储器单元的阈值电压的电平的)读取电压时,存储器单元可关断。可通过感测在存储器单元导通或关断时在位线中形成的电流来读取数据。
在图3的示例中,可通过施加不同的读取电压来读取三个位中的每一个位。例如,电压供应装置310可施加第一读取电压R1和第五读取电压R5来读取MSB。通过施加第一读取电压R1和第五读取电压R5,可将MSB具有值“1”的编程状态P1、P6、P7和P8与MSB具有值“0”的编程状态P2至P5区分开。类似地,电压供应装置310可施加第二读取电压R2、第四读取电压R4和第六读取电压R6来读取CSB,并且可施加第三读取电压R3和第七读取电压R7来读取LSB。
在一些实施例中,三层单元中存储的三个位不是通过单触发编程操作一次编程的。在这种情况下,可执行多个操作,并且电压供应装置310可能需要通过施加总共七个读取电压R1至R7来识别所有的MSB、CSB和LSB以读取三个位。
一个物理页面中的三层单元中的每一个可包括MSB、CSB和LSB。一个物理页面的MSB、CSB和LSB可分别作为子页面来处置。一个物理页面中的子页面可分别被称为MSB页面、CSB页面和LSB页面。
在一个实施例中,控制器130可使针对多个存储器管芯的命令交错,然后可将交错后的命令提供到存储器装置150。使命令交错可指代控制器130确定命令提供顺序使得命令可被顺序地提供到多个存储器管芯的情况。因为多个存储器管芯可基于交错后的命令而同时操作,所以可提高存储器系统110的吞吐量。
为了提高存储器系统110的吞吐量,控制器130可基于预定大小来收集将被编程的数据,使得多个物理页面可被同时编程,并且数据可布置在多个物理页面中。关于参照图4描述的存储器装置150的分层结构,给出了根据一个实施例的如何可同时对物理页面进行编程的解释。
图4是帮助解释存储器装置150的分层结构的一个实施例的示图。该分层结构包括联接到多个通道CH1至CH4和多个通路WAY1至WAY4的多个存储器管芯DIE1至DIE4。图4中示出的多个通道CH1至CH4、多个通路WAY1至WAY4和多个存储器管芯DIE1至DIE4可对应于例如参照图1描述的那些。
多个存储器管芯DIE1至DIE4中的每一个可包括多个平面。在图4中,仅示出第一存储器管芯DIE1中的多个平面PLANE1至PLANE4,并且没有示出可处于第二存储器管芯DIE2至第四存储器管芯DIE4中的多个平面。多个平面中的每一个可对应于参照图2描述的平面300。
多个平面中的每一个可包括多个存储块BLK1、BLK2、……。多个存储块BLK1、BLK2、……中的每一个可包括多个物理页面PHY_PAGE。参照图4,一个物理页面PHY_PAGE可包括作为子页面的MSB页面、CSB页面和LSB页面。存储器单元可以存储块为单位进行擦除,并且可以物理页面为单位进行访问。
一个子页面可包括一个或多个簇CLUSTER。在一个实施例中,簇可包括将由主机102访问的最小单位的存储器区域。例如,主机102可以4KB为单位来识别和访问存储器系统110。主机102可以4KB为单位来向数据分配逻辑地址。当存储器系统110的一个子页面能够存储8KB的数据时,一个子页面中可包括两个簇。可被存储在一个簇中的数据可被称为例如数据组块(data chunk)。
为了容易地对针对多个存储器管芯的命令进行交错,控制器130可将可同时访问的存储块进行分组,并且可将分组后的存储块作为超级块来处置。例如,控制器130可通过将存储块进行分组来生成超级块,该存储块中的每一个是存储器装置150中的每个平面的一个存储块。
图4示出第一虚拟超级块VSBN1和第二虚拟超级块VSBN2的示例,在第一虚拟超级块VSBN1中,从所有或预定数量的平面中对具有相同标识符的第一存储块BLK1进行分组,在第二虚拟超级块VSBN2中,对具有相同标识符的第二存储块BLK2进行分组。图4所示的超级块被称为虚拟超级块的原因在于超级块可包括虚拟化的存储块。例如,第一存储块BLK1可指示平面中具有第一物理地址的第一物理块,但是当第一物理块是坏块时,可指示用于替换该坏块的另一存储块。
控制器130可将(在超级块中的多个物理页面之中的)可被同时访问的页面作为条带(stripe)来处置。控制器130可以条带为单位来控制存储器装置150的编程操作和读取操作。例如,控制器130可将超级块中的多个物理页面之中可从联接到不同通道的存储器管芯同时访问的物理页面进行分组。图4示出其中物理页面被分组的条带400的示例,其中每个物理页面是联接到第四通路WAY4的第一存储器管芯DIE1至第四存储器管芯DIE4中的平面中的每一个的一个物理页面。
控制器130可收集将被写入的数据组块,并且将该数据组块布置在条带中的多个簇中。在一个实施例中,控制器130可通过将数据组块布置在多个簇中来使单触发编程类型的写入命令交错。控制器130将多个数据组块布置在多个簇中使得数据组块可被并行编程的操作可被称为条带化操作。当完成条带化操作时,控制器130可将针对条带的编程命令提供到存储器装置150。
而且,在一个实施例中,物理地址可包括高位地址(upper address)和低位地址(lower address)。高位地址可指定条带。存储器装置150中的条带可由超级块地址-字线地址-通路地址来识别。例如,条带400可由VSBN1-WL1-WAY4的地址来识别。低位地址可指定条带中的簇。条带中的多个簇可由子页面地址-通道地址-平面地址-簇地址来识别。控制器130可使用低位地址来指定每个数据组块将被存储到的簇。
图5A至图5C是帮助解释根据一个或多个实施例的控制器130的条带化操作的示例的示图。
图5A示出基于单触发的条带化方案和基于交错的条带化方案的示例。存储器系统110的写入操作的吞吐量和读取操作的吞吐量可根据控制器130使数据组块条带化的方案而变化。
在图5A中,示出一个条带400以及条带400中的多个簇。在该示例中,阴影簇代表其中已经布置了数据组块的簇,并且没有图案的簇代表其中没有布置数据组块的簇。控制器130可完成数据组块在条带400的第一存储器管芯DIE1的LSB页面中的布置,然后可确定将在其中布置接下来将被写入的数据组块的簇。
而且,图5A示出基于单触发的条带化中的接下来的数据组块的布置502以及基于管芯交错的条带化中的接下来的数据组块的布置504。在一个实施例中,基于单触发的条带化方案可指代使数据组块条带化使得连续的数据组块可被单触发编程的方案。例如,控制器130可开始首先在第一存储器管芯DIE1的CSB页面中布置接下来的数据组块。在完成数据组块在第一存储器管芯DIE1中的布置之后,控制器130可在第二存储器管芯DIE2至第四存储器管芯DIE4中顺序地布置数据组块。
在控制器130使用基于单触发的条带化方案的情况下,当数据组块在一个存储器管芯中包括的24个簇中的布置完成时,控制器130可控制针对该存储器管芯的单触发编程操作。如果甚至在数据组块在剩余存储器管芯中的布置完成之前完成单触发编程操作,则控制器130可从控制器130的缓冲器中移除写入的数据。因此,将被编程的数据可能占据缓冲器的相对较小的部分。然而,为了读取被连续编程的数据组块,数据组块被编程到的存储器管芯可能执行多个(例如,三个)读取操作来读取该存储器管芯中包括的LSB页面、CSB页面和MSB页面。因为其它管芯处于空闲状态,读取操作的吞吐量可能会降低。
基于交错的条带化方案可包括使数据组块条带化使得连续的数据组块在多个管芯上交错的方案。例如,控制器130可开始首先在第二存储器管芯DIE2的LSB页面中布置接下来的数据组块。在完成数据组块在条带400的所有存储器管芯的LSB页面中的布置之后,控制器130可在CSB页面和MSB页面中顺序地布置数据组块。在控制器130使用基于交错的条带化方案的情况下,因为当读取连续编程的数据时,多个存储器管芯可同时执行读取操作,所以可提高读取操作的吞吐量。然而,将被编程的数据可能占据缓冲器的相对较大的部分。
控制器130可根据将被写入的数据的类型选择多种条带化方案中的任意一种。例如,控制器130可执行基于单触发的条带化以写入主机数据,并且可执行基于交错的条带化以写入垃圾收集数据。
图5B是示出基于奇偶校验组块的存储的是否跳过特定存储器区域的示例的示图。为了存储与数据组块相关的奇偶校验组块,在一些簇中,控制器130可跳过数据组块在特定条带中的一些存储器区域中的布置。
为了确保存储器装置150中存储的数据的可靠性,控制器130可将用于(多个簇中存储的)数据组块的奇偶校验组块存储在另一簇中。例如,控制器130可执行将奇偶校验组块存储在簇中的芯片猎杀(chipkill)操作,该芯片猎杀操作可通过对多个数据组块执行逻辑(例如,XOR)操作来启动。当在多个数据组块中的任意一个中发生不可校正的错误时,可通过对剩余数据组块和奇偶校验组块执行逻辑(例如,XOR)操作来恢复已经发生不可校正的错误的数据组块。
控制器130可生成一个或多个条带中存储的数据组块的奇偶校验组块,并且可将奇偶校验组块存储在条带之中任意一个条带的预定区域中。例如,预定区域可以是任意一个条带中的簇之中的第四存储器管芯DIE4的第四平面PLANE4中的簇。
图5B示出在数据组块在条带400的第四存储器管芯DIE4的第三平面PLANE3中的布置完成之后接下来的数据组块的布置的示例。当条带400不存储奇偶校验组块时,控制器130可将数据组块布置在第四平面PLANE4中。控制器130将数据组块布置在第四平面PLANE4中的情况被示出为接下来的数据组块布置522。
当条带400将奇偶校验组块存储在第四平面PLANE4中时,控制器130可跳过第四平面PLANE4,并且可将数据组块布置在下一顺序的管芯或子页面中。控制器130跳过第四平面PLANE4的情况被示出为接下来的数据组块布置524。
在已提出的一些方法中,为了允许控制器将每个数据组块布置在簇中,执行大量的计算。每次控制器布置一个数据组块时,控制器考虑以下全部:其中布置先前数据组块的簇、数据组块的条带化方案以及是否将存储奇偶校验组块。
图5C是帮助解释根据前述提出的方法的数据组块布置方法的示例的示图。在该方法中,仅出于说明的目的,控制器可对应于控制器130。
在操作S542,控制器130可对针对新数据组块的具有逻辑地址(LA)的命令进行排队,并且缓冲该数据组块。控制器130可根据其中布置先前数据组块的簇来确定其中将布置新数据组块的簇。
在操作S544,控制器130可确定先前数据组块是否布置在第四存储器管芯DIE4的簇中。当先前数据组块未布置在第四存储器管芯DIE4的簇中时,可考虑先前数据组块的位置以及当前数据组块的条带化方案来确定其中将布置新数据组块的簇(S546至S556)。当先前数据组块布置在第四存储器管芯DIE4的簇中时,可考虑先前数据组块的位置、当前数据组块的条带化方案以及是否将存储奇偶校验组块来确定其中将布置新数据组块的簇(S558至S578)。
在操作S546,控制器130可确定先前数据组块是否布置在第四平面PLANE4中包括的页面的最后的簇中。当先前数据组块布置在第四平面PLANE4的最后的簇中时,在操作S550,控制器130可考虑当前数据组块的条带化方案是基于交错的方案还是基于单触发的方案。在基于单触发的方案的情况下,在操作S552,控制器130可考虑先前数据组块是否布置在最后的子页面中。基于该结果,控制器130可将新数据组块布置在下一子页面中(S554),或者将新数据组块布置在下一存储器管芯中(S556)。在基于交错的方案的情况下,控制器130可将新数据组块布置在下一存储器管芯中(S556)。
在操作S548,当先前数据组块未布置在第四平面PLANE4的最后的簇中时,控制器130可将新数据组块布置在先前数据组块的下一簇或平面中。
在操作S558,控制器130可确定先前数据组块是否布置在第三平面PLANE3中包括的页面的最后的簇中。
在操作S560,当先前数据组块布置在第三平面PLANE3的最后的簇中时,控制器130可确定是否将奇偶校验组块存储在第四平面PLANE4中。
在操作S562,当奇偶校验组块未被存储在第四平面PLANE4中时,控制器130可将新数据组块布置在第四平面PLANE4中。
在操作S564,当奇偶校验组块被存储在第四平面PLANE4中时,控制器130可考虑当前数据组块的条带化方案是基于交错的方案还是基于单触发的方案。
在操作S566和操作S572,控制器130可考虑先前数据组块是否布置在最后的子页面中。基于该结果,控制器130可将接下来的数据组块布置在下一子页面中(S568)、下一条带中(S570)或第一存储器管芯DIE1中(S574)。
当先前数据组块布置在第四平面PLANE4的最后的簇中(S576中的“是”)时,控制器130可排除奇偶校验组块布置在第四平面PLANE4中的情况,并且可通过执行操作S564至S574来确定接下来的数据组块的位置。
在操作S578,当先前数据组块布置在第一平面PLANE1或第二平面PLANE2中或者布置在第三平面PLANE3或第四平面PLANE4的除最后的簇之外的簇中(S576中的“否”)时,控制器130可将新数据组块布置在先前数据组块的下一簇或平面中(S578)。
虽然在图5C中未示出,但是可能存在需要将虚拟数据存储在其中未布置数据组块的簇中并且需要将条带编程到存储器装置150的情况。这可在控制器130接收主机清除命令时发生,并且甚至在所有数据组块未在条带中都被条带化时发生。而且,为了确定用于存储虚拟数据的位置,控制器130考虑以下全部:先前数据组块的布置、当前数据组块的条带化方案以及是否将存储奇偶校验组块。
当执行大量计算以使控制器130将数据组块中的每一个条带化时,用于存储器系统110的写入操作的时间可能增加。因此,控制器130将利用少量计算来执行条带化,以便改进存储器系统110的写入性能。
根据本公开的实施例,控制器130可存储查找表,查找表用于确定条带中包括的簇之中将布置数据组块的簇。例如,控制器130可对写入命令的排队顺序进行计数,并且基于查找表和排队顺序来确定其中将布置与写入命令相对应的数据组块的簇。而且,在一个实施例中,控制器130可例如根据数据组块的条带化方案以及是否将存储奇偶校验组块而存储彼此不同的多个查找表。
当选择多个查找表之中的一个时,控制器130可通过仅对写入命令的排队顺序进行计数来确定其中将布置数据组块的簇。因为控制器130不需要针对根据其中布置先前数据组块的簇的地址而变化的各种情况执行计算(以便确定将在其中布置数据组块的簇),所以可减少用于存储器系统110的写入操作的时间。
图6是示出控制器130的结构的实施例的示图,控制器130可包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、存储器I/F 142和存储器144。
参照图6,主机I/F 132可被配置成处理主机102的命令和数据,并且可通过一个或多个接口协议与主机102通信。示例包括通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。主机I/F 132可使用指令(例如,可被称为主机接口层(HIL)的固件)来驱动以便与主机交换数据。
存储器I/F 142可用作接口连接控制器130和存储器装置150的存储器/存储接口,以便允许控制器130响应于来自主机102的请求而控制存储器装置150。当存储器装置150是闪速存储器(例如,NAND闪速存储器)时,存储器I/F 142可在处理器134的控制下生成用于存储器装置150的控制信号并处理将被提供至存储器装置150的数据。存储器I/F 142可用作处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。例如,存储器I/F 142可支持控制器130和存储器装置150之间的数据传送。
存储器I/F 142可通过被称为闪存接口层(FIL)的固件来驱动,以便与存储器装置150交换数据。
处理器134可通过驱动指令(例如,固件)来控制存储器系统110的全部操作。该固件可以是例如闪存转换层(FTL)136。处理器134可以例如是微处理器或中央处理单元(CPU)。处理器134可以驱动FTL 136,并且执行与从主机接收的请求相对应的前台操作。例如,处理器134可响应于来自主机的写入请求而控制存储器装置150的写入操作,并且响应于来自主机的读取请求而控制存储器装置150的读取操作。
控制器130可通过例如微处理器或CPU的处理器134对存储器装置150执行后台操作。例如,对存储器装置150执行的后台操作可包括垃圾收集(GC)操作、损耗均衡(WL)操作、映射清除操作或坏块管理操作。
存储器144可用作存储器系统110和控制器130的工作存储器,并且可存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求来控制存储器装置150执行读取操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供到主机102,并且将来自主机102的数据存储到存储器装置150。存储器144可存储用于控制器130和存储器装置150以便执行这些操作的数据。
存储器144可通过例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实现。存储器144可处于控制器130的内部或外部。图6例示了存储器144处于控制器130内部。在实施例中,存储器144可通过具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器来实现。
而且,存储器144可存储用于对写入请求进行排队的写入队列146和用于对所排队的写入请求进行条带化的条带化信息148。条带化信息148可包括至少一个查找表(LUT),该查找表根据将数据组块条带化的顺序来指示簇的地址。存储器144可进一步包括用于缓冲与写入请求相对应的数据的缓冲器。
响应于处理器134的请求,条带化引擎138可将待写入的数据组块布置在条带的簇中。条带化引擎138可参考条带化信息148,以便将数据组块布置在簇中。
图7是帮助解释用于将数据组块布置在簇中的方法的实施例的示图。在图7中,示出控制器130的处理器134、条带化引擎138和存储器144。处理器134、条带化引擎138和存储器144可对应于例如参照图6描述的那些。
写入命令可在写入队列146中排队,并且可包括从主机102接收的主机写入命令和在控制器130中生成的内部写入命令。内部写入命令的示例是可伴随处理器134的垃圾收集操作的GC(垃圾收集)写入命令。
而且,图7示出分别对主机写入命令和GC写入命令进行排队的主机队列HQ和GC队列GQ。当从主机102接收写入命令时,主机接口132可根据与写入命令相关的数据的大小将写入命令分割成多个主机写入命令,并且可使分割后的主机写入命令在主机队列HQ中排队。分割后的主机写入命令中的每一个可以是例如针对一个数据组块的写入命令,并且可与一个逻辑地址相关。而且,图7示出分别与在主机队列HQ中排队的主机写入命令相关的逻辑地址LA1、LA2和LA3。
处理器134可使GC写入命令在GC队列GQ中排队。如同主机写入命令,GC写入命令可以是针对一个数据组块的写入命令,并且可与一个逻辑地址相关。图7示出分别与在GC队列GQ中排队的GC写入命令相关的逻辑地址LA11、LA12和LA13。
处理器134可选择其中将存储与在主机队列HQ中排队的主机写入命令相对应的主机数据组块的条带。为了确定所选择条带中的、将在其中布置与主机写入命令相关的数据组块的簇,处理器134可向条带化引擎138提供关于主机写入命令在写入队列146中排队的排队顺序的信息。例如,可根据主机写入命令在主机队列HQ中排队的顺序来进行上述确定。
条带中的、将在其中布置数据组块的簇可由参照图4描述的物理地址的预定(例如,低位)地址来识别。例如,条带化引擎138可基于从处理器134获得的排队顺序信息来确定主机数据组块的低位地址,然后可向处理器134提供所确定的低位地址。处理器134可基于低位地址和指定所确定的条带的高位地址来确定主机数据组块的物理地址。在一个实施例中,条带中的、将在其中布置数据组块的簇可由物理地址的、不同于低位地址的另一地址或部分来识别。
在一个实施例中,即使在对应于GC写入命令的GC数据组块在GC队列GQ中排队的情况下,处理器134也可确定将在其中存储GC数据组块的条带。处理器134可通过向条带化引擎138提供排队顺序信息来获得GC数据组块的低位地址。处理器134可基于低位地址和指定所确定的条带的高位地址来确定GC数据组块的物理地址。
处理器134可通过映射(来自主机102的)数据组块的逻辑地址和所确定的物理地址来生成映射数据。处理器134可将所生成的映射数据更新到存储器144。
当条带化信息148包括多个查找表时,条带化引擎138可选择查找表中的一个,并且可通过参考所选择的查找表来确定数据组块的低位地址。处理器134可将条带化模式信息提供到条带化引擎138,使得条带化引擎138可选择查找表。例如,处理器134可基于将被条带化的数据组块的类型以及奇偶校验组块是否将被插入到条带中来选择条带化模式。条带化引擎138可基于条带化模式来选择查找表。
根据示例实施方案,条带化引擎138可由专用硬件电路来实施。当基于硬件的条带化引擎138执行数据组块的条带化时,可以转移(offload)处理器134的地址映射操作。
作为比较,如果上面参照图5C的提出的方法描述的计算由基于硬件的条带化引擎138执行,则硬件的逻辑门的数量可能增加,从而增加存储器系统110的电路面积。进一步地,为了确定数据组块的低位地址,条带化引擎138需要确定条带化方案,并且基于所确定的条带化方案和先前布置的数据组块的低位地址来执行参照图5C描述的计算。因此,存储器系统110的功耗量可能增加。另外,如果条带化引擎138由硬件实施,则难以改变固定的条带化策略。
根据实施例,条带化引擎138可由硬件电路实施,该硬件电路能够执行基于来自处理器134的条带化模式信息从多个查找表之中选择任意一个的计算,以及执行通过参考所选择的查找表根据来自处理器134的排队顺序信息输出低位地址的计算。当条带化引擎138通过参考存储器144中存储的查找表而输出低位地址时,可减少用于实施条带化引擎138的逻辑门的数量。而且,存储器系统110的功耗量可以降低。此外,可通过改变存储器144中存储的查找表而以灵活和有效的方式改变条带化策略。
图8A至图12B示出对应于各种条带化模式的查找表的实施例。在这些实施例的一个或多个中,可根据条带的存储器单元层级、条带化方案以及是否将插入奇偶校验组块来确定条带化方法。
图8A和图8B示出根据实施例的第一条带化模式和第一查找表800。图8A示出在第一条带化模式下数据组块在一个条带400中的簇中布置的顺序。例如,当三层单元条带通过基于交错的条带化方案被条带化并且奇偶校验组块未被插入到该条带中时,可选择第一条带化模式。
连续的数据组块可在条带400的具有相同子页面地址的簇中顺序地布置。当数据组块布置在这些簇中时,数据组块可布置在具有下一子页面地址的簇中。因为未插入奇偶校验组块,所以数据组块可一直布置到第四存储器管芯DIE4的第四平面PLANE4。在图8A的示例中,第一至第32数据组块可首先布置在LSB页面中,第33至第64数据组块可布置在CSB页面中,并且第65至第96数据组块可布置在MSB页面中。
当数据组块在条带400的一个存储器管芯中的簇中的布置完成时,处理器134可控制该存储器管芯以对这些簇执行单触发编程操作。在图8A的示例中,当第72数据组块的布置完成时,数据组块可被清除到第一存储器管芯DIE1。类似地,当第80、第88和第96数据组块的布置完成时,数据组块可被清除到第二、第三和第四存储器管芯DIE2、DIE3和DIE4。当存储器管芯的编程操作完成时,可从写入队列146中移除相关的写入命令。
图8B示出根据实施例的对应于第一条带化模式的第一查找表800。第一查找表800代表第一条带化模式下的根据数据组块的排队顺序的低位地址。低位地址可由三个子页面地址、四个通道地址、四个平面地址和两个簇地址来识别。
随着第一查找表800中排队顺序增加,对应于排队顺序的簇地址可以增加。当簇地址在达到最大值之后被初始化时,平面地址可以增加。当平面地址在达到最大值之后被初始化时,对应于排队顺序的存储器管芯地址可以增加,并且当存储器管芯地址在达到最大值之后被初始化时,对应于排队顺序的子页面地址可以增加。
当从处理器134接收第一条带化模式信息和数据组块的排队顺序时,条带化引擎138可通过参考第一查找表800来确定数据组块的低位地址,并且可向处理器134提供低位地址。例如,参照图8A,第25数据组块可布置在第四存储器管芯DIE4的第一平面PLANE1的LSB页面的第一簇中。当条带化引擎138在第一条带化模式下操作时,如果从处理器134接收到数据组块的排队顺序“25”,则条带化引擎138可通过参考第一查找表800向处理器134提供包括SUBPAGE=1、CH=4、PLANE=1和CLUSTER=1的低位地址。
当从处理器134接收的排队顺序是第一查找表800的最后的排队顺序时,条带化引擎138可通知处理器134该排队顺序是最后的排队顺序,同时向处理器134提供对应于该排队顺序的低位地址。例如,当从处理器134接收到数据组块的排队顺序“96”时,条带化引擎138可通知处理器134相应的排队顺序是最后的排队顺序,同时通过参考第一查找表800向处理器134提供包括SUBPAGE=3、CH=4、PLANE=4和CLUSTER=2的低位地址。处理器134可响应于该通知而初始化排队顺序,并且可更新高位地址,使得数据组块可被布置在下一条带中。
根据实施方案示例,子页面地址可在第一查找表800中被表示为2位数据。SUBPAGE=1可指定LSB页面,SUBPAGE=2可指定CSB页面,并且SUBPAGE=3可指定MSB页面。为了清楚地区分由二进制数表示的物理地址中的高位地址和低位地址,可不使用并且可跳过对应于SUBPAGE=4的子页面地址。
图9A和图9B示出根据实施例的第二条带化模式和第二查找表900。图9A示出在第二条带化模式下数据组块在一个条带400中的簇中布置的顺序。例如,当三层单元条带通过基于交错的条带化方案被条带化并且奇偶校验组块被插入到该条带中时,可选择第二条带化模式。
在被预定插入奇偶校验组块的簇中,例如,在第四存储器管芯DIE4的第四平面PLANE4中的簇中,可跳过数据组块的布置。连续的数据组块可布置在具有相同子页面地址的簇之中除了预定簇之外的簇中。
在图9A的示例中,第一至第30数据组块可首先布置在LSB页面中,第31至第60数据组块可布置在CSB页面中,并且第61至第90数据组块可布置在MSB页面中。
在图9A的示例中,当第68数据组块的布置完成时,数据组块可被清除到第一存储器管芯DIE1。类似地,当第76和第84数据组块的布置完成时,数据组块可被清除到第二和第三存储器管芯DIE2和DIE3。
当第90数据组块的布置完成时,处理器134可通过对布置在条带中的数据组块和先前条带化的数据组块执行逻辑计算来生成奇偶校验组块,并且可将奇偶校验组块布置在第四存储器管芯DIE4的第四平面PLANE4中。例如,处理器134可通过对条带中的数据组块之中与LSB页面的第一簇相对应的数据组块执行逻辑(例如,XOR)计算来生成奇偶校验组块(图中由“P”表示),并且可将所生成的奇偶校验组块布置在第四存储器管芯DIE4的第四平面PLANE4的LSB页面的第一簇中。当数据组块和奇偶校验组块的布置完成时,数据组块和奇偶校验组块可被清除到第四存储器管芯DIE4。
图9B示出根据实施例的对应于第二条带化模式的第二查找表900。第二查找表900代表第二条带化模式下的根据数据组块的排队顺序的低位地址。低位地址可由三个子页面地址、四个通道地址、四个平面地址和两个簇地址来识别。随着第二查找表900中的排队顺序增加,簇地址、平面地址、存储器管芯地址和子页面地址可与第一查找表800类似地增加。然而,在第二查找表900中,可跳过第四存储器管芯DIE4的第四平面PLANE4中包括的用于存储奇偶校验组块的簇。
图10A和图10B示出根据实施例的第三条带化模式和第三查找表1000。图10A示出在第三条带化模式下数据组块在一个条带400中的簇中布置的顺序。例如,当三层单元条带通过基于单触发的条带化方案被条带化并且奇偶校验组块未被插入到该条带中时,可选择第三条带化模式。
连续的数据组块可在条带400的簇之中的一个存储器管芯中的簇中顺序地布置。当数据组块布置在这些簇中时,数据组块可布置在下一存储器管芯中的簇中。在图10A的示例中,第一至第24数据组块可首先布置在第一存储器管芯DIE1中。当第24数据组块的布置完成时,数据组块可被清除到第一存储器管芯DIE1。类似地,第25至第48数据组块可布置在第二存储器管芯DIE2中,第49至第72数据组块可布置在第三存储器管芯DIE3中,并且第73至第96数据组块可布置在第四存储器管芯DIE4中。当相应的第48、第72和第96数据组块的布置完成时,数据组块可被清除到第二、第三和第四存储器管芯DIE2、DIE3和DIE4。当存储器管芯的编程操作完成时,可从写入队列146中移除相关的写入命令。
图10B示出根据实施例的对应于第三条带化模式的第三查找表1000。第三查找表1000代表第三条带化模式下的根据数据组块的排队顺序的低位地址。低位地址可由三个子页面地址、四个通道地址、四个平面地址和两个簇地址来识别。
随着第三查找表1000中排队顺序增加,对应于排队顺序的簇地址可以增加。当簇地址在达到最大值之后被初始化时,平面地址可以增加。当平面地址在达到最大值之后被初始化时,对应于排队顺序的子页面地址可以增加,并且当子页面地址在达到最大值之后被初始化时,对应于排队顺序的存储器管芯地址可以增加。
图11A和图11B示出根据实施例的第四条带化模式和第四查找表1100。图11A示出在第四条带化模式下数据组块在一个条带400中的簇中布置的顺序。例如,当三层单元条带通过基于单触发的条带化方案被条带化并且奇偶校验组块被插入到该条带中时,可选择第四条带化模式。
在被预定插入奇偶校验组块的簇中,例如,在第四存储器管芯DIE4的第四平面PLANE4中的簇中,可跳过对数据组块的布置。连续的数据组块可布置在相同存储器管芯中的簇之中除了预定簇之外的簇中。
当第90数据组块的布置完成时,处理器134可通过对在条带中布置的数据组块和先前条带化的数据组块执行逻辑计算来生成奇偶校验组块,并且可将奇偶校验组块布置在第四存储器管芯DIE4的第四平面PLANE4中。
图11B示出根据实施例的对应于第四条带化模式的第四查找表1100。第四查找表1100代表第四条带化模式下的根据数据组块的排队顺序的低位地址。低位地址可由三个子页面地址、四个通道地址、四个平面地址和两个簇地址来识别。第四查找表1100的根据排队顺序的低位地址可与第三查找表1000的根据第一至第90数据组块的排队顺序的低位地址相同。然而,第四查找表1100中可跳过用于存储奇偶校验组块的簇。
图12A和图12B示出根据实施例的第五条带化模式和第五查找表1200。图12A示出在第五条带化模式下数据组块在单层单元条带500中的簇中布置的顺序。例如,当对单层单元条带进行条带化时,可选择第五条带化模式。
连续的数据组块可在一个存储器管芯中的簇中顺序地布置。当数据组块布置在这些簇中时,数据组块可布置在下一存储器管芯中的簇中。
在图12A的示例中,第一至第八数据组块可首先布置在第一存储器管芯DIE1中。当第八数据组块的布置完成时,数据组块可被清除到第一存储器管芯DIE1。类似地,第九至第十六数据组块可布置在第二存储器管芯DIE2中,第十七至第24数据组块可布置在第三存储器管芯DIE3中,并且第25至第32数据组块可布置在第四存储器管芯DIE4中。当相应的第十六、第24和第32数据组块的布置完成时,数据组块可被清除到第二、第三和第四存储器管芯DIE2、DIE3和DIE4。当存储器管芯的编程操作完成时,可从写入队列146中移除相关的写入命令。
图12B示出根据实施例的对应于第五条带化模式的第五查找表1200。第五查找表1200代表第五条带化模式下的根据数据组块的排队顺序的低位地址。因为单层单元页面可每存储器单元存储一位数据,所以单层单元页面可被作为具有一个子页面来处置。低位地址可由一个子页面地址、四个通道地址、四个平面地址和两个簇地址来识别。
第五查找表1200中的根据数据组块的排队顺序的低位地址可对应于在图12A中示出相同数据组块的排队顺序的簇。随着第五查找表1200中排队顺序增加,对应于排队顺序的簇地址可以增加。当簇地址在达到最大值之后被初始化时,平面地址可以增加。当平面地址在达到最大值之后被初始化时,对应于排队顺序的存储器管芯地址可以增加。
如上参照图8A至图9B所述,当从处理器134接收关于条带化模式和数据组块的排队顺序的信息时,条带化引擎138可通过参考对应于条带化模式的查找表来确定数据组块的低位地址,并且可向处理器134提供低位地址。
如上参照图8A所述,当从处理器134接收的排队顺序是查找表的最后的排队顺序时,条带化引擎138可通知处理器134该排队顺序是最后的排队顺序,并且可向处理器134提供对应于该排队顺序的低位地址。处理器134可响应于该通知而初始化排队顺序,并且更新高位地址,使得数据组块可被布置在下一条带中。
第一至第五查找表800、900、1000、1100和1200不限于包括与数据组块的所有排队顺序相对应的低位地址。例如,查找表中的每一个可仅包括与以下数据组块的排队顺序相对应的低位地址:该数据组块对应于每个存储器管芯的每个子页面中的第一平面PLANE1的第一簇。对应于剩余排队顺序的低位地址可通过从查找表中的低位地址执行加法计算来导出。
在图9A的示例中,仅与排队顺序之中的一些排队顺序“1”、“9”、“17”、“25”、“31”和“39”相对应的低位地址可被存储在查找表中。当在第二条带化模式下从处理器134接收到针对与排队顺序“30”相对应的低位地址的请求时,条带化引擎138可在查找表中搜索排队顺序“25”的低位地址SUBPAGE=1、CH=4、PLANE=1和CLUSTER=1,并且可通过从该低位地址执行加法计算来向处理器134提供SUBPAGE=1、CH=4、PLANE=3和CLUSTER=2。当接收到针对与排队顺序“31”相对应的低位地址的请求时,条带化引擎138可在查找表中搜索排队顺序“31”的低位地址SUBPAGE=2、CH=1、PLANE=1和CLUSTER=1,并且可向处理器134提供搜索到的低位地址。
图13示出可由控制器130根据写入命令部分地或全部执行的方法的实施例。在操作S1302,处理器134可将具有逻辑地址的写入命令排队,并且可在存储器144中对与写入命令相关的数据组块进行缓冲。写入命令可以是主机写入命令或后台写入命令,例如GC写入命令。
在操作S1304,处理器134可确定数据组块将被编程到的存储器单元层级以及条带化方案。例如,当数据组块对应于系统数据或需要可靠性的数据时,或者当以单层单元模式执行编程操作时,处理器134可将存储器单元层级确定为单层单元。在其它情况下,处理器134可将存储器单元层级确定为多层单元。
虽然上面通过将多层单元是三层单元的情况作为示例描述了图8A至图11B,但是在另一实施例中,多层单元可以是不同于三层单元的另一类型。
当数据组块是主机数据组块时,处理器134可将条带化方案确定为基于交错的条带化方案,并且当数据组块是GC数据组块时,可将条带化方案确定为基于单触发的条带化方案。
在操作S1306,处理器134可基于数据组块的存储器单元层级以及条带化方案来确定数据组块将被编程到的条带。例如,处理器134可针对单层单元模式中的编程操作和多层单元模式中的编程操作分配不同的开放超级块。作为针对当前编程操作分配的超级块的开放超级块可指代其中尚未编程所有条带的超级块。处理器134可针对主机数据组块和GC数据组块分配不同的开放超级块。
处理器134可在多个开放超级块之中选择任意一个开放超级块,并且可确定数据组块将被编程到的条带,使得开放超级块的条带被顺序地编程。处理器134可将当前条带信息存储在存储器144中。当前条带信息可指示每个开放超级块中数据组块将被编程到哪个条带。
可基于条带的地址来确定奇偶校验组块是否将被插入到条带中。例如,处理器134可通过对开放超级块中的预定数量的条带中存储的数据组块执行逻辑计算来生成奇偶校验组块。然后,处理器134可将奇偶校验组块编程到条带之中具有最后的地址的条带的预定区域。例如,当处理器134通过收集四个条带的数据组块来生成奇偶校验组块时,处理器134可不将奇偶校验组块插入到第一条带至第三条带中。处理器134可通过对第一条带至第四条带中包括的数据组块执行逻辑计算来生成奇偶校验组块,并且可将奇偶校验组块插入到第四条带的第四存储器管芯DIE4的第四平面PLANE4中。
在操作S1308,处理器134可确定所排队的写入命令的排队顺序。例如,处理器134可对命令在写入队列146中的主机队列HQ和GC队列GQ的每一个中排队的次数进行计数。
在操作S1310,处理器134可向条带化引擎138提供排队顺序信息和条带化模式信息。可基于存储器单元层级、条带化方案和/或是否将插入奇偶校验组块来确定条带化模式。
在操作S1312,条带化引擎138可基于从处理器134获得的条带化模式信息来选择存储器144中存储的多个查找表中的任意一个。查找表中的每一个可包括每个条带化模式中的根据写入命令的排队顺序的数据组块的低位地址信息。参照图8A至图12B描述了条带化模式和对应于条带化模式的查找表的各个示例。
在操作S1314,条带化引擎138可基于从处理器134获得的排队顺序信息和所选择的查找表来确定数据组块的低位地址。
在操作S1316,条带化引擎138可向处理器134提供低位地址。当从处理器134获得的排队顺序对应于所选择的查找表的最后的排队顺序时,条带化引擎138可通知处理器134该排队顺序是最后的排队顺序。
在操作S1318,处理器134可基于从条带化引擎138获得的低位地址来将数据组块布置在簇中。例如,处理器134可通过更新与数据组块相关的逻辑地址和物理地址之间的映射数据来将数据组块布置在簇中。处理器134可基于在操作S1306确定的当前条带的地址以及数据组块的低位地址来确定数据组块的物理地址。
在操作S1320,当具有对应于单触发编程单位的大小的数据完成时,处理器134可将完成的数据清除到存储器装置150。具有对应于单触发编程单位的大小的数据可指代布置在一个条带中的簇之中的一个存储器管芯中的簇中的数据组块和/或奇偶校验组块。当具有对应于单触发编程单位的大小的数据完成时,处理器134可通过向包括这些簇的存储器管芯提供写入命令来清除完全布置的数据。
在操作S1322,当条带化引擎138通知处理器134排队顺序是最后的排队顺序时,处理器134可初始化命令在写入队列146中排队的次数,并且可将当前条带改变为下一条带。
图14示出可由控制器130根据清除命令部分地或全部执行的方法的实施例。主机102可向控制器130提供清除命令,使得被提供到存储器系统110的写入数据被完全编程到存储器装置150。控制器130可响应于清除命令,向存储器装置150提供针对被缓冲在存储器144中的数据组块的写入命令。在被缓冲在存储器144中的数据组块不完全具有对应于单触发编程单位的大小的情况下,控制器130可向数据组块添加虚拟组块以完成具有对应于单触发编程单位的大小的数据。控制器130还可向存储器装置150提供针对完成的数据的写入命令。
在操作S1402,处理器134可从主机102接收清除命令,并且可使该清除命令在写入队列146中排队。例如,清除命令可在主机队列HQ中排队。
在操作S1404,处理器134可确定应当添加虚拟组块的条带的存储器单元层级以及条带化方案。可通过图13的操作S1304预先确定存储器144中缓冲的数据组块的存储器单元层级以及条带化方案。而且,处理器134可通过参考预先确定的存储器单元层级和条带化方案来确定应当添加虚拟组块的条带的存储器单元层级以及条带化方案。
在操作S1406,处理器134可确定应当添加虚拟组块的条带。可通过图13的操作S1306预先确定缓冲在存储器144中的数据组块将被编程到的条带。处理器134可通过参考预先确定的条带来确定应当添加虚拟组块的条带。处理器134可进一步基于所确定的条带的地址来确定是否将插入奇偶校验组块。
在操作S1408,为了确定条带中的、其中将布置虚拟组块的簇,处理器134可确定清除命令排队的顺序。例如,处理器134可对命令在主机队列HQ中排队的次数进行计数。
在操作S1410,处理器134可向条带化引擎138提供排队顺序信息和条带化模式信息。处理器134可基于存储器单元层级、条带化方案和/或是否将插入奇偶校验组块来确定条带化模式。
在操作S1412,条带化引擎138可基于从处理器134获得的条带化模式信息来选择存储器144中存储的多个查找表中的任意一个。
在操作S1414,条带化引擎138可通过参考所选择的查找表来确定需要布置虚拟数据的簇的低位地址。例如,条带化引擎138可确定与从处理器134获得的排队顺序以及该排队顺序之后的顺序相对应的低位地址。
在操作S1416,条带化引擎138可向处理器134提供低位地址。
在操作S1418,处理器134可利用虚拟数据来填充当前条带。例如,处理器134可通过参考来自条带化引擎138的低位地址,在当前条带中的、其中未布置数据组块的簇中布置虚拟组块。
在操作S1420,处理器134可将包括数据组块和虚拟组块的条带清除到存储器装置150。
在操作S1422,处理器134可在写入队列146中初始化命令排队的次数,并且可将当前条带改变为下一条带。
根据一个或多个实施例,为了对多个数据组块进行条带化,处理器134可向条带化引擎138提供与数据组块相关的条带化模式和排队顺序。条带化引擎138可基于条带化模式选择查找表,并且可通过参考所选择的查找表以及排队顺序来确定与多个数据组块相关的低位地址。处理器134可通过基于低位地址将多个数据组块布置在簇中来对多个数据组块进行条带化。
在一个实施例中,条带化引擎138可由能够确定查找表并且执行通过参考该查找表来选择低位地址的计算的硬件电路来实施。例如,处理器134可通过向条带化引擎138提供与数据组块相关的排队顺序来获得低位地址,而不是基于先前布置数据组块的簇的低位地址来执行确定将布置数据组块的簇的低位地址的计算。因此,处理器134可通过由条带化引擎138转移条带化操作来改进存储器系统110的性能。
本文所描述的方法、进程和/或操作可通过待由计算机、处理器、控制器或其它信号处理装置运行的代码或指令来执行。该计算机、处理器、控制器或其它信号处理装置可以是本文所描述的那些元件,或者是除了本文所描述的元件之外的元件。因为详细描述了形成方法(或计算机、处理器、控制器或其它信号处理装置的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可将计算机、处理器、控制器或其它信号处理装置转换成用于执行本文的方法的专用处理器。
当至少部分地以软件实施时,控制器、处理器、引擎、装置、模块、单元、接口、驱动器、生成器以及其它信号生成和信号处理特征可包括例如用于存储待由例如计算机、处理器、微处理器、控制器或其它信号处理装置运行的代码或指令的存储器或其它存储装置。该计算机、处理器、微处理器、控制器或其它信号处理装置可以是本文所描述的那些元件,或者是除了本文所描述的元件之外的元件。因为详细描述了形成方法(或计算机、处理器、微处理器、控制器或其它信号处理装置的操作)的基础的算法,所以用于实施方法实施例的操作的代码或指令可将计算机、处理器、控制器或其它信号处理装置转换成用于执行本文所描述的方法的专用处理器。
虽然为了说明的目的已经描述各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本公开的精神和范围的情况下,可以进行各种改变和修改。可以组合实施例以形成另外的实施例。
Claims (23)
1.一种存储器系统,包括:
存储器装置,包含包括多个物理页面的多个存储块、包括所述多个存储块的多个平面以及包括所述多个平面的多个存储器管芯,所述多个平面彼此并行操作;以及
控制器,将数据存储在多个条带中,每个条带包括不同平面的物理页面以及多个单位区域,所述控制器包括:
处理器,使写入命令在写入队列中排队,并且在所述多个条带之中选择将存储与所述写入命令相对应的数据组块的条带;以及
条带化引擎,接收所述写入命令的排队顺序,并且通过参考查找表,向所述处理器输出将布置所述数据组块的单位区域的地址,其中所述处理器控制所述存储器装置以将所述数据组块存储在所选择条带的与所输出的地址相对应的单位区域中。
2.根据权利要求1所述的存储器系统,其中
所述处理器通过对所述数据组块的物理地址和逻辑地址进行映射来生成映射数据,并且
基于所述数据组块的所述逻辑地址、所选择条带的所输出的地址以及所述单位区域的地址来确定所述物理地址。
3.根据权利要求1所述的存储器系统,其中,当布置所选择条带的一个存储器管芯中包括的所有单位区域中将存储的数据组块时,所述处理器控制所述存储器装置以存储该数据组块。
4.根据权利要求1所述的存储器系统,其中
所述物理页面包括一个或多个单位区域,并且
所述物理页面中的所述单位区域的数量根据子页面的数量以及所述数据组块的大小来确定,子页面的数量根据所述物理页面的存储器单元层级来确定。
5.根据权利要求1所述的存储器系统,其中
所述处理器向所述条带化引擎提供所述写入命令中的每一个的排队顺序,
当所提供的排队顺序是所述查找表中的最后的排队顺序时,所述条带化引擎通知所述处理器,并且
响应于所述通知,所述处理器改变所选择条带并且初始化所述排队顺序。
6.根据权利要求1所述的存储器系统,其中
所述处理器使来自主机的清除命令在所述写入队列中排队,并且将所述清除命令的排队顺序提供到所述条带化引擎,
所述条带化引擎通过参考所述查找表,基于所述清除命令的所述排队顺序,在所选择条带的多个单位区域之中确定尚未布置数据组块的单位区域,并且
所述处理器控制所述存储器装置以将虚拟组块存储在未布置数据组块的所述单位区域中。
7.根据权利要求1所述的存储器系统,其中
所述单位区域的地址包括平面地址、存储器管芯地址和子页面地址,并且
所述条带的地址包括存储块地址和物理页面地址。
8.根据权利要求1所述的存储器系统,其中
所述条带化引擎通过接收基于所选择条带确定的条带化模式,从多个查找表之中选择将参考的查找表。
9.根据权利要求8所述的存储器系统,其中
所述存储器装置包括多个开放超级块,所述多个开放超级块中的每一个包括不同平面的存储块,并且
所述处理器基于所述数据组块的类型来选择所述多个开放超级块中的一个,并且选择条带,使得所述开放超级块中的条带被顺序地存储。
10.根据权利要求9所述的存储器系统,其中所述处理器:
以基于交错的方案存储来自主机的数据组块,以及
以基于单触发的方案来存储从所述存储器装置获得以执行后台操作的数据组块。
11.根据权利要求8所述的存储器系统,其中所述处理器根据操作来生成奇偶校验组块,所述操作包括对包含所选择条带的一个或多个条带中存储的数据组块执行逻辑计算。
12.根据权利要求11所述的存储器系统,其中所述处理器基于所述条带的地址来确定是否将所述奇偶校验组块存储在所选择条带的预定单位区域中。
13.根据权利要求8所述的存储器系统,其中
当所选择条带包括包含多个子页面的物理页面并且所述数据组块以基于交错的方案存储在所选择条带中时,所述处理器选择所述条带化模式为第一模式,
所述条带化引擎通过接收所述第一模式来从所述多个查找表之中选择第一查找表,
所述第一查找表包括针对每个排队顺序的单位区域的地址,并且
对应于所述排队顺序的平面地址随着所述排队顺序的增加而增加,当所述平面地址在达到最大值之后被初始化时,存储器管芯地址增加,并且当所述存储器管芯地址在达到最大值之后被初始化时,子页面地址增加。
14.根据权利要求8所述的存储器系统,其中
当所选择条带包括包含多个子页面的物理页面,所述数据组块以基于交错的方案存储在所选择条带中,并且奇偶校验组块存储在所选择条带的预定单位区域中时,所述处理器选择所述条带化模式为第二模式,
所述条带化引擎通过接收所述第二模式来从所述多个查找表之中选择第二查找表,
所述第二查找表包括针对每个排队顺序的除所述预定单位区域之外的单位区域的地址,并且
对应于所述排队顺序的平面地址随着所述排队顺序的增加而增加,当所述平面地址在达到最大值之后被初始化时,存储器管芯地址增加,并且当所述存储器管芯地址在达到最大值之后被初始化时,子页面地址增加。
15.根据权利要求8所述的存储器系统,其中
当所选择条带包括包含多个子页面的物理页面并且所述数据组块以基于单触发的方案存储在所选择条带中时,所述处理器选择所述条带化模式为第三模式,
所述条带化引擎通过接收所述第三模式来从所述多个查找表之中选择第三查找表,
所述第三查找表包括针对每个排队顺序的单位区域的地址,并且
对应于所述排队顺序的平面地址随着所述排队顺序的增加而增加,当所述平面地址在达到最大值之后被初始化时,子页面地址增加,并且当所述子页面地址在达到最大值之后被初始化时,存储器管芯地址增加。
16.根据权利要求8所述的存储器系统,其中
当所选择条带包括包含多个子页面的物理页面,所述数据组块以基于单触发的方案存储在所选择条带中,并且奇偶校验组块存储在所选择条带的预定单位区域中时,所述处理器选择所述条带化模式为第四模式,
所述条带化引擎通过接收所述第四模式来从所述多个查找表之中选择第四查找表,
所述第四查找表包括针对每个排队顺序的除所述预定单位区域之外的单位区域的地址,并且
对应于所述排队顺序的平面地址随着所述排队顺序的增加而增加,当所述平面地址在达到最大值之后被初始化时,子页面地址增加,并且当所述子页面地址在达到最大值之后被初始化时,存储器管芯地址增加。
17.根据权利要求8所述的存储器系统,其中
当所选择条带包括单层单元物理页面时,所述处理器选择所述条带化模式为第五模式,
所述条带化引擎通过接收所述第五模式来从所述多个查找表之中选择第五查找表,
所述第五查找表包括针对每个排队顺序的单位区域的地址,并且
对应于所述排队顺序的平面地址随着所述排队顺序的增加而增加,并且当所述平面地址在达到最大值之后被初始化时,存储器管芯地址增加。
18.一种操作存储器系统的方法,所述存储器系统包含包括多个物理页面的多个存储块、包括所述多个存储块的多个平面以及包括所述多个平面的多个存储器管芯,所述多个平面彼此并行操作,所述方法包括:
使写入命令在写入队列中排队;
在多个条带之中选择将存储与所述写入命令相对应的数据组块的条带,所述多个条带中的每一个包括不同平面的物理页面以及多个单位区域;
通过参考查找表,将与所述写入命令的排队顺序相对应的单位区域的地址确定为将布置所述数据组块的单位区域的地址;并且
将所述数据组块存储在所选择条带的与所确定的地址相对应的单位区域中。
19.根据权利要求18所述的方法,进一步包括:
当所述排队顺序是所述查找表中的最后的排队顺序时,改变所选择条带并且初始化所述写入命令中的每一个的排队顺序。
20.根据权利要求18所述的方法,进一步包括:
使来自主机的清除命令在所述写入队列中排队;并且
基于所述清除命令的排队顺序,通过参考所述查找表,将虚拟组块存储在所选择条带的多个单位区域之中尚未布置数据组块的单位区域中。
21.根据权利要求18所述的方法,其中
所述单位区域的地址包括平面地址、存储器管芯地址和子页面地址,并且
所述条带的地址包括存储块地址和物理页面地址。
22.根据权利要求18所述的方法,进一步包括:
根据基于所选择条带确定的条带化模式,在多个查找表之中选择将参考的查找表。
23.一种存储器系统,包括:
存储器装置,包含包括多个物理页面的多个存储块、包括所述多个存储块的多个平面以及包括所述多个平面的多个存储器管芯,所述多个平面彼此并行操作;以及
控制器:
将数据存储在多个条带中,每个条带包括不同平面的物理页面以及多个单位区域,
使写入命令在写入队列中排队;
在所述多个条带之中选择将存储与所述写入命令相对应的数据组块的条带;
通过参考查找表,将与所述写入命令的排队顺序相对应的单位区域的地址确定为将布置所述数据组块的单位区域的地址;并且
将所述数据组块存储在所选择条带的与所确定的地址相对应的单位区域中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0166644 | 2020-12-02 | ||
KR1020200166644A KR20220077573A (ko) | 2020-12-02 | 2020-12-02 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579485A true CN114579485A (zh) | 2022-06-03 |
Family
ID=81751349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110782181.8A Withdrawn CN114579485A (zh) | 2020-12-02 | 2021-07-12 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11650929B2 (zh) |
KR (1) | KR20220077573A (zh) |
CN (1) | CN114579485A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220145695A (ko) * | 2021-04-22 | 2022-10-31 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
US20230058232A1 (en) * | 2021-08-19 | 2023-02-23 | Micron Technology, Inc. | Partition command queues for a memory device |
US11941290B2 (en) * | 2021-09-01 | 2024-03-26 | Micron Technology, Inc. | Managing distribution of page addresses and partition numbers in a memory sub-system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160019160A1 (en) * | 2014-07-17 | 2016-01-21 | Sandisk Enterprise Ip Llc | Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules |
US9766837B2 (en) * | 2015-06-10 | 2017-09-19 | Micron Technology, Inc. | Stripe mapping in memory |
US10810123B1 (en) * | 2017-10-25 | 2020-10-20 | EMC IP Holding Company, LLC | Flush strategy for using DRAM as cache media system and method |
KR102517681B1 (ko) * | 2018-06-05 | 2023-04-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200059936A (ko) | 2018-11-22 | 2020-05-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2020
- 2020-12-02 KR KR1020200166644A patent/KR20220077573A/ko unknown
-
2021
- 2021-04-30 US US17/245,307 patent/US11650929B2/en active Active
- 2021-07-12 CN CN202110782181.8A patent/CN114579485A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20220171570A1 (en) | 2022-06-02 |
US11650929B2 (en) | 2023-05-16 |
KR20220077573A (ko) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416391B2 (en) | Garbage collection | |
KR102675131B1 (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
US20170160942A1 (en) | Data storage device and flash memory control method | |
CN110275673B (zh) | 存储装置及其操作方法 | |
US20170161202A1 (en) | Flash memory device including address mapping for deduplication, and related methods | |
US11226895B2 (en) | Controller and operation method thereof | |
CN109815160B (zh) | 最后写入页搜索 | |
CN114579485A (zh) | 存储器系统及其操作方法 | |
US20190114255A1 (en) | Handling of Unaligned Sequential Writes | |
KR102287760B1 (ko) | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 | |
CN111158579B (zh) | 固态硬盘及其数据存取的方法 | |
CN111373383B (zh) | 存储器高速缓存管理 | |
US20210248069A1 (en) | Storage device and operating method of memory controller | |
CN108027764B (zh) | 可转换的叶的存储器映射 | |
CN112306902A (zh) | 存储器控制器及操作其的方法 | |
CN112015329A (zh) | 存储系统及其操作方法 | |
KR20200074647A (ko) | 메모리 시스템 및 그것의 동작방법 | |
CN111444115A (zh) | 存储装置及其操作方法 | |
CN108231119B (zh) | 用每单元分数比特低延迟读取快闪存储设备的方法和装置 | |
US20230036841A1 (en) | Storage devices, storage controllers, and operating methods of storage controllers | |
US9841918B2 (en) | Flash memory device including deduplication, and related methods | |
US12013778B2 (en) | Storage device configured to update hotnesses of received logical addresses and a method of operating the storage device | |
US10585795B2 (en) | Data relocation in memory having two portions of data | |
CN111309642A (zh) | 一种存储器及其控制方法与存储系统 | |
CN115048039B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220603 |
|
WW01 | Invention patent application withdrawn after publication |