CN101187848A - 改进硬盘驱动器效率的技术 - Google Patents
改进硬盘驱动器效率的技术 Download PDFInfo
- Publication number
- CN101187848A CN101187848A CNA2007101814295A CN200710181429A CN101187848A CN 101187848 A CN101187848 A CN 101187848A CN A2007101814295 A CNA2007101814295 A CN A2007101814295A CN 200710181429 A CN200710181429 A CN 200710181429A CN 101187848 A CN101187848 A CN 101187848A
- Authority
- CN
- China
- Prior art keywords
- disk drive
- main frame
- read
- hard disk
- processor
- 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
- 238000000034 method Methods 0.000 title claims description 19
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000012546 transfer Methods 0.000 claims abstract description 3
- 238000005457 optimization Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 20
- 238000004088 simulation Methods 0.000 claims description 8
- 238000009434 installation Methods 0.000 claims description 3
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims 2
- 238000013500 data storage Methods 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 12
- 230000005055 memory storage Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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/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/0658—Controller construction 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
- G06F3/0676—Magnetic 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了改进硬盘驱动器效率的技术。主机操作系统(OS)可作为盘驱动器操作系统下的任务运行。可在单个处理器上运行主机OS和盘驱动器操作系统。处理器能够保持盘驱动器控制器的实时响应特性。盘驱动器存储装置可存取和响应与主机操作系统(OS)保持的底层文件系统有关的元数据,以优化盘驱动器和主机OS之间的数据传输。盘驱动器可识别读和写存取的性质,允许其优先排序和性能优化这些存取。盘驱动器可执行这些功能而无需对块接口的任何改变。
Description
技术领域
本发明涉及盘驱动器,并且更具体地,涉及用于改进硬盘驱动器的效率的技术。
背景技术
当主机操作系统向存储装置发送读或写请求时,操作系统(OS)内的请求任务阻塞,直到完成请求为止。在桌面环境中,一般在请求操作期间存在其他可执行的任务。
然而,嵌入式装置一般每次仅执行一个功能。在具有集成驱动存储器的嵌入式装置中,运行主机OS的处理器在盘驱动器操作期间是空闲的。相反地,盘驱动器控制器处理器也具有明显的空闲时段。
大多数盘驱动器控制器处理器设计对于总体带宽的压力响应时间。根据标准设计准则,更多的重点放在使盘驱动器控制器处理器一旦接收到命令就迅速完成其处理上。例如,标准设计准则将更多的重要性放在启动盘驱动器中的致动器的移动上,而不是放在一段时间上可完成的处理的总量最大化上。结果,盘驱动器控制器处理器具有大量的没有使用的处理器带宽。
在一般的嵌入式装置的环境下,当主机OS处理器操作时和当盘驱动器控制器操作时,其之间很少有重叠。因而,将期望增加主机OS和盘驱动器控制器之间的数据传输的效率,以提供成本和性能优势。
在经由块地址存取数据的存储装置中,存储装置不具有任何给定的读/写存取的性质的知识。从存储装置的角度来看,所有存取是平等创建的。视频和音频的实时性质需要具有很低的抖动的稳定数据速率。
在许多这样的系统中,同时发生对存储装置的其他存取。例如,在用户浏览频道向导的同时,机顶盒可以播放影片。影片的要求是实时的,而频道向导不是。由于存储装置不注意这些要求,所以必须将系统设计为围绕这一限制来工作,常常导致额外的系统成本或较低水平的性能。
已经做出的解决此限制的尝试未能在市场中使用,因为向存储装置增加了大量成本,或者用于系统/存储装置通信的协议要求对标准的大量改变。
因而,将期望提供用于使盘驱动器存储装置提供多个音频和/或视频流的、而无需大量的额外成本或对系统或存储装置通信协议的大量改变的技术。
发明内容
根据本发明的一些实施例,主机操作系统(OS)作为盘驱动器操作系统下的任务运行。根据其他实施例,可在单个处理器上运行主机OS和盘驱动器操作系统。处理器能够保持盘驱动器控制器的实时响应特性。本发明在主机OS和盘驱动器之间提供了唯一接口,其最小化对主机OS的改变。本发明的其他实施例提供了可由两个操作系统存取的共享存储器子系统。
根据本发明的其他实施例,盘驱动器存储装置可以存取和响应与主机操作系统(OS)保持的底层文件系统有关的元数据,以优化盘驱动器和主机OS之间的数据传输。盘驱动器可以识别读和写存取的性质,允许其优先排序和性能优化这些存取。盘驱动器可以执行这些功能而无需对块接口的任何改变。结果,本发明的盘驱动器可以作为现有系统中的活动(drop-in)替换物。
考虑以下详细描述和附图,本发明的其他目标、特征和优点将变得明显。
附图说明
图1图解了根据本发明实施例的、具有运行用于盘驱动器和主机操作系统的实时操作系统的处理器的嵌入式装置的框图。
图2是图解根据本发明实施例的、对由实时操作系统控制的盘驱动器和多个主机操作系统进行任务切换的图。
图3是图解根据本发明实施例的、处理器上的执行序列的示例的时序图。
图4是图解根据本发明实施例的、用于通过实时操作系统切换任务的处理的流程图。
图5是图解根据本发明实施例的、用于设置实时操作系统中的虚拟中断以模拟主机操作系统中的中断的处理的流程图。
图6图解了根据本发明实施例的、具有重定位的中断禁止位的ARM处理器状态寄存器的示例。
图7图解了根据本发明实施例的、使用文件元数据来将主机OS命令翻译成优化命令的盘驱动器的示例。
具体实施方式
作为盘驱动器(OS)下的任务进行实现的主机操作系统(OS)
通常,计算系统包括主机操作系统(OS)和用于盘驱动器的盘驱动器操作系统。主机OS向盘驱动器操作系统发出对逻辑块地址(LBA)的请求,以向/从磁硬盘读和/或写数据。来自主机OS的请求在此也被称为读/写请求或LBA请求。盘驱动器操作系统将读/写请求转换为读/命令,其可被执行来使用盘驱动器的机械部分(例如,致动器臂和读/写头)从盘读取和写入数据。
可通过在主机OS下实现盘驱动器操作,来组合盘驱动器操作系统和主机操作系统(OS)的功能。假设主机OS不是实时操作系统(RTOS),则此方法会导致盘驱动器功能的响应时间的不确定特性。所导致的行为会降低驱动器性能,并且可能导致在相同处理器上完成伺服控制的环境中的不稳定性。
相反,本发明的实施例向主机OS提供伪虚拟机,作为盘驱动器操作系统中的任务。主机OS任务以低于系统中的实时任务的优先级来运行。一般响应于处理器中断,此技术允许在准备运行更高优先级的任务时中断主机OS。颠倒了主机OS和盘驱动器操作系统的传统角色(其中,主机OS是主控制器)。本发明的主机OS可执行所有主机功能,包括:例如,向盘驱动器操作系统发出读和写请求、执行用户接口功能、管理用户软件应用和硬件的交互、控制和分配存储器、按优先级排列指令的处理、控制输入和输出装置、促进联网、以及管理文件。
本发明允许多个主机操作系统在盘驱动器操作系统下运行,这对于安全应用可具有显著的优点。盘驱动器操作系统和主机OS可在共享处理器上运行,或在分离的处理器上运行。
在此,主要以用于嵌入式装置中的盘驱动器的实时操作系统(RTOS)的上下文来描述盘驱动器操作系统。然而,应理解,本发明的原理可应用于除了实时操作系统之外的盘驱动器操作系统。
根据本发明的一些实施例,用于盘驱动器的实时操作系统(RTOS)和主机操作系统(OS)共享计算系统中的处理器(例如,微处理器或中央处理单元),以增加两个操作系统之间的数据传输的效率。图1图解了根据本发明的特定实施例的、包含共享处理器的嵌入式装置的示例。
图1的嵌入式装置包括处理器101、磁硬盘104、致动器臂111、读/写头110、高速缓冲存储器105、以及一个或多个诸如键盘之类的输入/输出装置106。处理器101运行用于盘驱动器的实时操作系统(RTOS)102和主机操作系统(OS)103。实时操作系统102实现盘驱动器控制器的功能,包括从和向盘104读和写数据。主机OS 103实现嵌入式装置的其他功能。例如,主机OS可以是Linux、Windows CE、Mac OS X等。主机OS 103与输入/输出装置106接口,并且处理器101与高速缓冲存储器105进行通信。
图2图解了根据本发明实施例的、由实时操作系统控制的盘驱动器和一个或多个主机操作系统的任务切换。实时操作系统(RTOS)201控制处理器中的任务切换。RTOS 201可在用于对一个或多个盘读和写数据的各种盘驱动器任务例程之间进行切换,包括队列202、驱动侧(side)203、执行204、以及由框205代表的其他盘驱动器任务。RTOS 201也可以在盘驱动器任务和实现一个或多个主机操作系统的一个或多个较低优先级任务之间切换。
RTOS 201可在实现多个主机操作系统(如主机OS 206、主机OS 207、以及其他主机操作系统208等)的任务之间切换。从主机OS的角度来看,主机OS仍然具有目标处理器的完全拥有权。RTOS负责主机OS的任务切换,以维持主机OS对目标处理器的控制的角度。
图3是图解根据本发明实施例的、RTOS如何切换共享处理器对主机OS和盘驱动器执行的任务的、处理器上的执行序列的示例。在图3中,共享处理器执行主机OS的子任务#1。子任务#1是主机OS的子任务。当RTOS发出读命令时,RTOS使得处理器将任务从主机OS切换到盘驱动器。在盘驱动器时间期间,处理器执行在盘上启动所请求数据的搜寻所需的任务。
当正在执行搜寻序列时,RTOS使得处理器将任务从盘驱动器任务切换到主机OS,以执行子任务#2。处理器继续处理主机OS的子任务#2,直到搜寻序列完成为止。接着,RTOS使得处理器将任务从主机OS子任务#2切换到盘驱动器任务。在盘驱动器时间期间,处理器执行完成读序列所需的任务。接着,RTOS使得处理器将任务从盘驱动器任务切换回主机OS子任务#1。主机OS子任务#1和#2是单个主机OS的子任务。
图3图解了RTOS可使得共享处理器暂停主机OS子任务以执行用于读命令的任务。类似地,RTOS可使得共享处理器暂停主机OS子任务以执行用于写命令的任务。图3还图解了RTOS可使得共享处理器执行主机OS子任务,同时盘驱动器执行搜寻操作以在盘上读(或写)数据,由此增加处理器效率。
盘驱动器RTOS负责任务切换主机OS,以及模拟主机OS中的中断。从主机OS的角度来看,这些责任便利了由主机OS完全拥有的共享处理器。图4图解了根据本发明实施例的、盘驱动器RTOS可用来模拟存储器中的虚拟中断区域的任务切换处理的示例。
在条件步骤401中,当前没有任务在运行。在步骤401期间,RTOS判定运行主机OS的任务是否应运行。基于是否存在需要在RTOS中执行的任何更高优先级的任务来进行此判定。如果RTOS不执行运行主机OS的任务,则在步骤409,RTOS切换到另一任务。如果RTOS判定要执行运行主机OS的任务,则在条件步骤402,RTOS确定来自主机OS的中断是否待处理(例如,在存储器中的虚拟中断区域中)。如果主机中断不是待处理,则在步骤409,RTOS切换到另一任务。
如果主机OS中断待处理,则在条件步骤403,RTOS确定在主机OS中是否激活中断。如果未激活主机OS中断,则在步骤409,RTOS切换到另一任务。如果激活了主机OS中断,则RTOS前进以在步骤404中设置模拟主机OS中的中断的虚拟硬件。根据本发明的实施例,驱动器控制器RTOS可通过在步骤405切换到目标处理器模式来模拟主机OS中的中断。目标处理器模式是处理器的操作模式。
然后,在步骤406,RTOS为中断返回进行设置。步骤406中为中断返回的设置包括修改与在步骤405切换到的目标处理器模式相关联的寄存器,使得利用包含适当数据的工作寄存器来在正确的指令处开始执行。
接着,在步骤407,RTOS切换回中断模式。中断模式是指以中断处理模式之一进行的执行。ARM上的中断模式的处理器专用示例包括IRQ和FIQ。为了例示而提供中断模式的这些示例,而非旨在限制本实施例的范围。
然后,在步骤408,RTOS修改主机OS任务的上下文区域中的程序计数器,以反映所模拟的中断的中断句柄代码(handling code)的开始。在设置了虚拟硬件之后,在步骤409,主机OS切换到主机OS任务。
图5图解了根据本发明实施例的、用于在RTOS中设置虚拟中断以模拟主机OS中断的机制的示例。从条件步骤501开始,RTOS确定是否存在待处理的中断。如果不存在待处理的中断,则代码块结束。如果RTOS检测到存在待处理的中断,则在条件步骤502,RTOS确定是否有任何中断处理正在进行。如果中断处理正在进行,则代码块结束。如果不存在正在进行的中断处理,则在步骤503,RTOS确定最高优先级中断。然后,RTOS在步骤504清空本地中断,在步骤505设置主机OS中断,并且在步骤506将中断进行标志设置为真。
图6图解了具有重定位的中断禁止位的ARM处理器状态寄存器。如果允许主机OS禁止处理器的实际中断,则其可以阻止更高优先级的任务控制处理器。根据本发明的实施例,RTOS可利用此寄存器来模拟主机OS激活和禁止处理器中的中断的能力。可通过将用于主机OS中的中断的位置6和7中的位分别移动到程序状态寄存器的未使用部分位置8和9,然后清空位置6和7中的位,来实现此功能性。图6所示的图示特定于ARM处理器的状态寄存器,但可根据所用的具体处理器架构而改变。
当RTOS和主机操作系统都在相同的处理器上执行时,它们都具有对所有相同的外设和存储器的存取。此共享的存取提供了额外的成本节省,因为较大的组合存储器由于包装以及PCB不动产成本而比多个较小的存储器更便宜。
在传统的双处理器系统中,主机OS通过驱动器接口发送读和写请求。本发明使用信箱系统来提供更快的、更有效的机制。从主机OS的视角来看,如同任何普通的驱动器那样地存取盘驱动器。系统中的唯一变化是定制的装置驱动器。定制的装置驱动器调用对RTOS的系统调用,以向盘驱动器固件发送读或写请求。除了数据传输之外,所接收到的请求作为正常请求由盘驱动器固件处理。盘驱动器固件向缓冲器传递指针,其中盘驱动器固件根据命令类型向或从该缓冲器写入或读取数据。定制的装置驱动器可使用指针来从或向该缓冲器读或写数据,以向和从主机OS传输数据。此处理消除了正常会在驱动器接口上发生的数据传输,大大改善了性能。作为系统调用的一部分,将请求置于驱动器的接收队列中。
盘驱动器存取和响应与底层文件系统有关的元数据
操作系统一般将数据组织为逻辑文件系统。当将这些文件写到盘上时,将描述文件的元数据与数据一起存储在盘上。例如,文件元数据可包括:文件大小、文件类型、文件许可、以及上次存取时间。
根据本发明的另一实施例,盘驱动器可存取描述在盘上存储的用户数据的文件元数据。盘驱动器可使用该文件元数据来实现来自主机操作系统的读和写请求的优化。盘驱动器不限于使用关于数据的逻辑块地址(LBA)信息。文件元数据可向盘驱动器提供比单独由LBA提供的更多的关于用户数据的知识。
本发明允许盘驱动器使用文件元数据来在文件系统层上实现性能和优先排序的优化。例如,可通过标准块接口、或通过运行主机OS和盘驱动器OS的带有或不带有共享存储器区域的共享处理器,来提供优化。
本发明的此实施例利用加密文件进行工作。盘驱动器装置不需要将数据解密为功能。
根据本发明的此实施例的系统可通过使得存储装置的固件安装驻留在用于只读存取的盘上的文件系统来实现。可通过为每个文件系统写入定制码,或通过在盘驱动器控制器上运行主机OS处理(如Linux的版本),而实现此实施例。
通常为主机OS保留安装文件系统的能力。本发明的此实施例允许盘驱动器安装驻留在硬盘上的文件系统,用于内部缓冲器优化、旋转位置优化(RPO)、以及其他优化。例如,关于例如在其中可预期有许多并行的读/写流的服务器环境或家庭影院个人计算机(HTPC)中做出的请求,得知文件系统元数据的盘驱动器可最有效地利用硬件。可由本发明的优秀的数据传输特性来更好地服务这两种环境。
操作的几种模式可允许来自主机OS的LBA读/写请求的优化,如请求的优先排序。当主机OS发送对要从盘读取或向硬盘写入的数据的请求时,盘驱动器将用于该读/写请求的LBA翻译成文件目的地。解释文件元数据,并设计适当的优化。例如,盘驱动器可确定何时以及如何提前读取盘上存储的数据,以利用旋转位置优化(RPO)和文件系统元数据来服务于后续请求。作为另一示例,盘驱动器可利用文件系统元数据来对后续写请求执行写命令。
文件系统元数据可包含盘驱动器可用来优先排序请求并选择提前读取或提前写入哪个后续请求的信息,如文件类型、文件大小、上次存取时间、以及物理位置。例如,盘驱动器可使用文件系统元数据来将视频文件或音频文件的存取优先排序在其他较低优先级文件之上。文件系统元数据的这些示例并非旨在限制可由盘驱动器用来执行优化的文件系统元数据的类型。
根据另一实施例,可从文件名辨别由盘驱动器执行的适当优化。例如,如果存取是读,并且通过其文件名扩展名或幻数(Magic number)而将文件识别为视频文件,则盘驱动器可分配比正常情况更大的内部缓冲器。一旦分配了缓冲器,则读取开始,同时完成剩下的块-文件翻译。在此情况下,使用LBA-文件翻译来实现文件提前读取。
当正服务于读请求时,盘驱动器可利用文件系统元数据,选择从与不同读请求对应的盘中读数据。可通过读/写头移动跨越盘表面时的位置和旋转效率来实现服务于后续读请求的能力,或通过对由文件类型指定的内容的优先排序来实现它。本发明不限于前述优化。
本发明的盘驱动器具有提前读(或提前写)顺序和非顺序的逻辑块地址的能力。当正服务于当前请求时,本发明的实施例可允许后续读和写请求以带来高速缓冲存储器命中(cache hit),这是因为响应于后续读/写请求,盘驱动器已经利用了文件系统元数据来读和写数据,大大提高了性能。通过在可用时存取高速缓冲存储器中存储的数据,可同时服务于更大量的同时流,或者可以激活更高带宽的流(如高清晰度音频和视频)。
在写视频文件的情况下,盘驱动器可决定在盘上利用文件元数据来按照以下方式物理扩展LBA:增加对当前和后续数据流的保证带宽。可在盘上按照以下模式扩展LBA:使得盘的内径和外径之间的数据传输速率的差异平坦化。在写小型配置文件的情况下,例如,如果更高优先级的数据流具有优先权,则盘驱动器可决定在将文件写入到盘之前将数据写入内部高速缓冲存储器。然后,当写头在最优位置上时,盘驱动器可将小型配置文件写入盘。
本发明的存储装置能够提供远超过在系统层上实现的性能级别,因为装置了解其自身的内部几何结构。装置可利用文件元数据来在多流环境下执行文件预先读取,以在需要头移动的下一搜寻操作之前读取最大量的数据。装置还可通过RPO(旋转位置优化)对后续请求执行提前读取操作。系统层解决方案不具有这样的知识。
另一模式的操作可识别关于写的请求,将实时文件置于不同于非实时文件的、硬盘的分离的区域中。利用检查从请求输入的LBA以确定读请求是否落入上面定义的分离的实时区域中的简单的范围检查,本发明的此方面可大大加速读取侧。
根据另一实施例,利用文件系统元数据,可在空闲模式期间,在文件的基础上重新定位标准块写入。在此描述的实施例是被提供来例示本发明的原理而并非旨在限制本发明的范围的操作模式的几个示例。
图7图解了根据本发明实施例的、为了优化硬盘驱动器性能的、对盘驱动器操作系统的主机OS读/写请求的解释和翻译。在步骤702,在诸如硬盘710之类的存储装置上,诸如Linux和Microsoft Windows之类的主机OS 701在正常操作过程中以读/写模式安装一个或多个文件系统711。如步骤703所示,正常操作过程中的主机OS向盘驱动器712发出许多读/写请求。盘驱动器712包括盘驱动器操作系统。主机OS 701和盘驱动器712之间的这种通信通常在标准数据总线接口704上发生,如PATA(并行ATA)、SATA(串行ATA)、SCSI(小型计算机系统接口)、或IEEE-1394,一般称为火线。
可替换地,盘驱动器712可通过利用类似的网络接口720和721(例如,以太网接口)的网络715来与主机OS 701通信。盘驱动器712还可通过网络715与其他主机操作系统(未示出)通信。
步骤705图解了盘驱动器712以只读模式安装目标文件系统。在以只读模式安装了目标文件系统之后,盘驱动器能够存取文件系统中的元数据,并且使用该元数据来优化读/写请求。
通过将输入的读/写请求置于队列中,该处理从步骤706开始执行。在步骤707,基于文件元数据,将排队的读/写请求翻译成用于硬件的优化的读/写命令。优化的读/写命令包括基于文件元数据和RPO优先排序的读和写命令。
在执行了步骤706和707之后,在步骤708,盘驱动器712生成命令队列,其包含用于盘驱动器的优化的读/写命令。例如,在数据流需要实时性能特性的情况下,盘驱动器可通过分配比通常更大的缓冲器来优化读请求。基于底层文件系统和RPO的知识,盘驱动器可服务于乱序的读请求,或者组合不同的读请求以最大化一个或多个文件的数据传输,并最小化头定位下一数据块所需的物理移动量。盘驱动器可执行诸如上述优化之类的许多其他读请求优化。
作为另一示例,盘驱动器可基于文件的实时状态来优化写请求。盘驱动器还可利用底层文件系统和RPO的知识来优化写请求,以便可将数据流写入到高速缓冲存储器或硬盘上的相邻自由空间的区域中,由此增强后续搜寻操作。盘驱动器可执行诸如上述优化之类的许多其他写请求优化。本发明不限于用于将主机OS读/写请求翻译成用于块存储装置的优先排序且优化的命令的变量。
框713图解了可由盘驱动器OS和主机OS这两者用来传递数据的共享存储器。根据上述共享处理器实施例,共享存储器区域713可以是由主机OS和盘驱动器OS共享的处理器中的共享存储器区域。在共享处理器实施例中,与用来连接块装置的普通接口704相比,共享存储器区域713具有优秀的数据传输性能特性。可替换地,共享存储器区域713可以是可由盘驱动器控制器和运行主机OS的分离的存储器来存取的存储装置。
当盘驱动器712执行优化命令队列708时,可直接将数据写入共享存储器区域713中。盘驱动器712可向共享存储器区域713中的存储器位置传递指针。利用由盘驱动器提供的指针,主机OS可快速存取数据。主机OS可大大获益于该共享存储器的低等待数据传输特性。
为了例示和描述的目的,已经提供了本发明的示例性实施例的前述描述。其并非旨在详尽的或者将本发明限于所公开的精确形式。本发明中希望有修改、各种改变和替换的自由。在一些实例中,可采用本发明的特征,而不相应地使用所阐述的其他特征。根据以上教导,许多修改和变化是可能的,而不会脱离本发明的范围。旨在本发明的范围不限于此详细描述。
Claims (23)
1.一种硬盘驱动器,包括:
运行盘驱动器操作系统的处理器,其被配置为响应于来自第一主机操作系统(OS)的读和写请求而执行用于对盘读和写的任务,
其中,作为该盘驱动器操作系统中的任务而执行该第一主机OS。
2.如权利要求1所述的硬盘驱动器,其中在该处理器上执行该盘驱动器操作系统和该第一主机操作系统。
3.如权利要求1所述的硬盘驱动器,其中该盘驱动器操作系统将该第一主机OS作为相对于用于实现读和写请求的任务的更低优先级的任务而执行。
4.如权利要求1所述的硬盘驱动器,其中该盘驱动器操作系统是实时操作系统。
5.如权利要求4所述的硬盘驱动器,其中该硬盘驱动器是嵌入式装置的一部分。
6.如权利要求1所述的硬盘驱动器,其中该盘驱动器操作系统模拟该第一主机OS的中断的激活和禁止。
7.如权利要求1所述的硬盘驱动器,其中该第一主机OS执行定制的装置驱动器,该定制的装置驱动器向缓冲器传递指针,其中该定制装置驱动器响应于该读和写请求而读和写数据。
8.如权利要求6所述的硬盘驱动器,其中该盘驱动器操作系统将用于第一主机OS的中断位从第一存储位置移动到第二存储位置。
9.如权利要求1所述的硬盘驱动器,其中作为该盘驱动器操作系统中的任务来执行第二主机OS。
10.一种用于实现硬盘驱动器的方法,该方法包括:
响应于来自第一主机操作系统(OS)的读和写请求,利用盘驱动器操作系统来执行用于对盘读和写数据的任务;以及
作为该盘驱动器操作系统中的任务来执行该第一主机OS。
11.如权利要求10所述的方法,其中该盘驱动器操作系统和该第一主机OS共享处理器。
12.如权利要求10所述的方法,其中该方法还包括:
作为该盘驱动器操作系统中的任务来执行第二主机OS。
13.如权利要求10所述的方法,其中该方法还包括:
模拟该第一主机OS的中断的激活和禁止。
14.如权利要求10所述的方法,其中该方法还包括:
共享存储器空间,其中该第一主机OS执行向存储空间内的位置传递指针的定制装置驱动器,其中该定制装置驱动器响应于该读和写请求而读和写数据。
15.如权利要求10所述的方法,其中作为该盘驱动器操作系统中的任务来执行该第一主机OS还包括:
设置模拟该第一主机OS中的中断的虚拟硬件;
切换到目标处理器模式;
为中断返回进行设置;
切换到中断模式;以及
修改在该第一主机OS任务的上下文区域中的程序计数器。
16.一种硬盘驱动器,包括:
运行盘驱动器操作系统的处理器,其被配置为响应于来自主机操作系统(OS)的读和写请求而对盘读和写数据;以及
共享存储器,其可由该盘驱动器操作系统和该主机操作系统存取,以响应于该读和写请求而存储数据。
17.如权利要求16所述的硬盘驱动器,其中该共享存储器是包括该处理器的集成电路的一部分,并且该主机OS在该处理器上运行。
18.一种硬盘驱动器,包括:
运行盘驱动器操作系统的处理器,其安装包含用户数据和描述该用户数据的文件元数据的文件系统,
其中该处理器从主机操作系统(OS)接收关于该用户数据的读和写请求,基于该文件元数据而将该读和写请求翻译为优化的读和写命令,并且执行该优化的读和写命令。
19.如权利要求18所述的硬盘驱动器,其中该处理器利用文件元数据和旋转位置优化(RPO)、以增加对当前和后续数据流的带宽的模式来在盘上写入用于所请求的数据的逻辑块地址(LBA)。
20.如权利要求18所述的硬盘驱动器,其中该处理器利用文件元数据来提前读取在盘上存储的数据,以服务于后续请求。
21.如权利要求18所述的硬盘驱动器,其中该处理器执行实时操作系统,该实时操作系统将该主机OS作为该处理器上的任务而实现。
22.如权利要求20所述的硬盘驱动器,其中该处理器利用旋转位置优化和文件类型指定的内容的优先排序中的至少一个来提前读取数据。
23.如权利要求18所述的硬盘驱动器,其中该处理器响应于读和写请求的模式而将数据存储在高速缓冲存储器中,以生成提升后续请求的性能的高速缓冲存储器命中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/552,888 | 2006-10-25 | ||
US11/552,888 US8386704B2 (en) | 2006-10-25 | 2006-10-25 | Techniques for improving hard disk drive efficiency |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101187848A true CN101187848A (zh) | 2008-05-28 |
Family
ID=38925550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101814295A Pending CN101187848A (zh) | 2006-10-25 | 2007-10-25 | 改进硬盘驱动器效率的技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8386704B2 (zh) |
EP (1) | EP1916594A3 (zh) |
JP (1) | JP2008135014A (zh) |
CN (1) | CN101187848A (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144463A1 (en) * | 2007-11-29 | 2009-06-04 | Dell Products L.P. | System and Method for Input/Output Communication |
US9386021B1 (en) * | 2011-05-25 | 2016-07-05 | Bromium, Inc. | Restricting network access to untrusted virtual machines |
US9148428B1 (en) | 2011-05-25 | 2015-09-29 | Bromium, Inc. | Seamless management of untrusted data using virtual machines |
WO2014115188A1 (en) | 2013-01-28 | 2014-07-31 | Hitachi, Ltd. | Storage system and method for allocating resource |
US9621653B2 (en) | 2014-02-14 | 2017-04-11 | Western Digital Technologies, Inc. | Method and apparatus for a network connected storage system |
US10289547B2 (en) | 2014-02-14 | 2019-05-14 | Western Digital Technologies, Inc. | Method and apparatus for a network connected storage system |
US9087090B1 (en) | 2014-07-31 | 2015-07-21 | Splunk Inc. | Facilitating execution of conceptual queries containing qualitative search terms |
US9851901B2 (en) * | 2014-09-26 | 2017-12-26 | Western Digital Technologies, Inc. | Transfer of object memory references in a data storage device |
US10304025B2 (en) | 2015-05-26 | 2019-05-28 | Locanis Ag | Controlling industrial trucks in a warehouse |
JP5937772B1 (ja) * | 2016-01-20 | 2016-06-22 | 株式会社日立製作所 | ストレージシステム及びリソース割当て方法 |
US10783118B2 (en) * | 2016-01-28 | 2020-09-22 | Quest Software Inc. | Read-only file system for testing de-duplication |
US10067944B2 (en) | 2017-01-09 | 2018-09-04 | Splunk, Inc. | Cache aware searching of buckets in remote storage |
US10706005B2 (en) * | 2017-12-08 | 2020-07-07 | Vmware, Inc. | File system interface for remote direct memory access |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62226257A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Corp | 演算処理装置 |
US5995745A (en) * | 1996-12-23 | 1999-11-30 | Yodaiken; Victor J. | Adding real-time support to general purpose operating systems |
US6378037B1 (en) * | 1999-06-29 | 2002-04-23 | International Business Machines Corporation | Write-twice method of fail-safe write caching |
US6823398B1 (en) | 2000-03-31 | 2004-11-23 | Dphi Acquisitions, Inc. | File system management embedded in a storage device |
US6578107B1 (en) * | 2000-05-25 | 2003-06-10 | International Business Machines Corporation | Method and system for prefetching data where commands are reordered for execution |
US6640258B2 (en) * | 2001-01-10 | 2003-10-28 | Hitachi Global Storage Technologies Netherlands B.V. | Method and apparatus for command queue ordering with a sort time reduction algorithm |
US6870887B2 (en) * | 2001-04-09 | 2005-03-22 | International Business Machines Corporation | Method and system for synchronization between different content encoding formats |
US6711700B2 (en) * | 2001-04-23 | 2004-03-23 | International Business Machines Corporation | Method and apparatus to monitor the run state of a multi-partitioned computer system |
US6763404B2 (en) * | 2001-07-26 | 2004-07-13 | International Business Machines Corporation | System and method for scheduling of random commands to minimize impact of locational uncertainty |
US6973535B2 (en) * | 2001-09-14 | 2005-12-06 | Cornice, Inc. | Digital device configuration and method |
US7106541B2 (en) * | 2001-09-14 | 2006-09-12 | Convergent Systems Solutions, Llc | Digital device configuration and method |
US7434222B2 (en) * | 2001-12-20 | 2008-10-07 | Infineon Technologies Ag | Task context switching RTOS |
JP2004005419A (ja) * | 2002-03-25 | 2004-01-08 | Canon Inc | インストール処理装置、処理方法及び記憶媒体ならびにプログラム |
US6877070B2 (en) * | 2002-07-23 | 2005-04-05 | Hitachi Global Storage Technologies Netherlands, B.V. | Method and apparatus for implementing command queue ordering with benefit determination of prefetch operations |
US6925526B2 (en) * | 2002-10-31 | 2005-08-02 | International Business Machines Corporation | Method and apparatus for servicing mixed block size data access operations in a disk drive data storage device |
US7024614B1 (en) * | 2002-12-24 | 2006-04-04 | Western Digital Technologies, Inc. | Disk drive employing a configuration data structure comprising a plurality of configuration parameters to facilitate disk commands |
US7082494B1 (en) * | 2002-12-24 | 2006-07-25 | Western Digital Technologies, Inc. | Disk drive executing a preemptive multitasking operating system comprising tasks of varying priority |
US7080188B2 (en) * | 2003-03-10 | 2006-07-18 | Marvell International Ltd. | Method and system for embedded disk controllers |
US7130141B2 (en) * | 2003-03-31 | 2006-10-31 | Hitachi Global Storage Technologies Netherlands B.V. | Assembly for thermal and/or thermally-assisted information processing |
JP3978420B2 (ja) * | 2003-10-30 | 2007-09-19 | ヒタチグローバルストレージテクノロジーズネザーランドビーブイ | 磁気ヘッドスライダ及び磁気ヘッド支持機構の製造方法 |
US7023647B2 (en) * | 2003-11-17 | 2006-04-04 | Texas Instruments Incorporated | Fly height control for a read/write head in a hard disk drive |
-
2006
- 2006-10-25 US US11/552,888 patent/US8386704B2/en not_active Expired - Fee Related
-
2007
- 2007-07-12 EP EP07013733A patent/EP1916594A3/en not_active Withdrawn
- 2007-10-23 JP JP2007275135A patent/JP2008135014A/ja active Pending
- 2007-10-25 CN CNA2007101814295A patent/CN101187848A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US8386704B2 (en) | 2013-02-26 |
EP1916594A3 (en) | 2008-11-19 |
US20080104315A1 (en) | 2008-05-01 |
JP2008135014A (ja) | 2008-06-12 |
EP1916594A2 (en) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101187848A (zh) | 改进硬盘驱动器效率的技术 | |
US6665740B1 (en) | Logical volume selection in a probability-based job scheduler | |
JP4219602B2 (ja) | 記憶制御装置および記憶制御装置の制御方法 | |
US7797699B2 (en) | Method and apparatus for scheduling virtual machine access to shared resources | |
CN111143234B (zh) | 存储设备、包括这种存储设备的系统及其操作方法 | |
US6240467B1 (en) | Input/output operation request handling in a multi-host system | |
US8762682B1 (en) | Data storage apparatus providing host full duplex operations using half duplex storage devices | |
US8762660B2 (en) | Avoiding physical fragmentation in a virtualized storage environment | |
US6170023B1 (en) | System for accessing an input/output device using multiple addresses | |
US20040264284A1 (en) | Assignment of queue execution modes using tag values | |
JP2008134775A (ja) | 記憶サブシステム及びこれを利用したリモートコピーシステム | |
JP5026672B2 (ja) | Atapiスイッチ | |
JP6464777B2 (ja) | 情報処理装置及びプログラム | |
JPH04314160A (ja) | ダイナミックポーリング装置、機械処理方法、コントローラ及びデータ処理システム | |
US6665746B1 (en) | System and method for prioritized context switching for streaming data memory transfers | |
US20060195655A1 (en) | Command stack management in a disk drive | |
US7330930B1 (en) | Method and apparatus for balanced disk access load distribution | |
US20110252205A1 (en) | Managing Access Commands By Multiple Level Caching | |
EP2093656B1 (en) | Storage system and access instruction sending method | |
US11099762B2 (en) | Multi host controller and semiconductor device including the same | |
US8667188B2 (en) | Communication between a computer and a data storage device | |
Kuo et al. | Real-time disk scheduling for block-stripping I2O RAID | |
KR20240088614A (ko) | 스토리지 아비터 장치 및 그 동작 방법 | |
JP2007528032A (ja) | Osからのリクエストのリアルタイム・ファイルシステム制御キュー |
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 |
Open date: 20080528 |