CN101241446B - 非易失数据存储装置中虚拟文件系统命令调度方法和设备 - Google Patents
非易失数据存储装置中虚拟文件系统命令调度方法和设备 Download PDFInfo
- Publication number
- CN101241446B CN101241446B CN2007100932862A CN200710093286A CN101241446B CN 101241446 B CN101241446 B CN 101241446B CN 2007100932862 A CN2007100932862 A CN 2007100932862A CN 200710093286 A CN200710093286 A CN 200710093286A CN 101241446 B CN101241446 B CN 101241446B
- Authority
- CN
- China
- Prior art keywords
- order
- preparatory stage
- unit
- metadata
- file system
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种用于降低非易失性数据存储装置中所包含的虚拟文件系统的复杂度并通过在非易失性数据存储装置中所包含的虚拟文件系统中设置命令调度的准备阶段来执行有效交织的命令调度方法和设备。该方法包括设置准备阶段,其中执行用于数据管理的多个元数据命令,以及如果在准备阶段中完全执行所述多个元数据命令,则执行数据读/写命令。因此,通过简化虚拟文件系统(FTL)的调度结构,可以减少代码规膜和资源使用。此外,通过执行精确交织,即使不使用大容量缓存也可以实现主机和存储器存储装置之间的突发数据传输。
Description
相关申请的交叉引用
本申请要求于2006年12月18日在韩国知识产权局提交的韩国专利申请号为10-2006-0129661的优先权,将其全部公开通过引用的方式合并在此。
技术领域
与本发明一致的方法和设备涉及命令调度的方法和设备,并且特别地,涉及用于降低包含在非易失性数据存储装置中的虚拟文件系统的复杂性,并且通过在包含在非易失性数据存储装置中的虚拟文件系统中设置命令调度的准备阶段来执行有效交织(interleaving)的命令调度(command scheduling)方法和设备。
背景技术
目前的多媒体装置(包括移动装置)存储大量的诸如MP3声音和电影(movingpicture)之类的多媒体数据。因此它们需要提供非常大的存储空间并且能以高速率读和写数据的数据存储装置。
图1示出了使用闪存的N-通道/4-路硬件体系结构。
闪存是一种非易失性数据存储装置,由于其低能耗、小型化、低热量和高稳定性而被用在各种移动装置中。单个闪存的存储空间也迅速增加来满足用户的需求。
然而,闪存一般具有低编程(写)速率。为了克服这个问题并执行高速率数据输入/输出,已经为闪存存储装置建议了多种硬件体系结构。
参照图1,闪存控制器110通过单通道连接到4闪存120。为了增加存储容量和数据输入/输出性能,闪存存储装置使用多个如图1所示的闪存芯片。
闪存的读/写包括两个操作:i)从存储单元读/向存储单元写数据;和ii)向闪存控制器110输入/从闪存控制器110输出数据。因此,在闪存存储装置中的控制器通过单数据输入/输出通道连接到多个闪存芯片,并且使用交织输入/输出数据。根据通常的闪存标准,由于当使用4-5个闪存芯片时,单通道使得难于预料生能的提高,所以经常使用4-路体系结构,其中地址分配可以在两个功率(a power of two)获得。
图2是图1所示的单通道中的4个闪存的写操作的定时图。图3是图2所示的单页写操作的定时图。
如图3所示,当在单页写操作210中使用2KB的页单元时,页建立时间是51.2μs(1字节的建立时间是25ns),并且编程时间是200μs。为了补偿相对慢的编程时间,划分大量数据并且将其存储在图1所示的单通道的4个闪存120中。根据现有技术,当在闪存中执行编程时,通过在空闲状态下在其它闪存中执行安装,来执行图2中所示的使用交织的高速率写操作以便最小化控制器的等待时间。
图4示出了使用闪存的位-宽扩展硬件体系结构。
大容量闪存存储装置可以使用多于5个闪存芯片,并且在这种情况下可以使用位-宽扩展体系结构或多-通道体系结构。上述多-通道体系结构可以是上述的1-通道/x-路体系结构的扩展,并且位-宽扩展体系结构是通过连接多于2个闪存芯片来同时传送数据的方法。在这种情况下,所连接的闪存芯片必须在相同的地址同时执行读/写。
一般而言,对于闪存,在页基础上执行读/写,并且为了重写数据来更新,擦除操作必须首先以块为单元执行,其中每一个块包括多个页。这个特征与一般存储装置的特征是不同的,因此,为了与现有的文件系统具有兼容性,使用被称作闪存翻译层(Flash Translation Layer,FTL)的专门软件(虚拟文件系统)来管理闪存存储器。与文件系统兼容的虚拟文件系统也可以应用于其它非易失性数据存储装置,因此以下说明可以应用于所有非易失性数据存储装置。
上述FTL通常使用来自上述复杂硬件体系结构的诸如地址映射表、空闲块信息、坏块信息之类的多种元数据,并且大多数元数据存储在闪存中。将FTL的元数据独立地存储在装置中,或者每一个与闪存的复制回(copyback)命令所覆盖的范围相对应的普通单元中。这就允许有效的碎片(garbage)收集,其是FTL的一项重要工作。具有使用多个闪存芯片的复杂体系结构的闪存存储装置具有与闪存芯片数目相称的独立元数据。
图5是根据使用单闪存的写请求命令的FTL的命令顺序的定时图。
在上述硬件体系结构中,响应于文件系统的读/写请求,FTL向每一个闪存传送多种命令。图5中,如果假设使用单闪存芯片的存储装置被使用,则响应于文件系统的数据写请求510而从FTL传送到硬件的命令与元数据命令520和540(例如映射表读/更新命令、块擦除命令以及块合并命令521)以及用于输入/输出用户数据的数据命令530和550混合。
如上所述,使用多个闪存芯片用于高速率数据输入/输出的闪存存储装置具有基于闪存芯片装置或通道的多个独立的元数据片。因此,在这种结构中,响应于文件系统的数据读/写请求,FTL向每个元数据传送不同的命令。也就是说,每个独立FTL元数据具有不同的元数据命令集和不同的处理时间。
因此,关于用户数据的命令发布时间在FTL元数据间是不同的。由于每个FTL管理单元具有不同的命令调度(工作调度),所以FTL管理单元数目的增加引起FTL复杂度的增加,并且由于对用户数据的发布时间之间的不同,故大容量缓存是必需的。FTL复杂度的增加引起FTL代码规模的增加、存储器使用的增加以及中央处理单元(CPU)负担的增加,导致增加的资源使用。FTL处理量的增加可能引起每个发布指令的延迟,由于用户数据读/写命令的拥塞而引起的主机和存储装置之间的突发数据传输的困难,并且可能使得交织性能改进无效。这些问题导致闪存存储装置的数据输入/输出性能降低。
发明内容
本发明提供了一种用于降低在非易失性数据存储装置中所包含的虚拟文件系统的复杂度并且通过在非易失性数据存储装置中所包含的虚拟文件系统中设置命令调度的准备阶段来执行有效交织的命令调度方法和设备。
根据本发明的一个方面,提供一种包含在非易失性数据存储装置中的虚拟文件系统的命令调度方法,该方法包括:设置准备阶段,其中执行用于数据管理的多个元数据命令;以及如果在准备阶段完全执行上述多个元数据命令,则执行数据读/写命令。
该方法进一步包括在设置准备阶段执行多个元数据命令,其中上述多个元数据命令在由虚拟文件系统管理的单元中被执行。
准备阶段的设置可以进一步包括:在由虚拟文件系统管理的单元中计算用于数据读/写命令的准备工作的执行时间;以及基于最长的计算执行时间来设置准备阶段。
用于数据读/写命令和多个元数据命令的准备工作可以是基于数据读/写命令类型的虚拟文件系统的准备工作,并且每个虚拟文件系统的准备工作可以包括元数据读/更新、碎片收集、映射表读/更新和单元擦除中的至少一个。
数据读/写命令的执行可以包括在设置准备阶段之后一起执行数据读/写命令,并且可以使用交织方法以数据读/写顺序执行一起执行的数据读/写命令。
非易失性数据存储装置可以包括闪存,虚拟文件系统可以是FTL,并且由FTL管理的单元可以是闪存或者使用闪存的通道单元的装置单元。
根据本发明的另一方面,提供一种包含在非易失性数据存储装置中的虚拟文件系统的扩展的命令调度方法,该方法包括:设置准备阶段,其中执行用于数据管理的多个元数据命令;在所设置准备阶段中的空闲时间期间执行下一个准备阶段的元数据命令;以及如果在所设置的准备阶段中完全执行多个元数据命令和下一个准备阶段的元数据命令,则执行数据读/写命令。
该方法可以进一步包括在设置准备阶段执行多个元数据命令,其中多个元数据命令和下一个准备阶段的元数据命令在由虚拟文件系统管理的单元中执行。
准备阶段的设置可以进一步包括:在由虚拟文件系统管理的单元中计算用于数据读/写命令的准备工作的执行时间;以及基于最长的、所计算出的执行时间来设置准备阶段。
在所设置的准备阶段中的空闲时间可以通过从所设置的准备阶段的执行时间中减去由虚拟文件系统管理的单元中的每个准备工作的执行时间而计算,并且在所设置的准备阶段中空闲时间期间下一个准备阶段的元数据命令的执行可以包括在由虚拟文件系统管理的单元中计算下一个准备阶段的元数据命令的执行时间,并且分别将空闲时间分配给下一个准备阶段的元数据命令。
数据读/写命令的准备工作、多个元数据命令、以及下一个阶段的元数据命令可以包括元数据读/更新、碎片收集、映射表读/更新、以及基于数据读/写命令类型的单元擦除中的至少一个。
数据读/写命令的执行可以包括在所设置的准备阶段之后一起执行数据读/写命令,并且可以使用交织方法以数据读/写顺序执行一起执行的数据读/写命令。
非易失性数据存储装置可以包括闪存、虚拟文件系统可以是FTL,并且由FTL管理的单元可以是闪存或者使用闪存的通道单元的装置单元。
根据本发明的另一个方面,提供包含在闪存中的FTL的命令调度方法,该方法包括:在由FTL管理的单元中计算用于数据读/写命令的准备工作的执行时间;基于所计算的执行时间中最长的执行时间来设置准备阶段;在准备阶段执行用于在由FTL管理的单元中数据管理的多个元数据命令;以及在所设置的准备阶段之后一起执行数据读/写命令。
由FTL管理的单元可以是闪存或是使用闪存的通道单元的装置单元,并且用于数据读/写命令和多个元数据命令的准备工作可以包括元数据读/更新、碎片收集、映射表读/更新、以及单元擦除中的至少一个。
一起执行数据读/写命令可以包括可以使用交织方法以数据读/写顺序来执行。
该方法可以进一步包括:通过从所设置的准备阶段的执行时间中减去在由FTL管理的单元中的每个准备工作的执行时间来计算空闲时间;以及在由FTL管理的单元中所计算的空闲时间期间执行下一个准备阶段的元数据命令,并且在由FTL管理的单元中所计算的空闲时间期间下一个准备阶段的元数据命令的执行可以包括在由FTL管理的单元中计算下一个准备阶段的元数据命令的执行时间,并分别将空闲时间执行给下一个准备阶段的元数据命令。
根据本发明的另一个方面,提供一种包含在非易失性数据存储装置中的虚拟文件系统的命令调度器,该命令调度器包括:执行时间计算器,其在由虚拟文件系统管理的单元中计算用于数据读/写命令的准备工作的执行时间;第一控制器,其通过基于最长的、所计算出的执行时间来设置准备阶段,以控制用于将要被执行的数据管理的多个元数据命令;以及第二控制器,其在所设置的准备阶段之后控制将要被一起执行的数据读/写命令。
上述第一控制器可以进一步包括:空闲时间计算器,其通过从所设置的准备阶段的执行时间中减去在由虚拟文件系统管理的单元中的每一个准备工作的执行时间来计算空闲时间;以及额外工作模块,在由虚拟文件系统管理的单元中所计算的空闲时间期间执行下一个准备阶段的元数据命令。
根据本发明的另一个方面,提供一种计算机可读记录介质,其存储执行上述调度方法的计算机可读程序。
附图说明
参照附图,通过详细描述本发明的示例性实施例,本发明的以上和其它特征将变得更加明显,其中:
图1示出了使用闪存的N通道/4路硬件体系结构;
图2是在图1中所示的单通道中的4个闪存的写操作的定时图;
图3是在图2中所示的单页写操作的定时图;
图4示出了使用闪存的位-宽扩展硬件体系结构;
图5是根据使用单闪存的写请求命令的FTL的命令顺序的定时图;
图6是根据本发明的示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的命令调度方法的流程图;
图7是根据本发明的示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的命令调度方法的定时图;
图8是根据本发明的示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的扩展命令调度方法的流程图;
图9是根据本发明另一个示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的扩展命令调度方法的定时图;以及
图10是根据本发明另一个示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的命令调度设备的框图。
具体实施方式
现在将参照附图通过详细解释本发明的示例性实施例来描述本发明。尽管在下文中以闪存作为示例进行描述,但是本发明可以应用于所有非易失性数据存储装置。
图6是根据本发明的示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的命令调度方法的流程图。
参照图6,为了设置准备阶段(phase),在操作610中通过由虚拟文件系统(或FTL)管理的单元计算用于数据读/写命令(即,数据读命令或者数据写命令,或者上述两个命令)的准备工作的执行时间。由于FTL管理在存储器芯片装置单元中的或者在使用多个装置(x-路)的通道单元中的多个独立元数据片,所以用于数据读/写命令的准备工作执行时间由管理单元计算。为了执行用户数据读/写命令,根据在管理单元中的数据读/写命令的类型,准备操作(准备工作)是必要的。例如,在执行数据读/写命令前执行各种FTL元数据命令(如映射表读/更新,即映射表读或映射表更新,或者上述两者)、单元(块)擦除以及碎片收集(合并,转换和压缩)。FTL计算在设备单元(或通道单元)中的准备工作的执行时间。
在操作620,基于最长的、所计算出的执行时间设置准备阶段。换句话说,将包括其它设备的最长的、所计算出的准备工作的执行时间设置为准备阶段的执行时间。在准备阶段的执行时间期间,在操作630执行诸如映射读/更新、块擦除、块合并之类的上述各种FTL元数据命令,并且由于命令调度管理而不传送数据读/写命令。
如果在操作640完全执行准备阶段的元数据命令,即如果准备阶段结束,则在操作650,FTL一起执行用户数据读/写命令。相对于准备阶段,将执行用户数据读/写命令的持续时间设置为数据阶段。由于一起执行数据读/写命令,所以被划分并被存储在多个存储器芯片(装置)或者通道中的用户数据可以使用交织来高速处理。以这种方式,通过反复地执行至少一对准备阶段和数据阶段来完成主机的读/写请求。
图7是根据本发明的示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的命令调度方法的定时图。
参照图7,假定FTL的元数据基于4-闪存芯片或者4-通道而被管理,并且准备阶段710和730的每一个都包括用于根据情况执行各种工作(映射表读/写、碎片收集、块擦除等)的命令(‘做准备’)711。每个准备阶段710或730可以以虚拟文件系统的逻辑块为单元或读/写请求为单元执行。
此外,四个FTL管理单元的每一个执行不同的准备工作,并且具有不同的执行时间。如果完成了需要最长的执行时间的设备1的准备工作713,即如果准备阶段710或730结束,则数据阶段720或740开始。在数据阶段720或740中,数据读/写命令以从主机(或者存储在缓存中)输入的用户数据的顺序执行,并且四个FTL管理单元可以使用精确的交织来读/写。
通过简单地将命令调度划分为准备阶段710和730以及数据阶段720和740,可以有效地显示交织方法的理论性能,并且由于用户数据输入/输出顺序与命令调度的用户数据命令顺序相匹配,所以FTL之间突发的数据传送能够很容易实现。
图8是根据本发明的示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的扩展的命令调度方法的流程图。
参照图8,如在图6中那样,在操作810,通过虚拟文件系统的管理单元计算用于数据读/写命令的准备工作的执行时间。由于用于准备工作的元数据彼此独立,所以分别计算准备工作的执行时间。因此,在操作820,基于最长的、所计算出的执行时间来设置准备阶段,并且在准备阶段的执行时间期间,在操作830执行各种元数据命令。
在这种情况中,除由管理单元(例如设备单元)计算而具有最长执行时间的装置之外的所有装置,也就是说在所有准备阶段的执行时间期间连续地执行准备工作的装置,在完成它们的元数据命令(准备工作)后,保护空闲时间。每个设备的空闲时间可以通过从准备阶段的执行时间中减去上述装置的准备工作的执行时间来计算。FTL可以使用空闲时间为契机执行另一个工作,而不是作为等待时间而浪费空闲时间。因此,在扩展的命令调度方法中,下一个准备阶段所需要的准备工作在空闲时间期间提前执行。
由于下一个准备阶段所需要的准备工作,即元数据命令,一般是映射表读工作、用于保护空闲块的碎片收集工作、作为数据写的提前处理工作的块擦除工作等,所以通过提前计算准备工作的执行时间,准备工作的一部分可以在空闲时间执行。由于通过所述处理可以节省在每个准备阶段中的空闲时间,所以减少了单个读/写请求的处理时间。此外,在连续接收多个请求的高速数据传输中,可以显著地提高整个数据输出/输出处理性能。
如上所述,在操作840确定准备阶段中是否存在空闲时间,如果是,则在操作850执行下一个准备阶段的元数据命令。如果在操作860完全执行了所有的元数据命令,即如果准备阶段结束,则在操作870执行用户数据读/写命令。在这种情况下,由于如图6所示,一起执行数据读/写命令(在数据阶段),所以被划分和被存储的用户数据可以使用精确的交织方法来高速处理。
图9是根据本发明另一个示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的扩展命令调度方法的定时图。
在图7中,由于在FTL管理单元中准备工作的不同执行时间,使得出现了空闲时间712。在图9中,通过提前预测将要在下一个准备阶段执行的工作,以及在空闲时间712期间执行将要在下一个准备阶段执行的工作的一部分(额外工作),最小化了空闲时间712,使得提高了非易失性数据存储装置的读/写性能。一般来说,在空闲时间712期间添加的额外工作是,例如块擦除工作、临近当前工作地址的地址的映射表读工作、用于收集空闲块的碎片收集工作等。在空闲时间712期间添加的额外工作可以减少总的准备阶段的平均执行时间,使得非易失性数据存储装置的读/写处理时间减少。此外,通过建立各种额外工作策略,根据非易失性数据存储装置的预期使用,设计者可以实现更高的数据输入/输出性能。
图10是根据本发明另一个示例性实施例的、包含在非易失性数据存储装置中的虚拟文件系统的命令调度设备的框图。
参照图10,执行时间计算器1110在由虚拟文件系统(FTL)管理的单元中计算用于数据读/写命令的准备工作的执行时间。
通过基于通过执行时间计算器1110计算的最长执行时间来设置准备阶段,第一控制器1120控制多个用于将要被执行的数据管理的元数据命令。第一控制器1120可以进一步包括空闲时间计算器1121,其通过从所设置的准备阶段的执行时间中减去在由虚拟文件系统管理的单元中每个准备工作的执行时间来计算每个空闲时间,还包括额外工作模块1122,其在由虚拟文件系统管理的单元中的空闲时间期间执行下一个准备阶段的元数据命令。
如果元数据命令由第一控制器1120完成,则第二控制器1130在设置准备阶段之后控制将要被一起执行的数据读/写命令。
本发明也可以作为计算机可读代码包含在计算机可读记录介质上。计算机可读记录介质是任何能够存储此后由计算机系统读取的数据的数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。计算机可读记录介质也可以分布于耦合到网络的计算机系统之上,以便以分布式方式存储和执行计算机可读代码。
如上所述,根据本发明,当多个闪存用于存储器存储装置的大容量高速数据输入/输出处理,通过使用命令调度方法简化虚拟文件系统(FTL)的结构,可以减少代码规模和资源使用。此外,由于从主机输入的数据可以在数据阶段被顺序地存储,所以可预测精确的交织,并且即使不使用大容量缓存也可以实现主机和存储器存储装置间的突发数据传输。
此外,由于在下一个准备阶段需要的工作可以作为在使用扩展命令调度方法的准备阶段中的空闲时间期间添加的额外工作而提前执行,所以减少了总的准备阶段的平均执行时间,使得提高了存储装置的数据输入/输出性能。
虽然参照本发明的示例性实施例已经详细地示出和描述了本发明,但是本领域的技术人员应该理解,在不背离如所附权利要求所定义的本发明的精神和范围的情况下,可以做出各种形式上和细节上的变动。应该仅以描述的意义理解所述示例性实施例,而非限制的目的。因此,本发明的范围不是通过本发明的示例性实施例的具体描述而限定的,而是通过所附权利要求而限定的,并且在所述范围内的所有区别将被理解为一同包括在本发明中。
Claims (24)
1.一种包含在非易失性数据存储装置中的虚拟文件系统的命令调度方法,该方法包括:
设置准备阶段的持续时间,其中执行用于数据管理的多个元数据命令;以及
当在所述准备阶段中完成所述多个元数据命令的所有元数据命令的执行时,执行数据读命令和数据写命令中的至少一个,
其中准备阶段的持续时间的设置包括:
在由虚拟文件系统管理的单元中计算用于数据读/写命令的多个准备工作的执行时间;以及
基于具有最长的、所计算出的执行时间的第一准备工作的持续时间来设置准备阶段的持续时间。
2.如权利要求1所述的方法,进一步包括在所设置的准备阶段中执行多个元数据命令,
其中多个元数据命令在由虚拟文件系统管理的单元中被执行。
3.如权利要求2所述的方法,其中用于数据读/写命令的多个准备工作和多个元数据命令是基于数据读/写命令类型的虚拟文件系统的准备工作。
4.如权利要求3所述的方法,其中虚拟文件系统的多个准备工作的每一个包括元数据读、元数据更新、碎片收集、映射表读、映射表更新和单元擦除中至少相对应的一个。
5.如权利要求1所述的方法,其中数据读/写命令的执行包括在设置准备阶段之后一起执行多个数据读/写命令。
6.如权利要求5所述的方法,其中使用交织方法以数据读/写顺序执行一起执行的多个数据读/写命令。
7.如权利要求6所述的方法,其中非易失性数据存储装置包括闪存,虚拟文件系统是闪存翻译层(FTL),并且由FTL管理的单元是闪存或使用闪存的通道单元的装置单元。
8.一种包含在非易失性数据存储装置中的虚拟文件系统的扩展命令调度方法,该方法包括:
设置第一准备阶段的持续时间,其中执行用于数据管理的第一组元数据 命令;
在第一准备阶段的空闲时间期间执行在第一准备阶段之后的第二准备阶段的第二组元数据命令;以及
如果在第一准备阶段中完全执行所述第一组元数据命令和所述第二组元数据命令,则执行数据读命令和数据写命令中的至少一个。
9.如权利要求8所述的方法,其中第一准备阶段的持续时间的设置包括:
在由虚拟文件系统管理的单元中计算用于数据读/写命令的多个准备工作的执行时间;并且
基于具有最长的、所计算出的执行时间的第一准备工作的持续时间来设置第一准备阶段的持续时间。
10.如权利要求9所述的方法,进一步包括在第一准备阶段中执行第一组元数据命令,
其中第一元数据命令和第二元数据命令在由虚拟文件系统管理的单元中被执行。
11.如权利要求10所述的方法,其中在第一准备阶段的空闲时间通过从第一准备阶段的执行时间中减去由虚拟文件系统管理的单元中的多个准备工作中的每一个的执行时间来计算。
12.如权利要求11所述的方法,其中在第一准备阶段中的空闲时间期间第二组元数据命令的执行包括在由虚拟文件系统管理的单元中计算第二组元数据命令的执行时间并且分别将空闲时间分配给第二组元数据命令。
13.如权利要求12所述的方法,其中用于数据读/写命令的多个准备工作、第一组元数据命令以及第二组元数据命令包括元数据读、元数据更新、碎片收集、映射表读、映射表更新和基于数据读/写命令类型的单元擦除中的至少两个。
14.如权利要求8所述的方法,其中数据读/写命令的执行包括在第一准备阶段之后一起执行多个数据读/写命令。
15.如权利要求14所述的方法,其中使用交织方法以数据读/写顺序执行一起执行的多个数据读/写命令。
16.如权利要求15所述的方法,其中非易失性数据存储装置包括闪存,虚拟文件系统是闪存翻译层(FTL),并且由FTL管理的单元是闪存或使用闪存的通道单元的装置单元。
17.一种包含在闪存中的闪存翻译层(FTL)的命令调度方法,该方法包括:
在由FTL管理的单元中计算用于数据读/写命令的多个准备工作的执行时间;
基于具有最长的、所计算出的执行时间的所述多个准备工作中的第一准备工作的持续时间来设置第一准备阶段的持续时间;
在第一准备阶段中由FTL管理的单元中执行用于数据管理的第一组元数据命令;以及
在第一准备阶段之后一起执行多个数据读命令和数据写命令。
18.如权利要求17所述的方法,其中由FTL管理的单元是闪存或使用闪存的通道单元的设备单元。
19.如权利要求18所述的方法,其中用于数据读/写命令的多个准备工作和第一组元数据命令包括元数据读/更新、碎片收集、映射表读/更新、和单元擦除中的至少两个。
20.如权利要求17所述的方法,进一步包括:
通过从第一准备阶段的执行时间中减去在由FTL管理的单元中的多个准备工作的每一个的执行时间来计算空闲时间;以及
在由FTL管理的单元中的所计算的空闲时间期间执行第二准备阶段的第二组元数据命令。
21.如权利要求20所述的方法,其中在由FTL管理的单元中所计算的空闲时间期间第二组元数据命令的执行包括计算在由FTL管理的单元中的第二组元数据命令的执行时间,并且分别将空闲时间分配给第二组元数据命令。
22.如权利要求17所述的方法,其中使用交织方法以数据读/写的顺序执行一起执行的多个数据读/写命令。
23.一种包含在非易失性数据存储装置中的虚拟文件系统的命令调度器,该命令调度器包括:
执行时间计算器,其在由虚拟文件系统管理的单元中计算用于数据读/写命令的多个准备工作的执行时间;
第一控制器,其通过基于具有最长的、所计算出的执行时间的所述多个准备工作中的第一准备工作的持续时间来设置第一准备阶段的持续时间,以控制用于要被执行的数据管理的第一元组数据命令;以及
第二控制器,其控制在第一准备阶段之后要被一起执行的多个数据读命令和数据写命令中。
24.如权利要求23所述的命令调度器,其中第一控制器进一步包括:
空闲时间计算器,其通过从第一准备阶段的执行时间中减去在由虚拟文件系统管理的单元中的多个准备工作中的每一个的执行时间来计算空闲时间;以及
额外工作模块,其在由虚拟文件系统管理的单元中所计算的空闲时间期间执行第二准备阶段的第二组元数据命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR129661/06 | 2006-12-18 | ||
KR1020060129661A KR101354152B1 (ko) | 2006-12-18 | 2006-12-18 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101241446A CN101241446A (zh) | 2008-08-13 |
CN101241446B true CN101241446B (zh) | 2013-10-16 |
Family
ID=39529009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100932862A Expired - Fee Related CN101241446B (zh) | 2006-12-18 | 2007-12-18 | 非易失数据存储装置中虚拟文件系统命令调度方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080147994A1 (zh) |
JP (1) | JP5475227B2 (zh) |
KR (1) | KR101354152B1 (zh) |
CN (1) | CN101241446B (zh) |
TW (1) | TWI373049B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004096A1 (en) * | 2004-05-28 | 2006-01-05 | Joseph Larner | Method of Treating Endothelial Dysfunction, Oxidative Stress and Related Diseases |
JP5029513B2 (ja) * | 2008-06-30 | 2012-09-19 | ソニー株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
US8370603B2 (en) | 2008-12-23 | 2013-02-05 | Apple Inc. | Architecture for address mapping of managed non-volatile memory |
KR101571693B1 (ko) | 2009-04-15 | 2015-11-26 | 삼성전자주식회사 | 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법 |
US8321647B2 (en) | 2009-05-06 | 2012-11-27 | Apple Inc. | Multipage preparation commands for non-volatile memory systems |
US8438453B2 (en) | 2009-05-06 | 2013-05-07 | Apple Inc. | Low latency read operation for managed non-volatile memory |
US8495332B2 (en) * | 2009-07-24 | 2013-07-23 | Apple Inc. | Controller for optimizing throughput of read operations |
US8489907B2 (en) * | 2009-09-16 | 2013-07-16 | Apple Inc. | Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller |
US8838877B2 (en) * | 2009-09-16 | 2014-09-16 | Apple Inc. | File system derived metadata for management of non-volatile memory |
US8310880B2 (en) * | 2010-03-05 | 2012-11-13 | 248 Solid State, Inc. | Virtual channel support in a nonvolatile memory controller |
KR101993704B1 (ko) | 2012-08-24 | 2019-06-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 |
US20150199282A1 (en) * | 2014-01-16 | 2015-07-16 | Storart Technology Co., Ltd. | Scramble random seed prediction method with storage device built-in data copy back procedure |
US9652415B2 (en) | 2014-07-09 | 2017-05-16 | Sandisk Technologies Llc | Atomic non-volatile memory data transfer |
US9904621B2 (en) | 2014-07-15 | 2018-02-27 | Sandisk Technologies Llc | Methods and systems for flash buffer sizing |
US9645744B2 (en) | 2014-07-22 | 2017-05-09 | Sandisk Technologies Llc | Suspending and resuming non-volatile memory operations |
US9952978B2 (en) | 2014-10-27 | 2018-04-24 | Sandisk Technologies, Llc | Method for improving mixed random performance in low queue depth workloads |
US9753649B2 (en) | 2014-10-27 | 2017-09-05 | Sandisk Technologies Llc | Tracking intermix of writes and un-map commands across power cycles |
US9817752B2 (en) | 2014-11-21 | 2017-11-14 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9824007B2 (en) | 2014-11-21 | 2017-11-21 | Sandisk Technologies Llc | Data integrity enhancement to protect against returning old versions of data |
US9710170B2 (en) * | 2015-03-05 | 2017-07-18 | Western Digital Technologies, Inc. | Processing data storage commands for enclosure services |
US9772796B2 (en) | 2015-04-09 | 2017-09-26 | Sandisk Technologies Llc | Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address |
US10372529B2 (en) | 2015-04-20 | 2019-08-06 | Sandisk Technologies Llc | Iterative soft information correction and decoding |
US9778878B2 (en) | 2015-04-22 | 2017-10-03 | Sandisk Technologies Llc | Method and system for limiting write command execution |
US9870149B2 (en) * | 2015-07-08 | 2018-01-16 | Sandisk Technologies Llc | Scheduling operations in non-volatile memory devices using preference values |
US9715939B2 (en) | 2015-08-10 | 2017-07-25 | Sandisk Technologies Llc | Low read data storage management |
KR20170044780A (ko) * | 2015-10-15 | 2017-04-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10228990B2 (en) | 2015-11-12 | 2019-03-12 | Sandisk Technologies Llc | Variable-term error metrics adjustment |
KR20170059049A (ko) * | 2015-11-19 | 2017-05-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10126970B2 (en) | 2015-12-11 | 2018-11-13 | Sandisk Technologies Llc | Paired metablocks in non-volatile storage device |
US9837146B2 (en) | 2016-01-08 | 2017-12-05 | Sandisk Technologies Llc | Memory system temperature management |
US10235198B2 (en) * | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
US10732856B2 (en) | 2016-03-03 | 2020-08-04 | Sandisk Technologies Llc | Erase health metric to rank memory portions |
KR102611292B1 (ko) * | 2016-06-22 | 2023-12-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10481830B2 (en) | 2016-07-25 | 2019-11-19 | Sandisk Technologies Llc | Selectively throttling host reads for read disturbs in non-volatile memory system |
CN109445691B (zh) * | 2018-10-16 | 2022-03-29 | 深圳忆联信息系统有限公司 | 一种提高ftl算法开发和验证效率的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514971A (zh) * | 2001-01-19 | 2004-07-21 | 非易失性存储器中的部分分块数据编程和读取操作 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07302176A (ja) * | 1994-05-09 | 1995-11-14 | Toshiba Corp | 半導体ディスク装置 |
US5603001A (en) * | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US5663908A (en) * | 1995-07-06 | 1997-09-02 | Micron Quantum Devices, Inc. | Data input/output circuit for performing high speed memory data read operation |
US5761732A (en) * | 1996-06-28 | 1998-06-02 | Intel Corporation | Interleaving for memory cards |
JP3763992B2 (ja) * | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
US6591287B1 (en) * | 1999-09-08 | 2003-07-08 | Lucent Technologies Inc. | Method to increase the efficiency of job sequencing from sequential storage |
US7302685B2 (en) * | 2000-06-02 | 2007-11-27 | Honeywell International Inc. | Methods and apparatus for sharing slack in a time-partitioned system |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
US7050310B2 (en) * | 2004-02-10 | 2006-05-23 | Niko Semiconductor Co., Ltd. | Synchronous rectification circuit with dead time regulation |
KR100568115B1 (ko) * | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
KR100684887B1 (ko) * | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
KR100626393B1 (ko) * | 2005-04-07 | 2006-09-20 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법 |
-
2006
- 2006-12-18 KR KR1020060129661A patent/KR101354152B1/ko active IP Right Grant
-
2007
- 2007-12-13 TW TW096147641A patent/TWI373049B/zh not_active IP Right Cessation
- 2007-12-17 JP JP2007325231A patent/JP5475227B2/ja not_active Expired - Fee Related
- 2007-12-18 US US11/958,815 patent/US20080147994A1/en not_active Abandoned
- 2007-12-18 CN CN2007100932862A patent/CN101241446B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514971A (zh) * | 2001-01-19 | 2004-07-21 | 非易失性存储器中的部分分块数据编程和读取操作 |
Also Published As
Publication number | Publication date |
---|---|
KR101354152B1 (ko) | 2014-01-27 |
CN101241446A (zh) | 2008-08-13 |
TWI373049B (en) | 2012-09-21 |
JP5475227B2 (ja) | 2014-04-16 |
JP2008152788A (ja) | 2008-07-03 |
KR20080056584A (ko) | 2008-06-23 |
US20080147994A1 (en) | 2008-06-19 |
TW200834593A (en) | 2008-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101241446B (zh) | 非易失数据存储装置中虚拟文件系统命令调度方法和设备 | |
US10949091B2 (en) | Memory controllers, memory systems, solid state drives and methods for processing a number of commands | |
US7451265B2 (en) | Non-volatile memory storage systems for phased garbage collection | |
EP2377028B1 (en) | Modifying commands | |
US8595414B2 (en) | Selectively combining commands for a system having non-volatile memory | |
US7444461B2 (en) | Methods for phased garbage collection | |
US7444463B2 (en) | System for phased garbage collection with state indicators | |
US7464216B2 (en) | Method for phased garbage collection with state indicators | |
CN102713866B (zh) | 减少基于闪存的存储系统中的存取争用 | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
US8732385B2 (en) | Non-volatile memory, controller controlling next access | |
US20050021904A1 (en) | Mass memory device based on a flash memory with multiple buffers | |
US20080046639A1 (en) | Memory system with nonvolatile semiconductor memory | |
KR20080055734A (ko) | 메모리 디바이스 | |
CN101231619A (zh) | 一种基于非连续页的动态内存管理方法 | |
WO2008019218A2 (en) | Phased garbage collection | |
US9569381B2 (en) | Scheduler for memory | |
US20080162787A1 (en) | System for block relinking | |
US10606484B2 (en) | NAND flash storage device with NAND buffer | |
CN102246151A (zh) | 存储器装置及其控制方法 | |
CN111399750B (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
US20080162612A1 (en) | Method for block relinking | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN101930407A (zh) | 闪速存储器控制电路及其存储系统与数据传输方法 | |
CN101661430B (zh) | 一种存储块回收判断装置及存储块管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131016 Termination date: 20191218 |
|
CF01 | Termination of patent right due to non-payment of annual fee |