闪存设备的管理系统、方法及闪存设备的制作方法

文档序号:6466932阅读:182来源:国知局
专利名称:闪存设备的管理系统、方法及闪存设备的制作方法
技术领域
本发明涉及半导体存储技术领域,更具体地说,涉及一种闪存设备的管理系统、方
法及闪存设备。
背景技术
自闪存(Flash Memory)存储介质诞生以来,由于其非易失性、高存储密度、高访问 速度、体积小、低功耗、噪音低、可擦写及抗震性等众多优点,已逐渐成为存储设备等嵌入式 设备的主流存储介质,其被广泛应用于闪存盘、闪存卡、电子硬盘(SSD)、手机、音频媒体播 放器(MP3)、数码相机、数码摄像机、便携式媒体器(PMP)、数码相框、数字电视、GPS导航仪
等设备中。 虽然闪存有诸多优点,但同硬盘、同步动态随机存取存储器(SDAM)等存储介质相 比,在使用寿命和访问速度上却存在着一定的不足。由于闪存的写入操作必须在空白区 域进行,如果目标区域已有数据,则必须先擦除后才能写入,因此擦除是闪存的基本操作, 闪存以块为单元进行擦除,而闪存的频繁擦除次数会影响闪存的寿命。例如,SLC(Single Level Cell)闪存,其擦除次数有100000次左右。 现有的闪存设备仅有单一的存储单元,并直接对闪存介质进行访问,也有带单个
缓存的闪存设备,并以页为单位管理闪存介质,建立页面地址表以将另外的页面来替换闪
存介质中的缺陷页面。由于访问闪存设备时占用时间最长的是在写数据时的擦除操作,而
闪存的擦除操作以块为单位进行,因此以页为单位管理闪存介质并不能有效减少擦除次
数,也不能有效减少闪存设备的访问速度,从而并不能有效延长闪存设备的使用寿命。 因此需要一种新的闪存设备的管理系统、方法及闪存设备,能延长闪存设备的使
用寿命。

发明内容
本发明的目的之一在于提供一种闪存设备的管理系统、方法及闪存设备,旨在解 决现有技术闪存设备使用寿命短的问题。 为了实现发明目的,所述方法基于存储介质和缓存单元实现对闪存设备的管理, 包括以下步骤 A.建立所述存储介质和至少一个缓存单元之间的映射关系; B.根据所述映射关系将存储介质中的待访问数据缓存至所述缓存单元,并基于所 述映射关系访问缓存单元。
优选地,所述步骤A之前还包括对所述存储介质及缓存单元以块为单位进行空 间划分,以建立存储介质和缓存单元之间块的映射关系。
优选地,所述步骤B包括 Bl.根据所述映射关系,建立所述存储介质和缓存单元之间的地址映射表; B2.获取待访问数据的访问地址,根据地址映射表查找所述存储介质中的待访问
4数据是否被缓存,若是,则执行步骤B3,否则,执行步骤B4 ;
B3.根据地址映射表访问缓存单元; B4.将所述存储介质中的待访问数据进行缓存,并更新所述地址映射表,以及基于 更新后的地址映射表访问缓存单元。 进一步优选地,所述步骤B4中将所述存储介质中的待访问数据进行缓存,并更新 地址映射表的过程包括 B41.查找所述缓存单元中是否有空闲数据块,若是,则执行步骤B42,否则,执行 步骤B43 ; B42.将存储介质中的待访问数据写入缓存单元的空闲数据块,并修改地址映射表 的映射记录; B43.查找缓存单元中的替换数据块,将存储介质中的待访问数据写入所述替换数 据块中,并修改地址映射表的映射记录。 进一步优选地,所述步骤B43中将存储介质中的待访问数据写入所述替换数据块 的过程包括 B431.根据地址映射表中所述替换数据块的标记位判断是否需将替换数据块中的 数据写回存储介质,若是,则执行步骤B432,否则,执行步骤B433 ; B432.将所述替换数据块中的数据写回存储介质,并修改地址映射表中所述替换 数据块的标记位为未使用状态; B433.修改所述地址映射表中所述替换数据块的标记位为未使用状态;
B444.将存储介质中的待访问数据写入所述替换数据块。
优选地,所述访问缓存单元的过程包括 bl.判断数据访问请求是读数据还是写数据,若是读数据,则执行步骤b2,若是写 数据,则执行步骤b3; b2.根据地址映射表读取缓存单元中的数据,并返回读取结果; b3.根据地址映射表将待写数据写入缓存单元,并判断是否需要写回存储介质,若
是,则执行步骤b3,否则,执行步骤b5 ; b4.将待写数据写回存储介质,并修改地址映射表的标记位,以及返回写操作状 态; b5.返回写操作状态。 为了更好地实现发明目的,所述系统包括主机、与主机相连并进行数据交互的闪 存设备,所述闪存设备包括控制器、与控制器相连并用于存储数据的存储介质,还包括至少 一个缓存单元,所述存储介质和缓存单元之间具有映射关系,所述主机及控制器根据所述 映射关系将存储介质中的待访问数据缓存至所述缓存单元,并基于所述映射关系访问缓存 单元。 优选地,所述缓存单元位于闪存设备内并与所述控制器相连,或位于闪存设备外、 与所述主机相连或位于主机中。 优选地,所述缓存单元包括位于闪存设备内并与所述控制器相连、和位于闪存设 备外并与所述主机相连或位于主机中的至少两个缓存单元。 为了更好地实现发明目的,所述设备包括控制器、与控制器相连并用于存储数据的存储介质,还包括至少一个与所述控制器相连的缓存单元,所述存储介质与所述缓存单 元之间具有映射关系,所述控制器根据所述映射关系将存储介质中的待访问数据缓存至所 述缓存单元,以及基于所述映射关系访问所述缓存单元。 由上可知,本发明在闪存设备的管理过程中,在闪存设备的存储介质和至少一个 缓存单元之间建立了映射关系,并根据该映射关系将闪存设备的存储介质中的待访问数据 缓存至缓存单元,以及基于该映射关系访问缓存单元,从而提高了闪存设备的使用寿命;另 外,由于闪存设备的存储介质及缓存单元都以块为单元进行空间划分,能有效减少对闪存 设备的存储介质的擦除次数,从而提高闪存设备的使用寿命。此外,本发明所提供的缓存空 间替换算法和数据访问方法能有效提高对闪存设备的访问速度。


图1是本发明其中-图2是本发明其中-图3是本发明其中-图4是本发明其中-图5是本发明其中-图6是本发明其中-图7是本发明其中-图8是本发明其中-图9是本发明其中-








-个实施例中闪存设备的管理系统的结构示意图 -个实施例中闪存设备的管理系统的结构示意图 -个实施例中闪存设备的管理系统的结构示意图 -个实施例中闪存设备的管理系统的结构示意图 -个实施例中存储介质与缓存单元之间的映射关系的示意图 -个实施例中闪存设备的结构示意图; -个实施例中闪存设备的管理方法的流程图; -个实施例中闪存设备的管理方法的流程图; -个实施例中地址映射表的示意图10是本发明另一个实施例中地址映射表的示意图 图ll是本发明其中-
实施例中将存储介质中的待访问数据进行缓存并更新地
址映射表的流程图; 图12是本发明图11所示实施例中地址映射表的示意图; 图13是本发明另一个实施例中将存储介质中的待访问数据进行缓存并更新地址 映射表的流程图; 图14是本发明图13所示实施例中地址映射表的示意图; 图15是本发明其中一个实施例中访问缓存单元的方法流程图。 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本发明进行进一步详细说明。
具体实施例方式
在本发明中,通过建立闪存设备的存储介质和至少一个缓存单元之间的映射关 系,并根据该映射关系将存储介质中的待访问数据缓存至缓存单元,以及基于该映射关系 对缓存单元进行访问。这样,提高了闪存设备的使用寿命。
图1示出了本发明的一个实施例中闪存设备的管理系统结构,该系统包括主机 100、闪存设备的存储介质200、控制器300和至少一个缓存单元400,其中
主机100上可运行操作系统,其典型可以是个人计算机。 存储介质200,与控制器300相连,是闪存设备与主机100进行数据交换的主要存储单元,其典型可以是闪存介质。 控制器300,与主机100相连并进行数据交互,用于接收主机100发送的指令,根据 存储介质200与缓存单元400之间建立的映射关系将存储介质200中的待访问数据缓存至 缓存单元400,并基于该映射关系控制访问缓存单元400。 各缓存单元400,与控制器300相连,是闪存设备与主机100进行数据交换的缓冲 存储单元,缓存单元400的数据传输速度大于存储介质200的传输速度,其典型可以是高速 高寿命存储介质。 在一个实施例中,各缓存单元400可位于闪存设备的内部并与控制器300相连,也 可位于闪存设备外并与主机100相连或位于主机100中(图中未示出)。在另一个实施例 中,缓存单元400包括位于闪存设备中与控制器300相连、和位于闪存设备外并与主机相连 或位于主机中的至少两个缓存单元400(图中未示出)。 图2示出了本发明的一个实施例中闪存设备的管理系统结构,需说明的是,该系 统仅是本发明的一个简明系统,包括主机100、存储介质200、控制器300和缓存单元400。 其中 主机IOO,用于发送指令给控制器300,基于存储介质200和缓存单元400之间建 立的映射关系访问缓存单元400。 控制器300,与主机100相连并进行数据交互,用于接收主机100发送的指令,根据 存储介质200与缓存单元400之间建立的映射关系将存储介质200中的待访问数据缓存至 缓存单元400,并基于该映射关系控制访问缓存单元400。 存储介质200和缓存单元400分别与控制器300相连,存储介质200是闪存设备 的主要存储单元,其典型可以是闪存介质。缓存单元400是闪存设备的缓冲存储单元,其典 型可以是高速高寿命存储介质。存储介质200的数据块与缓存单元400的数据块之间具有 映射关系。 该实施例中,缓存单元400位于闪存设备的内部。在另一实施例中,缓存单元400 还可以位于闪存设备的外部,与主机100相连或位于主机100中(如图3所示)。在另一实 施例中,如图4所示,缓存单元400具有至少两个,其中至少一个与控制器300连接,另外至 少一个与主机100连接或位于主机100中。 在一个实施例中,存储介质200和缓存单元400的存储空间是块为单位进行空间 划分。图5示出了本发明的一个实施例中存储介质200和缓存单元400之间块的映射关系。 从图中可以看出,存储介质200按照如下公式以块为单位进行空间划分x = Wr^i,其中, x是存储介质200的总块数,r是存储介质200的区数,n是每个区中的组数,i是每组中的 块数。缓存单元400按照如下公式以块为单位进行空间划分m = Wi,其中,m是缓存单元 400的总块数,n是缓存单元400的组数,i是每组中的块数。 根据空间划分所采用的配置参数(r,n, i值等),在存储介质200中的数据块与缓 存单元400中的数据块之间建立映射关系。如图5所示,对于存储介质200的第0 r-l 区,其各分组固定同缓存单元400的对应编号的分组建立映射关系。例如,存储介质200中 各区的第0组固定同缓存单元400的第0组具有映射关系,可进行数据交换,存储介质200 中各区的第1组固定同缓存单元400的第1组具有映射关系,可进行数据交换,依此类推。
存储介质200各组内的任一可用数据块都可以映射到缓存单元400对应映射组内的任一数据块。例如,存储介质200的第0区第0组的第0块可以映射到缓存单元400的 第0组的任一数据块,而闪存单元200的第1区第0组的第1块同样可以映射到缓存单元 400的第0组的任一数据块。在一个实施例中,缓存单元400中的数据块仅与存储介质200 中的一个数据块建立映射关系。 应当说明的是,该系统仅仅是本发明的一个简明系统,本发明的系统还可以在该 基础上进行扩展。例如,控制器300还可以连接其它功能单元,如音频输入、输出及处理单 元,人机界面交互单元,时钟单元等,用于实现该系统除了进行数据交换存储的其它功能。
图6示出了本发明的一个实施例中闪存设备的结构,该闪存设备包括存储介质 20、控制器30和缓存单元40。其中 控制器30基于存储介质20和缓存单元40之间建立的映射关系控制和访问缓存 单元40。 存储介质20和缓存单元40分别与控制器30相连,存储介质20是闪存设备的主 要存储单元,其典型可以是但不局限于DRAM、 SDRAM、 DDR RAM、 DDR2 RAM、 DDR3 RAM、 SRAM、 MRAM、 FRAM、 PCM、 SLC NAND FLASH等。缓存单元40是闪存设备的缓冲存储单元,其典型可 以是但不局限于謹M、 SD廳、DDR廳、DDM廳、DDM廳、S廳、M廳、F廳、PCM、 SIX NAND FLASH等。在一个实施例中,缓存单元40的数据传输速度大于存储介质20的传输速 度,其寿命也大于存储介质20的使用寿命。 在一个实施例中,存储介质20和缓存单元40的存储空间是以块为单位进行了空 间划分。如图5所示,存储介质20按照如下公式以块为单位进行空间划分x = Wr^i,其 中,x是存储介质20的总块数,r是存储介质20的区数,n是每个区中的组数,i是每组中 的块数。缓存单元40按照如下公式以块为单位进行空间划分m二r^i,其中,m是缓存单 元40的总块数,n是缓存单元40的组数,i是每组中的块数。 根据空间划分所采用的配置参数(r, n, i等),在存储介质20中的数据块与缓存 单元40中的数据块之间建立映射关系。如图5所示,对于存储介质20的第O r-l区,其 各分组固定同缓存单元40的对应编号的分组建立映射关系。例如,存储介质20中各区的 第0组固定同缓存单元40的第0组具有映射关系,可进行数据交换,存储介质20中各区的 第1组固定同缓存单元40的第1组具有映射关系,可进行数据交换,依此类推。
存储介质20各组内的任一可用数据块都可以映射到缓存单元40对应映射组内的 任一数据块。例如,存储介质20的第0区第0组的第0块可以映射到缓存单元40的第0 组的任一数据块,而闪存单元20的第1区第0组的第1块同样可以映射到缓存单元40的 第0组的任一数据块。在一个实施例中,缓存单元40中的数据块仅与存储介质20中的一 个数据块建立映射关系。 应当说明的是,该闪存设备仅仅是发明的一个最简闪存设备,本发明还可在该基 础上进行扩展。例如,闪存设备具有多个与控制器30相连的缓存单元40。另外,控制器30 还可以连接其它功能单元,如音频输入、输出及处理单元,人机界面交互单元,时钟单元等, 用于实现闪存设备除了进行数据交换存储的其它功能。该闪存设备还可以自带电源及电源 管理单元,用于为闪存设备进行供电。 图7示出了本发明的一个实施例中闪存设备的管理方法流程,该方法基于图1所 示的系统结构,具体过程如下
在步骤S701中,建立存储介质200和至少一个缓存单元400之间的映射关系。
在步骤S702中,根据所述映射关系将存储介质200中的待访问数据缓存至缓存单 元400,并基于所述映射关系访问缓存单元400。 下面以本发明的一个简明系统来对本发明的闪存设备的管理方法进行详细阐述。
图8示出了本发明的一个实施例中闪存设备的管理方法流程,具体包括以下步 骤 在步骤S801中,对闪存设备的存储介质200及缓存单元400以块为单位进行空间 划分。在一个实施例中,步骤S1101的具体过程为对存储介质200和缓存单元400以块 为单位进行空间划分,如图5所示,存储介质200按照如下公式以块为单位进行空间划分 x = Wr^i,其中,x是存储介质200的总块数,r是存储介质200的区数,n是每个区中的组 数,i是每组中的块数。缓存单元400按照如下公式以块为单位进行空间划分m = Wi,其 中,m是缓存单元400的总块数,n是缓存单元400的组数,i是每组中的块数。
对闪存设备的存储介质200及缓存单元400以块为单位进行了空间划分后,就可 建立存储介质200和缓存单元400之间块的映射关系。 应该说明的是,利用上述公式以块为单位对存储介质200及缓存单元400进行空 间划分仅仅是为了说明本发明中的闪存设备的管理方法流程,并不用于限制本发明。特别 地,当i = l,n = l,r = 1时(即存储介质200和缓存单元400中仅有一个数据块时),则 无需对存储介质200和缓存单元400以块为单位进行空间划分。 在步骤S802中,建立存储介质200和至少一个缓存单元400之间的映射关系,并 根据所述映射关系建立存储介质200和缓存单元400之间的地址映射表。在一个实施例中, 步骤S802的具体过程为 根据空间划分所采用的配置参数(r,n, i值等),在存储介质200中的数据块与缓 存单元400中的数据块之间建立映射关系。如图5所示,对于存储介质200的第0 r-l 区,其各分组固定同缓存单元400的对应编号的分组建立映射关系。例如,存储介质200中 各区的第0组固定同缓存单元400的第0组具有映射关系,可进行数据交换,存储介质200 中各区的第1组固定同缓存单元400的第1组具有映射关系,可进行数据交换,依此类推。
存储介质200各组内的任一可用数据块都可以映射到缓存单元400对应映射组内 的任一数据块。例如,存储介质200的第0区第0组的第0块可以映射到缓存单元400的 第0组的任一数据块,而闪存单元200的第1区第0组的第1块同样可以映射到缓存单元 400的第0组的任一数据块。在一个实施例中,缓存单元400中的数据块仅与存储介质200 中的一个数据块建立映射关系。 根据存储介质200和缓存单元400之间的映射关系,建立地址映射表。图9示出 了本发明的一个实施例中的地址映射表,该表记录的内容包括标记位、区地址、组内块地址 和缓存地址。每个缓存地址对应一个缓存数据块,根据该地址映射表就可快速查找到缓存
数据块。在另一实施例中,如图io所示,也可将缓存数据块的内容直接写入地址映射表内,
而省略缓存地址字段。其中 (1)标记位长度为1。当标记位为"O"时,表示对应的缓存数据块没有被使用;当 标记位为"l"时,表示对应的缓存数据自读出后没有被修改,即缓存单元400中的缓存数据 块与映射到存储介质200中的数据块的内容相同;当标记位为"2"时,表示缓存数据自读出后被修改过,即缓存单元400中的缓存数据块与存储介质200中的数据块内容不同。
(2)区地址长度为[1ogJr)],其中,r是存储介质200以块为单位进行空间划分 后的区数量,[幻函数为高斯函数,其运算结果为不小于数字X的最小整数。区地址用于表 示与缓存地址相对应的存储介质200以块为单位进行划分的区号。 (3)组内块地址长度为[1o&(i)],其中i是存储介质200以块为单位进行空间 划分后每组的块数,[幻是高斯函数,其运算结果为不小于数字X的最小整数。组内块地址 用于表示与缓存地址相对应的存储介质200以块为单位进行划分的组内块编号。
(4)缓存地址用于表示需访问的数据在缓存单元400中存在时,所存放的数据在 缓存单元400中的地址。 应该说明的是,上述实施例中所建立起来的地址映射表仅仅是为了说明本发明中 的闪存设备的管理方法流程,并不用于限制本发明。本发明根据存储介质200和缓存单元 400之间的映射关系所建立起来的地址映射表除了具有上述形式和内容外,还可以采用其 它表格形式记录。特别地,当存储介质200及缓存单元400中仅有一个数据块时(即i = 1, n = 1, r = 1时),地址映射表可省略区地址、组内块地址。 在步骤S803中,获取待访问数据的访问地址,根据地址映射表查找存储介质200
中的待访问数据是否被缓存,若是,则进入步骤S804,否则,进入步骤S805。 在一个实施例中,步骤S803的具体过程为(1)根据存储介质200的数据访问地
址,以及存储介质200的空间划分配置参数(r, n, i值),获取存储介质200的待访问数据
的区号、区内组号、组内块号和块内地址;(2)根据地址映射表查找数据访问地址的内容是
否被缓存,若查找到相关记录,则表示待访问数据被缓存,若查找不到,则表示待访问数据
未被缓存。 在一个实施例中,查找地址映射表的过程可以由控制器300上的软件来实现,也 可以由位于主机IOO中的软件来实现,另外还可以用专用硬件电路的方式来实现,以提高 地址选择算法运行速度。由于采用了以块为单位的空间划分方式,该空间划分配置参数(r, n, i值)比固定参数的管理更为灵活,可根据存储介质200和缓存单元400的特点动态加 以修改,从而提高了系统的整体性能。另外,采用区、组、块的空间管理方法,减少了遍历地 址映射表的时间,并且地址映射表的存储空间小,使缓存单元400的利用率得到提升。而采 用硬件电路的实现方式也相对简单,节省了成本。 在步骤S804中,根据地址映射表直接访问缓存单元400。关于访问缓存单元400 的具体方法流程将在下述内容进行详细阐述。 在步骤S805中,将待访问数据进行缓存并更新地址映射表,以及基于更新后的地 址映射表访问缓存单元400。关于将待访问数据进行缓存并更新地址映射表的具体方法流 程将在下述内容进行详细阐述。 图11示出了本发明的一个实施例中将待访问数据进行缓存并更新地址映射表的 方法流程。具体过程如下 在步骤SllOl中,查找缓存单元400中是否有空闲数据块。若有空闲数据块,则进 入步骤S1102,否则进入步骤S1103。在一个实施例中,可根据地址映射表的标记位查找缓 存单元400中是否有空闲数据块,例如,查找到标记位为"O"时,表示对应的缓存数据块没 有被使用,是空闲数据块。
10
在步骤SI 102中,将存储介质200中的待访问数据写入缓存单元400的空闲数据 块。 在步骤S1103中,查找缓存单元400中的最近最少使用的数据块。图12示出了该 实施例中的地址映射表,该地址映射表增加了一个字段来记录缓存数据块的最近未访问次 数。最近未访问次数的值最大的则是最近最少使用的数据块。 在步骤S1104中,根据地址映射表判断是否需将最近最少使用的数据块中的数据 写回存储介质200,若是,则进入步骤S1106,否则,进入步骤S1105。在一个实施例中,可根 据地址映射表的标记位来确定最近最少使用的数据块是否需要写回存储介质200。例如当 查询到最近最少使用的数据块的标记位为"1"时,则表示最近最少使用的数据块的内容在 存储介质200中也存储,则无需写回存储介质200 ;当查询到相应标记位为"2"时,则表示 该最近最少使用的数据块的内容在存储介质200中未存储,此时需将该最近最少使用的数 据块中的数据写回存储介质200。 在步骤Sl 105中,将最近最少使用的数据块中的内容写回存储介质200。当查询到 最近最少使用的数据块在存储介质200中没有存储,则将最近最少使用的数据块的内容写 回存储介质200,使得其与存储介质200中的一致。 在一个实施例中,缓存单元400在闪存设备内(如图2所示),则控制器300将最 近最少使用的数据块的内容写回存储介质200。在另一个实施例中,缓存单元400位于闪存 设备外(如图3所示),则主机100上运行的操作系统发送写数据请求到控制器300,由控 制器300将待写数据写回存储介质200中。 在步骤S1106中,修改地址映射表中最近最少使用的数据块的标记位为未使用状 态。由于此时最近最少使用的数据块在存储介质200已有存储,因此可将修改其对应的标 记位为"O",表示该最近最少使用的数据块为未使用状态,则此时可以对该最近最少使用的 数据块进行读写。 在步骤S1107中,将存储介质200的待访问数据写入缓存单元400的最近最少使 用的数据块,使得待访问数据在缓存单元400中有缓存。 在步骤S1108中,修改地址映射表的映射记录。在一个实施例中,由于此时存储介 质200的待访问数据已有缓存,并且缓存在空闲数据块或最近最少使用的数据块中,因此 要进行地址换算,以修改数据的缓存地址,并对其它未访问的缓存数据块的最近未访问次 数加1。 图13示出了本发明的另一个实施例中将待访问数据进行缓存并更新地址映射表 的方法流程,具体过程如下 在步骤S1301中,查找缓存单元400中是否有空闲数据块。若有空闲数据块,则进 入步骤S1302,否则进入步骤S1303。在一个实施例中,可根据地址映射表的标记位查找缓 存单元400中是否有空闲数据块,例如,查找到标记位为"O"时,表示对应的缓存数据块没 有被使用,是空闲数据块。 在步骤S1302中,将存储介质200中的待访问数据写入缓存单元400的空闲数据 块。 在步骤S1303中,查找缓存单元400中的最早使用的数据块。图14示出了该实施 例中的地址映射表,该地址映射表增加了一个字段来记录缓存数据块的初始访问序号。初
11始访问序号最小的则为最早使用的数据块。 在步骤S1304中,根据地址映射表判断是否需将最早使用的数据块中的数据写回 存储介质200,若是,则进入步骤S1306,否则,进入步骤S1305。 在一个实施例中,可根据地址映射表的标记位来确定是否需将最早使用的数据块 中的数据写回存储介质200。例如,当查询到最早使用的数据块的标记位为"l"时,则表示 最早使用的数据块的内容在存储介质200中也存储,则无需写回存储介质200 ;当查询到相 应标记位为"2"时,表示该最早使用的数据块的内容在存储介质200中未存储,此时需将该 最早使用的数据块中的数据写回存储介质200。 在步骤S1305中,将最早使用的数据块中的内容写回存储介质200。当查询到最 早使用的数据块在存储介质200中没有存储,则将最早使用的数据块的内容写回存储介质 200,使得其与存储介质200中的一致。 在一个实施例中,缓存单元400在闪存设备内(如图2所示),则控制器300将最 近最少使用的数据块的内容写回存储介质200。在另一个实施例中,缓存单元400位于闪存 设备外(如图3所示),则主机100上运行的操作系统发送写数据请求到控制器300,由控 制器300将待写数据写回存储介质200中。在步骤S1306中,修改地址映射表中最早使用的数据块的标记位为未使用状态。
由于此时最早使用的数据块在存储介质200已有存储,因此将修改其对应的标记位为"0",
表示该最早使用的数据块为未使用状态,可对该最早使用的数据块进行读写。 在步骤S1307中,将存储介质200中的待访问数据写入缓存单元400的最早使用
的数据块。使得存储介质200中的待访问数据在缓存单元400中有缓存。在步骤S1308中,修改地址映射表的映射记录。由于此时存储介质200中的待访
问数据有缓存,并缓存在空闲数据块或最早使用的数据块中,因此要进行地址换算,以修改
数据的缓存地址。 应当说明的是,上述查找最近最少使用的数据块及最早使用的数据块仅仅是为了 说明根据缓存单元替换算法将存储介质200中的待访问数据进行缓存并更新地址映射表 的方法流程,并不用于限制本发明。除了查找最近最少使用的数据块及最早使用的数据块 作为替换数据块外,还可以在缓存单元400中随机选择一个数据块作为替换数据块,而在 未查询到空闲数据块时,将存储介质200中的待访问数据写入该随机选择的缓存数据块 中,使得存储介质200中的待访问数据有缓存。 随机选择缓存数据块作为替换数据块不需要在地址映射表中增加字段,其方法流 程与图11和图13所示方法流程类似,在此不再赘述。 图15示出了本发明的一个实施例中访问缓存单元400的方法流程,具体过程如 下 在步骤S1501中,获取数据访问请求。在一个实施例中,缓存单元400位于闪存设 备中(如图2所示),数据访问请求可以是从主机100通过闪存设备内的主机访问接口转发 到控制器300的数据访问请求,也可以是其它功能模块的功能需要而由控制器300发出的 数据访问请求。在另一个实施例中,缓存单元400位于闪存设备外(如图3所示),则数据 访问请求可以是主机100发出的访问请求。 在步骤S1502中,判断访问请求是读数据还是写数据,若是读数据,则进入步骤S1503,若是写数据,则进入步骤S1605。在一个实施例中,缓存单元400位于闪存设备中(如 图2所示),则由控制器300实现判断。在另一个实施例中,缓存单元400位于闪存设备外 (如图3所示),则由主机100上运行的操作系统来实现判断过程。 在步骤S1503中,根据地址映射表读取缓存单元400中的数据。在一个实施例中, 在地址映射表中查找到存储介质200中的待访问数据有缓存,则根据缓存地址直接从缓存 单元400读取数据。在另一个实施例中,在地址映射表中未查找到存储介质200中的待访 问数据有缓存,则将所述待访问数据进行缓存并更新地址映射表,以及根据更新后的地址 映射表查找待访问数据的缓存地址,并从缓存单元400中读取该数据(如图11或图13所 示)。 在缓存单元400位于闪存设备内时(如图2所示),读数据操作通过控制器300实 现。在缓存单元400位于闪存设备外时(如图3所示),则读数据操作通过主机100上运行 的操作系统来实现。 在步骤S1504,返回读取结果。读取结果包括读取到的数据及读操作状态等信息。
在步骤S1505中,根据地址映射表将待写数据写入缓存单元400。在一个实施例 中,在地址映射表中查找到存储介质200中的待访问数据有缓存,则可将数据直接写入缓 存单元400的缓存地址中。在另一个实施例中,在地址映射表中查找到存储介质200中的 待访问数据没有缓存,则将所述待访问数据进行缓存并更新地址映射表,以及根据更新后 的地址映射表查找到待访问数据对应的缓存地址,并将数据写入该缓存地址中(如图11或 图13所示)。 在缓存单元400位于闪存设备内时(如图2所示),写数据操作通过控制器300实 现。缓存单元400位于闪存设备外时(如图3所示),则写数据操作通过主机100上运行的 操作系统来实现。 在步骤S1506中,判断是否需要写回存储介质200。是否需要写回存储介质200 可根据需要事先进行配置。当需要写回存储介质200时,则进入步骤S1507,否则进入步骤 S1508。该步骤可通过控制器300(在缓存单元400位于闪存设备内时)或主机100上运行 的操作系统(缓存单元400位于闪存设备外时)来实现。 在一个实施例中,当配置为此时不需要写回存储介质200时,可在系统关机,控制 器300与主机100断开连接时,由控制器300将缓存单元400中所有与存储介质200不一 致的缓存数据写回存储介质200,此时可由闪存设备自带的电源及电源管理模块进行供电。 也可在系统在运行,控制器300与主机100连接时,由主机100上运行的操作系统的控制命 令来实现缓存数据的写回。另外,还可以由控制器300判断是否与主机100断开连接而自 主完成所有缓存数据的写回。 在步骤S1507中,将待写数据写回存储介质200,并修改地址映射表的标记位。在 一个实施例中,缓存单元400位于闪存设备中(如图2所示),控制器300将位于缓存地址 的数据内容写回存储介质200,并修改该缓存地址对应的标记位为"1",表示该缓存数据块 与映射到存储介质200中的数据块的内容相同。 在另一个实施例中,缓存单元400位于闪存设备外(如图3所示),主机100上运 行的操作系统发送写数据请求到控制器300,由控制器300将待写数据写回存储介质200 中,主机100上运行的操作系统同时修改地址映射表的标记位为"l",表示该缓存数据块与在步骤S1508中,返回写操作状态。 应当说明的是,本发明所提供的闪存设备的管理方法,其典型应用但不限于仅有 一个存储介质200和一个缓存单元400的系统,其还可以应用在带多个缓存单元400的系 统中。 基于上述的闪存设备的管理方法,针对不同的闪存设备的管理系统,其方法还可 以做一些灵活变动。例如,在具有多个缓存单元400的系统中(如图1所示),可将所有的 缓存单元400作为闪存设备的缓冲存储单元,对其存储介质200中的数据进行缓存,也可以 采用串联级联的方式,将其中至少一个缓存单元400作为闪存设备的缓冲存储单元,将其 它至少一个缓存单元400作为该缓存单元400的缓冲存储单元,其进行数据访问时与上述 方法流程原理相同,在此不再赘述。 在另一个实施例中,还可以针对不同的缓存单元400 (例如,在速度和寿命上不同 的缓存单元400),将其可设置为独立的读写缓存单元,即针对读操作使用读缓存单元对存 储介质200中的数据进行缓存,针对写操作使用写缓存单元对存储介质200中的数据进行 缓存。将读写缓存单元进行分离可减少频繁读对写操作速度的影响,也可减少频繁写对读 操作速度的影响,从而能够提高系统的性能。其进行数据访问时与上述方法流程原理相同, 在此也不再赘述。 另外,还可以将其中至少一个缓存单元400作为主机100运行的操作系统或某一
个应用程序的单独的缓冲存储单元,将操作系统或应用程序中的数据备份到缓存单元400
中,数据的读写操作均在缓存单元400中进行,从而提高系统的性能及访问速度。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种闪存设备的管理方法,所述方法基于存储介质和缓存单元实现对闪存设备的管理,其特征在于,所述方法包括以下步骤A.建立所述存储介质和至少一个缓存单元之间的映射关系;B.根据所述映射关系将存储介质中的待访问数据缓存至所述缓存单元,并基于所述映射关系访问缓存单元。
2. 根据权利要求1所述的闪存设备的管理方法,其特征在于,所述步骤A之前还包括 对所述存储介质及缓存单元以块为单位进行空间划分,以建立存储介质和缓存单元之间块 的映射关系。
3. 根据权利要求1所述的闪存设备的管理方法,其特征在于,所述步骤B包括 Bl.根据所述映射关系,建立所述存储介质和缓存单元之间的地址映射表;B2.获取待访问数据的访问地址,根据地址映射表查找所述存储介质中的待访问数据 是否被缓存,若是,则执行步骤B3,否则,执行步骤B4 ; B3.根据地址映射表访问缓存单元;B4.将所述存储介质中的待访问数据进行缓存,并更新所述地址映射表,以及基于更新 后的地址映射表访问缓存单元。
4. 根据权利要求3所述的闪存设备的管理方法,其特征在于,所述步骤B4中将所述存 储介质中的待访问数据进行缓存,并更新地址映射表的过程包括B41.查找所述缓存单元中是否有空闲数据块,若是,则执行步骤B42,否则,执行步骤B43 ;B42.将存储介质中的待访问数据写入缓存单元的空闲数据块,并修改地址映射表的映 射记录;B43.查找缓存单元中的替换数据块,将存储介质中的待访问数据写入所述替换数据块 中,并修改地址映射表的映射记录。
5. 根据权利要求4所述的闪存设备的管理方法,其特征在于,所述步骤B43中将存储介 质中的待访问数据写入所述替换数据块的过程包括B431.根据地址映射表中所述替换数据块的标记位判断是否需将替换数据块中的数据 写回存储介质,若是,则执行步骤B432,否则,执行步骤B433 ;B432.将所述替换数据块中的数据写回存储介质,并修改地址映射表中所述替换数据 块的标记位为未使用状态;B433.修改所述地址映射表中所述替换数据块的标记位为未使用状态;B444.将存储介质中的待访问数据写入所述替换数据块。
6. 根据权利要求3所述的闪存设备的管理方法,其特征在于,所述访问缓存单元的过 程包括bl.判断数据访问请求是读数据还是写数据,若是读数据,则执行步骤b2,若是写数 据,则执行步骤b3;b2.根据地址映射表读取缓存单元中的数据,并返回读取结果;b3.根据地址映射表将待写数据写入缓存单元,并判断是否需要写回存储介质,若是, 则执行步骤b3,否则,执行步骤b5 ;b4.将待写数据写回存储介质,并修改地址映射表的标记位,以及返回写操作状态;b5.返回写操作状态。
7. —种闪存设备的管理系统,包括主机、与主机相连并进行数据交互的闪存设备,所述 闪存设备包括控制器、与控制器相连并用于存储数据的存储介质,其特征在于,所述系统还 包括至少一个缓存单元,所述存储介质和缓存单元之间具有映射关系,所述主机及控制器 根据所述映射关系将存储介质中的待访问数据缓存至所述缓存单元,并基于所述映射关系 访问缓存单元。
8. 根据权利要求7所述的闪存设备的管理系统,其特征在于,所述缓存单元位于闪存 设备内并与所述控制器相连,或位于闪存设备外、与所述主机相连或位于主机中。
9. 根据权利要求7所述的闪存设备的管理系统,其特征在于,所述缓存单元包括位于闪存设备内并与所述控制器相连、和位于闪存设备外并与所述主机相连或位于主机中的至 少两个缓存单元。
10. —种闪存设备,包括控制器、与控制器相连并用于存储数据的存储介质,其特征在 于,所述闪存设备还包括至少一个与所述控制器相连的缓存单元,所述存储介质与所述缓 存单元之间具有映射关系,所述控制器根据所述映射关系将存储介质中的待访问数据缓存 至所述缓存单元,以及基于所述映射关系访问所述缓存单元。
全文摘要
本发明涉及半导体存储技术领域,提供了一种闪存设备的管理系统、方法及闪存设备。所述方法基于存储介质和缓存单元实现对闪存设备的管理,包括以下步骤A.建立所述存储介质和至少一个缓存单元之间的映射关系;B.根据所述映射关系将存储介质中的待访问数据缓存至所述缓存单元,并基于所述映射关系访问缓存单元。采用本发明提供的闪存设备的管理系统、方法及闪存设备,能提高闪存设备的寿命。
文档编号G06F12/08GK101727395SQ200810161900
公开日2010年6月9日 申请日期2008年10月17日 优先权日2008年10月17日
发明者刘一宁 申请人:深圳市朗科科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1