CN114171089A - 使用CbA技术的重定位流程 - Google Patents

使用CbA技术的重定位流程 Download PDF

Info

Publication number
CN114171089A
CN114171089A CN202110638664.0A CN202110638664A CN114171089A CN 114171089 A CN114171089 A CN 114171089A CN 202110638664 A CN202110638664 A CN 202110638664A CN 114171089 A CN114171089 A CN 114171089A
Authority
CN
China
Prior art keywords
data
controller
data storage
storage device
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110638664.0A
Other languages
English (en)
Inventor
U·佩尔茨
K·因巴尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technology Co.
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN114171089A publication Critical patent/CN114171089A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/40EEPROM devices comprising charge-trapping gate insulators characterised by the peripheral circuit region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0657Stacked arrangements of devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/10Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices having separate containers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了使用CbA技术的重定位流程。本公开总体涉及有效地重定位数据存储设备内的数据。通过针对存储器设备的存储器阵列内的每个存储器管芯在互补金属氧化物半导体(CMOS)芯片中实现纠错码(ECC)模块,可以更有效地重定位该数据。ECC对存储器管芯处的码字进行解码。然后从经解码的码字提取元数据并将该元数据传输到数据存储设备的控制器。然后控制器处的闪存转换层(FTL)模块通过将所接收的元数据与FTL表进行比较来校验该数据是否有效。如果元数据指示该数据有效,则重定位该数据。

Description

