CN1421003A - 对盘驱动事务处理采用存取日志 - Google Patents

对盘驱动事务处理采用存取日志 Download PDF

Info

Publication number
CN1421003A
CN1421003A CN01807460A CN01807460A CN1421003A CN 1421003 A CN1421003 A CN 1421003A CN 01807460 A CN01807460 A CN 01807460A CN 01807460 A CN01807460 A CN 01807460A CN 1421003 A CN1421003 A CN 1421003A
Authority
CN
China
Prior art keywords
district
write
disk drive
request
access log
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.)
Pending
Application number
CN01807460A
Other languages
English (en)
Inventor
A·D·胡夫曼
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1421003A publication Critical patent/CN1421003A/zh
Pending legal-status Critical Current

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/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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0613Improving I/O performance in relation to throughput
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

盘驱动程序(10)包括一个存取日志(20),用于记录与硬盘驱动器(30)的最近的交互。在向内存(40)缓存写的写操作期间,在存取硬盘驱动器(30)之前可以参考存取日志(20)。在存取硬盘驱动器(30)期间的预取额外数据的读操作期间也参考存取日志(20)。在确定是否要预取时,考虑由操作系统(60)使用额外的高速缓存。

Description

对盘驱动事务处理采用存取日志
技术领域
本发明涉及盘驱动程序,更具体来说,涉及在盘驱动器操作期间存储缓冲器的使用。
背景技术
在计算机系统中,设备驱动程序是控制硬件设备的软件程序。例如,带有键盘、鼠标和硬盘驱动器的计算机系统可包括有键盘驱动程序、鼠标驱动程序和硬盘驱动程序。
在基于个人电脑的系统中,设备驱动程序通常接合在其它软件程序与由设备驱动程序控制的设备之间。操作系统中通常包括各种设备驱动程序,尽管新的设备驱动程序例如可以在加载新硬件设备时被装入计算机系统。
操作系统与设备驱动程序协作,让特定设备服务请求。例如,当用户指示操作系统“加载”或“执行”应用程序时,该应用程序通常被存储在硬盘驱动器上。应用程序的“加载”实质上是一个请求,要求从硬盘驱动器读取该应用程序并将该程序写入内存。应用程序然后可以从内存运行。
操作系统于是将该读请求发送到服务硬盘驱动器的盘驱动程序。盘驱动程序将“加载应用程序”的命令翻译成硬盘驱动程序命令,以从应用程序的存储位置提取数据。例如,盘驱动程序可以发出“读扇区”命令,标识应用程序被存储在硬盘驱动器上什么地方以及应用程序要被传送到内存中的什么地方。盘驱动程序因此起着请求程序与硬盘驱动器之间的翻译器的作用。从内存向硬盘驱动器传送的写操作的操作也类似。
无论是读操作还是写操作,盘驱动器存取通常比内存存取慢得多。因此,除了翻译特定的软件请求,盘驱动程序还分配一部分内存-有时称作高速缓存或缓冲器,以减少硬盘驱动器存取次数,由此改善系统性能。
例如,当作出对特定扇区或扇区组的读请求时,盘驱动程序可以将另外的未被请求的扇区“预取”到内存的缓冲器部分中。预取预期随后将有对这些尚未被请求的扇区的请求。
对于写操作来说,缓冲器可以被用来存储写数据。为了使硬盘驱动器存取次数最小化,盘驱动程序还可以在内存缓冲器中为一些写操作存储数据。然后,在晚些时候,盘驱动程序可以对硬盘驱动器执行一次写操作,以一次性完成所有的写操作。
然而,盘驱动程序不可能总是将来会从出现那些硬盘驱动器请求。在有些情况中,最优化性能的试图的结果会适得其反。如果一批被预取的扇区实际上总是不被从内存中检索,则会降低性能。只是因为,检索另外的未被使用的扇区是需要时间的。同样,一个被缓存的写,如果不马上与另一个写组合,则只会延迟希望对硬盘驱动器的写,由此产生的风险例如是,如果计算机系统被无意地断电,则数据可能丢失。
所以,继续需要一种改善读预取或写缓冲器操作或二者的性能的盘驱动程序。
附图说明
图1是按照一个实施例的系统的框图;
图2A和2B是表示按照一个实施例的写缓存的示意图;
图3A和3B是表示按照一个实施例的读预取的示意图;
图4是表示按照一个实施例的存取日志(log)的示意图;
图5是按照一个实施例的运行中的系统的流程图;
图6是按照一个实施例的系统的框图。
具体实施方式
按照若干实施例,存取日志可以在可能的情况下辅助盘驱动程序减少硬盘驱动器存取,以改善驱动器性能。存取日志存储关于对硬盘驱动器的最近存取的信息。驱动程序可以在参考存取日志后智能地执行读预取和/或写缓冲器操作,这样可以避免对硬盘驱动器的不必要的存取,还让硬盘驱动程序得到所请求的服务。
在图1中,按照一个实施例,系统100包括盘驱动程序10,它包含存取日志20。盘驱动程序10是操作系统60的一部分。如在背景技术部分所解释的那样,盘驱动程序10包括用于与硬盘驱动器30通信的命令。
在一个实施例中,系统100是基于处理器的系统100,诸如个人计算机系统。相应地,盘驱动程序10、操作系统60以及其它软件是由处理器(未予示出)执行的,这种处理器例如是基于X86的微处理器、微控制器、奔腾微处理器,等等。
系统100还包括内存40和硬盘驱动器30。在计算机系统100通电期间,内存40可以存储包含存取日志20的盘驱动程序10、操作系统软件60以及应用程序。内存可以是多种随机存取存储器中的一种,例如动态随机存取存储器(DRAM)、闪存、同步DRAM(SDRAM)、以及静态RAM(SRAM)、单直插式内存模块(SIMM)、或双直插式内存模块(DIMM)。
硬盘驱动器30可以是集成驱动电子(IDE)驱动器、增强型IDE(EIDE)、小型计算机系统接口(SCSI)驱动器、增强型小型器件接口(ESDI)驱动器、冗余独立盘阵列(RAID)驱动器等等。硬盘驱动器30通过总线26与内存40相连。
操作系统60和盘驱动程序协作,服务存取硬盘驱动器30的请求。对于读盘操作来说,所请求的数据从硬盘驱动器30经总线26被传送到内存40。对于写盘操作来说,所请求的数据从内存40经总线26被传送到硬盘驱动器30。所以,操作系统60和盘驱动程序10可以控制硬盘驱动器30与内存40之间的传送。
在有些实施例中,存取日志20可以被盘驱动程序10用于读盘和写盘这两种操作。在一个实施例中,存取日志20含有关于对硬盘驱动器30的最近存取的信息。盘驱动程序10可以用存取日志20的“驱动器存取历史”来评估某操作是不是写缓存或读预取操作的较好的候选对象。
例如,存取日志20可以含有对事务处理的类型的指示,即对硬盘驱动器30执行的是读操作还是写操作。另外,存取日志20还可以指示硬盘驱动器30的哪个区或哪些区被存取过。存取日志20也可以含有对存取时间的指示。
在有些实施例中,存取日志20是有时间限制的,可用的是预定时间期间的驱动器活动历史。在其它实施例中,存取日志20是有大小限制的,只保持预定数量的事务处理。这样一种存取日志20可以像先进先出(FIFO)存储器那样工作,以最新的数据替换最老的数据。
在图2A中,内存40可以包括一个名为写数据42的区,该区例如用于执行写盘操作。写数据42包括数据块44、46和48。数据块44、46和48可以代表扇区,其中一个扇区一般有512个字节;也可以代表扇区分组,或者代表其它原子数据单元。
在图2A中,为了传送写数据42,可以进行对硬盘驱动器30的三次独立的存取。在一个写操作中,可以将块44从内存40传送到硬盘驱动器30。在第二个写操作中,可以将块46从内存40传送到硬盘驱动器30。在第三个写操作中,可以将块48从内存40传送到硬盘驱动器30。
在图2B中,内存40包括写缓冲器50。在有些实施例中,写缓冲器50可以起着临时存储位置的作用,用于存储要送往硬盘驱动器30的数据。通过使用写缓冲器50,盘驱动程序10可以将对硬盘驱动器30的三次存取转换成一次存取。
在第一个写操作中,将块44从内存40传送到写缓冲器50。作为内存至内存的传送,这个操作一般比内存至盘的操作快得多。在第二个写操作中,将块46从内存40传送到写缓冲器50,作为第二个内存至内存的传送。在第三个写操作中,将块48从内存40的写数据42部分传送到写缓冲器50。
在后来的某个时间,盘驱动程序10可以指令进行第四个写操作,这时要在写缓冲器50与硬盘驱动器30之间执行。由于在先的三次内存至内存传送,该在内存40与硬盘驱动器之间的传送可以包括被存储在写缓冲器50中的全部三个块。盘驱动程序10可以因为写缓冲器50满、有“保存”(save)操作被启动、或者根据其它条件而执行该第四个写操作。
当然,图2B中所示的传送对一定的块44、46和48来说是效率更高的。例如,如果块44、46、48是在硬盘驱动器30上的相邻位置存储的,则用对硬盘驱动器30的一次存取就可以有效地完成上述的三个独立写操作。
按照一个实施例,存取日志20辅助盘驱动程序10预测写缓存的最佳候选对象。通过检查存取日志20的最近写操作,盘驱动程序10可以确定是否硬盘驱动器30中的一个块在被重复地写数据。如果找到,在一个实施例中,盘驱动程序10就临时地将该块存储在写缓冲器50中,而不是立即将该块存储在硬盘驱动器30上。
在第二个实施例中,可以寻找存取日志20中与正在被写的块相邻的最近已经被写的块。下面结合对图5的描述进一步说明按照这些
实施例的写缓存算法。
盘驱动程序10在读操作期间也可以使用内存40。与写操作一样,读操作涉及在内存40与硬盘驱动器30之间的传送。不过,这时内存40中没有数据在等待被写到硬盘驱动器30。相反,如图3A所示,内存40的读缓冲器70可能是写操作从硬盘驱动器30出发的目的地。
另外,读缓冲器70还可以被用来从硬盘驱动器30预取另外的未被请求的数据块。盘驱动程序10可以响应对硬盘驱动器30中的块32的一个读请求,将块32传送到读缓冲器70中。假设块32是与块34相邻的,块34也与硬盘驱动器30上的块36相邻。盘驱动程序10可以在将块32传送到读缓冲器70的相同读操作期间,将块34和36从硬盘驱动器30传送到读缓冲器70。
因此,盘驱动程序10除了检索硬盘驱动器30的被请求块32,还额外地将其它块预取到读缓冲器70。额外的被预取的块例如可以是与硬盘驱动器30上的被请求块相邻的。
然而,在图3B中,操作系统可以包括其自己的高速缓存90。一旦数据被从硬盘驱动器30中检索出来并传送到内存40,操作系统就可以将被检索的数据存储在操作系统高速缓存90中。在一个实施例中,这个额外的盘驱动器信息的“虚拟”存储影响到盘驱动程序10何时结合读盘操作执行预取操作。
例如,假设一个在先的读操作将图3B中带交叉阴影的块36从硬盘驱动器30传送到内存40。显然,为了提高随后的涉及块36的操作的速度,操作系统60将块36存储在内存40的操作系统高速缓存90部分。
如图3A中一样,假设块32、34、36在硬盘驱动器30上处于相邻的位置。如果读操作请求块32,文件系统驱动程序10就可以在从硬盘驱动器30向读缓冲器70传送块32的期间预取相邻的块,如块34和36。然而,块36已经经该在先操作而被存储在操作系统高速缓存90中。因此,如果块36被存储在读缓冲器70中,则块36就不可能被存取,因为操作系统高速缓存90已经有了块36。
所以,在一个实施例中,盘驱动程序10参考存取日志20来确定所请求的读是不是从硬盘驱动器30预取额外数据的较佳候选。例如,如果某块要被读,盘驱动程序10可能想预取紧接所请求块后的三个相邻的块。对于这三个块的每一个,都要参考存取日志20,看看它是否最近被存取。
在图3B中,按照一个实施例,盘驱动程序10查阅存取日志20中关于对块34以及块36的存取的信息。因为块36最近已经被存取,盘驱动程序10除了检索所请求的块32,就只预取块34。这里,盘驱动程序10假设块36已经是操作系统60可用的,例如已经在操作系统高速缓存90中。这就保证了被预取到盘缓冲器70中的块是更可能要被使用的。另外,盘缓冲器70和操作系统高速缓存90没有重复的信息。
预取操作的大小,例如响应一个读请求而传送的块的数量,可以按照盘缓冲器70的大小、所请求的传送的大小而调整,或者按照其它因素来调整。同样,存取日志20的大小可以按盘驱动器操作的特性、系统的能力以及其它因素而不同。
在图4中,按照一个实施例,每一次存取硬盘驱动器30,存取日志20就被更新。硬盘驱动器30中的一个区包括多个扇区38。所以在图4中,用硬盘驱动器30的32个相邻扇区来表示存取日志20是如何跟踪操作的。
盘驱动程序10可以在硬盘驱动器30上执行一系列的读和/或写操作。在图4中所示的按照一个实施例的一个假想的例子中,盘驱动程序10首先接收一个“为8个扇区写地址10h”的操作。结果,对应于该地址的8个扇区38被加上“写”条纹(write striped)。另外,存取日志20被更新,以反映地址位移量10h至18h最近被写。
下一步,盘驱动程序10接收“为4个扇区写地址”的操作。在该操作之后,地址10h的前4个扇区38被加上“读”条纹(readstriped),以标识对扇区38进行过写操作。
注意到存取日志20显示这4个扇区38最近只被读过,尽管在先操作是对扇区38的写操作。存取日志20中依然显示14h至18h这4个扇区最近被写过。
在第二个实施例中,存取日志20以单独的条目来显示前述的两种操作。这样,对相同扇区执行的写操作和随后的读操作都被存取日志20提供。用于建立对硬盘驱动器30的存取历史记录的存取日志20的其它实现也是可能的。
下一步,在硬盘驱动器30上启动一个“为两个扇区写地址00h”操作。相应地,图4中的头两个扇区被加上“写”条纹。用第三个条目更新存取日志20,以反映这个操作。
第四个操作是对四个扇区执行“为4个扇区读地址0Ch”。硬盘驱动器30的被请求的扇区38被加上“读”条纹。同样,更新存取日志20,以反映扇区0CH至0FH最近被读。
按照一个实施例,在图5中,盘驱动程序10可以通过接收一个存取硬盘驱动器30的请求而执行读预取操作和写缓存操作这两种操作(方框202)。盘驱动程序10在继续之前先确定操作是读操作还是写操作(棱形框204)。如图4中一样,存取日志20跟踪对硬盘驱动器30的扇区38的存取。
对于写操作(也参看图2),盘驱动程序10参考存取日志20(方框206)。存取日志20可能向盘驱动程序10指出所请求扇区最近被写过(棱形框208)。如果是,所请求的存取就可能是写缓存的一个较佳候选。于是,盘驱动程序10向写缓冲器50发送写数据42(方框222)。
如果所请求扇区38最近没有被写过,可以进一步参考存取日志20,以确定所请求扇区38是否与最近被写过的扇区相邻(棱形框210)。如果是,盘驱动程序10向写缓冲器50发送写数据42(方框222)。在以后的某个时间,可以将写缓冲器50中的数据42写到硬盘驱动器30(方框224)。
相反,如果所请求的扇区不是与存取日志20所记录的最近被写的扇区38相邻的,则在一个实施例中,所请求的写请求就不是写缓存的较佳候选。于是,盘驱动程序10向硬盘驱动器30发送写数据42(方框212)。写操作于是完成。
如果所请求的是个读操作(也参看图3),盘驱动程序10也参考存取日志20,这时是为了确定环境是否适合于预取额外的未被请求的扇区(方框214)。在一个实施例中,盘驱动程序10可以预取与所请求扇区相邻的扇区。所以,在参考存取日志20时,对于每个预期要被预取的扇区,盘驱动程序10确定该预期的扇区是否最近被读过(棱形框216)。如果是,该预期的扇区可能已经被存储在操作系统高速缓存90中。
相应地,在一个实施例中,预取操作没有被指示。所以,盘驱动程序10将所请求的扇区38读入盘缓冲器70,在那里可以被例如操作系统60的请求程序检索(方框218)。操作系统60例如可以将所请求的扇区38从读缓冲器70传送到操作系统高速缓存90中,读缓冲器70和操作系统高速缓存90二者都位于内存40中。
然而,如果存取日志20指出要被预取的一个或多个扇区最近未被读(棱形框216),盘驱动程序10就读取所请求扇区38,并将额外的扇区预取到读缓冲器70中(方框220)。如同无预取发生时一样,操作系统60可以从读缓冲器70检索该数据并将该数据传送到操作系统高速缓存90。
操作系统60随后对读缓冲器70中的预取数据的请求,可以由盘驱动程序10服务,而不必访问硬盘驱动器30。在向读缓冲器70写之后,无论是否有额外的扇区被预取,读操作于是都完成。
按照一个实施例,在图6中,系统100包括在先26上的处理器12。操作系统60和盘驱动程序10,包括图5中的软件200,被存储在硬盘驱动器30上,硬盘驱动器是一种非易失性存储介质。在一个实施例中,操作系统和盘驱动程序10在通电期间被装入内存40中,以加快实时执行速度。
在一个实施例中,存取日志20是由盘驱动程序10通过分配一部分内存40而建立的。一旦开始访问硬盘驱动器30,盘驱动程序10就向存取日志20写入操作的类型和硬盘驱动器中被影响的区域。
所以,在一个实施例中,盘驱动程序利用存取日志,在读操作期间预取额外的数据,在写操作期间缓存数据,使得对硬盘驱动器的存取次数减少。存取日志向盘驱动程序提供硬盘驱动器的存取历史。盘驱动程序根据该历史就可以预测将来对硬盘驱动器的存取,然后根据该预测,可以利用系统内存来尽可能地减少对硬盘驱动器的存取次数。
尽管就有限数量的实施例描述了本发明,本领域的熟练人员明白,据此可以得出各种修改和变体。后附的权利要求书旨在包含所有这些属于本发明的精神和范围内的修改和变体。

