[发明专利]用于SSD的多通道动态读写调度方法有效
申请号: | 201310096932.6 | 申请日: | 2013-03-25 |
公开(公告)号: | CN103135945A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 肖侬;陈志广;卢宇彤;周恩强;刘芳;所光;谢旻;董勇;张伟 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 ssd 通道 动态 读写 调度 方法 | ||
技术领域
本发明涉及SSD(固态盘)内部的读写调度方法,具体涉及一种用于SSD的多通道动态读写调度方法。
背景技术
基于闪存的SSD(Solid State Drive,固态盘)是一种新型的大容量存储设备。闪存的基本读写单位是页(Page)。如果一个页已经包含一份数据,当需要更新这份数据时,不能将新的数据直接写到该页上,因为已经包含数据的页只有被擦除(Erase)之后才能再次写入新的数据。擦除操作延迟很大,且擦除操作的基本单位是块(Block),一块包含2i(64或128)个页,不能因为一页数据的修改就擦除整个块。所以,对于SSD中的数据更新,通常的做法是将更新的数据写到一个新的页,如何选择新的页取决于SSD的写调度策略。目前采用的调度方法主要有以下几种:
1、考虑寿命的写调度策略。闪存擦除操作的基本单位是块,每个块能擦除的次数是有限的。如果一块的擦除次数超过限制,该块内的数据出错几率变大,可能导致数据丢失。在SSD内部,所有块的擦除次数应尽可能一致。如果一些块因为擦除次数过多而损坏,SSD的总容量会减少。考虑寿命的写调度策略就是在SSD的所有块之间均匀的写。具体做法是:主机端发出的写请求到达时,SSD将数据优先写到擦除次数最少的块上。这种策略充分考虑了寿命问题,但不能兼顾读写延迟。例如,这种策略可能将多个写请求调度到同一块闪存芯片上,导致这些写请求排队等待,从而增大写延迟。
2、通道间的轮转调度策略。为了避免写请求的排队等待,可以将写请求调度到不同的闪存芯片上,通道间的轮转调度策略就是基于这一原理设计的。SSD包含多个通道,每个通道连接多块闪存芯片。通道间的轮转调度策略将写请求依次调度到不同的通道上,写请求之间不会相互影响。在一个通道内部,还可以采用考虑寿命的写调度策略,优先将数据写入该通道内擦除次数最少的块上。这种调度策略可以避免写请求之间的相互影响,但不能避免写请求和读请求之间的影响。如果一个通道正在响应读请求,向该通道调度写请求仍然会导致排队等待。
3、空闲通道调度策略。空闲通道调度策略作进一步的改进,只向空闲的通道调度写请求,尽可能避免写请求之间、以及写请求和读请求之间的影响,但这种方法存在两方面的缺陷。首先,由于一直向空闲的通道上调度写请求,可能导致通道间写入的数据量不均衡,一些通道上的块过早的损坏,SSD容量减少。其次,不能完全消除写请求对读请求的影响。如果SSD向一个通道调度一个写请求后,主机端随后向该通道发送一个读请求,读请求不能调度到其它通道上,只能在该通道上排队等待。由于写操作延迟很大,且主机端的应用程序正在等待读请求的数据,读请求被阻塞会显著增加应用程序的等待时间。
发明内容
本发明要解决的技术问题是提供一种各通道写入均衡、SSD使用寿命长、写请求对读请求影响小、垃圾回收对读请求影响小、读延迟低的用于SSD的多通道动态读写调度方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于SSD的多通道动态读写调度方法,其实施步骤如下:
1)在SSD内预先配备一个基于DRAM的写缓冲,在所述写缓冲中初始化用于指定SSD当前通道的目标通道、用于记录目标通道累计写请求数目的写请求计数器、用于缓存写请求的地址和数据的FIFO队列、用于记录目标通道上读请求的读请求序列;
2)根据轮转调度策略从SSD的多个通道中选择一个目标通道,跳转执行下一步;
3)接受主机端发送的读写请求,跳转执行下一步;
4)判定读写请求的请求类型,如果请求类型为读请求,跳转执行步骤5);如果请求类型为写请求,跳转执行步骤7);
5)判定所述读请求是否为指向目标通道的读请求,若读请求指向目标通道则跳转执行步骤6),否则将读请求的数据从闪存芯片取出后直接返回给用户,等待在下一个读写请求到来时跳转执行步骤3);
6)将读请求记录至目标通道的读请求序列中,并将读请求的数据从闪存芯片中读出返回给用户,等待在下一个读写请求到来时跳转执行步骤3);
7)将写请求的地址和数据加入FIFO队列中,跳转执行下一步;
8)通过所述写请求计数器将写请求数目进行累加,跳转执行下一步;
9)检测写请求数目是否大于指定阈值,如果大于指定阈值则跳转执行步骤10);否则等待在下一个读写请求到来时跳转执行步骤3);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310096932.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种红外线频谱足浴桶
- 下一篇:车辆到位检测装置