CN108140005B - 在存储器系统协议中提供文件信息的系统及方法 - Google Patents

在存储器系统协议中提供文件信息的系统及方法 Download PDF

Info

Publication number
CN108140005B
CN108140005B CN201680061713.6A CN201680061713A CN108140005B CN 108140005 B CN108140005 B CN 108140005B CN 201680061713 A CN201680061713 A CN 201680061713A CN 108140005 B CN108140005 B CN 108140005B
Authority
CN
China
Prior art keywords
command
commands
file
metadata
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680061713.6A
Other languages
English (en)
Other versions
CN108140005A (zh
Inventor
D·卡拉乔
G·米里希尼
G·圣彼得罗
G·费兰特
E·孔法洛涅里
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN108140005A publication Critical patent/CN108140005A/zh
Application granted granted Critical
Publication of CN108140005B publication Critical patent/CN108140005B/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
    • G06F3/0643Management of files
    • 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/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]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明揭示一种存储器装置(14),其包含存储器组件(26)及控制器电路(23)。所述存储器组件(26)存储数据且所述控制器电路(23)从主机电子装置(12)接收存储器系统协议(16)的一或多个命令。所述一或多个命令包含至少一个写入命令,所述写入命令包括待存储于所述存储器组件(26)中的一或多个数据块。此外,所述一或多个命令包含与所述一或多个数据块相关的元数据、属性(28)或两者。所述控制器电路(23)解译且执行所述一或多个命令。因此,所述块存储于所述存储器组件(26)中。此外,所述存储器装置(14)的所述控制器电路(23)可存取所述元数据、属性(28)或两者。

Description

