一种固态硬盘的数据存取方法

文档序号:6459732阅读:226来源:国知局
专利名称:一种固态硬盘的数据存取方法
技术领域
本发明涉及一种信息存储装置及其进行信息存储的控制方法。
背景技术
着计算机技术的发展,硬盘的数据传输效率和能耗已经成为计算机系
统中日益突出的性能瓶颈。目前CPU (中央处理器)与内存之间的数据吞吐 量已超过10GB/秒,而硬盘的连续数据传输率只有50MB/秒左右,相差约200 倍,这使得硬盘在很多时候成为系统性能的最大瓶颈。
传统的硬盘主要包括磁盘和SR細缓存。由于磁盘采用机械式读写方式, 因此存在上述性能瓶颈问题。为改善硬盘性能,业界新发展出一种固态硬 盘(SSD, Solid State Disk)。固态硬盘主要包括闪存(flash memory) 和SRAM缓存,闪存取代了传统硬盘中采用机械式读写方式的磁盘。可是, 闪存具有有限的读写次数,而硬盘在一段时间内的读写操作具有集中于特 定存储区域的特点,这使得固态硬盘的使用存在一定困难。

发明内容
本发明所要解决的技术问题是提供一种固态硬盘的数据存取方法,该 方法可以有效提高固态硬盘的使用寿命,保障存储数据的安全。
为解决上述技术问题,本发明固态硬盘的数据存取方法,所述固态硬 盘包括高速缓存和非易失性存储器,所述高速缓存由DRAM或SRAM构成, 所述非易失性存储器由闪存、相变存储器或磁体存储器构成;所述方法在写入数据时,先将数据存入所述高速缓存中,再将数据从 所述高速缓存存入所述非易失性存储器中;
所述方法在读取数据时,先从所述高速缓存中读取数据,当所述高速
缓存中未找到需要读取的数据时,再从所述非易失性存储器中读取数据; 所述方法将所述高速缓存划分为多个数据块,并在所述高速缓存中记
录每个数据块的写入次数、读取次数和标记;
所述方法将所述非易失性存储器划分为多个数据块,并在所述非易失
性存储器中记录每个数据块的写入次数、读取次数和标记;
当所述高速缓存的数据块中未存储数据,或者数据块中的数据已存入
所述非易失性存储器时,该数据块标记为"空闲";否则,该数据块标记为 "更改";
当所述非易失性存储器的数据块中未存储数据或者存储的数据已删 除,该数据块标记为"空闲";否则,该数据块标记为"有效"。
本发明对高速缓存中的数据存取进行区别处理,对频繁读取的数据保 留于高速缓存中,其余数据写入非易失性存储器。这种处理方法大大降低 了对非易失性存储器的读写操作,有利于提高固态硬盘的使用寿命。另外, 本发明对非易失性存储器的各数据块的读写负荷进行平衡处理,保证各数 据块的读写次数处于相对均衡状态,这也有利于提高固态硬盘的使用寿命 及数据读写效率。


