CN114327251A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN114327251A CN114327251A CN202110537756.XA CN202110537756A CN114327251A CN 114327251 A CN114327251 A CN 114327251A CN 202110537756 A CN202110537756 A CN 202110537756A CN 114327251 A CN114327251 A CN 114327251A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- memory device
- buffer
- write
- 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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- 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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储装置,该存储装置包括:存储器装置,包括多个分区,多个分区中的每一个具有多个存储块;缓冲存储器装置,包括主机缓冲器以及存储器缓冲器,主机缓冲器接收待存储在多个分区中的一个分区中的写入数据,存储器缓冲器临时存储从主机缓冲器传输的写入数据;缓冲器控制器,被配置为控制缓冲存储器装置将写入数据传输到存储器装置;以及写入操作控制器,被配置为控制存储器装置将写入数据存储在多个分区中的该一个分区中。在写入操作控制器检测到写入数据中的错误之后,写入操作控制器控制存储器装置获得先前存储的数据和经校正的写入数据,并且将先前存储的数据和经校正的写入数据存储在第二存储块组中。
Description
相关申请的交叉引用
本申请要求于2020年9月28日向韩国知识产权局提交的、申请号为10-2020-0125706的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开涉及一种电子装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
存储装置是在诸如计算机或智能电话的主机的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置以及用于控制存储器装置的存储器控制器。存储器装置可以被分类述易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供应电力时才存储数据并且在切断电力供应时丢失存储的数据的存储器装置。易失性存储器装置的示例包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是即使电力被切断也不丢失数据的装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器等。
发明内容
本公开的实施例提供了通过利用分区命名空间(zoned name space)来操作存储装置的改进方法。
一种根据本公开的实施例的存储装置可以包括:存储器装置,包括多个分区(zone),多个分区中的每一个具有形成存储块组的多个存储块;缓冲存储器装置,包括主机缓冲器以及存储器缓冲器,主机缓冲器接收来自主机的、待存储在多个分区中的一个分区中的写入数据,存储器缓冲器临时存储从主机缓冲器传输的写入数据;缓冲器控制器,被配置为控制缓冲存储器装置将写入数据从存储器缓冲器传输到存储器装置;以及写入操作控制器,被配置为控制存储器装置将从缓冲存储器装置传输的写入数据存储在多个分区中的该一个分区中,多个分区中的该一个分区包括第一存储块组中的先前存储的数据。在写入操作控制器检测到写入数据中的错误之后,写入操作控制器可以控制存储器装置获得先前存储的数据和经校正的写入数据,并且将先前存储的数据和经校正的写入数据存储在第二存储块组中。
一种根据本公开的实施例的存储装置的操作方法,该存储装置包括存储器装置,该存储器装置包括被分配给多个分区的多个存储块,该方法可以包括:从主机接收包括写入数据的写入请求;临时存储从主机传输的写入数据;将临时存储的写入数据顺序地存储在存储器装置中的多个分区中的一个分区中;确定在写入数据移动时是否发生错误;并且当发生错误时执行恢复操作。
根据本技术,提供了一种包括分区命名空间的存储装置的改进操作方法。
附图说明
图1是示出根据本公开的实施例的存储装置的框图。
图2是示出根据本公开的实施例的存储器装置的框图。
图3是示出根据本公开的实施例的存储块的示图。
图4是示出根据本公开的实施例的分区的示图。
图5是示出根据本公开的实施例的分区和存储块之间的关系的示图。
图6是示出根据本公开的实施例的在数据移动的进程期间发生的错误的示图。
图7是示出根据本公开的实施例的缓冲器控制器和缓冲存储器装置的操作的示图。
图8是示出根据本公开的实施例的写入操作控制器的操作的示图。
图9是示出根据本公开的实施例的缓冲存储器装置的示图。
图10是示出根据本公开的实施例的映射表的示图。
图11是示出根据本公开的实施例的命令表的示图。
图12是示出根据本公开的实施例的恢复操作的示图。
图13是示出根据本公开的实施例的存储器控制器的框图。
图14是示出根据本公开的实施例的存储装置的操作方法的流程图。
图15是示出根据本公开的实施例的存储卡系统的示图。
图16是示出根据本公开的实施例的固态驱动器(SSD)系统的示图。
图17是示出根据本公开的实施例的用户系统的示图。
具体实施方式
示出根据本说明书或本申请中公开的概念的实施例的特定结构或功能描述仅仅是为了描述根据本公开的概念的实施例。根据本公开的概念的实施例可以以各种形式实施,并且描述不限于本说明书或本申请中描述的实施例。
在下文中,将参照附图详细描述本公开的实施例,使得本公开所属领域的技术人员可以容易地实施本公开的技术精神。
图1是示出根据本公开的实施例的存储装置的框图。
参照图1,存储装置1000可以包括存储器装置100、存储器控制器200和缓冲存储器装置300。
存储装置1000可以是在诸如以下的主机2000的控制下存储数据的装置:例如,移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、显示装置、平板PC或车载信息娱乐系统。
根据作为与主机2000的通信方法的主机接口,存储装置1000可以被实施为各种类型的存储装置中的一种。例如,存储装置1000可以被实施为诸如以下的各种类型的存储装置中的任意一种:固态驱动器(SSD),MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置1000可以被实施为各种类型的封装中的任意一种。例如,存储装置1000可以被实施为诸如以下的各种类型的封装类型中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据或使用存储的数据。具体地,存储器装置100可以响应于存储器控制器200的控制而操作。另外,存储器装置100可以包括多个存储器管芯,并且多个存储器管芯中的每一个可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元,并且一个存储块可以包括多个页面。此处,页面可以是用于将数据存储在存储器装置100中或者读取存储器装置100中存储的数据的一个单位。
存储器装置100可以被实施为双倍数据速率同步动态随机存取存储器(DDRSDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移扭矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述,假设存储器装置100是NAND闪速存储器。
存储器装置100可以从存储器控制器200接收命令和地址。存储器装置100可以被配置为访问存储器单元阵列中由接收的地址选择的区域。访问选择的区域可以指对选择的区域执行与接收的命令相对应的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。此处,编程操作可以是存储器装置100将数据写入由地址选择的区域的操作。读取操作可以指存储器装置100从由地址选择的区域读取数据的操作。擦除操作可以指存储器装置100擦除由地址选择的区域中存储的数据的操作。
存储器控制器200可以控制存储装置1000的全部操作。
当向存储装置1000施加电力时,存储器控制器200可以运行固件(FW)。固件(FW)可以包括:主机接口层(HIL),接收从主机2000输入的请求或向主机2000输出响应;闪存转换层(FTL),管理主机2000的接口和存储器装置100的接口之间的操作;以及闪存接口层(FIL),向存储器装置100提供命令或从存储器装置100接收响应。
存储器控制器200可以从主机2000接收数据和逻辑地址(LA),并且将LA转换为物理地址(PA),该PA指示待存储存储器装置100中包括的数据的存储器单元的地址。LA可以是逻辑块地址(LBA),并且PA可以是物理块地址(PBA)。
存储器控制器200可以根据主机2000的请求来控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器控制器200可以将编程命令、PBA和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和PBA提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和PBA提供到存储器装置100。
存储器控制器200可以不管来自主机2000的请求或者独立于来自主机2000的请求,自行控制存储器装置100执行编程操作、读取操作或擦除操作。例如,存储器控制器200可以控制存储器装置100执行用于执行诸如损耗均衡、垃圾收集和读取回收的后台操作的编程操作、读取操作或擦除操作。
根据本公开的实施例,存储器控制器200可以包括缓冲器控制器210和写入操作控制器220。
缓冲器控制器210可以控制缓冲存储器装置300处理从主机2000提供的写入请求。具体地,为了处理从主机2000提供的写入请求,缓冲器控制器210可以控制缓冲存储器装置300将缓冲存储器装置300中存储的数据传输到存储器装置100。稍后参照图7详细描述缓冲器控制器210的详细操作方法。
写入操作控制器220可以控制存储器装置100处理从主机2000提供的写入请求。具体地,写入操作控制器220可以控制存储器装置100执行与从主机2000提供的写入请求相对应的写入操作。稍后参照图8详细描述写入操作控制器220的详细操作方法。
主机2000可以使用诸如以下的各种通信方法中的至少一种与存储装置1000通信:例如,通用串行总线(USB)、串行AT附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、高速芯片间(HSIC)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和减小负载的DIMM(LRDIMM)。
图2是示出根据本公开的实施例的存储器装置的框图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110可以包括多个存储块BLK1至BLKz(其中z是正整数)。多个存储块BLK1至BLKz可以通过行线RL连接到行解码器121。此处,行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。多个存储块BLK1至BLKz可以通过位线BL1至BLn连接到页面缓冲器组123(其中n是正整数)。多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。连接到相同字线的存储器单元可以被定义为一个页面。因此,一个存储块可以包括多个页面。
存储器单元阵列110中包括的存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
外围电路120可以被配置为在控制逻辑130的控制下对存储器单元阵列110的选择的区域执行编程操作、读取操作或擦除操作。也就是说,外围电路120可以在控制逻辑130的控制下驱动存储器单元阵列110。例如,外围电路120可以在控制逻辑130的控制下向行线RL和位线BL1至BLn施加各种操作电压或释放施加的电压。
具体地,外围电路120可以包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
行解码器121可以通过行线RL连接到存储器单元阵列110。行线RL可以包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可以包括普通字线和虚设字线。另外,行线RL可以进一步包括管道选择线。
行解码器121可以被配置为响应于控制逻辑130的控制而操作。行解码器121可以从控制逻辑130接收行地址RADD。具体地,行解码器121可以被配置为对行地址RADD进行解码。行解码器121可以根据经解码的地址来选择存储块BLK1至BLKz中的至少一个。另外,行解码器121可以根据经解码的地址来选择所选择的存储块的至少一个字线,以将由电压生成器122生成的电压施加到至少一个字线WL。
例如,在编程操作期间,行解码器121可以将编程电压施加到选择的字线,并且将电平低于编程电压的电平的编程通过电压施加到未选择的字线。在编程验证操作期间,行解码器121可以将验证电压施加到选择的字线,并且将高于验证电压的验证通过电压施加到未选择的字线。在读取操作期间,行解码器121可以将读取电压施加到选择的字线,并且将高于读取电压的读取通过电压施加到未选择的字线。
在实施例中,可以以存储块为单位执行存储器单元阵列110的擦除操作。在擦除操作期间,行解码器121可以根据经解码的地址来选择一个存储块,并且行解码器121可以将接地电压施加到连接到选择的存储块的字线。
电压生成器122可以响应于控制逻辑130的控制而操作。电压生成器122可以被配置为使用供应到存储器装置100的外部电源电压来生成多个电压。例如,电压生成器122可以在控制逻辑130的控制下生成编程电压、验证电压、通过电压、读取电压、擦除电压等。也就是说,电压生成器122可以响应于操作信号OPSIG而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压可以用作存储器单元阵列110的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个电压。例如,电压生成器122可以包括接收内部电源电压的多个泵浦(pumping)电容器,并且可以响应于控制逻辑130的控制而选择性地激活多个泵浦电容器来生成多个电压。另外,所生成的电压可以由行解码器121供应到存储器单元阵列110。
页面缓冲器组123可以包括第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn可以分别通过第一至第n位线BL1至BLn连接到存储器单元阵列110。另外,第一至第n页面缓冲器PB1至PBn可以响应于控制逻辑130的控制而操作。具体地,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIGNALS而操作。例如,第一至第n页面缓冲器PB1至PBn可以临时存储通过第一至第n位线BL1至BLn接收的数据,或者可以在读取操作或验证操作期间感测位线BL1至BLn的电压或电流。
具体地,在编程操作期间,当将编程脉冲施加到选择的字线时,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn,将通过输入/输出电路125接收的数据DATA传送到选择的存储器单元。根据传送的数据DATA,可以对选择的页面的存储器单元进行编程。连接到施加编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。连接到施加编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以被维持。
在编程验证操作期间,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn从选择的存储器单元读取页面数据。
在读取操作期间,在列解码器124的控制下,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn从选择的页面的存储器单元读取数据DATA,并且将读取的数据DATA输出到输入/输出电路125。
在擦除操作期间,第一至第n页面缓冲器PB1至PBn可以使第一至第n位线BL1至BLn浮置。
列解码器124可以响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间传送数据。例如,列解码器124可以通过数据线DL与第一至第n页面缓冲器PB1至PBn交换数据,或者可以通过列线CL与输入/输出电路125交换数据。
输入/输出电路125可以将从存储器控制器200接收的命令CMD和地址ADDR传送到控制逻辑130,或者可以与列解码器124交换数据DATA。
在读取操作或验证操作期间,感测电路126可以响应于允许位信号VRYBIT而生成参考电流,并且将从页面缓冲器组123接收的感测电压VPB与由参考电流生成的参考电压进行比较,以输出通过信号PASS或失败信号FAIL。
控制逻辑130可以响应于命令CMD和地址ADDR而输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位信号VRYBIT以控制外围电路120。
另外,控制逻辑130可以响应于通过信号PASS或失败信号FAIL而确定验证操作是通过还是失败。另外,控制逻辑130可以控制页面缓冲器组123将包括通过信号PASS或失败信号FAIL的验证信息临时存储在页面缓冲器组123中。具体地,控制逻辑130可以响应于通过信号PASS或失败信号FAIL而确定存储器单元的编程状态。例如,当存储器单元作为三层单元(TLC)进行操作时,控制逻辑130可以确定存储器单元的编程状态是擦除状态还是第一至第七编程状态中的任意一个。
图3是示出根据本公开的实施例的存储块的示图。
参照图3,在存储块BLKi(其中i为正整数)中,彼此平行布置的多个字线可以连接在第一选择线和第二选择线之间。此处,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。更具体地,存储块BLKi可以包括连接在位线BL1至BLn和源极线SL之间的多个串ST。位线BL1至BLn可以分别连接到串ST,并且源极线SL可以共同地连接到串ST。因为串ST可以被配置为彼此相同,所以作为示例,具体描述连接到第一位线BL1的串ST。
串ST可以包括串联连接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16和漏极选择晶体管DST。一个串ST可以包括至少一个或多个源极选择晶体管SST和漏极选择晶体管DST,并且可以包括存储器单元F1至F16。在其它实施例中,存储器单元的数量可以大于图3所示的数量。
源极选择晶体管SST的源极可以连接到源极线SL,并且漏极选择晶体管DST的漏极可以连接到第一位线BL1。存储器单元F1至F16可以串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以连接到源极选择线SSL,漏极选择晶体管DST的栅极可以连接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以分别连接到多个字线WL1至WL16。不同串ST中包括的存储器单元之中连接到相同字线的存储器单元组可以被称为物理页面(PPG)。因此,存储块BLKi可以包括字线WL1至WL16的数量的物理页面(PPG)。
存储器单元中的每一个可以被配置为存储一个数据位的SLC、存储两个数据位的MLC、存储三个数据位的TLC或能够存储四个数据位的QLC。
SLC可以存储一个数据位。SLC的一个物理页面(PPG)可以存储一个逻辑页面(LPG)数据。一个逻辑页面(LPG)数据可以包括与一个物理页面(PPG)中包括的单元的数量相对应的数据位。
MLC、TLC和QLC可以存储两个或更多个数据位。在这些情况下,一个物理页面(PPG)可以存储两个或更多个逻辑页面(LPG)数据。
图4是示出根据本公开的实施例的分区的示图。
参照图4,多个分区中的每一个可以包括多个存储块。具体地,第一至第N分区Zone1至Zone N中的每一个可以包括多个存储块。多个分区中的每一个中包括的存储块的数量在存储块之间可以彼此不同或可以相同。分区可以是与由逻辑地址配置的逻辑地址组相对应的存储区(storage area)。具体地,多个分区可以分别是用于存储与相应的逻辑地址组相对应的数据的区。例如,第一分区Zone 1可以是用于存储与第一逻辑地址组LBA Group 1相对应的数据的区。另外,第二分区Zone 2可以是用于存储与第二逻辑地址组LBA Group 2相对应的数据的区。另外,第三分区Zone 3可以是用于存储与第三逻辑地址组LBA Group 3相对应的数据的区。第N分区Zone N可以是用于存储与第N逻辑地址组LBA Group N相对应的数据的区。此处,逻辑地址组中的每一个可以包括连续的逻辑地址。在实施例中,多个分区中的每一个也可以包括多个存储块组。
图5是示出根据本公开的实施例的分区和存储块之间的关系的示图。
参照图5,多个分区中的每一个可以包括多个存储块BLK。多个分区中的每一个可以对应于包括多个存储块的超级块。例如,第一至第N超级块Super Block 1至Super BlockN可以分别对应于第一至第N分区Zone 1至Zone N,并且每个超级块可以包括多个存储块。另外,多个超级块中的每一个中包括的存储块的数量可以彼此不同或可以相同。
可以以超级块为单位控制多个存储块。例如,存储器控制器200可以控制存储器装置100以超级块为单位存储数据。存储器控制器200可以控制存储器装置100将与连续的逻辑地址相对应的数据存储在一个超级块中。另外,存储器控制器200可以以超级块为单位对逻辑地址和物理地址进行映射。
虽然在上述示例中,一个分区对应于一个超级块,但是实施例不限于此,并且在其它实施例中,与一个分区相对应的超级块的数量可以变化。
图6是示出根据本公开的实施例的在数据移动的进程期间发生的错误的示图。
参照图6,示出从主机2000传输到缓冲存储器装置300的数据DATA中发生错误的进程,其中示出改变后的数据DATA'被传输到存储器装置100。
缓冲存储器装置300可以包括主机缓冲器310和存储器缓冲器320。主机缓冲器310可以临时存储从主机2000接收的数据,并且存储器缓冲器320可以从主机缓冲器310接收数据并在将数据提供到存储器装置100之前临时存储数据。
同时,在数据从主机缓冲器310移动到存储器缓冲器320的进程中,可能发生错误,因此与主机2000请求写入的数据DATA不同的数据可能被存储在存储器装置100中。例如,在数据从主机缓冲器310移动到存储器缓冲器320的进程中可能发生包括位翻转的BMECC错误。为了确保包括缓冲存储器装置300的存储装置1000的完整性,需要对主机2000未请求写入的数据进行校正,并且需要存储经校正的数据。然而,在包括分区命名空间(ZNS)的存储器装置100中,可能需要移动先前存储的数据以保证数据的连续性。
根据本公开的实施例,存储装置1000可以解决在数据移动的进程中发生的错误,并且通过移动先前存储的数据来保证存储器装置100中存储的数据的连续性。
图7是示出根据本公开的实施例的缓冲器控制器和缓冲存储器装置的操作的示图。
参照图7,缓冲器控制器210可以控制缓冲存储器装置300将从主机2000接收的写入数据DATA传输到存储器装置100。具体地,在缓冲器控制器210的控制下,可以将临时存储在主机缓冲器310中的写入数据DATA移动到存储器缓冲器320。另外,存储器缓冲器320可以临时存储从主机缓冲器310接收的数据,并且将写入数据DATA传输到存储器装置100。
根据本公开的实施例,缓冲器控制器210可以控制缓冲存储器装置300从缓冲存储器装置300移除会被正常存储在存储器装置100中的数据。例如,存储器控制器200可以确定在数据从主机缓冲器310移动到存储器缓冲器320的进程中是否发生错误。另外,当在数据移动到存储器缓冲器320的进程中没有发生错误时,缓冲器控制器210可以控制主机缓冲器310移除临时存储在主机缓冲器310中的数据。
可选地,存储器控制器200可以通过参考存储器装置100中存储的数据来确定传输的数据是否为会被正常存储的数据。另外,当在将数据存储在存储器装置100中的进程中没有发生错误时,缓冲器控制器210可以控制缓冲存储器装置300移除临时存储在主机缓冲器310和存储器缓冲器320中的数据。
根据本公开的实施例,当在将数据从主机缓冲器310移动到存储器缓冲器320的进程中发生错误时,缓冲器控制器210可以控制主机缓冲器310将包括发生错误的数据的写入数据重新传输到存储器缓冲器320。另外,缓冲器控制器210可以控制缓冲存储器装置300将重新传输的写入数据传输到存储器装置100。
图8是示出根据本公开的实施例的写入操作控制器的操作的示图。
参照图8,写入操作控制器220可以包括正常操作控制器221、恢复操作控制器223和错误检测器225。
正常操作控制器221可以控制存储器装置100将从主机2000接收的写入数据存储在存储器装置100中。具体地,响应于从主机2000传输的写入请求,正常操作控制器221可以控制存储器装置100将与写入请求相对应的写入数据存储在存储器装置100中包括的任意一个分区中。另外,当从主机2000接收的数据的逻辑地址连续时,正常操作控制器221可以控制存储器装置100从低逻辑地址或最低逻辑地址开始顺序地存储数据。
例如,当与从主机2000传输的写入请求相对应的写入数据的逻辑地址与特定分区中存储的数据的逻辑地址连续时,正常操作控制器221可以控制存储器装置100将写入数据存储在特定分区中。例如,当从主机2000接收的写入数据具有与先前存储在Zone 1中的现有数据的逻辑地址连续的逻辑地址时,正常操作控制器221可以控制存储器装置100将写入数据存储在Zone 1中。
当在从主机2000接收的写入数据移动时发生错误时,恢复操作控制器223可以控制存储器装置100和缓冲存储器装置300执行恢复操作。此处,恢复操作可以指当在将写入数据存储在特定分区中的进程中发生错误时,将先前存储在特定分区中的现有数据以及写入数据存储在相同分区中包括的新存储块中的操作。
错误检测器225可以检测在从主机2000接收的写入数据从主机缓冲器310移动到存储器缓冲器320时发生的错误。在实施例中,错误检测器225可以通过参考程序的回调函数或者通过比较主机缓冲器310和存储器缓冲器320中存储的数据来确定是否发生BMECC错误。可选地,错误检测器225可以基于从缓冲存储器装置300传输到存储器装置100的数据来确定是否发生错误。
另外,恢复操作控制器223可以响应于错误检测器225检测到的错误,将新存储块组分配给特定分区。另外,恢复操作控制器223可以控制存储器装置100和缓冲存储器装置300将现有数据和写入数据存储在新存储块组中。例如,当主机2000未请求的数据DATA'存储在Zone 1中时,错误检测器225可以检测到在数据移动的进程中发生了错误,并且恢复操作控制器223可以传输恢复命令RCV CMD以使存储器装置100执行恢复操作。此处,恢复命令可以是用于控制停止存储器装置100正在执行的编程操作的命令和用于将先前存储在存储器装置100中的现有数据以及写入数据存储在分配给相同分区的新块中的命令。
恢复操作控制器223可以将从主机2000接收的写入数据划分为第一数据和第二数据。此处,第一数据可以是写入数据之中没有错误地先前存储在预设存储块组中的数据,并且第二数据可以指写入数据之中检测到错误的数据或者在检测到错误的数据之后存储的数据。另外,恢复操作控制器223可以从存储器装置100获得第一数据,并且可以从缓冲存储器装置300获得第二数据。
另外,恢复操作控制器223可以控制存储器装置100从存储器装置100获得在检测到错误之前先前存储在特定分区中的先前存储的数据。另外,恢复操作控制器223可以控制存储器装置100将先前存储的数据存储在新分配的存储块组中。
恢复操作控制器223可以控制存储器装置100根据连续的逻辑地址来存储数据。另外,恢复操作控制器223可以控制存储器装置100在将现有数据存储在新分配的存储块组中之后存储写入数据。也就是说,恢复操作控制器可以确定将数据存储在存储器装置100中的编程操作的顺序。
图9是示出根据本公开的实施例的缓冲存储器装置的示图。
参照图9,缓冲存储器装置300可以包括主机缓冲器310、存储器缓冲器320、映射表330和命令表340。
主机缓冲器310可以临时存储从主机2000接收的数据。具体地,主机缓冲器310可以临时存储来自主机2000的、待存储在存储器装置100中包括的多个分区之中的任意一个分区中的写入数据。另外,主机缓冲器310可以在存储器控制器200的控制下将临时存储的数据传输到存储器缓冲器320。
存储器缓冲器320可以临时存储待提供到存储器装置100的数据。具体地,存储器缓冲器320可以临时存储主机缓冲器310中存储的数据之中待提供到存储器装置100的数据。另外,存储器缓冲器320可以在存储器控制器200的控制下将临时存储的数据传输到存储器装置100。
缓冲存储器装置300可以包括映射表330和命令表340。参照图10和图11详细描述映射表330和命令表340。
图10是示出根据本公开的实施例的映射表的示图。
参照图10,映射表330可以包括关于连续的逻辑地址以及与连续的逻辑地址相对应的物理地址的信息。映射表330可以包括关于与连续的逻辑地址“LBAm至LBAk-1”相对应的物理地址“PBAm至PBA k-1”的信息(其中m和k是正整数)。
另外,映射表330可以在存储器控制器200的控制下更新映射信息。例如,在映射表330中,可以将与逻辑地址“LBA k至LBA k+n”相对应的物理地址从“PBA k至PBA k+n”更新为“PBA x至PBA x+n”(其中x是正整数)。
图10示出连续的逻辑地址和多个物理地址映射的状态,但是在其它实施例中,映射表330可以使用起始逻辑地址以及每个编程单位的逻辑地址的长度来存储关于连续的逻辑地址以及与连续的逻辑地址相对应的物理地址的信息。
图11是示出根据本公开的实施例的命令表的示图。
参照图11,命令表340可以包括与写入数据相对应的命令和错误信息。命令表340可以在存储器控制器200的控制下存储与写入数据相对应的命令和错误信息。具体地,当从主机2000接收的写入数据中发生错误时,存储器控制器200可以检测到发生的错误。另外,命令表340可以在存储器控制器200的控制下存储与写入数据相对应的命令和错误信息。
命令表340可以包括错误信息。具体地,命令表340可以将“1”指示给与检测到错误的写入数据相对应的命令,并且将“0”指示给与没有检测到错误的写入数据相对应的命令。例如,因为与命令“PGM k-1”和“PGM k+1”相对应的写入数据的错误信息是“0”,所以可以识别出没有检测到错误。另外,因为与命令“PGM k”相对应的写入数据的错误信息是“1”,所以可以识别出检测到错误。
图12是示出根据本公开的实施例的恢复操作的示图。
参照图12,示出存储器装置100、存储器控制器200和缓冲存储器装置300执行恢复操作的示图。
恢复操作控制器223可以响应于在写入数据移动的进程期间发生的错误,控制存储器装置100和缓冲存储器装置300执行恢复操作。存储器装置100可以在恢复操作控制器223的控制下将现有数据和写入数据存储在新块中。
具体地,当从主机接收的写入数据之中的数据B中发生错误而导致存储数据B'时,恢复操作控制器223可以从存储器装置100获得先前存储在Zone 1中的数据之中没有错误地存储的数据A以及现有数据。另外,恢复操作控制器223可以从缓冲存储器装置300获得存储器装置100的写入数据中发生错误的数据B以及作为数据B之后的数据的数据C至F。
恢复操作控制器223可以控制存储器装置100和缓冲存储器装置300根据逻辑地址将从存储器装置100和缓冲存储器装置300获得的现有数据和写入数据顺序地存储在Zone1的新块中。
图13是示出根据本公开的实施例的存储器控制器的框图。
参照图13,存储器控制器1300可以包括处理器1310、RAM 1320、错误校正电路(ECC电路)1330、ROM 1360、主机接口1370和闪存接口1380。图13所示的存储器控制器1300可以是图1所示的存储器控制器200的实施例。
处理器1310可以使用主机接口1370与主机2000通信并且执行逻辑运算以控制存储器控制器1300的操作。例如,处理器1310可以基于从主机2000或外部装置接收的请求来加载程序命令、数据文件、数据结构等,执行各种操作或生成命令和地址。例如,处理器1310可以生成编程操作、读取操作、擦除操作、挂起操作和参数设置操作所需的各种命令。
另外,处理器1310可以执行闪存转换层(FTL)的功能。处理器1310可以通过FTL将由主机2000提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并且使用映射表来将LBA转换为PBA。根据映射单位,FTL包括各种地址映射方法。代表性的地址映射方法的示例包括页面映射方法、块映射方法和混合映射方法。
另外,处理器1310可以在没有来自主机2000的请求的情况下生成命令。例如,处理器1310可以生成用于诸如以下的后台操作的命令:用于存储器装置100的损耗均衡的操作和用于存储器装置100的垃圾收集的操作。
RAM 1320可以用作处理器1310的缓冲存储器、操作存储器或高速缓存存储器。另外,RAM 1320可以存储由处理器1310运行的代码和命令。RAM 1320可以存储由处理器1310处理的数据。另外,当实施RAM 1320时,可以通过包括静态RAM(SRAM)或动态RAM(DRAM)来实施RAM 1320。
错误校正电路1330可以在编程操作或读取操作期间检测错误,并且可以对检测到的错误进行校正。具体地,错误校正电路1330可以根据错误校正码(ECC)执行错误校正操作。另外,错误校正电路1330可以基于待写入存储器装置100的数据来执行错误校正编码(ECC编码)。可以通过闪存接口1380将执行错误校正编码的数据传送到存储器装置100。另外,错误校正电路1330可以对通过闪存接口1380从存储器装置100接收的数据执行错误校正解码(ECC解码)。
ROM 1360可以用作存储存储器控制器1300的操作所需的各条信息的存储装置。具体地,ROM 1360可以包括映射表,并且物理-逻辑地址信息和逻辑-物理地址信息可以存储在映射表中。另外,ROM 1360可以由处理器1310控制。
主机接口1370可以包括用于在主机2000和存储器控制器1300之间执行数据交换的协议。具体地,主机接口1370可以被配置为通过诸如以下的各种接口协议中的至少一种与主机2000通信:通用串行总线(USB)协议、多媒体卡(MMC)协议、外围组件互连(PCI)协议、高速PCI(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机系统接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、电子集成驱动器(IDE)协议和专用协议。
闪存接口1380可以在处理器1310的控制下使用通信协议与存储器装置100通信。具体地,闪存接口1380可以通过通道与存储器装置100进行命令、地址和数据的通信。例如,闪存接口1380可以包括NAND接口。
图14是示出根据本公开的实施例的存储装置的操作方法的流程图。
存储装置1000可以包括存储器装置100,该存储器装置100包括被分配给多个分区的多个存储块。
另外,存储装置1000可以从主机2000接收写入请求(S1410),并且临时存储从主机2000传输的写入数据(S1420)。具体地,存储装置1000可以从主机2000接收写入请求以及与写入请求相对应的写入数据。
另外,存储装置1000可以将写入数据顺序地存储在一个分区中(S1430)。具体地,存储装置1000可以将临时存储的写入数据顺序地存储在存储器装置100中包括的一个分区中。
存储装置1000可以确定在写入数据移动时是否发生错误(S1440)。例如,当写入数据在存储装置1000中包括的缓冲存储器装置300内移动时,可能发生错误,或者当写入数据从缓冲存储器装置300传输到存储器装置100时,可能发生错误。
另外,当发生错误时,存储装置1000可以执行恢复操作(S1450)。具体地,存储装置1000可以获得写入数据以及在存储写入数据之前先前存储在第一存储块组中的现有数据。另外,存储装置1000可以将获得的写入数据和现有数据存储在第二存储块组中。
另外,存储装置1000可以根据写入数据和现有数据的逻辑地址,将写入数据和现有数据顺序地存储在第二存储块组中。
图15是示出根据本公开的实施例的存储卡系统的示图。
参照图15,存储卡系统3000可以包括存储器控制器3100、存储器装置3200和连接器3300。
存储器控制器3100可以电连接到存储器装置3200,并且存储器控制器3100可以被配置为访问存储器装置3200。例如,存储器控制器3100可以被配置为控制存储器装置3200的读取操作、写入操作、擦除操作和后台操作。存储器控制器3100可以被配置为提供存储器装置3200和主机Host之间的接口。另外,存储器控制器3100可以驱动用于控制存储器装置3200的固件。
例如,存储器控制器3100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正电路的组件。
存储器控制器3100可以通过连接器3300与外部装置通信。存储器控制器3100可以根据特定的通信标准与外部装置(例如,主机)通信。例如,存储器控制器3100可以被配置为通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。例如,连接器3300可以由上述各种通信标准中的至少一种限定。
例如,存储器装置3200可以被实施为诸如以下的各种非易失性存储器元件:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)和自旋转移扭矩磁性RAM(STT-MRAM)。
存储器控制器3100和存储器装置3200可以被集成到一个半导体装置中以配置存储卡。例如,存储器控制器3100和存储器装置3200可以被集成到一个半导体装置中以配置诸如以下的存储卡:PC(个人计算机存储卡国际协会(PCMCIA))卡、紧凑型闪存(CF)卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)和通用闪存(UFS)。
图16是示出根据本公开的实施例的固态驱动器(SSD)系统的示图。
参照图16,SSD系统4000可以包括主机4100和SSD 4200。SSD4200可以通过信号连接器4001与主机4100交换信号SIG,并且通过电源连接器4002接收电力PWR。SSD 4200可以包括SSD控制器4210、多个闪速存储器4221至422n、辅助电源4230和缓冲存储器4240。
在实施例中,SSD控制器4210可以执行参照图1描述的存储器控制器200的功能。SSD控制器4210可以响应于从主机4100接收的信号SIG而控制多个闪速存储器4221至422n。例如,信号SIG可以是基于主机4100和SSD 4200之间的接口的信号。例如,信号SIG可以是由诸如以下的接口中的至少一种限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。
辅助电源4230可以通过电源连接器4002连接到主机4100。辅助电源4230可以从主机4100接收电力PWR并且可以提供电力。当来自主机4100的电力供应不平稳时,辅助电源4230可以向SSD 4200提供电力。例如,辅助电源4230可以位于SSD 4200中或者可以位于SSD4200外部。例如,辅助电源4230可以位于主板上,并且可以向SSD 4200提供辅助电力。
缓冲存储器4240作为SSD 4200的缓冲存储器进行操作。例如,缓冲存储器4240可以临时存储从主机4100接收的数据或从多个闪速存储器4221至422n接收的数据,或者可以临时存储闪速存储器4221至422n的元数据(例如,映射表)。缓冲存储器4240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、RRAM、STT-MRAM和PRAM的非易失性存储器。
图17是示出根据本公开的实施例的用户系统的示图。
参照图17,用户系统5000可以包括应用处理器5100、存储器模块5200、网络模块5300、存储模块5400和用户接口5500。
应用处理器5100可以驱动用户系统5000中包括的组件、操作系统(OS)、用户程序等。例如,应用处理器5100可以包括控制用户系统5000中包括的组件的控制器、接口、图形引擎等。应用处理器5100可以被设置为片上系统(SoC)。
存储器模块5200可以作为用户系统5000的主存储器、操作存储器、缓冲存储器或高速缓存存储器进行操作。存储器模块5200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器,或者诸如PRAM、RRAM、MRAM和FRAM的非易失性随机存取存储器。例如,应用处理器5100和存储器模块5200可以基于堆叠封装(POP)进行封装并设置为一个半导体封装。
网络模块5300可以与外部装置通信。例如,网络模块5300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和Wi-Fi。例如,网络模块5300可以包括在应用处理器5100中。
存储模块5400可以存储数据。例如,存储模块5400可以存储从应用处理器5100接收的数据。可选地,存储模块5400可以将存储模块5400中存储的数据传输到应用处理器5100。例如,存储模块5400可以被实施为诸如以下的非易失性半导体存储器元件:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存和三维NAND闪存。例如,存储模块5400可以被设置为诸如用户系统5000的存储卡和外部驱动器的可移除存储装置(可移除驱动器)。
例如,存储模块5400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的存储器装置相同地操作。存储模块5400可以与参照图1描述的存储装置1000相同地操作。
用户接口5500可以包括用于向应用处理器5100输入数据或指令或者用于向外部装置输出数据的接口。例如,用户接口5500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口5500可以包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
Claims (20)
1.一种存储装置,包括:
存储器装置,包括多个分区,所述多个分区中的每一个具有形成存储块组的多个存储块;
缓冲存储器装置,包括主机缓冲器以及存储器缓冲器,所述主机缓冲器接收来自主机的、待存储在所述多个分区中的一个分区中的写入数据,所述存储器缓冲器临时存储从所述主机缓冲器传输的写入数据;
缓冲器控制器,控制所述缓冲存储器装置将写入数据从所述存储器缓冲器传输到所述存储器装置;以及
写入操作控制器,控制所述存储器装置将从所述缓冲存储器装置传输的写入数据存储在所述多个分区中的所述一个分区中,所述多个分区中的所述一个分区包括第一存储块组中的先前存储的数据,
其中在所述写入操作控制器检测到写入数据中的错误之后,所述写入操作控制器控制所述存储器装置获得所述先前存储的数据和经校正的写入数据,并且将所述先前存储的数据和所述经校正的写入数据存储在第二存储块组中。
2.根据权利要求1所述的存储装置,其中所述写入操作控制器包括:
错误检测器,检测写入数据中的错误;以及
恢复操作控制器,响应于检测到的错误,控制所述存储器装置和所述缓冲存储器装置执行将所述先前存储的数据和所述经校正的写入数据存储在所述第二存储块组中的恢复操作,
其中在编程操作中,在写入数据从所述主机缓冲器传输到所述存储器缓冲器时或者在写入数据从所述缓冲存储器装置传输并存储在所述存储器装置中时发生错误。
3.根据权利要求2所述的存储装置,其中当在执行所述编程操作时检测到错误时,所述恢复操作控制器控制所述存储器装置停止所述编程操作并执行所述恢复操作。
4.根据权利要求2所述的存储装置,其中所述恢复操作控制器将写入数据划分为第一数据和第二数据,
所述第一数据包括在所述先前存储的数据中,
所述第二数据不包括错误,
在与所述第二数据的副本相对应的数据中检测到错误,并且
所述经校正的写入数据包括所述第一数据和所述第二数据。
5.根据权利要求4所述的存储装置,其中所述恢复操作控制器控制所述存储器装置从所述存储器装置获得所述第一数据和所述先前存储的数据,并且控制所述缓冲存储器装置从所述主机缓冲器获得所述第二数据。
6.根据权利要求5所述的存储装置,其中所述恢复操作控制器控制所述存储器装置在将所述第一数据存储在所述第二存储块组中之后,将所述第二数据存储在所述第二存储块组中。
7.根据权利要求2所述的存储装置,其中所述恢复操作控制器:
确定将从所述主机接收的数据存储在所述存储器装置中的编程操作的顺序;并且
生成恢复命令,所述恢复命令包括指示停止所述存储器装置执行的所述编程操作的命令、指示读取所述存储器装置中存储的数据的命令以及指示所述编程操作的命令。
8.根据权利要求1所述的存储装置,其中当从所述主机接收的数据的逻辑地址连续时,所述写入操作控制器控制所述存储器装置从最低的逻辑地址开始顺序地存储数据。
9.根据权利要求8所述的存储装置,其中所述先前存储的数据和写入数据的逻辑地址连续,并且
所述写入操作控制器控制所述存储器装置在将所述先前存储的数据存储在所述第二存储块组中之后,将写入数据存储在所述第二存储块组中。
10.根据权利要求1所述的存储装置,其中所述缓冲存储器装置包括:
映射表,存储所述存储器装置中存储的数据的逻辑地址和物理地址的映射信息;以及
命令表,包括与写入数据相对应的命令的错误信息。
11.根据权利要求10所述的存储装置,其中在所述先前存储的数据和写入数据被存储在所述第二存储块组中之后,所述映射表更新与所述先前存储的数据和写入数据相对应的逻辑地址和物理地址的映射信息。
12.根据权利要求11所述的存储装置,其中所述经校正的写入数据进一步包括后续数据,并且所述写入操作控制器根据更新后的映射信息来存储所述后续数据。
13.根据权利要求10所述的存储装置,其中所述缓冲器控制器基于所述命令表来控制所述主机缓冲器移除临时存储在所述主机缓冲器中的写入数据。
14.根据权利要求10所述的存储装置,其中所述缓冲器控制器基于所述命令表来控制所述主机缓冲器将写入数据重新传输到所述存储器缓冲器,并且控制所述存储器缓冲器将重新传输的写入数据传输到所述存储器装置。
15.根据权利要求1所述的存储装置,其中所述写入操作控制器响应于错误,将所述第二存储块组分配给所述多个分区中的所述一个分区。
16.一种存储装置的操作方法,所述存储装置包括存储器装置,所述存储器装置包括被分配给多个分区的多个存储块,所述方法包括:
从主机接收包括写入数据的写入请求;
临时存储从所述主机传输的写入数据;
将临时存储的写入数据顺序地存储在所述存储器装置中的所述多个分区中的一个分区中;
确定在写入数据移动时是否发生错误;并且
当发生错误时执行恢复操作。
17.根据权利要求16所述的方法,其中执行恢复操作包括:
获得写入数据和在存储写入数据之前先前存储在第一存储块组中的现有数据;并且
将写入数据和所述现有数据存储在第二存储块组中。
18.根据权利要求17所述的方法,其中将写入数据和所述现有数据存储在第二存储块组中包括:
根据写入数据和所述现有数据的逻辑地址顺序地存储写入数据和所述现有数据。
19.根据权利要求17所述的方法,其中执行恢复操作进一步包括:
将所述第二存储块组分配给所述多个分区中的所述一个分区。
20.根据权利要求17所述的方法,其中获得写入数据和现有数据包括:
从所述存储器装置获得所述现有数据以及写入数据之中没有错误地先前存储在所述第一存储块组中的第一数据;并且
从缓冲存储器装置获得写入数据之中不包括所述第一数据的第二数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0125706 | 2020-09-28 | ||
KR1020200125706A KR20220042649A (ko) | 2020-09-28 | 2020-09-28 | 저장 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327251A true CN114327251A (zh) | 2022-04-12 |
Family
ID=80822503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110537756.XA Withdrawn CN114327251A (zh) | 2020-09-28 | 2021-05-18 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11513726B2 (zh) |
KR (1) | KR20220042649A (zh) |
CN (1) | CN114327251A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382576A (zh) * | 2023-03-17 | 2023-07-04 | 平头哥(上海)半导体技术有限公司 | 存储控制芯片、固态硬盘和相关方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006293969A (ja) * | 2005-03-17 | 2006-10-26 | Fujitsu Ltd | データ転送装置 |
KR102413755B1 (ko) * | 2015-11-20 | 2022-06-28 | 삼성전자주식회사 | 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법 |
KR102547642B1 (ko) | 2016-05-18 | 2023-06-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI662410B (zh) * | 2017-12-18 | 2019-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
KR20200010933A (ko) | 2018-07-23 | 2020-01-31 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200016076A (ko) * | 2018-08-06 | 2020-02-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2020
- 2020-09-28 KR KR1020200125706A patent/KR20220042649A/ko unknown
-
2021
- 2021-03-25 US US17/212,010 patent/US11513726B2/en active Active
- 2021-05-18 CN CN202110537756.XA patent/CN114327251A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382576A (zh) * | 2023-03-17 | 2023-07-04 | 平头哥(上海)半导体技术有限公司 | 存储控制芯片、固态硬盘和相关方法 |
CN116382576B (zh) * | 2023-03-17 | 2024-02-27 | 平头哥(上海)半导体技术有限公司 | 存储控制芯片、固态硬盘和相关方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20220042649A (ko) | 2022-04-05 |
US20220100419A1 (en) | 2022-03-31 |
US11513726B2 (en) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461227B2 (en) | Storage device and operating method thereof | |
US11734178B2 (en) | Storage device performing cache read operation using page buffer and operating method thereof | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN114443507A (zh) | 存储器系统及其操作方法 | |
CN114077387A (zh) | 存储装置及其操作方法 | |
US20220113900A1 (en) | Storage device and method of operating the same | |
CN113299332A (zh) | 存储器控制器及其操作方法 | |
US11513726B2 (en) | Storage device and method of operating the same | |
US11880274B2 (en) | Host device, memory controller, and computing system including the same | |
US11836370B2 (en) | Storage device and operating method thereof | |
US11474723B2 (en) | Storage device and operating method thereof | |
US11625324B2 (en) | Storage device for moving valid data to an open memory block based on a valid page list and operating method thereof | |
US20220180953A1 (en) | Storage device and operating method thereof | |
TW202314472A (zh) | 計算系統及其操作方法 | |
CN114443508A (zh) | 存储装置及其操作方法 | |
CN114496040A (zh) | 存储器装置 | |
KR20220066688A (ko) | 스토리지 장치 및 그 동작 방법 | |
CN113126895A (zh) | 存储装置及其操作方法 | |
US11841795B2 (en) | Storage device for setting a flag in a mapping table according to a sequence number and operating method thereof | |
US20230305712A1 (en) | Storage device including memory controller and operating method thereof | |
US11599275B2 (en) | Memory controller for controlling power loss recovery and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US20220328101A1 (en) | Memory device and operating method thereof | |
KR20210151372A (ko) | 저장 장치 및 그 동작 방법 | |
CN116804909A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220412 |