在存储器系统协议中提供文件信息的系统及方法
技术领域
本发明大体涉及使用存储器装置来执行数据操作(例如,读、写)。更具体来说,本发明涉及在协议的数据操作期间提供来自主机文件系统的文件元数据及/或属性,从而实现数个新的基于元数据及/或属性的功能性,这可改善系统层级性能及/或可靠性。
背景技术
此段落旨在向读者介绍可能与本发明的不同方面相关的本技术的不同方面,所述方面在下文中描述及/或主张。据信此讨论有助于向读者提供背景信息以促成对本发明的各种方面的更好理解。因此,应理解,这些陈述应在此背景下阅读,而非作为现有技术的确认。
常规协议一般在主机与存储器装置之间传输数据,其中具有相对较少的关于所传输数据的情境信息。因此,存储器装置的控制器(例如,快闪转译层)存储数据而不考虑数据的情境信息(例如,元数据及/或属性)。例如,在传统数据放置技术中,情境信息(例如文件识别符及/或元数据旗标)不可用于存储器装置的控制器。因此,此上下文数据不可用于文件放置中。因此,这些传统数据放置技术导致非基于数据的情境信息的数据的不必要分段放置。此分段将导致较低效的数据存储及/或存取。
附图说明
在阅读以下实施方式及参考图式之后将更好理解本发明的各种方面,其中:
图1说明根据实施例的计算系统的实例的框图;
图2说明根据实施例的使用存储器系统协议实施的基于元数据文件放置功能性的实例的框图;
图3说明与传统文件放置技术对比的图2的基于元数据文件放置功能性的性能改善;
图4说明根据实施例的用于使用存储器系统协议的命令中的基于文件存取请求位来提供文件元数据的详细分组层级传输;
图5说明根据实施例的图4的详细分组层级传输的流程图;
图6说明根据实施例的用于使用存储器系统协议的命令中的专用上下文识别符来提供文件元数据的详细分组层级传输;
图7说明根据实施例的图6的详细分组层级传输的流程图;
图8说明根据实施例的用于使用指定存取类型及元数据的存储器系统协议的新的命令来提供文件元数据的详细分组层级传输;
图9说明根据实施例的图8的详细分组层级传输的流程图;
图10说明根据实施例的用于使用指定上下文及元数据的存储器系统协议的一系列新的命令来提供文件元数据的详细分组层级传输;
图11说明根据实施例的图10的详细分组层级传输的流程图;
图12说明根据实施例的用于使用指定上下文及元数据的存储器系统协议的一系列CMD45命令来提供文件元数据的详细分组层级传输;
图13说明根据实施例的图12的详细分组层级传输的流程图;
图14说明根据实施例的用于使用指定上下文及元数据的一系列CMD44/CMD45命令对来提供文件元数据的详细分组层级传输;
图15说明根据实施例的图14的详细分组层级传输的流程图;
图16说明根据实施例的用于使用存储器系统协议的基于标头事务来提供文件元数据的详细分组层级传输;
图17说明根据实施例的用于使用存储器系统协议的基于寄存器事务来提供文件元数据的详细分组层级传输;及
图18说明根据实施例的用于使用存储器系统协议的经封装命令扩展来提供文件元数据的详细分组层级传输。
具体实施方式
将在下文中描述一或多个特定实施例。为努力提供这些实施例的简明描述,本说明书中并未描述实际实施方案的所有特征。应了解,在任何此实际实施方案的发展中,如在任何工程或设计项目中,必须作出大量实施方案特定决定以实现将随不同实施方案变化的研发者的特定目标,例如与系统相关及业务相关限制的相符性。此外,应了解,此研发努力可能是复杂且耗时的,但对于具有受益于本发明的一般技术人员,所述研发努力仍将是设计、制作及制造的例常任务。
概述
如将在下文中详细讨论,本发明大体涉及经由存储器系统协议提供与经传送的数据块相关的情境文件系统数据(例如,元数据及/或属性)到存储所述数据块的协议的存储器装置。即,经由存储器系统协议提供数据块的主机装置可调整特定操作以提供关于所提供数据的特定情境信息到经由存储器系统协议接收数据的存储器装置。
图1说明系统10,其根据存储器系统协议16(例如,嵌入式多媒体卡(eMMC)协议)经由存储器系统协议总线将来自主机12的数据提供到非易失性管理存储器系统14。在一个实施例中,存储器系统协议16可为基于分组协议,其实现存储器装置、计算装置及类似物之间的数据分组的有效(例如,功率有效、位有效)传输。协议16可以与各种类型的存储器及处理器(例如自动机处理器、存储器内处理器、网络装置、存储设备、分层式存储器、抽象存储器及类似物)的数个组合实施。如本文中使用,处理器可包含能够在对应电装置上执行可执行指令的任何适当处理器。协议16还可促成广泛范围的装置,包含数据中心开关/路由器、网络路由器、移动装置、存储装置、自动机处理器、流处理器、存储器内处理器、移动工作处理器、大数据(Big Data)、大图形(Big Graph)、安全存储器、虚拟网络、一般抽象存储器(例如,动态随机存取存储器(DRAM)、NAND及新兴存储器)及类似物。
主机装置12不时可希望将数据从文件系统18传送(例如,写入)数据到非易失性管理存储器系统14。例如,可通过提供来自主机装置12的驱动程序22的一或多个命令而将一或多个文件20传送到非易失性管理存储器系统14。命令可符合由存储器系统协议16描述的特定命令。换句话来说,驱动程序22可根据存储器系统协议16提供数据。
可在非易失性管理存储器系统14的控制器23处接收来自驱动程序22的根据存储器系统协议16提供的命令。如可了解,控制器23可包含可根据控制器23的固件24接收且解译由存储器系统协议16描述的命令的电路。换句话来说,控制器23可根据存储器系统协议16接收且处理数据。在从主机装置12接收数据之后,控制器23可将文件20传送到非易失性管理存储器系统14的非易失性存储器26。
如在当前实施例中说明,主机装置12可将一或多个文件属性28(例如,与文件20相关的上下文数据及/或元数据)提供到非易失性管理存储器系统14。例如,如在下文中更详细描述,驱动程序22可根据存储器系统协议16提供命令,所述命令导致提供属性28到非易失性管理存储器系统14的控制器23。因此,控制器23可将属性28用于处理文件20的功能。例如,如相对于图2及3更详细讨论,在一些实施例中,属性28可包含经传送的数据块的文件识别符,控制器23可使用所述文件识别符来以更具有凝聚力、更少片段的方式放置数据块(例如,文件20的部分)。
使用本文提供的技术,控制器23可了解关于接收的数据块的额外信息。例如,数据块可与使控制器23能够实施额外基于上下文的功能性的特定文件识别符相关联。图2说明框图40,其对比使用由主机装置12使用存储器系统协议命令提供的属性28来实施的基于上下文文件放置功能性与不使用属性28的传统文件放置功能性。
在主机装置12提供并发数据块写入(例如,对于两个不同文件20A及20B的两个不同数据块提供同时写入命令)的情形中,在写入操作期间具有关于与数据块相关联的文件标识符的信息可为有用的。为了说明此上下文数据的优势,提供传统并发文件写入42A的放置结果44A以说明与其中控制器(例如,图1的控制器23)已知文件识别符的并发文件写入42B的比较。
如说明,文件20A及20B可由主机装置12分别分为数据块46A及46B。数据块46A及46B可允许文件20的较小部分从主机装置12提供到非易失性管理存储器系统14。当文件20A及20B的数据块46A及46B经由传统技术(其中控制器不了解上下文数据(例如,文件属性/元数据,例如文件识别符及/或元数据旗标))并发提供到非易失性管理存储器系统14时,可交错块46A及46B的放置,从而造成总文件20A及20B的分段。例如,如在结果44A中说明,块46A与块46B交错,这是因为随着时间以交错方式接收块46A及46B中的一些块。因此,这些块46A及46B以交错方式放置于非易失性管理存储器系统14处。
相比之下,如通过结果44B说明,当控制器了解上下文数据(例如与块46A及46B相关联的文件识别)时,控制器可基于与块46A及46B中的每一者相关联的文件识别将块46A及46B放置于存储器26的不同部分(例如,部分48A及48B)中。例如,如说明,尽管随着时间交错接收块46A及46B,但块46A中的每一者放置于部分48A中且块46B中的每一者放置于部分48B中。
图3是说明图2的基于上下文文件放置功能性的性能改善的曲线图60。分段可对非易失性管理存储器系统14的读取性能具有深远影响。如在图3中的曲线图60说明,在传统方法(其中控制器不了解文件标识符)下写入的文件导致增大的分段。分段与读取操作的较低处理量相关。
然而,如由曲线图60说明,当使用本文描述的技术(其中根据控制器了解的文件识别符放置块)时,大幅减小分段。此数据放置可称为文件了解式存储器系统(FAMS)。FAMS的减小的分段可导致读取操作的较小的数据分段及较高的数据处理量。
根据存储器系统协议的实施方案
下列实施例说明用于提供与在写入操作期间传送到存储器装置的数据块相关联的上下文数据(例如,文件属性/元数据)的技术。可经由对应于存储器系统协议的消息提供上下文数据。例如,下列描述涉及可在主机装置(例如,图1的主机装置12)与非易失性存储器装置(例如,图1的非易失性管理存储器系统14)之间提供的命令/数据,其中主机装置12及非易失性管理存储器系统14根据嵌入式多媒体卡(eMMC)协议通信。通信包含对应于从主机装置12的文件系统写入到管理存储器系统14的数据的一或多个属性及/或元数据。eMMC协议包含可使命令排队的通信及/或在主机12与管理存储器系统14之间提供单命令的通信。下文的讨论包含用于将上下文数据传输到管理存储器系统14的命令排队及单命令实施例。
如可了解,在下列讨论中,各种数量的数据可从主机装置12传输到管理存储器系统14。数据的阈值数量可根据特定文件系统18、从文件系统18提供到控制器23的特定属性28、固件24或系统10的其它特性定义。例如,在当前实施例中,8个字节或16个字节数据可用于描述文件识别符。此外,虽然下列实施例描述作为元数据及/或属性28传递的文件识别符及元数据旗标,但在替代实施例中,可以类似于文件识别符及元数据旗标方式提供的方式提供额外及/或替代元数据及/或属性28。此外,如下文讨论,在下列实施例中,可使用存储器系统协议16的现有命令来提供元数据及/或属性28,从而最小化额外命令、操作及/或寄存器改变,这可提供更稳健及可重复使用的系统10。
为了使用协议16的写入命令操作来实施到存储器装置的控制器23的元数据及/或属性的提供,提供将元数据及/或属性28提供到管理存储器系统14的特定写入操作是基于元数据及/或属性操作的指示可为有用的。此指示可帮助控制器23区分意在传达数据块的命令与意在与数据块一起传达元数据及/或属性28的命令。如上文提及,在下列实施例中,将文件识别符及元数据旗标提供到控制器23。这些元数据及/或属性28如在图2及3中讨论那样提供以实施基于文件的写入。因此,意在传达情境信息(例如,元数据及/或属性28)的命令的指示可在下列实施例中称为“基于文件存取”指示。此外,元数据及/或属性28可称为“文件识别符”及/或“元数据旗标”,这是由于这些是下列实施例中提供的元数据及/或属性28。
i.命令排队实施例
现在参考用于使用命令排队技术来提供属性及/或元数据的特定实施例,图4到15说明特定命令排队实施例及过程,其利用存储器系统协议16的命令来提供对应于从主机装置12提供到管理存储器系统14的数据块的特定上下文数据(例如,元数据及/或属性28)。在下列实施例中,元数据及/或属性28包含文件识别符及元数据旗标。然而,元数据及/或属性28不限于此数据。
a.在执行阶段传输属性的实施例
图4到7说明未使用位或特殊上下文识别符用来指示基于文件的存取的实施例。在这些实施例中,在执行阶段的开始传送属性。如本文描述,在一些实例中,在排队阶段期间提供属性的替代实施例可为更为所需的,这是由于所述属性在任务执行之前是可用的。
1.指示基于文件存取的未使用位
首先从图4开始,图4说明根据实施例的用于使用存储器系统协议的命令中的基于文件存取请求位来提供文件元数据的详细分组层级传输80。如在图4中说明,命令排队事务包含三个阶段:排队阶段82、轮询阶段84及执行阶段86。在排队阶段82中,主机装置12使用于在被管理存储器系统14处执行的所产生任务排队。在轮询阶段84中,主机装置12可提供轮询询问来确定经排队任务是否准备好在管理存储器系统14处执行。当排队任务准备好执行时,执行阶段86开始,从而导致准备好的排队任务的执行。
排队阶段82包含协议16中指定的CMD44命令88及CMD45命令90。这些命令由主机12提供以使数据块写入任务93及/或读取任务95排队。
为了使任务93及/或95排队,CMD44命令88从主机12提供到管理存储器系统14。在接收CMD44命令88后,管理存储器系统14将确认响应89提供到主机12。作为响应,主机12提供CMD45命令90。CMD45命令90可用于指示与命令排队模式中的任务95及/或93相关联的读取及/或写入操作的开始地址87。在装置14处接收后,装置14提供后续响应91。
如说明,在排队阶段82期间,CMD44命令88可包含表示由协议16指定的特定项的32位元数据。如说明,位0到15可指定块数目92,位16到20可指定任务ID 94,位21及/或22可为未使用96(例如,保留备将来之用)及/或可传送特定存取类型98,位23可指示优先级100,位24可提供强制编程指示102,位25到28可指示上下文ID 104,位29可提供标记指示106,位30可指示方向108,及/或位31可指示可靠写入110。
在当前实施例中,在与写入任务93相关联的CMD44命令88中使用未使用位(例如,位21或位22)传达基于文件的存取指示符98。因此,在排队阶段82期间传送存取类型。未使用位(例如,位21或位22)不时可重新定义为由协议16使用的位。因此,在使用当前未使用位(由协议16定义)的实施例中,可偶尔重新定义用于传达基于文件的存取指示符98的位。例如,如果在协议16的后续定义中,针对不同功能性的使用定义位22,那么可使用位21(或其它后续未使用位)传达指示符98。
最后,主机12可调度轮询询问(例如,轮询阶段84)。例如,一系列CMD13命令112可由主机12提供到装置14,以确定装置是否准备开始执行阶段86。装置14用队列状态信息114响应。主机12接着可决定经排队任务是否准备好执行。
一旦接收装置14准备好任务执行的指示,那么主机12可起始执行阶段86。主机12可提供与排队任务93及/或95相关联的一或多个CMD47命令116及/或CMD46命令118。
作为响应,装置14可提供响应到主机12。随后,当主机12提供数据写入(例如,使用CMD47命令116)时,数据块46及标头120可由主机12提供到装置14。写入操作的标头120可包含与由CMD47命令提供的数据块46相关联的元数据及/或属性28。例如,标头可包含文件识别符及/或元数据旗标。因为基于文件的存取指示符98指示基于文件的存取指示,所以装置14可解释标头信息包含元数据及/或属性28。
因为在实际数据传送期间(例如,在数据传送的标头中)传输元数据及/或属性28,所以如果在数据传送之前提供元数据及/或属性28,那么装置14可能无法利用可能可用的所有功能性。例如,在一些场景中,当在数据传送起始期间之前不了解元数据时,基于元数据放置数据块可为更困难的。因此,下文的特定实施例讨论在数据传送之前提供元数据的可能性。
图5说明根据实施例的用于使用CMD44命令88的未使用位来提供元数据及/或属性28的过程140。如上文提及,可通过排队阶段82使一或多个任务(例如,读取及/或写入)排队。排队命令可包含命令的未使用位中的指示符98(框142)。例如,在图4中,写入任务93包含位22中的指示符98,位22是协议定义中的当前未使用位。
接着,起始轮询阶段84以确定任务93及/或95中的哪个及多少准备好实施。例如,装置14可提供使主机12能够确定准备好实施的任务93及/或95的队列状态信息114。
当装置14准备好执行特定任务93及/或95时,执行阶段86开始。从主机12到装置14执行任务93及/或95。如在图5中指示,在数据传送期间,在标头中提供元数据及/或属性28(框144)。因此,在执行阶段提供元数据及/或属性28。在一些实施例中,此可限制装置14的特定功能性,然而,在其它实施例中,在执行阶段提供的元数据及/或属性28可能也是有用的。
2.指示基于文件存取的特殊上下文识别符
替代实施例可使用协议命令的其它部分来指示元数据及/或属性28提供操作。图6说明根据实施例的用于使用存储器系统协议16的命令中的专用上下文识别符来提供文件元数据的详细分组层级传输160。
类似于图4的实施例,图6说明命令排队事务,其包含三个阶段:排队阶段82、轮询阶段84及执行阶段86。排队阶段82包含由主机12提供来使数据块写入任务93及/或读取任务95排队的CMD44协议16命令88及CMD45协定16命令90。
为了使任务93及/或95排队,CMD44命令88从主机12提供到管理存储器系统14。在接收CMD44命令88后,管理存储器系统14将确认响应89提供到主机12。作为响应,主机12提供CMD45命令90。CMD45命令90可用于指示与命令排队模式中的任务93及/或95相关联的经排队读取及/或写入操作的开始地址87。在装置14处接收后,装置14提供后续响应91。
类似于图4的实施例,在排队阶段82期间,CMD44命令88可包含表示由协议16指定的特定项的32位元数据。如说明,位0到15可指定块数目92,位16到20可指定任务ID 94,位21及/或22可为未使用96(例如,保留备将来之用),位23可指示优先级100,位24可提供强制编程指示102,位25到28可指示上下文ID 164,位29可提供标记指示106,位30可指示方向,及/或位31可指示可靠写入。
在当前实施例中,通过指定与写入任务93相关联的CMD44命令88的位25到28中的专用上下文识别符164而传达基于文件的存取指示符98。因此,在排队阶段82期间传送存取类型。
最后,主机12可调度轮询询问(例如,轮询阶段84)。例如,一系列CMD13命令112可由主机12提供到装置14,以确定装置是否准备开始执行阶段86。装置14用队列状态信息114响应。主机12接着可决定排队任务是否准备好执行。
一旦接收装置14准备好任务执行的指示,那么主机12可起始执行阶段86。主机12可提供一或多个CMD47命令116及/或CMD46命令118。作为响应,装置14可提供响应到主机12。随后,当主机12提供数据写入(例如,使用CMD47命令116)时,数据块46及标头120可由主机12提供到装置14。写入操作的标头120可包含与由CMD47命令提供的数据块相关联的元数据及/或属性28(或元数据及/或属性28的部分28A及/或28B)。例如,标头可包含文件识别符及/或元数据旗标。因为专用上下文指示符指示基于文件的存取指示,所以装置14可解释标头信息包含元数据及/或属性28。
类似于图4的实施例,因为在实际数据传送期间(例如,在数据传送的标头中)传输元数据及/或属性28,所以如果在数据传送之前提供元数据及/或属性28,那么装置14可能无法利用可能可用的所有功能性。例如,当在执行阶段的数据传送起始之前不了解元数据及/或属性28时,基于元数据及/或属性28放置数据块可为更困难的。因此,下文的特定实施例讨论在数据传送之前提供元数据及/或属性28的可能性。
图7说明根据实施例的用于使用CMD44命令88的专用上下文识别符来提供元数据的过程180。如上文提及,可通过排队阶段82使一或多个任务(例如,读取及/或写入)排队。排队命令可通过提供命令中的专用上下文识别符164而包含指示符98(框182)。例如,在图6中,写入任务93包含作为CMD44 88的位25到28中的专用上下文识别符164的指示符98。
接着,起始轮询阶段84以确定任务93及/或95中的哪个及多少准备好实施。例如,装置14可提供使主机12能够确定准备好实施的任务93及/或95的队列状态信息114。
当装置14准备好执行特定任务93及/或95时,执行阶段86开始。从主机12到装置14执行任务93及/或95。如在图7中指示,在数据传送期间,元数据及/或属性28经提供于标头中(框184)。因此,在执行阶段提供元数据及/或属性28。在一些实施例中,此可限制装置14的特定功能性,然而,在其它实施例中,在执行阶段提供的元数据及/或属性28可能也是有用的。
如上文提及,在执行阶段86之前提供元数据及/或属性28可为有用的。例如,较早提供元数据及/或属性28可使元数据及/或属性28能够在执行阶段86期间被使用。下列实施例说明用于在执行阶段86之前(例如,在排队阶段82期间)提供元数据及/或属性28的技术。此可(例如)通过提供指示写入操作93与元数据及/或属性28传输相关的上下文指示而完成。接着可经由排队阶段82中的一或多个命令提供元数据及/或属性28。
b.在排队阶段传输属性的实施例
如上文提及,在特定实施例中,在排队阶段期间,可从主机装置12将属性传送到管理存储器系统14。在排队阶段期间传送属性可比在执行阶段期间传送属性更为合意,这是由于属性在执行阶段中执行任务之前是可用的。
1.经由CMD44传输存取类型及属性
例如,返回到图6,在一些实施例中,可通过未使用位(例如,保留备将来之用的位,例如位21)提供文件存取类型指示符98。元数据旗标可提供于标记指示106中(例如,在位29处)。因此,可在执行阶段86之前在排队阶段82中经由CMD44命令88提供元数据旗标。
此外,在一些实施例中,标记指示106(例如,在位29处)及未使用位96(例如,在位21及或22处)可结合上下文识别符164(例如,在位25到28处)使用以提供立即分区存取以及本文描述的基于文件存取。例如,未使用位96可用作立即分区存取旗标162。立即分区存取旗标可指示上下文识别符164表示传统上下文识别符(例如,通过设置为“0”)或上下文识别符164表示立即存取的目标分区(例如,通过设置为“1”)。在这些实施例中,未使用位96(例如,位22)还可用作基于文件的存取指示符166(例如,以指示正传输元数据及/或属性28)。当基于文件的存取指示符设置为“1”时,标记指示符106可描述经由上下文识别符164提供哪些元数据及/或属性28。例如,当指示符166设置为“1”且标记指示符29设置为“0”时,所传输的信息可为与数据块相关联的文件识别符。当标记指示符29设置为“1”时,所传输的信息可为与数据相关联的元数据旗标。
当指示符166设置为“1”且立即分区存取指示符162设置为“0”时,实施无立即分区的基于文件的存取。此外,当指示符166设置为“1”且立即分区存取指示符162设置为“1”时,实施基于文件及立即分区存取。
2.经由新的命令传输存取类型及属性
现在转向引入新的命令以用于协议16通信中的实施例,图8说明根据实施例的用于使用指定存取类型及元数据的存储器系统协议的新的命令来提供文件元数据的详细分组层级传输200。类似于其它命令排队实施例,传输200包含排队阶段82、轮询阶段84及执行阶段86。
不同于图4及6的实施例,在排队阶段82中,当前实施例提供基于文件的存取指示符及元数据及/或属性28(例如,文件识别符及/或元数据旗标)两者。此通过引入新的命令码(例如,CMD58 202)完成,所述命令码可提供基于文件的存取指示符98以及提供标头(例如,4字节标头),所述标头含有元数据及/或属性28(或元数据及/或属性的部分28A、28B等)。
CMD58命令202可替换CMD44命令(例如,图4及6的命令88)。类似于在图4及6中通过接收CMD44命令88触发的响应,在接收及/或处理CMD58命令202之后,装置14可提供响应89到主机12。此外,可在排队阶段82中提供任何数目的CMD58命令202。CMD45命令90可用于指示与任务93及/或95相关联的读取及/或写入操作的开始地址87。
最后,主机12可调度轮询询问(例如,轮询阶段84)。例如,一系列CMD13命令112可由主机12提供到装置14,以确定装置是否准备开始执行阶段86。装置14用队列状态信息114响应。主机12接着可决定排队任务是否准备好执行。
一旦接收装置14准备好任务执行的指示,那么主机12可起始执行阶段86。主机12可提供一或多个CMD47命令116及/或CMD46命令118。作为响应,装置14可提供响应到主机12。随后,当主机12提供数据写入(例如,使用CMD47命令116)时,数据块46可由主机12提供到装置14。
不同于图4及6的实施例,元数据及/或属性26在排队阶段82期间传输,且因此可用于在执行阶段86期间使用。因此,元数据及/或属性28可用于促成在图2的讨论中描述的基于文件元数据及/或属性28的放置技术。
图9说明根据实施例的用于使用新的命令(例如,图8的CMD58 202)提供元数据的过程220。如上文提及,可通过排队阶段82使一或多个任务(例如,读取及/或写入)排队。排队命令202可接受可在排队阶段82期间提供到装置14的指示符98及/或元数据及/或属性28。例如,在图8中,使用CMD58 202使写入任务93排队,CMD58 202提供指示符98、文件识别符及/或元数据旗标(框222)。
接着,起始轮询阶段84以确定任务93及/或95中的哪个及多少准备好实施。例如,装置14可提供使主机12能够确定准备好实施的任务93及/或95的队列状态信息114。
当装置14准备好执行特定任务93及/或95时,执行阶段86开始。从主机12到装置14执行任务93及/或95。如在图8中指示,在排队阶段期间,在标头中提供元数据及/或属性28。因此,元数据及/或属性28可在执行阶段期间使用。
3.经由上下文识别符传输存取类型
如上文,具有定制排队命令的一些实施例可使用专用上下文识别符来指示基于文件存取。图10到15说明根据实施例的用于使用指定上下文及元数据的存储器系统协议的一系列命令来提供文件元数据的详细分组层级传输。
A.经由新的命令传输属性
首先开始图10的实施例,图10说明用于使用与新的命令242(例如,CMD57命令)组合的专用上下文识别符164来提供文件元数据及/或属性28的详细分组层级传输240。
再次,分组层级传输240包含排队阶段82、轮询阶段84及执行阶段86。在当前实施例中,指示符98可为使用CMD44命令88传送到装置14的专用上下文识别符164。另外,可使用新的命令242(例如,CMD57命令)在块(例如,4字节块,如说明)中提供元数据及/或属性28。新的命令242在命令排队阶段82期间发布以将标头(例如,具有元数据及/或属性28)传送到装置14。因此,类似于图8的实施例,当前实施例在执行阶段86之前传送元数据及/或属性28,从而实现在执行阶段86期间使用元数据及/或属性28。
最后,主机12可调度轮询询问(例如,轮询阶段84)。例如,一系列CMD13命令112可由主机12提供到装置14,以确定装置是否准备开始执行阶段86。装置14用队列状态信息114响应。主机12接着可决定排队任务是否准备好执行。
一旦接收装置14准备好任务执行的指示,那么主机12可起始执行阶段86。主机12可提供一或多个CMD47命令116及/或CMD46命令118。作为响应,装置14可提供响应117到主机12。随后,当主机12提供数据写入(例如,使用CMD47命令116)时,数据块46可由主机12提供到装置14。
不同于图4及6的实施例,元数据及/或属性26在排队阶段82期间传输,且因此可用于在执行阶段86期间使用。因此,元数据及/或属性28可用于促成在图2的讨论中描述的基于文件元数据及/或属性28的放置技术。
图11说明根据实施例的用于使用新的命令(例如,图8的CMD57 242)来提供专用上下文识别符164指示符98及元数据及/或属性28的过程260。如上文提及,可通过排队阶段82使一或多个任务(例如,读取及/或写入)排队。排队命令202可经由专用上下文识别符164提供指示符98(框262)。此外,新的排队命令242可在排队阶段82期间将元数据及/或属性28提供到装置14(框264)。例如,在图10中,使用CMD44命令88中的专用上下文识别符164来使写入任务93排队且使用新的命令242(例如,CMD57)来提供元数据及/或属性28。
接着,起始轮询阶段84以确定任务93及/或95中的哪个及多少准备好实施。例如,装置14可提供使主机12能够确定准备好实施的任务93及/或95的队列状态信息114。
当装置14准备好执行特定任务93及/或95时,执行阶段86开始。从主机12到装置14执行任务93及/或95。如在图10中指示,在排队阶段期间,在标头中提供元数据及/或属性28。因此,元数据及/或属性28可在执行阶段期间使用。
B.经由若干CMD45命令传输属性
图12说明根据实施例的用于使用一或多个CMD45命令90及指示符98经由专用上下文识别符164提供文件元数据及/或属性28的详细分组层级传输280。在图12的实施例中,排队阶段82包含CMD44命令88及CMD45命令90。CMD44命令88经由专用上下文识别符164提供指示符98。此外,CMD45命令90提供元数据及/或属性28的至少一部分。例如,在所说明的实施例中,经由两个CMD45命令90提供8个字节元数据及/或属性28的4个字节块。如上文,CMD44命令88引起响应89且CMD45命令90引起来自装置14的响应91。在元数据及/或属性28的传送之后,后续CMD45命令90可用于提供与任务93及/或95相关联的排队操作的开始地址87。
由此,可类似于图10的实施例实施轮询阶段及执行阶段。最后,主机12可调度轮询询问(例如,轮询阶段84)。例如,可由主机12提供一系列CMD13命令112到装置14,以确定装置是否准备开始执行阶段86。装置14用队列状态信息114响应。主机12接着可决定排队任务是否准备好执行。
一旦接收装置14准备好任务执行的指示,那么主机12可起始执行阶段86。主机12可提供一或多个CMD47命令116及/或CMD46命令118。作为响应,装置14可提供响应117到主机12。随后,当主机12提供数据写入(例如,使用CMD47命令116)时,数据块46可由主机12提供到装置14。
元数据及/或属性26在排队阶段82期间传输,且因此可用于在执行阶段86期间使用。因此,元数据及/或属性28可用于促成在图2的讨论中描述的基于文件元数据及/或属性28的放置技术。
图13说明根据实施例的用于使用CMD45命令90来提供专用上下文识别符164指示符98及元数据及/或属性28的过程300。如上文提及,可通过排队阶段82使一或多个任务(例如,读取及/或写入)排队。排队命令202可经由专用上下文识别符164提供指示符98(框302)。此外,CMD45命令90可在排队阶段82期间将元数据及/或属性28提供到装置14(框304)。例如,在图12中,使用CMD44命令88中的专用上下文识别符164来使写入任务93排队且使用CMD45命令90来提供元数据及/或属性28。通过再使用CMD45命令90,不需要引入新的命令来提供元数据及/或属性28。
接着,起始轮询阶段84以确定任务93及/或95中的哪个及多少准备好实施。例如,装置14可提供使主机12能够确定准备好实施的任务93及/或95的队列状态信息114。
当装置14准备好执行特定任务93及/或95时,执行阶段86开始。从主机12到装置14执行任务93及/或95。如在图12中指示,在排队阶段期间,在标头中提供元数据及/或属性28。因此,元数据及/或属性28可在执行阶段期间使用。
C.经由若干CMD44/45对传输属性
在一些实施例中,命令对可用于提供指示符98及元数据及/或属性28。图14说明此实施例320。在图14中,排队阶段82包含CMD44命令88及CMD45命令90的对322。在一些实施例中,CMD44命令88经由专用上下文识别符164提供指示符98。替代地,可经由CMD44命令88中的另一位(例如,位22)提供文件存取类型指示符98。此外,CMD45命令90提供元数据及/或属性28的至少一部分。例如,在所说明的实施例中,可在将整个文件识别及/或元数据旗标提供到装置14之前提供对322。如上文,CMD44命令88引起响应89且CMD45命令90引起来自装置14的响应91。在元数据及/或属性28的传送之后,后续CMD45命令90可用于提供与任务93及/或95相关联的排队操作的开始地址87。
由此,可类似于图10及12的实施例实施轮询阶段及执行阶段。最后,主机12可调度轮询询问(例如,轮询阶段84)。例如,一系列CMD13命令112可由主机12提供到装置14,以确定装置是否准备开始执行阶段86。装置14用队列状态信息114响应。主机12接着可决定排队任务是否准备好执行。
一旦接收装置14准备好任务执行的指示,那么主机12可起始执行阶段86。主机12可每对322提供一或多个CMD47命令116及/或CMD46命令118。作为响应,装置14可提供响应117到主机12。随后,当主机12提供数据写入(例如,使用CMD47命令116)时,数据块46可由主机12提供到装置14。
4.经由CMD44/CMD45/CMD46序列传输存取类型及属性
基于CMD44/45配对实施例320,在一些实施例中,CMD48可用于扩展命令排队功能性及/或增强任务管理及装置管理功能。可经由CMD44命令88的未使用位(例如,保留备将来之用的位,例如图6的位22处的未使用位96)添加命令排队扩展位(CQEXT位)。当CQEST位设置为“1”时,对322后可接着CMD48命令,所述CMD48命令可描述(例如)文件识别符散列、元数据旗标等。CMD48命令可与一或多个任务描述符排齐且可产生新的任务管理描述符来描述文件识别符散列及/或元数据旗标任务。
元数据及/或属性26在排队阶段82期间传输,且因此可用于在执行阶段86期间使用。因此,元数据及/或属性28可用于促成在图2的讨论中描述的基于文件元数据及/或属性28的放置技术。
图15说明根据实施例的用于经由专用上下文识别符164提供指示符98且使用CMD45命令90来提供元数据及/或属性28的过程340。如上文提及,可通过排队阶段82使一或多个任务(例如,读取及/或写入)排队。排队命令202可经由CMD44命令88的专用上下文识别符164提供指示符98且经由一或多个对应CMD45命令90将元数据及/或属性28提供到装置14。CMD44命令88及CMD45命令90可经配对且经提供为配对单元(框342)。可在排队阶段82期间的所有元数据及/或属性之前提供额外对(例如,如通过决定框344确定)。
接着,起始轮询阶段84以确定任务93及/或95中的哪个及多少准备好实施。例如,装置14可提供使主机12能够确定准备好实施的任务93及/或95的队列状态信息114。
当装置14准备好执行特定任务93及/或95时,执行阶段86开始。从主机12到装置14执行任务93及/或95。如在图14中指示,在排队阶段期间,在标头中提供元数据及/或属性28。因此,元数据及/或属性28可在执行阶段期间使用。
ii.非命令排队实施例
现已讨论涉及命令排队的实施例,现在讨论非命令排队实施例,其中由主机12发送单个命令到装置14。对于非命令排队实施例,可存在用于传输元数据及/或属性28的多个选项。例如,一个选项是经由写入操作的标头提供元数据及/或属性28。另外,寄存器(例如扩展卡特定数据(CSD)寄存器(EXT_CSD寄存器))可用于传送元数据及/或属性28。此外,另一选项可为扩展封装命令机制来实现元数据及/或属性28的传输。
a.基于标头的事务
首先转向基于标头元数据及/或属性28传输的讨论,图16说明根据实施例的用于使用存储器系统协议的基于标头事务来提供文件元数据及/或属性28的详细分组层级传输360。如在图16中说明,可从主机12提供一或多个CMD23命令362到装置14以描述将在写入操作中被写入的扇区的数目。
协议16可定义CMD23命令362的特定位结构364。例如,位0到15可包含写入操作的数个数据块的识别366。位16到22可均为“0”,如由368指示。位23在协议16中可为未使用的。因此,位23可经指派以提供写入操作是否为特殊写入(例如,元数据及/或属性28的写入)的指示370。可在位24中提供强制编程数据372。可在位25到28中提供上下文识别符374。可在位29中提供标记376。可在位30中提供封装命令数据378且可在位31中提供可靠写入指示符380。
由于主机12期望提供新的写入操作到装置14,所以一或多个CMD23命令362经提供到装置14。当将提供元数据及/或属性28时位23处的指示370可设置为“1”。
响应于CMD23命令362,装置14可提供响应382,其指示CMD23命令362经接收及/或装置14准备好接收实际写入操作。在接收响应382后,主机12可提供写入命令开始地址(例如,CMD25命令384),其可触发实际数据写入操作。此外,在从装置14接收CMD25响应390之后,主机可收集元数据及/或其它属性28(例如,文件识别符及/或元数据旗标)且提供元数据及/或其它属性28。例如,如说明,写入标头392的提供可先于数据块46的提供。
如说明,写入标头392可并入元数据及/或属性28(例如文件识别符386及/或元数据旗标388)。因此,在提供标头392之后,装置14可存取元数据及/或属性28。
b.基于寄存器的配置
在一些实施例,元数据及/或属性28可在写入操作之前提供到装置14的寄存器,而非在写入操作期间传输元数据及/或属性28。例如,图17说明根据实施例的用于使用存储器系统协议的基于寄存器事务(例如,CMD6命令412)来提供文件元数据的详细分组层级传输410。CMD6命令412可用于提供特定元数据及/或属性28(例如,文件识别413)到寄存器(例如,扩展卡特定数据(CSD)寄存器414)。在当前实施例中,扩展CSD寄存器414的8个未使用字节(例如,字节7到14)用于编码文件识别符413。
在接收且处理CMD6命令412之后,装置14可提供响应416到主机12。响应416可指示是否成功处理CMD6命令412。
随后,CMD23命令418可提供后续写入命令的上下文。例如,CMD23命令418可提供后续命令是文件识别更新422的指示420或后续命令是元数据旗标更新426的指示424。在当前实施例中,位23及22分别提供指示420及424。在替代实施例中,任何未使用位可用于提供指示420及424。
可响应于接收且处理CMD23命令418提供响应428。在接收响应428之后,主机12可确定可进行写入操作。因此,CMD25命令384可经提供到装置14。CMD25可包含文件识别符更新及/或元数据旗标更新的开始地址。
在接收及/或处理CMD25命令384之后,装置14可提供响应428到主机12。主机接着可发送数据块46到装置14。
c.封装命令扩展
在一些实施例中,元数据及/或属性28可具备封装命令功能性。封装命令允许单个事务中的多个写入操作。图18说明根据实施例的用于使用存储器系统协议16的封装命令扩展来提供文件元数据及/或属性28的详细分组层级传输450。
如上文,协议16可定义CMD23命令362的特定位结构364。例如,位0到15可包含写入操作的数个数据块的识别366。位16到22可均为“0”,如通过368指示。位23在协议16中可为未使用的。可在位24中提供强制编程数据372。可在位25到28中提供上下文识别符374。可在位29中提供标记376。可在位30中提供封装命令数据378且可在位31中提供可靠写入指示符380。
由于主机12期望提供封装操作到装置14,所以一或多个CMD23命令362经提供到装置14。CMD23命令362包含封装操作452。
响应于CMD23命令362,装置14可提供响应382,其指示CMD23命令362经接收及/或装置14准备好接收实际写入操作。在接收响应382后,主机12可提供写入命令(例如,CMD25命令384),其可触发实际数据写入操作。此外,在从装置14接收CMD25响应390之后,主机可收集元数据及/或其它属性28(例如,文件识别符422及/或元数据旗标426)且提供元数据及/或其它属性28。例如,如说明,封装命令标头454的提供可先于数据块46的提供。封装命令标头454可包含版本字段456,所述版本字段456可充当将执行特殊写入(例如,基于文件存取)的指示98。例如,协议可定义版本为0。因此,版本可从零修改以提供指示98。
当存在指示98时,可从封装命令标头454获得元数据及/或属性28。例如,在当前实施例中,字节8到23含有文件识别符更新422且字节24包含元数据旗标更新426。
如说明,写入标头392可并入元数据及/或属性28(例如文件识别符386及/或元数据旗标388)。因此,在提供标头392之后,装置14可存取元数据及/或属性28。
使用本文提供的技术,元数据及/或属性28可从操作系统(例如,主机12)的更高层级提供到非易失性管理存储器系统14。此元数据及/或属性28可实现管理存储器系统14处的新的功能性,从而导致管理存储器系统14中的增大的效率。
虽然本文描述的实施例可具有各种修改及替代形式,但是特定实施例已在图式中通过实例展示且已在本文中详细描述。然而,应理解,本发明不旨在限于所揭示的特定形式。而是,本发明将涵盖落入所附权利要求书定义的本发明中描述的技术及系统的精神及范围内的所有修改、等效物及替代例。

