CN110069428B - 系统数据压缩和重建方法及系统 - Google Patents

系统数据压缩和重建方法及系统 Download PDF

Info

Publication number
CN110069428B
CN110069428B CN201910070069.4A CN201910070069A CN110069428B CN 110069428 B CN110069428 B CN 110069428B CN 201910070069 A CN201910070069 A CN 201910070069A CN 110069428 B CN110069428 B CN 110069428B
Authority
CN
China
Prior art keywords
content
elements
system data
pattern
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910070069.4A
Other languages
English (en)
Other versions
CN110069428A (zh
Inventor
伊戈尔·诺瓦格伦
亚历山大·伊娃纽克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110069428A publication Critical patent/CN110069428A/zh
Application granted granted Critical
Publication of CN110069428B publication Critical patent/CN110069428B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种用于压缩和重建系统数据的方法和系统。存储器系统的控制器包括搜索包括多个元素的系统数据阵列的模式并且基于该模式来压缩系统数据阵列的压缩部件。系统数据阵列包括多个元素之中的对应于第一模式的邻近元素。经压缩系统数据包括:第一信息,包括指示第一内容的第一位;第二信息,包括第一位图,该第一位图的每个位指示相应元素是否是第一模式的邻近元素之中的第一元素。

Description

系统数据压缩和重建方法及系统
相关申请的交叉引用
本申请要求于2018年1月24日提交的申请号为62/621,405的美国临时申请的权益,该申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种处理用于存储器系统的系统数据的方案。
背景技术
计算机环境范例已经变为可在任何时间和任何地点使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置被用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的存储器系统因不具有移动部件而提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、诸如通用闪存(UFS)的具有各种接口的存储卡以及固态驱动器(SSD)。存储器系统使用各种系统数据。
发明内容
本发明的各方面包括系统数据压缩和重建方法以及存储器系统。
在一个方面,一种存储器系统包括存储器装置和控制器。控制器包括搜索包括多个元素的系统数据阵列的模式并基于该模式来压缩系统数据阵列的压缩部件。控制器控制存储器装置以将经压缩系统数据存储在存储器装置中。系统数据阵列包括多个元素之中的对应于第一模式的邻近元素。经压缩系统数据包括:第一信息,包括指示第一内容的第一位;第二信息,包括第一位图,该第一位图的每个位指示相应元素是否是第一模式的邻近元素之中的第一元素。
在另一方面,一种存储器系统包括存储器装置和控制器,该存储器装置用于存储包括第一和第二信息的经压缩系统数据。控制器加载经压缩系统数据,并且基于第一和第二信息来重建加载的经压缩系统数据以生成系统数据阵列。系统数据阵列包括多个元素之中的对应于第一模式的邻近元素。第一信息包括指示第一内容的第一位。第二信息包括第一位图,该第一位图的每个位指示相应元素是否是第一模式的邻近元素之中的第一元素。
在又一方面,一种操作包括存储器装置和控制器的存储器系统的方法。该方法包括:搜索包括多个元素的系统数据阵列的模式;根据模式来压缩系统数据阵列;并且将经压缩系统数据存储在存储器装置中。系统数据阵列包括多个元素之中的对应于第一模式的邻近元素。经压缩系统数据包括:第一信息,包括指示第一内容的第一位;第二信息,包括第一位图,该第一位图的每个位指示相应元素是否是第一模式的邻近元素之中的第一元素。
在又一方面,一种操作包括存储器装置和控制器的存储器系统的方法。该方法包括:从存储器装置中加载包括第一和第二信息的经压缩系统数据;基于第一和第二信息来重建加载的经压缩系统数据以生成系统数据阵列。系统数据阵列包括多个元素之中的对应于第一模式的邻近元素。第一信息包括指示第一内容的第一位。第二信息包括第一位图,该第一位图的每个位指示相应元素是否是第一模式的邻近元素之中的第一元素。
从以下描述中,本发明另外的方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4A和图4B是示出根据本发明的实施例的数据处理系统的示图。
图5是示出根据本发明的实施例的存储器系统的示图。
图6是示出根据本发明的实施例的压缩部件的示图。
图7A和图7B是示出根据本发明的实施例的经压缩系统数据的示图。
图8A和图8B是示出系统数据阵列的示例的示图。
图9A和图9B是示出根据本发明的实施例的经压缩系统数据的示例的示图。
图10A和图10B是示出系统数据阵列的复杂数据结构的示图。
图11是示出根据本发明的实施例的系统数据的模式搜索过程的流程图。
图12是示出根据本发明的实施例的系统数据的压缩过程的流程图。
图13是示出根据本发明的实施例的系统数据的重建过程的流程图。
图14A至图14C是示出系统数据阵列的复杂数据结构的示例的示图。
图15A和图15B是示出系统数据阵列的复杂数据结构的另一示例的示图。
图15C是示出根据本发明的实施例的经压缩系统数据的示例的示图。
图16A是示出系统数据阵列的复杂数据结构的示例的示图。
图16B是示出根据本发明的实施例的经压缩系统数据的示例的示图。
具体实施方式
以下参照附图更详细地描述各个实施例。然而,本发明可以不同形式实施,并且不应被解释为限于本文阐述的实施例。相反地,提供这些实施例以使本公开彻底且充分,并且将本发明的范围全面地传达给本领域的技术人员。此外,本文中对“一个实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。在整个本公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以多种方式实施,包括作为进程;设备;系统;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如适于执行存储在联接到处理器的存储器上的指令和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可能采取的任何其它形式可被称为技术。通常,所公开进程的步骤的顺序可在本发明的范围内改变。除非另有说明,否则被描述为适于执行任务的诸如处理器或者存储器的部件可被实施为暂时配置成在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文所使用的,术语“处理器”等指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面提供了本发明的实施例的详细描述以及示出本发明各方面的附图。结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定。本发明包括处于权利要求范围内的许多替换、修改和等同物。为了提供对本发明的全面理解,在下面的描述中阐述了许多具体细节。为了示例的目的提供这些细节,并且可在没有一些或所有这些具体细节的情况下,根据权利要求实施本发明。为了清晰目的,没有详细描述与本发明相关的技术领域中公知的技术内容,以免不必要地模糊本发明。
图1是示出根据本发明的实施例的存储器系统10的框图。
参照图1,存储器系统10可包括存储器控制器100和半导体存储器装置200,该半导体存储器装置200可代表多于一个这种装置。半导体存储器装置200可以是闪速存储器装置,特别是NAND型闪速存储器装置。
存储器控制器100可控制半导体存储器装置200的全部操作。
半导体存储器装置200可在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可通过电源线接收电力PWR,并且通过控制线接收控制信号CTRL。控制信号CTRL可包括命令锁存启用(CLE)信号、地址锁存启用(ALE)信号、芯片启用(CE)信号、写入启用(WE)信号、读取启用(RE)信号等。
存储器控制器100和半导体存储器装置200可被集成在诸如固态驱动器(SSD)的单个半导体装置中。SSD可包括用于在其中存储数据的存储装置。当以SSD使用半导体存储器系统10时,联接到存储器系统10的主机(未示出)的操作速度可显着提升。
存储器控制器100和半导体存储器装置200可被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可被集成以形成:个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、高容量安全数字卡(SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器系统10可被提供为诸如以下的电子装置中的各种部件之一:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置、以及家庭网络的电子装置之一、计算机网络的电子装置之一、远程信息处理网络的电子装置之一、或计算系统的各种组件之一。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可描述图1所示的存储器系统10。
参照图2,存储器系统10可包括存储器控制器100和半导体存储器装置200。存储器系统10可响应于来自主机装置的请求而操作,并且特别地,存储待由主机装置访问的数据。
主机装置可利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可包括诸如以下的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、和/或数字视频记录器以及数字视频播放器。在一些实施例中,主机装置可包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可存储待由主机装置访问的数据。
存储器装置200可利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)的非易失性存储器装置来实施。
控制器100可控制数据在存储器装置200中的存储。例如,控制器100可响应于来自主机装置的请求来控制存储器装置200。控制器100可将从存储器装置200读取的数据提供给主机装置,并且可将从主机装置提供的数据存储到存储器装置200中。
控制器100可包括通过总线160联接的存储装置110、可被实施为诸如中央处理单元(CPU)的处理器的控制部件120、错误校正码(ECC)部件130、主机接口(I/F)140和存储器接口(I/F)150。
存储装置110可用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可存储由控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可将由主机装置使用的数据存储在存储器装置200中,以用于读取操作和写入操作。为了存储数据,存储装置110可包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制部件120可控制存储器系统10的一般操作,以及响应于来自主机装置的写入请求或读取请求来控制针对存储器装置200的写入操作或读取操作。控制部件120可驱动被称为闪存转换层(FTL)的固件以控制存储器系统10的一般操作。例如,FTL可执行诸如逻辑到物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射亦可称为逻辑块寻址(LBA)。
在读取操作期间,ECC部件130可检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC部件130可不校正错误位,而是可输出指示校正错误位失败的错误校正失败信号。
在一些实施例中,ECC部件130可基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)。这样,ECC部件130可包括用于适当的错误校正操作的所有电路、系统或装置。
主机接口140可通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)以及高速非易失性存储器(NVMe)。
存储器接口150可提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可在CPU 120的控制下生成用于存储器装置200的控制信号并处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可在CPU 120的控制下生成用于存储器的控制信号并处理数据。
存储器装置200可包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可为页面缓冲器阵列形式的页面缓冲器250、列解码器260和输入/输出电路270。存储器单元阵列210可包括可存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可形成用于存储器单元阵列210的外围电路。外围电路可执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可控制外围电路。
电压生成电路230可生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可生成各种电平的操作电压,诸如擦除电压和通过电压。
行解码器240可与电压生成电路230和多个存储块211电通信。行解码器240可响应于由控制电路220生成的行地址RADD而在多个存储块211中选择至少一个存储块,并将从电压生成电路230供应的操作电压传输到所选择的存储块。
页面缓冲器250可通过位线BL与存储器单元阵列210电通信(如图3所示)。响应于由控制电路220生成的页面缓冲器控制信号,页面缓冲器250可利用正电压对位线BL进行预充电,在编程操作和读取操作中向所选择的存储块传输数据和从所选择的存储块接收数据,或者临时存储传输的数据。
列解码器260可向页面缓冲器250传输数据和从页面缓冲器250接收数据,或者与输入/输出电路270交换数据。
输入/输出电路270可将从外部装置(例如,存储器控制器100)接收的命令和地址传输到控制电路220,将来自外部装置的数据传输到列解码器260,或者通过输入/输出电路270将数据从列解码器260输出到外部装置。
控制电路220可响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,示例性存储块211可包括联接到行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可平行布置,其中多个字线处于DSL与SSL之间。
示例性存储块211可进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每列的单元串可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在所示实施例中,每一个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可被形成为存储1位数据的单层单元(SLC)。存储器单元中的每一个可被形成为存储2位数据的多层单元(MLC)。存储器单元中的每一个可被形成为存储3位数据的三层单元(TLC)。存储器单元中的每一个可被形成为存储4位数据的四层单元(QLC)。
每一个单元串中的SST的源极可联接到公共源极线CSL,并且每一个DST的漏极可联接到对应的位线。单元串中的SST的栅极可联接到SSL,并且单元串中的DST的栅极可联接到DSL。跨越单元串的存储器单元的栅极可联接到各自的字线。也就是说,存储器单元MC0的栅极联接到对应的字线WL0,存储器单元MC1的栅极联接到对应的字线WL1等。联接到特定字线的存储器单元组可被称为物理页面。因此,存储块211中的物理页面的数量可对应于字线的数量。
页面缓冲器阵列250可包括联接到位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可响应于页面缓冲器控制信号进行操作。例如,在读取或验证操作期间,页面缓冲器251可临时存储通过位线BL0至BLm-1接收的数据,或者感测位线的电压或电流。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪速存储器单元。存储器单元阵列210可被实施为混合闪速存储器或1-NAND闪速存储器,其中在混合闪速存储器中组合了两种或更多种类型的存储器单元,在1-NAND闪速存储器中控制器被嵌入在存储器芯片内部。
在一些实施例中,存储块211可包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可包括NOR型闪速存储器单元。存储器单元阵列210可被实施为混合闪速存储器或1-NAND闪速存储器,其中在混合闪速存储器中组合了两种或更多种类型的存储器单元,在1-NAND闪速存储器中控制器被嵌入在存储器芯片内部。
图4A和图4B是示出根据本发明的实施例的数据处理系统的示图。
参照图4A,数据处理系统可包括主机系统5和存储器系统10。存储器系统10可包括控制器100和存储器装置200。在各个实施例中,存储器系统10可以是诸如通用闪存(UFS)的存储卡的闪存型存储装置以及固态驱动器(SSD)。
存储器装置200可包括多个闪存芯片200A至200D。控制器100可包括存储装置110A、控制部件120、主机接口逻辑140和闪存接口逻辑150。存储装置110A、控制部件120、主机接口逻辑140和闪存接口逻辑150可利用片上系统(SoC)来实施。存储装置110A可利用嵌入式随机存取存储器(RAM)来实施。控制部件120可利用微处理器(μP)来实施。控制部件120可包括通常在其上运行的固件(FW)。进一步地,控制器100可包括图2中示出但图4A和图4B中未示出的其它元件。可在片上系统(SoC)上实施存储装置110A、控制部件120、主机接口逻辑140和闪存接口逻辑150。
参照图4B,数据处理系统可包括主机系统5和存储器系统10。如图4A所示,存储器系统10可包括控制器100和存储器装置200。
控制器100可包括存储装置110B、控制部件120、主机接口逻辑140和闪存接口逻辑150。可在片上系统(SoC)上实施控制部件120、主机接口逻辑140和闪存接口逻辑150。存储装置110B可由外部随机存取存储器(RAM)来实施。控制部件120可利用微处理器(μP)来实施。控制部件120可包括通常在其上运行的固件(FW)。进一步地,控制器100可包括图2中示出但图4A和图4B中未示出的其它元件。
在图4A和图4B中,FW的功能之一是通过将来自主机系统5的请求(即,主机请求)转变成内部闪存操作来满足这些请求。FW对逻辑块进行读取和写入,并将它们转换为对存储器装置200的物理块和物理页面的低电平读取、编程和擦除命令。而且,FW应当防止存储器装置200的闪存芯片内的可靠性问题,例如,有限数量的擦除编程周期和读取/写入干扰。
为了提供闪存型存储装置10的所需功能,FW执行特定的内部过程。而且,FW必须生成一些特定的内部数据,例如系统数据(SD)。例如,系统数据可包括一组计数器(例如,擦除和读取计数器)和地址转换表,其中计数器用于在装置寿命期间控制闪存芯片的物理状态,并且地址转换表用于管理对闪存芯片中存储的数据的物理访问。因此,系统数据可被表示为一组条目,其中由FW针对特定所需功能来使用每一个条目。
FW将系统数据记录到闪存芯片本身,以在断电后重建正确的装置状态。同时,为了提供闪存型闪存装置的高级性能,FW必须将系统数据高速缓冲在可用的RAM 110A或110B中。优选地,如果所有系统数据都可存储在RAM 110A或110B中,则可实现最高性能。由于硬件开销限制和/或闪存芯片的超大容量,不可能总是使用具有相应容量的RAM 110A或110B。因此,FW必须周期性地从闪存芯片加载系统数据,这显著地降低装置性能。为了将更多的系统数据条目存储在RAM 110A或110B中,可无损地压缩系统数据。在这种情况下,可通过减少对闪存芯片的内部访问次数来提高性能。
存在用于存储器系统的许多数据压缩算法。它们的实施目标不同并且取决于待压缩的数据类型。例如,可使用适当的压缩算法以用于提高系统性能、节能、增加存储容量、降低失效率和带宽:Sparsh Mittal,Jeffrey S.Vetter:“高速缓冲器和主存储器系统中的数据压缩的结构方法综述”,IEEE Trans.Parallel Distrib.Syst.27(5):1524-1536(2016)。而且,系统数据的性质确定了最适于实施的压缩算法。例如,如果系统数据包括少量的频繁出现的不同值,则最好使用频繁值压缩(FVC)算法:J.Yang、Y.Zhang和R.Gupta“数据高速缓冲器中的频繁值压缩”,Proc.Annu.IEEE/ACM Int.Symp.Microarchit.:第258-265页(2000)。在SD条目的元素之间的差异非常小的情况下,可应用某些类型的基本增量或模式型压缩算法:G.Pekhimenko、V.Seshadri、O.Mutlu、P.B.Gibbons、M.A.Kozuch和T.C.Mowry“基本增量即时压缩:片上高速缓冲器的实际数据压缩”,PACT:第377-388页(2012);以及X.Chen、L.Yang、R.P.Dick、L.Shang和H.Lekatsas“C-pack:一种高性能微处理器高速缓冲压缩算法”,IEEE Transactions on VLSI Systems 18(8):第1196–1208页(2010)。
在各个实施例中,提供了用于诸如NAND闪存型存储装置的存储器系统的系统数据的可调压缩方案。该压缩方案可考虑经压缩数据元素之间的变量差异。压缩方案可通过减少系统数据的大小来减少对闪存芯片的内部FW访问次数,并且使得整体系统性能提升。在不限制一般适用性的情况下,系统数据条目可被视为一些二进制结构阵列或系统数据阵列(SDA)。
在各个实施例中,SDA元素的状态不仅取决于内部FW管理算法,还取决于来自主机系统的命令(即,主机命令)的顺序。如果主机系统的行为具有一些规律性(例如,顺序读取/写入),则可在SDA元素中观察到这种规律性。例如,主机系统顺序地重写存储器装置的整个容量,擦除计数器表包括彼此非常接近的值。换言之,任何两个元素之间的差异不大于阈值(例如,1)。如果主机系统的行为是随机的,则难以识别SDA元素之间的规律性。例如,如果主机系统使用存储器装置的整个容量来进行随机读取,则读取计数器表包括随机的整数值。
因此,可在SDA元素中观察到一些模式,其中模式是与其邻近元素存在一些关系的SDA元素的线性子集。例如,如果存在其中每一个元素包括相同值的SDA元素的线性子集,则该线性子集形成相同值模式(SVP)并且邻近元素之间的关系为相等。
在各个实施例中,模式基数(BP)被定义为形成了某个模式的SDA元素的线性子集中的第一元素的内容。可使用来自模式的任何元素的BP以及元素之间的预定义关系来获得任何元素的二进制内容。
图5是示出根据本发明的实施例的例如图1、图2、图4A和图4B的存储器系统10的存储器系统的示图。
参照图5,存储器系统10可包括控制器100和存储器装置200。在各个实施例中,存储器系统10可以是诸如通用闪存(UFS)的存储卡的闪存型存储装置以及固态驱动器(SSD)。存储器装置200可包括如图4A和图4B所示的多个闪存芯片200A至200D,其中如图4A和图4B所示的多个闪存芯片200A至200D可以是NAND型闪存芯片。
控制器100可包括存储装置110和控制部件120。控制部件120可包括压缩部件510和重建部件520。控制部件120可利用微处理器(μP)来实施。控制部件120可包括通常在其上运行的固件(FW)。进一步地,控制器100可包括图2中示出但图5中未示出的其它元件。
控制部件120可通过图4A和图4B的主机接口逻辑140从主机系统5接收系统数据阵列。控制部件120可使用压缩部件510来压缩系统数据阵列以生成经压缩系统数据。系统数据阵列可包括多个元素。控制部件120可通过图4A和图4B的闪存接口逻辑150将经压缩系统数据传输到存储器装置200。存储器装置200可将经压缩系统数据存储在某个存储器区域中。
控制部件120可从存储器装置200加载所存储的经压缩系统数据。进一步地,控制部件120可将加载的经压缩系统数据存储在存储装置110中。存储装置110可以是如图4A和图4B所示的嵌入式RAM 110A或外部RAM 110B。
压缩部件510可接收系统数据阵列,搜索系统数据阵列的模式,并且基于搜索到的模式来压缩系统数据阵列。
在各个实施例中,系统数据阵列包括多个元素之中的对应于第一模式的邻近元素。邻近元素共同包括第一内容。
在各个实施例中,经压缩系统数据包括第一信息和第二信息。第一信息包括指示第一内容的第一位。第二信息包括第一位图。第一位图中的每一位指示相应元素是否是第一模式的邻近元素之中的第一元素。
在各个实施例中,所有邻近元素同样地具有第一内容。可选地,邻近元素的第一元素具有第一内容,邻近元素的第二元素具有与第一内容不同的第二内容,第二元素与第一元素相邻。
在各个实施例中,经压缩系统数据进一步包括第三信息,第三信息包括第二位图。第二位图的第一位指示第一模式的长度。
在各个实施例中,系统数据阵列包括至少一个具有第二模式的其它元素。其它元素具有与第一内容不同的第二内容。其它元素插入在邻近元素之中的两个相邻元素之间。第一信息进一步包括指示第二内容的第二位。第二位图的第二位指示第二模式的长度。
重建部件520可重建加载的经压缩系统数据。在各个实施例中,重建部件520可基于第一和第二信息来重建加载的经压缩系统数据。
图6是示出根据本发明的实施例的例如图5的压缩部件510的压缩部件的示图。
参照图6,压缩部件510可通过图4A和图4B的主机接口逻辑140从主机系统5接收系统数据阵列。压缩部件510可压缩系统数据阵列以生成经压缩系统数据。
压缩部件510可包括初始化部件512、搜索部件514和压缩组件516。初始化部件512可执行根据本发明的实施例的压缩方案的初始化过程。搜索部件514可执行用于搜索系统数据阵列的模式的搜索过程。压缩组件516可执行基于搜索到的模式来压缩系统数据阵列的压缩过程。下面将描述初始化过程、搜索过程和压缩过程。
图7A和图7B是示出根据本发明的实施例的经压缩系统数据700的示图。
参照图7A,经压缩系统数据700可包括第一信息720、第二信息710和第三信息730。第二信息710可包括主位图。第一信息720可包括基数阵列。第三信息730可包括辅助位图。
参照图7B,示出了经压缩系统数据700可进一步包括第四信息705和第五信息740。第四信息705可包括主位图索引。第五信息740可包括基数阵列和辅助位图索引。应当注意的是,已经添加的第四信息705和第五信息740,即索引,仅仅用于简化对压缩算法本身的理解和更好的可视化。换言之,索引可不被包括和存储在经压缩系统数据700中。
下面将描述包括在经压缩系统数据700中的信息710至750。
图8A和图8B是示出系统数据阵列(SDA)的示例的示图。
参照图8A,系统数据阵列可包括多个元素和多个元素索引i至(i+11)。对应于元素索引i和(i+1)的元素具有内容“j1”。对应于元素索引(i+10)和(i+11)的元素分别具有内容“j3”和“j4”。对应于元素索引(i+2)至(i+9)的元素各自具有内容“10”。换言之,多个元素包括与元素索引(i+2)至(i+9)相对应的邻近元素,其中该邻近元素形成第一模式。邻近元素共同包括第一内容“10”。第一模式可被定义为相同值模式(SVP)。
图8A的模式(即,SVP)具有每一个都与其邻近元素具有预定义关系的元素。该模式可被表示为两个值:BP=10和模式长度L=8。相比于存储整个模式,这种表示可能需要较少的存储器(例如,RAM)资源。
图9A和图9B是示出根据本发明的实施例的经压缩系统数据的示例的示图。图9A的经压缩系统数据可对应于图8A的系统数据阵列(即,SVP),并且图9B的经压缩系统数据(即,两个SVP或单个SP)可对应于图8B的系统数据阵列。图9A和图9B的经压缩系统数据可由图5和图6的压缩部件510生成。
参照图9A,经压缩系统数据可包括作为第一信息的基数阵列、作为第二信息的主位图、作为第三信息的辅助位图、作为第四信息的主位图索引以及作为第五信息的基数阵列和辅助位图索引。第一信息(即,基数阵列)可包括指示与图8A中的索引(i+2)至(i+9)相对应的元素的内容的值“10”的位。
第二信息(即,主位图)可包括多个位,该多个位中的每一个指示相应元素是否是包括在模式SVP中的元素之中的第一元素。主位图的多个位的数量可对应于包括在模式SVP中的元素的数量。第二信息的第一位可包括具有值“0”的位,值“0”指示相应元素是包括在模式SVP中的元素之中的第一元素。第二信息的剩余位可具有值“1”,值“1”指示相应元素不是包括在模式SVP中的元素之中的第一元素。
第三信息(即,辅助位图)可包括至少一个指示模式SVP的长度的位。基于包括在系统数据阵列中的模式SVP的数量,辅助位图具有一个或多个位。因为模式SVP的数量为1,所以辅助位图具有一个位。辅助位图的位具有指示模式SVP是具有一个元素还是具有更多个元素的值。因为模式SVP具有对应于长度L=8的8个元素,所以辅助位图的位具有值“1”。
第四信息(即,主位图索引)可包括指示索引(i+2)至索引(i+9)的、与主位图的位相对应的位。换言之,主位图索引中的每一个可对应于包括在模式SVP中的元素中的每一个。第五信息(即,基数阵列和辅助位图索引)可包括指示基数阵列和辅助位图索引的一个或多个位。因为基数阵列和辅助位图索引的数量为1,所以第五信息包括指示索引k的一个位。
重新参照图8B,系统数据阵列可包括多个元素和多个元素索引i至(i+11)。对应于元素索引i和(i+1)的元素具有内容“j1”。对应于元素索引(i+10)和(i+11)的元素分别具有内容“j3”和“j4”。对应于元素索引(i+2)至(i+4)和(i+6)至(i+9)的元素具有内容“10”。对应于元素索引(i+5)的元素具有内容“20”。换言之,多个元素包括对应于元素索引(i+2)至(i+4)的邻近元素、对应于元素索引(i+6)至(i+9)的邻近元素以及对应于元素索引(i+5)的元素,其中对应于元素索引(i+2)至(i+4)的邻近元素形成第一模式,对应于元素索引(i+6)至(i+9)的邻近元素形成第二模式,对应于元素索引(i+5)的元素形成第三模式。对应于元素索引(i+2)至(i+4)和(i+6)至(i+9)的邻近元素共同包括第一内容“10”。第一和第二模式可被定义为可被插入而作为单个分割模式(SP)的相同值模式(SVP)。第三模式可插入在第一模式和第二模式之间,并且可被定义为具有长度1的模式。
重新参照图4A和图4B,在处理来自主机系统5的命令期间,控制部件120将具有索引(i+5)的元素的二进制内容改变为一些其它的二进制内容。例如,如图8B所示,控制部件120将具有索引(i+5)的元素的内容从10改变为20。
在图8B中,具有索引(i+5)的元素与邻近元素不具有相等的关系,因此它可被解释为具有长度1的模式。因此,这种改变将图8A的初始SVP分割成两个SVP(其可被插入而作为单个分割模式(SP)),其中该两个SVP包括具有从索引(i+2)至(i+4)的元素的第一SVP和具有从索引(i+6)至(i+9)的元素的第二SVP,它们具有相同的BP=10。换言之,具有索引(i+5)的元素与其邻近元素没有预定义的关系,而是作为具有长度等于1的模式。这种元素可被表示为两个值:与元素内容相等的BP=20和L=1。
参照图9B,经压缩系统数据可包括作为第一信息的基数阵列、作为第二信息的主位图、作为第三信息的辅助位图、作为第四信息的主位图索引以及作为第五信息的基数阵列和辅助位图索引。第一信息(即,基数阵列)可包括指示与图8B中的索引(i+2)至(i+4)和(i+6)至(i+9)相对应的元素的内容的值“10”的位和指示与图8B中的索引(i+5)相对应的元素的内容的值“20”的位。
第二信息(即,主位图)可包括多个位。多个位中的每一个指示相应元素是否是包括在SP或者具有长度1的模式中的元素之中的第一元素。主位图的多个位的数量可对应于包括在SP或者具有长度1的模式中的元素的数量。第二信息的第一位可包括具有值“0”的位,值“0”指示相应元素是包括在SP中的元素之中的第一元素。第二信息的第二和第三位可具有值“1”,值“1”指示相应元素不是包括在SP中的元素之中的第一元素。第二信息的第四位可包括具有值“0”的位,值“0”指示相应元素是包括在具有长度1的模式中的元素之中的第一元素。第二信息的从5至8的位可具有值“1”,值“1”指示相应元素不是包括在SP中的元素之中的第一元素。
第三信息(即,辅助位图)可包括指示模式的长度大于1时的情况的位。基于包括在系统数据阵列中的模式的数量,辅助位图具有一个或多个位。因为模式SP的数量为1,所以辅助位图具有一个位。因为具有长度1的模式的数量为1,所以辅助位图具有另一个位。辅助位图的第一位具有指示模式SP是具有一个元素还是更多个元素的值。因为模式SP具有大于1的、与长度L=7相对应的7个元素,所以辅助位图的第一位具有值“1”。因为具有长度1的模式具有与长度L=1相对应的1个元素,所以辅助位图的第二位具有值“0”。
第四信息(即,主位图索引)可包括指示索引(i+2)至索引(i+9)的、与主位图的位相对应的位。换言之,主位图索引中的每一个可对应于包括在模式SP或具有长度1的模式中的元素中的每一个。第五信息(即,基数阵列和辅助位图索引)可包括指示基数阵列和辅助位图索引的一个或多个位。因为基数阵列和辅助位图索引的数量为1,所以第五信息包括指示索引k的一个位和指示索引(k+1)的另一个位。
如图9B所示,压缩方案允许重建初始模式SVP的分割部分之间的关系。这使得针对初始SVP模式的分割部分中的每一个,仅存储一个BP而非存储所有的BP。经压缩数据具有三个数据结构:包括主位图和辅助位图的2个位图,以及1个基数阵列。
基数阵列包括针对每一个模式的所有BP,这包括具有L=1的模式的BP。主位图的大小等于SDA中元素的数量。每一个元素在主位图中具有自己的位。如果该位被设置为“1”,则相应元素属于某种模式。如果未设置该位,即如果该位被设置为“0”,则相应元素是新模式中的第一元素。
只有作为新模式的BP的元素在辅助位图中具有相应的位。如果该位被设置为“1”,则模式的长度大于阈值(即,1)。如果未设置该位,即如果该位被设置为“0”,则模式的长度等于阈值。
辅助位图使得仅存储初始模式的一个BP而非存储所有BP,即使初始模式已经通过具有L=1的模式而被分割成若干部分。可在没有完全解压缩基数阵列和两个提及位图的情况下,容易地重建任何经压缩SDA元素的内容。
重新参照图5,为了提供特定的功能,控制部件120(即,FW)可使用特定的SDA。例如,控制部件120使用擦除计数器表来管理针对物理块的擦除-编程周期的数量。在该示例中,控制部件120将提及SDA的元素的所有位解释为整数。
然而,在另一示例中,如图10A和图10B所示,特定SDA的元素可以是包括32位元素的复杂数据结构。在图10A和图10B中,复杂数据结构可包括包含位0至位27的位字段和包含位28至位31的控制位(或标志)。位字段可包括:包含位25至位27的位字段1、包含位20至位24的位字段2、包含位11至位19的位字段3以及包含位0至位10的位字段4。控制位可包括位28(即,标志4)、位29(即,标志3)、位30(即,标志2)和位31(即,标志1)。
此外,FW对SDA的内容解释可取决于SDA的控制位的状态,其中FW根据其内部算法来管理SDA的控制位。例如,如图10A所示,如果未设置“标志4”,则FW将从0至10的位解释为单个位字段(“位字段4”)。如图10B所示,如果设置了“标志4”,则FW将从0至10的位解释为两个单独的位字段,即从6至10的位的“位字段4.1”和从0至5的位的“位字段4.2”。
由于SDA的复杂结构,FW工程师可考虑主机系统的行为和FW算法的特征来定义特定SDA中可能观察到的模式。
如上所述,如果SDA具有图10A或图10B的结构,则可以是以下观察到的模式,诸如相同值模式(SVP)和增量值模式(DVP)。如图10A所示,仅在未设置“标志4”时,才可能在SDA中出现SVP。SVP的元素之间的关系可被定义为“相等”(参见图8A)。如图10B所示,仅在设置了“标志4”时,才可能在SDA中出现DVP。这表示SDA的两个邻近元素之间的差异是恒定且已知的(定义为d)。DVP的元素之间的关系可被定义为“d-diff”(参见图8B)。
重新参照图6,对SDA的压缩方案可包括三个步骤,该三个步骤包括:初始化部件512的初始化过程、搜索部件514的搜索过程和压缩组件516的压缩过程。在压缩方案中,变量“SPcontent”用于存储SP的SDA元素的内容,变量“i”用于通过SDA元素的迭代,变量“SPrelation”用于存储SP的元素之间的关系类型(“相等”或“d-diff”)。
初始化过程可通过以下列表中所示的步骤执行:
图11是示出根据本发明的实施例的系统数据的模式搜索过程1100的流程图。搜索过程1100可由图6中的压缩部件510的搜索部件514来执行。可在L>1的情况下执行搜索过程1100。如果不存在具有L>1的模式,则压缩算法无法运行并停止该算法。
参照图11,在步骤1102中,确定是否处理了系统数据阵列(SDA)。当确定未处理SDA时,可执行步骤1104。在步骤1104中,可设置图7A和图7B的主位图710中的第i位。在步骤1106中,可将第i SDA元素的内容插入到基数阵列中。在步骤1108中,确定在第i SDA元素中是否设置了图10A和图10B的“标志4”。当确定在第i SDA元素中设置了“标志4”时,可执行步骤1110。否则,可执行步骤1112。在步骤1110中,可将SPrelation设置为“d-diff”。在步骤1112中,可将SPrelation设置为“相等”。
在步骤1114中,确定具有索引i和(i+1)的SDA元素是否处于SPrelation。当确定具有索引i和(i+1)的SDA元素处于SPrelation时,可执行步骤1120和1122。否则,可执行步骤1116和1118。
在步骤1116中,可将“0”插入到图7A和图7B的辅助位图730。在步骤1118中,可增加索引i。
在步骤1120中,可将“1”插入到辅助位图730。在步骤1122中,可将第i SDA元素的内容置入SPcontent。
应当注意的是,如果成功地完成了搜索过程,则必须将此搜索过程中的变量(i、SPrelation和SPcontent)的值用于压缩过程。
图12是示出根据本发明的实施例的系统数据的压缩过程1200的流程图。压缩过程1200可由图6中的压缩部件510的压缩组件516来执行。
参照图12,在步骤1204中,确定是否处理了系统数据阵列(SDA)。当确定未处理SDA时,可执行步骤1206。在步骤1206中,确定第i SDA元素是否可通过SPrelation而与SPcontent具有关系。当确定第i SDA元素可通过SPrelation而与SPcontent具有关系时,可执行步骤1208、1210和1202。否则,可执行步骤1212和1214。
在步骤1208中,可将图7A和图7B的主位图710中的第i位设置为“1”。在步骤1210中,可根据Sprelation来更新SPcontent。
在步骤1212中,可将主位图710中的第i位设置为“0”。在步骤1214,可将第i SDA元素的内容插入到基数阵列中。
在步骤1216中,确定在第i SDA元素中是否设置了图14A和图15A的“标志4”。当确定在第i SDA元素中设置了“标志4”时,可执行步骤1218。否则,可执行步骤1220。在步骤1218中,可保存SPrelation的状态并将其设置为“d-diff”。在步骤1220中,可保存SPrelation的状态并将其设置为“相等”。
在步骤1222中,确定具有索引i和(i+1)的SDA元素是否处于SPrelation。当确定具有索引i和(i+1)的SDA元素处于SPrelation时,可顺序地执行步骤1228、1230和1202。否则,可顺序地执行步骤1224、1226、1210和1202。
在步骤1224中,可将SPrelation回滚到保存的状态。在步骤1226中,可将“0”插入到图7A和图7B的辅助位图730。在步骤1228中,可将第i SDA元素的内容置入SPcontent。在步骤1230中,可将“1”插入到辅助位图730。在步骤1202中,可增加索引i。
周期性地,在运行时,可由FW请求经压缩SDA的元素的内容。如图13所示,通过使用初始SDA中的元素的偏移,可在没有完全解压缩的情况下容易地重建任何经压缩SDA元素的内容。换言之,将变量j用于通过基数阵列和辅助位图的迭代。在完成上述压缩算法之后,该变量SPcontent包括所需SDA元素的内容。可以类似的方式完成经压缩SDA的解压缩。
图13是示出根据本发明的实施例的系统数据的重建过程1300的流程图。重建过程1300可由图5的重建部件520来执行。
参照图13,在步骤1302中,可将变量i和k初始化为“0”。在步骤1304中,确定变量i是否可能需要SDA偏移。当确定变量i可能需要SDA偏移时,可执行步骤1306中。否则,可执行步骤1324。
在步骤1306中,确定图7A和图7B的主位图710中的第i位是否可被设置为“1”。当确定主位图710中的第i位可被设置为“1”时,可执行步骤1314。否则,可执行步骤1308和1312,或执行步骤1308、1310和1312。
在步骤1308中,确定图7A和图7B的辅助位图730中的第k位是否可被设置为“1”。在步骤1310中,可将来自基数阵列的第k SDA元素的内容置入SPcontent。在步骤1312中,可增加索引k。
在步骤1314中,确定在第i SPcontent中是否设置了图14A和图15A的“标志4”。当确定在第i SPcontent中设置了“标志4”时,可执行步骤1316和1320。否则,可执行步骤1318和1320。在步骤1316中,可将SPrelation的状态设置为“d-diff”。在步骤1318中,可将SPrelation的状态设置为“相等”。
在步骤1320中,可根据Sprelation来更新SPcontent。在执行步骤1320之后,可执行步骤1322,然后可执行步骤1304。在步骤1322中,可增加索引i。
在步骤1324中,确定主位图710中的第i位可被设置为“1”。当确定主位图710中的第i位可被设置为“1”时,可结束重建过程1300。否则,在步骤1326中,可将来自基数阵列的第k SDA元素的内容置入SPcontent。
在各个实施例中,压缩方案可用于压缩移动NAND闪存型存储装置中的逻辑到物理地址转换表(L2P)。在这种情况下,系统数据阵列(SDA)可以是L2P表的一段。由于移动产品中的RAM资源限制,固件(FW)必须周期性地将L2P的段从存储器装置加载到高速缓冲器中,例如从图5中的存储器装置200加载到存储装置110中。可在图4A、图4B和图5的控制部件120上运行FW。
任何L2P条目都是具有特定位字段的复杂二进制数据结构。例如,如图14A所示,L2P条目的大小可以是16位。
参照图14A,如果设置了“有效位”,则在处理L2P条目期间,FW将从0至11的位解释为对应于逻辑块地址(LBA)的物理地址。对于图4A或图4B中的主机系统5的行为,可将典型的模式描述为:顺序地写入一些范围的LBA,并且随机地重写该范围中的一些LBA。假设L2P段的大小为16个条目,每一个条目的内容以HEX格式表示,FW使用第3超级块来顺序写入并且使用第4超级块来随机写入。在图14B和图14C中示出了该工作负载的L2P元素的状态。
图14B是示出例如L2P段的系统数据阵列的复杂数据结构的示例的示图。
参照图14B,L2P段可包括对应于LBA的16个元素。顺序地写入一些范围的LBA。因此,16个元素的内容具有范围从“0x1300”至“0x130F”的值。
在顺序写入之后,L2P段的所有元素都包括顺序值,并且两个邻近条目之间的差异等于1。因此,在顺序写入之后,L2P段的元素形成具有BP=0x1300的增量值模式(DVP)。换言之,元素之间的关系为“1-diff”。
图14C是示出例如L2P段的系统数据阵列的复杂数据结构的示例的示图。
参照图14C,L2P段可包括对应于LBA的16个元素。随机重写范围从“0x1300”至“0x130F”的一些LBA(例如,索引3和4)。当图4A或图4B的主机系统5随机重写L2P段的一些LBA(例如,索引3和4)时,初始增量值模式被分割成两个部分:第一部分具有范围为从0至2的索引,第二部分具有范围为从5至15的索引。
重新参照图4A或图4B,在处理如图14A至图14C所示的L2P段之后,主机系统5可针对图14C的一些LBA发送修整命令。在处理这些命令期间,如图15A所示,控制部件120(即,FW)可将经修整LBA的“有效位”设置为零,并且将超级块擦除计数器值的值写入预定义的位字段(例如,从0至7的位)。图15A表示FW如何解释经修整LBA的L2P元素。
图15B示出了在处理修整命令之后的例如L2P段的结构的系统数据阵列的复杂数据结构。
参照图15B,图4A或图4B的主机系统针对具有索引9和10的LBA发送修整命令。因为这些LBA已被写入相同的超级块,所以擦除计数器值也将相同,例如索引7的值。
可以看出的是,这些修整命令将具有BP=0x1305和L=11(即,从索引5至索引15)的DVP分割开。此外,具有索引9和10的L2P条目形成具有BP=0x0307和L=2的SVP。元素9和10之间的关系为相等。
图15C是示出根据本发明的实施例的经压缩系统数据的示例的示图。例如,图15C示出了图15B的L2P段被压缩。
参照图15C,经压缩L2P段可包括主位图和相应的主位图索引,该主位图包括16个位“0110011110101111”,相应的主位图索引范围为从0至15。进一步地,经压缩L2P段可包括基数阵列的信息,该信息包括5个BP值“0x1300”、“0x14F1”、“0x1409”、“0x0307”和“0x130B”。此外,经压缩L2P段可包括辅助位图以及相应的基数阵列和辅助位图索引,该辅助位图包括5个位“10011”,相应的基数阵列和辅助位图索引范围为从0至4。可通过图9A和图9B中的压缩方案来类似地确定包括在图15C的经压缩L2P段中的信息的值。
重新参照图5,控制部件120(即,FW)可能需要具有索引10的L2P段的内容,如图15B所示。如图15C所示,控制部件120可从经压缩数据来重建数据。根据图13的重建过程,重建部件520可读取与主位图索引0至10相对应的主位图的11个位。因此,迭代的总数量可以为11,如下面的列表2至列表12。重建期间通过位图的迭代所使用的变量为i和k。变量i表示主位图,变量k表示辅助位图。根据下面的列表2至列表12来描述每次迭代的变量的值和动作(action)顺序:
列表2:
列表3:
列表4:
列表5:
列表6:
列表7:
列表8:
列表9:
列表10:
列表11:
列表12:
在以上列表2至列表12中,可通过列表2的迭代来重建图15B和图15C的元素内容“0x1300”。可通过列表3的迭代来重建图15B和图15C的元素内容“0X1301”,并且可通过列表4的迭代来重建图15B和图15C的元素内容“0x1302”。可通过列表5的迭代并且从具有根据变量k的值的索引的基数阵列读取元素来重建图15B和图15C的元素内容“0x14F1”,并且可通过列表6的迭代并且从具有根据变量k的值的索引的基数阵列读取元素来重建图15B和图15C的元素内容“0x1409”。可通过列表12的迭代来重建图15B和图15C的元素内容“0x0307”。
当完成上述重建算法时,变量SPrelation=0x0305包括LBA段中所需偏移的内容。可借助于该算法来重建任何L2P段条目的内容。
提供以上详细描述是为了说明和描述的目的。不旨在将本发明限制到精确的形式。可以修改压缩算法的参数以满足特定要求。例如,如果在系统数据阵列(SDA)中所观察到的模式的BP之间存在已知关系,则为了提高压缩比,可增加对基数阵列的另外压缩。可选地,如图16A所示,如果整个SDA包括具有单个BP的非分割模式,则可考虑对主位图进行压缩。
图16A是示出系统数据阵列的复杂数据结构的示例的示图,例如仅包括一个模式的L2P段的结构。图16B是示出根据本发明的实施例的经压缩系统数据的示例的示图。例如,图16B示出了图16A的L2P段被压缩。
参照图16A,L2P段可包括具有单个BP(即,“0x1000”)的非分割模式。换言之,具有索引0的元素至具有索引15的元素之中的邻近元素,即相邻的两个元素具有线性关系。
参照图16B,经压缩L2P段可包括主位图和相应的主位图索引,该主位图包括16个位“0111111111111111”,相应的主位图索引范围为从0至15。进一步地,经压缩L2P段可包括基数阵列的信息,该信息仅包括一个BP值“0x1000”。此外,经压缩L2P段可包括辅助位图以及相应的基数阵列和辅助位图索引0,该辅助位图包括1个位“1”。
从图16B可以看出的是,如果SDA仅包括一个模式,则因为第一SDA元素为BP,所以除了总是等于0的第一位之外,主位图的所有位都等于1。换言之,主位图的第一位等于0,并且主位图的所有其它位等于1。这允许将主位图的大小减少到1个位。可通过使用任何SDA元素的索引和存储在基数阵列中的BP来重建该SDA元素的内容。
如前所述,本发明的实施例提供了一种用于可设置诸如NAND闪存型存储装置的存储器系统的系统数据的可调压缩方案。该压缩方案可考虑经压缩数据元素之间的变量差异。该压缩方案可通过减少系统数据的大小来减少对闪存芯片的内部固件(FW)访问次数,并实现整体系统性能提升。
虽然为了清楚和理解的目的已经详细示出和描述了前述实施例,但是本发明不限于所提供的细节。正如本领域技术人员根据前述公开内容将理解的那样,存在许多实施本发明的可选方式。因此,所公开的实施例是说明性的,而非限制性的。本发明旨在涵盖落入权利要求范围内的所有修改和替换。

Claims (20)

1.一种存储器系统,包括:
存储器装置;以及
控制器,包括压缩部件,所述压缩部件识别包括多个元素的系统数据阵列的一种或多种模式并且基于所识别的一种或多种模式来压缩所述系统数据阵列,所述多个元素包括邻近元素和插入在所述邻近元素之中的两个相邻元素之间的至少一个其他元素,所述一种或多种模式包括第一模式和第二模式,所述第一模式指示所述邻近元素具有第一内容,所述第二模式指示所述其他元素具有与所述第一内容不同的第二内容,并且
其中所述控制器控制所述存储器装置以将经压缩系统数据存储在所述存储器装置中,
其中所述系统数据阵列包括所述多个元素之中的对应于所述第一模式的所述邻近元素,并且
其中所述经压缩系统数据包括:
第一信息,包括指示所述第一内容的第一位,以及
第二信息,包括第一位图,所述第一位图的每个位指示相应元素是否是所述第一模式的邻近元素之中的第一元素。
2.根据权利要求1所述的存储器系统,其中所有的所述邻近元素同样地具有所述第一内容。
3.根据权利要求1所述的存储器系统,其中所述邻近元素的第一元素具有所述第一内容,所述邻近元素的第二元素具有与所述第一内容不同的第二内容,所述第二元素与所述第一元素相邻。
4.根据权利要求1所述的存储器系统,其中所述经压缩系统数据进一步包括:
第三信息,包括第二位图,所述第二位图的第一位指示所述第一模式的长度。
5.根据权利要求4所述的存储器系统,其中所述系统数据阵列包括具有所述第二模式的所述其他元素,所述其他元素具有与所述第一内容不同的所述第二内容,所述其他元素插入在所述邻近元素之中的两个相邻元素之间,
其中所述第一信息进一步包括指示所述第二内容的第二位,并且
其中所述第二位图的第二位指示所述第二模式的长度。
6.一种存储器系统,包括:
存储器装置,存储包括第一信息和第二信息的经压缩系统数据;以及
控制器,加载所述经压缩系统数据,并且基于所述第一信息和所述第二信息来重建所加载的经压缩系统数据以生成系统数据阵列,
其中所述系统数据阵列包括对应于第一模式的邻近元素和插入在所述邻近元素之中的两个相邻元素之间的至少一个其他元素,所述第一模式指示所述邻近元素具有第一内容,第二模式指示所述其他元素具有与所述第一内容不同的第二内容,
其中所述第一信息包括指示所述第一内容的第一位,并且
其中所述第二信息包括第一位图,所述第一位图的每个位指示相应元素是否是所述第一模式的邻近元素之中的第一元素。
7.根据权利要求6所述的存储器系统,其中所有的所述邻近元素同样地具有所述第一内容。
8.根据权利要求6所述的存储器系统,其中所述邻近元素的第一元素具有所述第一内容,所述邻近元素的第二元素具有与所述第一内容不同的第二内容,所述第二元素与所述第一元素相邻。
9.根据权利要求6所述的存储器系统,其中所述经压缩系统数据进一步包括:
第三信息,包括第二位图,所述第二位图的第一位指示所述第一模式的长度。
10.根据权利要求9所述的存储器系统,其中所述系统数据阵列包括具有所述第二模式的所述其他元素,所述其他元素具有与所述第一内容不同的所述第二内容,所述其他元素插入在所述邻近元素之中的两个相邻元素之间,
其中所述第一信息进一步包括指示所述第二内容的第二位,并且
其中所述第二位图的第二位指示所述第二模式的长度。
11.一种操作存储器系统的方法,所述存储器系统包括存储器装置和控制器,所述方法包括:
识别包括多个元素的系统数据阵列的一种或多种模式,所述多个元素包括邻近元素和插入在所述邻近元素之中的两个相邻元素之间的至少一个其他元素,所述一种或多种模式包括第一模式和第二模式,所述第一模式指示所述邻近元素具有第一内容,所述第二模式指示所述其他元素具有与所述第一内容不同的第二内容;
基于所识别的一种或多种模式来压缩所述系统数据阵列;并且
将经压缩系统数据存储在所述存储器装置中,
其中所述系统数据阵列包括所述多个元素之中的对应于所述第一模式的所述邻近元素,并且
其中所述经压缩系统数据包括:
第一信息,包括指示所述第一内容的第一位,以及
第二信息,包括第一位图,所述第一位图的每个位指示相应元素是否是所述第一模式的邻近元素之中的第一元素。
12.根据权利要求11所述的方法,其中所有的所述邻近元素同样地具有所述第一内容。
13.根据权利要求11所述的方法,其中所述邻近元素的第一元素具有所述第一内容,所述邻近元素的第二元素具有与所述第一内容不同的第二内容,所述第二元素与所述第一元素相邻。
14.根据权利要求11所述的方法,其中所述经压缩系统数据进一步包括:
第三信息,包括第二位图,所述第二位图的第一位指示所述第一模式的长度。
15.根据权利要求14所述的方法,其中所述系统数据阵列包括具有所述第二模式的所述其他元素,所述其他元素具有与所述第一内容不同的所述第二内容,所述其他元素插入在所述邻近元素之中的两个相邻元素之间,
其中所述第一信息进一步包括指示所述第二内容的第二位,并且
其中所述第二位图的第二位指示所述第二模式的长度。
16.一种操作存储器系统的方法,所述存储器系统包括存储器装置和控制器,所述方法包括:
从存储器装置加载包括第一信息和第二信息的经压缩系统数据;并且
基于所述第一信息和所述第二信息来重建所加载的经压缩系统数据以生成系统数据阵列,
其中所述系统数据阵列包括对应于第一模式的邻近元素和插入在所述邻近元素之中的两个相邻元素之间的至少一个其他元素,所述第一模式指示所述邻近元素具有第一内容,第二模式指示所述其他元素具有与所述第一内容不同的第二内容,
其中所述第一信息包括指示所述第一内容的第一位,并且
其中所述第二信息包括第一位图,所述第一位图的每个位指示相应元素是否是所述第一模式的邻近元素之中的第一元素。
17.根据权利要求16所述的方法,其中所有的所述邻近元素同样地具有所述第一内容。
18.根据权利要求16所述的方法,其中所述邻近元素的第一元素具有所述第一内容,所述邻近元素的第二元素具有与所述第一内容不同的第二内容,所述第二元素与所述第一元素相邻。
19.根据权利要求16所述的方法,其中所述经压缩系统数据进一步包括:
第三信息,包括第二位图,所述第二位图的第一位指示所述第一模式的长度。
20.根据权利要求19所述的方法,其中所述系统数据阵列包括具有所述第二模式的所述其他元素,所述其他元素具有与所述第一内容不同的所述第二内容,所述其他元素插入在所述邻近元素之中的两个相邻元素之间,
其中所述第一信息进一步包括指示所述第二内容的第二位,并且
其中所述第二位图的第二位指示所述第二模式的长度。
CN201910070069.4A 2018-01-24 2019-01-24 系统数据压缩和重建方法及系统 Active CN110069428B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862621405P 2018-01-24 2018-01-24
US62/621,405 2018-01-24

