CN102165406B - 用于将时间戳传输到存储系统的方法 - Google Patents
用于将时间戳传输到存储系统的方法 Download PDFInfo
- Publication number
- CN102165406B CN102165406B CN200980137446.6A CN200980137446A CN102165406B CN 102165406 B CN102165406 B CN 102165406B CN 200980137446 A CN200980137446 A CN 200980137446A CN 102165406 B CN102165406 B CN 102165406B
- Authority
- CN
- China
- Prior art keywords
- storage system
- timestamp
- packet
- event
- platform
- 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
Links
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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0625—Power saving in storage systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本文一般地描述了用于将时间戳传输到存储系统的方法的实施例。可以描述和声明其他实施例。
Description
技术领域
本公开总体上涉及数据处理领域,并且更具体地涉及用于将时间戳从平台传送到存储系统以管理固态存储设备的耐久性和增强固态存储设备的预期寿命的方法和相关装置。
背景技术
移动和相对固定的平台可以包括硬件资源,例如用于将中央处理单元(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可以补充大容量存储系统240。可替换地,在另一实施例中,SSD 250可以用来取代大容量存储系统240并消除对大容量存储系统240的需要。在功能上,操作系统110在与通过该操作系统110运行的一个或多个应用程序210进行交互时对固态盘250和大容量存储系统240进行读取和写入。在一个实施例中,应用程序210可以提供文字处理、电子表格、媒体播放器、矩阵存储器、以及一个或多个密码学功能。操作系统110通过存储管理器驱动器220与大容量存储系统240进行交互,并且在使用或不使用存储器驱动器230的情况下与固态盘250进行交互。
包括存储控制器260和大容量存储器280的大容量存储系统240的实施例可以是盘驱动器、联网的存储单元、磁带机、软盘驱动器、或诸如数字视频盘(DVD)和/或压缩盘(CD)阅读机和/或写入机或它们的组合的光驱动器。固态盘250可以是使用串行高级技术附件(ATA)、并行ATA、和/或通用串行总线(USB)接口连接到处理器的基于闪存的驱动器,或是使用高速输入/输出(I/O)控制器集线器(ICH)或平台控制集线器(PCH)连接到处理器的Turbo存储器。可以将数据存储为单层单元(SLC)和/或多层单元(MLC)格式。在替代实施例中,固态盘250可以提供读取和/或写入高速缓存功能,并且被设计来例如通过用固态功能替代或取代HDD功能来提高平台200的响应性(例如,减少的引导时间)和/或提供功率节省。
在图2中,固态盘250包括SSD控制器270,其可以是连接到诸如串行ATA之类的接口的专用集成电路控制器(ASIC)设备或集成驱动电子设备控制器(未示出)。固态盘250还包括SSD存储器290,该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可以取代大容量存储系统240。
可以将一些部件实现为具有用于与总线进行通信的接口(例如,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 326加载到RAM 308中并且在软件环境324中执行。平台200还可以在软件环境324中加载和运行VMM328和/或一个或多个OS 110。例如,如果平台200还没有被配置用于虚拟化,那么VMM 328可以不是必需的,并且应用程序可以在OS 110上面运行。在其他实施例中,VMM 328可以在软件环境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的存储系统中识别存储单元,并且在单元540,将具有嵌入的时间戳的命令分组400传送到固态盘250。由固态盘250处理具有时间戳的命令分组400。可替换地,可以将每一个命令分组400存储在固态盘250中受保护的单元。此外,可以擦除每一个命令分组400,和/或由另一个命令分组400或其他数据重写该每一个命令分组400。
用于将时间戳传输到诸如固态盘250的存储系统的替代方法可以使用利用日志页的通信信道。可以通过分配的或预留的日志页单元,使用包括自监控分析和报告技术(SMART)、通用日志、SMART命令传输(SCT)的一个或多个ATA协议来获取数据或将数据存储在存储系统中。通常,特定的日志页地址是512字节长度。时间戳可以使用整个日志页或仅日志页的一部分来存储时间戳。可以通过诸如WRITE LOG EXT或WRITE LOGDMAEXT的写入命令,通过定义的协议使用分配的日志页寄存器来执行时间戳的传输。
可适用的,一般可以经由体现为在主机处理器304和微控制器上的代码指令的适合的固件或软件的执行来实现本文讨论的操作。因此,本发明的实施例可以包括在某种形式的处理核心上执行的或在机器可读介质之上或之中实现或完成的指令的集合。机器可读介质包括用于以机器(例如,计算机)可读的形式存储或发送信息的任何机构。例如,机器可读介质可以包括制品,例如只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;以及闪速存储设备等。此外,机器可读介质可以包括传播信号,例如电的、光的、声的或其他形式的传播信号(例如,载波、红外信号、数字信号等)。
在以下的描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应该理解,这些术语并非旨在作为彼此的同义词。相反,在特定的实施例中,“连接”可以用于表明两个或更多元件相互之间是直接物理或电连接的,而“耦合”还可以意味着两个或更多元件不是直接地彼此相连的,但是仍然相互协作或彼此交互。
尽管本文已经说明和描述了本发明的某些特征,但是本领域技术人员现在将可以想到许多修改、替换、改变以及等价物。因此,应当理解,所附权利要求旨在覆盖落在本发明的真实精神之内的所有这种修改和改变。
Claims (26)
1.一种用于对存储系统加时间戳的方法,包括:
由平台识别用于接收和处理时间戳的所述存储系统;
由所述平台选择用于提供基准信号的时钟生成器;
由所述平台参考所述基准信号建立所述时间戳;
由所述平台构成包括所述时间戳的数据分组;
由所述平台将所述数据分组发送到所述存储系统;以及
由所述存储系统利用所述数据分组中的时间戳处理所述数据分组以更新生命周期预算,从而管理所述存储系统中的消耗性资源以及的存储系统寿命。
2.根据权利要求1所述的方法,还包括:
响应于事件建立所述时间戳。
3.根据权利要求2所述的方法,还包括:
确定是否要对所述事件加时间戳,以及响应于确定要对所述事件加时间戳,用所述时间戳对所述事件加时间戳。
4.根据权利要求2所述的方法,其中,所述事件是通电事件。
5.根据权利要求1所述的方法,其中,所述时间戳是时间变化量。
6.根据权利要求1所述的方法,还包括:
将所述数据分组存储在所述存储系统中的存储单元中。
7.根据权利要求6所述的方法,其中,使用日志页将所述数据分组存储在所述存储单元中。
8.根据权利要求1所述的方法,其中,所述数据分组向所述存储系统通知当所述存储系统处于空闲状态时已经过去的时间量,所述方法还包括:
由所述存储系统使用所述已经过去的时间量来管理存储系统资源使用和消耗的速率。
9.根据权利要求1所述的方法,其中,所述存储系统包括固态盘,所述方法还包括:
由所述固态盘使用所述数据分组中的所述时间戳来跟踪和管理所述固态盘中的存储器元件使用和消耗的速率。
10.一种用于由主机传输时间戳的方法,包括:
由所述主机检测触发;
响应于检测到所述触发,由所述主机生成包括时间戳的命令分组;
由所述主机标记所述命令分组以指示所述命令分组包括所述时间戳;
由所述主机识别用于处理所述命令分组的存储系统;以及
由所述存储系统利用所述命令分组中的时间戳处理所述命令分组以更新生命周期预算,从而管理所述存储系统的消耗性资源和存储系统寿命。
11.根据权利要求10所述的方法,还包括:
确定是否要标记所述命令分组,并且响应于确定要标记所述命令分组,标记所述命令分组以指示所述命令分组包括所述时间戳。
12.根据权利要求11所述的方法,其中,所述触发是通电事件。
13.根据权利要求10所述的方法,其中,所述时间戳是时间变化量。
14.根据权利要求10所述的方法,还包括:
在所述存储系统中分配受保护的单元并且将所述命令分组写入到所述受保护的单元。
15.根据权利要求10所述的方法,其中,使用日志页将所述命令分组写入到所述存储系统。
16.根据权利要求10所述的方法,其中,所述数据分组向所述存储系统通知当所述存储系统处于空闲状态时已经过去的时间量,所述方法还包括:
由所述存储系统使用所述已经过去的时间量来管理存储系统资源使用和消耗的速率。
17.根据权利要求10所述的方法,其中,所述存储系统包括固态盘,所述方法还包括:
由所述固态盘使用所述数据分组中的所述时间戳来跟踪和管理所述固态盘中的存储器元件使用和消耗的速率。
18.一种用于对存储系统加时间戳的装置,包括:
用于由所述平台识别用于接收和存储时间戳的所述存储系统的模块;
用于由所述平台选择用于提供基准信号的时钟生成器的模块;
用于由所述平台参考所述基准信号建立所述时间戳的模块;
用于由所述平台构成包括所述时间戳的数据分组的模块;
用于由所述平台将所述数据分组发送到所述存储系统的模块;以及
用于由所述存储系统利用所述数据分组中的时间戳处理所述数据分组以更新生命周期预算,从而管理所述存储系统的消耗性资源以及存储系统寿命的模块。
19.根据权利要求18所述的装置,还包括:
用于响应于事件建立所述时间戳的模块。
20.根据权利要求19所述的装置,还包括:
用于确定是否要对所述事件加时间戳,以及响应于确定要对所述事件加时间戳,用所述时间戳的值对所述事件加时间戳的模块。
21.根据权利要求19所述的装置,其中,所述事件是通电事件。
22.根据权利要求18所述的装置,其中,所述时间戳是时间变化量。
23.根据权利要求18所述的装置,还包括:
用于将所述数据分组存储在所述存储系统中的存储单元中的模块。
24.根据权利要求23所述的装置,其中,使用日志页将所述数据分组存储在所述存储单元中。
25.根据权利要求18所述的装置,其中,所述数据分组向所述存储系统通知当所述存储系统处于空闲状态时已经过去的时间量,其中,所述装置还包括:
用于由所述存储系统使用所述已经过去的时间量来管理存储系统资源的使用和消耗的速率的模块。
26.根据权利要求18所述的装置,其中,所述存储系统包括固态盘,其中,所述装置还包括:
用于由所述固态盘使用所述数据分组中的所述时间戳来跟踪和管理所述固态盘中的存储器元件使用和消耗的速率的模块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/286,502 US9727473B2 (en) | 2008-09-30 | 2008-09-30 | Methods to communicate a timestamp to a storage system |
US12/286,502 | 2008-09-30 | ||
PCT/US2009/058533 WO2010039626A2 (en) | 2008-09-30 | 2009-09-28 | Methods to communicate a timestamp to a storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102165406A CN102165406A (zh) | 2011-08-24 |
CN102165406B true CN102165406B (zh) | 2014-03-12 |
Family
ID=42058889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980137446.6A Active CN102165406B (zh) | 2008-09-30 | 2009-09-28 | 用于将时间戳传输到存储系统的方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9727473B2 (zh) |
EP (1) | EP2335145B1 (zh) |
JP (1) | JP2012503836A (zh) |
KR (1) | KR20110048066A (zh) |
CN (1) | CN102165406B (zh) |
TW (1) | TWI423005B (zh) |
WO (1) | WO2010039626A2 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9727473B2 (en) | 2008-09-30 | 2017-08-08 | Intel Corporation | Methods to communicate a timestamp to a storage system |
US8468524B2 (en) * | 2010-10-13 | 2013-06-18 | Lsi Corporation | Inter-virtual machine time profiling of I/O transactions |
CN102789368B (zh) * | 2012-06-21 | 2015-10-21 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其数据管理方法、系统 |
US9940151B2 (en) | 2013-03-15 | 2018-04-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Hypervisor and physical machine and respective methods therein for performance measurement |
US9268495B2 (en) | 2013-03-15 | 2016-02-23 | Apple Inc. | Managing I/O priorities |
US9043569B2 (en) | 2013-05-31 | 2015-05-26 | International Business Machines Corporation | Memory data management |
CN103559054B (zh) * | 2013-10-30 | 2017-10-10 | 华为终端有限公司 | 智能终端多操作系统的实现、删除方法和装置 |
US9772959B2 (en) | 2014-05-30 | 2017-09-26 | Apple Inc. | I/O scheduling |
US9766819B2 (en) * | 2014-12-30 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for managing storage endurance |
US10061377B2 (en) * | 2015-02-06 | 2018-08-28 | Toshiba Memory Corporation | Memory device and information processing device |
US10211673B2 (en) | 2015-03-04 | 2019-02-19 | Siemens Industry, Inc. | Apparatus and methods for timestamping electrical data in a panel meter |
TWI559163B (zh) * | 2015-03-27 | 2016-11-21 | Nobuyoshi Morimoto | Time stamped digital content protection methods and systems |
US10025535B2 (en) * | 2015-03-27 | 2018-07-17 | Intel Corporation | Measurement and reporting of the latency of input and output operations by a solid state drive to a host |
CN107817502B (zh) * | 2016-09-14 | 2020-08-07 | 北京百度网讯科技有限公司 | 激光点云数据处理方法和装置 |
US11099760B2 (en) * | 2017-12-14 | 2021-08-24 | Intel Corporation | Background data refresh using a system timestamp in storage devices |
US11012955B2 (en) | 2018-03-20 | 2021-05-18 | International Business Machines Corporation | Synchronization of host and client log timestamps |
US10956068B2 (en) | 2018-05-11 | 2021-03-23 | Seagate Technology Llc | Time-stamped data in a data storage device |
US10719243B2 (en) | 2018-05-30 | 2020-07-21 | Apple Inc. | Techniques for preserving an expected lifespan of a non-volatile memory |
US11475652B2 (en) | 2020-06-30 | 2022-10-18 | Samsung Electronics Co., Ltd. | Automatic representation toggling based on depth camera field of view |
US11422825B2 (en) * | 2020-12-30 | 2022-08-23 | Kioxia Corporation | Determination of power-off duration of NVMe SSD |
US11636199B2 (en) | 2021-04-12 | 2023-04-25 | Realtek Singapore Pte Ltd. | Real time clock with integrated anti-rollback protection |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050036512A1 (en) * | 2003-08-14 | 2005-02-17 | Dmitrii Loukianov | Timestamping network controller for streaming media applications |
US20070268938A1 (en) * | 2006-05-19 | 2007-11-22 | Dowd Gregory Louis | Network time protocol precision timestamping service |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0935255A2 (en) * | 1989-04-13 | 1999-08-11 | SanDisk Corporation | Flash EEPROM system |
US5941989A (en) * | 1997-01-07 | 1999-08-24 | Micron Electronics, Inc. | Apparatus for indicating power-consumption status in a computer system |
JP2001036549A (ja) | 1999-07-15 | 2001-02-09 | Toshiba Corp | データ処理システムおよびタイムスタンプ生成方法 |
US6405329B1 (en) * | 1999-07-27 | 2002-06-11 | Dell Usa, L.P. | Method and apparatus for HDD time stamp benchmark and installation identification |
JP2002032271A (ja) | 2000-07-14 | 2002-01-31 | Ricoh Co Ltd | 情報処理装置 |
US6693888B2 (en) * | 2001-06-06 | 2004-02-17 | Networks Associates Technology, Inc. | Method and apparatus for filtering that specifies the types of frames to be captured and to be displayed for an IEEE802.11 wireless LAN |
JP3641239B2 (ja) | 2001-12-27 | 2005-04-20 | 株式会社東芝 | メモリカードを制御するための装置および方法 |
JP4434543B2 (ja) * | 2002-01-10 | 2010-03-17 | 株式会社日立製作所 | 分散ストレージシステム、ストレージ装置、およびデータのコピー方法 |
US20030185238A1 (en) | 2002-04-01 | 2003-10-02 | Strasser David A. | System for maintaining original delivery times in transport packets and method thereof |
JP2004030534A (ja) | 2002-06-28 | 2004-01-29 | Toshiba Corp | ディスク記憶装置及び事象管理方法 |
US7418356B2 (en) * | 2002-09-23 | 2008-08-26 | Research In Motion Limited | System and method of battery capacity estimation |
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
AU2002953325A0 (en) * | 2002-12-13 | 2003-01-09 | Executive Computing Holdings Pty Ltd | Means for providing protection for digital assets |
JP4651913B2 (ja) | 2003-02-17 | 2011-03-16 | 株式会社日立製作所 | 記憶装置システム |
US7523139B1 (en) * | 2003-05-02 | 2009-04-21 | Symantec Operating Corporation | Volume server and volume owner communication protocol in a distributed storage management system |
JP4111052B2 (ja) | 2003-05-13 | 2008-07-02 | ソニー株式会社 | ディスク型記録装置を内蔵する装置及びディスク型記録装置の制御方法、並びにコンピュータ・プログラム |
JP2004341755A (ja) * | 2003-05-15 | 2004-12-02 | Hitachi Ltd | 情報処理装置 |
US7174421B2 (en) * | 2003-12-04 | 2007-02-06 | Matsushita Electric Industrial Co., Ltd. | HDD with rapid availability of critical data after critical event |
US20060080574A1 (en) * | 2004-10-08 | 2006-04-13 | Yasushi Saito | Redundant data storage reconfiguration |
US7363444B2 (en) * | 2005-01-10 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Method for taking snapshots of data |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US7539882B2 (en) * | 2005-05-30 | 2009-05-26 | Rambus Inc. | Self-powered devices and methods |
KR100660546B1 (ko) * | 2005-11-10 | 2006-12-22 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US20070110027A1 (en) | 2005-11-15 | 2007-05-17 | Mediatek Incorporation | Systems and methods for processing packet streams |
US7835823B2 (en) * | 2006-01-05 | 2010-11-16 | Intuitive Surgical Operations, Inc. | Method for tracking and reporting usage events to determine when preventive maintenance is due for a medical robotic system |
US7653778B2 (en) * | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US20080126685A1 (en) * | 2006-11-24 | 2008-05-29 | Radoslav Danilak | System, method, and computer program product for reducing memory write operations using an instruction set |
US20100115175A9 (en) * | 2006-12-18 | 2010-05-06 | Zhiqing Zhuang | Method of managing a large array of non-volatile memories |
US8259497B2 (en) * | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8069354B2 (en) * | 2007-08-14 | 2011-11-29 | Mips Technologies, Inc. | Power management for system having one or more integrated circuits |
JP2009104687A (ja) * | 2007-10-22 | 2009-05-14 | Fujitsu Ltd | 記憶装置及び制御回路 |
US8209465B2 (en) * | 2007-10-30 | 2012-06-26 | Hagiwara Sys-Com Co., Ltd. | Data writing method |
US7970946B1 (en) * | 2007-11-27 | 2011-06-28 | Google Inc. | Recording and serializing events |
US7880591B2 (en) * | 2008-02-01 | 2011-02-01 | Apple Inc. | Consumer abuse detection system and method |
WO2009124320A1 (en) * | 2008-04-05 | 2009-10-08 | Fusion Multisystems, Inc. | Apparatus, system, and method for bad block remapping |
US8285919B2 (en) * | 2008-05-27 | 2012-10-09 | Initio Corporation | SSD with improved bad block management |
US8554983B2 (en) * | 2008-05-27 | 2013-10-08 | Micron Technology, Inc. | Devices and methods for operating a solid state drive |
US8244961B2 (en) * | 2008-05-27 | 2012-08-14 | Initio Corporation | SSD with distributed processors |
US8195867B2 (en) * | 2008-06-06 | 2012-06-05 | International Business Machines Corporation | Controlled shut-down of partitions within a shared memory partition data processing system |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8140884B2 (en) * | 2008-07-18 | 2012-03-20 | Verisign, Inc. | Efficient time-based memory counters |
US20100017556A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporationm U.S.A. | Non-volatile memory storage system with two-stage controller architecture |
US9727473B2 (en) | 2008-09-30 | 2017-08-08 | Intel Corporation | Methods to communicate a timestamp to a storage system |
US8291181B2 (en) * | 2008-10-28 | 2012-10-16 | Micron Technology, Inc. | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation |
US20100268694A1 (en) * | 2009-04-17 | 2010-10-21 | Laurent Denoue | System and method for sharing web applications |
US8055943B2 (en) * | 2009-04-24 | 2011-11-08 | International Business Machines Corporation | Synchronous and asynchronous continuous data protection |
US8433931B2 (en) * | 2009-05-13 | 2013-04-30 | Microsoft Corporation | Integrating energy budgets for power management |
US8151137B2 (en) * | 2009-05-28 | 2012-04-03 | Lsi Corporation | Systems and methods for governing the life cycle of a solid state drive |
US8289801B2 (en) * | 2009-09-09 | 2012-10-16 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction management in a storage device |
US20170285970A1 (en) * | 2016-03-30 | 2017-10-05 | Dell Products L.P. | Information Handling System Persistent Storage Device Life Management |
-
2008
- 2008-09-30 US US12/286,502 patent/US9727473B2/en active Active
-
2009
- 2009-09-28 EP EP09818321.3A patent/EP2335145B1/en active Active
- 2009-09-28 KR KR1020117007288A patent/KR20110048066A/ko active Search and Examination
- 2009-09-28 WO PCT/US2009/058533 patent/WO2010039626A2/en active Application Filing
- 2009-09-28 JP JP2011529297A patent/JP2012503836A/ja active Pending
- 2009-09-28 CN CN200980137446.6A patent/CN102165406B/zh active Active
- 2009-09-29 TW TW098132912A patent/TWI423005B/zh not_active IP Right Cessation
-
2017
- 2017-05-19 US US15/600,592 patent/US10261701B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050036512A1 (en) * | 2003-08-14 | 2005-02-17 | Dmitrii Loukianov | Timestamping network controller for streaming media applications |
US20070268938A1 (en) * | 2006-05-19 | 2007-11-22 | Dowd Gregory Louis | Network time protocol precision timestamping service |
Also Published As
Publication number | Publication date |
---|---|
WO2010039626A2 (en) | 2010-04-08 |
TWI423005B (zh) | 2014-01-11 |
CN102165406A (zh) | 2011-08-24 |
JP2012503836A (ja) | 2012-02-09 |
EP2335145B1 (en) | 2019-03-20 |
US20170329537A1 (en) | 2017-11-16 |
WO2010039626A3 (en) | 2010-07-01 |
US9727473B2 (en) | 2017-08-08 |
US10261701B2 (en) | 2019-04-16 |
KR20110048066A (ko) | 2011-05-09 |
US20100082995A1 (en) | 2010-04-01 |
EP2335145A4 (en) | 2012-08-08 |
EP2335145A2 (en) | 2011-06-22 |
TW201027295A (en) | 2010-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102165406B (zh) | 用于将时间戳传输到存储系统的方法 | |
KR101524096B1 (ko) | 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리 | |
KR101438716B1 (ko) | I/o 디바이스 및 컴퓨팅 호스팅 상호동작 | |
KR101467941B1 (ko) | 비휘발성 저장부에 대한 가변 오버프로비저닝 | |
JP5984118B2 (ja) | 格納デバイスの仮想化 | |
KR101385872B1 (ko) | 호스트로부터의 메모리 장치의 부팅 | |
KR101395778B1 (ko) | 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법 | |
KR20120132820A (ko) | 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법 | |
CN103635968A (zh) | 包含存储器系统控制器的设备和相关方法 | |
WO2015051711A1 (zh) | 一种基于多通道slc nand与dram缓存的新usb协议计算机加速设备 | |
WO2014141140A1 (en) | Device power control | |
CN103635969A (zh) | 包含存储器系统控制器的设备和相关方法 | |
KR20130024271A (ko) | 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템 | |
JP2011013800A (ja) | 記憶装置の制御部及び制御方法 | |
Huffman et al. | The nonvolatile memory transformation of client storage | |
US20170046070A1 (en) | Storage control device | |
Wang et al. | Evaluating non-in-place update techniques for flash-based transaction processing systems | |
US9208073B2 (en) | Firmware storage and maintenance | |
Baek et al. | Don’t make cache too complex: A simple probability-based cache management scheme for SSDs | |
Smith | Benchmarking SSDs: The devil is in the preconditioning details | |
CN104008073A (zh) | 具有虚拟机的cdata存储设备 | |
De Jong | System Exploration of Next Generation Flash Devices | |
Yu | LRU-SAI: the use of LRU algorithm with separation of active and inactive pages to improve solid state storage device performance | |
CN102339226A (zh) | 应用程序执行方法、系统及外接式储存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |