从存储媒体中读取数据的制作方法

文档序号:6626071阅读:245来源:国知局
专利名称:从存储媒体中读取数据的制作方法
背景技术
本发明涉及从存储媒体中读取数据。
当从存储媒体(例如硬盘)中读取数据时,主驱动器从硬盘上读取所需的数据(称为“要求数据”)连同来自其他位置的数据。来自其他位置的数据称为“预取数据”并且对应于硬盘上可能下次由主驱动器读取的地址。

发明内容
通常,在一个方面,本发明针对从存储媒体中读取数据。本发明特征在于响应命令在存储媒体上读取数据,在存储器的一块区域中存储数据,以及在预定部分的数据已经存储在存储器之后发出中断。
本发明的优点中可能为下述的一个或多个。可以用中断指示预定部分的数据已经读取/存储。该数据可以在不等待读取/存储附加数据的情况下进行处理。这样,使用单条“读取”命令,就可以分别读取和处理来自存储媒体两个(或更多)位置的数据。如果在一个这样位置处的数据是预取数据,则具有特别的优势,因为,要不然就会阻止来自另一位置的数据(要求数据)处理,从而不必要地等待读取预取数据。
其他的特征和优点将通过下述描述和权利要求变得显而易见。


图1是盘驱动器和主处理装置的框图。
图2是示出从盘驱动器读取数据的处理的流程图。
图3和图5是硬盘和盘驱动器中传感器头的顶视图。
图4是从盘驱动器读取数据的替代处理的流程图。
图6是可以作为主处理装置的计算机前视图。
图7是包括在盘驱动器和主处理装置中的硬件框图。
描述参照图1,框图10示出从盘驱动器14的硬盘12读取数据的主处理装置11。盘驱动器14可以安置在主处理装置11中,或它可以是外部设备。
在主处理装置11中执行的软件(装置驱动程序)15从应用程序或在主处理装置11上执行的其他计算机程序(未示出)接收命令。这些命令指示盘驱动器15从盘驱动器14的硬盘12上的位置读取数据。随后,将数据从这些位置传送回装置驱动程序15,该程序将其传送给也在主处理装置11上的直接存储器存取(“DMA”)引擎16。DMA引擎查阅一张表(例如分散/集合列表27)以判定在存储器17中的何处存储了所接收的数据。分散/集合列表27包括在存储器17中的地址列表,在这些地址中存储了来自硬盘12的数据。
在读取期间发布中断在图2中,示出了用于从硬盘12读取数据的处理器19。装置驱动程序15从主处理装置11上的软件接收(201)命令。该命令对硬盘12上的不同地址(位置)处的要求数据和预取数据进行识别,并且指示装置驱动程序15从盘驱动器14上的硬盘12读取要求数据和预取数据。
要求数据和预取数据通常是邻近的数据块,并且要求数据在硬盘12运动方向上在预取数据之前(即预取数据在要求数据之后)。例如,如图3所示,在读取期间,硬盘12在箭头21方向上旋转。在旋转期间,盘驱动器14上的传感器头22从硬盘12上的信道上读取数据。因为传感器头在遇到预取数据25之前就先碰到要求数据24(作为硬盘12的旋转方向的结果),所以,首先读取要求数据24。读取预取数据,是在假设传感器头22将读取的后续数据将是跟随在数据24之后的数据的基础上执行。
回到图2,响应在201中接收的命令,装置驱动程序15从硬盘12读取(202)要求数据24,并且将要求数据提供给DMA引擎16。随后,DMA引擎16查询(203)数据库,即分散/集合列表26,来判断在哪里存储202中读取的数据。在从硬盘12读取数据之前,装置驱动程序15用分散/集合列表26对DMA引擎进行编程。分散/集合列表26包括规定了要放置要求数据和预取数据的目标缓冲区(存储器17的区域)的记录。存储器的目标区域可能是不相邻的,在这种情况下DMA引擎16用多条记录进行编程,每条记录针对一个不相邻区域。
当读取数据块(与“LBAs”或“逻辑块地址”关联)时,DMA引擎16定期查询(203)分散/集合列表26。查询分散/集合列表26的频率可以依据数据块的大小而变化。然而,该频率是DMA引擎16在要求数据和预取数据(当读取该数据时)之间边界(或相当接近边界)处查询分散/集合列表26的频率。
在分散/集合列表26中的有关要求数据的记录和有关预取数据的记录之间的边界配置一条记录(或多条记录),例如标志。当DMA引擎16完成该要求数据时,它就碰到分散/集合列表26中的该记录。当它碰到该记录时,DMA引擎16发布(204)中断来用信号通知要求和预取数据之间的边界。该中断提供给装置驱动程序15,作为响应,它告知其他在主处理装置11上执行的程序(未示出)已经读取/存储了要求数据。随后,要求数据可以由这些其他程序进行处理或发送,而DMA引擎16继续读取(205)预取数据25。
通过如上所述使用DMA生成的中断,就可能响应来自装置驱动程序15的单个命令对要求和预取数据进行读取,并且随后处理要求数据,同时继续读取预取数据。这样,处理19在没有牺牲固有的获得预取数据的优点情况下,减少了额外的命令。
读取在前的预取数据在图4中,示出从硬盘12读取数据的替代处理。处 30使用装置驱动程序15和DMA引擎16来控制从硬盘12的读取。控制直接从主处理装置11的读取需要具有额外的资源,例如处理能力和存储器,它们在读取期间都不能另作他用。这是因为在主处理装置中的处理器与安置在盘驱动器中并控制盘驱动器操作的典型控制器相比,通常能以更高的速度工作,并且能访问更多的可用存储空间。因此,使用处理30可以读取并存储相对较大量的预取数据。
装置驱动程序15从另一计算机程序(例如,在主处理装置11上运行的应用程序)接收(401)命令。该命令请求来自硬盘12上特定位置的(要求)数据。装置驱动程序15读取(402)在硬盘12运动方向上在要求数据24之前的数据31作为对命令的响应(参阅图5)。这种“在前”预取数据31可能与要求数据24相邻,如图5所示,或位于相对于硬盘12上要求数据更前一些的地点。
一般而言,因为要求数据24的位置不管怎样都要被移动到传感器头22以读取要求数据24,所以,并不会花费额外的时间读取数据31。而当将硬盘12移动到位置时,传感器头22将经过数据31,在这段时间,传感器头22就读取该数据。该数据存储(403)到主处理装置11上的存储器17中(或另外处理)。如上所述,存储是通过DMA引擎16和分散/集合列表26执行的。
其间,处理30从硬盘12读取(404)要求数据24,以响应在401接收的同一命令。这样,单条命令既能用于预取数据也能用于要求数据。处理30还可以读取硬盘12运动方向上在要求数据之后的预取数据。处理19可以用于读取该预取数据,或者,该数据可以使用主处理装置11读取。处理30可以在硬盘12的多个扇区上重复执行,并且对分散/集合列表的多条记录重复执行。
硬件图6示出可以在其上实现处理19和30的硬件。个人计算机(“PC”)32包括在硬盘上读取和写入数据的盘驱动器14、给用户显示信息的显示器34,以及输入数据的输入设备35。PC 32中的控制器36(图7)使用分散/集合列表26(存储在存储器17中)运行盘驱动器15和DMA引擎16,并且起主处理装置的作用。
图7也示出了盘驱动器14的部件。这些部件中为硬盘12、传感器头22、前置放大器37、模拟可变增益放大器(“VGA”)39、滤波器40、模-数(“A/D”)转换器41、控制器42(包括存储器27)以及记录器45。
硬盘12是具有同心数据存储信道的磁盘,该信道定义在每侧存储表面。硬盘12在盘驱动器14中旋转,而数据从其信道中读取/写入到信道中。虽然,只示出了一个硬盘12,但盘驱动器14可以包括超过一个的盘。
传感器头22是磁致电阻头(或类似装置),它能从硬盘12读取数据,并将数据写入到硬盘12。传感器头22在硬盘12的存储表面上以“浮飞”关系关联,这意味着它能相对于存储表面并在存储表面上移动以便读取和写入数据。
为了从硬盘12读取数据,装置驱动程序15(在控制42中执行)发送信号给传感器头22以便将传感器头22移动到硬盘上要读取数据的位置(处理19)。
当传感器头22在硬盘12上紧密靠近特定位置“浮飞”时,检测磁通转折点。这些磁通转折点50提供给前置放大器37。前置放大器37是电压前置放大器,它将磁通转折点从毫伏(mV)放大到伏(V)。所得的前置放大模拟信号(或“读取”信号)51提供给VGA 39。VGA 39对读取的信号51进一步放大,并将所得经放大的信号52提供给滤波器40。
滤波器40是一种模拟滤波器/均衡器,它从经放大的读写信号52中产生实质上的方波。为了该目标,依据信号52最终开始的硬盘12上数据区的数据传输率对滤波器40进行编程。所得的滤波信号54在高速A/D转换器41中经过采样和量化。A/D转换器41输出从信号54产生的数字数据55。数据55对应于存储在硬盘12上的数据。
记录器配置用于将数据写入到硬盘12上(通过传感器头22)。存储器27存储用于实现处理19的计算机指令(包括用于装置驱动程序15的固件)。存储器27也将分散/集合列表26存储。
处理19和30并不局限在使用前述的硬件以及软件配置;在任意计算或处理工作平台中都能找到它们的可应用性。处理19和30可以在硬件、软件或两者的结合中实现。处理19和30可以可编程计算机上执行的计算机程序中实现,这些可编程计算机每个都包括处理器、可以由处理器读取的存储媒体(包括易失存储器和非易失存储器)、至少一个输入设备以及一个或多个输出设备。
每个这样的程序可以在与计算机进行通信的高级的面向过程和面向对象的编程语言中实现。然而,该程序也可以在汇编和机器语言中实现。该语言可以是编译或解释语言。
每个计算机程序都可以存储在存储媒体或装置上(例如硬盘或磁盘),它可以由通用或专用可编程计算机进行读取,用于当计算机读取存储媒体或装置时配置和操纵计算机执行处理19和30。处理19和30也可以作为配置有计算机程序的计算机可读存储媒体实现,在此,刚一执行时,计算机程序中的指令使得计算机根据处理19和30工作。
其他在此没有专门描述的实施例也在下述权利要求的范畴中。例如,处理19和30的特征可以组合在单个实施例中。可以给分散/集合列表26加入附加记录使得DMA引擎16发出附加中断。处理19和30可以用于访问存储在其他存储媒体上的数据,这些媒体包括光媒体,例如CD(“光盘”)、DVD(“数字化视频光盘”)以及DLT(“数字线性带”)。装置驱动程序15可以是ATA(“先进技术附加”)驱动程序。处理19和30可以以与所示不同的顺序执行,并且/或者可以并发执行一个或多个步骤。本发明可以使用其他的存储媒体,例如光盘驱动器和磁记录装置。
权利要求
1.一种从存储媒体读取数据的方法,其特征在于,所述方法包括响应命令从所述存储媒体上读取数据;将所述数据存储在存储器的一个区域;以及在存储器中已经存储了预定部分数据之后,发出中断。
2.如权利要求1所述的方法,其特征在于,进一步包括查询数据库以判定何时发出中断。
3.如权利要求2所述的方法,其特征在于,所述数据库包括用于存储数据和用于发出中断的指令。
4.如权利要求2所述的方法,其特征在于,所述数据库包括一个分散/集合列表。
5.如权利要求1所述的方法,其特征在于,所述预定部分的数据从存储媒体的第一位置读取,而从存储媒体上的第二位置读取附加数据,所述第一位置在读取期间的存储媒体运动方向上处于所述第二位置之前。
6.如权利要求6所述的方法,其特征在于,进一步包括从所述存储媒体的第三位置读取数据,所述第三位置在读取期间的存储媒体运动方向上处于所述第一和第二位置之前。
7.一种主处理装置从盘驱动器的存储媒体读取数据的方法,其特征在于,所述方法包括响应请求存储媒体第二位置处数据的命令,从所述存储媒体上的第一位置读取数据;以及响应所述命令从所述存储媒体上的第二位置读取数据,所述第一位置在读取期间的存储媒体运动方向上处于所述第二位置之前。
8.如权利要求7所述的方法,其特征在于,所述第一位置邻近所述第二位置。
9.如权利要求7所述的方法,其特征在于,进一步包括响应命令从所述存储媒体上的第三位置读取数据,所述第三位置在读取期间的存储媒体运动方向上处于所述第二位置之后。
10.如权利要求9所述的方法,其特征在于,所述第三位置邻近所述第二位置。
11.如权利要求7所述的方法,其特征在于,进一步包括从在主处理装置上执行的计算机程序接收命令。
12.如权利要求7所述的方法,其特征在于,进一步包括将从主处理装置上存储器中的第一和第二位置读取的数据存储。
13.一种存储在计算机可读媒体上的计算机程序,用于从存储媒体读取数据,所述计算机程序包括引起计算机执行下述操作的指令响应某一命令而读取存储媒体上的数据;在存储器区域中存储所述数据;以及在将预定部分的数据存储到存储器中之后,发出中断。
14.如权利要求13所述的计算机程序,进一步包括使计算机查询数据库以判定何时发出中断的指令。
15.如权利要求14所述的计算机程序,其特征在于,所述数据库包括用于存储数据和用于发出中断的指令。
16.如权利要求14所述的计算机程序,其特征在于,所述数据库包括一个分散/集合列表。
17.如权利要求13所述的计算机程序,其特征在于,所述预定部分的数据从存储媒体的第一位置读取,而从存储媒体上的第二位置读取附加数据,所述第一位置在读取期间的存储媒体运动方向上处于所述第二位置之前。
18.如权利要求17所述的计算机程序,其特征在于,进一步包括使计算机从所述存储媒体的第三位置读取数据的指令,所述第三位置在读取期间的存储媒体运动方向上处于所述第一和第二位置之前。
19.一种存储在计算机可读媒体上的计算机程序,所述程序使主处理装置从盘驱动器的存储媒体读取数据,所述计算机程序包括使主处理装置执行下述操作的指令响应请求存储媒体第二位置处数据的命令,从所述存储媒体上的第一位置读取数据;以及响应所述命令而从所述存储媒体上的第二位置读取数据,所述第一位置在读取期间的存储媒体运动方向上处于所述第二位置之前。
20.如权利要求19所述的计算机程序,其特征在于,所述第一位置邻近所述第二位置。
21.如权利要求19所述的计算机程序,其特征在于,进一步包括响应命令使主处理装置从所述存储媒体上的第三位置读取数据,所述第三位置在读取期间的存储媒体运动方向上处于所述第二位置之后。
22.如权利要求21所述的计算机程序,其特征在于,所述第三位置邻近所述第二位置。
23.如权利要求19所述的计算机程序,其特征在于,进一步包括使主处理装置从在主处理装置上执行的计算机程序接收命令。
24.如权利要求19所述的计算机程序,其特征在于,进一步包括使主处理装置将从主处理装置上存储器中的第一和第二位置读取的数据存储。
25.一种用于从存储媒体读取数据的设备,其特征在于,所述设备包括存储计算机指令的存储器;以及处理器,它执行计算机指令以(i)响应其命令而读取存储媒体上的数据,(ii)将数据存储在存储器的一个区域中,以及(iii)在将预定部分的数据存储到存储器之后发出中断。
26.如权利要求25所述的设备,其特征在于,所述处理器执行计算机指令以查询数据库来判定何时发出中断。
27.如权利要求26所述的设备,其特征在于,所述数据库包括用于存储数据和用于发出中断的指令。
28.如权利要求25所述的设备,其特征在于,所述预定部分的数据从存储媒体的第一位置读取,而从存储媒体上的第二位置读取附加数据,所述第一位置在读取期间的存储媒体运动方向上处于所述第二位置之前。
29.一种从盘驱动器的存储媒体读取数据的设备,其特征在于,所述设备包括存储计算机指令的存储器;以及处理器,它执行计算机指令以(i)响应请求存储媒体第二位置处数据的命令,从所述存储媒体上的第一位置读取数据;以及(ii)响应所述命令而从所述存储媒体上的第二位置读取数据,所述第一位置在读取期间的存储媒体运动方向上处于所述第二位置之前。
30.如权利要求29所述的设备,其特征在于,所述第一位置邻近所述第二位置。
全文摘要
响应命令从存储媒体中读取数据,并且存储到存储器一个区域中。在将预定部分的数据存储到存储器中之后,发出中断。查询一个数据库,例如分散/集合列表,以判定何时发出中断。响应请求存储媒体第二位置数据的命令,主处理设备可以从存储媒体的第一位置读取数据,并且响应该命令可以从存储媒体第二位置读取数据。第一位置在读取期间存储媒体运动方向上处于第二位置之前。
文档编号G06F3/06GK1421002SQ00817540
公开日2003年5月28日 申请日期2000年12月5日 优先权日1999年12月21日
发明者K·S·格里姆斯拉德, A·D·哈夫曼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1