Publications (2)

Publication Number Publication Date
CN110069428A CN110069428A (zh) 2019-07-30
CN110069428B true CN110069428B (zh) 2023-08-08

Family

ID=67298663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910070069.4A Active CN110069428B (zh) 2018-01-24 2019-01-24 系统数据压缩和重建方法及系统

Country Status (3)

Country Link
US (1) US11093382B2 (zh)
CN (1) CN110069428B (zh)
TW (1) TWI787438B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239391A (zh) * 2013-06-14 2014-12-24 国际商业机器公司 用于数据编码及处理列数据的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US6862609B2 (en) * 2001-03-07 2005-03-01 Canopy Group, Inc. Redundant storage for multiple processors in a ring network
US7367503B2 (en) * 2002-11-13 2008-05-06 Sandisk Corporation Universal non-volatile memory card used with various different standard cards containing a memory controller
KR100706242B1 (ko) 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
US7644216B2 (en) * 2007-04-16 2010-01-05 International Business Machines Corporation System and method for providing an adapter for re-use of legacy DIMMS in a fully buffered memory environment
US9678975B2 (en) * 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
US9229876B2 (en) 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US20170177497A1 (en) 2015-12-21 2017-06-22 Qualcomm Incorporated Compressed caching of a logical-to-physical address table for nand-type flash memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239391A (zh) * 2013-06-14 2014-12-24 国际商业机器公司 用于数据编码及处理列数据的系统和方法