Claims (27)

1.一种存储器装置,其包括:
存储器组件,其经配置以存储数据;
控制器电路,其经配置以:
从主机电子装置接收存储器系统协议的一或多个命令,其中所述一或多个命令包括:
至少一个写入命令,所述写入命令包括待存储于所述存储器组件中的一或多个数据块;及
与文件相关的文件元数据、文件属性或两者,其中所述一或多个数据块包括所述文件的一部分;及
执行所述一或多个命令,使得所述一或多个数据块存储于所述存储器组件中且所述存储器装置的所述控制器电路可识别出所述文件元数据、所述文件属性或两者与所述一或多个数据块相关联且所述存储器装置的所述控制器电路可存取所述文件元数据、所述文件属性或两者;
其中所述一或多个命令包括在无命令排队的情况下实施的命令;以及
其中所述一或多个命令包括:
第一命令,其经配置以将所述文件元数据、所述文件属性或两者编码到寄存器;
第二命令,其经配置以指示将在第三命令中提供所述文件元数据、所述文件属性或两者到所述控制器电路;及
所述第三命令,其经配置以在所述存储器装置处更新所述寄存器处的经编码的所述文件元数据、所述文件属性或两者。
2.根据权利要求1所述的存储器装置,其中所述一或多个命令包括经由命令排队实施的命令,其中在通过所述控制器电路执行之前使多个命令排队。
3.根据权利要求2所述的存储器装置,其中所述一或多个命令包括:
队列命令,其包括将提供所述文件元数据、所述文件属性或两者到所述控制器电路的指示符,其中在与所述队列命令相关联的执行命令的标头中提供所述文件元数据、所述文件属性或两者。
4.根据权利要求3所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述队列命令包括CMD44命令且所述执行命令包括CMD47命令。
5.根据权利要求2所述的存储器装置,其中所述一或多个命令包括:
队列命令,其包括上下文指示符,所述上下文指示符包括专用上下文,所述专用上下文指示将提供所述文件元数据、所述文件属性或两者到所述控制器电路,其中在与所述队列命令相关联的执行命令的标头中提供所述文件元数据、所述文件属性或两者。
6.根据权利要求5所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述队列命令包括CMD44命令且所述执行命令包括CMD47命令。
7.根据权利要求2所述的存储器装置,其中所述一或多个命令包括:
至少一个第一队列命令,其经配置以提供将提供所述文件元数据、所述文件属性或两者到所述控制器电路的上下文指示符;及
至少一个第二队列命令,其经配置以提供指定所述文件元数据、所述文件属性或两者的标头。
8.根据权利要求7所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一队列命令包括CMD44命令且所述第二队列命令包括到所述存储器系统协议的最新引入命令。
9.根据权利要求7所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一队列命令包括CMD44命令且所述第二队列命令包括CMD45命令。
10.根据权利要求9所述的存储器装置,其中所述一或多个命令包括多个CMD44及CMD45命令,其中CMD44及CMD45命令的对数目是基于所述文件元数据、所述文件属性或两者的大小。
11.根据权利要求1所述的存储器装置,其中所述一或多个命令包括使用封装命令方案配置的第一命令;
其中所述封装命令方案使得多个事务能够通过所述控制器电路经由一个命令执行;
其中所述第一命令、与所述第一命令相关联的标头或两者包括将提供所述文件元数据、所述文件属性或两者到所述控制器电路的指示符,及
其中基于接收所述第一命令,通过所述控制器电路接收指定所述文件元数据、所述文件属性或两者的所述标头。
12.根据权利要求11所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一命令包括CMD23命令,且其中在先前通过所述eMMC协议定义为保留、未使用或两者的所述CMD23命令的位中指定所述指示符。
13.根据权利要求11所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一命令包括CMD23命令,所述CMD23命令包括封装命令,且其中所述指示符经指定为所述标头中的版本。
14.根据权利要求1所述的存储器装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一命令包括CMD6命令,其中所述第二命令包括CMD23命令,且其中所述第三命令包括CMD25命令。
15.一种主机电子装置,其包括:
文件系统,其存储一或多个文件,所述文件具有相关联的文件元数据、文件属性或两者;
控制器电路,其经配置以:
提供一或多个命令到存储器装置,其中所述一或多个命令符合由所述存储器装置使用的存储器系统协议,其中所述一或多个命令包括:
至少一个写入命令,所述写入命令包括待存储于所述存储器装置中的一或多个数据块,所述一或多个数据块包括所述一或多个文件的一部分;及
与所述文件相关的所述文件元数据、所述文件属性或两者;
其中所述一或多个命令使所述存储器装置:
识别出所述文件元数据、所述文件属性或两者与所述一或多个数据块相关联;以及
存取所述文件元数据、所述文件属性或两者;
其中所述一或多个命令包括:
第一命令,其经配置以将所述文件元数据、所述文件属性或两者编码到寄存器;
第二命令,其经配置以指示将在第三命令中提供所述文件元数据、所述文件属性或两者到所述控制器电路;及
所述第三命令,其经配置以在所述存储器装置处更新所述寄存器处的经编码的所述文件元数据、所述文件属性或两者。
16.根据权利要求15所述的主机电子装置,其中所述一或多个命令包括:
队列命令,其包括将提供所述文件元数据、所述文件属性或两者到所述控制器电路的指示符,其中在与所述队列命令相关联的执行命令的标头中提供所述文件元数据、所述文件属性或两者。
17.根据权利要求16所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述队列命令包括CMD44命令且所述执行命令包括CMD47命令。
18.根据权利要求15所述的主机电子装置,其中所述一或多个命令包括:
队列命令,其包括上下文指示符,所述上下文指示符包括专用上下文,所述专用上下文指示将提供所述文件元数据、所述文件属性或两者到所述控制器电路;其中在与所述队列命令相关联的执行命令的标头中提供所述文件元数据、所述文件属性或两者。
19.根据权利要求18所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述队列命令包括CMD44命令且所述执行命令包括CMD47命令。
20.根据权利要求15所述的主机电子装置,其中所述一或多个命令包括:
至少一个第一队列命令,其经配置以提供将提供所述文件元数据、所述文件属性或两者到所述控制器电路的上下文指示符;及
至少一个第二队列命令,其经配置以提供指定所述文件元数据、所述文件属性或两者的标头。
21.根据权利要求20所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一队列命令包括CMD44命令且所述第二队列命令包括到所述存储器系统协议的最新引入命令。
22.根据权利要求20所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一队列命令包括CMD44命令且所述第二队列命令包括CMD45命令,且其中所述一或多个命令包括多个CMD44及CMD45命令,其中CMD44及CMD45命令的对数目是基于所述文件元数据、所述文件属性或两者的大小。
23.根据权利要求15所述的主机电子装置,其中所述一或多个命令包括使用封装命令方案配置的第一命令;
其中所述封装命令方案使得多个事务能够通过所述控制器电路经由一个命令执行;
其中所述第一命令、与所述第一命令相关联的标头或两者包括将提供所述文件元数据、所述文件属性或两者到所述控制器电路的指示符;及
其中基于接收所述第一命令,通过所述控制器电路接收指定所述文件元数据、所述文件属性或两者的所述标头。
24.根据权利要求23所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一命令包括CMD23命令,且其中在先前通过所述eMMC协议定义为保留、未使用或两者的所述CMD23命令的位中指定所述指示符。
25.根据权利要求23所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一命令包括CMD23命令,所述CMD23命令包括封装命令,且其中所述指示符经指定为所述标头中的版本。
26.根据权利要求15所述的主机电子装置,其中所述一或多个命令是嵌入式多媒体卡eMMC协议的命令,其中所述第一命令包括CMD6命令,其中所述第二命令包括CMD23命令,且其中所述第三命令包括CMD25命令。
27.一种存储器装置控制器电路实施的方法,其包括:
从主机电子装置接收存储器系统协议的一或多个命令,其中所述一或多个命令包括:
至少一个写入命令,所述写入命令包括待存储于所述存储器装置中的一或多个数据块;及
与文件相关的文件元数据、文件属性或两者,其中所述一或多个数据块包括所述文件的一部分;及
执行所述一或多个命令,使得所述一或多个数据块存储于所述存储器装置的存储器组件中且所述存储器装置的所述控制器电路可识别出所述文件元数据、所述文件属性或两者与所述一或多个数据块相关联且所述存储器装置的所述控制器电路可存取所述文件元数据、所述文件属性或两者;
其中所述一或多个命令包括:
第一命令,其经配置以将所述文件元数据、所述文件属性或两者编码到寄存器;
第二命令,其经配置以指示将在第三命令中提供所述文件元数据、所述文件属性或两者到所述控制器电路;及
所述第三命令,其经配置以在所述存储器装置处更新所述寄存器处的经编码的所述文件元数据、所述文件属性或两者。
CN201680061713.6A 2015-09-21 2016-09-21 在存储器系统协议中提供文件信息的系统及方法 Active CN108140005B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/860,326 US9880772B2 (en) 2015-09-21 2015-09-21 Systems and methods for providing file information in a memory system protocol
US14/860,326 2015-09-21
PCT/US2016/052864 WO2017053411A1 (en) 2015-09-21 2016-09-21 Systems and methods for providing file information in a memory system protocol