Claims (20)

1.一种方法,包含:
接收一个要向盘驱动器的某区写数据的请求;
检索盘驱动器的以前被写区的存取日志;和
根据存取日志向内存写数据。
2.权利要求1的方法,检索盘驱动器的以前被写区的记录进一步包含:
搜索包含多个条目的存取日志中的一个条目;
在存取日志中寻找一个以前被写区条目;和
比较所请求区与该以前被写区条目。
3.权利要求2的方法,比较所请求区与该以前被写区条目进一步包含确定所请求区是否与盘驱动器上该以前被写区是相邻的。
4.权利要求2的方法,比较所请求区与该以前被写区条目进一步包含确定所请求区是否与该以前被写区是相同的。
5.一种方法,包含:
接收一个要存取盘驱动器的某区的第一请求;
在内存中存储该第一请求的一个记录;和
服务该第一请求。
6.权利要求5的方法,进一包含:
接收一个要存取盘驱动器的某区的第二请求;
将第一请求的记录替换为该第二请求的第二记录;和
服务该第二请求。
7.权利要求5的方法,进一包含:
接收一个要存取盘驱动器的某区的第二请求;
在第一请求的记录后存储该第二请求的第二记录;和
服务该第二请求。
8.权利要求5的方法,在内存中存储该第一请求的一个记录进一步包含指示事务处理类型。
9.权利要求8的方法,指示事务处理类型进一步包含指示读操作或写操作。
10.权利要求5的方法,在内存中存储该第一请求的一个记录进一步包含指示要被存取的区。
11.权利要求5的方法,在内存中存储该第一请求的一个记录进一步包含指示请求的时间。
12.一个系统,包含:
处理器;
与处理器相连的内存;
与处理器相连的硬盘驱动器;和
连接在硬盘驱动器与内存之间的包含存取日志的盘驱动程序,其中,盘驱动程序:
接收要读硬盘驱动器的第一区的请求;
标识硬盘驱动器的第二区;
参考存取日志来确定第二区是否最近被读过;和
如果第二区最近未被读过,则将硬盘驱动器的第一区和第二区都提取到内存。
13.权利要求12的系统,其中盘驱动程序进一步:
接收要写硬盘驱动器的第三区的请求;
参考存取日志来确定该区是否最近被写过;和
如果第三区最近未被写过,则写第三区。
14.权利要求13的系统,其中,如果第三区最近被写过,则盘驱动程序写内存。
15.权利要求13的系统,其中盘驱动程序进一步:
接收向硬盘驱动程序的第四区写的请求;
参考存取日志以确定最近已经被写过的区;和
如果第四区与最近已经被写过的区相邻则写到内存。
16.权利要求12的系统,其中盘驱动程序进一步:
硬盘驱动器的某区每次被存取时向存取日志写。
17.一种包含存储指令的介质的产品,指令使基于处理器的系统:
接收一个要向盘驱动器的某区写数据的请求;
检索盘驱动器的以前被写区的存取日志;和
根据存取日志向内存写数据。
18.权利要求17的产品,进一步存储有使基于处理器的系统执行下述步骤的指令:
搜索包含多个条目的存取日志中的一个条目;
在存取日志中寻找一个以前被写区条目;和
比较所请求区与该以前被写区条目。
19.权利要求18的产品,进一步存储的指令使基于处理器的系统确定所请求区是否与盘驱动器上该以前被写区是相邻的。
20.权利要求18的产品,进一步存储的指令使基于处理器的系统确定所请求区是否与该以前被写区是相同的。
CN01807460A 2000-03-31 2001-01-26 对盘驱动事务处理采用存取日志 Pending CN1421003A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/540,373 US6684294B1 (en) 2000-03-31 2000-03-31 Using an access log for disk drive transactions
US09/540373 2000-03-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2007101537150A Division CN101135952B (zh) 2000-03-31 2001-01-26 对盘驱动事务处理采用存取日志

