CN1434936A - 用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统 - Google Patents
用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统 Download PDFInfo
- Publication number
- CN1434936A CN1434936A CN00819122A CN00819122A CN1434936A CN 1434936 A CN1434936 A CN 1434936A CN 00819122 A CN00819122 A CN 00819122A CN 00819122 A CN00819122 A CN 00819122A CN 1434936 A CN1434936 A CN 1434936A
- Authority
- CN
- China
- Prior art keywords
- sector
- buffer
- disk
- data
- impact damper
- 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
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
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0656—Data buffering arrangements
-
- 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/0674—Disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明揭示了用于管理将数据转移入和转移出磁盘驱动器中的缓冲器的方法和系统。定向缓冲器管理(VBM)系统的操作由基于软件的控制模块来管理。控制模块通过将缓冲器表格分成各缓冲器扇区来创建和保存缓冲器表格。缓冲器扇区被进一步安排到缓冲器片段或划分缓冲器表格的循环链接列表。控制模块通过使应用程序模块穿越缓冲器表格,来执行转移。一旦应用程序模块被控制模块任意地安置在索引扇区处,那么当应用程序模块漫游由索引扇区识别的特定缓冲器片段时,就可实现数据转移。通过主机与磁盘地址指示器来管理对应用程序模块穿越缓冲器片段的特殊控制,主机与磁盘地址指示器分别耦合到主机与磁盘下一指示器。
Description
发明领域
该申请一般涉及磁盘驱动器高速缓存技术,尤其涉及用于控制主计算机与磁盘驱动器的磁盘之间数据转移的缓冲器管理系统。
发明背景
在磁盘驱动器中,数据被存储在覆盖有磁化介质的一个或多个磁盘上。数据由换能器阵列写到磁盘,这些换能器通常被称作“读/写磁头”,它们被安装在径向致动器上,使磁头相对于磁盘移动。信息存储在磁盘上的多个同心的圆形磁道上,直到读/写磁头从磁盘读取数据。每个同心磁道一般都被分成多个可分开寻址的数据扇区。磁头用于在理想的磁道与外部环境之间转移数据,外部环境包括一台主计算机等许多部件。在读操作期间,磁头感知以前被写在磁盘磁道上的数据,并将信息转移到外部环境。在写操作期间,数据被写到磁盘磁道上。一旦数据被写到磁盘,每个扇区就保存一块数据,该数据是在一次写操作期间可以被写到磁盘的绝对最小量。邻近的块(通常被称作“块”或“簇”)通常在一次写操作(被称作“一个命令”)期间被写到磁盘。对这些读取和写入操作都至关重要的是准确地将磁头定位在理想磁道的中心上。
通常,致动器音圈马达将磁头相对于磁盘表面定位。该音圈马达负责使致动器主体围绕枢轴旋转,从而使磁头横跨磁盘表面移动。这样,致动器允许磁头在磁盘的内半径与外半径之间准确地来回移动。致动器臂由馈送到致动器臂末端处音圈马达的控制信号驱动。伺服控制系统通过利用从磁盘驱动器的磁盘表面读取的伺服信号来感知致动器的位置并控制磁头在磁盘上的移动。伺服控制系统依靠存储在磁盘上的伺服信息。来自该信息的信号通常指出磁头相对于磁盘的目前位置(即当前的磁道位置)。伺服控制系统使用感知信息来维持磁头位置或确定如何最佳地将磁头移到理想磁道上居中的新位置。然后,伺服控制系统将一个控制信号传递到音控马达,以便将磁头定位在理想的新磁道上或维持理想的当前磁道上的位置。
用特征是双层转移方案的多层设置来控制文件在主计算机与磁盘之间的转移。在宏观层次,选择磁道扇区来包含文件被分割成的数据扇区。尤其是,从微观上来说,沿磁道的单元被磁化,以对应于文件的位结构,用于随后的读取。磁盘驱动器通常包括一个缓冲器,以执行这个双层转移方案。该缓冲器的用途是在数据在主计算机与磁盘之间转移的期间接受各个数据扇区,然后将数据转移到合适的部件一主计算机或磁盘。
通常,系统微处理器所包含的编程被设计成将扇区定位在读取或写入数据的磁道上。微处理器也被编程为控制扇区处的文件转移或被编程为宏观层次。用逐个字符的方式来实现到/来自缓冲器的数据转移。在逐个字符环境中实现转移的传统方法是通过使用各种状态机,例如缓冲控制器、主机接口控制器和磁盘接口控制器。
如在第5,276,662号美国专利中所述,文件在主机与磁盘之间的转移是在系统微处理器的总控制下和状态机控制器更精确的控制下执行的。例如,当文件将被写到磁盘时,主计算机用通用信息提示系统微处理器,该信息允许微处理器定义写入文件的磁道的各个扇区。然后,微处理器通过执行导致扇区层次处转移的各项操作来启动转移。这类操作包括:命令伺服控制系统将磁头定位在将要接收文件的所选磁道上;识别用于转移的缓冲器的一个片段。微处理器命令主机接口控制器开始将数据转移到该缓冲器片段中。按照惯例,结合缓冲控制器和主计算机一起工作的主机接口控制器在文件字符转移到缓冲器片段的扇区块的过程中精确地控制缓冲器。一旦读/写磁头被定位在将接收文件的磁道上,磁盘接口控制器就按照系统微处理器发出的命令来控制各数据块从缓冲器片段到磁盘上合适扇区的转移。然后,被连接到读/写磁头的读/写电路沿数据磁道磁化单元。
按照惯例,计数器和中断信号与缓冲器结合使用,来“监视”到缓冲器的数据转移。通常位于主机和磁盘接口控制器内的计数器计算发生在主机与缓冲器之间以及磁盘与缓冲器之间的转移次数。根据该计算,在发生了所选次数的到缓冲器的转移之后,中断发生器立即将一个中断信号提供给微处理器。使用计数器和中断是为了查明:当将要发生转移时,缓冲器是否被充满。
磁盘驱动器的最大缺点是:启动读或写操作的时间与机械地完成该操作的时间之间有相对较长的延迟。该延迟包括寻道等待时间、读/写磁头被移到理想磁道的时间、旋转等待时间、在理想磁道扇区位于读/写磁头下面之前磁盘旋转的时间,以及对应于从磁盘表面读取数据块或将数据块写到磁盘表面上的时间的额外延迟。由于前述延迟,磁盘驱动器的操作速度通常比计算机系统的其他部件的操作速度慢。这种情况下,对于总的系统性能,对于转移希望写入缓冲器的数据的主机系统是有利的,于是允许驱动器之后将该数据提交给磁盘,这有利于驱动器执行将数据放在介质上的(机械)任务。这个概念(通常称作“写高速缓存”)常用于数据存储设备。
用于减少与几乎任何软件应用程序关联的磁盘存取次数的众所周知的方法涉及使用一个单一公用高速缓存存储器。该高速缓存存储器(通常是易失性随机存取存储器(VRAM)设备)存储从磁盘读取的各数据块或将要写入磁盘的各数据块。一旦系统发出一项磁盘读取操作,高速缓冲存储器就首先被检查,以发现是否已具备所要求的数据块,从而避免了典型的物理磁盘读取。如果不具备数据块,则系统指示读/写磁头执行磁盘读取,数据从该磁盘被转移到高速缓冲存储器。
如在第5,765,193号美国专利中所述,从磁盘要求数据通常具体到有关的数据(例如,数据文件)。数据文件将被写到并存储在磁道邻近扇区中的磁盘上。相应地,计算机程序设计员通常知道的参考原理说明:“当数据被存储或将被存储在一个位置时,被存储或将被存储在物理上邻近位置的数据很可能将同时被存取或在前后不久被存取。”为了实现这个原理,将写到磁盘的数据通常在记录到磁盘上之前转移到写高速缓冲存储器。这个程序具有两个方面的优点。首先,它允许主机迅速存取数据,而无须对磁盘执行实际的读取操作。为了直接从写高速缓冲存储器进行读取,系统必须了解哪些数据块正被保存在高速缓冲存储器中,而不是磁盘中。其次,它为读/写磁头提供时间来赶上计算机的其他部件。
一旦高速缓冲存储器被充满,系统微处理器就启动写操作,将高速缓冲存储器中的数据块转移到磁盘驱动器。如第5,765,193号美国专利中进一步所述,有几种方法用于管理数据从写高速缓冲存储器到磁盘的“有序”转移。用于管理写高速缓冲存储器的一项普通技术是用指令补充磁盘写操作,以便在写高速缓冲存储器中搜索邻近的数据块。至少要存在两个邻近的数据块,才能定义一个簇,系统将完全按照磁盘写操作来转移该簇。通过减少磁盘存取次数,该技术减少了耗时的寻道操作的总数。第二项已知技术涉及保持“最近使用”(LRU)队列,该队列包括按序使用的一列数据块。该技术使用一个虚拟块数字,即分配给数据块与其在磁盘上的预期存储位置有关的数字,以便按系统的最近使用顺序来为数据块分类。根据“与较早使用的数据块相比,越是最近使用的数据块越有可能被再次使用”这个理论,系统将较早使用的数据块转移到磁盘,同时将最近使用的数据块保留在写高速缓冲存储器中,用于由中央处理器迅速存取。第三项更过时的技术只是在先进先出的基础上从高速缓冲存储器移走块。
虽然与数据从缓冲器到磁盘转移有关的所有这三项技术提供了执行存储和检索数据文件的有效方法,但伴随数据从有限数据空间的缓冲器转移到磁盘也产生了一些问题。特别是,如果来自缓冲器的数据不按先进先出的方式被转移到磁盘,那么直到比转移数据的缓冲器扇区更低级的缓冲器扇区实际上被清空,该清空的缓冲器扇区才能被重新使用。例如,在一个有100个扇区的缓冲器中,如果扇区45~50被写到磁盘,则直到缓冲器扇区1~44已被清空,该特定的缓冲器空间才能由主机重新使用。当处理有限数量的缓冲器数据空间的磁盘驱动器时,“顺序的”缓冲器存取方法相对于写高速缓存对主计算机而言是一个重大的缺点。
发明概述
在此背景下开发了本发明。本发明是重新安排缓冲器扇区,以便可以更有效地使用缓冲器数据空间的装置。特别是,根据本发明,定向缓冲器管理系统(下文称作“VBM”)提供了一种重新安排缓冲器空间,以便可以按任意或随意方式将数据转移入和转移出缓冲器的装置。本质上,VBM允许按非顺序的方式将数据写入和读出缓冲器扇区。VBM包含三个部件:运算部件、硬件部件和软件部件。
运算部件将数据缓冲器的模型(称作“VBM表格”)定义为按逻辑组织的单独链接的一列扇区。VBM表格中的每个条目代表缓冲器的一个单一扇区。缓冲器的每个扇区存储一个具有逻辑块地址(LBA)的数据块,该逻辑块地址代表磁盘驱动器中磁盘上的一个扇区。当前安置硬件部件的缓冲器扇区被称作“索引扇区”。每个索引扇区的值是“下一”扇区,即表示当数据转移入或转移出当前索引扇区结束时供参考的硬件部件的“下一”扇区的物理缓冲器扇区号。
硬件部件负责将数据物理转移入和转移出缓冲器。在磁盘写操作期间,硬件部件将“VBM”表格用作管理数据转移的基础。这通过设置一个主机地址指示器(HAP)和磁盘地址指示器(DAP)来实现,主机地址指示器负责把数据提交给缓冲器,磁盘地址指示器负责将数据从缓冲器转移到磁盘。这些指示器的初始值由软件部件任意地选择。HAP和DAP都分别耦合到主机下一指示器(HNP)和磁盘下一指示器(DNP)。这些下一指示器的功能是:从索引扇区读取下一扇区值,以便使地址指示器指向下一扇区。硬件还提供了独立于管理缓冲器分配任务的自动遍历功能,以便即使当CPU正在执行另一项任务时,该功能也仍然能够遍历大量的表格条目。
通过确保新主机写命令在任何给定时间都可获得可能的最大数量的缓冲器扇区,并且通过使完成主机请求所需的磁盘操作的次数最小,软件部件使写高速缓存的优点最大化。更特别的是,软件提供创建和维持VBM表格的机制,硬件用该VBM表格指导数据转移入和转移出数据缓冲器。软件部件还负责管理对硬件部件的控制。通过创建一列空闲缓冲器扇区,软件部件还使VBM能够将高速缓存数据与空闲空间分开、在有益时将缓冲器表格的各缓冲器片段合并成单一的磁盘操作、重新使用保存残余数据的任何缓冲器扇区,并将缓冲器扇区按任何顺序返回到该空闲列表。
通过以下详细的描述并观察有关的附图,将明白这些和其他各种特点以及构成本发明特征的各个优点。
附图简述
图1是并入本发明一个较佳实施例的磁盘驱动器的平面视图,示出基本内部部件。
图2是功能框图,通常示出用于控制图1中磁盘驱动器的主要功能部件。
图3是磁盘的平面视图,通常示出磁盘表面的各个主要部件。
图4是根据本发明一个较佳实施例的缓冲器管理系统的功能框图。
图5是缓冲器管理系统的功能框图,尤其针对图4中的应用程序和控制模块。
图6是图4中的应用程序模块的各部件的示意图。
图7是流程图,示出响应主计算机写指令的控制模块的操作。
图8是流程图,示出将空闲_列表的扇区安排到一个或多个片段中。
图9是流程图,示出修补过程。
图10是流程图,示出当给出将数据从缓冲器提交给磁盘的指令时控制模块的操作。
图11是流程图,示出合并过程。
图12是流程图,通常示出本发明的操作。
图13是图4中应用程序模块的遍历部件的示意图。
详细描述
图1示出根据本发明的一个较佳实施例来构建的磁盘驱动器100。磁盘驱动器100包括一个基底102,磁盘驱动器100的各部件被安装到该基底上。顶盖104(被示出局部被切除)与基底102一起按传统方式为磁盘驱动器100形成一个内部的封闭环境。这些部件包括一个主轴马达106,它使一个或多个磁盘108以恒定的高速度旋转。通过使用致动器组件110,将信息写到磁盘108上的磁道160(图3)并从那里读取信息,致动器组件110围绕磁盘108附近的轴承杆组件112旋转。致动器组件110包括朝磁盘108延伸的多个致动器臂114,一个或多个弯曲部分116从每个致动器臂114延伸。磁头118安装在每个弯曲部分116的末端,磁头包括一个空气轴承滑动器,该空气轴承滑动器使磁头118能够紧贴有关磁盘108的对应表面飞行。
当磁盘驱动器100在扩展时期内不被使用时,主轴马达116通常被断电。当驱动马达被断电时,磁头118移到磁盘108的内直径附近的停放区120。通过使用致动器闩锁配置,磁头118被固定在停放区120上,这防止了停放磁头118时致动器组件110因疏忽而发生旋转。
通过使用音圈马达(VCM)124来控制磁头118的径向位置,该音圈马达通常包括附着于致动器组件110的线圈126,以及建立包围线圈126的磁场的一个或多个永久磁铁128。向线圈126有控制地施加电流会导致永久磁铁128与线圈126之间发生磁性的相互作用,以便线圈126可根据众所周知的洛伦兹定律进行移动。当线圈126移动时,致动器组件110围绕轴承杆组件112旋转,使磁头118横跨磁盘108表面移动。
弯曲组件130为致动器组件110提供必要的电连接路径,同时允许致动器组件110在操作期间进行围绕枢轴的移动。弯曲组件包括一个印刷电路板132,磁头电线(未示出)连接到该印刷电路板;磁头电线沿致动器臂114和弯曲部分116通向磁头118。印刷电路板132通常包括电路,该电路用于控制写操作期间被施加到磁头118的写电流,并用于放大读操作期间由磁头118生成的读信号。弯曲组件在弯曲托架134处终止,用于通过基台102与安装到磁盘驱动器100底侧的磁盘驱动器印刷电路板(未示出)进行通信。
现在参考图2,其中示出图1中磁盘驱动器100的功能框图,通常表现了驻留在磁盘驱动器印刷电路板上并被用来控制磁盘驱动器100的操作的主要功能电路。图2示出磁盘驱动器100,它切实可行地被连接到主计算机140,磁盘驱动器100按传统的方式被安装在该主计算机140中。在主计算机140与磁盘驱动器微处理器142之间提供各条控制通信路径,微处理器142通常结合存储在微处理器存储器(MEM)143中的微处理器142编程,来提供高级通信和对磁盘驱动器100的控制。MEM 143可以包括随机存取存储器(RAM)、只读存储器(ROM)和微处理器142的其他资源驻留存储器。主轴控制电路148以恒定的高速度来旋转磁盘108。通过将电流施加到致动器组件110的线圈,来控制磁头118的径向位置。伺服控制电路150提供这种控制。
利用磁盘驱动器接口144在主计算机140与磁盘驱动器100之间转移数据,该磁盘驱动器接口144包括便于主计算机140与磁盘驱动器100之间的高速数据转移的缓冲器145。这样,将被写入磁盘驱动器100的数据从主计算机140被传送到缓冲器145,然后到读/写通道146,该读/写通道将数据编码并使其串行化,并且将必要的写电流信号提供给磁头118。为了检索以前存储在磁盘驱动器100中的数据,读信号由磁头118生成并被提供给读/写通道146。接口144执行读信号解码、错误检测和纠错操作。然后,接口144将检索到的数据输出到缓冲器145,供随后转移到主计算机140。磁盘驱动器100的这类操作在该技术领域中众所周知,并在如Shaver等人于1994年1月4日发行的第5,276,662号美国专利中有所讨论。
现在参考图3,其中示出磁盘108的平面视图,通常表现了磁盘108表面的各主要部件。磁盘108被环向地分成多个同心的圆形磁道160。每个磁盘108的磁道160数目将随每个特定制造的磁盘108而改变。围绕每个磁道160的一次旋转(INDEX)162通常由沿磁盘108半径延伸的标记指出。
磁盘108被径向地分成多个伺服片段164。伺服片段164在磁盘108的中心166处开始,在磁盘108的外部边缘168处终止。与每个磁盘108的磁道160数目一样,每个磁盘108的伺服片段164的数目随每个特定制造的磁盘108而改变。每个磁道160由间隔的伺服片段164组成,数据扇区在各个伺服片段164之间。
一般而言,图12在操作399~417中示出根据本发明缓冲器145的缓冲器管理系统的总操作400的较佳实施例。在操作402中,通过将缓冲器145表现为被分成多个大小相等的缓冲器扇区208(图4),来保存缓冲器表格206(图4)。在操作404中,缓冲器扇区206被安排成循环链接列表,它们被称作“缓冲器片段”210(图4)。在操作406中,控制模块202任意地选择特定缓冲器片段210,来存储数据文件。在操作408中,将实际上作为文件从主机140(图4)转移到缓冲器145的数据表现为被转移到缓冲器片段210。在操作410中,数据文件在一段不确定的时期内被存储在缓冲器145中。将数据文件表现为被存储在缓冲器片段中,直到在操作412中从缓冲器145中移走数据并重新定位到磁盘108,从而完成从主机140到磁盘108的转移。在操作414中,确定是否过早地执行了“查找”,即转移或移走。如果没有,则结束该过程。但是,如果查找过早,那么,如果查找是转移,则操作416重新启动操作408中的转移。如果查找是移走和替换,则操作416重新启动操作412中的移走。
现在参考图4,示出用于管理数据转移入和转移出缓冲器145的缓冲器管理系统200的功能框图。缓冲器管理系统200通过执行三个主要部件:控制模块202、应用程序模块204和缓冲器表格206,来管理数据在主计算机140与磁盘108之间的转移。缓冲器表格206被分成n个相等的缓冲器扇区208,每个缓冲器扇区具有可存储512个字节的容量。每个缓冲器扇区208进一步合并成循环链接列表或缓冲器片段210。缓冲器表格206可以被分成n个缓冲器片段210,或者可以只由具有n个缓冲器扇区208的一个缓冲器片段210构成。以下的表格1描绘了缓冲器表格206,该缓冲器表格包含n=9个缓冲器扇区208和两个循环链接的缓冲器片段210。
扇区#(偏移量) | 下一扇区指令 |
0 | 1 |
1 | 2 |
2 | 3 |
3 | 0 |
4 | 7 |
5 | 6 |
6 | 8 |
7 | 5 |
8 | 4 |
表格1
为了简易起见,表格1可被分成2个独立的缓冲器片段210,如表格2和3中所示:
扇区#(偏移量) | 下一扇区指令 |
0 | 1 |
1 | 2 |
2 | 3 |
3 | 0 |
表格2
扇区#(偏移量) | 下一扇区指令 |
4 | 7 |
5 | 6 |
6 | 8 |
7 | 5 |
8 | 4 |
表格3
相对于缓冲器表格206,每个缓冲器扇区208都包含对缓冲器管理系统200的操作很重要的两个指令:偏移值214(“偏移量”)和下一扇区指令值212(“下一扇区指令”)。这两个指令对于缓冲器管理系统200的操作至关重要,总体上说,偏移量214和下一扇区指令212定义缓冲器片段210的循环方面。例如,参考表格3,左列中的各个值被称作“偏移值”214,右列中的各个值被称作“下一扇区指令值”212。当应用程序模块204位于当前的缓冲器扇区208“4”处时,应用程序模块204读取下一扇区指令212并移到下一缓冲器扇区208“7”。一旦位于当前缓冲器扇区208“7”,应用程序模块204就读取下一扇区指令212并移到下一缓冲器扇区208“5”。这个程序被重复,直到应用程序模块204回到具有偏移值214为“4”的缓冲器扇区208,从而装入循环链接片段210。根据该较佳实施例,缓冲器表格206的保存和缓冲器表格206上应用程序模块204的操作都由控制模块202来管理。下文讨论有关应用程序模块204和控制模块202的更详细细节。
现在参考图5,示出图4中的系统200的更具体的功能框图。特别是,描绘了应用程序模块204各部件的功能框图。应用程序模块204是缓冲器管理系统200的硬件部件。应用程序模块204被分成两个主要子模块:耦合到主机下一指示器(HNP)222的主机地址指示器(HAP)220和耦合到磁盘下一指示器(DNP)226的磁盘地址指示器(DAP)224。应用程序模块204按逐段方式来漫游缓冲器表格206。主机下一指示器222和磁盘下一指示器226分别有效地控制主机地址指示器220和磁盘地址指示器224的下一缓冲器扇区208位置的定位。如上所述,应用程序模块204的操作通过控制模块202加以控制。
主机地址指示器220负责将数据块提交给缓冲器145。在该较佳实施例中,通过参考缓冲器表格206来实现将数据提交给缓冲器145。在其操作中,主机下一指示器222向主机地址指示器220传达主机地址指示器220正在操作的特定缓冲器片段210的“下一”扇区208值。主机下一指示器222从下一扇区指令212接收缓冲器片段210中“下一”扇区208的偏移值214。主机地址指示器220响应主机下一指示器222读取的下一扇区指令212而漫游特定的缓冲器片段210。在主机地址指示器220将数据提交给当前缓冲器扇区208之后,如主机下一指示器222所传达的,它立即跳转到下一缓冲器扇区208。最终,最后的缓冲器扇区208的下一扇区指令值212将等于缓冲器片段210中主机地址指示器220所参考的初始缓冲器扇区208的偏移值214。这是循环片段盘绕的点。主机地址指示器220继续漫游片段210,按需要进行盘绕,直到已经转移当前命令的所有数据。
当数据将从缓冲器145被转移到磁盘108时,应用程序模块204一般按与数据从磁盘108转移到缓冲器145时相同的方式进行操作。磁盘地址指示器224负责将数据从缓冲器145提交给磁盘108。在较佳实施例中,通过参考缓冲器表格206来实现将数据提交给磁盘108。在其操作中,磁盘下一指示器226向磁盘地址指示器224传达磁盘地址指示器226正在操作的特定缓冲器片段210的“下一”缓冲器扇区208的位置。磁盘下一指示器226从下一扇区指令212接收缓冲器片段210中“下一”缓冲器扇区208的偏移值214。磁盘地址指示器224响应磁盘下一指示器226读取的下一扇区指令212而漫游特定缓冲器片段210。在磁盘地址指示器224将数据从缓冲器扇区208提交给磁盘108之后,如磁盘下一指示器226所规定的,它立即跳转到下一缓冲器扇区208。最终,最后的缓冲器扇区208的下一扇区指令值212将等于缓冲器片段210中的磁盘地址指示器224所参考的初始缓冲器扇区208的偏移值214。这是循环片段盘绕的点。磁盘地址指示器224继续漫游片段210,按需要进行盘绕,直到已经转移当前命令的所有数据。
相对于磁盘地址指示器224的操作,按逐个扇区的方式从缓冲器145转移数据。一旦数据已从特定的缓冲器扇区208被提取,它就根据定位文件的特定伺服片段164和磁道160而被转移到磁盘108。
现在参考图6,示出操作缓冲器145的应用程序模块204的示意图。磁盘当前地址计数器244和磁盘当前页寄存器246构成磁盘地址指示器224。同样,主机当前地址计数器252和主机当前页寄存器250构成主机地址指示器220。磁盘下一页寄存器240和主机下一页寄存器242分别用作磁盘下一指示器226和主机下一指示器222。重映射基地址寄存器248根据缓冲器145中的VBM表格206来设置磁盘重映射地址247和主机重映射地址249。相应地,在一个较佳实施例中,重映射基地址寄存器248的输出根据启用哪条应答控制线(241或243)来使用磁盘重映射地址247或主机重映射地址249对缓冲器145进行寻址。如果磁盘接口控制器要求从缓冲器145读取数据,则启用磁盘重映射应答线241并使用磁盘重映射地址247来存取缓冲器145。如果主机接口控制器要求将数据写到缓冲器145,则启用主机重映射应答线243并使用主机重映射地址249来对缓冲器145进行寻址。
磁盘下一页寄存器240用将要从缓冲器表格145读取的下一扇区208的下一扇区指令值212来装载磁盘当前页寄存器246。只要启用起源于磁盘当前地址计数器244输出端的磁盘数据地址线245,就可从当前扇区208读取数据。磁盘当前地址计数器244的输出端与扇区比较器256连接。磁盘当前地址计数器244的值被输入到扇区比较器256的输入B。比较器256的输入A是缓冲器扇区208尺寸(通常是512个字节)的恒定值。当磁盘当前地址计数器244的值等于输入A时,信号从比较器256的输出端传送到要求切换到下一缓冲器扇区208的磁盘当前页寄存器246,它有一个由磁盘下一页寄存器240装载到磁盘当前页寄存器246的值。下一缓冲器扇区208值由下一扇区指令值212定义,下一扇区指令值212从缓冲器145装载入磁盘下一页寄存器240。
主机下一页寄存器242装载主机当前页寄存器250,后者具有将要被写入缓冲器145的下一扇区208的下一扇区指令值212。只要启用起源于主机当前地址计数器252输出端的主机数据地址线251,就可从当前扇区208读取数据。主机当前地址计数器252的输出端与扇区比较器258连接。主机当前地址计数器252的值被输入到扇区比较器258的输入A。比较器258的输入B是缓冲器扇区208尺寸(通常是512个字节)的恒定值。当主机当前地址计数器252的值等于输入B时,信号从比较器258的输出端传送到要求切换到下一缓冲器扇区208的主机当前页寄存器250,它有一个由主机下一页寄存器242装载到主机当前页寄存器250中的值。下一缓冲器扇区值是下一扇区指令值212,下一扇区指令值212从缓冲器145装载入主机下一页寄存器242。
现在参考图13,示出应用程序模块204的遍历部件的示意图。遍历部件260包括遍历状态机262、遍历降值计数器264和下一遍历地址寄存器266。遍历状态机262装载有偏移基地址的值214。偏移值214被锁存入下一遍历地址寄存器266,作为遍历部件260的下一扇区208位置。一旦遍历状态机262初始化遍历降值计数器264,遍历部件260就遍历缓冲器片段210上的应用程序模块204。遍历部件260从下一遍历地址寄存器266接收遍历地址,并且连续执行应用程序模块204的遍历,直到遍历降值计数器264完成计数。遍历降值计数器264的计数由微处理器142装载,从而允许应用程序模块204反复跃过特定缓冲器片段210预定的次数。下一扇区指令值212指示下一扇区208遍历,并且,该值通过下一遍历地址寄存器266被传达给遍历部件260。在偏移基地址的值214最初被传送到遍历状态机262之后,下一扇区指令值212是控制遍历随后扇区208的唯一的控制参数,直到遍历降值计数器264完成计数,那时遍历部件260被初始化,以等候偏移基地址的下一值214。
如上所述,缓冲器表格206的保存和应用程序模块204的操作都由控制模块202管理。控制模块202是缓冲器管理系统200的软件部件。通过确保对于任何给定时间的写命令主机都具备最大可能数量的缓冲器145扇区208,控制模块202使写高速缓存的方法最佳化。简而言之,控制模块202提供了用于保存缓冲器表格206的机构,缓冲器表格206被应用程序模块204用来经由主机220和磁盘226地址指示器指导将数据转移入和转移出数据缓冲器145。
参考图7,在操作299~317中一般描述的流程图示出控制模块202用于将数据从主机140转移到缓冲器145时的操作。在操作300中,控制模块202将缓冲器145的各个扇区208组织成空闲_列表,以便对于任何给定时间的写命令主机140所具备扇区208的可能数目最大。空闲_列表被初始化成写缓冲器145中所有空闲扇区208的循环链接片段164。表格4是空闲_列表的示例,它被初始化为:
扇区#(偏移量) | 下一扇区指令 |
0 | 1 |
1 | 2 |
2 | 3 |
... | ... |
... | ... |
n-2 | n-1 |
n-1 | 0 |
表格4
一旦控制模块202完成将扇区208组织成空闲_列表,就开始数据从主机140到缓冲器145的物理转换。正是在这个过程中,控制模块202将缓冲器表格206分成一个或多个缓冲器片段210。在操作308中,控制模块202任意地选择一个缓冲器扇区208(在较佳实施例中,被称作“第一索引扇区208”;在空闲_列表中,被称作“空闲_空间_启动”),控制模块202将缓冲器扇区208选作数据转移到缓冲器145的开始扇区208。控制模块202控制应用程序模块204,以便主机地址指示器220被安置到标有“空闲_空间_启动”的第一索引扇区208。在操作302中,控制模块202接收将被高速缓存的输入数据。在操作310中,控制模块202指导主机地址指示器220将文件的第一块转移到被识别为“空闲_空间_启动”的扇区。在操作312中,控制模块202确定文件的转移是否完成。如果所有数据块都已被转移,则控制模块跳转到操作316。但是,如果转移不完全,那么在操作314中,控制模块202按照前面索引扇区208的下一扇区指令212将主机地址指示器220安置到下一“索引”扇区208(主机地址指示器220的每个当前位置较佳地被称作“索引”扇区)。当主机下一指示器222参考下一索引扇区208时,主机地址指示器220转移数据块。在操作316中,一旦控制模块202确定文件的转移已完成,它就将标记“空闲_空间_启动”分配给空闲_列表中的扇区208,空闲_列表直接出现在当前缓冲器片段210中最后缓冲器扇区208之后。图8和表格5更加详细地描述了对缓冲器片段210尺寸的确定,以及缓冲器表格206中空闲_列表被分成缓冲器片段210的情况。
参考图8,在操作329~339中一般描述的流程图示出将空闲_列表的扇区108安排到一个或多个片段210中。一旦主机140将长度“L”缓冲器扇区108的命令发送到缓冲器管理系统200,控制模块202有效地将空闲_列表安排到一个或多个循环链接列表片段210中。在操作330(与图7中的操作310相同)中,控制模块202指导主机地址指示器220将文件的第一块转移到第一索引扇区208,在较佳实施例中被标为“空闲_空间_启动”。通过用遍历部件260遍历在空闲_空间_启动处开始的单独链接的空闲_列表,并通过沿缓冲器表格206运行“L-1”扇区,操作332为该特殊命令定位数据的最后缓冲器扇区208,即该特殊缓冲器片段210的最后扇区208。操作334将对应于沿表格的“L-1”个步骤的缓冲器扇区208下一扇区指令212的值指定为“空闲_空间_启动”。由于这个缓冲器扇区208现在并入下一扇区指令212“空闲_空间_启动”,因此装入循环链接列表,以示出特定缓冲器片段210是来自空闲_列表的独立列表。
操作336遍历空闲_列表中其余的缓冲器扇区208,以便展示其余的循环链接列表。在操作338中,将空闲_列表中最后扇区208的下一扇区指令212指定为“空闲_空间_启动”,这装入了独立循环链接列表中缓冲器表格206的其余扇区208。这样,最后的结果示出:一旦主机140将数据转移到缓冲器145,空闲_列表如何被分成一个或多个缓冲器片段210。表格5更好地示出:通过将L=3的指令应用于表格4中的初始化空闲_列表,将缓冲器扇区208安排到缓冲器片段210中。
扇区#(偏移量) | 下一扇区指令 |
0 | 1 |
1 | 2 |
2 | 0 |
3 | 4 |
... | ... |
n-2 | n-1 |
n-1 | 3 |
表格5
扇区0~2代表控制模块202当前指示主机地址指示器220用数据填充的缓冲器片段210,而扇区3~“n-1”代表空闲_列表中其余的缓冲器扇区208。在这个例子中,扇区“3”是下一“空闲_空间_启动”位置,下次当主机140执行数据转移时,控制模块202将根据该位置指导主机地址指示器220。因此,在这个例子中,缓冲器表格206的空闲_列表被分成两个分开的缓冲器片段210,长度3的一个和长度“n-3”的一个。可以实行类似的操纵,以便进一步再分各种缓冲器片段210或将各个片段210合并回单一的回路中。
现在参考图9,示出一幅流程图,展示了在发出写命令的任何时候启动的控制模块202中的被编程的修补过程。虽然图9中的修补过程实际上是一个与图8中所定义过程分开的过程,但是这两个过程彼此协作,修补过程最后终止于操作300。在操作320中,当主机140发送控制模块202接收的新的写命令时,开始修补过程。在操作322中,一旦一个新的写命令被控制模块202接收,控制模块202就首先进行检查,以确定来自新命令的数据逻辑块地址(LBA)是否与来自之前命令的、被高速缓存入缓冲器扇区208的任何数据LBA相重叠。如果没有发现重叠,则启动操作300,并根据图8的流程图将数据转移到缓冲器145。
如果发现LBA重叠,则在操作324中,控制模块采用对应于老的写命令的缓冲器扇区208,并将它们加到空闲_列表的末端。通过用老的写扇区208代替空闲_列表末端处缓冲器扇区208的下一扇区指令值212,来实现这一点。来自这些缓冲器扇区208的数据被认为是“多余的”数据;这样,缓冲器扇区208被修改成空闲_列表。一旦这两个缓冲器扇区208被修改,则在操作324中,启动操作300,根据图8的流程图将数据转移到缓冲器145。表格6示出缓冲器表格206经历图8中所描绘的修补过程。
扇区#(偏移量) | 下一扇区指令 | 下一扇区指令 |
“修改”前 | “修改”后 | |
0 | 1 | 1 |
1 | 2 | 2 |
2 | 0 | 4 |
3 | 4 | 0 |
4 | 5 | 5 |
5 | 6 | 6 |
6 | 3 | 3 |
表格6
在这个例子中,已将一列L=3修补到一列L=4,以便建立一个新的列L=7。相对于缓冲器扇区208(0、1、2)中所包含数据块的LBA,以及有关新的写命令的数据块的LBA,曾发现重叠。因此,修补过程通过用扇区0的偏移值214代替扇区3的下一扇区指令212,将“剩余”缓冲器片段210的第一索引扇区208(扇区0)加到原来空闲_列表(扇区3、4、5和6)的末端。由于3是结束单独链接列表的一个完整循环的缓冲器扇区208,因此扇区3表示空闲_列表的末端。然后,控制模块202通过将主机地址指示器222安置在扇区0处来管理写命令,扇区0将是特定缓冲器片段210的第一索引扇区208。
参考图10,在操作349~359中一般描述的流程图展示了控制模块202被用来将数据从缓冲器145转移到磁盘108时的操作。在操作350中,存储将被转移的文件第一数据块的缓冲器扇区208被指定为“索引”扇区108。在操作352中,索引扇区208被加到空闲_列表的末端。在操作354中,控制模块202指导磁盘地址指示器224将索引扇区208中的数据块转移到磁盘108。这样,当来自缓冲器扇区208的数据被提交给磁盘108时,该特定缓冲器扇区208立即被释放,供下一主机140写命令使用。
在操作356中,控制模块202确定将被转移的、文件内的所有数据块是否已被提交给磁盘。如果没有,则在操作358中,如前一索引扇区208的下一扇区指令212所指示的,控制模块202将磁盘地址指示器224定位在下一个“索引”扇区208上。在将磁盘地址指示器224定位在下一索引扇区208上之后,控制模块202跳转到操作352并从那儿重复该程序。一旦磁盘地址指示器224已经完全转移存储文件的特定缓冲器片段210(如操作356中所确定的),就完成了任务,并且控制模块202初始化磁盘地址指示器210,以等候后来转移的指令。
如果一个新的写命令来到在LBA空间中是连续的控制模块202,因此就直接跟随在磁盘108上,缓冲器扇区208被提交给磁盘108,那么把将要被写到磁盘108的缓冲器扇区208加到空闲_列表的末端的过程非常有利。这个优点在于:不必为新的写命令操纵缓冲器表格206,因为控制模块202将在与它把旧数据提交给磁盘108相同的操作期间将新的数据写到磁盘108。表格7对该过程的说明作了最好的分析:
扇区#(偏移量) | 下一扇区指令 | |
0 | 1 | |
1 | 2 | ←磁盘地址指示器 |
2 | 3 | |
3 | 4 | ←空闲_空间_启动 |
4 | 5 | |
5 | 6 | |
6 | 3 |
表格7
在这个例子中,由于扇区3对应于空闲_空间_启动,因此与新的写命令有关的数据将具有第一索引扇区108“3”。如果新的写命令大于(更多的扇区)片段210(在此情况下是扇区3、4、5和6),则控制模块202将空闲_列表用作循环回路。由于存储正被提交给磁盘108的数据的缓冲器扇区208已经被加到空闲_列表的末端,因此这类扇区208成为循环空闲_列表的一部分。控制模块202指导磁盘地址指示器224跟随主机地址指示器220(在第一索引扇区208处被启动),而当来自缓冲器扇区208的数据被提交给磁盘108时,它又跟随磁盘地址指示器224。因此,控制模块202通过使用磁盘224和主机地址220指示器来执行实时的循环回路。
缓冲器管理系统200的另一个优点是:控制模块202能够将两个或多个被高速缓存的命令合并入一个缓冲器片段210。将一个缓冲器片段210合并入另一个缓冲器片段是有利的,因为这种过程允许在一次操作中将数据从缓冲器145写到磁盘108。如果两个或多个缓冲器片段210包含将要被写到磁盘108上邻近伺服片段164上的数据文件,则控制模块202将把缓冲器表格206的这些缓冲器片段210“合并”入一个缓冲器片段210。
参考图11,在操作379~385中一般描述的流程图展示了控制模块202的合并过程。在操作380中,对缓冲器片段210中所包含的被高速缓存的写入进行比较,以确定数据文件将被提交给邻近的还是连续的伺服片段164上的磁盘108。在操作382中,如果这类数据没有被提交给邻近的伺服片段164,那么操作381进行检查,以发现表格206中的所有缓冲器片段210是否都已经相互比较过。如果没有,则重复操作380的比较程序。如果所有缓冲器片段210都已经被比较过,则该过程结束,不合并任何缓冲器片段210。
如果来自缓冲器片段210的数据将在磁盘108上的连续位置中被提交,则实际的合并过程将在操作384中开始。在操作384中,任何缓冲器片段210的最后缓冲器扇区208的下一扇区指令值212被另一缓冲器片段210的第一索引扇区208的偏移值214代替。因此,这两个片段210被合并入一个循环链接列表。一旦合并完成,就再次用操作380来启动该过程,直到所有缓冲器片段210都相互比较,如操作381所确定的。本质上,这是由高速缓存到缓冲器145的写入频率引起的一个正在进行的过程。表格8和9进一步展示了合并过程操作384:
扇区#(偏移量) | 下一扇区指令 |
0 | 1 |
1 | 0 |
2 | 3 |
3 | 6 |
4 | 5 |
5 | 4 |
6 | 2 |
表格8
扇区#(偏移量) | 下一扇区指令 |
0 | 1 |
1 | 4 |
2 | 3 |
3 | 6 |
4 | 5 |
5 | 0 |
6 | 2 |
表格9
在这个例子中,表格8示出合并之前的缓冲器表格206。表格8包含3个分开的缓冲器片段210:片段0:1、片段4:5和片段2:3:6。在此说明中,片段0:1中包含的数据块将被放置在邻近伺服片段210中的磁盘108上。所以,由于片段0:1和4:5在磁盘108上是连续的,因此,控制模块202将合并这两个缓冲器片段210,从而产生表格9。如所示的内容,表格9只包含两个缓冲器片段210:片段0:1:4:5和片段2:3:6。
总之,本发明可以被视作一种缓冲器管理系统(例如,200),用于管理数据从主计算机(例如140)转移到磁盘驱动器(例如100)中的可记录的磁盘(例如108)。磁盘驱动器(例如100)操作主计算机(例如140)。可记录的磁盘(例如108)被径向地分成一个或多个相等的伺服片段(例如164)并环向地被分成一个或多个旋转磁道(例如160)。这样,磁道(例如160)由伺服片段(例如164)划分。
在一种磁盘驱动器(例如100)中,通过将组成文件的所选数量的数据块从主计算机(例如140)或磁盘(例如108)转移到缓冲器(例如145)供临时存储文件,来实现主计算机(例如140)与磁盘(例如108)之间的数据转移。在临时存储之后,文件被转移到主计算机(例如140)或磁盘(例如108)。根据本发明,缓冲器的管理由缓冲器管理系统(例如200)来实现,缓冲器管理系统包括一个缓冲器表格(例如206)、一个应用程序模块(例如204)和一个控制模块(例如202)。
缓冲器管理系统(例如200)包括一个缓冲器表格(例如206),它被分成一个或多个尺寸相等的缓冲器扇区(例如208)。每个缓冲器扇区(例如208)是缓冲器片段(例如210)中的一个扇区。缓冲器片段(例如210)被定义为缓冲器表格(例如206)内的一个循环链接列表。缓冲器管理系统(例如200)还包括漫游每个特定缓冲器片段(例如210)的应用程序模块(例如204)。缓冲器表格(例如206)被分成至少一个缓冲器片段(例如210)。但是,缓冲器表格(例如206)只能被分成与缓冲器表格(例如206)所具有的缓冲器扇区(例如208)一样多的缓冲器片段(例如210)。
缓冲器管理系统(例如200)进一步包括一个控制模块(例如202),它创建并保存缓冲器表格(例如206)。控制模块(例如202)与应用程序模块(例如204)耦合,以便管理应用程序模块(例如204)漫游缓冲器表格(例如206)。应用程序模块(例如204)响应应用程序模块(例如204)当前所在索引扇区(例如208)中的下一扇区指令(例如212)而漫游缓冲器表格(例如206)。在数据被过早地提交给磁盘(例如108)或缓冲器(例如145)的情况下,控制模块(例如202)包括一个查找程序(例如在操作414中),该查找程序重新启动应用程序模块(例如204),以执行随后的数据查找。
应用程序模块(例如204)较佳地包括用于将数据提交给缓冲器(例如145)的主机地址指示器(例如220)。主机地址指示器(例如220)被较佳地耦合到主机下一指示器(例如222),它将索引扇区(例如208)的下一扇区指令(例如212)传达给主机地址指示器(例如220)。因此,下一扇区指令(例如212)控制特定缓冲器片段(例如210)内主机地址指示器(例如220)的定位。
应用程序模块(例如204)也较佳地包括用于将数据从缓冲器(例如145)提交给磁盘(例如208)的磁盘地址指示器。磁盘地址指示器(例如224)被较佳地耦合到磁盘下一指示器(例如226),它将索引扇区(例如208)的下一扇区指令(例如212)传达给磁盘地址指示器(例如224)。因此,下一扇区指令(例如212)控制特定缓冲器片段(例如210)内磁盘地址指示器(例如224)的定位。
在一个较佳实施例中,缓冲器表格(例如206)包括系统可获得的、用于临时存储的空闲扇区列表。当一个现存数据块从索引扇区(例如208)被写到磁盘(例如108)时,控制模块(例如202)将索引扇区(例如208)修补入空闲扇区列表,以便索引扇区(例如208)被提交给磁盘(例如108)时系统(例如200)可以利用它。控制模块(例如202)从空闲列表中任意地选择特定缓冲器片段(例如210),并且当主机(例如140)发出写指令时,它将主机地址指示器(例如220)任意地安置在特定缓冲器片段(例如210)的第一索引扇区(例如208)上。空闲列表较佳地包括含有被写到磁盘108或被认为是多余的数据的任何缓冲器片段(例如210)。
控制模块(例如202)也包括一个合并程序(例如在操作380~384中)。合并程序(例如在操作380~384中)结合将被写到邻近伺服片段(例如164)的一个或多个缓冲器片段(例如210)。合并程序(例如在操作380~384中)将多个缓冲器片段(例如210)转换成可以在一次写过程中提交给磁盘(例如108)的集合缓冲器片段(例如210)。
本发明也可以被视作一种方法(例如在操作400中),用于管理将数据从主计算机(例如140)转移到磁盘驱动器(例如100)中的可记录磁盘(例如108)。该方法(例如在操作400中)包括:保存(例如在操作402中)缓冲器表格(例如206),该缓冲器表格被分成一个或多个尺寸相等的缓冲器扇区(例如208);将每个缓冲器扇区(例如208)安排(例如在操作404中)到至少一个缓冲器片段(例如210)中。缓冲器表格(例如206)(是单独链接列表)被分成一个或多个缓冲器片段(例如210)(是循环链接列表)。该方法(例如在操作400中)还包括:选择(例如在操作406中)一个特定的缓冲器片段(例如210),来临时存储将从主计算机(例如140)转移到缓冲器(例如145)的文件;通过响应索引扇区(例如208)中包含的下一扇区指令(例如212)漫游特定缓冲器片段(例如210),来将文件从主计算机(例如140)转移(例如在操作408中)到缓冲器(例如145)。索引扇区是正从其转移数据的缓冲器扇区(例如208)。
该方法(例如在操作400中)还包括:将文件临时存储(例如在操作410中)在特定缓冲器片段(例如210)中达一段时期;最后通过响应索引扇区(例如208)中包含的下一扇区指令(例如212)漫游特定缓冲器片段(例如210),来将文件从缓冲器(例如145)中移走(例如在操作412中)并将文件重新定位到可记录的磁盘(例如108)。
在一个较佳实施例中,保存缓冲器表格(例如在操作402中)的方法(例如在操作400中)包括该步骤:创建(例如在操作300中)空闲扇区列表,以易于接受新的数据块。选择步骤(例如在操作406中)中的方法较佳地包括:一旦主计算机(例如140)发送将文件写到缓冲器(例如145)的命令,就任意地将第一索引扇区(例如208)选为将用于存储数据(例如操作410)的特定缓冲器片段(例如210)的开始。安排步骤(例如操作404)中的方法(例如在操作400中)较佳地包括:通过在任意选择的第一索引扇区(例如208)处开始,并且遍历比文件中所选数目数据块少一个的缓冲器扇区,从而从空闲扇区列表中生成一个缓冲器片段(例如210)。最后,在该较佳实施例中,该方法(例如在操作400中)接受(例如在操作302中)将被高速缓存的输入数据文件,并将该输入数据文件放入索引扇区(例如208)处的缓冲器片段(例如210)。
如所述的内容,该方法(例如在操作400中)可以通过将各个扇区(例如208)组织成一个或多个缓冲器片段(例如210)来安排(例如在操作404中)缓冲器表格。但是,缓冲器表格(例如206)只可以被分成等于缓冲器表格(例如206)中扇区(208)数量的最大数量的缓冲器片段(例如210)。该方法(例如在操作400中)也可以把将被提交给磁盘(例如108)的每个扇区(例如208)修补入(例如在操作354-358中)空闲扇区列表中,以便每个扇区(例如208)被提交给磁盘(例如108)时系统可以利用它。
在一个较佳实施例中,该方法(例如在操作400中)比较(例如在操作322中)将被存储在缓冲器(例如145)中的数据块和所有缓冲器片段(例如210)中的每个现存数据块。如果该比较(例如在操作322中)揭示出现存数据块与将被存储在缓冲器(例如145)中的数据块之间的冗余度,则存储现存数据块的缓冲器片段(例如210)被修补(例如在操作354-358中)入空闲列表。该方法(例如在操作354-358中)最好还将含有将被写入邻近伺服片段(例如208)的数据文件的一个或多个缓冲器片段(例如210)合并在一起(例如在操作384中),从而只允许为那些片段164执行一次写操作。
在该较佳实施例中,该方法(例如在操作400中)包括:通过漫游具有耦合到主机下一指示器(例如222)的主机地址指示器(例如220)的特定缓冲器片段(例如210),来将数据转移(例如在操作408中)到缓冲器(例如145)。主机下一指示器(例如222)向主机地址指示器(例如220)传达下一扇区指令(例如212)。本质上,下一扇区指令(例如212)控制特定缓冲器片段(例如210)内主机地址指示器(例如220)的定位。此外,该方法(例如在操作400中)较佳地包括:通过漫游具有耦合到磁盘下一指示器(例如226)的磁盘地址指示器(例如224)的特定缓冲器片段(例如210),从缓冲器中移走数据并对其重新定位(例如在操作412中)。磁盘下一指示器(例如226)向磁盘地址指示器(例如224)传达下一扇区指令(例如212)。本质上,下一扇区指令(例如212)控制特定缓冲器片段(例如210)内磁盘地址指示器(例如224)的定位。万一过早地转移(例如在操作408中)数据或过早地移走并替换(例如在操作412中)数据,则可根据该方法(例如在操作400中)来重新启动(例如在操作414、416中)两种操作中的任何一种操作。
将显而易见,本发明很适合达到所述的各种目标和优点及其中固有的目标和优点。已出于揭示目的描述了本较佳实施例,但可以在本发明的范围内进行各种变化和修改。例如,VBM可能对使用缓冲器来执行数据转移的其他类型的数据存储设备(例如,磁带驱动器、光驱和网络)有用。同样,可以把控制模块设计成使用集成电路或逻辑电路(与软件对立,或与软件结合)。此外,应用程序模块可以将地址指示器和下一指示器组合在一个单一部件中。另外,可以用不脱离本发明的各种其他的方法来解释缓冲器表格的保存。例如,VBM的各种技术可用于文件分配表格。VBM表格本身也可被编制成双重链接列表(具有下一指示器和前一指示器),硬件可以被构建成在保存这种表格中协助软件。也可以将整个系统建立成处理大于或小于标准512个字节的数据选集。可以进行许多其他的改变,精通该技术领域的人将会了解这些改变,并且这些改变被包含在所揭示的本发明的精神之内并在所附权利要求书中被加以定义。
Claims (20)
1.一种用于管理将数据从主计算机转移到磁盘驱动器中的可记录磁盘的缓冲器管理系统,在主计算机上操作磁盘驱动器,可记录磁盘被径向地分成多个相等的伺服片段并被环向地分成多个旋转磁道,其中,磁盘驱动器的类型是可以通过将被定义为选定数量数据块的文件转移到缓冲器供临时存储,来实行主计算机与磁盘之间的数据转移,其特征在于该系统包括:
一个被分成多个相等缓冲器扇区的缓冲器表格,其中多个缓冲器扇区中的每个缓冲器扇区都是缓冲器片段中的一个扇区,该缓冲器片段被定义为划分缓冲器表格的多个循环链接列表中的一个;
一个应用程序模块,它可漫游特定缓冲器片段,其中当漫游缓冲器片段时,数据被转移;以及,
一个控制模块,用于创建和保存缓冲器表格,控制模块与应用程序模块耦合,以便控制模块响应应用程序模块当前所在索引扇区中的下一扇区指令来管理应用程序模块的漫游。
2.如权利要求1所述的系统,其特征在于,应用程序模块还包括:
用于将数据提交给缓冲器的主机地址指示器,主机地址指示器包括用于将索引扇区的下一扇区指令传达给主机地址指示器的主机下一指示器,以便下一扇区指令控制特定缓冲器片段内主机地址指示器的定位;
用于将数据从缓冲器提交给磁盘的磁盘地址指示器,该磁盘地址指示器包括用于将索引扇区的下一扇区指令传达给磁盘地址指示器的磁盘下一指示器,以便下一扇区指令控制特定缓冲器片段内磁盘地址指示器的定位。
3.如权利要求2所述的系统,其特征在于,缓冲器表格包括系统可用的、用于临时存储的空闲扇区列表;其中控制模块把将要被写到磁盘的索引扇区修补入空闲列表,以便索引扇区被提交给磁盘时,系统可利用它。
4.如权利要求3所述的系统,其特征在于,控制模块按任意的方式从空闲列表中选择特定的缓冲器片段,以便主机地址指示器被控制模块任意地安置在特定缓冲器片段的第一索引扇区上。
5.如权利要求3所述的系统,其特征在于,扇区被修补入空闲扇区列表,因为当与一个新命令的数据块比较时,索引扇区的数据块是多余的。
6.如权利要求2所述的系统,其特征在于,控制模块包括一个查找程序,其中在过早提交数据的情况下,查找程序重新启动应用程序模块。
7.如权利要求1所述的系统,其特征在于,缓冲器表格至少包括一个缓冲器片段;其中缓冲器表格被分成等于缓冲器表格中缓冲器扇区数量的最大数量的缓冲器片段。
8.如权利要求1所述的系统,其特征在于,控制模块还包括一个合并程序,其中合并程序组合将被写到多个邻近伺服片段的缓冲器表格中的多个缓冲器片段,以便合并程序将多个缓冲器片段转换成可以在一次写过程中被提交给磁盘的集合缓冲器片段。
9.一种用于管理将数据从主计算机转移到磁盘驱动器中的可记录磁盘的方法,磁盘驱动器操作主计算机,可记录磁盘被径向地分成多个相等的伺服片段并被环向地分成多个旋转磁道,其中磁盘驱动器的类型可以通过将被定义为所选数量数据块的文件转移到缓冲器供临时存储文件,来实行主计算机与磁盘之间的数据转移,其特征在于该方法包括以下步骤:
(a)保存被分成多个尺寸相等的缓冲器扇区的缓冲器表格;
(b)将多个缓冲器扇区中的每个缓冲器扇区安排到至少一个缓冲器片段中,该缓冲器片段被定义为划分缓冲器表格的循环链接列表;
(c)选择一个特定的缓冲器片段,来临时存储将从主计算机转移到缓冲器的文件;
(d)通过响应索引扇区中包含的下一扇区指令而漫游特定的缓冲器片段,来将文件从主计算机转移到缓冲器,该索引扇区被定义为正从其转移数据的缓冲器扇区;
(e)将文件临时存储在特定缓冲器片段达一段时期;以及
(f)通过响应索引扇区中包含的下一扇区指令而漫游特定的缓冲器片段,从缓冲器移走文件并将文件重新定位到可记录磁盘。
10.如权利要求9所述的方法,其特征在于,保存步骤(a)包括:创建易于接受新的数据块的空闲扇区列表。
11.如权利要求10所述的方法,其特征在于,选择步骤(c)包括:将第一索引扇区任意地选为将在存储步骤(e)中使用的特定缓冲器片段的开始。
12.如权利要求11所述的方法,其特征在于,安排步骤(b)包括:通过在任意选择的第一索引扇区处开始并遍历比文件中所选数量数据块少一的缓冲器扇区,来从空闲扇区列表中生成缓冲器片段。
13.如权利要求12所述的方法,其特征在于,转移步骤(d)还包括:
(i)接受将被高速缓存的输入数据文件;以及
(ii)将输入数据文件放入索引扇区处的缓冲器片段。
14.如权利要求9所述的方法,其特征在于,安排步骤(b)包括:将各个扇区组织成多个缓冲器片段,缓冲器片段的最大数量等于缓冲器表格中扇区的数量。
15.如权利要求10所述的方法,其特征在于还包括:
(g)把将要被写到磁盘的索引扇区修补入空闲扇区列表,以便索引扇区被提交给磁盘时,系统可用利用它。
16.如权利要求15所述的方法,其特征在于还包括:
(h)比较将被存储在缓冲器中的数据块和每个缓冲器片段中每个现存的数据块,以便如果比较步骤(h)揭示了现存数据块与将被存储在缓冲器中的数据块之间的冗余度,则存储现存数据块的缓冲器片段被修补入空闲列表。
17.如权利要求9所述的方法,其特征在于还包括:
(g)把包含将被写到多个邻近伺服片段的数据文件的多个特定缓冲器片段合并起来,以便可以在一次操作中执行多个特定缓冲器片段的写操作。
18.如权利要求9所述的方法,其特征在于,转移步骤(d)包括漫游具有耦合到下一指示器的地址指示器的特定缓冲器片段,其中下一指示器将下一扇区指令传达给地址指示器,以便下一扇区指令控制特定缓冲器片段内地址指示器的定位。
19.如权利要求9所述的方法,其特征在于还包括:
(g)在过早地执行转移步骤(d)和移动与替换步骤(f)中任何一个步骤的情况下,重新启动这些步骤。
20.一种用于数据存储设备的缓冲器管理系统,其特征在于包括:
一个应用程序模块,用于将数据转移入和转移出数据存储设备中的缓冲器;以及
用于操作应用程序模块的控制装置,以便应用程序模块在该控制装置的管理下漫游缓冲器表格。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17177999P | 1999-12-22 | 1999-12-22 | |
US60/171,779 | 1999-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1434936A true CN1434936A (zh) | 2003-08-06 |
Family
ID=22625101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00819122A Pending CN1434936A (zh) | 1999-12-22 | 2000-10-26 | 用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6330640B1 (zh) |
JP (1) | JP2003518313A (zh) |
KR (1) | KR20020064357A (zh) |
CN (1) | CN1434936A (zh) |
DE (1) | DE10085321T1 (zh) |
GB (1) | GB2373612B (zh) |
WO (1) | WO2001046792A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1312550C (zh) * | 2005-03-28 | 2007-04-25 | 北京紫光华宇软件股份有限公司 | 一种将数据转储到移动存储介质以及从其上提取数据的方法 |
CN100365559C (zh) * | 2004-11-16 | 2008-01-30 | 三星电子株式会社 | 在主机和硬盘驱动器之间共享应用程序的方法和装置 |
CN101329661B (zh) * | 2008-07-31 | 2010-04-21 | 北京飞天诚信科技有限公司 | 一种实现hid/scsi设备pc/sc接口的系统和方法 |
CN101566929B (zh) * | 2003-08-14 | 2013-10-16 | 克姆佩棱特科技公司 | 虚拟磁盘驱动系统和方法 |
CN115269455A (zh) * | 2022-09-30 | 2022-11-01 | 湖南兴天电子科技股份有限公司 | 基于fpga的磁盘数据读写控制方法、装置和存储终端 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6504846B1 (en) * | 1999-05-21 | 2003-01-07 | Advanced Micro Devices, Inc. | Method and apparatus for reclaiming buffers using a single buffer bit |
US6668304B1 (en) * | 2000-01-18 | 2003-12-23 | International Business Machines Corporation | Transaction support on logical disks |
US6636941B1 (en) * | 2000-01-18 | 2003-10-21 | International Business Machines Corporation | Enhanced stable disk storage |
US6941419B2 (en) * | 2000-05-24 | 2005-09-06 | Seagate Technology Llc | Method and apparatus for disc drive buffer segment management |
US6795894B1 (en) * | 2000-08-08 | 2004-09-21 | Hewlett-Packard Development Company, L.P. | Fast disk cache writing system |
TW487177U (en) * | 2001-10-31 | 2002-05-11 | Coretronic Corp | Anti-dust lid of connecting slot |
DE10162046A1 (de) * | 2001-12-17 | 2003-06-26 | Thomson Brandt Gmbh | Wiedergabegerät mit einem Zwischenspeicher zum Verringern der mittleren Zugriffszeit auf einen Informationsträger |
US6792504B2 (en) | 2002-01-25 | 2004-09-14 | Seagate Technology Llc | Read on arrival scheme for a disc drive |
US20040003172A1 (en) * | 2002-07-01 | 2004-01-01 | Hui Su | Fast disc write mechanism in hard disc drives |
US6961814B1 (en) * | 2002-09-30 | 2005-11-01 | Western Digital Technologies, Inc. | Disk drive maintaining a cache link attribute for each of a plurality of allocation states |
CN1316376C (zh) * | 2002-12-12 | 2007-05-16 | 建兴电子科技股份有限公司 | 缓冲器的多区段管理结构及管理方法 |
US7159073B2 (en) * | 2003-03-27 | 2007-01-02 | Stmicroelectronics, Inc. | Data storage and caching architecture |
US8069192B2 (en) * | 2004-03-22 | 2011-11-29 | Microsoft Corporation | Computing device with relatively limited storage space and operating / file system thereof |
US7647358B2 (en) * | 2004-03-22 | 2010-01-12 | Microsoft Corporation | Computing device with relatively limited storage space and operating/file system thereof |
JP2006227923A (ja) * | 2005-02-17 | 2006-08-31 | Fujitsu Ltd | ディスク管理装置およびディスク管理プログラム |
JP2006244123A (ja) | 2005-03-03 | 2006-09-14 | Fujitsu Ltd | データストレージシステム及びデータストレージ制御装置 |
JP4312733B2 (ja) | 2005-04-04 | 2009-08-12 | Necエレクトロニクス株式会社 | データ記録再生装置及びデータ記録再生方法 |
TWI287790B (en) * | 2005-06-23 | 2007-10-01 | Sunplus Technology Co Ltd | Buffer management device, record and reproduction device and management method for buffer memory |
US7752059B2 (en) | 2005-07-05 | 2010-07-06 | Cardiac Pacemakers, Inc. | Optimization of timing for data collection and analysis in advanced patient management system |
US9426269B2 (en) * | 2005-09-01 | 2016-08-23 | Xtone Networks, Inc. | System and method for performing certain actions based upon a dialed telephone number |
US11102342B2 (en) | 2005-09-01 | 2021-08-24 | Xtone, Inc. | System and method for displaying the history of a user's interaction with a voice application |
US20100166161A1 (en) * | 2005-09-01 | 2010-07-01 | Vishal Dhawan | System and methods for providing voice messaging services |
US9313307B2 (en) * | 2005-09-01 | 2016-04-12 | Xtone Networks, Inc. | System and method for verifying the identity of a user by voiceprint analysis |
US9799039B2 (en) | 2005-09-01 | 2017-10-24 | Xtone, Inc. | System and method for providing television programming recommendations and for automated tuning and recordation of television programs |
US8964960B2 (en) * | 2005-09-01 | 2015-02-24 | Xtone Networks, Inc. | System and method for interacting with a user via a variable volume and variable tone audio prompt |
WO2007028128A2 (en) * | 2005-09-01 | 2007-03-08 | Vishal Dhawan | Voice application network platform |
US9456068B2 (en) * | 2005-09-01 | 2016-09-27 | Xtone, Inc. | System and method for connecting a user to business services |
US9253301B2 (en) * | 2005-09-01 | 2016-02-02 | Xtone Networks, Inc. | System and method for announcing and routing incoming telephone calls using a distributed voice application execution system architecture |
US20100158217A1 (en) | 2005-09-01 | 2010-06-24 | Vishal Dhawan | System and method for placing telephone calls using a distributed voice application execution system architecture |
US11153425B2 (en) * | 2005-09-01 | 2021-10-19 | Xtone, Inc. | System and method for providing interactive services |
JP4527640B2 (ja) * | 2005-09-15 | 2010-08-18 | 株式会社ソニー・コンピュータエンタテインメント | データ読出装置 |
JP3870215B1 (ja) * | 2005-09-30 | 2007-01-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | テープ記録装置のデータ書込み読取り制御方法 |
JP4892225B2 (ja) * | 2005-10-28 | 2012-03-07 | 株式会社日立ハイテクノロジーズ | 真空処理方法、真空搬送装置および半導体処理装置 |
US8200869B2 (en) * | 2006-02-07 | 2012-06-12 | Seagate Technology Llc | Storage system with alterable background behaviors |
US7549021B2 (en) | 2006-02-22 | 2009-06-16 | Seagate Technology Llc | Enhanced data integrity using parallel volatile and non-volatile transfer buffers |
CN101246727B (zh) * | 2007-02-16 | 2011-05-04 | 联发科技股份有限公司 | 光学储存媒体记录方法及光学储存装置 |
US8499120B2 (en) * | 2008-10-17 | 2013-07-30 | Seagate Technology Llc | User selectable caching management |
KR101023877B1 (ko) * | 2009-04-17 | 2011-03-22 | (주)인디링스 | 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러 |
US9110594B2 (en) | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US8780475B2 (en) * | 2012-08-30 | 2014-07-15 | International Business Machines Corporation | Tape drive buffer utilization |
US9612956B2 (en) | 2013-03-15 | 2017-04-04 | Seagate Technology Llc | Multi-tiered caching for data storage management in a device |
US10564890B2 (en) | 2017-07-07 | 2020-02-18 | Seagate Technology Llc | Runt handling data storage system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4428064A (en) * | 1981-03-06 | 1984-01-24 | International Business Machines Corporation | Controlling buffered peripheral subsystems |
US4412285A (en) * | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
JPS621067A (ja) * | 1985-02-25 | 1987-01-07 | Hitachi Ltd | ベクトル処理装置 |
US5034914A (en) * | 1986-05-15 | 1991-07-23 | Aquidneck Systems International, Inc. | Optical disk data storage method and apparatus with buffered interface |
USH513H (en) * | 1986-06-30 | 1988-08-02 | The United States Of America As Represented By The Secretary Of The Air Force | ECM preprocessor or tracker using multi-processor modules |
US5179530A (en) * | 1989-11-03 | 1993-01-12 | Zoran Corporation | Architecture for integrated concurrent vector signal processor |
US5155814A (en) | 1990-08-31 | 1992-10-13 | International Business Machines Corporation | Nonsynchronous channel/dasd communication system |
EP0528273B1 (en) * | 1991-08-16 | 1999-10-27 | Fujitsu Limited | Buffer memory and method of managing the same |
US5276662A (en) * | 1992-10-01 | 1994-01-04 | Seagate Technology, Inc. | Disc drive with improved data transfer management apparatus |
US5765193A (en) * | 1993-07-01 | 1998-06-09 | Digital Equipment Corporation | System for controlling a write operation involving data held in a write cache |
US5594926A (en) * | 1993-07-19 | 1997-01-14 | Efar Microsystems, Inc. | Hard disk accelerating system for computer |
US5481296A (en) * | 1993-08-06 | 1996-01-02 | International Business Machines Corporation | Apparatus and method for selectively viewing video information |
US5636188A (en) * | 1993-11-19 | 1997-06-03 | Sony Corporation | Data transmission circuit for disk storage apparatus |
US5689653A (en) * | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
US5721543A (en) * | 1995-06-30 | 1998-02-24 | Iterated Systems, Inc. | System and method for modeling discrete data sequences |
US6378051B1 (en) | 1999-06-14 | 2002-04-23 | Maxtor Corporation | Interrupt signal prioritized shared buffer memory access system and method |
-
2000
- 2000-10-26 US US09/696,861 patent/US6330640B1/en not_active Expired - Lifetime
- 2000-10-26 WO PCT/US2000/029503 patent/WO2001046792A1/en not_active Application Discontinuation
- 2000-10-26 GB GB0214398A patent/GB2373612B/en not_active Expired - Fee Related
- 2000-10-26 KR KR1020027008037A patent/KR20020064357A/ko not_active Application Discontinuation
- 2000-10-26 CN CN00819122A patent/CN1434936A/zh active Pending
- 2000-10-26 DE DE10085321T patent/DE10085321T1/de not_active Withdrawn
- 2000-10-26 JP JP2001547242A patent/JP2003518313A/ja not_active Withdrawn
-
2001
- 2001-12-07 US US10/014,057 patent/US6757781B2/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566929B (zh) * | 2003-08-14 | 2013-10-16 | 克姆佩棱特科技公司 | 虚拟磁盘驱动系统和方法 |
CN100365559C (zh) * | 2004-11-16 | 2008-01-30 | 三星电子株式会社 | 在主机和硬盘驱动器之间共享应用程序的方法和装置 |
CN1312550C (zh) * | 2005-03-28 | 2007-04-25 | 北京紫光华宇软件股份有限公司 | 一种将数据转储到移动存储介质以及从其上提取数据的方法 |
CN101329661B (zh) * | 2008-07-31 | 2010-04-21 | 北京飞天诚信科技有限公司 | 一种实现hid/scsi设备pc/sc接口的系统和方法 |
CN115269455A (zh) * | 2022-09-30 | 2022-11-01 | 湖南兴天电子科技股份有限公司 | 基于fpga的磁盘数据读写控制方法、装置和存储终端 |
CN115269455B (zh) * | 2022-09-30 | 2022-12-23 | 湖南兴天电子科技股份有限公司 | 基于fpga的磁盘数据读写控制方法、装置和存储终端 |
Also Published As
Publication number | Publication date |
---|---|
KR20020064357A (ko) | 2002-08-07 |
US6757781B2 (en) | 2004-06-29 |
GB0214398D0 (en) | 2002-07-31 |
GB2373612B (en) | 2004-05-05 |
WO2001046792A1 (en) | 2001-06-28 |
US6330640B1 (en) | 2001-12-11 |
GB2373612A (en) | 2002-09-25 |
US20030149815A1 (en) | 2003-08-07 |
JP2003518313A (ja) | 2003-06-03 |
DE10085321T1 (de) | 2002-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1434936A (zh) | 用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统 | |
CN107037976B (zh) | 存储装置及其工作方法 | |
CN1129848C (zh) | 对非易失性存储器中的文件进行连续重写的方法 | |
US8756382B1 (en) | Method for file based shingled data storage utilizing multiple media types | |
US20010047451A1 (en) | Method and apparatus for disc drive defragmentation | |
US4935825A (en) | Cylinder defect management system for data storage system | |
US9804786B2 (en) | Sector translation layer for hard disk drives | |
US9280477B2 (en) | Data storage management in a memory device | |
CN1051387C (zh) | 高速缓存控制系统 | |
US9703699B2 (en) | Hybrid-HDD policy for what host-R/W data goes into NAND | |
CN1673976A (zh) | 数据存储装置、其控制方法以及磁盘存储装置 | |
US6925539B2 (en) | Data transfer performance through resource allocation | |
CN1904858A (zh) | 数据存储设备、数据存储方法以及记录/再现系统 | |
CN1679107A (zh) | 带有用于存储数据的非易失性存储器的存储系统 | |
US10152236B2 (en) | Hybrid data storage device with partitioned local memory | |
CN1421003A (zh) | 对盘驱动事务处理采用存取日志 | |
JP2015082240A (ja) | ストレージ装置、キャッシュコントローラ、及び不揮発性記憶媒体にデータを書き込む方法 | |
JP2003122631A (ja) | データ記憶装置、コンピュータ装置、データ処理装置およびデータ処理方法 | |
US6693754B2 (en) | Method and apparatus for a disc drive adaptive file system | |
US20140258591A1 (en) | Data storage and retrieval in a hybrid drive | |
CN1264095C (zh) | 盘存储装置和访问包含备用扇区的盘的方法 | |
US20030202270A1 (en) | Disc drive with reduced write latency | |
US20170371554A1 (en) | Internal Data Transfer Management in a Hybrid Data Storage Device | |
KR20070060301A (ko) | 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버 | |
US6725330B1 (en) | Adaptable cache for disc drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |