CN111045593A - 用来进行读取加速的方法以及数据存储装置及其控制器 - Google Patents

用来进行读取加速的方法以及数据存储装置及其控制器 Download PDF

Info

Publication number
CN111045593A
CN111045593A CN201910388809.9A CN201910388809A CN111045593A CN 111045593 A CN111045593 A CN 111045593A CN 201910388809 A CN201910388809 A CN 201910388809A CN 111045593 A CN111045593 A CN 111045593A
Authority
CN
China
Prior art keywords
controller
volatile memory
command
host
instruction
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.)
Granted
Application number
CN201910388809.9A
Other languages
English (en)
Other versions
CN111045593B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN111045593A publication Critical patent/CN111045593A/zh
Application granted granted Critical
Publication of CN111045593B publication Critical patent/CN111045593B/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/0638Organizing or formatting or addressing of data
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种用来进行读取加速的方法以及相关的数据存储装置及其控制器,其中所述方法可应用于所述数据存储装置与所述控制器。所述方法可包括:从一主机接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程;记录对应于所述写入指令的操作指令相关信息;当对应于所述非挥发性存储器组件的一队列中存在具有高优先权的一读取指令时,暂停对所述非挥发性存储器组件进行编程;执行所述读取指令;以及于执行所述读取指令之后,至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。本发明通过队列管理及编程中断管理,能避免数据存储装置的响应因编程而变慢。

Description