Publications (1)

Publication Number Publication Date
CN1421003A true CN1421003A (zh) 2003-05-28

Family

ID=24155177

Family Applications (2)

Application Number Title Priority Date Filing Date
CN01807460A Pending CN1421003A (zh) 2000-03-31 2001-01-26 对盘驱动事务处理采用存取日志
CN2007101537150A Expired - Fee Related CN101135952B (zh) 2000-03-31 2001-01-26 对盘驱动事务处理采用存取日志

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007101537150A Expired - Fee Related CN101135952B (zh) 2000-03-31 2001-01-26 对盘驱动事务处理采用存取日志

Country Status (7)

Country Link
US (1) US6684294B1 (zh)
EP (1) EP1269305A1 (zh)
CN (2) CN1421003A (zh)
AU (1) AU2001236554A1 (zh)
HK (1) HK1049055A1 (zh)
TW (1) TWI224776B (zh)
WO (1) WO2001075581A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1308840C (zh) * 2004-02-13 2007-04-04 联想(北京)有限公司 一种获取硬盘中数据的方法
CN100442249C (zh) * 2004-09-30 2008-12-10 国际商业机器公司 用于高速缓存器顺序列表的动态尺寸确定的系统和方法
TWI480732B (zh) * 2004-05-03 2015-04-11 Microsoft Corp 使用非揮發性記憶體來增進效能的方法及系統
US9317209B2 (en) 2004-10-21 2016-04-19 Microsoft Technology Licensing, Llc Using external memory devices to improve system performance
US9361183B2 (en) 2008-09-19 2016-06-07 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US9529716B2 (en) 2005-12-16 2016-12-27 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory
US10387313B2 (en) 2008-09-15 2019-08-20 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3867667B2 (ja) * 2002-12-24 2007-01-10 船井電機株式会社 データ記憶再生装置
US7113811B2 (en) * 2003-06-17 2006-09-26 Agere Systems Inc. System and method for conserving battery power in a mobile station
US7412577B2 (en) * 2004-02-05 2008-08-12 International Business Machines Corporation Shared data mirroring apparatus, method, and system
US7096157B2 (en) * 2004-07-29 2006-08-22 Lenovo (Singapore) Pte. Ltd. Method and structure for diagnostically testing files in a computer
US8996784B2 (en) * 2006-03-09 2015-03-31 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US7743202B2 (en) * 2006-03-09 2010-06-22 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US7882309B2 (en) * 2007-07-26 2011-02-01 Globalfoundries Inc. Method and apparatus for handling excess data during memory access
KR101347285B1 (ko) * 2007-09-28 2014-01-07 삼성전자주식회사 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
CN101753344B (zh) * 2008-12-12 2012-09-05 华为技术有限公司 一种记录日志的方法、装置及系统
US8966185B2 (en) * 2012-06-14 2015-02-24 International Business Machines Corporation Cache memory prefetching
WO2014147840A1 (ja) * 2013-03-22 2014-09-25 富士通株式会社 アクセス制御プログラム、ディスク装置及びアクセス制御方法
CN105516297B (zh) * 2015-12-04 2019-03-19 新浪网技术(中国)有限公司 一种信息上报的方法及装置
CN107783727B (zh) * 2016-08-31 2022-01-14 华为技术有限公司 一种内存设备的访问方法、装置和系统
US10846253B2 (en) 2017-12-21 2020-11-24 Advanced Micro Devices, Inc. Dynamic page state aware scheduling of read/write burst transactions

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146578A (en) * 1989-05-01 1992-09-08 Zenith Data Systems Corporation Method of varying the amount of data prefetched to a cache memory in dependence on the history of data requests
ATE158424T1 (de) * 1989-06-30 1997-10-15 Digital Equipment Corp Verfahren und anordnung zur steuerung von schattenspeichern
US5257370A (en) * 1989-08-29 1993-10-26 Microsoft Corporation Method and system for optimizing data caching in a disk-based computer system
US5659713A (en) * 1992-04-24 1997-08-19 Digital Equipment Corporation Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
US5410653A (en) * 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
WO1995001600A1 (en) * 1993-07-02 1995-01-12 Oakleigh Systems, Inc. Predictive disk cache system
US5799141A (en) * 1995-06-09 1998-08-25 Qualix Group, Inc. Real-time data protection system and method
US6045883A (en) 1995-06-29 2000-04-04 Asahi Kasei Kogyo Kabushiki Kaisha Resin composition and resin composition for secondary battery jar
US6253296B1 (en) * 1996-09-06 2001-06-26 Intel Corporation Disk block allocation optimization methodology and applications
US6021408A (en) * 1996-09-12 2000-02-01 Veritas Software Corp. Methods for operating a log device
US6163773A (en) * 1998-05-05 2000-12-19 International Business Machines Corporation Data storage system with trained predictive cache management engine
JP3255887B2 (ja) 1999-02-15 2002-02-12 松下電器産業株式会社 磁気ディスク装置およびそのディスクアクセス方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1308840C (zh) * 2004-02-13 2007-04-04 联想(北京)有限公司 一种获取硬盘中数据的方法
US9405693B2 (en) 2004-05-03 2016-08-02 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
TWI480732B (zh) * 2004-05-03 2015-04-11 Microsoft Corp 使用非揮發性記憶體來增進效能的方法及系統
US10216637B2 (en) 2004-05-03 2019-02-26 Microsoft Technology Licensing, Llc Non-volatile memory cache performance improvement
CN100442249C (zh) * 2004-09-30 2008-12-10 国际商业机器公司 用于高速缓存器顺序列表的动态尺寸确定的系统和方法
US9317209B2 (en) 2004-10-21 2016-04-19 Microsoft Technology Licensing, Llc Using external memory devices to improve system performance
US9690496B2 (en) 2004-10-21 2017-06-27 Microsoft Technology Licensing, Llc Using external memory devices to improve system performance
US9529716B2 (en) 2005-12-16 2016-12-27 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory
US11334484B2 (en) 2005-12-16 2022-05-17 Microsoft Technology Licensing, Llc Optimizing write and wear performance for a memory
US10387313B2 (en) 2008-09-15 2019-08-20 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US9448890B2 (en) 2008-09-19 2016-09-20 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US9361183B2 (en) 2008-09-19 2016-06-07 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store
US10509730B2 (en) 2008-09-19 2019-12-17 Microsoft Technology Licensing, Llc Aggregation of write traffic to a data store

