[发明专利]SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法有效
申请号: | 201611177857.6 | 申请日: | 2016-12-19 |
公开(公告)号: | CN106776404B | 公开(公告)日: | 2020-04-07 |
发明(设计)人: | 李雷;陈旭光;杨万云;周士兵;彭鹏;马翼;田达海 | 申请(专利权)人: | 湖南国科微电子股份有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 长沙正奇专利事务所有限责任公司 43113 | 代理人: | 卢宏;王娟 |
地址: | 410131 湖南省*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ssd 主控 buffer 对齐 数据传输 控制 方法 | ||
本发明公开了一种SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法,整个读填充过程中,CPU只参与了一个步骤,其他过程都由逻辑根据数据传输控制规则自动完成buffer的申请、数据同步、buffer的释放,极大节省了CPU时间资源的消耗,提高CPU处理其他事务的能力;另外,在本发明方法中,Read DMA一旦完成写part2、part3数据,此时part2、part3所在的RD flag已置位,即使part1数据并没有准备好,但Read DMA依然立即执行读取part1+part2+part3操作,如此极大减小Read DMA等待时间,有效提升DMA间传输效率。
技术领域的
本发明涉及SSD数据读写领域,特别是一种SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法。
背景技术
在主流SSD主控中,前端必须按sector(512字节)长度数据对齐的方式读写数据,而SSD为方便管理常采用unit(unit大小为4KByte或8KByte)对齐方式下刷数据和查改表项。非对齐写指读写数据的范围不是按照unit对齐的写行为,如图1所示。在图1场景下,需要通过读操作将非对齐部分(黄色区域)补齐,该补齐操作称为读填充,补齐后再下刷数据到flash并改表。
结合图1、图2现有方法对SSD非对齐写可分解为以下几个步骤:
1.CPU从Buffer中为Write DMA分配写缓存,该缓存记为bufferA,bufferA大小等于Part2+part1+part3数据大小;
2.CPU启动Write DMA写数据part1到bufferA内指定位置;
3.CPU启动Read DMA写数据part2/part3到bufferA内指定位置;
4.Part1或part2或part3数据传输完成时,Wirte DMA或Read DMA上报CPU写完成;
中断,当part1+part2+part3都传输完毕时,进入下一步,否则等待;
5.CPU启动Read DMA读取part2+part1+par3;
6.Read DMA读完成后,上报CPU读完成中断;
7.CPU释放bufferA空间。
从现有方法可知,几乎每个关键步骤都需要CPU参与,占用CPU时间资源严重,且操作较为繁琐。从步骤4进入第5步的条件是part2、part1、part3数据都传输完毕,等待时间过长,传输效率低下。也正是因为存在上述缺点,导致SSD在执行非对齐写相较对齐写的带宽下降非常厉害。
综上,可知现有技术存在以下缺点:
(1)占用CPU时间资源较多,现有技术方法步骤很多,且基本都需要CPU介入到传输处理中,显然CPU时间资源消耗严重,必然导致一次DMA间数据传输延迟的增加,同时导致CPU处理其他任务的能力变弱,拖累整个SSD系统的性能表现。
(2)DMA间无效等待时间过长,传输效率低下。结合现有技术方法的描述可知,只有在Part1、part2、part3都完成数据传输后,才可启动Read DMA的数据传输,即Read DMA有相当长一段时间在等待数据传输完成,这些无效的等待也是传输延迟较长的一个重要原因。
本发明涉及的名词解释或者缩写如下:
SSD:Solid State Drive,固态硬盘,一种利用Flash介质存储用户数据的存储设备。
DMA:Direct Memory Access;直接存储访问模块
Buffer:缓存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南国科微电子股份有限公司,未经湖南国科微电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611177857.6/2.html,转载请声明来源钻瓜专利网。