CN110069427B - 存储器控制器以及存储器控制器的操作方法 - Google Patents

存储器控制器以及存储器控制器的操作方法 Download PDF

Info

Publication number
CN110069427B
CN110069427B CN201811107452.4A CN201811107452A CN110069427B CN 110069427 B CN110069427 B CN 110069427B CN 201811107452 A CN201811107452 A CN 201811107452A CN 110069427 B CN110069427 B CN 110069427B
Authority
CN
China
Prior art keywords
data
memory
memory device
victim
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.)
Active
Application number
CN201811107452.4A
Other languages
English (en)
Other versions
CN110069427A (zh
Inventor
洪性宽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110069427A publication Critical patent/CN110069427A/zh
Application granted granted Critical
Publication of CN110069427B publication Critical patent/CN110069427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种用于控制存储器装置的操作的存储器控制器。该存储器控制器包括缓冲存储器和处理器。缓冲存储器存储从主机接收的第一数据和从存储器装置接收的第二数据。处理器控制存储器控制器以生成用于将第一数据和第二数据编程到存储器装置的写入命令。

Description

存储器控制器以及存储器控制器的操作方法
相关申请的交叉引用
本申请要求于2018年1月24日提交的申请号为10-2018-0008983的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置。特别地,实施例涉及一种存储器控制器及该存储器控制器的操作方法。
背景技术
存储器装置可以被形成为二维结构或三维结构,其中在二维结构中,串水平地布置到半导体衬底,在三维结构中,串垂直地布置到半导体衬底。设计三维半导体存储器装置以便克服对二维半导体装置的集成度限制。这种三维装置可以包括垂直堆叠在半导体衬底上的多个存储器单元。存储器控制器可以控制存储器装置的操作。
发明内容
实施例提供一种能够减少写入延迟(latency)的存储器控制器。
实施例还提供一种能够减少写入延迟的存储器控制器的操作方法。
根据本公开的一方面,提供一种存储器控制器,该存储器控制器控制存储器装置的操作,该存储器控制器包括:缓冲存储器,被配置成存储从主机接收的第一数据和存储器装置接收的第二数据;以及处理器,被配置成控制存储器控制器生成用于将第一数据和第二数据编程到存储器装置的写入命令。
第二数据可以是从存储器装置的牺牲存储块读取的数据。
响应于从主机接收的写入请求和第一数据,处理器可将第一数据存储在缓冲存储器中,选择存储器装置的牺牲存储块,并且控制存储器控制器的操作以生成用于读取存储在牺牲存储块中的有效页面数据的读取命令。
与读取命令相对应的数据可以是第二数据,并且缓冲存储器可以存储第二数据。
在第二数据被存储在缓冲存储器中之后,处理器可以控制存储器控制器的操作以生成用于将第一数据和第二数据编程到存储器装置的写入命令。
处理器可通过比较第一数据和第二数据来生成第三数据,并且控制存储器控制器的操作以生成用于将第三数据编程到存储器装置的写入命令。
第三数据可以包括通过基于第一数据更新第二数据而生成的数据。
第三数据可以包括第一数据和第二数据,并且可以通过删除第一数据与第二数据的重复数据来生成。
处理器可以定期地监视存储器装置并且确定是否需要对存储器装置进行垃圾收集,并且响应于需要对存储器装置进行垃圾收集的确定,处理器可以控制存储器控制器的操作以从牺牲存储块读取第二数据并将第二数据存储在缓冲存储器中。
在第二数据被存储在缓冲存储器中的情况下,响应于从主机接收的写入请求和第一数据,处理器可以控制存储器控制器的操作以生成用于将第一数据和第二数据编程到存储器装置的写入命令。
在第二数据被存储在缓冲存储器中的情况下,响应于从主机接收的写入请求和第一数据,处理器可以控制存储器控制器的操作以通过比较第一数据和第二数据来生成第三数据,并且生成用于将第三数据编程到存储器装置的写入命令。
根据本公开的一方面,提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置,该方法包括:从主机接收待被写入到存储器装置的第一数据;当接收到第一数据时,控制存储器装置读取被写入存储器装置的牺牲存储块中的第二数据;生成待被传送至存储器装置的写入命令;并且控制存储器装置以将第三数据写入存储器装置的目标存储块中,其中第三数据基于第一数据和第二数据而生成。
该方法可以进一步包括:在控制存储器装置写入第三数据之后,控制存储器装置擦除牺牲存储块。
控制存储器装置读取被写入存储器装置的牺牲存储块中的第二数据可以包括:基于被写入存储器装置的存储块中的有效页面和无效页面来选择无效页面的数量大于设定参考值的至少一个存储块作为牺牲存储块;生成用于读取牺牲存储块中的有效页面数据的读取命令;将读取命令传送至存储器装置;并且接收与读取命令相对应的第二数据。
第三数据可以包括第一数据和第二数据。
第三数据可以包括通过基于第一数据更新第二数据而生成的数据。
根据本公开的一方面,提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置的操作,该方法包括:通过监视存储器装置来确定是否需要垃圾收集,并且响应于需要对存储器装置进行垃圾收集的确定,选择存储器装置的牺牲存储块;控制存储器装置以读取存储在牺牲存储块中的第一数据,从主机接收待被写入到存储器装置的第二数据;并且控制存储器装置以将第三数据写入存储器装置的目标存储块中,其中第三数据基于第一数据和第二数据而生成。
确定是否需要垃圾收集可以包括:确定存储器装置中的空闲存储块的数量是否小于或等于参考值,当空闲存储块的数量小于或等于参考值时确定需要对存储器装置进行垃圾收集,并且当空闲存储块的数量大于参考值时,确定不需要对存储器装置进行垃圾收集。
在选择存储器装置的牺牲存储块中,可以选择无效页面的数量大于设定参考值的至少一个存储块作为牺牲存储块。
根据本公开的一方面,提供一种存储器系统,包括存储器装置和控制器。控制器被配置成控制存储器装置执行垃圾收集操作,同时执行写入操作,其中垃圾收集操作为将牺牲存储块的有效数据移动到存储器装置中的目标存储块中,所述写入操作为将写入数据存储到目标存储块中。在垃圾收集操作和写入操作期间,控制器将有效数据和写入数据聚集在控制器中的缓冲器中,并将聚集的数据提供至存储器装置。
附图说明
现在将参照附图更全面地描述各个实施例;然而,可以与本文所示出或描述的元件或特征不同地来配置或布置本发明的元件和特征。因此,本发明不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开彻底和完整,并且向本领域技术人员充分传达实施例的范围。
在附图中,为了清楚说明,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。相同的附图标记始终表示相同的元件。而且,在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对“实施例”等的不同参考不一定是针对相同的实施例。
图1是示出根据本公开的实施例的包括存储器控制器的存储器系统的示图。
图2是示出图1的示例性存储器控制器的细节的框图。
图3是示出图1的存储器装置的示图。
图4是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图5是更详细地示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图6A至图6E是示出根据本公开的实施例的存储器控制器的操作方法的框图。
图7是示出根据本公开另一实施例的存储器控制器的操作方法的流程图。
图8是更详细地示出根据图7的实施例的存储器控制器的操作方法的流程图。
图9A至图9F是示出根据图7的实施例的存储器控制器的操作方法的框图。
图10是示出根据本公开又一实施例的存储器控制器的操作方法的流程图。
图11A至图11F是示出根据图10的实施例的存储器控制器的操作方法的框图。
图12是示出根据本公开又一实施例的存储器控制器的操作方法的流程图。
图13是示出存储器系统的另一示例的框图。
图14是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
图15是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
图16是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
图17是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
具体实施方式
在以下详细描述和附图中,示出并描述了本公开的各个实施例。如本领域技术人员将认识到的,在不脱离本公开的精神和范围的情况下,可以各种不同方式修改所描述的实施例。因此,附图和描述在本质上被认为是说明性的而非限制性的。
在整个说明书中,当元件被称为“连接”或“联接”到另一个元件时,该元件可以直接连接或联接到另一个元件,或者用插入的一个或多个中间元件而间接连接或联接到另一个元件。另外,当元件被称为“包括”组件时,除非上下文另有说明,否则这指示该元件可以进一步包括一个或多个另外的未说明的组件。
参照附图详细描述本公开的各个实施例。相同的附图标记用于表示与其它附图中所示的元件相同的元件。在以下描述中,可以省略已知的进程和技术细节,以使实施例的重要构思不被模糊。
图1是示出根据本公开的实施例的包括存储器控制器的存储器系统的示图。
参照图1,存储器系统1000可以包括存储数据的存储器装置1100和在主机2000的控制下控制存储器装置1100的存储器控制器1200。
主机2000可以通过使用诸如下列的接口协议与存储器系统1000通信:外围组件互连-高速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串列SCSI(SAS)。主机2000和存储器系统1000之间的接口协议不限于上述示例;可以使用诸如下列的各种其它接口协议中的任意一种:通用串行总线(USB)、多媒体卡(MMC)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器控制器1200可以控制存储器系统1000的全部操作,并且控制主机2000和存储器装置1100之间的数据交换。例如,存储器控制器1200可以响应于来自主机2000的请求通过控制存储器装置1100来编程或读取数据。而且,存储器控制器1200可以存储存储器装置1100中包括的主存储块和子存储块的信息,并且根据为编程操作所加载的数据量来选择存储器装置1100对主存储块或子存储块执行编程操作。在一些实施例中,存储器装置1100可以包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR),Rambus动态随机存取存储器(RDRAM)和闪速存储器。参照图2描述存储器控制器1200的示例性配置的细节。存储器控制器1200也可称为控制器。
存储器控制器1200包括闪存转换层(“FTL”)1250。FTL 1250提供外部装置和存储器装置1100之间的接口,使得有效地使用存储器装置1100。例如,FTL 1250可以用于将从外部装置,例如,主机2000接收的逻辑地址转换成在存储器装置1100中使用的物理地址。FTL1250可以通过映射表来执行上述地址转换操作。作为示例,逻辑地址指示由主机2000管理的存储区域的逻辑位置,并且物理地址指示由存储器控制器1200管理的存储器装置1100的物理位置。
FTL 1250可以执行诸如损耗均衡或垃圾收集(GC)的操作,使得可以有效地使用存储器装置1100。作为示例,损耗均衡指以下操作:管理存储器装置1100中包括的多个存储块的编程/擦除数量,使得多个存储块的编程/擦除数量相等。另外,作为示例,垃圾收集指以下操作:将存储器装置1100中的多个存储块之中的一个或多个牺牲存储块的有效页面移动到目标存储块,然后擦除牺牲存储块。目标存储块可以是空闲存储块。然后,被擦除的牺牲存储块由于垃圾收集可以变成空闲块。FTL 1250可以通过执行垃圾收集来获得存储器装置1100的空闲块。
作为示例,可以在特定条件下执行垃圾收集。例如,当存储器装置1100的空闲块的数量小于或等于参考值时,FTL 1250可以执行垃圾收集。
存储器控制器1200可以从主机2000接收写入请求,并且响应于所接收的写入请求将数据DATA写入存储器装置1100中。当在写入操作期间存储器装置1100的空闲块的数量小于或等于参考值时,存储器控制器1200可执行垃圾收集以获得空闲块。即,因为在写入操作期间,存储器控制器1200执行垃圾收集,所以不会连续地执行写入操作。因此,存储器系统1000的写入性能可能被劣化。
根据本公开的实施例的存储器控制器1200的缓冲存储器1220(图2中示出)存储从主机2000接收的写入请求数据以及存储器装置1100的牺牲存储块中存储的有效页面数据。根据本公开的实施例的存储器控制器1200的处理器1210(图2中示出)将存储在缓冲存储器1220中的写入请求数据和有效页面数据临时存储在存储器装置1100的目标存储块中。因此,对存储器装置1100的垃圾收集可以与对从主机2000接收的数据的写入操作一起执行。因此,可以保证对存储器系统1000的连续写入操作,并且可以减少从主机2000接收的写入请求的写入延迟。
以下参照图2至图12更详细地描述根据本公开的实施例的存储器控制器1200的上述操作。
存储器装置1100可在存储器控制器1200的控制下执行编程操作、读取操作或擦除操作。参照图3描述存储器装置1100的示例性配置及操作的细节。
图2是示出图1的存储器控制器的细节的框图。
一起参照图1和图2,存储器控制器1200包括处理器1210、缓冲存储器1220、ROM1230、主机接口1260、缓冲器管理器1270和存储器接口1280。
处理器1210可以控制存储器控制器1200的全部操作。缓冲存储器1220可以被配置为存储器控制器1200的工作存储器,或者可以用作高速缓冲存储器。在实施例中,缓冲存储器1220可以被配置为SRAM。缓冲存储器1220也可称为缓冲器。
作为示例,FTL 1250可以设置成软件格式。在这种格式中,FTL 1250可以被存储在缓冲存储器1220中。存储在缓冲存储器1220中的FTL 1250可以由处理器1210驱动。
ROM 1230可以存储作为固件的、在存储器控制器1200操作时所需的各种信息。缓冲器管理器1270可以管理存储器控制器1200的缓冲存储器1220。例如,从存储器装置1100读取的数据可以被临时存储在缓冲存储器1220中。可选地,从主机2000接收的写入数据(即,待被编程到存储器装置1100的数据)可以被临时存储在缓冲存储器1220中。
作为示例,外部装置,即主机2000的数据管理单元可以与存储器装置1100的数据管理单元不同。例如,主机2000可以扇区为单位管理数据。即,主机2000可以扇区为单位写入或读取数据。另一方面,存储器装置1100可以页面为单位管理数据。即,存储器装置1100可以响应于来自主机2000的请求以页面为单位执行操作。作为示例,页面单位可以大于扇区单位。在写入操作中,缓冲器管理器1270可以将以扇区为单位的数据重新整理成以页面为单位,使得所接收的数据可以被写入到存储器装置1100中。
存储器控制器1200可以通过主机接口1260与外部装置(或主机2000)通信。作为示例,主机接口1260可以包括诸如下列各种接口中的至少一个:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、PCI-高速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)、电子集成驱动器(IDE)、固件、和通用闪存(UFS)。
存储器控制器1200可以通过存储器接口1280与存储器装置1100通信。作为示例,存储器接口1280可以包括NAND接口。
作为示例,从主机2000接收的写入请求和读取请求可以是由主机接口1260定义的命令或信号。被从存储器控制器1200提供至存储器装置1100的写入命令和读取命令可以是由存储器接口1280定义的命令或信号。
尽管在图2中未示出,但是存储器控制器1200可以进一步包括诸如用于将数据随机化的随机化发生器和用于数据错误校正的错误校正电路的组件,。
图3是示出图1的存储器装置的示图。
参照图3,存储器装置1100可以包括存储数据的存储器单元阵列100。存储器装置1100可以包括:外围电路200,被配置成执行将数据存储在存储器单元阵列100中的编程操作、输出存储的数据的读取操作、或擦除存储的数据的擦除操作。存储器装置1100可以包括控制逻辑300,其中控制逻辑300在存储器控制器1200的控制下控制外围电路200。
存储器单元阵列100可以包括多个存储块MB1到MBk(k是正整数)110。局部线LL和位线BL1到BLn(n是正整数)可以联接到存储块MB1至MBk 110。例如,局部线LL可以包括第一选择线、第二选择线和布置在第一和第二选择线之间的多个字线。此外,局部线LL可以进一步包括布置在第一选择线和字线之间以及第二选择线和字线之间的虚设(dummy)线。第一选择线可以是源极选择线,并且第二选择线可以是漏极选择线。例如,局部线LL可以包括字线、漏极和源极选择线以及源极线SL。例如,局部线LL可以进一步包括虚设线。例如,局部线LL可以进一步包括管线。局部线LL可以分别联接到存储块MB1到MBk110,并且位线BL1到BLn可以共同联接到存储块MB1到MBk 110。存储块MB1到MBk 110可以二维结构或三维结构来实施。例如,在具有二维结构的存储块110中,存储器单元可以在平行于衬底的方向上布置。例如,在具有三维结构的存储块110中,存储器单元可以在垂直于衬底的方向上布置。
外围电路200可以被配置成在控制逻辑300的控制下对所选择存储块110执行编程操作、读取操作和擦除操作。例如,在控制逻辑300的控制下,外围电路200可以将验证电压和通过电压施加到第一选择线、第二选择线和字线,选择性地使第一选择线、第二选择线和字线进行放电,并且验证与字线之中的所选择字线联接的存储器单元。例如,外围电路200可以包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压产生电路210可以响应于操作信号OP_CMD生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。而且,电压产生电路210可以响应于操作信号OP_CMD而选择性地使局部线LL放电。例如,在控制逻辑300的控制下,电压产生电路210可以生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压等。
行解码器220可以响应于行地址RADD将操作电压Vop传送至与所选择存储块110联接的局部线LL。
页面缓冲器组230可以包括联接到位线BL1到BLn的多个页面缓冲器PB1到PBn231。页面缓冲器PB1至PBn 231可以响应于页面缓冲器控制信号PBSIGNALS而操作。例如,读取或验证操作中,页面缓冲器PB1至PBn 231可以临时存储通过位线BL1至BLn接收的数据,或者在感测位线BL1至BLn的电压或电流。
列解码器240可以响应于列地址CADD在输入/输出电路250和页面缓冲器组230之间传送数据。例如,列解码器240可以通过数据线DL与页面缓冲器231交换数据,或者通过列线CL与输入/输出电路250交换数据。
输入/输出电路250可以将从存储器控制器1200接收的命令CMD和地址ADD传送至控制逻辑300,或者与列解码器240通信数据DATA。
在读取操作或验证操作中,感测电路260可响应于允许位VRY_BIT<#>而生成参考电流,并且通过将从页面缓冲器组230接收的感测电压VPB与由参考电流产生的参考电压进行比较来输出通过信号PASS或失败信号FAIL。
控制逻辑300可以响应于命令CMD和地址ADD,通过输出操作信号OP_CMD、行地址RADD、列地址CADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>来控制外围电路200。此外,控制逻辑300可以响应于通过或失败信号PASS或FAIL来确定验证操作是通过还是失败。
图4是示出根据本公开的实施例的存储器控制器1200的操作方法的流程图。现在将一起参照图1、图2和图4来描述存储器控制器1200的这种操作。
在步骤S110中,存储器控制器1200从主机2000接收第一数据。第一数据与写入请求一起从主机装置被接收,并且第一数据可以是待被写入存储器装置1100的数据。所接收的第一数据可以被临时存储在缓冲存储器1220中。
在步骤S120中,读取牺牲存储块的第二数据。第二数据可以已经被写入存储器装置1100的牺牲存储块中。更具体地,第二数据可以是待被执行垃圾收集操作的牺牲存储块中存储的有效页面数据。
在步骤S130中,第一数据和第二数据被写入目标存储块中。可以选择目标存储块作为垃圾手机操作中牺牲存储块的有效页面数据的迁移目的地。作为示例,可以从存储器装置1100的存储块之中的空闲块中选择目标存储块。“空闲块”可以表示在擦除操作之后尚未存储数据的存储块。另外,存储器控制器1200可以更新映射表,使得在将牺牲存储块的有效页面数据移动到目标存储块之后,更新有效页面数据的物理地址。如上所述,映射表用于将从主机2000接收的逻辑地址转换成存储器装置1100中使用的物理地址。虽然第二数据的逻辑地址未改变,但是第二数据的物理地址被改变。因此,存储器控制器1200可以更新映射表以反映从牺牲存储块变到目标存储块的改变的物理地址。
在步骤S140中,擦除牺牲存储块。已经被存储在牺牲存储块中的有效页面数据,即第二数据被移动到目标存储块。因此,不存在有效页面;只存在无效页面。因此,当擦除了牺牲存储块时,可以获得空闲块。
图5是更详细地示出根据本公开的实施例的存储器控制器1200的操作方法的流程图。
在步骤S210中,存储器控制器1200从主机2000接收写入请求和与写入请求对应的第一数据。如上所述,第一数据是与写入请求一起从主机2000接收的数据,并且第一数据可以是待被写入存储器装置1100的数据。所接收的第一数据可以被临时存储在缓冲存储器1220中。
在步骤S220中,存储器控制器1200确定是否需要对存储器装置1100进行垃圾收集。在实施例中,可以基于存储器装置1100中的存储块之中的空闲块的数量是否是特定数量或更少,来确定是否需要垃圾收集。当空闲块的数量小于或等于设定或预定参考值时,可能没有足够的空闲块来被执行写入操作。因此,当空闲块的数量小于或等于设定或预定参考值时,存储器控制器1200确定需要垃圾收集。另一方面,当空闲块的数量大于设定或预定参考值时,存储器控制器1200确定尚不需要垃圾收集。
在步骤S230中,当需要垃圾收集时,存储器控制器1200选择牺牲存储块。在存储器装置1100中的所有存储块之中的、除了尚未写入数据的空闲块之外的其它块中选择牺牲存储块。在实施例中,可以基于各个存储块中的无效页面的数量是否大于或等于特定数量来选择牺牲存储块,以便执行有效的垃圾收集。例如,当存储块中的无效页面的数量较小时,这表示有效页面的数量较大的情况或者空闲页面的数量较大的情况。无论哪种情况,这种存储块都不太可能被选择为牺牲存储块。另一方面,当选择有效页面的数量较小且无效页面的数量较大的存储块作为牺牲存储块时,由于垃圾收集而被改为空闲页面的页面的数量较大,从而提高效率。在步骤S230中选择的牺牲存储块的数量可以是一个或多个。
在步骤S240中,读取牺牲存储块的有效数据作为第二数据。所选择牺牲存储块中的有效页面中存储的数据是有效数据。读取有效数据作为第二数据,并且读取的第二数据与第一数据一起被临时存储在缓冲存储器1220中。
在步骤S250中,存储器控制器1200选择目标存储块作为垃圾收集操作中牺牲存储块的有效页面数据的迁移目的地。作为示例,目标存储块可以是从存储器装置1100的存储块之中的空闲块中选择的存储块。
在步骤S260中,用于将存储在缓冲存储器1220中的第一数据和第二数据编程在所选择目标存储块中的写入命令从存储器控制器1200被传送至存储器装置1100。因此,存储器装置1100将第一和第二数据写入目标存储块中,而不是牺牲存储块。
在执行步骤S260时,同时执行将从主机2000接收的第一数据写入到存储器装置1100的写入操作和将存储在牺牲存储块中的第二数据移动到目标存储块的垃圾收集操作。因此,对存储器装置1100的垃圾收集操作与对从主机2000接收的数据的写入操作一起执行。因此,可以保证对存储器系统1000的连续写入操作,并且可以减少从主机2000接收的写入请求的写入延迟。
随后,在步骤S270中,将对牺牲存储块的擦除命令从存储器控制器1200传送至存储器装置1100。因此,牺牲存储块被擦除并因此变成空闲块。执行步骤S270的时间可以根据是否已经从主机2000接收到外写入请求而改变。即,当在执行步骤S260之后有额外写入请求待处理时,首先处理额外写入请求,而不是首先擦除牺牲存储块。当在执行步骤S260之后没有额外写入请求待处理时,擦除牺牲存储块。因此,可以提高存储器系统1000的操作速度。
返回到步骤S220,当确定不需要垃圾收集时,方法进行到步骤S280,在步骤S280中,存储器控制器1200将用于对从主机2000接收的第一数据进行编程的写入命令输出到存储器装置1110。因此,不执行垃圾收集,并且从主机2000接收的第一数据被立即写入到存储器装置1100中。
图6A至图6E是示出根据本公开的实施例的存储器控制器的操作方法的框图。参照图6A至图6E描述图4和5中所示的方法。
参照图6A至图6E,示出了存储器控制器1200和存储器装置1100。为了清楚说明,在这些图中省略了主机2000。存储器控制器1200包括缓冲存储器1220,并且还可以包括图2中所示的其它组件。为清楚起见,图6A至图6E中省略了存储器控制器1200的这些其它组件。在图6A至图6E中,存储器装置1100包括四个存储块110a、110b、110c和110d,但是应该理解,存储器装置1100可以包括更多数量的存储块。类似地,在图6A至图6E中,存储块110a、110b、110c和110d中的每一个包括五个页面,但是应当理解,存储块110a、110b、110c和110d中的每一个可以包括更多数量的页面。
存储块110a包括两个有效页面和三个无效页面。有效页面数据Data1和Data2被存储在存储块110a中。存储块110b包括三个有效页面和两个无效页面。有效页面数据Data3、Data4和Data5被存储在存储块110b中。存储块110c包括一个有效页面和四个无效页面。有效数据Data6被存储在存储块110c中。存储块110d中未存储数据,因此该存储块110d是空闲块。
在图6A中,将数据Data7和与数据Data7相对应的写入请求RQ_W从主机2000传送至存储器控制器1200。如图5中所示,存储器控制器1200确定是否需要垃圾收集(S220)。在图6A中,由于存在一个空闲块,因此确定需要垃圾收集。
在图6B中,所接收的数据Data7作为第一数据被存储在存储器控制器1200的缓冲存储器1220中。存储器控制器1200在存储器装置1100的存储块110a、110b、110c和110d之中选择牺牲存储块。如上所述,当存储块中的无效页面数量大于或等于特定参考值时,可以选择该存储块作为牺牲存储块。作为示例,在图6B中示出了,当存储块中的五个页面之中的无效页面的数量是三个或更多个时,选择该存储块作为牺牲存储块。因此,选择每个包括三个或更多个无效页面的存储块110a和110c作为牺牲存储块。因此,被写入牺牲存储块110a和110c中的有效页面数据Data1、Data2和Data6成为图4和图5中描述的第二数据。
存储器控制器1200将对第二数据,即被选择为牺牲存储块的存储块110a和110c中存储的有效页面数据Data1、Data2和Data6,的读取命令传送至存储器装置1100。
参照图6C,当接收到读取命令RCMD时,存储在存储器装置1100中的第二数据,即牺牲存储块的有效页面数据Data1、Data2和Data6被读取并被传送至存储器控制器1200。被传送的数据可被存储在缓冲存储器1220中。因此,从主机2000接收的、作为第一数据的数据Data7和来自牺牲存储块的、作为第二数据的数据Data1、Data2和Data6被存储在缓冲存储器1220中。
参照图6D,存储器控制器1200选择是空闲块的存储块110d作为目标存储块。而且,存储器控制器1200生成用于将存储在缓冲存储器1220中的第一和第二数据写入目标存储块中的写入命令WCMD,并将生成的写入命令WCMD传送至存储器装置1100。数据Data7、Data1、Data2和Data6也可以与写入命令WCMD一起被传送至存储器装置1100。因此,存储器装置1100将所接收的数据Data7、Data1、Data2和Data6写入作为目标存储块的存储块110d中。当有效页面数据Data1、Data2和Data6被写入目标存储块中时,作为牺牲存储块的存储块110a和110c中存储的数据变成无效。
参照图6E,存储器控制器1200将擦除已成为牺牲存储块的存储块110a和110c的擦除命令ECMD传送至存储器装置1100。当接收到擦除命令ECMD时,存储器装置1100擦除存储块110a和110c。因此,存储块110a和110c变成空闲块。
如图6A至图6E所示,在根据本公开的实施例的存储器控制器及该存储器控制器的操作方法中,一起执行对存储器装置1100的垃圾收集操作和对从主机2000接收的数据的写入操作。因此,可以保证对存储器系统1000的连续写入操作,并且可以减少从主机2000接收的写入请求的写入延迟。
根据本公开的实施例的存储器控制器的操作方法可以更优选地应用于具有小块大小的数据。作为示例,根据本公开的实施例的存储器控制器的操作方法可以应用于重放保护存储块(RPMB)。
图7是示出根据本公开另一实施例的存储器控制器的操作方法的流程图。现在将一起参照图1、图3和图7描述存储器控制器1200的操作。
在步骤S310中,存储器控制器1200读取存储器装置1100中的牺牲存储块的第一数据。第一数据已经被存储在牺牲存储块中,并且可以是待被执行垃圾收集操作的有效页面数据。读取的第一数据可以被临时存储在缓冲存储器1220中。
在步骤S320中,存储器控制器1200从主机2000接收第二数据。第二数据是与写入请求一起从主机2000接收的数据,并且可以是待被写入到存储器装置1100的数据。所接收的第二数据可以被临时存储在缓冲存储器1220中。
在步骤S330中,存储器控制器1200将第一和第二数据写入目标存储块中。可以选择目标存储块作为垃圾收集操作中牺牲存储块的有效页面数据的迁移目的地。作为示例,目标存储块可以是从存储器装置1100的存储块之中的空闲块选择的存储块。
在步骤S340中,存储器控制器1200擦除牺牲存储块。由于有效页面数据,即已经被存储在牺牲存储块中的第一数据被移动到目标存储块,因此不存在有效页面;只存在无效页面。因此,当擦除了牺牲存储块,可以获得空闲块。
当比较图4和图7时,在图4的实施例中,存储器控制器1200首先从主机接收第一数据(参见S110),然后读取牺牲存储块的第二数据(S120)。另一方面,在图7的实施例中,存储器控制器1200首先读取牺牲存储块的第一数据(S310),然后从主机接收第二数据(参见S320)。根据图7的实施例,在从主机2000接收到写入请求和写入数据之前,存储器控制器1200选择待被执行垃圾收集的牺牲存储块,预先读取所选择牺牲存储块中存储的有效页面数据,并且然后将读取的有效页面数据存储在缓冲存储器1220中。根据图7的实施例,当从主机2000接收到写入请求和写入数据时,存储器控制器1200将已经被存储在缓冲存储器中的有效页面数据和从主机接收的数据立即写入存储器装置1100的目标存储块中。因此,减少了从主机2000接收到写入请求到完成写入操作的时间。因此,可以提高存储器系统1000的操作速度。
图8是更详细地示出根据本公开另一实施例的存储器控制器的操作方法的流程图。
在步骤S410中,存储器控制器1200确定是否需要对存储器装置1100进行垃圾收集。特别地,在步骤S410中,存储器控制器1200可以通过定期地监视存储器装置1100来重复确定何时需要垃圾收集。如上所述,可以基于存储装置1100中的存储块之中的空闲块的数量是否小于或等于特定数量来确定是否需要垃圾收集。
在步骤S420中,当如步骤S410中所确定的需要垃圾收集时,存储器控制器1200选择牺牲存储块。作为示例,可以基于存储块中的无效页面的数量是否大于或等于特定数量来选择牺牲存储块。在步骤S420中选择的牺牲存储块的数量可以是一个或多个。
在步骤S430中,存储器控制器1200读取牺牲存储块的有效数据作为第一数据。所选择牺牲存储块中的有效页面中存储的数据是有效数据。读取有效数据作为第一数据,并且读取的第一数据可以被临时存储在缓冲存储器1220中。
在步骤S440中,存储器控制器1200从主机2000接收写入请求和与写入请求相对应的第二数据。在执行步骤S430之后,可以不立即执行步骤S440。在执行步骤S430之后,可能存在用于从主机2000接收请求的等待时段。
如上所述,第二数据是与写入请求一起从主机2000接收的数据,并且可以是被写入存储器装置1100的数据。所接收的第二数据可以与第一数据一起被临时存储在缓冲存储器1220中。
在步骤S450中,存储器控制器1200选择目标存储块作为垃圾收集操作中牺牲存储块的有效页面数据的迁移目的地。作为示例,目标存储块可以是从存储器装置1100的存储块之中的空闲块中选择的存储块。
在步骤S460中,将用于将存储在缓冲存储器1220中的第一和第二数据编程在所选择目标存储块中的写入命令从存储器控制器1200传送至存储器装置1100。第一和第二数据也可以与写入命令一起被传送至存储器装置1100。因此,存储器装置1100将第一和第二数据写入目标存储块中,而不是牺牲存储块。
当执行步骤S460时,同时执行将存储在存储器装置1100的牺牲存储块中的第一数据移动到目标存储块中的垃圾收集操作和将从主机2000接收的第二数据写入到存储器装置1100的写入操作。因此,一起执行对存储器装置1100的垃圾收集操作和对从主机2000接收的数据的写入操作。因此,可以保证对存储器系统1000的连续写入操作,并且可以减少从主机2000接收的写入请求的写入延迟。
随后,在步骤S470中,将对牺牲存储块的擦除命令从存储器控制器1200传送至存储器装置1100。因此,牺牲存储块被擦除并因此变成空闲块。执行步骤S470的时间可以根据是否已经从主机2000接收到额外写入请求而改变。即,当在执行步骤S460之后有额外写入请求待处理时,首先处理额外写入请求,而不是擦除牺牲存储块。当在执行步骤S460之后没有额外写入请求待处理时,擦除牺牲存储块。因此,可以提高存储器系统1000的操作速度。
返回到步骤S410,当确定不需要垃圾收集时,在步骤S480中,存储器控制器1200从主机接收写入请求和与写入请求相对应的第二数据。在执行步骤S410之后,可以不立即执行步骤S480。在执行步骤S410之后,可能存在用于从主机2000接收请求的等待时段。随后,在步骤S490中,将用于对接收的第二数据进行编程的写入命令从存储器控制器1200输出到存储器装置1100。因此,当执行步骤S410,S480和S490时,可以在不执行垃圾收集的情况下将从主机2000接收的第二数据写入到存储器装置1100。
如上所述,根据图8的实施例,在从主机2000接收到写入请求和写入数据(S440)之前,存储器控制器1200选择待被执行垃圾收集的牺牲存储块(S420),预先读取所选择牺牲存储块中存储的有效页面数据(S430),并且将读取的有效页面数据存储在缓冲存储器1220中。因此,当从主机2000接收到写入请求和写入数据(S440)时,存储器控制器1200将已经被存储在缓冲存储器1220中的有效页面数据(即,第一数据)和从主机接收的写入数据(即,第二数据)立即写入存储器装置1100的目标存储块中(S460)。因此,减少了从主机2000接收到写入请求到完成写入操作的时间。因此,可以提高存储器系统1000的操作速度。
图9A至图9F是示出根据图7的实施例的存储器控制器的操作方法的框图。将参照图9A至图9F描述图7和8中所示的方法。
参照图9A至图9F,示出了存储器控制器1200和存储器装置1100。为了清楚说明,省略了主机2000。存储器控制器1200包括缓冲存储器1220。为清楚起见,省略了存储器控制器1200的其它组件。
存储块110a至110d中的每一个中存储的有效和无效页面与图6A中描述的相同。
在图9A中,存储器控制器1200确定是否需要垃圾收集(S410)。在图9A中,由于存在一个空闲块,因此确定需要垃圾收集。
在图9B中,存储器控制器1200在存储器装置1100的存储块110a、110b、110c和110d之中选择牺牲存储块。作为示例,在图9B中示出了,当存储块中的五个页面之中的无效页面的数量是三个或更多个时,选择该存储块作为牺牲存储块。因此,选择每个包括三个或更多个无效页面的存储块110a和110c作为牺牲存储块。因此,被写入牺牲存储块110a和110c中的有效页面数据Data1、Data2和Data6成为图7和8中描述的第一数据。
存储器控制器1200将对第一数据的读取命令传送至存储器装置1100,其中第一数据是被选择为牺牲存储块的存储块110a和110c中存储的有效页面数据Data1、Data2和Data6。
参照图9C,当接收到读取命令RCMD时,存储在存储器装置1100中的第一数据,即牺牲存储块的有效页面数据Data1、Data2和Data6被读取并被传送至存储器控制器1200。被传送的数据可以被存储在缓冲存储器1220中。因此,从主机2000接收的、作为第二数据的数据Data7和来自牺牲存储块的、作为第一数据的数据Data1、Data2和Data6被存储在缓冲存储器1220中。
参照图9C,将数据Data7和与数据Data7相对应的写入请求RQ_W从主机2000传送至存储器控制器1200。如图9D所示,所接收的数据Data7作为第二数据被存储在存储器控制器1200的缓冲存储器1220中。
参照图9E,存储器控制器1200选择为空闲块的存储块110d作为目标存储块。而且,存储器控制器1200生成用于将存储在缓冲存储器1220中的第一和第二数据写入目标存储块中的写入命令WCMD,并将生成的写入命令WCMD传送至存储器装置1100。数据Data1、Data2、Data6和Data7也可以与写入命令WCMD一起被传送至存储器装置1100。因此,存储器装置1100将接收的数据Data1、Data2,Data6和Data7写入作为目标存储块的存储块110d中。当成为第一数据的有效页面数据Data1、Data2和Data6被写入目标存储块中时,存储在作为牺牲存储块的存储块110a和110c中的数据变成无效。
参照图9F,存储器控制器1200将擦除已变成牺牲存储块的存储块110a和110c的擦除命令ECMD传送至存储器装置1100。当接收到擦除命令ECMD时,存储器装置1100擦除存储块110a和110c。因此,存储块110a和110c变成空闲块。
如图9A至图9F所示,在根据本公开的实施例的存储器控制器及其操作方法中,一起执行对存储器装置1100的垃圾收集操作和对从主机2000接收的数据的写入操作。因此,可以保证对存储器系统1000的连续写入操作,并且可以减少从主机2000接收的写入请求的写入延迟。
另外,根据图9A至图9F中所示的实施例,在从主机2000接收到写入请求和写入数据(S440)之前,存储器控制器1200选择待被执行垃圾收集的牺牲存储块(参见S420),预先读取所选择牺牲存储块中存储的有效页面数据(S430),并且将读取的有效页面数据存储在缓冲存储器1220中。因此,当从主机2000接收到写入请求和写入数据(S440)时,存储器控制器1200将已经被存储在缓冲存储器1220中的有效页面数据(即,第一数据)和从主机接收的写入数据(即,第二数据)立即写入存储器装置1100的目标存储块中(S460)。因此,减少了从主机2000接收到写入请求到完成写入操作的时间。因此,可以提高存储器系统1000的操作速度。
图10是示出根据本公开又一实施例的存储器控制器的操作方法的流程图。现在将一起参照图1、图2和图10描述存储器控制器1200的操作。
在步骤S510中,存储器控制器1200从主机2000接收第一数据。第一数据是与写入请求一起从主机2000接收的数据,并且可以是待被写入存储器装置1100的数据。所接收的第一数据可以被临时存储在缓冲存储器1220中。
在步骤S520中,存储器控制器1200读取牺牲存储块的第二数据。第二数据已经被写入并被存储在存储器装置1100的牺牲存储块中,并且可以是被存储的有效页面数据。
在步骤S530中,存储器控制器1200基于第一数据和第二数据生成写入数据。写入数据可以包括第一数据和第二数据。已经参照图6A至图6E和图9A至图9F描述了写入数据简单地包括第一数据和第二数据的情况。
当第一数据和第二数据部分重叠时,或者当第一数据的部分用于更新第二数据的部分时,可以通过修改或校正第一数据和第二数据来生成写入数据。例如,当第一数据和第二数据部分地具有相同内容时,写入数据可以是包括第一数据和第二数据的数据,其中第一数据和第二数据的重复内容被删除。
例如,当第一数据的部分用于更新第二数据的部分时,写入数据可以是包括更新的第二数据的数据。将参照图11A至图11F详细描述基于第一数据和第二数据生成写入数据的示例。
在步骤S540中,存储器控制器1200将生成的写入数据写入目标存储块中。可以选择目标存储块作为垃圾收集操作中有效页面数据的迁移目的地,并且可以选择空闲块作为目标存储块。另外,存储器控制器1200可以更新映射表,使得在有效页面数据被写入目标存储块之后更新有效页面数据的物理数据。
在步骤S550中,存储器控制器1200擦除牺牲存储块。由于存储在牺牲存储块中的有效页面数据,即第二数据通过步骤S510至S540被写入目标存储块中,因此不存在有效页面;只存在无效页面。因此,当擦除牺牲存储块时,可以获得空闲块。
图11A至图11F是示出根据图10的实施例的存储器控制器的操作方法的框图。参照图11A至图11F描述图10中所示的方法。
参照图11A至图11F,示出了存储器控制器1200和存储器装置1100。为了清楚说明,在这些图中省略了主机2000。存储器控制器1200包括缓冲存储器1220,并且可以包括图2中所示的其它组件。为清楚起见,本文省略了存储器控制器1200的这些其它组件。
存储块110a至110d中的每一个中存储的有效和无效页面与图6A中描述的相同。
在图11A中,将数据Data7和与数据Data7相对应的写入请求RQ_W从主机2000传送至存储器控制器1200。存储器控制器1200确定是否需要垃圾收集。在图11A中,由于存在一个空闲块,因此确定需要垃圾收集。
在图11B中,所接收的数据Data7作为第一数据被存储在存储器控制器1200的缓冲存储器1220中。存储器控制器1200选择存储器装置1100的存储块110a、110b、110c和110d之中的存储块110a和110c作为牺牲存储块。因此,被写入牺牲存储块110a和110c中的有效页面数据Data1、Data2和Data6成为图10中描述的第二数据。
存储器控制器1200将对第二数据的读取命令传送至存储器装置1100,其中第二数据是被选择为牺牲存储块的存储块110a和110c中存储的有效页面数据Data1、Data2和Data6。
参照图11C,当接收到读取命令RCMD时,存储在存储器装置1100中的第二数据,即牺牲存储块的有效页面数据Data1、Data2和Data6被读取并被传送至存储器控制器1200。被传送的数据可被存储在缓冲存储器1220中。因此,从主机2000接收的、作为第一数据的数据Data7和来自牺牲存储块的、作为第二数据的数据Data1、Data2和Data6被存储在缓冲存储器1220中。
参照图11D,存储器控制器1200基于作为第一数据的数据Data7和作为第二数据的数据Data1、Data2和Data6来生成第三数据Data1'、Data2和Data6。例如,从主机2000接收的数据Data7可以用于更新包括在第二数据中的数据Data1。存储器控制器1200可以生成基于数据Data7和Data1而被更新的数据Data1'。更新的数据Data1'包括在上述第三数据Data1'、Data2和Data6中。第三数据指参照图10所述的写入数据。
参照图11E,存储器控制器1200选择为空闲块的存储块110d作为目标存储块。而且,存储器控制器1200生成用于将存储在缓冲存储器1220中的第三数据Data1'、Data2和Data6写入目标存储块中的写入命令WCMD,并将生成的写入命令WCMD传送至存储器装置1100。数据Data1'、Data2和Data6也可以与写入命令WCMD一起被传送至存储器装置1100。因此,存储器装置1100将接收的数据Data1'、Data2和Data6写入作为目标存储块的存储块110d中。当更新的有效页面数据Data1'和另外有效页面数据Data2和Data6被写入目标存储块中时,作为牺牲存储块的存储块110a和110c中存储的数据变成无效。
参照11F,存储器控制器1200将用于擦除已变成牺牲存储块的存储块110a和110c的擦除命令ECMD传送至存储器装置1100。当接收到擦除命令ECMD时,存储器装置1100擦除存储块110a和110c。因此,存储块110a和110c变成空闲块。
如图11A至图11F所示,在根据本公开的实施例的存储器控制器及其操作方法中,一起执行对存储器装置1100的垃圾收集操作和对从主机2000接收的数据的写入操作。因此,可以保证对存储器系统1000的连续写入操作,并且可以减少从主机2000接收的写入请求的写入延迟。
根据图11A至图11F中所示的实施例,基于从主机2000接收的第一数据和存储在牺牲存储块中的第二数据生成第三数据。在实施例中,第三数据可以是通过基于第一数据来更新第二数据而生成的数据。在另一实施例中,第三数据可以是通过删除第一数据与第二数据的重复数据而生成的数据。
图12是示出根据本公开另一实施例的存储器控制器的操作方法的流程图。
在步骤S610中,存储器控制器1200读取存储器装置1100中的牺牲存储块的第一数据。第一数据已被写入并存储在存储器装置1100的牺牲存储块中,并且可以是待被执行垃圾收集操作的存储的有效页面数据。读取的第一数据可以被临时存储在缓冲存储器1220中。
在步骤S620中,存储器控制器1200从主机2000接收第二数据。第二数据是与写入请求一起从主机2000接收的数据,并且可以是待被写入存储器装置1100的数据。第二数据可以被临时存储在缓冲存储器1220中。
在步骤S630中,存储器控制器1200基于第一数据和第二数据生成写入数据。写入数据可以包括第一数据和第二数据。已经参照图6A至图6E和图9A至图9F描述了写入数据简单地包括第一数据和第二数据的情况。
当第一数据和第二数据部分重叠时,或者当第一数据的部分用于更新第二数据的部分时,写入数据可以是通过修改或校正第一数据和第二数据而生成的数据。例如,当第一数据和第二数据部分地具有相同内容时,写入数据可以是包括第一数据和第二数据的数据,其中第一数据和第二数据的重复内容被删除。已经参照图11D描述了写入数据是通过修改第一数据或第二数据而生成的数据的示例。
在步骤S640中,存储器控制器1200将生成的写入数据写入目标存储块中。可以选择目标存储块作为垃圾收集操作中有效页面数据的迁移目的地,并且可以选择空闲块作为目标存储块。另外,存储器控制器1200可以更新映射表,使得在有效页面数据被写入目标存储块中之后更新有效页面数据的物理数据。
在步骤S650中,存储器控制器1200擦除牺牲存储块。由于有效页面数据,即已经被存储在牺牲存储块中的第一数据被写入目标存储块中,因此不存在有效页面;只存在无效页面。因此,当擦除了牺牲存储块时,可以获得空闲块。
当比较图10和图12时,在图10的实施例中,存储器控制器1200首先从主机接收第一数据(参见S510),然后读取牺牲存储块的第二数据(S520)。另一方面,在图12的实施例中,存储器控制器1200首先读取牺牲存储块的第一数据,然后从主机接收第二数据。根据图12的实施例,在从主机2000接收到写入请求和写入数据之前,存储器控制器1200选择待被执行垃圾收集的牺牲存储块,预先读取所选择牺牲存储块中存储的有效页面数据,然后将读取的有效页面数据存储在缓冲存储器1220中。根据图12的实施例,当从主机2000接收到写入请求和写入数据时,存储器控制器1200立即将已经被存储在缓冲存储器中的有效页面数据和从主机接收的数据写入存储器装置1100的目标存储块中。因此,减少了从主机2000接收到写入请求到完成写入操作的时间。因此,可以提高存储器系统1000的操作速度。
图13是示出存储器系统的另一示例的框图。
参照图13,存储器系统1001包括存储器控制器1201和第一至第四存储器装置1101至1104。参照图13描述主机2001和存储器控制器1201。因此,这里省略了对这些组件的重复描述。FTL 1251也可以与参照图1描述的FTL 1250基本相同。
第一至第四存储器装置1101至1104中的每一个可以是参照图1至图3描述的存储器装置1100。第一至第四存储器装置1101至1104中的每一个可以分别通过第一至第四通道CH1至CH4联接至存储器控制器1201,并且在存储器控制器1201的控制下独立地操作。例如,多个存储器装置1101至1104可以同时对不同的数据进行编程。作为示例,多个存储器装置1101至1104中的每一个可以配置有单独芯片,并且可以一起可以一起被设置为多芯片封装(MCP)。
作为示例,存储器系统1001可以进一步包括多于所示的四个存储器装置1101至1104。
图13中所示的存储器控制器1201还可以控制第一至第四存储器装置1101至1104的操作以一起执行垃圾收集操作和对从主机2001接收的数据的写入操作。
因此,可以保证对存储器系统1001的连续写入操作,并且可以减少从主机2001接收的写入请求的写入延迟。
图14是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
参照图14,存储器系统3000可以实现为蜂窝电话、智能电话、平板PC,个人数字助理(PDA)或无线通信设备。存储器系统3000可以包括存储器装置1100和能够控制存储器装置1100的操作的存储器控制器1200。存储器控制器1200可以在处理器3100的控制下控制对存储器装置1100的数据访问操作,例如,编程操作、擦除操作、读取操作等。
可以在存储器控制器1200的控制下通过显示器3200输出被编程在存储器装置1100中的数据。
无线电收发器3300可以通过天线ANT发送/接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号转换为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号并将处理的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可将由处理器3100处理的信号传输到半导体存储器装置1100。此外,无线电收发器3300可将从处理器3100输出的信号转换为无线电信号,并且通过天线ANT将变换后的无线电信号输出到外部装置。输入装置3400是能够输入用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据的装置,并且可被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。处理器3100可控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据可以通过显示器3200被输出。
在一些实施例中,能够控制存储器装置1100的操作的存储器控制器1200可被实施为处理器3100的一部分或被实施为独立于处理器3100的芯片。
图15是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
参照图15,存储器系统4000可以被实施为个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器
存储器系统4000可包括存储器装置1100和能够控制存储器装置1100的数据处理操作的存储器控制器1200。
处理器4100可根据从输入装置4200输入的数据,通过显示器4300输出存储在存储器装置1100中的数据。例如,输入装置4200可被实施为诸如触摸板或计算机鼠标的定电装置、小键盘或键盘。
处理器4100可控制存储器系统4000的全部操作,并且控制存储器控制器1200的操作。在一些实施例中,能够控制存储器装置1100的操作的存储器控制器1200可被实施为处理器4100的一部分或被实施为独立于处理器4100的芯片。
图16是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
参照图16,存储器系统5000可被实施为图像处理装置,例如数码相机、附设有数码相机的便携式电话、附设有数码相机的智能电话或附设有数码相机的平板电脑。
存储器系统5000可包括存储器装置1100和存储器控制器1200,其中存储器控制器1200能够控制存储器装置1100的数据处理操作,例如编程操作、擦除操作或读取操作。
存储器系统5000的图像传感器5200可将光学图像转换为数字信号。转换后的数字信号可被传输到处理器5100或存储器控制器1200。可以通过显示器5300输出转换后的数字信号,或转换后的数字信号通过存储器控制器1200被存储在存储器装置1100中。可以在处理器5100或存储器控制器1200的控制下通过显示器5300输出存储在存储器装置1100中的数据。
在一些实施例中,能够控制存储器装置1100的操作的存储器控制器1200可被实施为处理器5100的一部分或被实施为独立于处理器5100的芯片。
图17是示出包括图1和图2中所示的存储器控制器的存储器系统的另一实施例的示图。
参照图17,存储器系统7000可被实施为存储卡或智能卡。存储器系统7000可包括存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可控制存储器装置1100和卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但本公开不限于此。
卡接口7100可根据主机6000的协议来接口连接主机6000和存储器控制器1200以进行数据交换。在一些实施例中,卡接口7100可支持通用串行总线(USB)协议和芯片间(IC)-USB协议。此处,卡接口7100可指能够支持主机6000使用的协议、嵌入在硬件中的软件或者信号传输方法的硬件。
当存储器系统7000联接到诸如PC、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机6000的主机接口6200时,主机接口6200可在微处理器6100的控制下,通过卡接口7100和存储器控制器1200执行与存储器装置1100的数据通信。
根据本公开的实施例,提供一种能够减少写入延迟的存储器控制器。
此外,根据本公开的实施例,提供一种能够减少写入延迟的存储器控制器的操作方法。
本文已经公开了各个实施例,并且虽然采用了特定术语,但是特定术语仅以一般性和描述性意义来使用和解释,而不是出于限制的目的。在一些情况下,从本申请提交起,对于本领域普通技术人员而言显而易见的是,除非另外明确说明,否则结合特定实施例描述的特征、特性和/或元件可单独使用或与结合其它实施例描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离所附权利要求中阐述的本公开的技术方案的情况下,可以在形式和细节上进行各种改变。

