CN115793980A - 数据存储方法和数据存储的装置 - Google Patents
数据存储方法和数据存储的装置 Download PDFInfo
- Publication number
- CN115793980A CN115793980A CN202211574879.1A CN202211574879A CN115793980A CN 115793980 A CN115793980 A CN 115793980A CN 202211574879 A CN202211574879 A CN 202211574879A CN 115793980 A CN115793980 A CN 115793980A
- Authority
- CN
- China
- Prior art keywords
- data
- stream
- storage
- metadata
- attribute information
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000003860 storage Methods 0.000 claims abstract description 189
- 230000015654 memory Effects 0.000 claims description 111
- 238000004590 computer program Methods 0.000 claims description 19
- 239000010410 layer Substances 0.000 description 23
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101150104728 GPR88 gene Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 102100038404 Probable G-protein coupled receptor 88 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- 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/061—Improving I/O performance
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种数据存储方法和数据存储的装置。所述数据存储方法,包括:基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID;基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID;以及分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
Description
技术领域
本申请涉及数据存储技术领域,更具体地,涉及一种数据存储方法和数据存储的装置。
背景技术
多流(Multi-Stream)存储机制基于针对闪存装置(例如,支持多流的固态驱动器(SSD)、通用闪存(Universal Flash Storage,UFS)和嵌入多媒体卡(embedded MultiMedia Card,eMMC))的特殊写特性,将具有相同更新频率的数据写入存储装置的同一块(block)中。该机制通过减少有效数据的搬移操作并减小写放大来减少或消除垃圾回收(Garbage Collection,GC)。
多流机制将具有不同更新频率的数据映射到不同的流,并使用流(stream)标识(identifier,ID)表示不同的流。
流ID的分配机制会直接影响存储装置的垃圾回收效果,当同属于一个流的所有数据具有完全相同或相近的更新频率时,多流机制能带来极大的性能提升。
因此,基于多流机制如何向数据分配准确的流ID,以保证同一流ID对应的数据的更新频率更接近进而提升GC性能,是亟待解决的问题。
发明内容
各种实施例提供了数据存储方法和数据存储的装置,所述数据存储方法和数据存储的装置能够更精准地为实际具有相同或相近更新频率的数据分配所述存储装置的相同的块,从而减少垃圾回收时的数据搬移操作,并延长所述存储装置的使用寿命。
根据本发明的示例性实施例的一方面,提供一种数据存储方法,包括:包括:基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID;基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID;以及分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
应用程序的开发者与内核开发者对数据更新频率的理解可能存在不同,例如,名义上具有相同更新频率的数据文件和元数据的实际更新频率可能存在较大的差异。该数据文件和元数据可因名义上具有相同的更新频率被分配相同的流ID,这会降低存储装置的垃圾回收性能。而根据本公开的实施例的数据存储方法,通过为数据文件和元数据分配多个流的不同子集可为名义上具有相同的更新频率,而实际上具有不同更新频率的数据文件和元数据分配不同的流ID。
可选地,第一访问属性信息包括以下项中的至少一个:创建信息、打开信息、修改信息、关闭信息和删除信息;第二访问属性信息包括:访问顺序、访问频率和重复访问时间间隔。
可选地,所述分配第一流ID的步骤包括:对第一访问属性信息进行聚类,基于所述对第一访问属性信息进行聚类的结果确定第一流ID;或者基于第一访问属性信息确定所述数据文件之间的相似度,基于所述数据文件之间的相似度确定第一流ID。
根据本公开的实施例,基于数据文件之间的相似度或者数据文件对应的聚类类别,可将具有相同或者相似访问频率的数据文件存储到存储装置的相同的块中,从而可提高存储装置的垃圾回收性能。
可选地,所述分配第二流ID的步骤包括:对第二访问属性信息进行聚类,基于所述对第二访问属性信息进行聚类的结果确定第二流ID;或者基于第二访问属性信息确定所述元数据之间的相似度,基于所述元数据之间的相似度确定第二流ID。
根据本公开的实施例,基于元数据之间的相似度或者元数据对应的聚类类别,可将具有相同或者相似更新频率的元数据存储到存储装置的相同的块中,从而可提高存储的垃圾回收性能。
可选地,所述数据存储方法还包括:在文件属性表中保存第一访问属性信息;以及在元数据访问表中保存第二访问属性信息。
可选地,第一子集与第二子集不交叉。
可选地,第一流ID被嵌入在所述数据文件中,并且第二流ID被嵌入在所述元数据中。
根据本公开的实施例的另一方面,提供了一种数据存储的装置,包括:分配单元,被配置为:基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID,并基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID;写入单元,被配置为:分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
应用程序的开发者与内核开发者对数据更新频率的理解可能存在不同,例如,名义上具有相同更新频率的数据文件和元数据的实际更新频率可能存在较大的差异,该数据文件和元数据会因名义上具有相同的更新频率被分配相同的流ID,这会降低存储装置的垃圾回收性能。而根据本公开的实施例的数据存储的装置,通过为数据文件和元数据分配多个流的不同子集可为名义上具有相同的更新频率,而实际上具有不同更新频率的数据文件和元数据分配不同的流ID。
可选地,第一访问属性信息包括以下项中的至少一个:创建信息、打开信息、修改信息、关闭信息和删除信息;以及其中,第二访问属性信息包括:访问顺序、访问频率和重复访问时间间隔。
可选地,所述分配单元被配置为:对第一访问属性信息进行聚类,基于所述对第一访问属性信息进行聚类的结果确定第一流ID;或者基于第一访问属性信息确定所述数据文件之间的相似度,基于所述数据文件之间的相似度确定第一流ID。
根据本公开的实施例,基于数据文件之间的相似度或者数据文件对应的聚类类别,可将具有相同或者相似访问频率的数据文件存储到存储装置的相同的块中,从而可提高存储的垃圾回收性能。
可选地,所述分配单元被配置为:对第二访问属性信息进行聚类,基于所述对第二访问属性信息进行聚类的结果确定第二流ID;或者基于第二访问属性信息确定所述元数据之间的相似度,基于所述元数据之间的相似度确定第二流ID。
根据本公开的实施例,基于元数据之间的相似度或者元数据对应的聚类类别,可将具有相同或者相似更新频率的元数据存储到存储装置的相同的块中,从而可提高存储的垃圾回收性能。
可选地,所述数据存储的装置还包括:存储单元,被配置为:在文件属性表中保存第一访问属性信息;以及在元数据访问表中保存第二访问属性信息。
可选地,第一子集与第二子集不交叉。
可选地,第一流ID被嵌入在所述数据文件中,并且第二流ID被嵌入在所述元数据中。
根据本公开的实施例的另一方面,提供了一种数据存储装置,包括:至少一个处理器,被配置为至少执行以下操作:基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID,基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID,以及分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
可选地,第一流ID被嵌入在所述数据文件中,并且第二流ID被嵌入在所述元数据中,其中,所述至少一个处理器被配置为:从所述数据文件中提取第一流ID,并基于提取的第一流ID将所述数据文件写入所述存储装置的存储区域中,以及其中,所述至少一个处理器被配置为:从所述元数据中提取第二流ID,并基于提取的第二流ID将所述元数据写入所述存储装置的存储区域中。
根据本公开的实施例的另一方面,提供了一种数据存储***,包括:主机,被配置为执行如上所述的数据存储方法;以及所述存储装置。
可选地,所述主机为通用闪存UFS主机,并且所述存储装置为UFS装置,以及其中,所述数据存储***还包括UFS接口,被配置为执行所述UFS主机和所述UFS装置之间的通信。
根据本公开的实施例的另一方面,提供了一种应用了存储装置的***,包括:主处理器;存储器;以及存储装置,支持多流Multi-stream,其中,所述存储器存储有当由主处理器运行时使得所述主处理器执行如上所述的数据存储方法的计算机程序。
根据本公开的实施例的另一方面,提供了一种数据中心***,包括:多个应用服务器;以及多个存储服务器,其中,每个存储服务器包括支持多流的存储装置,其中,多个存储服务器和多个应用服务器中的至少一个被配置为执行如上所述的数据存储方法。
根据本公开的实施例的另一方面,提供了一种存储有计算机程序的非暂时性计算机可读存储介质,其中,当所述计算机程序被处理器执行时使得所述处理器执行如上所述的数据存储方法。
根据本公开的实施例的另一方面,提供了一种电子装置,包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行如上所述的数据存储方法。
附图说明
通过下面结合示例性地示出一例的附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是示出根据本公开的实施例的数据存储设备10000的示例的框图;
图2是示出针对UFS的数据存储方法的流程图;
图3是示出根据本公开的实施例的数据存储方法的流程图;
图4示出了根据本公开的实施例的数据存储的装置400的框图;
图5为根据本公开的实施例的应用了存储装置的***1000的示意图;
图6为根据示例性实施例的主机存储***10的框图;
图7为根据一实施例的UFS***2000的图;
图8为根据本发明的一实施例的应用了存储装置的数据中心3000的示图;以及
图9是示出根据本公开的示例性实施例的数据存储装置900的结构的框图。
具体实施方式
在下文中,参照附图对本公开的各种实施例进行描述,其中,相同的标号用于表示相同或相似的元件、特征和结构。然而,不旨在由本文所述的各种实施例将本公开限制于具体实施例,并且旨在于:本公开覆盖本公开的所有修改、等同物和/或替代物,只要它们在所附权利要求及其等同物的范围内。在以下说明书和权利要求书中使用的术语和词语不限于它们的词典含义,而是仅被用于使得能够清楚和一致地理解本公开。因此,对于本领域技术人员应显而易见的是:提供本公开的各种实施例的以下描述仅用于说明的目的,而不是为了限制由所附权利要求和它们的等同物限定的本公开的目的。
应理解,除非上下文另外明确指出,否则单数形式包括复数形式。本文使用的术语“包括”、“包含”和“具有”指示公开的功能、操作或元件的存在,但不排除其它功能、操作或元件。
如在说明书中所使用的,表述“A或B”、或“A和/或B中的至少一个”可指示A和B、A或者B。例如,表述“A或B”或“A和/或B中的至少一个”可指示(1)A、(2)B或(3)A和B两者。
在本公开的各种实施例中,意图是:当组件(例如,第一组件)被称为与另一组件(例如,第二组件)“耦接”或“连接”或者被“耦接”或者“连接”到另一组件(例如,第二组件)时,所述组件可被直接连接到所述另一组件,或者可通过另一组件(例如,第三组件)被连接。相比之下,当组件(例如,第一组件)被称为与另一组件(例如,第二组件)“直接耦接”或“直接连接”或者被直接耦接到或直接连接到另一组件(例如,第二组件)时,在所述组件和所述另一组件之间不存在另一组件(例如,第三组件)。
在描述本公开的各种实施例中使用的表述“被配置为”可以例如根据情况与诸如“适用于”、“具有…的能力”、“被设计为”、“适合于”、“被制造为”和“能够”的表述互换使用。术语“被配置为”可不一定指示按照硬件“被专门设计为”。相反,在一些情况下的表述“被配置为...的装置”可指示所述装置和另一装置或者部分“能够…”。例如,表述“被配置为执行A、B和C的处理器”可指示用于执行相应操作的专用处理器(例如,嵌入式处理器)或用于通过执行存储在存储器装置中的至少一个软件程序来执行相应的操作的通用处理器(例如,中央处理单元CPU或应用处理器(AP))。
本文使用的术语在于描述本公开的某些实施例,但并不旨在限制其它实施例的范围。除非本文另外指出,否则本文使用的所有术语(包括技术或科学术语)可具有与本领域技术人员通常理解的含义相同含义。通常,词典中定义的术语应被视为具有与相关领域中的上下文含义相同的含义,并且,除非本文明确地定义,否则不应被不同地理解或被理解为具有过于正式的含义。在任何情况下,本公开中定义的术语也不旨在被解释为排除本公开的实施例。
图1是示出根据本公开的一些实施例的数据存储设备10000的示例的框图。
参照图1,数据存储设备10000可包括数据存储装置10001和处理器10002。尽管在图1中未示出,但是数据存储设备10000可与外部存储器连接和/或与外部装置进行通信。图1示出的数据存储设备10000可包括与当前示例相关联的组件。因此,对于本领域普通技术人员将清楚的是,在数据存储设备10000中还可包括除了图1中示出的组件之外的其它通用组件。
数据存储装置10001可以是支持多流机制的任何类型的存储装置。
处理器10002可控制数据存储设备10000的数据存储操作。
图2是示出根据一些实施例的针对UFS的数据存储方法的流程图。
参照图2,由应用(例如,诸如微信应用等的安卓应用)生成的数据文件被发送到虚拟文件***(Virtual File System,VFS)。然后数据文件经由原始(RAW)块输入输出(Input/Output,I/O)单元、块层(Block Layer)以及驱动层(Driver Layer)被发送到多流UFS设备,文件***基于数据文件生成数据文件的元数据,并经由块层和驱动层被发送到多流UFS设备,其中,被发送到多流UFS设备的数据文件和/或元数据可具有相应的流ID,UFS设备基于流ID将与流ID相映射的数据文件和/或元数据存储到与流ID对应的块中,其中,流ID指示与该ID相应的流。
由于UFS设备本身掌握的信息很少,其不能理解数据的更新频率,因此只有数据的生产者即上层软件(包括用户程序、操作***)才了解数据的更新频率,因而上层软件负责写入的数据与流ID的映射,而UFS设备只负责将与流ID相应的数据写入与流ID相应的块。例如,上层软件可生成或者提供针对数据的流ID以指示UFS装置应当如何写入所述数据。
相关技术中,数据文件与流ID的映射关系通常由应用程序的开发者预先确定,而元数据的与流ID之间的映射被随机确定。
然而,由于应用程序的开发者与内核开发者对数据更新频率的理解可能存在不同,名义上具有相同更新频率的数据文件(data file)和元数据(metadata)(例如,数据文件和元数据的更新频率由短写提示(short write hint)指示)实际上可能具有不同的更新频率,在这种情况下,将实际具有不同更新频率的数据文件和元数据存储到相同的块,显然会降低UFS设备的垃圾回收性能。
根据本公开的实施例的数据存储方法和数据存储的装置将数据文件的流ID和元数据的流ID隔离开,从而避免将实际具有不同更新频率的数据文件和元数据存储到相同的块。也就是说,根据一些实施例的数据存储方法和数据存储的装置将元数据的流ID与数据文件的流ID分离开,从而使得针对每类文件的流ID可被独立地处理。
本领域技术人员应当理解,图1中的UFS作为示例被描述,并且发明构思可被应用于其他类型的存储装置(例如,SSD或eMMC)。
图3是示出根据本公开的实施例的数据存储方法的流程图。
参照图3,在步骤S301,基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID。在一些实施例中,数据文件可以是用户的数据文件。例如,数据文件可以是正被用户使用的应用的数据文件。
在步骤S302,基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID。
本领域技术人员将理解,在各种实施例中,步骤S301和步骤302可被同时执行,顺序执行或者反序执行。
例如,如果存储装置支持10个流,10个流的ID分别为ID_1至ID_10,则第一子集的被分配给数据文件的流ID可以为ID_1至ID 5,第二子集的被分配给所述数据文件的元数据的流ID可以为ID_6至ID_10。
在一些实施例中,第一子集和第二子集彼此无交叉,以避免为数据文件和元数据分配相同的流ID。在一些实施例中,第一子集的一部分可不与第二子集交叉,第二子集的另一部分可与第二子集交叉。例如,在一些实施例中,一个数据文件和一个元数据可被分配同一流ID,而剩余的数据文件被分配不与针对所述数据文件的元数据的流ID交叉的流ID。
作为示例,第一访问属性信息可包括以下项中的至少一个:创建信息、打开信息、修改信息、关闭信息和删除信息。
作为示例,第二访问属性信息可包括:访问顺序、访问频率和/或重复访问时间间隔。
作为示例,数据文件的访问属性信息可通过文件事件监控器来收集。
具体地,每个数据文件可对应一个索引节点(inode),该索引节点存储以下与数据文件相关的信息中的至少一个:文件的字节数、文件拥有者的用户标识(User ID)、文件的组ID(Group ID)、文件的读、写执行权限、文件的时间戳(ctime,指索引节点上一次变动的时间;mtime,指文件内容上一次变动的时间,atime,指文件上一次打开的时间)和与数据文件相应的块的位置。
作为示例,文件事件监控器可周期性地使用索引节点的监控工具(例如,linux内核自带的inotify工具)来例如监视所有打开的文件并获取各种文件属性(例如文件路径、类型、打开时间,修改数量等)。
作为示例,文件事件监控器可连续监视文件的创建、打开、修改、关闭和/或删除(例如,可使用安卓***提供的工具(例如,perfetto)或其他方法从索引节点获取文件信息)。文件事件监控器可在文件打开时捕获文件,并将文件信息(索引节点自身属性或基于文件的事件)记录在文件属性表中。文件事件监控视器还可连续监视这些打开的文件以更新其属性。
作为示例,基于文件的事件可包括:
IN_ACCESS/*文件被访问*/
IN_MODIFY/*文件被修改*/
IN_ATTRIB/*元数据改变*/
IN_CLOSE_WRITE/*可写入文件被关闭*/
IN_CLOSE_NOWRITE/*不可写入文件被关闭*/
IN_OPEN/*文件被打开*/
IN_MOVED_FROM/*文件从X被移动*/
IN_MOVED_TO/*文件被移动到Y*/
IN_CREATE/*子文件被创建*/
IN_DELETE/*子文件被删除*/
IN_DELETE_SELF/*自删除*/
IN_MOVE_SELF/*自移动*/。
作为示例,由于数据文件的属性信息可能发生变化,因此,文件事件监控器获取的文件的属性信息可被动态更新。
作为示例,所述分配第一流ID的步骤可包括:对第一访问属性信息进行聚类,基于所述对第一访问属性信息进行聚类的结果确定第一流ID;或者基于第一访问属性信息确定所述数据文件之间的相似度,基于所述数据文件之间的相似度确定第一流ID。
作为示例,可对数据文件的属性信息执行聚类,根据聚类结果为属性信息属于同一类的数据文件分配相同的流ID。
作为示例,可对数据文件的访问属性信息(例如,文件的打开次数、文件关闭次数、文件的写输入/输出(Input/Output,IO)次数、基于文件大小的修改概率估计e(-S_file)(S_file表示文件的大小))进行聚类(例如,可以选用kmeans算法),并将聚类后访问属性信息属于同一类的数据文件确定为具有相同的访问模式,进而为具有相同访问模式的数据文件分配相同的流ID。
本领域技术人员将理解,基于聚类算法确定数据文件的访问模式可选择不同类别的访问属性信息(即不同的访问属性子集)。
例如,在一些实施例中,如果第一数据文件、第二数据文件和第三数据文件的属性信息的聚类类别相同,则可为第一数据文件、第二数据文件和第三数据文件分配同一流ID。
例如,在一些实施例中,如果第一数据文件、第二数据文件和第三数据文件的属性信息的聚类类别不同,则可为第一数据文件、第二数据文件和第三数据文件分配第一子集的不同的流ID。例如,可为第一数据、第二数据文件和第三数据文件分别分配ID_1、ID_2和ID_3。
作为示例,在一些实施例中,可通过文件模式相似度分析器计算数据文件之间的相似度。具体地,所述分析器可维护一个数据文件属性表,该表存储所有被监视数据文件的属性信息。由于索引节点ID与文件是一一对应的,因此,所述分析器将索引节点ID用作属性表中文件的ID。
作为示例,在一些实施例中,可基于数据文件的访问属性信息,通过相似度算法(例如,皮尔森相关系数)来计算数据文件的相似度。
作为示例,可将相似度大于阈值的数据文件确定为具有相同的访问模式,并为具有相同访问模式的数据文件分配相同的流ID。所述阈值可被预设、动态设置或者实验地设置。
具体地,可将每个索引节点的信息(即文件的至少一个属性信息)视为一个向量,通过测量向量之间的相似度来确定数据文件是否具有相同的访问模式。
本领域技术人员将理解,测量向量之间的相似度指执行诸如计算向量之间的距离的任务。度量空间中的距离可以是欧几里得距离、曼哈顿距离和切比雪夫距离。这些都是可以应用于数值向量的距离。
作为示例,可以以文件读取热度为分析目标,以以下项中的至少一个视为属性向量:打开信息、访问信息、修改信息、关闭信息、删除信息、文件大小、基于文件大小的修改概率估计,通过计算文件的属性向量之间的距离来确定文件是否具有相同的访问模式。
余弦相似度是两个向量在内积空间中的相似度度量,用来衡量两个向量之间夹角的余弦值。0°的余弦为1,其他任何角度的余弦都小于1。
作为示例,可通过以下公式计算文件之间的相似度(similarity):
其中,θ表示A和B之间的角度,A和B分别表示一个数据文件和另一数据文件的访问属性向量,Ai表示所述一个数据文件的第i个访问属性的值,Bi表示所述另一数据文件的第i个访问属性的值。
作为示例,当两个数据文件之间的相似度大于预设阈值时,将所述一个数据文件和所述另一数据文件确定为具有相同的访问模式(即相同的读取热度)。因此,所述一个数据文件和所述另一数据文件被分配第一子集中的同一ID。
本领域技术人员将理解,计算相似度可选择与文件读取温度密切相关的属性子集,以尽可能反映访问模式。
作为示例,所述分配第二流ID的步骤可包括:对第二访问属性信息进行聚类,基于所述对第二访问属性信息进行聚类的结果确定第二流ID;或者基于第二访问属性信息确定所述元数据之间的相似度,基于所述元数据之间的相似度确定第二流ID。
作为示例,可对元数据的访问属性信息(例如,顺序、频率和/或持续时间(Sequentiality,Frequency and Recency,SFR)等信息)进行聚类(例如,可以选用kmeans算法),并将聚类后访问属性信息属于同一类的元数据确定为具有相同的访问模式,进而为具有相同访问模式的元数据分配相同的流ID。
作为示例,在一些实施例中,如果第一元数据、第二元数据和第三元数据的访问属性信息的聚类类别相同,则为第一元数据、第二元数据和第三元数据分配同一流ID。
例如,在一些实施例中,如果第一元数据、第二元数据和第三元数据的属性信息的聚类类别不同,则为第一元数据、第二元数据和第三元数据分配第一子集的不同的流ID。例如,可为第一数据、第二元数据和第三元数据分别分配ID_6、ID_7和ID_8。
在上文中详细描述了基于相似度计算来为数据文件分配第一子集的流ID。在针对元数据执行相似度计算时,可以采用类似的方法来为元数据分配第二子集的流ID。
作为示例,所述数据存储方法还可包括:在文件属性表中保存第一访问属性信息;以及在元数据访问表中保存第二访问属性信息。
可利用文件属性表保存数据文件的访问属性信息,该文件属性表可被用于执行聚类或者相似度计算以确定所述数据文件的流ID。
利用元数据访问表保存元数据的访问属性信息以执行聚类或者相似度计算来确定所述元数据的流ID。
返回参照图3,在步骤S303,分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
例如,第一数据文件被分配了第一子集的流ID_1,则第一数据文件将被存储在存储装置的与流ID_1相应的块中,第一元数据被分配了第二子集的流ID_6,则第一元数据被存储在存储装置的与流ID_6相应的块中。
作为示例,在一些实施例中,可将与所述数据文件相映射的流ID嵌入所述数据文件,并将嵌入了流ID的所述文件数据发送到所述存储装置。在一些实施例中,可将与元数据相映射的流ID嵌入元数据,并将嵌入了流ID的元数据发送到所述存储装置。
作为示例,所述存储装置可在接收到嵌入了流ID的数据文件或元数据时,从元数据或者数据文件提取流ID,并基于嵌入的流ID将数据文件或元数据存储到存储装置的与流ID相应的块中。
作为示例,可在文件***不忙时,执行针对所述元数据的聚类或相似度计算。
作为示例,为了将当前文件***内部冷热数据分流所使用的流个数通知给应用层,所述方法还可包括:将第二子集中的流的数量记录在文件***的预设目录(例如,proc文件***)下。
本领域技术人员将理解,如果存储装置最多支持M个流,则当文件***占用K个流时,应用层最多占用M-K个流。
作为示例,在一些实施例中,可将数据文件与对应的第一子集的流ID以及元数据和对应的第二子集的流ID分别打包封装,并发送给存储装置,以使得存储装置根据流ID对数据文件和元数据进行物理上的隔离存储。
根据一些实施例,由于不同更新频率的数据被存储在在物理隔离的物理块上,所以当垃圾回收发生时,产生的数据搬移操作会减少,由此带来的写放大也会减少,因而存储装置的使用寿命最大限度的得到提升。
以上参照图2-图3对根据本公开的一些实施例的数据存储方法进行了描述。下面参照图4-图9对根据本公开的一些实施例的数据存储的装置、数据存储***、数据存储设备进行描述。
图4示出了根据本公开的一些实施例的数据存储的装置400的框图。
参照图4,数据存储的装置400可包括分配单元410、写入单元420和存储装置430。本领域技术人员将理解,数据存储的装置400可另外包括其他组件,并且数据存储的装置400中的至少一个组件可被拆分、组合或被省略,例如,数据存储的装置400可不包括存储装置430。
作为示例,分配单元410可被配置为基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置430的多个流的第一子集的第一流标识ID,并基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID。
作为示例,写入单元420可被配置为:分别基于第一流ID和第二流ID将所述数据文件和元数据写入存储装置430的存储区域中。
作为示例,第一访问属性信息可包括以下项中的至少一个:创建信息、打开信息、修改信息、关闭信息和删除信息;第二访问属性信息可包括:访问顺序、访问频率和/或重复访问时间间隔。
作为示例,分配单元410可被配置为:对第一访问属性信息进行聚类,基于所述对第一访问属性信息进行聚类的结果确定第一流ID;或者基于第一访问属性信息确定所述数据文件之间的相似度,基于所述数据文件之间的相似度确定第一流ID。
作为示例,分配单元410可被配置为:对第二访问属性信息进行聚类,基于所述对第二访问属性信息进行聚类的结果确定第二流ID;或者基于第二访问属性信息确定所述元数据之间的相似度,基于所述元数据之间的相似度确定第二流ID。
作为示例,数据存储的装置400还可包括:存储单元(未示出),被配置为在文件属性表中保存第一访问属性信息;以及在元数据访问表中保存第二访问属性信息。
作为示例,数据存储的装置400还可包括:记录单元(未示出),被配置将第二子集中的流的数量记录在文件***的预设目录下。
图5为根据本公开的一些实施例的应用了存储装置的***1000的示意图。
图5的***1000基本上可以是移动***,例如便携式通信终端(例如,移动电话)、智能手机、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置。但是,图5的***1000不必限于移动***,其可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图5,***1000可以包括主处理器1100、存储器(例如,1200a和1200b)以及存储装置(例如,1300a和1300b)。并且,***1000可以包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470以及连接接口1480中的至少一个。
主处理器1100可以控制***1000的所有操作,更具体地,可以控制***1000中包括的其他组件的操作。主处理器1100可以被实现为通用处理器、专用处理器或应用程序处理器等。
主处理器1100可以包括至少一个中央处理器(CPU)核1110,并且还包括控制器1120,其用于控制存储器1200a和1200b和/或存储装置1300a和1300b。在一些实施例中,主处理器1100可以进一步包括加速器1130,其是用于诸如人工智能(AI)数据操作等的高速数据操作的专用电路。加速器1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU)等,并且被实现为与主处理器1100的其他组件物理上分离的芯片。
存储器1200a和1200b可以用作***1000的主存储装置。尽管存储器1200a和1200b可以分别包括易失性存储器,例如静态随机存取存储器(SRAM)和/或动态随机存取存储器(DRAM)等,但是存储器1200a和1200b可以分别包括非易失性存储器,例如闪存、相变随机存取存储器(PRAM)和/或电阻式随机存取存储器(RRAM)等。存储器1200a和1200b可以在与主处理器1100相同的封装中实现。
存储装置1300a和1300b可以用作非易失性存储装置,其被配置为不管是否被供电都存储数据,并且具有比存储器1200a和1200b更大的存储容量。存储装置1300a和1300b可以分别包括存储器控制器(STRG CTRL)1310a和1310b以及非易失性存储器(Non-VolatileMemory,NVM)1320a和1320b,其被配置为经由存储器控制器1310a和1310b的控制来存储数据。尽管NVM1320a和1320b可以包括具有二维(2D)或三维(3D)结构的V-NAND闪存,但是NVM1320a和1320b可以包括其他类型的NVM,例如PRAM和/或RRAM等。
存储装置1300a和1300b可以与主处理器1100物理上分离并且包括在***1000中,或者可以在与主处理器1100相同的封装中实现。另外,存储装置1300a和1300b可以具有固态装置(SSDs)或存储卡的类型,并且可以通过诸如稍后将描述的连接接口1480之类的接口与***100的其他组件可移除地结合。存储装置1300a和1300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或NVMe之类的标准协议的装置,但不限于此。
图像捕获装置1410可以拍摄静止图像或运动图像。图像捕获装置1410可以包括照相机、便携式摄像机和/或网络摄像头等。
用户输入装置1420可以接收由***1000的用户输入的各种类型的数据,并且包括触摸板、键区、键盘、鼠标和麦克风等。
传感器1430可以检测可以从***1000的外部获得的各种类型的物理量,并将所检测的物理量转换成电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器等。
通信装置1440可以根据各种通信协议在***1000外部的其他装置之间发送和接收信号。通信装置1440可以包括天线、收发器或调制解调器等。
显示器1450和扬声器1460可以用作输出装置,其被配置为分别向***1000的用户输出视觉信息和听觉信息。
供电装置1470可以适当地转换从嵌入在***1000中的电池(未示出)和/或外部电源供应的电力,并且将所转换的电力供应给***1000的每个组件。
连接接口1480可以提供***1000和外部装置之间的连接,该外部装置连接到***1000并且能够向***1000发送数据和从***1000接收数据。连接接口1480可以通过使用各种接口方案来实现,例如,高级技术附件(ATA)、串行ATA(SATA)、外部串行ATA(e-SATA)、小型计算机***接口(SCSI)、串行SCSI(SAS)、外部设备互连(PCI)、PCI express(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数码(SD)卡接口、多媒体卡(MMC)接口、嵌入式多媒体卡(eMMC)接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑式闪存(CF)卡接口等。
本领域技术人员将理解,存储装置(例如,1300a和1300b)可支持多流存储机制。
作为示例,在一些实施例中,提供了一种应用了存储装置的***(例如,1000),所述***可包括:主处理器(例如,主处理器1100);存储器(例如,存储器1200a和1200b);以及存储装置(例如,存储装置1300a和1300b),支持多流存储机制,其中,所述存储器存储有当由主处理器运行时使得所述主处理器执行如上所述的数据存储方法的计算机程序。
图6为根据一些示例性实施例的主机存储***10的框图。
主机存储***10可以包括主机100和存储装置200。此外,存储装置200可以包括存储器控制器210和NVM 220。根据本发明的示例性实施例,主机100可以包括主机控制器110和主机存储器120。主机存储器120可以用作缓冲存储器,其被配置为临时存储要发送到存储装置200的数据或从存储装置200接收的数据。
存储装置200可以包括存储介质,其被配置为响应于来自主机100的请求而存储数据。作为示例,存储装置200可以包括SSD、嵌入式存储器和可装卸的外部存储器中的至少一个。当存储装置200是SSD时,存储装置200可以是符合NVMe标准的装置。当存储装置200是嵌入式存储器或外部存储器时,存储装置200可以是符合UFS标准或eMMC标准的装置。主机100和存储装置200均可以根据采用的标准协议来生成包(packet)并发送该包。
当存储装置200的NVM 220包括闪存时,所述闪存可以包括2D NAND存储阵列或3D(或垂直)NAND(VNAND)存储阵列。作为另一示例,存储装置200可以包括各种其他种类的NVM。例如,存储装置200可以包括磁性随机存取存储器(MRAM)、自旋转移扭矩MRAM、导电桥式RAM(CBRAM)、铁电RAM(FRAM)、PRAM、RRAM以及各种其他类型的存储器。
根据一实施例,主机控制器110和主机存储器120可以实现为单独的半导体芯片。或者,在一些实施例中,主机控制器110和主机存储器120可以集成在同一半导体芯片中。作为示例,主机控制器110可以是包括在应用处理器(AP)中的多个模块中的任何一个。所述AP可以实现为片上***(SoC)。此外,主机存储器120可以是所述AP中包括的嵌入式存储器或所述AP外部的存储器模块。
主机控制器110可以管理将主机存储器120的缓冲区域的数据(例如,写入数据)存储在NVM 220中的操作或将NVM 220的数据(例如,读取数据)存储在缓冲区域中的操作。
存储器控制器210可以包括主机接口211、存储器接口212和CPU 213。另外,存储器控制器210还可以包括闪存转换层(FTL)、包管理器(Packet Manager,PCK MNG)215、缓冲存储器(Buffer Memory,BUF MEM)216、纠错码(Error Correction Code,ECC)引擎(Engine,ENG)217和高级加密标准(Advanced Encryption Standard,AES)引擎(Engine,ENG)218。存储器控制器210可以进一步包括其中装载有FTL 214的工作存储器(未示出)。CPU 213可以执行FTL 214来控制NVM 220上的数据写入和读取操作。
主机接口211可以向主机100发送包和从主机100接收包。从主机100发送到主机接口211的包可以包括命令或要被写入NVM 220的数据等。从主机接口211发送到主机100的包可以包括对命令的响应或从NVM 220读取的数据等。存储器接口212可以将要被写入NVM220的数据发送到NVM 220或接收从NVM 220读取的数据。存储器接口212可以被配置为符合诸如切换(Toggle)或开放NAND闪存接口(ONFI)的标准协议。
FTL 214可以执行各种功能,例如地址映射操作、磨损均衡操作以及垃圾收集操作。地址映射操作可以是将从主机100接收的逻辑地址转换为用于在NVM 220中实际存储数据的物理地址的操作。磨损均衡操作可以是通过允许均匀地使用NVM 220的块来防止特定块的过度退化的技术。作为示例,磨损均衡操作可以通过使用平衡物理块的擦写计数的固件技术来实现。垃圾收集操作可以是通过在将现有块的有效数据复制到新块之后擦除现有块来确保NVM 220中的可用容量的技术。
包管理器215可以根据同意主机100的接口的协议生成包,或者从从主机100接收到的包中解析各种类型的信息。另外,缓冲存储器216可以临时存储要写入NVM 220的数据或要从NVM 220读取的数据。尽管缓冲存储器216可以是包括在存储器控制器210中的组件,但是缓冲存储器216可以在存储器控制器210的外部。
ECC引擎217可以对从NVM 220读取的读取数据执行错误检测和校正操作。更具体地,ECC引擎217可以生成用于要写入到NVM 220的写入数据的奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 220中。在从NVM 220读取数据期间,ECC引擎217可以通过使用读取数据以及从NVM 220读取的奇偶校验位来校正读取数据中的错误,并输出错误校正后的读取数据。
AES引擎218可以通过使用对称密钥算法对输入到存储器控制器210的数据执行加密操作和解密操作中的至少一个。
根据本公开的一些实施例,提供了一种主机存储***(例如,10),包括:
主机(例如,主机,100);以及存储装置(例如,存储装置200),支持多流存储机制,其中,所述主机被配置为执行如上所述的数据存储方法。
图7为根据一实施例的UFS***2000的图。UFS***2000可以是符合电子工程设计发展联合协会(JEDEC)所宣布的UFS标准的***,并且包括UFS主机2100、UFS装置2200以及UFS接口2300。在不与以下图7的描述冲突的范围内,对于图5的***1000的以上描述也可以应用于图7的UFS***2000。
参照图7,UFS主机2100可以通过UFS接口2300连接到UFS装置2200。当图5的主处理器1100为应用处理器时,UFS主机2100可以实现为应用处理器的一部分。UFS主机控制器2110和主机存储器2140可以分别对应于图5的主处理器1100的和控制器1120以及存储器1200a和1200b。UFS装置2200可以对应于图5的存储装置1300a和1300b,并且UFS装置控制器2210和NVM2220可以分别对应于图5的存储器控制器1310a和1310b以及NVM 1320a和1320b。
UFS主机2100可以包括UFS主机控制器2110、应用程序2120、UFS驱动器2130,主机存储器2140和UFS互连(UIC)层2150。UFS装置2200可以包括UFS装置控制器2210、NVM 2220、存储接口2230、装置存储器2240、UIC层2250以及调节器2260。NVM 2220可以包括多个存储元件2221。尽管每个存储元件2221可以包括具有2D结构或3D结构的V-NAND闪存,但是每个存储元件2221可以包括另一种NVM,例如PRAM和/或RRAM等。UFS装置控制器2210可以通过存储接口2230连接到NVM 2220。存储接口2230可以设置为符合诸如Toggle或ONFI的标准协议。
应用程序2120可以指想要与UFS装置2200进行通信以使用UFS装置2200的功能的程序。应用程序2120可以发送输入-输出请求(IOR)到UFS驱动器2130,以用于UFS装置2200上的输入/输出(I/O)操作。IOR可以指数据读取请求、数据存储(或写入)请求和/或数据擦除(或丢弃)请求,但不限于此。
UFS驱动器2130可以通过UFS-主机控制器接口(UFS-HCI)来管理UFS主机控制器2110。UFS驱动器2130可以将由应用程序2120生成的IOR转换为由UFS标准定义的UFS命令,并且将UFS命令发送到UFS主机控制器2110。一个IOR可以被转换成多个UFS命令。尽管UFS命令基本上可以由SCSI标准定义,但是UFS命令可以是专用于UFS标准的命令。
UFS主机控制器2110可以通过UIC层2150和UFS接口2300将由UFS驱动器2130转换的UFS命令发送到UFS装置2200的UIC层2250。在UFS命令的发送期间,UFS主机控制器2110的UFS主机寄存器2111可以用作命令队列(CQ)。
在UFS主机2100一侧上的UIC层2150可以包括移动产业处理器接口(MIPI)M-PHY2151和MIPI UniPro 2152,并且在UFS装置2200一侧上的UIC层2150也可以包括MIPI M-PHY2251和MIPI UniPro 2252。
UFS接口2300可以包括配置为发送参考时钟信号REF_CLK的线、配置为发送UFS装置2200的硬件重置信号RESET_n的线、配置为发送一对差分输入信号DIN_t和DIN_c的一对线以及配置为发送一对差分输出信号DOUT_t和DOUT_c的一对线。
从UFS主机2100提供给UFS装置2200的参考时钟信号REF_CLK的频率可以是19.2MHz、26MHz、38.4MHz和52MHz中的一个,但不限于此。UFS主机2100可以在操作期间,即,在UFS主机2100和UFS装置2200之间的数据发送/接收操作期间,改变参考时钟信号REF_CLK的频率。UFS装置2200可以通过使用锁相环(PLL)从由UFS主机2100提供的参考时钟信号REF_CLK生成具有各种频率的时钟信号。并且,UFS主机2100可以通过使用参考时钟信号REF_CLK的频率来设置UFS主机2100和UFS装置2200之间的数据速率。即,可以根据参考时钟信号REF_CLK的频率来确定数据速率。
UFS接口2300可以支持多个通道,每个通道可以实现为一对差分线。例如,UFS接口2300可以包括至少一个接收通道和至少一个发送通道。在图7中,配置为发送一对差分输入信号DIN_T和DIN_C的一对线可以构成接收通道,并且配置为发送一对差分输出信号DOUT_T和DOUT_C的一对线可以构成发送通道。尽管在图7中示出了一个发送通道和一个接收通道,但是实施例不限于此,在一些实施例中,可以改变发送通道的数量和接收通道的数量。
接收通道和发送通道可以基于串行通信方案来发送数据。由于接收通道与发送通道分开的结构,因此可以启用UFS主机2100与UFS装置2200之间的全双工通信。即,在通过接收通道从UFS主机2100接收数据的同时,UFS装置2200可以通过发送通道向UFS主机2100发送数据。此外从UFS主机2100到UFS装置2200的控制数据(例如,命令)和要由UFS主机2100存储在UFS装置2200的NVM 2220中或从NVM 2220中读取的用户数据可以通过同一通道发送。因此,在UFS主机2100和UFS装置2200之间,除了一对接收通道和一对发送通道之外,不需要进一步提供用于数据发送的单独通道。
UFS装置2200的UFS装置控制器2210可以控制UFS装置2200的所有操作。UFS装置控制器2210可以通过使用逻辑单元(LU)2211来管理NVM 2220,该LU 2211是逻辑数据存储单元。LU 2211的数量可以是8,但不限于此。UFS装置控制器2210可以包括FTL,并且通过使用FTL的地址映射信息将从UFS主机2100接收到的逻辑数据地址(例如,逻辑块地址(LBA)转换为物理数据地址(例如,物理块地址(PBA))。配置为在UFS***2000中存储用户数据的逻辑块可以具有预定范围内的尺寸。例如,可以设置逻辑块的最小尺寸为4Kbyte。
当通过UIC层2250将来自UFS主机2100的命令施加到UFS装置2200时,UFS装置控制器2210可以响应于该命令而执行操作,并且当操作完成时将完成响应发送给UFS主机2100。
作为示例,当UFS主机2100将用户数据存储在UFS装置2200中时,UFS主机2100可以向UFS装置2200发送数据存储命令。当从UFS装置2200接收到指示UFS主机2100准备好接收用户数据(就绪传输)的响应(“就绪传输”响应)时,UFS主机2100可以将用户数据发送到UFS装置2200。UFS装置控制器2210可以将接收到的用户数据临时存储在装置存储器2240中,并且基于FTL的地址映射信息,将临时存储在装置存储器2240中的用户数据存储在NVM 2220的选定位置。
作为另一示例,当UFS主机2100读取存储在UFS装置2200中的数据时,UFS主机2100可以向UFS装置2200发送数据读取命令。已经接收到该命令的UFS装置控制器2210可以基于数据读取命令从NVM 2220读取用户数据,并将读取的用户数据临时存储装置存储器2240中。在读取操作期间,UFS装置控制器2210可以通过使用嵌入在其中的ECC引擎(未示出)来检测并校正读取的用户数据中的错误。更具体地,ECC引擎可以生成用于要写入NVM 2220的写入数据的奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 2220中。在从NVM 2220读取数据期间,ECC引擎可以通过使用读取数据以及从NVM 2220读取的奇偶校验位来校正读取数据中的错误,并输出错误校正后的读取数据。
在一些实施例中,UFS装置控制器2210可以将临时存储在装置存储器2240中的用户数据发送到UFS主机2100。并且,UFS装置控制器2210还可以包括AES引擎(未示出)。AES引擎可以通过使用对称密钥算法对发送到UFS装置控制器2210的数据执行加密操作和解密操作中的至少一个。
UFS主机2100可以将要发送到UFS装置2200的命令顺序存储在可以用作公共队列的UFS主机寄存器2111中,并且顺序地将命令发送给UFS装置2200。在这种情况下,即使当先前发送的命令仍由UFS装置2200处理时,即,即使在接收到先前发送的命令已经由UFS装置2200处理的通知之前,UFS主机2100也可以将在CQ中待命的下一命令发送到UFS装置2200。因此,在处理先前发送的命令期间,UFS装置2200还可以从UFS主机2100接收下一命令。可以在CQ中存储的命令的最大数量(或队列深度)可以是例如32。并且,可以将CQ实现为循环队列,其中通过头指针和尾指针指示存储在队列中的命令行的开始和结束。
多个存储元件2221中的每一个可以包括存储单元阵列(未示出)和配置为控制存储单元阵列的操作的控制电路(未示出)。存储单元阵列可以包括2D存储单元阵列或3D存储单元阵列。存储单元阵列可以包括多个存储单元。尽管每个存储单元都是设置为存储1位信息的单层单元(SLC),但是每个存储单元可以是设置为存储2位或更多位信息的单元,例如多层单元(MLC)、三层单元(TLC)和四层单元(QLC)。3D存储单元阵列可以包括垂直NAND串,其中至少一个存储单元垂直定向并位于另一存储单元上。
可以将电压VCC、VCCQ和VCCQ2等作为电源电压施加到UFS装置2200。电压VCC可以是用于UFS装置2200的主电源电压,并且可以在2.4V至3.6V的范围内。电压VCCQ可以是主要用于向UFS装置控制器2210供应低压的电源电压,并且可以在1.14V至1.26V的范围内。电压VCCQ2可以是用于主要向诸如MIPI M-PHY 2251之类的I/O接口供应低于电压VCC并且高于电压VCCQ的电压的电源电压,并且可以在1.7V至1.95V的范围内。可以通过调节器2260将电源电压提供给UFS装置2200的各个组件。调节器2260可以实现为一组单元调节器,其分别连接到上述电源电压中的不同电源电压。
根据本公开的一些实施例,提供了一种UFS***(例如,UFS***2000),包括:UFS主机(例如,UFS主机2100);UFS装置(例如,UFS装置2200);以及UFS接口(例如,UFS接口2300),用于UFS主机和UFS装置之间的通信,其中,UFS主机被配置为执行如上所述的数据存储方法。
图8为根据本发明的一实施例的应用了存储装置的数据中心3000的示图。
平台部分–服务器(应用程序/存储)
参照图8,数据中心3000可以是收集各种类型的数据并提供服务的设施,并且被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的***,并且可以是公司(诸如,银行)或政府机构所使用的计算***。数据中心3000可以包括应用服务器3100至3100n和存储服务器3200至3200m。根据实施例,可以不同地选择应用3100至3100n的数量和存储服务器3200至3200m的数量。应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可以彼此不同。
应用服务器3100或存储服务器3200可以包括处理器3110和3210以及存储器3120和3220中的至少一个。现在将以存储服务器3200为例进行描述。处理器3210可以控制存储服务器3200的所有操作,访问存储器3220,并且执行加载到存储器3220的指令和/或数据。存储器3220可以是双数据率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合内存立方体(HMC)、双列直插式内存模块(DIMM)、傲腾DIMM(Optane DIMM)或非易失性DIMM(NVMDIMM)。在一些实施例中,存储服务器3200中包括的处理器3210和存储器3220的数量可以被不同地选择。在一实施例中,处理器3210和存储器3220可以提供处理器-存储器对。在一实施例中,处理器3210的数量与存储器3220的数量可以彼此不同。处理器3210可以包括单核处理器或多核处理器。对于存储服务器3200的以上描述可以类似地应用于应用服务器3100。在一些实施例中,应用服务器3100可以不包括存储装置3150。存储服务器3200可以包括至少一个存储装置3250。根据实施例,存储服务器3200中包括的存储装置3250的数量可以被不同地选择。
平台部分–网络
应用程序服务器3100至3100n可以通过网络3300与存储服务器3200至3200m通信。网络3300可以通过使用光纤信道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质,并且可以使用具有高性能和高可用性的光开关。根据网络3300的访问方法,可以将存储服务器3200至3200m设置为文件存储、块存储或对象存储。
在一实施例中,网络3300可以是专用于存储的网络,例如存储区域网络(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并且根据FC协议(FCP)实现。作为另一示例,SAN可以是因特网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络并且根据TCP/IP上的SCSI或因特网SCSI(iSCSI)协议来实现。在另一实施例中,网络3300可以是通用网络,例如TCP/IP网络。例如,可以根据诸如以太网上的FC(FCoE)、网络附加存储(NAS)和结构上的NVMe(NVMe-oF)之类的协议来实现网络3300。
在下文中,将主要描述应用服务器3100和存储服务器3200。应用服务器3100的描述可以应用于另一应用服务器3100n,并且存储服务器3200的描述可以应用于另一存储服务器3200m。
应用服务器3100可以通过网络3300将用户或客户端请求存储的数据存储在存储服务器3200至3200m中的一个。此外,应用服务器3100可以通过网络3300从存储服务器3200至3200m中的一个获得由用户或客户端请求读取的数据。例如,应用程序服务器3100可以被实现为网络服务器或数据库管理***(DBMS)。
应用服务器3100可以通过网络3300访问包括在另一应用服务器3100n中的存储器3120n或存储装置3150n。或者,应用服务器3100可以通过网络3300访问包括在存储服务器3200至3200m中的存储器3220至3220m或存储装置3250至3250m。因此,应用服务器3100可以对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的指令。在这种情况下,可以将数据从存储服务器3200至3200m的存储装置3250至3250m通过存储服务器3200至3200m的存储器3220至3220m或直接移动到应用服务器3100至3100n的存储器3120至3120n。通过网络3300移动的数据可以是为了安全或隐私而加密的数据。
有机关系–接口结构/类型
现在将以存储服务器3200为例进行描述。接口3254可以提供处理器3210和控制器3251之间的物理连接以及网络接口卡(NIC)3240和控制器3251之间的物理连接。例如,可以使用直接附加存储(DAS)方案来实现接口3254,其中存储装置3250直接与专用电缆连接。例如,接口3254可以通过使用各种接口方案来实现,例如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和CF卡接口。
存储服务器3200可以进一步包括开关3230和网络互连(NIC)3240。开关3230可以经由处理器3210的控制来选择性地将处理器3210连接到存储装置3250,或者选择性地将NIC 3240连接到存储装置3250。
在一实施例中,NIC 3240可以包括网络接口卡和网络适配器。NIC 3240可以通过有线接口、无线接口、蓝牙接口或光接口连接到网络3300。NIC 3240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且通过主机总线接口连接到处理器3210和/或开关3230。主机总线接口可以被实现为接口3254的上述示例之一。在一实施例中,NIC 3240可以与处理器3210、开关3230和存储装置3250中的至少一个集成。
有机关系–接口操作
在存储服务器3200至3200m或应用服务器3100至3100n中,处理器可将命令发送到存储装置3150至3150n和3250至3250m或存储器3120至3120n和3220至3220m并编程或读取数据。在这种情况下,数据可以是通过ECC引擎校正了错误的数据。数据可以是对其执行数据总线倒置(DBI)操作或数据掩蔽(DM)操作的数据,并且可以包括循环冗余编码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
存储装置3150至3150n和3250至3250m可以响应于从处理器接收到的读取命令向NAND闪存装置3252至3252m发送控制信号和命令/地址信号。因此,当从NAND闪存装置3252至3252m读取数据时,可以输入读取使能(RE)信号作为数据输出控制信号,因此,可以将数据输出至DQ总线。可以使用RE信号产生数据选通信号DQS。取决于写入使能(WE)信号的上升沿或下降沿,命令和地址信号可以锁存在页面缓冲器中。
产品部分–SSD基本操作
控制器3251可以控制存储装置3250的所有操作。在一实施例中,控制器3251可以包括SRAM。控制器3251可以响应于写入命令将数据写入到NAND闪存装置3252,或者响应于读取命令从NAND闪存装置3252读取数据。例如,可以从存储服务器3200的处理器3210、另一存储服务器3200m的处理器3210m或应用服务器3100和3100n的处理器3110和3110n提供写入命令和/或读取命令。DRAM 3253可以临时存储(或缓冲)要写入到NAND闪存装置3252的数据或从NAND闪存装置3252读取的数据。并且,DRAM 3253可以存储元数据。这里,元数据可以是用户数据或由控制器3251生成的用于管理NAND闪存装置3252的数据。存储装置3250可以包括用于安全性或隐私性的安全元件(SE)。
根据本公开的一些实施例,提供了一种数据中心***(例如,例如,数据中心***300),包括:多个应用服务器(例如,应用服务器3100至3100n);以及多个存储服务器(例如,存储服务器3200至3200m),其中,每个存储服务器包括支持多流存储机制的存储装置,其中,多个应用服务器和多个存储服务器中的至少一个被配置为执行如上所述的数据存储方法。换言之,在一些实施例中,应用服务器3100至3100n中的应用服务器可被配置为执行如上所述的数据存储方法。在一些实施例中,存储服务器3200至3200m中的存储服务器可被配置为执行如上所述的数据存储方法。
根据本公开的实施例,提供了一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时使所述处理器执行如上所述的数据存储方法。
根据本公开的实施例,提供了一种数据存储控制装置,包括:处理器;存储器,存储有计算机程序,当所述计算机程序被处理器执行时,使所述处理器执行如上所述的数据存储方法。
图9是示出根据本公开的示例性实施例的数据存储装置900的结构的框图。该数据存储装置900例如可以是:智能手机、平板电脑、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。数据存储装置900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,数据存储装置900可包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现如上所述的数据存储方法。
在一些实施例中,数据存储装置900还可包括有:***设备接口903和至少一个***设备。处理器901、存储器902和***设备接口903之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口903相连。具体地,***设备包括:射频电路(Radio Frequency,RF)904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909。
***设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和***设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和***设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置在数据存储装置900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端1000的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端1000的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位数据存储装置900的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***、俄罗斯的格雷纳斯***或欧盟的伽利略***的定位组件。
电源909用于为数据存储装置900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,数据存储装置900还可包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915和/或接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置数据存储装置900的正面、背面或侧面。当数据存储装置900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在数据存储装置900的前面板。接近传感器916用于采集用户与数据存储装置900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与数据存储装置900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对数据存储装置900的限定,在一些实施例中,数据存储装置900可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
根据本公开的实施例,还可提供一种存储计算机程序的计算机可读存储介质,其中,当计算机程序被至少一个处理器运行时,促使至少一个处理器执行根据本公开的数据存储方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
Claims (13)
1.一种数据存储方法,包括:
基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID;
基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID;以及
分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
2.如权利要求1所述的数据存储方法,其中,第一访问属性信息包括以下项中的至少一个:创建信息、打开信息、修改信息、关闭信息和删除信息;
第二访问属性信息包括:访问顺序、访问频率和重复访问时间间隔。
3.如权利要求1所述的数据存储方法,其中,所述分配第一流ID的步骤包括:
对第一访问属性信息进行聚类,基于所述对第一访问属性信息进行聚类的结果确定第一流ID;或者
基于第一访问属性信息确定所述数据文件之间的相似度,基于所述数据文件之间的相似度确定第一流ID。
4.如权利要求1或3所述的数据存储方法,其中,所述分配第二流ID的步骤包括:
对第二访问属性信息进行聚类,基于所述对第二访问属性信息进行聚类的结果确定第二流ID;或者
基于第二访问属性信息确定所述元数据之间的相似度,基于所述元数据之间的相似度确定第二流ID。
5.如权利要求1所述的数据存储方法,其中,所述数据存储方法还包括:
在文件属性表中保存第一访问属性信息;以及
在元数据访问表中保存第二访问属性信息。
6.如权利要求1所述的数据存储方法,其中,第一子集与第二子集不交叉。
7.如权利要求1所述的数据存储方法,其中,第一流ID被嵌入在所述数据文件中,以及第二流ID被嵌入在所述元数据中。
8.一种数据存储的装置,包括:
分配单元,被配置为:
基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID,并基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID;以及
写入单元,被配置为:分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
9.一种数据存储装置,包括:
至少一个处理器,被配置为至少执行以下操作:
基于数据文件的第一访问属性信息,为所述数据文件分配支持多流的存储装置的多个流的第一子集的第一流标识ID,
基于所述数据文件的元数据的第二访问属性信息,为所述元数据分配所述多个流的第二子集的第二流ID,以及
分别基于第一流ID和第二流ID将所述数据文件和元数据写入所述存储装置的存储区域中。
10.一种数据存储***,包括:
主机,被配置为执行如权利要求1所述的数据存储方法;以及
所述存储装置。
11.一种应用了存储装置的***,包括:
主处理器;
存储器;以及
存储装置,支持多流Multi-stream,
其中,所述存储器存储有当由主处理器运行时使得所述主处理器执行如权利要求1-7中的任一项所述的数据存储方法的计算机程序。
12.一种数据中心***,包括:
多个应用服务器;以及
多个存储服务器,
其中,每个存储服务器包括支持多流的存储装置,其中,多个应用服务器和多个存储服务器中的至少一个被配置为执行如权利要求1-7中的任一项所述的数据存储方法。
13.一种存储有计算机程序的非暂时性计算机可读存储介质,其中,当所述计算机程序被处理器执行时使得所述处理器执行如权利要求1-7中的任一项所述的数据存储方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211574879.1A CN115793980A (zh) | 2022-12-08 | 2022-12-08 | 数据存储方法和数据存储的装置 |
US18/143,789 US20240193131A1 (en) | 2022-12-08 | 2023-05-05 | Data storage method and device for data storage |
EP23208698.3A EP4383059A1 (en) | 2022-12-08 | 2023-11-09 | Data storage method and device for data storage |
KR1020230175933A KR20240085876A (ko) | 2022-12-08 | 2023-12-06 | 데이터 저장 방법 및 데이터 저장 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211574879.1A CN115793980A (zh) | 2022-12-08 | 2022-12-08 | 数据存储方法和数据存储的装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115793980A true CN115793980A (zh) | 2023-03-14 |
Family
ID=85418086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211574879.1A Pending CN115793980A (zh) | 2022-12-08 | 2022-12-08 | 数据存储方法和数据存储的装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240193131A1 (zh) |
EP (1) | EP4383059A1 (zh) |
KR (1) | KR20240085876A (zh) |
CN (1) | CN115793980A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076387A (zh) * | 2023-08-22 | 2023-11-17 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317337A1 (en) * | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
US10509770B2 (en) * | 2015-07-13 | 2019-12-17 | Samsung Electronics Co., Ltd. | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
US11249664B2 (en) * | 2018-10-09 | 2022-02-15 | Western Digital Technologies, Inc. | File system metadata decoding for optimizing flash translation layer operations |
CN113448877A (zh) * | 2020-03-26 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于数据存储的方法、设备和计算机程序 |
KR20220049329A (ko) * | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
US11954346B2 (en) * | 2021-04-23 | 2024-04-09 | EMC IP Holding Company LLC | Using multi-stream storage devices in log structured storage system |
-
2022
- 2022-12-08 CN CN202211574879.1A patent/CN115793980A/zh active Pending
-
2023
- 2023-05-05 US US18/143,789 patent/US20240193131A1/en active Pending
- 2023-11-09 EP EP23208698.3A patent/EP4383059A1/en active Pending
- 2023-12-06 KR KR1020230175933A patent/KR20240085876A/ko unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076387A (zh) * | 2023-08-22 | 2023-11-17 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复*** |
CN117076387B (zh) * | 2023-08-22 | 2024-03-01 | 北京天华星航科技有限公司 | 基于磁带的海量小文件的快速归档恢复*** |
Also Published As
Publication number | Publication date |
---|---|
KR20240085876A (ko) | 2024-06-17 |
EP4383059A1 (en) | 2024-06-12 |
US20240193131A1 (en) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102020466B1 (ko) | 버퍼 메모리 장치를 포함하는 데이터 저장 장치 | |
KR20200022118A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
KR20150006614A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11921629B1 (en) | Method and device for data storage | |
EP4383059A1 (en) | Data storage method and device for data storage | |
CN114968949A (zh) | 缓存数据的方法、主机设备和存储*** | |
US11994934B2 (en) | Failure prediction method and device for a storage device | |
US20140258347A1 (en) | Grouping files for optimized file operations | |
KR20240025451A (ko) | 데이터 캐싱을 위한 방법 및 장치 | |
US20230084539A1 (en) | Computational storage device and storage system including the computational storage device | |
US20220129383A1 (en) | Electronic device, automotive device, and data center | |
KR20230071730A (ko) | 데이터 프로세싱 장치 및 그것의 동작 방법 | |
CN114281245A (zh) | 同步写方法及装置、存储***、电子设备 | |
US20240160511A1 (en) | Failure prediction apparatus and method for storage devices | |
EP4386557A1 (en) | Method and device for log structured merge-tree based key-value data storage | |
US20230393749A1 (en) | Method and device of storage data | |
US20230409200A1 (en) | Method and device for data storage | |
Hon | Hardware | |
EP4177758A1 (en) | A storage device and an operating method of a storage controller thereof | |
US20140351604A1 (en) | Electronic device and encryption control method | |
CN117055816A (zh) | 配置zns ssd的区域的方法和装置 | |
CN117008826A (zh) | 数据压缩方法和装置 | |
KR20230168390A (ko) | 스토리지 장치 및 전자 시스템 | |
KR20230067439A (ko) | 보안 프로세서 및 이의 동작 방법과 이를 포함하는 스토리지 장치 | |
CN114327254A (zh) | 存储数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |