CN114115708A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN114115708A CN114115708A CN202110427379.4A CN202110427379A CN114115708A CN 114115708 A CN114115708 A CN 114115708A CN 202110427379 A CN202110427379 A CN 202110427379A CN 114115708 A CN114115708 A CN 114115708A
- Authority
- CN
- China
- Prior art keywords
- buffer
- partition
- memory
- write data
- size
- 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
- 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
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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
- 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储装置,该存储装置可以包括:存储器装置,包括分别与多个地址组相对应的多个存储器区域,该多个地址组中的每一个包括由主机提供的连续逻辑地址;缓冲存储器,包括公共缓冲区和多个分区缓冲区,该多个分区缓冲区分别对应于多个存储器区域;以及存储器控制器,根据与从主机提供的逻辑地址相对应的写入数据的第一大小是否超过与逻辑地址相对应的分区缓冲区的可用存储容量,控制缓冲存储器以将该写入数据临时存储在与逻辑地址相对应的分区缓冲区和公共缓冲区中的一个中,该可用存储容量表示分区缓冲区的没有存储数据的空白存储空间的大小。
Description
相关申请的交叉引用
本申请要求于2020年8月28日向韩国国家知识产权局提交的、申请号为10-2020-0109188的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开总体涉及一种电子装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
存储装置是在诸如计算机、智能电话等的主机装置的控制下存储数据的装置。存储装置可以包括用于存储数据的存储器装置和用于控制存储器装置的存储器控制器。存储器装置被分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在向其供应电力时才存储数据而在电力供应中断时所存储的数据消失的存储器装置。易失性存储器装置可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是即使电力供应中断数据也不会消失的存储器装置。非易失性存储器装置可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEROM)、闪速存储器等。
发明内容
实施例提供一种提供改进的缓冲存储器管理方法的存储装置以及该存储装置的操作方法。
根据本公开的方面,提供了一种存储装置,包括:存储器装置,包括分别与多个地址组相对应的多个存储器区域,该多个地址组中的每一个包括由主机提供的连续逻辑地址;缓冲存储器,包括公共缓冲区和多个分区缓冲区,该多个分区缓冲区分别对应于多个存储器区域;以及存储器控制器,被配置为根据与从主机提供的逻辑地址相对应的写入数据的第一大小是否超过与逻辑地址相对应的分区缓冲区的可用存储容量,控制缓冲存储器以将该写入数据临时存储在与逻辑地址相对应的分区缓冲区和公共缓冲区中的一个中,该可用存储容量表示分区缓冲区的没有存储数据的空白存储空间的大小。
根据本公开的另一方面,提供了一种用于操作存储器控制器的方法,该存储器控制器控制存储器装置和缓冲存储器,该存储器装置包括分别与待由主机提供的多个逻辑地址组相对应的多个存储器区域,该缓冲存储器包括公共缓冲区和分别与多个存储器区域相对应的多个分区缓冲区,该方法包括:从主机接收逻辑地址以及与逻辑地址相对应的写入数据;确定写入数据的大小是否超过多个分区缓冲区之中的与逻辑地址相对应的分区缓冲区的可用存储容量,该可用存储容量表示分区缓冲区的没有存储数据的空白存储空间的大小;响应于写入数据的大小等于或小于分区缓冲区的可用存储容量,控制缓冲存储器以将写入数据存储在分区缓冲区中;以及响应于写入数据的大小超过分区缓冲区的可用存储容量,控制缓冲存储器以将写入数据存储在公共缓冲区中。
根据本公开的又一方面,提供了一种存储装置,包括:存储器装置,包括分别与多个逻辑地址组相对应的多个存储器区域,多个逻辑地址组中的每一个对应于由主机提供的连续逻辑地址;多个分区缓冲区,分别对应于多个存储器区域,多个分区缓冲区分别存储与多个逻辑地址组相对应的数据;以及存储器控制器,被配置为控制多个分区缓冲区,以将与由主机提供的逻辑地址相对应的写入数据存储在多个分区缓冲区之中的与逻辑地址相对应的分区缓冲区中。
附图说明
现在下文中将参照附图更充分地描述示例实施例;然而,它们可以以不同的形式实现,并且不应该被解释为限于本文所阐述的实施例。相反,提供这些实施例是为了使本公开是彻底和完全的,并且将向本领域技术人员充分地传达示例实施例的范围。
在附图中,为了清楚说明,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,它可以是这两个元件之间仅有的元件,或者也可以存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出根据本公开的实施例的存储装置的示图。
图2是示出图1所示的存储器装置的示图。
图3是示出图2所示的存储器单元阵列的示图。
图4是示出根据本公开的实施例的应用了分区名称空间的存储装置的操作方法的示图。
图5是示出根据本公开的实施例的存储器控制器的示图。
图6是示出存储在图5所示的缓冲区状态存储装置中的缓冲区状态信息的示图。
图7是示出根据本公开的实施例的编程操作的示图。
图8是示出根据本公开的实施例的缓冲存储器编程操作的示图。
图9是示出根据本公开的实施例的存储器装置编程操作的示图。
图10是示出根据本公开的实施例的编程操作的示图。
图11是示出根据本公开的实施例的缓冲存储器操作的示图。
图12是示出根据本公开的实施例的编程操作的示图。
图13是示出根据本公开的实施例的读取操作的示图。
图14是示出根据本公开的实施例的存储装置的操作方法的流程图。
图15是示出根据本公开的实施例的分区缓冲区的操作方法的流程图。
图16是示出根据本公开的实施例的公共缓冲区的操作方法的流程图。
图17是示出根据本公开的实施例的图1所示的存储器控制器的示图。
图18是示出根据本公开的实施例的应用了存储装置的存储卡***的框图。
图19是示例性地示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)***的框图。
图20是示出根据本公开的实施例的应用了存储装置的用户***的框图。
具体实施方式
在本公开中,在结合附图阅读下面的示例性实施例之后,优点、特征以及用于实现它们的方法将变得更加明显。然而,本公开可以以不同的形式实现,而不应该被解释为限于本文所阐述的实施例。相反,提供这些实施例是为了详细地描述本公开,以达到使本公开所属领域的技术人员可以容易地实施本公开的技术概念的程度。
图1示出根据本公开的实施例的存储装置50。
参照图1,存储装置50可以包括存储器装置100和被配置为控制存储器装置100的操作的存储器控制器200。存储装置50可以是用于在诸如以下的主机400的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC、车载信息娱乐***等。
根据作为与主机400的通信方案的主机接口,存储装置50可以被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、记忆棒等。
存储装置50可以被制造为诸如以下的各种封装类型中的任意一种:堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等。
存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括用于存储数据的多个存储器单元。
存储器单元中的每一个可以被配置为存储1位数据的单层单元(SLC)、存储2位数据的多层单元(MLC)、存储3位数据的三层单元(TLC)或存储4位数据的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储在存储器装置100中的数据的单位。
存储块可以是用于擦除数据的单位。在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率***(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述,假设并描述了存储器装置100是NAND闪速存储器的情况。
存储器装置100从存储器控制器200接收命令和地址,并且访问存储器单元阵列中由地址选择的存储器区域。也就是说,存储器装置100可以对由地址选择的存储器区域执行由命令指示的操作。例如,存储器装置100可以对存储器区域执行写入(或编程)操作、读取操作和擦除操作。在编程操作中,存储器装置100可以将数据编程在由地址选择的存储器区域中。在读取操作中,存储器装置100可以读取存储在由地址选择的存储器区域中的数据。在擦除操作中,存储器装置100可以擦除存储在由地址选择的存储器区域中的数据。
存储器控制器200可以控制存储装置50的全部操作。
当向存储装置50供应电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是NAND闪速存储器时,存储器控制器200可以运行用于控制主机400和存储器装置100之间的通信的诸如闪存转换层(FTL)的FW。
在实施例中,存储器控制器200可以从主机400接收写入数据和逻辑块地址(LBA),并且将LBA转换为物理块地址(PBA),物理块地址(PBA)表示待存储写入数据的、存储器装置100中包括的存储器单元的地址。
存储器控制器200可以响应于来自主机400的请求,控制存储器装置100以执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可以向存储器装置100提供编程命令、PBA和写入数据。在读取操作中,存储器控制器200可以向存储器装置100提供读取命令和PBA。在擦除操作中,存储器控制器200可以向存储器装置100提供擦除命令和PBA。
在实施例中,存储器控制器200可以不管来自主机400的任何请求而自主地生成命令、地址和数据,并且将命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供到存储器装置100,以执行诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可以根据交错方案来控制至少两个存储器装置100以便提高操作性能。该交错方案可以是允许至少两个存储器装置100的操作部分彼此重叠的操作方案。
主机400可以使用诸如以下的各种通信方式中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、火线、***组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)、低负载DIMM(LRDIMM)等。
存储器控制器200可以根据主机400的请求控制缓冲存储器300以临时存储待存储在存储器装置100中的写入数据。写入数据可以根据逻辑地址而存储在缓冲存储器300中预先分配的存储空间(未示出)中。
通过一次编程操作编程在存储器装置100中的写入数据的大小可以被称为编程单位大小。根据从主机400接收到的编程请求输入到存储器控制器200的写入数据的大小可以与存储器装置100的编程单位大小不同。因此,存储器控制器200可以将根据编程请求从主机400接收到的写入数据存储在缓冲存储器300中。随后,当存储在缓冲存储器300中的写入数据的大小达到编程单位大小时,存储器控制器200可以控制缓冲存储器300和存储器装置100将写入数据编程到存储器装置100。
缓冲存储器300可以是易失性存储器装置。因此,当电力供应中断时,存储在缓冲存储器300中的数据可能不会被保留。
参照图1,示出了缓冲存储器300包括在存储装置50中的同时位于存储器控制器200的外部。然而,在各个实施例中,缓冲存储器300可以位于存储器控制器200中。
图2示出图1所示的存储器装置100。
参照图2,存储器装置100可以包括存储器单元阵列110、***电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL连接到地址解码器121。多个存储块BLK1至BLKz通过位线BL1至BLm连接到读取/写入电路123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中连接到相同字线的存储器单元可以被定义为一个物理页面(PG)。也就是说,存储器单元阵列110可以由多个物理页面来配置。根据本公开的实施例,存储器单元阵列110中包括的多个存储块BLK1至BLKz中的每一个可以包括多个虚设单元。一个或多个虚设单元可以串联连接在漏极选择晶体管和存储器单元之间以及存储器单元和源极选择晶体管之间。
存储器装置100的存储器单元中的每一个可以被配置为单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)。
***电路120可以包括地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。
***电路120驱动存储器单元阵列110。例如,***电路120可以驱动存储器单元阵列110以执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL连接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的实施例,字线可以包括正常字线和虚设字线。根据本公开的实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可以对接收到的地址ADDR中的块地址进行解码。地址解码器121根据经解码的块地址从存储块BLK1至BLKz之中选择至少一个存储块。地址解码器121可以对接收到的地址ADDR中的行地址进行解码。地址解码器121可以根据经解码的行地址在所选择的存储块的字线之中选择至少一个字线。地址解码器121可以将从电压生成器122供应的操作电压Vop施加到所选择字线。
在编程操作中,地址解码器121可以将编程电压施加到所选择字线,并且将通过电压施加到未选择字线,该通过电压的电平低于该编程电压的电平。在编程验证操作中,地址解码器121可以将验证电压施加到所选择字线,并且将验证通过电压施加到未选择字线,该验证通过电压的电平高于该验证电压的电平。
在读取操作中,地址解码器121可以将读取电压施加到所选择字线,并且将读取通过电压施加到未选择字线,该读取通过电压的电平高于该读取电压的电平。
以存储块为单位执行存储器装置100的擦除操作。在擦除操作中,输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以对块地址进行解码,并且根据经解码的块地址选择至少一个存储块。在擦除操作中,地址解码器121可将接地电压施加到与所选择存储块连接的字线。
地址解码器121可以对传输到地址解码器121的地址ADDR中的列地址进行解码。经解码的列地址可以被传输到读取/写入电路123。示例性地,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122可以通过使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器122在控制逻辑130的控制下操作。
电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压可以用作存储器装置100的操作电压。
电压生成器122可以通过使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器122可以生成存储器装置100所需的各种电压。例如,电压生成器122可以生成多个擦除电压、多个编程电压、多个虚拟编程电压、多个通过电压、多个验证电压、多个验证通过电压、多个读取电压以及多个读取通过电压等。
为了生成具有各种电压电平的多个操作电压Vop,电压生成器122可以包括用于接收外部电源电压或内部电源电压的多个泵浦电容器,并且可以在控制逻辑130的控制下通过选择性地激活多个泵浦电容器来生成多个操作电压Vop。
多个操作电压Vop可以由地址解码器121供应到存储器单元阵列110。
读取/写入电路123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm通过相应的第一至第m位线BL1至BLm连接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下操作。
第一至第m页面缓冲器PB1至PBm通过数据线DL与数据输入/输出电路124通信数据DATA。在编程操作中,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作中,当将编程脉冲施加到所选择字线时,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm将通过数据输入/输出电路124接收的数据DATA传送到所选择存储器单元。根据所传送的数据DATA对所选择存储器单元进行编程。连接到施加了编程许可电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。可以保持连接到施加了编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压。在编程验证操作中,第一至第m页面缓冲器PB1至PBm通过位线BL1至BLm读取存储在所选择的存储器单元中的数据DATA。
在读取操作中,读取/写入电路123可以通过位线BL1至BLm从所选择页面的存储器单元读取数据DATA,并且将所读取的数据DATA存储在第一至第m页面缓冲器PB1至第PBm中。
在擦除操作中,读取/写入电路123可以使位线BL1至BLm浮置。在实施例中,读取/写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL连接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124在控制逻辑130的控制下操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作中,数据输入/输出电路124可以从例如图1的存储器控制器200的外部控制器接收待存储的数据DATA。在读取操作中,数据输入/输出电路124将从读取/写入电路123中包括的第一至第m页面缓冲器PB1至PBm传输的数据输出到外部控制器。
在读取操作或编程验证操作中,感测电路125可以响应于由控制逻辑130生成的验证位信号VRYBIT而生成参考电流,并且通过将从读取/写入电路123接收到的感测电压VPB与由参考电流生成的参考电压进行比较,将通过信号PASS或失败信号FAIL输出到控制逻辑130。
控制逻辑130可以连接到地址解码器121、电压生成器122、读取/写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从例如图1的存储器控制器200的外部装置传送的命令CMD而操作。
控制逻辑130可以通过响应于由外部装置提供的命令CMD和地址ADDR而生成若干个信号来控制***电路120。例如,控制逻辑130可以响应于命令CMD和地址ADDR生成操作信号OPSIG、行地址RADD、读取/写入电路控制信号PBSIGNALS、验证位信号VRYBIT等。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将行地址RADD输出到地址解码器121,将读取/写入电路控制信号PBSIGNALS输出到读取/写入电路123,并且将验证位信号VRYBIT输出到感测电路125。而且,控制逻辑130可以响应于由感测电路125输出的通过信号或失败信号PASS/FAIL来确定编程验证操作是通过还是失败。
图3示出图2所示的存储器单元阵列110。
参照图3,第一至第z存储块BLK1至BLKz共同连接到第一至第m位线BL1至BLm。在图3中,为了便于描述,示出了多个存储块BLK1至BLKz之中的第一存储块BLK1中包括的组件,并且省略了其他存储块BLK2至BLKz中的每一个中包括的组件。其他存储块BLK2至BLKz中的每一个可以与第一存储块BLK1相同地配置。
存储块BLK1可以包括多个单元串CS1_1至CS1_m(m是正整数)。第一至第m单元串CS1_1至CS1_m分别连接到第一至第m位线BL1至BLm。第一至第m单元串CS1_1至CS1_m中的每一个包括串联连接的漏极选择晶体管DST、漏极虚设单元DDMC、多个存储器单元MC1至MCk(k为正整数)、源极虚设单元SDMC和源极选择晶体管SST。
第一至第m单元串CS1_1至CS1_m中的每一个中包括的漏极选择晶体管DST的栅极端子连接到漏极选择线DSL。第一至第m单元串CS1_1至CS1_m中的每一个中包括的漏极虚设单元DDMC的栅极端子连接到漏极虚设字线DDWL。第一至第m单元串CS1_1至CS1_m中的每一个中包括的第一至第k存储器单元MC1至MCk的栅极端子分别连接到第一至第k字线WL_1至WL_k。第一至第m单元串CS1_1至CS1_m中的每一个中包括的源极虚设单元SDMC的栅极端子连接到源极虚设字线SDWL。第一至第m单元串CS1_1至CS1_m中的每一个中包括的源极选择晶体管SST的栅极端子连接到源极选择线SSL。
为了便于描述,将基于多个单元串CS1_1至CS1_m之中的第一单元串CS1_1来描述单元串的结构。然而,其他单元串CS1_2至CS1_m中的每一个可以与第一单元串CS1_1相同地配置。
第一单元串CS1_1中包括的漏极选择晶体管DST的漏极端子连接到第一位线BL1。第一单元串CS1_1中包括的漏极选择晶体管DST的源极端子(或电极)连接到第一单元串CS1_1中包括的漏极虚设单元DDMC的漏极端子。第一至第k存储器单元MC1至MCk彼此串联连接。漏极虚设单元DDMC和第k存储器单元MCK彼此串联连接,并且第一存储器单元MC1和源极虚设单元SDMC彼此串联连接。第一单元串CS1_1中包括的源极选择晶体管SST的漏极端子连接到第一单元串CS1_1中包括的源极虚设单元SDMC的源极端子。第一单元串CS1_1中包括的源极选择晶体管SST的源极端子连接到公共源极线CSL。在实施例中,公共源极线CSL可以公共地连接到第一至第z存储块BLK1至BLKz。
漏极选择线DSL、漏极虚设字线DDWL、第一至第k字线WL_1至WL_k、源极虚设字线SDWL和源极选择线SSL包括在行线RL中。漏极选择线DSL、漏极虚设字线DDWL、第一至第k字线WL_1至WL_k、源极虚设字线SDWL和源极选择线SSL由地址解码器121控制。第一至第m位线BL1至BLm由读取/写入电路123控制。
图4示出根据本公开的实施例的应用了分区名称空间的图1的存储装置50的操作方法。
参照图4,缓冲存储器300可以被预先分配成第一至第N分区(zone)缓冲区b_Zone1至b_ZoneN(N是大于1的自然数)和公共缓冲区Common。存储器单元阵列110可以包括参照图2描述的第一至第z存储块BLK1至BLKz。可以将多个存储块分配到第一至第N分区Zone1至ZoneN之中的一个分区(N是大于1的自然数)。各个分区中包括的存储块的数量可以彼此不同。在实施例中,分区可以是存储有与从主机400提供的连续逻辑地址相对应的写入数据的存储器区域。
根据与写入数据相对应的逻辑地址,可以确定从主机400输入的写入数据待被存储在第一至第N分区Zone1至ZoneN之中的哪个分区中。具体地,参照图1描述的存储器控制器200可以根据与写入数据相对应的逻辑地址所属的范围来确定相应的分区。例如,从主机400输入的逻辑地址可以被划分为多个逻辑地址组。该多个逻辑地址组中的每一个可以包括多个连续逻辑地址。多个逻辑地址组中的每一个可以对应于第一至第N分区Zone1至ZoneN之中的任意一个分区。
例如,当从主机400输入的逻辑地址是LBA1至LBA50时,LBA1至LBA10属于第一逻辑地址组,并且可以对应于第一分区Zone1。LBA11至LBA20属于第二逻辑地址组,并且可以对应于第二分区Zone2。LBA21至LBA30属于第三逻辑地址组,并且可以对应于第三分区Zone3。LBA31至LBA40属于第四逻辑地址组,并且可以对应于第四分区Zone4。LBA41至LBA50属于第五逻辑地址组,并且可以对应于第五分区Zone5。当与从主机400输入的写入数据相对应的逻辑地址是LBA3时,LBA3属于第一逻辑地址组并且对应于第一分区Zone1。因此,该写入数据可以存储在第一分区Zone1中。
缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN可以分别对应于多个逻辑地址组。例如,第一至第五分区缓冲区b_Zone1至b_Zone5可以分别对应于第一至第五逻辑地址组。因此,第一至第N分区缓冲区b_Zone1至b_ZoneN可以分别对应于第一至第N分区Zone1至ZoneN。例如,当与从主机400输入的写入数据相对应的逻辑地址是LBA32时,LBA32属于第四逻辑地址组,因此该写入数据可以被临时存储在第四分区缓冲区b_Zone4中。随后,可以将存储在第四分区缓冲区b_Zone4中的写入数据编程到第四分区Zone4。
在实施例中,缓冲存储器300的公共缓冲区Common可以存储写入数据,而不管与写入数据相对应的逻辑地址所属的逻辑地址组如何。具体地,由于来自主机400的重复的编程请求,第一至第N分区缓冲区b_Zone1至b_ZoneN中可能不再存在任何能够存储写入数据的空间。当输入大小超过第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个的可用存储容量的写入数据时,可以控制缓冲存储器300以将超过的写入数据存储在公共缓冲区Common中。因此,无论从主机400输入的逻辑地址属于哪些逻辑地址组,公共缓冲区Common都可以存储超过的写入数据。
在实施例中,第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个的大小可以等于存储器装置100的编程单位大小。例如,由主机400请求编程的写入数据的大小可以是4KB,存储器装置100的编程单位大小可以是16KB,并且第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个的大小可以是16KB。当16KB的写入数据存储在第一分区缓冲区b_Zone1中时,存储器控制器200可以将存储在第一分区缓冲区b_Zone1中的16KB的写入数据编程到存储器单元阵列110的第一分区Zone1。当16KB的写入数据存储在第一分区缓冲区b_Zone1中时,这意味着第一分区缓冲区b_Zone1中不再存在能够存储附加写入数据的可用空间。
在另一实施例中,第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个的大小可以是存储器装置100的编程单位大小的数倍。例如,由主机400请求编程的写入数据的大小可以是4KB,存储器装置100的编程单位大小可以是16KB,并且第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个的大小可以是32KB。当16KB的写入数据存储在第一分区缓冲区b_Zone1中时,存储器控制器200可以将存储在第一分区缓冲区b_Zone1中的16KB的写入数据编程到存储器单元阵列110的第一分区Zone1。
在实施例中,缓冲存储器300的公共缓冲区Common的大小可以是存储器装置100的编程单位大小的数倍。例如,当存储器装置100的编程单位大小是16KB时,公共缓冲区Common的大小可以是32KB。
在实施例中,第一至第N分区缓冲区b_Zone1至b_ZoneN和公共缓冲区Common可以彼此独立地操作。
图5示出根据实施例的图1的存储器控制器200。
参照图5,参照图1描述的存储器控制器200可以包括缓冲区状态存储装置210、数据大小比较器220和操作控制器230。
缓冲区状态存储装置210可以存储与参照图4描述的缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN相关联的分区缓冲区状态信息,以及与参照图4描述的缓冲存储器300的公共缓冲区Common相关联的公共缓冲区状态信息。
在实施例中,分区缓冲区状态信息可以包含存储在第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个中的写入数据的大小信息、表示每个分区缓冲区中是否存在用于存储附加写入数据的任何可用空间的分区缓冲区可用空间信息、以及与存储在每个分区缓冲区中的写入数据相对应的逻辑地址信息。公共缓冲区状态信息可以包含存储在公共缓冲区Common中的写入数据的大小信息、表示公共缓冲区中是否存在用于存储附加写入数据的任何可用空间的公共缓冲区可用空间信息、以及与存储在公共缓冲区中的写入数据相对应的分区ID信息。可用空间表示未存储数据的空白空间。
数据大小比较器220可以将与从主机400提供的逻辑地址相对应的写入数据的大小和与该逻辑地址相对应的分区缓冲区的可用空间即可用存储容量的大小进行比较。
在实施例中,数据大小比较器220可以确定写入数据的大小是否超过与逻辑地址相对应的分区缓冲区的可用存储容量。
具体地,数据大小比较器220可以基于存储在缓冲区状态存储装置210中的分区缓冲区状态信息,将写入数据的大小与分区缓冲区的可用存储容量进行比较。此外,数据大小比较器220可以基于通过将写入数据的大小与分区缓冲区的可用存储容量进行比较而获得的结果,确定分区缓冲区中是否存在任何能够存储写入数据的可用空间。例如,当写入数据的大小等于或小于分区缓冲区的可用存储容量时,数据大小比较器220可以确定分区缓冲区中存在能够存储写入数据的可用空间。在另一示例中,当写入数据的大小超过分区缓冲区的可用存储容量时,数据大小比较器220可以确定分区缓冲区中不存在任何能够存储写入数据的可用空间。
此外,数据大小比较器220可以基于将写入数据的大小与分区缓冲区的可用存储容量进行比较的结果,生成分区缓冲区可用空间信息,该分区缓冲区可用空间信息表示分区缓冲区中是否存在任何能够存储写入数据的可用空间。数据大小比较器220可以将分区缓冲区可用空间信息提供到缓冲区状态存储装置210和操作控制器230。缓冲区状态存储装置210可以存储从数据大小比较器220提供的分区缓冲区可用空间信息。操作控制器230可以基于从数据大小比较器220提供的分区缓冲区可用空间信息,控制缓冲存储器300将写入数据存储在与写入数据的逻辑地址相对应的分区缓冲区或公共缓冲区Common中。
操作控制器230可以接收主机400的请求,并且根据该请求控制存储器装置100和缓冲存储器300以执行编程操作、读取操作、擦除操作等。此外,操作控制器230可以包括关于与参照图4描述的存储器装置100的第一至第N分区Zone1至ZoneN相对应的逻辑地址组的信息。而且,操作控制器230可以包括关于与缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN相对应的逻辑地址组的信息。对应于相同逻辑地址的、关于第一至第N分区Zone1至ZoneN之中的任意一个分区的信息以及关于缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN之中的任意一个分区缓冲区的信息可以被称为分区ID Zone_ID。
操作控制器230可以接收与来自主机400的编程请求相对应的写入数据和逻辑地址。之后,操作控制器230可以检查与该逻辑地址相对应的预定分区ID。
操作控制器230可以确定用于存储写入数据的缓冲区,该缓冲区是基于与逻辑地址相对应的分区缓冲区中是否存在任何可用空间来从与逻辑地址相对应的分区缓冲区和公共缓冲区Common中选择的。
在实施例中,操作控制器230可以根据写入数据的大小是否超过与逻辑地址相对应的分区缓冲区的可用存储容量,控制缓冲存储器300以将从主机400提供的写入数据存储在与逻辑地址相对应的分区缓冲区和公共缓冲区中的一个中。
在实施例中,当写入数据的大小等于或小于与逻辑地址相对应的分区缓冲区的可用存储容量时,操作控制器230可以控制缓冲存储器300以将写入数据存储在与逻辑地址相对应的分区缓冲区中。具体地,操作控制器230可以从数据大小比较器220接收与预定分区ID相对应的分区缓冲区可用空间信息。当分区缓冲区中存在能够存储写入数据的可用空间时,操作控制器230可以控制缓冲存储器300以将写入数据存储在与逻辑地址相对应的分区缓冲区中。
在实施例中,当写入数据的大小超过与逻辑地址相对应的分区缓冲区的可用存储容量时,操作控制器230可以控制缓冲存储器300以将写入数据存储在公共缓冲区Common中。例如,当分区缓冲区中不存在任何能够存储写入数据的可用空间时,操作控制器230可以从缓冲区状态存储装置210接收公共缓冲区可用空间信息。当公共缓冲区Common中存在可用空间时,操作控制器230可以控制缓冲存储器300以将写入数据存储在公共缓冲区Common中。
在实施例中,当写入数据的大小超过与逻辑地址相对应的分区缓冲区和公共缓冲区中的每一个的可用存储容量时,操作控制器230可以向主机400提供待机信号。例如,数据大小比较器220可以基于通过将写入数据的大小与公共缓冲区Common的可用存储容量进行比较而获得的结果,来确定公共缓冲区Common中是否存在任何能够存储写入数据的可用空间。当甚至公共缓冲区Common中也不存在任何能够存储写入数据的可用空间时,操作控制器230可以向主机400输出待机信号。由于缓冲存储器300的状态已经根据从主机400接收到的编程请求的处理而改变,因此缓冲区状态存储装置210可以更新所存储的缓冲区状态信息。
操作控制器230可以基于存储在缓冲区状态存储装置210中的分区ID、分区缓冲区状态信息和公共缓冲区状态信息,控制缓冲存储器300和存储器装置100以执行将存储在分区缓冲区和公共缓冲区中的写入数据存储在存储器装置100的多个存储器区域中的编程操作。
在实施例中,当具有与分配给缓冲存储器300的分区缓冲区之中的给定分区缓冲区的数据存储容量相对应的大小的写入数据被存储在给定分区缓冲区中时,操作控制器230可以控制缓冲存储器300和存储器装置100以将存储在给定分区缓冲区中的写入数据存储在存储器装置100的多个存储器区域之中的、与给定分区缓冲区相对应的存储器区域中。分配给分区缓冲区的数据存储容量表示可以存储在分区缓冲区中的最大数据大小。
例如,可以对给定分区缓冲区执行编程操作,该给定分区缓冲区存储具有预定大小或分配给包括在缓冲存储器300中的第一至第N分区缓冲区b_Zone1至b_ZoneN之中的给定分区缓冲区的大小的写入数据。预定大小可以是存储器装置100的编程单位大小。分配给给定分区缓冲区的大小可以表示与给定分区缓冲区的最大数据存储容量相对应的大小。具体地,当存储在给定分区缓冲区中的写入数据的大小变为存储器装置100的编程单位大小时,操作控制器230可以控制缓冲存储器300和存储器装置100以将存储在给定分区缓冲区中的写入数据编程到存储器装置100。此外,当存储在给定分区缓冲区中的写入数据的大小等于分配给给定分区缓冲区的大小时,操作控制器230可以控制缓冲存储器300和存储器装置100以将存储在给定分区缓冲区中的写入数据编程到存储器装置100。
在对给定分区缓冲区的编程操作完成之后,操作控制器230可以控制缓冲存储器300以将存储在公共缓冲区Common中的数据之中的与给定分区缓冲区相对应的写入数据移动到给定分区缓冲区。
在实施例中,当具有与编程单位大小相等的大小的写入数据存储在公共缓冲区Common中时,操作控制器230可以控制缓冲存储器300和存储器装置100以将存储在公共缓冲区Common中的写入数据存储在存储器装置100的多个存储器区域之中的与写入数据的逻辑地址相对应的存储器区域中。具体地,当存储在公共缓冲区Common中的写入数据的大小变为编程单位大小时,可以对公共缓冲区Common执行编程操作,而无需将写入数据移动到与写入数据的逻辑地址相对应的给定分区缓冲区。操作控制器230可以控制缓冲存储器300和存储器装置100以将具有编程单位大小的写入数据编程在存储器装置100的相应存储器区域中,该相应存储器区域对应于缓冲存储器300的给定分区缓冲区。
图6示出存储在图5所示的缓冲区状态存储装置210中的缓冲区状态信息。
参照图6,缓冲区状态存储装置210可以包括分区缓冲区状态信息和公共缓冲区状态信息。具体地,图6所示的分区缓冲区状态信息可以对应于参照图4描述的缓冲存储器300的分区缓冲区b_Zone1至b_ZoneN中的每一个的分区缓冲区状态信息。例如,分区缓冲区状态信息可以包含第一至第N分区缓冲区状态信息Zone1_inf至ZoneN_inf。
分区缓冲区状态信息可以包含表示存储在每个分区缓冲区中的写入数据的大小的大小信息Data Size、表示每个分区缓冲区中是否存在任何能够存储附加写入数据的可用空间的分区缓冲区可用空间信息Full、以及存储在每个分区缓冲区中的写入数据的逻辑地址信息LBA。例如,第一分区缓冲区状态信息Zone1_inf可以包含表示存储在第一分区缓冲区b_Zone1中的写入数据的大小的第一大小信息Z1_data_Size、表示第一分区缓冲区b_Zone1中是否存在任何能够存储附加写入数据的可用空间的第一分区缓冲区可用空间信息Full_Zone1、以及表示存储在第一分区缓冲区b_Zone1中的写入数据的逻辑地址的第一逻辑地址信息Z1_LBA。第二至第N分区缓冲区状态信息Zone2_inf至ZoneN_inf中的每一个也可以包含与第一分区缓冲区状态信息Zone1_inf相同形式的关于相应分区缓冲区的信息。
分区缓冲区b_Zone1至b_ZoneN中的每一个都可以作为通过以特定大小单位划分分区缓冲区的存储空间而获得的时隙(slot)来进行管理。因此,存储在分区缓冲区中的写入数据的大小可以表示为对应于存储写入数据的时隙的数量。也就是说,包含在分区缓冲区状态信息中的第一至第N分区缓冲区数据大小Z1_data_Size至ZN_data_Size中的每一个的值可以对应于相应的分区缓冲区中存储写入数据的时隙的数量。第一至第N分区缓冲区可用空间信息Full_Zone1至Full_ZoneN中的每一个可以表示相应的分区缓冲区中是否存在任何能够存储附加写入数据的可用空间。因此,第一至第N分区缓冲区可用空间信息Full_Zone1至Full_ZoneN中的每一个可以具有“TRUE”或“FALSE”值。例如,当第一分区缓冲区b_Zone1中不再存在任何能够存储附加写入数据的可用空间时,第一分区缓冲区可用空间信息Full_Zone1可以具有“TRUE”值。第一至第N分区缓冲区逻辑地址信息Z1_LBA至ZN_LBA中的每一个可以包括逻辑地址。
缓冲区状态存储装置210可以包括作为关于参照图4描述的公共缓冲区的信息的公共缓冲区状态信息。公共缓冲区状态信息可以包含:表示存储在公共缓冲区中的写入数据大小的大小信息;表示公共缓冲区中是否存在任何能够存储附加写入数据的可用空间的可用空间信息;以及表示与存储在公共缓冲区中的写入数据相对应的分区的分区ID信息。
具体地,公共缓冲区状态信息可以包含表示存储在公共缓冲区中的写入数据的大小的大小信息C_data_Size。可以将公共缓冲区作为通过以特定大小单位划分公共缓冲区的存储空间而获得的时隙进行管理。因此,存储在公共缓冲区中的写入数据的大小可以表示为对应于存储写入数据的时隙的数量。也就是说,大小信息C_data_Size的值可以对应于存储写入数据的时隙的数量。公共缓冲区状态信息可以包含表示公共缓冲区中是否存在任何能够存储附加写入数据的可用空间的公共缓冲区可用空间信息Full_Common。因此,公共缓冲区可用空间信息Full_Common可以具有“TRUE”或“FALSE”值。例如,当公共缓冲区中不再存在任何能够存储附加写入数据的可用空间时,公共缓冲区可用空间信息Full_Common可以具有“TRUE”值。当公共缓冲区中存在能够存储附加写入数据的可用空间时,公共缓冲区可用空间信息Full_Common可以具有“FALSE”值。
公共缓冲区状态信息可以包含作为表示与存储在公共缓冲区中的写入数据相对应的分区的信息的第一至第N分区ID信息C_Zone1至C_ZoneN。具体地,第一分区ID信息C_Zone1可以包含关于存储在公共缓冲区中的写入数据之中的、与第一分区缓冲区b_Zone1相对应的写入数据的信息。类似地,第二至第N分区ID信息C_Zone2至C_ZoneN中的每一个可以包含存储在公共缓冲区中的写入数据之中的、与每个分区相对应的写入数据的信息。第一至第N分区ID信息C_Zone1至C_ZoneN中的每一个都可以以链表形式进行管理。因此,每当将写入数据存储在公共缓冲区中,与所存储的写入数据相对应的第一至第N分区ID信息C_Zone1至C_ZoneN中的一个可以被更新。
图7是示出根据本公开的实施例的图1的存储装置50的编程操作的示图。
参照图7,在编程操作中,存储器控制器200可以接收从主机400输入的写入数据和逻辑地址,并且将写入数据存储在缓冲存储器300中。在图7中,存储器单元阵列110可以具有与参照图4描述的存储器单元阵列110相同的结构,并且缓冲存储器300可以具有与参照图4描述的缓冲存储器300相同的结构。
在实施例中,存储器控制器200可以控制缓冲存储器300和存储器装置100以将存储在缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN中的写入数据编程到存储器装置100。存储在缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN中的每一个中的写入数据的大小可以是编程单位大小,可以以编程单位大小将写入数据编程到存储器装置100。可以将存储在第一至第N分区缓冲区b_Zone1至b_ZoneN中的写入数据存储在分别与第一至第N分区缓冲区b_Zone1至b_ZoneN相对应的存储器装置100的第一至第N分区Zone1至ZoneN中。
例如,待存储在第一分区Zone1中的写入数据可以存储在缓冲存储器300的第一分区缓冲区b_Zone1中。当存储在第一分区缓冲区b_Zone1中的写入数据的大小变为编程单位大小时,存储器控制器200可以控制缓冲存储器300和存储器装置100以对第一分区缓冲区b_Zone1执行编程操作。具体地,存储器控制器200可以控制缓冲存储器300和存储器装置100以将存储在第一分区缓冲区b_Zone1中的写入数据编程到第一分区Zone1。为了便于描述,仅描述了对第一分区Zone1执行的编程操作,但是可以以与对第一分区Zone1执行的编程操作相同的方式来执行对第二至第N分区Zone2至ZoneN中的每一个的编程操作。
在实施例中,通过对分区缓冲区执行编程操作,可以在第一至第N分区缓冲区b_Zone1至b_ZoneN之中的分区缓冲区中生成与存储在公共缓冲区Common中的写入数据相对应的可用空间。因此,在执行编程操作之后,存储器控制器200可以控制缓冲存储器300以将存储在公共缓冲区Common中的写入数据移动到分区缓冲区,在该分区缓冲区中生成了与存储在公共缓冲区Common中的写入数据相对应的可用空间。例如,当第一分区缓冲区b_Zone1中不存在任何可用空间时,缓冲存储器300可以将与第一分区Zone1相对应的写入数据存储在公共缓冲区Common中。随后,对第一分区缓冲区b_Zone1执行编程操作,从而可以在第一分区缓冲区b_Zone1中生成可用空间。当在第一分区缓冲区b_Zone1中生成可用空间时,存储器控制器200可以控制缓冲存储器300以将存储在公共缓冲区Common中的、与第一分区Zone1相对应的写入数据移动到第一分区缓冲区b_Zone1。
在实施例中,存储在第一至第N分区缓冲区b_Zone1至b_ZoneN中的任意一个中的写入数据的大小可以等于编程单位大小。存储器控制器200可以控制存储器装置100和缓冲存储器300以对存储写入数据的分区缓冲区执行编程操作,该写入数据的大小与编程单位大小相对应。通过执行编程操作,存储在分区缓冲区中的写入数据被存储在存储器装置100的第一至第N分区Zone1至ZoneN之中的相应分区中。另外,当存储在公共缓冲区Common中的写入数据之中的、待存储在相同分区中的写入数据的大小变得等于编程单位大小时,存储器控制器200可以控制存储器装置100和缓冲存储器300以对存储在公共缓冲区Common中的写入数据执行编程操作,以将写入数据存储在存储器装置100的相同分区中。通过执行编程操作,将公共缓冲区Common中存储的写入数据之中的待存储在相同分区中的写入数据直接移动到第一至第N分区Zone1至ZoneN之中的相应分区。将参照图8至图12描述其详细的编程方法。
图8示出根据本公开实施例的针对图1的缓冲存储器300的编程操作。图9示出根据本公开的实施例的针对图1的存储器装置100的编程操作。
参照图8和图9,存储器控制器200可以根据主机400的编程请求来控制缓冲存储器300和包括存储器单元阵列110的存储器装置100以执行编程操作。
在实施例中,存储器控制器200可以从主机400接收写入数据data和逻辑地址LBA。存储器控制器200可以基于逻辑地址LBA,确定存储器单元阵列110的第一至第N分区Zone1至ZoneN之中待存储写入数据data的分区。从主机400输入的逻辑地址可以根据其范围被划分为多个逻辑地址组。可以预先确定与各个逻辑地址组相对应的第一至第N分区Zone1至ZoneN。关于待存储写入数据data的分区的信息可以被称为分区ID(未示出)。
例如,逻辑地址LBA可以对应于存储器单元阵列110的第一至第N分区Zone1至ZoneN之中的第一分区Zone1。对应于写入数据data的分区ID可以表示第一分区Zone1。因此,由于写入数据data的分区ID表示第一分区Zone1,因此存储器控制器200可以控制缓冲存储器300以将由主机400请求编程的写入数据data存储在与第一分区Zone1相对应的第一分区缓冲区b_Zone1中。
每当存储器控制器200从主机400接收到写入数据和逻辑地址时,存储器控制器200可以以与上述方式相同的方式控制缓冲存储器300。因此,缓冲存储器300可以将写入数据存储在缓冲存储器300的第一至第N分区缓冲区b_Zone1至b_ZoneN之中的与逻辑地址相对应的分区缓冲区中。
参照图9,在实施例中,当具有与分配给缓冲存储器300的分区缓冲区b_Zone1至b_ZoneN之中的任意一个分区缓冲区的存储容量相对应的大小的写入数据被存储在该一个分区缓冲区中时,存储器控制器200可以控制缓冲存储器300,以将存储在该一个分区缓冲区中的写入数据存储在存储器装置100的多个存储器区域之中的与该一个分区缓冲区相对应的存储器区域中。例如,当由于主机400的重复的编程请求而在与第一分区Zone1相对应的第一分区缓冲区b_Zone1中可能不再存在任何可用空间时,存储器控制器200可以控制缓冲存储器300和存储器装置100以将存储在第一分区缓冲区b_Zone1中的写入数据Z1_data编程到第一分区Zone1,因为写入数据Z1_data的大小变得等于分配给第一分区缓冲区b_Zone1的存储容量。
在另一实施例中,当具有与编程单位大小相等的大小的写入数据Z1_data被存储在与第一分区Zone1相对应的第一分区缓冲区b_Zone1中时,存储器控制器200可以控制缓冲存储器300和存储器装置100以将存储在第一分区缓冲区b_Zone1中的写入数据Z1_data编程到第一分区Zone1。为了便于描述,仅描述了对第一分区Zone1和第一分区缓冲区b_Zone1的编程操作。然而,可以以与对第一分区Zone1和第一分区缓冲区b_Zone1执行的编程操作相同的方式来执行对第二至第N分区Zone2至ZoneN和第二至第N分区缓冲区b_Zone2至b_ZoneN中的每一个的编程操作。
图10示出根据本公开的实施例的图1的缓冲存储器300的编程操作。
参照图10,存储器控制器200可以从主机400接收与存储器单元阵列110的第一至第N分区Zone1至ZoneN之中的第一分区Zone1相对应的逻辑地址LBA和写入数据data。随后,存储器控制器200可以控制缓冲存储器300以将写入数据data存储在与第一分区Zone1相对应的第一分区缓冲区b_Zone1中。然而,此时,由于先前已处理的编程请求,第一分区缓冲区b_Zone1中可能不存在用于存储写入数据data的可用空间。当第一分区缓冲区b_Zone1中不存在可用空间时,存储器控制器200可以控制缓冲存储器300以将写入数据data存储在公共缓冲区Common中。
也就是说,由于主机400的重复的编程请求,与从主机400输入的逻辑地址LBA相对应的任意一个分区缓冲区中可能不存在可用空间。在这种情况下,存储器控制器200可以控制缓冲存储器300以将写入数据存储在公共缓冲区Common中。因此,公共缓冲区Common可以存储与第一至第N分区Zone1至ZoneN中的任意一个相对应的写入数据。
图11示出根据本公开的实施例的图1的缓冲存储器300的操作。
参照图11,缓冲存储器300可以包括第一至第N分区缓冲区b_Zone1至b_ZoneN和公共缓冲区Common。由于从主机400接收到重复的编程请求,因此在第二和第三分区缓冲区b_Zone2和b_Zone3中可能不再存在能够存储附加数据的可用空间。也就是说,第二和第三分区缓冲区b_Zone2和b_Zone3充满了写入数据。
在实施例中,第一至第N分区缓冲区b_Zone1至b_ZoneN和公共缓冲区Common可以通过以时隙为单位划分其存储空间来存储写入数据。另外,公共缓冲区Common可以存储分别与参照图4描述的第一至第N分区Zone1至ZoneN相对应的写入数据。例如,公共缓冲区Common可以存储分别与第一至第三分区Zone1至Zone3相对应的写入数据。图11示出与第一分区Zone1相对应的写入数据存储在公共缓冲区Common的三个时隙中,并且与第二和第三分区Zone2和Zone3中的每一个相对应的写入数据存储在公共缓冲区Common的一个时隙中。
在实施例中,存储器控制器200可以控制缓冲存储器300,以将存储在缓冲存储器300的任意一个分区缓冲区中的写入数据存储在与该一个分区缓冲区相对应的、存储器装置100的存储器区域中,然后将存储在公共缓冲区Common中的与该一个分区缓冲区相对应的写入数据移动到该一个分区缓冲区。
例如,当存储在第一分区缓冲区b_Zone1中的写入数据被编程到与第一分区缓冲区b_Zone1相对应的存储器区域时,第一分区缓冲区b_Zone1可以具有可用空间。如上参照图9所述,存储器控制器200可以控制缓冲存储器300以将存储在公共缓冲区Common中的与第一分区缓冲区b_Zone1相对应的写入数据移动到第一分区缓冲区b_Zone1。当存储在公共缓冲区Common中的写入数据被移动到第一分区缓冲区b_Zone1时,存储器控制器200可以控制缓冲存储器300,以将写入数据按照写入数据存储在公共缓冲区Common中的顺序移动到第一分区缓冲区b_Zone1。
图12示出根据本公开的实施例的缓冲存储器300的编程操作。
参照图12,与第一至第N分区Zone1至ZoneN中的任意一个相对应的写入数据可以顺序地存储在公共缓冲区Common中。
在实施例中,与第一至第N分区Zone1至ZoneN之中的第一分区Zone1相对应的写入数据可以顺序地存储在公共缓冲区Common中。顺序地存储在公共缓冲区Common中的与第一分区Zone1相对应的写入数据的大小可以等于存储器装置100的编程单位大小。此时,存储器控制器200可以控制存储器装置100和缓冲存储器300,以将存储在公共缓冲区Common中的与第一分区Zone1相对应的写入数据直接编程到第一分区Zone1。存储在公共缓冲区Common中的与第一分区Zone1相对应的写入数据可以按照写入数据存储在公共缓冲区Common中的顺序存储在第一分区Zone1中。为了便于描述,仅描述了写入数据对应于第一分区Zone1的情况,但是本公开不限于此。
在另一实施例中,与第一至第N分区Zone1至ZoneN中的每一个相对应的写入数据可以存储在公共缓冲区Common中。公共缓冲区Common的存储空间可以被管理为具有通过以一定大小为单位划分存储空间而获得的时隙。从主机400输入的写入数据可以以时隙为单位存储在公共缓冲区Common中。例如,与第一分区Zone1相对应的写入数据可以存储在公共缓冲区Common中的四个时隙中,并且与第二和第三分区Zone2和Zone3中的每一个相对应的写入数据可以存储在公共缓冲区Common中的一个时隙中。
在实施例中,存储在公共缓冲区Common中的写入数据之中的与第一分区Zone1相对应的写入数据的大小可以是编程单位大小。例如,图12所示的存储装置50的编程单位大小可以对应于公共缓冲区Common的四个时隙。存储器控制器200可以控制缓冲存储器300和存储器装置100,以将存储在公共缓冲区Common中的写入数据之中的与第一分区Zone1相对应的具有四个时隙的大小的写入数据编程到第一分区Zone1。存储器控制器200可以控制缓冲存储器300和存储器装置100,以按照写入数据存储在公共缓冲区Common中的顺序来对具有四个时隙的大小的写入数据进行编程。例如,存储器控制器200可以控制缓冲存储器300和存储器装置100,以按照写入数据存储在公共缓冲区Common中的顺序,选择与第一分区Zone1相对应的数据时隙,并且将存储在所选择数据时隙中的写入数据编程在第一分区Zone1中。存储器控制器200可以从参照图6描述的缓冲区状态存储装置210获取关于与第一分区Zone1相对应的写入数据的信息。
图13示出根据本公开的实施例的读取操作。
参照图13,当存储器控制器200从主机400接收到读取请求时,存储器控制器200可以控制存储器装置100和缓冲存储器300以处理读取请求。存储器控制器200可以根据读取请求接收从主机400输入的逻辑地址LBA。
在实施例中,存储器控制器200可以将逻辑地址LBA转换成物理地址PBA,该物理地址PBA表示存储了与读取请求相对应的读取数据的、存储器装置100的存储器单元的地址。另外,关于存储器单元阵列110的第一至第N分区Zone 1至Zone之中的与逻辑地址LBA相对应的分区的信息可以被称为分区ID。存储器控制器200可以基于与逻辑地址LBA相对应的分区ID来控制存储器装置100和缓冲存储器300以执行与读取请求相对应的读取操作。
在实施例中,在存储器装置100执行读取操作之前,存储器控制器200可以控制缓冲存储器300执行读取操作。存储装置50可以首先对缓冲存储器300执行读取操作,以确定与主机400请求读取的逻辑地址LBA相对应的读取数据是否存储在缓冲存储器300中。随后,存储装置50可以对存储器装置100执行读取操作。
具体地,存储器控制器200可以向缓冲存储器300提供缓冲读取命令和逻辑地址LBA。缓冲存储器300可以搜索第一至第N分区缓冲区b_Zone1至b_ZoneN之中的与逻辑地址LBA相对应的分区缓冲区,以确定是否存储了与逻辑地址LBA相对应的读取数据。
例如,从主机400输入的逻辑地址LBA的分区ID可以表示第二分区Zone2。缓冲存储器300可以仅搜索第二分区缓冲区b_Zone2,以确定与逻辑地址LBA相对应的读取数据是否存储在第二分区缓冲区b_Zone2中。根据该实施例,不会搜索所有的第一至第N分区缓冲区b_Zone1至b_ZoneN,而是仅搜索第一至第N分区缓冲区b_Zone1至b_ZoneN中的一些,以确定与由主机400请求读取的逻辑地址LBA相对应的读取数据是否存储在缓冲存储器300中,从而可以提高读取操作的效率。
图14是示出根据本公开的实施例的图1的存储装置50的操作方法的流程图。将参照相关附图描述图14中描述的操作方法。
参照图14,在步骤S1401中,图5的操作控制器230可以从主机400接收包括写入数据和逻辑地址的编程请求。存储器装置100中包括的存储器单元阵列110可以具有图4所示的结构。缓冲存储器300可以具有图4所示的结构。
在步骤S1403中,图5的数据大小比较器220可以确定写入数据的大小是否超过缓冲存储器300中的与逻辑地址相对应的分区缓冲区的可用存储容量。分区缓冲区的可用存储容量可以对应于分区缓冲区中没有存储数据的空白空间的大小。例如,数据大小比较器220可以基于通过将写入数据的大小与对应于逻辑地址的分区缓冲区的可用存储容量进行比较而获得的结果,来确定与逻辑地址相对应的分区缓冲区中是否存在任何可用空间。当写入数据的大小超过与逻辑地址相对应的分区缓冲区的可用存储容量时,数据大小比较器220可以确定与逻辑地址相对应的分区缓冲区中不存在可用空间。当分区缓冲区中不存在可用空间时,可以执行步骤S1405。
在步骤S1405中,数据大小比较器220可以从图5的缓冲区状态存储装置210接收公共缓冲区状态信息。公共缓冲区状态信息可以包含存储在公共缓冲区中的数据的大小信息、关于公共缓冲区中是否存在可用空间的信息、以及关于存储在公共缓冲区中的数据之中的与分区相对应的写入数据的信息。
在步骤S1407中,数据大小比较器220可以基于从缓冲区状态存储装置210提供的公共缓冲区状态信息,确定写入数据的大小是否超过缓冲存储器300中的公共缓冲区的可用存储容量。公共缓冲区的可用存储容量可以表示公共缓冲区中未存储数据的的空白空间的大小。例如,数据大小比较器220可以基于通过将写入数据的大小与公共缓冲区的可用存储容量进行比较而获得的结果,确定公共缓冲区中是否存在能够存储写入数据的可用空间。当写入数据的大小超过公共缓冲区的可用存储容量时,数据大小比较器220可以确定公共缓冲区中不存在可用空间。当公共缓冲区中不存在能够存储写入数据的可用空间时,操作控制器230可以向主机输出待机信号。
当在步骤S1407中确定写入数据的大小没有超过公共缓冲区的可用存储容量时,在步骤S1409中,操作控制器230可以控制缓冲存储器300以将从主机400输入的写入数据存储在公共缓冲区中。随后,操作控制器230可以基于将写入数据存储在公共缓冲区中的结果,控制缓冲区状态存储装置210以更新存储在缓冲区状态存储装置210中的公共缓冲区状态信息。
同时,当在步骤S1403中确定写入数据的大小没有超过分区缓冲区的可用存储容量时,在步骤S1411中,操作控制器230可以控制缓冲存储器300以将从主机400输入的写入数据存储在分区缓冲区中。另外,操作控制器230可以基于将写入数据存储在分区缓冲区中的结果,控制缓冲区状态存储装置210以更新存储在缓冲区状态存储装置210中的分区缓冲区状态信息。
图15是示出根据本公开的实施例的图1的缓冲存储器300中的分区缓冲区的操作方法的流程图。将参照相关附图来描述图15中描述的操作方法。
参照图15,在步骤S1501中,图5的操作控制器230可以将从主机400输入的写入数据存储在缓冲存储器300的与逻辑地址相对应的分区缓冲区中。此外,操作控制器230可以基于分区缓冲区中的写入数据的存储,控制缓冲区状态存储装置210以更新与该分区缓冲区相对应的分区缓冲区状态信息。
在步骤S1503中,操作控制器230可以确定存储写入数据的分区缓冲区中是否存在能够存储附加写入数据的可用空间。
当分区缓冲区中存在可用空间时,该进程可以结束。
可选地,当分区缓冲区中不存在可用空间时,在步骤S1505中,操作控制器230可以控制缓冲存储器300和存储取装置100以对分区缓冲区执行编程操作。具体地,操作控制器230可以控制缓冲存储器300和存储器装置100,以将存储在分区缓冲区中的以编程单位填充的写入数据编程到与分区缓冲区相对应的存储器装置100的分区。存储在分区缓冲区中的写入数据可以具有与编程单位大小相对应的大小。
在步骤S1507中,在执行对分区缓冲区的编程操作之后,操作控制器230可以控制缓冲区状态存储装置210以更新关于该分区缓冲区的分区缓冲区状态信息。
图16是示出根据本公开的实施例的图1的缓冲存储器300中的公共缓冲区的操作方法的流程图。将参照相关附图来描述图16中描述的操作方法。
参照图16,在步骤S1601中,图5的操作控制器230可以检查存储在公共缓冲区中的写入数据之中的具有相同分区ID的写入数据的大小。例如,操作控制器230可以接收从图5的缓冲区状态存储装置210提供的关于存储在公共缓冲区中的写入数据的信息。缓冲区状态存储装置210可以提供存储在公共缓冲区中的写入数据之中的、具有相同分区ID的写入数据的大小信息。
在步骤S1603中,操作控制器230可以确定存储在公共缓冲区中的写入数据之中的、具有相同分区ID的写入数据的大小是否与存储器装置100的编程单位大小一致。当具有相同分区ID的写入数据的大小与编程单位大小一致时,操作控制器230可以执行步骤S1611。当具有相同分区ID的数据的大小与编程单位大小不一致时,操作控制器230可以执行步骤S1605。
在步骤S1611中,操作控制器230可以控制缓冲存储器300和存储器装置100,以执行将具有相同分区ID的写入数据编程到包括在存储器装置100中的与分区ID相对应的分区的编程操作。
在步骤S1605中,操作控制器230可以确定包括在缓冲存储器300中的与分区ID相对应的分区缓冲区中是否存在任何可用空间。
当与分区ID相对应的分区缓冲区中不再存在可用空间时,在步骤S1607中,操作控制器230可以控制缓冲存储器300待机,直到对存储在分区缓冲区中的写入数据执行编程操作为止。
随后,当通过对存储在分区缓冲区中的写入数据执行编程操作而在分区缓冲区中生成可用空间时,在步骤S1609中,操作控制器230可以控制缓冲存储器300以将存储在公共缓冲区中的写入数据移动到与分区ID相对应的分区缓冲区。
另外,当在步骤S1605中确定与分区ID相对应的分区缓冲区中存在可用空间时,在步骤S1609中,操作控制器230可以控制缓冲存储器300以将存储在公共缓冲区中的写入数据移动到与分区ID相对应的分区缓冲区。
在步骤S1613中,操作控制器230可以控制缓冲区状态存储装置210以通过反映在步骤S1609或S1611之后改变的公共缓冲区的状态来更新公共缓冲区状态信息。
图17是示出根据实施例的存储器控制器1000的示图。存储器控制器1000可以对应于图1所示的存储器控制器200。
参照图17,存储器控制器1000连接到例如图1的主机400的主机和例如图1的存储器装置100的存储器装置。存储器控制器1000被配置为响应于从主机400接收到的请求来访问存储器装置100。例如,存储器控制器1000被配置为控制存储器装置100的读取操作、编程操作、擦除操作和后台操作。存储器控制器1000被配置为提供存储器装置100和主机400之间的接口。存储器控制器1000被配置为驱动用于控制存储器装置100的固件。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以被配置为在存储器控制器1000的组件之间提供通道。
处理器1010可以控制存储器控制器1000的全部操作,并且可以执行逻辑操作。处理器1010可以通过主机接口1040与例如主机400的外部装置通信,并且可以通过存储器接口1060与存储器装置100通信。此外,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制例如图1的存储装置50的存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机400提供的逻辑块地址LBA转换为物理块地址PBA。FTL可以接收逻辑块地址LBA,并且使用映射表将逻辑块地址LBA转换为物理块地址PBA。FTL可以根据映射单位使用几种地址映射方法中的一种。代表性的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
处理器1010被配置为使从主机400接收到的数据随机化。例如,处理器1010可以使用随机化种子来使从主机400接收到的数据随机化。经随机化的数据作为待被编程在存储器装置100的存储器单元阵列中的数据被提供。
处理器1010可以通过驱动软件或固件来执行数据随机化和去随机化。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)、动态RAM(DRAM)等。
ECC电路1030可以执行ECC操作。ECC电路1030可以对待写入存储器装置100的数据执行ECC编码。经ECC编码的数据可以通过存储器接口1060被传送到存储器装置100。ECC电路1030可以对通过存储器接口1060从存储器装置100接收到的数据执行ECC解码。例如,ECC电路1030可以作为存储器接口1060的组件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与主机400通信。主机接口1040可以使用诸如以下的各种通信方式中的至少一种与主机400通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、火线、***组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)。
缓冲器控制电路1050被配置为在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置为在处理器1010的控制下与存储器装置100通信。存储器接口1060可以通过通道与存储器装置100通信命令、地址和数据。
示例性地,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。在实施例中,存储器缓冲器1020可以对应于图1的缓冲存储器300。
示例性地,处理器1010可以通过使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可以通过存储器接口1060从存储器装置100加载代码。
示例性地,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线彼此分开,并且可以不相互干扰或影响。数据总线可以连接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以连接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图18是示出根据本公开的实施例的应用了图1的存储装置的存储卡***2000的框图。
参照图18,存储卡***2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置为访问存储器装置2200。例如,存储器控制器2100被配置为控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置为提供存储器装置2200和例如主机的外部装置之间的接口。存储器控制器2100被配置为驱动用于控制存储器装置2200的固件。存储器控制器2100可以与参照图1描述的存储器控制器200相同地实施。
示例性地,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定通信协议与外部装置(例如,主机)通信。示例性地,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙、NVMe等。
示例性地,存储器装置2200可以利用诸如以下的各种非易失性存储器装置中的任意一种来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋力矩转移磁性RAM(STT-MRAM)等。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中,以构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)、通用闪存(UFS)等。
图19是示例性地示出根据本公开的实施例的应用了图1的存储装置50的固态驱动器(SSD)***3000的框图。
参照图19,SSD***3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个非易失性存储器3221至322n、辅助电源3230和缓冲存储器3240。多个非易失性存储器3221至322n可以是闪速存储器。
在实施例中,SSD控制器3210可以用作参照图1描述的存储器控制器200。
SSD控制器3210可以响应于从主机3100接收到的信号SIG来控制多个闪速存储器3221至322n。示例性地,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由诸如以下的接口中的至少一种限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。
辅助电源3230通过电源连接器3002连接到主机3100。当来自主机3100的电力供应不平稳时,辅助电源3230可以向SSD 3200提供电力。示例性地,辅助电源3230可以位于SSD3200中,或者位于SSD 3200的外部。例如,辅助电源3230可以位于主板上,并且向SSD 3200提供辅助电力。
缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器中的任意一种。在实施例中,缓冲存储器3240可以对应于图1所示的缓冲存储器300,并且闪速存储器3221至322n可以对应于图1所示的存储器装置100。
图20是示出根据本公开的实施例的应用了图1的存储装置50的用户***4000的框图。
参照图20,用户***4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户***4000中包括的组件、操作***(OS)、用户程序等。示例性地,应用处理器4100可以包括用于控制用户***4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以作为片上***(SoC)被提供。
存储器模块4200可以作为用户***4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器而操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器,或诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。示例性地,应用处理器4100和存储器模块4200可以通过基于堆叠封装(PoP)被封装在一起而作为一个半导体封装被提供。
网络模块4300可以与外部装置通信。示例性地,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信***(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙、Wi-Fi等。示例性地,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储在其中的数据传输到应用处理器4100。示例性地,存储模块4400可以利用诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存的非易失性半导体存储器装置来实施。示例性地,存储模块4400可以作为诸如用户***4000的存储卡或外部驱动器的可移动驱动器被提供。
示例性地,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的存储器装置100相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
用户接口4500可以包括用于将数据或命令输入到应用处理器4100或将数据输出到外部装置的接口。示例性地,用户接口4500可以包括诸如以下的用户输入接口中的一种或多种:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器、压电元件等。用户接口4500可以包括诸如以下的用户输出接口中的一种或多种:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器、监控器等。
根据本公开,可以提供一种提供改进的缓冲存储器管理的存储装置以及该存储装置的操作方法。
虽然已经参考本公开的特定示例性实施例示出和描述了本公开,但是本领域技术人员将理解的是,在不脱离由所附权利要求书及其等同方案所限定的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求书确定,而且还应由其等同方案来确定。
在上述实施例中,可以选择性地执行所有步骤或者可以省略部分步骤。在每个实施例中,这些步骤不一定按照所描述的顺序执行,并且可以重新排列。在本说明书和附图中公开的实施例仅是为了便于理解本公开的示例,本公开不限于此。也就是说,对于本领域技术人员显而易见的是,可以基于本公开的技术范围进行各种修改。
同时,已经在附图和说明书中描述了本公开的示例性实施例。尽管本文使用了特定术语,但这些术语仅用于解释本公开的实施例。因此,本公开不限于上述实施例,而在本公开的精神和范围内可以有许多变型。对于本领域技术人员显而易见的是,除了本文所公开的实施例之外,还可以基于本公开的技术范围进行各种修改。
Claims (20)
1.一种存储装置,包括:
存储器装置,包括分别与多个地址组相对应的多个存储器区域,所述多个地址组中的每一个包括由主机提供的连续逻辑地址;
缓冲存储器,包括公共缓冲区和多个分区缓冲区,所述多个分区缓冲区分别对应于所述多个存储器区域;以及
存储器控制器,根据与从所述主机提供的逻辑地址相对应的写入数据的第一大小是否超过与所述逻辑地址相对应的分区缓冲区的可用存储容量,控制所述缓冲存储器以将所述写入数据临时存储在所述与所述逻辑地址相对应的分区缓冲区和所述公共缓冲区中的一个中,所述可用存储容量表示所述分区缓冲区的没有存储数据的空白存储空间的大小。
2.根据权利要求1所述的存储装置,其中所述存储器控制器包括:
数据大小比较器,将所述写入数据的第一大小与所述分区缓冲区的可用存储容量进行比较,以确定所述写入数据的第一大小是否超过所述分区缓冲区的可用存储容量;以及
操作控制器,根据所述数据大小比较器的比较结果,控制所述缓冲存储器以将所述写入数据临时存储在所述与所述逻辑地址相对应的分区缓冲区和所述公共缓冲区中的一个中。
3.根据权利要求2所述的存储装置,其中,当所述写入数据的第一大小等于或小于所述分区缓冲区的可用存储容量时,所述操作控制器控制所述缓冲存储器以将所述写入数据存储在所述分区缓冲区中。
4.根据权利要求2所述的存储装置,其中,当所述写入数据的第一大小超过所述分区缓冲区的可用存储容量时,所述操作控制器控制所述缓冲存储器以将所述写入数据存储在所述公共缓冲区中。
5.根据权利要求2所述的存储装置,其中所述存储器控制器进一步包括:缓冲区状态存储装置,存储与所述多个分区缓冲区相关联的分区缓冲区状态信息以及与所述公共缓冲区相关联的公共缓冲区状态信息。
6.根据权利要求5所述的存储装置,其中所述分区缓冲区状态信息包含关于存储在所述多个分区缓冲区中的每一个中的写入数据的大小的信息、关于所述多个分区缓冲区中的每一个中的可用空间的信息、以及关于存储在所述多个分区缓冲区中的每一个中的写入数据的逻辑地址的信息。
7.根据权利要求5所述的存储装置,其中所述公共缓冲区状态信息包含关于存储在所述公共缓冲区中的数据的大小的信息和表示与存储在所述公共缓冲区中的数据的逻辑地址相对应的分区缓冲区的分区ID信息。
8.根据权利要求5所述的存储装置,其中所述操作控制器基于所述分区缓冲区状态信息和所述公共缓冲区状态信息,控制所述缓冲存储器和所述存储器装置以执行将存储在所述多个分区缓冲区和所述公共缓冲区中的写入数据存储在所述多个存储器区域中的编程操作。
9.根据权利要求8所述的存储装置,其中,当存储在所述多个分区缓冲区之中的一个分区缓冲区中的写入数据的大小等于分配给所述一个分区缓冲区的存储容量时,所述操作控制器控制所述缓冲存储器和所述存储器装置以将存储在所述一个分区缓冲区中的写入数据存储在所述多个存储器区域之中的与所述一个分区缓冲区相对应的存储器区域中,分配给所述一个分区缓冲区的所述存储容量表示所述一个分区缓冲区的最大存储大小。
10.根据权利要求9所述的存储装置,其中在将存储在所述一个分区缓冲区中的写入数据存储在与所述一个分区缓冲区相对应的存储器区域中之后,所述操作控制器控制所述缓冲存储器以将存储在所述公共缓冲区中的数据之中的与所述存储器区域相对应的数据移动到所述一个分区缓冲区。
11.根据权利要求8所述的存储装置,其中,当存储在所述公共缓冲区中的写入数据具有等于预定大小的第二大小时,所述操作控制器控制所述缓冲存储器和所述存储器装置以将所述具有第二大小的写入数据存储在所述多个存储器区域之中的与所述具有第二大小的写入数据的逻辑地址相对应的存储器区域中,并且
其中所述预定大小是与所述存储器装置的编程单位相对应的大小。
12.根据权利要求2所述的存储装置,其中,当所述写入数据的第一大小超过所述分区缓冲区的可用存储容量和所述公共缓冲区的可用存储容量中的每一个时,所述操作控制器向所述主机提供待机信号,并且控制所述缓冲存储器和所述存储器装置以将存储在所述分区缓冲区中的写入数据和存储在所述公共缓冲区中的写入数据的一部分存储在所述多个存储器区域之中的与所述分区缓冲区相对应的存储器区域中。
13.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置和缓冲存储器,所述存储器装置包括分别与待由主机提供的多个逻辑地址组相对应的多个存储器区域,所述缓冲存储器包括公共缓冲区和分别与所述多个存储器区域相对应的多个分区缓冲区,所述方法包括:
从所述主机接收逻辑地址以及与所述逻辑地址相对应的写入数据;
确定所述写入数据的大小是否超过所述多个分区缓冲区之中的与所述逻辑地址相对应的分区缓冲区的可用存储容量,所述可用存储容量表示所述分区缓冲区的没有存储数据的空白存储空间的大小;
响应于所述写入数据的大小等于或小于所述分区缓冲区的可用存储容量,控制所述缓冲存储器以将所述写入数据存储在所述分区缓冲区中;以及
响应于所述写入数据的大小超过所述分区缓冲区的可用存储容量,控制所述缓冲存储器以将所述写入数据存储在所述公共缓冲区中。
14.根据权利要求13所述的方法,进一步包括:
将表示在所述多个分区缓冲区中的每一个中是否存在能够存储附加写入数据的可用空间的分区缓冲区可用空间信息、关于存储在所述多个分区缓冲区中的每一个中的写入数据的大小的信息、以及关于存储在所述多个分区缓冲区中的每一个中的写入数据的逻辑地址的信息存储在所述存储器控制器中;以及
将关于存储在所述公共缓冲区中的数据的大小的信息和表示与存储在所述公共缓冲区中的数据的逻辑地址相对应的分区缓冲区的分区ID信息存储在所述存储器控制器中。
15.根据权利要求14所述的方法,进一步包括:基于所述分区缓冲区可用空间信息和所述关于存储在所述多个分区缓冲区中的每一个中的写入数据的大小的信息,控制所述缓冲存储器和所述存储器装置以将存储在所述分区缓冲区中的写入数据存储在与所述分区缓冲区相对应的存储器区域中。
16.根据权利要求15所述的方法,进一步包括:在将存储在所述分区缓冲区中的写入数据存储在与所述分区缓冲区相对应的存储器区域中之后,控制所述缓冲存储器以将与所述存储器区域相对应并且存储在所述公共缓冲区中的写入数据移动到所述分区缓冲区,所述存储器区域对应于所述分区缓冲区。
17.根据权利要求14所述的方法,进一步包括:基于所述关于存储在所述公共缓冲区中的数据的大小的信息和所述分区ID信息,控制所述缓冲存储器和所述存储器装置以将存储在所述公共缓冲区中的写入数据存储在所述多个存储器区域之中的与存储在所述公共缓冲区中的所述写入数据的逻辑地址相对应的存储器区域中。
18.根据权利要求13所述的方法,进一步包括:根据所述写入数据的大小是否超过所述分区缓冲区的可用存储容量和所述公共缓冲区的可用存储容量中的每一个,向所述主机输出待机信号。
19.一种存储装置,包括:
存储器装置,包括分别与多个逻辑地址组相对应的多个存储器区域,所述多个逻辑地址组中的每一个对应于由主机提供的连续逻辑地址;
多个分区缓冲区,分别与所述多个存储器区域相对应,所述多个分区缓冲区分别存储与所述多个逻辑地址组相对应的数据;以及
存储器控制器,控制所述多个分区缓冲区,以将与由所述主机提供的逻辑地址相对应的写入数据存储在所述多个分区缓冲区之中的与所述逻辑地址相对应的分区缓冲区中。
20.根据权利要求19所述的存储装置,进一步包括公共缓冲区,所述公共缓冲区存储与所述多个分区缓冲区之中的两个或更多个分区缓冲区相对应的写入数据,
其中,当从所述主机输入目标写入数据,所述目标写入数据具有超过所述多个分区缓冲区之中的相应分区缓冲区的可用存储容量的大小时,所述存储器控制器控制所述公共缓冲区以将所述目标写入数据存储在所述公共缓冲区中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0109188 | 2020-08-28 | ||
KR1020200109188A KR20220028332A (ko) | 2020-08-28 | 2020-08-28 | 저장 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115708A true CN114115708A (zh) | 2022-03-01 |
Family
ID=80356881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110427379.4A Withdrawn CN114115708A (zh) | 2020-08-28 | 2021-04-21 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11481146B2 (zh) |
KR (1) | KR20220028332A (zh) |
CN (1) | CN114115708A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220104511A (ko) * | 2021-01-18 | 2022-07-26 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
US11977739B2 (en) | 2022-09-01 | 2024-05-07 | Western Digital Technologies, Inc. | Handling write data burst for improved performance and resource usage |
US12056364B1 (en) * | 2023-04-05 | 2024-08-06 | Qualcomm Incorporated | Write buffer and logical unit management in a data storage device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624776A (zh) * | 2003-12-01 | 2005-06-08 | 雅马哈株式会社 | 具有用于并行操作的多个重现/记录单元的光盘设备 |
CN110727397A (zh) * | 2018-07-16 | 2020-01-24 | 爱思开海力士有限公司 | 存储器***以及用于操作该存储器***的方法 |
CN110751972A (zh) * | 2018-07-23 | 2020-02-04 | 爱思开海力士有限公司 | 存储器***及该存储器***的操作方法 |
US20200089603A1 (en) * | 2018-09-18 | 2020-03-19 | SK Hynix Inc. | Operating method of memory system and memory system |
CN110928486A (zh) * | 2018-09-19 | 2020-03-27 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN111090596A (zh) * | 2018-10-24 | 2020-05-01 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
US20200201570A1 (en) * | 2018-12-20 | 2020-06-25 | Samsung Electronics Co., Ltd. | Method of writing data in storage device, storage device performing the same and storage system including the same |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101083673B1 (ko) | 2008-10-01 | 2011-11-16 | 주식회사 하이닉스반도체 | 반도체 스토리지 시스템 및 그 제어 방법 |
US8205063B2 (en) * | 2008-12-30 | 2012-06-19 | Sandisk Technologies Inc. | Dynamic mapping of logical ranges to write blocks |
US9690695B2 (en) * | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
KR102074329B1 (ko) | 2013-09-06 | 2020-02-06 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
KR20180047402A (ko) | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
KR20190087217A (ko) * | 2018-01-16 | 2019-07-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
2020
- 2020-08-28 KR KR1020200109188A patent/KR20220028332A/ko unknown
-
2021
- 2021-03-01 US US17/189,007 patent/US11481146B2/en active Active
- 2021-04-21 CN CN202110427379.4A patent/CN114115708A/zh not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624776A (zh) * | 2003-12-01 | 2005-06-08 | 雅马哈株式会社 | 具有用于并行操作的多个重现/记录单元的光盘设备 |
CN110727397A (zh) * | 2018-07-16 | 2020-01-24 | 爱思开海力士有限公司 | 存储器***以及用于操作该存储器***的方法 |
CN110751972A (zh) * | 2018-07-23 | 2020-02-04 | 爱思开海力士有限公司 | 存储器***及该存储器***的操作方法 |
US20200089603A1 (en) * | 2018-09-18 | 2020-03-19 | SK Hynix Inc. | Operating method of memory system and memory system |
CN110928486A (zh) * | 2018-09-19 | 2020-03-27 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN111090596A (zh) * | 2018-10-24 | 2020-05-01 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
US20200201570A1 (en) * | 2018-12-20 | 2020-06-25 | Samsung Electronics Co., Ltd. | Method of writing data in storage device, storage device performing the same and storage system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR20220028332A (ko) | 2022-03-08 |
US11481146B2 (en) | 2022-10-25 |
US20220066692A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11543984B2 (en) | Memory controller, storage device and operating method thereof | |
CN111752857B (zh) | 存储器控制器及操作存储器控制器的方法 | |
US20210173785A1 (en) | Storage device and method of operating the same | |
US10846002B2 (en) | Memory controller to adjust the size of write data, operating method therof and storage device including the same | |
US11531492B2 (en) | Device and method of operating the same | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN111444115B (zh) | 存储装置及其操作方法 | |
US11481146B2 (en) | Storage device including a buffer memory having a common buffer for storing over-sized write data, and operating method thereof | |
CN111913556A (zh) | 储存装置及储存装置的操作方法 | |
US11543998B2 (en) | Memory controller for controlling different numbers of memory devices and storage device including the same | |
CN114443507A (zh) | 存储器***及其操作方法 | |
KR20200114009A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN112346650A (zh) | 存储装置及其操作方法 | |
CN114078541A (zh) | 存储器控制器及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN111506515B (zh) | 存储器控制器及其操作方法 | |
CN113806240A (zh) | 存储装置及其操作方法 | |
CN112783432A (zh) | 存储装置和其操作方法 | |
CN115469798A (zh) | 存储装置及操作存储装置的方法 | |
CN113555054A (zh) | 存储装置及其操作方法 | |
CN113126895A (zh) | 存储装置及其操作方法 | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11210223B2 (en) | Storage device and operating method thereof | |
US12056389B2 (en) | Computing system of setting device configuration and operating method thereof |
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: 20220301 |
|
WW01 | Invention patent application withdrawn after publication |