Claims (16)

1.一种存储器控制器,所述存储器控制器控制存储器装置的操作,所述存储器控制器包括:
缓冲存储器;以及
处理器,
响应于从主机接收的写入请求和第一数据,通过比较所述第一数据和从牺牲存储块读取的第二数据来生成第三数据,并且
生成用于将所述第三数据编程到所述存储器装置的写入命令。
2.根据权利要求1所述的存储器控制器,其中所述处理器:
控制所述缓冲存储器存储所述第一数据,
选择所述存储器装置的所述牺牲存储块,并且
生成用于读取存储在所述牺牲存储块中的有效页面数据的读取命令。
3.根据权利要求1所述的存储器控制器,其中所述处理器控制所述缓冲存储器存储所述第二数据。
4.根据权利要求3所述的存储器控制器,其中所述处理器在所述第二数据被存储在所述缓冲存储器中之后,生成用于将所述第三数据编程到所述存储器装置的所述写入命令。
5.根据权利要求1所述的存储器控制器,其中所述第三数据包括通过基于所述第一数据更新所述第二数据而生成的数据。
6.根据权利要求1所述的存储器控制器,其中所述第三数据包括所述第一数据和所述第二数据,并且通过删除所述第一数据与所述第二数据的重复数据来生成所述第三数据。
7.根据权利要求1所述的存储器控制器,其中所述处理器通过定期地监视所述存储器装置来确定是否需要对所述存储器装置进行垃圾收集,并且响应于需要对所述存储器装置进行垃圾收集的确定,将所述第二数据存储在所述缓冲存储器中。
8.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置的操作,所述方法包括:
从主机接收写入请求和第一数据;
响应于所述写入请求,控制所述存储器装置读取被写入所述存储器装置的牺牲存储块中的第二数据;
通过比较所述第一数据和从所述牺牲存储块读取的所述第二数据来生成第三数据,并且
控制所述存储器装置以将所述第三数据写入所述存储器装置的目标存储块中。
9.根据权利要求8所述的方法,进一步包括:控制所述存储器装置擦除所述牺牲存储块。
10.根据权利要求8所述的方法,其中控制所述存储器装置读取被写入所述存储器装置的牺牲存储块中的第二数据包括:
基于被写入所述存储器装置的存储块中的有效页面和无效页面,选择无效页面的数量大于设定参考值的至少一个存储块作为牺牲存储块;
生成用于读取所述牺牲存储块中的有效页面数据的读取命令;
将所述读取命令传送至所述存储器装置;并且
接收与所述读取命令相对应的所述第二数据。
11.根据权利要求8所述的方法,其中所述第三数据包括所述第一数据和所述第二数据并且通过删除所述第一数据和所述第二数据中的重叠数据来生成所述第三数据。
12.根据权利要求8所述的方法,其中所述第三数据包括通过基于所述第一数据更新所述第二数据而生成的数据。
13.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置的操作,所述方法包括:
通过监视所述存储器装置确定是否需要垃圾收集;
响应于需要对所述存储器装置进行垃圾收集的确定,选择所述存储器装置的牺牲存储块;
控制所述存储器装置以读取存储在所述牺牲存储块中的第一数据;
从主机接收写入请求和第二数据;
响应于所述写入请求,通过比较所述第一数据和所述第二数据来生成第三数据;以及
控制所述存储器装置以将所述第三数据写入所述存储器装置的目标存储块中。
14.根据权利要求13所述的方法,其中确定是否需要所述垃圾收集包括:
确定所述存储器装置中的空闲存储块的数量是否小于或等于参考值,当所述空闲存储块的数量小于或等于所述参考值时确定需要对所述存储器装置进行所述垃圾收集,当所述空闲存储块的数量大于所述参考值时确定不需要对所述存储器装置进行所述垃圾收集。
15.根据权利要求13所述的方法,其中在选择所述存储器装置的牺牲存储块中,选择无效页面数量大于设定参考值的至少一个存储块作为所述牺牲存储块。
16.一种存储器系统,包括:
存储器装置;以及
控制器,响应于写入操作的请求,控制所述存储器装置执行垃圾收集操作,同时执行所述写入操作,所述垃圾收集操作为将牺牲存储块的有效数据移动到所述存储器装置中的目标存储块中,所述写入操作为将写入数据存储到所述目标存储块中,
其中,在所述垃圾收集操作和所述写入操作期间,所述控制器将所述有效数据和所述写入数据聚集在所述控制器的缓冲器中,并将所聚集的数据提供至所述存储器装置,并且
通过比较所述有效数据和所述写入数据来生成所聚集的数据。
CN201811107452.4A 2018-01-24 2018-09-21 存储器控制器以及存储器控制器的操作方法 Active CN110069427B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180008983A KR102516539B1 (ko) 2018-01-24 2018-01-24 메모리 컨트롤러 및 그 동작 방법
KR10-2018-0008983 2018-01-24

