CN101334708B - 具有写屏障敏感命令和写屏障不敏感命令的存储设备 - Google Patents

具有写屏障敏感命令和写屏障不敏感命令的存储设备 Download PDF

Info

Publication number
CN101334708B
CN101334708B CN2008100926160A CN200810092616A CN101334708B CN 101334708 B CN101334708 B CN 101334708B CN 2008100926160 A CN2008100926160 A CN 2008100926160A CN 200810092616 A CN200810092616 A CN 200810092616A CN 101334708 B CN101334708 B CN 101334708B
Authority
CN
China
Prior art keywords
barrier
write
writing
command
order
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.)
Expired - Fee Related
Application number
CN2008100926160A
Other languages
English (en)
Other versions
CN101334708A (zh
Inventor
乔格·C·德索扎
朱瑞锋
韩春琦
阿纳德·K·库尔卡尼
唐纳德·J·莫拉罗
理查德·M·H·纽
马科·桑维多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Hitachi Global Storage Technologies Netherlands BV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Global Storage Technologies Netherlands BV filed Critical Hitachi Global Storage Technologies Netherlands BV
Publication of CN101334708A publication Critical patent/CN101334708A/zh
Application granted granted Critical
Publication of CN101334708B publication Critical patent/CN101334708B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明是实现写屏障命令并为主机提供指定其他写命令为敏感于或不敏感于写屏障命令的存在的装置的存储设备。所述设备可以通过改变不敏感于写屏障命令的写命令的执行顺序来优化命令的执行。在本发明的实施例中,与写命令相关联的标志指示命令敏感于或不敏感于写屏障命令的存在。在本发明的实施例中,可以将写屏障命令实现为具有指示命令是否为写屏障命令的标志的写命令。在本发明的一个实施例中,在非易失性高速缓存中存储要写入到介质的命令和数据的队列。

Description

具有写屏障敏感命令和写屏障不敏感命令的存储设备
技术领域
本发明涉及与计算机一起使用的存储设备的设计和操作,更特别地,涉及用于控制关于写屏障(write barrier)命令的写命令的执行的顺序和定时的方法。
背景技术
计算机使用诸如盘驱动器之类的存储设备用于永久地记录数据。该计算机一般被称为“主机”而存储设备被称为“驱动器”。一台主机可以与多个驱动器连接,但驱动器也可以与多个主机连接。将命令和数据传送到驱动器以开始操作。驱动器使用格式化状态、错误码和数据来合适地响应。已经采用了包括例如集成驱动电子设备(Integrated Drive Electronics,IDE)、小型计算机系统接口(SCSI)以及串行ATA(SATA)在内的各种标准命令架构。
主机计算机可以处于从超级计算机簇(supercomputer cluster)到小型手持设备的尺寸范围中。主机还可以是诸如数字照相机之类的特殊用途设备。可以在包括具有不太苛刻要求的个人计算机以及具有苛刻存储要求的银行、保险公司和政府机构使用的大型系统的各种应用中使用类似的数据存储设备。以高级来看,计算机一般被描述为具有向在计算机上运行的应用程序提供基本服务的操作系统。更多详细的观察可以将处理分解(break)为多个处理层。
可以在驱动器的存储器中保存用于盘驱动器的一队命令。盘驱动器可以使用命令队列、通过改变它们被执行的顺序来优化命令的净(net)执行时间。在其他准则之中,现有技术算法使用搜索时间旋转等待时间(rotationallatency)来优化执行时间。
由Kobayashi等的美国专利申请2006/0106980(公开于2006年5月18日),硬盘驱动器(存储设备),包括能够存储多个命令的队列以及用于基于每个命令的执行是否要求存取存储介质来优化多个命令的执行顺序的队列管理器。
盘驱动器一般包括高速缓存,其中可以存储数据的所选扇区用于快速存取。仅使用驱动器的高速缓存而执行的操作比那些要求臂移动到旋转盘之上的某一径向位置并且必须等待盘旋转到要存取扇区的合适位置的操作要快得多。读高速缓存包含存储在盘上的数据子集的副本。高速缓存包含最近读入的数据,并且还可以包含在上一个扇区被请求之后立刻出现的预取扇区(pre-fetched sector)。当所需要的数据正好在高速缓存中时,通过从高速缓存中取回数据可以满足读命令。
高速缓存还可以用于正处于写入到盘的过程中的数据。当例如电源故障,可以导致数据丢失时,在将数据置于高速缓存中和向盘写数据之间的写操作中存在临界时间窗。然而,在很多情况下,让主机必须等到相对慢的写处理已经完成为止可能是不必要的无效率。针对一些数据而不是针对全部数据调整等待时间。所谓的快速写操作简单地将数据置于写高速缓存中,向主机发信号表示操作完成,然后在接下来的时间(可以使用考虑所有待处理写命令的优化算法来选择)将数据写入盘中。
现有技术命令架构已经为主机提供了向驱动器发送特殊命令或参量以保证在驱动器发信号表示写操作完成之前将数据写入到驱动器介质中的方式。在介质上写数据也被称为向永久的存储器委托(commit)或写数据。一种类型的现有技术命令(高速缓存刷新(cache-flush))指导驱动器立刻将高速缓存中的所有待处理的数据写入介质中,即刷新高速缓存。刷新驱动器上的高速缓存可能耗费大量时间,并且如果频繁地这样做,则减小了高速缓存的效益。此外,在现有技术中公知的是具有强制式单元存取(Forced UnitAccess,FUA)标志或位集(bit set)的写命令。具有FUA标志集的写将使得驱动器在指示返回完成写的主机之前向非易失性存储器完全地委托写。
还可以通过重新布置命令执行的顺序来获得效率,但是驱动器内部的命令的重新排序还可能出现问题。对于这样的写重新排序来说存在引入盘上数据结构的不一致(inconsistency)的潜在危险。通过向非易失性存储器写入特定的写顺序来保证文件系统和数据库的一致性。虽然允许重新排序某些写,但是必须保证写的部分顺序。
写屏障命令用于帮助应用程序保证在其他数据被写入到设备之前某些数据物理地位于存储介质中。通过某些写出现到非易失性介质的顺序来保证数据一致性。写屏障不会明确地指示写将作为高速缓存-刷新和FUA命令而出现的时间。写屏障向驱动器在到驱动器的待处理写上施加部分排序。写屏障可以被定义为在保证之前的写命令实际上均被写入到介质中并且不是简单地位于高速缓存中的写命令中的特殊写命令或可选择的选项。必须在WB命令被委托给介质之前将在写屏障(WB)命令之前发送的所有写命令委托给介质。另外,必须仅在WB命令被委托给介质之后将在WB命令之后发送的所有写委托给介质。
在Gabryje1ski等的美国专利申请20060190510(2006年8月24日)中,将系统描述为使用“写屏障元件”来方便数据的存储。系统与存储数据的硬件元件接口,并且包括动态地采用与硬件元件兼容的指令来保证数据的存储期间的数据完整性。写屏障元件独立于操作系统和应用程序,并且可以以用户模式和/或核模式(kernel mode)操作。结合元件(coa1escing component)将高速缓存同步请求结合到单个指令集中以便在一个处理中刷新盘高速缓存。
申请人进行的实验已经证实,通常使用的Microsoft操作系统WindowsXP频繁利用高速缓存刷新命令来保证文件系统仍然处于一致(consistent)状态。实验还显示频繁的高速缓存刷新导致高速缓存很低的利用。例如,使用16MB写高速缓存,在观察期间,当高速缓存小于1%满时,发生多于70%的高速缓存刷新。需要在允许重要数据被委托给介质时允许高速缓存有效使用的装置。
发明内容
本发明是实现写屏障命令并提供为主机指定作为敏感于或不敏感于写屏障命令的存在的其他写命令的装置的存储设备。盘驱动器可以通过改变不敏感于写屏障命令的写命令的执行顺序来优化命令的执行。在本发明的实施例中,与写命令相关联的标志指示所述命令是敏感于写屏障命令的存在还是不敏感于写屏障命令的存在。在本发明的实施例中,将命令组合成由写屏障命令所定义的“可重新排序(re-orderab1e)命令组”。在可重新排序命令组内部,以优化算法所确定的顺序执行命令。在本发明的实施例中,可以将写屏障命令作为带有指示命令是否为写屏障命令的标志的写命令来实现。在本发明的另一个实施例中,将独立的命令用于写屏障命令。在本发明的一个实施例中,在非易失性高速缓存中存储要写入到介质的数据和命令队列。
附图说明
图1是盘驱动器中的现有技术的命令队列的图表。该队列包含写屏障命令。
图2是具有高速缓存的盘驱动器中的现有技术的命令队列的图表。该队列包含写屏障命令。
图3是在根据本发明的写高速缓存内使用“可重新排序命令组”的写命令集的重新排序的图表。
图4是图解在实现本发明的实施例的存储设备中的所选择的元件的框图。
具体实施方式
图1将用于图解在现有技术的写屏障命令的实现中命令重新排序的限制。在下面,假定写屏障命令作为用于写命令的选项而实现,即,写屏障命令是具有要写入到盘(介质)的相关联数据的写命令。在可选择的实施例中,可以将写屏障命令作为单独的命令来实现。图1中的每个方框均表示从主机(未示出)发送到盘驱动器(未示出)的命令。最右边的W0命令是从主机传送到驱动器的第一个写命令。从右至左给出了按时间发生顺序排列的命令的队列。带有“Rn”标记的方框是读命令。带有“Wn”标记的方框是写命令。写屏障命令被标记为“WB”。
在图1中,写屏障命令保证在具有写屏障(WB)的命令和紧跟的任意写命令(W2和W3)仅在具有写屏障(WB)的命令已经被委托给介质中之后被委托给介质之前,将在写屏障之前的队列中的写命令(W0和W1)委托到介质中。如所示的那样,读命令的重排不由写屏障命令所限制。
如图2所示,写屏障的一种实现将是允许高速缓存24的受限使用。由主机依次发布四个命令A0、A1、AWB和A3。用于写屏障命令(AWB)的完成代码不返回到主机系统,直到所有之前发布的写命令(A0 & A1)以及具有写屏障命令本身的数据位于介质(盘表面)上为止。在写屏障命令之后所接收到的写命令不被委托到介质25,直到写屏障操作已经完成为止。写屏障之前的队列中的命令被处理并且可以被高速缓存。根据现有技术,可以有机会将在(先前)的写屏障命令之前由主机发布的经高速缓存的写命令写入到盘。写屏障之后的队列中的命令可以被高速缓存或保存在队列中,而不委托到介质,直到写屏障已经被委托到介质为止。该实现允许排队系统优化写的排序,并且允许高速缓存利用旋转位置优化。
根据本发明的之前方法的优化强迫写必须出现到盘介质的顺序,而不是写将实际发生的时间的定时。写屏障的一个实现将在写高速缓存内具有屏障形式“可重新排序命令组”。写屏障命令限定了可重新排序命令组的边界。图3图解了以在图左侧所示的顺序已经由主机发布的写命令集的处理。A0命令是第一个发布的命令,而B3命令是最后一个发布的命令。
如图3所示,写命令A1和A0包括可重新排序命令组(RCG)“1”,其必须在仅包括AWB写屏障命令的RCG“2”之前委托到介质。所示的高速缓存24中的每一个水平组均为RCG组。必须将RCG组写到以组“1”开始并且继续沿着以组“2”作为第二个并且组“5”(“B3”)作为最后一个的队列进行的介质中。
当考虑由写屏障所定义的顺序时,可以将高速缓存离台(de-stage)。然而,在该实施例中,允许驱动器选择将高速缓存离台的时间。只要高速缓存内的每一个可重新排序命令组均在允许下一个组写(离台)到介质之前被写(委托)到介质表面,则文件系统或数据库将保持在一致状态。可以记录RCG内的命令。因此,在组“1”中,可以首先写A0或A1写命令。类似地,在组“3”(B1,A3,B0)中,可以以任意顺序写出组中的各个命令。
驱动器的高速缓存算法基于现有原则可以确定可重新排序命令组(RCG)内的命令执行的顺序。例如,当离台第3个组(“B1”、“A3”、“B0”)时,如果致动器靠近“A3”的扇区,则可以首先将其写入,接着是下一个距离最近的任意扇区。这允许写高速缓存的更好使用。
在本发明的特定实施例中,在非易失性高速缓存中存储要写入到介质的命令和数据的队列。非易失性高速缓存可以位于盘驱动器内部,或者它可以位于诸如主机之类的系统的其他部分。
本发明的一个实施例使用设备寄存器中的位来指示写屏障命令,而分配另一位以指定强制式单元存取(FUA)。在一些现有技术架构中将FUA定义为要求在命令被看作完成之前将相关联的数据写(委托)到介质,即,要求存储设备在返回完成状态码之前将数据写在介质上的写命令的选项。FUA写与写屏障命令不同,这是因为FUA写不影响其他写命令。
主机通过在诸如全速命令排队(Native Command Queuing,NCQ)写命令之类的写命令中在设备寄存器中设置预定标志位来向写屏障发信号。全速命令排队允许驱动器优化执行读和写命令的顺序。两个位的使用提供了如表1所示的四种组合。
表1
FUA    WB   描述
0      0    标准写
0      1    写屏障写,顺序由强制的写屏障暗示
1      0    使用FUA的标准写
1      1    写屏障写,顺序由强制的写屏障暗示。在数据写入介质之前,不返回命令完成状态。
有利的是允许一些写命令越过写屏障而重新排序,而其他则不能。本发明允许由主机将写命令指定为敏感于写屏障或不敏感于写屏障。然后写命令可以成为两种类别之一:应用写屏障的那些写和没有应用写屏障的那些写。这可以通过“屏障敏感”位的指定来实现。写命令的这两个类别被称为屏障敏感写和屏障不敏感写。不敏感写命令的示例可以包括存储器分页(paging)写。
该实施例可以通过在命令寄存器中指定屏障敏感(BS)位作为写屏障敏感的指示符来实现。FUA、WB和BS可以以相同的设计而实现。必须在具有WB=1的写被委托到介质之前,将在具有WB=1的写之前发送的所有具有BS=1的写命令委托到介质。此外,必须仅在具有WB=1的写被委托到介质之后,将在具有WB=1的写之后发送的所有具有BS=1的写委托到介质。
具有屏障敏感位集的写不应该越过具有写屏障选项集的写,但屏障不敏感写可以以与读命令相同的方式越过写屏障而被重新排序。
图4是图解在根据本发明的实施例的存储设备中所选择的元件的框图。接下来将对命令排队以及用于执行主机110和存储设备120之间的命令的命令处理方法进行描述。
硬盘控制器(HDC)128包括主机接口211、驱动器接口212以及存储器管理器213。由微处理器单元(MPU)129执行的微代码或固件允许MPU 129执行主机接口管理器221、命令执行管理器222、队列管理器223以及驱动器管理器224的功能。存储器元件231用于命令和数据的暂时性存储。数据高速缓存和命令队列存储器231用于经高速缓存的读数据和命令队列存储器。队列231保存命令和相关联的数据。非易失性存储器可以用于存储器元件231。用于命令队列的存储器可以位于盘驱动器内部或者位于单独的元件上或位于主机中。
主机接口211执行在主机110和存储设备120之间的实际数据传送。驱动器接口212对磁盘121执行实际数据输入和输出处理。存储器管理器213控制存储器元件231中数据的存储。存储器管理器213还在存储器元件231和硬盘控制器128中的其他功能性单元之间执行命令和用户数据的中间处理。
主机接口管理器221管理主机接口211,并向主机接口211发送或从主机接口211接收特定的通知或命令。另外,主机接口管理器221作为硬盘控制器128和MPU 129中的其他逻辑单元之间的接口。主机接口管理器221对主机110控制定时命令完成通知。
队列管理器223分类在命令队列231中排队的命令,并确定合适的命令执行顺序,并且实现写屏障架构的要求和指定为写屏障不敏感的写命令的重新排序。命令执行管理器222基于由队列管理器223的分类结果以及由队列管理器223所确定的命令执行顺序控制来控制命令的执行。通过控制驱动器接口212,驱动器管理器224控制向磁盘121写入数据或从磁盘121读取数据。驱动器管理器224响应于来自命令执行管理器222的请求来控制驱动器接口212。
为了说明的目的已经展示了本发明的示例性实施例的前述描述,并且描述并非旨在穷举或将本发明的范围限制到所公开的精确形式。可以在本发明中做出修改、各种改变和替换。在一些情况下,可以采用本发明的特征而没有所提出的其他特征的对应使用。在不脱离本发明的范围的情况下,根据以上教导许多修改和变更都是可能的。本发明的范围不限于该详细的描述。

Claims (19)

1.一种操作数据存储设备的方法,包括:
将从主机接收的命令置于队列中;
对于由主机指定为写屏障不敏感的写命令,优化被指定为写屏障不敏感的写命令的执行顺序,而不考虑由所述主机发布的写屏障命令;以及
对于由主机指定为写屏障敏感的写命令,仅在写入关于之前所接收到的写屏障命令的数据之后将被指定为写屏障敏感的写命令的数据写入到介质中。
2.如权利要求1所述的方法,其中所述写命令具有屏障敏感位,所述屏障敏感位由该主机设置以便将所述写命令指定为写屏障不敏感或写屏障敏感。
3.如权利要求2所述的方法,其中所述写命令包括强制式单元存取位。
4.如权利要求2所述的方法,其中所述写命令包括写屏障位。
5.如权利要求1所述的方法,进一步包括将命令组合到由写屏障命令定义的可重新排序命令组。
6.如权利要求5所述的方法,进一步包括改变可重新排序命令组内命令的执行顺序以优化性能。
7.如权利要求1所述的方法,其中将所述队列存储在非易失性存储器中。
8.一种数据存储设备,包括:
存储器,用于在队列中存储从主机接收到的命令;
装置,用于优化执行写命令的顺序;
装置,用于确定已经通过主机将写命令指定为写屏障敏感还是写屏障不敏感;
装置,用于仅在关于由主机指定为写屏障敏感的、先于写屏障命令而接收到的所有写命令将数据写入介质之后,对于所述写屏障命令将数据写在永久的存储器中,以及在对于所述写屏障命令的数据处于永久的存储器中之后,对于由主机指定为写屏障敏感的、在所述写屏障命令之后接收到的写命令,将数据写到介质中。
9.如权利要求8所述的数据存储设备,其中用于确定已经通过主机将写命令指定为写屏障敏感还是写屏障不敏感的所述装置使用屏障敏感位,所述屏障敏感位由主机设置以便指定所述写命令为写屏障不敏感或写屏障敏感。
10.如权利要求8所述的数据存储设备,其中用于写数据的所述装置进一步包括用于将命令组合成由所述写屏障命令定义的可重新排序命令组的装置。
11.如权利要求10所述的数据存储设备,其中用于写数据的所述装置进一步包括用于改变可重新排序命令组内命令的执行顺序以优化性能的装置。
12.如权利要求8所述的数据存储设备,其中所述存储器为非易失性的。
13.一种操作数据存储设备的方法,包括:
将从主机接收到的命令置于队列中;以及
对于由主机指定为写屏障不敏感的写命令,以与读命令相同的方式优化被指定为写屏障不敏感的写命令的执行顺序,而不考虑由所述主机发布的写屏障命令。
14.如权利要求13所述的方法,其中所述写命令具有屏障敏感位,所述屏障敏感位由所述主机设置以便指定所述写命令为写屏障不敏感或写屏障敏感的写命令。
15.如权利要求13所述的方法,其中所述写命令还包括强制式单元存取位。
16.如权利要求13所述的方法,其中所述写命令还包括写屏障位。
17.如权利要求13所述的方法,进一步包括将命令组合成由写屏障命令定义的可重新排序命令组。
18.如权利要求17所述的方法,进一步包括改变可重新排序命令组内命令执行的顺序以优化性能。
19.如权利要求13所述的方法,其中将所述队列存储在非易失性存储器中。
CN2008100926160A 2007-06-27 2008-04-16 具有写屏障敏感命令和写屏障不敏感命令的存储设备 Expired - Fee Related CN101334708B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/823,441 2007-06-27
US11/823,441 US8006047B2 (en) 2007-06-27 2007-06-27 Storage device with write barrier sensitive write commands and write barrier insensitive commands

Publications (2)

Publication Number Publication Date
CN101334708A CN101334708A (zh) 2008-12-31
CN101334708B true CN101334708B (zh) 2011-03-23

Family

ID=39787883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100926160A Expired - Fee Related CN101334708B (zh) 2007-06-27 2008-04-16 具有写屏障敏感命令和写屏障不敏感命令的存储设备

Country Status (3)

Country Link
US (1) US8006047B2 (zh)
EP (1) EP2015167A2 (zh)
CN (1) CN101334708B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146205A1 (en) * 2008-12-08 2010-06-10 Seagate Technology Llc Storage device and method of writing data
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US8433843B2 (en) * 2009-03-31 2013-04-30 Qualcomm Incorporated Method for protecting sensitive data on a storage device having wear leveling
US20110004718A1 (en) * 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
GB2474446A (en) 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
US9645752B1 (en) 2014-04-07 2017-05-09 Western Digital Technologies, Inc. Identification of data committed to non-volatile memory by use of notification commands
US9632711B1 (en) * 2014-04-07 2017-04-25 Western Digital Technologies, Inc. Processing flush requests by utilizing storage system write notifications
US9411513B2 (en) * 2014-05-08 2016-08-09 Unisys Corporation Sensitive data file attribute
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10585624B2 (en) 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10372351B2 (en) * 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US10635613B2 (en) 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
CN110033799A (zh) 2018-01-12 2019-07-19 三星电子株式会社 基于屏障命令按顺序存储数据的存储设备
KR102262209B1 (ko) * 2018-02-09 2021-06-09 한양대학교 산학협력단 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치
KR20200076946A (ko) 2018-12-20 2020-06-30 삼성전자주식회사 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치
KR102226184B1 (ko) * 2020-02-25 2021-03-10 한국과학기술원 디스크 배열을 위한 캐시베리어 명령 처리 방법 및 이를 위한 장치
US11474741B1 (en) * 2020-06-30 2022-10-18 Amazon Technologies, Inc. Storage device write barriers
US11360708B1 (en) * 2020-06-30 2022-06-14 Amazon Technologies, Inc. Storage device write barriers
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
CN114281245A (zh) 2021-11-26 2022-04-05 三星(中国)半导体有限公司 同步写方法及装置、存储系统、电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089272B1 (en) * 2003-06-18 2006-08-08 Sun Microsystems, Inc. Specializing write-barriers for objects in a garbage collected heap

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490642B1 (en) * 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6973554B2 (en) * 2003-04-23 2005-12-06 Microsoft Corporation Systems and methods for multiprocessor scalable write barrier
US7747659B2 (en) * 2004-01-05 2010-06-29 International Business Machines Corporation Garbage collector with eager read barrier
JP2006139548A (ja) * 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのコマンド実行方法
US7457921B2 (en) * 2005-02-23 2008-11-25 Microsoft Corporation Write barrier for data storage integrity
US7574565B2 (en) * 2006-01-13 2009-08-11 Hitachi Global Storage Technologies Netherlands B.V. Transforming flush queue command to memory barrier command in disk drive
CN101046755B (zh) * 2006-03-28 2011-06-15 郭明南 一种计算机自动内存管理的系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089272B1 (en) * 2003-06-18 2006-08-08 Sun Microsystems, Inc. Specializing write-barriers for objects in a garbage collected heap

Also Published As

Publication number Publication date
US8006047B2 (en) 2011-08-23
CN101334708A (zh) 2008-12-31
US20090006787A1 (en) 2009-01-01
EP2015167A2 (en) 2009-01-14

Similar Documents

Publication Publication Date Title
CN101334708B (zh) 具有写屏障敏感命令和写屏障不敏感命令的存储设备
US8751700B2 (en) Memory controllers, memory systems, solid state drives and methods for processing a number of commands
CN101965559B (zh) 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
EP3511814B1 (en) Storage device storing data in order based on barrier command
JP5669951B2 (ja) コピーバック動作
TW200828273A (en) Hard disk cache device and method
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
US8918554B2 (en) Method and apparatus for effectively increasing a command queue length for accessing storage
TW201227506A (en) Controller and method for performing background operations
KR20140013098A (ko) 메모리 시스템 컨트롤러들을 포함하는 장치 및 관련 방법들
CN101135952B (zh) 对盘驱动事务处理采用存取日志
TW201007735A (en) Block management method for flash memory and storage system and controller using the same
US20140075102A1 (en) Controller of a nonvolatile memory device and a command scheduling method thereof
US20200089423A1 (en) Memory system data management
CN104063184B (zh) 磁盘记录方法及其非易失性存储媒体与电子装置
US10169160B2 (en) Database batch update method, data redo/undo log producing method and memory storage apparatus
US8917471B1 (en) Power management for data storage device
US20140029369A1 (en) Memory device, controller, and write control method
CN102160038A (zh) 管理非易失性磁盘高速缓存的方法和设备
CN102362263A (zh) Ssd控制器与ssd控制器的操作方法
CN100565467C (zh) 用于储存装置的同步备份装置与方法
US10459658B2 (en) Hybrid data storage device with embedded command queuing
US9785563B1 (en) Read command processing for data storage system based on previous writes
US7730256B2 (en) Dual work queue disk drive controller

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HGST NETHERLANDS BV

Free format text: FORMER NAME: HITACHI GLOBAL STORAGE TECH

CP01 Change in the name or title of a patent holder

Address after: Amsterdam

Patentee after: Hitachi Global Storage Technologies Netherlands B. V.

Address before: Amsterdam

Patentee before: Hitachi Global Storage Tech

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190117

Address after: American California

Patentee after: Western Digital Technologies, Inc.

Address before: Amsterdam

Patentee before: Hitachi Global Storage Technologies Netherlands B. V.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110323

Termination date: 20200416