Publications (2)

Publication Number Publication Date
CN108140005A CN108140005A (zh) 2018-06-08
CN108140005B true CN108140005B (zh) 2021-03-26

Family

ID=58282680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680061713.6A Active CN108140005B (zh) 2015-09-21 2016-09-21 在存储器系统协议中提供文件信息的系统及方法

Country Status (4)

Country Link
US (2) US9880772B2 (zh)
CN (1) CN108140005B (zh)
TW (1) TWI611344B (zh)
WO (1) WO2017053411A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664218A (zh) * 2018-04-23 2018-10-16 浙江大华技术股份有限公司 一种基于数据特征的ssd存储方法、装置及系统
US11119914B2 (en) * 2019-11-15 2021-09-14 Micron Technology, Inc. Method of operating a memory with dynamically changeable attributes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392629B1 (en) * 2010-06-29 2013-03-05 Qlogic, Corporation System and methods for using a DMA module for a plurality of virtual machines
CN103647807A (zh) * 2013-11-27 2014-03-19 华为技术有限公司 一种信息缓存方法、装置和通信设备
CN103677665A (zh) * 2012-09-14 2014-03-26 三星电子株式会社 嵌入式多媒体卡、控制其的主机及操作其系统的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4596902B2 (ja) * 2004-12-10 2010-12-15 株式会社日立製作所 ストレージ管理装置、計算機システム、ストレージ管理方法及びストレージ管理プログラム
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US9141296B2 (en) * 2012-05-31 2015-09-22 Sandisk Technologies Inc. Method and host device for packing and dispatching read and write commands
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR20140112303A (ko) 2013-03-13 2014-09-23 삼성전자주식회사 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
KR20140128824A (ko) * 2013-04-29 2014-11-06 삼성전자주식회사 속성 데이터를 이용한 데이터 관리 방법
US9557937B2 (en) * 2013-08-21 2017-01-31 Netapp, Inc. Systems, methods, and computer program products implementing hybrid file structures for data storage
US9633041B2 (en) * 2013-09-26 2017-04-25 Taiwan Semiconductor Manufacturing Co., Ltd. File block placement in a distributed file system network
KR102204394B1 (ko) 2013-10-14 2021-01-19 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
KR102111741B1 (ko) * 2014-01-10 2020-05-15 삼성전자주식회사 임베디드 멀티미디어 카드 및 이의 동작 방법
US10108372B2 (en) * 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US9454310B2 (en) * 2014-02-14 2016-09-27 Micron Technology, Inc. Command queuing
KR101546333B1 (ko) * 2014-02-20 2015-08-25 주식회사 티맥스데이터 복합 저장소를 가지는 데이터베이스에서 질의 처리 장치 및 방법
CN104899175A (zh) * 2014-03-04 2015-09-09 深圳市中兴微电子技术有限公司 一种基于片内总线协议的安全访问控制方法和装置
KR102254099B1 (ko) * 2014-05-19 2021-05-20 삼성전자주식회사 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템
US9939865B2 (en) * 2014-06-13 2018-04-10 Seagate Technology Llc Selective storage resource powering for data transfer management
CN104536903B (zh) * 2014-12-25 2018-02-23 华中科技大学 一种按数据属性分类存放的混合存储方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392629B1 (en) * 2010-06-29 2013-03-05 Qlogic, Corporation System and methods for using a DMA module for a plurality of virtual machines
CN103677665A (zh) * 2012-09-14 2014-03-26 三星电子株式会社 嵌入式多媒体卡、控制其的主机及操作其系统的方法
CN103647807A (zh) * 2013-11-27 2014-03-19 华为技术有限公司 一种信息缓存方法、装置和通信设备