Also Published As

Publication number Publication date
US11093382B2 (en) 2021-08-17
CN110069428A (zh) 2019-07-30
TWI787438B (zh) 2022-12-21
TW201939285A (zh) 2019-10-01
US20190227924A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
CN109800180B (zh) 用于地址映射的方法和存储器系统
US10180805B2 (en) Memory system and operating method thereof
US10102146B2 (en) Memory system and operating method for improving rebuild efficiency
CN110442529B (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
US11681554B2 (en) Logical address distribution in multicore memory system
CN108108308B (zh) 存储器系统及其操作方法
US10802761B2 (en) Workload prediction in memory system and method thereof
US10552048B2 (en) Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
US10896125B2 (en) Garbage collection methods and memory systems for hybrid address mapping
US11237733B2 (en) Memory system and operating method thereof
CN110277124B (zh) 具有混合解码方案的存储器系统及其操作方法
US9946644B2 (en) Memory system and operating method thereof
US11036579B2 (en) Decoder for memory system and method thereof
US10671323B2 (en) Memory system with shared buffer architecture for multiple decoders and method of operating such memory system
US11204839B2 (en) Memory system with low-latency read recovery and method of operating the memory system
CN110941567B (zh) 存储器控制器及其操作方法
CN115617843A (zh) 对数据库存储系统的加速数据搜索的系统和方法
CN110069428B (zh) 系统数据压缩和重建方法及系统
US20210223974A1 (en) Memory system for multi-clustering read thresholds and method thereof
CN110275844B (zh) 利用自适应阈值解码的存储器系统及其操作方法
CN110047554B (zh) 具有超级芯片删除恢复的存储器系统及其操作方法
CN114253470A (zh) 管理存储器系统的可靠性的主机、数据处理系统及其方法
CN115708164A (zh) 一种测试预处理生成的系统及方法
CN112068983A (zh) 存储器系统及其操作方法

Legal Events

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