用于将时间戳传输到存储系统的方法

xiaoxiao2020-7-22  53

专利名称:用于将时间戳传输到存储系统的方法
技术领域
本公开总体上涉及数据处理领域,并且更具体地涉及用于将时间戳从平台传送到存储系统以管理固态存储设备的耐久性和增强固态存储设备的预期寿命的方法和相关装置。
背景技术
移动和相对固定的平台可以包括硬件资源,例如用于将中央处理单元(CPU)耦合到时钟生成器的主电路板、图形卡、诸如随机存取存储器(RAM)的易失性存储器、闪速只读存储器(ROM)或专用非易失性(NV)存储空间、以及诸如硬盘驱动器(HDD)的大容量非易失性存储设备。平台还可以包括软件资源,例如基本输入/输出系统(BIOS)、虚拟机监视器 (VMM)、以及在VMM上运行的一个或多个客体操作系统(OS)。取决于平台的使用和形式,可以将诸如板上或可移除低延迟存储器之类的可选择的NV存储设备添加到平台,以取代HDD 或补充HDD。包括服务器、台式机、膝上型计算机、上网本、移动和其他手持设备的成本高效和低功率的平台正演化为要求具有降低的复杂度和成本的最小的功率消耗。平台偶尔在空闲或断电状态下操作以适应低功率要求。基于诸如NAND (not and)之类的NV存储设备的一些固态盘(SSD)具有耐久性规范,所述耐久性规范限制了在SSD的数据存储性能降低之前它们可以执行的编程/擦除周期数量。为了确保不过早地超过该耐久性限制,可以应用管理设备来确保在指定的生命期内不超过周期限制。缺少一种用于跟踪SSD的相对状态以指示在其生命期内SSD是如何和 /或何时被使用的机制来避免进行持续通电的假设。


