CN110245092A - 存储器系统、其操作方法以及电子装置 - Google Patents
存储器系统、其操作方法以及电子装置 Download PDFInfo
- Publication number
- CN110245092A CN110245092A CN201811451881.3A CN201811451881A CN110245092A CN 110245092 A CN110245092 A CN 110245092A CN 201811451881 A CN201811451881 A CN 201811451881A CN 110245092 A CN110245092 A CN 110245092A
- Authority
- CN
- China
- Prior art keywords
- condition
- memory block
- data
- block
- stored
- 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
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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1012—Design facilitation
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供了一种存储器系统。该存储器系统可以包括:非易失性存储器装置,包括多个存储块;以及控制器,被配置成响应于从主机装置接收的写入请求判定存储与写入请求相对应的目标数据的位置,其中当多个存储块中的、根据设定顺序存储目标数据的第一存储块满足块替换条件时,控制器将第一存储块设置成关闭存储块,并且控制非易失性存储器装置以将目标数据存储在多个存储块的、被设置成新的开放块的第二存储块中。
Description
相关申请的交叉引用
本申请要求于2018年3月7日向韩国知识产权局提交的申请号为10-2018-0026879的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各种实施例总体涉及一种存储器系统和电子设备,并且更特别地,涉及一种包括非易失性存储器装置的存储器系统和电子装置。
背景技术
存储器系统响应于来自外部装置的写入请求,存储从外部装置提供的数据。而且,存储器系统响应于来自外部装置的读取请求,将所存储的数据提供至外部装置。这种外部装置可以包括计算机、数码相机或移动电话。存储器系统可以内置在外部装置中,或者可以是联接至外部装置的单独部件。
由于不存在机械驱动部件,因此使用存储器装置的存储器系统提供稳定性和耐用性优异、信息访问速度快以及功耗低的优点。具有这些优点的存储器系统包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(UFS)装置以及固态硬盘(SSD)。
发明内容
各种实施例涉及存储器系统,该存储器系统在具有非连续逻辑地址的数据被存储在相同存储块中时能够执行垃圾收集而不会劣化。
在实施例中,非易失性存储器装置包括多个存储块;并且控制器被配置成响应于从主机装置接收的写入请求判定存储与写入请求相对应的目标数据的位置,其中,当多个存储块的、根据设定的顺序存储目标数据的第一存储块满足块替换条件时,控制器将第一存储块设置成关闭存储块,并且控制非易失性存储器装置以将目标数据存储在多个存储块的、被设置成新的开放块的第二存储块中。
在实施例中,提供了一种存储器系统的操作方法,该存储器系统包括多个存储块,该操作方法包括:响应于从主机装置接收的写入请求,选择多个存储块的第一存储块以根据设定的顺序存储目标数据;由存储器系统的控制器确定第一存储块是否满足块替换条件;并且当满足块替换条件时,将第一存储块设置成关闭块,并且将目标数据存储在被设置成新的开放块的第二存储块中,设置和存储操作由控制器执行,其中块替换条件包括第一条件,该第一条件是与第一存储块中最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址是否彼此不连续。
在实施例中,提供了一种电子装置,包括:控制器;和非暂时性机器可读存储介质,其包括多个存储块,并且被配置为存储由控制器运行的经编码指令,其中该指令包括:用于当从主机装置接收到针对目标数据的写入请求时,指定多个存储块的、根据设定的顺序存储目标数据的第一存储块的指令;用于确定第一存储块是否满足块替换条件的指令;以及用于当第一存储块满足块替换条件时,将第一存储块设置成关闭块并且控制写入操作以将目标数据存储在被设置成新的开放块的第二存储块中的指令。
在实施例中,提供了一种存储器系统,包括:非易失性存储器装置,包括多个块;以及控制器,其被配置为接收写入数据,确定多个块之中的第一存储块中、将存储写入数据的位置,确定所确定的位置与第一存储块中存储最新数据的位置是否连续,并且当确定所确定的位置不连续时,控制所述非易失性存储器装置以将写入数据存储在多个块之中的第二存储块中。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2A至图2C示出了将具有非连续逻辑地址的多个数据存储在相同存储块中的进程。
图3A至图3C示出了根据本发明的实施例的将具有非连续逻辑地址的多个数据存储在不同存储块中的进程。
图4A至图4C示出了根据本发明的实施例的基于逻辑地址的连续性和未存储数据的页面的数量将数据存储在存储块中的进程。
图5A至图5C示出了根据本发明的实施例的基于逻辑地址的连续性、未存储数据的页面的数量以及未存储数据的存储块的数量将数据存储在存储块中的进程。
图6示出了在具有非连续逻辑地址的数据被存储在相同存储块中之后执行垃圾收集的示例。
图7示出了根据本发明的实施例的在具有非连续逻辑地址的数据被存储在不同存储块中之后执行垃圾收集的示例。
图8是示出根据本发明的实施例的控制器的框图。
图9示出了包括根据本发明的实施例的固态驱动器(SSD)的数据处理系统。
图10示出了包括根据本发明的实施例的存储器系统的数据处理系统。
图11示出了包括根据本发明的实施例的存储器系统的数据处理系统。
图12示出了包括根据本发明的实施例的存储器系统的网络系统。
图13是示出包括在根据本发明的实施例的存储器系统中的非易失性存储器装置的框图。
具体实施方式
在本发明中,由结合附图描述的以下实施例,优点、特征以及用于实现它们的方法将变得更加明显。然而,本发明可以不同的形式实现,并从而不限于本文阐述的实施例。相反,提供这些实施例以详细描述本发明到本发明所属领域的技术人员可以容易地实践本发明的程度。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
此处将理解的是,本发明的实施例不限于附图中所示的细节,并且附图不一定按比例绘制,并且在某些情况下,比例可能被夸大以便更清楚地描绘本发明的某些特征。虽然本文使用了特定术语,但是将理解的是,本文使用的术语是用于描述特定实施例的目的,并不旨在限制本发明的范围。
如本文所使用的,术语“和/或”包括相关所列项目中的一个或多个的任意和所有组合。将理解的是,当元件被称为在另一元件“所有组合。将理解的是,当元件另一元件时,其可以直接在另一元件上、直接连接至或联接至另一元件,或者可存在中间元件。如本文所使用的,单数形式旨在包括复数形式且反之亦然,除非上下文另有明确说明。将进一步理解的是,当在本说明书中使用时,术语“将进一步/或“包括有”指定至少一个所陈述的特征、步骤、操作和/或元件的存在,但并不排除一个或多个其他特征、步骤、操作和/或其元件的存在或添加。
以下将通过各种实施例参照附图描述存储器系统、其操作方法以及电子设备。
图1是示出根据本发明的实施例的存储器系统10的框图。
参照图1,存储器系统10可以存储待由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、车载信息娱乐系统等的主机装置(例如图2A的主机装置300)访问的数据。
根据作为与主机装置300的传输协议的主机接口,存储器系统10可以是各种类的存储装置中的任意一种。例如,存储器系统10可以被配置成诸如下列的各种类的存储装置中的任意一种:固态驱动器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你-SD和微型-SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡,记忆棒,等等。
存储器系统10可以为诸如下列的各种类的封装类型中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器系统10可以包括控制器100和非易失性存储器装置200。控制器100可以包括控制部件110和随机存取存储器(RAM)120。
控制部件110可以由电路构造以形成微控制单元(MCU)或中央处理单元(CPU)。控制部件110可以处理从主机装置300接收的请求。为了处理该请求,控制部件110可以驱动在RAM 120中加载的代码类型的指令或算法,即固件(FW),并且可以控制内部功能块和非易失性存储器装置200。
RAM 120可以包括动态RAM(DRAM)或静态RAM(SRAM)。RAM 120可以存储由控制部件110驱动的固件FW。此外,RAM 120可以存储用于驱动固件FW所需的数据,例如元数据。也就是说,RAM 120可以作为控制部件110的工作存储器操作。
RAM 120可以存储映射表121,该映射表121包括逻辑地址和物理地址之间的映射信息。控制单元110可以管理逻辑到物理(L2P)映射表和物理到逻辑(P2L)映射表。L2P映射表可以包括映射到设置为索引的逻辑地址的物理地址。P2L映射表可以包括映射到设置为索引的物理地址的逻辑地址。控制部件110可以管理关于开放存储块的映射信息以作为P2L映射表。开放存储块指示正在用来处理写入请求的存储块。控制部件110可以将形成针对关闭存储块(即,不具有用于存储数据的空的空间或未配置成存储数据的存储块)的P2L映射表的映射信息反映到L2P表中。
非易失性存储器装置200可以利用包括下列的各种非易失性存储器装置中的任意一种来实施:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)膜的磁性随机存取存储器(MRAM)、使用硫属化物合金的相变随机存取存储器(PRAM)和使用过渡金属氧化物的电阻式随机存取存储器(ReRAM)。
非易失性存储器装置200可以包括存储器单元阵列(例如,图13的存储器单元阵列210)。从操作视点或物理(或结构)视点,可以基于分级存储器单元组或存储器单元来配置包括在存储器单元阵列中的存储器单元。例如,联接至相同字线并且同时读取和/或写入(或编程)的存储器单元可以被配置成页面。配置成页面的存储器单元可以称为“页面”。此外,同时擦除的存储器单元可以被配置成存储块。存储器单元阵列可以包括多个存储块Blk0至Blk(n)。存储块Blk0至Blk(n)中的每一个可以包括多个页面(例如,页面PG0至PG7)。
控制部件110可以在未存储数据的空闲块之中选择开放块作为存储数据的存储块。例如,当块Blk0至Blk(n)全部为空闲块时,控制部件110可以将块Blk0设置成开放块。然后,控制部件110可以控制非易失性存储器装置200将写入数据存储在被设置成开放块的块Blk0中。写入数据对应于来自主机装置300的写入请求。控制部件110可以将开放存储块设置成将不再存储数据的关闭块。例如,控制部件110可以将被设置成开放块的块Blk0变成关闭块。然后,数据将不被存储在块Blk0中。在将该开放块设置成关闭存储块之后,控制部件110可以将新的空闲块设置成开放块。在实施例中,可以以存储块为单位来设置开放块。在另一个实施例中,可以以超级块为单位来设置开放块,以超级块为单位将共享相同字线的存储块分组。然而,可以根据控制部件110或主机装置300的控制来设置和改变设置开放块的单位。
图2A至图2C示出了将具有非连续逻辑地址的多个数据存储在相同存储块中的进程。参照图1和图2A至图2C,描述了将具有非连续逻辑地址的数据存储在非易失性存储器装置200中的进程。为了这种描述的目的,非易失性存储器装置200包括存储块Blk0和Blk1,并且存储块Blk0和Blk1中的每一个包括八个页面PG0至PG7。
在步骤S100中,控制器100可以从主机装置300接收针对与逻辑地址LA0至LA3相对应的数据的写入请求RQ_write(LA0至LA3)。在接收到写入请求RQ_write(LA0至LA3)之后,控制器100可以通过参考在RAM 120中存储的映射表121,来检查开放块以存储数据。此处,存储块Blk0被设置成开放块,并且在存储块Blk0中的页面PG0至PG7中未存储数据。
控制器100可以响应于从主机装置300接收的写入请求RQ_write(LA0至LA3),生成命令CMD_write(PA0至PA3)以传输至非易失性存储器装置200。此外,控制器100可以通过参考映射表121来判定关于存储块和页面的信息以存储数据。如图2A中示出的,控制器100可以生成命令CMD_write(PA0至PA3),该命令包括被设置成开放块的存储块Blk0的页面PG0至PG3的地址信息。如图2B中示出的,映射表121可以存储分别与物理地址相对应的块偏移量OFS_Blk和页面偏移量OFS_PG。例如,物理地址PA4可以对应于包括在块偏移量OFS_Blk为0的存储块中的页面之中具有页面偏移量OFS_PG 4的页面。物理地址PA9可以对应于包括在具有块偏移量OFS_Blk 1的存储块中的页面之中具有页面偏移量OFS_PG 1的页面。
在步骤S200中,控制器100可将生成的命令CMD_write(PA0至PA3)传输至非易失性存储器装置200。以下将参照图8描述控制器100接口连接主机装置300和非易失性存储器装置200的进程。
在步骤S300中,非易失性存储器装置200可以响应于从控制器100输出的命令CMD_write(PA0至PA3)对与逻辑地址LA0至LA3相对应的数据执行写入操作。具体地,数据可以被存储在与物理地址PA0至PA3相对应的区域中。也就是说,数据可以被存储在具有块偏移量OFS_Blk 0的存储块中包括的页面之中联接至字线、具有页面偏移量OFS_PG 0至3的页面中。
在存储数据之后,可以更新映射表121,该映射表121包括具有存储于其内的数据的存储块的物理地址。图2B示出了与物理地址PA0至PA3相对应的映射表121中标记了与逻辑地址LA0至LA3相对应的数据的存储。在可以预先设置并且变化的特定时间,可以更新映射表121。
在步骤S400中,在数据被存储在非易失性存储器装置200的、与物理地址PA0至PA3相对应的区域中之后,控制器100可以从主机装置300接收对与逻辑地址LA512相对应的数据的写入请求RQ_write(LA512)。控制器100可以通过参考存储在RAM 120中的映射表121来检查开放块以存储数据,并且确定与物理地址PA4相对应的区域,即具有块偏移量OFS_Blk0和页面偏移量OFS_PG 4的区域是根据设定或预设的顺序存储数据的区域。
然后,控制器100可以生成命令CMD_write(PA4)以传输至非易失性存储器装置200。命令CMD_write(PA4)可以包括关于物理地址PA4的信息,该信息指示存储数据的区域的物理地址。在步骤S500中,控制器100可以将生成的命令CMD_write(PA4)传输至非易失性存储器装置200。在步骤S600中,非易失性存储器装置200可以对与命令CMD_write(PA4)相对应的数据执行写入操作。具体地,数据可以被存储在与物理地址PA4相对应的区域中,即与块偏移量OFS_Blk 0以及页面偏移量OFS_PG 4相对应的页面中。
当对与逻辑地址LA0至LA3和逻辑地址LA512相对应的数据执行写入操作时,数据可以被存储在存储块Blk0中包括的页面PG0至PG4中。然后,可以通过反映数据的存储来更新映射表121。
图3A至图3C示出了根据本发明的实施例的将具有非连续逻辑地址的多个数据存储在不同存储块中的进程。以相同的方式执行图2A中的步骤S100至S400。也就是说,在响应于来自主机装置300的写入请求RQ_write(LA0至LA3)将数据存储在与物理地址PA0至PA3相对应的区域中之后,如图3A中示出的,可以从主机装置300接收与逻辑地址LA512相对应的写入请求RQ_write(LA512)。为了这种描述的目的,非易失性存储器装置200包括存储块Blk0和Blk1,并且存储块Blk0的和Blk1中的每一个包括八个页面PG0至PG7。
存储器系统10可以包括:非易失性存储器装置200,其包括多个存储块;以及控制部件110,其响应于写入请求判定存储与从主机装置300接收到的写入请求相对应的目标数据的位置。当根据设定或预设的顺序存储目标数据的第一存储块满足块替换条件时,控制部件110可以将第一存储块设置成关闭块,并且控制非易失性存储器装置200以将目标数据存储在被设置成新的开放块的第二存储块中。在各种实施例中,块替换条件可以包括第一条件,当与在第一存储块中最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址彼此不连续时满足第一条件。
在步骤S700中,控制器100可以确定作为与目标数据相对应的起始逻辑地址的逻辑地址LA512和与最近存储的数据相对应的逻辑地址组是否彼此不连续。如图3A所示,与最近存储的数据相对应的逻辑地址组可以包括逻辑地址LA0至LA3,并且控制器100可以确定逻辑地址LA3和逻辑地址LA512是否彼此不连续。
在实施例中,当确定与最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址彼此连续(在步骤S700中为否)时,在步骤S800中,控制器100可以生成命令CMD_write(PA4)并且将生成的命令传输至非易失性存储器装置200,该命令包括关于与根据设定或预设的顺序将存储数据的区域相对应的物理地址PA4的信息。物理地址PA4可以包括关于与块偏移量OFS_Blk 0以及页面偏移量OFS_PG 4相对应的页面的信息。然后,在步骤S810中,可以在非易失性存储器装置200中执行与命令CMD_write(PA4)相对应的写入操作。具体地,可以将数据存储在被设置成开放块的存储块Blk0(例如,图3C中的存储块Blk0)的页面PG4中。
当确定与最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址彼此不连续或满足第一条件(在步骤S700中为是)时,在步骤S900中,控制器100可以分配存储块Blk1作为新的开放块,并且将存储块Blk0设置成关闭块(例如,图3C中的存储块Blk0和Blk1)。
在步骤S910中,控制器100可以生成对目标数据的写入命令CMD_write(PA8),并将生成的写入命令CMD_write(PA8)传输至非易失性存储器装置200。写入命令CMD_write(PA8)包括物理地址PA8,该物理地址PA8与被设置成新的开放块的第二存储块,即存储块Blk1的页面之中的将存储数据的页面相对应。如图3B中示出的,物理地址PA8可以指示与块偏移量OFS_Blk 1以及页面偏移量OFS_PG 0相对应的页面。
在步骤S920中,与逻辑地址LA512相对应的目标数据可以被存储在非易失性存储器装置200的、与物理地址PA8相对应的区域,即与块偏移量OFS_Blk 1以及页面偏移量OFS_PG 0相对应的页面中。
其结果是,与逻辑地址LA0至LA3相对应的数据可以被存储在存储块Blk0中与物理地址PA0至PA3相对应的页面中,并且存储块Blk0可以被设置成关闭块,其中与物理地址PA4至PA7相对应的页面,即包括在块偏移量OFS_Blk为0的存储块Blk0中的页面PG0至PG7之中的、与页面偏移量OFS_PG 4至7相对应的页面中未存储数据。
图4A至图4C示出了根据本发明的实施例的基于逻辑地址的连续性和未存储数据的页面的数量将数据块存储在存储块(例如,图4C的第二存储块Blk1)中的进程。为了这种描述的目的,非易失性存储器装置200包括存储块Blk0和Blk1,并且存储块Blk0和Blk1中的每一个包括八个页面PG0至PG7。将参照图1和图4A至图4C描述基于逻辑地址的连续性和未存储数据的页面的数量将数据存储在新的开放块中的进程。
在步骤S1000中,控制器100可以从主机装置300接收对与逻辑地址LA0至LA5相对应的数据的写入请求RQ_write(LA0至LA5)。在接收到写入请求RQ_write(LA0至LA5)之后,控制器100可以通过参考存储在RAM 120中的映射表121来检查开放块以存储数据。此处,存储块Blk0被设置成开放块,并且包括在存储块Blk0中的页面PG0至PG7中未存储数据。
在步骤S2000中,控制器100可以响应于从主机装置300接收的请求RQ_write(LA0至LA5),生成待传输至非易失性存储器装置200的命令CMD_write(PA0至PA5),并且将生成的命令CMD_write(PA0至PA5)传输至非易失性存储器装置200。此外,控制器100可以通过参考映射表121来判定关于存储块和页面的信息以存储数据。如图4A中示出的,控制器100可以生成命令CMD_write(PA0至PA5),该命令包括被设置成开放块的存储块Blk0的页面PG0至PG5的地址信息,即物理地址PA0至PA5。
在步骤S3000中,非易失性存储器装置200可以基于从控制器100接收的命令CMD_write(PA0至PA5)来对与逻辑地址LA0至LA5相对应的数据执行写入操作。具体地,数据可以被存储在与物理地址PA0至PA5相对应的区域中。也就是说,数据可以被存储在具有块偏移量OFS_Blk 0的存储块Blk0中包括的页面PG0至PG7之中联接至字线、具有页面偏移量OFS_PG 0至5的页面PG0至PG5中。
在存储数据之后,可以更新映射表121,该映射表121包括具有存储于其内的数据的存储块的物理地址。图4B示出了在与物理地址PA0至PA5相对应的映射表121中标记与逻辑地址LA0至LA5相对应的数据的存储。在可以预先设置并且变化的特定时间,可以更新映射表121。
在步骤S4000中,控制器100可以从主机装置300接收对与逻辑地址LA512相对应的数据的写入请求RQ_write(LA512)。控制器100可以通过参考存储在RAM 120中的映射表121来检查开放块以存储数据。然后,控制器100可以确定与物理地址PA6相对应的区域,即具有块偏移量OFS_Blk 0和页面偏移量OFS_PG 6的区域是根据设定或预设的顺序存储数据的区域。
存储器系统10可以包括:非易失性存储器装置200,其包括多个存储块;以及控制部件110,其被配置成响应于写入请求,判定位置存储与从主机装置300接收的写入请求相对应的目标数据的位置。当根据设定或预设的顺序存储目标数据的第一存储块满足块替换条件时,控制部件110可以将第一存储块设置成关闭块并且控制非易失性存储器装置200以将目标数据存储在设置成新的开放块的第二存储块中。在各种实施例中,块替换条件可以包括第一条件,当与最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址彼此不连续时满足该第一条件。在实施例中,块替换条件可以包括第一条件和第二条件。当在第一存储块中的页面之中的、存储有数据的页面的数量大于或等于特定或预设页面数量时,满足第二条件。在实施例中,当满足第一条件和第二条件时,控制部件110可以控制非易失性存储器装置200以将目标数据存储在第二存储块中。当不满足第一条件和第二条件中的一个或多个时,控制部件110可以控制非易失性存储器装置200以将目标数据存储在第一存储块中。将参考步骤S5000至S6400详细描述上述进程。
在步骤S5000中,控制器100可以确定目标数据是否满足第一条件。如图4A中示出的,控制器100可以确定作为与目标数据相对应的起始逻辑地址的逻辑地址LA512和与最近存储的数据相对应的逻辑地址组是否彼此不连续。与最近存储的数据相对应的逻辑地址组可以包括逻辑地址LA0至LA5。控制部件110可以确定逻辑地址LA5和作为起始逻辑地址的逻辑地址LA512彼此不连续。
在实施例中,当确定与最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址彼此连续(在步骤S5000中为否)时,在步骤S5100中,控制器100可以生成命令CMD_write(PA6)并且将生成的命令传输至非易失性存储器装置200,该命令包括关于与根据设定或预设的顺序将存储数据的区域相对应的物理地址PA6的信息。物理地址PA6可以包括关于与块偏移量OFS_Blk 0以及页面偏移量OFS_PG 6相对应的页面的信息。然后,在步骤S5110中,可以在非易失性存储器装置200中执行与命令CMD_write(PA6)相对应的写入操作。具体地,数据可以被存储在存储块Blk0(例如,图4C中的存储块Blk0)的页面PG6中。
在另一实施例中,当确定与最近存储的数据相对应的逻辑地址和与目标数据相对应的起始逻辑地址彼此不连续(在步骤S5000中为是)时,在步骤S6000中,控制器100可以确定是否满足第二条件。具体地,控制器100可以确定在被设置成开放块的第一存储块,即存储块Blk0中包括的页面PG0至PG7之中的、存储有数据的页面的数量是否大于或等于特定或预设页面数量。在图4A至图4C中,特定或预设页面数量是6。控制器100可以确定在存储块Blk0中的页面之中多少页面中存储有数据,其中存储块Blk0是根据设定或预设的顺序将存储数据的开放块。控制器100可以确定数据被存储在具有页面偏移量OFS_PG 0至5的页面,即存储块Blk0中的八个页面PG0至PG7之中的页面PG0至PG5中。因为存储有数据的页面的数量大于或等于特定或预设页面数量,所以控制器100可以确定满足第二条件。在实施例中,可以由主机装置300或控制部件110来设置或改变特定或预设页面数量。
在实施例中,当满足第一条件和第二条件时,控制器100可以确定存储块以存储与非连续逻辑地址相对应的数据。换句话说,基于根据设定或预设的顺序将存储数据的开放块中所存储的数据量,控制器100可以判定存储块以存储与非连续逻辑地址相对应的数据。此外,根据存储在相应开放块中的数据量,控制部件110可以判定是否将开放块设置成关闭块,从而更有效地使用存储空间。
在另一个实施例中,当确定不满足第二条件,即当在第一存储块中的页面之中的、存储有数据的页面的数量小于特定或预设页面数量(在步骤S6000中为否)时,在步骤S6100中,控制器100可以生成命令CMD_write(PA6),并将生成的命令传输至非易失性存储器装置200,该命令CMD_write(PA6)包括关于与根据设定或预设的顺序将存储数据的区域相对应的物理地址PA6的信息。物理地址PA6可以包括关于与块偏移量OFS_Blk 0和页面偏移量OFS_PG 6相对应的页面的信息。然后,在步骤S6110中,可以在非易失性存储器装置200中执行与命令CMD_write(PA6)相对应的写入操作。具体地,数据可以被存储在存储块Blk0的页面PG6中。
在实施例中,当确定满足第一条件和第二条件(在步骤S5000和S6000中为是)时,在步骤S6200中,控制器100可以分配第二存储块,即存储块Blk1作为新的开放块,并且将存储块Blk0设置成关闭块(例如,图4C中的Blk0和Blk1)。然后,在步骤6300中,控制器100可以生成针对目标数据的写入命令CMD_write(PA8)并且将生成的写入命令CMD_write(PA8)传输至非易失性存储器装置200。写入命令CMD_write(PA8)包括物理地址(PA8),该物理地址(PA8)与被设置成新的开放块的第二存储块,即存储块Blk1的页面PG0至PG7之中的、将存储数据的页面相对应。在步骤S6400中,与逻辑地址LA512相对应的目标数据可以被存储在非易失性存储器装置200的、与物理地址(PA8)相对应的区域中,即与块偏移量OFS_Blk 1以及页面偏移量OFS_PG 0相对应的页面中。
其结果是,与逻辑地址LA0至LA5相对应的数据可以被存储在存储块Blk0中的、与物理地址PA0至PA5相对应的页面中,并且可以将与物理地址PA6和PA7相对应的页面,即存储块Blk0的、与页面偏移量OFS_PG 6和7相对应的页面设置为未存储数据的关闭块。
图5A至图5C示出了根据本发明的实施例的基于逻辑地址的连续性、未存储数据的页面的数量以及未存储数据的块的数量将数据存储在存储块(例如,图5C的第二存储块Blk1)中的进程。此处,非易失性存储器装置200包括八个存储块Blk0至Blk7,并且存储块Blk0至Blk7中的每一个包括八个页面PG0至PG7。将参照图1和图5A至图5C描述基于逻辑地址的连续性、未存储数据的页面的数量以及未存储数据的存储块的数量将数据存储在新的开放块中的进程。此外,当描述图5A至图5C时,以相同的方式应用参照图4A至图4C描述的步骤S1000至步骤S6110。
存储器系统10可以包括:非易失性存储器装置200,其包括多个存储块;以及控制部件110,其被配置成响应于写入请求判定存储与从主机装置300接收的写入请求相对应的目标数据的位置。当根据设定或预设的顺序存储数据的第一存储块满足块替换条件时,控制部件110可以将第一存储块设置成关闭块,并且控制非易失性存储器装置200以将目标数据存储在被设置成新的开放块的第二存储块中。在各种实施例中,块替换条件可以包括第一条件,当与第一存储块中最近存储的数据相对应的逻辑地址组和与目标数据相对应的起始逻辑地址彼此不连续时满足该第一条件。在实施例中,块替换条件可以包括第一至第三条件。第二条件可以指示当包括在第一存储块中的页面之中的、存储有数据的页面的数量大于或等于特定或预设页面数量时而满足的条件。当存储块之中的未存储数据的存储块的数量大于或等于设定或预设块数量时,满足第三条件。在实施例中,当满足第一至第三条件时,控制部件110可以控制非易失性存储器装置200以将目标数据存储在第二存储块中。当不满足第一至第三条件中的一个或多个时,控制部件110可以控制非易失性存储器装置200以将目标数据存储在第一存储块中。在另一个实施例中,当满足第一和第三条件时,控制部件110可以控制非易失性存储器装置200以将目标数据存储在第二存储块中。当不满足第一或第三条件时,控制部件110可以控制非易失性存储器装置200以将目标数据存储在第一存储块中。
在实施例中,当确定满足第一和第二条件(在步骤S5000和S6000中为是)时,在步骤S7000中,控制器100可以确定是否满足第三条件。换句话说,控制器100可以确定在非易失性存储器装置200中的存储块Blk0至Blk7之中的、未存储数据的存储块的数量是否大于或等于设定或预设块数量。
在实施例中,当满足第一至第三条件(在步骤S5000、S6000和S7000中为是)时,控制器100可以判定存储块以存储与非连续逻辑地址相对应的数据。换句话说,基于存储在开放块中的数据的量(或比率)以及空闲块的数量,控制器100可以判定存储块以存储与非连续逻辑地址相对应的数据。在这种情况下,控制器100可以根据开放块中存储的数据量以及未存储数据的空闲块的数量来判定是否将相应开放块设置成关闭块,从而更有效地使用存储空间。
当确定不满足第三条件时(在步骤S7000为否),即存储块Blk0至Blk7之中的存储有数据的存储块的数量小于设定或预设块数量时,在步骤S7100中,控制器100可以生成命令CMD_write(PA6),并且将生成的命令传输至非易失性存储装置200,该命令包括关于与根据设定或预设的顺序将存储数据的区域相对应的物理地址PA6的信息。物理地址PA6可以包括关于与块偏移量OFS_Blk 0以及页面偏移量OFS_PG 6相对应的页面的信息。然后,在步骤S7110中,可以在非易失性存储器装置200中执行与命令CMD_write(PA6)相对应的写入操作。具体地,数据可以被存储在存储块Blk0的页面PG6中。
在实施例中,当确定满足第三条件时(在步骤S7000为是),即存储块Blk0至Blk7之中的未存储数据的存储块的数量大于或等于设定或预设块数量时,在步骤S7200中,控制器100可以分配第二存储块,即存储块Blk1作为新的开放块,并且将存储块Blk0设置成关闭块。例如,如图5C中示出的,当设定或预置块数量为5并且未存储数据的存储块的数量为6时,控制器100可以确定满足第三条件。然后,在步骤S7300中,控制器100可以生成针对目标数据的写入命令CMD_write(PA8),并将生成的写入命令CMD_write(PA8)传输至非易失性存储器装置200。写入命令CMD_write(PA8)包括物理地址PA8,该物理地址P8与被设置成新的开放块的第二存储块,即存储块Blk1的页面PG0至PG7之中的、将存储数据的页面相对应。在步骤S7400中,与逻辑地址LA512相对应的目标数据可以被存储在与非易失性存储器装置200的物理地址PA8相对应的区域,即与块偏移量OFS_Blk 1以及页面偏移量OFS_PG 0相对应的页面中。
其结果是,与逻辑地址LA0至LA5相对应的数据可以被存储在存储块Blk0中的、与物理地址PA0至PA5相对应的页面PG0至PG5中,并且与物理地址PA6和PA7相对应的页面,即与页面偏移量OFS_PG 6和7相对应的存储块Blk0的页面PG6和PG7可以被设置成未存储数据的封闭块。
图6示出了在将具有非连续逻辑地址的数据存储在相同存储块中之后执行垃圾收集的示例。将参照图1和图6描述当具有非连续逻辑地址的数据被存储在相同存储块中时出现的情况。
在图6的图示中,与逻辑地址LA0、LA1、LA2、LA3、LA512、LA4、LA30和LA1024相对应的数据被分别存储在存储块Blk0中的页面PG0至PG7中。即,具有连续逻辑地址的数据被存储在具有块偏移量OFS_Blk 0的存储块Blk0中的页面PG0至PG7之中的、与页面偏移量OFS_PG 0至3相对应的页面PG0至PG3中,并且相对于具有相邻偏移量的页面具有非连续逻辑地址的数据被存储在与页面偏移量OFS_PG 3至7相对应的页面中。
当具有非连续逻辑地址的数据被存储在相同存储块中时,在垃圾收集期间很可能存在许多有效数据。具体地,由于具有连续逻辑地址的数据很可能被同时更新,因此数据很有可能同时变为无效数据。相反,由于具有非连续逻辑地址的数据很可能被单独更新,因此数据可能在不同时间变成无效。
如图6中示出的,可以更新与逻辑地址LA0至LA4相对应的数据和与逻辑地址LA30相对应的数据。也就是说,有效数据可以被存储在除存储块Blk0之外的存储块中。在这种情况下,当对存储块Blk0执行垃圾收集时,可以执行以下操作。可以复制与逻辑地址LA512相对应的有效数据,可以读取存储有关于逻辑地址LA512的映射信息的映射表121,可以改变关于逻辑地址LA512的映射信息,并且与逻辑地址LA512相对应的数据可以被存储在新的存储块中。类似地,可以复制与逻辑地址LA1024相对应的有效数据,可以读取存储有关于逻辑地址LA1024的映射信息的映射表121,可以改变关于逻辑地址LA1024的映射信息,并且与逻辑地址LA1024相对应的数据可以被存储在新的存储块中。然后,可以擦除存储在与垃圾收集的目标相对应的存储块Blk0中的所有数据。
当具有非连续逻辑地址的数据被存储在相同存储块中时,在垃圾收集期间很可能存在许多有效数据。因此,可能伴随着对多个数据的复制操作和映射更新操作,这使得难以有效地执行操作。
图7示出了根据本发明的实施例的在将具有非连续逻辑地址的数据存储在不同存储块中之后执行垃圾收集的示例。将参照图1至图7描述在具有非连续逻辑地址的数据被存储在不同存储块中的情况下的垃圾收集操作。
在图7的图示中,与逻辑地址LA0至LA3相对应的数据分别被存储在存储块Blk0中的页面PG0至PG3中。也就是说,具有连续逻辑地址的数据被存储在具有块偏移量OFS_Blk 0的存储块中的页面PG0至PG7之中的、与页面偏移量OFS_PG 0至3相对应的页面PG0至PG3中,并且其它页面PG4至PG7被设置成其内未存储数据的关闭块。
在实施例中,当满足第一条件时,与开放块相对应的第一存储块可被设置成关闭块,并且当第二存储块被设置成新的开放块时,仅与连续逻辑地址相对应的数据可以被存储在第一存储块中。然后,可以将第一存储块,即存储块Blk0选择为垃圾收集操作的牺牲块。当执行垃圾收集操作时,不需要执行数据复制操作,而是可以通过擦除在存储块Blk0中存储的数据并且对包括关于逻辑地址LA0至LA3的信息的映射表121执行更新操作的进程来完成垃圾收集操作。
在另一个实施例中,当满足第一和第二条件时,与开放块相对应的第一存储块可以被设置成关闭块,并且第二存储块可以被设置成新的开放块。当第一存储块中的页面PG0至PG7之中的、存储有数据的页面的数量大于或等于设定或预设页面数量时,仅与连续逻辑地址相对应的数据可以被存储在第一存储块中。与非连续逻辑地址相对应的数据可能不会被无条件地存储在另一个存储块中,而是仅当在第一存储块,即存储块Blk0中存储的数据量对应于设定或预定水平时,可以对另一存储块执行写入操作,这可以降低将浪费非易失性存储器装置200的存储容量的可能性。
在另一个实施例中,当满足第一和第三条件时,与开放块相对应的第一存储块可以被设置成关闭块,并且第二存储块可以被设置成新的开放块。当非易失性存储器装置200中的多个存储块Blk0至Blk(n)之中的、未存储数据的存储块的数量大于或等于设定或预设块数量时,仅与连续逻辑地址相对应的数据可以被存储在第一存储块中。与非连续逻辑地址相对应的数据可能不会被无条件地存储在另一个存储块中,而是仅当非易失性存储器装置200中的存储块Blk0至Blk(n)之中的、未存储数据的存储块的数量大于或等于设定或预设块数量时,可以对另一存储块执行写入操作,这可以降低在将开放块设置成关闭块时不充分使用存储空间的可能性,即使空闲块的数量并未不足。
尽管未示出,但是实施例可以被配置成电子装置,该电子装置包括具有存储于其内的指令的非暂时性机器可读存储介质。
在各种实施例中,电子装置基于存储块的属性来判定存储数据的位置。电子装置可以包括控制器100和非暂时性机器可读存储介质,该存储介质包括多个存储块并且被配置成存储可以由控制器100运行的经编码指令。在实施例中,在非暂时性机器可读存储介质中存储的指令可以包括:当从主机装置300接收到针对目标数据的写入请求时,用于指定根据设定或预设的顺序存储目标数据的第一存储块的指令;用于确定第一存储块是否满足块替换条件的指令;以及当第一存储块满足块替换条件时将第一存储块设置成关闭块,并且控制写入操作以将目标数据存储在被设置成新的开放块的第二存储块的指令。
在实施例中,用于确定是否满足块替换条件的指令可以包括基于下列来确定是否满足块替换条件的指令:与在存储块中最近存储的数据相对应的第一逻辑地址组和与目标数据相对应的第二逻辑地址组是否彼此连续。
在实施例中,用于确定是否满足块替换条件的指令可以包括用于在第一逻辑地址组和第二逻辑地址组彼此不连续时确定满足块替换条件,且当第一逻辑地址组和第二逻辑地址组彼此连续时确定不满足块替换条件的指令。
在实施例中,用于确定是否满足块替换条件的指令可以进一步包括基于包括在第一存储块中的页面之中的、存储有数据的页面的数量来确定是否满足块替换条件的指令。
在实施例中,用于确定是否满足块替换条件的指令可以进一步包括当第一逻辑地址组和第二逻辑地址组彼此不连续并且存储有数据的页面的数量大于或等于设定或预设页面数量时确定满足块替换条件的指令。
在实施例中,用于确定是否满足块替换条件的指令可以进一步包括基于存储块之中未存储数据的存储块的数量来确定是否满足块替换条件的指令。
在实施例中,用于确定是否满足块替换条件的指令可以包括当第一逻辑地址组和第二逻辑地址组彼此不连续、存储有数据的页面的数量大于或等于设定或预设页面数量,并且未存储数据的存储块的数量大于或等于设定或预设块数量时,确定满足块替换条件的指令。
在各种实施例中,存储器系统10的操作方法可以包括:响应于从主机装置300接收的写入请求,根据设定或预设的顺序选择第一存储块以存储目标数据;确定第一存储块是否满足块替换条件;并且当满足块替换条件时,将第一存储块设置成关闭块并将目标数据存储在被设置为新的开放块的第二存储块中。
在实施例中,确定是否满足块替换条件可以包括:当逻辑地址组和起始逻辑地址彼此不连续时确定满足第一条件;以及当逻辑地址组和起始逻辑地址彼此连续时,确定不满足第一条件。
在实施例中,确定是否满足块替换条件可以包括:当满足第一条件时,确定是否满足第二条件;以及当满足第二条件时确定满足块替换条件。
在实施例中,确定是否满足块替换条件可以包括:当满足第一条件和第二条件时,确定是否满足第三条件;以及当满足第三条件时确定满足块替换条件。
图8是根据本发明的实施例的控制器100的框图。
参照图1至图8,控制器100可以进一步包括主机接口130和存储器控制部件140。
主机接口130可以接口连接主机装置300和存储器系统10。例如,主机接口130可以使用标准传输协议,即主机接口与主机装置300通信。标准传输协议可以包括安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)和通用闪存(UFS)。
存储器控制部件140可以根据控制部件110的控制来控制存储介质。存储器控制部件140还可以被称为存储器接口。存储器控制部件140可以将控制信号提供至图1的非易失性存储器装置200。控制信号可以包括命令、地址和用于控制非易失性存储器装置200的控制信号。存储器控制部件140可以将数据提供至非易失性存储器装置200或从非易失性存储器装置200接收数据。
图9是示出包括根据实施例的固态驱动器(SSD)1200的数据处理系统1000的示图。参照图9,数据处理系统1000可以包括主机装置1100和SSD 1200。
SSD 1200可以包括控制器1210、缓冲存储器装置1220、非易失性存储器装置1231至123n、电源1240、信号连接器1250和电源连接器1260。
控制器1210可以控制SSD 1200的常规操作。控制器1210可以包括主机接口1211、控制部件1212、随机存取存储器1213、错误校正码(ECC)部件1214和存储器接口1215。
主机接口1211可以通过信号连接器1250与主机装置1100交换信号SGL。信号SGL可以包括命令、地址、数据等。主机接口1211可以根据主机装置1100的协议接口连接主机装置1100和SSD 1200。例如,主机接口1211可以通过诸如下列的标准接口协议中的任意一个与主机装置1100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)和通用闪存(UFS)。
控制部件1212可以分析并处理从主机装置1100输入的信号SGL。控制部件1212可以根据用于驱动SSD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可以用作用于驱动这种固件或软件的工作存储器。
错误校正码(ECC)部件1214可以生成待传送至非易失性存储器装置1231至123n的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置1231至123n中。错误校正码(ECC)部件1214可以基于奇偶校验数据,来检测从非易失性存储器装置1231至123n读出的数据的错误。如果检测到的错误在可校正范围内,则错误校正码(ECC)部件1214可以校正检测到的错误。
存储器接口1215可以根据控制部件1212的控制将诸如命令和地址的控制信号提供至非易失性存储器装置1231至123n。而且,存储器接口1215可以根据控制部件1212的控制与非易失性存储器装置1231至123n交换数据。例如,存储器接口1215可以将存储在缓冲存储器装置1220中的数据提供至非易失性存储器装置1231至123n,或者将从非易失性存储器装置1231至123n中读出的数据提供至缓冲存储器装置1220。
缓冲存储器装置1220可以临时存储待存储在非易失性存储器装置1231至123n中的数据。此外,缓冲存储器装置1220可以临时存储从非易失性存储器装置1231至123n读出的数据。临时存储在缓冲存储器装置1220中的数据可以根据控制器1210的控制被传送至主机装置1100或非易失性存储器装置1231到123n。
非易失性存储器装置1231至123n可以用作SSD 1200的存储介质。非易失性存储器装置1231至123n可以分别通过多个信道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接至一个信道。联接至每个信道的非易失性存储器装置可以联接至相同的信号总线和数据总线。
电源1240可以将通过电源连接器1260输入的电力PWR提供至SSD 1200的内部。电源1240可以包括辅助电源1241。辅助电源1241可以供应电力以在发生突然断电时使SSD1200正常终止。辅助电源1241可以包括大容量电容器。
根据主机装置1100和SSD 1200之间的接口方案,信号连接器1250可以被配置为各种类型的连接器中的任一种。
根据主机装置1100的电力供应方案,电源连接器1260可以被配置为各种类型的连接器中的任一种。
图10是示出包括根据本发明的实施例的数据存储装置2200的数据处理系统的示例的示图。参照图10,数据处理系统2000可以包括主机装置2100和数据存储装置2200。
主机装置2100可以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置2100可以包括用于执行主机装置的功能的内部功能块。
主机装置2100可以包括连接端子2110,诸如插座、插槽或连接器。数据存储装置2200可以安装到连接端子2110。
数据存储装置2200可以诸如印刷电路板的板的形式配置。数据存储装置2200可以被称为存储器模块或存储卡。数据存储装置2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240和连接端子2250。
控制器2210可以控制数据存储装置2200的常规操作。控制器2210可以与图9中所示的控制器1210相同的方式配置。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231和2232中的数据。此外,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231和2232读出的数据。临时存储在缓冲存储器装置2220中的数据可以根据控制器2210的控制被传送至主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可以用作数据存储装置2200的存储介质。
PMIC 2240可以将通过连接端子2250输入的电力提供至数据存储装置2200的内部。PMIC 2240可以根据控制器2210的控制来管理数据存储装置2200的电力。
连接端子2250可以联接至主机装置2100的连接端子2110。通过连接端子2250,可以在主机装置2100和数据存储装置2200之间传输诸如命令、地址、数据等的信号和电力。根据主机装置2100和数据存储装置2200之间的接口方案,连接端子2250可以被配置为各种类型中的任一种。连接端子2250可以被布置在数据存储装置2200的任意一侧上。
图11是示出包括根据本发明的实施例的数据存储装置3200的数据处理系统3000的示图。参照图11,数据处理系统3000可以包括主机装置3100和数据存储装置3200。
主机装置3100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
数据存储装置3200可以以表面安装型封装的形式配置。数据存储装置3200可以通过焊球3250安装到主机装置3100。数据存储装置3200可以包括控制器3210、缓冲存储器装置3220和非易失性存储器装置3230。
控制器3210可以控制数据存储装置3200的常规操作。控制器3210可以与图9中所示的控制器1210相同的方式配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3230中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3230读出的数据。临时存储在缓冲存储器装置3220中的数据可以根据控制器3210的控制被传送至主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可以用作数据存储装置3200的存储介质。
图12是示出包括根据本发明的实施例的数据存储装置4200的网络系统4000的示图。参照图12,网络系统4000可以包括通过网络4500联接的服务器系统4300和多个客户端系统4410至4430。
服务器系统4300可以响应于来自多个客户端系统4410至4430的请求来服务数据。例如,服务器系统4300可以存储从多个客户端系统4410至4430提供的数据。再例如,服务器系统4300可以将数据提供至多个客户端系统4410至4430。
服务器系统4300可以包括主机装置4100和数据存储装置4200。数据存储装置4200可以由图1中所示的数据存储器装置10、图9中所示的SSD 1200、图10中所示的数据存储装置3200或图11中所示的数据存储装置3200来构造。
图13是示出包括在根据本发明的实施例的数据存储装置中的非易失性存储器装置,例如存储器装置200的框图。参照图13,非易失性存储器装置200可以包括存储器单元阵列210、行解码器220、数据读取/写入块230、列解码器240、电压发生器250和控制逻辑260。
存储器单元阵列210可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域处的存储器单元MC。
行解码器220可以通过字线WL1至WLm与存储器单元阵列210联接。行解码器220可以根据控制逻辑260的控制而操作。行解码器220可以解码从外部装置(未示出)提供的地址。行解码器220可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器220可以将从电压发生器250提供的字线电压提供至字线WL1至WLm。
数据读取/写入块230可以通过位线BL1至BLn与存储器单元阵列210联接。数据读取/写入块230可以包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块230可以根据控制逻辑260的控制而操作。数据读取/写入块230可以根据操作模式作为写入驱动器或读出放大器操作。例如,数据读取/写入块230可以在写入操作中作为写入驱动器操作,该写入驱动器将从外部装置提供的数据存储在存储器单元阵列210中。再例如,数据读取/写入块230可以在读取操作中作为读出放大器操作,该读出放大器从存储器单元阵列210读出数据。
列解码器240可以根据控制逻辑260的控制而操作。列解码器240可以解码从外部装置提供的地址。列解码器240可以基于解码结果,将数据读取/写入块230的、分别与位线BL1至BLn对应的读取/写入电路RW1至RWn与数据输入/输出线(或数据输入/输出缓冲器)联接。
电压发生器250可以生成待在非易失性存储器装置200的内部操作中使用的电压。由电压发生器250生成的电压可以被施加到存储器单元阵列210的存储器单元。例如,在编程操作中生成的编程电压可以被施加到待对其执行编程操作的存储器单元的字线。又例如,在擦除操作中生成的擦除电压可以被施加到待对其执行擦除操作的存储器单元的阱区域。又例如,在读取操作中生成的读取电压可以被施加到待对其执行读取操作的存储器单元的字线。
控制逻辑260可以基于从外部装置提供的控制信号来控制非易失性存储器装置200的常规操作。例如,控制逻辑260可以控制非易失性存储器装置200的读取操作、写入操作和擦除操作。
虽然上面已经描述了各种实施例,但是本领域技术人员将理解的是,可以各种方式修改描述的实施例。因此,本发明不基于所描述的实施例而被限制。相反,本发明涵盖落入权利要求的范围内的所有修改方案。
Claims (20)
1.一种存储器系统,包括:
非易失性存储器装置,包括多个存储块;以及
控制器,响应于从主机装置接收的写入请求判定存储与所述写入请求相对应的目标数据的位置,
其中当所述多个存储块的、根据设定的顺序存储所述目标数据的第一存储块满足块替换条件时,所述控制器将所述第一存储块设置成关闭存储块,并且控制所述非易失性存储器装置以将所述目标数据存储在所述多个存储块的、被设置成新的开放块的第二存储块中。
2.根据权利要求1所述的存储器系统,其中所述块替换条件包括第一条件,并且
当与所述第一存储块中最近存储的数据相对应的逻辑地址组和与所述目标数据相对应的起始逻辑地址彼此不连续时,满足所述第一条件。
3.根据权利要求2所述的存储器系统,其中当满足所述第一条件时,所述控制器控制所述非易失性存储器装置以将所述目标数据存储在所述第二存储块中,并且当不满足所述第一条件时,所述控制器控制所述非易失性存储器装置以将所述目标数据存储在所述第一存储块中。
4.根据权利要求2所述的存储器系统,其中所述块替换条件包括所述第一条件和第二条件,并且
当所述第一存储块的页面之中存储有数据的页面的数量大于或等于设定页面数量时,满足所述第二条件。
5.根据权利要求4所述的存储器系统,其中当满足所述第一条件和所述第二条件时,所述控制器控制所述非易失性存储器装置以将所述目标数据存储在所述第二存储块中,并且当不满足所述第一条件和所述第二条件中的至少一个时,所述控制器控制所述非易失性存储器装置以将所述目标数据存储在所述第一存储块中。
6.根据权利要求4所述的存储器系统,其中所述块替换条件包括所述第一条件、所述第二条件和第三条件,并且
当所述多个存储块之中未存储数据的存储块的数量大于或等于设定块数量时,满足所述第三条件。
7.根据权利要求6所述的存储器系统,其中当满足所述第一条件至所述第三条件时,所述控制器控制所述非易失性存储器装置以将所述目标数据存储在所述第二存储块中,并且当不满足所述第一条件至所述第三条件中的至少一个时,所述控制器控制所述非易失性存储器装置以将所述目标数据存储在所述第一存储块中。
8.一种存储器系统的操作方法,所述存储器系统包括多个存储块,所述操作方法包括:
响应于从主机装置接收的写入请求,选择所述多个存储块的第一存储块以根据设定的顺序存储目标数据;
由所述存储器系统的控制器确定所述第一存储块是否满足块替换条件;并且
当满足所述块替换条件时,将所述第一存储块设置成关闭块,并且将所述目标数据存储在被设置成新的开放块的第二存储块中,设置和存储操作由所述控制器执行,
其中所述块替换条件包括第一条件,并且
所述第一条件是与所述第一存储块中最近存储的数据相对应的逻辑地址组和与所述目标数据相对应的起始逻辑地址是否彼此不连续。
9.根据权利要求8所述的操作方法,其中确定是否满足所述块替换条件包括:
当所述逻辑地址组与所述起始逻辑地址彼此不连续时,确定满足所述第一条件;并且
当所述逻辑地址组与所述起始逻辑地址彼此连续时,确定不满足所述第一条件。
10.根据权利要求9所述的操作方法,其中所述块替换条件包括所述第一条件和第二条件,并且
当在所述第一存储块中的页面之中存储有数据的页面的数量大于或等于设定页面数量时,满足所述第二条件。
11.根据权利要求10所述的操作方法,其中确定是否满足所述块替换条件包括:
当满足所述第一条件时,确定是否满足所述第二条件;并且
当满足所述第二条件,确定满足所述块替换条件。
12.根据权利要求11所述的操作方法,其中所述块替换条件包括所述第一条件、所述第二条件以及第三条件,并且
当所述多个存储块之中未存储数据的存储块的数量大于或等于设定块数量时,满足所述第三条件。
13.根据权利要求12所述的操作方法,其中确定是否满足所述块替换条件包括:
当满足所述第一条件和所述第二条件时,确定是否满足所述第三条件;并且
当满足所述第三条件时,确定满足所述块替换条件。
14.一种电子装置,包括:
控制器;和
非暂时性机器可读存储介质,包括多个存储块并且存储由所述控制器运行的经编码指令,
其中所述指令包括:
用于当从主机装置接收到针对目标数据的写入请求时,指定所述多个存储块的、根据设定的顺序存储所述目标数据的第一存储块的指令;
用于确定所述第一存储块是否满足块替换条件的指令;
用于当所述第一存储块满足所述块替换条件时,将所述第一存储块设置成关闭块并且控制写入操作以将所述目标数据存储在被设置成新的开放块的第二存储块中的指令。
15.根据权利要求14所述的电子装置,其中用于确定是否满足所述块替换条件的所述指令包括用于基于下列来确定是否满足所述块替换条件的指令:与所述第一存储块中最近存储的数据相对应的第一逻辑地址组和与所述目标数据相对应的第二逻辑地址组是否彼此连续。
16.根据权利要求15所述的电子装置,其中用于确定是否满足所述块替换条件的所述指令包括:
用于当所述第一逻辑地址组和所述第二逻辑地址组彼此不连续时,确定满足所述块替换条件的指令;以及
用于当所述第一逻辑地址组和所述第二逻辑地址组彼此连续时,确定不满足所述块替换条件的指令。
17.根据权利要求15所述的电子装置,其中用于确定是否满足所述块替换条件的所述指令进一步包括:用于基于所述第一存储块中包括的页面之中存储有数据的页面的数量来确定是否满足所述块替换条件的指令。
18.根据权利要求17所述的电子装置,其中用于确定是否满足所述块替换条件的所述指令包括:用于当所述第一逻辑地址组和所述第二逻辑地址组彼此不连续并且存储有数据的页面的数量大于或等于设定页面数量时,确定满足所述块替换条件的指令。
19.根据权利要求17所述的电子装置,其中用于确定是否满足所述块替换条件的所述指令进一步包括:用于基于所述多个存储块之中存储有数据的存储块的数量来确定是否满足所述块替换条件的指令。
20.根据权利要求19所述的电子装置,其中用于确定是否满足所述块替换条件的所述指令包括:用于当所述第一逻辑地址组与所述第二逻辑地址组彼此不连续、存储有数据的页面的数量大于或等于设定页面数量且未存储数据的存储块的数量大于或等于设定块数量时,确定满足所述块替换条件的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0026879 | 2018-03-07 | ||
KR1020180026879A KR20190106008A (ko) | 2018-03-07 | 2018-03-07 | 메모리 시스템, 그것의 동작 방법 및 전자 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110245092A true CN110245092A (zh) | 2019-09-17 |
Family
ID=67842596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811451881.3A Pending CN110245092A (zh) | 2018-03-07 | 2018-11-30 | 存储器系统、其操作方法以及电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190278703A1 (zh) |
KR (1) | KR20190106008A (zh) |
CN (1) | CN110245092A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816223A (zh) * | 2021-01-27 | 2022-07-29 | 建兴储存科技股份有限公司 | 运用于固态存储装置的相关控制方法 |
KR20220165074A (ko) | 2021-06-07 | 2022-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071970A1 (en) * | 2006-09-15 | 2008-03-20 | Lin Jason T | Non-Volatile Memory With Class-Based Update Block Replacement Rules |
US20080235489A1 (en) * | 2007-03-19 | 2008-09-25 | Sergey Anatolievich Gorobets | Systems for forcing an update block to remain sequential |
CN102708058A (zh) * | 2011-01-11 | 2012-10-03 | 海力士半导体有限公司 | 执行ftl功能的非易失性存储装置及其控制方法 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN105210028A (zh) * | 2012-12-27 | 2015-12-30 | 桑迪士克企业知识产权有限责任公司 | 在持久存储器装置中的连续数据块和非连续组的逻辑地址块之间的读取和写入 |
CN106681931A (zh) * | 2015-11-06 | 2017-05-17 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
US20170168951A1 (en) * | 2015-12-14 | 2017-06-15 | Kabushiki Kaisha Toshiba | Memory system and method for controlling nonvolatile memory |
TW201721632A (zh) * | 2015-12-11 | 2017-06-16 | 捷鼎國際股份有限公司 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107403639A (zh) * | 2016-05-19 | 2017-11-28 | 三星电子株式会社 | 存储器控制器的操作方法 |
CN107547408A (zh) * | 2017-07-28 | 2018-01-05 | 新华三技术有限公司 | 一种mac地址哈希冲突的处理方法和装置 |
CN107564562A (zh) * | 2016-06-30 | 2018-01-09 | 三星电子株式会社 | 包含非易失性存储器设备和控制器的存储设备 |
CN107622018A (zh) * | 2016-07-14 | 2018-01-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
-
2018
- 2018-03-07 KR KR1020180026879A patent/KR20190106008A/ko unknown
- 2018-09-27 US US16/144,032 patent/US20190278703A1/en not_active Abandoned
- 2018-11-30 CN CN201811451881.3A patent/CN110245092A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071970A1 (en) * | 2006-09-15 | 2008-03-20 | Lin Jason T | Non-Volatile Memory With Class-Based Update Block Replacement Rules |
US20080235489A1 (en) * | 2007-03-19 | 2008-09-25 | Sergey Anatolievich Gorobets | Systems for forcing an update block to remain sequential |
CN102708058A (zh) * | 2011-01-11 | 2012-10-03 | 海力士半导体有限公司 | 执行ftl功能的非易失性存储装置及其控制方法 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN105210028A (zh) * | 2012-12-27 | 2015-12-30 | 桑迪士克企业知识产权有限责任公司 | 在持久存储器装置中的连续数据块和非连续组的逻辑地址块之间的读取和写入 |
CN106681931A (zh) * | 2015-11-06 | 2017-05-17 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
TW201721632A (zh) * | 2015-12-11 | 2017-06-16 | 捷鼎國際股份有限公司 | 加快在不連續頁面寫入資料之電腦系統及其方法 |
US20170168951A1 (en) * | 2015-12-14 | 2017-06-15 | Kabushiki Kaisha Toshiba | Memory system and method for controlling nonvolatile memory |
CN107240418A (zh) * | 2016-03-28 | 2017-10-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107403639A (zh) * | 2016-05-19 | 2017-11-28 | 三星电子株式会社 | 存储器控制器的操作方法 |
CN107564562A (zh) * | 2016-06-30 | 2018-01-09 | 三星电子株式会社 | 包含非易失性存储器设备和控制器的存储设备 |
CN107622018A (zh) * | 2016-07-14 | 2018-01-23 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107547408A (zh) * | 2017-07-28 | 2018-01-05 | 新华三技术有限公司 | 一种mac地址哈希冲突的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20190106008A (ko) | 2019-09-18 |
US20190278703A1 (en) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200151110A1 (en) | Memory addressing | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
CN104126177B (zh) | 预交错顺序数据的系统及方法 | |
US20090094409A1 (en) | Wear leveling method and controller using the same | |
CN109542675A (zh) | 存储器系统及其操作方法 | |
US20150348649A1 (en) | Bit error rate mapping in a memory system | |
CN110908594B (zh) | 存储器系统的操作方法和存储器系统 | |
CN110083545A (zh) | 数据存储装置及其操作方法 | |
CN110389908A (zh) | 存储器系统、数据处理系统和存储器系统的操作方法 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
JP7026833B1 (ja) | 記憶装置、フレッシュメモリコントローラ及びその制御方法 | |
CN106649144A (zh) | 数据储存设备及其操作方法 | |
CN109992202A (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN110456981A (zh) | 存储器系统、存储器系统的操作方法以及电子装置 | |
CN110119326B (zh) | 数据存储装置及其操作方法 | |
CN109240937A (zh) | 数据存储装置及其操作方法 | |
CN110245092A (zh) | 存储器系统、其操作方法以及电子装置 | |
CN100456263C (zh) | 在税控收款机中使用闪存时处理坏块的方法 | |
CN110389907A (zh) | 电子装置 | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
CN104731710B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN109726140A (zh) | 非易失性存储器件及其操作方法以及存储设备 | |
CN109656471A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190917 |