CN111554340A - 存取管理的方法、记忆装置、控制器、主装置和电子装置 - Google Patents

存取管理的方法、记忆装置、控制器、主装置和电子装置 Download PDF

Info

Publication number
CN111554340A
CN111554340A CN202010000703.XA CN202010000703A CN111554340A CN 111554340 A CN111554340 A CN 111554340A CN 202010000703 A CN202010000703 A CN 202010000703A CN 111554340 A CN111554340 A CN 111554340A
Authority
CN
China
Prior art keywords
memory
master
completion time
master device
request
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
CN202010000703.XA
Other languages
English (en)
Other versions
CN111554340B (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
Priority to CN202210643841.9A priority Critical patent/CN115050409A/zh
Publication of CN111554340A publication Critical patent/CN111554340A/zh
Application granted granted Critical
Publication of CN111554340B publication Critical patent/CN111554340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • 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
    • 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
    • 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/0613Improving I/O performance in relation to throughput
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0653Monitoring storage devices or 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/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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

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)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

本发明公开了一种用来进行一记忆装置的存取管理的方法以及相关装置(例如,所述记忆装置及其控制器诸如所述记忆装置中的一存储器控制器、相关的主装置以及相关的电子装置)。所述方法可包括:当所述主装置传送一主装置指令至所述记忆装置,利用所述存储器控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及利用所述存储器控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。本发明能确保整体系统的妥善运作以避免相关技术中的问题,诸如主装置的硬件资源满载或过载。

Description

