CN103714007B - 一种写数据的方法及电子设备 - Google Patents

一种写数据的方法及电子设备 Download PDF

Info

Publication number
CN103714007B
CN103714007B CN201210376006.XA CN201210376006A CN103714007B CN 103714007 B CN103714007 B CN 103714007B CN 201210376006 A CN201210376006 A CN 201210376006A CN 103714007 B CN103714007 B CN 103714007B
Authority
CN
China
Prior art keywords
address
data
hard disk
written
magnetic track
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.)
Active
Application number
CN201210376006.XA
Other languages
English (en)
Other versions
CN103714007A (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 CN201210376006.XA priority Critical patent/CN103714007B/zh
Publication of CN103714007A publication Critical patent/CN103714007A/zh
Application granted granted Critical
Publication of CN103714007B publication Critical patent/CN103714007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种写数据的方法,用于提高写数据的速率。所述方法包括:在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;获得所述待写入数据对应的第二地址;当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。本发明还公开了用于实现所述方法的电子设备。本发明还公开了一种读数据的方法及用于实现所述方法的电子设备。

Description

一种写数据的方法及电子设备
技术领域
本发明涉及计算机及通信领域,特别涉及一种写数据的方法及电子设备。
背景技术
现有技术中,在向HDD(Hard Disk Drive,硬盘驱动器)中写入数据时,写数据的时间包括三个部分:磁头寻找磁道的时间、等待硬盘转到相应磁道的时间及写入数据的时间。因磁头寻找磁道的时间及等待硬盘转到相应磁道的时间可能较长,导致现有技术中向HDD写入数据的速率较慢,效率较低。
为解决该问题,现有技术中采用了一种方案:将待写入硬盘的数据先写入一flash(闪存)中,相当于直接缩短了磁头寻找磁道的时间和等待硬盘转到相应磁道的时间,提高了向HDD中写入数据的速率。
但闪存的存储空间有限,在写入少量数据时该方案尚可满足需求,而如果需要写入大量数据,则该方案显然无法满足,可能依然需要使用传统写入方式进行写入,速率较慢,效率较低。
发明内容
本发明实施例提供一种写数据的方法及电子设备,用于解决现有技术中向HDD写入数据时速率较慢的技术问题,实现了提高写数据的速率的技术效果。
一种写数据的方法,应用一电子设备中,包括以下步骤:
在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;
获得所述待写入数据对应的第二地址;
当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;
将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据;
根据第一重定向表判断所述硬盘中是否存储有至少两个离散数据,所述至少两个离散数据为分别对应的第一地址是离散地址的数据,所述至少两个离散数据分别对应的第二地址为连续地址;
当判断确定为是时,将所述至少两个离散数据进行迁移,以将所述至少两个离散数据整理为连续数据。
较佳的,在确定与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道之后还包括步骤:判断所述第一磁道中是否有能够存放所述待写入数据的存储空间。
较佳的,确定所述第一磁道对应的第一地址的步骤包括:当判断确定所述第一磁道中有能够存放所述待写入数据的存储空间时,确定所述第一磁道对应的第一地址。
较佳的,当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系的步骤包括:当所述第一地址不同于所述第二地址时,建立所述第一重定向表,通过所述第一重定向表建立所述第二地址与所述第一地址间的第一映射关系。
较佳的,根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据的步骤包括:在所述硬盘处于空闲状态时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘有外部电源接入时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘中构造原生命令队列NCQ时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据。
较佳的,在根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据之前还包括步骤:在所述硬盘中预留第一存储区域,以将所述至少两个离散数据中的至少一个离散数据迁移到所述第一存储区域中,从而将所述至少两个离散数据整理为连续数据。
较佳的,在将所述待写入数据写入所述第一地址所指向的位置之前还包括步骤:判断所述硬盘的状态是否为正常状态;
将所述待写入数据写入所述第一地址所指向的位置的步骤包括:当判断确定所述硬盘的状态为非正常状态时,建立第三地址与所述第一地址间的第二映射关系,将所述待写入数据写入所述第三地址所指向的缓存区中的相应位置。
较佳的,在将所述待写入数据写入所述第一地址所指向的位置之前还包括步骤:判断所述硬盘的状态是否为正常状态;
将所述待写入数据写入所述第一地址所指向的位置的步骤包括:当判断确定所述硬盘的状态为所述正常状态时,将所述待写入数据写入所述第一地址所指向的所述硬盘中的相应位置。
一种电子设备,所述电子设备包括:
第一确定模块,用于在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;
获取模块,用于获得所述待写入数据对应的第二地址;
建立模块,用于当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;
写模块,用于将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。
较佳的,所述电子设备还包括判断模块,用于判断所述第一磁道中是否有能够存放所述待写入数据的存储空间;
判断模块,用于根据第一重定向表判断所述硬盘中是否存储有至少两个离散数据,所述至少两个离散数据为分别对应的第一地址是离散地址的数据,所述至少两个离散数据分别对应的第二地址为连续地址;
迁移模块,用于当判断确定为是时,将所述至少两个离散数据进行迁移,以将所述至少两个离散数据整理为连续数据。
较佳的,所述第一确定模块还用于:当判断确定所述第一磁道中有能够存放所述待写入数据的存储空间时,确定所述第一磁道对应的第一地址。
较佳的,所述建立模块具体用于:当所述第一地址不同于所述第二地址时,建立所述第一重定向表,通过所述第一重定向表建立所述第二地址与所述第一地址间的第一映射关系。
较佳的,所述判断模块具体用于:在所述硬盘处于空闲状态时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘有外部电源接入时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘中构造原生命令队列NCQ时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据。
较佳的,所述电子设备还包括预置模块,用于在所述硬盘中预留第一存储区域,以将所述至少两个离散数据中的至少一个离散数据迁移到所述第一存储区域中,从而将所述至少两个离散数据整理为连续数据。
较佳的,所述电子设备还包括判断模块,用于判断所述硬盘的状态是否为正常状态;
所述建立模块还用于:当判断确定所述硬盘的状态为非正常状态时,建立第三地址与所述第一地址间的第二映射关系;
所述写模块还用于:将所述待写入数据写入所述第三地址所指向的缓存区中的相应位置。
较佳的,所述电子设备还包括判断模块,用于判断所述硬盘的状态是否为正常状态;
所述写模块还用于:当判断确定所述硬盘的状态为所述正常状态时,将所述待写入数据写入所述第一地址所指向的所述硬盘中的相应位置。
本发明实施例中写数据的方法包括:在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;获得所述待写入数据对应的第二地址;当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。
在写数据时,寻找与磁头当前所在的第一位置之间的距离不大于所述第一预设距离的第一磁道,确定所述第一磁道的第一地址,如果待写入数据对应的第二地址不同于所述第一地址,则可以建立所述第一地址和所述第二地址之间的第一映射关系,以可以直接将所述待写入数据写入所述第一地址所指向的位置,从而减少了磁头寻找磁道的时间以及等待磁盘旋转到相应磁道的时间,有效提高了写数据的速率。
附图说明
图1为本发明实施例中写数据的主要方法流程图;
图2为本发明实施例中读数据的主要方法流程图;
图3为本发明实施例中一种电子设备的详细结构图;
图4为本发明实施例中另一种电子设备的主要结构图。
具体实施方式
本发明实施例中写数据的方法包括:在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;获得所述待写入数据对应的第二地址;当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。
在写数据时,寻找与磁头当前所在的第一位置之间的距离不大于所述第一预设距离的第一磁道,确定所述第一磁道的第一地址,如果待写入数据对应的第二地址不同于所述第一地址,则可以建立所述第一地址和所述第二地址之间的第一映射关系,以可以直接将所述待写入数据写入所述第一地址所指向的位置,从而减少了磁头寻找磁道的时间以及等待磁盘旋转到相应磁道的时间,有效提高了写数据的速率。
参见图1,本发明提供一种写数据的方法,所述方法可以应用于电子设备中。所述方法的主要流程如下:
步骤101:在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址。
在有所述待写入数据需要写入所述电子设备的硬盘中时,可以首先确定磁头当前所在的所述第一位置,在确定所述第一位置后可以确定与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道,并可以确定所述第一磁道所对应的所述第一地址。
本发明实施例中,与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道可以不只一个,例如可以确定出多个所述第一磁道,则可以从中选择一个所述第一磁道,并确定选择出的所述第一磁道对应的所述第一地址。
本发明实施例中,在从多个所述第一磁道中选择时可以任意选择一个所述第一磁道,或者可以选择所有所述第一磁道中与所述第一位置之间的距离最短的所述第一磁道,或者也可以选择一个特定的所述第一磁道。
较佳的,本发明实施例中,如果根据与所述第一位置之间的距离不大于所述第一预设距离这一条件确定出了多个所述第一磁道,则在从中选取一个之前,可以首先确定多个所述第一磁道中每个所述第一磁道中是否有足够的存储空间用于存储所述待写入数据。例如,如果确定出了5个所述第一磁道,而其中只有3个所述第一磁道中有足够的存储空间来存储所述待写入数据,剩余2个所述第一磁道中剩余的存储空间不够写入所述待写入数据,则在从中选取一个所述第一磁道时可以只从该3个所述第一磁道中选取一个所述第一磁道,而不考虑存储空间不足的另外两个所述第一磁道。
较佳的,本发明实施例中,如果根据与所述第一位置之间的距离不大于所述第一预设距离这一条件只确定出了一个所述第一磁道,则在确定所述第一磁道对应的所述第一地址之前,可以首先确定所述第一磁道中是否有足够的空间用于写入所述待写入数据,如果确定所述第一磁道中有足够的存储空间用于写入所述待写入数据,则可以确定所述第一磁道对应的所述第一地址,如果确定所述第一磁道中没有足够的存储空间用于写入所述待写入数据,则可以重新选取所述第一磁道,例如,可以调整所述第一预设距离,例如可以使所述第一预设距离变大,以重新选取所述第一磁道。
步骤102:获得所述待写入数据对应的第二地址。
在确定所述第一磁道对应的所述第一地址后,可以获得所述待写入数据对应的所述第二地址。
如果所述待写入数据有多个,则可以分别获得多个所述待写入数据所分别对应的所述第一地址。
步骤103:当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系。
在获得所述第一地址及所述第二地址后,可以通过对比来判断所述第一地址与所述第二地址是否相同。如果所述第一地址与所述第二地址相同,则可以直接将所述待写入数据写入所述第二地址指向的位置。
如果所述第一地址与所述第二地址不同,本发明实施例中可以建立所述第一地址与所述第二地址之间的第一映射关系。具体的,可以构建一第一重定向表,该第一重定向表中可以将所述第一地址与所述第二地址对应存储,通过查询该第一重定向表可以确定所述第一地址与所述第二地址之间的第一映射关系。
本发明实施例中,如果所述待写入数据有多个,则可以分别判断每个所述待写入数据所对应的所述第二地址与所述第一地址是否相同,如果有的所述第二地址与所述第一地址相同,则可以直接将所述待写入数据写入所述第一地址指向的位置,如果有的所述第二地址与所述第一地址不同,则可以建立所述第一地址与所述第二地址之间的所述第一映射关系。
或者,本发明实施例中,如果所述待写入数据有多个,则可以判断其中第一个所述待写入数据所对应的所述第二地址与所述第一地址是否相同,其中,所述第一个所述待写入数据是指其所对应的所述第二地址是所有所述待写入数据所对应的所述第二地址中最小的。
如果所述第二地址与所述第一地址相同,则可以直接将所述待写入数据写入所述第一地址指向的位置,如果所述第二地址与所述第一地址不同,则可以建立所述第一地址与所述第二地址之间的所述第一映射关系。在所述第一重定向表中的存储方式可以是:与第一个所述第二地址对应的第一个所述第一地址可以是该第一地址的起始值,与第二个所述第二地址对应的第二个所述第一地址可以是该第一地址的起始值+第一个所述待写入数据的长度,与第三个所述第二地址对应的第三个所述第一地址可以是该第一地址的起始值+第一个所述待写入数据的长度+第二个所述待写入数据的长度,以此类推;或者,在所述第一重定向表中也可以将所述第一地址及所述第二地址一一对应存储,与所述第二地址对应的就是相应所述第一地址的初始值,而无需加上相应待写入数据的长度。
步骤104:将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。
在建立所述第一地址及所述第二地址之间的所述第一映射关系后,可以将所述待写入数据直接写入所述第一地址所指向的位置,这样一来,由于所述第一地址所指向的所述第一磁道与磁头之间的距离较近,减少了磁头寻找相应磁道的时间,同时也减少了等待硬盘旋转到相应磁道的时间,有效提高了写入数据的速率。如果需要读取所述待写入数据,则可以根据所述第一映射关系,直接从所述第一地址读取所述待写入数据,不会出现误操作。
本发明实施例中,在将所述待写入数据写入所述第一地址所指向的位置之前,还可以首先判断所述硬盘的状态是否为正常状态。如果判断确定所述硬盘的状态为正常状态,则可以直接将所述待写入数据写入所述第一地址所指向的位置;如果判断确定所述硬盘的状态为非正常状态,即使将所述待写入数据写入所述硬盘,可能所述硬盘也无法正常存储,则本发明实施例中,如果判断确定所述硬盘的状态为非正常状态,还可以建立第三地址与所述第一地址之间的第二映射关系,在建立所述第二映射关系后,可以直接将所述待写入数据写入所述第三地址指向的位置。
本发明实施例中,所述第三地址指向的位置可以是一缓存区,该缓存区可以位于所述硬盘的flash(闪存)中。如果判断确定所述硬盘当前处于非正常状态,则可以将所述待写入数据写入所述缓存区,以保证数据的正常存储,这样在读数据时可以从所述缓存区中读取,不会因所述硬盘的状态异常而影响到数据的写入和读出。且,如果将所述待写入数据写入了所述缓存区,系统还可以继续检测所述硬盘的状态,例如系统可以实时、定时或在受触发时检测,以确定所述硬盘的状态,如果在某一时刻确定所述硬盘由非正常状态变为了正常状态,则还可以将存储在所述缓存区中的数据依次写入所述硬盘。这样操作是因为所述缓存区的空间可能有限,为保证在所述硬盘处于非正常状态时能够尽量更多地将所述待写入数据写入所述缓存区,在所述硬盘处于正常状态时可以将所述缓存区中的数据写入所述硬盘,以为所述缓存区留出更多的存储空间。
本发明实施例中,可以构建一第二重定向表,该第二重定向表中可以将所述第一地址和所述第三地址对应存储,通过查询所述第二重定向表可以确定所述第一地址和所述第三地址之间的所述第二映射关系。
本发明实施例中,在将所述待写入数据写入所述第一地址所指向的位置之后,还可以根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,所述至少两个离散数据对应的所述第二地址为连续地址。
所述第一重定向表中可以存储有各数据对应的所述第二地址及所述第一地址,可以根据各数据的所述第二地址判断是否有至少两个数据为连续的数据,例如,如果判断确定数据A、数据B和数据C为连续数据,则可以继续确定数据A、数据B和数据C所分别对应的所述第一地址,确定其所对应的所述第一地址是否也为连续的地址,如果是,则无需进行操作,如果确定数据A、数据B和数据C所分别对应的所述第一地址为离散的地址,则可以对数据A、数据B和数据C进行整理,以尽量按照其所分别对应的所述第二地址的顺序将其整理为连续数据。
例如,一种整理方式可以是:本发明实施例中,在所述硬盘中可以预留有第一存储区域,该第一存储区域可以用来将离散数据迁移入其中,从而可以在所述第一存储区域中使离散数据形成连续数据,例如所述第一存储区域占用的存储空间可以是整个所述硬盘的存储空间大小的10%,以尽量保证能够对所述硬盘中的所有离散数据进行整理。例如,如果确定需要对数据A、数据B和数据C进行整理,则可以将数据A、数据B和数据C迁入所述第一存储区域,在所述第一存储区域中,可以按照数据A、数据B和数据C所分别对应的所述第一地址的顺序依次对数据A、数据B和数据C进行存储,从而可以使数据A、数据B和数据C在所述第一存储区域中形成连续数据。
本发明实施例中,判断所述硬盘中是否存储有至少两个离散数据的时机可以有多种。例如,可以在所述硬盘处于空闲状态时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或可以在所述硬盘有外部电源接入时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或可以在所述硬盘中构造NCQ(原生命令队列)时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或者也可以在其他时机判断所述硬盘中是否存储有至少两个离散数据。
硬盘中如果存储有过多的离散数据,会形成磁盘碎片。虽然说磁盘碎片对于正常工作影响并不大,但是会显著降低硬盘的运行速度,这主要是硬盘读取文件需要在多个碎片之间跳转,增加了等待盘片旋转到指定扇区的潜伏期和磁头切换磁道所需的寻道时间。这些碎片会降低整个windows的性能,每次读写文件磁盘触头都要来回移动,浪费了时间。因此本发明实施例中可以在硬盘空闲时对磁盘碎片进行整理,尽量将离散数据整理为连续数据,提高了硬盘的运行速度,减少时间的浪费。且本发明实施例中对硬盘进行整理是在硬盘空闲时,不会影响到硬盘的正常工作。
以下通过几个具体的实施例介绍本发明中写数据的方法,下面的实施例主要介绍了所述方法的几种可能的应用场景。需要说明的是,本发明中的实施例只用于解释本发明,而不能用于限制本发明,凡是符合本发明思想的实施例均在本发明的保护范围之内,本领域技术人员自然知道应如何根据本发明的思想进行变形。
实施例一:
有一待写入数据需要写入电子设备的硬盘中,可以确定所述硬盘中磁头当前所在的第一位置。
确定所述第一位置后,可以确定与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道。
本实施例中,与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道可以不只一个,例如可以确定出多个所述第一磁道,则可以从中选择一个所述第一磁道,并确定选择出的所述第一磁道对应的所述第一地址。
本实施例中,在从多个所述第一磁道中选择时可以任意选择一个所述第一磁道,或者可以选择所有所述第一磁道中与所述第一位置之间的距离最短的所述第一磁道,或者也可以选择一个特定的所述第一磁道。
例如,本实施例中共确定出了3个所述第一磁道,则可以从中选取一个与所述第一位置之间的距离最短的所述第一磁道,确定选择的所述第一磁道对应的第一地址。
在确定所述第一磁道对应的所述第一地址后,可以获得所述待写入数据对应的所述第二地址。
在获得所述第一地址及所述第二地址后,可以通过对比来判断所述第一地址与所述第二地址是否相同。如果所述第一地址与所述第二地址相同,则可以直接将所述待写入数据写入所述第二地址指向的位置。而本实施例中,所述第一地址与所述第二地址不同。
如果所述第一地址与所述第二地址不同,本实施例中可以建立所述第一地址与所述第二地址之间的第一映射关系。具体的,可以构建一第一重定向表,该第一重定向表中可以将所述第一地址与所述第二地址对应存储,通过查询该第一重定向表可以确定所述第一地址与所述第二地址之间的第一映射关系。
在建立所述第一地址及所述第二地址之间的所述第一映射关系后,可以将所述待写入数据直接写入所述第一地址所指向的位置,这样一来,由于所述第一地址所指向的所述第一磁道与磁头之间的距离较近,减少了磁头寻找相应磁道的时间,同时也减少了等待硬盘旋转到相应磁道的时间,有效提高了写入数据的速率。如果需要读取所述待写入数据,则可以根据所述第一映射关系,直接从所述第一地址读取所述待写入数据,不会出现误操作。
实施例二:
有一待写入数据需要写入电子设备的硬盘中,可以确定所述硬盘中磁头当前所在的第一位置。
确定所述第一位置后,可以确定与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道。
本实施例中,与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道可以不只一个,例如可以确定出多个所述第一磁道,则可以从中选择一个所述第一磁道,并确定选择出的所述第一磁道对应的所述第一地址。
本实施例中,在从多个所述第一磁道中选择时可以任意选择一个所述第一磁道,或者可以选择所有所述第一磁道中与所述第一位置之间的距离最短的所述第一磁道,或者也可以选择一个特定的所述第一磁道。
本实施例中,在从多个所述第一磁道中选取一个所述第一磁道之前,可以首先确定多个所述第一磁道中每个所述第一磁道中是否有足够的存储空间用于存储所述待写入数据。
例如,本实施例中共确定出了5个所述第一磁道,则在从中选取一个之前,可以分别确定该5个所述第一磁道中的每个所述第一磁道中是否有足够的存储空间用来存储所述待写入数据。例如,确定出其中只有3个所述第一磁道中有足够的存储空间来存储所述待写入数据,而剩余2个所述第一磁道中剩余的存储空间均不够写入所述待写入数据,则可以只从该3个所述第一磁道中选取一个所述第一磁道,而不考虑存储空间不足的另外两个所述第一磁道。
本实施例中可以从该3个所述第一磁道中任意选取一个所述第一磁道,确定选择的所述第一磁道对应的第一地址。
在确定所述第一磁道对应的所述第一地址后,可以获得所述待写入数据对应的所述第二地址。
在获得所述第一地址及所述第二地址后,可以通过对比来判断所述第一地址与所述第二地址是否相同。如果所述第一地址与所述第二地址相同,则可以直接将所述待写入数据写入所述第二地址指向的位置。而本实施例中,所述第一地址与所述第二地址不同。
如果所述第一地址与所述第二地址不同,本实施例中可以建立所述第一地址与所述第二地址之间的第一映射关系。具体的,可以构建一第一重定向表,该第一重定向表中可以将所述第一地址与所述第二地址对应存储,通过查询该第一重定向表可以确定所述第一地址与所述第二地址之间的第一映射关系。
在建立所述第一地址及所述第二地址之间的所述第一映射关系后,可以将所述待写入数据直接写入所述第一地址所指向的位置,这样一来,由于所述第一地址所指向的所述第一磁道与磁头之间的距离较近,减少了磁头寻找相应磁道的时间,同时也减少了等待硬盘旋转到相应磁道的时间,有效提高了写入数据的速率。如果需要读取所述待写入数据,则可以根据所述第一映射关系,直接从所述第一地址读取所述待写入数据,不会出现误操作。
实施例三:
有一待写入数据需要写入电子设备的硬盘中,可以确定所述硬盘中磁头当前所在的第一位置。
确定所述第一位置后,可以确定与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道。
本实施例中,与所述第一位置之间的距离不大于所述第一预设距离的所述第一磁道可以不只一个,例如可以确定出多个所述第一磁道,则可以从中选择一个所述第一磁道,并确定选择出的所述第一磁道对应的所述第一地址。
本实施例中,在从多个所述第一磁道中选择时可以任意选择一个所述第一磁道,或者可以选择所有所述第一磁道中与所述第一位置之间的距离最短的所述第一磁道,或者也可以选择一个特定的所述第一磁道。
本实施例中,在从多个所述第一磁道中选取一个所述第一磁道之前,可以首先确定多个所述第一磁道中每个所述第一磁道中是否有足够的存储空间用于存储所述待写入数据。
例如,本实施例中共确定出了5个所述第一磁道,则在从中选取一个之前,可以分别确定该5个所述第一磁道中的每个所述第一磁道中是否有足够的存储空间用来存储所述待写入数据。例如,确定出其中只有3个所述第一磁道中有足够的存储空间来存储所述待写入数据,而剩余2个所述第一磁道中剩余的存储空间均不够写入所述待写入数据,则可以只从该3个所述第一磁道中选取一个所述第一磁道,而不考虑存储空间不足的另外两个所述第一磁道。
本实施例中可以从该3个所述第一磁道中任意选取一个所述第一磁道,确定选择的所述第一磁道对应的第一地址。
在确定所述第一磁道对应的所述第一地址后,可以获得所述待写入数据对应的所述第二地址。
在获得所述第一地址及所述第二地址后,可以通过对比来判断所述第一地址与所述第二地址是否相同。如果所述第一地址与所述第二地址相同,则可以直接将所述待写入数据写入所述第二地址指向的位置。而本实施例中,所述第一地址与所述第二地址不同。
如果所述第一地址与所述第二地址不同,本实施例中可以建立所述第一地址与所述第二地址之间的第一映射关系。具体的,可以构建一第一重定向表,该第一重定向表中可以将所述第一地址与所述第二地址对应存储,通过查询该第一重定向表可以确定所述第一地址与所述第二地址之间的第一映射关系。
本实施例中,在将所述待写入数据写入所述第一地址所指向的位置之前,还可以首先判断所述硬盘的状态是否为正常状态。如果判断确定所述硬盘的状态为正常状态,则可以直接将所述待写入数据写入所述第一地址所指向的位置;如果判断确定所述硬盘的状态为非正常状态,即使将所述待写入数据写入所述硬盘,可能所述硬盘也无法正常存储,则本实施例中,如果判断确定所述硬盘的状态为非正常状态,还可以建立第三地址与所述第一地址之间的第二映射关系,在建立所述第二映射关系后,可以直接将所述待写入数据写入所述第三地址指向的位置。
本实施例中,所述第三地址指向的位置可以是一缓存区,该缓存区可以位于所述硬盘的flash(闪存)中。如果判断确定所述硬盘当前处于非正常状态,则可以将所述待写入数据写入所述缓存区,以保证数据的正常存储,这样在读数据时可以从所述缓存区中读取,不会因所述硬盘的状态异常而影响到数据的写入和读出。且,如果将所述待写入数据写入了所述缓存区,系统还可以继续检测所述硬盘的状态,例如系统可以实时、定时或在受触发时检测,以确定所述硬盘的状态,如果在某一时刻确定所述硬盘由非正常状态变为了正常状态,则还可以将存储在所述缓存区中的数据依次写入所述硬盘。这样操作是因为所述缓存区的空间可能有限,为保证在所述硬盘处于非正常状态时能够尽量更多地将所述待写入数据写入所述缓存区,在所述硬盘处于正常状态时可以将所述缓存区中的数据写入所述硬盘,以为所述缓存区留出更多的存储空间。
本实施例中确定所述硬盘当前的状态为非正常状态,则可以构建一第二重定向表,该第二重定向表中可以将所述第一地址和所述第三地址对应存储,通过查询所述第二重定向表可以确定所述第一地址和所述第三地址之间的所述第二映射关系。
在建立所述第一地址及所述第三地址之间的所述第一映射关系后,可以将所述待写入数据直接写入所述第一地址所指向的位置,这样一来,由于所述第一地址所指向的所述第一磁道与磁头之间的距离较近,减少了磁头寻找相应磁道的时间,同时也减少了等待硬盘旋转到相应磁道的时间,有效提高了写入数据的速率。如果需要读取所述待写入数据,则可以根据所述第一映射关系,直接从所述第一地址读取所述待写入数据,不会出现误操作。
参见图2,本发明还提供一种读数据的方法,所述方法可以应用于所述电子设备。所述方法的主要流程如下:
步骤201:在有一待读取数据时,确定所述待读取数据对应的第四地址。
当有一待读取数据需要读取时,可以确定所述待读取数据对应的所述第四地址。本发明实施例中,所述待读取数据可以是从所述电子设备的所述硬盘中读取,或者也可以是从所述电子设备的所述缓存区中读取,但对于用户来说一般并不知晓所述待读取数据是存储在所述硬盘中还是存储在所述缓存区中,用户都可以认为所述待读取数据是存储在所述硬盘中,因此一般来说,所述第四地址指向的位置都是所述硬盘。
如果有多个所述待读取数据,可以分别确定每个所述待读取数据所对应的所述第四地址。
步骤202:确定与所述第四地址存在第三映射关系的第五地址。
在确定所述第四地址后,可以确定与所述第四地址存在所述第三映射关系的所述第五地址。具体的,可以通过查询相应的重定向表来确定是否有所述第五地址与所述第四地址存在所述第三映射关系。如果通过查询相应的重定向表未发现有所述第五地址与所述第四地址存在所述第三映射关系,则可以直接从所述第四地址指向的位置读取所述待读取数据。
本发明实施例中,所述第三映射关系可以与所述第一映射关系为同一映射关系,或者所述第三映射关系可以与所述第二映射关系为同一映射关系。
例如,在根据所述第四地址查询相应重定向表时,可以首先查询所述第一重定向表,确定所述第一重定向表中是否对应存储有所述第四地址及所述第五地址,如果没有,则可以继续查询所述第二重定向表,确定所述第二重定向表中是否对应存储有所述第四地址及所述第五地址。如果在所述第一重定向表及所述第二重定向表中均未查询到有所述第五地址与所述第四地址对应存储,则可以确定没有所述第五地址与所述第四地址存在所述第三映射关系,可以直接从所述第四地址指向的位置读取所述待读取数据。
或者,在根据所述第四地址查询相应重定向表时,也可以首先查询所述第二重定向表,确定所述第二重定向表中是否对应存储有所述第四地址及所述第五地址,如果没有,则可以继续查询所述第一重定向表,确定所述第一重定向表中是否对应存储有所述第四地址及所述第五地址。
步骤203:从所述第五地址指向的位置中读取所述待读取数据。
当确定有所述第五地址与所述第四地址之间存在所述第三映射关系时,可以从所述第五地址指向的位置读取所述待读取数据。
例如,如果所述第五地址指向的位置为所述硬盘,则可以从所述硬盘中读取所述待读取数据,如果所述第五地址指向的位置为所述缓存区,则可以从所述缓存区中读取所述待读取数据。
作为与图1中的写数据的方法相对应的读数据的方法,在确定有所述待读取数据时,要首先确定与所述待读取数据的所述第四地址存在所述第三映射关系的所述第五地址,以便直接从所述第五地址指向的位置读取所述待读取数据,从而可以准确查找到所述待读取数据的存储位置,避免定位错误,也可以相应提高读取速率。
以下通过几个具体的实施例介绍本发明中读数据的方法,下面的实施例主要介绍了所述方法的几种可能的应用场景。需要说明的是,本发明中的实施例只用于解释本发明,而不能用于限制本发明,凡是符合本发明思想的实施例均在本发明的保护范围之内,本领域技术人员自然知道应如何根据本发明的思想进行变形。
实施例一:
当有一待读取数据需要读取时,可以确定所述待读取数据对应的所述第四地址。本发明实施例中,所述待读取数据可以是从所述电子设备的所述硬盘中读取,或者也可以是从所述电子设备的所述缓存区中读取,但对于用户来说一般并不知晓所述待读取数据是存储在所述硬盘中还是存储在所述缓存区中,用户都可以认为所述待读取数据是存储在所述硬盘中,因此一般来说,所述第四地址指向的位置都是所述硬盘。
在确定所述第四地址后,可以确定与所述第四地址存在所述第三映射关系的所述第五地址。具体的,可以通过查询相应的重定向表来确定是否有所述第五地址与所述第四地址存在所述第三映射关系。如果通过查询相应的重定向表未发现有所述第五地址与所述第四地址存在所述第三映射关系,则可以直接从所述第四地址指向的位置读取所述待读取数据。
本实施例中,所述第三映射关系可以与所述第一映射关系为同一映射关系。
例如,在根据所述第四地址查询相应重定向表时,可以首先查询所述第一重定向表,确定所述第一重定向表中是否对应存储有所述第四地址及所述第五地址,如果没有,则可以继续查询所述第二重定向表,确定所述第二重定向表中是否对应存储有所述第四地址及所述第五地址。如果在所述第一重定向表及所述第二重定向表中均未查询到有所述第五地址与所述第四地址对应存储,则可以确定没有所述第五地址与所述第四地址存在所述第三映射关系,可以直接从所述第四地址指向的位置读取所述待读取数据。
本实施例中,通过查询确定所述第一重定向表中对应存储有所述第四地址及所述第五地址,说明所述第三映射关系与所述第一映射关系为同一映射关系。
当确定有所述第五地址与所述第四地址之间存在所述第三映射关系时,可以从所述第五地址指向的位置读取所述待读取数据。
例如,如果所述第五地址指向的位置为所述硬盘,则可以从所述硬盘中读取所述待读取数据,如果所述第五地址指向的位置为所述缓存区,则可以从所述缓存区中读取所述待读取数据。
实施例二:
当有一待读取数据需要读取时,可以确定所述待读取数据对应的所述第四地址。本发明实施例中,所述待读取数据可以是从所述电子设备的所述硬盘中读取,或者也可以是从所述电子设备的所述缓存区中读取,但对于用户来说一般并不知晓所述待读取数据是存储在所述硬盘中还是存储在所述缓存区中,用户都可以认为所述待读取数据是存储在所述硬盘中,因此一般来说,所述第四地址指向的位置都是所述硬盘。
在确定所述第四地址后,可以确定与所述第四地址存在所述第三映射关系的所述第五地址。具体的,可以通过查询相应的重定向表来确定是否有所述第五地址与所述第四地址存在所述第三映射关系。如果通过查询相应的重定向表未发现有所述第五地址与所述第四地址存在所述第三映射关系,则可以直接从所述第四地址指向的位置读取所述待读取数据。
本实施例中,所述第三映射关系可以与所述第一映射关系为同一映射关系。
例如,在根据所述第四地址查询相应重定向表时,可以首先查询所述第一重定向表,确定所述第一重定向表中是否对应存储有所述第四地址及所述第五地址,如果没有,则可以继续查询所述第二重定向表,确定所述第二重定向表中是否对应存储有所述第四地址及所述第五地址。如果在所述第一重定向表及所述第二重定向表中均未查询到有所述第五地址与所述第四地址对应存储,则可以确定没有所述第五地址与所述第四地址存在所述第三映射关系,可以直接从所述第四地址指向的位置读取所述待读取数据。
本实施例中,通过查询确定所述第一重定向表和所述第二重定向表中均未对应存储有所述第四地址及所述第五地址,说明没有所述第五地址与所述第四地址存在所述第三映射关系。
直接从所述第四地址指向的位置读取所述待读取数据。
参见图3,本发明提供一种电子设备。所述电子设备可以包括第一确定模块301、获取模块302、建立模块303和写模块304。所述电子设备还可以包括判断模块305。所述电子设备还可以包括迁移模块306和预置模块307。
第一确定模块301可以用于在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址。
第一确定模块301还可以用于当判断确定所述第一磁道中有能够存放所述待写入数据的存储空间时,确定所述第一磁道对应的第一地址。
获取模块302可以用于获得所述待写入数据对应的第二地址。
建立模块303可以用于当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系。
建立模块303具体可以用于当所述第一地址不同于所述第二地址时,建立一第一重定向表,通过所述第一重定向表建立所述第二地址与所述第一地址间的第一映射关系。
建立模块303还可以用于当判断确定所述硬盘的状态为非正常状态时,建立第三地址与所述第一地址间的第二映射关系。
写模块304可以用于将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。
写模块304还可以用于将所述待写入数据写入所述第三地址所指向的缓存区中的相应位置。
写模块304还可以用于当判断确定所述硬盘的状态为所述正常状态时,将所述待写入数据写入所述第一地址所指向的所述磁盘中的相应位置。
判断模块305可以用于判断所述第一磁道中是否有能够存放所述待写入数据的存储空间。
判断模块305可以用于根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,所述至少两个离散数据对应的所述第二地址为连续地址。
判断模块305具体可以用于在所述硬盘处于空闲状态时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘有外部电源接入时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘中构造原生命令队列NCQ时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据。
判断模块305可以用于判断所述硬盘的状态是否为正常状态。
迁移模块306可以用于当判断确定为是时,将所述至少两个离散数据进行迁移,以将所述至少两个离散数据整理为连续数据。
预置模块307可以用于在所述硬盘中预留第一存储区域,以将所述至少两个离散数据中的至少一个离散数据迁移到所述第一存储区域中,从而将所述至少两个离散数据整理为连续数据。
参见图4,本发明还提供一种电子设备,所述电子设备可以包括第二确定模块401、第三确定模块402和读模块403。较佳的,本发明实施例中,图4所示的所述电子设备与图3中所示的所述电子设备可以是同一电子设备。
第二确定模块401可以用于在有一待读取数据时,确定所述待读取数据对应的第四地址。
第三确定模块402可以用于确定与所述第四地址存在第三映射关系的第五地址。
读模块403可以用于从所述第五地址指向的位置中读取所述待读取数据。
本发明实施例中写数据的方法包括:在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;获得所述待写入数据对应的第二地址;当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据。
在写数据时,寻找与磁头当前所在的第一位置之间的距离不大于所述第一预设距离的第一磁道,确定所述第一磁道的第一地址,如果待写入数据对应的第二地址不同于所述第一地址,则可以建立所述第一地址和所述第二地址之间的第一映射关系,以可以直接将所述待写入数据写入所述第一地址所指向的位置,从而减少了磁头寻找磁道的时间以及等待磁盘旋转到相应磁道的时间,有效提高了写数据的速率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种写数据的方法,应用一电子设备中,其特征在于,包括以下步骤:
在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;
获得所述待写入数据对应的第二地址;
当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;
将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据;
根据第一重定向表判断所述硬盘中是否存储有至少两个离散数据,所述至少两个离散数据为分别对应的第一地址是离散地址的数据,所述至少两个离散数据分别对应的第二地址为连续地址;
当判断确定为是时,将所述至少两个离散数据进行迁移,以将所述至少两个离散数据整理为连续数据。
2.如权利要求1所述的方法,其特征在于,在确定与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道之后还包括步骤:判断所述第一磁道中是否有能够存放所述待写入数据的存储空间。
3.如权利要求1所述的方法,其特征在于,确定所述第一磁道对应的第一地址的步骤包括:当判断确定所述第一磁道中有能够存放所述待写入数据的存储空间时,确定所述第一磁道对应的第一地址。
4.如权利要求1所述的方法,其特征在于,当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系的步骤包括:当所述第一地址不同于所述第二地址时,建立所述第一重定向表,通过所述第一重定向表建立所述第二地址与所述第一地址间的第一映射关系。
5.如权利要求4所述的方法,其特征在于,根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据的步骤包括:在所述硬盘处于空闲状态时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘有外部电源接入时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘中构造原生命令队列NCQ时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据。
6.如权利要求4所述的方法,其特征在于,在根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据之前还包括步骤:在所述硬盘中预留第一存储区域,以将所述至少两个离散数据中的至少一个离散数据迁移到所述第一存储区域中,从而将所述至少两个离散数据整理为连续数据。
7.如权利要求1所述的方法,其特征在于,在将所述待写入数据写入所述第一地址所指向的位置之前还包括步骤:判断所述硬盘的状态是否为正常状态;
将所述待写入数据写入所述第一地址所指向的位置的步骤包括:当判断确定所述硬盘的状态为非正常状态时,建立第三地址与所述第一地址间的第二映射关系,将所述待写入数据写入所述第三地址所指向的缓存区中的相应位置。
8.如权利要求1所述的方法,其特征在于,在将所述待写入数据写入所述第一地址所指向的位置之前还包括步骤:判断所述硬盘的状态是否为正常状态;
将所述待写入数据写入所述第一地址所指向的位置的步骤包括:当判断确定所述硬盘的状态为所述正常状态时,将所述待写入数据写入所述第一地址所指向的所述硬盘中的相应位置。
9.一种电子设备,其特征在于,所述电子设备包括:
第一确定模块,用于在有一待写入数据需要写入所述电子设备的硬盘中时,确定所述硬盘中与磁头当前所在的第一位置之间的距离不大于第一预设距离的第一磁道,确定所述第一磁道对应的第一地址;
获取模块,用于获得所述待写入数据对应的第二地址;
建立模块,用于当所述第一地址不同于所述第二地址时,建立所述第二地址与所述第一地址间的第一映射关系;
写模块,用于将所述待写入数据写入所述第一地址所指向的位置,以使在需要读取所述待写入数据时,根据所述第一映射关系能够从所述第一地址读取所述待写入数据;
判断模块,用于根据第一重定向表判断所述硬盘中是否存储有至少两个离散数据,所述至少两个离散数据为分别对应的第一地址是离散地址的数据,所述至少两个离散数据分别对应的第二地址为连续地址;
迁移模块,用于当判断确定为是时,将所述至少两个离散数据进行迁移,以将所述至少两个离散数据整理为连续数据。
10.如权利要求9所述的电子设备,其特征在于,所述电子设备还包括判断模块,用于判断所述第一磁道中是否有能够存放所述待写入数据的存储空间。
11.如权利要求9所述的电子设备,其特征在于,所述第一确定模块还用于:当判断确定所述第一磁道中有能够存放所述待写入数据的存储空间时,确定所述第一磁道对应的第一地址。
12.如权利要求9所述的电子设备,其特征在于,所述建立模块具体用于:当所述第一地址不同于所述第二地址时,建立所述第一重定向表,通过所述第一重定向表建立所述第二地址与所述第一地址间的第一映射关系。
13.如权利要求12所述的电子设备,其特征在于,所述判断模块具体用于:在所述硬盘处于空闲状态时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘有外部电源接入时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据,或在所述硬盘中构造原生命令队列NCQ时根据所述第一重定向表判断所述硬盘中是否存储有至少两个离散数据。
14.如权利要求12所述的电子设备,其特征在于,所述电子设备还包括预置模块,用于在所述硬盘中预留第一存储区域,以将所述至少两个离散数据中的至少一个离散数据迁移到所述第一存储区域中,从而将所述至少两个离散数据整理为连续数据。
15.如权利要求9所述的电子设备,其特征在于,所述电子设备还包括判断模块,用于判断所述硬盘的状态是否为正常状态;
所述建立模块还用于:当判断确定所述硬盘的状态为非正常状态时,建立第三地址与所述第一地址间的第二映射关系;
所述写模块还用于:将所述待写入数据写入所述第三地址所指向的缓存区中的相应位置。
16.如权利要求9所述的电子设备,其特征在于,所述电子设备还包括判断模块,用于判断所述硬盘的状态是否为正常状态;
所述写模块还用于:当判断确定所述硬盘的状态为所述正常状态时,将所述待写入数据写入所述第一地址所指向的所述硬盘中的相应位置。
CN201210376006.XA 2012-09-29 2012-09-29 一种写数据的方法及电子设备 Active CN103714007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210376006.XA CN103714007B (zh) 2012-09-29 2012-09-29 一种写数据的方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210376006.XA CN103714007B (zh) 2012-09-29 2012-09-29 一种写数据的方法及电子设备

Publications (2)

Publication Number Publication Date
CN103714007A CN103714007A (zh) 2014-04-09
CN103714007B true CN103714007B (zh) 2017-02-08

Family

ID=50407004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210376006.XA Active CN103714007B (zh) 2012-09-29 2012-09-29 一种写数据的方法及电子设备

Country Status (1)

Country Link
CN (1) CN103714007B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927132B (zh) * 2014-03-31 2017-08-25 华为技术有限公司 数据处理方法及装置
CN113626081A (zh) * 2020-05-08 2021-11-09 安徽寒武纪信息科技有限公司 数据处理方法及装置以及相关产品
CN113741816B (zh) * 2021-08-31 2024-09-24 杭州海康威视数字技术股份有限公司 块设备的操作方法、装置、设备及机器可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1252141A (zh) * 1997-12-18 2000-05-03 松下电器产业株式会社 文件记录、记录媒体管理、文件处理和对记录媒体写入接收数据的方法以及数据记录装置和程序记录媒体
CN1545030A (zh) * 2003-11-14 2004-11-10 清华大学 基于磁盘特征的数据分布动态映射的方法
CN1912821A (zh) * 2005-08-10 2007-02-14 国际商业机器公司 用于将数据写入镜像存储组件的装置和方法
CN102567244A (zh) * 2011-12-13 2012-07-11 清华大学 闪存和磁盘转换存取方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3683157B2 (ja) * 2000-03-17 2005-08-17 富士通株式会社 ディスク装置のヘッド位置制御方法及びデイスク装置
US6987632B2 (en) * 2003-07-22 2006-01-17 Matsushita Electric Industral Co., Ltd. Systems for conditional servowriting

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1252141A (zh) * 1997-12-18 2000-05-03 松下电器产业株式会社 文件记录、记录媒体管理、文件处理和对记录媒体写入接收数据的方法以及数据记录装置和程序记录媒体
CN1545030A (zh) * 2003-11-14 2004-11-10 清华大学 基于磁盘特征的数据分布动态映射的方法
CN1912821A (zh) * 2005-08-10 2007-02-14 国际商业机器公司 用于将数据写入镜像存储组件的装置和方法
CN102567244A (zh) * 2011-12-13 2012-07-11 清华大学 闪存和磁盘转换存取方法

Also Published As

Publication number Publication date
CN103714007A (zh) 2014-04-09

Similar Documents

Publication Publication Date Title
US8583879B2 (en) Data storage device, storing medium access method and storing medium thereof
US11714553B2 (en) Namespaces allocation in non-volatile memory devices
US11640242B2 (en) Namespace management in non-volatile memory devices
JP3347015B2 (ja) 頻繁にアクセスされ、ランダムにアドレス指定されるデータの適応局所化方法及び装置
US20160132429A1 (en) Method and Storage Device for Collecting Garbage Data
US8874875B2 (en) ICC-NCQ command scheduling for shingle-written magnetic recording (SMR) Drives
US9454489B2 (en) Exporting guest spatial locality to hypervisors
US20090106518A1 (en) Methods, systems, and computer program products for file relocation on a data storage device
CN109324758A (zh) 数据迁移方法、装置及存储设备
US9086816B2 (en) Writing adjacent tracks to a stride, based on a comparison of a destaging of tracks to a defragmentation of the stride
WO2020015550A1 (zh) 一种对lba信息进行预测的方法及ssd
CN109388337A (zh) 存储设备,以及对存储设备中的多个固态驱动器之间的利用率进行平衡的方法
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
CN103713861A (zh) 一种基于层次划分的文件处理方法及系统
KR20160010491A (ko) 희소하게 판독되는 데이터용의 저가의 스토리지
TWI471725B (zh) 用於管理儲存陣列的方法及具有執行該方法的指令之電腦可讀取記錄媒體
CN105446665A (zh) 一种计算机存储加速系统及其优化方法
JP2015505623A (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
JP2016503209A (ja) ディスクアレイ・フラッシュ方法及びディスクアレイ・フラッシュ装置
CN103714007B (zh) 一种写数据的方法及电子设备
US20180341423A1 (en) Storage control device and information processing system
US9430168B2 (en) Recording medium storing a program for data relocation, data storage system and data relocating method
JP2014229144A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
CN101957729A (zh) 逻辑块变换方法及基于该方法兼容用户读写的方法和装置
CN107092443B (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