CN111694511A - 存储装置和包括存储装置的计算装置 - Google Patents
存储装置和包括存储装置的计算装置 Download PDFInfo
- Publication number
- CN111694511A CN111694511A CN201911376861.9A CN201911376861A CN111694511A CN 111694511 A CN111694511 A CN 111694511A CN 201911376861 A CN201911376861 A CN 201911376861A CN 111694511 A CN111694511 A CN 111694511A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- buffer area
- storage device
- size
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 158
- 230000015654 memory Effects 0.000 claims abstract description 286
- 230000004044 response Effects 0.000 claims description 28
- 239000010410 layer Substances 0.000 claims description 25
- 230000005012 migration Effects 0.000 claims description 23
- 238000013508 migration Methods 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 20
- 230000009467 reduction Effects 0.000 claims description 7
- 239000002356 single layer Substances 0.000 claims description 3
- 230000007958 sleep Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 8
- 230000006641 stabilisation Effects 0.000 description 8
- 238000011105 stabilization Methods 0.000 description 8
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 2
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 2
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007711 solidification Methods 0.000 description 2
- 230000008023 solidification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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/0614—Improving the reliability of 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/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]
-
- 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
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 Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种存储装置和包括存储装置的计算装置。所述存储装置包括:非易失性存储器装置,包括多个存储器块;以及控制器,使用所述多个存储器块中的一些存储器块作为缓冲区域。所述一些存储器块之中的存储无效数据的存储器块是无效存储器块,并且控制器将无效存储器块之中的擦除之后的经过时间大于重用时间的存储器块识别为可用缓冲区大小,并将可用缓冲区大小提供给外部主机装置。
Description
技术领域
在此描述的构思的实施例涉及一种半导体装置,更具体地,涉及一种通过基于重用时间识别可用缓冲区大小来提供提高的可靠性的存储装置以及包括存储装置的计算装置。
背景技术
存储装置表示在主机装置(诸如,计算机、智能电话、智能平板等)的控制下存储数据的装置。存储装置包括将数据存储在磁盘上的装置(诸如,硬盘驱动器(HDD))或将数据存储在半导体存储器(具体地,非易失性存储器)中的装置(诸如,固态驱动器(SSD)或存储器卡)。
非易失性存储器包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变随机存取存储器(PRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。
随着半导体制造技术的进步,存储装置的集成度及其容量持续增大。存储装置的高集成度能够降低制造存储装置所需的成本。然而,存储装置的高集成度还导致存储装置的缩小和结构改变。例如,可能发生对存储在存储装置中的数据的损坏,从而降低存储装置的可靠性。因此,存在提高存储装置的可靠性的持续的需要。
发明内容
构思的实施例提供一种能够在一些存储器块被用作缓冲区域时防止由于频繁的擦除操作而在缓冲区域的存储器块中发生错误的存储装置和计算装置。
根据示例性实施例,一种存储装置包括:非易失性存储器装置,非易失性存储器装置包括多个存储器块,所述多个存储器块包括被配置为存储从主机装置接收的数据的第一存储器块以及被配置为用于将从主机装置接收的数据写入第一存储器块的缓冲区域的第二存储器块;以及控制器,确定从缓冲区域的第二存储器块擦除存储在第二存储器块中的数据的时间与当前时间之间的时间段是否超过预定时间,并且基于确定该时间段超过预定时间,将从主机装置接收的数据写入缓冲区域的第二存储器块。
根据示例性实施例,一种存储装置包括:非易失性存储器装置,非易失性存储器装置包括多个存储器块,所述多个存储器块被配置为包括所述多个存储器块之中的第一存储器块的用户区域以及包括所述多个存储器块之中的第二存储器块的缓冲区域;以及控制器,接收用于将数据写入非易失性存储器装置的写入命令,写入命令包括用于通过缓冲区域将数据写入用户区域的turbo写入操作的turbo写入命令,基于识别出数据的大小不超过缓冲区域的可用缓冲区大小,根据turbo写入命令的turbo写入操作,通过缓冲区域将数据写入非易失性存储器装置,缓冲区域的可用缓冲区大小包括第二存储器块之中的可用存储器块的大小,其中,在从缓冲区域的可用存储器块擦除存储在可用存储器块中的存储数据的时间与当前时间之间的时间段超过预定时间,并且基于识别出数据的大小超过缓冲区的可用大小,根据用于将数据直接写入用户区域的普通写入命令的普通写入操作,将数据写入非易失性存储器装置。
根据示例性实施例,一种计算装置包括:存储装置,存储装置包括包含存储装置的存储器块之中的第一存储器块的用户区域以及包含存储装置的存储器块之中的第二存储器块的缓冲区域,存储装置被配置为输出缓冲区域的可用大小,缓冲区域的可用缓冲区大小包括第二存储器块之中的可用存储器块的大小,其中,从缓冲区域的可用存储器块擦除存储在可用存储器块中的存储数据的时间与当前时间之间的时间段超过预定时间;以及处理器,将用于执行turbo写入操作的turbo写入请求发送到存储装置以经由缓冲区域将大小小于或等于可用缓冲区大小的数据存储在用户区域中,并且将用于执行普通写入操作的普通写入请求发送到存储装置以将大小大于可用缓冲区大小的数据直接存储在用户区域中。
附图说明
通过参照附图详细描述构思的示例性实施例,构思的以上和其他目的和特征将变得明显。
图1示出根据实施例的存储装置。
图2示出根据实施例的操作存储装置的方法。
图3示出根据实施例的识别可用缓冲区大小的方法。
图4示出根据实施例的在将数据存储在缓冲区域中之前的存储装置的状态。
图5示出根据实施例的数据被写入缓冲区域的一部分的存储装置的状态。
图6示出根据实施例的数据被写入缓冲区域的剩余部分的存储装置的状态。
图7示出根据实施例的写入缓冲区域的数据被迁移到用户区域的存储装置的状态。
图8示出根据实施例的确定可用缓冲区大小的存储装置的状态。
图9示出根据实施例的存储装置对缓冲区域和用户区域执行写入操作的方法。
图10示出根据实施例的存储装置。
图11示出根据实施例的计算装置。
图12示出根据实施例的在处理器与存储装置之间执行的存储数据的方法。
图13示出根据实施例的当存储装置不具有超额供应区域(overprovision area)时在缩小模式下分配缓冲区域的示图。
图14示出根据实施例的当存储装置不具有超额供应区域时在非缩小模式下分配缓冲区域的示图。
图15示出根据实施例的当存储装置具有超额供应区域时在缩小模式下分配缓冲区域的示图。
图16示出根据实施例的当存储装置具有超额供应区域时在非缩小模式下分配缓冲区域的示图。
图17示出根据实施例的处理器将数据写入存储装置的方法。
图18示出根据实施例的计算装置改变缓冲区域的大小的方法。
具体实施方式
下面,实施例可被详细并且清楚地描述到使本领域普通技术人员容易地实现在此描述的构思的程度。
图1示出根据实施例的存储装置100。参照图1,存储装置100可包括非易失性存储器装置110和控制器120。
非易失性存储器装置110被配置为在控制器120的控制下执行写入操作、读取操作和擦除操作。非易失性存储器装置110可包括被配置为存储数据的多个存储器块。例如,非易失性存储器装置110可包括第一存储器块BLK1至第二十存储器块BLK20。然而,包括在非易失性存储器装置110中的存储器块的数量仅是示例性的,并且非易失性存储器装置110可包括任何数量的存储器块。
非易失性存储器装置110可以以存储器块为单位执行擦除操作。例如,非易失性存储器装置110可在控制器120的控制下独立地擦除第一存储器块BLK1至第二十存储器块BLK20。
第一存储器块BLK1至第二十存储器块BLK20中的每个可包括多个存储器单元。非易失性存储器装置110可以以小于存储器块的单元执行写入操作和读取操作。例如,在控制器120的控制下,非易失性存储器装置110可选择特定存储器块的存储器单元中的一些,并且可对选择的存储器单元执行写入操作或读取操作。
控制器120可在外部主机装置的控制下控制非易失性存储器装置110。例如,控制器120可指示非易失性存储器装置110执行读取操作、写入操作或擦除操作。控制器120可将非易失性存储器装置110的第一存储器块BLK1至第二十存储器块BLK20中的一部分设置、划分或另外地配置为用户区域111,并且可将第一存储器块BLK1至第二十存储器块BLK20中的剩余部分用作缓冲区域112。
例如,控制器120可选择第一存储器块BLK1至第十六存储器块BLK16作为用户区域111,并且可选择第十七存储器块BLK17至第二十存储器块BLK20作为缓冲区域112。控制器120可将用户区域111的第一存储器块BLK1至第十六存储器块BLK16的存储空间提供给外部主机装置。
控制器120可提供缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20的存储空间作为用户区域111的缓冲区。例如,控制器120可不向外部主机装置提供可访问以用于存储的缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20的存储空间。
控制器120可包括缓冲区大小块121、迁移块122、存储器接口块123和主机接口块124。缓冲区大小块121、迁移块122、存储器接口块123和主机接口块124可以是控制器120的被配置为执行控制器120的操作的模块。
缓冲区大小块121可识别缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20的存储空间的当前可用容量。例如,控制器120可响应于外部主机装置的请求或周期性地,识别缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20中的未写入数据的可用存储空间,作为可用缓冲区大小。
迁移块122可响应于外部主机装置的请求或在空闲时间,将写入缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20的有效数据迁移到用户区域111。从缓冲区域112迁移到用户区域111的数据可在缓冲区域112中无效,并且可被识别为无效数据或脏数据(dirty data)。
响应于外部主机装置的请求或者按照内部调度,存储器接口块123可将命令、地址或数据提供给非易失性存储器装置110,使得非易失性存储器装置110执行写入操作、读取操作或擦除操作。
主机接口块124可从外部主机装置接收各种请求。主机接口块124可对从外部主机装置接收的请求进行解析。基于解析的结果,主机接口块124可控制非易失性存储器装置110或者可将信息提供给外部主机装置。例如,主机接口块124可将由缓冲区大小块121识别的可用缓冲区大小提供给外部主机装置。
图2示出根据实施例的操作存储装置100的方法。参照图1和图2,在操作S110中,控制器120的主机接口块124可从外部主机装置接收命令CMD、地址ADDR和数据DATA。例如,命令CMD可以是写入命令、读取命令或擦除命令。
地址ADDR可指示数据DATA将被存储的位置。例如,数据DATA将被存储的位置可以是非易失性存储器装置110的用户区域111上的位置。数据DATA可以是外部主机装置意图写入非易失性存储器装置110的写入数据。
在操作S120中,控制器120的存储器接口块123可将数据DATA写入缓冲区域112。例如,缓冲区域112上的将被写入数据DATA的位置可与数据DATA最终将被写入用户区域111中的地址ADDR无关。非易失性存储器装置110可通过使用缓冲区域112的存储器单元作为单层单元SLC来写入数据DATA,从而提高将数据写入非易失性存储器装置110的速度。
在操作S130中,当从外部主机装置接收到迁移请求时或者在不存在来自外部主机装置的请求的空闲时间,控制器120的迁移块122可开始数据迁移。在迁移块122的控制下,控制器120可将写入缓冲区域112的数据迁移(或移动)到用户区域111上的由地址ADDR指示位置。
例如,控制器120的存储器接口块123可将读取命令和缓冲区域112的地址发送到非易失性存储器装置110,并且可读取写入缓冲区域112的数据DATA。之后,控制器120的存储器接口块123可将写入命令和地址ADDR发送到非易失性存储器装置110,并且可将数据DATA写入用户区域111。
在操作S140中,控制器120的缓冲区大小块121可在从外部主机装置接收到请求时或周期性地(或在特定时段)基于重用时间,来检测(或识别)缓冲区域112的可用缓冲区大小。
例如,在操作S130中,可通过将数据DATA从缓冲区域112移动到用户区域111,使缓冲区域112的数据DATA无效。缓冲区域112的存储数据DATA的存储器块可以是无效存储器块。
缓冲区大小块121可将缓冲区域112的无效存储器块之中的擦除操作当前可以进行并且数据能够被写入的存储器块的容量,识别为可用缓冲区大小。可用缓冲区大小可与缓冲区域112的无效存储器块的总容量不一致。缓冲区大小块121可通过使用重用时间,来确定无效存储器块中的哪些包括在可用缓冲区大小中以及无效存储器块中的哪些未包括在可用缓冲区大小中。
在操作S150中,控制器120的主机接口块124可向外部主机装置报告可用缓冲区大小。响应于请求可用缓冲区大小的主机装置的请求,可顺序地执行操作S140和操作S150。
图3示出根据实施例的识别可用缓冲区大小的方法。参照图1至图3,在操作S141中,缓冲区大小块121可确定在缓冲区域112中的第十七存储器块BLK17至第二十存储器块BLK20的特定无效存储器块被擦除之后经过的时间(例如,经过时间)是否大于重用时间。
当经过时间大于重用时间时,在操作S142中,特定无效存储器块可被识别为缓冲区域112中的可用于存储数据的可用存储器块。标记为可用的无效存储器块的容量可包括在可用缓冲区大小的计算中。当经过时间不大于重用时间时,在操作S143中,特定无效存储器块可被识别为缓冲区域112中的不可用于存储数据的不可用存储器块。标记为不可用的无效存储器块的容量不可包括在可用缓冲区大小的计算中。
通常,存储器单元(例如,闪存单元)具有堆叠有主体、隧道绝缘层、信息存储层、阻挡绝缘层和控制栅极的结构。在写入操作中,高电压被施加到控制栅极,并且低电压被施加到主体。根据这种写入偏置条件,通过隧道绝缘层将主体的电荷注入信息存储层。这种电荷的注入可使存储器单元的阈值电压高。
在擦除操作中,低电压被施加到控制栅极,并且高电压被施加到主体。根据这种擦除偏置条件,信息存储层的电荷通过隧道绝缘层被拉出并转移到主体。这种电荷的转移可降低存储器单元的阈值电压。
当执行写入操作或擦除操作时,可在隧道绝缘层或阻挡绝缘层中捕获一些电荷。在隧道绝缘层或阻挡绝缘层中捕获的电荷随时间放电。也就是说,紧接在执行写入操作或擦除操作之后,在隧道绝缘层或阻挡绝缘层中捕获的电荷可对存储器单元的阈值电压产生影响。
当在隧道绝缘层或阻挡绝缘层中捕获的电荷随时间放电时,存储器单元的阈值电压可由于存在捕获的电荷而改变。在隧道绝缘层或阻挡绝缘层中捕获的电荷被放电的处理可被认为存储器单元被固化或稳定化。
当对特定存储器块执行写入操作和擦除操作时,固化或稳定化可引起与第一电平一样多的特定存储器块中的存储器单元的阈值电压的第一改变。在特定存储器块的固化或稳定化完成之前再次执行擦除操作或写入操作的情况下,除了在前一擦除操作和写入操作中引起的阈值电压的第一改变之外,伴随固化或稳定化的当前的写入操作和擦除操作可引起阈值电压的第二改变。
这样,累积第一改变和第二改变,从而引起存储器单元的阈值电压的更大变化。随着存储器单元的阈值电压的改变增大(或者随着存储器单元的阈值电压的偏移变得更大),在写入特定存储器块的数据中发生不可纠正的错误的概率也会增大。
具体地,作为考虑缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20的示例,在有限数量的存储器块用于每存储器单元存储单个比特的情况下,在固化或稳定化完成之前擦除操作和写入操作被触发的概率可与缓冲区域112的存储器块BLK17至BLK20有关。
例如,在缓冲区域112的固化或稳定化完成之前,外部主机装置可意图将数据写入缓冲区域112,将写入的数据迁移到用户区域111,并进一步将任何其他数据写入缓冲区域112。
根据实施例的存储装置100可将缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20之中的擦除之后的经过时间大于重用时间的存储器块包括在可用缓冲区大小中。例如,经过时间可以是在隧道绝缘层或阻挡绝缘层中捕获的电荷可能随时间放电的时间。经过时间可以是判断存储器块的可用性或不可用性的预定时间。存储装置100可从可用缓冲区大小排除擦除之后的经过时间不大于重用时间的存储器块。因此,隧道绝缘层或阻挡绝缘层中捕获的电荷不会随时间放电的存储器块将不包括在可用缓冲区大小的计算中。
可基于第十七存储器块BLK17至第二十存储器块BLK20被固化或稳定化的时间来确定重用时间。这样的存储器块可被指示为可用存储器块。也就是说,存储装置100可通过针对指示为可用的那些存储器块使用缓冲区域112来支持快速写入操作,并且可针对被指示为不可用的那些存储器块确保缓冲区域112的固化或稳定化,因此存储装置100的可靠性被提高。
图4至图8示出存储装置100如何基于重用时间来管理缓冲区域112。图4示出在将数据存储在缓冲区域112中之前的存储装置的状态。参照图4,缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20可以是存储无效数据INV的无效存储器块。
缓冲区大小块121可管理第十七存储器块BLK17至第二十存储器块BLK20中的每个的时间戳TS。时间戳TS可指示先前擦除第十七存储器块BLK17至第二十存储器块BLK20中的每个的时间。假设第十七存储器块BLK17至第二十存储器块BLK20的固化或稳定化完成。也就是说,第十七存储器块BLK17至第二十存储器块BLK20中的每个的时间戳TS和从当前时间计算的经过时间可大于重用时间。因此,缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20可被指示为可用存储器块。
缓冲区大小块121可进一步管理可用缓冲区大小。因为第十七存储器块BLK17至第二十存储器块BLK20的固化或稳定化完成,所以可用缓冲区大小可以是“4”(表示四个存储器块的大小)。然而,可用缓冲区大小不限于存储器块的数量。可用缓冲区大小可由将被实际写入的数据的容量(诸如,B、KB、MB、GB或TB)表示。
图5示出数据被写入缓冲区域112的一部分的存储装置的状态。控制器120的主机接口块124可从外部主机装置接收第一命令CMD1、第一地址ADDR1和第一数据DATA1。第一命令CMD1可以是写入命令。第一地址ADDR1可对应于例如用户区域111的第十三存储器块BLK13。
在操作S211中,控制器120的存储器接口块123可将擦除命令和指示缓冲区域112的第十七存储器块BLK17和第十八存储器块BLK18的地址发送到非易失性存储器装置110。非易失性存储器装置110可对第十七存储器块BLK17和第十八存储器块BLK18进行擦除。
在操作S212中,当第十七存储器块BLK17和第十八存储器块BLK18被擦除时,缓冲区大小块121可生成第十七存储器块BLK17和第十八存储器块BLK18被擦除的时间的第一时间戳TS1,并且可记录与第十七存储器块BLK17和第十八存储器块BLK18相关联的第一时间戳TS1。例如,缓冲区大小块121可将与相应的存储器块相关联的时间戳TS存储在查找表、寄存器或任何其他存储机制中。
在操作S213中,控制器120的存储器接口块123可将写入命令、指示缓冲区域112的第十七存储器块BLK17和第十八存储器块BLK18的地址以及第一数据DATA1发送到非易失性存储器装置110。非易失性存储器装置110可将第一数据DATA1写入第十七存储器块BLK17和第十八存储器块BLK18。第十七存储器块BLK17和第十八存储器块BLK18可被指示为存储有效数据VAL的有效存储器块。
在操作S214中,因为第十七存储器块BLK17和第十八存储器块BLK18变为有效存储器块,所以缓冲区大小块121可减小可用缓冲区大小。例如,可用缓冲区大小可减小到“2”,“2”对应于仅第十九存储器块BLK19和第二十存储器块BLK20是可用的无效存储器块。
图6示出数据被写入缓冲区域112的剩余部分的存储装置的状态。控制器120的主机接口块124可从外部主机装置接收第二命令CMD2、第二地址ADDR2和第二数据DATA2。第二命令CMD2可以是写入命令。第二地址ADDR2可对应于例如用户区域111的第十四存储器块BLK14。
在操作S221中,控制器120的存储器接口块123可将擦除命令和指示缓冲区域112的第十九存储器块BLK19和第二十存储器块BLK20的地址发送到非易失性存储器装置110。非易失性存储器装置110可对第十九存储器块BLK19和第二十存储器块BLK20进行擦除。
在操作S222中,当第十九存储器块BLK19和第二十存储器块BLK20被擦除时,缓冲区大小块121可生成第十九存储器块BLK19和第二十存储器块BLK20被擦除的时间的第二时间戳TS2,并且可记录与第十九存储器块BLK19和第二十存储器块BLK20相关联的第二时间戳TS2。
在操作S223中,控制器120的存储器接口块123可将写入命令、指示缓冲区域112的第十九存储器块BLK19和第二十存储器块BLK20的地址以及第二数据DATA2发送到非易失性存储器装置110。非易失性存储器装置110可将第二数据DATA2写入第十九存储器块BLK19和第二十存储器块BLK20。第十九存储器块BLK19和第二十存储器块BLK20可以是存储有效数据VAL的有效存储器块。
在操作S224中,因为第十九存储器块BLK19和第二十存储器块BLK20变为有效存储器块,所以缓冲区大小块121可减小可用缓冲区大小。例如,因为缓冲区域112的所有存储器块都是有效存储器块,所以可用缓冲区大小可减小到“0”。
图7示出写入缓冲区域112的数据被迁移到用户区域111的存储装置的状态。参照图7,控制器120的迁移块122可响应于外部主机装置的请求或在不存在来自外部主机装置的命令的空闲时间开始迁移操作。
在操作S231中,存储器接口块123可将读取命令和指示缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20的地址发送到非易失性存储器装置110。非易失性存储器装置110可从第十七存储器块BLK17和第十八存储器块BLK18读取第一数据DATA1,并且可从第十九存储器块BLK19和第二十存储器块BLK20读取第二数据DATA2。非易失性存储器装置110可将第一数据DATA1和第二数据DATA2发送到控制器120。
在操作S232中,存储器接口块123可将写入命令、指示第十三存储器块BLK13的第一地址ADDR1以及第一数据DATA1发送到非易失性存储器装置110。此外,存储器接口块123可将写入命令、指示第十四存储器块BLK14的第二地址ADDR2和第二数据DATA2发送到非易失性存储器装置110。
非易失性存储器装置110可将第一数据DATA1写入第十三存储器块BLK13,并且可将第二数据DATA2写入第十四存储器块BLK14。例如,存储器接口块123可将用户区域111的第十三存储器块BLK13和第十四存储器块BLK14的存储器单元用作多层单元MLC。
然而,用户区域111的存储器单元不限于多层单元MLC。用户区域111的存储器单元可被用作三层单元TLC或四层单元QLC。
当第一数据DATA1和第二数据DATA2迁移时,写入缓冲区域112的第一数据DATA1和第二数据DATA2被无效。缓冲区域112的第十七存储器块BLK17至第二十存储器块BLK20可以是存储无效数据INV的无效存储器块。用户区域111的第十三存储器块BLK13和第十四存储器块BLK14可以是存储有效数据VAL的有效存储器块。
在操作S233和操作S234中,响应于外部主机装置的请求或者按照内部调度(例如,周期性地或当特定条件被满足时),缓冲区大小块121可将第十七存储器块BLK17至第二十存储器块BLK20中的每个的时间戳与当前时间进行比较,并且可基于比较的结果确定可用缓冲区大小。
例如,在操作S233中,第十七存储器块BLK17和第十八存储器块BLK18具有第一时间戳TS1。第一时间戳TS1与当前时间之间的差(即,第十七存储器块BLK17和第十八存储器块BLK18的经过时间ET1)可大于重用时间。因此,存储器块BLK17和BLK18可被指示为可用。
相比之下,在操作S234中,第十九存储器块BLK19和第二十存储器块BLK20具有第二时间戳TS2。第二时间戳TS2与当前时间之间的差(即,第十九存储器块BLK19和第二十存储器块BLK20的经过时间ET2)可不大于重用时间。因此,存储器块BLK19和BLK20可被指示为不可用。
缓冲区大小块121可将第十七存储器块BLK17和第十八存储器块BLK18识别为缓冲区域112的可用存储器块,并且可将第十九存储器块BLK19和第二十存储器块BLK20识别为缓冲区域112的不可用存储器块。因此,缓冲区域112的无效存储器块的数量可以是“4”;然而,在操作S235中,缓冲区大小块121识别的可用缓冲区大小可以是“2”。
在操作S236中,主机接口块124可向外部主机装置报告可用缓冲区大小。例如,可响应于从外部主机装置提供的一个相同的命令或不同的单独命令来执行可用缓冲区大小的识别和报告。
图8示出确定可用缓冲区大小的存储装置的状态。参照图8,响应于外部主机装置的请求或者按照内部调度(例如,周期性地或当特定条件被满足时),缓冲区大小块121可将第十七存储器块BLK17至第二十存储器块BLK20中的每个的时间戳与当前时间进行比较,并且可基于比较的结果确定可用缓冲区大小。
例如,在操作S241中,第十九存储器块BLK19和第二十存储器块BLK20具有第二时间戳TS2。第二时间戳TS2与当前时间之间的差(即,第十九存储器块BLK19和第二十存储器块BLK20的经过时间ET2)可大于重用时间。
第十九存储器块BLK19和第二十存储器块BLK20可被识别为缓冲区域112的可用存储器块。因此,在操作S242中,缓冲区大小块121识别的可用缓冲区大小可以是“4”。
在操作S243中,主机接口块124可向外部主机装置报告可用缓冲区大小。例如,可响应于从外部主机装置提供的一个相同的命令或不同的单独命令来执行可用缓冲区大小的识别和报告。
图9示出存储装置100对用户区域111和缓冲区域112执行写入操作的方法。参照图1和图9,在操作S310中,控制器120的主机接口块124可从外部主机装置接收命令CMD、地址ADDR和数据DATA。命令CMD可以是写入命令。地址ADDR可指示用户区域111的特定存储位置。
在操作S320中,主机接口块124可确定接收到的命令CMD是否为turbo写入命令。当接收到的命令CMD是turbo写入命令时,在操作S330和操作S340中,控制器120可相对快速地执行写入数据DATA的turbo写入操作。
例如,在操作S330中,存储器接口块123可将接收到的数据DATA写入缓冲区域112。因为缓冲区域112的存储器单元被用作单层单元SLC,所以数据DATA被写入的速度会相对快。之后,在操作S340中,响应于外部主机装置的请求或在空闲时间,存储器接口块123可基于地址ADDR将写入缓冲区域112的数据DATA迁移到用户区域111。
当在操作S320中确定接收到的写入命令不是turbo写入命令(即,接收到的写入命令是典型/普通写入命令时)时,执行操作S350。在操作S350中,控制器120可执行将数据DATA写入存储器的普通写入操作,普通写入操作可比turbo写入操作慢。存储器接口块123可基于地址ADDR将数据DATA直接写入用户区域111,而不使用缓冲区域112。
也就是说,存储装置100可允许主机装置选择使用缓冲区域112的turbo写入操作和不使用缓冲区域112的普通写入操作。当大量的写入数据被生成时(例如,在存储图像数据的情况下),外部主机装置可选择turbo写入操作以执行快速数据处理。当少量的写入数据被生成时(例如,在存储文档数据的情况下),外部主机装置可选择普通写入操作以允许缓冲区域112的资源的裕量。可选地,存储装置100可基于缓冲区域112的可用大小和数据DATA的大小,来控制选择turbo写入操作还是普通写入操作。如果数据DATA的大小小于缓冲区的可用大小,则存储装置100可执行turbo写入操作。如果数据DATA的大小大于缓冲区的可用大小,则存储装置可执行普通写入操作。可选地,如将针对图17所述,如果数据DATA的大小大于缓冲区的可用大小,则存储装置可对数据DATA进行分割,并且对数据DATA的一部分执行turbo写入操作并对数据DATA的剩余部分执行普通写入操作。
图10示出根据实施例的存储装置200。参照图10,存储装置200包括非易失性存储器装置210、控制器220和随机存取存储器230。
如参照图1所述,非易失性存储器装置210可包括用户区域211和缓冲区域212。如参照图1所述,控制器220可包括缓冲区大小块221、迁移块222、存储器接口块223和主机接口块224。此外,控制器220还可包括存储器控制器225。
存储器控制器225可被配置为控制随机存取存储器230。存储装置200可将随机存取存储器230用作非易失性存储器装置210与外部主机装置之间的缓冲器。控制器220可将从外部主机装置接收的数据存储到随机存取存储器230中。
控制器220可将存储在随机存取存储器230中的数据写入非易失性存储器装置210。在这种情况下,如参照图9所述,控制器220可选择turbo写入操作和普通写入操作中的一个。如参照图1至图8所述,缓冲区大小块221可识别缓冲区域212的可用缓冲区大小。
控制器220可不将可用缓冲区大小提供给外部主机装置,并且可内部地使用可用缓冲区大小。当通过turbo写入操作将存储在随机存取存储器230中的写入数据写入缓冲区域212时,控制器220可参考可用缓冲区大小。例如,控制器220可通过turbo写入操作将其大小小于或等于可用缓冲区大小的数据写入缓冲区域212。
控制器220可将从非易失性存储器装置210读取的数据存储到随机存取存储器230中。控制器220可将存储在随机存取存储器230中的数据发送到外部主机装置。
图11示出根据实施例的计算装置300。参照图11,计算装置300可被实现为移动装置(诸如,智能电话、智能平板或笔记本计算机)或固定装置(诸如,计算机、工作站或服务器)。
计算装置300包括处理器310、随机存取存储器320、调制解调器330、用户接口340和存储装置350。处理器310可运行驱动计算装置300所需的操作系统以及在操作系统上可运行的各种应用。处理器310可以是存储装置350的主机装置。
例如,处理器310可从存储装置350读取操作系统和应用的程序代码,并且可将读取的代码存储到随机存取存储器320中。处理器310可通过运行存储在随机存取存储器320中的代码,来运行操作系统和应用。处理器310可包括中央处理器(CPU)或应用处理器(AP)。
随机存取存储器320可用作计算装置300的系统存储器或工作存储器。随机存取存储器320可存储将由处理器310运行的各种代码。随机存取存储器320可存储通过处理器310的操作系统或应用生成的用户数据。
随机存取存储器320可存储通过调制解调器330从外部装置接收的数据或者将通过调制解调器330发送到外部装置的数据。随机存取存储器320可存储通过用户接口340从外部用户输入的数据或者将通过用户接口340输出到外部用户的数据。
随机存取存储器320可包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变RAM(PRAM)、磁RAM(MRAM)、铁电RAM(FRAM)、磁RAM(MRAM)、电阻式RAM(RRAM)等。
调制解调器330是被配置为与外部装置执行有线通信或无线通信的通信接口。调制解调器330可基于诸如以太网、长期演进(LTE)、第5代(5G)移动通信、无线保真蓝牙和近场通信(NFC)的各种标准中的至少一种与外部装置通信。
用户接口340被配置为与用户交换信息。用户接口340可包括能够从用户接收信息的用户输入装置,诸如,键盘、鼠标、触摸板、触摸面板、麦克风。用户接口340可包括能够将信息提供给用户的用户输出装置,诸如,监视器、光束投影仪、扬声器和电机。
存储装置350可用于存储操作系统和应用的代码以及用户数据。存储装置350可以是盘并且可包括参照图1至图10描述的存储装置100。存储装置350可将缓冲区域112或212的无效存储器块之中的擦除之后的经过时间大于重用时间的存储器块识别为可用缓冲区。
如参照图1至图9所述,存储装置350可识别可用缓冲区大小,并可向处理器310报告可用缓冲区大小。处理器310可基于可用缓冲区大小来选择turbo写入操作和普通写入操作中的一个。处理器310可通过选择的写入操作将数据写入存储装置350。
如参照图10所述,存储装置350可不单独向处理器310报告可用缓冲区大小。处理器310可在不分选turbo写入操作和普通写入操作的情况下向存储装置350请求写入操作。
存储装置350可将写入数据存储到随机存取存储器320中。当将存储在随机存取存储器320中的数据写入存储装置350时,存储装置350可基于可用缓冲区大小来选择turbo写入操作和普通写入操作中的一个。
图12示出在处理器310与存储装置350之间执行的存储数据的方法。在图12中,存储装置350包括参照图1至图9描述的存储装置100。参照图1、图11和图12,在操作S410和操作S412中,处理器310和存储装置350可执行供应操作。
例如,在操作S410中,处理器310可向存储装置350请求供应缓冲区域212。可通过使用基于通用闪存(UFS)的查询请求UFS协议信息单元(UPIU),来执行操作S410的请求。处理器310可将写入描述符查询请求UPIU发送到存储装置350。
写入描述符查询请求UPIU可包括模式信息、大小信息和逻辑单元(LU)信息。模式信息可指示生成缓冲区域212的方式,并且可包括缩小模式和非缩小模式。
大小信息可包括关于缓冲区域212的大小的信息。LU信息可指示在缓冲区域212利用存储装置350的一个LU来实现的状态下是否所有LU共享缓冲区域212、或者缓冲区域212是否以存储装置350的每个LU来实现。在操作S412中,存储装置350可将响应UPIU发送到处理器310。例如,响应UPIU可包括缓冲区域的可用缓冲区大小。
图13至图16示出执行供应操作的示图。例如,图13示出当存储装置350不具有超额供应(OP)区域时在缩小模式下分配缓冲区域的示图。
参照图11和图13,存储装置350的存储空间可被划分为元区域和用户区域。元区域可被存储装置350用于存储管理存储装置350所需的元数据(例如,逻辑地址与物理地址的映射表)。外部主机装置(例如,处理器310)不可访问元区域。
用户区域可以是处理器310可访问存储装置350的区域,并且可被处理器310访问以写入数据。当计算装置300被初始化(或启动)时,存储装置350可将用户区域的容量信息提供给处理器310。
在供应操作S410中,处理器310可将缓冲区域的大小信息提供给存储装置350。存储装置350可分配用户区域的与大小信息对应的区域用于缓冲区域。也就是说,在缩小模式下,当供应操作被执行时,用户区域的大小可减小到小于原始大小。缓冲区域可被分配为在大小上与用户区域的减小相等。
缓冲区域的大小可以是固定的。被选择为缓冲区域的存储器块可被物理地固定。也就是说,当重新启动和重新供应被执行时,先前选择的存储器块可被一致地选择为缓冲区域。根据图13的示例,在支持turbo写入操作的缓冲区域可被稳定地确保的同时,存储装置350的被分配以写入数据的用户区域可减小。
图14示出当存储装置350不具有超额供应(OP)区域时在非缩小模式下分配缓冲区域的示图。参照图11和图14,在供应操作中,大小信息可包括缓冲区域的最大大小。缓冲区域的大小可随大小信息而变化。
存储装置350可将用户区域的原始大小提供给处理器310。存储装置350可在用户区域内自适应地或动态地分配缓冲区域。例如,存储装置350可将用户区域的未写入数据的存储器块分配为缓冲区域。
在一个示例中,存储装置350可同写入用户区域的数据的容量与用户区域的容量之比成比例地改变包括在缓冲区域中的存储器块的数量。在另一示例中,当不存在写入用户区域的数据时,存储装置350可将缓冲区域分配为具有最大大小。当数据被写入用户区域时,存储装置350可减小缓冲区域的大小。例如,随着用户区域的填充率增大,存储装置350可减小缓冲区域的大小。
缓冲区域可减小到大小信息的最小大小。例如,最小大小可由存储装置350自动确定。随着用户区域的填充率减小,存储装置350可增大缓冲区域的大小。存储装置350可自适应地或动态地选择将包括在缓冲区域中的存储器块。
例如,存储装置350可参照存储装置350的使用年限或使用程度以及每个存储器块的编程/擦除循环的数量,来自适应地选择将包括在缓冲区域中的存储器块。具有低(或高)使用程度或少(或大)量的编程/擦除循环的存储器块可包括在缓冲区域中。
存储装置350可基于特定存储器块是否包括在缓冲区域中,来不同地管理特定存储器块。例如,存储装置350可管理诸如存储器块的读取计数和编程/擦除循环的数量的参数,并且可通过使用该参数来管理数据。
存储装置350可基于特定存储器块是否包括在缓冲区域中,来不同地设置将被应用于读取计数的权重和将被应用于编程/擦除循环的数量的权重。例如,较小(或较大)的权重可被应用于属于缓冲区域的存储器块的读取计数,并且较小(或较大)的权重可被应用于属于缓冲区域的存储器块的编程/擦除循环的数量。
如参照图14所述,处理器310可选择非缩小模式来执行供应操作,从而有效地利用存储装置350的用户区域的原始大小。
图15示出当存储装置350具有超额供应(OP)区域时在缩小模式下分配缓冲区域的示图。参照图11和图15,除了元区域和用户区域之外,存储装置350还可具有超额供应区域。
超额供应区域可以是被设置为提高存储装置350的性能的存储空间。例如,在存在未写入数据的空闲存储器块的情况下,当对写入用户区域的数据执行垃圾收集操作或读取回收操作时,可更快地执行垃圾收集操作和读取回收操作。
存储装置350可将用户区域提供给外部主机装置,并且可整体地利用用户区域和超额供应区域来写入和管理用户数据。
在供应操作S410中,存储装置350可固定地分配超额供应区域或用户区域的一部分用于缓冲区域。缓冲区域的一部分可包括在超额供应区域中,缓冲区域的剩余部分可包括在用户区域中。因此,用户区域或超额供应区域可具有原始大小或减小的大小。
图16示出当存储装置350具有超额供应(OP)区域时在非缩小模式下分配缓冲区域的示图。参照图11和图16,除了元区域和用户区域之外,存储装置350还可具有超额供应区域。
在供应操作S410中,存储装置350可保持用户区域或超额供应区域的原始大小。存储装置350可动态地分配用户区域或超额供应区域用于缓冲区域。缓冲区域的一部分可包括在超额供应区域中,缓冲区域的剩余部分可包括在用户区域中。
返回图12,在操作S420和操作S422中,处理器310和存储装置350可执行turbo写入操作。例如,在操作S420中,处理器310可向存储装置350请求turbo写入操作。
例如,对turbo写入操作的请求可使用基于UFS的写入命令UPIU。通过将写入命令UPIU的组号设置为特定值(例如,“0x11”),可将写入命令UPIU识别为对turbo写入操作的请求。存储装置350可响应于具有组号“0x11”的写入命令UPIU,将数据写入缓冲区域112。在一个实施例中,turbo写入命令和普通写入命令具有不同组号的基于UFS的写入命令UPIU。在操作S422中,存储装置350可将响应UPIU发送到处理器310。
在操作S430和操作S432中,处理器310和存储装置350可执行普通写入操作。例如,在操作S430中,处理器310可向存储装置350请求普通写入操作。
例如,对普通写入操作的请求可使用基于UFS的写入命令UPIU。存储装置350可响应于写入命令UPIU将数据写入用户区域111。在操作S432中,存储装置350可将响应UPIU发送到处理器310。
在操作S440中,处理器310和存储装置350可执行迁移操作或可设置迁移操作。例如,在操作S440中,处理器310可向存储装置350请求迁移操作。可通过使用基于UFS的查询请求UPIU,来执行对迁移操作的请求。
例如,处理器310可将设置标志查询请求UPIU发送到存储装置350。设置标志查询请求UPIU可包括刷新信息或休眠信息。在一个实施例中,设置标志查询请求UPIU可激活迁移操作。当设置标志查询请求UPIU包括刷新信息时,存储装置350可响应于设置标志查询请求UPIU执行参照图7描述的迁移操作。
当设置标志查询请求UPIU包括休眠信息时,存储装置350可改变迁移设置。例如,响应于设置标志查询请求UPIU,存储装置350可改变迁移设置,使得迁移操作在休眠模式下自主地执行,或者使得自主迁移操作不执行。
在操作S442中,存储装置350可将响应UPIU发送到处理器310。例如,响应UPIU可包括可用缓冲区大小。也就是说,当迁移操作完成时,存储装置350可识别可用缓冲区大小,并且可向处理器310报告可用缓冲区大小。
在操作S450和操作S452中,处理器310和存储装置350可执行缓冲区大小查询操作。例如,在操作S450中,处理器310可查询存储装置350以获得缓冲区大小。可通过使用基于UFS的查询请求来执行关于缓冲区大小的查询。
例如,处理器310可将读取属性查询请求UPIU发送到存储装置350。在操作S452中,存储装置350可将响应UPIU发送到处理器310。响应UPIU可包括可用缓冲区大小。例如,响应于读取属性查询请求UPIU,存储装置350可识别可用缓冲区大小,并且可将可用缓冲区大小的指示提供给处理器310。
在一个实施例中,如参照图10所述,当存储装置350包括随机存取存储器320时,参照图12描述的turbo写入操作、普通写入操作和迁移操作可由控制器220自主地执行。如参照图12所述,存储装置350可响应于处理器310的请求来执行供应操作。可省略缓冲区大小查询操作。
图17示出处理器310将数据写入存储装置350的方法。参照图1、图11和图17,在操作S510中,处理器310可确定将被写入的数据是否需要turbo写入操作。例如,当将被写入的数据需要针对大量数据(诸如,视频数据)的写入操作时,处理器310可确定将被写入的数据需要turbo写入操作。
当将被写入的数据需要turbo写入操作时,在操作S520中,处理器310可确定将被写入的数据的大小是否大于可用缓冲区大小。当将被写入的数据的大小不大于可用缓冲区大小时,在操作S530中,处理器310可执行将数据写入缓冲区域112的turbo写入操作。
当将被写入的数据的大小大于可用缓冲区大小时,在操作S540,处理器310可将数据划分为turbo部分和普通部分。在操作S550中,处理器310可执行将数据的turbo部分写入缓冲区域112的turbo写入操作。
在操作S560中,处理器310可执行将数据的普通部分写入用户区域111的普通写入操作。也就是说,处理器310可对将被写入的数据进行分割,并且可通过turbo写入操作和普通写入操作将分割的部分写入存储装置350。
当在操作S510中确定将被写入的数据不需要turbo写入操作时,在操作S570中,处理器310可执行将数据写入存储装置350的用户区域111的普通写入操作。
如参照图10所述,当存储装置350包括随机存取存储器320时,参照图17描述的方法可由控制器220自主地执行。
图18示出计算装置300改变缓冲区域的大小的方法。参照图1、图11和图18,在操作S610中,如上所述,计算装置300可在被供电时执行启动并执行供应。例如,处理器310可基于现有供应设置的缓冲区域的大小,来对存储装置350执行供应操作。之后,计算装置300可在用户的控制下运行操作系统和应用。
在操作S620中,计算装置300可接收缓冲区域改变输入。例如,计算装置300可通过用户接口340从用户接收缓冲区域改变输入。在操作S630中,响应于缓冲区域改变输入,处理器310可更新供应设置的缓冲区域的大小。
之后,在操作S640中,计算装置300可再次执行启动和供应。例如,处理器310可基于更新的供应设置的缓冲区域的大小,来对存储装置350执行供应操作。
如上所述,计算装置300可基于用户的输入来改变缓冲区域的大小。改变缓冲区域的大小可伴随重新启动和重新供应。当缓冲区域的大小的改变被允许时,计算装置300可为用户提供更大的灵活性。
当缓冲区域的大小增大时,已被用作用户区域的现有存储器块可被用作缓冲区域。当缓冲区域的大小减小时,已被用作缓冲区域的现有存储器块可被用作用户区域。
存储装置350可基于特定存储器块是否包括在缓冲区域中,来不同地管理特定存储器块。例如,存储装置350可管理诸如存储器块的读取计数和编程/擦除循环的数量的参数,并且可通过使用该参数来管理数据。
存储装置350可基于特定存储器块是否包括在缓冲区域中,来不同地设置将被应用于读取计数的权重和将被应用于编程/擦除循环的数量的权重。例如,较小(或较大)的权重可被应用于属于缓冲区域的存储器块的读取计数,并且较小(或较大)的权重可被应用于属于缓冲区域的存储器块的编程/擦除循环的数量。
如上所述,通过使用术语“第一”、“第二”、“第三”等来描述存储装置100或200以及计算装置300的组件。然而,术语“第一”、“第二”、“第三”等可用于使组件彼此区分,并且不限制对组件的描述。例如,术语“第一”、“第二”、“第三”等不涉及任何形式的顺序或数字含义。
在以上实施例中,通过使用块描述根据实施例的组件。所述块可利用各种硬件装置(诸如,集成电路、专用IC(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD))、在硬件装置中驱动的固件、软件(诸如,应用)或者硬件装置和软件的组合来实现。此外,所述块可包括作为电路登记的电路或集成电路中的半导体元件。
根据实施例,基于在缓冲区域的存储器块被擦除之后是否经过重用时间,来识别缓冲区域的可用缓冲区大小。因此,提供一种能够防止由于频繁的擦除操作而在缓冲区域中发生错误并提供提高的可靠性的存储装置和计算装置。
尽管已经参照示例性实施例描述以上构思,但是对于本领域普通技术人员将清楚的是,在不脱离如权利要求中阐述的构思的精神和范围的情况下,可对其进行各种改变和修改。
Claims (20)
1.一种存储装置,包括:
非易失性存储器装置,包括多个存储器块;以及
控制器,被配置为使用所述多个存储器块中的一些存储器块作为缓冲区域,
其中,所述一些存储器块之中的存储无效数据的存储器块是无效存储器块,
其中,控制器还被配置为:
将无效存储器块之中的擦除之后的经过时间大于重用时间的存储器块识别为可用缓冲区大小;并且
将可用缓冲区大小提供给外部主机装置。
2.根据权利要求1所述的存储装置,其中,控制器响应于外部主机装置的请求或者周期性地检查无效存储器块,并基于检查的结果来更新可用缓冲区大小。
3.根据权利要求1所述的存储装置,其中,控制器响应于从外部主机装置接收的基于通用闪存的读取属性查询请求通用闪存协议信息单元,将可用缓冲区大小提供给外部主机装置。
4.根据权利要求1所述的存储装置,其中,控制器被配置为:
从外部主机装置接收写入命令、地址和数据;
当写入命令是turbo写入命令时,将数据写入缓冲区域;
当写入命令是普通写入命令时,将数据写在除了缓冲区域之外的其他存储器块中的地址指示的位置。
5.根据权利要求4所述的存储装置,其中,turbo写入命令和普通写入命令具有不同组号的基于通用闪存的写入命令通用闪存协议信息单元。
6.根据权利要求4所述的存储装置,其中,turbo写入命令包括:
激活迁移操作的基于通用闪存的设置标志查询请求通用闪存协议信息单元;以及
基于通用闪存的写入命令通用闪存协议信息单元。
7.根据权利要求4所述的存储装置,其中,控制器还被配置为:响应于外部主机装置的请求或在休眠模式下,
将写入缓冲区域的有效数据迁移到除了缓冲区域之外的其他存储器块中的地址指示的位置;并且
使有效数据无效。
8.根据权利要求7所述的存储装置,其中,外部主机装置的请求包括基于通用闪存的设置标志查询请求通用闪存协议信息单元。
9.根据权利要求7所述的存储装置,其中,通过基于通用闪存的设置标志查询请求通用闪存协议信息单元,激活或去激活在休眠模式下移动有效数据。
10.根据权利要求1所述的存储装置,其中,控制器还被配置为:
在启动操作中,将所述多个存储器块的容量提供给外部主机装置;
从外部主机装置接收包括缓冲区域的容量信息的供应命令;并且
基于容量信息选择所述多个存储器块中的所述一些存储器块,以分配给缓冲区域。
11.根据权利要求10所述的存储装置,其中,供应命令还包括模式信息,并且
其中,控制器还被配置为:当模式信息指示缩小模式时,将所述多个存储器块中的除了缓冲区域中的所述一些存储器块之外的剩余存储器块的存储容量作为用户区域提供给外部主机装置。
12.根据权利要求11所述的存储装置,其中,控制器固定地选择包括在缓冲区域中的所述一些存储器块,将所述一些存储器块的存储器单元用作单层单元,并将剩余存储器块的存储器单元用作至少多层单元。
13.根据权利要求10所述的存储装置,其中,供应命令还包括模式信息,并且
其中,控制器还被配置为:当模式信息指示非缩小模式时,将所述多个存储器块的存储容量作为用户区域提供给外部主机装置。
14.根据权利要求13所述的存储装置,其中,控制器自适应地选择包括在缓冲区域中的所述一些存储器块,将所述一些存储器块的存储器单元用作单层单元,并将剩余存储器块的存储器单元用作至少多层单元。
15.根据权利要求14所述的存储装置,其中,容量信息指示缓冲区域的最大容量,并且
其中,控制器还被配置为在小于或等于最大容量的范围内改变包括在缓冲区域中的所述一些存储器块的数量。
16.根据权利要求15所述的存储装置,其中,控制器同写入用户区域的数据的容量与用户区域的容量之比成比例地改变包括在缓冲区域中的所述一些存储器块的数量。
17.一种存储装置,包括:
非易失性存储器装置,非易失性存储器装置包括多个存储器块,所述多个存储器块被配置为包括所述多个存储器块之中的第一存储器块的用户区域以及包括所述多个存储器块之中的第二存储器块的缓冲区域;以及
控制器,被配置为:
接收用于将数据写入非易失性存储器装置的写入命令,写入命令包括用于通过缓冲区域将数据写入用户区域的turbo写入操作的turbo写入命令,
基于识别出数据的大小不超过缓冲区域的可用缓冲区大小,根据turbo写入命令的turbo写入操作,通过缓冲区域将数据写入非易失性存储器装置,缓冲区域的可用缓冲区大小包括第二存储器块之中的可用存储器块的大小,其中,在从缓冲区域的可用存储器块擦除存储在可用存储器块中的存储数据的时间与当前时间之间的时间段超过预定时间,并且
基于识别出数据的大小超过缓冲区域的可用大小,根据用于将数据直接写入用户区域的普通写入命令的普通写入操作,将数据写入非易失性存储器装置。
18.根据权利要求17所述的存储装置,还包括:
随机存取存储器,
其中,控制器从随机存取存储器读取数据,并将数据写入非易失性存储器装置。
19.一种计算装置,包括:
存储装置,包括缓冲区域和用户区域,并被配置为输出缓冲区域的存储无效数据的存储空间中的擦除之后的经过时间大于重用时间的存储空间的大小作为可用缓冲区大小;以及
处理器,其中,处理器被配置为:
接收可用缓冲区大小;
将需要turbo写入操作且其大小不大于可用缓冲区大小的数据与turbo写入命令一起发送到存储装置;并且
将不需要turbo写入操作的数据与普通写入命令一起发送到存储装置。
20.根据权利要求19所述的计算装置,其中,处理器还被配置为:
将需要turbo写入操作并且其大小大于可用缓冲区大小的数据分割为具有可用缓冲区大小的turbo部分和普通部分;
将turbo部分与turbo写入命令一起发送到存储装置;并且
将普通部分与普通写入命令一起发送到存储装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190029435A KR20200110547A (ko) | 2019-03-14 | 2019-03-14 | 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치 |
KR10-2019-0029435 | 2019-03-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111694511A true CN111694511A (zh) | 2020-09-22 |
Family
ID=69157595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911376861.9A Pending CN111694511A (zh) | 2019-03-14 | 2019-12-27 | 存储装置和包括存储装置的计算装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11132143B2 (zh) |
EP (1) | EP3709175A1 (zh) |
KR (1) | KR20200110547A (zh) |
CN (1) | CN111694511A (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901903B2 (en) * | 2018-12-21 | 2021-01-26 | Micron Technology, Inc. | Flash memory persistent cache techniques |
JP7490469B2 (ja) * | 2020-06-25 | 2024-05-27 | キオクシア株式会社 | ストレージデバイス、ストレージシステム及び制御方法 |
DE102022100592A1 (de) * | 2021-02-05 | 2022-08-11 | Samsung Electronics Co., Ltd. | Betriebsverfahren eines Universal-Flash-Storage-Hosts und Betriebsverfahren eines Universal-Flash-Storage-Systems |
US11481147B1 (en) * | 2021-06-17 | 2022-10-25 | EMC IP Holding Company LLC | Buffer allocation techniques |
US11614896B2 (en) | 2021-08-06 | 2023-03-28 | Western Digital Technologies, Inc. | UFS out of order hint generation |
US11829615B2 (en) | 2022-02-16 | 2023-11-28 | Western Digital Technologies, Inc. | Out of order data transfer hint calibration |
US11853201B2 (en) * | 2022-05-25 | 2023-12-26 | Micron Technology, Inc. | Selective single-level memory cell operation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4433374A (en) * | 1980-11-14 | 1984-02-21 | Sperry Corporation | Cache/disk subsystem with cache bypass |
US20160077968A1 (en) * | 2014-09-16 | 2016-03-17 | Sandisk Technologies Inc. | System and method for configuring and controlling non-volatile cache |
CN105786403A (zh) * | 2015-01-13 | 2016-07-20 | 三星电子株式会社 | 包括缓冲器和主存储器的存储装置及用户装置 |
US20170168930A1 (en) * | 2015-12-15 | 2017-06-15 | Samsung Electronics Co., Ltd. | Method for operating storage controller and method for operating storage device including the same |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152464A (ja) | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
US8060719B2 (en) | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
KR101861170B1 (ko) | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
KR20130060791A (ko) | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브 |
KR20140033964A (ko) | 2012-09-11 | 2014-03-19 | 삼성전자주식회사 | 단말기의 데이터 저장장치 및 방법 |
KR102285462B1 (ko) * | 2014-03-26 | 2021-08-05 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
US9841011B2 (en) | 2014-07-21 | 2017-12-12 | Lg Electronics Inc. | Linear compressor and a linear motor for a linear compressor |
KR20160024530A (ko) | 2014-08-26 | 2016-03-07 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
KR102282962B1 (ko) | 2014-12-22 | 2021-07-30 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20170015708A (ko) | 2015-07-30 | 2017-02-09 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
KR20170044780A (ko) * | 2015-10-15 | 2017-04-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102601211B1 (ko) | 2016-06-01 | 2023-11-10 | 삼성전자주식회사 | 빠른 재사용 메모리 블록 검출 방법 및 이를 이용한 메모리 블록 관리 방법 |
KR102417107B1 (ko) * | 2017-07-07 | 2022-07-05 | 마이크론 테크놀로지, 인크. | 관리되는 nand에 대한 rpmb 개선 |
-
2019
- 2019-03-14 KR KR1020190029435A patent/KR20200110547A/ko not_active Application Discontinuation
- 2019-09-20 US US16/577,790 patent/US11132143B2/en active Active
- 2019-12-27 CN CN201911376861.9A patent/CN111694511A/zh active Pending
-
2020
- 2020-01-07 EP EP20150631.8A patent/EP3709175A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4433374A (en) * | 1980-11-14 | 1984-02-21 | Sperry Corporation | Cache/disk subsystem with cache bypass |
US20160077968A1 (en) * | 2014-09-16 | 2016-03-17 | Sandisk Technologies Inc. | System and method for configuring and controlling non-volatile cache |
CN105786403A (zh) * | 2015-01-13 | 2016-07-20 | 三星电子株式会社 | 包括缓冲器和主存储器的存储装置及用户装置 |
US20170168930A1 (en) * | 2015-12-15 | 2017-06-15 | Samsung Electronics Co., Ltd. | Method for operating storage controller and method for operating storage device including the same |
Also Published As
Publication number | Publication date |
---|---|
EP3709175A1 (en) | 2020-09-16 |
US11132143B2 (en) | 2021-09-28 |
US20200293221A1 (en) | 2020-09-17 |
KR20200110547A (ko) | 2020-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3709175A1 (en) | Storage device and computing device including storage device | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
US9384123B2 (en) | Memory system | |
KR101311116B1 (ko) | 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당 | |
KR101297563B1 (ko) | 스토리지 관리 방법 및 관리 시스템 | |
US9933975B1 (en) | Data transmission method, memory storage device and memory control circuit unit | |
KR102641521B1 (ko) | 키-밸류 스토리지 장치 및 이의 동작 방법 | |
US9239785B2 (en) | Stochastic block allocation for improved wear leveling | |
JP2018120439A (ja) | メモリシステムおよび制御方法 | |
TWI729307B (zh) | 記憶體系統及非揮發性記憶體之控制方法 | |
EP3872641A2 (en) | Storage device and method of operating the storage device | |
KR20140113211A (ko) | 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법 | |
KR20150133913A (ko) | 메모리 컨트롤러의 동작 방법 | |
US20140078344A1 (en) | Device and method processing continuous shooting image data | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
CN108369818A (zh) | 一种闪存设备的刷新方法和装置 | |
CN114442914B (zh) | 存储器系统 | |
CN112306907A (zh) | 存储设备、包括其的存储系统及存储设备的操作方法 | |
US20220058116A1 (en) | Controller, memory system and data processing system | |
CN111399752A (zh) | 不同类型存储单元的控制装置及方法 | |
US20230244394A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
CN112306393A (zh) | 存储装置 | |
JP2019148913A (ja) | メモリシステム | |
CN115113806A (zh) | 存储系统、信息处理系统以及主机装置 | |
CN112306906A (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 |