存取管理的方法、记忆装置、控制器、主装置和电子装置
技术领域
本发明系关于闪存(Flash memory)的存取(access),尤指一种用来进行一记忆装置的存取管理的方法以及相关装置(例如,所述记忆装置及其控制器诸如所述记忆装置中的一存储器控制器、相关的主装置以及相关的电子装置)。
背景技术
近年来由于存储器的技术不断地发展,各种可携式或非可携式记忆装置(例如:分别符合SD/MMC、CF、MS及XD标准的记忆卡;又例如:固态硬盘(solid state drive,SSD);又例如:分别符合UFS及EMMC标准的嵌入式(embedded)记忆装置)被广泛地实施于诸多应用中。因此,这些记忆装置中的存储器的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其可包括单阶细胞(single level cell,SLC)与多阶细胞(multiple level cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆细胞(memory cell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆细胞的晶体管的存储能力则可被充分利用,其中所述晶体管是采用较高的电压来驱动,以通过不同的电压位准在一个晶体管中记录至少两组位信息(例如00、01、11或10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据现有技术,有了这些管理机制的记忆装置还是有不足的处。举例来说,采用较新架构的传输接口,诸如符合快捷外设互联(Peripheral Component InterconnectExpress,PCIe)标准者,可增加记忆装置与主装置之间的传输带宽。为了充分利用所述传输带宽,所述主装置较佳应操作在特定操作模式中并且持续地进行轮询(polling),这样很容易发生主装置的硬件资源满载或过载(例如,高使用率诸如100%)。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下提升整体效能。
发明内容
本发明的一目的在于公开一种用来进行一记忆装置的存取(access)管理的方法以及相关装置(例如,所述记忆装置及其控制器诸如所述记忆装置中的一存储器控制器、相关的主装置以及相关的电子装置),以解决上述问题。
本发明的另一目的在于公开一种用来进行一记忆装置的存取(access)管理的方法以及相关装置(例如,所述记忆装置及其控制器诸如所述记忆装置中的一存储器控制器、相关的主装置以及相关的电子装置),以在没有副作用或较不可能带来副作用的状况下提升整体效能。
本发明的至少一实施例公开一种用来进行一记忆装置的存取管理的方法。所述记忆装置可包括一非挥发性存储器(non-volatile memory,NV)以及用来控制所述非挥发性存储器的存取的一存储器控制器,且所述非挥发性存储器可包括至少一非挥发性存储器组件(NV memory element)(例如一或多个非挥发性存储器组件)。所述方法可包括:若一主装置(host device)传送一主装置指令至所述记忆装置,利用所述存储器控制器估测(estimate)所述主装置指令的一完成时间(completion time),以产生对应于所述完成时间的完成时间信息;以及利用所述存储器控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询(polling)以取得所述主装置指令的一执行结果。
除了上述方法以外,本发明也公开一种记忆装置,且所述记忆装置包括一非挥发性存储器以及一控制器。所述非挥发性存储器是用来存储信息,其中所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述控制器耦接至所述非挥发性存储器,且所述控制器是用来控制所述记忆装置的运作。另外,所述控制器包括一处理电路,其中所述处理电路是用来依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器。举例来说,若所述主装置传送一主装置指令至所述记忆装置,所述控制器估测(estimate)所述主装置指令的一完成时间(completion time),以产生对应于所述完成时间的完成时间信息。此外,所述控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
依据某些实施例,本发明也公开相关的电子装置。所述电子装置可包括上述记忆装置,且可还包括耦接至所述记忆装置的所述主装置。所述主装置可包括:至少一处理器,用来控制所述主装置的运作;以及一电源供应电路,耦接至所述至少一处理器,用来提供电源给所述至少一处理器以及所述记忆装置。另外,所述记忆装置可提供存储空间给所述主装置。
除了上述方法以外,本发明也公开一种记忆装置的控制器,其中所述记忆装置包括所述控制器以及一非挥发性存储器。所述非挥发性存储器可包括至少一非挥发性存储器组件(例如,一或多个非挥发性存储器组件)。另外,所述控制器包括一处理电路,其中所述处理电路是用来依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器。例如,若所述主装置传送一主装置指令至所述记忆装置,所述控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息。此外,所述控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
本发明的至少一实施例公开一种用来进行一记忆装置的存取管理的方法。所述记忆装置可包括一非挥发性存储器以及用来控制所述非挥发性存储器的存取的一存储器控制器,且所述非挥发性存储器可包括至少一非挥发性存储器组件(例如一或多个非挥发性存储器组件)。所述方法可包括:控制一主装置传送一主装置指令至所述记忆装置,并且利用所述存储器控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及依据传送自所述存储器控制器的所述完成时间信息,控制所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
本发明的至少一实施例公开一种主装置,且所述主装置包括至少一处理器,且所述至少一处理器是用来控制所述主装置的运作以及进行一记忆装置的存取管理,其中所述记忆装置包括一非挥发性存储器以及用来控制所述非挥发性存储器的存取的一存储器控制器,以及所述非挥发性存储器包括至少一非挥发性存储器组件。所述至少一处理器控制所述主装置传送一主装置指令至所述记忆装置,并且利用所述存储器控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息。依据传送自所述存储器控制器的所述完成时间信息,所述至少一处理器控制所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。例如,所述主装置可还包括一电源供应电路,其中所述电源供应电路耦接至所述至少一处理器,并且是用来提供电源给所述至少一处理器以及所述记忆装置,其中所述记忆装置提供存储空间给所述主装置。
本发明所公开的方法以及相关装置能确保整体系统(例如所述主装置以及所述记忆装置)能妥善地运作,以避免现有技术中的问题,诸如主装置的硬件资源满载或过载。另外,依据本发明的实施例来实施并不会大幅增加额外的成本。因此,现有技术的问题能被解决,且整体成本不会增加太多。相较于现有技术,本发明的方法以及相关装置能在没有副作用或较不可能带来副作用的状况下提升整体效能。
附图说明
图1为依据本发明一实施例的一电子装置的示意图。
图2为依据本发明一实施例的一种用来进行一记忆装置的存取管理的方法的一工作流程。
图3为依据本发明一实施例绘示的所述方法的一写入控制方案。
图4为依据本发明一实施例绘示的所述方法的一读取控制方案。
图5为依据本发明另一实施例绘示的所述方法的一读取控制方案。
图6为依据本发明一实施例绘示的所述方法的一抹除控制方案。
其中,附图标记说明如下:
10 电子装置
50 主装置
52 处理器
54 电源供应电路
56 存储器
100 记忆装置
110 存储器控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑电路
115 CTE数据库
116 随机存取存储器
118 传输接口电路
120 非挥发性存储器
122-1、122-2、…、122-N 非挥发性存储器组件
200 工作流程
210、220、
S10、S11、S12、S13、
S14、S15、S16、S17、
S20、S21、S22、S23、
S24、S25、S26、
S30、S31、S32、S33、
S34、S35、S36、
S40、S41、S42、S43、
S44、S45、S46 步骤
T10、T20、T30、T40 完成时间
T11、T21、T31、T41 准备时间
T12 编程时间
T22、T32 读取时间
T42 抹除时间
具体实施方式
图1为依据本发明一实施例的一电子装置10的示意图,其中电子装置10可包括一主装置(host device)50与一记忆装置100。主装置50可包括至少一处理器(例如一或多个处理器),统称为处理器52,且可还包括分别耦接至处理器52的一电源供应电路54与一存储器56。处理器52是用来控制主装置50的运作,而电源供应电路54是用来提供电源给处理器52与记忆装置100、并且输出一或多个驱动电压至记忆装置100。存储器56可为主装置50存储信息。例如,存储器56可为一随机存取存储器(Random Access Memory,RAM),但本发明不限于此。记忆装置100可用来提供存储空间给主装置50,并且从主装置50取得所述一或多个驱动电压以作为记忆装置100的电源。主装置50的例子可包括(但不限于):多功能移动电话(multifunctional mobile phone)、可穿戴装置(wearable device)、平板计算机(tablet)以及个人计算机(personal computer)诸如桌面计算机与膝上型计算机。记忆装置100的例子可包括(但不限于):固态硬盘(solid state drive,SSD)以及各种嵌入式(embedded)记忆装置(诸如符合快捷外设互联(Peripheral Component Interconnect Express,简称PCIe)标准的嵌入式记忆装置)。依据本实施例,记忆装置100可包括一控制器诸如存储器控制器110,且可还包括一非挥发性存储器(non-volatile memory,NV memory)120,其中所述控制器是用来控制记忆装置100的运作以及存取(access)非挥发性存储器120,而非挥发性存储器120是用来存储信息。非挥发性存储器120可包括至少一非挥发性存储器组件(NVmemory 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、一完成时间估测数据库(completion time estimation database,可简称为CTE数据库)115、一随机存取存储器116以及一传输接口电路118,其中上述组件可通过一总线彼此耦接。随机存取存储器116是利用一静态随机存取存储器(Static RAM,SRAM)来实施,但本发明不限于此。CTE数据库115可包括一或多种时间参考数据,诸如记忆装置100的各种类型的内部运作的时间参考数据,以供进行完成时间估测运作。随机存取存储器116可用来提供内部存储空间给存储器控制器110。例如,随机存取存储器116可用来作为一缓冲存储器以供缓冲数据。另外,本实施例的只读存储器112M是用来存储一程序代码112C,而微处理器112则是用来执行程序代码112C以控制对非挥发性存储器120的存取。请注意,在某些例子中,程序代码112C可被存储在随机存取存储器116或任何形式的存储器内。此外,控制逻辑电路114可用来控制非挥发性存储器120,并且可包括一数据保护电路(未显示)以保护数据及/或进行错误更正,但本发明不限于此。传输接口电路118可符合一特定通信标准(例如PCIe标准)且可依据所述特定通信标准进行通信,例如为记忆装置100,和主装置50进行通信,其中主装置50可包括对应的传输接口电路(例如PCIe传输接口电路),以供用来为主装置50,和记忆装置100进行通信。
在本实施例中,主装置50可传送主装置指令(host command)与对应的逻辑地址至存储器控制器110来存取记忆装置100。存储器控制器110接收主装置指令与逻辑地址,并将主装置指令转译成存储器操作指令(可简称为操作指令),再以操作指令控制非挥发性存储器120读取或写入(write)/编程(program)非挥发性存储器120当中某些实体地址的记忆单位(例如数据页(page)),其中实体地址对应于逻辑地址。当存储器控制器110对非挥发性存储器组件122-1、122-2、…与122-N中的任一非挥发性存储器组件122-n进行一抹除(erase)运作时(符号“n”可代表区间[1,N]中的任一整数),非挥发性存储器组件122-n的多个区块中的至少一个区块会被抹除,其中所述区块中的每一区块可包括多个页(例如数据页),且一存取运作(例如读取或写入)可对一或多个页进行。
依据某些实施例,图1所示架构可予以变化。例如,CTE数据库115可整合至只读存储器112M、或记忆装置100中的其它存储器。又例如,CTE数据库115可实施成运行于微处理器112上的一部分程序代码。又例如,CTE数据库115可设置于非挥发性存储器120中。
图2为依据本发明一实施例的一种用来进行一记忆装置的存取管理的方法的工作流程200。所述方法可应用于电子装置10、主装置50及其处理器52、记忆装置100、以及可用来控制非挥发性存储器120的存取的存储器控制器110。举例来说,主装置50(例如:运行于处理器52上的程序,诸如一驱动程序(driver)或一应用程序(application))以及记忆装置100(例如:存储器控制器110)可依据所述方法来运作。基于所述方法,处理器52以及存储器控制器110中的每一者可进行记忆装置100的存取管理。
在步骤210中,当主装置50传送一主装置指令至记忆装置100,主装置50可利用存储器控制器110估测(estimate)所述主装置指令的一完成时间(completion time),以产生对应于所述完成时间的完成时间信息。处理器52可控制主装置50传送所述主装置指令至所述记忆装置100,并且利用存储器控制器110估测所述主装置指令的所述完成时间,以产生对应于所述完成时间的所述完成时间信息。所述完成时间通常可包括记忆装置100执行所述主装置指令以产生所述主装置指令的一执行结果所需的一时期(time period)。依据本实施例,所述完成时间可包括记忆装置100的一或多个内部运作的时间,且所述一或多个内部运作可包括因应所述主装置指令存取非挥发性存储器120,但本发明不限于此。例如,所述主装置指令可包括一抹除请求、一写入请求以及一读取请求中的一者。
在步骤220中,主装置50可利用存储器控制器110将所述完成时间信息传送至主装置50(例如其内的缓存器),以容许主装置50于所述完成时间之后进行轮询(polling)以取得所述主装置指令的所述执行结果。依据传送自存储器控制器110的所述完成时间信息,处理器52可控制主装置50于所述完成时间之后进行轮询以取得所述主装置指令的所述执行结果。在本实施例中,于传送所述主装置指令至记忆装置100的期间(例如,于传送所述主装置指令至记忆装置100的时间点),主装置50可运作于一用户模式(User mode),而非一核模式(Kernel mode)。于主装置50传送所述主装置指令至记忆装置100之后,运行于处理器52上的程序(诸如所述驱动程序或所述应用程序)可控制主装置50避免持续地为了所述执行结果进行轮询,直到所述完成时间已届时(expire),尤其,可控制主装置50进行至少一其它运作(例如一或多个其它运作),而非持续地为了所述执行结果进行轮询。
依据本实施例,主装置50于所述完成时间已届时之前能进行上述至少一其它运作,而不需要持续地进行轮询。因此,本发明的方法以及装置能达到充分利用主装置50与记忆装置100之间的带宽以及尽快取得所述执行结果(例如一存取结果)的目标,而不会造成现有技术中的问题诸如硬件资源满载或过载(例如高使用率诸如100%)。另外,由于主装置50能于所述完成时间已届时之前进行上述至少一其它运作,本发明的方法以及装置能确保电子装置10具有优化的效能。
为便于理解,所述方法可通过工作流程200来说明,但本发明不限于此。依据某些实施例,一或多个步骤可于工作流程200中被新增、删除或修改。
依据某些实施例,在存储器控制器100的控制下,记忆装置100可先完成一先前运作(若所述先前运作存在),使记忆装置100处于一备妥(ready)状态来执行所述主装置指令。尤其是,所述先前运作可为记忆装置100于接收所述主装置指令时正在进行的运作、或用于使记忆装置备妥以执行所述主装置指令的准备运作。所述先前运作的例子可包括(但不限于):一垃圾收集(garbage collection,GC)运作、一抹除运作与一损耗平均(wear-leveling)运作等。
依据某些实施例,所述主装置指令可包括一请求。于主装置50接收到所述完成时间信息之后,运行于处理器52上的程序(诸如所述驱动程序或所述应用程序)可控制主装置50触发记忆装置100(例如存储器控制器110)执行所述请求。尤其是,所述请求可代表一存取请求,诸如所述抹除请求、所述写入请求以及所述读取请求中的一者。例如,当所述请求代表所述写入请求,所述执行结果可代表对应的确认(acknowledgement),以及所述写入请求可包括数据量信息,以容许记忆装置100(例如存储器控制器110)依据所述数据量信息估测所述完成时间,其中所述资料量信息可指出对应于所述写入请求的写入数据的一数据量。又例如,当所述请求代表所述读取请求,所述执行结果可代表对应的读取数据,以及主装置50可传送目的地信息(destination information)至记忆装置100,以容许记忆装置100(例如存储器控制器110)依据所述目的地信息将所述执行结果存储于主装置50的存储器56中的一目的地记忆区,其中所述目的地信息可指出所述目的地记忆区,尤其是,所述目的地信息可为所述目的地记忆区的一记忆地址,但本发明不限于此。再举一例,当所述请求代表所述抹除请求,所述执行结果可代表对应的确认(acknowledgement),以及所述抹除请求可包括范围信息,以容许记忆装置100(例如存储器控制110)依据所述范围信息器估测所述完成时间,其中所述范围信息可指出对应于所述抹除请求的一地址范围(例如,对应于非挥发性存储器120中的一或多个区块的一或多个逻辑区块地址(logical block address,LBA))。
图3为依据本发明一实施例绘示的所述方法的一写入控制方案,其中主装置50可在运行于处理器52的程序(诸如所述驱动程序或所述应用程序)的控制下进行运作,且记忆装置100可在存储器控制器110的控制下进行运作。
在步骤S10中,主装置50(例如运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可进行写入数据准备,例如,于存储器56中分配(allocate)一写入缓冲区并且将所述写入数据(例如欲写入记忆装置100的数据)移动或复制至所述写入缓冲区。
在步骤S11中,主装置50(例如运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可传送所述写入请求,诸如带有所述写入数据的数据大小的所述写入请求,其中所述资料大小可作为所述资料量信息的一个例子。
在步骤S12中,记忆装置100(例如存储器控制器110)可依据所述数据大小估测所述完成时间。举例来说,在非挥发性存储器120没有足够空间的情况下(例如,非挥发性存储器120目前没有足够的空白区块,诸如所需数量的空白区块,其总空间大于所述数据大小),存储器控制器110可能需要进行所述先前运作诸如一垃圾收集运作,以准备足够的空间以供存储所述写入数据。存储器控制器110可依据CTE数据库115中的针对所述垃圾收集运作的时间参考数据(例如,产生空白区块的速度或预定/历史时间,诸如时间每区块(time perblock))、以及所需的空白区块的数量,来判断所述垃圾收集运作的准备时间T11,并且可依据CTE数据库115中的针对编程运作的时间参考数据(例如,编程至空白区块中的速度或预定/历史时间,诸如时间每区块)、以及所需的空白区块的数量,来判断将所述写入数据编程至非挥发性存储器120中所需的编程时间T12,并且可另将所述完成时间决定为准备时间T11以及编程时间T12的总和(T11+T12)。例如所述写入请求的完成时间T10可被表示为:T10=T11+T12。
在步骤S13中,记忆装置100(例如存储器控制器110)可传送所述完成时间信息(例如指出完成时间T10的时间信息)。于是,主装置50可取得完成时间T10。
在步骤S14中,主装置50(例如运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可触发记忆装置100(例如存储器控制器100)以执行所述写入请求。尤其是,主装置50可避免持续地为了所述执行结果(例如对应于所述写入请求的确认)进行轮询,直到完成时间T10已届时。例如,于完成时间T10已届时之前,主装置50可进行其它运作而不花任何时间在为了所述执行结果进行轮询。
在步骤S15中,记忆装置100(例如存储器控制器110)可提取(fetch)数据(例如,于存储器56的写入缓冲区中的所述写入数据的一部分),并且将所述数据写入非挥发性存储器120。于是,存储器控制器110完成了将所述写入数据编程至非挥发性存储器120中。
在步骤S16中,记忆装置100(例如存储器控制器110)可传送对应于所述写入请求的所述确认至主装置50。
在步骤S17中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可于所述完成时间已届时之后进行轮询,以依据所述确认判断为完成(例如,所述写入请求的完成状态)。之后,主装置50可释出(release)相关硬件资源诸如上述的写入缓冲区。
由于记忆装置100确实将全部的写入数据存储至非挥发性存储器120中,而非将所述写入资料暂存于随机存取存储器116中并伪装成工作完成,所述写入数据在所述电子装置10中是安全的。例如,在电子装置10实施为包括有主装置50与多个记忆装置{100}(例如多个固态硬盘)的一全快闪阵列(All-Flash Array)装置的情况下,所述记忆装置{100}的任一者的数据能被妥善的保全(secure)或保护(protect),且主装置50的错误处理机制能够非常强健稳固。因此,本发明能确保电子装置10的整体效能。
依据某些实施例,假设所述准备运作不存在(例如非挥发性存储器120具有足够的空间),且存储器控制器不需要进行所述先前运作诸如所述垃圾收集运作,则图3所示的准备时间T11可变为零,这表示T10=T12。
图4为依据本发明一实施例绘示的所述方法的一读取控制方案,其中主装置50可在运行于处理器52的程序(诸如所述驱动程序或所述应用程序)的控制下进行运作,且记忆装置100可在存储器控制器110的控制下进行运作。
在步骤S20中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可传送所述读取请求,诸如带有所述读取数据的一逻辑区块地址(logicalblock address,LBA)列表的所述读取请求。例如,所述逻辑区块地址列表可包括所述读取数据的至少一逻辑区块地址(例如一或多个逻辑区块地址)。
在步骤S21中,记忆装置100(例如存储器控制器110)可依据所述逻辑区块地址列表估测所述完成时间。例如,在存储器控制器110于接收到所述读取请求的时间正在进行所述先前运作诸如一特定内部运作(例如,一垃圾收集运作、一抹除运作、一损耗平均运作等)的情况下,存储器控制器110可能需要准备时间T21以供准备停止或暂停所述特定内部运作,以避免记忆装置100的故障。存储器控制器110可依据CTE数据库115中的针对停止或暂停所述特定内部运作的时间参考数据(例如其预定/历史时间)来决定准备时间T21,并且可依据CTE数据库115中的针对所述读取运作的时间参考数据(例如从数据区块读取的速度或预定/历史时间,诸如时间每区块)、以及对应于上述至少一逻辑区块地址的区块的数量,来决定自非挥发性存储器120读取所述读取数据所需的读取时间T22,并且可另将所述完成时间决定为准备时间T21以及读取时间T22的总和(T21+T22)。例如,所述读取请求的完成时间T20可表示为:
T20=T21+T22。
在步骤S22中,记忆装置100(例如存储器控制器110)可传送所述完成时间信息(例如,指出完成时间T20的时间信息)。于是,主装置50可取得完成时间T20。
在步骤S23中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可进行读取数据准备,例如,于存储器56中分配一读取缓冲区以供存储所述读取数据(例如,预计从记忆装置100读取的数据)的用途,其中所述读取缓冲区能作为所述目的地记忆区的一个例子。
在步骤S24中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可传送所述目的地信息(例如所述读取缓冲区的记忆地址)并且触发记忆装置100(例如存储器控制器110)执行所述读取请求。尤其是,主装置50可避免持续地为了所述执行结果(例如对应于所述读取请求的读取数据)进行轮询,直到完成时间T20已届时。例如,在完成时间T20已届时之前,主装置50可进行其它运作而不花任何时间在为了所述执行结果进行轮询。
在步骤S25中,记忆装置100(例如,存储器控制器110)可读取数据(例如于非挥发性存储器120中的所述读取数据的一部分),并且将所述数据传回存储器56的所述读取缓冲区。于是,存储器控制器110完成了自非挥发性存储器120读取所述读取数据以及将所述读取数据放置于存储器56的所述读取缓冲区的运作。
在步骤S26中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可于所述完成时间已届时之后进行轮询,以取得所述读取数据。之后,主装置50可使用所述读取数据,并且可在需要时释出相关硬件资源诸如所述读取缓冲区。
依据某些实施例,假设所述准备运作不存在,例如,存储器控制器110于接收到所述读取请求的时间并非正在进行所述先前运作诸如所述特定内部运作。因此,图4所示的准备时间T21可变为零,这表示T20=T22。
图5为依据本发明另一实施例绘示的所述方法的一读取控制方案,其中主装置50可在运行于处理器52的程序(诸如所述驱动程序或所述应用程序)的控制下进行运作,且记忆装置100可在存储器控制器110的控制下进行运作。
在步骤S30中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可进行读取数据准备,例如,于存储器56中分配一读取缓冲区以供存储所述读取数据(例如,预计从记忆装置100读取的数据)的用途,其中所述读取缓冲区能作为所述目的地记忆区的一个例子。
在步骤S31中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可传送所述读取请求,诸如带有所述读取数据的一逻辑区块地址列表以及所述目的地信息(例如所述读取缓冲区的记忆地址)的所述读取请求。例如,所述逻辑区块地址列表可包括所述读取数据的至少一逻辑区块地址(例如一或多个逻辑区块地址)。
在步骤S32中,记忆装置100(例如存储器控制器110)可依据所述逻辑区块地址列表估测所述完成时间。例如,在存储器控制器110于接收到所述读取请求的时间正在进行所述先前运作诸如一特定内部运作(例如,一垃圾收集运作、一抹除运作、一损耗平均运作等)的情况下,存储器控制器110可能需要准备时间T31以供准备停止或暂停所述特定内部运作,以避免记忆装置100的故障。存储器控制器110可依据CTE数据库115中的针对停止或暂停所述特定内部运作的时间参考数据(例如其预定/历史时间)来决定准备时间T31,并且可依据CTE数据库115中的针对所述读取运作的时间参考数据(例如从数据区块读取的速度或预定/历史时间,诸如时间每区块)、以及对应于上述至少一逻辑区块地址的区块的数量,来决定自非挥发性存储器120读取所述读取数据所需的读取时间T32,并且可另将所述完成时间决定为准备时间T31以及读取时间T32的总和(T31+T32)。例如,所述读取请求的完成时间T30可表示为:
T30=T31+T32。
在步骤S33中,记忆装置100(例如存储器控制器110)可传送所述完成时间信息(例如,指出完成时间T30的时间信息)。于是,主装置50可取得完成时间T30。
在步骤S34中主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可触发记忆装置100(例如存储器控制器110)执行所述读取请求。尤其是,主装置50可避免持续地为了所述执行结果(例如对应于所述读取请求的读取数据)进行轮询,直到完成时间T30已届时。例如,在完成时间T30已届时之前,主装置50可进行其它运作而不花任何时间在为了所述执行结果进行轮询。
在步骤S35中,记忆装置100(例如,存储器控制器110)可读取数据(例如于非挥发性存储器120中的所述读取数据的一部分),并且将所述数据传回存储器56的所述读取缓冲区。于是,存储器控制器110完成了自非挥发性存储器120读取所述读取数据以及将所述读取数据放置于存储器56的所述读取缓冲区的运作。
在步骤S36中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可于所述完成时间已届时之后进行轮询,以取得所述读取数据。之后,主装置50可使用所述读取数据,并且可在需要时释出相关硬件资源诸如所述读取缓冲区。
依据某些实施例,假设所述准备运作不存在,例如,存储器控制器110于接收到所述读取请求的时间并非正在进行所述先前运作诸如所述特定内部运作。因此,图5所示的准备时间T31可变为零,这表示T30=T32。
图6为依据本发明一实施例绘示的所述方法的一抹除控制方案,其中主装置50可在运行于处理器52的程序(诸如所述驱动程序或所述应用程序)的控制下进行运作,且记忆装置100可在存储器控制器110的控制下进行运作。
在步骤S40中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可传送带有一逻辑区块地址列表的所述抹除请求,其中所述逻辑区块地址列表可作为所述范围信息的一个例子。依据本实施例,所述逻辑区块地址列表可包括对应非挥发性存储器120中的至少一区块(例如一或多个区块)的至少一逻辑区块地址(例如一或多个逻辑区块地址)。
在步骤S41中,记忆装置100(例如存储器控制器110)可依据所述逻辑区块地址列表估测所述完成时间。例如,在存储器控制器110于接收到所述抹除请求的时间正在进行所述先前运作诸如一特定内部运作(例如,一垃圾收集运作、一抹除运作、一损耗平均运作等)的情况下,存储器控制器110可能需要准备时间T41以供准备停止或暂停所述特定内部运作,以避免记忆装置100的故障。存储器控制器110可依据CTE数据库115中的针对停止或暂停所述特定内部运作的时间参考数据(例如其预定/历史时间)来决定准备时间T41,并且可依据CTE数据库115中的针对所述抹除运作的时间参考数据(例如抹除区块的速度或预定/历史时间,诸如时间每区块)、以及对应于步骤S40所述的逻辑区块地址列表中的上述至少一逻辑区块地址(例如所述一或多个逻辑区块地址)的区块的数量,来决定抹除非挥发性存储器120中的上述至少一区块(例如所述一或多个区块)所需的抹除时间T42,并且可另将所述完成时间决定为准备时间T41以及抹除时间T42的总和(T41+T42)。例如,所述抹除请求的完成时间T40可表示为:
T40=T41+T42。
在步骤S42中,记忆装置100(例如存储器控制器110)可传送所述完成时间信息(例如,指出完成时间T40的时间信息)。于是,主装置50可取得完成时间T40。
在步骤S43中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可触发记忆装置100(例如存储器控制器110)执行所述抹除请求。尤其是,主装置50可避免持续地为了所述执行结果(例如对应于所述抹除请求的所述确认)进行轮询,直到完成时间T40已届时。例如,在完成时间T40已届时之前,主装置50可进行其它运作而不花任何时间在为了所述执行结果进行轮询。
在步骤S44中,记忆装置100(例如存储器控制器110)可抹除非挥发性存储器120中的上述至少一区块(例如所述一或多个区块)。于是,存储器控制器110完成了抹除非挥发性存储器120中的上述至少一区块(例如所述一或多个区块)的运作。
在步骤S45中,记忆装置100(例如存储器控制器110)可传送对应于所述抹除请求的所述确认至主装置50。
在步骤S46中,主装置50(例如,运行于处理器52的程序,诸如所述驱动程序或所述应用程序)可于所述完成时间已届时之后进行轮询,以依据所述确认判断为完成(例如,所述抹除请求的完成状态)。之后,主装置50可在需要时为了某些目的使用上述至少一区块(例如所述一或多个区块)。
依据某些实施例,假设所述准备运作不存在,例如,存储器控制器110于接收到所述抹除请求的时间并非正在进行所述先前运作诸如所述特定内部运作。因此,图6所示的准备时间T41可变为零,这表示T40=T42。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (36)

1.一种用来进行一记忆装置的存取管理的方法,所述记忆装置包括一非挥发性存储器以及用来控制所述非挥发性存储器的存取的一存储器控制器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述方法的特征在于,包括:
若一主装置传送一主装置指令至所述记忆装置,利用所述存储器控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及
利用所述存储器控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
2.如权利要求1所述的方法,其特征在于,所述完成时间包括所述记忆装置执行所述主装置指令以产生所述执行结果所需的一时期。
3.如权利要求1所述的方法,其特征在于,所述完成时间包括所述记忆装置的一或多个内部运作的时间,以及所述一或多个内部运作包括因应所述主装置指令存取所述非挥发性存储器。
4.如权利要求3所述的方法,其特征在于,所述记忆装置先完成一先前运作,若存在,使所述记忆装置处于一备妥状态来执行所述主装置指令。
5.如权利要求1所述的方法,其特征在于,所述主装置指令包括一抹除请求、一写入请求以及一读取请求中的一者。
6.如权利要求1所述的方法,其特征在于,于传送所述主装置指令至所述记忆装置的期间,所述主装置运作于一用户模式,而非一核模式。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
于所述主装置传送所述主装置指令至所述记忆装置之后,控制所述主装置避免持续地为了所述执行结果进行轮询,直到所述完成时间已届时。
8.如权利要求7所述的方法,其特征在于,控制所述主装置避免持续地为了所述执行结果进行轮询包括:
控制所述主装置进行至少一其它运作,而非持续地为了所述执行结果进行轮询。
9.如权利要求1所述的方法,其特征在于,所述主装置指令包括一请求;以及所述方法还包括:
于所述主装置接收到所述完成时间信息之后,控制所述主装置触发所述记忆装置执行所述请求。
10.如权利要求9所述的方法,其特征在于,所述请求代表一存取请求,且所述存取请求是一抹除请求、一写入请求以及一读取请求中的一者。
11.如权利要求9所述的方法,其特征在于,所述请求代表一写入请求,所述执行结果代表对应的确认,以及所述写入请求包括数据量信息,以容许所述存储器控制器依据所述数据量信息估测所述完成时间,其中所述数据量信息指出对应于所述写入请求的写入数据的一数据量。
12.如权利要求9所述的方法,其特征在于,所述请求代表一读取请求,所述执行结果代表对应的读取数据,以及所述主装置传送目的地信息至所述记忆装置,以容许所述记忆装置依据所述目的地信息将所述执行结果存储于所述主装置的一存储器中的一目的地记忆区,其中所述目的地信息指出所述目的地记忆区。
13.如权利要求9所述的方法,其特征在于,所述请求代表一抹除请求,所述执行结果代表对应的确认,以及所述抹除请求包括范围信息,以容许所述存储器控制器依据所述范围信息器估测所述完成时间,其中所述范围信息指出对应于所述抹除请求的一地址范围。
14.一种记忆装置,其特征在于,包括:
一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括至少一非挥发性存储器组件;以及
一控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的运作,其中所述控制器包括:
一处理电路,用来依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器,其中:
若所述主装置传送一主装置指令至所述记忆装置,所述控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及
所述控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
15.如权利要求14所述的记忆装置,其特征在于,所述完成时间包括所述记忆装置执行所述主装置指令以产生所述执行结果所需的一时期。
16.如权利要求14所述的记忆装置,其特征在于,所述完成时间包括所述记忆装置的一或多个内部运作的时间,以及所述一或多个内部运作包括因应所述主装置指令存取所述非挥发性存储器。
17.如权利要求16所述的记忆装置,其特征在于,所述记忆装置先完成一先前运作,若存在,使所述记忆装置处于一备妥状态来执行所述主装置指令。
18.如权利要求14所述的记忆装置,其特征在于,所述主装置指令包括一抹除请求、一写入请求以及一读取请求中的一者。
19.一种包括如权利要求14所述的记忆装置的电子装置,其特征在于,所述电子装置还包括:
所述主装置,耦接至所述记忆装置,其中所述主装置包括:
至少一处理器,用来控制所述主装置的运作;以及
一电源供应电路,耦接至所述至少一处理器,用来提供电源给所述至少一处理器以及所述记忆装置;
其中所述记忆装置提供存储空间给所述主装置。
20.一种记忆装置的控制器,所述记忆装置包括所述控制器以及一非挥发性存储器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述控制器的特征在于,包括:
一处理电路,用来依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器,其中:
若所述主装置传送一主装置指令至所述记忆装置,所述控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及
所述控制器将所述完成时间信息传送至所述主装置,以容许所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
21.一种用来进行一记忆装置的存取管理的方法,所述记忆装置包括一非挥发性存储器以及用来控制所述非挥发性存储器的存取的一存储器控制器,所述非挥发性存储器包括至少一非挥发性存储器组件,所述方法的特征在于,包括:
控制一主装置传送一主装置指令至所述记忆装置,并且利用所述存储器控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及
依据传送自所述存储器控制器的所述完成时间信息,控制所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
22.如权利要求21所述的方法,其特征在于,所述完成时间包括所述记忆装置执行所述主装置指令以产生所述执行结果所需的一时期。
23.如权利要求21所述的方法,其特征在于,所述完成时间包括所述记忆装置的一或多个内部运作的时间,以及所述一或多个内部运作包括因应所述主装置指令存取所述非挥发性存储器。
24.如权利要求23所述的方法,其特征在于,所述记忆装置先完成一先前运作,若存在,使所述记忆装置处于一备妥状态来执行所述主装置指令。
25.如权利要求21所述的方法,其特征在于,所述主装置指令包括一抹除请求、一写入请求以及一读取请求中的一者。
26.如权利要求21所述的方法,其特征在于,于传送所述主装置指令至所述记忆装置的期间,所述主装置运作于一用户模式,而非一核模式。
27.如权利要求21所述的方法,其特征在于,所述方法还包括:
于所述主装置传送所述主装置指令至所述记忆装置之后,控制所述主装置避免持续地为了所述执行结果进行轮询,直到所述完成时间已届时。
28.如权利要求27所述的方法,其特征在于,控制所述主装置避免持续地为了所述执行结果进行轮询包括:
控制所述主装置进行至少一其它运作,而非持续地为了所述执行结果进行轮询。
29.如权利要求21所述的方法,其特征在于,所述主装置指令包括一请求;以及所述方法还包括:
于所述主装置接收到所述完成时间信息之后,控制所述主装置触发所述记忆装置执行所述请求。
30.如权利要求29所述的方法,其特征在于,所述请求代表一存取请求,且所述存取请求是一抹除请求、一写入请求以及一读取请求中的一者。
31.如权利要求29所述的方法,其特征在于,所述请求代表一写入请求,所述执行结果代表对应的确认,以及所述写入请求包括数据量信息,以容许所述存储器控制器依据所述数据量信息估测所述完成时间,其中所述数据量信息指出对应于所述写入请求的写入数据的一数据量。
32.如权利要求29所述的方法,其特征在于,所述请求代表一读取请求,所述执行结果代表对应的读取数据,以及所述主装置传送目的地信息至所述记忆装置,以容许所述记忆装置依据所述目的地信息将所述执行结果存储于所述主装置的一存储器中的一目的地记忆区,其中所述目的地信息指出所述目的地记忆区。
33.如权利要求29所述的方法,其特征在于,所述请求代表一抹除请求,所述执行结果代表对应的确认,以及所述抹除请求包括范围信息,以容许所述存储器控制器依据所述范围信息器估测所述完成时间,其中所述范围信息指出对应于所述抹除请求的一地址范围。
34.一种主装置,其特征在于,包括:
至少一处理器,用来控制所述主装置的运作以及进行一记忆装置的存取管理,其中所述记忆装置包括一非挥发性存储器以及用来控制所述非挥发性存储器的存取的一存储器控制器,以及所述非挥发性存储器包括至少一非挥发性存储器组件;
其中所述至少一处理器控制所述主装置传送一主装置指令至所述记忆装置,并且利用所述存储器控制器估测所述主装置指令的一完成时间,以产生对应于所述完成时间的完成时间信息;以及
依据传送自所述存储器控制器的所述完成时间信息,所述至少一处理器控制所述主装置于所述完成时间之后进行轮询以取得所述主装置指令的一执行结果。
35.如权利要求34所述的主装置,其特征在于,所述完成时间包括所述记忆装置执行所述主装置指令以产生所述执行结果所需的一时期。
36.如权利要求34所述的主装置,其中所述完成时间包括所述记忆装置的一或多个内部运作的时间,以及所述一或多个内部运作包括因应所述主装置指令存取所述非挥发性存储器。
CN202010000703.XA 2019-01-24 2020-01-02 存取管理的方法、记忆装置、控制器、主装置和电子装置 Active CN111554340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210643841.9A CN115050409A (zh) 2019-01-24 2020-01-02 存取管理的方法、记忆装置、控制器、主装置和电子装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/257,022 US10942677B2 (en) 2019-01-24 2019-01-24 Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device
US16/257,022 2019-01-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210643841.9A Division CN115050409A (zh) 2019-01-24 2020-01-02 存取管理的方法、记忆装置、控制器、主装置和电子装置

Publications (2)

Publication Number Publication Date
CN111554340A true CN111554340A (zh) 2020-08-18
CN111554340B CN111554340B (zh) 2022-06-28

Family

ID=71732481

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210643841.9A Pending CN115050409A (zh) 2019-01-24 2020-01-02 存取管理的方法、记忆装置、控制器、主装置和电子装置
CN202010000703.XA Active CN111554340B (zh) 2019-01-24 2020-01-02 存取管理的方法、记忆装置、控制器、主装置和电子装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210643841.9A Pending CN115050409A (zh) 2019-01-24 2020-01-02 存取管理的方法、记忆装置、控制器、主装置和电子装置

Country Status (3)

Country Link
US (1) US10942677B2 (zh)
CN (2) CN115050409A (zh)
TW (2) TWI789817B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867640A (zh) * 2021-09-28 2021-12-31 合肥兆芯电子有限公司 存储器轮询方法、存储器存储装置及存储器控制电路单元

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200083048A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 폴링 시간을 예측하는 뉴럴 네트워크 시스템 및 이를 이용한 뉴럴 네트워크 모델 처리 방법
US11669272B2 (en) * 2019-05-31 2023-06-06 Micron Technology, Inc. Predictive data transfer based on availability of media units in memory sub-systems
JP7366795B2 (ja) * 2020-02-14 2023-10-23 キオクシア株式会社 メモリシステムおよび制御方法
US11354041B2 (en) * 2020-06-12 2022-06-07 Western Digital Technologies, Inc. Read latency reduction through command and polling overhead avoidance
US11915047B2 (en) 2020-06-30 2024-02-27 Western Digital Technologies, Inc. Managing storage device compute operations
US11681466B2 (en) * 2020-06-30 2023-06-20 Western Digital Technologies, Inc. Proactive storage operation management
TWI750811B (zh) * 2020-09-16 2021-12-21 英柏得科技股份有限公司 用於記憶體的資料保護寫入方法、用於記憶體的資料保護讀取方法以及記憶體資料保護系統
US20230359550A1 (en) * 2022-05-05 2023-11-09 Western Digital Technologies, Inc. File system integration into data mining model

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047533B2 (en) * 2001-09-10 2006-05-16 Hewlett-Packard Development Company, L.P. Wait utility and method
WO2008096939A1 (en) * 2007-02-06 2008-08-14 Korea Maritime & Ocean Engineering Research Institute Electronic certification system of marine engine emission
CN101794198A (zh) * 2009-01-07 2010-08-04 硅系统公司 提高非易失性存储器操作性能的系统和方法
US20120278819A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho Polling-driven device driver interface
US20150012671A1 (en) * 2013-07-08 2015-01-08 Jeong-Woo Park Storage systems and ufs systems configured to change interface mode in active state
CN108984111A (zh) * 2017-05-30 2018-12-11 希捷科技有限公司 具有可重写原地存储器的数据存储设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8813052B2 (en) 2005-12-07 2014-08-19 Microsoft Corporation Cache metadata for implementing bounded transactional memory
US8117415B2 (en) * 2006-09-18 2012-02-14 Sandisk Il Ltd. Storage device estimating a completion time for a storage operation
US9003414B2 (en) * 2010-10-08 2015-04-07 Hitachi, Ltd. Storage management computer and method for avoiding conflict by adjusting the task starting time and switching the order of task execution
US8527693B2 (en) 2010-12-13 2013-09-03 Fusion IO, Inc. Apparatus, system, and method for auto-commit memory
US20140047210A1 (en) * 2012-08-08 2014-02-13 Lsi Corporation Trim mechanism using multi-level mapping in a solid-state media
US20170206033A1 (en) * 2016-01-19 2017-07-20 SK Hynix Inc. Mechanism enabling the use of slow memory to achieve byte addressability and near-dram performance with page remapping scheme
CN110119248B (zh) * 2016-12-05 2021-10-15 华为技术有限公司 数据读写命令的控制方法、存储设备和系统
KR20190010335A (ko) * 2017-07-21 2019-01-30 삼성전자주식회사 레이턴시 정보를 저장하는 저장 장치, 프로세서 및 컴퓨팅 시스템
JP2019049949A (ja) * 2017-09-12 2019-03-28 東芝メモリ株式会社 ストレージデバイス
CN108958950A (zh) * 2018-05-29 2018-12-07 联发科技(新加坡)私人有限公司 电子存储设备的任务管理方法、主机和存储装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047533B2 (en) * 2001-09-10 2006-05-16 Hewlett-Packard Development Company, L.P. Wait utility and method
WO2008096939A1 (en) * 2007-02-06 2008-08-14 Korea Maritime & Ocean Engineering Research Institute Electronic certification system of marine engine emission
CN101794198A (zh) * 2009-01-07 2010-08-04 硅系统公司 提高非易失性存储器操作性能的系统和方法
US20120278819A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho Polling-driven device driver interface
US20150012671A1 (en) * 2013-07-08 2015-01-08 Jeong-Woo Park Storage systems and ufs systems configured to change interface mode in active state
CN108984111A (zh) * 2017-05-30 2018-12-11 希捷科技有限公司 具有可重写原地存储器的数据存储设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113867640A (zh) * 2021-09-28 2021-12-31 合肥兆芯电子有限公司 存储器轮询方法、存储器存储装置及存储器控制电路单元

Also Published As

Publication number Publication date
US10942677B2 (en) 2021-03-09
TWI735918B (zh) 2021-08-11
TW202139012A (zh) 2021-10-16
TW202046114A (zh) 2020-12-16
CN115050409A (zh) 2022-09-13
CN111554340B (zh) 2022-06-28
US20200241795A1 (en) 2020-07-30
TWI789817B (zh) 2023-01-11

Similar Documents

Publication Publication Date Title
CN111554340B (zh) 存取管理的方法、记忆装置、控制器、主装置和电子装置
US11237769B2 (en) Memory system and method of controlling nonvolatile memory
CN109542335B (zh) 快闪存储器的数据内部搬移方法以及使用该方法的装置
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
US9778878B2 (en) Method and system for limiting write command execution
CN109426449B (zh) 存储器系统及其操作方法
KR20200064499A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
WO2020033154A1 (en) Proactive return of write credits in a memory system
US20180314444A1 (en) Memory device that writes data into a block based on time passage since erasure of data from the block
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
US20200293221A1 (en) Storage device and computing device including storage device
US10254979B1 (en) Relocating or aborting a block of data by a host, based on media policies managed by a storage device
TWI679535B (zh) 快閃記憶體的資料內部搬移方法以及使用該方法的裝置
CN110806837A (zh) 数据处理系统及其操作方法
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
TWI748410B (zh) 用來針對非揮發性記憶體進行區塊管理的方法以及設備
KR20220127076A (ko) 컨트롤러 및 컨트롤러의 동작 방법
CN111984185A (zh) 进行动态节流控制的方法、主机、数据存储装置及控制器
KR102721567B1 (ko) 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법
TWI828391B (zh) 資料儲存裝置與資料儲存裝置之緩存器大小估計方法
TWI822398B (zh) 資料儲存裝置與資料儲存裝置之緩存器大小估計方法
TWI810095B (zh) 資料儲存裝置與寫入緩存器管理方法
US11275694B2 (en) Memory system and method of operating method thereof
KR20180093152A (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

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