在说明书的结尾部分特别指出并明确声明了作为本发明的主题。然而,通过阅读附图并参考以下的详细描述可以最好地理解本发明关于操作的组织和方法,以及其目标、 特征和优点,其中图1是被配置以与操作系统进行通信的存储系统的框图。图2是被配置以与操作系统进行通信的大容量存储系统和固态盘的框图。图3是描述了在其中可以实现本发明的实施例的平台的框图;图4是用于传输时间戳的命令排队格式化的命令的实施例;以及图5是描述了用于将时间戳传输到存储系统的方法的流程图。应该意识到,为了说明的简洁和清楚,附图中说明的元件未必按照比例绘制。例如,为了清楚,可以相对于其他元件放大一些元件的尺寸。此外,当认为合适时,会在附图中重复参考标号以指示相应的或类似的元件。
具体实施例方式在以下的详细描述中,阐述了用于将时间戳从平台传输到存储系统的多个具体细节,以提供对本发明的透彻理解。然而,本领域的技术人员将可以理解,可以在没有这些具体细节的情况下实现本发明。在其他实例中,没有详细地描述公知的方法、过程、部件和电路,以免模糊本发明。将时间戳从平台传输到诸如SSD的存储系统将是本领域中的进步,尤其是在存储系统是间歇地加电和具有管理其可用寿命的时间相关的和/或基于使用的特征的应用中。 用于提供反映具有存储器元件的存储系统的实际使用的准确数据的低成本和高效的方法可以延长该存储系统的服务寿命。该数据的使用可以使得存储系统能够跟踪和/或管理存储器元件使用和/或消耗的速率以避免存储系统的过早耗尽。例如,所述方法可以向存储系统通知在该存储系统处于待机或休眠状态和/或断电期间过去了多长时间,以管理该存储系统中的一个或多个消耗性资源并提高该存储系统的预期寿命。用于将时间戳从平台传输到存储系统的一种这样的方法可以包括识别用于接收和处理时间戳的存储系统。选择能够提供基准信号的时钟生成器并参考基准信号建立时间戳。将该时间戳写到数据分组中并且将该数据分组发送到存储系统。存储系统接收具有时间戳的数据分组并且由存储系统处理该时间戳。时间戳可以是单个时间值和/或时间戳可以是导致时间变化量的在两个时间值之间的时间改变。可以将时间变化量作为时间戳发送到存储系统以通知存储系统在存储系统被断电、处于休眠模式、处于待机模式、或其他空闲状态时已经过去了多长时间。可以使用包含多个时间戳的数据来更新一组消耗品的预算以管理存储系统的寿命并考虑当存储系统被断电、处于休眠、空闲或其它未使用时的时间。图1是被配置以与操作系统110进行通信的存储系统100的框图。操作系统110 负责活动的管理和协调以及平台资源的共享。操作系统110充当在平台上运行的应用程序的宿主(host)。文件系统120与操作系统110进行交互以存储和组织由平台用于数据的存储、组织、操作、导航、访问和检索的文件。在该实施例中,文件系统120还通过闪存管理软件130与存储系统100进行交互以用于文件的物理存储。例如,可以将存储系统100用作用于数据的快速和重复访问的非易失性数据存储单元和/或高速缓存存储单元。闪存管理软件130提供了允许文件系统120和/或操作系统110与存储系统100 进行交互的接口。在一个实施例中,闪存管理软件130可以提供一种机制来管理NAND存储器阵列中的坏块、提供较大块的小块仿真、通过应用磨损均衡算法减轻存储器阵列上的磨损效应、以及提供允许通过闪存控制器驱动器140与存储系统100进行文件级交互的接口。闪存控制器驱动器140是通过充当将来自闪存管理软件130的高级命令转换为闪存控制器150需要的低级命令的翻译器来允许闪存管理软件130与闪存控制器150进行交互的程序。闪存控制器150通常用来提供读、写和擦除功能,以及错误检测和传送去往和来自闪存设备160的数据。可以使用诸如存储器块或扇区之类的物理位置中的一个或多个寄存器来存储写入到闪存设备160和从闪存设备160读取的数据。可替代地,存储系统100可以是数据存储设备,例如使用固态存储器来存储持久数据的SSD。当提供较低的访问时间和延迟时,SSD可以仿真硬盘驱动器。在该实施例中 (未示出),通常以对图2的主机或平台200透明的、在SSD中运行的固件的形式,将闪存管理软件130嵌入到SSD中。这里,固件可以提供各种功能,包括闪存管理软件130以其他方式提供的功能。图2是包括被配置以与操作系统110进行通信的大容量存储系统240和固态盘 (SSD) 250的平台200的逻辑布局,所述固态盘(SSD) 250是图1的存储系统100的一个实施例。如图2所示,SSD 250可以补充大容量存储系统M0。可替换地,在另一实施例中,SSD 250可以用来取代大容量存储系统240并消除对大容量存储系统240的需要。在功能上, 操作系统110在与通过该操作系统110运行的一个或多个应用程序210进行交互时对固态盘250和大容量存储系统240进行读取和写入。在一个实施例中,应用程序210可以提供文字处理、电子表格、媒体播放器、矩阵存储器、以及一个或多个密码学功能。操作系统110 通过存储管理器驱动器220与大容量存储系统240进行交互,并且在使用或不使用存储器驱动器230的情况下与固态盘250进行交互。包括存储控制器260和大容量存储器280的大容量存储系统240的实施例可以是盘驱动器、联网的存储单元、磁带机、软盘驱动器、或诸如数字视频盘(DVD)和/或压缩盘 (CD)阅读机和/或写入机或它们的组合的光驱动器。固态盘250可以是使用串行高级技术附件(ATA)、并行ΑΤΑ、和/或通用串行总线(USB)接口连接到处理器的基于闪存的驱动器,或是使用高速输入/输出(I/O)控制器集线器(ICH)或平台控制集线器(PCH)连接到处理器的Intel Turbo存储器。可以将数据存储为单层单元(SLC)和/或多层单元(MLC) 格式。在替代实施例中,固态盘250可以提供读取和/或写入高速缓存功能,并且被设计来例如通过用固态功能替代或取代HDD功能来提高平台200的响应性(例如,减少的引导时间)和/或提供功率节省。在图2中,固态盘250包括SSD控制器270,其可以是连接到诸如串行ATA之类的接口的专用集成电路控制器(AHC)设备或集成驱动电子设备控制器(未示出)。固态盘250 还包括SSD存储器四0,该SSD存储器290包括一个或多个NAND和/或NOR闪速或相变(PC) 存储设备。在另一实施例中,固态盘250还可以包括存储器驱动器230和预引导软件形式的盘过滤选项只读存储器(ROM)以处理基本输入输出系统(BIOS)级的盘访问。在另一实施例中,固态盘250可以通过使用应用程序210中的安装和/或建立矩阵存储应用程序将固态盘 250绑定到平台200的大容量存储系统240,以与大容量存储系统240相关联。图3是描述了在其中可以实现本发明的实施例的平台200的框图。平台200可以是具有诸如处理器304的各种硬件部件302的移动站或相对固定的系统,其中所述处理器 304在本文中指代经由一个或多个系统总线306或其他通信路径或介质通信地耦合到各种其他部件的主机或中央处理单元(CPU)。例如,处理器304可以通信地耦合到一个或多个易失性或非易失性数据存储设备(例如,RAM 308、ROM 310、以及一个或多个大容量存储系统 240)。处理器304还可以通信地耦合到一个或多个网络接口控制器(NIC) 312、视频控制器、 集成驱动电子设备(IDE)控制器、小型计算机系统接口(SCSI)控制器、通用串行总线(USB) 控制器、输入/输出(I/O)端口、输入设备、诸如显示器的输出设备等。在图3的实施例中,处理器304包括第一处理单元314和第二处理单元316。可替换地,平台200可以包括具有一个处理单元的处理器304或每一个具有至少一个处理单元的多个处理器。在具有多个处理单元的系统中,使用超线程(HT)技术、或用于同时或大体上同时地执行多个线程的任何其他合适的技术,可以将这些处理单元实现为处理内核。在该实施例中,平台200被配置来使用实时时钟来实时跟踪并且包括时钟生成器318。时钟生成器318可以是包括谐振电路和放大器的电路,其生成用于平台200的同步操作的定时信号。来自时钟生成器318的定时信号可以是简单的对称方波或者它可以具有更复杂的波形。在图3的实施例中,时钟生成器318是经由系统总线306通信地耦合到处理器304的分离模块。可替换地,时钟生成器318可以通过芯片组320耦合到处理器304或者时钟生成器318可以是处理器304的部分(未示出)。芯片组320可以包括用于通信地耦合系统部件、以及其他逻辑和存储部件的一个或多个桥或集线器。图2的固态盘(SSD)250还可以经由系统总线306通信地耦合到处理器 304和/或固态盘250可以通过诸如USB或串行ATA端口之类的端口耦合到平台200。SSD 250还可以具有已经获得系统时间的主机驱动器。在另一实施例中(未示出),SSD 250可以取代大容量存储系统M0。可以将一些部件实现为具有用于与总线进行通信的接口(例如,PCI连接器) 的适配卡。在一个实施例中,可以将一个或多个设备实现为嵌入式控制器,其使用诸如可编程的或不可编程的逻辑设备或阵列、ASIC、嵌入式计算机、智能卡等之类的部件。为了该讨论的目的,术语“ROM”可以一般地用来指代非易失性存储设备,例如,可擦除可编程 ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速ROM、闪速存储器等。此外,术语“总线”指代共享的通信路径以及点到点路径。可以至少部分地由来自诸如键盘、鼠标等的传统输入设备的输入和/或从另外的机器、生物反馈、或其他输入源或信号接收的指令来控制平台200。平台200可以通过网络322(例如,通过NIC 312、调制解调器、或其他通信端口或耦合)使用到一个或多个远程数据平台的一个或多个连接。可以通过使用物理的和/或逻辑的网络322(例如,局域网 (LAN)、广域网(WAN)、内联网、互联网等)使平台200互连以构成数据处理环境。涉及网络 322的通信可以使用各种有线的和/或无线的短距离或长距离载波和协议,包括射频(RF)、 卫星、微波、电气和电子工程师协会(IEEE)802. 11,802. 16,802. 20、蓝牙、光的、红外线、线缆、激光等。还可以将802. 11协议称为无线保真(WiFi)协议。还可以将802. 16协议称为全球互通微波存取(WiMAX)或无线城域网络(无线MAN)协议,并且关于这些协议的信息目前在 grouper, ieee. org/groups/802/16/index, html 上可获得。本文可以参考数据来描述实施例,所述数据例如指令、函数、规程、数据结构、应用程序、配置设定等。为了本公开的目的,术语“程序”覆盖软件部件和构造的广泛范围,包括应用程序、驱动程序、进程、例程、方法、模块、以及子程序。术语“程序”可以用来指代完整编译单元(即,可以独立地编译的指令集合)、编译单元的集合、或编译单元的一部分。因此,术语“程序”可以用来指代当由平台200执行时可执行期望的一个或多个操作的指令的任何集合。平台200中的程序可以被认为是软件环境324的部件。例如,当平台200引导时,可以将BIOS 3 加载到RAM 308中并且在软件环境324 中执行。平台200还可以在软件环境3 中加载和运行VMMMS和/或一个或多个OS 110。 例如,如果平台200还没有被配置用于虚拟化,那么VMM 3 可以不是必需的,并且应用程序可以在OS 110上面运行。在其他实施例中,VMM 3 可以在软件环境324中的分离的虚拟机中启动各个客体OS和用户应用程序。图4是在其中可以实现本发明的实施例的、用于传输时间戳的命令分组400或数据分组的一个实施例。用于传输时间戳的命令分组400可以是具有降低的复杂性的非排队格式化的命令,或可替换地,是例如ATA或串行ATA(SATA)命令的排队格式化的命令,其中所述排队格式化的命令将时间戳直接地嵌入到命令分组400本身中,而没有明确地要求包括额外的数据分组。这里,用寄存器集合410和特征寄存器420来定义编排为命令代码64h 格式的一般非数据命令,以标记命令分组400的功能。可以将该实施例中的比特7(t)415 设置为值1以表明命令分组400正在被用来将时间戳传输到固态盘250。操作系统110可以确定命令分组400是否要被标记,并且响应于确定命令分组400要被标记,标记命令分组 400以表明命令分组400包括时间戳。根据图4的格式,当允许将其他标记值预留在特征寄存器420的比特6 0中时, 命令分组400可以用于其他功能。将命令分组400识别为时间戳允许将时间戳输入到命令分组400的第一字段430和第二字段440中。在扇区计数450中定义的TAG值445与用于 SATA原生命令队列(NCQ)命令的已有字段定义相一致,由此允许在固态盘250处有其他命令待完成时执行NCQ命令。命令分组400还可以由嵌入式命令类型470来表征。图5是描述了在其中可以实现本发明的实施例的、用于将时间戳传输到存储系统的方法的流程图。在单元500,平台200识别一个或多个存储系统100,例如,能够例如通过存储时间戳或识别时间戳来接收和处理时间戳以更新生命周期预算的固态盘250。生命周期预算可以简单地是由时间度量或类似的参数表示的为SSD 250指定的寿命。例如,可以根据IDENTIFY DEVICE或IDENTIFY PACEKT DEVICCE的定义完成接收和处理时间戳。在一个实施例中,时间戳是根据建立的时间单元(例如具有微秒粒度的时间单元)的、基于基准信号的64位的值。在另一实施例中,时间戳是与日期和/或日期和时间相关联的实时值。在另一实施例中,时间戳是表示时间的两个实例之间的时间差的时间变化量。在单元510,平台200识别用于提供基准信号的时钟生成器318。在单元520基于基准信号建立时间戳,并且用嵌入在命令分组400中的时间戳构成命令分组400或数据分组(单元530)。可以基于周期的、或基于编程的、或响应于诸如事件的触发建立具有时间戳值的时间戳。此外,操作系统110可以首先确定是否要对事件加时间戳,并且响应于确定要对事件加时间戳,用时间戳值对该事件加时间戳。可以由单个情况(例如通电事件、断电事件)来触发将时间戳传输到一个或多个存储系统的时间和频率的时间安排,或者其可以是基于运行期系统事件或计时器的已知的重复。时间戳可以是单个时间值和/或时间戳可以是导致时间变化量的在两个时间值之间的改变。可以将时间变化量发送到存储系统100以通知存储系统100在存储系统100被断电、处于休眠模式、待机模式、或其他空闲模式时已经过去了多长时间。在优选实施例中,时间戳被提供来跟踪在固态盘250被断电时过去的时间量。例如,平台200可以根据建立的策略(例如在每一个时间周期传输时间戳)对事件加时间戳。 在诸如固态盘250的存储系统中识别存储单元,并且在单元M0,将具有嵌入的时间戳的命令分组400传送到固态盘250。由固态盘250处理具有时间戳的命令分组400。可替换地, 可以将每一个命令分组400存储在固态盘250中受保护的单元。此外,可以擦除每一个命令分组400,和/或由另一个命令分组400或其他数据重写该每一个命令分组400。用于将时间戳传输到诸如固态盘250的存储系统的替代方法可以使用利用日志页的通信信道。可以通过分配的或预留的日志页单元,使用包括自监控分析和报告技术(SMART)、通用日志、SMART命令传输(SCT)的一个或多个ATA协议来获取数据或将数据存储在存储系统中。通常,特定的日志页地址是512字节长度。时间戳可以使用整个日志页或仅日志页的一部分来存储时间戳。可以通过诸如WRITE LOG EXT或WRITE L0GDMAEXT的写入命令,通过定义的协议使用分配的日志页寄存器来执行时间戳的传输。可适用的,一般可以经由体现为在主机处理器304和微控制器上的代码指令的适合的固件或软件的执行来实现本文讨论的操作。因此,本发明的实施例可以包括在某种形式的处理核心上执行的或在机器可读介质之上或之中实现或完成的指令的集合。机器可读介质包括用于以机器(例如,计算机)可读的形式存储或发送信息的任何机构。例如,机器可读介质可以包括制品,例如只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;以及闪速存储设备等。此外,机器可读介质可以包括传播信号,例如电的、光的、 声的或其他形式的传播信号(例如,载波、红外信号、数字信号等)。在以下的描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。 应该理解,这些术语并非旨在作为彼此的同义词。相反,在特定的实施例中,“连接”可以用于表明两个或更多元件相互之间是直接物理或电连接的,而“耦合”还可以意味着两个或更多元件不是直接地彼此相连的,但是仍然相互协作或彼此交互。尽管本文已经说明和描述了本发明的某些特征,但是本领域技术人员现在将可以想到许多修改、替换、改变以及等价物。因此,应当理解,所附权利要求旨在覆盖落在本发明的真实精神之内的所有这种修改和改变。
权利要求
1.一种用于对存储系统加时间戳的方法,包括 识别用于接收和处理时间戳的所述存储系统; 选择用于提供基准信号的时钟生成器; 参考所述基准信号建立所述时间戳;构成包括所述时间戳的数据分组; 将所述数据分组发送到所述存储系统;以及处理所述数据分组以更新生命周期预算。
2.根据权利要求1所述的方法,还包括 响应于事件建立所述时间戳。
3.根据权利要求2所述的方法,还包括确定是否要对所述事件加时间戳,以及响应于确定要对所述事件加时间戳,用所述时间戳对所述事件加时间戳。
4.根据权利要求2所述的方法,其中,所述事件是通电事件。
5.根据权利要求1所述的方法,其中,所述时间戳是时间变化量。
6.根据权利要求1所述的方法,还包括将所述数据分组存储在所述存储系统中的存储单元中。
7.根据权利要求6所述的方法,其中,使用日志页将所述数据分组存储在所述存储单元中。
8.一种用于由主机传输时间戳的方法,包括 由所述主机检测触发;响应于检测到所述触发,生成包括时间戳的命令分组; 标记所述命令分组以指示所述命令分组包括所述时间戳; 识别用于处理所述命令分组的存储系统;以及由所述存储系统处理所述命令分组。
9.根据权利要求8所述的方法,还包括确定是否要标记所述命令分组,并且响应于确定要标记所述命令分组,标记所述命令分组以指示所述命令分组包括所述时间戳。
10.根据权利要求9所述的方法,其中,所述触发是通电事件。
11.根据权利要求8所述的方法,其中,所述时间戳是时间变化量。
12.根据权利要求8所述的方法,还包括在所述存储系统中分配受保护的单元并且将所述命令分组写入到所述受保护的单元。
13.根据权利要求8所述的方法,其中,使用日志页将所述命令分组写入到所述存储系统。
14.一种提供指令的机器可访问介质,当其被访问时使得机器执行包括以下步骤的操作识别用于接收和存储时间戳的存储系统; 选择用于提供基准信号的时钟生成器; 参考所述基准信号建立所述时间戳; 构成包括所述时间戳的数据分组;将所述数据分组发送到所述存储系统;以及处理所述数据分组以更新生命周期预算。
15.根据权利要求14所述的机器可访问介质,还包括 响应于事件建立所述时间戳。
16.根据权利要求15所述的方法,还包括确定是否要对所述事件加时间戳,以及响应于确定要对所述事件加时间戳,用所述时间戳的值对所述事件加时间戳。
17.根据权利要求15所述的方法,其中,所述事件是通电事件。
18.根据权利要求14所述的方法,其中,所述时间戳是时间变化量。
19.根据权利要求14所述的方法,还包括将所述数据分组存储在所述存储系统中的存储单元中。
20.根据权利要求19所述的方法,其中,使用日志页将所述数据分组存储在所述存储单元中。
全文摘要
本文一般地描述了用于将时间戳传输到存储系统的方法的实施例。可以描述和声明其他实施例。
文档编号G06F3/06GK102165406SQ200980137446
公开日2011年8月24日 申请日期2009年9月28日 优先权日2008年9月30日
发明者B·迪斯, K·格里姆斯鲁德, R·L·库尔森 申请人:英特尔公司

最新回复(0)