Also Published As

Publication number Publication date
CN101135952B (zh) 2010-06-02
HK1049055A1 (zh) 2003-04-25
EP1269305A1 (en) 2003-01-02
CN101135952A (zh) 2008-03-05
AU2001236554A1 (en) 2001-10-15
TWI224776B (en) 2004-12-01
WO2001075581A1 (en) 2001-10-11
US6684294B1 (en) 2004-01-27

Similar Documents

Publication Publication Date Title
CN1421003A (zh) 对盘驱动事务处理采用存取日志
US5596736A (en) Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses
KR100373313B1 (ko) 캐시 메모리를 관리하는 방법 및 시스템
US6941420B2 (en) Log-structure array
US7203815B2 (en) Multi-level page cache for enhanced file system performance via read ahead
US7127549B2 (en) Disk acceleration using first and second storage devices
US6360300B1 (en) System and method for storing compressed and uncompressed data on a hard disk drive
US6467022B1 (en) Extending adapter memory with solid state disks in JBOD and RAID environments
US5754888A (en) System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment
US6327644B1 (en) Method and system for managing data in cache
US20070005904A1 (en) Read ahead method for data retrieval and computer system
JPH02281350A (ja) キヤツシユ・メモリ管理
EP2577470A2 (en) Cache management and acceleration of storage media
JPS60500187A (ja) データ処理システム
KR20090032821A (ko) 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
KR20020064357A (ko) 디스크 드라이브내 버퍼 내부 및 외부 데이터 전송 관리용버퍼 관리 시스템
CN101782872A (zh) 使用固态盘的缓存系统和方法
US6925539B2 (en) Data transfer performance through resource allocation
JPH06259197A (ja) アレイ型ディスクシステムの制御方式
EP4170506A1 (en) Systems, methods, and devices for ordered access of data in block modified memory
KR20010050881A (ko) 캐시 메모리의 제어 방법, 컴퓨터 시스템, 하드 디스크드라이브 장치 및 하드 디스크 제어 장치
US7822923B2 (en) Storage control program, storage control apparatus, and storage control method
CN100336008C (zh) 用于允许在驱动器被格式化的同时访问存储设备的方法和装置
CN117312188A (zh) 混合ssd数据缓存预取系统及方法
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication