将数据写入存储设备的方法、装置及存储设备的制造方法_2

文档序号:9471081阅读:来源:国知局
实现控制电路104。控制电路104可以是FPGA (Field-Programmable Gate Array,现场可编程门阵列)、ASIC(Applicat1n Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制电路104也可以包括处理器或者控制器。
[0024]根据本发明的一个实施例,主机101向存储设备102发出读出请求或者写入请求。控制电路104经由接口 103接收到该读出请求或写入请求。
[0025]根据本发明的另一个实施例,存储设备102并非直接耦合到主机101,而是通过中间设备(未示出)耦合到主机101。中间设备可耦合多个存储设备102,并向主机101呈现出单一的存储空间或彼此独立的多个存储空间。
[0026]图2示出了根据本发明实施例的存储系统的体系结构图。在图2的实施例中,应用202通过文件系统204提供的接口发出存储请求,存储请求可以是诸如读请求、写请求的存储设备访问请求。存储请求还可以包括访问下层装置(诸如闪存转换层206(FTL,FlashTranslat1n Layer)或存储介质208)提供的特性。例如,应用202可以向存储系统的下层装置发出诸如垃圾回收请求,或者在读、写请求中附加相关信息,附加的相关信息可以指示该写请求是随机写请求,和/或该写请求所对应的地址或数据将被频繁更新。附加的相关信息还可以指示该写请求是随机写请求和/或该写请求所对应的地址或数据将很少被更新或不会被更新。该附加的相关信息也可以指示该写请求是顺序写请求或将有多组数据的连续写请求。该附加的相关信息还可以指示应用202不能确定该请求的特性,例如,不能确定该写请求对应的地址或数据是否会被频繁修改。
[0027]应用202可以是诸如字处理程序的客户引用,也可以操作系统进程或服务器进程。
[0028]文件系统204可以在逻辑地址空间上管理或维护存储设备,将存储系统抽象为提供文件、目录服务的设备,或提供“键-值”服务的设备。
[0029]FTL206主要负责在逻辑地址空间与存储介质208的物理地址空间之间的来回转换。通过逻辑地址空间与物理地址空间之间的映射来实现转换。映射的粒度可以基于数据块,也可以基于数据页。每个数据块可包括多个数据页。基于数据块的映射需要较少的存储空间存储映射表,而基于数据页的映射需要较大的存储空间存储映射表。也可以混合使用基于块的映射与基于页的映射。
[0030]存储介质208是由诸如闪存组成的物理存储设备。
[0031]文件系统204或FTL206并不是必须的,如果需要的话,应用202也可以直接访问并维护存储介质208。文件系统204、FTL206可以位于运行应用202的主机或服务器中,也可以集成于存储设备中。文件系统204、FTL206可以由软件、硬件、固件或其组合实现。
[0032]图3示出了根据本发明实施例的存储设备的物理存储空间的分布。存储设备302的物理存储空间包括普通数据区304、热数据区306以及冷数据区306。可用现有技术提供的通常方式使用普通数据区,用来存储数据。在根据本发明的实施例中,热数据区306用来存储频繁更新的数据,冷数据区308用来存储极少更新或不会被更新的数据,而普通数据区304用来存储其他数据,例如无法确定其更新频率的数据。
[0033]在进一步的优选实施例中,热数据区306用来存储随机写入且频繁更新的数据,冷数据区308用来存储随机写入且极少更新的数据,而普通数据区用来存储顺序写入的数据。还可以在存储设备302中提供随机数据区310,用来存储随机写入的、但无法确定其更新频率的数据。
[0034]在进一步的实施例中,可以提供更多的数据区,分别用来存储具有不同更新频率的数据。例如,可以提供第四数据区,用于存储比热数据区306中的数据的更新频率低,但比冷数据区306中的数据的更新频率高的数据;以及提供第五数据区,用来存储比第四数据区中的数据的更新频率低,但比冷数据区306中的数据的更新频率高的数据。
[0035]普通存储区304、热数据区306、冷数据区308以及随机数据区310无需位于存储设备302的物理存储空间中的固定位置。S卩,普通存储区304、热数据区306、冷数据区308以及随机数据区310无需关联于特定的物理存储块。而是可以由运行时的状态信息指示各个存储区的位置和/或大小。
[0036]一般而言,普通数据区304具有相对多的存储块因而具有相对大的存储容量,而热数据区306、冷数据区308具有相对少的存储块。随机数据区310也具有相对少的存储块。这是因为在一般的应用202 (见图2)中,频繁更新的数据或极少更新的数据在所有需要更新的数据中所占的比例较低。以及因而,优选地,根据应用202的特点而调整普通数据区304、热数据区306以及冷数据区308和/或随机数据区310的大小。对普通数据区304、热数据区306以及冷数据区308和/或随机数据区310的大小的调整,可根据各数据区的实际使用情况而实施;也可以在应用202、文件系统204或FTL206的指示下实施。例如,应用202知晓其将随机而频繁地更新一组数据,应用202可指示存储设备302将热数据区306调整为较大的容量,以减少数据更新发生时,由于热数据区耗尽所带来的垃圾回收操作。类似地,应用202也可知晓某些数据的更新频率会很低,例如web服务器所维护的静态网页数据,应用202可指示存储设备302将冷数据区308调整为较大的容量。
[0037]现有技术中已经揭示了将频繁更新的数据集中存储在热数据区306所带来的益处。其使得热数据区306由于被频繁更新而聚集了较多无效数据,从而降低了对有效数据的不必要的迁移。
[0038]与热数据区306的情况相反,冷数据区308能够聚集较多的有效数据,从而由于无效数据较少而不必进行迁移。并且,随着时间流逝,在存储设备304中,冷数据区308的物理存储块的磨损程度较其他存储块相对低,在需要实施擦除均衡操作时,可将磨损程度高的存储块与冷数据区308的存储块进行交换,从而简化了寻找用于替换的存储块的过程。优选地,将热数据区306的存储块与冷数据区308的存储块交换,使得旧的热数据区变成冷数据区,而旧的冷数据区变成热数据区。在一些实施例中,将热数据区306的存储块与普通数据区304的存储块交换。在依然一些实施例中,将冷数据区308的存储块与普通数据区304的存储块交换。
[0039]在进一步的实施例中,基于块映射,将逻辑块地址映射为普通数据区304中的物理块地址;而基于页映射,将逻辑页地址映射为热数据区306、冷数据区308和/或随机数据区310中的物理页地址。基于页的地址映射能带来较高的存储设备的存储空间利用率并降低写放大,但需要更多的内存存储空间来存储映射表。基于块的地址映射所需要的存储映射表的存储空间相对较小。在另一些实施例中,对于普通数据区304、热数据区306以及冷数据区308都实施基于块的映射。在依然另一些实施例中,对于普通数据区304、热数据区306以及冷数据区308都实施基于页的映射。
[0040]图4是根据本发明实施例的将数据写入存储设备的流程图。接收数据写入请求(402),确定写入请求的类型(404)。数据写入请求可来自用户应用程序、操作系统或者服务器;数据写入请求也可以来自文件系统或者闪存转换层(FTL)。写入请求的类型包括但不限于:该写入请求是随机写请求,该写请求所对应的地址或数据将被频繁更新,该写请求是随机写请求和/或该写请求所对应的地址或数据将很少被更新或不会被更新,该写请求是顺序写请求或将有多组数据的连续写请求,和/或尚不确定该请求的特性。
[0041]在一个实施例中,基于应用程序提供的信息确定写入请求的类型。例如应用程序可在写请求中附加相关信息,附加的相关信息可以指示该写入请求是随机写请求,和/或该写请求所对应的地址或数据将被频繁更新。附加的相关信息还可以指示该写请求是随机写请求和/或该写请求所对应的地址或数据将很少被更新或不会被更新。该附加的相关信息也可以指示该写请求是顺序写请求或将有多组数据的连续写请求。该附加的相关信息还可以指示应用程序不能确定该请求的特性,例如,不能确定该写请求对应的地址或数据是否会被频繁修改。
[0042]在依然一个实施例中,基于写入请求的上下文确定写入请
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1