一种嵌入式终端数据访问方法

文档序号:6623173阅读:223来源:国知局
一种嵌入式终端数据访问方法
【专利摘要】本发明提供了一种嵌入式终端数据访问方法,包括:利用页面地址转换缓存,将缓存和NAND?Flash中地址转换信息的粒度进行统一;由全局地址页面转换表定位NAND?Flash中的地址转换页,从地址转换页获得实际的地址转换信息;利用基于转换页的数据集中将属于同一地址转换页的数据写入到相同的数据块。本发明利用空间局部性提高缓存命中率,优化缓存访问,降低了回收时转换页的更新数目并提升系统性能。
【专利说明】一种嵌入式终端数据访问方法

【技术领域】
[0001] 本发明涉及嵌入式系统,特别涉及一种嵌入式终端存储器的访问方法。

【背景技术】
[0002] NAND Flash存储器已广泛应用于各类嵌入式系统,具有读写性能高、非易失性、低 功耗、高密度和良好的抗震性等优势。在用于环境在线分析的嵌入式设备中,一般采用NAND 来存储传感器网络所感测的指标信息,因此,对于实时环境监测的嵌入式终端,存储系统的 I/O要求较高。然而,NAND Flash往往存在一些局限,如"异地更新"和有限的块擦写次数。 为了解决这些不足,诸如上述现场布置的嵌入式设备利用Flash转换层软件,处理外部I/O 请求及管理Flash。其中,地址转换负责将来自于文件系统的逻辑地址转换为NAND Flash 中的物理地址。因此,如何有效地执行地址转换并管理转换信息,成为一个关键问题。
[0003] 在Flash转换层的3种方法主要有基于页面的转换、基于页面块的转换和混合转 换,各有优缺点。基于页面的转换以页为单位执行地址转换,可直接定位数据。然而,页面 地址转换表保存了所有逻辑页到物理页的转换信息,内存开销很大。由于所有更新的地址 转换信息都需要写入NAND Flash,这些对地址转换页的大量操作影响了地址转换的性能。
[0004] 因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。


【发明内容】

[0005] 为解决上述现有技术所存在的问题,本发明提出了一种嵌入式终端数据访问方 法,包括:
[0006] 利用页面地址转换缓存,将缓存和NAND Flash中地址转换信息的粒度进行统一;
[0007] 由全局地址页面转换表定位NAND Flash中的地址转换页,从地址转换页获得实际 的地址转换信息;
[0008] 利用基于转换页的数据集中,将属于同一地址转换页的数据写入到相同的数据 块。
[0009] 优选地,所述页面地址转换缓存的数据单元为整个地址转换页,由此统一 NAND Flash和缓存中的地址转换信息的粒度,并利用数据的时间局部性和空间局部性;每个地 址转换页包含了 1MB地址空间的转换信息,对于预设时间内访问频率高于预定频率的局部 数据,只需访问页面地址转换缓存而不需要访问NAND Flash ;当某个转换页被置换出缓存 时,所有更新的地址转换信息一并更新到NAND Flash中。
[0010] 优选地,所述NAND Flash中的地址转换页由全局地址页面转换表来定位,在读取 地址转换页后,可获得实际的地址转换信息;所述全局页面转换表设置有缓存索引,从全局 地址页面转换表中直接定位缓存中的转换页,将页面转换表直接链接到基于页面的转换缓 存;
[0011] 当有逻辑地址请求时,首先根据请求的逻辑地址定位到全局页面转换表的项,通 过将逻辑地址除以每个转换页保存的地址转换项数目而访问页面转换表中的项,该项维护 了转换页在NAND Flash中的物理地址以及缓存索引;
[0012] 如果缓存索引为1,表明该转换页尚未缓存,需要访问NAND Flash获取地址转换 信息;如果缓存索引不为1,则根据缓存索引可直接访问缓存的地址转换页以获得请求的 物理地址;
[0013] 优选地,在所述页面地址转换过程中,使用最近最久未使用算法作为页面地址转 换缓存的置换策略,其中,如果某个转换页在缓存中从未被更新过,则将被优先置换出缓 存,以减少额外的转换页读写开销;利用缓存中的置换项对应的地址转换页的起始地址和 全局地址页面转换表,以定位NAND Flash中实际存储的转换页面地址,执行置换操作。
[0014] 优选地,所述基于转换页的数据集中进一步包括:
[0015] 数据写入将以其逻辑地址对应的转换页作为指导,逻辑地址对应于同一转换页的 数据将被写入相同的数据块,在块回收时,数据块对应的转换页数量最多为常量1 ;
[0016] 在全局页面转换表中的每一项保存可用数据页的物理地址即可用页号,其中,物 理地址为1代表该项尚未分配数据块,并使用空块集合记录NAND Flash中所有的空数据 块,当有数据请求时,按需分配空数据块给全局页面转换表;在块回收中,擦写后的空块回 收到空块集合,每个数据块中数据的逻辑地址限定在对应转换页维护的地址空间范围内; 在NAND Flash初始阶段,所有空数据块属于空块集合,全局页面转换表中每项可用数据页 面地址都为未分配状态,当有写数据请求时,定位全局页面转换表的项,如果项内的可用页 号不为1,则直接将数据写入到对应的数据页,随后更新可用页号为所分配数据块中的下 一个可用数据页,如果数据块已满,则将该地址置为1 ;如果项内的可用页号为1,若该转换 页尚未分配数据块,则检查空块集合中是否存在可用的空数据块,若存在则按需分配并记 录第1个数据页的物理地址作为可用页号,若不存在则调用块块回收过程获得新的空数据 块。
[0017] 本发明相比现有技术,具有以下优点:
[0018] 优化的地址转换方法在稍微增加空间开销的情况下,能够大大降低额外地址转换 页操作,并提高系统性能,降低块擦写次数。

【专利附图】

【附图说明】
[0019] 图1是根据本发明实施例的嵌入式终端数据访问方法的流程图。

【具体实施方式】
[0020] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权 利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节 以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中 的一些或者所有细节也可以根据权利要求书实现本发明。
[0021] 总的来说,页面地址转换方法存在两个主要问题。首先,地址转换缓存的转换信息 利用率低,在读取整个转换页后,只缓存其中一个地址转换项。对于连续读写,某个地址转 换页可能被重复多次请求产生大量开销。其次,在处理写请求时,不同逻辑地址的数据被连 续写入同一数据块中,在回收时将产生大量的转换页面更新。针对上述问题,本发明设计了 一种优化的地址转换方法。
[0022] 本发明的一方面提供了一种嵌入式终端数据访问方法。图1是根据本发明实施例 的嵌入式终端数据访问方法的流程图。如图1所示,实施本发明的页面地址转换方法包括 以下两方面:
[0023] 首先,针对缓存未命中造成的大量地址转换页操作,通过分析Flash中的数据读 写特性,设计页面地址转换缓存,统一缓存和NAND Flash中地址转换信息的粒度;
[0024] 其次,为降低回收产生的大量地址转换页面更新开销,利用基于转换页的数据集 中方法,将属于同一地址转换页的数据写入到相同的数据块。因此,将回收时的转换页的更 新开销降至最低的常量值,提高了系统性能。
[0025] 1.页面地址转换缓存
[0026] 本发明提出了一种页面地址转换缓存技术。缓存的数据单元为整个地址转换页, 因此统一了 NAND Flash和缓存中的地址转换信息的粒度,并充分利用数据的时间局部性和 空间局部性。每个地址转换页包含了 1MB地址空间的转换信息,如短时间内频繁访问局部 数据,只需访问页面地址转换缓存而不需要访问NAND Flash。同时,当某个转换页需要被置 换出缓存时,所有更新的地址转换信息能够一并更新到NAND Flash中,提高了转换信息的 利用率。
[0027] 全局地址页面转换表负责定位NAND Flash中的地址转换页,在读取地址转换页 后,可获得实际的地址转换信息。因此,全局地址页面转换表也是一个页面地址转换表。本 发明利用内存中的全局页面转换表和页面地址转换缓存具有相同转换信息粒度这一特征, 设计融合两者的访问过程,以提高地址转换性能。本发明扩展了全局页面转换表,增加了缓 存索引,从全局地址页面转换表中直接定位缓存中的转换页,使页面转换表直接链接到基 于页面的转换缓存。当有逻辑地址请求时,首先根据请求的逻辑地址定位到全局页面转换 表的项,由于每一项的起始逻辑地址是固定的,因此,将逻辑地址除以每个转换页保存的地 址转换项数目即能访问到页面转换表中的项,该项维护了转换页在NAND Flash中的物理地 址以及缓存索引。
[0028] 如果缓存索引为1,则表明该转换页尚未缓存,需要访问NAND Flash获取地址转 换信息;否则,根据缓存索引可直接访问缓存的地址转换页以获得请求的物理地址。可以看 至IJ,通过本发明方法提出的新的地址转换访问方式,简化了地址转换的访问过程,将缓存中 的连续或者散列查找的方式变为直接访问,节约了缓存访问时间。
[0029] 本发明使用最近最久未使用算法作为页面地址转换缓存的置换策略,其中,转换 页的更新次数也是选择置换的依据之一,如果某个转换页在缓存中从未被更新过,它将被 优先置换出缓存,因为这样的置换操作不会产生额外的转换页读写开销。利用缓存中的置 换项对应的地址转换页的起始地址和全局地址页面转换表,以定位NAND Flash中实际存储 的转换页面地址,执行置换操作。
[0030] 2.基于转换页的数据集中方法
[0031] 为了进一步减少因地址转换信息更新带来的转换页开销,本发明设计了基于转换 页的数据集中。数据写入将以其逻辑地址对应的转换页作为指导,逻辑地址对应于同一转 换页的数据将被写入相同的数据块。因此,回收时,数据块对应的转换页数量最多为常量1, 由此产生的额外地址转换信息更新的开销被降至最低。
[0032] 为了实现数据集中,本发明继续扩展全局页面转换表,在表中的每一项保存了可 用数据页的物理地址,其中,物理地址为1代表该项尚未分配数据块。同时,使用空块集合 记录NAND Flash中所有的空数据块,当有数据请求时,按需分配空数据块给全局页面转换 表。在回收中,擦写后的空块回收到空块集合。数据集中优化了数据块中的数据分布,即, 每个数据块中数据的逻辑地址限定在对应转换页维护的地址空间范围内,由于地址相近的 数据更容易被一起更新,该方法能够间接减少回收时有效页拷贝数量。
[0033] 在NAND Flash初始阶段,所有空数据块属于空块集合,全局页面转换表中每项可 用数据页面地址都为未分配状态,当有写数据请求时,根据上文提到的计算方法定位全局 页面转换表的项,如果项内的可用页号不为1,则直接将数据写入到对应的数据页,随后更 新可用页号为所分配数据块中的下一个可用数据页,如果数据块已满,则将该地址置为1 ; 否则,若该转换页尚未分配数据块,检查空块集合中是否存在可用的空数据块,若存在则按 需分配并记录第1个数据页的物理地址作为可用页号,否则调用回收获得新的空数据块。
[0034] 3.基于数据集中的回收
[0035] 由于物理块根据存储数据类型被分为数据块和地址转换块,相对应地存在两种回 收:数据块回收和转换块回收。在数据块的回收中,为了保证每个数据块在回收后只对应 一个转换页,本发明将基于转换页数据集中技术复用在回收中。在地址转换中,数据请求的 发起者为文件系统,而在回收中为回收器,两者具有相似的地址转换过程,因此方法可以复 用。在数据块的回收过程中,当回收器需要拷贝一个有效页时,首先访问全局转换页转换以 获得当前的可用数据页的物理地址(可用页号),如果可用数据页是存在的(非1),则直接 将有效页写入可用数据页;否则,如果当前分配的数据块已经用完,则使用交换块作为新分 配的数据块存储有效页。当回收完成时,擦除后的空数据块作为新的交换块。
[0036] 对地址转换块的回收,NAND Flash中维护一个当前可用的地址转换页,相当于统 一的写指针,因此,转换页将被按顺序写入到当前地址转换块中。当NAND Flash中无可分配 的地址转换块时将触发回收,当回收时,回收块中的有效转换页将拷贝到写指针指向的可 用地址转换页。同时,如果地址转换页位于缓存,则直接从缓存写入当前转换块,减少了对 有效转换页的读操作和将来缓存产生的转换页面更新操作。最后,页面地址转换缓存的置 换将相近热度的转换页写回相同的转换块,间接地降低回收时转换块中的有效页的数目, 从而降低了转换页的更新开销。
[0037] 为了平衡数据块的擦写次数延长NAND Flash的耐久性,NAND Flash中记录了每个 数据块的擦写次数,全局页面转换表中能够维护数据区域的热度信息,记录每个地址转换 页对应连续逻辑空间的访问频率,对访问频率高于预定频率的项在写指针请求分配时选择 擦写次数少的"冷"块,而对不访问频率高于预定频率的则分配擦写次数较多的"热"块。同 样,在回收中,选择擦写次数较少于无效页数的数据块作为回收块进行擦写。在NAND Flash 空闲时间里,可对冷、热数据块进行数据交换以平衡块间擦写次数。
[0038] 综上所述,本发明提出了 NAND Flash地址转换优化方法。一方面,设计页面地址 转换缓存统一内存和NAND Flash的转换信息粒度,利用其空间局部性提高缓存命中率,同 时,融合了全局页面转换表和页面地址转换缓存两种数据结构以优化缓存访问;另一方面, 将地址转换信息属于同一转换页的数据写入相同的数据块,降低了回收时转换页的更新数 目并提升系统性能。
[0039] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用 的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成 的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储 在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0040] 应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的 原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨 在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修 改例。
【权利要求】
1. 一种嵌入式终端数据访问方法,用于实现嵌入式终端NAND Flash存储器的地址转 换,其特征在于,包括: 利用页面地址转换缓存,将缓存和NAND Flash中地址转换信息的粒度进行统一; 由全局地址页面转换表定位NAND Flash中的地址转换页,从地址转换页获得实际的地 址转换信息; 利用基于转换页的数据集中,将属于同一地址转换页的数据写入到相同的数据块。
2. 根据权利要求1所述的方法,其特征在于,所述页面地址转换缓存的数据单元为 整个地址转换页,由此统一 NAND Flash和缓存中的地址转换信息的粒度,并利用数据的 时间局部性和空间局部性;每个地址转换页包含了 1MB地址空间的转换信息,对于预设时 间内访问频率高于预定频率的局部数据,只需访问页面地址转换缓存而不需要访问NAND Flash ;当某个转换页被置换出缓存时,所有更新的地址转换信息一并更新到NAND Flash 中。
3. 根据权利要求2所述的方法,其特征在于,所述NAND Flash中的地址转换页由全局 地址页面转换表来定位,在读取地址转换页后,可获得实际的地址转换信息;所述全局页面 转换表设置有缓存索引,从全局地址页面转换表中直接定位缓存中的转换页,将页面转换 表直接链接到基于页面的转换缓存; 当有逻辑地址请求时,首先根据请求的逻辑地址定位到全局页面转换表的项,通过将 逻辑地址除以每个转换页保存的地址转换项数目而访问页面转换表中的项,该项维护了转 换页在NAND Flash中的物理地址以及缓存索引; 如果缓存索引为1,表明该转换页尚未缓存,需要访问NAND Flash获取地址转换信息; 如果缓存索引不为1,则根据缓存索引可直接访问缓存的地址转换页以获得请求的物理地 址。
4. 根据权利要求3所述的方法,其特征在于,在所述页面地址转换过程中,使用最近最 久未使用算法作为页面地址转换缓存的置换策略,其中,如果某个转换页在缓存中从未被 更新过,则将被优先置换出缓存,以减少额外的转换页读写开销;利用缓存中的置换项对应 的地址转换页的起始地址和全局地址页面转换表,以定位NAND Flash中实际存储的转换页 面地址,执行置换操作。
5. 根据权利要求1所述的方法,其特征在于,所述基于转换页的数据集中进一步包括: 数据写入将以其逻辑地址对应的转换页作为指导,逻辑地址对应于同一转换页的数据 将被写入相同的数据块,在块回收时,数据块对应的转换页数量最多为常量1 ; 在全局页面转换表中的每一项保存可用数据页的物理地址即可用页号,其中,物理地 址为1代表该项尚未分配数据块,并使用空块集合记录NAND Flash中所有的空数据块,当 有数据请求时,按需分配空数据块给全局页面转换表;在块回收中,擦写后的空块回收到空 块集合,每个数据块中数据的逻辑地址限定在对应转换页维护的地址空间范围内;在NAND Flash初始阶段,所有空数据块属于空块集合,全局页面转换表中每项可用数据页面地址都 为未分配状态,当有写数据请求时,定位全局页面转换表的项,如果项内的可用页号不为1, 则直接将数据写入到对应的数据页,随后更新可用页号为所分配数据块中的下一个可用数 据页,如果数据块已满,则将该地址置为1 ;如果项内的可用页号为1,若该转换页尚未分配 数据块,则检查空块集合中是否存在可用的空数据块,若存在则按需分配并记录第1个数 据页的物理地址作为可用页号,若不存在则调用块回收过程获得新的空数据块。
【文档编号】G06F3/06GK104156178SQ201410393352
【公开日】2014年11月19日 申请日期:2014年8月11日 优先权日:2014年8月11日
【发明者】毛力 申请人:四川九成信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1