CN110431540B - 用于在非托管闪存设备中复制数据页的方法和装置 - Google Patents
用于在非托管闪存设备中复制数据页的方法和装置 Download PDFInfo
- Publication number
- CN110431540B CN110431540B CN201880018022.7A CN201880018022A CN110431540B CN 110431540 B CN110431540 B CN 110431540B CN 201880018022 A CN201880018022 A CN 201880018022A CN 110431540 B CN110431540 B CN 110431540B
- Authority
- CN
- China
- Prior art keywords
- host
- data
- flash
- flash controller
- unmanaged
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了用于在闪存设备中使用闪存控制器复制数据页的方法。方法可包括在主机闪存控制器处从主机处理器接收复制命令,响应于复制命令,经由总线向非托管闪存存储设备传送读命令,其中该读命令指示特定数据,经由总线从非托管闪存存储设备接收特定数据,将特定数据存储在包含在主机闪存控制器中的数据缓冲器中,以及经由总线向非托管闪存存储设备传送写命令来写入特定数据。
Description
引言
本公开的各方面一般涉及集成电路设备,尤其涉及用于在非托管闪存设备中复制数据页的方法和装置。
闪存设备包括门阵列,例如或非逻辑门和/或与非逻辑门。数据页可包括多个门,而数据块可包括多个数据页。
闪存设备需要闪存控制器来执行数据操作。在一些实现中,闪存控制器被纳入到闪存设备中(“托管”闪存)。在其他实现中,闪存控制器被纳入到主机设备中(“非托管”闪存)。主机设备可被配置为经由总线在数据端口中接纳非托管闪存设备。在一些示例中,总线可以是串行总线,而主机设备可以经由总线和协议(诸如,串行外围接口总线(SPI)、集成电路间(I2C)、快速外围组件互连(PCIe)等)与非托管闪存设备进行通信。在一些示例中,协议可以是嵌入式多媒体卡(eMMC)、通用闪存存储(UFS)或M-PHY。
在常规非托管闪存设备中,不能在个体数据页上选择性地执行擦除。相反,必须在整个数据块(包括多个数据页)上执行擦除。应理解,闪存设备中的空间的有效使用需要频繁擦除无效或过时的数据。
然而,在执行擦除时保留有效数据是必要的。为了在非托管闪存设备中保留有效数据,主机设备中的主机处理器将指令闪存控制器读取有效数据。随后有效数据将被读取到主机设备的主机存储器中。读取完成后,主机处理器将指令闪存控制器将有效数据从主机存储器写入非托管闪存设备。
概述
以下概述是仅为了帮助描述本公开的各个方面而提供的综览,并且仅被提供用于解说这些方面而非对其进行限制。
随着数据使用的增加,必须执行的擦除次数也增加。使用常规技术,每次擦除都需要来自主机处理器的多条指令。鉴于大量的擦除,完成单次擦除所需的处理功率或时间的任何减少都可以大大提高主机设备的性能。
在一示例中,公开了一种在非托管闪存存储设备中使用主机闪存控制器复制数据的方法。该方法可例如包括:在主机闪存控制器处从主机处理器接收复制命令,响应于该复制命令,经由总线向非托管闪存存储设备传送读命令,其中该读命令指示特定数据,经由总线从非托管闪存存储设备接收特定数据,将特定数据存储在被包括在主机闪存控制器中的数据缓冲器中,以及经由总线将写命令传送到非托管闪存存储设备以写入特定数据。
在另一方面,公开了一种主机闪存控制器。非瞬态计算机可读介质可例如包括:闪存控制器数据缓冲器,以及耦合到闪存控制器数据缓冲器的闪存控制器单元,其中该闪存控制器单元被配置为在主机闪存控制器处从主机处理器接收复制命令,响应于该复制命令,经由总线向非托管闪存存储设备传送读命令,其中该读命令指示特定数据,从非托管闪存存储设备接收特定数据,将特定数据存储在被包括在主机闪存控制器中的数据缓冲器中,以及经由总线将写命令传送到非托管闪存存储设备以写入特定数据。
在又一方面,公开了一种闪存控制器装备。该闪存控制器装备可例如包括:用于在主机闪存控制器处从主机处理器接收复制命令的装置,用于响应于该复制命令,经由总线向非托管闪存存储设备传送读命令的装置,其中该读命令指示特定数据,用于经由总线从非托管闪存存储设备接收特定数据的装置,用于将特定数据存储在被包括在主机闪存控制器中的数据缓冲器中的装置,以及用于经由总线将写命令传送到非托管闪存存储设备以写入特定数据的装置。
在又一示例中,公开了一种装置。该装置可例如包括:主机处理器、耦合到处理器的主机闪存控制器、以及经由总线与主机闪存控制器通信的非托管闪存设备,其中该主机闪存控制器包括闪存控制器数据缓冲器,以及耦合到该闪存控制器数据缓冲器的闪存控制器单元,其中该闪存控制器单元被配置为在主机闪存控制器处从主机处理器接收复制命令,响应于该复制命令,经由总线向非托管闪存存储设备传送读命令,其中该读命令指示特定数据,经由总线从非托管闪存存储设备接收特定数据,将特定数据存储在被包括在主机闪存控制器中的数据缓冲器中,以及经由总线将写命令传送到非托管闪存存储设备以写入特定数据。
附图简述
对本公开的各方面及其许多伴随优点的更完整领会将因其在参考结合附图考虑的以下详细描述时变得更好理解而易于获得,附图仅出于解说目的被给出而不对本发明构成任何限定,并且其中:
图1一般地解说了根据本公开的各方面的系统100的框图。
图2一般地解说了与图1中所描绘的闪存设备102类似的示例闪存设备的示意图。
图3一般地解说了反映用于执行数据页的复制操作的常规办法的信号流图。
图4一般地解说了根据本公开的各方面的用于执行复制操作的信号流图。
图5一般地解说了根据本公开的其他方面的用于执行复制操作的信号流图。
详细描述
本公开的诸方面在以下针对本公开具体方面的描述和有关附图中被公开。可构想出替换性方面而不背离本发明的范围。另外,本发明中众所周知的元素将不被详细描述或将被省去以免湮没本发明的相关细节。
措辞“示例性”和/或“示例”在本文中用于意指“用作示例、实例或解说”。本文描述为“示例性”和/或“示例”的任何方面不必被解释为优于或胜过其他方面。类似地,术语“本发明的诸方面”并不要求本发明的所有方面都包括所讨论的特征、优点或操作模式。
图1一般地解说了根据本公开的各方面的系统100的框图。系统100可包括主机设备101和闪存设备102。在一些示例中,主机设备101和闪存设备102是在通过总线152连接的分开的芯片上的。
主机设备101可以是从包括以下各项的组中选择的设备:音乐播放器、视频播放器、娱乐单元、导航设备、通信设备、移动设备、移动电话、智能电话、个人数字助理、固定位置终端、平板计算机、计算机、可穿戴设备、物联网(IoT)设备、膝上型计算机、服务器、以及机动车辆中的设备。闪存设备102可以是非托管外部闪存设备。非托管闪存设备可以是不包括控制器的闪存设备。
主机装置101可包括主机处理器110、主机RAM 120(其中RAM是随机存取存储器的缩写)、主机闪存控制器140和数据端口150。主机闪存控制器140可包括数据缓冲器142。
主机处理器110和主机闪存控制器140可经由处理器互连114被耦合。主机RAM 120还可经由处理器互连114被耦合。主机闪存控制器140和数据端口150可经由总线互连145被耦合。
系统100可另外包括可任选的存储器管理单元130。存储器管理单元130可经由处理器互连114被耦合到主机RAM 120和主机闪存控制器140。
数据端口150可以是物理数据端口。数据端口150可被配置为物理地与闪存设备102互补,使得闪存设备102可被牢固地装配到数据端口150中(或反之亦然)。牢固装配允许主机设备101的用户物理地连接和/或断开闪存设备102与主机设备101。
当闪存设备102被牢固地装配到主机装置101时,数据端口150中的端口电触点可被耦合到闪存设备102中的互补闪存设备电触点。结果,数据和/或信号可以从主机闪存控制器140被传送到闪存设备102(以及反之亦然)。
如上所述,闪存设备102可以是不包括控制器的非托管闪存设备。例如,闪存设备102内的个体闪存管芯可包括芯片级控制器,而闪存设备102可不包括作为整体来控制闪存设备102的系统级控制器。例如,芯片级控制器可根据上文所呈现的协议(SPI、I2C、PCIe等)来控制闪存设备102的I/O功能。可提供主机闪存控制器140来执行操作闪存设备102和处置传送到闪存设备102或从闪存设备102接收的数据所必需的控制信令。
图2一般地解说了与图1中所描绘的闪存设备102类似的示例闪存设备的示意图。将从示意图中理解,示例闪存设备可包括多个数据块210。出于解说目的,图2描绘了第一数据块211、第二数据块212、第三数据块213、第四数据块214、第五数据块215、第六数据块216、第七数据块217和第N数据块219。将理解,N可以是任意数目,并且可以在第七数据块217和第N数据块219之间设置任何对应数目的数据块。
多个数据块210中的每一者可包括多个数据页220。出于解说目的,图2中描绘了第四数据块214的细节。具体地说,可观察到,多个数据页220可包括第一数据页221、第二数据页222、第三数据页223、第四数据页224、第五数据页225、第六数据页226、第七数据页227和第M数据页229。将理解,M可以是任意数目,并且可以在第七数据页227和第M数据页229之间设置任何对应数目的数据页。
多个数据页220中的每一者可包括多个门230。出于解说目的,图2中描绘了第四数据页224的细节。具体地说,可观察到,多个门230可包括第一门231、第二门232、第三门233和第L门239。将理解,L可以是任何数目,并且可以在第三门233和第L门239之间设置任何对应数目的门。
作为示例,字节可例如包括与门230类似的八个门。码字可例如包括512字节。每个数据页可例如包括2048字节或4096字节。每个块可例如包括64个数据页。将理解,提供这些值仅仅是出于解说目的,并且门、字节、码字或数据页的数目可基于闪存设备102的技术、供应商或型号而变化。
返回到图1,主机处理器110可以间歇地(例如,周期性地)执行需要从闪存设备102复制数据的过程。例如,主机处理器110可间歇地执行垃圾收集处理、数据刷新处理或一些其他需要复制数据的过程。
在垃圾收集过程中,主机处理器110指令系统100从一数据块(例如,图2中描绘的第四数据块214)读取有效数据,并将该有效数据写入另一数据块(例如,图2中描绘的第N数据块219)。将解释垃圾的生成,并且随后将更具体地讨论垃圾收集过程的细节。
作为示例,假设初始数据被写入第四数据块214的第一数据页221。假设稍后,通过主机处理器110的一些操作,初始数据将被更新以形成经更新数据。如上所述,闪存设备102可能不能盖写个体数据页。因此,第一数据页221(具有初始数据)被标记为垃圾,并且经更新数据被写入空闲数据页(例如第四数据页224),而不是盖写第一数据页221以包括经更新数据。
如果经更新数据第二次被更新,则第四数据页224(具有经更新数据)将被标记为垃圾,并且经两次更新数据将被写入另一空闲数据页(例如,第M数据页229)。将理解,标记为垃圾的任何数据页(例如,先前示例中的第一数据页221和第四数据页224)必须在可用于存储新数据之前被擦除。而且,如上所述,数据块可能是最小的可擦除单元。结果,除非整个第四数据块214(多个数据页220中的每一者)被擦除,否则第一数据页221和第四数据页224不能被擦除。因此,对于数据块的间歇擦除,垃圾收集过程是必需的。
在垃圾收集过程中,通过将有效数据写入新数据块来合并分散在一个或多个特定数据块中的有效数据。回到较前的示例,被写入第M数据页229的经两次更新数据可被标记为有效数据,而被写入第一数据页221的初始数据和被写入第四数据页224的经更新数据可被标记为垃圾。因此,被写入第M数据页229的经两次更新数据可被写入不同数据块(例如,第N数据块219)中的空闲数据页。随后,在第M数据页229和任何其他有效数据页被复制到第N数据块219之后,第四数据块214可被擦除,并释放多个数据页220(包括第一数据页221、第四数据页224和第M数据页229)中的每一者。
在数据刷新过程中,主机处理器110指令系统100从一数据块(例如,图2中描绘的第四数据块214)读取有效数据,并将该有效数据写入另一数据块(例如,图2中描绘的第N数据块219)。将解释刷新数据的原因,并且随后将更具体地讨论数据刷新过程的细节。
作为示例,假设初始数据被写入第四数据块214的第四数据页224。例如,可将特定的二进制序列写入多个门230中的每一者。在第四数据页224中存储的初始数据可随时间而降级。初始数据可随时间而降级的一个原因被称为数据衰减。环境状况(诸如,热量)可随着时间导致个体门(例如,第二门232)朝向翻转点移动。如果到达翻转点,则“1”可能会翻转为“0”(或反之亦然),并且数据可能会损坏。初始数据可随时间而降级的另一个原因被称为读取扰动。相邻数据页(例如,第三数据页223和/或第五数据页225)的读命令可压迫第四数据页224,从而导致多个门230中的一者或多者朝着翻转点移动。
为了刷新数据,它必须间歇地被写入新的数据块。例如,主机处理器110可基于任意数目的因素(例如,读命令的数目、系统100的温度、时间的推移等)来确定刷新是必要的。主机处理器110随后可编排将旧数据块写为新数据块作为数据刷新过程的一部分。
图3一般地解说了反映用于执行数据页的复制操作的常规办法的信号流程图300。复制操作可被包括在垃圾收集过程、数据刷新过程或任何其他需要复制数据页的过程中。如下文将更具体讨论的,如果主机处理器110按照图3所描绘的常规办法执行复制操作,那么主机处理器110将首先执行读操作,并随后执行写操作。
在310处,主机处理器110发起读数据页操作。如下文将更具体讨论的,为了执行读数据页操作,主机处理器110可向主机RAM 120和/或主机闪存控制器140发送命令。多个命令312、314、316、318、320、322可被认为是读数据页操作的元素。
在312处,主机处理器110向主机RAM 120发送保留空间命令。保留空间命令可例如陈述要保留的空间的索引和量。
在314处,主机处理器110向主机闪存控制器140发送读命令。读命令可标识要被读取的特定数据和/或特定数据的位置。
在316处,响应于在314处读命令的接收,主机闪存控制器140可确定与特定数据相关联的码字的位置,和/或从例如被布置在闪存设备102中的第一数据页读取该码字。码字的读取完成之际,码字可被存储在主机闪存控制器140(或其数据缓冲器142)中。
在318处,主机闪存控制器140可将码字传递到主机RAM 120。在318处传送的码字接收之际,主机RAM 120可将码字(或其一部分)存储在312处保留的空间中。
在320处,重复在316处的接收和在318处的传递,直到与第一数据页相关联的每个码字已经被接收到并被传递。常规地,数据缓冲器142具有等于一个码字的数据存储容量。
在322处,主机闪存控制器140可通知主机处理器110在310处发起的读操作完成。
在330处,主机处理器110发起写数据页操作。在330处的发起可以响应于通知322。如下文将更具体讨论的,为了执行写数据页操作,主机处理器110可向主机RAM 120和/或主机闪存控制器140发送命令。多个命令332、334、336、340、342可被认为是写数据页操作的元素。
在332处,主机处理器110向主机闪存控制器140发送写命令。写命令可标识存储在主机RAM 120处的特定数据。
在334处,响应于在332处写命令的接收,主机闪存控制器140可从主机RAM120中检索写命令中标识的特定数据或其一部分(例如,码字)。检索可由主机闪存控制器140编排,并且该码字可被存储在数据缓冲器142中。
在336处,主机闪存控制器140将存储在主机闪存控制器140(或其数据缓存器142)处的码字写入闪存设备102。如上文在垃圾收集过程和数据刷新过程的描述中所提及的,码字可被写入与码字被读取的数据块不同的数据块。
在340处,重复在334处的检索和在336处的写入,直到与第一数据页相关联的每个码字已经从主机RAM 120被检索,并将其写入闪存设备102的第二数据页。
在342处,主机闪存控制器140可通知主机处理器110在330处发起的写操作完成。
如将从以下描述所理解的,主机处理器110可为了任何数目个原因而指令系统100复制数据。然而,将从图3中理解,复制的过程要求主机处理器110执行多个处理任务。复制的过程也消耗在主机RAM 120中的空间。
图4一般地解说了根据本公开的各方面的用于执行复制操作的信号流图400。如上所描述,复制操作可能是垃圾收集过程、数据刷新过程或任何其他方案中的必要步骤。与图3所描绘的常规方法相反,图4所描绘的复制操作要求主机处理器110执行较少的处理任务并且消耗主机RAM 120中较少的空间。
在410处,主机处理器110发起复制数据页操作。在410处的发起可被包括在和/或响应于需要将数据从闪存设备102的一部分复制到另一部分的垃圾收集过程、数据刷新过程或任何其他过程。
在412处,主机处理器110向主机闪存控制器140发送复制命令。复制命令412可包括多个信息元素(IE),包括将信号标识为复制命令的命令IE(例如,“复制命令开始”),指示闪存设备102中的特定数据的位置或身份的源IE(例如,“源数据页地址”),指示要被复制的数据的数量和/或长度的索引IE,指示复制目的地的位置或身份的目的地IE(例如,“目的地数据页地址”),或其任何组合。
与图3所描绘的常规方法相反,在图4的复制操作中,向主机RAM 120和/或主机闪存控制器140发送多个命令(例如,保留空间命令312,读命令314,写命令332等)是不必要的。相反,在412处发送单个复制命令。
在414处,主机闪存控制器140可以可任选地确收复制命令412的接收。确收414可响应于从主机处理器110的复制命令412的接收。
在418处,主机闪存控制器140可读取在复制命令412中指示的特定码字。特定码字可以是特定数据页(在本文中被称为“第一数据页”)中的数据的一部分。第一数据页可以类似于图2中所描绘的多个数据页220中的任何一者。第一数据页可以位于与图2中所描绘的多个数据块210中的任何一者类似的第一数据块中。可以经由数据端口150从闪存设备102接收特定码字。
在430处,主机闪存控制器140可存储在418处接收到的特定数据。主机闪存控制器140可将特定数据存储在数据缓冲器142中。在该实现中,数据缓冲器142具有一个码字的数据容量,与常规办法类似。
在432处,主机闪存控制器140可将在418处接收到的并且在430处存储的特定码字写入闪存设备102。
在434处,可任选地重复在318处的接收、在430处的存储和在432处的写入,直到与第一数据页相关联的每个码字已经被写入闪存设备102的第二数据页。
在440处,主机闪存控制器140可通知主机处理器110在410处发起的复制操作完成。
图5一般地解说了根据本公开的各方面的用于执行复制操作的信号流图500。如上所描述,复制操作可能是垃圾收集过程或数据刷新过程中的必要步骤。与图3所描绘的常规方法相反,图5所描绘的复制操作要求主机处理器110执行较少的处理任务并且消耗主机RAM 120中较少的空间。与图4所示的复制操作相反,图5中所描绘的复制操作使用数据容量大于一个码字的数据缓冲器142。这可提高复制操作的速度和效率。
在510处,主机处理器110发起复制数据页操作。在510处的发起可被包括在和/或响应于需要将数据从闪存设备102的一部分复制到另一部分的垃圾收集过程、数据刷新过程或任何其他过程。在510处的发起可类似于图4中所描绘的在410处的发起。
在512处,主机处理器110向主机闪存控制器140发送复制命令。复制命令512可包括多个信息元素(IE),包括将信号标识为复制命令的命令IE,指示闪存设备102中的特定数据的位置或身份的源IE,指示要被复制的数据的数量和/或长度的索引IE,指示复制目的地的位置或身份的目的地IE,或其任何组合。在512处的发送可类似于图4中所描绘的在412处的发送。
与图3所描绘的常规方法相反,在图5的复制操作中,向主机RAM 120和/或主机闪存控制器140发送多个命令(例如,保留空间命令312,读命令314,写命令332等)是不必要的。相反,在512处发送单个复制命令。
在514处,主机闪存控制器140可以可任选地确收复制命令512的接收。确收514可响应于从主机处理器110的复制命令512的接收。在514处的可任选确收可类似于图4中所描绘的在414处的可任选确收。
在518处,主机闪存控制器140可接收在复制命令512中指示的特定数据页。特定数据页在本文中可被称为“第一数据页”,并且可被布置在第一数据块中。第一数据页可以类似于图2中所描绘的多个数据页220中的任何一者。第一数据块可以类似于图2中所描绘的多个数据块210中的任何一者。可经由数据端口150从闪存设备102接收特定数据页。
在530处,主机闪存控制器140可存储在518处接收到的特定数据页。主机闪存控制器140可将特定数据页存储在数据缓冲器142中。在该实现中,数据缓冲器142具有一个数据页的数据容量,与其中数据缓冲器142具有一个码字的数据容量的常规办法相反。相应地,在530处的存储可包括存储多个数据码字中的每一者,使得数据缓冲器同时包括多个数据码字中的每一者。
在532处,主机闪存控制器140可将在518处接收到的并且在530处存储的特定数据页写入闪存设备102。在一些实现中,数据页可在532处被写入与在518处从其接收数据页的数据块不同的数据块。例如,可在518处从第一数据块接收特定数据页并在532将其写入第二数据块。
在540处,主机闪存控制器140可通知主机处理器110在510处发起的复制操作完成。
图4-5中所描绘的任务或过程,或本公开中的任何其他任务或过程可使用任何合适的装置来实现。此类装置还可至少部分地使用本文所教导的对应结构来实现。例如,主机闪存控制器140可构成用于在主机闪存控制器处从主机处理器接收复制命令的装置。主机闪存控制器140可进一步构成用于响应于复制命令经由总线向非托管闪存存储设备传送读取命令的装置,其中该读取命令指示特定数据。主机闪存控制器140可进一步构成用于经由总线从非托管闪存存储设备接收特定数据的装置。主机闪存控制器140可进一步构成用于将特定数据存储在被包括在主机闪存控制器中的数据缓冲器中的装置。主机闪存控制器140可进一步构成用于经由总线将写命令传送到非托管闪存存储设备以写入特定数据的装置。
尽管前面的公开示出了本公开的解说性方面,但是应当注意,在其中可作出各种变更和修改而不会脱离如所附权利要求定义的本发明的范围。根据本文所描述的本公开的各方面的方法权利要求中的功能、步骤和/或动作不必按任何特定次序来执行。此外,尽管本公开的要素可能是以单数来描述或主张权利的,但是复数也是已料想了的,除非显式地声明了限定于单数。
Claims (30)
1.一种在非托管闪存存储设备中使用主机闪存控制器复制数据的方法,包括:
在所述主机闪存控制器处从耦合至所述主机闪存控制器的主机处理器接收复制命令,所述主机处理器和所述主机闪存控制器为主机设备的一部分;
响应于所述复制命令,经由总线从所述主机闪存控制器向所述非托管闪存存储设备传送读命令,其中所述读命令指示连接至所述主机设备的数据端口的所述非托管闪存存储设备中的特定数据,所述非托管闪存存储设备不具有作为整体来控制所述非托管闪存存储设备的控制器;
在所述主机闪存控制器处经由所述总线从所述非托管闪存存储设备接收所述特定数据;
将所述特定数据存储在被包括在所述主机闪存控制器中的数据缓冲器中;以及
经由所述总线将写命令从所述主机闪存控制器传送到所述非托管闪存存储设备以将所述特定数据写入到所述非托管闪存存储设备中。
2.如权利要求1所述的方法,其特征在于,所述非托管闪存存储设备包括多个与非逻辑门和/或多个或非逻辑门。
3.如权利要求1所述的方法,其特征在于:
所述特定数据是数据页,所述数据页包括多个数据码字;并且
在所述数据缓冲器中的所述特定数据的存储包括存储多个数据码字中的每一者,使得所述数据缓冲器同时包括所述多个数据码字中的每一者。
4.如权利要求1所述的方法,其特征在于,所述复制命令标识源开始数据页,目的地开始数据页,所述特定数据的长度,或其任何组合。
5.如权利要求1所述的方法,其特征在于,进一步包括:
响应于所述复制命令的接收,从所述主机闪存控制器向所述主机处理器传送确收。
6.如权利要求1所述的方法,其特征在于,所述读命令指示所述特定数据的读地址。
7.如权利要求1所述的方法,其特征在于,所述写命令包括所述特定数据并且指示写地址。
8.如权利要求1所述的方法,其特征在于,进一步包括:
在所述写命令的传送之后,向所述主机处理器传送复制完成通知。
9.如权利要求1所述的方法,其特征在于,进一步包括:
将所述主机处理器、所述主机闪存控制器和所述总线纳入到所述主机设备中;以及
将主机随机存取存储器纳入到所述主机设备中,其中所述主机随机存取存储器被耦合到所述主机处理器和所述主机闪存控制器。
10.如权利要求1所述的方法,其特征在于,进一步包括将所述主机闪存控制器纳入到包括以下各项的组中选择的设备中:音乐播放器、视频播放器、娱乐单元、导航设备、通信设备、移动设备、移动电话、智能电话、个人数字助理、固定位置终端、平板计算机、计算机、可穿戴设备、物联网设备、膝上型计算机、服务器、以及机动车辆中的设备。
11.一种主机闪存控制器,包括:
闪存控制器数据缓冲器;以及
闪存控制器单元,其被耦合到所述闪存控制器数据缓冲器,其中所述闪存控制器单元被配置为:
在所述主机闪存控制器处从耦合至所述主机闪存控制器的主机处理器接收复制命令,所述主机处理器和所述主机闪存控制器为主机设备的一部分;
响应于所述复制命令,经由总线从所述主机闪存控制器向非托管闪存存储设备传送读命令,其中所述读命令指示连接至所述主机设备的数据端口的所述非托管闪存存储设备中的特定数据,所述非托管闪存存储设备不具有作为整体来控制所述非托管闪存存储设备的控制器;
在所述主机闪存控制器处经由所述总线从所述非托管闪存存储设备接收所述特定数据;
将所述特定数据存储在被包括在所述主机闪存控制器中的数据缓冲器中;以及
经由所述总线将写命令从所述主机闪存控制器传送到所述非托管闪存存储设备以将所述特定数据写入到所述非托管闪存存储设备中。
12.如权利要求11所述的主机闪存控制器,其特征在于,所述非托管闪存存储设备包括多个与非逻辑门和/或多个或非逻辑门。
13.如权利要求11所述的主机闪存控制器,其特征在于,
所述特定数据是数据页,所述数据页包括多个数据码字;并且
所述闪存控制器单元被进一步配置为存储所述多个数据码字中的每一者,使得所述数据缓冲器同时包含所述多个数据码字中的每一者。
14.如权利要求11所述的主机闪存控制器,其特征在于,所述复制命令标识源开始数据页,目的地开始数据页,所述特定数据的长度,或其任何组合。
15.如权利要求11所述的主机闪存控制器,其特征在于,所述闪存控制器单元被进一步配置为:
响应于所述复制命令的接收,从所述主机闪存控制器向所述主机处理器传送确收。
16.如权利要求11所述的主机闪存控制器,其特征在于,所述读命令指示所述特定数据的读地址。
17.如权利要求11所述的主机闪存控制器,其特征在于,所述写命令包括所述特定数据并且指示写地址。
18.如权利要求11所述的主机闪存控制器,其特征在于,所述闪存控制器单元被进一步配置为:
在所述写命令的传送之后,向所述主机处理器传送复制完成通知。
19.如权利要求11所述的主机闪存控制器,其特征在于,所述主机闪存控制器和所述主机处理器被纳入到所述主机设备中;并且
主机随机存取存储器也被纳入到所述主机设备中,其中所述主机随机存取存储器被耦合到所述主机处理器和所述主机闪存控制器。
20.如权利要求11所述的主机闪存控制器,其特征在于,所述主机闪存控制器被纳入到从包括以下各项的组中选择的设备中:音乐播放器、视频播放器、娱乐单元、导航设备、通信设备、移动设备、移动电话、智能电话、个人数字助理、固定位置终端、平板计算机、计算机、可穿戴设备、物联网设备、膝上型计算机、服务器、以及机动车辆中的设备。
21.一种闪存控制器装备,包括:
用于在主机闪存控制器处从耦合至所述主机闪存控制器的主机处理器接收复制命令的装置,所述主机处理器和所述主机闪存控制器为主机设备的一部分;
用于响应于所述复制命令,经由总线从所述主机闪存控制器向非托管闪存存储设备传送读命令的装置,其中所述读命令指示连接至所述主机设备的数据端口的所述非托管闪存存储设备中的特定数据,所述非托管闪存存储设备不具有作为整体来控制所述非托管闪存存储设备的控制器;
用于在所述主机闪存控制器处经由所述总线从所述非托管闪存存储设备接收特定数据的装置;
用于将所述特定数据存储在被包括在所述主机闪存控制器中的数据缓冲器中的装置;以及
用于经由所述总线将写命令从所述主机闪存控制器传送到所述非托管闪存存储设备以将所述特定数据的装置写入到所述非托管闪存存储设备中。
22.如权利要求21所述的闪存控制器装备,其特征在于,所述非托管闪存存储设备包括多个与非逻辑门和/或多个或非逻辑门。
23.如权利要求21所述的闪存控制器装备,其特征在于,
所述特定数据是数据页,所述数据页包括多个数据码字;并且
用于将所述特定数据存储在数据缓冲器中的装置包括用于存储所述多个数据码字中的每一者,使得所述数据缓冲器同时包括所述多个数据码字中的每一者的装置。
24.如权利要求21所述的闪存控制器装备,其特征在于,所述闪存控制器装备和所述主机处理器被纳入到设备中;并且
主机随机存取存储器也被纳入到所述设备中,其中所述主机随机存取存储器被耦合到所述主机处理器和所述闪存控制器装备。
25.如权利要求21所述的闪存控制器装备,其特征在于,所述主机闪存控制器被纳入到从包括以下各项的组中选择的设备中:音乐播放器、视频播放器、娱乐单元、导航设备、通信设备、移动设备、移动电话、智能电话、个人数字助理、固定位置终端、平板计算机、计算机、可穿戴设备、物联网设备、膝上型计算机、服务器、以及机动车辆中的设备。
26.一种在非托管闪存存储设备中使用主机闪存控制器复制数据的装置,包括:
主机处理器;
被耦合到所述处理器的主机闪存控制器,所述主机处理器和所述主机闪存控制器为主机设备的一部分;以及
经由总线与所述主机闪存控制器进行通信的非托管闪存存储设备,所述非托管闪存存储设备连接至所述主机设备的数据端口,所述非托管闪存存储设备不具有作为整体来控制所述非托管闪存存储设备的控制器;
其中所述主机闪存控制器包括:
闪存控制器数据缓冲器;以及
闪存控制器单元,其被耦合到所述闪存控制器数据缓冲器,其中所述闪存控制器单元被配置为:
在所述主机闪存控制器处从所述主机处理器接收复制命令;
响应于所述复制命令,经由所述总线从所述主机闪存控制器向所述非托管闪存存储设备传送读命令,其中所述读命令指示所述非托管闪存存储设备中的特定数据;
经由所述总线从所述非托管闪存存储设备接收所述特定数据;
将所述特定数据存储在被包括在所述主机闪存控制器中的数据缓冲器中;以及
经由所述总线将写命令从所述主机闪存控制器传送到所述非托管闪存存储设备以将所述特定数据写入到所述非托管闪存存储设备中。
27.如权利要求26所述的装置,其特征在于,所述非托管闪存存储设备包括多个与非逻辑门和/或多个或非逻辑门。
28.如权利要求26所述的装置,其特征在于:
所述特定数据是数据页,所述数据页包括多个数据码字;并且所述闪存控制器单元被进一步配置为存储所述多个数据码字中的每一者,使得所述数据缓冲器同时包含所述多个数据码字中的每一者。
29.如权利要求26所述的装置,其特征在于,进一步包括:
主机随机存取存储器,其中所述主机随机存取存储器被耦合到所述主机处理器和所述主机闪存控制器。
30.如权利要求26所述的装置,其特征在于,所述装置是从包括以下各项的组中选择的设备:音乐播放器、视频播放器、娱乐单元、导航设备、通信设备、移动设备、移动电话、智能电话、个人数字助理、固定位置终端、平板计算机、计算机、可穿戴设备、物联网设备、膝上型计算机、服务器、以及机动车辆中的设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/461,470 US10613772B2 (en) | 2017-03-16 | 2017-03-16 | Methods and apparatuses for copying a data page in an unmanaged flash memory device |
US15/461,470 | 2017-03-16 | ||
PCT/US2018/016582 WO2018169619A2 (en) | 2017-03-16 | 2018-02-02 | Methods and apparatuses for copying a data page in an unmanaged flash memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110431540A CN110431540A (zh) | 2019-11-08 |
CN110431540B true CN110431540B (zh) | 2023-03-14 |
Family
ID=61231352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880018022.7A Active CN110431540B (zh) | 2017-03-16 | 2018-02-02 | 用于在非托管闪存设备中复制数据页的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10613772B2 (zh) |
EP (1) | EP3596607A2 (zh) |
CN (1) | CN110431540B (zh) |
SG (1) | SG11201907062XA (zh) |
TW (1) | TW201835771A (zh) |
WO (1) | WO2018169619A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11262942B2 (en) * | 2018-07-16 | 2022-03-01 | ScaleFlux, Inc. | Integrating host-side storage device management with host-side non-volatile memory |
US10936234B2 (en) * | 2019-05-22 | 2021-03-02 | Macronix International Co., Ltd. | Data transfer between memory devices on shared bus |
CN110780724A (zh) * | 2019-08-23 | 2020-02-11 | 天津大学 | 一种由主机的存储控制器执行的复位闪存器件的方法 |
CN114116035B (zh) * | 2022-01-26 | 2022-05-10 | 深圳市吉方工控有限公司 | Windows下的BIOS设置方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438253A (zh) * | 2006-02-14 | 2009-05-20 | 爱特梅尔公司 | 写入和配置闪速存储器 |
CN102103566A (zh) * | 2009-12-18 | 2011-06-22 | Nxp股份有限公司 | 闪存存储器接口 |
CN103339618A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制布置和方法 |
CN103635969A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN104520932A (zh) * | 2012-05-23 | 2015-04-15 | Sk海尼克斯存储技术公司 | 闪存存储器控制器 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108590B2 (en) * | 2000-01-06 | 2012-01-31 | Super Talent Electronics, Inc. | Multi-operation write aggregator using a page buffer and a scratch flash block in each of multiple channels of a large array of flash memory to reduce block wear |
WO2003085677A1 (fr) * | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
JP4956230B2 (ja) * | 2006-04-10 | 2012-06-20 | 株式会社東芝 | メモリコントローラ |
KR100843280B1 (ko) | 2006-12-07 | 2008-07-04 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 전송 방법 |
US8209465B2 (en) * | 2007-10-30 | 2012-06-26 | Hagiwara Sys-Com Co., Ltd. | Data writing method |
US8762620B2 (en) | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US20110040924A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code |
US20110041005A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US8291175B2 (en) * | 2009-10-16 | 2012-10-16 | Oracle America, Inc. | Processor-bus attached flash main-memory module |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US9189286B2 (en) * | 2010-01-14 | 2015-11-17 | Dell Products L.P. | System and method for accessing storage resources |
JP2012014317A (ja) * | 2010-06-30 | 2012-01-19 | Sony Corp | 複製装置、複製方法、メモリメディア、プログラム |
US8537618B2 (en) | 2010-08-26 | 2013-09-17 | Steven Jeffrey Grossman | RAM memory device with NAND type interface |
KR101774496B1 (ko) * | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법 |
US9170744B1 (en) | 2011-04-06 | 2015-10-27 | P4tents1, LLC | Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system |
US9164887B2 (en) | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
US9921954B1 (en) * | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US8760921B2 (en) * | 2012-08-28 | 2014-06-24 | Kabushiki Kaisha Toshiba | Storage device and control method of nonvolatile memory |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
WO2014204331A1 (en) * | 2013-06-17 | 2014-12-24 | Llc "Topcon Positioning Systems" | Nand flash memory interface controller with gnss receiver firmware booting capability |
IN2014CH00519A (zh) * | 2013-12-02 | 2015-06-12 | Sandisk Technologies Inc | |
US20160077959A1 (en) * | 2014-09-12 | 2016-03-17 | Qualcomm Incorporated | System and Method for Sharing a Solid-State Non-Volatile Memory Resource |
US9930133B2 (en) * | 2014-10-23 | 2018-03-27 | Netapp, Inc. | System and method for managing application performance |
US9922695B2 (en) | 2015-03-25 | 2018-03-20 | Intel Corporation | Apparatus and method for page copying within sections of a memory |
US10459855B2 (en) * | 2016-07-01 | 2019-10-29 | Intel Corporation | Load reduced nonvolatile memory interface |
US10296256B2 (en) * | 2016-07-14 | 2019-05-21 | Google Llc | Two stage command buffers to overlap IOMMU map and second tier memory reads |
US20190303603A1 (en) * | 2018-04-03 | 2019-10-03 | Seagate Technology Llc | Location-based security of storage drives |
US11709623B2 (en) * | 2018-08-03 | 2023-07-25 | Sk Hynix Nand Product Solutions Corp. | NAND-based storage device with partitioned nonvolatile write buffer |
-
2017
- 2017-03-16 US US15/461,470 patent/US10613772B2/en active Active
-
2018
- 2018-02-02 WO PCT/US2018/016582 patent/WO2018169619A2/en unknown
- 2018-02-02 EP EP18705790.6A patent/EP3596607A2/en not_active Ceased
- 2018-02-02 CN CN201880018022.7A patent/CN110431540B/zh active Active
- 2018-02-02 SG SG11201907062XA patent/SG11201907062XA/en unknown
- 2018-02-08 TW TW107104443A patent/TW201835771A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438253A (zh) * | 2006-02-14 | 2009-05-20 | 爱特梅尔公司 | 写入和配置闪速存储器 |
CN102103566A (zh) * | 2009-12-18 | 2011-06-22 | Nxp股份有限公司 | 闪存存储器接口 |
CN103339618A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制布置和方法 |
CN103635969A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN104520932A (zh) * | 2012-05-23 | 2015-04-15 | Sk海尼克斯存储技术公司 | 闪存存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
SG11201907062XA (en) | 2019-09-27 |
EP3596607A2 (en) | 2020-01-22 |
WO2018169619A3 (en) | 2019-04-11 |
CN110431540A (zh) | 2019-11-08 |
TW201835771A (zh) | 2018-10-01 |
US10613772B2 (en) | 2020-04-07 |
WO2018169619A2 (en) | 2018-09-20 |
US20180267721A1 (en) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110431540B (zh) | 用于在非托管闪存设备中复制数据页的方法和装置 | |
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
KR101560469B1 (ko) | 메모리 시스템 컨트롤러들을 포함하는 장치 및 관련 방법들 | |
CN106598479B (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
US20140082268A1 (en) | Host for controlling non-volatile memory card, system including the same, and methods operating the host and the system | |
CN101120414A (zh) | 存储器系统中的数据再定位 | |
US8751727B2 (en) | Storage apparatus and storage system | |
CN111554340B (zh) | 存取管理的方法、记忆装置、控制器、主装置和电子装置 | |
US10860231B2 (en) | Memory system for adjusting map segment based on pattern and operating method thereof | |
KR20190004400A (ko) | 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법 | |
KR102615007B1 (ko) | 가비지 컬렉션 - 자동 데이터 배치 | |
JP2007094764A (ja) | メモリシステム | |
TW201118877A (en) | Flash memory device, data storage system, and operation method of a data storage system | |
US9959046B2 (en) | Multi-streaming mechanism to optimize journal based data storage systems on SSD | |
CN107870868B (zh) | 存储装置和存储系统 | |
CN110109851B (zh) | 具有主机和存储器控制器的电子系统及其操作方法 | |
CN106128504B (zh) | 储存设备及其操作方法 | |
KR20210046377A (ko) | 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 | |
CN111708480B (zh) | 数据存储装置及其操作方法和控制器 | |
CN116048380A (zh) | 藉助于预定命令来进行存储器装置的数据存取控制的方法及设备 | |
CN116301582A (zh) | 使用屏障命令的数据恢复 | |
CN107203332B (zh) | 数据储存装置、闪存控制器及其操作方法 | |
CN111352856B (zh) | 存储器系统及其操作方法 | |
CN114664361A (zh) | 利用nand缓冲器进行无dram的多级单元编程 | |
KR101175250B1 (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40014560 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |