SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法技术

技术编号:15541744 阅读:96 留言:0更新日期:2017-06-05 11:00
本发明专利技术公开了一种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 master Buffer, SSD master control and SSD non aligned write data transmission control method

The invention discloses a SSD main control Buffer, SSD control and SSD non aligned write data transmission control method, the read filling process, CPU was only involved in one step, other process by the logic control rules automatically according to the data transmission of buffer application, data synchronization, the release of buffer, greatly saved CPU time consumption of resources, improve the ability of CPU to handle other affairs; in addition, in the process of the invention, the Read DMA once completed and write part2, part3 data, the part2, part3's RD flag has been set, even if there is no Part1 data ready, but Read DMA still immediately read part1+part2+part3 the operation, so greatly reduce Read DMA waiting time, effectively improve the efficiency of transmission DMA.

【技术实现步骤摘要】
SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法
本专利技术涉及SSD数据读写领域,特别是一种SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法。
技术介绍
在主流SSD主控中,前端必须按sector(512Byte)长度数据对齐的方式读写数据,而SSD为方便管理常采用unit(unit大小为4KByte或8KByte)对齐方式下刷数据和查改表项。非对齐写指读写数据的范围不是按照unit对齐的写行为,如图1所示。在图1场景下,需要通过读操作将非对齐部分(黄色区域)补齐,该补齐操作称为读填充,补齐后再下刷数据到flash并改表。结合图1、图2现有方法对SSD非对齐写可分解为以下几个步骤:1.CPU从Buffer中为WriteDMA分配写缓存,该缓存记为bufferA,bufferA大小等于Part2+part1+part3数据大小;2.CPU启动WriteDMA写数据part1到bufferA内指定位置;3.CPU启动ReadDMA写数据part2/part3到bufferA内指定位置;4.Part1或part2或part3数据传输完成时,WirteDMA或ReadDMA上报CPU写完成;中断,当part1+part2+part3都传输完毕时,进入下一步,否则等待;5.CPU启动ReadDMA读取part2+part1+par3;6.ReadDMA读完成后,上报CPU读完成中断;7.CPU释放bufferA空间。从现有方法可知,几乎每个关键步骤都需要CPU参与,占用CPU时间资源严重,且操作较为繁琐。从步骤4进入第5步的条件是part2、part1、part3数据都传输完毕,等待时间过长,传输效率低下。也正是因为存在上述缺点,导致SSD在执行非对齐写相较对齐写的带宽下降非常厉害。综上,可知现有技术存在以下缺点:(1)占用CPU时间资源较多,现有技术方法步骤很多,且基本都需要CPU介入到传输处理中,显然CPU时间资源消耗严重,必然导致一次DMA间数据传输延迟的增加,同时导致CPU处理其他任务的能力变弱,拖累整个SSD系统的性能表现。(2)DMA间无效等待时间过长,传输效率低下。结合现有技术方法的描述可知,只有在Part1、part2、part3都完成数据传输后,才可启动ReadDMA的数据传输,即ReadDMA有相当长一段时间在等待数据传输完成,这些无效的等待也是传输延迟较长的一个重要原因。本专利技术涉及的名词解释或者缩写如下:SSD:SolidStateDrive,固态硬盘,一种利用Flash介质存储用户数据的存储设备。DMA:DirectMemoryAccess;直接存储访问模块Buffer:缓存;Sector:扇区,在SSDSATA协议中常指连续512Byte长度数据单元。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术不足,提供一种SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法,解决现有非对齐写方法中占用CPU时间资源较多、DMA间传输效率低下问题,提升DMA间数据传输效率,减少无效等待,最终提升SSD数据吞吐能力。为解决上述技术问题,本专利技术所采用的技术方案是:一种SSD主控Buffer,包括多个存储单元;还包括WDFlag空间和RDFlag空间,且每个存储单元在WDFlag空间中都有专属的Lbit信息描述该存储单元的可写入状态,每个存储单元在RDFlag空间中都有专属的Lbit信息描述该存储单元的可读取状态;若某存储单元对应的WDflag空间专属的Lbit信息为状态0,则表示WriteDMA可写该存储单元;若该存储单元对应的WDflag为状态1,则表示该存储单元已由WriteDMA写满或者为ReadDMA写数据预留空间;若某存储单元对应的RDFlag空间专属的Lbit信息为状态0,则表示ReadDMA可写该存储单元,若该存储单元对应的RDFlash空间专属的Lbit信息为状态1,则表示该存储单元由WriteDMA写满或者由ReadDMA写满。L>=1,所述存储单元大小为512B。在SSD行业标准中传输的基本单元为512B,所以设计存储单元大小为512B。相应的,本专利技术提供了一种SSD主控,包括CPU、WriteDMA和ReadDMA;还包括上述Buffer;所述WriteDMA将非unit对齐部分,即part2的数据传输地址和长度上报给CPU;所述CPU根据传输地址和长度,计算part2、part3的传输起始地址和长度,计算part1+part2+part3的传输起始地址和数据长度,依次向ReadDMA下发写part2数据请求、写part3数据的请求、读part1+part2+part3数据请求;其中,part1即非unit对其部分;part3即末尾unit需要读填充部分;READDMA完成写part1、part2数据,同时完成读part1+part2+part3数据读取。相应的,本专利技术还提供了一种利用上述SSD主控对SSD非对齐写数据进行传输控制的方法,包括以下步骤:1)WriteDMA将写指针移动到下一个unit,将起始unit需要读填充部分,即part2对应的WDflag空间专属的Lbit信息置1,同时启动part1数据传输,并上报CPU传输地址和长度;2)CPU根据传输地址和长度,计算part2、part3的传输起始地址和长度,计算part1+part2+part3的传输起始地址和数据长度,依次向ReadDMA下发写part2数据请求、写part3数据的请求、读part1+part2+part3数据请求;其中,part1即非unit对其部分;part3即末尾unit需要读填充部分;3)READDMA完成写part1、part2数据,ReadDMA完成读part1+part2+part3数据读取。步骤1)中,若WriteDMA将写指针移动到下一个unit时,超过buffer边界,则读写到Buffer右边界时,下一次读写位置自动跳转到Buffer的左边界起始位置进行读写。步骤1)中,启动part1数据传输的规则为:A)若WriteDMA需要写某存储单元时,发现该存储单元对应的WDflag空间为0,则立即将数据写入该空间,写该存储单元后,立即将与该存储单元对应的WDflag空间和RDflag空间置1;B)若WriteDMA需要写某存储单元时,发现该存储单元对应的WDflag空间为1,则暂停WriteDMA的数据传输,直至该空间的WDflag空间被其他模块(例如,ReadDMA模块或CPU)清0后,WriteDMA再按规则A)继续数据传输。步骤3)中,READDMA完成写part1、part2数据适应以下规则:I)若ReadDMA需要写某存储单元,取数据时发现该存储单元对应的RDflag空间值都为0,则立即将数据写入该存储单元,写满该存储单元后,立即将与该该存储单元对应的RDflag空间置1;II)若ReadDMA需要写某存储单元,取数据时发现该存储单元对应的RDflag空间值都为1,则暂停ReadDMA的数据传输,直至该存储单元的RDflag空间被其他模块清0,ReadDMA再继续按规则I)继续数据传输。步骤6)中,Read本文档来自技高网
...
SSD主控Buffer、SSD主控及SSD非对齐写数据传输控制方法

