存储介质管理方法

文档序号:6613050阅读:111来源:国知局

专利名称::存储介质管理方法
技术领域
:本发明涉及静态存储器领域,特别涉及一种存储介质管理方法。
背景技术
:现有对存储介质的管理方法一般是建立物理地址与逻辑地址的对照表,参照图1所示的逻辑块与物理块对照关系示意图,通过对照表可查找与逻辑块对应的物理块,当有物理块成为坏块时可将其剔除不用。然而随着存储介质的容量越来越大,对照表的数据量也越来越大,要在嵌入式系统的内存中保存整个存储介质的对照表,几乎是不实际的。现有一种分段管理技术,对存储介质的物理块分段进行管理。如图2所示的逻辑块与物理块对照关系示意图,设存储介质有m个物理块,分为L个区域,每个区域N块,分别对每个物理块区域做物理地址与逻辑地址的对照表。只有使用到相应逻辑地址区域的时候才在内存中建立与该逻辑地址所在区域相应的对照表,这样就在内存空间和效率之间取得了一个折衷。但这也引起了另一个问题,因为存储空间被物理分割,各区域之间就被隔绝。根据存储介质的实际使用特点,某些区域的物理块经常被使用,另外一些区域的物理块却^l少使用,于是会导致使用的不均衡,某些物理块已经达到寿命的极限,而某些物理块却还很年轻。当一些物理块已经损坏时,存储数据不可靠,必须重新对整个存储介质进行扫描,把坏物理块剔除出来才能再次使用。针对以上问题,也有另一现有技术提出基于上述分段管理技术,当一个区域使用到一定程度的时候,将整个区域与其他区域中的数据进行交换的技术。该技术可以解决上述问题,但产生交换区域的效率低下的问题,会有一段时间需要拷贝大量的数据,导致存储介质性能不稳定。
发明内容本发明目的在于提供一种存储介质管理方法,用于管理大容量存储介质。本发明提供一种存储介质管理方法,包括分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤;将至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤;根据至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤。优选地,上述分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤包括将逻辑地址划分为至少两个区域;对至少一逻辑区域中的逻辑地址,分别建立与存储介质的任一物理地址之间的对应关系;将对应关系形成至少两个区域对照表。上述将至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤包括根据访问命令计算指定逻辑块属于哪一区域;判断内存中的区域对照表是否对应指定逻辑块所属区域;将指定逻辑块所属区域的区域对照表加载到内存中,替换内存中的区域对照表。上述将至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤还包括将其中一区域对照表保存在内存中的步骤。优选地,分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤包括将逻辑地址划分为至少两个区域;对各区域中的逻辑地址,建立与存储介质任一物理地址之间对应关系,形成完整对照表。上述将至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤包括将完整对照表保存在外部存储介质中;将完整对照表的地址保存在内存中;根据访问命令计算指定逻辑块属于哪一区域;根据完整对照表的地址找到完整对照表;将完整对照表中,指定逻辑块所属区域的部分对照表加载到内存中。上述将对照表保存在外部存储介质中是指保存在至少一物理块中,或是保存在至少一物理块的冗余区中。优选地,上述存储介质管理方法还包括定义至少一交换块,建立交换块的逻辑地址与物理地址对应关系的步4《。上述根据至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤包括根据至少一区域逻辑地址与物理地址的对应关系,查找与写命令指定逻辑地址对应的物理地址;将写命令要写入的新数据写到与交换块对应的物理地址中;将与写命令指定逻辑地址对应的物理地址中不被写命令覆盖的原有数据搬迁到与交换块对应的物理地址中;建立交换块与写命令指定逻辑地址对应的物理地址之间的对应关系,建立写命令指定逻辑地址与交换块对应的物理地址之间的对应关系;擦除与交换块对应的物理地址。上述根据至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤还包括更新至少一区域逻辑地址与物理地址的对应关系,更新对照表的步骤。上述将与写命令指定逻辑地址对应的物理地址中不被写命令覆盖的原有数据搬迁到与交换块对应的物理地址中包括将与写命令指定逻辑地址对应的物理地址与交换块对应的物理地址比较,得到不被写命令指定写入新数据的未指定地址;将未指定地址中的l丈据复制到与交换块对应的物理地址中。上述存储介质管理方法单独使用一交换块,或轮流使用至少一交换块。本发明通过将存储介质的逻辑地址划分多个区域,各区域分别组织对照表,实现占用极少量的内存完成大容量存储介质的管理;本发明还利用交换块实现各个区域之间的物理块相互交换,从而消除了区域间磨损不均衡的问题,同时避免了整个区域数据的搬迁而导致的性能不稳定问题,安全稳定,易于实现。图1是本发明一种现有技术的逻辑块与物理块对照关系示意图;图2是本发明另一种现有技术的逻辑块与物理块对照关系示意图;图3是本发明第一实施例的逻辑块与物理块对照关系示意图;图4是本发明第一实施例的逻辑块与物理块对照关系变化示意图;图5是本发明第二实施例写命令的处理过程示意图;图6是本发明第二实施例的区域对照表管理流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施例方式参照图3,示出本发明第一实施例的逻辑块与物理块对照关系示意图,本实施例应用于闪存介质(FLASH),在整个存储介质中作对照表,但仅在逻辑域对存储介质划分多个区域,而在物理域不划分区域,每个逻辑区域都可以对照整个存储介质的物理块。当访问到某逻辑地址的时候,才把该逻辑地址所在区域的对照表力。载到内存中。本实施例还设置交换块(swap),通过共享交换块实现物理块的交换,从而消除物理块磨损不均tf的问题。具体来说,设存储介质共有m个物理块,将逻辑地址划分为L个区域,分别是区域0、区域l……区域L,每个区域N个逻辑块,每个逻辑块分别与一个物理块建立对照关系,例如区域Q的逻辑块Q对应物理块1,区域1的逻辑块X对应物理块y。再设置一逻辑交换块,也对应一物理块z。形成如表l所示的逻辑块与物理块对照表:<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表1接收到对存储介质的访问命令后,本实施例对写命令的处理过程参照图5包括如下步骤步骤Sll,收到对逻辑块X写入新数据的写命令;步骤S12,计算逻辑块X属于哪个逻辑区域;步骤S13,将该逻辑区域的对照表加载到内存;步骤S14,查对照表,才艮据逻辑块X的逻辑地址查找到对应的物理块y;步骤S15,取预先定义的交换块;步骤S16,将写命令要写入逻辑块X的新数据写到交换块对应的物理块z中;步骤S17,将物理块y中不被写命令覆盖的原有数据搬迁到物理块z中;步骤S18,将交换块改为与物理块y对应,将逻辑块X改为与物理块z对应;步骤S19,擦除交换块对应的物理块y,写过程结束。参照图4所示的经过上述写过程后,逻辑块与物理块对照关系变化示意图,逻辑块X中的原有数据和写命令要写入的新数据都写入物理块z中,而将交换块从物理块z改为物理块y。同理,对每一个写命令,都仅加载一个区域的对照表,使用交换块写入数据,既实现了分区域管理存储介质,减少占用内存,又实现了物理块的使用平衡,还无需对整个区域数据进行搬迁。上述步骤S12,计算逻辑块X属于哪个逻辑区域,具体来说在对逻辑地址分区时,每个逻辑区域的大小都是预先设定的,确定下来一般无需改变,如一个区域包括1024个逻辑块。当收到访问命令后,本实施例可以通过逻辑地址来推算要访问的块属于哪个逻辑区域。一个区域包括1024个逻辑块为例,则可算出逻辑块0到逻辑块1023都属于区域0,而逻辑块1024至逻辑块2047都属于区域l,依此类推。上述步骤S13,将该逻辑区域的对照表加载到内存,其中加载是指把对照表读取到内存中,具体加载方式见下文说明。上述步骤S16,将写命令要写入逻辑块X的新数据写到交换块对应的物理块z中是采用现有的写操作技术完成的,完成一个写操作可以分为两个步骤,一个是设备从主机接收数据,存到设备的緩冲区,然后从緩冲区把数据写入flash。本实施例从写命令中得知要对逻辑块X写入数据,而逻辑块X对应物理块y,物理块y本身是存有原有数据的,根据闪存的特性,物理块y是不能写入数据的,必须把物理块y擦除才可以再写入数据。但一旦擦除物理块y,原有数据就会丢失。因此不能直接把緩冲区的数据写入物理块y,而只能写到交换块对应的物理块z中。完成将缓冲区数据写入交换块的写操作后,物理块y和交换块对应的物理块z中各保存了逻辑块X的一部分数据,在以后的操作中是无法使用的,因此还需要把物理块y中的原有数据搬迁到物理块z中。至此,逻辑块X的所有数据都保存在物理块z中了,物理块y中虽然存有原有数据,但已经无用了,就可以"J巴物理块y〗察除。当然也可以在物理块y纟寮除以后,^!巴物理块z中的所有数据重新拷贝回物理块y,但这样明显效率4艮4氐。因此本实施例只是4巴物理块y与物理块z与逻辑块的对应关系交换一下,4巴物理块y对应交换块,物理块z对应逻辑块X,节省了一次数据搬迁的操作,提高了效率。上述步骤S17,将物理块y中不被写命令覆盖的原有数据搬迁到物理块z中是采用现有的数据搬迁技术,具体包括步骤步骤S171,从写命令中取得要写入新数据的指定地址;步骤S172,将指定地址与物理块y的地址比较,得到不被写命令指定写入新数据的未指定地址,这些未指定地址中的数据是不:^皮新数据覆盖的原有数据;步骤S173,将未覆盖地址中的原有数据复制到物理块z的相应地址中,流程结束。闪存介质的特性是要先擦除才能写数据,如果直接擦除保存了原有数据的物理块写入新数据,很可能造成原有数据的丟失,故本实施例在每次执行写数据命令时都使用交换块,以保证原有数据的安全。本实施例对于读命令的处理过程如下步骤S21,收到读取逻辑块X数据的读命令;步骤S22,计算逻辑块X属于哪个逻辑区域;步骤S23,将该逻辑区域的对照表加载到内存;步骤S24,查对照表,根据逻辑块X的逻辑地址查找到对应的物理块y;步骤S25,读取物理块y中的指定数据;步骤S26,返回读到的^:据,读过程结束。本发明提出第二实施例,在第一实施例基础上对对照表和交换块的管理提出改进。本实施例至少在存储介质量产的时候建立一完整对照表,通过完整对照表,可使所有逻辑地址都与好的物理块对应起来,而不对应坏物理块,将坏的物理块忽略不使用,建立逻辑地址与所有好块的物理地址之间的对应关系。例如存储介质共有IO个物理块,其中物理块2是坏块,建立完整对照表的做法是从逻辑块0和物理块0开始建立对照,先为逻辑块O找一个物理块与之对应,检测到物理块O是好块就把物理块0对应到逻辑块0;再顺序为逻辑块1找一个物理块与之对应,因为物理块0已经有对应关系,所以顺序检测物理块l,物理块l是好块就把物理块l对到逻辑块l。再为逻辑块2找一个物理块与之对应,因为物理块1之前的块都操作过了,就从物理块2开始,发现物理块2是坏块,不能将物理块2与任何一个逻辑块对应,于是再往后找到物理块3,发现物理块3是好块,就把物理块3对到逻辑块2。依次对应直到所有逻辑块都与物理块建立对应关系,而对其中坏块的处理就是不让坏块与任何一个逻辑块对应,也不与任何一个交换块对应,使得坏块在实际使用过程中永远不会被使用到。当然本实施例也可用其他规则建立完整对照表,将坏的物理块忽略不使用,建立逻辑地址与所有好块的物理地址之间的对应关系。建立对照表后,在数据处理系统的外部存储介质(例如EEPR0M,或存储介质本身)划出一存储空间来保存上述完整对照表,数据处理系统的MCU内存只需记录完整对照表所在的物理地址。当需要访问某区域的数据时,根据内存保存的完整对照表所在物理地址,就可以访问完整对照表中该区域对应的部分,将这部分对照表读取到内存中,完成完整对照表的加载。上述在外部存储介质中划出的存储空间可以是取几个物理块,也可以是多个物理块的冗余区。本实施例还可为每个区域分别建立区域对照表。设逻辑地址划分为L个区域,分别是区域0、区域l……区域L,每个区域N个逻辑块。本实施例为每个区域分别建立区域对照表,即共有L个区域对照表,每个对照表覆盖N个逻辑块。这L个区域对照表结合起来即等同于上述完整对照表,可以将所有好的物理块管理起来。在内存中4叉保留某一区域对照表(例如区域0对照表),其他的区域对照表保存在外部存储介质(例如EEPROM,或存储介质本身)划出的存储空间中。内存中记录每个区域表的保存地址(例如区域0对照表保存在逻辑块0,区域1对照表保存在逻辑块1……)。设接收到的访问命令要访问逻辑块500,而目前内存中保存的区域0对照表仅覆盖逻辑块0至逻辑块127,因此当前区域对照表无法满足访问需求,就需要加载与访问指令相应的区域对照表。通过计算得到逻辑块500属于区域3,读取区域3对照表并存入内存中,替代内存中原有的区域G对照表完成对照表加载过程,然后利用区域3对照表执行访问命令。上述在外部存储介质中划出的存储空间可以是耳又几个物理块,也可以是多个物理块的冗余区。上述区域对照表管理流程如图6所示,包括步骤S31,将逻辑地址划分为至少两个区域;步骤S32,分别为至少两个区域建立区域对照表;步骤S33,将其中一区域对照表保存在内存中,其他区域对照表保存在外部存储介质中;步骤S34,接收访问命令;步骤S35,计算访问命令指定逻辑块属于哪一区域;步骤S36,如果内存中的区域对照表对应指定逻辑块所属区域,则进行步骤S38,否则进行S37;步骤S37,将指定逻辑块所属区域对照表加载到内存中,替换内存中的原区域对照表,然后进行步骤S38;步骤S38,利用内存中的区域对照表,执行访问命令;步骤S39,返回命令执行结果,流程结束。若访问命令为读命令,访问不改变逻辑块与物理块的对应关系;若访问命令为写命令,执行完该访问命令后逻辑块与物理块的对应关系改变,区域对照表也应作相应更新,用新的区域对照表替代原区域对照表。这样在根据访问命令切换区域对照表时,可直接读取区域对照表。上述步骤S37,将区域对照表加载到内存中,是指把区域对照表从外部存储介质读取到内存中。例如一区域对照表的数据是"0987654321",本实施例将其保存在外部存储介质中,并设专门的变量记录该区域对照表保存在外部存储介质的哪个物理地址中。当本实施例需要用到该区域对照表的时候,就从变量记录的物理地址中把区域对照表数据读出来,读到内存中用于保留对照表的区域即可。这样,同一个内存区域在不同的时刻被加载不同的区域对照表了。上述区域对照表加载完成后,本实施例采用第一实施例中的写过程执行访问命令。本实施例可以只在要用到区域对照表的时候,例如收到访问命令或其他需要查表的情况下,才将区域对照表加载到内存中,平时的内存完全可以不存放任何区域对照表。把一个区域对照表常驻在内存中是为了提高访问效率。当然,本发明也可以不预先生成对照表,而是每次需要访问某区域时临时重建该区域的对照表或者临时重建存储空间的完整对照表,然后加载到内存中。这样做可以节省一点存储介质的存储空间,但频繁重建对照表可能会影响访问效率,因此建议保存对照表,在不使用时保存在外部存储介质(例如EEPR0M,或存储介质本身)或在存储介质内部,要使用时读取并加载到内存中即可,这样仅占用极少量的内存就可完成大容量存储介质的管理。如果需要扫描存储介质重建对照表,则需要在存储介质中保存重建对照表的信息。本实施例提出在物理块冗余区中保存对照表信息及重建对照表的做法如下闪存介质的结构是在每个物理块中除了数据区以外,还有若干字节的冗余区。冗余区可以保存一些厂商自定的信息,因此本实施例可以在这个区域放置一些标志信息。如冗余区有16字节,其中10字节放置ECC校验码,剩下的6字节就可以放置对照表信息,在这6字节中,本实施例记录本物理块对应的逻辑块号。这样,在写数据的时候,就把逻辑块号和数据以及ECC校验码一起写入存储介质中。在本实施例重建对照表的时候,通过读取每个物理块的冗余区信息,就知道每个物理块对应的逻辑块号,这样无需重新扫描存储介质,即可重建对照表。把对照表保存到存储介质的部分物理块中的做法则是在最初建立对照表的时候,本实施例把部分的好块划出来用于保存对照表,不与逻辑块对应,也不与交换块对应,而让数据处理系统的MCU的内存记住这些块的物理块号,当对照表发生变化的时候,把对照表写入这些物理块中。为了区分对照表和数据,本实施例仍需要标记哪个块里保存的是数据,哪个块保存的是对照表信息,该标记可以放到物理块的冗余区中。这样,通过扫描冗余区,本实施例就知道哪个块保存的是数据,哪个块保存的是对照表,在找到保存对照表的块后,把对照表读出即可,无需进行重建的过程。在上述实施例基础上,本发明还提出设置多个交换块,维持一交换块池以管理这些交换块,在读写数据过程可以轮换使用交换块以提高访问效率。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。权利要求1.一种存储介质管理方法,包括分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤;将所述至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤;根据所述至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤。2.根据权利要求l所述的存储介质管理方法,其特征在于,所述分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤包括将逻辑地址划分为至少两个区域;对至少一逻辑区域中的逻辑地址,分别建立与所述存储介质的任一物理地址之间的对应关系;将所述对应关系形成所述至少两个区域对照表。3.根据权利要求2所述的存储介质管理方法,其特征在于,将所述至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤包括根据访问命令计算指定逻辑块属于哪一区域;判断内存中的区域对照表是否对应指定逻辑块所属区域;将指定逻辑块所属区域的区域对照表加载到内存中,替换内存中的区域对照表。4.根据权利要求1所述的存储介质管理方法,其特征在于,将所述至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤还包括将至少一区域对照表保存在外部存储介质中的步骤。5.根据权利要求l所述的存储介质管理方法,其特征在于,所述分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤包括将逻辑地址划分为至少两个区域;对各区域中的逻辑地址,建立与存储介质任一物理地址之间对应关系,形成完整对照表。6.根据权利要求5所述的存储介质管理方法,其特征在于,将所述至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤包括将所述完整对照表保存在外部存储介质中;将所述完整对照表的信息保存在内存中;根据访问命令计算指定逻辑块属于哪一区域;根据所述完整对照表的地址找到所述完整对照表;将所述完整对照表中,指定逻辑块所属区域的部分对照表加载到内存中。7.根据权利要求4或6所述的存储介质管理方法,其特征在于,所述将对照表保存在外部存储介质中是指保存在至少一物理块中,或是保存在至少一物理块的冗余区中。8.根据权利要求1至6任意一项所述的存储介质管理方法,其特征在于,还包括定义至少一交换块,建立交换块的逻辑地址与物理地址对应关系的步骤。9.根据权利要求8所述的存储介质管理方法,其特征在于,根据所述至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤包括根据所述至少一区域逻辑地址与物理地址的对应关系,查找与写命令指定逻辑地址对应的物理地址;将写命令要写入的新数据写到与交换块对应的物理地址中;将所述与写命令指定逻辑地址对应的物理地址中不被写命令覆盖的原有数据搬迁到与交换块对应的物理地址中;建立所述交换块与写命令指定逻辑地址对应的物理地址之间的对应关系,建立写命令指定逻辑地址与交换块对应的物理地址之间的对应关系;擦除与交换块对应的物理地址。10.根据权利要求9所述的存储介质管理方法,其特征在于,根据所述至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤还包括更新至少一区域逻辑地址与物理地址的对应关系,更新对照表的步骤。11.根据权利要求9所述的存储介质管理方法,其特征在于,将所述与写命令指定逻辑地址对应的物理地址中不被写命令覆盖的原有数据搬迁到与交换块对应的物理地址中包括较,得^^被写命令指定写入新数据的未指定地址;';'将未指定地址中的凄史据复制到与交换块对应的物理地址中。全文摘要本发明提供一种存储介质管理方法,包括分区域管理逻辑地址,建立至少一区域逻辑地址与物理地址的对应关系的步骤;将至少一区域逻辑地址与物理地址的对应关系加载在内存中的步骤;根据至少一区域逻辑地址与物理地址的对应关系执行访问命令的步骤。本发明通过将存储介质的逻辑地址划分多个区域,各区域分别组织对照表,实现占用极少量的内存完成大容量存储介质的管理;本发明还利用交换块实现各个区域之间的物理块相互交换,从而消除了区域间磨损不均衡的问题,同时避免了整个区域数据的搬迁而导致的性能不稳定问题,安全稳定,易于实现。文档编号G06F12/06GK101436159SQ20071016599公开日2009年5月20日申请日期2007年11月14日优先权日2007年11月14日发明者钟智渊申请人:深圳市朗科科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1