CN1308840C - 一种获取硬盘中数据的方法 - Google Patents

一种获取硬盘中数据的方法 Download PDF

Info

Publication number
CN1308840C
CN1308840C CNB2004100043183A CN200410004318A CN1308840C CN 1308840 C CN1308840 C CN 1308840C CN B2004100043183 A CNB2004100043183 A CN B2004100043183A CN 200410004318 A CN200410004318 A CN 200410004318A CN 1308840 C CN1308840 C CN 1308840C
Authority
CN
China
Prior art keywords
data
buffer memory
hard disk
main frame
frame buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CNB2004100043183A
Other languages
English (en)
Other versions
CN1655130A (zh
Inventor
竺树铭
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CNB2004100043183A priority Critical patent/CN1308840C/zh
Publication of CN1655130A publication Critical patent/CN1655130A/zh
Application granted granted Critical
Publication of CN1308840C publication Critical patent/CN1308840C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种获取硬盘中数据的方法,该方法首先在主内存中设置用于保存硬盘中数据的主机缓存;在对数据进行访问时,判断该主机缓存中是否存在当前需要访问的数据,如果存在,则从该主机缓存中获取数据,根据预先设置的数据关联性确定与当前数据相关联的数据,并将该数据存入主机缓存,并结束本流程;如果不存在,则从硬盘获取该数据,并将该数据存入主机缓存。本发明解决了现有技术中电子设备需要频繁地访问硬盘,造成硬盘功耗过大、硬盘寿命短、用户等待时间较长等问题。通过本发明方案可以减少对硬盘的访问次数,从而降低硬盘的功耗,并延长了硬盘的寿命。本发明方案还缩短了用户的等待时间,使电子设备能够更好地为用户提供服务。

Description

一种获取硬盘中数据的方法
技术领域
本发明涉及数据存取技术领域,更确切地说是涉及一种获取硬盘中数据的方法。
背景技术
随着数字技术的发展,诸如mp3播放器等嵌入式电子设备的存储性能越来越为用户所关注,用户对电子设备存储容量以及存储速率的要求都越来越高。比如,现在mp3播放器的闪存(flash)容量被设置得越来越大,有的甚至达到512M。可以说,将大容量的硬盘集成在电子设备上已经逐渐成为一种趋势。
任何电子设备都需要从硬盘中获取数据,并将得到的数据通过各种方式显示出来。整个数据获取工作是由图1所示的系统实现的。图1中,电子设备的CPU 101与直接存储器存取(DMA)控制器102通过数据总线103与地址总线104组成一个系统。该系统中,当CPU 101需要访问某个数据时,首先向硬盘发出访问数据的指令;硬盘105收到CPU 101的指令后,查出该数据,并向DMA控制器102发出传输该数据的请求;DMA控制器102如果接受请求,则将相应的数据传到电子设备的主内存106中;之后,CPU 101处理主内存106中保存的数据。上述获取数据的过程可以参见图2。
目前的嵌入式电子设备与个人电脑(PC)相比,前者的CPU处理能力明显要差于后者,但是嵌入式电子设备的硬盘性能却往往与PC相同,也就是说,嵌入式电子设备硬盘的吞吐能力非常大。因此,嵌入式产品的CPU与硬盘处理能力之间的差距比较大。
具体来说,目前的硬盘传输速率理论上都在100MBps以上,而电子设备的解码码流一般是在200KBps左右,对于mp3之类的电子设备来说,其音频码流则更低。由于电子设备的解码码流往往远远小于硬盘的传输速率,或者说,电子设备的CPU处理能力远远小于硬盘的处理能力,因此,电子设备在播放某个文件时,需要从硬盘把相应的数据转载到主内存中,电子设备在播放下一个文件时,需要再次访问硬盘,以将硬盘中的数据转载到主内存中。也就是说,目前的电子设备都没有充分发挥硬盘的大容量吞吐能力,电子设备需要频繁地访问硬盘,从而导致硬盘的磁头频繁操作,并使硬盘长时间处于工作状态,导致硬盘的功耗非常严重。
发明内容
有鉴于此,本发明的主要目的在于提供一种获取硬盘中数据的方法,以在保证电子设备正常使用的前提下,降低CPU对硬盘的访问频率。
为达到以上目的,本发明的技术方案是这样实现的:一种获取硬盘中数据的方法,该方法包括以下步骤:
a.在主内存中设置用于保存硬盘中数据的主机缓存;
b.在对数据进行访问时,判断该主机缓存中是否存在当前需要访问的数据,如果存在,则从该主机缓存中获取数据,根据预先设置的数据关联性确定与当前数据相关联的数据,并将该数据存入主机缓存,并结束本流程;如果不存在,则进入步骤c;
c.从硬盘获取该数据,并将该数据存入主机缓存。
所述步骤a中设置的主机缓存的大小为硬盘缓存的十倍。
所述步骤c之后进一步包括:根据预先设置的数据关联性确定与当前数据相关联的数据,并将该关联数据存入主机缓存。
所述将关联数据存入主机缓存之前,进一步包括:判断主机缓存中是否已经存在与当前数据相关联的数据,如果已经存在,则结束本流程,否则,执行将关联数据保存在主机缓存中的步骤。
所述将关联数据存入主机缓存为:CPU向硬盘发送保存关联数据的指令,硬盘收到指令后,向直接存储器存取DMA控制器发送传输请求,DMA控制器接受硬盘传输请求后,将该关联数据存入主机缓存。
该方法可以进一步包括:主机缓存中的数据在被访问后,与地址低于自身、且与自身相邻的数据交换位置。
所述判断主机缓存中是否存在当前需要访问的数据是从主机缓存的最低地址开始,依次向高地址查找数据。
所述步骤c中,所述从硬盘获取数据包括以下步骤:
c1.CPU向硬盘发出访问数据的指令;
c2.硬盘收到指令后,向DMA控制器发出传输请求;
c3.DMA控制器判断是否接受传输请求,如果接受,则将相应的数据存入主内存,并进入步骤c4,否则,结束本流程;
c4.CPU从主内存中获取当前需要访问的数据。
本发明方案通过在主内存中设置主机缓存,CPU在获取当前需要访问的数据时,首先查找主机缓存中的数据,如果主机缓冲中已有该数据,则CPU不用对硬盘进行访问,即可获取该数据,从而减少了对硬盘的访问次数,降低了硬盘的功耗,并延长了硬盘的寿命。
本发明方案还可以进一步将与当前被访问的数据相关联的数据也存入主机缓存,以增加CPU直接从主机缓存中获取到数据的可能性,从而进一步降低CPU访问硬盘的次数。
由于CPU直接从主机缓存中获取数据的速率要远远高于从硬盘中获取数据的速率,因此本发明方案还可以进一步缩短用户的等待时间,使电子设备能够更好地为用户提供服务。
另外,由于本发明所针对的电子设备为个人消费电子,该类电子产品一般只有输出功能,没有输入功能,即主机缓存中的数据都是从硬盘中获取的,所以不存在主机缓存与硬盘中的数据不一致的问题。
附图说明
图1为现有电子设备的系统结构示意图;
图2为现有电子设备获取数据的流程图;
图3为本发明方案中的电子设备的系统结构示意图;
图4为本发明方案的实现流程图;
图5为本发明方案中进行地址转换的示意图。
具体实施方式
下面结合附图及具体实施例对本发明方案作进一步详细的说明。
参见图3,本发明主要是在电子设备的主内存106中专门划分出一个区域作为主机缓存(host cache)301,该主机缓存可以看作硬盘的二级缓存,其中可以保存一些数据。CPU在需要访问某个数据时,首先查看主机缓存中是否存在这个数据,如果存在,则CPU不再访问硬盘,而是直接从主机缓存中获取数据;如果没有,则CPU通过访问硬盘获取数据。
本发明方案的实现过程参见图4,具体通过以下步骤实现:
步骤401、在电子设备的主内存中设置主机缓存。
可以根据需要设置主机缓存的大小。由于主机缓存是作为硬盘的二级缓存存在的,因此在设置主机缓存时,推荐将主机缓存的大小设置为硬盘本身缓存的容量大小的十倍左右。比如,如果将型号为HITACHI Travelstar C4K40的笔记本硬盘集成在电子设备上,由于HITACHI Travelstar C4K40本身的缓存为2048KB,因此应将主机缓存的大小设置为至少20MB以上。
步骤402~404、应用软件在需要访问数据时,向CPU发出访问数据的指令,CPU则首先判断主机缓存中是否存在自身需要的数据,如果存在,则直接从主机缓存中获取数据,并结束本流程;否则,进入步骤405。
步骤405、CPU访问硬盘,并向硬盘发出访问数据的指令。
步骤406、硬盘收到指令后,向DMA控制器发出传输请求。
步骤407~408、DMA控制器判断是否接受请求,如果接受,则进入步骤409;否则,结束处理。
步骤409、DMA控制器将相应的数据存储到主内存及主机缓存。
步骤410、CPU从主内存中获取当前需要访问的数据,并对其进行处理。
另外,该步骤中,DMA控制器把数据从硬盘存取到包括主机缓存的主内存是不需要占用系统资源的。
通过上述步骤,即可实现本发明的目的。
在上述步骤410中,还可以进一步由DMA控制器将与当前数据相关联的数据保存到主机缓存中。为避免在主机缓存中保存的数据重复,还可以由CPU先检测主机缓存中是否已经存在与当前数据相关联的数据,如果存在,则结束处理;否则,CPU向硬盘发送保存关联数据的指令,硬盘收到指令后,向DMA控制器发送传输请求,DMA控制器如果接受硬盘的传输请求,则将该关联数据保存到主机缓存中,之后结束处理。这里,哪些数据与当前数据相关联是根据需要预先设置的,CPU根据预先设置的关联性确定与当前数据相关联的数据。
另外,为便于CPU查找数据,还可以将主机缓存中保存的数据按照数据使用的频繁程度进行排序。比如,将数据设置为:被访问的次数越多,数据的存放地址则越低。具体来说,某个数据被访问一次,则该数据即与比自身地址低的邻近数据交换位置,以保证被访问频率越高的数据在主机缓存中的存在地址越低。其具体的转换参见图5,图5所示的主机缓存中保存了n+1个文件,其中文件i为当前被访问的文件。在文件i被访问的同时,将文件i转移到与该文件相邻、且地址低于文件i的位置,即文件i-1的位置,文件i-1则交换到文件i的当前位置。
通过图5所示的转换,当CPU在主机缓存中查找数据时,应首先从低字节开始查找,也就是说,从访问次数最多的数据开始查找,这样就可以大大增加CPU在主机缓存中的命中率。
通过图5所示的转换,当DMA控制器向主机缓存中保存数据时,应首先更新替换主机缓存中被访问几率最小的数据,该数据在主机缓存中的地址则为最高。
为进一步优化本发明方案,还可以在步骤404结束处理前,增加将与当前访问数据相关的数据也存入主机缓存的步骤,该步骤具体如下:
步骤A、CPU确定与当前数据相关联的数据,并向硬盘发送保存关联数据的指令;
步骤B、硬盘收到指令后,向DMA控制器发送传输请求;
步骤C、DMA控制器在收到指令后,判断自身是否接受请求,如果接受,则将该关联数据存入主机缓存;否则,结束处理。
当然,为避免主机缓存中存入重复的数据,CPU在发送指令给DMA控制器之前,也可以先判断主机缓存中是否已经存在该关联数据,如果已经存在,则不发送指令给DMA控制器;否则,发送指令。
下面以一个带硬盘、且以INTEL的一种嵌入式CPU--XSCALE为平台的mp3播放器为例,对本发明方案作进一步的说明。其中,XSCALE中的DMA控制器已经集成在CPU上了。
在用户播放mp3时,mp3播放软件会先向CPU发送访问某个mp3文件的指令,CPU收到指令后,首先在主机缓存中查找相应的mp3文件,如果找到,则CPU对该mp3文件进行解码,并通过I2S总线把音频数据传输给音频多媒体数字信号编解码器(CODEC);如果CPU没有在主机缓存中查找到相应的mp3文件,则CPU向硬盘发出存取指令,硬盘则向DMA控制器发出DMA传输请求,DMA在接受请求后,把硬盘中相应的mp3文件存到主内存中,CPU再对该mp3文件进行解码。在CPU处理该mp3文件的同时,根据预先设置的关联性确定与该文件相关联的其他文件,并判断该关联文件是否已经保存在主机缓存中,如果是,则不作处理;否则,由DMA控制器将与该mp3文件相关联的所有文件保存在主机缓存中。
DMA控制器将与该mp3文件相关联的其他文件保存到主机缓存时,如果主机缓存中的所有地址都已保存了数据,则主机缓存用当前需要保存的文件更新自身地址位最高的文件,该地址位最高的文件即为被访问次数最少的文件。
在设置数据的关联性时,由于mp3播放器都有一个播放列表,因此,可以根据播放列表进行设置。比如,将当前mp3文件在播放列表中的前两个mp3文件和后两个mp3文件作为与当前mp3相关联的文件。当然,也可以根据需要作其他设置,只要能够符合用户的使用需要,且能减少主机对硬盘的访问频率即可。
下面以mp3为例,对比说明设置主机缓存所带来的显著效果。由于mp3的正常码流为128Kbps,按照该正常码流计算,一首4Mbyte的mp3歌曲大约可以播放4分30秒。如果在不设置主机缓存的情况下,需要连续播放类似的几首mp3歌曲,则mp3播放器的主机大约每隔4分30秒就要访问一次硬盘,另外,用户在听到音乐前还需要等待几秒钟。而如果设置了主机缓存,且主机缓存为16M Bytes,硬盘与DMA控制器以16.6MBps的传输速率传输数据,则系统可以用1秒的时间将当前歌曲的前后四首、共计16Mbyte的歌曲从硬盘存到主机缓存中。这种情况下,mp3播放器播放这4首歌曲共需要18分钟,但是该mp3播放器只需要用1秒钟的时间访问一次硬盘,即可将这4首歌曲存入主机缓存。由于mp3播放器是从主机缓存中读取这些歌曲,因此基本上不需要用户等待。显然,这种设置主机缓存的方法大大降低了硬盘的访问频率和时间,从而大大降低了mp3播放器中硬盘的功耗,因此可以延长硬盘的使用寿命。
以上所述仅为本发明方案的较佳实施例,并不用以限定本发明的保护范围。

Claims (8)

1、一种获取硬盘中数据的方法,其特征在于该方法包括以下步骤:
a.在主内存中设置用于保存硬盘中数据的主机缓存;
b.在对数据进行访问时,判断该主机缓存中是否存在当前需要访问的数据,如果存在,则从该主机缓存中获取数据,根据预先设置的数据关联性确定与当前数据相关联的数据,并将该关联数据存入主机缓存,并结束本流程;如果不存在,则进入步骤c;
c.从硬盘获取该数据,并将该数据存入主机缓存。
2、根据权利要求1所述的方法,其特征在于,所述步骤a中设置的主机缓存的大小为硬盘缓存的十倍。
3、根据权利要求1所述的方法,其特征在于,所述步骤c之后进一步包括:根据预先设置的数据关联性确定与当前数据相关联的数据,并将该关联数据存入主机缓存。
4、根据权利要求1所述的方法,其特征在于,所述将关联数据存入主机缓存之前,进一步包括:判断主机缓存中是否已经存在与当前数据相关联的数据,如果已经存在,则结束本流程,否则,执行将关联数据保存在主机缓存中的步骤。
5、根据权利要求1所述的方法,其特征在于,所述将关联数据存入主机缓存为:CPU向硬盘发送保存关联数据的指令,硬盘收到指令后,向直接存储器存取控制器,即DMA控制器发送传输请求,DMA控制器接受硬盘传输请求后,将该关联数据存入主机缓存。
6、根据权利要求1所述的方法,其特征在于,该方法进一步包括:主机缓存中的数据在被访问后,与地址低于自身、且与自身相邻的数据交换位置。
7、根据权利要求1所述的方法,其特征在于,所述判断主机缓存中是否存在当前需要访问的数据是从主机缓存的最低地址开始,依次向高地址查找数据。
8、根据权利要求1所述的方法,其特征在于所述步骤c中,所述从硬盘获取数据包括以下步骤:
c1.CPU向硬盘发出访问数据的指令;
c2.硬盘收到指令后,向DMA控制器发出传输请求;
c3.DMA控制器判断是否接受传输请求,如果接受,则将相应的数据存入主内存,并进入步骤c4,否则,结束本流程;
c4.CPU从主内存中获取当前需要访问的数据。
CNB2004100043183A 2004-02-13 2004-02-13 一种获取硬盘中数据的方法 Expired - Lifetime CN1308840C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100043183A CN1308840C (zh) 2004-02-13 2004-02-13 一种获取硬盘中数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100043183A CN1308840C (zh) 2004-02-13 2004-02-13 一种获取硬盘中数据的方法

Publications (2)

Publication Number Publication Date
CN1655130A CN1655130A (zh) 2005-08-17
CN1308840C true CN1308840C (zh) 2007-04-04

Family

ID=34892020

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100043183A Expired - Lifetime CN1308840C (zh) 2004-02-13 2004-02-13 一种获取硬盘中数据的方法

Country Status (1)

Country Link
CN (1) CN1308840C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100773738B1 (ko) * 2006-07-03 2007-11-09 삼성전자주식회사 하드 디스크 드라이브, 하드 디스크 드라이브의 재생적중률 향상 방법 및 그 방법을 수행하는 컴퓨터프로그램을 기록한 기록 매체
CN101154230B (zh) * 2006-09-30 2010-08-18 中兴通讯股份有限公司 一种大数据量分类检索网页的响应方法
CN101202692B (zh) * 2006-12-11 2012-02-15 中兴通讯股份有限公司 一种基于媒体服务器实现高速缓存的方法
JP2009283046A (ja) * 2008-05-20 2009-12-03 Sony Corp 情報記録方法及び情報記録装置
CN102063263B (zh) * 2009-11-18 2013-06-26 成都市华为赛门铁克科技有限公司 固态硬盘响应主机读写操作请求的方法、设备及系统
CN103246611B (zh) * 2012-02-07 2016-01-20 腾讯科技(深圳)有限公司 一种文件处理方法及系统
CN102870100A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 数据缓存装置、数据存储系统及方法
CN104516827B (zh) * 2013-09-27 2018-01-30 杭州信核数据科技股份有限公司 一种读缓存的方法及装置
CN108459821B (zh) * 2017-02-21 2022-11-18 中兴通讯股份有限公司 一种数据缓存的方法及装置
CN107329908A (zh) * 2017-07-07 2017-11-07 联想(北京)有限公司 一种数据处理方法和电子设备
CN107656702B (zh) * 2017-09-27 2020-11-20 联想(北京)有限公司 加速硬盘读写的方法及其系统、以及电子设备
CN109299144B (zh) * 2018-08-22 2021-04-16 北京奇艺世纪科技有限公司 一种数据处理方法、装置、系统及应用服务器
CN109740366A (zh) * 2019-01-03 2019-05-10 深圳壹账通智能科技有限公司 影像管理方法、装置、计算机设备和存储介质
CN115981548A (zh) * 2021-10-14 2023-04-18 华为技术有限公司 一种流控方法及装置
CN114896058B (zh) * 2022-04-27 2023-09-22 南京鼎华智能系统有限公司 基于内存运算的派工系统以及派工方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
CN1421003A (zh) * 2000-03-31 2003-05-28 英特尔公司 对盘驱动事务处理采用存取日志
US6581112B1 (en) * 2000-03-31 2003-06-17 Emc Corporation Direct memory access (DMA) receiver
CN1125401C (zh) * 1997-11-07 2003-10-22 日本电气株式会社 高速缓存存储器系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1125401C (zh) * 1997-11-07 2003-10-22 日本电气株式会社 高速缓存存储器系统
CN1421003A (zh) * 2000-03-31 2003-05-28 英特尔公司 对盘驱动事务处理采用存取日志
US6581112B1 (en) * 2000-03-31 2003-06-17 Emc Corporation Direct memory access (DMA) receiver
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法

Also Published As

Publication number Publication date
CN1655130A (zh) 2005-08-17

Similar Documents

Publication Publication Date Title
CN1308840C (zh) 一种获取硬盘中数据的方法
CN1171153C (zh) 管理服务器和客户机间的连接的系统和方法
US8791843B2 (en) Optimized bitstream encoding for compression
US8825960B2 (en) System and method of selectively caching information based on the interarrival time of requests for the same information
CN108710639B (zh) 一种基于Ceph的海量小文件存取优化方法
US20120303905A1 (en) Method and apparatus for implementing cache
CN1859325A (zh) 基于链表的进程间消息传递方法
CN101068212A (zh) 一种网络地址转换转发的装置及方法
CN1828556A (zh) 一种数据存储的方法、系统及设备
CN1968254A (zh) 确定是否要压缩通过网络传送的数据的方法和系统
CN1722106A (zh) 一种嵌入式实时操作系统中内存分配的方法
CN1829345A (zh) 实现移动终端间数据共享的方法和系统
CN1270273C (zh) 自适应存储器分配
CN101063970A (zh) 一种基于音频特征码识别技术的音频文件管理方法和系统
CN1570878A (zh) 信息家电软件升级方法及其升级数据的编码解码方法
CN1829976A (zh) 具有动态存储分配的集成电路
CN1968203A (zh) 一种基于AoE协议的网络存储设备及其数据处理方法
CN1949191A (zh) 一种低功耗高速缓存的实现方法及其高速缓存器
CN101075308A (zh) 一种编辑电子邮件的方法
Cannane et al. A general-purpose compression scheme for large collections
CN1848123A (zh) 一种为移动游戏用户提供游戏室信息的方法
CN1559037A (zh) 一种使数据单元流入终端的备份交换机
CN1185872C (zh) 一种基于实时流媒体的现场点播方法
CN1905538A (zh) 用于应用装置加载升级的控制方法和装置
CN1612566A (zh) 网络协议引擎

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20070404

CX01 Expiry of patent term