Publications (2)

Publication Number Publication Date
CN110069427A CN110069427A (zh) 2019-07-30
CN110069427B true CN110069427B (zh) 2023-05-16

Family

ID=67298651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811107452.4A Active CN110069427B (zh) 2018-01-24 2018-09-21 存储器控制器以及存储器控制器的操作方法

Country Status (3)

Country Link
US (1) US11029854B2 (zh)
KR (1) KR102516539B1 (zh)
CN (1) CN110069427B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210103228A (ko) * 2020-02-13 2021-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20220082509A (ko) * 2020-12-10 2022-06-17 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436595B1 (en) * 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473669B2 (en) 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
KR20160078611A (ko) 2014-12-24 2016-07-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10235057B2 (en) * 2015-09-04 2019-03-19 Western Digital Technologies, Inc. Operating parameters for flash memory devices
KR20170050953A (ko) * 2015-11-02 2017-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436595B1 (en) * 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device

Also Published As

Publication number Publication date
KR20190090287A (ko) 2019-08-01
US11029854B2 (en) 2021-06-08
US20190227715A1 (en) 2019-07-25
KR102516539B1 (ko) 2023-04-03
CN110069427A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN107179996B (zh) 数据存储装置和其操作方法
US11342032B2 (en) Memory controller, memory system, and method of operating memory system
US11294814B2 (en) Memory system having a memory controller and a memory device having a page buffer
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US20210133095A1 (en) Memory controller performing host-aware performance booster mode and method of operating the same
KR102523327B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11442664B2 (en) Memory system and method of operating the same
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
KR20190051564A (ko) 메모리 시스템 및 그것의 동작 방법
US20190065102A1 (en) Memory system and operating method thereof
KR102537373B1 (ko) 메모리 시스템에서의 데이터 전달 방법 및 장치
US20190258593A1 (en) Memory controller and operating method thereof
CN110069427B (zh) 存储器控制器以及存储器控制器的操作方法
US11775211B2 (en) Memory controller and method of operating the same
KR20190123984A (ko) 메모리 시스템 및 그것의 동작 방법
US11593023B2 (en) Memory controller and method of operating the same
US11676643B2 (en) Memory device, storage device, and method of operating memory controller to output read data in response to read enable signal
KR20190105869A (ko) 메모리 컨트롤러 및 그 동작 방법
US20210232343A1 (en) Memory controller, memory system, and operating method thereof
KR20190112546A (ko) 메모리 시스템 및 그것의 동작 방법
KR20190097712A (ko) 메모리 시스템 및 그것의 동작 방법
KR20190107504A (ko) 메모리 컨트롤러 및 그 동작 방법
US12007887B2 (en) Method and system for garbage collection
US20230103797A1 (en) Memory controller and method of operating the same
US11941294B2 (en) Memory controller for controlling suspension of operation and method of operating the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant