CN114756167A - 使用压缩存储器的读取操作 - Google Patents
使用压缩存储器的读取操作 Download PDFInfo
- Publication number
- CN114756167A CN114756167A CN202210004928.1A CN202210004928A CN114756167A CN 114756167 A CN114756167 A CN 114756167A CN 202210004928 A CN202210004928 A CN 202210004928A CN 114756167 A CN114756167 A CN 114756167A
- Authority
- CN
- China
- Prior art keywords
- data
- memory device
- volatile memory
- compressed copy
- compressed
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 claims description 47
- 230000004044 response Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 239000000758 substrate Substances 0.000 description 8
- 238000003491 array Methods 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- ZOXJGFHDIHLPTG-UHFFFAOYSA-N Boron Chemical compound [B] ZOXJGFHDIHLPTG-UHFFFAOYSA-N 0.000 description 1
- 229910002601 GaN Inorganic materials 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- JMASRVWKEDWRBT-UHFFFAOYSA-N Gallium nitride Chemical compound [Ga]#N JMASRVWKEDWRBT-UHFFFAOYSA-N 0.000 description 1
- 229910000577 Silicon-germanium Inorganic materials 0.000 description 1
- LEVVHYCKPQWKOP-UHFFFAOYSA-N [Si].[Ge] Chemical compound [Si].[Ge] LEVVHYCKPQWKOP-UHFFFAOYSA-N 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910052785 arsenic Inorganic materials 0.000 description 1
- RQNWIZPPADIBDY-UHFFFAOYSA-N arsenic atom Chemical compound [As] RQNWIZPPADIBDY-UHFFFAOYSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 229910052796 boron Inorganic materials 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- BHEPBYXIRTUNPN-UHFFFAOYSA-N hydridophosphorus(.) (triplet) Chemical compound [PH] BHEPBYXIRTUNPN-UHFFFAOYSA-N 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000005468 ion implantation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/0608—Saving storage space on 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/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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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
- 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/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]
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)
- Computer Networks & Wireless Communication (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种使用压缩存储器的读取操作。设备可包含与非易失性存储器装置和易失性存储器装置耦合的主机系统。所述主机系统可例如基于指配给存储在所述非易失性存储器装置中的数据的分数而将所述数据的压缩副本存储在所述易失性存储器装置中。所述主机系统可识别所述数据的所述压缩副本存储在所述易失性存储器装置中,且可将包含与存储在所述非易失性存储器装置中的所述数据的逻辑块地址相关联的逻辑地址的读取命令传输到所述易失性存储器装置。所述主机系统可响应于所述读取命令而从所述易失性存储器装置接收所述数据的所述压缩副本,且可解压缩所述数据。
Description
交叉引用
本专利申请案要求马图里(Matturi)等人的在2021年1月8日提交的名称为“使用压缩存储器的读取操作(READ OPERATION USING COMPRESSED MEMORY)”的美国专利申请案第17/144,573号的优先权,所述申请案让与给本受让人且明确地以全文引用的方式并入本文中。
技术领域
本技术领域涉及一种使用压缩存储器的读取操作。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程到各种状态来存储信息。举例来说,二进制存储器单元可编程到两个支持状态中的一个,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持多于两个可能状态,存储器单元可存储所述两个可能状态中的任一个。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、或非(NOR)和与非(NAND)存储器装置等。存储器装置可以是易失性或非易失性的。除非由外部电源周期性地更新,否则易失性存储器单元(例如,DRAM单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种设备。所述设备可包含:主机系统,其与非易失性存储器装置和易失性存储器装置耦合;以及控制器,其与主机系统耦合且可操作以使得设备:将包含与存储在非易失性存储器装置中的数据的逻辑块地址(LBA)相关联的逻辑地址的读取命令传输到易失性存储器装置;以及在主机系统处从易失性存储器装置接收存储在易失性存储器装置的逻辑地址处的数据的压缩副本。
描述一种非暂时性计算机可读媒体。所述非暂时性计算机可读媒体可存储包括指令的代码,所述指令在由电子装置的处理器执行时使得电子装置:将读取命令从主机系统传输到与主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与主机系统耦合的非易失性存储器装置中的数据的LBA相关联的逻辑地址;以及在主机系统处从易失性存储器装置接收与存储在易失性存储器装置中的LBA相关联的数据的压缩副本。
描述一种由主机系统执行的方法。所述方法可包含:将读取命令传输到与主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与主机系统耦合的非易失性存储器装置中的数据的LBA相关联的逻辑地址;以及从易失性存储器装置接收与存储在易失性存储器装置中的LBA相关联的数据的压缩副本。
附图说明
图1和2说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的系统的实例。
图3说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的存储方案的实例。
图4说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的时序图的实例。
图5说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的过程流程的实例。
图6展示根据如本文中所公开的实例的支持使用压缩存储器的读取操作的主机系统的框图。
图7展示说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的一或多种方法的流程图。
具体实施方式
存储器系统可包含用于执行各种功能的多种类型的存储器装置。每一类型的存储器装置可与用以执行相应功能的特性相关联。举例来说,易失性存储器装置(例如,随机存取存储器(RAM)装置或另一易失性存储器装置)可支持快速存取速度以及其它特性,且非易失性存储器装置(例如,与非(NAND)存储器装置或另一非易失性存储器装置)可支持在移除电力时维持的大存储容量以及其它特性。主机系统可与一或多个易失性存储器装置和一或多个非易失性存储器装置通信,例如以写入数据及读取数据。在一些情况下,主机系统可将热数据(hot data)(例如,可能存取的数据或频繁存取的数据)存储在易失性存储器装置中,以实现热数据的更快存取速度。在一些情况下,从非易失性存储器装置(例如NAND装置)检索信息可能比从易失性存储器装置(例如DRAM装置)检索信息花费更多的时间。然而,在一些情况下,易失性存储器装置可具有相较于非易失性存储器装置减小的存储容量,且易失性存储器装置可能不具有足够的可用存储器来存储热数据。因此,主机系统可将热数据存储在非易失性存储器装置中,这可增加与读取热数据相关联的时延。另外,增大易失性存储器装置存储容量可增大成本且使用额外空间。因此,可能需要在不增大易失性存储器装置的存储容量的情况下增大可写入到易失性存储器装置的数据量。
本文中描述用于存取易失性存储器装置以读取还存储在非易失性存储器装置中的数据的压缩副本的技术、系统和装置。举例来说,易失性存储器装置可分配易失性存储器装置的一部分以存储存储在非易失性存储器装置中的数据的压缩副本。在一些情况下,所分配部分可称为压缩RAM(cRAM)。与易失性存储器装置和非易失性存储器装置耦合的主机系统可确定相对频繁地存取存储在非易失性存储器装置中的数据(例如,其为‘热’数据),且存储cRAM中的数据的压缩副本。举例来说,主机系统可确定存储数据的压缩副本,基于所述确定从非易失性存储器装置检索数据,压缩数据,且将压缩副本存储在cRAM中。主机系统可确定读取数据,且可识别数据的压缩副本存储在cRAM中。主机系统可将读取命令传输到易失性存储器装置,所述读取命令包含与存储在非易失性存储器装置中的数据的逻辑块地址(LBA)相关联的逻辑地址。主机系统可从易失性存储器装置接收数据的压缩副本,且解压缩数据。因此,在数据的压缩副本存储在易失性存储器装置中的情况下,主机系统可从易失性存储器装置而不是非易失性存储器装置读取数据。通过这种方式,因为压缩数据比未压缩数据占用更少的存储空间(例如,减少4倍的空间,或一些其它更小的存储空间),所以主机系统可在无损失信息的风险的情况下将额外数据存储在易失性存储器装置中(例如,因为数据另外存储在非易失性存储器装置中),这可导致与存取数据相关联的存取速度增大以及主机系统处的功率消耗减小。
首先在如参考图1和2所描述的系统的上下文中描述本公开的特征。在如参考图3到5所描述的背景存储方案、时序图和过程流程中描述本公开的特征。由涉及如参考图6和7所描述的使用压缩存储器的读取操作的设备图和流程图进一步说明及参考其描述本公开的这些和其它特征。
图1为根据如本文中所公开的实例的支持使用压缩存储器的读取操作的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可以是或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,这一耦合可包含与主机系统控制器106的介接,所述主机系统控制器106可以是配置成使得主机系统105执行根据如本文中所描述的实例的各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和由处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,在主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、串行高级技术附件(SATA)控制器)。主机系统105可使用存储器系统110,例如将数据写入到存储器系统110以及从存储器系统110读取数据。尽管在图1中展示一个存储器系统110,但主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105和存储器系统110可配置成使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据和其它信号)。物理主机接口的实例可包含但不限于SATA接口、UFS接口、eMMC接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI)和低功率双数据速率(LPDDR)接口。在一些实例中,一或多个这类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每一存储器装置130的相应物理主机接口,或经由用于包含在存储器系统110中的每一类型的存储器装置130的相应物理主机接口与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115和一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。尽管在图1的实例中展示两个存储器装置130-a及130-b,但存储器系统110可包含任何数量的存储器装置130。此外,在存储器系统110包含超过一个存储器装置130的情况下,存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口),并且可以是配置成使得存储器系统110执行根据如本文中所描述的实例的各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合及通信以在存储器装置130处执行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据或刷新数据,以及其它这类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行这些命令(例如,在一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作,且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130的所要存取。并且在一些情况下,存储器系统控制器115可与主机系统105以及与一或多个存储器装置130交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可配置成用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统,以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态RAM(SRAM)或其它存储器,其可由存储器系统控制器115用于例如与本文中归于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存。举例来说,数据在从存储器装置130读取或写入到存储器装置130的情况下可存储在本地存储器120中,且可在本地存储器120中可用,以供主机系统105根据高速缓存策略(例如,以相对于存储器装置130减少的时延)进行后续检索或操控(例如,更新)。
尽管图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在一些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可分别在存储器装置130内部的一或多个本地控制器135,以执行本文中归于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可在一些情况下改为由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分地由存储器系统控制器115管理的存储器装置130可称为受管理存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器装置130可包含非易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性RAM(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含RAM存储器单元,例如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可分别包含本地控制器135(例如,处于同一裸片上或同一封装内),其可对存储器装置130的一或多个存储器单元执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中归于存储器系统控制器115的一或多个功能。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可以是包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每一裸片160可包含一或多个平面165,且每一平面165可包含相应的块170的集合,其中每一块170可包含相应的页175的集合,且每一页175可包含存储器单元的集合。
在一些情况下,NAND存储器装置130可包含配置成各自存储一个信息位的存储器单元,其可称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,那么其可称为多层级单元(MLC),如果配置成各自存储三个信息位,那么其可称为三层级单元(TLC),如果配置成各自存储四个信息位,那么其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可指块170的群组,且在一些情况下,可在不同平面165内发生并行操作。举例来说,可对不同块170内的存储器单元可执行并行操作,只要不同块170处于不同平面165中即可。在一些情况下,在不同平面165中执行并行操作可受制于一或多个限制,例如对不同页面175内的存储器单元执行相同操作,所述存储器单元在其相应平面165内具有相同页地址(例如,关于命令解码、页地址解码电路系统,或跨越平面165共享的其它电路系统)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与所述共同字线耦合),且同一串中的存储器单元可共享共同数字线(其可替代地称为位线)(例如,与所述共同数字线耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取及编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可以是可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可以是可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前被擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用页175。
系统100可包含存储器装置131,其可与主机系统105耦合(例如,经由物理主机接口,或某一其它接口)。在一些实例中,这一耦合可包含与主机系统控制器106的介接。在一些实例中,存储器装置131可包含易失性存储器单元(例如RAM存储器单元)的一或多个存储器阵列。
主机系统105可使用存储器装置131作为随机存取存储器装置,例如以将数据写入到存储器装置131以及从存储器装置131读取数据。存储器装置131将存储器装置131的一部分分配为cRAM(例如,以存储存储在非易失性存储器装置中的数据的压缩副本)。主机系统105可将存储在存储器装置130-a中的数据的压缩副本存储在存储器装置131的cRAM中。举例来说,主机系统105可确定存储数据的压缩副本,且可基于所述确定从存储器装置130-a检索数据。主机系统105可包含可压缩数据的压缩/解压缩引擎107(例如,包含在主机系统控制器106中)。主机系统105可将压缩副本存储在cRAM中。另外或替代地,主机系统105可在将数据写入到存储器装置130-a的同时将数据的副本压缩及写入到cRAM。主机系统105可确定读取数据,且可识别数据的压缩副本存储在cRAM中。主机系统105可将读取命令传输到存储器装置131,所述读取命令包含与存储在存储器装置130-a中的数据的LBA相关联的逻辑地址。主机系统105可从存储器装置131接收数据的压缩副本,且使用压缩/解压缩引擎107解压缩数据。这一方法可导致与存取数据相关联的存取速度增大,功率消耗减小,且可使得主机系统105将额外数据存储在存储器装置131中(例如,相较于将未压缩数据存储在存储器装置131中)。
系统100可包含支持使用压缩存储器的读取操作的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130-a可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以用于执行本文中归于主机系统105、存储器系统控制器115或存储器装置130-a的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115或由存储器装置130-a(例如,由本地控制器135)执行,那么这类指令可使得主机系统105、存储器系统控制器115或存储器装置130-a执行如本文中所描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115来提供受管理存储器系统,其可包含例如一或多个存储器阵列和与本地(例如,裸片上或封装内)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例为MNAND系统。
图2说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的系统200的实例。系统200可以是如参考图1所描述的系统100的实例或其方面。举例来说,系统200可包含控制器205、存储器装置210和存储器装置215,其可以是如分别参考图1所描述的主机系统控制器106、存储器装置131和存储器装置130的实例。
控制器205可与存储器装置210和存储器装置215耦合及通信以执行操作,例如存取操作。举例来说,控制器205可经由导电线235-a与存储器装置210耦合,且可经由导电线235-b与存储器装置215耦合。在一些情况下,控制器205可包含在主机装置(未展示)中或与其耦合。存储器装置210可以是易失性存储器装置的实例,且存储器装置215可以是非易失性存储器装置(例如,NAND装置)的实例。在一些实例中,存储器装置210可与相对于存储器装置215的更快的存取速度相关联,且存储器装置215可与相对于存储器装置210的增大的存储容量相关联。
在一些情况下,控制器205可将热数据(例如,可能存取的数据、频繁存取的数据或这两者)存储在存储器装置210中,以实现热数据的更快存取速度。然而,在一些情况下,存储器装置210可能不具有足够的可用存储器来存储热数据。举例来说,存储器装置210可存储可与由存储器装置210执行的各种操作相关联的多种类型的数据,例如系统数据、应用程序数据、用户数据、高速缓存的数据和共享数据,以及其它类型的数据。在一些情况下,因为存储器装置210存储这类数据以执行相关联操作,所以存储器装置210可能不具有可用存储器来存储热数据。控制器205可随后将热数据存储在存储器装置215中,这可增加与读取热数据相关联的时延。举例来说,从非易失性存储器装置检索数据通常可比从易失性存储器装置检索数据慢。因此,检索存储在存储器装置215中的热数据可相对于检索存储在存储器装置210中的热数据增加时延。另外,增大存储器装置210的存储容量可增大成本且使用额外空间。因此,可能需要在不增大存储器装置210的存储容量的情况下增大可写入到存储器装置210的数据量。
为了增大可写入到存储器装置210的数据量且为了减小存储器装置215的读取操作的数目,存储器装置210可分配存储器装置210的一部分以存储压缩数据。举例来说,存储器装置210可针对不同目的分配存储器装置210的不同部分。举例来说,存储器装置210可分配部分220以存储任何数据类型的未压缩数据,且可分配部分225以存储存储在存储器装置215中的数据的压缩副本。在一些实例中,存储器装置210可分配部分230以存储数据类型的子集的压缩数据(例如,匿名数据、与特定应用程序相关联的用户数据、私有用户数据),在一些情况下,部分230可称为zRAM。在一些实例中,存储器装置210可基于从控制器205接收分配命令而分配部分220、225、230或其组合。
为了在部分225中存储存储在存储器装置215中的数据的压缩副本,控制器205可向存储在存储器装置215中的数据指配分数。举例来说,存储在存储器装置215中的数据可与存取频率参数相关联。存取频率参数可指示将存取数据的可能性或存取数据的频率,或这两者。基于存取频率参数,控制器205可向数据指配分数。分数可指示数据是否为热数据。如果所指配分数满足阈值分数(例如,数据为热数据),那么控制器205可确定将数据的压缩副本存储在存储器装置210中(例如,存储在部分225中)。控制器205可基于分数超出阈值分数而从存储器装置215检索数据,压缩数据以产生数据的压缩副本,且将数据的压缩副本存储在部分225中。在一些实例中,控制器205可基于存储数据的压缩副本而产生指向数据的压缩副本的指针,且将指针存储在控制器205中。控制器205可随后使用指针来识别存储器装置210存储数据的压缩副本。
另外或替代地,控制器205可在将数据存储在存储器装置215中的同时将数据的压缩副本存储在部分225中。举例来说,控制器205可确定待写入到存储器装置215的数据可能由控制器205存取(例如,视频数据、图像数据或其它数据可能被存取),且可在将数据写入到存储器装置215的同时压缩并写入数据的副本(例如,写入到部分225)。
控制器205可读取存储在存储器装置210中的数据的压缩副本,而非读取存储器装置215中的数据。举例来说,控制器205可确定读取存储在存储器装置215中的数据,且可(例如,基于存储在控制器205中的指针而)识别存储器装置210存储数据的压缩副本。基于识别存储器装置210存储数据的压缩副本,控制器205可将包含与数据相关联的逻辑地址的读取命令传输到存储器装置210,而非存储器装置215。控制器205可从易失性存储器装置接收数据的压缩副本,且可解压缩数据以读取数据。因此,控制器205可减少与读取数据相关联的时延。
在一些实例中,控制器205可确定读取存储在存储器装置215中的第二数据,其中第二数据的压缩副本并未存储在存储器装置210中。此处,控制器205可识别第二数据的压缩副本并未存储在存储器装置210中,且可将读取命令传输到存储器装置215以读取第二数据。
控制器205可更新指配给存储在存储器装置215中的数据的分数。在一些实例中,控制器205可基于将读取命令传输到存储器装置210而更新指配给数据的分数。举例来说,控制器205可响应于控制器205存取数据的压缩副本而增大指配给数据的分数。在一些其它实例中,控制器205可基于在一段时间不存取数据的压缩副本而更新指配给数据的分数。举例来说,如果控制器205在一段时间不存取数据的压缩副本,那么控制器205可周期性地减小指配给数据的分数。在一些实例中,控制器205可更新与数据相关联的存取频率参数,且可基于更新存取频率参数而更新指配给数据的分数。
控制器205可删除存储在存储器装置210中的数据的压缩副本。举例来说,指配给数据的分数可小于阈值分数(例如,基于更新分数)。控制器205可基于分数下降到低于阈值分数而确定数据不再为热数据,且可传输命令到存储器装置210以删除数据的压缩副本。在一些实例中,控制器205可通过重写数据的压缩副本的部分来删除数据的压缩副本的至少一部分。举例来说,控制器205可识别存储在存储器装置215中的第二数据为热数据。控制器205可从存储器装置215检索第二数据,压缩第二数据以产生第二数据的压缩副本,且通过利用第二数据的压缩副本的至少一部分重写数据的压缩副本的至少一部分来将第二数据的压缩副本存储在部分225中。替代地,控制器205可传输包含第二LBA的写入命令,以将第二数据存储在存储器装置215中。控制器205可产生第二数据的压缩副本,且可通过利用第二数据的压缩副本的至少一部分重写数据的压缩副本的至少一部分来在将第二数据写入到存储器装置210的同时将第二数据的压缩副本存储在部分225中。
在一些实例中,存储器装置210可重新分配部分220、225和230。举例来说,存储器装置210可确定使用部分220的阈值存储器量。存储器装置210可将部分225、部分230的至少一部分或其组合重新分配到部分220。此处,数据的分数可满足用于将数据的压缩副本存储在部分225中的阈值分数,然而,存储器装置210可基于确定使用部分220的阈值存储器量而删除数据的压缩副本且将部分225的部分重新分配到部分220。在一些实例中,存储器装置210可将部分220、部分230的至少一部分或其组合重新分配到部分225。举例来说,存储器装置210可将部分220、部分230的至少一部分或其组合重新分配到部分225以存储数据的额外压缩副本,而非删除、收回或重写存储在部分225中的数据的压缩副本以存储数据的额外压缩副本。在一些情况下,存储器装置210可基于从控制器205接收重新分配命令而重新分配部分220、225或230。举例来说,控制器205可确定使用部分220的阈值存储器量,且将重新分配命令传输到存储器装置210。在一些实例中,存储器装置210可基于由存储器装置210执行的一或多个操作而重新分配部分220、225和230。举例来说,存储器装置210可重新分配部分220、225、230的至少一部分或其组合,以增加部分220或225的相应分配以便执行一或多个操作(例如,存取操作、高速缓存操作、刷新操作或某一其它操作)。
在一些实例中,控制器205可将数据的压缩副本存储在存储器装置215中。举例来说,控制器205可(例如,基于分数小于阈值分数,基于重新分配存储数据的压缩副本的部分225的一部分)确定删除存储在存储器装置210中的数据的压缩副本,且可收回数据的压缩副本。控制器205可将数据的所收回压缩副本存储在存储器装置215中,例如以占据存储器装置215的较少存储器。在一些情况下,控制器205可在将数据的压缩副本存储在存储器装置215中之后或同时删除存储在存储器装置215中的数据。控制器205可随后从存储器装置215检索数据的压缩副本。举例来说,控制器205可将包含与数据的LBA相关联的逻辑地址的读取命令传输到存储器装置215,且可从存储器装置215接收数据的压缩副本。
图3说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的存储方案300的实例。存储方案300可实施系统100的方面。举例来说,存储方案300可由存储器装置305实施,所述存储器装置305可以是分别参考图1和2描述的存储器装置131或存储器装置210的实例。可实施存储方案300以减少包含存储器装置305和主机装置的系统的时延和功率消耗,以及其它益处。
存储器装置305可包含易失性存储器单元(例如RAM存储器单元)的多个存储器阵列。在一些实例中,存储器装置305可将RAM存储器单元组织成页,所述页可与特定量的存储器(例如,4千字节(KB)的存储器,或某一其它量的存储器)相关联。页可与页的类型相关联。举例来说,可基于存储在页中的数据的类型而将页视为所使用页340、高速缓存的页345、空闲页350或压缩页355。所使用页340可包含由存储器装置305主动地使用的数据。高速缓存的页345可充当用于与存储器装置305耦合的主机装置或用于存储器装置305的高速缓存。空闲页350可用于存储数据(例如,当前可能不存储数据)。压缩页355可存储存储在非易失性存储器装置中的数据的压缩副本。在一些情况下,压缩页355可保留以存储热数据360(例如,可能由主机装置存取的数据,由主机装置频繁存取的数据)。
存储器装置305可将页的群组组织或分配成存储器的块。存储器装置305可针对不同目的使用存储器的不同块。举例来说,存储器装置305可分配系统存储器310、应用程序1(App1)存储器315、共享存储器320、应用程序2(App2)存储器325、空闲存储器330和压缩存储器335的块。在一些实例中,App1存储器块315可包含与第一应用程序相关联的数据的所使用页340或高速缓存的页345或这两者,App2存储器块可包含与第二应用程序相关联的数据的与所使用页340或高速缓存的页345或这两者相关联的页,共享存储器块320可包含第一应用程序与第二应用程序之间的共享数据的高速缓存的页345。空闲存储器块330可包含一或多个空闲页350,且压缩存储器块335可包含一或多个压缩页355。存储器装置305可将任何数目的页分配到存储器的每一块。
存储器装置305可压缩存储在高速缓存的页345中的数据,且将压缩数据存储在压缩存储器块335的压缩页355中。举例来说,存储器装置305可确定App1存储器块315的高速缓存的页345存储热数据。存储器装置305可压缩存储在高速缓存的页345中的热数据,且可将热数据存储在压缩页355中。在一些实例中,存储在高速缓存的页345中的数据也可存储在非易失性存储器装置中。因此,存储器装置305可在无损失信息的风险的情况下将压缩数据存储在压缩页355中。
图4说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的时序图405的实例。时序图405展示与如分别参考图1和2所描述的系统100或系统200的组件相关联的各种存储器使用情况。举例来说,时序图405-a描绘随时间推移的不包含cRAM分配的非易失性存储器装置(例如,UFS装置)和易失性存储器装置的实例存储器使用情况。时序图405-b描绘随时间推移的包含cRAM分配的非易失性存储器装置和易失性存储器装置的实例存储器使用情况。
时序图405-a可对应于当在不使用cRAM的情况下记录及随后存取视频时的存储器装置的存储器使用情况。举例来说,时序图405-a说明当在不使用cRAM的情况下记录及随后存取视频时的空闲DRAM 410-a(例如,可用DRAM)和用作高速缓存的DRAM415-a。另外,时序图405-a说明当在不使用cRAM的情况下记录及随后存取视频时从UFS装置提取(例如,读取)的数据量(例如,UFS提取420-a)和写入到UFS装置的数据量(例如,UFS写入425-a)。
在时间t1处,视频记录可开始。在时间t1与t3之间,主机装置可根据UFS写入425-a将视频数据写入到UFS装置。另外,在时间t1处,主机装置可开始根据用作高速缓存的DRAM415-a在DRAM中高速缓存视频数据。因此,易失性存储器装置的空闲DRAM可根据空闲DRAM410-a减小。主机装置可根据UFS提取420-a从UFS装置提取数据。在一些情况下,主机装置在时间t3之前从UFS装置提取数据可与不与视频数据相关联的存取操作相关联。
在时间t2处,易失性存储器装置可耗费可供用于高速缓存视频数据的DRAM,且用作高速缓存的DRAM 415-a可开始平化(即,主机装置可中断高速缓存视频数据)。在一些情况下,易失性存储器装置可在时间t2处开始清空(例如,删除)高速缓存的视频数据。在时间t3处,视频记录可结束,且主机装置可存取所记录视频。因为DRAM不可用于高速缓存所有视频数据,所以主机装置可如UFS提取420-a中所展示从UFS装置提取视频数据。在一些情况下,易失性存储器装置可高速缓存所提取视频数据以创建视频文件(例如,包含视频数据、视频标题、缩略图或任何其它视频文件信息)。因此,高速缓存的DRAM可根据用作高速缓存的DRAM 415-a而在时间t3处增大,且空闲DRAM可根据空闲DRAM 410-a而在时间t3处减小。在一些情况下,在时间t3处从UFS装置提取视频数据以及高速缓存视频数据可增加时延,且增大包含主机装置、易失性存储器装置和UFS装置的系统的功率消耗(例如,归因于提取及高速缓存视频数据)。
时序图405-b可对应于当在使用cRAM的情况下记录及随后存取视频时的存储器装置的存储器使用情况。举例来说,时序图405-b说明当在不使用cRAM的情况下记录及随后存取视频时的空闲DRAM 410-b(例如,可用DRAM)、用作高速缓存的DRAM 415-b和所使用cRAM430。另外,时序图405-b说明当在不使用cRAM的情况下记录及随后存取视频时从UFS装置提取(例如,读取)的数据量(例如,UFS提取420-b)和写入到UFS装置的数据量(例如,UFS写入425-b)。
在时间t4处,视频记录可开始。在时间t4与t5之间,主机装置可根据UFS写入425-a将视频数据写入到UFS装置。另外,主机装置可压缩视频数据且根据所使用cRAM 430将压缩视频数据写入到易失性存储器装置的cRAM。因为主机装置将压缩数据写入到cRAM,所以主机装置可如用作高速缓存的DRAM 415-b中所展示减小用于视频数据的用作高速缓存的DRAM的量。另外,因为压缩视频数据占据比未压缩视频数据更少的空间,所以空闲DRAM的量可如空闲DRAM 410-b中所展示增大。在时间t4与t5之间,主机装置可根据UFS提取420-b从UFS装置提取数据。
在时间t5处,视频记录可结束,且主机装置可存取所记录视频。主机装置可确定压缩视频数据存储在cRAM中,且可从cRAM检索压缩视频数据。通过这种方式,主机装置可避免从UFS装置提取视频数据以及在DRAM中高速缓存所提取视频数据。这一方法可减少系统的时延和功率消耗。
图5说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的过程流程500的实例。过程流程500的方面可由系统的组件实施,所述系统例如分别参考图1和2描述的系统100和200。举例来说,过程流程500可由控制器505、易失性存储器装置510和非易失性存储器装置515实施,其可为如分别参考图1和2所描述的主机系统控制器106或控制器205、存储器装置131、210和存储器装置130、215的实例。可实施过程流程500以减少时延和功率消耗且提高系统性能,以及其它益处。过程流程500的方面可由控制器以及其它组件实施。另外或替代地,过程流程500的方面可实施为存储在存储器中的指令(例如,存储在与易失性存储器装置510和非易失性存储器装置515耦合的存储器中的固件)。举例来说,指令在由控制器(例如,控制器205)执行时可使得控制器执行过程流程500的操作。
在过程流程500的以下描述中,操作可以不同次序或在不同时间执行。也可从过程流程500省略一些操作,且可将其它操作添加到过程流程500。
在520处,可在易失性存储器装置510处分配压缩存储器。举例来说,易失性存储器装置510可针对cRAM分配易失性存储器装置510的一部分(例如,以存储存储在非易失性存储器装置515中的数据的压缩副本)。在一些情况下,易失性存储器装置510可基于来自控制器505的指示易失性存储器装置510分配部分的命令而分配部分。
在525处,可向存储在非易失性存储器装置515中的数据指配分数。举例来说,控制器505可基于与数据相关联的存取频率参数而向存储在非易失性存储器装置515中的数据指配分数。存取频率参数可指示将存取数据的可能性或存取数据的频率,或这两者。指示频繁存取的数据或可能存取的数据的存取频率参数可对应于指配给数据的较高分数。举例来说,与最近所记录视频的视频数据相关联的存取频率参数可指示可能存取视频数据。因此,控制器505可向视频数据指配相对较高分数。相反地,指示不频繁存取的数据或相对不大可能存取的数据的存取频率参数可对应于指配给数据的较低分数。
在530处,可从非易失性存储器装置515接收到数据。举例来说,如果分数满足(例如,大于)阈值分数,那么控制器505可确定数据为热数据。控制器505可基于数据为热数据而(例如,通过将读取命令传输到与数据相关联的非易失性存储器装置515)从非易失性存储器装置515检索数据。
在535处,可压缩数据。举例来说,控制器505可压缩所检索数据以产生存储在非易失性存储器装置515中的数据的压缩副本。
在540处,数据的压缩副本可传输到易失性存储器装置510。举例来说,控制器505可将数据的压缩副本传输到易失性存储器装置510,以将数据的压缩副本存储在易失性存储器装置510中(例如,存储在cRAM中)。在一些实例中,控制器505可产生指向数据的压缩副本的指针,且可将指针存储在控制器505处。
在545处,数据的压缩副本可识别为存储在易失性存储器装置510中。举例来说,控制器505可确定读取存储在非易失性存储器装置515中的数据。在传输读取命令以从非易失性存储器装置515读取数据之前,控制器505可例如基于指向数据的压缩副本的所存储指针而识别数据的压缩副本存储在易失性存储器装置510中。
在550处,可将读取命令发送到易失性存储器装置510。举例来说,控制器505可确定读取存储在易失性存储器装置510中的数据的压缩副本,而不是读取存储在非易失性存储器装置515中的数据。基于确定读取数据的压缩副本,控制器505可将读取命令传输到易失性存储器装置510,所述读取命令包含与存储在非易失性存储器装置515中的数据的LBA相关联的逻辑地址。
在555处,可将数据的压缩副本从易失性存储器装置510传输到控制器505。举例来说,易失性存储器装置510可响应于接收读取命令而将存储在逻辑地址处的数据的压缩副本传输到控制器505。
在560处,可解压缩数据的压缩副本。举例来说,控制器505可接收数据的压缩副本,且可解压缩数据的压缩副本。
在565处,可更新指配给数据的分数。举例来说,基于存取数据的压缩副本,控制器505可更新(例如,增大)指配给数据的分数。在一些情况下,如果控制器505在一段时间不存取数据的压缩副本,那么控制器505可周期性地减小指配给数据的分数。
在570处,可将与数据的压缩副本相关联的删除命令传输到易失性存储器装置510。举例来说,控制器505可确定数据不再为热数据,且可传输删除命令以从易失性存储器装置510删除数据的压缩副本。在一些实例中,如果指配给数据的分数下降到低于阈值分数,那么控制器505可删除数据的压缩副本。
在575处,可任选地将数据的压缩副本传输到非易失性存储器装置515。举例来说,控制器505可基于指配给数据的分数下降到低于阈值分数而从易失性存储器装置510收回数据的压缩副本。控制器505可将数据的压缩副本存储在非易失性存储器装置515中,例如以占据非易失性存储器装置515的较少存储器。在一些情况下,控制器505可在存储数据的压缩副本之后删除存储在非易失性存储器装置515中的数据。
在580处,数据的压缩副本可识别为并未存储在易失性存储器装置510中。举例来说,控制器505可确定读取存储在非易失性存储器装置515中的数据。基于删除数据的压缩副本,控制器505可识别数据的压缩副本并未存储在易失性存储器装置510中。
在585处,可将与数据相关联的读取命令传输到非易失性存储器装置515。举例来说,基于识别数据的压缩副本并未存储在易失性存储器装置510中,控制器505可将读取命令传输到非易失性存储器装置515,所述读取命令包含与存储在非易失性存储器装置515中的数据的LBA相关联的逻辑地址。
在590处,可从非易失性存储器装置515接收到数据。举例来说,非易失性存储器装置515可基于接收读取命令而将数据传输到控制器505。在一些情况下,如果所存储的数据为数据的压缩副本,那么非易失性存储器装置515可传输数据的压缩副本。
在595处,可任选地重新分配易失性存储器装置510的压缩存储器的至少一部分。举例来说,易失性存储器装置510可确定使用用于存储未压缩数据的易失性存储器装置510的第二部分的阈值存储器量。因此,易失性存储器装置510可将易失性存储器装置的部分的至少一部分重新分配到第二部分。因为易失性存储器装置510的部分存储存储在非易失性存储器装置515中的数据的压缩副本,所以易失性存储器装置510可在不将存储在所述部分中的任何数据传输到非易失性存储器装置515的情况下重新分配所述部分。
图6展示根据如本文中所公开的实例的支持使用压缩存储器的读取操作的主机系统620的框图600。主机系统620可以是如参考图1到5所描述的主机系统的方面的实例。主机系统620或其各种组件可以是用于执行如本文中所描述的使用压缩存储器的读取操作的各种方面的构件的实例。举例来说,主机系统620可包含命令组件630、通信组件635、压缩引擎640、分数管理器645、存储管理器650、存储器管理器655或其任何组合。这些组件中的每一个可直接或间接地(例如,经由一或多个总线)彼此通信。
命令组件630可配置为或以其它方式支持用于以下的构件:将读取命令传输到与主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与主机系统耦合的非易失性存储器装置中的数据的LBA相关联的逻辑地址。通信组件635可配置为或以其它方式支持用于以下的构件:从易失性存储器装置接收与存储在易失性存储器装置中的LBA相关联的数据的压缩副本。
在一些实例中,压缩引擎640可配置为或以其它方式支持用于以下的构件:至少部分地基于接收存储在易失性存储器装置中的数据的压缩副本而解压缩存储在易失性存储器装置中的数据的压缩副本。
在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:识别数据的压缩副本存储在易失性存储器装置中,其中将读取命令传输到易失性存储器装置至少部分地基于识别数据的压缩副本存储在易失性存储器装置中。
在一些实例中,分数管理器645可配置为或以其它方式支持用于以下的构件:至少部分地基于与数据相关联的存取频率参数而向数据指配分数。在一些实例中,存储管理器650可配置为或以其它方式支持用于以下的构件:至少部分地基于分数满足阈值分数而将数据的压缩副本存储在易失性存储器装置中,其中识别数据的压缩副本存储在易失性存储器装置中至少部分地基于存储数据的压缩副本。
在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:至少部分地基于分数超出阈值分数而从非易失性存储器装置检索数据。在一些实例中,压缩引擎640可配置为或以其它方式支持用于以下的构件:至少部分地基于检索数据而压缩数据以产生数据的压缩副本,其中存储数据的压缩副本至少部分地基于压缩数据。
在一些实例中,存取频率参数包含对存取数据的可能性、存取数据的频率或其组合的指示。
在一些实例中,分数管理器645可配置为或以其它方式支持用于以下的构件:至少部分地基于与数据相关联的存取频率参数而识别与存储在非易失性存储器装置中的数据相关联的分数。在一些实例中,存储管理器650可配置为或以其它方式支持用于以下的构件:至少部分地基于分数小于阈值分数而删除存储在易失性存储器装置中的数据的压缩副本。
在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:从主机系统传输包含第二LBA的写入命令,以将第二数据存储在非易失性存储器装置中。在一些实例中,存储管理器650可配置为或以其它方式支持用于以下的构件:至少部分地基于传输写入命令而通过利用第二数据的压缩副本的至少一部分重写数据的压缩副本的至少一部分来将第二数据的压缩副本存储在易失性存储器装置中。
在一些实例中,分数管理器645可配置为或以其它方式支持用于以下的构件:至少部分地基于接收读取命令而更新与数据相关联的分数。
在一些实例中,存储器管理器655可配置为或以其它方式支持用于以下的构件:分配易失性存储器装置的一部分以存储存储在非易失性存储器装置中的数据的压缩副本,所述易失性存储器装置的部分配置成提供对数据的压缩副本的低时延存取,其中接收存储在易失性存储器装置中的数据的压缩副本至少部分地基于分配所述部分。
在一些实例中,存储器管理器655可配置为或以其它方式支持用于以下的构件:确定使用用于存储未压缩数据的易失性存储器装置的第二部分的阈值存储器量。在一些实例中,存储器管理器655可配置为或以其它方式支持用于以下的构件:至少部分地基于确定使用阈值存储器量而将易失性存储器装置的部分的至少一部分重新分配到第二部分。
在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:识别存储在非易失性存储器装置中的第二数据的压缩副本并未存储在易失性存储器装置中。在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:将第二读取命令传输到非易失性存储器装置,所述第二读取命令包含与第二数据的第二LBA相关联的第二逻辑地址。在一些实例中,通信组件635可配置为或以其它方式支持用于以下的构件:至少部分地基于将第二读取命令传输到非易失性存储器装置而从非易失性存储器装置接收第二数据。
在一些实例中,存储管理器650可配置为或以其它方式支持用于以下的构件:至少部分地基于与存储在非易失性存储器装置中的数据相关联的分数小于阈值分数而从易失性存储器装置收回数据的压缩副本。在一些实例中,存储管理器650可配置为或以其它方式支持用于以下的构件:至少部分地基于从易失性存储器装置收回数据的压缩副本而将数据的压缩副本存储在非易失性存储器装置中。
在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:至少部分地基于从易失性存储器装置收回数据的压缩副本而识别数据的压缩副本并未存储在易失性存储器装置中。在一些实例中,命令组件630可配置为或以其它方式支持用于以下的构件:将第二读取命令传输到非易失性存储器装置,所述第二读取命令包含与存储在非易失性存储器装置中的数据的LBA相关联的逻辑地址。在一些实例中,通信组件635可配置为或以其它方式支持用于以下的构件:至少部分地基于将数据的压缩副本存储在非易失性存储器装置中而接收存储在非易失性存储器装置中的数据的压缩副本。
在一些实例中,为了支持易失性存储器装置,存储器管理器655可配置为或以其它方式支持用于配置成存储任何数据类型的未经压缩数据的RAM单元的第一部分的构件。在一些实例中,为了支持易失性存储器装置,存储器管理器655可配置为或以其它方式支持用于配置成存储第一类型的数据的压缩数据的RAM单元的第二部分的构件。在一些实例中,为了支持易失性存储器装置,存储器管理器655可配置为或以其它方式支持用于配置成存储由非易失性存储器装置存储的主机数据的压缩副本的RAM单元的第三部分的构件,其中数据的压缩副本存储在第三部分中。
在一些实例中,非易失性存储器装置包含NAND存储器单元,且易失性存储器装置包含RAM单元。
图7展示说明根据如本文中所公开的实例的支持使用压缩存储器的读取操作的方法700的流程图。方法700的操作可由如本文中所描述的主机系统或其组件实施。举例来说,方法700的操作可由如参考图1到6所描述的主机系统执行。在一些实例中,主机系统可执行指令集以控制装置的功能元件执行所描述功能。另外或替代地,主机系统可使用专用硬件执行所描述功能的方面。
在705处,方法可包含将读取命令传输到与主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与主机系统耦合的非易失性存储器装置中的数据的LBA相关联的逻辑地址。可根据如本文中所公开的实例执行705的操作。在一些实例中,705的操作的方面可由如参考图6所描述的命令组件630执行。
在710处,方法可包含从易失性存储器装置接收与存储在易失性存储器装置中的LBA相关联的数据的压缩副本。可根据如本文中所公开的实例执行710的操作。在一些实例中,710的操作的方面可由如参考图6所描述的通信组件635执行。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法700。设备可包含用于以下的特征、电路系统、逻辑、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读媒体):将读取命令传输到与主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与主机系统耦合的非易失性存储器装置中的数据的LBA相关联的逻辑地址;以及从易失性存储器装置接收与存储在易失性存储器装置中的LBA相关联的数据的压缩副本。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于接收存储在易失性存储器装置中的数据的压缩副本而解压缩存储在易失性存储器装置中的数据的压缩副本。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:识别数据的压缩副本可存储在易失性存储器装置中,其中将读取命令传输到易失性存储器装置可至少部分地基于识别数据的压缩副本可存储在易失性存储器装置中。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于与数据相关联的存取频率参数而向数据指配分数;至少部分地基于分数满足阈值分数而将数据的压缩副本存储在易失性存储器装置中,其中识别数据的压缩副本可存储在易失性存储器装置中可至少部分地基于存储数据的压缩副本。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于分数超出阈值分数而从非易失性存储器装置检索数据;以及至少部分地基于检索数据而压缩数据以产生数据的压缩副本,其中存储数据的压缩副本可至少部分地基于压缩数据。
在本文中所描述的方法700和设备的一些实例中,存取频率参数包含对可能存取数据的可能性、可能存取数据的频率或其组合的指示。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于与数据相关联的存取频率参数而识别与存储在非易失性存储器装置中的数据相关联的分数;以及至少部分地基于分数小于阈值分数而删除存储在易失性存储器装置中的数据的压缩副本。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:从主机系统传输包含第二LBA的写入命令,以将第二数据存储在非易失性存储器装置中;以及至少部分地基于传输写入命令而通过利用第二数据的压缩副本的至少一部分重写数据的压缩副本的至少一部分来将第二数据的压缩副本存储在易失性存储器装置中。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于接收读取命令而更新与数据相关联的分数。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:分配易失性存储器装置的一部分以存储存储在非易失性存储器装置中的数据的压缩副本,所述易失性存储器装置的部分配置成提供对数据的压缩副本的低时延存取,其中接收存储在易失性存储器装置中的数据的压缩副本可至少部分地基于分配所述部分。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:确定可使用用于存储未压缩数据的易失性存储器装置的第二部分的阈值存储器量;以及至少部分地基于确定可使用阈值存储器量而将易失性存储器装置的部分的至少一部分重新分配到第二部分。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:识别存储在非易失性存储器装置中的第二数据的压缩副本可能并未存储在易失性存储器装置中;将包含可能与第二数据的第二LBA相关联的第二逻辑地址的第二读取命令传输到非易失性存储器装置;以及至少部分地基于将第二读取命令传输到非易失性存储器装置而从非易失性存储器装置接收第二数据。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于与存储在非易失性存储器装置中的数据相关联的分数小于阈值分数而从易失性存储器装置收回数据的压缩副本;以及至少部分地基于从易失性存储器装置收回数据的压缩副本而将数据的压缩副本存储在非易失性存储器装置中。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下的操作、特征、电路系统、逻辑、构件或指令:至少部分地基于从易失性存储器装置收回数据的压缩副本而识别数据的压缩副本可能并未存储在易失性存储器装置中;将包含可能与存储在非易失性存储器装置中的数据的LBA相关联的逻辑地址的第二读取命令传输到非易失性存储器装置;以及至少部分地基于将数据的压缩副本存储在非易失性存储器装置中而接收存储在非易失性存储器装置中的数据的压缩副本。
在本文中所描述的方法700和设备的一些实例中,易失性存储器装置可包含:RAM单元的第一部分,其配置成存储任何数据类型的未压缩数据;RAM单元的第二部分,其配置成存储第一类型的数据的压缩数据;以及RAM单元的第三部分,其配置成存储由非易失性存储器装置存储的主机数据的压缩副本,其中数据的压缩副本可存储在第三部分中。
在本文中所描述的方法700和设备的一些实例中,非易失性存储器装置包含NAND存储器单元,且易失性存储器装置包含RAM单元。
应注意,上文所描述的方法描述可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
描述一种设备。设备可包含:主机系统,其与非易失性存储器装置和易失性存储器装置耦合;控制器,其与主机系统耦合且可操作以使得设备:将包含与存储在非易失性存储器装置中的数据的LBA相关联的逻辑地址的读取命令传输到易失性存储器装置;以及在主机系统处从易失性存储器装置接收存储在易失性存储器装置的逻辑地址处的数据的压缩副本。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于接收存储在易失性存储器装置中的数据的压缩副本而解压缩存储在易失性存储器装置中的数据的压缩副本。
在设备的一些实例中,控制器可进一步配置成使得设备识别数据的压缩副本可存储在易失性存储器装置中,其中将读取命令传输到易失性存储器装置可至少部分地基于识别数据的压缩副本可存储在易失性存储器装置中。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于与数据相关联的存取频率参数而向数据指配分数;以及至少部分地基于分数满足阈值分数而将数据的压缩副本存储在易失性存储器装置中,其中接收存储在易失性存储器装置中的数据的压缩副本可至少部分地基于存储数据的压缩副本。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于分数超出阈值分数而从非易失性存储器装置检索数据;以及至少部分地基于检索数据而压缩数据以产生数据的压缩副本,其中存储数据的压缩副本可至少部分地基于压缩数据。
在设备的一些实例中,存取频率参数包含对可能存取数据的可能性、可能存取数据的频率或其组合的指示。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于与数据相关联的存取频率参数而识别与存储在非易失性存储器装置中的数据相关联的分数;以及至少部分地基于分数小于阈值分数而删除存储在易失性存储器装置中的数据的压缩副本。
在设备的一些实例中,控制器可进一步配置成使得设备从主机系统传输包含第二LBA的写入命令,以将第二数据存储在非易失性存储器装置中;以及至少部分地基于传输写入命令而通过利用第二数据的压缩副本的至少一部分重写数据的压缩副本的至少一部分来将第二数据的压缩副本存储在易失性存储器装置中。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于接收读取命令而更新与数据相关联的分数。
在设备的一些实例中,控制器可进一步配置成使得设备分配易失性存储器装置的一部分以存储存储在非易失性存储器装置中的数据的压缩副本,所述易失性存储器装置的部分配置成提供对数据的压缩副本的低时延存取,其中接收存储在易失性存储器装置中的数据的压缩副本可至少部分地基于分配所述部分。
在设备的一些实例中,控制器可进一步配置成使得设备确定可使用用于存储未压缩数据的易失性存储器装置的第二部分的阈值存储器量;以及至少部分地基于确定可使用阈值存储器量而将易失性存储器装置的部分的至少一部分重新分配到第二部分。
在设备的一些实例中,控制器可进一步配置成使得设备识别存储在非易失性存储器装置中的第二数据的压缩副本可能并未存储在易失性存储器装置中;将包含可能与第二数据的第二LBA相关联的第二逻辑地址的第二读取命令传输到非易失性存储器装置;以及至少部分地基于将第二读取命令传输到非易失性存储器装置而从非易失性存储器装置接收第二数据。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于与存储在非易失性存储器装置中的数据相关联的分数小于阈值分数而从易失性存储器装置收回数据的压缩副本;以及至少部分地基于从易失性存储器装置收回数据的压缩副本而将数据的压缩副本存储在非易失性存储器装置中。
在设备的一些实例中,控制器可进一步配置成使得设备至少部分地基于从易失性存储器装置收回数据的压缩副本而识别数据的压缩副本可能并未存储在易失性存储器装置中;将包含可能与存储在非易失性存储器装置中的数据的LBA相关联的逻辑地址的第二读取命令传输到非易失性存储器装置;以及至少部分地基于将数据的压缩副本存储在非易失性存储器装置中而接收存储在非易失性存储器装置中的数据的压缩副本。
在设备的一些实例中,易失性存储器装置包含:RAM单元的第一部分,其配置成存储任何数据类型的未压缩数据;RAM单元的第二部分,其配置成存储第一类型的数据的压缩数据;以及RAM单元的第三部分,其配置成存储由非易失性存储器装置存储的主机数据的压缩副本,其中数据的压缩副本可存储在第三部分中。
在设备的一些实例中,非易失性存储器装置包含NAND存储器单元,且易失性存储器装置包含RAM单元。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,信号可表示信号的总线,其中总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间的支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含例如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件发起允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在开路,那么组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的两个组件在开关断开时彼此隔离。当控制器隔离开两个组件时,所述控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中所论述的装置,包含存储器阵列,可形成在例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如,金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂(例如简并)半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型的(即,大部分载体为电子),那么FET可被称为n型FET。如果沟道是p型的(即,大部分载体为空穴),那么FET可被称为p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。举例来说,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。当大于或等于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“接通”或“启动”。当小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“去活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”意指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节以提供对所描述技术的理解。然而,这些技术可在无这些具体细节的情况下实践。在一些情况下,以框图形式展示熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。另外,可通过在参考标记之后跟着短划线及在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一个,与第二参考标记无关。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体予以传输。其它实例和实施方案在本公开和所附权利要求书的范围内。举例来说,由于软件的性质,上文所描述的功能可以使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
举例来说,可利用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或其设计成执行本文中所描述的功能的任何组合来实施或执行结合本文中的公开内容而描述的各种说明性块和模块。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、与DSP核心结合的一或多个微处理器,或任何其它这类配置)。
如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“中的至少一个”或“中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文中所使用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可以是可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也包含在计算机可读媒体的范围内。
提供本文中的描述以使得所属领域的技术人员能够进行或使用本公开。所属领域的技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是赋予与本文中所公开的原理和新颖特征一致的最宽范围。
Claims (25)
1.一种设备,其包括:
主机系统,其与非易失性存储器装置和易失性存储器装置耦合;以及
控制器,其与所述主机系统耦合且能够操作以使得所述设备:
将包含与存储在所述非易失性存储器装置中的数据的逻辑块地址LBA相关联的逻辑地址的读取命令传输到所述易失性存储器装置;以及
在所述主机系统处从所述易失性存储器装置接收存储在所述易失性存储器装置的所述逻辑地址处的所述数据的压缩副本。
2.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于接收存储在所述易失性存储器装置中的所述数据的所述压缩副本而解压缩存储在所述易失性存储器装置中的所述数据的所述压缩副本。
3.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
识别所述数据的所述压缩副本存储在所述易失性存储器装置中,其中将所述读取命令传输到所述易失性存储器装置至少部分地基于识别所述数据的所述压缩副本存储在所述易失性存储器装置中。
4.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于与所述数据相关联的存取频率参数而向所述数据指配分数;以及
至少部分地基于所述分数满足阈值分数而将所述数据的所述压缩副本存储在所述易失性存储器装置中,其中接收存储在所述易失性存储器装置中的所述数据的所述压缩副本至少部分地基于存储所述数据的所述压缩副本。
5.根据权利要求4所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于所述分数超出所述阈值分数而从所述非易失性存储器装置检索所述数据;以及
至少部分地基于检索所述数据而压缩所述数据以产生所述数据的所述压缩副本,其中存储所述数据的所述压缩副本至少部分地基于压缩所述数据。
6.根据权利要求4所述的设备,其中所述存取频率参数包括对存取所述数据的可能性、存取所述数据的频率或其组合的指示。
7.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于与所述数据相关联的存取频率参数而识别与存储在所述非易失性存储器装置中的所述数据相关联的分数;以及
至少部分地基于所述分数小于阈值分数而删除存储在所述易失性存储器装置中的所述数据的所述压缩副本。
8.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
从所述主机系统传输包含第二LBA的写入命令,以将第二数据存储在所述非易失性存储器装置中;以及
至少部分地基于传输所述写入命令而通过利用所述第二数据的压缩副本的至少一部分重写所述数据的所述压缩副本的至少一部分来将所述第二数据的所述压缩副本存储在所述易失性存储器装置中。
9.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于接收所述读取命令而更新与所述数据相关联的分数。
10.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
分配所述易失性存储器装置的一部分以存储存储在所述非易失性存储器装置中的数据的压缩副本,所述易失性存储器装置的所述部分配置成提供对数据的所述压缩副本的低时延存取,其中接收存储在所述易失性存储器装置中的所述数据的所述压缩副本至少部分地基于分配所述部分。
11.根据权利要求10所述的设备,其中所述控制器进一步配置成使得所述设备:
确定使用用于存储未压缩数据的所述易失性存储器装置的第二部分的阈值存储器量;以及
至少部分地基于确定使用所述阈值存储器量而将所述易失性存储器装置的所述部分的至少一部分重新分配到所述第二部分。
12.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
识别存储在所述非易失性存储器装置中的第二数据的压缩副本并未存储在所述易失性存储器装置中;
将包含与所述第二数据的第二LBA相关联的第二逻辑地址的第二读取命令传输到所述非易失性存储器装置;以及
至少部分地基于将所述第二读取命令传输到所述非易失性存储器装置而从所述非易失性存储器装置接收所述第二数据。
13.根据权利要求1所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于与存储在所述非易失性存储器装置中的所述数据相关联的分数小于阈值分数而从所述易失性存储器装置收回所述数据的所述压缩副本;以及
至少部分地基于从所述易失性存储器装置收回所述数据的所述压缩副本而将所述数据的所述压缩副本存储在所述非易失性存储器装置中。
14.根据权利要求13所述的设备,其中所述控制器进一步配置成使得所述设备:
至少部分地基于从所述易失性存储器装置收回所述数据的所述压缩副本而识别所述数据的所述压缩副本并未存储在所述易失性存储器装置中;
将包含与存储在所述非易失性存储器装置中的所述数据的所述LBA相关联的所述逻辑地址的第二读取命令传输到所述非易失性存储器装置;以及
至少部分地基于将所述数据的所述压缩副本存储在所述非易失性存储器装置中而接收存储在所述非易失性存储器装置中的所述数据的所述压缩副本。
15.根据权利要求1所述的设备,其中所述易失性存储器装置包括:
随机存取存储器单元的第一部分,其配置成存储任何数据类型的未压缩数据;随机存取存储器单元的第二部分,其配置成存储第一类型的数据的压缩数据;以及
随机存取存储器单元的第三部分,其配置成存储由所述非易失性存储器装置存储的主机数据的压缩副本,其中所述数据的所述压缩副本存储在所述第三部分中。
16.根据权利要求1所述的设备,其中所述非易失性存储器装置包括与非NAND存储器单元,且所述易失性存储器装置包括随机存取存储器单元。
17.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时使得所述电子装置:
将读取命令从主机系统传输到与所述主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与所述主机系统耦合的非易失性存储器装置中的数据的逻辑块地址LBA相关联的逻辑地址;以及
在所述主机系统处从所述易失性存储器装置接收与存储在所述易失性存储器装置中的所述LBA相关联的所述数据的压缩副本。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
识别所述数据的所述压缩副本存储在所述易失性存储器装置中,其中将所述读取命令传输到所述易失性存储器装置至少部分地基于识别所述数据的所述压缩副本存储在所述易失性存储器装置中。
19.根据权利要求17所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
至少部分地基于与所述数据相关联的存取频率参数而向所述数据指配分数;以及
至少部分地基于所述分数满足阈值分数而将所述数据的所述压缩副本存储在所述易失性存储器装置中,其中识别所述数据的所述压缩副本存储在所述易失性存储器装置中至少部分地基于存储所述数据的所述压缩副本。
20.根据权利要求19所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使得所述电子装置:
至少部分地基于所述分数超出所述阈值分数而从所述非易失性存储器装置检索所述数据;以及
至少部分地基于检索所述数据而压缩所述数据以产生所述数据的所述压缩副本,其中存储所述数据的所述压缩副本至少部分地基于压缩所述数据。
21.根据权利要求19所述的非暂时性计算机可读媒体,其中所述存取频率参数包括对存取所述数据的可能性、存取所述数据的频率或其组合的指示。
22.一种由主机系统执行的方法,其包括:
将读取命令传输到与所述主机系统耦合的易失性存储器装置,所述读取命令包含与存储在与所述主机系统耦合的非易失性存储器装置中的数据的逻辑块地址LBA相关联的逻辑地址;以及
从所述易失性存储器装置接收与存储在所述易失性存储器装置中的所述LBA相关联的所述数据的压缩副本。
23.根据权利要求22所述的方法,其进一步包括:
识别所述数据的所述压缩副本存储在所述易失性存储器装置中,其中将所述读取命令传输到所述易失性存储器装置至少部分地基于识别所述数据的所述压缩副本存储在所述易失性存储器装置中。
24.根据权利要求22所述的方法,其进一步包括:
至少部分地基于与所述数据相关联的存取频率参数而向所述数据指配分数;以及
至少部分地基于所述分数满足阈值分数而将所述数据的所述压缩副本存储在所述易失性存储器装置中,其中识别所述数据的所述压缩副本存储在所述易失性存储器装置中至少部分地基于存储所述数据的所述压缩副本。
25.根据权利要求24所述的方法,其进一步包括:
至少部分地基于所述分数超出所述阈值分数而从所述非易失性存储器装置检索所述数据;以及
至少部分地基于检索所述数据而压缩所述数据以产生所述数据的所述压缩副本,其中存储所述数据的所述压缩副本至少部分地基于压缩所述数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/144,573 | 2021-01-08 | ||
US17/144,573 US11886739B2 (en) | 2021-01-08 | 2021-01-08 | Read operation using compressed memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114756167A true CN114756167A (zh) | 2022-07-15 |
Family
ID=82321844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210004928.1A Pending CN114756167A (zh) | 2021-01-08 | 2022-01-05 | 使用压缩存储器的读取操作 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11886739B2 (zh) |
CN (1) | CN114756167A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11770505B1 (en) * | 2022-02-04 | 2023-09-26 | Lytx, Inc. | Adaptive storage reduction of image and sensor data and intelligent video stream restoration |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024512B1 (en) * | 1998-02-10 | 2006-04-04 | International Business Machines Corporation | Compression store free-space management |
US7895242B2 (en) * | 2007-10-31 | 2011-02-22 | Microsoft Corporation | Compressed storage management |
JP2013084116A (ja) * | 2011-10-07 | 2013-05-09 | Fujitsu Ltd | 通信装置、通信装置の制御方法及び情報処理システム |
US9727481B2 (en) * | 2015-02-17 | 2017-08-08 | Hewlett Packard Enterprise Development Lp | Cache eviction of inactive blocks using heat signature |
JP2020086477A (ja) * | 2018-11-15 | 2020-06-04 | 株式会社日立製作所 | 大規模ストレージシステム及び大規模ストレージシステムにおけるデータ配置方法 |
US11188252B2 (en) * | 2020-03-13 | 2021-11-30 | Seagate Technology Llc | Data storage system with adaptive cache management |
-
2021
- 2021-01-08 US US17/144,573 patent/US11886739B2/en active Active
-
2022
- 2022-01-05 CN CN202210004928.1A patent/CN114756167A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220222012A1 (en) | 2022-07-14 |
US11886739B2 (en) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230185727A1 (en) | Dynamic logical page sizes for memory devices | |
US20230185728A1 (en) | Data alignment for logical to physical table compression | |
CN115248662A (zh) | 动态超级块 | |
US11755490B2 (en) | Unmap operation techniques | |
US11886739B2 (en) | Read operation using compressed memory | |
US11966752B2 (en) | Data caching for fast system boot-up | |
US11940926B2 (en) | Creating high density logical to physical mapping | |
US11941300B2 (en) | Integrated pivot table in a logical-to-physical mapping | |
US20230195387A1 (en) | Memory-aligned access operations | |
CN114546895B (zh) | 主机侧存储器地址管理 | |
CN114520016B (zh) | 用于存储器地址区的激活和去激活的增强 | |
US11989133B2 (en) | Logical-to-physical mapping compression techniques | |
CN113885786B (zh) | 用于垃圾收集的数据分离 | |
US20240160352A1 (en) | Memory cell folding operations using host system memory | |
US11977758B2 (en) | Assigning blocks of memory systems | |
US11513952B2 (en) | Data separation for garbage collection | |
US20240054971A1 (en) | Configurable types of write operations | |
US20240020053A1 (en) | Techniques for firmware enhancement in memory devices | |
US20240053905A1 (en) | Compression and decompression of trim data | |
US20230359552A1 (en) | Memory write performance techniques | |
US20210373908A1 (en) | Data techniques for system boot procedures | |
US20240053925A1 (en) | Caching for multiple-level memory device | |
CN115605850A (zh) | 用于逻辑到物理表压缩的数据组织 | |
CN117501229A (zh) | 高速缓存分配技术 | |
CN114116526A (zh) | 用于用嵌入式存储器系统进行受管理nand转译的技术 |
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 |