CN114077387A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN114077387A CN114077387A CN202110369934.2A CN202110369934A CN114077387A CN 114077387 A CN114077387 A CN 114077387A CN 202110369934 A CN202110369934 A CN 202110369934A CN 114077387 A CN114077387 A CN 114077387A
- Authority
- CN
- China
- Prior art keywords
- data
- memory device
- sequential
- stored
- logical address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本公开提供了一种存储装置及其操作方法。该存储装置可以包括:存储器装置,包括多个顺序区域以及除多个顺序区域以外的随机区域,多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;缓冲存储器装置,被配置为临时存储与从主机提供的写入请求相对应的写入数据;以及操作控制器,被配置为通过将虚拟数据添加到大小小于存储器装置的编程单位大小的写入数据来生成组合数据,该虚拟数据的大小对应于写入数据的大小与编程单位大小之间的差值,将该组合数据存储在存储器装置中,并且将与被存储在存储器装置中的组合数据有关的组合数据信息存储在缓冲存储器装置中。
Description
相关申请的交叉引用
本申请要求于2020年8月14日向韩国知识产权局提交的、申请号为10-2020-0102788的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的各个实施例总体上涉及一种电子装置,并且更特别地,涉及一种存储装置及操作存储装置的方法。
背景技术
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置以及控制存储器装置的存储器控制器。存储器装置可以被分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置可以是仅在向其供电时才存储数据并且在供电中断时会丢失所存储的数据的存储器装置。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置可以是即使在供电中断时也可以保留所存储的数据的存储器装置。非易失性存储器装置的示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器等。
发明内容
本公开的各个实施例涉及一种具有提高的存储性能的存储装置以及操作该存储装置的方法。
本公开的实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,包括多个顺序区域以及除多个顺序区域以外的随机区域,多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;缓冲存储器装置,被配置为临时存储与从主机提供的写入请求相对应的写入数据;以及操作控制器,被配置为:通过将虚拟数据添加到大小小于存储器装置的编程单位大小的写入数据来生成组合数据,该虚拟数据的大小对应于写入数据的大小与编程单位大小之间的差值;将组合数据存储在存储器装置中;并且,将与被存储在存储器装置中的组合数据有关的组合数据信息存储在缓冲存储器装置中。
本公开的实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,包括多个顺序区域以及除多个顺序区域以外的随机区域,多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;以及存储器控制器,被配置为从主机接收写入请求并控制存储器装置,从而根据虚拟数据是否已经被存储在多个顺序区域之中与写入请求中包括的逻辑地址相对应的顺序区域中来将与写入请求相对应的写入数据的一部分存储在随机区域中。
本公开的实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,包括多个顺序区域以及除多个顺序区域以外的随机区域,多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;缓冲存储器装置,被配置为存储顺序映射表、随机映射表和组合数据信息,该顺序映射表包括关于被分别存储在多个顺序区域中的多条数据的逻辑地址的信息,该随机映射表包括关于被存储在随机区域中的数据的逻辑地址的信息,该组合数据信息包括关于多个顺序区域中存储的虚拟数据的信息;以及存储器控制器,被配置为根据从主机输入的读取请求中包括的逻辑地址是否被包括在组合数据信息中,从随机区域以及多个顺序区域之中与读取请求中包括的逻辑地址相对应的顺序区域中的至少一个中获取与该读取请求相对应的读取数据,并且将该读取数据提供到主机。
附图说明
图1是示出根据本公开的实施例的存储装置的示图。
图2是示出图1的存储器装置的示图。
图3是示出图2的存储块中的任意一个的结构的示图。
图4是用于说明根据本公开的实施例的图1的存储装置的存储区域的示图。
图5是用于说明参照图4描述的顺序区域的示图。
图6是示出根据本公开的实施例的图1的存储装置的操作的示图。
图7是示出图6的缓冲存储器装置的结构的示图。
图8A示出大小小于编程单位大小的写入数据被临时存储在写入缓冲器中的状态。
图8B示出生成组合数据的状态,在该组合数据中,与编程单位大小和写入数据的大小之间的差值相对应的虚拟数据被添加到写入数据中。
图8C示出组合数据被存储在第一顺序区域中的状态。
图8D示出在组合数据已经被存储在第一顺序区域中之后的写入指针的位置。
图9A和图9B是示出根据本公开的实施例的图1的存储装置的操作的示图。
图10是用于说明顺序区域中存储的虚拟数据的映射信息的示图。
图11是示出用于处理对数据的读取请求的过程的示图。
图12A至图12C是用于说明图7的映射信息存储装置中存储的数据的示图。
图13是示出根据本公开的实施例的图1的存储器控制器的示图。
图14是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
图15是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
图16是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
将本说明书或申请中引入的本公开的实施例中的特定结构或功能描述作为示例,以描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式来实践,并且不应被解释为限于说明书或申请中描述的实施例。
图1是示出根据本公开的实施例的存储装置50的示图。
参照图1,存储装置50可以包括存储器装置100以及控制存储器装置100的操作的存储器控制器200。存储装置50可以在诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板电脑、车载信息娱乐系统等的主机400的控制下存储数据。
根据作为用于与主机400通信的方案的主机接口,存储装置50可以被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以被实施为例如以下的各种类型的存储装置中的任意一种:固态硬盘(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡,记忆棒等。
存储装置50可以以各种类型的封装形式中的任意一种来制造。例如,存储装置50可以以诸如以下的各种类型的封装形式中的任意一种来制造:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等。
存储器装置100可以存储数据。存储器装置100响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被实施为能够存储一位数据的单层单元(SLC)、能够存储两位数据的多层单元(MLC)、能够存储三位数据的三层单元(TLC)或能够存储四位数据的四层单元(QLC)。
存储器单元阵列(未示出)可以包括多个存储块。每个存储块可以包括多个存储器单元。单个存储块可以包括多个页面。在实施例中,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可以采用诸如以下的许多可选形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)、自旋转移扭矩RAM(STT-RAM)等。在本说明书中,为了便于描述,将在存储器装置100为NAND闪速存储器的假设下进行描述。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问存储器单元阵列中的由该地址选择的区域。存储器装置100可以对由该地址选择的区域执行由命令指示的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域感测数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
存储器控制器200可以控制存储装置50的全部操作。
当向存储装置50供应电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,固件(FW)可以包括主机接口层(HIL)、闪存转换层(FTL)和闪存接口层(FIL),该主机接口层控制与主机400的通信,该闪存转换层控制主机400与存储器装置100之间的通信,该闪存接口层控制与存储器装置100的通信。
在实施例中,存储器控制器200可以从主机400接收写入数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换为指示存储器装置100中包括的存储器单元的地址的物理块地址(PBA),写入数据将被存储在该存储器单元中。在本说明书中,术语“逻辑块地址(LBA)”和“逻辑地址”可以互换使用。在本说明书中,术语“物理块地址(PBA)”和“物理地址”可以互换使用。
存储器控制器200可以控制存储器装置100,从而响应于从主机400接收的请求而在存储器装置100中执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将写入命令、物理块地址(PBA)和写入数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址(PBA)提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址(PBA)提供到存储器装置100。
在实施例中,存储器控制器200可以不考虑是否接收到来自主机400的请求而自主地生成命令、地址和数据,并且可以将它们传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供为了执行读取操作和编程操作所需的命令、地址和数据,该读取操作和编程操作涉及执行损耗均衡、读取回收、垃圾收集等。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以根据交错方案来控制至少两个存储器装置100以提高操作性能。交错方案可以是用于控制至少两个存储器装置100以使得该至少两个存储器装置100的操作彼此重叠的方案。
在本公开的实施例中,存储器控制器200可以包括操作控制器210和缓冲存储器装置220。
操作控制器210可以处理从主机400提供的写入请求和读取请求。
缓冲存储器装置220可以临时存储与从主机400提供的写入请求相对应的写入数据。可选地,缓冲存储器装置220可以临时存储响应于从主机400提供的读取请求而从存储器装置100读取的数据。
根据本公开的实施例,存储器装置100可以包括多个顺序区域,以及随机区域。多个顺序区域是存储与从主机400输入的连续逻辑地址相对应的多条数据的存储区域,并且随机区域是除多个顺序区域以外的存储区域。在实施例中,随机区域可以是存储与非连续逻辑地址相对应的多条数据的区域。
多个顺序区域可以存储分别与该多个顺序区域相对应的逻辑地址组的多条数据。在此,该逻辑地址组中的每一个可以包括连续的逻辑地址。
每个顺序区域可以被称为“分区”。根据从主机400接收的请求,每个顺序区域可以具有开放状态或封闭状态。
例如,响应于从主机400提供的开放分区请求,操作控制器210可以开放相应的顺序区域。开放顺序区域可以意为生成与顺序区域相对应的逻辑地址组的映射表。
响应于从主机400提供的封闭分区请求,操作控制器210可以将相应的顺序区域的开放状态改变为封闭状态。封闭分区请求可以是指示在再次输入针对相应的顺序区域的开放分区请求之前将不输入将数据存储在该相应的顺序区域中的写入请求的请求。
在实施例中,缓冲存储器装置220可以存储包括多个顺序区域的映射信息的顺序映射表。顺序映射表可以包括写入指针位置信息,该写入指针位置信息指示将被存储在各个顺序区域中的多条数据的逻辑地址之中当前将被存储的数据的逻辑地址的位置。也就是说,从主机400提供的写入请求中的逻辑地址可以是相应的逻辑地址所属的顺序区域的写入指针位置所指示的逻辑地址。写入请求可以包括写入数据的逻辑地址以及关于写入数据的逻辑地址的长度的信息。在处理写入请求之后,操作控制器210可以将写入指针位置信息改变为与通过将逻辑地址的长度添加到先前的写入指针位置而确定的写入指针位置相对应的信息。因此,写入指针位置信息可以与从主机400提供的写入数据的逻辑地址之中的起始逻辑地址同步。
在实施例中,响应于从主机400提供的重置分区请求,操作控制器210可以将顺序区域的写入指针位置信息改变为与顺序区域相对应的逻辑地址之中的起始逻辑地址。
操作控制器210可以控制缓冲存储器装置220和存储器装置100,从而将与从主机400提供的写入请求相对应的写入数据存储在存储器装置100中。操作控制器210可以以存储器装置100的编程单位的大小向存储器装置100提供写入数据。编程单位大小可以是可以通过执行一次编程操作而存储在存储器装置100中的写入数据的大小。
当缓冲存储器装置220中存储的写入数据的大小小于编程单位大小时,操作控制器210可以不将写入数据提供到存储器装置100。当缓冲存储器装置220中存储的写入数据的大小达到编程单位大小时,操作控制器210可以将写入数据提供到存储器装置100。
在大小小于编程单位大小的写入数据被存储在缓冲存储器装置220中的状态下,操作控制器210可能从主机400接收清除请求以将缓冲存储器装置220中存储的写入数据提供到存储器装置100。在这种情况下,可能发生以下情况:大小小于编程单位大小的写入数据应当被存储在存储器装置100的顺序区域中。
可选地,在大小小于编程单位大小的写入数据被存储在缓冲存储器装置220中的状态下,可能从主机400输入针对相应顺序区域的封闭分区请求。在这种情况下,可能发生以下情况:大小小于编程单位大小的写入数据应当被存储在相应的顺序区域中。
可选地,在大小小于编程单位大小的写入数据被存储在缓冲存储器装置220中的状态下,存储装置50可能进入低功耗模式。在这种情况下,可能发生以下情况:大小小于编程单位大小的写入数据应当被存储在存储器装置100的顺序区域中。
当缓冲存储器装置220中存储的写入数据的大小小于存储器装置100的编程单位大小时,操作控制器210可以通过将虚拟数据添加到该写入数据来生成组合数据,该虚拟数据的大小对应于写入数据的大小与编程单位大小之间的差值。然后,操作控制器210可以控制缓冲存储器装置220和存储器装置100,从而将该组合数据存储在存储器装置100中。在这种情况下,主机400所识别的写入指针的位置可以与实际的写入指针的位置不同。
进一步地,随着更频繁地发生组合数据被存储在顺序区域中的情况,存储器装置100中的顺序区域的实际数据存储空间可能会减少,从而使存储装置50的整体性能劣化。
本公开的实施例提供了以下方法:当将组合数据存储在顺序区域中时,将随后从主机400提供的写入数据的一部分存储在存储器装置100中的随机区域中,从而防止存储装置50的性能劣化。
主机400可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)、负载减小的DIMM(LRDIMM)通信方法等。
图2是示出图1的存储器装置100的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、电压生成器120、地址解码器130、输入/输出(I/O)电路140和控制逻辑150。
存储器单元阵列110包括多个存储块BLK1至BLKi。多个存储块BLK1至BLKi可以通过行线RL联接到地址解码器130。多个存储块BLK1至BLKi可以通过列线CL联接到输入/输出电路140。在实施例中,行线RL可以包括字线、源极选择线和漏极选择线。在实施例中,列线CL可以包括位线。
存储块BLK1至BLKi中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。在多个存储器单元之中,联接到相同字线的存储器单元可以被定义为一个物理页面。也就是说,存储器单元阵列110可以包括多个物理页面。存储器装置100的存储器单元中的每一个可以被实施为单层单元(SLC)、多层单元(MLC)、三层单元(TLC)或四层单元(QLC)。
在实施例中,电压生成器120、地址解码器130和输入/输出电路140可以被统称为外围电路。外围电路可以在控制逻辑150的控制下驱动存储器单元阵列110。外围电路可以驱动存储器单元阵列110,从而执行编程操作、读取操作和擦除操作。
电压生成器120可以使用被供应到存储器装置100的外部电源电压来生成多个操作电压。电压生成器120可以在控制逻辑150的控制下操作。
在实施例中,电压生成器120可以通过调节外部电源电压来生成内部电源电压。由电压生成器120生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器120可以使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器120可以生成存储器装置100所需的各种电压。例如,电压生成器120可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
电压生成器120可以包括用于接收内部电源电压以便生成具有各种电压电平的多个操作电压的多个泵浦电容器,并且可以在控制逻辑150的控制下,通过选择性地启用多个泵浦电容器来生成多个操作电压。
所生成的操作电压可以通过地址解码器130供应到存储器单元阵列110。
地址解码器130通过行线RL联接到存储器单元阵列110。地址解码器130可以在控制逻辑150的控制下操作。地址解码器130从控制逻辑150接收地址ADDR。地址解码器130可以对接收到的地址ADDR之中的块地址进行解码。地址解码器130可以根据解码后的块地址来选择存储块BLK1至BLKi中的至少一个。地址解码器130可以对接收到的地址ADDR之中的行地址进行解码。地址解码器130可以根据解码后的行地址来选择所选择存储块的字线中的至少一个。在实施例中,地址解码器130可以对接收到的地址ADDR之中的列地址进行解码。地址解码器130可以根据解码后的列地址将输入/输出电路140联接到存储器单元阵列110。
根据本公开的实施例,在读取操作期间,地址解码器130可以将读取电压施加到所选择的字线并且将读取通过电压施加到未选择的字线,该读取通过电压的电平高于读取电压的电平。
在实施例中,地址解码器130可以包括诸如行解码器、列解码器和地址缓冲器的组件。
输入/输出(I/O)电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线联接到存储器单元阵列110。在编程操作期间,可以基于多个页面缓冲器中存储的写入数据将数据存储在所选择的存储器单元中。
在读取操作期间,可以通过位线感测所选择的存储器单元中存储的数据,并且可以将感测到的数据存储在页面缓冲器中。
控制逻辑150可以控制地址解码器130、电压生成器120和输入/输出电路140。控制逻辑150可以响应于从外部装置传送的命令CMD而操作。控制逻辑150可以响应于命令CMD和地址ADDR,通过生成各种类型的信号来控制外围电路。
图3是示出图2的存储块中的任意一个的结构的示图。
图3示出指示图2的存储块BLK1至BLKi中的任意一个的存储块BLKi的结构。
参照图3,彼此平行布置的多个字线可以联接在第一选择线与第二选择线之间。此处,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。详细地,存储块BLKi可以包括联接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn可以分别联接到串ST,并且源极线SL可以被共同联接到串ST。串ST可以具有相同的结构,因此,将作为示例详细描述联接到第一位线BL1的第一串ST。
第一串ST可以包括在源极线SL和第一位线BL1之间彼此串联联接的源极选择晶体管SST、多个存储器单元MC1至MC16和漏极选择晶体管DST。单个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且可以包括比附图所示的存储器单元MC1至MC16更多的存储器单元。
在第一串ST中,源极选择晶体管SST的源极可以联接到源极线SL,并且漏极选择晶体管DST的漏极可以联接到第一位线BL1。存储器单元MC1至MC16可以在源极选择晶体管SST和漏极选择晶体管DST之间串联联接。
不同串ST中包括的源极选择晶体管SST的栅极可以联接到源极选择线SSL,不同串ST中包括的漏极选择晶体管DST的栅极可以联接到漏极选择线DSL,并且存储器单元MC1至MC16的栅极可以分别联接到多个字线WL1至WL16。在不同串ST中包括的存储器单元之中,联接到相同字线的一组存储器单元可以被称为“物理页面(PG)”。因此,存储块BLKi可以包括分别对应于字线WL1至WL16的多个物理页面(PG)。
一个存储器单元可以存储一位数据。该单元通常被称为“单层单元(SLC)”。在这种情况下,一个物理页面(PG)可以存储与一个逻辑页面(LPG)相对应的数据。与一个逻辑页面(LPG)相对应的数据可以包括与一个物理页面(PG)中包括的单元的数量相对应的多位数据。
一个存储器单元可以存储两位或更多位数据。在这种情况下,一个物理页面(PG)可以存储与两个或更多个逻辑页面(LPG)相对应的数据。两个或更多个逻辑页面(LPG)可以分别对应于两个或更多个数据位。
图4是用于说明根据本公开的实施例的图1的存储装置50的存储区域的示图。
参照图4,可以将存储装置50的存储区域划分为随机区域和多个顺序区域。
在图4中,假设上面参照图1描述的将由主机400提供的逻辑地址的范围是从第一逻辑地址LBA 1至第m逻辑地址LBA m。
对应于第一逻辑地址LBA1至第k逻辑地址LBA k的多条数据可以被存储在随机区域中。可以不考虑逻辑地址的顺序来提供待存储在随机区域中的数据。
对应于第(k+1)逻辑地址LBA k+1至第m逻辑地址LBA m的多条数据可以被存储在顺序区域(即,顺序区域1至顺序区域X)中。多个顺序区域可以存储分别与该多个顺序区域相对应的逻辑地址组的多条数据。在这种情况下,逻辑地址组中的每一个可以包括连续的逻辑地址。可以根据相应的逻辑地址组中包括的连续逻辑地址来提供待存储在每个顺序区域中的数据。该存储区域可以对应于图1的存储器装置100。
图5是用于说明参照图4描述的顺序区域的示图。
参照图5,顺序区域可以包括第一顺序区域Zone1至第X顺序区域ZoneX。每个顺序区域可以包括多个存储块。分配给顺序区域Zone1至ZoneX的存储块的数量可以彼此不同。可选地,分配给顺序区域Zone1至ZoneX的存储块的数量可以彼此相同。顺序区域Zone1至ZoneX可以存储分别与该顺序区域Zone1至ZoneX相对应的逻辑地址组LBA Group1至LBAGroupX的多条数据。在这种情况下,逻辑地址组LBA Group1至LBA GroupX中的每一个可以包括连续的逻辑地址。可以根据相应逻辑地址组中包括的连续逻辑地址来提供待存储在顺序区域Zone1至ZoneX中的每一个中的数据。逻辑地址组LBA Group1至LBA GroupX中的每一个包括从第(k+1)逻辑地址LBA k+1至第m逻辑地址LBA m之中选择的多个连续的逻辑地址。
图6是示出根据本公开的实施例的图1的存储装置50的操作的示图。将利用图1所示的存储装置50来描述图6的操作。
参照图6,存储器控制器200可以包括如图1所示的缓冲存储器装置220和操作控制器210。
操作控制器210可以控制缓冲存储器装置220和存储器装置100(例如,分区的存储器),从而将与从主机400提供的写入请求相对应的写入数据存储在存储器装置100中。操作控制器210可以以存储器装置100的编程单位大小向存储器装置100提供写入数据。该编程单位大小可以是可以通过执行一次编程操作而存储在存储器装置100中的写入数据的大小。
当缓冲存储器装置220中存储的写入数据的大小小于编程单位大小时,操作控制器210可以不将写入数据提供到存储器装置100。当缓冲存储器装置220中存储的写入数据的大小达到编程单位大小时,操作控制器210可以将写入数据提供到存储器装置100。
当缓冲存储器装置220中存储的写入数据的大小小于存储器装置100的编程单位大小时,操作控制器210可以通过将虚拟数据添加到写入数据来生成组合数据,该虚拟数据的大小对应于写入数据的大小与编程单位大小之间的差值。然后,操作控制器210可以控制缓冲存储器装置220和存储器装置100,从而将组合数据存储在存储器装置100中。
操作控制器210可以将与组合数据有关的信息存储在缓冲存储器装置220中,该组合数据信息指示组合数据已经被存储在存储器装置100中。
组合数据信息可以包括关于逻辑地址的信息,该逻辑地址对应于被存储在存储器装置100中的组合数据中包含的虚拟数据。可选地,组合数据信息可以包括关于存储虚拟数据的顺序区域的信息。在实施例中,组合数据信息可以进一步包括关于虚拟数据的大小的信息。在这种情况下,关于虚拟数据的大小的信息可以是关于与虚拟数据相对应的逻辑地址的长度的信息。
此后,操作控制器210可以接收后续写入请求。操作控制器210可以基于组合数据信息来确定组合数据是否已经被存储在与后续写入请求相对应的顺序区域中。当组合数据被存储在与后续写入请求中包括的逻辑地址相对应的顺序区域中时,操作控制器210可以控制存储器装置100,从而将与后续写入请求相对应的后续写入数据的一部分存储在存储器装置100的随机区域中。
详细地,操作控制器210可以控制存储器装置100,从而将作为后续写入数据的一部分的子数据存储在随机区域中,并且将除该子数据以外的其余数据与组合数据相继存储在顺序区域中。子数据的大小对应于组合数据中包含的虚拟数据的大小。对应于子数据的逻辑地址和对应于虚拟数据的逻辑地址可以彼此相同。在实施例中,该其余数据的逻辑地址可以与对应于组合数据的逻辑地址之中最后的逻辑地址连续。
缓冲存储器装置220可以存储顺序映射表,该顺序映射表包括关于各个顺序区域中存储的多条数据的逻辑地址的信息,以及包括关于待存储在各个顺序区域中的多条数据的逻辑地址的信息的写入指针位置信息。此处,写入指针位置信息可以是关于待随后存储的数据的起始逻辑地址的信息。缓冲存储器装置220可以进一步存储随机映射表,该随机映射表包括关于随机区域中存储的数据的逻辑地址的信息。
此后,操作控制器210可以从主机400接收读取请求。操作控制器210可以主要确定读取请求中包括的逻辑地址是否与组合数据信息中包含的任何逻辑地址相同。当组合数据信息中存在与待读取的数据相对应的任何逻辑地址时,与该逻辑地址相对应的数据可能被存储在随机区域中,而当组合数据信息中不存在与待读取的数据相对应的任何逻辑地址时,与该逻辑地址相对应的数据可能被存储在顺序区域中。
图7是示出根据实施例的图6的缓冲存储器装置220的结构的示图。
参照图6和图7,缓冲存储器装置220可以包括写入缓冲器221、读取缓冲器222和映射信息存储装置223。
写入缓冲器221可以临时存储待存储在存储器装置100中的数据。
在实施例中,写入缓冲器221可以包括顺序缓冲器,该顺序缓冲器临时存储待分别存储在存储器装置100中包括的多个顺序区域中的多条数据。可选地,写入缓冲器221可以包括随机缓冲器,该随机缓冲器临时存储待存储在存储器装置100中包括的随机区域中的数据。
读取缓冲器222可以在从存储器装置100读取的数据被提供到主机400之前临时存储该数据。
映射信息存储装置223可以存储顺序映射表223a、随机映射表223b和组合数据信息223c。
顺序映射表223a可以包括存储器装置100中的各个顺序区域中存储的多条数据的逻辑地址与物理地址之间的映射信息,以及包括关于待存储在各个顺序区域中的多条数据的逻辑地址的信息的写入指针位置信息。
随机映射表223b可以包括存储器装置100中的随机区域中存储的数据的逻辑地址与物理地址之间的映射信息。
组合数据信息223c可以包括关于顺序区域之中存储了包括虚拟数据的组合数据的顺序区域的信息,以及关于顺序区域中存储的虚拟数据的逻辑地址的信息。此处,关于虚拟数据的逻辑地址的信息可以包括关于虚拟数据的逻辑地址之中的起始逻辑地址以及与虚拟数据相对应的逻辑地址的长度的信息。在实施例中,组合数据信息223c可以进一步包括关于虚拟数据的大小的信息。
图8A、图8B、图8C和图8D是示出存储大小小于编程单位大小的写入数据的操作的示图。将参照图7所示的缓冲存储器装置220描述图8A、图8B、图8C和图8D所示的操作。
图8A示出大小小于编程单位大小的写入数据被临时存储在缓冲存储器装置220的写入缓冲器221中的状态。此后,可能从主机400输入清除请求。
图8B示出通过将与编程单位大小和写入数据的大小之间的差值相对应的虚拟数据添加到写入数据来生成组合数据的状态。图8C示出在编程操作期间将组合数据存储在存储器装置100的第一顺序区域Zone 1中的状态。
图8D示出在组合数据已经被存储在存储器装置100的第一顺序区域Zone1中之后的写入指针的位置。在写入数据已经被存储在第一顺序区域Zone1中之后,主机400可以将写入指针识别为第p逻辑地址LBA p。然而,因为添加了虚拟数据以使存储装置50存储与编程单位大小相对应的数据,所以在已经存储组合数据之后,写入指针的实际位置可以指示第q逻辑地址LBA q。
图9A和图9B是示出根据本公开的实施例的图1的存储装置50的操作的示图。
图9A示出以下状态:将虚拟数据添加到写入数据以生成组合数据,并且将组合数据存储在存储器装置100的顺序区域中,以便将大小小于编程单位大小的写入数据存储在顺序区域中。
图9B示出存储后续写入数据的方法。
参照图9A和图9B,存储器控制器200可以将后续写入数据的一部分存储在存储器装置100的随机区域中,并且将后续写入数据的剩余数据存储在顺序区域中。详细地,存储器控制器200可以控制存储器装置100,从而将后续写入数据中的作为该后续写入数据的一部分的子数据存储在随机区域中,并且将该后续写入数据中的作为剩余数据的其余数据与虚拟数据相继存储在顺序区域中。子数据的大小与组合数据中包括的虚拟数据的大小相同。在该实施例中,其余数据的大小可以等于编程单位大小。
图10是用于说明顺序区域中存储的虚拟数据的映射信息的示图。
参照图10,随机区域可以是存储与第k逻辑地址LBA k至第n逻辑地址LBA n相对应的数据的区域,并且顺序区域可以是存储与第(n+1)逻辑地址LBA n+1至第m逻辑地址LBA m相对应的数据的区域。
在图10中,假设组合数据被存储在顺序区域中,并且所存储的组合数据中包含的虚拟数据的逻辑地址为第p逻辑地址LBA P。因此,在后续输入以跟随组合数据中包含的写入数据的后续写入数据之中,可以将后续写入数据中的作为与虚拟数据的大小相对应的数据的子数据存储在随机区域中。
因为主机400可以将随机区域中存储的子数据的逻辑地址识别为第P逻辑地址LBAP,所以随机映射表中的子数据的逻辑地址可以为第P逻辑地址LBA P。而且,与第P逻辑地址LBA P相对应的物理地址可以为第P物理地址PBA P,该第P物理地址PBA P是随机区域中存储的该子数据的物理地址,而不是顺序区域中存储的虚拟数据的物理地址。
图11是示出用于处理对参照图9A和图9B描述的所存储数据的读取请求的过程的示图。
在图11中,假设从主机400接收对第一至第十二逻辑地址LBA 1至LBA 12的顺序读取请求。
顺序区域中存储的现有数据和先前写入数据的逻辑地址的范围是第一至第六逻辑地址LBA 1至LBA 6,并且包括先前写入数据的组合数据的虚拟数据以及随机区域中存储的后续写入数据的子数据的逻辑地址的范围是第七至第八逻辑地址LBA 7至LBA 8。进一步地,顺序区域中存储的后续写入数据的其余数据的逻辑地址的范围是第九至第十二逻辑地址LBA 9到LBA 12。
存储器装置100可以基于组合数据的组合数据信息,识别出虚拟数据的逻辑地址的范围是第七至第八逻辑地址LBA 7至LBA 8,并且与该逻辑地址LBA 7至LBA 8相对应的多条数据被存储在随机区域中。因此,当响应于读取请求而将第一至第十二逻辑地址LBA 1至LBA12的多条数据临时存储在缓冲存储器装置220的读取缓冲器222中以便向主机400提供多条数据时,存储器装置100可以从顺序区域读取与第一至第六逻辑地址LBA 1至LBA 6相对应的多条数据,从随机区域读取与第七至第八逻辑地址LBA 7至LBA 8相对应的数据,并且再次从顺序区域读取与第九至第十二逻辑地址LBA 9至LBA 12相对应的数据。
图12A至图12C是用于说明图7的映射信息存储装置223中存储的数据的示图。
图12A示出上面参照图7描述的顺序映射表223a的实施例。
顺序映射表223a可以包括存储器装置100的顺序区域的映射信息,例如,关于连续逻辑地址的信息以及关于与该连续逻辑地址相对应的物理地址的信息。图12A示出在连续逻辑地址与物理地址之间进行映射的状态。然而,实施例不限于此。在另一实施例中,顺序映射表223a可以使用连续逻辑地址之中的起始逻辑地址以及每个编程单位的逻辑地址的长度来存储关于连续逻辑地址以及与该连续逻辑地址相对应的物理地址的信息。
在实施例中,顺序映射表223a可以进一步包括写入指针位置信息,该写入指针位置信息指示待存储在每个顺序区域中的数据的逻辑地址。
图12B示出上面参照图7描述的随机映射表223b的实施例。
参照图12B,随机映射表223b可以存储存储器装置100的随机区域中存储的数据的逻辑地址与物理地址之间的映射信息。
图12C示出上面参照图7描述的组合数据信息223c的实施例。
参照图12C,组合数据信息223c可以包括关于存储器装置100的顺序区域之中存储组合数据的顺序区域Zone#的信息,以及关于顺序区域Zone#中存储的虚拟数据的逻辑地址的信息。此处,关于虚拟数据的逻辑地址的信息可以包括关于虚拟数据的起始逻辑地址以及与该虚拟数据相对应的逻辑地址的长度的信息。在实施例中,组合数据信息223c可以进一步包括关于虚拟数据的大小的信息。参照图12C,与虚拟数据相对应的逻辑地址的长度可以对应于虚拟数据的大小。
图13是示出根据实施例的存储器控制器1300的示图。图13所示的存储器控制器1300可以对应于图1所示的存储器控制器200。
参照图13,存储器控制器1300可以包括处理器1310、RAM 1320、错误校正码(ECC)电路1330、ROM 1360、主机接口1370和闪存接口1380。
处理器1310可以控制存储器控制器1300的全部操作。RAM 1320可以用作存储器控制器1300的缓冲存储器、高速缓存存储器或工作存储器。
ROM 1360可以以固件的形式存储存储器控制器1300的操作所需的各种类型的信息。
存储器控制器1300可以通过主机接口1370与外部装置(例如,图1的主机400,应用处理器等)通信。
存储器控制器1300可以通过闪存接口1380与图1的存储器装置100通信。存储器控制器1300可以通过闪存接口1380将命令CMD、地址ADDR、控制信号CTRL等传输到存储器装置100并且从存储器装置100接收数据DATA。在示例中,闪存接口1380可以包括NAND接口。
图14是示出应用了根据本公开的实施例的存储装置的存储卡系统2000的框图。
参照图14,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200与主机之间的接口。存储器控制器2100可以运行用于控制存储器装置2200的固件。存储器控制器2100可以以与上面参照图1描述的存储器控制器200相同的方式来实施。
在实施例中,存储器控制器2100可以包括诸如RAM、处理器、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定的通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以通过上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋转移扭矩磁性RAM(STT-MRAM)等。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中,以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图15是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统3000的框图。
参照图15,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
根据本公开的实施例,SSD控制器3210可以执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG而控制多个闪速存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是通过诸如以下的各种接口中的至少一种来定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。可以从主机3100向辅助电源3230供应电力PWR并可以对其充电。当来自主机3100的电力供应执行地不平稳时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以被设置在主板中并且可以向SSD 3200供应辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图16是示出应用了根据本公开的实施例的存储装置的用户系统4000的框图。
参照图16,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件,操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装,然后可以被设置为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实施为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为可移动存储介质(即,可移动驱动器),诸如存储卡或用户系统4000的外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括向应用处理器4100输入数据或指令或者向外部装置输出数据的接口。在实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可以进一步包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,提供了一种具有提高的存储性能的存储装置以及操作存储装置的方法。
Claims (20)
1.一种存储装置,包括:
存储器装置,包括多个顺序区域以及除所述多个顺序区域以外的随机区域,所述多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;
缓冲存储器装置,临时存储与从所述主机提供的写入请求相对应的写入数据;以及
操作控制器,通过将虚拟数据添加到大小小于所述存储器装置的编程单位大小的所述写入数据来生成组合数据,所述虚拟数据的大小对应于所述写入数据的大小与所述编程单位大小之间的差值;将所述组合数据存储在所述存储器装置中;以及将与被存储在所述存储器装置中的所述组合数据有关的组合数据信息存储在所述缓冲存储器装置中。
2.根据权利要求1所述的存储装置,其中:
所述多个顺序区域是存储分别对应于逻辑地址组的多条数据的存储区域,并且
所述逻辑地址组中的每一个包括连续的逻辑地址。
3.根据权利要求1所述的存储装置,其中所述缓冲存储器装置进一步存储:
顺序映射表,包括关于分别被存储在所述多个顺序区域中的多条数据的逻辑地址的信息以及写入指针位置信息,所述写入指针位置信息指示关于待分别被存储在所述多个顺序区域中的所述多条数据中的每一条的逻辑地址之中的起始逻辑地址的信息;以及
随机映射表,包括关于所述随机区域中存储的数据的逻辑地址的信息。
4.根据权利要求3所述的存储装置,其中所述操作控制器基于所述多个顺序区域之中与所述写入请求中的逻辑地址相对应的顺序区域的写入指针位置信息来存储所述组合数据。
5.根据权利要求4所述的存储装置,其中对应于与所述写入请求中的逻辑地址相对应的顺序区域的所述写入指针位置信息的逻辑地址和所述组合数据的逻辑地址是连续的地址。
6.根据权利要求2所述的存储装置,其中所述组合数据信息包括关于所述多个顺序区域之中的顺序区域的逻辑地址组中包括的逻辑地址之中与所述虚拟数据相对应的逻辑地址的信息,所述顺序区域对应于所述写入请求中的逻辑地址;以及关于存储所述虚拟数据的顺序区域的信息。
7.根据权利要求6所述的存储装置,其中所述组合数据信息进一步包括关于所述虚拟数据的大小的信息。
8.根据权利要求2所述的存储装置,其中:
在所述组合数据已经被存储在所述存储器装置中之后,所述缓冲存储器装置临时存储与从所述主机输入的后续写入请求相对应的后续写入数据,并且
所述操作控制器控制所述缓冲存储器装置和所述存储器装置,从而将所述后续写入数据的子数据存储在所述随机区域中,所述子数据的大小对应于所述虚拟数据的大小。
9.根据权利要求8所述的存储装置,其中所述操作控制器控制所述缓冲存储器装置和所述存储器装置,从而将所述后续写入数据的其余数据存储在所述多个顺序区域之中与所述后续写入请求中的逻辑地址相对应的顺序区域中,所述其余数据是除所述子数据以外的剩余数据。
10.根据权利要求9所述的存储装置,其中所述其余数据的逻辑地址与所述组合数据的逻辑地址之中最后的逻辑地址连续。
11.根据权利要求8所述的存储装置,其中所述操作控制器将关于所述子数据的逻辑地址和物理地址的信息存储在随机映射表中,所述随机映射表包括关于所述随机区域中存储的数据的逻辑地址的信息。
12.一种存储装置,包括:
存储器装置,包括多个顺序区域以及除所述多个顺序区域以外的随机区域,所述多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;以及
存储器控制器,从所述主机接收写入请求并且控制所述存储器装置,从而根据虚拟数据是否已经被存储在所述多个顺序区域之中与所述写入请求中包括的逻辑地址相对应的顺序区域中来将与所述写入请求相对应的写入数据的一部分存储在所述随机区域中。
13.根据权利要求12所述的存储装置,其中:
所述多个顺序区域是存储了分别对应于逻辑地址组的多条数据的存储区域,并且
所述逻辑地址组中的每一个包括连续的逻辑地址。
14.根据权利要求12所述的存储装置,其中所述存储器控制器包括缓冲存储器装置,所述缓冲存储器装置存储:
顺序映射表,包括关于分别被存储在所述多个顺序区域中的多条数据的逻辑地址的信息以及写入指针位置信息,所述写入指针位置信息指示关于待分别被存储在所述多个顺序区域中的所述多条数据中的每一条的逻辑地址之中的起始逻辑地址的信息,
随机映射表,包括关于所述随机区域中存储的数据的逻辑地址的信息,以及
组合数据信息,包括关于所述多个顺序区域中存储的虚拟数据的信息。
15.根据权利要求14所述的存储装置,其中在将所述虚拟数据存储在与所述写入请求中包括的逻辑地址相对应的顺序区域中时,所述存储器控制器控制所述缓冲存储器装置和所述存储器装置,从而将所述写入数据的子数据存储在所述随机区域中,所述子数据的大小对应于所述虚拟数据的大小。
16.根据权利要求15所述的存储装置,其中所述存储器控制器控制所述缓冲存储器装置和所述存储器装置,从而将所述写入数据的其余数据存储在与所述写入请求中包括的逻辑地址相对应的顺序区域中,所述其余数据是除所述子数据以外的剩余数据。
17.根据权利要求16所述的存储装置,其中所述其余数据的逻辑地址与所述虚拟数据的逻辑地址之中最后的逻辑地址连续。
18.根据权利要求16所述的存储装置,其中所述存储器控制器将关于所述子数据的逻辑地址和物理地址的信息存储在所述随机映射表中,并且
其中所述子数据的逻辑地址是与所述虚拟数据的逻辑地址相同的地址。
19.根据权利要求14所述的存储装置,其中:
所述多个顺序区域是存储分别对应于逻辑地址组的多条数据的存储区域,
所述逻辑地址组中的每一个包括连续的逻辑地址,并且
所述组合数据信息包括关于所述多个顺序区域之中的顺序区域的逻辑地址组中包括的逻辑地址之中与所述虚拟数据相对应的逻辑地址的信息,所述顺序区域对应于所述写入请求中的逻辑地址;以及关于存储所述虚拟数据的顺序区域的信息。
20.一种存储装置,包括:
存储器装置,包括多个顺序区域以及除所述多个顺序区域以外的随机区域,所述多个顺序区域存储与从主机输入的连续逻辑地址相对应的多条数据;
缓冲存储器装置,存储顺序映射表、随机映射表和组合数据信息,所述顺序映射表包括关于分别被存储在所述多个顺序区域中的多条数据的逻辑地址的信息,所述随机映射表包括关于所述随机区域中存储的数据的逻辑地址的信息,所述组合数据信息包括关于所述多个顺序区域中存储的虚拟数据的信息;以及
存储器控制器,根据从所述主机输入的读取请求中包括的逻辑地址是否被包括在所述组合数据信息中,从所述随机区域以及所述多个顺序区域之中与所述读取请求中包括的所述逻辑地址相对应的顺序区域中的至少一个获取与所述读取请求相对应的读取数据,并且将所述读取数据提供到所述主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200102788A KR20220021796A (ko) | 2020-08-14 | 2020-08-14 | 스토리지 장치 및 그 동작 방법 |
KR10-2020-0102788 | 2020-08-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114077387A true CN114077387A (zh) | 2022-02-22 |
Family
ID=80222879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110369934.2A Withdrawn CN114077387A (zh) | 2020-08-14 | 2021-04-07 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11726706B2 (zh) |
KR (1) | KR20220021796A (zh) |
CN (1) | CN114077387A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230018873A (ko) * | 2021-07-30 | 2023-02-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
JP2023139529A (ja) * | 2022-03-22 | 2023-10-04 | 株式会社東芝 | ディスク装置 |
US20240069799A1 (en) * | 2022-08-29 | 2024-02-29 | Micron Technology, Inc. | Memory device operations for unaligned write operations |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101083673B1 (ko) | 2008-10-01 | 2011-11-16 | 주식회사 하이닉스반도체 | 반도체 스토리지 시스템 및 그 제어 방법 |
EP2317442A1 (en) * | 2009-10-29 | 2011-05-04 | Thomson Licensing | Solid state memory with reduced number of partially filled pages |
US20110252187A1 (en) * | 2010-04-07 | 2011-10-13 | Avigdor Segal | System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory |
KR101861247B1 (ko) * | 2011-04-06 | 2018-05-28 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템 |
KR101854200B1 (ko) * | 2011-04-27 | 2018-06-20 | 시게이트 테크놀로지 엘엘씨 | 데이터 라이트 방법 및 이를 적용한 저장 장치 |
JP5524279B2 (ja) * | 2011-09-13 | 2014-06-18 | 株式会社東芝 | 情報処理装置および情報処理方法 |
US9690489B2 (en) * | 2014-03-08 | 2017-06-27 | Storart Technology Co. Ltd. | Method for improving access performance of a non-volatile storage device |
TWI506634B (zh) * | 2014-11-06 | 2015-11-01 | Phison Electronics Corp | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 |
US9929750B2 (en) * | 2015-09-08 | 2018-03-27 | Toshiba Memory Corporation | Memory system |
CN107797755B (zh) * | 2016-09-05 | 2021-01-08 | 上海宝存信息科技有限公司 | 固态硬盘系统的原子写入方法以及使用该方法的装置 |
KR20180047402A (ko) | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
KR20180058327A (ko) * | 2016-11-24 | 2018-06-01 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그의 동작 방법 |
KR20180083093A (ko) * | 2017-01-12 | 2018-07-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20180113230A (ko) * | 2017-04-05 | 2018-10-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11100996B2 (en) * | 2017-08-30 | 2021-08-24 | Micron Technology, Inc. | Log data storage for flash memory |
US10430330B2 (en) * | 2017-10-18 | 2019-10-01 | Western Digital Technologies, Inc. | Handling of unaligned sequential writes |
US20200073595A1 (en) * | 2018-09-02 | 2020-03-05 | Silicon Motion Inc. | Flash memory controller capable of improving IOPS performance and corresponding method |
-
2020
- 2020-08-14 KR KR1020200102788A patent/KR20220021796A/ko unknown
-
2021
- 2021-02-10 US US17/172,945 patent/US11726706B2/en active Active
- 2021-04-07 CN CN202110369934.2A patent/CN114077387A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11726706B2 (en) | 2023-08-15 |
US20220050626A1 (en) | 2022-02-17 |
KR20220021796A (ko) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258919B (zh) | 储存设备及其操作方法 | |
CN113721835A (zh) | 数据存储装置及其操作方法 | |
US11853202B2 (en) | Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system | |
US11726706B2 (en) | Storage device and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN113495810A (zh) | 存储装置及其操作方法 | |
US20220113900A1 (en) | Storage device and method of operating the same | |
US11417402B2 (en) | Storage device and operating method thereof | |
CN114078541A (zh) | 存储器控制器及其操作方法 | |
CN113299332A (zh) | 存储器控制器及其操作方法 | |
CN112687314A (zh) | 存储器设备和操作存储器设备的方法 | |
US11625178B2 (en) | Storage device and method of operating the same | |
US11836370B2 (en) | Storage device and operating method thereof | |
US11544184B2 (en) | Storage device and method of operating the same for processing a trim request of host | |
CN114968850A (zh) | 存储装置及其操作方法 | |
CN114496040A (zh) | 存储器装置 | |
CN114327251A (zh) | 存储装置及其操作方法 | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11586370B2 (en) | Memory controller and method of operating the same | |
US11726694B2 (en) | Storage device and operating method thereof | |
US20230238040A1 (en) | Storage device and operating method thereof | |
CN115376592A (zh) | 存储装置及其操作方法 | |
CN117198366A (zh) | 存储器设备及其操作方法 | |
CN116804909A (zh) | 存储装置及其操作方法 | |
CN115206363A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220222 |
|
WW01 | Invention patent application withdrawn after publication |