使用CbA技术的重定位流程
相关申请的交叉引用
本申请要求2020年9月10日提交的美国临时专利申请序列号63/076,760的权益,该美国临时专利申请以引用方式并入本文。
背景技术
技术领域
本公开的实施方案总体涉及重定位数据存储设备内的数据。
相关领域的描述
在利用SSD的数据存储设备中,不用针对每个闪存管理单元(FMU)的表内容是有效还是无效的指示维护反向查找表。因此,在数据重定位诸如垃圾收集期间,控制器被配置为校验哪个FMU是有效的并且应被复制以及哪个FMU是无效的并且不应被复制。
有效性校验的典型方式是将LBA保持在FMU的标头中。在数据重定位期间,控制器被配置为读取所有标头,并且针对每个标头,在映射表中查找保持在控制器中的LBA。如果映射表指示LBA的已知物理位置匹配FMU标头的位置,则LBA是有效的,并且应重定位数据。否则,FMU是无效的,并且不应重定位数据。
为了读取标头,将整个FMU加标头从存储器设备传输到控制器,然后对其进行解码。因为纠错码(ECC)码字覆盖整个FMU加标头作为单个码字,所以产生了瓶颈,这对设备性能产生负面冲击。
因此,需要更有效地重定位数据存储设备内的数据。
发明内容
本公开总体涉及有效地重定位数据存储设备内的数据。通过针对存储器设备的存储器阵列内的每个存储器管芯在互补金属氧化物半导体(CMOS)芯片中实现纠错码(ECC)模块,可以更有效地重定位该数据。ECC对该存储器管芯处的码字进行解码。然后从经解码的码字提取元数据并将该元数据传输到该数据存储设备的控制器。然后该控制器处的闪存转换层(FTL)模块通过将所接收的元数据与FTL表进行比较来校验该数据是否有效。如果该元数据指示该数据有效,则重定位该数据。
在一个实施方案中,一种数据存储设备包括:控制器;以及耦接到该控制器的非易失性存储器设备,其中该非易失性存储器设备包括:至少一个存储器管芯;以及耦接到至少一个存储器管芯的至少一个互补金属氧化物半导体(CMOS)设备,其中该CMOS设备包括纠错码(ECC)单元。
在另一个实施方案中,一种数据存储设备包括:控制器;以及耦接到该控制器的非易失性存储器设备,其中该非易失性存储器设备被配置为:对数据进行解码;从经解码的数据提取元数据;以及将所提取的元数据传输到该控制器。
在另一个实施方案中,一种数据存储设备包括:控制器;以及耦接到该控制器的非易失性存储器设备,其中该非易失性存储器设备包括用于对存储在该非易失性存储器设备中的数据进行解码的装置。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据一个实施方案的存储系统的示意性框图,其中数据存储设备可以用作主机设备的存储设备。
图2是根据一个实施方案的电路有界阵列架构的示意图。
图3是根据一个实施方案的非易失性存储器设备架构的示意图。
图4是根据一个实施方案的阵列上CMOS(CAA)芯片的示意图。
图5是示出根据一个实施方案的数据重定位方法的流程图。
图6是示出根据另一个实施方案的数据重定位方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开总体涉及有效地重定位数据存储设备内的数据。通过针对存储器设备的存储器阵列内的每个存储器管芯在互补金属氧化物半导体(CMOS)芯片中实现纠错码(ECC)模块,可以更有效地重定位该数据。ECC对该存储器管芯处的码字进行解码。然后从经解码的码字提取元数据并将该元数据传输到该数据存储设备的控制器。然后该控制器处的闪存转换层(FTL)模块通过将所接收的元数据与FTL表进行比较来校验该数据是否有效。如果该元数据指示该数据有效,则重定位该数据。
图1是示出根据一个实施方案的存储系统100的示意性框图,其中数据存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器(NVM)110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置成共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
主机设备104向一个或多个存储设备诸如存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备或能够发送数据或从数据存储设备接收数据的其他设备。
数据存储设备106包括控制器108、NVM 110、功率源111、易失性存储器112、接口114和写缓冲器116。在一些示例中,数据存储设备106可以包括为了清楚起见未在图1中示出的附加部件。例如,数据存储设备106可以包括印刷电路板(PCB),数据存储设备106的部件机械地附接到该印刷电路板,并且该印刷电路板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCIExpress(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,数据存储设备106可以直接耦接(例如,直接焊接)到主机设备104的母板。
数据存储设备106的接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口114可以根据任何合适的协议操作。例如,接口114可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器express(NVMe)、OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、开放信道SSD(OCSSD)等。接口114的电连接(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114的电连接还可以允许数据存储设备106从主机设备104接收电力。例如,如图1所示,电源111可以经由接口114从主机设备104接收电力。
NVM 110可以包括多个存储器设备。NVM 110可以被配置成存储和/或检索数据。例如,NVM 110的存储器设备可从控制器108接收数据和指示存储器单元存储数据的消息。类似地,NVM 110的存储器设备可以从控制器108接收指示存储器设备检索数据的消息。在一些示例中,存储器设备中的每个存储器设备可以被称为管芯。在一些示例中,单个物理芯片可以包括多个管芯(即,多个存储单元)。在一些示例中,每个存储器设备可以被配置为存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,NVM 110的每个存储器设备可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其他类型的非易失性存储器设备。
NVM 110可以包括多个闪存存储器设备。NVM闪存存储器设备可以包括基于NAND或NOR的闪存存储器设备,并且可以基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NVM闪存存储器设备中,闪存存储器设备可以被划分成多个管芯,其中多个管芯中的每个管芯包括多个块,这些块可以被进一步划分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NVM单元。NVM单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NVM闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可以页面级向NVM闪存存储器设备写入数据以及从NVM闪存存储器设备读取数据,并且以块级从NVM闪存存储器设备擦除数据。
数据存储设备106包括电源111,其可以向数据存储设备106的一个或多个部件提供电力。当以标准模式操作时,功率源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可以由一个或多个电力存储部件存储的电量可以是一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换句话说,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
数据存储设备106还包括易失性存储器112,其可以由控制器108用来存储信息。易失性存储器112可以包括一个或多个易失性存储器设备。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。
数据存储设备106包括控制器108,其可以管理数据存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该NVM 110。此外,控制器108经由闪存总线118耦接到缓冲器116,其中闪存总线118有利于在控制器108和缓冲器116之间的数据传输。在一个实施方案中,闪存总线118可以有利于在NVM 110和控制器108之间和/或在易失性存储器112和控制器108之间的数据传输。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。
控制器108可以确定存储系统100的至少一个操作特性,并且将至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送到NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器或写缓冲器116中。控制器还包括第一闪存转换层(FTL)模块120。第一FTL模块120可以包括一个或多个FTL表,该一个或多个FTL表被配置为跟踪新更新的数据在NVM 110中的位置,使得针对新更新的数据的每个读取命令被路由到适当位置,确保NVM 110的新编程的页面跨NVM 110均一分布以有助于耗损均衡,并且跟踪过期或无效数据的位置,使得包括过期或无效数据的一个或多个页面可以在闪存管理操作诸如垃圾收集中被擦除。
图2是根据一个实施方案的电路有界阵列(CbA)架构200的示意图。CbA架构200包括经由一个或多个连接单元耦接到一个或多个阵列的一个或多个互补金属氧化物半导体(CMOS)芯片,其中这些阵列对应于NVM110的一个或多个存储器位置,诸如NVM 110的多个管芯中的第一管芯。出于示例性目的,CMOS设备和相关联架构可以称为CMOS功函数(WF)202。此外,出于示例性目的,阵列和相关联架构可以称为阵列WF 204。
在一个实施方案中,CMOS WF 202是阵列上CMOS(CAA)设备。因为CMOS设备与阵列WF 204是分开的,所以CMOS逻辑相比于先前的自适应诸如阵列下CMOS(CuA)可以更快地执行。多个CMOS CAA设备中的每个CMOS CAA设备包括纠错码(ECC)模块。ECC模块可以被配置为对往返于相关NVM管芯中的每个相关NVM管芯的纠错码进行编码和解码。
图3是根据一个实施方案的非易失性存储器设备架构300的示意图。非易失性存储器设备架构300的方面可类似于图2的CbA架构200。例如,每个存储器管芯306A-306E可以是阵列WF 204,并且每个CMOS设备302A-302E可以是CMOS WF 202。每个存储器管芯306A-306E可以是NVM 110的多个NVM管芯中的NVM管芯。CMOS设备302A-302E中的每个CMOS设备包括多个ECC单元304A-304E中的ECC单元。所示出的CMOS设备302A-302E、ECC单元304A-304E和存储器管芯306A-306E的数量并非旨在进行限制,而是提供可能实施方案的示例。在一个实施方案中,非易失性存储器设备架构300包括“n”个CMOS芯片、ECC单元和存储器管芯,其中“n”表示任何适当的值,诸如约256。此外,在一个实施方案中,多个CMOS设备302A-302E可以实现为CMOS CAA。
因为每个存储器管芯耦接到CMOS设备并且每个CMOS设备包括ECC单元,所以非易失性存储器设备架构300包括相等数量的存储器管芯、CMOS设备和ECC单元。存储器管芯和CMOS设备可以交替方式竖直布置。例如,第一存储器管芯306A沉积在第一CMOS设备302A之上,并且第二CMOS设备302B沉积在第一存储器管芯306A之上。第二存储器管芯306B沉积在第二CMOS设备302B之上,依此类推。
此外,每个CMOS设备耦接到相邻存储器管芯。例如,第一CMOS设备302A耦接到第一存储器管芯306A,并且第二CMOS设备302B耦接到第二存储器管芯306B。因为第一CMOS设备302A耦接到第一存储器管芯306A,所以CMOS设备302A逻辑管理对往返于第一存储器管芯306A的数据的编程和读取。
例如,参考图1,当控制器108从主机设备104接收到写入命令时,第一FTL模块120将与写入命令相关联的数据调度到NVM 110中的位置。与写入命令相关联的数据被传输到相关CMOS设备诸如第一CMOS设备302A,在相关CMOS设备中,第一ECC单元将低密度奇偶校验(LDPC)码和/或奇偶校验数据编码到该数据。在对数据进行编码后,将数据编程到相关联的第一存储器管芯306A。例如,编程到第一存储器管芯306A的数据的大小可为约4.5KB,其中约4KB的数据与写入命令相关联,并且剩余的约0.5KB的数据与诸如LDPC码和/或奇偶校验数据的元数据相关联。
当控制器108从主机设备104接收到读取命令时,第一FTL模块120利用FTL表来定位一个或多个存储器管芯306A-306E中的相关数据。在用FTL表定位相关数据的位置之后,相关CMOS设备诸如第一CMOS设备302A从相关存储器管芯诸如第一存储器管芯306A检索数据。在将数据传送到控制器108之前,由相关ECC单元诸如第一ECC单元304A对数据进行解码。经解码的数据是已编程的数据减去元数据,使得经解码的数据具有约4KB的大小。在一个实施方案中,控制器108可被配置为将经解码的数据与存储在第一FTL模块120的FTL表中的数据进行比较。在确认经解码的数据匹配存储在第一FTL模块120的FTL表中的数据之后,控制器108被配置为将有效数据重定位到不同的非易失性存储器设备诸如第二存储器管芯306B。第一FTL模块120被配置为用经重定位的有效数据的相关位置来更新FTL表。先前描述的操作的示例可以是数据管理操作,诸如垃圾收集。
图4是根据一个实施方案的阵列上CMOS(CAA)芯片400的示意图。CAA芯片400可以实现为图3的CMOS设备302A-302E中的至少一个CMOS设备,在这种情况下,ECC 404可以实现为图3的ECC单元304A-304E中的至少一个ECC单元。CAA芯片400包括读出放大器与锁存器402和ECC单元404。读出放大器与锁存器402可与ECC单元404通信。例如,当控制器(诸如图1的控制器108)接收到读取命令时,通过闪存总线(诸如闪存总线118)将读取命令传输到适当的CMOS设备(诸如CAA芯片400)。CAA芯片400读出相关的一个或多个字线,其中读出放大器406将表示存储器单元的位的低功率信号放大到可辨认逻辑电平。锁存器408锁存期望的一个或多个字线,其中一个或多个字线包括第一数据410A和第一奇偶校验412A或第二数据410B和第二奇偶校验412B。
数据410A、410B和奇偶校验412A、412B作为码字426被传输到ECC404。每个码字426包括元数据420、数据422和奇偶校验424。例如,数据410A可以是元数据420和数据422。ECC编码器416可以负责将奇偶校验或LDPC码编码到与主机写入命令相关联的所接收数据。ECC解码器418可以负责对码字426进行解码以校验任何失效位以及纠正任何失效位。第二FTL模块414是相对于CAA芯片400的ECC404的本地FTL模块。第二FTL模块414可以具有与图1的控制器108的第一FTL模块120类似的功能性。第二FTL模块414可以被配置为从码字426提取元数据420并将元数据420传输到图1的控制器108。
例如,在控制器108发起的操作诸如垃圾收集期间,控制器108可以针对NVM 110的第一存储器管芯306A中的第一块生成读取命令。读取命令被传输到第一CMOS设备302A,其中第一CMOS设备302A可以是CAA芯片400。CAA芯片400的读出放大器与锁存器402读出并放大与读取命令相关联的相关数据和奇偶校验,诸如第一数据410A和与第一数据410A相关联的第一奇偶校验412A。锁存器408将第一数据410A和第一奇偶校验412A锁存到码字426诸如第一码字。然后将第一码字传输到ECC 404,其中ECC解码器418对第一码字进行解码并且第二FTL模块414提取元数据420。第二FTL模块414将元数据420发送到控制器108,更具体地,第一FTL模块120。第一FTL模块120通过校验FTL表来确定数据422或数据422的部分是否有效。然后由ECC编码器416对数据422的有效部分进行编码,然后CAA芯片400将有效数据写入第一存储器管芯306A的新分配的块,其中第二FTL模块414存储有效数据的位置。ECC编码器416可以将元数据标头附到有效数据以及与有效数据相关联的LDPC码和/或奇偶校验数据。
图5是示出根据一个实施方案的数据重定位方法500的流程图。可以参考图4的方面来为数据重定位方法500提供上下文。所提供的图4的方面并非旨在进行限制,而是提供可能实施方案的示例。在框502处,由CbA芯片(诸如图4的CAA芯片400)的ECC模块(诸如图1的ECC 404)对与读取命令相关联的码字进行解码。与码字426相关联的数据和对应奇偶校验由读出放大器与锁存器402读出和锁存。码字426被传输到ECC,在这里ECC解码器对码字426进行解码。
在框504处,ECC 404的第二FTL模块414从码字426提取元数据420,其中元数据420可以存储在码字426的标头中。在框506处,将所提取的元数据420传输到控制器,诸如图1的控制器108。在框508处,控制器的FTL模块(诸如第一FTL模块120)对照FTL表校验元数据420以确认数据422的有效性。在框510处,将有效数据传输到控制器并重新分配到新存储块,诸如图3的第二存储器管芯306B,其中第二CMOS设备302B被配置为对数据编码并将其存储到第二存储器管芯306B。
图6是示出根据另一个实施方案的数据重定位方法600的流程图。数据重定位方法600不同于数据重定位方法500是因为方法500涉及将数据重定位到NVM 110的不同管芯中的新分配的块,而方法600涉及将数据重定位到NVM 110的相同管芯中的新分配的块。可以参考图4的方面来为数据重定位方法600提供上下文。所提供的图4的方面并非旨在进行限制,而是提供可能实施方案的示例。
在框602处,由CbA芯片(诸如图4的CAA芯片400)的ECC模块(诸如图1的ECC 404)对与读取命令相关联的码字进行解码。与码字426相关联的数据和对应奇偶校验由读出放大器与锁存器402读出和锁存。码字426被传输到ECC,在这里ECC解码器对码字426进行解码。
在框604处,ECC 404的第二FTL模块414从码字426提取元数据420,其中元数据420可以存储在码字426的标头中。在框606处,将所提取的元数据420传输到控制器,诸如图1的控制器108。在框608处,控制器的FTL模块(诸如第一FTL模块120)对照FTL表校验元数据420以确认数据422的有效性。
在框610处,第二FTL模块414将新LBA分配给有效数据。有效数据或新码字由ECC编码器416用元数据420标头和奇偶校验424重新编码。在框612处,CAA芯片400将新码字编程到新物理块地址(PBA),其中新PBA是NVM 110的相同管芯(诸如第一存储器管芯306A)的新分配块。在框614处,用到新分配块的新编程数据的新LBA和PBA来更新第一FTL模块120的FTL表。
通过针对存储器设备的存储器阵列内的每个存储器管芯在CMOS芯片中实现ECC模块,可以更有效地重定位数据。因为在进行数据有效性校验之前仅将经解码和所提取的元数据传输到FTL模块,所以仅除了指示无效数据存在的任何元数据之外的有效数据跨闪存总线移动。因此,实现了更有效的数据重定位。
在一个实施方案中,一种数据存储设备包括:控制器;以及耦接到该控制器的非易失性存储器设备,其中该非易失性存储器设备包括:至少一个存储器管芯;以及耦接到该至少一个存储器管芯的至少一个互补金属氧化物半导体(CMOS)设备,其中该CMOS设备包括纠错码(ECC)单元。该ECC单元包括闪存转换层(FTL)模块、编码器和解码器。CMOS设备的数量与存储器管芯的数量相等。该非易失性存储器设备能够将经解码的元数据传送到该控制器。该至少一个存储器管芯包括多个存储器管芯。该至少一个CMOS设备包括多个CMOS设备。这些多个存储器管芯和这些多个CMOS设备以交替方式竖直布置。该至少一个CMOS设备包括至少一个读出放大器与至少一个锁存器。该控制器包括闪存转换层(FTL)模块。
在另一个实施方案中,一种数据存储设备包括:控制器;以及耦接到该控制器的非易失性存储器设备,其中该非易失性存储器设备被配置为:对数据进行解码;从经解码的数据提取元数据;以及将所提取的元数据传输到该控制器。该控制器被配置为将该所提取的元数据与存储在闪存转换层(FTL)表中的数据进行比较。该非易失性存储器设备被进一步配置为响应于该比较而将有效数据传输到该控制器。该控制器被配置为将该有效数据重定位到不同的非易失性存储器设备。该非易失性存储器设备被进一步配置为将新逻辑块地址(LBA)分配给有效数据。该非易失性存储器设备被进一步配置为针对该新LBA用新元数据标头编码新码字。该非易失性存储器设备被进一步配置为将该新码字编程到新物理块地址(PBA)。该控制器被进一步配置为用该新LBA和该新PBA更新闪存转换层(FTL)表。
在另一个实施方案中,一种数据存储设备包括:控制器;以及耦接到该控制器的非易失性存储器设备,其中该非易失性存储器设备包括用于对存储在该非易失性存储器设备中的数据进行解码的装置。该非易失性存储器设备包括第一闪存转换层(FTL)模块。该控制器包括不同于该第一FTL模块的第二FTL模块。该非易失性存储器设备被配置为从经解码的数据提取元数据并将所提取的元数据发送到该控制器。该控制器被配置为将该所提取的元数据与存储在该控制器中的闪存转换层(FTL)表中的数据进行比较。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

Claims (20)

1.一种数据存储设备,包括:
控制器;和
非易失性存储器设备,所述非易失性存储器设备耦接到所述控制器,其中所述非易失性存储器设备包括:
至少一个存储器管芯;和
至少一个互补金属氧化物半导体(CMOS)设备,所述至少一个互补金属氧化物半导体(CMOS)设备耦接到所述至少一个存储器管芯,其中所述CMOS设备包括纠错码(ECC)单元。
2.根据权利要求1所述的数据存储设备,其中所述ECC单元包括闪存转换层(FTL)模块、编码器和解码器。
3.根据权利要求1所述的数据存储设备,其中CMOS设备的数量与存储器管芯的数量相等。
4.根据权利要求1所述的数据存储设备,其中所述非易失性存储器设备能够将经解码的元数据传送到所述控制器。
5.根据权利要求1所述的数据存储设备,其中所述至少一个存储器管芯包括多个存储器管芯,其中所述至少一个CMOS设备包括多个CMOS设备,并且其中所述多个存储器管芯和所述多个CMOS设备以交替方式竖直布置。
6.根据权利要求1所述的数据存储设备,其中所述至少一个CMOS设备包括至少一个读出放大器与至少一个锁存器。
7.根据权利要求1所述的数据存储设备,其中所述控制器包括闪存转换层(FTL)模块。
8.一种数据存储设备,包括:
控制器;和
非易失性存储器设备,所述非易失性存储器设备耦接到所述控制器,其中所述非易失性存储器设备被配置为:
对数据进行解码;
从所述经解码的数据提取元数据;以及
将所提取的元数据传输到所述控制器。
9.根据权利要求8所述的数据存储设备,其中所述控制器被配置为将所提取的元数据与存储在闪存转换层(FTL)表中的数据进行比较。
10.根据权利要求9所述的数据存储设备,其中所述非易失性存储器设备被进一步配置为响应于所述比较而将有效数据传输到所述控制器。
11.根据权利要求10所述的数据存储设备,其中所述控制器被配置为将所述有效数据重定位到不同的非易失性存储器设备。
12.根据权利要求10所述的数据存储设备,其中所述非易失性存储器设备被进一步配置为将新逻辑块地址(LBA)分配给有效数据。
13.根据权利要求12所述的数据存储设备,其中所述非易失性存储器设备被进一步配置为针对所述新LBA用新元数据标头编码新码字。
14.根据权利要求13所述的数据存储设备,其中所述非易失性存储器设备被进一步配置为将所述新码字编程到新物理块地址(PBA)。
15.根据权利要求14所述的数据存储设备,其中所述控制器被进一步配置为用所述新LBA和所述新PBA更新闪存转换层(FTL)表。
16.一种数据存储设备,包括:
控制器;和
非易失性存储器设备,所述非易失性存储器设备耦接到所述控制器,其中所述非易失性存储器设备包括用于对存储在所述非易失性存储器设备中的数据进行解码的装置。
17.根据权利要求16所述的数据存储设备,其中所述非易失性存储器设备包括第一闪存转换层(FTL)模块。
18.根据权利要求17所述的数据存储设备,其中所述控制器包括不同于所述第一FTL模块的第二FTL模块。
19.根据权利要求16所述的数据存储设备,其中所述非易失性存储器设备被配置为从经解码的数据提取元数据并将所提取的元数据发送到所述控制器。
20.根据权利要求19所述的数据存储设备,其中所述控制器被配置为将所提取的元数据与存储在所述控制器中的闪存转换层(FTL)表中的数据进行比较。
CN202110638664.0A 2020-09-10 2021-06-08 使用CbA技术的重定位流程 Pending CN114171089A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063076760P 2020-09-10 2020-09-10
US63/076,760 2020-09-10
US17/182,032 US11537326B2 (en) 2020-09-10 2021-02-22 Relocation flow using CbA technology
US17/182,032 2021-02-22

Publications (1)

Publication Number Publication Date
CN114171089A true CN114171089A (zh) 2022-03-11

Family

ID=80266897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110638664.0A Pending CN114171089A (zh) 2020-09-10 2021-06-08 使用CbA技术的重定位流程

Country Status (3)

Country Link
US (2) US11537326B2 (zh)
CN (1) CN114171089A (zh)
DE (1) DE102021115235A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11537326B2 (en) 2020-09-10 2022-12-27 Western Digital Technologies, Inc. Relocation flow using CbA technology
US11947841B2 (en) * 2021-06-15 2024-04-02 Micron Technology, Inc. Managing address access information

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3895855B2 (ja) * 1997-12-25 2007-03-22 株式会社東芝 不揮発性半導体記憶装置
US8645438B2 (en) * 2009-06-30 2014-02-04 Sandisk Technologies Inc. File system and method of file access
CN102812519A (zh) 2010-03-22 2012-12-05 莫塞德技术公司 具有错误校正的复合半导体存储设备
KR101686980B1 (ko) 2011-03-02 2016-12-16 샌디스크 테크놀로지스 엘엘씨 비휘발성 메모리 내의 데이터 저장 방법
US8990493B1 (en) * 2011-06-30 2015-03-24 Western Digital Technologies, Inc. Method and apparatus for performing force unit access writes on a disk
US9852024B2 (en) * 2016-04-19 2017-12-26 Winbond Electronics Corporation Apparatus and method for read time control in ECC-enabled flash memory
EP3453022B1 (en) * 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US10121555B2 (en) * 2016-05-26 2018-11-06 Advanced Micro Devices, Inc. Wear-limiting non-volatile memory
US11126624B2 (en) * 2017-06-12 2021-09-21 Western Digital Technologies, Inc. Trie search engine
US10997065B2 (en) * 2017-11-13 2021-05-04 SK Hynix Inc. Memory system and operating method thereof
US11537513B2 (en) * 2017-12-11 2022-12-27 SK Hynix Inc. Apparatus and method for operating garbage collection using host idle
US10963332B2 (en) * 2018-12-17 2021-03-30 Western Digital Technologies, Inc. Data storage systems and methods for autonomously adapting data storage system performance, capacity and/or operational requirements
US11005501B2 (en) * 2019-02-19 2021-05-11 Micron Technology, Inc. Error correction on a memory device
US11036625B1 (en) * 2020-04-24 2021-06-15 Micron Technology, Inc. Host-resident translation layer write command associated with logical block to physical address of a memory device
US11114180B1 (en) * 2020-08-17 2021-09-07 Winbond Electronics Corp. Non-volatile memory device
US11693781B2 (en) * 2020-08-20 2023-07-04 Micron Technology, Inc. Caching or evicting host-resident translation layer based on counter
US11537326B2 (en) 2020-09-10 2022-12-27 Western Digital Technologies, Inc. Relocation flow using CbA technology

Also Published As

Publication number Publication date
DE102021115235A1 (de) 2022-03-10
KR20220033975A (ko) 2022-03-17
US11537326B2 (en) 2022-12-27
US20230097523A1 (en) 2023-03-30
US20220075561A1 (en) 2022-03-10
US11972151B2 (en) 2024-04-30

Similar Documents

Publication Publication Date Title
CN106445724B (zh) 与受保护数据分开存储奇偶校验数据
US10275310B2 (en) Updating exclusive-or parity data
US10290353B2 (en) Error mitigation for 3D NAND flash memory
KR101933763B1 (ko) 연판정 디코딩을 위한 물리적 페이지 어드레스들을 상관시키는 것
US9971515B2 (en) Incremental background media scan
US11972151B2 (en) Memory device using CbA technology
CN113467705B (zh) 数据组块的增强读取
CN110119326B (zh) 数据存储装置及其操作方法
US10025664B2 (en) Selective buffer protection
WO2023101720A1 (en) Centralized sram error location detection and recovery mechanism
KR102705668B1 (ko) CbA 기술을 사용한 재배치 흐름
US20160211024A1 (en) Decoding data using a reserved word line
US11726911B2 (en) NVMe persistent memory region quick copy
US11989127B2 (en) Efficient L2P DRAM for high-capacity drives
US11645009B2 (en) Data storage with improved read parallelism
US20240289211A1 (en) UECC Block Mapping Update To A Bad Block
US11960397B2 (en) Data mapping comparison for improved synchronization in data storage devices
US11531499B2 (en) Data storage that controls decode performance by changing program PLC
US11355215B2 (en) Data storage apparatus and operation method i'hereof
US20240028524A1 (en) Accelerated Encryption During Power Loss
US12019899B2 (en) Data relocation with protection for open relocation destination blocks
US20230176775A1 (en) Enterprise Host Memory Buffer For DRAM-less SSD
WO2023205135A1 (en) Read look ahead optimization according to nvme dataset management hints

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
TA01 Transfer of patent application right

Effective date of registration: 20240827

Address after: California, USA

Applicant after: SanDisk Technology Co.

Country or region after: U.S.A.

Address before: California, USA

Applicant before: Western Digital Technologies, Inc.

Country or region before: U.S.A.

TA01 Transfer of patent application right