一种数据读写方法及存储设备的制造方法_3

文档序号:8380680阅读:来源:国知局
根据待写入数据的目标地址将待写入数据写入对应的 源地址。本实施例中,控制器会预先建立存储器中的数据读写源地址与数据读写目标地址 之间的一一对应关系,在将地址连续的数据写入存储器时,控制器会按照预先设置的并行 度将数据同时写入多个Bank,在读取地址连续的数据时,控制器会按照预先设置的并行度 同时从多个Bank读取数据,充分利用了 Bank的并行特性,提高了 IO性能,降低了数据读写 延迟,且能够避免双重映射的开销。
[0073] 下面介绍本发明实施例提供的存储设备,请参阅图3,本实施例的存储设备300包 括:
[0074] 获取单元301,用于获取存储器中的任意一个数据读写的源地址(A,B,C),其中A 为Bank地址,B为块地址,C为页面地址;
[0075] 位数划分单元302,用于根据预设的并行度将源地址中的Bank地址A划分为高位 Al和低位A2,预设的并行度指的是预设的将目标地址连续的数据写入存储器时同时写入 的Bank的数量和读出目标地址连续的数据时从存储器中同时读取的Bank的数量;
[0076] 处理单元303,用于将划分后的源地址按照预定的移位规则进行移位得到与该源 地址对应的目标地址;
[0077] 数据读写单元304,用于根据待读取数据的目标地址从对应的源地址读取待读取 数据或根据待写入数据的目标地址将待写入数据写入对应的源地址。
[0078] 为便于理解,下面以一个实际应用场景对本实施例中的存储设备的各单元之间的 交互方式进行描述:
[0079] 通常来说,一个存储器例如闪存(FLASH)或动态随机存取存储器(DRAM),会包含 多个Bank,一个Bank内有多个块,一个块内包含多个页面,所以存储器中的一个存储地址 通常由Bank地址,块地址,页面地址三部分组成。
[0080] 获取单元301获取存储器中的任意一个数据读写的源地址(A,B,C),其中,A就代 表Bank地址,B代表块地址,C代表页面地址。
[0081] 因现有技术中将一段地址连续的数据写入存储器时,会将数据依次写到同一个 Bank的同一块中,没有利用存储器的并行特性,写入效率不高。因此,本实施例中,可预先 设置并行度,并行度指的是将目标地址连续的数据写入存储器时同时写入的Bank的数量 和读出目标地址连续的数据时从存储器中同时读取的Bank的数量。即设置并行度的目的 是将一串目标地址连续的数据同时写入多个Bank,读取一串目标地址连续的数据时从多个 Bank同时读取,以充分利用存储器的并行特性。
[0082] 位数划分单元302对获取单元301获取的源地址进行位数划分。具体地,位数划 分单元302根据预设的并行度将源地址中的Bank地址A划分为高位Al和低位A2。
[0083] 源地址中的Bank地址A的位数为,其中m为存储器中的Bank的总数量,m的 取值为2的整数次幂,即m的值可以为2, 4, 8, 16等,Bank地址A中的一位就代表2个Bank。
[0084] 划分后低位A2的位数为。其中,η为预设的并行度,因 Bank地址A中的一位代 表2个Bank,所以并行度η的取值为2的整数次幂,即η的值可以为1,2, 4, 8, 16等,高位 Al的位数为log?'与log〗的差值。
[0085] 其中,预设的并行度η小于等于存储器中的Bank的总数量m。
[0086] 对源地址的Bank位进行划分之后的源地址为(Al, A2, B,C)。
[0087] 处理单元303将划分后的源地址按照预定的移位规则进行移位得到与该源地址 对应的目标地址。
[0088] 本实施例中,预定的移位规则为(B,A1,C,A2),即通过改变源地址的高位和低位来 改变Bank地址,以得到与该源地址对应的目标地址。
[0089] 经过上述处理后,存储器中的每个数据读写源地址与数据读写的目标地址都具有 一一对应的关系,即在存储器中,数据读写单元304可以根据每个读写数据的目标地址找 到与该目标地址对应的源地址。
[0090] 最后,数据读写单元304获取待读取数据的目标地址,寻找与该目标地址对应的 源地址,从源地址读取待读取数据;或者控制器304获取待写入数据的目标地址,寻找与该 目标地址对应的源地址,将待写入数据写入源地址。
[0091] 下面举例说明本发明实施例提供的数据读写方法:
[0092] 假如存储器为闪存,闪存中有16个Bank,每个Bank中有64个块,每个块中有64 个页,不同的Bank中的数据访问在闪存上使用的是不同的数据传输通路,数据传输是并行 的,相互之间不影响,而在同一个Bank内的数据访问则是串行的。
[0093] 在任意一个闪存地址(A,B,C)中,Bank地址A的位数为log〗'位,即4位,块地址B 的位数为Iogf位,即6位,页面地址C的位数为Iogf位,即6位。
[0094] 预设的并行度为η为4, Bank地址A的高位Al有2位,低位A2同样有2位。
[0095] 下面以为闪存中的四个源地址建立与目标地址之间的一一对应关系为例进行说 明:
[0096] 闪存的0号Bank,0号块,0号页的地址为(0000,000000,000000),这个地址即源 地址。其中,高位Al为Bank地址的前两位00,低位A2也为00,按照(B,Al, C,A2)的移 位规则移位后,得到与源地址(〇〇〇〇,〇〇〇〇〇〇,〇〇〇〇〇〇)对应的目标地址为(〇〇〇〇,〇〇〇〇〇〇, 000000);
[0097] 1号Bank中,0号块,0号页的地址为(0001,000000,000000),高位六1为00,低位 A2为01,按照(B,Al,C,A2)的移位规则移位后,得到与源地址(0001,000000,000000)对应 的目标地址为(〇〇〇〇,〇〇〇〇〇〇,000001);
[0098] 2号Bank中,0号块,0号页的地址为(0010,000000,000000),高位六1为00,低位 A2为10,按照(B,Al,C,A2)的移位规则移位后,得到与源地址(0010,000000,000000)对应 的目标地址为(〇〇〇〇,〇〇〇〇〇〇,〇〇〇〇 10)。
[0099] 3号Bank中,0号块,0号页的地址为(0011,000000,000000),高位六1为00,低位 A2为11,按照(B,Al,C,A2)的移位规则移位后,得到与源地址(0011,000000,000000)对应 的目标地址为(〇〇〇〇,〇〇〇〇〇〇,〇〇〇〇 11)。
[0100] 在对连续的目标地址(0000,000000,000000 )、( 0000,000000,000001 )、( 0000, 000000,000010)、(0000,000000,000011)的数据进行读写时,就转换为对源地址(0000, 000000,000000)、(0001,000000,000000)、(0010,000000,000000)、(0011,000000,000000) 的数据的读写,即将目标地址连续的数据读写分布到了闪存的不同Bank的块中,充分利用 了闪存Bank级别的并行特性。
[0101] 本实施例中,数据读写单元304将目标地址连续的4个数据写入存储器后,数据在 存储器的写入位置如图5所示。从图5可以看出,目标地址连续的4个数据被同时写入到 了存储器中的4个Bank,充分利用了闪存Bank级别的并行特性。对比图6提供的现有技术 的做法,其是将目标地址连续的4个数据依次写入到存储器的同一个Bank的块中,并没有 利用闪存Bank级别的并行特性,将会增加存储器访问的读写延迟。因此,本实施例提供的 数据读写方法提高了数据读写效率。
[0102] 本实施例中,获取单元首先获取存储器中的任意一个数据读写的源地址(A,B,C); 位数划分单元根据预设的并行度将源地址中的Bank地址A划分为高位Al和低位A2 ;位数 划分单元将划分后的源地址按照预定的移位规则进行移位得到与该源地址对应的目标地 址;数据读写单元根据待读取数据的目标地址从对应的源地址读取待读取数据或根据待写 入数据的目标地址将待写入数据写入对应的源地址。本实施例中,处理单元会预先建立存 储器中的数据读写源地址与数据读写目标地址之间的一一对应关系,数据读写单元在将地 址连续的数据写入存储器时,控制器会按照预先设置的并行度将数据同时写入多个Bank, 在读取地址连续的数据时,控制器会按照预先设置的并行度同时从多个Bank读取数据,充 分利用了 Bank的并行特性,提高了 IO性能,降低了数据读写延迟,且能够避免双重映射的 开销。
[0103] 下面对本发明实施例中的存储设备400进行进一步说明,请参阅图4,存储设备 400可以包括当前技术已知所有需要直接地址映射的存储设备,本发明具体实施例并不对 存储设备400具体实现做限定。存储设备400包括:
[0104] 处理器(processor) 410,通信接口(Communications Interface) 420,存储器 (memory) 430,总线 440。
[0105] 处理器410,通信接口 420,存储器430通过总线440完成相互间
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1