CN112783433A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN112783433A CN112783433A CN202010822450.4A CN202010822450A CN112783433A CN 112783433 A CN112783433 A CN 112783433A CN 202010822450 A CN202010822450 A CN 202010822450A CN 112783433 A CN112783433 A CN 112783433A
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- data
- storage
- storage block
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本公开涉及一种电子装置。一种具有提高的速度的迁移性能的存储装置,包括:存储器装置,包括正常存储块和用于临时存储待迁移到正常存储块的数据的缓冲存储块;以及存储器控制器,被配置成控制存储器装置以响应于从主机接收的迁移请求,将缓冲存储块中存储的数据迁移到正常存储块,在将数据迁移到正常存储块的同时,该存储器控制器根据与迁移请求相对应的操作是否被延迟,将待存储数据的目标存储块从第一存储块改变为第二存储块,该第一存储块和该第二存储块被包括在正常存储块中。
Description
相关申请的交叉引用
本申请要求于2019年11月7日向韩国知识产权局提交的申请号为10-2019-0142051的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的实施例涉及一种电子装置,并且更特别地,涉及一种存储装置及其操作方法。
背景技术
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置和控制该存储器装置的存储器控制器。存储器装置可以包括易失性存储器装置、或非易失性存储器装置或这两者。
易失性存储器装置是仅当向其供应电力时才存储数据并且在电力供应被切断时丢失所存储的数据的装置。易失性存储器装置可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是即使切断电力供应也不会丢失所存储的数据的装置。非易失性存储器装置可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器等。
发明内容
本公开的实施例提供一种用于执行迁移操作的存储装置及其操作方法。
一种根据本公开的实施例的存储装置,包括:存储器装置,包括正常存储块和用于临时存储待迁移到正常存储块的数据的缓冲存储块;以及存储器控制器,被配置成控制存储器装置以响应于从主机接收的迁移请求,将缓冲存储块中存储的数据迁移到正常存储块,在将数据迁移到正常存储块的同时,该存储器控制器根据与迁移请求相对应的操作是否被延迟,将待存储数据的目标存储块从第一存储块改变为第二存储块,该第一存储块和该第二存储块被包括在正常存储块中。
一种根据本公开的实施例的存储器控制器,包括:迁移控制器,被配置成响应于从主机接收的迁移请求,控制存储器装置以将存储器装置的缓冲存储块中存储的数据迁移到存储器装置的正常存储块;以及写入位置设定组件,被配置成根据与迁移请求相对应的操作是否被延迟,在正常存储块中的第一存储块和第二存储块之间确定待存储数据的目标存储块。
一种根据本公开的实施例的操作存储装置的方法,包括:响应于高速(turbo)写入请求,将数据存储在存储器装置的缓冲存储块中;并且响应于从主机接收的迁移请求,将该存储器装置的缓冲存储块中存储的数据迁移到该存储器装置的正常存储块,其中迁移包括:在将数据迁移到正常存储块的同时,根据与迁移请求相对应的操作是否延迟,将待存储数据的目标存储块从第一存储块改变为第二存储块,该第一存储块和该第二存储块被包括在正常存储块中;并且当与迁移请求相对应的操作被延迟时,将数据迁移到第二存储块。
根据本技术的存储装置及其操作方法提供了提高的迁移性能。
附图说明
图1是示出根据实施例的存储装置的框图。
图2是用于描述根据实施例的高速写入操作和正常写入操作的示图。
图3是用于描述根据实施例的将数据迁移到第一存储块的操作的示图。
图4是用于描述根据实施例的将数据迁移到第一存储块和第二存储块的操作的示图。
图5是用于描述根据实施例的将数据迁移到第一存储块和第三存储块的操作的示图。
图6是用于描述根据实施例的命令队列的结构和迁移操作的示图。
图7是用于描述根据实施例的迁移操作的示图。
图8是用于描述图7所示的迁移操作的示图。
图9是用于描述根据另一实施例的迁移操作的示图。
图10是用于描述图9所示的迁移操作的示图。
图11是用于描述根据实施例的操作存储装置的方法的流程图。
图12是用于描述根据实施例的将数据迁移到正常存储块的进程的示图。
图13是示出存储器装置的示图。
图14是示出图13的存储块的示图。
图15是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。
图16是示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
图17是示出应用根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
根据在本说明书或申请中所公开的概念,实施例的具体结构或功能描述被示出仅为描述根据本公开的概念的实施例。根据本公开的概念的实施例可以以各种形式执行,并且描述不限于在本说明书或申请中描述的实施例。
在下文中,将参照附图描述本公开的实施例,使得本领域技术人员可以容易地实施本公开的技术精神。
图1是示出根据实施例的存储装置50的框图。
参照图1,存储装置50可以包括存储器装置100和用于控制存储器装置100的操作的存储器控制器200。
存储装置50可以是在诸如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC、车载信息娱乐系统等的主机300的控制下存储数据的装置。
根据作为与主机300的通信方法的主机接口,存储装置50可以包括各种类型的存储装置中的一种。例如,存储装置50可以被配置成诸如SSD,MMC、eMMC、RS-MMC或微型MMC形式的多媒体卡,SD、迷你SD或微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑式闪存(CF)卡,智能媒体卡、记忆棒等的各种类型的存储装置中的任意一种。
存储装置50可以被制造为诸如堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等各种类型的封装中的任意一种。
存储器装置100可以存储数据。存储器装置100在存储器控制器200的控制下操作。存储器装置100可以包括多个存储器管芯。多个存储器管芯中的每一个可以包括存储器单元阵列,存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被配置成存储一位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)或存储四位数据的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是用于擦除存储器装置100中存储的数据的单位。
在实施例中,存储器装置110可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述,假设存储器装置100是NAND闪速存储器。
存储器装置100可以从存储器控制器200接收命令和地址。存储器装置100被配置成访问存储器单元阵列中由所接收的地址选择的存储器区域。访问所选择的存储器区域意指对所选择的存储器区域执行与所接收的命令相对应的操作。例如,存储器装置100可以执行写入操作(或编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的存储器区域。在读取操作期间,存储器装置100可以读取由地址选择的存储器区域中存储的数据。在擦除操作期间,存储器装置100可以擦除由地址选择的存储器区域中存储的数据。
存储器装置100可以包括多个存储器管芯。每个存储器管芯可以包括至少一个存储器单元阵列。可以通过管芯交错操作、通道交错操作、通路交错操作或平面交错操作来控制多个存储器管芯。
在本公开的实施例中,存储器装置100可以包括缓冲存储块110和正常存储块120。缓冲存储块110可以是临时存储从存储器控制器200接收的数据的存储块。可以将缓冲存储块110中临时存储的数据迁移到正常存储块120。缓冲存储块110中包括的每个存储器单元可以存储一位数据。正常存储块120中包括的每个存储器单元可以存储一位数据或多位数据。
当电力被施加到存储装置50时,存储器控制器200可以运行固件(FW)。固件FW可以包括主机接口层HIL、闪存转换层(FTL)和闪存接口层(FIL),该主机接口层HIL从主机300接收请求或将响应输出到主机300,该闪存转换层(FTL)管理主机300的接口与存储器装置100的接口之间的操作,并且该闪存接口层(FIL)将对应于该请求的命令提供到存储器装置100或从存储器装置100接收响应。
存储器控制器200可以从主机300接收请求、写入数据和逻辑地址(LA),并且可以将逻辑地址映射到指示待存储写入数据的存储器单元的地址的物理地址(PA)。LA可以是逻辑块地址(LBA),并且PA可以是物理块地址(PBA)。
存储器控制器200可以根据主机300的请求来控制存储器装置100以执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、PBA和写入数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和PBA提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和PBA提供到存储器装置100。
存储器控制器200可以通过它自身来控制存储器装置100以执行编程操作、读取操作或擦除操作,而不管来自主机300的请求。例如,存储器控制器200可以控制存储器装置100以执行编程操作、读取操作或擦除操作,以便执行诸如耗损均衡、垃圾收集或读取回收的后台操作。
在本公开的实施例中,存储器控制器200可以包括迁移控制器210、写入位置设定组件220和命令队列230。
在实施例中,迁移控制器210、写入位置设定组件220和命令队列230可以使用一个或多个处理器(未示出)和存储器控制器200中包括的存储器或寄存器(未示出)来实施。
迁移控制器210可以从主机300接收迁移请求,并且控制存储器装置100以将缓冲存储块110中临时存储的数据迁移到正常存储块120。
写入位置设定组件220可以确定在正常存储块120中包括的多个存储块(未示出)之中的、缓冲存储块110中临时存储的数据被迁移到的存储块。写入位置设定组件220可以基于与来自主机300的迁移请求相关联的操作中是否存在延迟来确定缓冲存储块110中临时存储的数据被迁移到的存储块,并且可以生成指示所确定的存储块的存储位置信息。基于从写入位置设定组件220接收的存储位置信息,迁移控制器210可以控制存储器装置100将缓冲存储块110中临时存储的数据迁移到正常存储块120。
命令队列230可以将与从主机300接收的请求相对应的命令存储在存储器控制器200中包括的存储器或寄存器(未示出)中。例如,当从主机300接收到迁移请求时,命令队列230可以存储读取命令和编程命令的命令组,该命令组对应于迁移请求。迁移控制器210可以通过参照命令队列230中存储的读取命令来读取在缓冲存储块110中临时存储的数据,并且通过参照命令队列230中存储的编程命令将读取数据编程在正常存储块120中,来执行迁移操作。
主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存装置(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)。
图2是用于描述根据实施例的在图1的存储装置50中所执行的高速写入操作和正常写入操作的示图。
参照图2,主机300可以将高速写入请求或正常写入请求传送到存储装置50中的存储器控制器200。当存储器控制器200接收到正常写入请求时,存储器控制器200可以控制存储器装置100将与该正常写入请求相对应的数据存储在正常存储块120中。当存储器控制器200接收到高速写入请求时,存储器控制器200可以控制存储器装置100将与该高速写入请求相对应的数据临时存储在缓冲存储块110中。
主机300可以将迁移请求传送到存储器控制器200。当存储器控制器200接收到迁移请求时,存储器控制器200可以控制存储器装置100以将缓冲存储块110中临时存储的数据迁移到正常存储块120。
正常存储块120可以包括第一存储块121和第二存储块122。第一存储块121中包括的存储器单元可以存储比第二存储块122中包括的存储器单元中存储的数据位数更多的数据。例如,当第一存储块121中包括的存储器单元是诸如MLC、TLC、QLC等的存储多位数据的存储器单元时,第二存储块122中包括的存储器单元可以是存储一位数据的SLC。
因为第二存储块122中包括的存储器单元存储比第一存储块121中包括的存储器单元中存储的数据位数更少的数据,所以其阈值电压分布之间的分布间隔可以比第一存储块121中包括的存储器单元的编程分布之间的分布间隔更宽。因此,与当将数据存储在第一存储块121中包括的存储器单元中时相比,当将数据存储在第二存储块122中包括的存储器单元中时,可以快速地存储可靠的数据。
图3是用于描述根据实施例的将数据迁移到第一存储块121的操作的示图。
参照图3,缓冲存储块110可以临时存储第一数据DATA1至第四数据DATA4。即,响应于从主机300接收的高速写入请求,存储器控制器200可以控制存储器装置100以将第一数据DATA1至第四数据DATA4存储在缓冲存储块110中。
之后,当从主机300接收到迁移请求时,迁移控制器210可以执行控制存储器装置100以将缓冲存储块110中存储的第一数据DATA1至第四数据DATA4迁移到正常存储块120的迁移操作。
迁移控制器210可以根据与迁移请求相对应的命令队列230中存储的迁移命令来执行迁移操作。具体地,迁移控制器210可以执行控制存储器装置100以读取缓冲存储块110中临时存储的数据的迁移操作,并且通过使用与命令队列230中存储的迁移命令相对应的命令信息,将读取数据编程到正常存储块120中。
写入位置设定组件220可以基于命令队列230中存储的延迟相关信息,将第一存储块121和第二存储块122中的一个确定为用于存储第一数据DATA1至第四数据DATA4的目标存储块,并且可以生成与目标存储块相对应的写入位置信息。延迟相关信息可以是命令队列230中存储的命令的优先级信息或命令的超时信息。命令的优先级信息涉及每个命令的处理优先级,并且超时信息涉及每个命令的进程时间。写入位置信息可以包括作为第一存储块121或第二存储块122的目标存储块的物理地址信息。
迁移控制器210可以从写入位置设定组件220接收写入位置信息,并且可以基于写入位置信息来控制存储器装置100以将第一数据DATA1至第四数据DATA4存储在作为第一存储块121或第二存储块122的目标存储块中。
当第一数据DATA1至第四数据DATA4被存储在第一存储块121中时,迁移时间可以是第一时间T1。迁移时间可以包括从缓冲存储块110读取第一数据DATA1至第四数据DATA4所用的时间以及将所读取的第一数据DATA1至第四数据DATA4编程到第一存储块121中所用的时间。
图4是用于描述根据实施例的将数据迁移到第一存储块121和第二存储块122的操作的示图。
参照图4,当迁移控制器210从主机300接收到迁移请求时,迁移控制器210可以执行控制存储器装置100以将缓冲存储块110中存储的第一数据DATA1至第四数据DATA4迁移到正常存储块120的迁移操作。
写入位置设定组件220可以基于命令队列230中存储的延迟相关信息来确定与迁移命令相对应的操作的执行是否被延迟。根据与该命令相对应的操作的执行是否延迟,写入位置设定组件220可以将第一存储块121或第二存储块122中的一个确定为待将第一数据DATA1至第四数据DATA4迁移到的目标存储块。延迟相关信息可以是命令的优先级信息或命令的超时信息。
例如,在将第一数据DATA1至第三数据DATA3存储在第一存储块121中之后,写入位置设定组件220可以确定与迁移命令相对应的操作的执行被延迟。当写入位置设定组件220确定与迁移命令相对应的操作的执行被延迟时,写入位置设定组件220可以生成写入位置信息以将第四数据DATA4存储在第二存储块122中。
与当将数据存储在第一存储块121中包括的存储器单元中时相比,当将数据存储在第二存储块122中包括的存储器单元中时,可以快速地存储可靠的数据。因此,作为将第一数据DATA1至第三数据DATA3迁移到第一存储块121时所用的时间T2以及将第四数据DATA4迁移到第二存储块122时所用的时间T3的总和的时间T4,可以比将所有第一数据DATA1至第四数据DATA4迁移到第一存储块121时所用的迁移时间T1少(T4<T1)。
当第一数据DATA1至第四数据DATA4存储在第一存储块121或第二存储块122中时,迁移控制器210可以通过将迁移完成信息发送到主机300来通知主机300迁移完成。
在通知主机300迁移完成之后,存储器控制器200可以控制存储器装置100以在空闲时间将第二存储块122中存储的第四数据DATA4移动到第一存储块121。
在本公开的实施例中,通过将缓冲存储块110中临时存储的数据迁移到正常存储块120中的不同存储块,可以减少用于通知主机300迁移完成所用的响应时间。
即,根据实施例,根据与迁移命令相对应的操作的执行是否被延迟,存储装置50可以通过将缓冲存储块110中存储的数据迁移到例如第二存储块122的正常存储块来缩短迁移时间,该第二存储块122包括与第一存储块121中的存储器单元相比能够存储更少位数的数据的存储器单元。
图5是用于描述根据实施例的将数据迁移到第一存储块121和第三存储块123的操作的示图。
参照图5,正常存储块120可以进一步包括第三存储块123。第三存储块123中包括的存储器单元可以存储比第一存储块121中包括的存储器单元中存储的数据位数更少的数据,并且可以存储比第二存储块122中包括的存储器单元中存储的数据位数更多的数据。例如,当第二存储块122中包括的存储器单元是SLC时,第三存储块123中包括的存储器单元可以是MLC,并且第一存储块121中包括的存储器单元可以是TLC。
因为第三存储块123中包括的存储器单元存储的数据的位数比第一存储块121中包括的存储器单元中存储的数据更少,所以其阈值电压分布之间的分布间隔可以比第一存储块121中包括的存储器单元的阈值电压分布之间的分布间隔更宽。因此,与当将数据存储在第一存储块121中包括的存储器单元中时相比,当将数据存储在第三存储块123中包括的存储器单元中时,可以快速地存储可靠的数据。
同时,因为第三存储块123中包括的存储器单元存储的数据的位数比第二存储块122中包括的存储器单元中存储的数据更多,所以其阈值电压分布之间的分布间隔可以比第二存储块122中包括的存储器单元的阈值电压分布之间的分布间隔更窄。因此,与当将数据存储在第三存储块123中包括的存储器单元中时相比,当将数据存储在第二存储块122中包括的存储器单元中时,可以快速地存储可靠的数据。
在将第一数据DATA1至第三数据DATA3存储在第一存储块121中之后,写入位置设定组件220可以确定与迁移命令相对应的操作是否被延迟。当确定与迁移命令相对应的操作被延迟时,写入位置设定组件220可以生成写入位置信息以将第四数据DATA4存储在第三存储块123中。
因为用于将第四数据DATA4迁移到第三存储块123所用的时间T5可以比将第四数据DATA4迁移到第二存储块122所用的时间T3更长,所以图5中所示的总迁移时间T6可以比图3所示的总迁移时间T1更短,并且可以比图4所示的总迁移时间T4更长。
参照图4和图5,存储装置50可以将缓冲存储块110中存储的数据之中没有迁移到第一存储块121的数据选择性地迁移到第二存储块122或第三存储块123。即,考虑到迁移时间和对存储器装置100的逻辑存储空间的有效利用,存储装置50可以选择性地将数据迁移到不同的存储块。
图6是用于描述根据实施例的命令队列230的结构和迁移操作的示图。
参照图6,当从主机300接收到迁移请求时,命令队列230中可以生成迁移命令。迁移命令可以是用于将缓冲存储块110中临时存储的数据迁移到存储器装置100中的正常存储块120的命令。迁移命令可以包括针对第一数据DATA1的读取命令、针对第二数据DATA2的读取命令、针对第三数据DATA3的读取命令、针对第四数据DATA4的读取命令、针对第一数据DATA1的编程命令、针对第二数据DATA2的编程命令、针对第三数据DATA3的编程命令以及针对第四数据DATA4的编程命令。迁移命令可以被顺序地处理。为了便于描述,在将所有读取命令处理之后处理编程命令,但是读取命令和编程命令的处理顺序不限于此。
当生成迁移命令时,迁移控制器210可以从命令队列230接收与迁移命令相对应的命令信息,并且将命令CMD、地址ADDR和/或数据DATA传送到存储器装置100。当迁移控制器210将编程命令传送到存储器装置100时,迁移控制器210可以从写入位置设定组件220接收数据待被编程到其中的存储块的写入位置信息,并且可以将基于写入位置信息而生成的地址传送到存储器装置100。
在图6所示的实施例中,写入位置设定组件220可以将第一存储块121的写入位置信息传送到迁移控制器210。迁移控制器210可以控制存储器装置100以响应于命令队列230中存储的读取命令而从缓冲存储块110读取数据,并且响应于命令队列230中存储的编程命令而将所读取的数据编程到第一存储块121中。
图7是用于描述根据实施例的迁移操作的示图。
参照图7,在完成针对第三数据DATA3的编程命令后,根据主机300的请求或存储装置50的内部操作,命令队列230中可以生成后续命令。后续命令的处理优先级可以比针对第四数据DATA4的编程命令的处理优先级更高。因此,可以延迟与针对第四数据DATA4的编程命令相对应的操作。
写入位置设定组件220可以从命令队列230获得延迟相关信息。延迟相关信息可以包括命令的优先级信息或命令的超时信息。写入位置信息可以包括第一存储块121或第二存储块122的物理地址信息。
写入位置设定组件220可以生成写入位置信息,使得基于延迟相关信息将第四数据DATA4编程到第二存储块122中。例如,写入位置设定组件220可以基于命令的优先级信息来确定具有比针对第四数据DATA4的编程命令的处理优先级更高的处理优先级的命令的数量,并且当具有比针对第四数据DATA4的编程命令的处理优先级更高的处理优先级的命令的数量大于第一阈值数量时,写入位置设定组件220可以生成写入位置信息,使得将第四数据DATA4编程到第二存储块122中。可选地,写入位置设定组件220可以基于与每个命令的进程时间相关的超时信息来确定与针对第四数据DATA4的编程命令相对应的操作的等待时间(或延迟时间),并且当等待时间大于第一阈值时间时,写入位置设定组件220可以生成写入位置信息,使得将第四数据DATA4编程到第二存储块122中。与针对第四数据DATA4的编程命令相对应的操作的等待时间或延迟时间表示从生成编程命令到操作处理开始的时间段。
图8是用于描述图7所示的迁移操作的示图。
参照图8,可以在生成后续命令之前生成作为迁移命令的编程命令,但是根据处理优先级,可以先于编程命令处理后续命令。在这种情况下,写入位置设定组件220可以确定与编程命令相对应的操作被延迟,并且可以将缓冲存储块110中存储的数据迁移到包括存储相对较少位的数据的存储器单元的存储块,以便快速处理编程命令。
具体地,当具有比编程命令的处理优先级更高的处理优先级的后续命令的数量大于第一阈值数量时,或者当编程命令的延迟时间超过第一阈值时间时,写入位置设定组件220可以改变写入位置,使得将缓冲存储块110中存储的数据迁移到的正常存储块变为包括存储相对较少位的数据的存储器单元的存储块。
图9是用于描述根据另一实施例的数据迁移操作的示图。
参照图9,在处理所有迁移命令之前,响应于后续请求,命令队列230中可以生成具有比迁移命令的处理优先级更低的处理优先级的多个后续命令。当同时生成多个后续命令时,可能出现较长的延迟时间,直到执行与具有相对较低的处理优先级的后续命令相对应的操作为止。
写入位置设定组件220可以从命令队列230获得延迟相关信息。延迟相关信息可以包括命令的优先级信息或命令的超时信息。写入位置信息可以包括第一存储块121或第二存储块122的物理地址信息。
写入位置设定组件220可以生成写入位置信息,使得基于延迟相关信息将第四数据DATA4编程到第二存储块122中。例如,写入位置设定组件220可以基于优先级信息来确定多个后续命令之中具有比具有最低处理优先级的后续命令更高的处理优先级的后续命令的数量,并且当具有该更高处理优先级的后续命令的数量大于第二阈值数量时,写入位置设定组件220可以生成写入位置信息,使得将第四数据DATA4编程到第二存储块122中。可选地,写入位置设定组件220可以基于超时信息来确定与具有最低处理优先级的后续命令相对应的操作的等待时间,并且当等待时间大于第二阈值时间时,写入位置设定组件220可以生成写入位置信息,使得将第四数据DATA4编程到第二存储块122中。
可以通过快速执行具有比多个后续命令更高的处理优先级的迁移命令来缩短与具有最低处理优先级的后续命令相对应的操作的等待时间。
图10是用于描述图9所示的迁数据移操作的示图。
参照图10,在处理迁移命令的同时,命令队列230中可以生成多个后续命令。多个后续命令可以具有比迁移命令的处理优先级更低的处理优先级。因此,多个后续命令的处理可以被延迟,直到迁移命令被处理为止。即使同时生成多个后续命令,与具有相对高的处理优先级的后续命令的处理相比,具有相对低的处理优先级的后续命令的处理可以被延迟更久。在这种情况下,为了确保多个后续命令的进程时间,在针对迁移的编程操作期间,写入位置设定组件220可以将缓冲存储块110中存储的数据迁移到包括存储相对较少位的数据的存储器单元的存储块。
具体地,当与多个后续命令之中具有最低处理优先级的后续命令相比具有更高处理优先级的后续命令的数量大于第二阈值数量时,写入位置设定组件220可以改变写入位置信息,使得将缓冲存储块110中存储的数据迁移到包括存储相对较少位的数据的存储器单元的存储块。可选地,当与具有最低处理优先级的后续命令相对应的操作的等待时间大于第二阈值时间时,写入位置设定组件220可以改变写入位置信息,使得将第四数据DATA4编程到第二存储块122中。
图11是用于描述根据实施例的操作图1的存储装置50的方法的流程图。
参照图11,在步骤S1101中,存储装置50可以从主机300接收写入请求。存储装置50可以从主机300接收地址信息或数据信息以及写入请求。
在步骤S1103中,确定从主机300接收的写入请求是否是高速写入请求。当确定从主机300接收的写入请求不是高速写入请求时,进程移至步骤S1113。
在步骤S1113中,存储装置50可以将从主机300接收的数据存储在正常存储块120中。考虑到正常存储块120中包括的第一存储块121、第二存储块122和第三存储块123的每一个中包括的存储器单元中存储的数据的位数,或将数据存储在存储器单元中的速度,存储装置50可以选择待存储从主机300接收的数据的存储块。
在步骤S1113中将数据存储在正常存储块120中之后,在步骤S115中,存储装置50可以通知主机300写入完成。
在步骤S1103中,当确定从主机300接收的写入请求是高速写入请求时,进程移至步骤S1105。
在步骤S1105中,存储装置50可以将从主机300接收的数据存储在缓冲存储块110中。缓冲存储块110中包括的存储器单元可以存储一位数据。由缓冲存储块110中存储的数据指示的阈值电压分布之间的分布间隔可以相对较宽。因此,将数据存储在缓冲存储块110中的速度可以比将数据存储在正常存储块120中的速度更快。
将数据存储在缓冲存储块110中之后,在步骤S1107中,存储装置50可以通知主机300写入完成。在这种情况下,与将数据存储在正常存储块120中的情况相比,存储装置50可以更快地通知写入完成。
在步骤S1109中,当确定存储装置50从主机300接收到迁移请求时,进程可以移至步骤S1111,以便将缓冲存储块110中存储的数据迁移到正常存储块120。另一方面,当确定存储装置50没有从主机300接收到迁移请求时,存储装置50可以等待直到接收到迁移请求为止。可选地,可能发生在存储装置50内部触发迁移操作的情况。例如,当缓冲存储块110中存储的数据的大小等于或大于参考值时,可以将缓冲存储块110中存储的数据迁移到正常存储块120。
图12是用于描述将数据迁移到正常存储块的进程的示图。下面将参照图1所示的存储装置50描述图12的进程。
参照图12,在步骤S1201中,存储装置50可以将缓冲存储块110中存储的数据迁移到正常存储块120中的第一存储块121。第一存储块121中包括的存储器单元可以存储多位数据,例如,两位或更多位的数据。
在步骤S1203中,存储装置50可以确定与迁移请求相关联的操作是否被延迟。
在实施例中,存储装置50可以确定与迁移请求相对应的操作是否被延迟。例如,响应于迁移请求,可以确定具有比命令队列230中生成的迁移命令的处理优先级更高的处理优先级的后续命令的数量。当具有更高处理优先级的后续命令的数量大于第一阈值数量时,可以确定与迁移请求相对应的操作被延迟。可选地,可以确定与命令队列230中生成的迁移命令相对应的操作的等待时间,并且当该等待时间大于第一阈值时间时,可以确定与迁移请求相对应的操作被延迟。而且,已经参照图7和8描述了该实施例。
在另一实施例中,存储装置50可以确定与在迁移请求被延迟之后接收的后续请求相对应的操作是否被延迟。例如,当响应于后续请求而在命令队列230中生成多个后续命令时,可以确定多个后续命令之中具有比具有最低处理优先级的后续命令更高的处理优先级的后续命令的数量。当具有更高处理优先级的后续命令的数量大于第二阈值数量时,可以确定与迁移请求相对应的操作被延迟。可选地,可以确定与具有最低处理优先级的后续命令相对应的操作的等待时间,并且当该等待时间大于第二阈值时间时,可以确定与迁移请求相对应的操作被延迟。而且,已经参照图9和10描述了该实施例。
当确定与迁移请求相关的操作被延迟时,进程可以移至步骤S1205,并且当确定与迁移请求相关的操作没有被延迟时,进程可以移至步骤S1211。
在步骤S1211中,存储装置50可以将缓冲存储块110中存储的剩余数据迁移到第一存储块121,该剩余数据是缓冲存储块110中存储的数据之中除了在步骤S1201中迁移到第一存储块121的数据以外的数据。
在步骤S1205中,存储装置50可以将剩余数据迁移到第二存储块122。在另一实施例中,存储装置50可以将剩余数据迁移到第三存储块123。第三存储块123中包括的存储器单元可以存储比第二存储块122中包括的存储器单元中存储的数据位数更多的数据。
在执行步骤S1205或步骤S1211之后,在步骤S1207中,存储装置50可以通知主机300迁移操作完成。
在步骤S1209中,存储装置50可以重置缓冲存储块110。具体地,存储装置50可以擦除缓冲存储块110中存储的数据或使缓冲存储块110中存储的数据无效。
图13是用于描述根据本公开的实施例的图1的存储器装置100的示图。
参照图13,存储器装置100可以包括存储器单元阵列1310、外围电路1320和控制逻辑1330。
存储器单元阵列1310包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL连接到行解码器1321。存储块BLK1至BLKz可以通过位线BL1至BLn连接到页面缓冲器组1323。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元。连接到同一字线的存储器单元可以被定义为一个页面。因此,一个存储块可以包括多个页面。
行线RL可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。
存储器单元阵列1310中包括的存储器单元中的每一个可以是存储一位数据的SLC、存储两位数据的MLC、存储三位数据的TLC或存储四位数据的QLC。
外围电路1320可以被配置成在控制逻辑1330的控制下对存储器单元阵列1310的所选择的区域执行编程操作、读取操作或擦除操作。外围电路1320可以驱动存储器单元阵列1310。例如,外围电路1320可以在控制逻辑1330的控制下通过行线RL和位线BL1至BLn将各种操作电压施加存储器单元阵列1310或使所施加的电压放电。
外围电路1320可以包括行解码器1321、电压生成器1322、页面缓冲器组1323、列解码器1324和输入/输出电路1325。
行解码器1321通过行线RL连接到存储器单元阵列1310。在实施例中,行线RL中包括的字线可以包括普通字线和虚设字线。在实施例中,行线RL可以进一步包括管道选择线。
地址解码器1321被配置成响应于控制逻辑1330的控制而操作。行解码器1321从控制逻辑1330接收行地址RADD。
行解码器1321被配置成对行地址RADD进行解码。行解码器1321根据经解码的地址在存储块BLK1至BLKz之中选择至少一个存储块。另外,行解码器1321可以选择所选择的存储块的至少一条字线,以根据经解码的地址将由电压生成器1322生成的电压施加到所选择的字线WL。
例如,在编程操作期间,行解码器1321可以将编程电压施加到所选择的字线,并且将具有比编程电压的电平更低的电平的编程通过电压施加到未选择的字线。在编程验证操作期间,行解码器1321可以将验证电压施加到所选择的字线,并且将具有比验证电压更高的电平的验证通过电压施加到未选择的字线。在读取操作期间,行解码器1321可以将读取电压施加到所选择的字线,并且将具有比读取电压更高的电平的读取通过电压施加到未选择的字线。
在实施例中,以存储块为单位执行存储器装置100的擦除操作。在擦除操作期间,行解码器1321可以根据经解码的地址选择一个存储块。在擦除操作期间,行解码器1321可以将接地电压施加到连接到所选择的存储块的字线。
电压生成器1322响应于控制逻辑1330的控制而操作。电压生成器1322使用供应到存储器装置100的外部电源电压来生成多个电压。具体地,电压生成器1322可以响应于操作信号OPSIG而生成在编程操作、读取操作和擦除操作中使用的各种操作电压Vop。例如,电压生成器1322可以响应于控制逻辑1330的控制而生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压生成器1322可以通过调节外部电源电压来生成内部电源电压。由电压生成器1322生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器1322可以使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器1322可以包括接收内部电源电压的多个泵浦(pumping)电容器,并且响应于控制逻辑1330的控制而选择性地激活多个泵浦电容器以生成多个电压。
可以通过行解码器1321将所生成的多个电压供应到存储器单元阵列1310。
页面缓冲器组1323包括第一页面缓冲器至第n页面缓冲器PB1至PBn。第一页面缓冲器至第n页面缓冲器PB1至PBn分别通过第一位线至第n位线BL1至BLn连接到存储器单元阵列1310。第一页面缓冲器至第n页面缓冲器PB1至PBn可以在控制逻辑1330的控制下而操作。具体地,第一页面缓冲器至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIGNALS而操作。例如,第一页面缓冲器至第n页面缓冲器PB1至PBn可以临时存储从存储器单元阵列1310通过第一位线至第n位线BL1至BLn接收的数据,或可以在读取操作或验证操作期间感测位线BL1至BLn的电压或电流。
具体地,在编程操作期间,当将编程脉冲施加到所选择的字线时,第一页面缓冲器至第n页面缓冲器PB1至PBn可以将通过数据输入/输出电路1325接收的数据DATA通过第一位线至第n位线BL1至BLn传送到所选择的存储器单元。根据所传送的数据DATA来编程所选择的页面的存储器单元。连接到施加有编程许可电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。连接到施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以被保持。在编程验证操作期间,第一页面缓冲器至第n页面缓冲器PB1至PBn通过第一位线至第n位线BL1至BLn从所选择的页面读取数据。
在读取操作期间,第一页面缓冲器至第n页面缓冲器PB1至PBn通过第一位线至第n位线BL1至BLn从所选择的页面的存储器单元中读取数据DATA,并且可以在列解码器1324的控制下将所读取的数据DATA输出到数据输入/输出电路1325。
在擦除操作期间,第一页面缓冲器至第n页面缓冲器PB1至PBn可以使第一位线至第n位线BL1至BLn浮置。
列解码器1324可以响应于来自控制逻辑1330的列地址CADD在输入/输出电路1325和页面缓冲器组1323之间传送数据。例如,列解码器1324可以通过数据线DL与第一页面缓冲器至第n页面缓冲器PB1至PBn交换数据,或者可以通过列线CL与输入/输出电路1325交换数据。
输入/输出电路1325可以将从参照图1描述的存储器控制器200接收的命令CMD和地址ADDR传送到控制逻辑1330,或者可以与列解码器1324交换数据DATA。
感测电路1326可以在读取操作或验证操作期间,响应于许可位信号VRYBIT生成参考电流,并且将从页面缓冲器组1323接收的感测电压VPB与使用参考电流而生成的参考电压进行比较,以输出通过信号PASS或失败信号FAIL。
控制逻辑1430可以基于命令CMD和地址ADDR来输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和许可位信号VRYBIT以控制外围电路1320。另外,控制逻辑1330可以响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。
图14是用于描述图13的存储块BLKi的示图。
参照图14,在第一选择线和第二选择线之间彼此平行布置的多条字线可以连接到存储块BLKi。在此,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。更具体地,存储块BLKi可以包括连接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn可以分别连接到串ST,并且源极线SL可以共同连接到串ST。因为可以将串ST彼此相同地配置,所以将具体地描述连接到第一位线BL1的串ST作为示例。
连接到第一位线BL1的串ST可以包括串联连接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元MC1至MC16以及漏极选择晶体管DST。一个串ST可以包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且可以包括比存储器单元MC1至MC16数量更多的存储器单元。
源极选择晶体管SST的源极可以连接到源极线SL,并且漏极选择晶体管DST的漏极可以连接到第一位线BL1。存储器单元MC1至MC16可以串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以连接到源极选择线SSL,漏极选择晶体管DST的栅极可以连接到漏极选择线DSL,并且存储器单元MC1至MC16的栅极可以分别连接到多条字线WL1至WL16。不同的串ST中包括的存储器单元之中的连接到相同字线的一组存储器单元可以被称为物理页面PG。因此,存储块BLKi可以包括与字线WL1至WL16的数量一样多的物理页面PG。
一个存储器单元可以存储1位数据。这通常被称为单层单元(SLC)。在这种情况下,一个物理页面PG可以对应于存储一个逻辑页面(LPG)数据的一个逻辑页面(LPG)。一个逻辑页面(LPG)数据可以包括与一个物理页面(PG)中包括的单元的数量一样多的数据位。
另外,一个存储器单元可以存储多位数据。在这种情况下,一个物理页面(PG)可以对应于多个逻辑页面。
图15是示出应用根据本公开的实施例的存储装置的存储卡系统2000的框图。
参照图15,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200和主机之间的接口。存储器控制器2100被配置成驱动用于控制存储器装置2200的固件。
例如,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和ECC校正器的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定的通信标准与外部装置(例如,主机)通信。例如,存储器控制器2100被配置成通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和NVMe。例如,连接器2300可以由上述各种通信标准中的至少一种来定义。
存储器控制器2100可以执行参照图1所描述的存储器控制器200的功能。
存储器装置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)的存储卡。
图16是示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统3000的框图。
参照图16,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个非易失性存储器(NVMs)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)、WiFi、蓝牙和NVMe。
辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可以从主机3100接收电力PWR。当来自主机3100的电力供应不平稳时,辅助电源装置3230可以将电力提供到SSD 3200。例如,辅助电源装置3230可以位于SSD 3200中或者可以位于SSD3200的外部。例如,辅助电源装置3230可以位于主板上,并且可以将辅助电力提供到SSD3200。
缓冲存储器3240可以作为SSD 3200的缓冲存储器来操作。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个非易失性存储器3221至322n接收的数据,或者可以临时存储非易失性存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM、GRAM等的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM、PRAM等的非易失性存储器。
图17是示出应用根据本公开的实施例的存储装置的用户系统4000的框图。
参照图17,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(OS)、用户程序等。例如,应用处理器4100可以包括控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器来操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM或LPDDR3 SDRAM的易失性存储器,或者诸如PRAM、ReRAM、MRAM或FRAM的非易失性存储器。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)来进行封装,并且可以被设置为一个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、Wimax、WLAN、UWB、蓝牙和WiFi的无线通信。在实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。例如,存储模块4400可以用诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存、三维NAND闪存等的非易失性存储器来实施。例如,存储模块4400可以被设置为诸如用户系统4000的存储卡或外部驱动器的可移动存储装置(可移动驱动器)。
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图13和图14描述的存储器装置相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于向外部装置输出数据的接口。例如,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口中的一个或多个。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示器装置、LED、扬声器和监视器的用户输出接口中的一个或多个。
如上所述,根据本公开的实施例,在将缓冲存储块110中存储的数据迁移到第一存储块121的同时,可以将还没迁移到第一存储块121的数据迁移到与第一存储块121相比可以快速存储可靠的数据的第二存储块122,并且因此可以提高迁移的速度。
尽管上面已经描述了各个实施例,但是本领域技术人员将理解的是,描述的实施例仅仅作为示例。因此,本文中描述的系统和装置不应受限于所描述的实施例。
Claims (20)
1.一种存储装置,包括:
存储器装置,包括正常存储块和临时存储待存储到所述正常存储块的数据的缓冲存储块;以及
存储器控制器,控制所述存储器装置以响应于从主机接收的迁移请求,将所述缓冲存储块中存储的数据迁移到所述正常存储块,在将所述数据迁移到所述正常存储块的同时,所述存储器控制器根据与所述迁移请求相对应的操作是否被延迟,将待存储所述数据的目标存储块从第一存储块改变为第二存储块,所述第一存储块和所述第二存储块被包括在所述正常存储块中。
2.根据权利要求1所述的存储装置,其中所述存储器控制器根据与所述迁移请求相对应的操作的延迟时间是否超过第一阈值时间,控制所述存储器装置将所述目标存储块从所述第一存储块改变为所述第二存储块,所述延迟时间对应于从生成用于处理所述操作的命令到所述操作的处理开始的时间段。
3.根据权利要求1所述的存储装置,其中所述存储器控制器根据与在所述迁移请求之后接收的后续请求相对应的后续命令的数量是否超过阈值,控制所述存储器装置将所述目标存储块从所述第一存储块改变为所述第二存储块,所述后续命令具有比与所述迁移请求相对应的所述操作更高的处理优先级。
4.根据权利要求1所述的存储装置,其中所述存储器控制器根据与在所述迁移请求之后接收的后续请求相对应的操作的延迟时间是否超过第二阈值时间,控制所述存储器装置将所述目标存储块从所述第一存储块改变为所述第二存储块,对应于所述迁移请求的操作具有比对应于所述后续请求的操作更高的处理优先级。
5.根据权利要求1所述的存储装置,其中,在将所述目标存储块从所述第一存储块改变为所述第二存储块之后,所述存储器控制器控制所述存储器装置将剩余数据迁移到所述第二存储块,所述剩余数据表示所述缓冲存储块中存储的数据之中的、除了在改变存储块之前迁移到所述第一存储块的数据以外的数据。
6.根据权利要求5所述的存储装置,其中在将所述剩余数据迁移到所述第二存储块之后,所述存储器控制器通知所述主机迁移完成。
7.根据权利要求1所述的存储装置,其中所述第一存储块中包括的存储器单元存储具有比所述第二存储块中包括的存储器单元中存储的数据更多位数的数据。
8.一种控制存储器装置的存储器控制器,所述存储器控制器包括:
迁移控制器,响应于从主机接收的迁移请求,控制所述存储器装置以将所述存储器装置的缓冲存储块中存储的数据迁移到所述存储器装置的正常存储块;以及
写入位置设定组件,根据与所述迁移请求相对应的操作是否被延迟,在所述正常存储块中的第一存储块和第二存储块之间确定待存储所述数据的目标存储块。
9.根据权利要求8所述的存储器控制器,其中所述写入位置设定组件根据与所述迁移请求相对应的操作的延迟时间是否超过第一阈值时间,确定所述目标存储块,所述延迟时间对应于从生成用于处理所述操作的命令到所述操作的处理开始的时间段。
10.根据权利要求8所述的存储器控制器,其中所述写入位置设定组件根据与在所述迁移请求之后接收的后续请求相对应的后续命令的数量是否超过阈值,确定所述目标存储块,所述后续命令具有比对应于所述迁移请求的操作更高的处理优先级。
11.根据权利要求10所述的存储器控制器,进一步包括:
命令队列,存储响应于所述迁移请求而生成的命令以及响应于所述后续请求而生成的所述后续命令,并且将所存储的命令传送到所述存储器装置。
12.根据权利要求8所述的存储器控制器,其中所述写入位置设定组件根据与在所述迁移请求之后接收的后续请求相对应的操作的延迟时间是否超过第二阈值时间,确定所述目标存储块,对应于所述迁移请求的操作具有比对应于所述后续请求的操作更高的处理优先级。
13.根据权利要求8所述的存储器控制器,其中,当所述写入位置设定组件根据与所述迁移请求相对应的操作是否延迟,将所述目标存储块从所述第一存储块改变为所述第二存储块时,所述迁移控制器控制所述存储器装置将剩余数据迁移到所述第二存储块,所述剩余数据表示所述缓冲存储块中存储的数据之中的、除了在所述目标存储块从所述第一存储块改变为所述第二存储块之前迁移到所述第一存储块的数据以外的数据。
14.根据权利要求8所述的存储器控制器,其中所述第一存储块中包括的存储器单元存储具有比所述第二存储块中包括的存储器单元中存储的数据更多位数的数据。
15.一种操作存储装置的方法,所述存储装置包括存储器装置和存储器控制器,所述方法包括:
响应于高速写入请求,将数据存储在所述存储器装置的缓冲存储块中;并且
响应于从主机接收的迁移请求,将所述存储器装置的所述缓冲存储块中存储的所述数据迁移到所述存储器装置的正常存储块,
其中所述迁移包括:
在将所述数据迁移到所述正常存储块的同时,根据与所述迁移请求相对应的操作是否被延迟,将待存储所述数据的目标存储块从第一存储块改变为第二存储块,所述第一存储块和所述第二存储块被包括在所述正常存储块中;并且
当与所述迁移请求相对应的操作被延迟时,将所述数据迁移到所述第二存储块。
16.根据权利要求15所述的方法,其中改变所述目标存储块包括:
根据与所述迁移请求相对应的操作的延迟时间是否超过第一阈值时间,将所述目标存储块从所述第一存储块改变为所述第二存储块,所述延迟时间对应于从生成用于处理所述操作的命令到所述操作的处理开始的时间段。
17.根据权利要求15所述的方法,其中改变所述目标存储块包括:
根据与在所述迁移请求之后接收的后续请求相对应的后续命令的数量是否超过阈值数量,将所述目标存储块从所述第一存储块改变为所述第二存储块,所述后续命令具有比对应于所述迁移请求的操作更高的处理优先级。
18.根据权利要求15所述的方法,其中将所述数据迁移到所述第二存储块包括:
将剩余数据迁移到所述第二存储块,所述剩余数据表示所述缓冲存储块中存储的数据之中的、除了在改变所述目标存储块之前迁移到所述第一存储块的数据以外的数据。
19.根据权利要求18所述的方法,进一步包括:
在将所述剩余数据迁移到所述第二存储块之后,通知所述主机迁移完成。
20.根据权利要求15所述的方法,其中所述第一存储块中包括的存储器单元存储具有比所述第二存储块中包括的存储器单元中存储的数据更多位数的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0142051 | 2019-11-07 | ||
KR1020190142051A KR20210055514A (ko) | 2019-11-07 | 2019-11-07 | 스토리지 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112783433A true CN112783433A (zh) | 2021-05-11 |
Family
ID=75750269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010822450.4A Withdrawn CN112783433A (zh) | 2019-11-07 | 2020-08-17 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11334248B2 (zh) |
KR (1) | KR20210055514A (zh) |
CN (1) | CN112783433A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210049619A (ko) * | 2019-10-25 | 2021-05-06 | 에스케이하이닉스 주식회사 | 분산 저장 시스템의 스토리지 노드 및 그 동작 방법 |
US11137943B2 (en) * | 2020-03-04 | 2021-10-05 | Micron Technology, Inc. | Internal commands for access operations |
KR20220022332A (ko) | 2020-08-18 | 2022-02-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220041593A (ko) * | 2020-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220104486A (ko) | 2021-01-18 | 2022-07-26 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작 방법 및 컴퓨팅 시스템 |
KR20220127067A (ko) * | 2021-03-10 | 2022-09-19 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
KR20130060791A (ko) | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브 |
KR101959567B1 (ko) | 2012-05-14 | 2019-03-18 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법 |
KR102190670B1 (ko) * | 2014-03-03 | 2020-12-14 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
JP6991084B2 (ja) * | 2018-03-22 | 2022-01-12 | キオクシア株式会社 | 不揮発性メモリデバイス及び制御方法 |
-
2019
- 2019-11-07 KR KR1020190142051A patent/KR20210055514A/ko not_active Application Discontinuation
-
2020
- 2020-07-07 US US16/922,317 patent/US11334248B2/en active Active
- 2020-08-17 CN CN202010822450.4A patent/CN112783433A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20210141532A1 (en) | 2021-05-13 |
US11334248B2 (en) | 2022-05-17 |
KR20210055514A (ko) | 2021-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334248B2 (en) | Storage device and method of changing between memory blocks of different bits based on delay of migration request | |
US11853202B2 (en) | Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system | |
US11494106B2 (en) | Memory controller and method of ordering sequential data and random data | |
KR20220082509A (ko) | 저장 장치 및 그 동작 방법 | |
US11756607B2 (en) | Memory controller and method of operating the same | |
CN115705893A (zh) | 用于执行读取操作的存储器装置及其操作方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
CN112687314A (zh) | 存储器设备和操作存储器设备的方法 | |
KR20210033719A (ko) | 메모리 장치 및 그 동작 방법 | |
US11733921B2 (en) | Memory device and memory system including the same | |
CN113971975A (zh) | 存储器装置及其操作方法 | |
KR20220041593A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20210085499A (ko) | 저장 장치 및 그 동작 방법 | |
US11886314B2 (en) | Memory system and operating method thereof | |
US11908532B2 (en) | Memory device and method of operating the memory device | |
US11941294B2 (en) | Memory controller for controlling suspension of operation and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
CN112527189B (zh) | 存储器装置及其操作方法 | |
US20230305741A1 (en) | Storage device and operating method thereof | |
US20220328101A1 (en) | Memory device and operating method thereof | |
KR20220128789A (ko) | 메모리 장치 및 이를 포함하는 저장 장치 | |
KR20230167533A (ko) | 메모리 장치 및 그것의 동작 방법 | |
KR20210142477A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20220157155A (ko) | 스토리지 장치 및 그 동작 방법 |
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: 20210511 |
|
WW01 | Invention patent application withdrawn after publication |