下面结合附图和实施例对本发明作进一步详细的说明图1是本发明所述固态硬盘的结构示意图。
具体实施例方式
请参阅图l,本发明所述固态硬盘包括
高速缓存,由DRAM或SRAM构成,其特点是读写速度快,使用寿命长, 但是断电后不能保存数据;
非易失性存储器,由闪存、相变存储器(PRAM)或磁体存储器(MRAM) 构成,其特点是读写速度快,断电后仍能保存数据,但是有些器件具有有 限的读写寿命。
本发明所述固态硬盘还包括数据接口、控制接口、电源、计算机接口 电路等,这些与现有的硬盘保持一致,在此不再赘述。
本发明所述固态硬盘的数据存取方法在写入数据时,先将数据存入所 述高速缓存中,再将数据从所述高速缓存存入所述非易失性存储器中;
所述方法在读取数据时,先从所述高速缓存中读取数据,当所述高速 缓存中未找到需要读取的数据时,再从所述非易失性存储器中读取数据;
所述方法将所述高速缓存划分为多个数据块,并在所述高速缓存中记 录每个数据块的写入次数、读取次数和标记;
所述方法将所述非易失性存储器划分为多个数据块,并在所述非易失 性存储器中记录每个数据块的写入次数、读取次数和标记。
上述固态硬盘的数据存取方法,在具体使用时,还可以采用下述方式
当所述高速缓存的数据块未存储数据,或者数据块中的数据己存入所 述非易失性存储器,该数据块标记为"空闲";否则,该数据块标记为"更改"。当所述非易失性存储器的数据块中未存储数据或者存储的数据已删 除,该数据块标记为"空闲";否则,该数据块标记为"有效"。
将数据存入所述高速缓存时,只存入标记为"空闲"的数据块,并将 该数据块标记为"更改",更新该数据块的写入次数,并将该数据块的读取 次数清零。
将数据存入所述高速缓存时,当高速缓存有多个标记为"空闲"数据 块时,优先存入读取次数较少且标记为"空闲"的数据块。
将数据从所述高速缓存存入所述非易失性存储器时,优先将所述高速 缓存中写入次数较少且标记为"更改"的数据块中的数据存入所述非易失 性存储器,并将该数据块标记为"空闲",将写入次数清零。
在计算机系统关机或重启时,所述方法将所述高速缓存中所有标记为 "更改"的数据块中的数据都存入所述非易失性存储器,并将该数据块标 记为"空闲"。
将所述高速缓存中所有标记为"更改"的数据块按照写入次数的多少
分成多个先入先出队列;每个队列中的数据块的写入次数在一定范围内, 不同队列中的数据块的写入次数的范围均不重合。 一种典型的实现方式是 每个队列中的数据块具有相同的写入次数,不同队列中的数据块的写入次 数均不相同。
将所述非易失性存储器中所有标记为"有效"的数据块按照写入次数 的多少分成多个先入先出队列;每个队列中的数据块的写入次数在一定范 围内,不同队列中的数据块的写入次数的范围均不重合。当所述高速缓存中的数据块的写入次数增加且仍在该数据块所在队列 的写入次数的范围内,所述方法将该数据块调至该数据块所在队列的入口 ; 当所述高速缓存中的数据块的写入次数增加且超出该数据块所在队列的写 入次数的范围,所述方法将该数据块调至上一级队列的入口;所述上一级 队列的写入次数的范围大于原队列的写入次数的范围,并且所述上一级队 列的写入次数的范围包括该数据块的写入次数。
将数据从所述高速缓存存入所述非易失性存储器时,优先将所述高速 缓存中写入次数较低的队列中的数据块存入所述非易失性存储器。
将数据从所述高速缓存存入所述非易失性存储器时,只存入所述非易 失性存储器中标记为"空闲"的数据块,并将该数据块标记为"有效",更 新该数据块的写入次数。
将数据从所述高速缓存存入所述非易失性存储器时,优先存入所述非 易失性存储器中写入次数较少且标记为"空闲"的数据块;当所述非易失 性存储器中具有多个写入次数相同且标记为"空闲"的数据块时,优先存 入所述非易失性存储器中读取次数较少、写入次数相同且标记为"空闲" 的的数据块。
在所述高速缓存中找到需要读取的数据时,将需要读取的数据传送给 计算机,并将需要读取的数据所在的数据块的读取次数加1。
在所述高速缓存中未找到需要读取的数据,在所述非易失性 储器中 找到需要读取的数据时,将需要读取的数据传送给计算机,并将存储需要 读取的数据的数据块的读取次数加1。还将需要读取的数据存入所述高速缓存中标记为"空闲"的数据块,并将该数据块的读取次数和写入次数均设 为1。
当所述非易失性存储器中的数据块的写入次数或读取次数达到预订值 时,所述方法将该数据块加以屏蔽,不再使用该数据块。
当所述非易失性存储器中的数据块达到预订值、且该数据块标记为"有 效"时,将该数据块中的数据存入所述非易失性存储器中标记为"空闲" 的数据块后再加以屏蔽,不再使用该数据块。
当所述非易失性存储器中的数据块的平均写入次数或平均读取次数达 到预订值时,所述方法提示用户更换所述非易失性存储器。
通过上述固态硬盘的数据存取方法,本发明可以有效非易失性存储器 的使用寿命。由于本发明采用高速缓存存储频繁读写的数据,因此减少了
对非易失性存储器的读写操作;本发明采用的数据存取方法又对非易失性 存储器中的各数据块进行较为均衡的读写操作,因此延长了非易失性存储 器的使用寿命。另外,本发明所述固态硬盘的数据存取方法还可以自动屏 蔽接近使用寿命的数据块,或者提示用户更新非易失性存储器,因而有效 地保障了存储数据的安全。
权利要求
1.一种固态硬盘的数据存取方法,所述固态硬盘包括高速缓存和非易失性存储器,所述高速缓存由DRAM或SRAM构成,所述非易失性存储器由闪存、相变存储器或磁体存储器构成;所述方法在写入数据时,先将数据存入所述高速缓存中,再将数据从所述高速缓存存入所述非易失性存储器中;所述方法在读取数据时,先从所述高速缓存中读取数据,当所述高速缓存中未找到需要读取的数据时,再从所述非易失性存储器中读取数据;其特征是所述方法将所述高速缓存划分为多个数据块,并在所述高速缓存中记录每个数据块的写入次数、读取次数和标记;所述方法将所述非易失性存储器划分为多个数据块,并在所述非易失性存储器中记录每个数据块的写入次数、读取次数和标记;当所述高速缓存的数据块中未存储数据,或者数据块中的数据已存入所述非易失性存储器时,该数据块标记为“空闲”;否则,该数据块标记为“更改”;当所述非易失性存储器的数据块中未存储数据或者存储的数据已删除,该数据块标记为“空闲”;否则,该数据块标记为“有效”。
2. 根据权利要求l所述的固态硬盘的数据存取方法,其特征是所述方法将数据存入所述高速缓存时,只存入标记为"空闲"的数据块,并将该数据块标记为"更改",更新该数据块的写入次数,并将该数据块的读取次数清零;当高速缓存有多个标记为"空闲"数据块时,优先存入读取次数较少的数据块。
3. 根据权利要求l所述的固态硬盘的数据存取方法,其特征是所述方法将数据从所述高速缓存存入所述非易失性存储器时,优先将所述高速缓存中写入次数较少且标记为"更改"的数据块中的数据存入所述非易失性存储器,并将该数据块标记为"空闲",将写入次数清零。在计算机系统关机或重启时,所述方法将所述高速缓存中所有标记为"更改"的数据块中的数据都存入所述非易失性存储器,并将该数据块标记为"空闲"。
4. 根据权利要求l所述的固态硬盘的数据存取方法,其特征是所述方法将所述高速缓存中所有标记为"更改"的数据块按照写入次数的多少分成多个先入先出队列;每个队列中的数据块的写入次数在一定范围内,不同队列中的数据块的写入次数的范围均不重合;还将所述非易失性存储器中所有标记为"有效"的数据块按照写入次数的多少分成多个先入先出队列;每个队列中的数据块的写入次数在一定范围内,不同队列中的数据块的写入次数的范围均不重合。
5. 根据权利要求4所述的固态硬盘的数据存取方法,其特征是当所述高速缓存中的数据块的写入次数增加且仍在该数据块所在队列的写入次数的范围内,所述方法将该数据块调至该数据块所在队列的入口 ;当所述高速缓存中的数据块的写入次数增加且超出该数据块所在队列的写入次数的范围,所述方法将该数据块调至上一级队列的入口;所述上一级队列的写入次数的范围包括该数据块的写入次数。
6. 根据权利要求4所述的固态硬盘的数据存取方法,其特征是所述方法将数据从所述高速缓存存入所述非易失性存储器时,优先将所述高速缓存中写入次数较低的队列中的数据块存入所述非易失性存储器。
7. 根据权利要求l所述的固态硬盘的数据存取方法,其特征是所述方法将数据从所述高速缓存存入所述非易失性存储器时,只存入所述非易失性存储器中标记为"空闲"的数据块,并将该数据块标记为"有效",更新该数据块的写入次数。
8. 根据权利要求7所述的固态硬盘的数据存取方法,其特征是所述方法将数据从所述高速缓存存入所述非易失性存储器时,优先存入所述非易失性存储器中写入次数较少且标记为"空闲"的数据块;当所述非易失性存储器中具有多个写入次数相同且标记为"空闲"的数据块时,优先存入所述非易失性存储器中读取次数较少、写入次数相同且标记为"空闲"的的数据块。
9. 根据权利要求l所述的固态硬盘的数据存取方法,其特征是所述方法在所述高速缓存中找到需要读取的数据时,将需要读取的数据传送给计算机,并将需要读取的数据所在的数据块的读取次数加1;在所述高速缓存中未找到需要读取的数据,在所述非易失性存储器中找到需要读取的数据时,将需要读取的数据传送给计算机,并将存储需要读取的数据的数据块的读取次数加1;同时将需要读取的数据存入所述高速缓存中标记为"空闲"的数据块,并将该数据块的读取次数和写入次数均设为1。
10. 根据权利要求1所述的固态硬盘的数据存取方法,其特征是当所述非易失性存储器中的数据块的写入次数或读取次数达到预订值时,所述方法将该数据块加以屏蔽,不再使用该数据块。若将被屏蔽的数据块已标记为"有效"时,则把该数据块中的数据存入所述非易失性存储器中标记 为"空闲"的数据块后再加以屏蔽,不再使用该数据块;当所述非易失性存储器中的数据块的平均写入次数或平均读取次数达 到预订值时,所述方法提示用户更换所述非易失性存储器。
全文摘要
本发明公开了一种固态硬盘的数据存取方法,所述固态硬盘包括DRAM或SRAM构成的高速缓存和闪存、相变存储器或磁体存储器构成的非易失性存储器;在写入数据时,先将数据存入所述高速缓存中,再将数据存入所述非易失性存储器中;在读取数据时,先从所述高速缓存中读取数据,再从所述非易失性存储器中读取数据;所述方法将所述高速缓存划分为多个数据块,并在所述高速缓存中记录每个数据块的写入次数、读取次数和标记;所述方法将所述非易失性存储器划分为多个数据块,并在所述非易失性存储器中记录每个数据块的写入次数、读取次数和标记。本发明通过平衡各数据块的读写负荷,有效提高固态硬盘的使用寿命及数据读写效率,保障存储数据的安全。
文档编号G06F3/06GK101673188SQ20081004376
公开日2010年3月17日 申请日期2008年9月9日 优先权日2008年9月9日
发明者周百钧 申请人:上海华虹Nec电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1