CN113282234B - 存储装置、存储系统、及其操作方法 - Google Patents

存储装置、存储系统、及其操作方法 Download PDF

Info

Publication number
CN113282234B
CN113282234B CN202110191767.7A CN202110191767A CN113282234B CN 113282234 B CN113282234 B CN 113282234B CN 202110191767 A CN202110191767 A CN 202110191767A CN 113282234 B CN113282234 B CN 113282234B
Authority
CN
China
Prior art keywords
data
write
compression
zone
host
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
CN202110191767.7A
Other languages
English (en)
Other versions
CN113282234A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113282234A publication Critical patent/CN113282234A/zh
Application granted granted Critical
Publication of CN113282234B publication Critical patent/CN113282234B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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
    • 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/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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies

Abstract

一种存储装置可以包括:非易失性存储器,其包括多个区,所述非易失性存储器被配置为在所述多个区中的至少一个中顺序地存储数据;以及处理电路,其被配置为:从主机接收第一写入命令和第一数据,所述第一写入命令包括第一逻辑地址,基于所述第一逻辑地址来识别所述多个区中的第一区,基于与所述第一区相对应的压缩设置来压缩所述第一数据,以及将经压缩的所述第一数据写入到所述第一区。

Description

存储装置、存储系统、及其操作方法
相关申请的交叉引用
本申请要求于2020年2月20日在韩国知识产权局提交的韩国专利申请NO.10-2020-0021033的优先权的权益,该韩国专利申请的公开内容通过引用整体并入本文。
技术领域
本发明构思的各种示例实施例涉及存储装置、存储系统、和/或其操作方法,更具体地,涉及基于写入数据的属性设置非易失性存储器的多个区、并根据与所述多个区相对应的压缩方法来压缩和存储写入数据的存储装置、存储系统、和/或其操作方法。
背景技术
数据中心可以通过使用诸如固态驱动器(SSD)等的存储装置来存储各条数据,并且可以提供服务。SSD可存储热数据和冷数据,热数据是指被频繁访问的数据,冷数据是指被相对较少访问的数据。基于相关技术的SSD随机存储热数据和冷数据,而不在它们之间进行分类。因此,在基于相关技术的SSD中,压缩效率降低,并且由于频繁的垃圾收集,写入放大因子(WAF)增加。
发明内容
本发明构思的各种示例实施例提供一种存储装置、一种存储系统、和/或其操作方法,其基于写入数据的属性设置非易失性存储器的多个区,并基于与所述多个区相对应的压缩方法来压缩和存储写入数据。
根据本发明构思的至少一个示例实施例的一方面,提供了一种存储装置,其包括:非易失性存储器,其包括多个区,所述非易失性存储器被配置为在所述多个区中的至少一个中顺序地存储数据;和处理电路,其被配置为:从主机接收第一写入命令和第一数据,所述第一写入命令包括第一逻辑地址,基于所述第一逻辑地址来识别所述多个区中的第一区,基于与所述第一区相对应的压缩设置来压缩所述第一数据,以及将经压缩的所述第一数据写入到所述第一区。
根据本发明构思的至少一个示例实施例的另一方面,提供了一种存储系统,其包括主机和存储装置,所述存储装置包括非易失性存储器和处理电路,所述非易失性存储器包括多个区并且被配置为顺序地存储数据,并且所述处理电路被配置为控制所述非易失性存储器,其中,所述主机被配置为将写入数据和包括逻辑地址的写入命令传送到所述存储装置,并且所述存储装置被配置为:响应于来自所述主机的所述写入命令,基于所述逻辑地址来识别所述多个区中的第一区,基于与所述第一区相对应的压缩设置来压缩所述写入数据,以及将经压缩的所述写入数据写入到所述第一区中。
根据本发明构思的至少一个示例实施例的另一方面,提供了一种存储装置的操作方法,所述存储装置包括非易失性存储器,所述非易失性存储器包括多个区,所述非易失性存储器被配置为存储数据,所述操作方法包括:使用处理电路从主机接收第一写入命令和第一数据;使用所述处理电路基于所述第一写入命令中包括的第一逻辑地址来识别所述多个区中的第一区;使用所述处理电路基于与所述第一区相对应的压缩设置来压缩所述第一数据;以及使用所述处理电路将经压缩的所述第一数据写入到所述第一区中。
附图说明
从下面结合附图的详细描述中,将更清楚地理解本发明构思的各种示例实施例,在附图中:
图1是示出根据至少一个示例实施例的存储系统的框图;
图2是示出根据至少一个示例实施例的存储装置的框图;
图3是示出根据至少一个示例实施例的区管理表的示图;
图4是示出根据至少一个示例实施例的数据压缩操作的概念图;
图5是示出根据至少一个示例实施例的基于写入命令单位的数据压缩操作的概念图;
图6是示出根据至少一个示例实施例的基于块单位的数据压缩操作的概念图;
图7是示出根据至少一个示例实施例的数据写入操作的概念图;
图8是示出根据至少一个示例实施例的更新写入指针的操作的概念图;
图9是示出根据至少一个示例实施例的传送压缩信息的操作的概念图;
图10是示出根据至少一个示例实施例的映射表的图;
图11是示出根据至少一个示例实施例的在主机、控制器和非易失性存储器之间执行的写入操作的流程图;
图12是示出根据至少一个示例实施例的在区管理电路、压缩/解压缩电路和非易失性存储器之间执行的写入操作的流程图;
图13是示出根据至少一个示例实施例的在主机、控制器和非易失性存储器之间执行的读取操作的流程图;
图14是示出根据至少一个示例实施例的在区管理电路、压缩/解压缩电路和非易失性存储器之间执行的读取操作的流程图;
图15是示出根据至少一个示例实施例的存储装置的操作方法的流程图;
图16是示出根据至少一个示例实施例的控制器的配置的框图;以及
图17是示出根据至少一个示例实施例的包括服务器系统的网络系统的框图。
具体实施方式
图1是示出根据至少一个示例实施例的存储系统10的框图。
参照图1,存储系统10可以包括主机100和/或存储装置200,但是示例实施例不限于此,并且存储系统10可以包括更多数量或更少数量的构成组件,诸如多个主机、多个存储装置等。此外,存储装置200可以包括控制器300(例如,处理电路)、非易失性存储器(NVM)400等,但是不限于此。根据一些示例实施例,控制器300可以包括硬件,诸如逻辑电路(例如,处理电路等);硬件/软件组合,诸如执行软件和/或执行任何指令集的至少一个处理器核;或其组合。例如,控制器300更具体地可以包括但不限于:现场可编程门阵列(FPGA)、可编程逻辑单元、专用集成电路(ASIC)、片上系统(SOC)、知识产权(IP)块等。在至少一个示例实施例中,控制器300和NVM 400中的每一个可以被实施为单独的芯片,但是不限于此。此外,控制器300可以包括区管理电路310(例如,区管理模块、逻辑、组件等)和/或压缩/解压缩电路320(压缩/解压缩模块、逻辑、组件等)等。根据至少一个示例实施例,区管理电路310和压缩/解压缩电路320可以被集成,但是示例实施例不限于此。此外,NVM 400可以包括多个区(Zone 1至Zone n)410-1至410-n,但不限于此。
存储系统10可以被实施为、被包括在和/或连接到例如个人计算机(PC)、数据服务器、网络附接储存器、智能装置、物联网(IoT)装置、和/或便携式电子装置,但不限于此。便携式电子装置的示例可以包括膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静态相机、数字摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持式游戏控制台、电子书、可穿戴装置、虚拟现实装置和/或增强现实装置等。
主机100可以执行存储系统10中的至少一个数据管理操作。在至少一个示例实施例中,主机100可以向存储装置200提供数据写入请求和/或数据读取请求等,并且基于来自主机100的请求,存储装置200可以在NVM 400中写入数据,或者可以从NVM 400读取数据并将所读取的数据提供给主机100,但不限于此。此外,基于来自主机100的数据擦除请求,存储装置200可以对存储在由主机100指示的区中的数据执行擦除操作等。
存储装置200可以包括一个或多个存储介质。例如,存储装置200可以包括一个或多个硬盘驱动器(HDD)和/或SSD等。当存储装置200包括SSD时,存储装置200可包括多个存储器芯片。例如,存储装置200可以包括非易失性地存储数据的多个闪存芯片(例如,NAND存储器芯片)。另外,存储装置200可以对应于至少一个闪存芯片。另外,存储装置200可以对应于包括一个或多个闪存芯片的存储卡。
根据至少一个示例实施例,NVM 400中包括的多个存储介质可以是多个存储空间,并且可以被设置为第一区410-1至第n区410-n(Zone 1至Zone n),但是示例实施例不限于此。每个区可以被不同地限定,例如,每个区的大小可以被不同地限定。例如,多个区410-1至410-n中的每一个可以包括多个块或多个页,但不限于此。页可以对应于数据写入单位或数据读取单位,并且块可以包括多个页。因此,多个区410-1至410-n中的每一个可具有大于数据写入单位或数据读取单位的大小。多个区410-1至410-n中的每一个的大小不限于上述示例,并且多个区410-1至410-n的大小可以彼此相同,或者可以彼此不同。
NVM 400的多个区410-1至410-n中的每一个可以顺序地存储数据,但不限于此。详细地,多个区410-1至410-n可以不随机地存储数据,并且可以从每个区的第一存储位置等顺序地存储数据。例如,在多个区410-1至410-n中的每一个第一次存储数据的情况下,多个区410-1至410-n中的每一个可以从每个区的第一存储位置顺序地存储数据。此外,在多个区410-1至410-n中的每一个额外地存储数据(例如,存储额外的数据)的情况下,多个区410-1至410-n中的每一个可识别数据最后被写入(例如,最近被写入、先前被写入等)的存储位置,并且可从所识别的存储位置的下一存储位置和/或与所识别的存储位置相继的存储位置等起顺序地存储数据。
因此,主机100可以确定数据将被写入的区,并且可以向存储装置200传送包括与所确定的区相对应的逻辑地址(例如,表示区的起始地址和/或位置的逻辑存储器地址)的写入请求。此外,存储装置200可以识别与写入请求中包括的逻辑地址相对应的区,识别所识别的区中的数据最后(例如,最近和/或先前)被存储的存储位置,并且从所识别的存储位置的下一存储位置起顺序地存储所接收的写入数据。如上所述,存储空间可被设置为多个区,并且在每个区中顺序地存储数据的存储装置200可被称为分区名称空间(ZNS)储存器,但是示例实施例不限于此。
根据至少一个示例实施例,可以基于写入数据的至少一个属性来设置NVM 400的多个区410-1至410-n。在至少一个示例实施例中,可以基于写入数据的预测访问的数量(例如,写入访问的预测数量)或将要写入的数据量来设置NVM 400的多个区410-1至410-n中的每一个。例如,多个区410-1至410-n可被设置为存储预测访问的数量为高的数据(即,热数据)的第一区(Zone 1)、存储预测访问的数量为中等的数据(即,正常数据)的第二区(Zone2)、和存储预测访问的数量为低的数据(即,冷数据)的第三区(Zone 3)。因此,存储装置200可以划分和存储热数据和冷数据,从而减少、降低和/或最小化垃圾收集的量和/或频率。设置多个区410-1至410-n的方法不限于上述示例,并且多个区410-1至410-n可被设置为少于或多于三个区。例如,可以基于历史存储器访问模式、对存储在用于主机100和/或控制器300的处理器和/或处理器核的(一个或多个)指令队列(未示出)中的指令进行的分析等,由主机100和/或控制器300来确定预测的存储器访问的数量,但是示例实施例不限于此。
控制器300可以包括区管理电路310。区管理电路310可以管理NVM 400的多个区410-1至410-n,并且/或者可以支持处理针对多个区410-1至410-n的各种请求的功能,但不限于此。在至少一个示例实施例中,区管理电路310可以基于从主机100接收的至少一个管理命令将NVM 400的存储空间设置为多个区410-1至410-n。例如,区管理电路310可以基于从主机100接收的管理命令将NVM 400的存储空间设置为存储热数据的第一区(Zone 1)、存储正常数据的第二区(Zone 2)和存储冷数据的第三区(Zone 3)。上述示例仅仅是将NVM400的存储空间设置为多个区的方法的示例,并且示例实施例不限于此。
此外,根据至少一个示例实施例,区管理电路310可以为多个区410-1至410-n中的每一个设置压缩方法和/或解压缩方法。在至少一个示例实施例中,区管理电路310可以基于从主机100接收的管理命令来设置与多个区410-1至410-n中的每一个相对应的压缩比(压缩数据大小与原始数据大小的比率)。例如,区管理电路310可以将用于存储热数据的第一区(Zone 1)的压缩比设置为100%(即,不执行压缩),将存储正常数据的第二区(Zone 2)的压缩比设置为75%,并且将存储冷数据的第三区(Zone 3)的压缩比设置为50%,但是示例实施例不限于此,并且可以为每个区设置任何压缩比。将压缩比设置为压缩方法/解压缩方法的示例仅仅是示例,并且示例实施例不限于此。例如,设置压缩方法/解压缩方法的方法可以设置各种算法,诸如压缩方式和/或压缩算法、加密方式和/或加密算法、或者数据压缩单位(例如,压缩的单位大小),可以基于存储装置性能和/或条件自动地或动态地设置压缩比、针对不同区使用不同的压缩算法等。
此外,根据至少一个示例实施例,区管理电路310可以基于设置的压缩方法/解压缩方法来写入数据和/或读取数据。在至少一个示例实施例中,当从主机100接收到写入请求时,区管理电路310可以通过使用压缩/解压缩电路320基于与写入请求相对应的区的压缩比来压缩写入数据(例如,要写入到NVM 400的数据),并且可以将压缩的写入数据写入到与写入请求相对应的区中。此外,当从主机100接收到读取请求时,区管理电路310可以从与读取请求相对应的区读取数据,通过使用压缩/解压缩电路320基于与读取请求相对应的区的压缩比来对读取的数据(例如,先前压缩的数据)进行解压缩,并且将解压缩后的读取的数据传送到主机100。
控制器300可包括压缩/解压缩电路320。压缩/解压缩电路320可以支持压缩和/或解压缩数据的功能。根据至少一个示例实施例,压缩/解压缩电路320可以从区管理电路310接收数据,基于与接收到的数据将要被写入的区相对应的压缩方法和/或压缩设置来压缩接收到的数据,并且将经压缩的数据传送到区管理电路310。此外,压缩/解压缩电路320可以从区管理电路310接收数据,基于与从其读取接收到的数据的区相对应的解压缩方法和/或解压缩设置来解压缩接收到的数据,并且将解压缩后的数据传送到区管理电路310。
因此,存储装置200可以调整数据输入/输出延迟(latency)以及存储装置的存储空间的效率。例如,当存储热数据的第一区(Zone 1)的压缩比为100%(例如,Zone 1中的数据未被压缩)并且存储冷数据的第三区(Zone 3)的压缩比为50%时,存储装置200可以不执行被频繁访问的热数据的压缩和解压缩,因此可以快速地写入和读取热数据(例如,以与常规存储装置大致相同的速度向Zone 1写入数据和从Zone 1读取数据),此外,存储装置200可以基于高压缩比对被相对较少访问的冷数据执行压缩,从而在相对于压缩/解压缩存储在存储装置上的所有数据的存储装置减少对存储装置200执行读取操作和写入操作的速度的降低的同时提升存储空间的效率。
区管理电路310和压缩/解压缩电路320可以各自被实施为各种类型,并且可以被包括在控制器300中和/或与控制器300集成。例如,区管理电路310或压缩/解压缩电路320可以用诸如逻辑电路、处理电路等的硬件来实施,以用于执行分别与示例实施例的区管理方法和压缩/解压缩方法相关的至少一种支持功能。另外,区管理电路310和/或压缩/解压缩电路320可以被实施为硬件和软件的组合,例如,被加载到控制器300中包括的处理电路中并由控制器300中包括的处理电路执行的软件程序(例如,程序代码、固件、计算机可读指令等)可以执行如关于至少一个示例实施例所讨论的区管理电路310或压缩/解压缩电路320的功能。
如上所述,根据至少一个示例实施例的存储系统10可以基于数据的预测访问的数量(例如,访问和/或数据操作的预测数量)将NVM 400的存储空间设置为多个区410-1至410-n,并且可以基于与多个区410-1至410-n中的每一个相对应的压缩方法、压缩设置和/或压缩算法来压缩写入数据(例如,要写入的数据),或者可以基于与多个区410-1至410-n中的每一个相对应的解压缩方法、解压缩设置和/或解压缩算法来解压缩读取的数据(例如,存储在NVM 400上的数据)。也就是说,存储系统10可以将热数据和冷数据划分并存储在不同的区中,并且因此可以具有通过减少和/或最小化垃圾收集来减少写入放大因子(WAF)的效果,此外,存储系统10可以以不同的压缩比来压缩和存储热数据和冷数据,并且因此可以适当地和/或有利地调整数据输入/输出延迟与存储空间的压缩效率之间的折衷。
根据可修改的示例实施例,区管理电路310可以基于从主机100接收的命令,为存储装置200的每个用户设置多个区410-1至410-n。例如,区管理电路310可以设置存储与第一用户(和/或第一主机)相关联的数据的第一区(Zone 1)、存储与第二用户(和/或第二主机)相关联的数据的第二区(Zone 2)、以及存储与第三用户(和/或第三主机)相关联的数据的第三区(Zone 3)等,但是示例实施例不限于此,并且例如,两个或更多个区可以与单个用户/主机相关联,或者单个区可以与两个或更多个用户/主机相关联等。
此外,区管理电路310可以基于从主机100接收的命令,设置与为每个用户(和/或主机)设置的多个区410-1至410-n中的每一个相对应的压缩方法(例如,压缩设置、压缩算法等)和/或解压缩方法(例如,解压缩设置、解压缩算法等)。例如,区管理电路310可以基于偏好和/或选择快速输入/输出的第一用户的请求来将第一区(Zone 1)的压缩比设置为100%,并且可以基于偏好和/或选择存储空间的高效率的第三用户的请求来将第三区(Zone 3)的压缩比设置为50%,等等。
如上所述,根据至少一个示例实施例的存储系统10可以基于用户和/或主机将NVM400的存储空间设置为多个区410-1至410-n,并且可以基于用户和/或主机的选择和/或偏好单独地设置与多个区410-1至410-n中的每一个相对应的压缩方法,从而向用户和/或主机提供定制的服务。
图2是示出根据至少一个示例实施例的存储装置200的框图。
参照图1和图2,存储装置200可以包括控制器300(例如,处理电路等)和/或NVM400,但不限于此。此外,控制器300可以包括区管理电路310和/或压缩/解压缩电路320,并且NVM 400可以包括多个区410-1至410-n,但是它们不限于此。在至少一个示例实施例中,区管理电路310可以包括区管理表311和/或写入指针313,但不限于此。
区管理表311可以是包括关于与多个区410-1至410-n中的每一个相对应的压缩方法的信息的表、列表、数据库等。例如,区管理表311可以包括关于与多个区410-1至410-n中的每一个相对应的压缩比的信息。下面将参照图3给出区管理表311的详细描述。在至少一个示例实施例中,当从主机100接收到写入命令CMD和写入数据DATA时,区管理电路310可以基于写入命令CMD中包括的逻辑地址(例如,存储器地址)来识别用于写入写入数据DATA的区,并且可以基于区管理表311来识别与所识别的区相对应的压缩方法。此外,区管理电路310可以将写入数据DATA和关于压缩方法的信息传送到压缩/解压缩电路320,以基于压缩方法、压缩设置、压缩算法等来请求写入数据DATA的压缩。
基于区管理电路310的请求,压缩/解压缩电路320可以基于所传送的关于压缩方法的信息来压缩接收到的写入数据DATA,以生成压缩数据(例如,经压缩的数据)Comp_DATA。例如,当所传送的关于压缩方法的信息包括表示75%的压缩比(例如,数据被压缩25%)的信息时,压缩/解压缩电路320可以将写入数据DATA压缩25%以生成压缩数据(例如,经压缩的数据)Comp_DATA。根据一些示例实施例,作为在接收到的写入数据DATA中包括压缩方法(例如,压缩设置、压缩算法等)的结果,压缩/解压缩电路320压缩写入数据DATA以生成压缩数据Comp_DATA,并且压缩数据Comp_DATA的真实和/或实际压缩比可以低于接收到的压缩比(例如,被压缩更多),但不限于此。也就是说,由于所使用的压缩方法、压缩设置和/或压缩算法和/或所接收到的数据的组成等,写入数据DATA可能相比于目标压缩量和/或期望压缩比被压缩更多。在这种情况下,压缩/解压缩电路320可以向经压缩的写入数据DATA添加伪数据,使得压缩数据Comp_DATA的真实和/或实际压缩比等于接收到的压缩比,从而生成压缩数据(例如,经压缩的数据)Comp_DATA。此外,压缩/解压缩电路320可以将压缩数据(例如,经压缩的数据)Comp_DATA传送到区管理电路310。
根据其它示例实施例,压缩/解压缩电路320压缩写入数据DATA以生成压缩数据Comp_DATA的结果可能导致压缩数据Comp_DATA的真实压缩比高于从区管理电路310接收到的压缩比。也就是说,写入数据DATA可能未被压缩到与目标压缩比相同的压缩比。因此,当从压缩/解压缩电路320接收到压缩数据Comp_DATA时,区管理电路310可以识别接收到的压缩数据Comp_DATA的真实(例如,实际)压缩比,并且可以将真实压缩比和与压缩数据Comp_DATA将被写入的区相对应的目标压缩比进行比较。
例如,当真实压缩比高于与目标区(例如,写入数据DATA将被写入的区)相关联的目标压缩比时,区管理电路310可以从临时存储从主机100接收的写入数据DATA的缓冲器(未示出)读取写入数据DATA,并且可以确定写入数据DATA而不是压缩数据Comp_DATA将被写入到目标区。另一方面,当真实压缩比与目标压缩比匹配时,区管理电路310可以确定从压缩/解压缩电路320接收的压缩数据Comp_DATA将被写入到目标区。
区管理电路310可以通过使用写入指针313将确定要写入的数据(例如,写入数据DATA或压缩数据Comp_DATA)写入到NVM 400中。根据一些示例实施例,写入指针313可以是多个指针,并且多个指针中的每一个可以与NVM 400的相应区相关联和/或相对应。这里,写入指针313可以指代这样的指针:该指针表示每个区中的数据最后被存储(和/或最近被存储)的存储位置。在至少一个示例实施例中,区管理电路310可以识别数据将要被写入的区的写入指针313。此外,区管理电路310可以将写入数据DATA或压缩数据Comp_DATA传送到NVM 400,并且同时地(和/或顺序地),可以控制NVM 400在所识别的写入指针313的下一存储位置处写入数据。
在图2的图示和描述中,示出并描述了区管理电路310包括区管理表311和写入指针313,但是区管理表311和/或写入指针313可以被加载到控制器300的单独的存储器(例如,动态随机存取存储器(DRAM)、外部高速缓冲存储器等)中。
图3是示出根据至少一个示例实施例的区管理表ZMT的图。
参照图1和图3,根据至少一个示例实施例的区管理表ZMT可包括关于多个区410-1至410-n中的每一个的逻辑地址(和/或存储器地址)ZSLBA、区标识(ID)(Zone ID)、区级别(Zone Level)和压缩比(Comp Ratio)的信息。如以上参照图2所述,存储装置200可以参照区管理表ZMT,基于与每个区相对应的压缩方法、压缩设置、压缩算法等来压缩数据。在下文中,为了便于描述,可以假设NVM 400的多个区410-1至410-n包括三个区。
根据至少一个示例实施例,多个区410-1至410-n中的每一个的区ID(Zone ID)可以指代表示每个区的名称、数字和/或任何其它唯一标识符。例如,参照图3,区管理表ZMT可以包括第一区Zone 1、第二区Zone 2和第三区Zone 3作为三个区的ID,但是示例实施例不限于此。此外,根据至少一个示例实施例,多个区410-1至410-n中的每一个的逻辑地址ZSLBA可指代表示每个区或表示每个区的起始位置的逻辑地址。在至少一个示例实施例中,多个区410-1至410-n中的每一个的逻辑地址ZSLBA可以被实施为每个区的第一块或第一页的逻辑地址。例如,参照图3,区管理表ZMT可以包括第一区Zone1的逻辑地址ZSLBA 1、第二区Zone 2的逻辑地址ZSLBA 2、以及第三区Zone 3的逻辑地址ZSLBA 3。然而,示例实施例不限于此,例如,可以使用物理存储器地址来代替逻辑地址,或者除了逻辑地址之外还可以使用物理存储器地址等。
此外,根据至少一个示例实施例,多个区410-1至410-n中的每一个的区级别(ZoneLevel)可以表示被写入到每个区中的数据的压缩程度。例如,参照图3,区管理表ZMT可包括多个级别指定,例如:第1级,其是存储热数据的第一区Zone 1的级别,并且是用于以高压缩比执行压缩的级别(例如,数据未被压缩,或者被压缩到较小程度等);第2级,其是存储正常数据的第二区Zone 2的级别,并且是用于以比第1级低的压缩比执行压缩的级别(例如,存储在Zone 2中的数据相比于存储在Zone 1中的数据被压缩得更多,但是相比于Zone 3中的数据被压缩得更少等);以及第3级,其是存储冷数据的第三区Zone 3的级别,并且是用于以最低压缩比执行压缩的级别(例如,存储在Zone 3中的数据被压缩得最多和/或被高度压缩等),但是示例实施例不限于此,并且可以存在更多或更少数量的压缩级别等。
根据至少一个示例实施例,多个区410-1至410-n中的每一个的压缩比(CompRatio)可以表示经压缩的数据的大小与被写入到每个区中的数据的原始大小的比率。例如,参照图3,区管理表ZMT可包括作为第一区Zone 1的压缩比的100%(例如,“经压缩的数据”的文件大小与原始文件大小相同)、作为第二区Zone 2的压缩比的75%(例如,“经压缩的数据”的文件大小比原始文件的文件大小小25%)、和作为第三区Zone 3的压缩比的50%(例如,“经压缩的数据”的文件大小比原始文件的文件大小小50%)等,但是示例实施例不限于此,例如,可以使用其它压缩比等。
在图3的图示和描述中,区管理表ZMT包括关于多个区410-1至410-n中的每一个的逻辑地址ZSLBA、区ID(Zone ID)、区级别(Zone Level)和压缩比(Comp Ratio)的信息,但是示例实施例不限于此,并且可以省略和/或修改一个或多个项目,或者可以添加单独的项目等。
根据至少一个示例实施例,区管理电路310可以基于控制和/或基于由主机100发送的指令来生成区管理表ZMT。例如,主机100可以向区管理电路310传送用于基于数据属性(例如,预测访问(例如,预测的访问)的数量)和管理命令来将NVM 400的存储空间设置为多个区410-1至410-n的设置信息,该管理命令包括关于多个区410-1至410-n中的每一个的压缩方法(例如,压缩比)的信息。此外,区管理电路310可以基于从主机100接收的管理命令来设置多个区410-1至410-n,并且可以生成用于管理多个区410-1至410-n的区管理表ZMT。所生成的区管理表ZMT可以被存储在NVM 400中,然后可以被加载到区管理电路310等中。
在基于相关技术的存储装置中,控制器检查数据的属性以确定压缩方法,然后基于所确定的压缩方法来压缩和写入数据。因此,基于相关技术的存储装置具有这样的问题,即,由检查数据的属性的操作引起的延迟的开销增加了完成由常规存储器控制器执行的每个写入操作所需的时间。
另一方面,在至少一个示例实施例中,当主机检查数据的属性以确定数据将被写入的区并将包括所确定的区的逻辑地址的命令传送到存储装置200时,存储装置200可基于逻辑地址和区管理表ZMT来识别压缩方法,并可基于所识别的压缩方法来压缩和写入数据。因此,根据至少一个示例实施例的存储装置200可以省略针对每个写入操作检查正被写入的数据的数据属性所需的操作,从而减少由写入操作引起的延迟。
在下文中,将参照图4至图9详细描述通过使用区管理表ZMT来压缩数据并写入经压缩的数据的操作。
图4是示出根据至少一个示例实施例的数据压缩操作的概念图。详细地,图4是示出在图1和图2的区管理电路310和压缩/解压缩电路320上执行的数据压缩操作的示图。
参照图4,区管理电路310可以从主机100接收命令CMD 0、CMD 1和CMD 2以及多条数据DATA 0、DATA 1和DATA 2,但是示例实施例不限于此。在该示例中,从主机100接收的多条数据DATA 0、DATA1和DATA 2可包括热数据、正常数据和冷数据,但不限于此。对应于命令CMD 0的数据DATA 0可以是热数据,并且命令CMD 0可以包括第一区Zone 1的逻辑地址ZSLBA 1。对应于命令CMD 1的数据DATA 1可以是正常数据,并且命令CMD 1可以包括第二区Zone 2的逻辑地址ZSLBA 2。对应于命令CMD 2的数据DATA 2可以是冷数据,并且命令CMD 2可以包括第三区Zone 3的逻辑地址ZSLBA 3。
根据至少一个示例实施例,区管理电路310可以从接收到的命令CMD 0、CMD 1和CMD 2等中识别区的逻辑地址ZSLBA 1、ZSLBA 2和ZSLBA 3。此外,区管理电路310可以基于和/或使用区管理表ZMT来识别与所识别的逻辑地址ZSLBA 1、ZSLBA 2和ZSLBA 3中的每一个相对应的压缩方法。例如,参照图3和图4,区管理电路310可以参照区管理表ZMT,识别与第一区Zone 1的逻辑地址ZSLBA 1相对应的100%的压缩比,识别与第二区Zone 2的逻辑地址ZSLBA 2相对应的75%的压缩比,以及识别与第三区Zone 3的逻辑地址ZSLBA 3相对应的50%的压缩比,等等。
此外,区管理电路310可以将与多条数据DATA 0、DATA 1和DATA 2相对应的压缩方法传送到压缩/解压缩电路320以请求压缩。例如,区管理电路310可以向压缩/解压缩电路320发出请求,以便以100%的压缩比压缩数据DATA 0、以75%的压缩比压缩数据DATA 1、并且以50%的压缩比压缩数据DATA 2。
在图4中,为了便于描述,示出并描述了当区管理电路310将数据传送到压缩/解压缩电路320以请求数据的压缩时,区管理电路310传送与100%的压缩比相对应的数据DATA0。然而,100%的压缩比指代不需要压缩,因此,区管理电路310可以被实施为使得省略将与100%的压缩比相对应的数据传送到压缩/解压缩电路320的操作等。
此外,基于区管理电路310的请求,压缩/解压缩电路320可以基于关于接收到的压缩方法的信息来压缩多条数据DATA 0、DATA 1和DATA 2,以生成多条压缩数据Comp_DATA0、Comp_DATA 1和Comp_DATA 2。例如,参照图3和图4,压缩/解压缩电路320可以以100%的压缩比压缩数据DATA 0以生成压缩数据Comp_DATA 0、以75%的压缩比压缩数据DATA 1以生成压缩数据Comp_DATA 1、并且以50%的压缩比压缩数据DATA 2以生成压缩数据Comp_DATA 2。
在图4中,为了便于描述,示出并描述了当压缩/解压缩电路320压缩接收到的数据时,压缩/解压缩电路320传送与100%的压缩比相对应的数据DATA 0。然而,压缩/解压缩电路320可以被实施为使得省略将与100%的压缩比相对应的数据传送到压缩/解压缩电路320的操作。此外,压缩/解压缩电路320可以将生成的多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2传送到区管理电路310。
压缩/解压缩电路320可以在压缩数据时使用根据至少一个示例实施例的各种大小的单位来压缩数据。例如,压缩/解压缩电路320可以以写入命令单位(例如,在写入命令中指定的单位大小)来执行压缩,或者可以以将数据写入到区中的期望单位和/或最小单位(例如,块单位)来执行压缩,但是示例实施例不限于此。这将在下面参照图5和图6详细描述。
图5是示出根据至少一个示例实施例的基于写入命令单位的数据压缩操作的概念图。详细地,图5是示出由图1和图2的区管理电路310和压缩/解压缩电路320执行的数据压缩操作的示图。在下文中,将描述根据至少一个示例实施例的通过使用压缩/解压缩电路320以写入命令单位来压缩数据的方法。
压缩/解压缩电路320可以接收与多个命令CMD 0、CMD 1和CMD 2等相对应的多条数据DATA 0、DATA 1和DATA 2等。此外,压缩/解压缩电路320可以以多个命令CMD 0、CMD 1和CMD 2单位来压缩多条数据DATA 0、DATA 1和DATA 2。
例如,参照图5,压缩/解压缩电路320可以识别对应于命令CMD 0的数据DATA 0,并且可以对所识别的数据DATA 0的全部执行压缩。此外,压缩/解压缩电路320可以识别对应于命令CMD 1的数据DATA 1,并且可以对所识别的数据DATA 1的全部执行压缩。此外,压缩/解压缩电路320可以识别对应于命令CMD 2的数据DATA 2,并且可以对所识别的数据DATA 2的全部执行压缩。
作为通过压缩/解压缩电路320对多条数据DATA 0、DATA 1和DATA 2进行压缩的结果,真实(例如,实际)压缩比可能低于接收到的压缩比。在这种情况下,压缩/解压缩电路320可以将伪数据添加到经压缩的多条数据DATA 0、DATA 1和DATA 2,以生成具有接收到的压缩比的多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2,但是示例实施例不限于此。
例如,参照图5,当作为对数据DATA 1的全部执行压缩的结果,真实压缩比是65%时,压缩/解压缩电路320可以将伪数据添加到经压缩的数据DATA 1,以最终生成具有75%的压缩比的压缩数据Comp_DATA 1。此外,当作为对数据DATA 2的全部执行压缩的结果,真实压缩比为40%时,压缩/解压缩电路320可以将伪数据添加到经压缩的数据DATA 2,以最终生成具有50%的压缩比的压缩数据Comp_DATA 2,等等。
图6是示出根据至少一个示例实施例的基于块单位的数据压缩操作的概念图。详细地,图6是示出由图1和图2的区管理电路310和压缩/解压缩电路320执行的数据压缩操作的示图。在下文中,将描述根据至少一个示例实施例的通过使用压缩/解压缩电路320以块单位来压缩数据的方法。
压缩/解压缩电路320可以接收对应于多个命令CMD 0、CMD 1和CMD 2的多条数据DATA 0、DATA 1和DATA 2。此外,压缩/解压缩电路320可以以块单位来压缩多条数据DATA0、DATA 1和DATA 2,但不限于此。
例如,参照图6,压缩/解压缩电路320可以对构成数据DATA 0的多个块(例如,三个块等)中的每一个执行压缩。此外,压缩/解压缩电路320可以对构成数据DATA 1的多个块(例如,四个块等)中的每一个执行压缩。此外,压缩/解压缩电路320可以对构成数据DATA 2的多个块(例如,四个块等)中的每一个执行压缩。
作为通过压缩/解压缩电路320压缩构成多条数据DATA 0、DATA 1和DATA 2的多个块中的每个块的结果,真实压缩比可能低于接收到的压缩比。在这种情况下,压缩/解压缩电路320可以将伪数据添加到经压缩的块中的每一个,以生成具有接收到的压缩比的多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2。
例如,参照图6,当作为对构成数据DATA 1的多个块中的每一个执行压缩的结果,至少一个经压缩的块的真实压缩比(例如,实际压缩比等)是65%时,压缩/解压缩电路320可以将伪数据添加到该至少一个经压缩的块,以生成具有75%的压缩比的压缩数据Comp_DATA 1。此外,当作为对构成数据DATA 2的多个块中的每一个执行压缩的结果,至少一个经压缩的块的真实压缩比是40%时,压缩/解压缩电路320可以将伪数据添加到该至少一个经压缩的块,以最终生成具有50%的压缩比的压缩数据Comp_DATA 2。然而,示例实施例不限于此,并且根据一些示例实施例,即使真实压缩比不等于目标压缩比,也不向压缩数据添加伪数据,等等。
在图6的图示和描述中,示出和描述了压缩/解压缩电路320以块单位来压缩数据,但是示例实施例不限于此,并且例如,压缩/解压缩电路320可以以页单位等来压缩数据。
图7是示出根据至少一个示例实施例的数据写入操作的概念图。详细地,图7是示出由图1和图2的区管理电路310执行的数据写入操作的示图。
参照图4和图7,区管理电路310可以将从压缩/解压缩电路320接收的多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2写入到NVM 400中,但不限于此。在至少一个示例实施例中,区管理电路310可以通过使用多个写入指针WP1、WP2和WP3将多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2写入(例如,顺序地写入、并行地写入等)到与多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2相对应的多个区(例如,第一区至第三区)Zone 1、Zone 2和Zone 3中。
例如,区管理电路310可以识别与命令CMD 0中包括的区的逻辑地址ZSLBA 1相对应的第一区Zone 1的写入指针WP1,并且可以在所识别的写入指针WP1的下一存储位置处写入压缩数据Comp_DATA 0。此外,区管理电路310可以识别与命令CMD 1中包括的区的逻辑地址ZSLBA 2相对应的第二区Zone 2的写入指针WP2,并且可以在所识别的写入指针WP2的下一存储位置处写入压缩数据Comp_DATA 1。此外,区管理电路310可以识别与命令CMD 2中包括的区的逻辑地址ZSLBA 3相对应的第三区Zone 3的写入指针WP3,并且可以在所识别的写入指针WP3的下一存储位置处写入压缩数据Comp_DATA 2。
在图7的图示和描述中,示出和描述了区管理电路310写入从压缩/解压缩电路320接收的压缩数据,但是根据一些示例实施例,区管理电路310可以写入未被压缩的写入数据而不是接收到的压缩数据。
详细地,区管理电路310可以从压缩/解压缩电路320接收压缩数据和关于压缩数据的真实压缩比的信息。例如,在压缩/解压缩电路320基于和/或使用写入命令单位执行压缩的情况下,区管理电路310可以接收关于与写入命令相对应的每个压缩数据的真实压缩比的信息。此外,区管理电路310可以针对每个压缩数据将真实压缩比和与要写入的区相对应的目标压缩比进行比较,并且可以基于比较结果来写入压缩数据或写入数据。
例如,当从压缩/解压缩电路320接收的压缩数据Comp_DATA 1的真实压缩比是85%并且高于75%的目标压缩比时,区管理电路310可以从缓冲器读取压缩前数据DATA 1并且可以将所读取的数据DATA 1写入到区中。作为另一示例,当从压缩/解压缩电路320接收的压缩数据Comp_DATA 2的真实压缩比为50%并且等于50%的目标压缩比时,区管理电路310可以将压缩数据Comp_DATA 2写入到区中。
在压缩/解压缩电路320以块单位来执行压缩的情况下,区管理电路310可以针对每个块将真实压缩比和与要写入的区相对应的目标压缩比进行比较,并且可以基于比较结果来写入压缩数据或写入数据。
例如,参照图6,当构成压缩数据Comp_DATA 2的多个块(例如,两个块等)中的第一块的真实压缩比为60%并且高于50%的目标压缩比时,区管理电路310可将压缩前数据DATA 2中的与第一块相对应的多个块写入到区中。此外,当构成压缩数据Comp_DATA 2的第二块的真实压缩比为50%并且等于50%的目标压缩比时,区管理电路310可以将第二块写入区中,等等。
如上所述,区管理电路310可以基于每个块的真实压缩比来确定要写入的数据,并且因此可以将经压缩的数据和未被压缩的数据写入区中。因此,为了便于管理,区管理电路310可以改变多条数据的顺序以将多条数据划分为经压缩的数据和未被压缩的数据,并且可以将经压缩的数据和未被压缩的数据写入区中。
图8是示出根据至少一个示例实施例的更新写入指针的操作的概念图。详细地,图8是示出通过使用图1和图2的区管理电路310来更新写入指针的操作的示图。
参照图4至图8,当完成多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2的写入时,区管理电路310可以更新多个区的多个写入指针,例如WP1、WP2和WP3等。例如,区管理电路310可以将写入指针WP1更新为新的写入指针WP1',以便指示第一区Zone 1的写入压缩数据Comp_DATA 0的最后存储位置。此外,区管理电路310可以将写入指针WP2更新为新的写入指针WP2',以便指示第二区Zone 2的写入压缩数据Comp_DATA 1的最后存储位置。此外,区管理电路310可以将写入指针WP3更新为新的写入指针WP3',以便指示第三区Zone 3的写入压缩数据Comp_DATA 2的最后存储位置。
图9是示出根据至少一个示例实施例的传送压缩信息的操作的概念图。详细地,图9是示出通过图1和图2的主机100的完成队列CQ来传送压缩信息的操作的示图。当区管理电路310完成根据主机100的请求的写入操作时,区管理电路310可以通知主机100的完成队列CQ命令完成。这里,完成队列CQ可以存储与主机100的命令相对应的操作的处理结果。
参照图4至图9,基于从主机100接收的多个命令CMD 0、CMD 1和CMD 2,根据至少一个示例实施例的区管理电路310可以将多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2写入NVM 400中,并且可以将压缩信息作为写入操作的处理结果存储在主机100的完成队列CQ中。这里,压缩信息可以指代与多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2等中的每一条的大小相关联的信息。此外,主机100可以基于压缩信息来管理多个区(例如,第一区至第三区)Zone 1、Zone 2和Zone 3等中的每一个的容量。
在至少一个示例实施例中,与压缩数据的大小相关联的信息可以包括写入指针WP1、WP2和WP3以及在多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2被写入之后多个区的更新后的写入指针WP1'、WP2'和WP3'。也就是说,区管理电路310可以将写入前写入指针(例如,WP1、WP2和WP3等)以及更新后的写入指针(例如,WP1'、WP2'和WP3'等)作为基于命令CMD 0、CMD 1和CMD 2的写入操作的处理结果存储在主机100的完成队列CQ中。此外,主机100可以通过使用存储在完成队列CQ中的写入前写入指针WP1、WP2和WP3与更新后的写入指针WP1'、WP2'和WP3'之间的差来计算多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2的大小,并且可以基于计算出的大小来管理多个区Zone 1、Zone 2和Zone 3的容量。
例如,参照图9,区管理电路310可以将第一区Zone 1的写入指针WP1和WP1'作为基于命令CMD 0的写入操作的处理结果存储在主机100的完成队列CQ中。此外,区管理电路310可以将第二区Zone 2的写入指针WP2和WP2'作为基于命令CMD 1的写入操作的处理结果存储在主机100的完成队列CQ中。区管理电路310可以将第三区Zone 3的写入指针WP3和WP3'作为基于命令CMD 2的写入操作的处理结果存储在主机100的完成队列CQ中。
在可修改的实施例中,区管理电路310可以将多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2的大小存储在主机100的完成队列CQ中。也就是说,区管理电路310可以通过使用写入前写入指针WP1、WP2和WP3与更新后的写入指针WP1'、WP2'和WP3'之间的差(例如,存储器位置差)来计算多条压缩数据Comp_DATA 0、Comp_DATA 1和Comp_DATA 2的大小,并且可以将计算出的大小存储在完成队列CQ中。此外,主机100可以基于存储在完成队列CQ中的大小来管理多个区Zone 1、Zone 2和Zone 3的容量。
图10是示出根据至少一个示例实施例的映射表MT的图。
参照图10,根据至少一个示例实施例的映射表MT可以包括压缩的存在(COMP)以及关于逻辑地址LBA、起始物理地址Start PPN和结束物理地址Finish PPN的映射的映射信息。
起始物理地址Start PPN和结束物理地址Finish PPN可以分别指代与存储器的存储数据的区域的起始位置相对应的物理地址和与存储器的该区域的最后位置相对应的物理地址。映射表MT可以存储在NVM 400中,然后可以由控制器300加载到缓冲器(未示出)或工作存储器(未示出)中,例如DRAM等。压缩的存在可以表示数据是否被压缩/解压缩电路320压缩,或者可以表示未被压缩的原始数据。
映射表MT可以基于压缩/解压缩电路320的压缩单位而不同。详细地,在压缩/解压缩电路320以块单位压缩数据的情况下,映射表MT可以包括用于每个块的映射信息。此外,在压缩/解压缩电路320基于写入命令单位执行压缩的情况下,映射表MT可以包括用于每个写入命令的映射信息等。
当从主机100接收到读取请求时,区管理电路310可以识别读取请求中包括的逻辑地址LBA,参照映射表MT识别各自对应于所识别的逻辑地址LBA(和/或逻辑地址范围)的起始物理地址Start PPN和结束物理地址Finish PPN,并且基于所识别的物理地址读取数据。此外,区管理电路310可以通过使用区管理表ZMT来识别与读取请求相对应的区的压缩方法。此外,区管理电路310可以将读取的数据和关于所识别的压缩方法的信息传送到压缩/解压缩电路320以请求解压缩。
此外,压缩/解压缩电路320可以根据区管理电路310的请求,基于所传送的关于所识别的压缩方法的信息,对接收到的数据进行解压缩。例如,当从区管理电路310接收到读取的数据和关于75%的压缩比的信息(例如,对应于从其读取数据的区)时,压缩/解压缩电路320可以对以75%的压缩比进行了压缩的读取的数据进行解压缩以具有压缩前大小(例如,规格)。
当存储在读取请求中包括的逻辑地址LBA处的数据未被压缩,例如在映射表MT中COMP被描述为N时,区管理电路310可以将读取的数据直接传送给主机100,但是示例实施例不限于此。
图11是示出根据至少一个示例实施例的在主机、控制器和非易失性存储器之间执行的写入操作的流程图。详细地,图11是示出由图1的主机100、控制器300和NVM 400执行的写入操作的示例的流程图。
参照图1和图11,在操作S110中,主机100可将数据DATA和请求写入操作的命令CMD传送到控制器300。此外,在操作S120中,控制器300可基于所传送的命令CMD中包括的逻辑地址来识别将写入数据DATA的目标区。此外,在操作S130中,控制器300可根据与目标区相对应的压缩方法来压缩数据DATA,以生成压缩数据Comp_DATA等。
此外,在操作S140中,控制器300可以将压缩数据Comp_DATA和用于控制压缩数据Comp_DATA的写入的控制命令CTRL传送到NVM 400。详细地,控制器300可以识别表示目标区的数据最后被写入(例如,最终被写入、最近被写入等)的存储位置的写入指针,并且可以将用于控制在写入指针的下一存储位置处写入压缩数据Comp_DATA的控制命令CTRL传送到NVM 400,但是示例实施例不限于此。此外,在操作S150中,NVM 400可以根据控制命令CTRL将所传送的压缩数据Comp_DATA存储在目标区的下一存储位置处。此外,当存储完成时,在操作S160中,NVM 400可以将表示存储完成的响应信号Response传送到控制器300。
根据一些示例实施例,当压缩数据Comp_DATA的真实压缩比高于与目标区相对应的压缩比时,控制器300可以将从主机100接收的数据DATA传送到NVM 400。此外,NVM 400可以将所传送的数据DATA存储在目标区的下一存储位置处等。
此外,当从NMV 400接收到响应信号Response时,在操作S 170中,控制器300可以生成关于写入指针的信息Info_WP。详细地,控制器300可以生成关于这样的写入指针的信息Info_WP:该写入指针包括在压缩数据Comp_DATA被写入之前的目标区的写入指针(例如,初始写入指针等)和在压缩数据Comp_DATA被写入之后的目标区的写入指针(例如,更新后的写入指针等)。此外,在操作S 180中,控制器300可将与命令CMD相对应的响应信号Response连同所生成的关于写入指针的信息Info_WP一起传送到主机100。详细地,控制器300可以将关于写入指针的信息Info_WP存储在主机100的完成队列CQ中,并且可以传送对应于命令CMD的响应信号Response等。
图12是示出根据至少一个示例实施例的在区管理电路、压缩/解压缩电路和非易失性存储器之间执行的写入操作的流程图。详细地,图12是示出由图1的区管理电路310、压缩/解压缩电路320和NVM 400执行的写入操作的示例的流程图。
参照图1和图12,在操作S210中,区管理电路310可以从主机100接收数据DATA和请求写入操作的命令CMD。此外,在操作S215中,区管理电路310可以基于接收到的命令CMD中包括的逻辑地址来识别要写入数据DATA的目标区,等等。
此外,在操作S220中,区管理电路310可以基于与目标区相对应的压缩方法将数据DATA和请求数据DATA的压缩的请求信号REQ传送到压缩/解压缩电路320。例如,区管理电路310可以参照包括关于多个区410-1至410-n中的每一个的压缩方法的信息的区管理表ZMT,来识别与目标区相对应的压缩方法。此外,区管理电路310可以基于所识别的压缩方法,将数据DATA和请求数据DATA的压缩的压缩请求REQ传送到压缩/解压缩电路320,等等。
此外,在操作S225中,压缩/解压缩电路320可以根据区管理电路310的压缩请求REQ,基于接收到的关于压缩方法的信息来压缩数据DATA。此外,在操作S230中,压缩/解压缩电路320可以将通过压缩生成的压缩数据Comp_DATA传送到区管理电路310。
此外,在操作S235中,区管理电路310可以识别表示目标区的最后写入数据的存储位置的写入指针WP。此外,在操作S240中,区管理电路310可以向NVM 400传送压缩数据Comp_DATA和用于允许在所识别的写入指针WP的下一存储位置处写入压缩数据Comp_DATA的控制信号CTRL(例如,指令、命令等)。
此外,在操作S245中,NVM 400可以根据控制命令CTRL将所传送的压缩数据Comp_DATA存储在目标区的下一存储位置处。此外,当存储完成时,在操作S250中,NVM 400可以将表示存储完成的响应信号Response传送到区管理电路310。
根据一些示例实施例,当压缩数据Comp_DATA的真实压缩比高于与目标区相对应的压缩比时,区管理电路310可以将从主机100接收的数据DATA传送到NVM 400。此外,NVM400可以将所传送的数据DATA存储在目标区的下一存储位置处。
此外,当从NMV 400接收到响应信号Response时,在操作S255中,区管理电路310可以生成关于写入指针的信息Info_WP。例如,区管理电路310可以生成关于这样的写入指针的信息Info_WP:该写入指针包括在压缩数据Comp_DATA被写入之前的目标区的写入指针(例如,初始写入指针等)和在压缩数据Comp_DATA被写入之后的目标区的写入指针(例如,更新后的写入指针等)。此外,在操作S260中,区管理电路310可以将所生成的关于(一个或多个)写入指针的信息Info_WP(例如,关于和/或基于初始写入指针和更新后的写入指针的信息等)传送到主机100。
图13是示出根据至少一个示例实施例的在主机、控制器和非易失性存储器之间执行的读取操作的流程图。详细地,图13是示出由图1的主机100、控制器300和NVM 400执行的读取操作的示例的流程图。
参照图1和图13,在操作S310中,主机100可将请求读取操作的命令CMD传送到控制器300等。此外,在操作S320中,控制器300可基于所传送的命令CMD中包括的逻辑地址来识别将从其读取数据的目标区。此外,在操作S330中,控制器300可识别与逻辑地址和/或目标数据大小相对应的物理地址。详细地,控制器300可以通过使用映射表MT来识别各自与逻辑地址(和/或逻辑地址范围)相对应的起始物理地址Start PPN和结束物理地址Finish PPN,但是不限于此。
此外,在操作S340中,控制器300可以将控制读取操作的控制命令CTRL传送到NVM400。例如,控制器300可以基于各自表示存储用于请求读取的数据的位置的起始物理地址Start PPN和结束物理地址Finish PPN,将控制读取操作的控制命令CTRL传送到NVM 400,但是示例实施例不限于此,并且例如,控制器300可以将起始物理地址Start PPN和数据长度/数据大小信息传送到NVM 400等。此外,在操作S350中,NVM 400可以根据控制命令CTRL从目标区读取数据。此外,在操作S360中,NVM 400可以将表示读取完成的响应信号Response连同读取的数据DATA一起传送到控制器300。
此外,在操作S370中,控制器300可以解压缩读取的数据DATA。例如,控制器300可以识别与目标区相对应的压缩方法,并且可以通过使用与所识别的与目标区相对应的压缩方法相对应的解压缩方法来解压缩读取的数据DATA。此外,在操作S380中,控制器300可将表示读取完成的响应信号Response连同解压缩数据Decomp_DATA一起传送到主机100。
根据一些示例实施例,控制器300可以识别读取的数据DATA是否被压缩,并且当读取的数据DATA未被压缩时,控制器300可将读取的数据DATA立即传送到主机100,但是示例实施例不限于此。
图14是示出根据至少一个示例实施例的在区管理电路、压缩/解压缩电路和非易失性存储器之间执行的读取操作的流程图。详细地,图14是示出由图1的区管理电路310、压缩/解压缩电路320和NVM 400执行的读取操作的示例的流程图。
参照图1和图14,在操作S410中,区管理电路310可以从主机100接收请求读取操作的命令CMD。此外,在操作S415中,区管理电路310可以基于接收到的命令CMD中包括的逻辑地址(和/或逻辑地址范围、数据大小信息等)来识别要从其读取数据的目标区。此外,在操作S420中,区管理电路310可以识别与逻辑地址相对应的物理地址。详细地,区管理电路310可以通过使用映射表MT来识别各自与逻辑地址(和/或逻辑地址范围等)相对应的起始物理地址Start PPN和结束物理地址Finish PPN。
此外,在操作S425中,区管理电路310可以将控制读取操作的控制命令CTRL传送到NVM 400。详细地,区管理电路310可以基于各自表示存储用于请求读取的数据的位置的起始物理地址Start PPN和结束物理地址Finish PPN,将控制读取操作的控制命令CTRL传送到NVM 400,等等。此外,在操作S430中,NVM 400可以根据控制命令CTRL从目标区读取数据。此外,在操作S435中,NVM 400可以将表示读取完成的响应信号Response连同读取的数据DATA等一起传送到区管理电路310。
此外,在操作S440中,区管理电路310可以将请求解压缩的解压缩请求REQ连同读取的数据DATA一起传送到压缩/解压缩电路320。例如,区管理电路310可以参照区管理表ZMT来识别与目标区相对应的压缩方法。此外,区管理电路310可以将请求对读取的数据DATA解压缩的解压缩请求REQ连同读取的数据DATA和关于目标区的压缩方法的信息等一起传送到压缩/解压缩电路320。
此外,在操作S445中,压缩/解压缩电路320可以根据区管理电路310的解压缩请求REQ,基于接收到的关于的压缩方法的信息来解压缩读取的数据DATA。此外,在操作S450中,压缩/解压缩电路320可以将通过解压缩生成的解压缩后的数据Decomp_DATA传送到区管理电路310。此外,在操作S455中,区管理电路310可以将解压缩后的数据Decomp_DATA传送到主机100,但是示例实施例不限于此。
根据一些示例实施例,区管理电路310可以识别读取的数据DATA是否被压缩,并且当读取的数据DATA未被压缩时,区管理电路310可以将读取的数据DATA直接传送到主机100而不经过压缩/解压缩电路320,但是示例实施例不限于此。
图15是示出根据至少一个示例实施例的存储装置的操作方法的流程图。详细地,图15是示出图1的存储装置200的写入操作的示例的流程图。根据至少一个示例实施例的存储装置的写入操作的至少一部分可以由图1的控制器300执行。
参照图1和图15,首先,在操作S510中,存储装置200可从主机接收写入请求。NVM400的存储空间可以基于写入数据的属性(例如,基于和/或对应于写入数据的压缩属性等)被设置为多个区,并且写入请求可以包括多个区中的目标区(例如,与目标区相关联、对应于目标区等)的逻辑地址。此外,在操作S520中,存储装置200可以基于逻辑地址在多个区中识别目标区(例如,存储装置200通过确定逻辑地址被包括在哪个区中来基于逻辑地址确定写入请求的目标区,等等)。此外,在操作S530中,存储装置200可基于与目标区相对应的压缩方法来压缩写入数据。此外,在操作S540中,存储装置200可将经压缩的写入数据顺序地写入目标区中。详细地,存储装置200可以从目标区中的数据最后被写入(例如,最近被写入等)的存储位置的下一存储位置起顺序地写入经压缩的写入数据。当经压缩的写入数据的真实压缩比高于与目标区相对应的压缩比时,存储装置200可以将接收到的写入数据(例如,未被压缩的写入数据和/或原始写入数据等)写入目标区中,但是示例实施例不限于此。
如上所述,根据至少一个示例实施例的存储装置200可以基于写入在多个区中的每个区中的数据的属性来单独地设置压缩程度,因此,可以适当地调整数据输入/输出延迟和存储装置的空间效率之间的折衷。
图16是示出根据至少一个示例实施例的控制器300的配置的框图。详细地,图16是示出图1的控制器300的配置的框图。
参照图16,控制器300可以包括至少一个处理器340(例如,处理电路等)、存储器350、主机接口360、NVM接口370、和/或缓冲器380,并且这些元件可以通过至少一条总线彼此通信,但是示例实施例不限于此,并且例如,控制器300可以包括更多或更少数量的构成组件。
处理器340可以包括中央处理单元(CPU)或微处理器,并且可以控制控制器300的整体操作。在至少一个示例实施例中,处理器340可以是处理电路,其可以包括:诸如逻辑电路的硬件;硬件/软件组合,诸如执行软件和/或执行任何指令集的至少一个处理器核;或其组合。例如,处理器340更具体地可以包括但不限于:至少一个多核处理器(例如,双核处理器、四核处理器等)、现场可编程门阵列(FPGA)、可编程逻辑单元、专用集成电路(ASIC)、片上系统(SOC)、知识产权(IP)块等。在至少一个示例实施例中,处理器340可以控制与从主机HOST接收的主机命令相关联的整体操作。
存储器350可以基于处理器340的控制来操作,并且可以用作工作存储器、缓冲存储器、高速缓冲存储器等。例如,存储器350可以被实施为易失性存储器(例如,DRAM或静态随机存取存储器(SRAM))或者NVM(例如,相变随机存取存储器(PRAM)或闪存)等。
根据至少一个示例实施例,区管理电路310和/或压缩/解压缩电路320的所讨论的功能可以被实施为固件和/或软件(例如,计算机可读指令等),并且可以被加载到存储器350中,以由处理器340执行和/或由单独的处理电路执行等。例如,区管理电路310和/或压缩/解压缩电路320的功能可以在闪存转换层(FTL)中实施,并且可以被加载到存储器350中。然而,示例实施例不限于此,并且区管理电路310和/或压缩/解压缩电路320可以被实施为硬件。上面参照图1至图15描述的操作可以由处理器340通过使用区管理电路310和/或压缩/解压缩电路320来执行。
主机接口360可以提供主机HOST与控制器300之间的接口,并且例如,可以提供基于通用串行总线(USB)、多媒体卡(MMC)、PCI快速(PIC-E)、高级技术附件(ATA)、串行AT附件(SATA)、并行AT附件(PATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、增强型小型磁盘接口(ESDI)、集成驱动电子装置(IDE)等的接口。NVM接口370可以提供控制器300和NVM之间的接口。
缓冲器380可以临时存储从主机HOST接收的写入数据。区管理电路310可以识别从压缩/解压缩电路320接收的压缩数据的压缩比,并且可以确定所识别的压缩比是否高于与要存储压缩数据的区相对应的压缩比。例如,当所识别的压缩比高于与要存储压缩数据的区相对应的压缩比时,区管理电路310可从缓冲器380读取与压缩数据相对应的原始数据,并且可以将读取的原始数据写入相对应的区中,但是示例实施例不限于此。
图17是示出根据至少一个示例实施例的包括服务器系统的网络系统1000的框图。网络系统1000可以包括至少一个服务器系统1010和/或经由至少一个网络1020与服务器系统1010通信的多个终端1030_1至1030_n,但是示例实施例不限于此。服务器系统1010可以包括服务器1011和固态驱动器(SSD)1012等。在这种情况下,SSD 1012可以对应于上述根据至少一个示例实施例的存储装置200。在一些示例实施例中,可以通过使用以上参照图1至图16描述的至少一个示例实施例来实施SSD 1012。
尽管已经参照本发明构思的示例实施例具体示出和描述了本发明构思的各种示例实施例,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可以在各种示例实施例中进行形式和细节上的各种改变。

Claims (8)

1.一种存储装置,包括:
非易失性存储器,其包括顺序地存储数据的多个区;和
控制器,其被配置为:
当从主机接收第一写入命令和第一数据时,基于包括在所述第一写入命令中的第一逻辑地址来识别所述多个区中的第一区,
根据与所述第一区相对应的压缩方法来压缩所述第一数据,
将经压缩的第一数据顺序地写入到所述第一区,
所述控制器被配置为:识别表示所述第一区的最后存储位置的写入指针;
基于所识别的写入指针从所述第一区的最后存储位置的下一存储位置起顺序地写入经压缩的第一数据,
在写入经压缩的第一数据之后,更新所述写入指针,并且
将关于更新前的写入指针的信息和关于更新后的写入指针的信息传送到所述主机,
其中,所述多个区是由所述控制器基于将被写入到所述存储装置上的预测的写入访问的数量来设置的。
2.根据权利要求1所述的存储装置,其中,所述控制器被配置为:
在顺序地写入经压缩的第一数据之后,将关于经压缩的第一数据的大小的信息传送到所述主机。
3.一种存储系统,包括:
主机;
存储装置,其包括非易失性存储器和控制器,所述非易失性存储器包括顺序地存储数据的多个区,基于将被写入到所述存储装置上的预测的写入访问的数量来设置所述多个区,并且所述控制器被配置为控制所述非易失性存储器;
所述主机被配置为将写入数据和包括逻辑地址的写入命令传送到所述存储装置;并且
所述存储装置被配置为:
响应于来自所述主机的所述写入命令,基于所述逻辑地址来识别所述多个区中的第一区,
根据与所述第一区相对应的压缩方法来压缩所述写入数据,
识别表示所述第一区的最后存储位置的写入指针,
基于所识别的写入指针从所述第一区的最后存储位置的下一存储位置起顺序地写入经压缩的第一数据,
在写入经压缩的第一数据之后,更新所述写入指针,并且
将关于更新前的写入指针的信息和关于更新后的写入指针的信息传送到所述主机。
4.根据权利要求3所述的存储系统,其中
所述主机被配置为将用于设置所述多个区的管理命令和与所述多个区中的每一个相对应的压缩方法传送到所述存储装置;并且
所述存储装置被配置为基于从所述主机接收到的管理命令来设置所述非易失性存储器上的所述多个区以及设置与所述多个区中的每一个相对应的所述压缩方法。
5.根据权利要求4所述的存储系统,其中,所述主机被配置为基于将被写入到所述存储装置上的预测的写入访问的数量来生成用于设置所述多个区的所述管理命令。
6.根据权利要求5所述的存储系统,其中,所述主机被配置为:
确定所述写入数据的预测的写入访问的数量;
基于所确定的预测的写入访问的数量从所述多个区中选择所述第一区;以及
生成包括所述第一区的逻辑地址的写入命令。
7.一种存储装置的操作方法,所述存储装置包括非易失性存储器,所述非易失性存储器包括顺序地存储数据的多个区,基于将被写入到所述存储装置上的预测的写入访问的数量来设置所述多个区,所述操作方法包括:
从主机接收第一写入命令和第一数据;
基于所述第一写入命令中包括的第一逻辑地址来识别所述多个区中的第一区;
根据与所述第一区相对应的压缩方法来压缩所述第一数据;
识别表示所述第一区的最后存储位置的写入指针;
基于所识别的写入指针从所述第一区的最后存储位置的下一存储位置起顺序地写入经压缩的第一数据;
在写入经压缩的第一数据之后,更新所述写入指针;并且
将关于更新前的写入指针的信息和关于更新后的写入指针的信息传送到所述主机。
8.根据权利要求7所述的操作方法,还包括:
存储映射信息,所述映射信息与所述第一逻辑地址到经压缩的第一数据被写入的存储位置的第一起始物理地址和第一结束物理地址的映射有关。
CN202110191767.7A 2020-02-20 2021-02-19 存储装置、存储系统、及其操作方法 Active CN113282234B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200021033A KR102267477B1 (ko) 2020-02-20 2020-02-20 스토리지 장치 및 이의 동작 방법
KR10-2020-0021033 2020-02-20

Publications (2)

Publication Number Publication Date
CN113282234A CN113282234A (zh) 2021-08-20
CN113282234B true CN113282234B (zh) 2022-08-05

Family

ID=74103888

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110191767.7A Active CN113282234B (zh) 2020-02-20 2021-02-19 存储装置、存储系统、及其操作方法

Country Status (4)

Country Link
US (3) US11544006B2 (zh)
EP (1) EP3869343B1 (zh)
KR (1) KR102267477B1 (zh)
CN (1) CN113282234B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11481115B2 (en) * 2020-08-17 2022-10-25 Western Digital Technologies, Inc. Host-managed hardware compression with zoned namespaces
US20220164146A1 (en) * 2020-11-25 2022-05-26 Hitachi, Ltd. Storage system and control method for storage system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843753A (zh) * 2015-02-02 2016-08-10 Hgst荷兰公司 用于硬盘驱动器的逻辑块地址映射

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488433A (en) * 1993-04-21 1996-01-30 Kinya Washino Dual compression format digital video production system
US5537658A (en) * 1995-06-07 1996-07-16 International Business Machines Corporation Distributed directory method and structure for direct access storage device (DASD) data compression
US7596657B2 (en) 2006-01-13 2009-09-29 Paul Kaler Increased storage capacity for solid state disks using data compression
JP2011128792A (ja) 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
KR101649357B1 (ko) 2010-05-10 2016-08-19 삼성전자주식회사 데이터 저장 장치, 그것의 동작 방법, 그리고 그것을 포함한 스토리지 서버
US9940230B2 (en) 2010-10-22 2018-04-10 Cnex Labs, Inc. Compression and decompression of data at high speed in solid state storage
WO2012161659A1 (en) 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
KR20130031046A (ko) * 2011-09-20 2013-03-28 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
KR101862341B1 (ko) 2012-01-09 2018-05-30 삼성전자주식회사 데이터 압축 기능을 갖는 데이터 저장 장치
US9128820B1 (en) 2012-06-18 2015-09-08 Western Digital Technologies, Inc. File management among different zones of storage media
US20140281155A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Storage device assisted data de-duplication
KR102088403B1 (ko) * 2013-08-08 2020-03-13 삼성전자 주식회사 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법
JP6443794B2 (ja) * 2013-08-16 2018-12-26 エルエスアイ コーポレーション ホストとコントローラとの間でパーティション化された変換レイヤ
US9229876B2 (en) 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US9418699B1 (en) * 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
WO2016105241A1 (en) 2014-12-23 2016-06-30 Emc Corporation Selective compression in data storage systems
US10360144B2 (en) 2015-02-27 2019-07-23 Hitachi, Ltd. Storage apparatus and non-volatile memory device including a controller to selectively compress data based on an update frequency level
US10496280B2 (en) 2015-09-25 2019-12-03 Seagate Technology Llc Compression sampling in tiered storage
JP6553566B2 (ja) 2016-09-23 2019-07-31 東芝メモリ株式会社 メモリシステムおよび制御方法
WO2018083857A1 (ja) * 2016-11-07 2018-05-11 京セラドキュメントソリューションズ株式会社 情報処理装置及び情報処理方法
US10642532B2 (en) * 2017-02-28 2020-05-05 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network
JP6785204B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
KR102549545B1 (ko) 2018-03-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10963394B2 (en) 2018-04-16 2021-03-30 Samsung Electronics Co., Ltd. System and method for optimizing performance of a solid-state drive using a deep neural network
US10642502B2 (en) 2018-06-29 2020-05-05 Western Digital Technologies, Inc. System and method for prediction of read commands to non-sequential data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843753A (zh) * 2015-02-02 2016-08-10 Hgst荷兰公司 用于硬盘驱动器的逻辑块地址映射

Also Published As

Publication number Publication date
US11842082B2 (en) 2023-12-12
US20240061618A1 (en) 2024-02-22
US20230138155A1 (en) 2023-05-04
US11544006B2 (en) 2023-01-03
EP3869343B1 (en) 2023-11-15
US20210263682A1 (en) 2021-08-26
CN113282234A (zh) 2021-08-20
EP3869343A1 (en) 2021-08-25
KR102267477B1 (ko) 2021-06-22

Similar Documents

Publication Publication Date Title
CN108021510B (zh) 操作对多重名称空间进行管理的存储装置的方法
US9928167B2 (en) Information processing system and nonvolatile storage unit
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
US9244619B2 (en) Method of managing data storage device and data storage device
KR102553261B1 (ko) 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법
US11842082B2 (en) Storage device including a plurality of zones having separate compression ratios and operating method thereof
KR20190111406A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
WO2016135954A1 (ja) ストレージ装置および不揮発メモリデバイス
US8898414B2 (en) Storage devices and methods of driving storage devices
CN110647288A (zh) 数据储存装置及其快取分流方法
KR20210115954A (ko) 컨트롤러 및 메모리 시스템
US11210226B2 (en) Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof
CN114077389A (zh) 控制器、存储器系统以及数据处理系统
KR20210075731A (ko) 스토리지 장치 및 이의 동작 방법
US9880930B2 (en) Method for operating controller and method for operating device including the same
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
US11144380B2 (en) Memory controller and storage device including the same
CN115080457A (zh) 控制器及其操作方法
CN111158582A (zh) 存储装置和电子装置
US10572382B2 (en) Method of operating data storage device and method of operating data processing system including the same
CN114546885A (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