固态硬盘的数据处理方法以及固态硬盘技术

技术编号:19902881 阅读:35 留言:0更新日期:2018-12-26 02:45
本申请实施例公开了固态硬盘的数据处理方法,用于在固态硬盘读写大块数据量时,根据预设的数据逻辑块的最大数据量同时读写请求消息中的数据量,提升了固态硬盘的读写性能。本申请实施例方法包括:固态硬盘的前端模块在前端模块预设数据逻辑块的最大数据量;前端模块接收主机发送的读请求,读请求包含第一逻辑区块地址LBA;前端模块判断读请求的数据量是否小于等于最大数据量;若是,则前端模块将读请求发送至固态硬盘的后端模块;后端模块根据第一LBA,同时读取所有第一LBA对应的双倍速率同步动态随机存储器DDR SDRAM中的第一物理页地址PPA;后端模块根据第一PPA读取闪存NAND中的第一数据;后端模块将第一数据发送至前端模块;前端模块将第一数据发送至主机。

【技术实现步骤摘要】
固态硬盘的数据处理方法以及固态硬盘
本申请涉及计算机
,特别涉及一种固态硬盘的数据处理方法以及该固态硬盘。
技术介绍
随着数据时代的到来,大数据、云服务等对固态硬盘的容量和性能提出更高要求,因此有关读写请求的固件算法遇到了前所未有的挑战。目前,企业级的固态硬盘采用的都是数据量为4KB的数据逻辑块,当固态硬盘的前端模块接收到读请求时,该前端模块需要将读请求中的数据量划分为多个4KB,每次将其中一个4KB对应的LBA发送至固态硬盘的后端模块,后端模块根据接收到的LBA,从放置在双倍速率同步动态随机存储器(doubledataratesynchronousdynamicrandomaccessmemory,DDRSDRAM)的映射表中读取与该LBA对应的物理页地址(physicalpageaddress,PPA),然后后端模块将该PPA发送到闪存NAND(NANDflashmemory),NAND根据该PPA读取数据,并将读取的数据发送至后端模块,最后后端模块将该读取的数据发送至前端模块,前端模块再将该读取的数据发送至主机。而当固态硬盘的前端模块接收到写请求时,该前端模块需要将写请求中的数据量划分为多个4KB,每次将其中一个4KB对应的LBA发送至固态硬盘的后端模块,后端模块根据接收到的LBA,为该LBA分配PPA,然后后端模块根据该PPA在DDRSDRAM中写入数据,并将该PPA保存至DDRSDRAM中。然而,当主机向前端模块发送的读请求中包含的是大块数据量(例如128KB),由于前端模块中只设置有通过4KB的数据逻辑块的固件(即软件程序)用于处理读写请求,因此,导致固态硬盘处理包含有大块数据量的读写请求时速度非常慢,增大了固态硬盘中控制处理器的运行负担,这样在控制处理器比较弱的情况下,如果需要读写大块数据量,则无法提高固态硬盘的读写性能,并且限制了固态硬盘读写的带宽。
技术实现思路
本申请实施例提供了固态硬盘的数据处理方法以及固态硬盘,能够在固态硬盘读写大块数据量时,根据预设的数据逻辑块的最大数据量同时读写请求消息中的数据量,提升了固态硬盘的读写性能。本申请实施例提供了一种固态硬盘的数据处理方法,包括:固态硬盘的前端模块在所述前端模块预设数据逻辑块的最大数据量;所述前端模块接收主机发送的读请求,所述读请求包含有第一逻辑区块地址LBA,所述第一LBA的个数为大于等于1的整数;所述前端模块判断所述读请求的数据量是否小于等于所述最大数据量;若是,则所述前端模块将所述读请求发送至所述固态硬盘的后端模块;所述后端模块根据接收到的所述第一LBA,同时读取与所有所述第一LBA对应的双倍速率同步动态随机存储器DDRSDRAM中的第一物理页地址PPA,所述第一PPA的个数为大于等于1的整数;所述后端模块根据所述第一PPA读取闪存NAND中的第一数据;所述后端模块将所述第一数据发送至所述前端模块;所述前端模块将所述第一数据发送至主机。可选地,所述前端模块判断所述读请求的数据量是否小于等于所述最大数据量包括:所述前端模块判断所述第一LBA的个数是否小于等于LBA个数阈值,所述LBA个数阈值为所述最大数据量与单位数据逻辑块的数据量的商,所述单位数据逻辑块的数据量为4K,所述LBA个数阈值为大于1的整数。可选地,在所述前端模块判断所述第一LBA的个数是否小于等于LBA个数阈值之后,所述方法还包括:若否,则所述前端模块计算所述第一LBA的个数与所述LBA个数阈值之间的第一倍数N,所述N为所述第一LBA的个数除以所述LBA个数阈值的值;所述前端模块判断所述N之外是否有余数;若否,则所述前端模块将所述读请求拆分为N个子读请求,每个所述子读请求包含有1份第一子LBA,每份所述第一子LBA的个数与所述LBA个数阈值相等;所述前端模块将所述N个子读请求分为N次发送至所述后端模块。可选地,在所述前端模块判断所述N之外是否有余数之后,所述方法还包括:若是,则所述前端模块将所述读请求拆分为N+1个子读请求,从第1个到第N个的每个所述子读请求中包含有1份第一子LBA,第N+1个所述子读请求中包含有1份第二子LBA,所述第二子LBA的个数为所述余数的1/4倍。所述前端模块将所述N+1个子读请求分为N次发送至所述后端模块。可选地,所述方法还包括:所述前端模块接收主机发送的写请求,所述写请求包含有第二LBA,所述第二LBA的个数为大于等于1的整数;所述前端模块判断所述写请求的数据量是否小于等于所述最大数据量;若是,则所述前端模块将所述写请求发送至所述固态硬盘的后端模块;所述后端模块根据接收到的所有所述第二LBA,为所述写请求分配第二PPA,所述第二PPA的个数为大于等于1的整数;所述后端模块根据所述第二PPA在所述DDRSDRAM中写入第二数据,并将所述第二PPA同时保存至所述DDRSDRAM中,所述第二数据为所述写请求中包含的数据。可选地,所述前端模块判断所述写请求的数据量是否小于等于所述最大数据量包括:所述前端模块判断所述第二LBA的个数是否小于等于所述LBA个数阈值。可选地,在所述前端模块判断所述第二LBA的个数是否小于等于所述LBA个数阈值之后,所述方法还包括:若否,则所述前端模块计算所述第二LBA的个数与所述LBA个数阈值之间的第二倍数M,所述M为所述第二LBA的个数除以所述LBA个数阈值的值;所述前端模块判断所述M之外是否有余数;若否,则所述前端模块将所述写请求拆分为M个子写请求,每个所述子写请求包含有1份第三子LBA,每份所述第三子LBA的个数与所述LBA个数阈值相等;所述前端模块将所述M个子写请求分为M次发送至所述后端模块。可选地,在所述前端模块判断所述M之外是否有余数之后,所述方法还包括:若是,则所述前端模块将所述写请求拆分为M+1个子写请求,从第1个到第M个的每个所述子写请求中包含有1份第三子LBA,第M+1个所述子写请求中包含有1份第四子LBA,所述第四子LBA的个数为所述余数的1/4倍。所述前端模块将所述N+1个子读请求分为N+1次发送至所述后端模块。本申请实施例提供了一种固态硬盘,其特征在于,包括:预设单元,用于在所述固态硬盘的前端模块预设数据逻辑块的最大数据量;第一接收单元,用于接收主机发送的读请求,所述读请求包含有第一逻辑区块地址LBA,所述第一LBA的个数为大于等于1的整数;第一判断单元,用于判断所述读请求的数据量是否小于等于所述最大数据量;第一发送单元,用于当确定所述读请求的数据量小于等于所述最大数据量时,将所述读请求发送至所述固态硬盘的后端模块;读取单元,用于根据接收到的所述第一LBA,同时读取与所有所述第一LBA对应的双倍速率同步动态随机存储器DDRSDRAM中的第一物理页地址PPA,所述第一PPA的个数为大于等于1的整数;第二发送单元,用于将所述第一PPA发送至闪存NAND;第三发送单元,用于将所述NAND根据所述第一PPA读取的第一数据发送至所述前端模块;第四发送单元,用于将所述第一数据发送至主机。可选地,所述第一判断单元具体用于判断所述第一LBA的个数是否小于等于LBA个数阈值,所述LBA个数阈值为所述最大数据量与单位数据逻辑块的数据量的商,所述单位数据逻辑块的数据量为4K,所述LBA个数阈值为本文档来自技高网
...