Also Published As

Publication number Publication date
US20180129442A1 (en) 2018-05-10
WO2017053411A1 (en) 2017-03-30
US10175908B2 (en) 2019-01-08
US9880772B2 (en) 2018-01-30
CN108140005A (zh) 2018-06-08
TWI611344B (zh) 2018-01-11
US20170083260A1 (en) 2017-03-23
TW201721403A (zh) 2017-06-16

Similar Documents

Publication Publication Date Title
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
EP1552409B1 (en) One-shot rdma
KR101371936B1 (ko) 메모리 장치들에 의해 호스트 메모리 액세스를 제어하기 위한 방법들 및 시스템들
US9002970B2 (en) Remote direct memory access socket aggregation
JP7194730B2 (ja) バッファ状態報告方法、端末及びコンピュータ記憶媒体
CN110007877B (zh) 主机与双控存储设备间数据传输方法、装置、设备及介质
CN111343148A (zh) 一种fgpa通信数据的处理方法、系统及装置
CN113422793B (zh) 数据传输方法、装置、电子设备及计算机存储介质
CN114201268B (zh) 一种数据处理方法、装置、设备及可读存储介质
CN108140005B (zh) 在存储器系统协议中提供文件信息的系统及方法
CN105610730A (zh) Cpu与网络设备之间的消息交互方法及系统
CN112527518A (zh) 用于消息隧道通信的系统和装置
US20050091390A1 (en) Speculative method and system for rapid data communications
CN109857553B (zh) 内存管理方法及装置
CN105677491A (zh) 一种数据传输方法及装置
CN115904259B (zh) 非易失性存储器标准NVMe指令的处理方法及相关装置
US10664418B2 (en) Peripheral device controlling device, operation method thereof, and operation method of peripheral device controlling device driver
US11972110B2 (en) Storage device and storage system
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
CN113422792B (zh) 数据传输方法、装置、电子设备及计算机存储介质
TW202123014A (zh) 支持位元組可定址協定及塊可定址協定兩者的固態硬碟
CN111200594B (zh) 接收数据的方法、装置、数据接收设备和存储介质
CN112422457A (zh) 报文处理方法、装置和计算机存储介质
CN110881277A (zh) 一种数据存储方法、装置及相关设备
CN112231250B (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