一种数据读写方法及存储设备的制造方法
【技术领域】
[0001] 本发明实施例涉及计算机技术领域,尤其涉及一种数据读写方法及存储设备。
【背景技术】
[0002] 随着计算机技术的不断发展,输入输出(Input Output, 10)已成为整个计算机系 统性能提升的瓶颈,传统的硬盘受限于其机械式的物理设计结构,IO性能提升已达到极限, 新型存储介质的引入是未来的趋势。目前,作为机械式硬盘的一种补充和替代,固态硬盘已 经在计算机领域取得了较为广泛的应用。
[0003] 固态硬盘一般采用闪存(Flash)作为存储介质,由于材料本身的特性,固态硬盘与 机械式硬盘相比有着明显的差异。Flash介质以页为最小的写入单位,通常为4kb或8kb, 而现有操作系统读写数据都是按照机械硬盘的扇区进行的,通常为512Byte,而且Flash以 块为最小擦除单位,一个块通常包括32、64或128个页,在数据更新时,未擦除就无法写入。 因此,在引入固态硬盘作为存储介质时,为了能够更好的兼容现有的操作系统,闪存控制器 中通常需要一个闪存转换层(Flash translation layer, FTL),FTL中维护了一个映射表, 实现逻辑块地址(Logical Block Address, LBA)到物理块地址(Physical Block Address, PBA)的转换,这样,操作系统就可以像原来一样直接操作逻辑块地址LBA,从而实现了对闪 存介质的访问。
[0004] 我们知道一个闪存的物理块地址通常由三部分组成:Bank地址、块地址和页地 址。一个Bank内有很多个块,不同的Bank中的数据访问在设备上使用的是不同的数据传 输通路,数据传输是并行的,相互之间不影响,而在同一个Bank内的数据访问则是串行的。 系统软件的很多10操作都是对一段地址连续数据的访问,这些数据所对应连续闪存页面 通常是物理上的同一个Bank,因此,数据的访问在硬件上是串行的。现有技术中,例如在闪 存中写入一段地址连续数据,数据分布会如图6所示,即一段地址连续的数据会写入到闪 存中同一个Bank的同一块中,也就是说,这种方式没有充分利用闪存Bank的并行特性,增 加了闪存访问的读写延迟。
[0005] 另外,虽然FTL使得闪存设备能够很好的兼容现有的操作系统,但是也存在很多 问题,比如FTL地址映射成为闪存访问性能提升的瓶颈,此外,FTL的引入使得文件系统和 闪存设备之间存在"双重地址映射"开销,增加了系统对于元数据的管理和存储开销。因此, 有必要提供一种新的方法解决上述问题。
【发明内容】
[0006] 本发明实施例提供了一种数据读写方法及存储设备,能够提高10性能,降低数据 读写延迟,且能够避免双重映射的开销。
[0007] 本发明实施例第一方面提供了一种数据读写方法,所述数据读写方法应用于存储 设备中,所述存储设备包括控制器和存储器,所述方法包括:
[0008] 所述控制器获取所述存储器中的任意一个数据读写的源地址(A,B,C),其中A为 Bank地址,B为块地址,C为页面地址;
[0009] 所述控制器根据预设的并行度将所述源地址中的Bank地址A划分为高位Al和低 位A2,所述预设的并行度指的是预设的将目标地址连续的数据写入所述存储器时同时写入 的Bank的数量和读出所述目标地址连续的数据时从所述存储器中同时读取的Bank的数 量;
[0010] 所述控制器将划分后的源地址按照预定的移位规则进行移位得到与所述源地址 对应的目标地址;
[0011] 所述控制器根据待读取数据的目标地址从对应的源地址读取所述待读取数据或 根据待写入数据的目标地址将所述待写入数据写入对应的源地址。
[0012] 结合本发明实施例的第一方面,在本发明实施例第一方面的第一种实施方式中, 所述划分后的源地址为(A1,A2,B,C),所述预定的移位规则为(B,A1,C,A2)。
[0013] 结合本发明实施例的第一方面,或第一方面的第一种实施方式,在本发明实施例 第一方面的第二种实施方式中,所述源地址中的Bank地址A的位数为IogT,其中m为所述 存储器中的Bank的总数量,m的取值为2的整数次幂。
[0014] 结合本发明实施例第一方面的第二种实施方式,在本发明实施例第一方面的第三 种实施方式中,所述低位A2的位数为l〇g〗,其中η为所述预设的并行度,η的取值为2的整 数次幂,所述高位Al的位数为log『与log〗的差值。
[0015] 结合本发明实施例第一方面的第三种实施方式,在本发明实施例第一方面的第四 种实施方式中,所述预设的并行度η小于或等于所述存储器中的Bank的总数量m。
[0016] 本发明实施例第二方面提供了一种存储设备,包括:
[0017] 获取单元,用于获取存储器中的任意一个数据读写的源地址(A,B,C),其中A为 Bank地址,B为块地址,C为页面地址;
[0018] 位数划分单元,用于根据预设的并行度将所述源地址中的Bank地址A划分为高 位Al和低位A2,所述预设的并行度指的是预设的将目标地址连续的数据写入所述存储器 时同时写入的Bank的数量和读出所述目标地址连续的数据时从所述存储器中同时读取的 Bank的数量;
[0019] 处理单元,用于将划分后的源地址按照预定的移位规则进行移位得到与所述源地 址对应的目标地址;
[0020] 数据读写单元,用于根据待读取数据的目标地址从对应的源地址读取所述待读取 数据或根据待写入数据的目标地址将所述待写入数据写入对应的源地址。
[0021] 结合本发明实施例的第二方面,在本发明实施例第二方面的第一种实施方式中, 所述划分后的源地址为(A1,A2,B,C),所述预定的移位规则为(B,A1,C,A2)。
[0022] 结合本发明实施例的第二方面,或第二方面的第一种实施方式,在本发明实施例 第二方面的第二种实施方式中,所述源地址中的Bank地址A的位数为log'丨,其中m为所述 存储设备中的Bank的总数量,m的取值为2的整数次幂。
[0023] 结合本发明实施例第二方面的第二种实施方式,在本发明实施例第二方面的第三 种实施方式中,所述低位A2的位数为kg〗,其中η为所述预设的并行度,η的取值为2的整 数次幂,所述高位Al的位数为log?与log]的差值。
[0024] 结合本发明实施例第二方面的第三种实施方式,在本发明实施例第二方面的第四 种实施方式中,所述预设的并行度η小于或等于所述存储器中的Bank的总数量m。
[0025] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0026] 本发明实施例中,控制器首先获取存储器中的任意一个数据读写的源地址(A,B, C);根据预设的并行度将源地址中的Bank地址A划分为高位Al和低位A2 ;将划分后的源 地址按照预定的移位规则进行移位得到与该源地址对应的目标地址;根据待读取数据的目 标地址从对应的源地址读取待读取数据或根据待写入数据的目标地址将待写入数据写入 对应的源地址。本发明实施例中,控制器会预先建立存储器中的数据读写源地址与数据读 写目标地址之间的一一对应关系,在将地址连续的数据写入存储器时,控制器会按照预先 设置的并行度将数据同时写入多个Bank,在读取地址连续的数据时,控制器会按照预先设 置的并行度同时从多个Bank读取数据,充分利用了 Bank的并行特性,提高了 IO性能,降低 了数据读写延迟,且能够避免双重映射的开销。
【附图说明】
[0027] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0028] 图1为本发明数据读写方法一个应用场景图;
[0029] 图2为本发明数据读写方法一个实施例示意图;
[0030] 图3为本发明存储设备一个实施例示意图;
[0031] 图4为本发明存储设备另一实施例意图;
[0032] 图5为本发明地址连续的数据在存储器中的写入位置一个实施例示意图;
[0033] 图6为【背景技术】中地址连续的数据在存储器中的写入位置示意图。
【具体实施方式】
[0034] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显 然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实 施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属 于本发明保护的范围。
[0035] 本发明实施例提供了一种数据读写方法及存储设备,能够提高IO性能,降低数据 读写延迟,且能够避免双重映射的开销。
[0036] 请参阅图1,图1是本发明实施例数据读写方法一个应用场景图,本发明实施例的 数据读写方法应用于存储设备1〇〇,存储设备100通过连接设备110连接到主机120。
[0037] 其中,主机120可以包括当前技术已知的任何计算设备,如服务器、台式计算机等 等。