【技术保护点】
1.一种固态硬盘的数据处理方法,其特征在于,包括:固态硬盘的前端模块在所述前端模块预设数据逻辑块的最大数据量;所述前端模块接收主机发送的读请求,所述读请求包含有第一逻辑区块地址LBA,所述第一LBA的个数为大于等于1的整数;所述前端模块判断所述读请求的数据量是否小于等于所述最大数据量;若是,则所述前端模块将所述读请求发送至所述固态硬盘的后端模块;所述后端模块根据接收到的所述第一LBA,同时读取与所有所述第一LBA对应的双倍速率同步动态随机存储器DDR SDRAM中的第一物理页地址PPA,所述第一PPA的个数为大于等于1的整数;所述后端模块根据所述第一PPA读取闪存NAND中的第一数据;所述后端模块将所述第一数据发送至所述前端模块;所述前端模块将所述第一数据发送至主机。

【技术特征摘要】
1.一种固态硬盘的数据处理方法,其特征在于,包括:固态硬盘的前端模块在所述前端模块预设数据逻辑块的最大数据量;所述前端模块接收主机发送的读请求,所述读请求包含有第一逻辑区块地址LBA,所述第一LBA的个数为大于等于1的整数;所述前端模块判断所述读请求的数据量是否小于等于所述最大数据量;若是,则所述前端模块将所述读请求发送至所述固态硬盘的后端模块;所述后端模块根据接收到的所述第一LBA,同时读取与所有所述第一LBA对应的双倍速率同步动态随机存储器DDRSDRAM中的第一物理页地址PPA,所述第一PPA的个数为大于等于1的整数;所述后端模块根据所述第一PPA读取闪存NAND中的第一数据;所述后端模块将所述第一数据发送至所述前端模块;所述前端模块将所述第一数据发送至主机。2.根据权利要求1所述的方法,其特征在于,所述前端模块判断所述读请求的数据量是否小于等于所述最大数据量包括:所述前端模块判断所述第一LBA的个数是否小于等于LBA个数阈值,所述LBA个数阈值为所述最大数据量与单位数据逻辑块的数据量的商,所述单位数据逻辑块的数据量为4K,所述LBA个数阈值为大于1的整数。3.根据权利要求2所述的方法,其特征在于,在所述前端模块判断所述第一LBA的个数是否小于等于LBA个数阈值之后,所述方法还包括:若否,则所述前端模块计算所述第一LBA的个数与所述LBA个数阈值之间的第一倍数N,所述N为所述第一LBA的个数除以所述LBA个数阈值的值;所述前端模块判断所述N之外是否有余数;若否,则所述前端模块将所述读请求拆分为N个子读请求,每个所述子读请求包含有1份第一子LBA,每份所述第一子LBA的个数与所述LBA个数阈值相等;所述前端模块将所述N个子读请求分为N次发送至所述后端模块。4.根据权利要求3所述的方法,其特征在于,在所述前端模块判断所述N之外是否有余数之后,所述方法还包括:若是,则所述前端模块将所述读请求拆分为N+1个子读请求,从第1个到第N个的每个所述子读请求中包含有1份第一子LBA,第N+1个所述子读请求中包含有1份第二子LBA,所述第二子LBA的个数为所述余数的1/4倍;所述前端模块将所述N+1个子读请求分为N次发送至所述后端模块。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述前端模块接收主机发送的写请求,所述写请求包含有第二LBA,所述第二LBA的个数为大于等于1的整数;所述前端模块判断所述写请求的数据量是否小于等于所述最大数据量;若是,则所述前端模块将所述写请求发送至所述固态硬盘的后端模块;所述后端模块根据接收到的所有所述第二LBA,为所述写请求分配第二PP...

【专利技术属性】
技术研发人员:殷军博王杰华
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东,37

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

1