用来进行读取加速的方法以及数据存储装置及其控制器
技术领域
本发明有关于闪存(Flash memory)的存取(access),尤指一种用来进行读取加速的方法以及相关的数据存储装置及其控制器。
背景技术
近年来由于存储器的技术不断地发展,各种可携式或非可携式数据存储装置(例如:符合SD/MMC、CF、MS、XD或UFS标准的记忆卡;又例如:固态硬盘;又例如:符合UFS或EMMC规格的嵌入式(embedded)存储装置)被广泛地实施于诸多应用中。因此,这些数据存储装置中的存储器的访问控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(single level cell,SLC)与多阶细胞(multiple level cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆细胞(memory cell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的存储能力则被充分利用,是采用较高的电压来驱动,以通过不同级别的电压在一个晶体管中记录至少两组位信息(诸如00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的数据存储装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保数据存储装置对闪存的访问控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据现有技术,有了这些管理机制的数据存储装置还是有不足之处。举例来说,在发出检查状态指令之后,某一管理机制可能仅仅等待结果,且在一些指令被填入一个指令队列之后,只能依序执行这些指令,这可造成数据存储装置无法处理急迫的指令。尤其,在数据存储装置正在对其内的某一个闪存组件进行编程(programming)的状况下,当用户想取得某数据、且所述数据正好存储于这个闪存组件中时,用户只能等待,直到编程结束。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下提升数据存储装置的效能。
发明内容
本发明的一目的在于公开一种用来进行读取加速的方法以及相关的数据存储装置及其控制器,以解决上述问题。
本发明的另一目的在于公开一种用来进行读取加速的方法以及相关的数据存储装置及其控制器,以在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化(optimal)效能。
本发明的至少一实施例公开一种用来进行读取加速的方法,其中所述方法可应用于一数据存储装置(尤其,其控制器)。所述数据存储装置包括一非挥发性存储器(non-volatile memory,NV memory),且所述非挥发性存储器包括多个非挥发性存储器组件(NVmemory element),所述方法可包括:从一主机(host device)接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程(programming);记录对应于所述写入指令的操作指令相关信息(operation command-related information);当对应于所述非挥发性存储器组件的一队列(queue)中存在具有高优先权的一读取指令时,暂停(suspend)对所述非挥发性存储器组件进行编程;执行所述读取指令;以及于执行所述读取指令之后,至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。
本发明的至少一实施例公开一种数据存储装置,其可包括:一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括多个非挥发性存储器组件;以及一控制器,耦接至所述非挥发性存储器,用来控制所述数据存储装置的运作。所述控制器可包括一处理电路,而所述处理电路可依据来自一主机的多个主机指令控制所述控制器,以容许所述主机通过所述控制器存取(access)所述非挥发性存储器。例如:所述控制器从所述主机接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程,其中所述写入指令是所述多个主机指令中的一主机指令;所述控制器记录对应于所述写入指令的操作指令相关信息;当对应于所述非挥发性存储器组件的一队列中存在具有高优先权的一读取指令时,所述控制器暂停对所述非挥发性存储器组件进行编程,其中所述读取指令是所述多个主机指令中的另一主机指令;所述控制器执行所述读取指令;以及于执行所述读取指令之后,所述控制器至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。
本发明的至少一实施例公开一种数据存储装置的控制器,其中所述数据存储装置包括所述控制器与一非挥发性存储器,且所述非挥发性存储器包括多个非挥发性存储器组件。所述控制器可包括一处理电路,而所述处理电路可依据来自一主机的多个主机指令控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器。例如:所述控制器从所述主机接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程,其中所述写入指令是所述多个主机指令中的一主机指令;所述控制器记录对应于所述写入指令的操作指令相关信息;当对应于所述非挥发性存储器组件的一队列中存在具有高优先权的一读取指令时,所述控制器暂停对所述非挥发性存储器组件进行编程,其中所述读取指令是所述多个主机指令中的另一主机指令;所述控制器执行所述读取指令;以及于执行所述读取指令之后,所述控制器至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。
本发明的好处之一是,通过队列管理及编程中断管理,本发明能针对所述控制器的运作进行妥善的控制,以避免数据存储装置的响应因编程而变慢。另外,依据本发明的实施例来实施并不会增加许多额外的成本。因此,现有技术的问题可被解决,且整体成本不会增加太多。相较于现有技术,本发明能在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化效能。
附图说明
图1为依据本发明一实施例的一种数据存储装置与一主机(host device)的示意图。
图2为依据本发明一实施例的一种用来进行读取加速的方法的队列控制方案。
图3绘示所述方法于一实施例中的工作流程。
其中,附图标记说明如下:
50 主机
100 数据存储装置
110 存储器控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑电路
114Q 队列控制电路
116 缓冲存储器
118 传输接口电路
120 非挥发性存储器
122-1,122-2,…,122-N 非挥发性存储器组件
200 仲裁器
210 一般队列群
220 高优先权队列群
Q1(1),Q1(2),…,Q1(N),
Q2(1),Q2(2),…,Q2(N) 队列
300 工作流程
S30,S31,S32,S33,S34,S35,S36 步骤
具体实施方式
请参考图1,图1为依据本发明一第一实施例的一种数据存储装置100与一主机(host device)50的示意图。例如:数据存储装置100可为一可携式数据存储装置(例如:符合SD/MMC、CF、MS、或XD标准的记忆卡)或固态硬盘(solid state drive,SSD)。另外,主机50的例子可包括(但不限于):多功能移动电话(multifunctional mobile phone)、平板计算机(tablet)、可穿戴装置(wearable device)、以及个人计算机(personal computer)诸如桌面计算机与膝上型计算机。依据本实施例,数据存储装置100可包括一控制器诸如存储器控制器110,且可还包括一非挥发性存储器(non-volatile memory,NV memory)120,其中所述控制器是用来存取(access)非挥发性存储器120,且非挥发性存储器120是用来存储信息。非挥发性存储器120可包括多个非挥发性存储器组件(NV memory element)122-1、122-2、…与122-N,其中符号“N”可代表大于一的正整数。例如:非挥发性存储器120可为一闪存(Flash memory),而非挥发性存储器组件122-1、122-2、…与122-N可分别为多个闪存芯片(Flash memory chip;可称为快闪芯片)或多个闪存裸晶(Flash memory die;可称为快闪裸晶),但本发明并不限于此。
如图1所示,存储器控制器110可包括处理电路诸如微处理器112、存储器诸如一只读存储器(read only memory,ROM)112M、控制逻辑电路114、缓冲存储器116、与传输接口电路118,其中这些组件可通过一总线彼此耦接。缓冲存储器116是以随机存取存储器(randomaccess memory,RAM)来实施。另外,本实施例的只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对非挥发性存储器120的存取。请注意,程序代码112C也可存储在缓冲存储器116或任何形式的存储器内。此外,控制逻辑电路114可包括一错误更正码电路(未显示),以保护数据、及/或进行错误更正,而传输接口电路118可符合一特定通信标准(诸如串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、快捷外设互联(Peripheral Component Interconnect Express,PCIE)标准或非挥发性存储器快捷(Non-Volatile Memory Express,NVME)标准)且可依据所述特定通信标准进行通信。尤其,控制逻辑电路114可包括队列控制电路114Q。例如,队列控制电路114Q可包括分别对应于非挥发性存储器组件122-1、122-2、…与122-N的多组队列,但本发明不限于此。
于本实施例中,主机50可通过传送多个主机指令(Host Command)与对应的逻辑地址(Logical Address)予存储器控制器110来间接地存取数据存储装置100中的非挥发性存储器120。存储器控制器110接收所述多个主机指令与逻辑地址,并将所述多个主机指令分别转译成存储器操作指令(简称操作指令),再以操作指令控制非挥发性存储器120读取、写入(Write)/编程(Program)非挥发性存储器120当中特定物理地址(Physical Address)的记忆单位(Memory Unit)或数据页(Page),其中物理地址对应于逻辑地址。例如,针对非挥发性存储器组件122-1、122-2、…与122-N中的任一非挥发性存储器组件122-n(符号“n”可代表区间[1,N]中的任一整数)的存取,所述多组队列中的一对应组的队列可分别用来队列操作指令,以操作非挥发性存储器组件122-n。
图2为依据本发明一实施例的一种用来进行读取加速的方法的队列控制方案。队列控制电路114Q可包括仲裁器200、一般队列群210与高优先权队列群220,尤其,一般队列群210可包括一个以上的,例如:N个队列,即队列Q1(1)、Q1(2)、…与Q1(N),而高优先权队列群220可包括一个以上的,例如:N个队列,即队列Q2(1)、Q2(2)、…与Q2(N)。如图2所示,仲裁器200可于一般队列群210中进行切换以轮流地执行分别队列于队列Q1(1)、Q1(2)、…与Q1(N)的操作指令,且可于高优先权队列群220中进行切换以轮流地执行分别队列于队列Q2(1)、Q2(2)、…与Q2(N)的操作指令。其中,仲裁器200可依序切换或给予每一队列不同的权重,再依权重的大小而在队列之间依序切换。另外,一般队列群210与高优先权队列群220的组合中的N组队列{Q1(1),Q2(1)}、{Q1(2),Q2(2)}、…与{Q1(N),Q2(N)}可分别作为上述多组队列的例子,其中所述N组队列{Q1(1),Q2(1)}、{Q1(2),Q2(2)}、…与{Q1(N),Q2(N)}分别对应于非挥发性存储器组件122-1、122-2、…与122-N。仲裁器200可控制高优先权队列群220具有比一般队列群210更高的优先权。当高优先权队列群220中存在任何操作指令时,若有必要,存储器控制器110可暂停进行一般队列群210中的操作指令的运作。
依据本实施例,所述多个主机指令可包括写入指令与读取指令。当接收到所述多个主机指令中的一主机指令时,存储器控制器110(例如其内的微处理器112)可将对应于这个主机指令的一或多个操作指令填入某一个队列,诸如对应于非挥发性存储器组件122-n的一组队列{Q1(n),Q2(n)}中的某一个队列(诸如队列Q1(n)或Q2(n)),以于非挥发性存储器组件122-n中存取(例如读取或写入)数据。为了便于理解,假设存储器控制器110从主机50接收到一第一主机指令诸如一写入指令,且于执行所述第一主机指令的期间从主机50接收到一第二主机指令诸如一读取指令,其中所述第一主机指令的运作并不急迫,所述第二主机指令的运作急迫,并且这些运作都涉及非挥发性存储器120中的同一个非挥发性存储器组件,诸如非挥发性存储器组件122-n,但本发明不限于此。
当接收到所述第一主机指令诸如所述写入指令时,存储器控制器110(例如其内的微处理器112)可将对应于所述第一主机指令的一第一操作指令填入一般队列群210中的队列Q1(n),以将数据写入非挥发性存储器组件122-n。例如,在一第一时间点,所述第一操作指令可位于队列Q1(n)的开头,且存储器控制器110可通过控制逻辑电路114将所述第一操作指令传送至非挥发性存储器组件122-n,以将数据写入非挥发性存储器组件122-n。另外,当接收到所述第二主机指令诸如所述读取指令时,存储器控制器110(例如其内的微处理器112)可将对应于所述第二主机指令的一第二操作指令填入高优先权队列群220中的队列Q2(n),以从非挥发性存储器组件122-n读取数据。由于高优先权队列群220具有比一般队列群210更高的优先权、且所述组队列{Q1(n),Q2(n)}分别属于一般队列群210与高优先权队列群220,故队列Q2(n)具有比队列Q1(n)更高的优先权。当队列Q2(n)中存在所述第二操作指令时,存储器控制器110可暂停进行队列Q1(n)中的所述第一操作指令的运作。例如,在一第二时间点(其在所述第一时间点之后),所述第二操作指令位于队列Q2(n)的开头,且存储器控制器110可通过控制逻辑电路114将所述第二操作指令传送至非挥发性存储器组件122-n,以从非挥发性存储器组件122-n读取数据。假设于这个读取运作完成之后,队列Q2(n)中不存在任何操作指令。此状况下,存储器控制器110可继续进行队列Q1(n)中的所述第一操作指令的运作。
依据某些实施例,由于存储器控制器110可将所述第一主机指令诸如所述写入指令以及所述第二主机指令诸如所述读取指令分别转换为所述第一操作指令与所述第二操作指令,故所述第一操作指令可代表所述第一主机指令诸如所述写入指令,且所述第二操作指令可代表所述第二主机指令诸如所述读取指令,但本发明不限于此。
依据某些实施例,存储器控制器110从主机50接收所述写入指令,且依据所述写入指令对非挥发性存储器组件122-n进行编程,并且记录对应于所述写入指令的操作指令相关信息(operation command-related information),其中所述操作指令相关信息可包括至少一参数(例如一或多个参数,其可关联于所述第一操作指令),且可还包括至少一物理地址(例如一或多个物理地址,其可关联于所述第一操作指令)与数据,但本发明不限于此。举例来说,所述操作指令相关信息可包括一或多个平面编号(plane number)、一或多个物理区块地址(physical block address)、及/或一或多个物理页地址(physical pageaddress)。另外,当对应于非挥发性存储器组件122-n的队列Q2(n)中存在具有高优先权的指令诸如所述读取指令时,存储器控制器110可暂停对非挥发性存储器组件122-n进行编程、且可执行所述读取指令,并且于执行所述读取指令之后,至少依据所述操作指令相关信息,继续对非挥发性存储器组件122-n进行编程。由于所述读取指令位于队列Q2(n)(其优先权高于队列Q1(n)),故可视为具有高优先权的指令。
图3绘示所述方法于一实施例中的工作流程300。例如:在所述处理电路诸如微处理器112的控制下,所述控制器诸如存储器控制器110可进行工作流程300的运作。
于步骤S30中,存储器控制器110可从主机50接收一写入指令(诸如上述的写入指令),且依据所述写入指令进行编程。举例来说,存储器控制器110可将所述写入指令转换为对应的操作指令诸如所述第一操作指令、且将所述第一操作指令队列于队列Q1(n),并且传送所述第一操作指令至非挥发性存储器组件122-n以进行编程,以将数据写入非挥发性存储器组件122-n。
于步骤S31中,存储器控制器110可记录关于所述写入指令的参数、数据与地址。依据本实施例,存储器控制器110可于步骤S30中传送所述第一操作指令以及对应于所述写入指令的所述操作指令相关信息(诸如上述至少一参数、上述数据与上述至少一物理地址)至非挥发性存储器组件122-n以进行编程,并且于步骤S31中记录所述操作指令相关信息,但本发明不限于此。于某些实施例中,存储器控制器110可先记录所述操作指令相关信息,然后传送所述第一操作指令以及所述操作指令相关信息至非挥发性存储器组件122-n以进行编程。
于步骤S32中,存储器控制器110可检查队列Q2(n)中是否存在具有高优先权的一读取指令(诸如上述的读取指令)。当队列Q2(n)中存在所述读取指令,进入步骤S33;否则,进入步骤S36。
于步骤S33中,针对非挥发性存储器组件122-n,存储器控制器110可暂停编程,且记录一暂停位置。例如,所述暂停位置可代表步骤S30的编程运作被暂停的位置,诸如目前已编程的最后位置,但本发明不限于此。于某些实施例中,所述暂停位置可代表所述最后位置的下一个位置。
于步骤S34中,存储器控制器110可执行所述读取指令。举例来说,存储器控制器110可将所述读取指令转换为对应的操作指令诸如所述第二操作指令、且将所述第二操作指令队列于队列Q2(n),并且传送所述第二操作指令至非挥发性存储器组件122-n以从非挥发性存储器组件122-n读取数据。
于步骤S35中,存储器控制器110可依据先前记录的参数、数据与地址以及所述暂停位置,继续进行编程。依据本实施例,存储器控制器110可从所述暂停位置之后的某个位置(例如所述最后位置的下一个位置)继续对非挥发性存储器组件122-n进行编程,但本发明不限于此。
于步骤S36中,存储器控制器110可检查是否已完成编程。当完成编程,结束工作流程300;否则,进入步骤S32。
为了更好地理解,所述方法可用图3所示工作流程300来说明,但本发明不限于此。依据某些实施例,一个或多个步骤可于工作流程300中增加、删除或修改。
依据某些实施例,存储器控制器110可于步骤S30中传送所述第一操作指令及所述操作指令相关信息至非挥发性存储器组件122-n以将数据写入非挥发性存储器组件122-n,尤其,基于下列格式:
80h-ADDRESS(1)-DATA-00h;
其中十六进制数值80h与00h可代表的预定指令,ADDRESS(1)可代表物理地址(其可指出于非挥发性存储器组件122-n中写入数据的位置),并且DATA可代表数据,但本发明不限于此。另外,存储器控制器110可于步骤S33中传送其它操作指令至非挥发性存储器组件122-n以暂停编程,尤其,基于下列格式:
84h-ADDRESS(1)-00h;
其中十六进制数值84h可代表一预定指令,但本发明不限于此。此外,存储器控制器110可于步骤S34中传送所述第二操作指令及其相关信息至非挥发性存储器组件122-n以从非挥发性存储器组件122-n读取数据,尤其,基于下列格式:
00h-ADDRESS(2)-30h;
其中ADDRESS(2)可代表物理地址(其可指出于非挥发性存储器组件122-n中存储有所读取数据的位置),十六进制数值30h可代表的预定指令,但本发明不限于此。举例来说,一物理地址(诸如物理地址ADDRESS(1)与ADDRESS(2))可包括下列格式的地址信息:
{CE#,PLANE#,BLK#,PAGE#,OFFSET};
其中CE#、PLANE#、BLK#、PAGE#以及OFFSET可分别代表快闪裸晶编号(Flash dienumber)、平面编号、物理区块地址、物理页地址以及偏移量,且它们中的每一者可包括一个位,但本发明不限于此。于某些实施例中,偏移量OFFSET仅存在于读取数据时,在进行数据编程时可予以省略,但本发明不限于此。
针对存储器控制器110中的队列管理与相关控制的某些实施细节可说明如下。依据某些实施例,于将所述第二主机指令诸如所述读取指令转换为所述第二操作指令之后,存储器控制器110(例如微处理器112)可查询(Poll)非挥发性存储器组件122-n是否处于空闲状态(free state)。当非挥发性存储器组件122-n并非处于空闲状态(free state)时,即处于忙碌(Busy)状态时,存储器控制器110(例如微处理器112)可查询非挥发性存储器组件122-n是否处于编程状态,例如,若是,另检查一第一旗标状态以进行进一步处理,否则,将第二操作指令填入一缓冲队列Q0(n)(未显示)。若所述第一旗标已被设定(例如,逻辑值“1”),则存储器控制器110(例如微处理器112)可将第二操作指令暂时地填入缓冲队列Q0(n),以供下次进行检查非挥发性存储器组件122-n是否处于空闲状态的运作时重新处理,否则(也就是说,所述第一旗标未被设定,例如,逻辑值“0”),存储器控制器110(例如微处理器112)可将所述第二操作指令填入队列Q2(n)、且设定第一旗标(设定为逻辑值“1”)。当非挥发性存储器组件122-n处于空闲状态时,存储器控制器110(例如微处理器112)也可以将第二操作指令填入队列Q2(n)、且设定第一旗标(设定为逻辑值“1”)。于是,存储器控制器110可依据第一旗标进行管理,且可针对对应于任何其它读取指令的操作指令进行类似的运作,但本发明不限于此。例如,于进行其它相关运作时,存储器控制器110可参考第一旗标,并且,若有必要,可修改所述第一旗标(例如,设定为逻辑值“1”,或取消设定至逻辑值“0”)以进行对应的管理。
另外,存储器控制器110可传送一预定指令70h至非挥发性存储器组件122-n以查询非挥发性存储器组件122-n的状态。例如,在基于格式“84h-ADDRESS(1)-00h”暂停编程以后且在基于格式“00h-ADDRESS(2)-30h”传送所述第二操作指令及其相关信息至非挥发性存储器组件122-n以前,存储器控制器110可通过预定指令70h查询非挥发性存储器组件122-n的状态,以判断非挥发性存储器组件122-n是否已处于暂停编程的状态,尤其,若是,传送所述第二操作指令及其相关信息,否则,等待一小段时间且再重复此检查运作。又例如,在基于格式“00h-ADDRESS(2)-30h”传送所述第二操作指令及其相关信息至非挥发性存储器组件122-n以后,存储器控制器110可通过预定指令70h查询非挥发性存储器组件122-n的状态,以判断非挥发性存储器组件122-n中的目标数据(诸如预计读取的数据)是否已被搬移到非挥发性存储器120的内部缓冲器(诸如页缓冲器),尤其,若是,读出所述目标数据(例如通过预定指令05h-E0h)以将所述目标数据暂时存储于缓冲存储器116,否则,等待一小段时间且再重复此检查运作。于读出所述目标数据之后,存储器控制器110可传送一预定指令13h至非挥发性存储器组件122-n以继续进行编程,例如,另传送预定指令70h至非挥发性存储器组件122-n以查询非挥发性存储器组件122-n的状态,以判断是否完成编程,但本发明不限于此。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种用来进行读取加速的方法,应用于一数据存储装置,所述数据存储装置包括一非挥发性存储器,所述非挥发性存储器包括多个非挥发性存储器组件,所述方法的特征在于,包括有:
从一主机接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程;
记录对应于所述写入指令的操作指令相关信息;
当对应于所述非挥发性存储器组件的一队列中存在具有高优先权的一读取指令时,暂停对所述非挥发性存储器组件进行编程;
执行所述读取指令;以及
于执行所述读取指令之后,至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。
2.如权利要求1所述的方法,其特征在于,所述操作指令相关信息包括至少一参数。
3.如权利要求2所述的方法,其特征在于,所述操作指令相关信息还包括至少一物理地址与数据。
4.如权利要求1所述的方法,其特征在于,暂停对所述非挥发性存储器组件进行编程的步骤还包括:
当所述队列中存在所述读取指令时,暂停对所述非挥发性存储器组件进行编程,且记录一暂停位置。
5.如权利要求4所述的方法,其特征在于,继续对所述非挥发性存储器组件进行编程的步骤还包括:
于执行所述读取指令之后,依据所述操作指令相关信息以及所述暂停位置,继续对所述非挥发性存储器组件进行编程。
6.一种数据存储装置,其特征在于,包括有:
一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括多个非挥发性存储器组件;以及
一控制器,耦接至所述非挥发性存储器,用来控制所述数据存储装置的运作,其中所述控制器包括:
一处理电路,用来依据来自一主机的多个主机指令控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器,其中:
所述控制器从所述主机接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程,其中所述写入指令是所述多个主机指令中的一主机指令;
所述控制器记录对应于所述写入指令的操作指令相关信息;
当对应于所述非挥发性存储器组件的一队列中存在具有高优先权的一读取指令时,所述控制器暂停对所述非挥发性存储器组件进行编程,其中所述读取指令是所述多个主机指令中的另一主机指令;
所述控制器执行所述读取指令;以及
于执行所述读取指令之后,所述控制器至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。
7.如权利要求6所述的数据存储装置,其特征在于,所述操作指令相关信息包括至少一参数。
8.如权利要求7所述的数据存储装置,其特征在于,所述操作指令相关信息还包括至少一物理地址与数据。
9.如权利要求6所述的数据存储装置,其特征在于,当所述队列中存在所述读取指令时,所述控制器暂停对所述非挥发性存储器组件进行编程,且记录一暂停位置。
10.如权利要求9所述的数据存储装置,其特征在于,于执行所述读取指令之后,所述控制器依据所述操作指令相关信息以及所述暂停位置,继续对所述非挥发性存储器组件进行编程。
11.一种数据存储装置的控制器,所述数据存储装置包括所述控制器与一非挥发性存储器,所述非挥发性存储器包括多个非挥发性存储器组件,所述控制器的特征在于,包括有:
一处理电路,用来依据来自一主机的多个主机指令控制所述控制器,以容许所述主机通过所述控制器存取所述非挥发性存储器,其中:
所述控制器从所述主机接收一写入指令,且依据所述写入指令对所述多个非挥发性存储器组件中的一非挥发性存储器组件进行编程,其中所述写入指令是所述多个主机指令中的一主机指令;
所述控制器记录对应于所述写入指令的操作指令相关信息;
当对应于所述非挥发性存储器组件的一队列中存在具有高优先权的一读取指令时,所述控制器暂停对所述非挥发性存储器组件进行编程,其中所述读取指令是所述多个主机指令中的另一主机指令;
所述控制器执行所述读取指令;以及
于执行所述读取指令之后,所述控制器至少依据所述操作指令相关信息,继续对所述非挥发性存储器组件进行编程。
12.如权利要求11所述的控制器,其特征在于,所述操作指令相关信息包括至少一参数。
13.如权利要求12所述的控制器,其特征在于,所述操作指令相关信息还包括至少一物理地址与数据。
14.如权利要求11所述的控制器,其特征在于,当所述队列中存在所述读取指令时,所述控制器暂停对所述非挥发性存储器组件进行编程,且记录一暂停位置。
15.如权利要求14所述的控制器,其特征在于,于执行所述读取指令之后,所述控制器依据所述操作指令相关信息以及所述暂停位置,继续对所述非挥发性存储器组件进行编程。
CN201910388809.9A 2018-10-15 2019-05-10 用来进行读取加速的方法以及数据存储装置及其控制器 Active CN111045593B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107136132 2018-10-15
TW107136132A TWI684860B (zh) 2018-10-15 2018-10-15 用來進行讀取加速之方法以及資料儲存裝置及其控制器

Publications (2)

Publication Number Publication Date
CN111045593A true CN111045593A (zh) 2020-04-21
CN111045593B CN111045593B (zh) 2023-03-31

Family

ID=70160081

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910388809.9A Active CN111045593B (zh) 2018-10-15 2019-05-10 用来进行读取加速的方法以及数据存储装置及其控制器

Country Status (3)

Country Link
US (1) US11294586B2 (zh)
CN (1) CN111045593B (zh)
TW (1) TWI684860B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117406935A (zh) * 2023-12-13 2024-01-16 苏州萨沙迈半导体有限公司 数据读取方法及装置、读写控制器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200098336A (ko) * 2019-02-12 2020-08-20 삼성전자주식회사 서스펜드 모드를 제어하는 방법 및 이를 포함하는 메모리 컨트롤러
KR20210031266A (ko) * 2019-09-11 2021-03-19 삼성전자주식회사 인터페이스 회로, 메모리 장치, 저장 장치 및 메모리 장치의 동작 방법
KR20220082563A (ko) * 2020-12-10 2022-06-17 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
KR20220094726A (ko) * 2020-12-29 2022-07-06 삼성전자주식회사 메모리 컨트롤러, 비휘발성 메모리 장치 및 그 스토리지 장치
KR20220135786A (ko) * 2021-03-31 2022-10-07 에스케이하이닉스 주식회사 메모리 시스템에 포함된 복수의 메모리 장치에서 수행되는 동작에 대해 스케줄링하는 장치 및 방법
KR20220165563A (ko) * 2021-06-08 2022-12-15 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070239926A1 (en) * 2006-03-28 2007-10-11 Yevgen Gyl Method and device for reduced read latency of non-volatile memory
TW201227293A (en) * 2004-05-03 2012-07-01 Microsoft Corp Method and system for non-volatile memory performance improvement
US20120179860A1 (en) * 2009-06-10 2012-07-12 Francesco Falanga Suspension of memory operations for reduced read latency in memory arrays
US20130215020A1 (en) * 2012-02-17 2013-08-22 Renesas Electronics Corporation Signal processing device and semiconductor device
CN106484316A (zh) * 2015-09-02 2017-03-08 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
US9910786B2 (en) * 2015-11-03 2018-03-06 Intel Corporation Efficient redundant array of independent disks (RAID) write hole solutions
US20180284871A1 (en) * 2017-04-01 2018-10-04 Intel Corporation Shutting down gpu components in response to unchanged scene detection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8004884B2 (en) * 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems
US8904119B2 (en) * 2012-10-31 2014-12-02 Lsi Corporation Method and structures for performing a migration of a logical volume with a serial attached SCSI expander
US9652175B2 (en) * 2015-04-09 2017-05-16 Sandisk Technologies Llc Locally generating and storing RAID stripe parity with single relative memory address for storing data segments and parity in multiple non-volatile memory portions
US10423508B2 (en) * 2017-08-11 2019-09-24 Alibaba Group Holding Limited Method and system for a high-priority read based on an in-place suspend/resume write
KR20190090614A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201227293A (en) * 2004-05-03 2012-07-01 Microsoft Corp Method and system for non-volatile memory performance improvement
US20070239926A1 (en) * 2006-03-28 2007-10-11 Yevgen Gyl Method and device for reduced read latency of non-volatile memory
US20120179860A1 (en) * 2009-06-10 2012-07-12 Francesco Falanga Suspension of memory operations for reduced read latency in memory arrays
US20130215020A1 (en) * 2012-02-17 2013-08-22 Renesas Electronics Corporation Signal processing device and semiconductor device
CN106484316A (zh) * 2015-09-02 2017-03-08 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
US9910786B2 (en) * 2015-11-03 2018-03-06 Intel Corporation Efficient redundant array of independent disks (RAID) write hole solutions
US20180284871A1 (en) * 2017-04-01 2018-10-04 Intel Corporation Shutting down gpu components in response to unchanged scene detection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117406935A (zh) * 2023-12-13 2024-01-16 苏州萨沙迈半导体有限公司 数据读取方法及装置、读写控制器
CN117406935B (zh) * 2023-12-13 2024-02-20 苏州萨沙迈半导体有限公司 数据读取方法及装置、读写控制器

Also Published As

Publication number Publication date
CN111045593B (zh) 2023-03-31
US20200117378A1 (en) 2020-04-16
US11294586B2 (en) 2022-04-05
TW202016738A (zh) 2020-05-01
TWI684860B (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
US10296231B2 (en) Data-storage device and data maintenance method thereof
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN111554340B (zh) 存取管理的方法、记忆装置、控制器、主装置和电子装置
CN110083546B (zh) 记忆装置中进行写入管理的方法、记忆装置和其控制器
US8667209B2 (en) Non-volatile memory access method and system, and non-volatile memory controller
US8914587B2 (en) Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
CN110895449B (zh) 用于在存储器系统中管理有效数据的装置和方法
CN109285574B (zh) 于记忆装置中进行编程管理的方法、记忆装置及控制器
US20160364148A1 (en) Buffer memory accessing method, memory controller and memory storage device
TWI644215B (zh) 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9229798B2 (en) Error handling method, memory storage device and memory controlling circuit unit
US10310746B2 (en) Method, associated memory device and controller thereof for performing dynamic resource management
CN106326142A (zh) 缓冲存储器存取方法、存储器控制器与存储器存储装置
TWI805449B (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
GR01 Patent grant
GR01 Patent grant