【技术保护点】
一种SSD主控Buffer,包括多个存储单元;其特征在于,还包括WD Flag空间和RD Flag空间,且每个存储单元在WD Flag空间中都有专属的Lbit信息描述该存储单元的可写入状态,每个存储单元在RD Flag空间中都有专属的Lbit信息描述该存储单元的可读取状态;若某存储单元对应的WD flag空间专属的Lbit信息为状态0,则表示Write DMA可写该存储单元;若该存储单元对应的WD flag为状态1,则表示该存储单元已由Write DMA写满或者为Read DMA写数据预留空间;若某存储单元对应的RD Flag空间专属的Lbit信息为状态0,则表示Read DMA可写该存储单元,若该存储单元对应的RD Flash空间专属的Lbit信息为状态1,则表示该存储单元由Write DMA写满或者由Read DMA写满。

【技术特征摘要】
1.一种SSD主控Buffer,包括多个存储单元;其特征在于,还包括WDFlag空间和RDFlag空间,且每个存储单元在WDFlag空间中都有专属的Lbit信息描述该存储单元的可写入状态,每个存储单元在RDFlag空间中都有专属的Lbit信息描述该存储单元的可读取状态;若某存储单元对应的WDflag空间专属的Lbit信息为状态0,则表示WriteDMA可写该存储单元;若该存储单元对应的WDflag为状态1,则表示该存储单元已由WriteDMA写满或者为ReadDMA写数据预留空间;若某存储单元对应的RDFlag空间专属的Lbit信息为状态0,则表示ReadDMA可写该存储单元,若该存储单元对应的RDFlash空间专属的Lbit信息为状态1,则表示该存储单元由WriteDMA写满或者由ReadDMA写满。2.根据权利要求1所述的Buffer,其特征在于,L>=1。3.根据权利要求1所述的Buffer,其特征在于,所述存储单元大小为512B。4.一种SSD主控,包括CPU、WriteDMA和ReadDMA;其特征在于,还包括权利要求1~3之一所述的Buffer;所述WriteDMA将非unit对齐部分,即part2的数据传输地址和长度上报给CPU;所述CPU根据传输地址和长度,计算part2、part3的传输起始地址和长度,计算part1+part2+part3的传输起始地址和数据长度,依次向ReadDMA下发写part2数据请求、写part3数据的请求、读part1+part2+part3数据请求;其中,part1即非unit对其部分;part3即末尾unit需要读填充部分;READDMA完成写part1、part2数据,同时完成读part1+part2+part3数据读取。5.一种利用权利要求4所述的SSD主控对SSD非对齐写数据进行传输控制的方法,其特征在于,包括以下步骤:1)WriteDMA将写指针移动到下一个unit,将起始unit需要读填充部分,即part2对应的WDflag空间专属的Lbit信息置1,同时启动part1数据传输,并上报CPU传输地址和长度;2)CPU根据传输地址和长度,计算part2、part3的传输起始地址和长度,计算part1+part2+part3的传输起始地址和数据长度,依次向ReadDMA下发写part2数据请求、写part3数据的请求、读part1+part2+part3数据请求;其中,part1即非unit对其部分;part...

【专利技术属性】
技术研发人员:李雷陈旭光杨万云周士兵彭鹏马翼田达海
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1