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

文档序号:9471081阅读:来源:国知局
求的类型。例如,基于发出写入请求的用户、用户组、应用程序、应用程序类型和/或当前的会话来确定写入请求类型。
[0043]在依然一个实施例中,基于数据写入请求所指示的逻辑地址,确定该数据写入请求的类型。例如,建立地址与该地址的写入频率的映射表。基于写入频率确定针对与该频率相对应的地址的写入请求的类型。又例如,记录最近若干次写入请求的地址,基于最近最少访问(LRU)算法或最近最多访问(MRU)算法而确定写入请求的类型。
[0044]在依然一个实施例中,基于数据写入请求所指示的数据,确定该数据写入请求的类型。例如可基于频率或者LRU、MRU等算法确定写入请求的类型。所属领域技术人员将意识到,存在其他识别写入请求的类型的方式。
[0045]当判断数据写入请求为第一类型时,将该数据写入请求对应的数据写入热数据区(406)。在该过程中,可伴随着从固态存储设备的热数据区分配存储块的操作。在一个实施例中,第一类型指示该数据写入请求所写入的数据会被频繁更新;在依然一个实施例中,第一类型指示该数据写入请求为逻辑地址随机分布的随机写请求且所写入的数据会被频繁更新。
[0046]当该数据写入请求为第二类型时,将该数据写入请求对应的数据写入该冷数据区(408)。在该过程中,可伴随着从固态存储设备的冷数据区分配存储块的操作。在一个实施例中,第二类型指示该数据写入请求所写入的数据将极少被更新。在依然另一个实施例中,第二类型指示该数据写入请求为逻辑地址随机分布的随机写请求且所写入的数据将极少被更新。
[0047]当该数据写入请求为第三类型时,将该数据写入请求对应的数据写入该第三存储区(410)。在该过程中,可伴随着从固态存储设备的第三存储区分配存储块的操作。在一个实施例中,第三类型指示该数据写入请求所写入的数据被更新的特性不同于上述第一类型或第二类型的指示。在依然一个实施例中,第三类型指示尚无法确定该数据请求的特性。
[0048]图5是根据本发明实施例的数据写入请求的地址与访问数量的对应关系的曲线图。图5中,横坐标是写入请求的地址,纵坐标是一段时间内写入请求发生的数量。图5的曲线图可通过测试、模拟、仿真或调优的过程获得。也可以在系统运行时对访问请求进行统计得到。通过图5可知,在地址范围A1-A2之间的写入请求发生频率较高,而地址范围小于A3或大于A4的写入请求发生频率较低。而地址范围在A3-A1或A2-A4之间的写入请求,其发生频率的特征并不明显。
[0049]在一个实施例中,根据地址范围A1-A2的写请求数量或频率调整热数据区306的大小。根据地址小于A3和或地址大于A4的写请求的数量或频率调整冷数据区308的大小。根据地址范围A3-A1或地址范围A2-A4的写请求的数量或频率调整普通数据区304的大小。
[0050]在另一个实施例中,根据地址范围A1-A2的随机写请求数量或频率调整热数据区306的大小。根据地址小于A3和或地址大于A4的写请求的数量或频率调整冷数据区308的大小。根据地址范围A3-A1或地址范围A2-A4的写请求的数量或频率调整普通数据区304或随机数据区310的大小。
[0051]在依然另一个实施例中,统计写入请求发生的时间,以获取写入请求在时间上的分布,或者与地址相关联的写入请求在时间上的分布。进而确定写请求是随机地址的写请求或连续地址的写请求,或者确定写请求的地址分布的随机程度。根据随机地址的写请求的数量或频率而调整热数据区306、冷数据区308、随机数据区310和/或普通数据区304的大小。
[0052]图6是根据本发明实施例的计算机系统的框图。计算机600可实施根据本发明实施例的方法,以将数据写入存储设备。
[0053]计算机600包括主板610。主板610上布置有中央处理单元(CPU, CentralProcessing Unit) 612以及扩展卡614。主板610上还可布置有芯片组、存储器等部件。扩展卡614用于将多个存储盘稱合到计算机600。扩展卡614可通过诸如PCIE (PeripheralComponent Interconnect Express,快速夕卜围组件互连)、PCI (Peripheral ComponentInterconnect,外围组件互连)等多种接口稱合到主板610。扩展卡614可通过多种接口稱合存储盘,多种接口包括但不限于SATA (Serial Advanced Technology Attachment,串行高级技术附件)、USB (Universal Serial Bus,通用串行总线)、PCIE、SCSI (Small ComputerSystem Interface,小型计算机系统接口)、IDE (Integrated Drive Electronics,集成驱动器电子)等。多个存储盘包括盘620、622、624和626。扩展卡614可耦合不同数量的存储盘。扩展卡614中可包括闪存转换层(Flash Translat1n Layer, FTL)部件,用以将基于逻辑地址的存储盘访问请求转换为基于物理地址的存储盘访问请求。存储盘可以是固态盘,固态盘以闪存芯片作为存储介质,固态盘也适用于其他类型的存储芯片,例如,相变存储器、电阻存储器、铁电存储器等。
[0054]在一个实施例中,主板610中可以不包括扩展卡614,而通过设置在主板610上的诸如PCIE、IDE、SCS1、和/或SATA等接P,将盘620、622、624和626耦合到主板610。以及,在计算机600的操作系统或应用程序中提供闪存转换层软件,用以将基于逻辑地址的存储盘访问请求转换为基于物理地址的存储盘访问请求。还可以将闪存转换层部件设置在CPU、芯片组或其他集成电路中。
[0055]扩展卡614上可布置有控制电路,用以实施根据本发明实施例的方法来控制对盘620、622、624、626 的数据写入。控制电路可以是FPGA(Field-programmable g ate array,现场可编程门阵列)、ASIC(Applicat1n Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制电路也可以包括一个或多个处理器或者控制器。闪存转换层部件可在FPGA、ASIC中以硬件电路形式实现,也可采用运行在处理器或控制器中的软件形式实现。
[0056]在一个实施例中,可将例如盘620设置为冷数据区,将盘622设置为热数据区,而将盘624-626设置为随机数据区。将盘622设置为热数据区,会将磨损集中在盘622上,进而可通过替换盘622来有效地实施系统维护。在另一个实施例中,热数据区和/或冷数据区可位于盘620-626中的同一个盘上。在依然另一个实施例中,热数据区和/或冷数据区可位于盘620-626中的多个盘上。
[0057]图1是根据本发明实施例的存储设备的框图。存储设备700可实施根据本发明实施例的方法,以将数据写入存储设备。上面在图6中已经公开了根据本发明实施例的计算机系统的框图。而图7的实施例为通过网络提供存储服务的存储设备。存储设备700包括背板710。背板710上布置有控制器714。背板710上还可布置有芯片组、存储器等部件。控制器714用于将多个存储盘耦合到存储设备700。控制器714可通过多种接口耦合存储盘,多种接口包括但不限于SATA、USB、PC1、PCIE、SCS1、IDE等。控制器714还可通过芯片组或者扩展卡间接耦合到存储盘。多个存储盘包括盘720、722、724和726。控制器714可耦合不同数量的存储盘。控制器714中可包括闪存转换层(Flash Translat1n Layer, FTL)部件,用以将基于逻辑地址的存储盘访问请求转换为基于物理地址的存储盘访问请求。存储盘可以是固态盘,固态盘以闪存芯片作为存储介质,固态盘也适用于其他类型的存储芯片,例如,相变存储器、电阻存储器、铁电存储器等。
[0058]在一个实施例中,在存储设备700的操作系统或其他程序中提供闪存转换层软件,用以将基于逻辑地址的存储盘访问请求转换为基于物理地址的存储盘访问请求。还可以将闪存转换层部件设置在CPU、芯片组或其他集成电路中。
[0059]控制器714,可用以实施根据本发明实施例的方法来控制对盘720、722、724、726的访问。控制器714可以是FPGA、AS
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1