可丢弃文件的基于卡的管理的制作方法

文档序号:6361986阅读:182来源:国知局
专利名称:可丢弃文件的基于卡的管理的制作方法
技术领域
本发明总体涉及存储器件,且更具体地涉及管理在存储器件中的文件的方法和设备。
背景技术
因为非易失性的存储器件便携且它们具有小的物理大小和大的存储容量,近年来已经快速地增加了非易失性的存储器件的使用。存储器件以各种设计出现。一些存储器件被视为“嵌入式”,意味着它们不能且不意图由用户从与其一起工作的主机设备上移除。其他存储器件是可移除的,这意味着用户可以从一个主机设备(例如,从数码相机)移除它们到另一设备,或用另一个存储器件来替换一个存储器件。在存储器件中存储的数字内容可以来源于存储器件的主机。例如,数码相机(一种示例的主机)捕获图像且将它们翻译为对应的数字数据。然后,数据相机在与其一起操作的存储器件中存储数字数据。在存储器件中存储的数字内容还可以来源于远程源:其可以例如通过数据网络(例如,因特网)或通信网络(例如,蜂窝电话网络)向存储器件的主机发送,且然后由该主机下载到存储器件。远程源可以是例如服务提供者或内容提供者。服务提供者和内容提供者以下统称为“发行商(publishers)”。随着移动手持机内的存储器件在大小和容量上增长,出现了活跃的用于内容获取和消费的新场景。通常,可以使用手持机来消费从操作员控制的服务器诸如苹果(Apple)的iTunes服务的市场应用下载的和自诸如SanDisk的slotMedia卡的源侧装载(side-loaded)的电影和音乐。但是,在所有这些应用中,用户必须主动搜寻他想要消费的内容,指示并授权该内容的获取,获取该内容,然后消费它。这减少了内容所有者提供用于瞬时消费的内容的能力、和用户立即看到他获取的东西而不用等待其下载的能力。已围绕向用户预先载入内容创建了若干产品开端,但是他们都有一个共同的缺陷:用户必须牺牲其自己的存储容量来存储内容,但直至在购买它之后才能访问该内容。必须购买该容量的用户通常不想看到该容量的很大部分被分配给他们不能实际使用的内容。存储器件的用户可以自愿通过从发行商请求媒体内容或广告来下载媒体内容和广告。但是,有时,想要提高他们收入的发行商在不征求用户的许可的情况下,向用户发送内容,且有时甚至用户不知道这种内容已被下载到他们的存储器件了。发行商在未得到用户同意的情况下向用户发送的内容在此被称为“主动提供的内容”。通常,主动提供的内容意图由用户在支付之后、或在承诺给发行商支付费用之后消费。通过将主动提供的内容下载至用户的存储器件,发行商希望用户将最终以付费方式消费该主动提供的内容以获得费用,由此增加他们的收益。发行商在不征求用户同意的情况下将主动提供的内容存储在存储器件上从而希望该用户以付费方式消费这些内容,该发行商的这种行为在媒体发布领域中称为“预测寄售(predictive consignment)”。但是,主动提供的内容可以仍然存储在存储器件中,而不需要存储器件的用户得知其存在或想要消费它。在存储器件中存储主动提供的内容减少了在存储器件上的可用(即,空闲)用户存储空间,这从用户的角度是不期望的。用户可能发现在存储器件中存在更少空间来用于用户自己的内容(例如,音乐文件),因为其他人(即,一些发行商)已经占据了存储器件上的部分存储空间,或用户可能必须通过删除主动提供的内容来收回(recIaim)如此占用的存储空间。对占据用户的部分存储空间的该问题的一个部分解决方案包括阻止发行商对存储器件的访问,诸如通过阻止发行商的网站。该解决方案可能对用户是可接受的,但是其从发行商的角度来说是有问题的,这是因为发行商将得到更少的销售额且损失潜在的收益源。对该问题的另一部分解决方案包括向主机发布内容(即,将内容文件存储在这些主机的存储器件中),且当内容变得不相关时移除该内容。换句话说,产生了该内容的发行商当该内容变得不相关时从存储器件移除所存储的主动提供的内容。如果已经经过了用于消费的时间,或当存在该用户不可能消费它的指示时,主动提供的内容被视为无关。因此,需要一种新技术,其智能地管理手持存储器、以便用户在无损失的情况下自由地使用他们的存储器、同时仍然使得内容所有者能够向手持机推送内容。换句话说,存在解决主动提供的文件带来的问题的需要。具体地,虽然应该允许发行商在进行其商业的过程中向存储器件下载主动提供的内容时,但这些下载不应该对用户体验产生本质上阻碍的影响。

发明内容
因此,以下情形将有益:只要用户文件不需要在存储器件中容纳它们所需的存储空间即能够在存储器件存储主动提供的文件,以及能够从存储器件移除主动提供的文件以便为用户文件保证最小的空闲存储空间。各种实施例被设计来实现这种文件管理,在此提供其例子。在一个实施方式中,提供用于在不需要修改主机操作系统的情况下实现主动提供的文件在存储器件上的存储和移除的机制将是有益的。为了解决上述问题,在存储器件中的存储的文件或要存储的文件是不可丢弃的且与存储设备中维持的主机文件系统数据结构相关联,或标记为是可丢弃的且在存储设备中的可丢弃文件系统数据结构中相关联。每个可丢弃的文件与丢弃优先级相关。只有在将新发行商的文件(即,主动提供的文件)存储在存储器件中不使保留用于用户文件的存储使用安全余量变窄超过所期望余量时,才允许将其存储在存储器件中。另一方面,即使用户文件的存储使存储使用安全余量变窄超过期望宽度的情况下也允许将其存储在存储器件中。但是,在这种情况下,通过从存储器件移除一个或多个可丢弃文件来恢复存储安全余量的期望宽度。如果可丢弃文件的丢弃优先级等于或高于(或,低于,如在此描述的)预定丢弃阈值,则将该可丢弃文件从存储器件移除。根据一个方面,为了解决对于在不需要改变主机操作系统的情况下允许存储设备管理可丢弃文件的机制的需要,公开了用存储设备管理文件的方法,该方法由操作性地耦合于主机的存储设备实现,存储设备具有含有用户文件、空闲空间和可丢弃文件的存储区域。该方法包括:存储设备在可丢弃文件系统数据结构中标识空闲簇和与可丢弃文件相关的簇的记录;从主机接收在存储区域中存储用户文件的请求;确定与请求中的数据相关联的逻辑块地址(LBA)是否处于与可丢弃文件系统数据结构中的记录中的簇相关联的逻辑块地址的范围中;以及当LBA处于该范围且在该范围中存在可用的空闲空间时,将用户文件的LBA映射到可丢弃文件系统数据结构中标识的空闲簇;以及随后,从所述可丢弃文件系统数据结构中,移除映射到用户文件的LBA的簇。在本方法的另一方面,当LBA处于该范围且在该范围中不存在可用的空闲空间时,该存储设备可以执行以下步骤:丢弃至少一个可丢弃文件以创建空闲簇;将用户文件的LBA映射到通过丢弃至少一个可丢弃文件而创建的空闲簇;以及随后,从所述可丢弃文件系统数据结构中,移除映射到用户文件的LBA的簇。该方法还可以包括:在所述存储设备的存储区域中维持主机文件系统数据结构、和与主机文件系统数据结构独立地维持所述可丢弃文件系统数据结构,所述可丢弃文件系统数据结构包括存储区域中对应于存储区域中的至少一个可丢弃文件的簇列表,且其中在主机文件系统数据结构中将所述至少一个可丢弃文件标识为空闲空间。所述可丢弃文件系统数据结构可以以表格、哈希映射、二进制树、阵列或列表的形式。在另一方面中,公开了与主机可移除地连接的存储设备。该存储设备包括具有用户文件、空闲空间和可丢弃文件的存储区域。该存储设备还包括与存储区域通信的控制器。该控制器被配置以在可丢弃文件系统数据结构中标识空闲簇和与可丢弃文件相关的簇的记录。该控制器还被配置以从主机接收在存储区域中存储用户文件的请求,并确定与请求中的数据相关联的逻辑块地址(LBA)是否处于与可丢弃文件系统数据结构中的记录中的簇相关联的逻辑块地址的范围中。当LBA处于该范围且在该范围中存在可用的空闲空间时该控制器被配置以将用户文件的LBA映射到可丢弃文件系统数据结构中标识的空闲簇,以及随后从可丢弃文件系统数据结构中移除被映射到用户文件的LBA的簇。


在附图中图示各种示例实施例,意图这些例子不是限制性的。应理解,为了图示的简化和清楚,以下引用的图中所示的元件不一定被画成成比例的。而且,在认为适当时,可以在附图之间重复使用附图标记来指示相同的、对应的或类似的元件。在附图中:图1是根据示例实施例的存储系统的方框图。图2是根据另一示例实施例的存储系统的方框图。图3是根据示例实施例的存储分配器的方框图。图4是根据示例实施例的用于管理文件的方法。图5是根据示例实施例的用于管理在存储器件中的可丢弃文件的存储的方法。图6是用于根据示例实施例的用于在FAT32结构的文件系统中标记一个或多个主动提供的文件的方法。图7是与FAT32表相关联的示例目录区域。图8是根据示例实施例的FAT32表。图9是根据示例实施例的NTFS表。图10是根据示例实施例的基于FAT的文件系统的逻辑映像。
图11示范了根据该公开的文件的存储管理方法。图12a图示示例的主FAT。图12b图示示例的可丢弃FAT。图13是用于使用主FAT和可丢弃FAT来管理存储器件的方法的流程图。图14是用于使用FAT和数据库来管理存储器件的方法的流程图。图15是用于使用FAT和位置文件来管理存储器件的方法的流程图。图16图示了包括簇链的示例FAT,其中,组成该簇链的两个或多个簇的顺序已经被打乱。图17图示了示例FAT和相关位置文件,其中,FAT包括簇链,其中,组成该簇链的两个或更多簇的顺序已经被打乱。图18是用于使用FAT管理存储器件的方法的流程图,其中,组成簇链的两个或更多簇的顺序被打乱。图19是用于使用转换锁(conversion lock)来防止当可丢弃文件在实现主FAT和可丢弃FAT的文件系统中打开时转换可丢弃文件。图20图示在文件系统中的示例位掩码(mask)用户ID。图21图示智能高速缓存的客户端侧组件。图22示出如为智能高速缓存HD修改的可丢弃文件的文件系统结构。图23是用于在智能高速缓存HD系统中使用的大文件管理器的方框图。图24描述大可丢弃文件的转换流程。图25是图示用大文件管理器来处理转换请求的方法的流程图。图26描述作为可以被分裂的文件的例子的Matroska文件结构。图27描述分裂的Matroska文件。图28是根据另一示例实施例的存储系统的方框图。图29是用于实现可丢弃文件的基于卡的管理的方法的流程图。图30是用于管理向存储器件的存储区域下载可丢弃文件的方法的流程图。
具体实施例方式以下的描述提供示例实施例的各种细节。但是,该描述不意图限制权利要求的范围,而是用于本发明的各种原理和实践它的方式。为了解决主动提供的内容和相关问题,向用户文件给定超出其他文件的存储优先级,且维持存储使用安全余量以保证该优先级。“用户文件”是存储器件的用户自愿存储或已经同意其在存储器件中存储的文件。例如,用户向她/他的存储器件下载的音乐文件被视为用户文件。被用户请求或同意存储,用户文件被视为“索求的”文件。“其他文件”在此指“发行商文件”和“主动提供的文件”。“发行商文件”是在用户未请求它或未意识到它(至少一段时间还没有)的情形下在存储器件中存储的文件。用户可能不想要使用主动提供的文件。未使用的主动提供的文件趋于消费在用户的存储器件上的昂贵存储空间。因此,根据在此公开的原理,只有存储这种文件不致缩小存储使用安全余量才允许将此文件存储在存储器件中。通过维持将被保留用于未来的用户的文件的空闲存储空间(即,存储使用安全余量)来向用户文件呈现存储优先级。必须维持存储使用安全余量以便保证无论何时需要或期望时都可以在存储器件中存储用户文件。如果出于一些原因,存储使用安全余量变得比期望的窄,则将从存储器件移除(SP删除)一个或多个主动提供的文件以便恢复存储使用安全余量。维持存储使用安全余量保证在附加的用户文件被下载到存储器件的情况下用于这种文件的存储空间。为此将在存储文件系统的结构中主动提供的文件标记为“可丢弃的”,且如果需要,稍后将其移除来至少收回维持存储使用安全余量所需的空闲存储空间。因为用户使用各种可丢弃文件的概率在一个可丢弃文件和另一个之间可能不同,因此,根据一个或多个标准,诸如使用文件的概率、与使用文件相关联的可能收益、文件的大小、文件的类型、文件的位置、文件的年代等,预先给每个主动提供的文件(即,每个可丢弃文件)分配丢弃优先级。例如,可以通过收益的潜在可能来确定丢弃优先级。根据另一例子,电影宣传片或广告将具有比实际电影更高的丢弃优先级,这是因为用户通常不喜欢看宣传片和广告。根据另一例子,最可能被用户使用的一个或多个可丢弃文件将被分配最低丢弃优先级,这意味着这种文件将是从存储器件移除的最后的(一个或多个)文件。换句话说,可丢弃文件的使用概率越高,被分配给该文件的丢弃优先级的级别越低。如果即使一个或多个可丢弃文件被移除了,期望的存储使用安全余量也不完全恢复,则将从存储器件移除另外的可丢弃文件,直到恢复期望的存储使用安全余量。简言之,诸如文件系统的数据结构实现用于了存储和组织计算机文件的方法。文件系统包括针对存储、层次地组织、操纵、导航、访问和提取数据而实施的抽象数据类型和元数据的集合。抽象的数据类型和元数据形成“目录树”,通过该“目录树”,可以访问、操纵和启动计算机文件(在此也简称为“数据文件”或“文件”)。“目录树”通常包括根目录和可选的子目录。目录树被存储在文件系统中作为一个或多个“目录文件”。在文件系统中包括的元数据和目录文件的集合在此被称为“文件系统结构”。因此,文件系统包括数据文件和有助于访问、操纵、更新、删除和启动该数据文件的文件系统结构。文件分配表(“FAT”)是示例的文件系统架构。FAT文件系统与包括DR-DOS,OpenDOS, MS-DOS, Linux, Windows等的各种操作系统一起使用。FAT结构的文件系统使用集中了存储关于哪些存储区域是空闲或被分配的和每个文件被存储在存储器件上哪里的信息的表。为了限制该表的大小,按称为“簇”的连续扇区的组向文件分配存储空间。由于存储器件已经演化,因此簇的最大数量已经增加且用于标识簇的位的数量已经增长了。FAT格式的版本来源于表位的数量:FAT12使用12位;FAT16使用16位,且FAT32使用32位。另一文件系统架构已知为新技术文件系统(“NTFS”)。目前,NTFS是Windows NT、包括其稍后的版本 Windows2000, Windows XP, Windows Server2003, Windows Server2008,和Windows Vista的标准文件系统。FAT32和NTFS是可以向存储器件100提供的示例文件系统。图1示出了典型的存储器件100。存储器件100包括存储各种文件(例如,音乐文件、视频文件等)的存储区域110,各种文件中的一些可以是用户文件,且其他可以是发行商文件。存储器件100还包括经由数据和控制线130来管理存储区域110的存储控制器120。存储控制器120还经由主机接口 150与主机设备140通信。主机设备140可以是专用硬件或通用计算平台。存储区域110可以是例如NAND闪存类型的。存储控制器120通过控制例如“读”,“写”和“擦除”操作、损耗平衡等且通过控制与主机140的通信来控制所有去往/来自存储区域110的数据传输和去往/来自主机设备140的数据传输。存储区域110可以包含例如用户文件和发行商的文件、被允许仅由授权主机设备使用的受保护数据、和仅由存储控制器120内部使用的安全数据。主机(例如主机140)不能直接访问存储区域110。也就是说,如果主机140要求或需要来自存储器件100的数据,主机140必须向存储控制器120请求它。为了有助于容易地访问在存储设备100中存储的数据文件,给存储设备100提供文件系统160。存储区域110在功能地被划分为三个部分:用户区域170、发行者区域180和空闲存储空间190。用户区域170是其中存储了用户文件的存储区域110内的存储空间。发行商区域180是其中存储了发行商文件的存储区域110内的存储空间。空闲的存储空间190是存储区域110内的空的存储空间。可以使用空闲的存储空间190来保存用户文件或发行者文件。当在空闲存储空间190中存储用户文件时,将保存用户文件的存储空间从空闲存储空间190中减去并添加到用户区域170。类似地,当在空闲存储空间190中存储用户文件时,保存发行商文件的存储空间从空闲存储空间190中减去并添加到发行商区域180。如果从存储区域110移除(S卩、删除)用户文件或发行商文件,空闲了的存储空间添加到(其返回至Ij)空闲存储空间190。如果空闲存储空间190的大小允许,则存储器件100的用户可以从主机140下载用户文件到存储区域110。下载的用户文件将被存储在空闲存储空间190中,且如以上所述,保存该文件的存储空间将从空闲的存储空间190减去且被添加到用户区域170。如上所述,用户文件具有高于其他(例如,发行商)文件的优先级,且为了保证该优先级,设置期望的存储使用安全余量,且如果需要,以以下描述的方式恢复期望的存储使用安全余量。主机140包括存储分配器144,其有助于恢复空闲存储空间190。存储分配器144可以是硬件、固件、软件或其组合。通常,存储分配器144确定向主机140通信的文件(例如文件142)是用户文件还是发行商文件,且然后相应地标记所通信的文件(B卩,作为不可丢弃的文件或作为可丢弃的文件)。如果存储分配器114确定向主机140通信的文件(例如,文件142)是不可丢弃的,例如,因为该文件是用户文件,则存储分配器144以常规的方式在存储区域110中存储该文件。如上所述,存储区域100内的保存不可丢弃文件的存储空间将被添加到用户区域170或是用户区域170的一部分。但是,如果存储分配器144确定向主机140传送的文件是可丢弃的,例如因为其是发行商文件,则存储分配器144标记该文件为可丢弃的。应理解,在一些实施方式中,为了将文件标记为可丢弃的,存储分配器144标记在文件系统160中的文件系统结构以指示该文件是可丢弃文件。在其他实施方式中,为了标记该文件为可丢弃的,存储分配器144将文件本身标记为可丢弃文件。如果空闲存储空间190大于期望的存储使用安全余量,则存储分配器144还在空闲存储空间190中存储标记的可丢弃文件,且如上所述,将保持可丢弃文件的空闲存储空间190内的存储空间从空闲存储空间190中减去(SP,减小空闲存储空间),且添加至发行商区域180 (该添加在逻辑上示为可丢弃文件182)。如上所述,发行商文件可以被用户使用的概率在不同发行商文件之间可能不同,这使得具有最小使用概率的发行商文件成为从存储区域110移除的第一候选。因此,除了标记文件为不可丢弃的或可丢弃的以外,存储分配器144在可丢弃文件被存储在存储区域110中之前、同时或之后还给每个可丢弃文件分配丢弃优先级。存储分配器144藉由向每个可丢弃文件分配的丢弃级别还知道可以或应该丢弃(即从存储区域110删除或移除)可丢弃文件的以便恢复为未来的用户文件而原始预留的空闲存储空间(即,恢复期望的存储使用安全余量)的顺序。因此,如果用户想要在存储区域110中存储新用户文件,但是没有足够的空闲存储空间来容纳该用户文件(这意味着存储使用安全余量比期望的窄),存储分配器144使用被分配给可丢弃文件的丢弃优先级来一个接一个迭代地删除可丢弃文件,来收回更多的空闲存储空间(即,扩展空闲的存储空间190),直到期望的存储使用安全余量被完全恢复。如上所述,完全恢复的存储使用安全余量高概率地保证足够的空闲存储空间被预留用于未来的用户文件。仅响应于接收到存储新用户文件的请求时,才从存储器件100移除或删除可丢弃文件,这是因为考虑用户可能有时想要使用存储的可丢弃文件,且因此,只有新用户文件需要容纳该文件的存储空间时,才从存储器件移除可丢弃文件。存储分配器144可以被嵌入或并入到主机140中,或其可以驻留在主机140和存储器件100的外部(被示出为虚线框144’)。存储分配器144具有存储器件100的、或与其相关联的文件系统的代表性映像。存储分配器144使用存储器件的文件系统映像来将文件标记为不可丢弃的或为可丢弃的,且向每个可丢弃文件分配丢弃级别。在一个例子中,文件系统包括FAT,且在该情况下,在与该文件相关的FAT条目的未使用部分中,通过设置一个或多个未使用的位来进行该标记。因为不同的文件系统具有不同的结构,标记文件(即为不可丢弃或可丢弃的)且分配丢弃级别适用于使用的文件系统结构,如在图6到10中所详述以及结合这些图所描述的。图2是根据另一示例实施例的便携存储器件200的方框图。存储控制器220类似于存储控制器120 —样运作,且存储分配器244类似于存储分配器144 一样运作。存储分配器244可以是硬件、固件、软件或其任意组合。存储分配器244内部地与存储控制器220合作。无论何时存储控制器220从主机240接收在存储区域210中存储文件的存储请求,该请求包括该文件是否是可丢弃文件的指示,存储控制器220都通知存储分配器244该存储请求和该文件是否是可丢弃的。然后,存储分配器244在与存储器件200相关的文件系统的结构中标记该文件为不可丢弃或可丢弃。通常,在主机240上运行的应用确定文件是可丢弃文件,并向存储控制器220发送标记或其他指示来指示该文件是可丢弃文件。在主机240上运行的应用发送标记或其他指示作为用于请求在存储器件上存储文件的存储协议的部分。这种存储协议的例子包括POSIX文件系统功能或java.1o类树的使用。如果存储分配器244确定该新文件是可丢弃的,存储分配器244根据文件的使用概率向新文件分配丢弃优先级。然后,存储分配器244评估空闲存储空间290的当前大小,且决定是否应该从存储区域210移除(即,删除)一个或多个可丢弃文件以便为新文件制造空间。如果应该从存储器件移除可丢弃的一个文件或多个文件,则存储分配器244决定哪个(些)文件是用于移除的当前候选文件。然后,存储分配器244通知存储控制器220应该从存储区域210移除的可丢弃文件,且响应于该通知,存储控制器220移除由存储分配器244指示的可丢弃的一个文件或多个文件。在便携存储器件200的一些配置中,存储分配器244可以被功能性地放置在存储控制器220和存储区域210之间。在其中存储分配器244被功能性地放置在存储控制器220和存储区域210之间的配置中,存储分配器244或存储区域210必须承担存储控制器220的一些功能。在这种配置中,存储区域210由以高于快闪NAND协议的级别来通信的存储器单元构成。图3是根据示例实施例的存储分配器300的方框图。存储分配器300包括存储器单元310、处理器320和接口 330。存储器单元310可以保持与存储器件(例如,图2的存储器件200)相关联的文件系统结构或文件系统结构的映像。处理器320管理与该存储器件相关联的文件系统。接口 330可以适用于与主机和与存储器件的存储控制器合作,如图1中所示的,或仅与存储器件的存储控制器合作,如在图2中所示的。处理器320被配置为或适用于经由接口 330接收请求,来在存储器件的存储区域中存储文件、且在与存储分配器300 —起操作的存储器件相关联的文件系统的结构中标记该文件为可丢弃的或为不可丢弃的。如果接口 330功能地附接于图2的存储控制器220(且因此接收例如SCSI或打包的(wrapped)USB/MSC命令,而不是文件级别的命令),所接收的请求处于比文件级别低得多的级别。也就是说,所接收的请求将是在逻辑块地址处存储扇区的请求,当由主机适当地翻译时,该逻辑块地址将对应于一个文件。如果存储控制器220支持NVMHCI协议或诸如NFS或类似协议的联网文件系统协议,存储控制器220可以得到文件级别的请求。因此,在诸如存储控制器220的存储控制器和诸如接口 330的接口之间的通信不限于NVMHCI或类似于NVMHCI的实施方式。通信接口 330可以与存储分配器300是一体的,如图3所示。处理器320还被配置为或适用于向存储器件发送标记文件,标记该文件为可丢弃的步骤包括向该文件分配丢弃优先级的步骤。如果由存储器件使用的文件系统是基于FAT的,处理器320通过在对应于标记的文件的FAT中向m个最高(即,最高有效)位(例如,m=4)设置对应的值,向标记的文件分配丢弃优先级。设置给在FAT条目中的最高有效位的对应值、或设置给NTFS目录条目的值可以是文件的属性(attribute),或可以与文件的属性相关。“属性”意味着在FAT表或NTFS表的头部中的元数据标签或某种数据结构,该FAT表或NTFS表包含关于该表内存储的内容的类型的信息。“广告”、“奖励内容”和“推广(空闲)内容”是可以在FAT表或在NTFS表中存储的示例类型的内容。设置丢弃级别的替换标准是例如最后访问的文件、文件大小、文件类型等。专用于标记文件的FAT32条目的最高位的数量m可以是四个或少于四个,这是因为不使用这些位。另外,所使用的位越多,则可以使用的丢弃优先级越多。例如,使用三个位(即,m=3)提供八个(23=8)丢弃优先级且使用四个位(即,m=4)提供十六个(24=16)丢弃优先级(即,包括被分配给不可丢弃的文件的丢弃优先级“O”)。换句话说,如果标记的文件是不可丢弃的,所述处理器将m个最高位的值设置为0,或如果标记的文件是可丢弃的,m个最高位的值则设置为在I和2m-l之间的值。丢弃优先级指示标记文件可以或应该从存储器件丢弃的优先级。例如,取决于实施方式,值“I”可以表示以最低优先级或以最高优先级可丢弃的文件,且值“2m_l”可以分别表示以最高优先级或以最低优先级可丢弃的文件。处理器320可以根据文件的预期使用,如上文结合要由存储器件的用户使用主动提供的文件的概率或可能性所解释的,来向标记文件分配丢弃优先级。处理器320可以凭借或响应于接收存储器件中存储新文件的每个请求,更新标记文件的丢弃优先级。处理器320可以与在存储器件中存储文件的一个或多个新请求独立地更新给定的标记文件的丢弃优先级。例如,先前是高优先级的文件可以在特定时间间隔之后降低其优先级。如果在存储器件中存储的文件与等于或大于预定丢弃阈值的丢弃优先级相关联则处理器320删除该文件。处理器320可以基于文件写或添加的数量,或取决于对存储器件上的空闲存储空间的预期使用或新发行商文件的可用性,来(重新)设置丢弃阈值。存储器单元310可以保存包含处理器320向在存储器件中存储的文件分配的丢弃优先级的分配表340。另外,分配表340可以保存文件的标识符和将文件与被分配给文件的丢弃优先级相关联的信息。分配表340可以另外保存丢弃阈值。在分配表340中保存的信息允许处理器320标识可以从存储器件移除哪个或哪些文件来恢复期望的存储使用安全余量。响应于接收在存储器件中存储新文件的请求,处理器320评估在存储器件上的空闲存储空间的大小,且如果存储器件上的空闲存储空间(f)的评估大小大于预定大小,则在存储器件中存储该新文件,或如果其不大于预定大小,处理器320在存储器件内搜索可以删除的一个或多个可丢弃文件,且在找到这样的一种或多种文件时,处理器320删除该一个文件或多个文件来扩展当前空闲的存储空间(f),以便扩展空闲存储空间的总大小等于或大于预定大小。如果与可丢弃文件相关联的丢弃优先级等于或大于预定丢弃阈值(例如,在I和15之间(包含本数),例如15),则可以从存储器件删除该可丢弃的一个文件或多个文件。在空闲存储空间扩展为足够之后,处理器320允许在扩展的空闲存储空间中存储该新文件。“空闲存储空间被扩展为足够”意味着,通过一个接一个地释放占用的存储空间来扩展空闲存储空间,直到总空闲存储卡可以容纳新文件,而没有缩小上述期望的存储使用安全余量,或最终直到扩展的空闲存储空间的总大小等于或大于预定大小,或直到移除了所有可丢弃文件。控制器320可以是标准的现货芯片上系统(“SoC”)器件或包装中系统(“SiP”)器件或通用处理单元,其具有当被执行时进行在此描述的步骤、操作和评估的特定软件。或者,处理器320可以是通过使用硬件来实施在此描述的步骤、操作和评估的专用集成电路(“ASIC”)。图4是根据一个示例实施例的用于存储可丢弃的文件的方法。图4将结合图1描述。在步骤410中,主机140接收在存储器件100中存储文件142的请求。在步骤420中,存储分配器144将该文件标记为“可丢弃”或为“不可丢弃的”,且在步骤430中,如果空闲存储空间190足够大,则向存储器件100的存储控制器120发送标记的文件(即,用于在存储区域110中存储)。也在向该文件分配丢弃优先级的意义上标记该文件。在步骤440,存储分配器144基于该标记的文件、且可选地基于已经被标记的一个或多个文件来(通过与存储控制器120通信)管理存储区域110或在存储区域110中存储的文件。图5是根据一个示例实施例的用于管理在存储器件中的可丢弃文件的存储的方法。将与图1相关联地描述图5。新文件是用于在存储器件100存储的候选者。在知晓存储器件100的文件系统160的当前映像的情况下,存储分配器144在步骤510评估空闲存储空间190的当前大小“f”来查看其当前大小是f的空闲存储空间190是否能够容纳该新文件(即,该作为用于存储的候选者的文件)。通常,存储分配器144取决于新文件是用户文件还是发行商文件来处理该新文件。因此,存储分配器144首先确定该新文件是用户文件还是发行商文件。该新文件是用户文件
在步骤520,存储分配器144检查空闲存储空间190是否能够容纳该新用户文件。如果空闲存储空间190能够容纳该新用户文件(在步骤520中示出为“Y”),存储分配器144在步骤560中在空闲存储空间190中存储该新用户文件,而不考虑期望的存储使用安全余量是否由于存储新用户文件而被缩小。如果期望的存储使用安全余量在存储分配器144在空闲存储空间190中存储新用户文件之后变窄(即,相对于期望的存储使用安全余量),则存储分配器144不针对新用户文件的存储采取进一步的动作。但是,如果期望的存储使用安全余量在存储分配器144在空闲存储空间190中存储新用户文件之后变窄,步骤550包括另外的步骤,其中,存储分配器144确定哪个所存储的可丢弃文件应该首先被删除,哪个可丢弃文件应该其次被删除,等等,以便维持期望的存储使用安全余量。存储分配器144基于存储分配器144分配给所存储的可丢弃文件的丢弃级别来确定哪个可丢弃文件应该首先被删除,哪个可丢弃文件应该其次被删除,等等。如果在步骤520存储分配器144确定空闲存储空间190不能容纳该新用户文件(在步骤520中示出为“N”),则存储分配器144在步骤530中确定空闲存储空间190和由可丢弃文件消耗的存储空间当组合时是否足够用于存储该新用户文件。如果组合的存储空间不够(在步骤530中示出为“N”),这意味着不管将删除多少可丢弃文件,新用户文件由于其较大的大小都不能被存储在“非用户的”储存区域。如果组合的存储空间足够(在步骤530中示出为“Y”),存储分配器144在步骤540中在所存储的可丢弃文件中搜索哪个可丢弃文件可以被删除以便释放用于新用户文件的足够存储空间。存储分配器144通过使用存储器件100的文件系统来搜索这些可丢弃文件,因为如上所述的,存储分配器144在存储器件的文件系统中标记文件为不可丢弃的或可丢弃的。另外,由存储分配器144向标记的文件分配的丢弃级别也被嵌入到存储器件的文件系统中,以便每个丢弃级别与对应的标记的文件相关联。在找到应该首先被丢弃的可丢弃文件(“DF”)(该文件以下被称为“DF1”)时,存储分配器144删除文件DFl以便添加或返回其存储空间(该存储空间以下被称为“SP1”)到存储空间190。然后,在步骤550中,存储分配器144检查扩展的空闲存储空间190(S卩,空闲存储空间190加上最后返回的存储空间,或f+SPl)是否能够容纳新用户文件。如果扩展的空闲存储空间190 (S卩,f+SPl)仍然不能容纳新用户文件(在步骤550中示出为“N”),则存储分配器144迭代地重复步骤550 (该迭代在555处示出)以便返回附加的存储空间到空闲存储空间190 (即,通过找到并删除应该被删除的下一可丢弃文件)。在找到具有次高的丢弃优先级的下一可丢弃文件(该下一可丢弃文件以下被称为“DF2”)时,存储分配器144删除文件DF2以便释放并添加附加的存储空间(该附加的存储空间以下称为“SP2”)来释放存储空间190。然后,在步骤550中,存储分配器144再次检查扩展的空闲存储空间190 (即,空闲存储空间190加上两个最后释放的存储空间,或f+SPl+SP2)是否能够容纳该新文件。如果扩展空闲存储空间190 (即f+SPl+SP2)仍然不能容纳该新文件(在步骤550中示出为“N”),则存储分配器144重复步骤540再一次以便找到应该被删除的下一可丢弃文件。存储分配器144迭代步骤540和550直到累积的空闲存储空间190能够容纳该新用户文件(在步骤550中示出为“Y”)。然后,在步骤560中,存储分配器144在存储区域110中存储该新用户文件。
如上所述,如果实际的存储使用安全余量在存储分配器144在空闲存储空间190中存储新用户文件之后变得比期望的存储使用安全余量窄,则步骤560可以包括附加的步骤,其中,存储分配器144确定哪个所存储的可丢弃文件应该首先被删除,哪个可丢弃文件应该其次被删除,等等,以便恢复期望的存储使用安全余量。新文件是发行商文件如果新文件是发行商文件,只有空闲存储空间190能够容纳该新发行商文件而不缩窄期望的存储使用安全余量时,存储分配器144才在存储区域110中存储(在步骤560中)该新发行商文件。也就是说,如果存储新发行商文件将导致缩小期望的存储使用安全余量,则存储分配器144可以决定不在存储区域I中存储该新发行商文件。在这种情况下,存储分配器144可以抑制对该文件采取任何动作,且不从存储器件中删除文件来释放用于新发行商文件的存储空间。或者,存储分配器144可以在步骤540中删除一个或多个更高优先级的可丢弃文件以便为具有较低丢弃优先级的可丢弃文件释放存储空间。如上所述,文件被标记到且丢弃级别被嵌入到存储器件100的文件系统中,且文件被标记的方式和被嵌入到文件系统中的丢弃级别取决于或可以适用于所使用的文件系统。图6是用于根据一个示例实施例的用于在FAT32结构的文件系统中标记主动提供的文件的方法。FAT32结构的文件系统使用簇。如上结合FAT32结构的文件系统所述,用于标识FAT32簇的位的数量是32。图6将与图1相关联地描述。在步骤610中,FAT32的每个簇的32位中的m个最高有效位(其中m〈4)被分配或专用于标记文件作为不可丢弃的或作为可丢弃的(视情况而定),以及用于为每个可丢弃文件保持对应的丢弃级别。向文件分配丢弃级别通过对对应于标记的文件的所分配的m位设置对应值来进行。在步骤620中,存储分配器144评估存储器件100的用户将使用该主动提供的文件的可能性级别。使用该文件的可能性的评估可以以寄售文件领域的技术人员已知的各种方式来实现。例如,使用该文件的可能性的评估可以基于监视使用存储器件的人的位置,和/所的或监视用户的先前体验和偏好。使用该文件的可能性的评估还可以基于例如在FAT表或NTFS表内存储的内容的类型(例如,“广告内容”,“奖励内容”,“促销(免费)内容”等)。存储分配器144可以使用替换的或附加的标准来评估该文件将被使用的可能性。例如,它可以使用文件的属性或特性,这可以是、或关联于最后访问的文件、文件大小、文件类型等。在存储分配器144评估用户将使用主动提供的文件的可能性的级别之后,存储分配器144在步骤630中分配与该主动提供的文件的使用的评估的可能性级别对应的丢弃优先级。主动提供的文件由存储器件100的用户使用的可能性越大,丢弃级别越低。如果m等于四位,这意味着丢弃范围提供从I (即0001)到15 (即1111)的15个丢弃级别。也就是说,向每个不可丢弃的文件分配丢弃级别0,向具有最低丢弃优先级的可丢弃文件分配优先级1,且向具有最高丢弃优先级的可丢弃文件分配丢弃级别15。在存储分配器144向主动提供的文件分配对应的丢弃级别之后,存储分配器144在步骤640中向与主动提供的文件相关联的簇的四个最高位分配在I和15之间的对应值。如果主动提供的文件具有与其相关联的两个或多个簇,在每个簇中的四个最高位被设置为相同值。在步骤650中,检查主动提供的文件是否是需要评估的最后的文件。如果主动提供的文件不是需要评估的最后的文件(在步骤650中示出为“N”),以上述方式评估另一文件。如果主动提供的文件是需要评估的最后的文件(在步骤650中示出为“Y”),主动提供的文件被发送到存储器件,且其中在步骤640中设置了 m位的每个的值。图7是与FAT32表相关联的示例目录区域700。目录表700仅是用于图示的部分表,且如此,表700并未示出FAT目录条目的所有字段。目录区域700保存在相关文件系统中存储的文件的细节,诸如文件名称、文件大小以及每个文件在相关存储空间中何处开始。文件的细节被保存在以下字段中。字段710保存在相关文件系统中存储的文件的盘操作系统(“DOS”)文件名,字段720保存文件的扩展名,字段730保存文件的各种属性,字段740保存文件的第一簇号(“FCN”)的高16位字(bitword),字段750保存文件的第一簇号(“FCN” )的低部分,且字段760保存文件的大小。每个FCN号指示其中可找到文件的第一逻辑簇。目录区域700的第一条目保持用于称为“REALFILE”的示例文件的信息(在770处示出)。REALFILE770具有文件扩展名“DAT”,其FCN是“00000002” (在755处示出)且其大小是“0000 24E4”。在表700中的数字以十六进制值示出。作为标准的一部分,属性值“00”(在780处示出)和“20”(未在图7中示出)指的是“常规”文件,而属性值“02”指的是在文件系统中隐藏的文件。文件名“\xE5Consign”指示删除的文件,而“\xE5”意味着文件名的第一字节的值在十六进制中是E5。通过示例,FCN号0000 0002 (在755处示出)指定文件REALFILE的第一簇。图8是根据示例实施例的示例性部分FAT32表800。FAT32表800被示出为双字(“DWORD”)阵列,且值是十六进制的值。参考数字810指示保存FAT32表800的设备的类型,其中“F8”指的是硬盘。FAT32表800包括被指定为簇#1 (在820处示出)、簇#2 (在825处示出),...、和簇#23 (在830处示出)的23个簇。图8将与图7相关联地描述。FAT32表800中的簇可以是文件的第一簇,或其可以指向文件的下一链接的簇,或其可以是文件末尾(“EOF”)指示。再次参考目录区域700,文件REALFILE (在770处示出)的第一 FCN是“00000002”(在755处示出),其指向图8的表800中的簇#2处。如图8所示,簇#2的值(SP,值“000 0003”)指向(在840处示出)簇#3处,其是下一文件的簇。类似地,簇#3的值(SP“0000 0004”)指向簇#4处,其是下一文件的簇。簇#4具有值“OFFF FFFF" (“F”是表示十进制值“15”的十六进制数字),其中“OFFF FFFF”(在850处示出)表示文件的EOF指示,且零值(在860处示出)表示丢弃级别O。因此,文件REALFILE与三个簇(即,簇#2,簇#3,和簇#4)相关联。如上所述,丢弃级别O被分配给不可丢弃文件。注意,具体文件的每个簇的最高十六进制数字被设置为所分配给该文件的相同丢弃优先级。例如,文件REALFILE已经被分配了丢弃级别“0”,且因此,簇#2,#3,和#4的最高有效十六进制数字中的每个具有该值(即,值“ O ”,“ O ”值被加了下划线)。根据另一例子,其FCN是“ 0000 0005 ”文件的“E5Consign”(如在图7中示出的)被分配了丢弃优先级“I”。因此,属于该文件的簇#5到12的每个的最高有效十六进制数字具有值“I”(例如在870处示出)。换句话说,根据本公开,最高有效十六进制数字(或,等同地,与具体可丢弃文件相关联的簇的四个最高位)被设置为与所分配给该具体文件的丢弃优先级对应的相同值。如上所述,用于指示丢弃优先级的最高位的数量m可以不同于四(S卩,m彡4)。图9是根据示例实施例的示例部分NTFS表900。NTFS表900保存文件的细节,诸如文件名称、文件大小等。NTFS表900包括用于保存根据“正常”数据流而改变的文件的“常规”数据(例如数据920)的数据字段910。根据本公开,NTFS表900还包括“丢弃信息”字段915用于保存每个评估的文件的丢弃信息(例如,丢弃信息930)。丢弃信息字段915还可以包括除了丢弃优先级以外的信息。例如,丢弃信息字段915可以包括关于供应该文件的服务器的信息和其文件必须被丢弃的过期时间。不像基于FAT的文件系统,在基于NTFS的文件系统中,所分配给可丢弃文件的丢弃值不限于由一组位规定的最大数。这意味着丢弃值的范围可以自由地选择。例如,丢弃值的范围可以从I到25。NTFS是示例的非FAT文件系统。通常,可以将对应的丢弃值设置在对应于标记的文件的基于非FAT的文件系统条目中的数据字段。图10是根据示例实施例的存储器件的文件系统1000的逻辑布置。存储分配器(例如,图1的存储分配器144)可以保存与其一起操作的存储器件的文件系统1000或文件系统1000的映像,或者存储分配器可以具有对文件系统1000的访问。文件系统1000包括引导部分1010、与文件系统1000相关联的FAT1020、目录表1030、文件区域1040和可丢弃文件区域1050。FAT1020包括可丢弃文件分配区域1025,其包含可丢弃文件的丢弃优先级。目录表1030包括用于访问在存储器件中存储的任何文件(即,可丢弃文件和/或不可丢弃文件)的访问信息。文件区域1040包含不可丢弃文件。索引和数据库区域1045保存可丢弃文件的索引、以及还保存与可丢弃文件相关联的元数据。在索引和数据库区域1045中保存的索引和元数据用于计算丢弃级别,但是在实际的丢弃处理期间不需要它们。可丢弃文件区域1050保存可丢弃文件。图11示范了根据本 公开的文件管理方法。图11将与图1相关联地描述。假设,在时间TO处,两个用户文件(B卩,文件“F1”和“F2”)初始地被存储在存储区域110中。因为文件“F1”和“F2”是用户文件,因此它们被存储在用户区域170中,且由存储分配器144向它们分配的丢弃级别是零。因为存储区域100的总存储容量是T (在1110处示出),且文件Fl和F2被存储在存储器件100中,剩余空闲存储空间190 (见图1)的大小是f (在1120处示出)。假设发行商想要在存储区域110中存储三个主动提供的文件。如上所述,存储分配器14评估在存储器件100中的空闲存储空间190的大小(或在1120处的f)以便确定在存储区域110中存储发行商的三个主动提供的文件是否将不会缩窄为未来的用户文件预留的期望存储使用安全余量(在1130处示出)。如果存储发行商的三个主动提供的文件将缩窄存储使用安全余量1130 (即,期望的存储使用安全余量),存储分配器144将抑制存储这些文件。在该例子中,存储分配器144确定发行商的三个主动提供的文件可以被存储在存储区域110中而不减少存储使用安全余量1130。因此,在时间Tl处,存储分配器144允许存储控制器120在存储区域110中存储发行商的三个主动提供的文件。这三个发行商的主动提供的文件被指定为“Pl”,“P2”,和“P3”。存储分配器144还确定文件P1,P2,和P3将被存储器件100的用户使用的概率,且向这些文件中的每个分配对应的丢弃级别。然后,存储分配器144在FAT表,如在图8中示范的,或在NTFS表中,如在图9中示范的,存储所分配给文件的丢弃级别。
在时间T2处,存储器件100的用户想要在存储区域110中存储另外两个文件(即,文件“F3”和“F4”)。存储分配器144重新评估在存储器件中的空闲存储空间190的大小(或在1120处的f),以便确定在存储区域110中是否存在足够的存储空间来存储这些另外的文件(即,文件F3和F4)。在该例子中,存储分配器144确定当前的空闲存储空间能够容纳文件F3和F4。因此,在时间T2处,存储分配器144允许存储控制器120在存储区域110中存储文件F3和F4。因为文件F3和F4是用户文件,因此文件F3和F4将由存储器件100的用户使用的概率是无关的,这是因为用户文件具有比发行商文件高的存储优先级,而不管用户使用文件F3和F4多少次,甚至即使用户从未使用文件F3和F4。因此,存储分配器144向文件F3和F4分配丢弃级别“0”,且在FAT表,如在图8中示范的,或在NTFS表中,如在图9中示范的,存储所分配的丢弃级别。在时间T3处,存储器件100的用户想要在存储区域110中存储另外一文件(即,文件“F5”)。存储分配器144重新评估在存储器件100中的空闲存储卡190的大小(或在1120处的f),以便确定在存储区域110中是否存在足够的存储空间来存储该另一文件(即,文件F5)。在该例子中,存储分配器144确定当前的空闲存储空间能够容纳文件F5。因此,在时间T3处,存储分配器144允许存储控制器120在存储区域110中存储文件F5。如图11所示,存储用户文件F5缩小了存储使用安全余量。也就是说,在文件Fl到F5和Pl到P3被存储在存储区域110中之后剩余的在存储区域110中的空闲存储空间f小于存储使用安全余量1130。因此,存储分配器144通过移除发行商的文件(S卩,P1,P2,和P3)之一来复原(reinstate)或恢复存储使用安全余量。通过移除(即删除)一个或多个发行商文件来复原或恢复存储使用安全余量是因为,如上所述,用户文件具有最大的存储优先级。如上所述,由存储分配器144基于存储分配器144分配给每个存储的可丢弃文件的丢弃优先级,来作出应该从存储区域110移除哪个发行商文件或哪些发行商文件的决定。返回到图11,假设在存储的发行商文件Pl到P3中,发行商文件P3被分配了最高丢弃优先级(例如,13)。因此,在时间T4处,从存储区域110移除文件P3,因此扩大空闲存储空间190。因为在时间T4处的空闲存储空间190的大小(在1120处的f)大于存储使用安全余量1130,因此不需要移除任何更多的发行商文件。存储器件100的用户可能想要移除一个或多个用户文件。在时间T5处,用户移除了他的两个文件(即,文件F4和F5),因此进一步扩大了空闲存储空间190。文件F4和F5的移除与空闲存储空间190的大小或存储使用安全余量无关,这是因为如在此陈述的,重新获得空闲存储空间或恢复存储使用安全余量通过移除需要的数量的可丢弃文件来进行。假设,发行商想要在存储区域110中存储另一主动提供的文件。如上所述,存储分配器144评估空闲存储空间190的大小(在1120处的f)以便确定在存储区域110中存储发行商的主动提供的文件是否将不缩小存储使用安全余量1130。如果存储发行商的新主动提供的文件将缩窄存储使用安全余量1130,则存储分配器144将抑制存储该文件。在该例子中,存储分配器144确定发行商的新主动提供的文件(B卩,文件“P4”)可以被存储在存储区域Iio中而不减少存储使用安全余量1130。因此,在时间T6处,存储分配器144允许存储控制器120在存储区域110中存储发行商的文件P4。存储分配器144还确定文件P4将被存储器件100的用户使用的概率,并向该文件分配对应的丢弃级别。然后,存储分配器144在FAT表,如在图8中示范的,或在NTFS表中,如在图9中示范的,存储所分配给文件P4的丢弃级别.存储新发行商的文件和新用户文件和移除所存储的文件的处理可以继续同时每次向存储器件110添加新文件时,存储分配器144评估空闲存储空间190的当前大小,并确定必须从存储区域110移除哪个发行商文件或哪些发行商文件(如果移除的话)。假设向可丢弃文件分配丢弃级别可以基于例如用户体验或偏好、基于用户的全球定位系统(“GPS”)位置和/或其他标准。例如,如果存储器件的用户好像(基于先前的用户体验)喜欢特定类型的音乐,则如果发行商的文件包含用户最喜欢的音乐类型之一的音乐,存储分配器可以向该文件分配相对低的丢弃优先级(例如,在I到15的范围内的3)。但是,如果用户(即,基于先前用户体验)不喜欢发行商的音乐,存储分配器可以向相关发行商的文件分配较高的丢弃优先级(例如,在I到15的范围内的12).用于向可丢弃文件分配丢弃级别的标准可以包括文件的预期使用、与使用该文件相关联的预期收益、文件的类型、文件的大小、文件在存储器件中的位置、文件的年代和在此指定的其他标准或参数。其他标准、无论单独或结合在此描述的任意标准,可以类似地使用,且可以使用一个或多个标准来进行丢弃级别的分配。另外,可以使用不同标准来向不同可丢弃文件分配丢弃级别。在另一例子中,如果发行商想要向用户发送与位置有关的广告(即,与具体位置内呈现的产品或服务相关的广告),则存储分配器可以向发行商的广告分配根据用户的变化的位置而改变的丢弃优先级。也就是说,用户离具体位置越远,丢弃级别将越高,这是因为依据变得远离具体位置,可假设用户对消费在该具体位置处呈现的产品或服务不敢兴趣。如上所述,在FAT中记录可丢弃文件的簇链,其中一标志将与FAT32条目相关的文件标识为可丢弃文件。通常,该标志在每个FAT32条目的四个最高有效位中。因为簇链可以分配给可丢弃文件,但不与不可丢弃的文件相关联,因此有可能诸如chkdsk或fsck.vfat的工具(utility)将把可丢弃文件转变为不可丢弃文件(也称为“真实”文件),由此降低文件系统160的安全性。另外,存在风险:一些FAT回复工具将复位在FAT32条目中的可丢弃文件的标志。FAT32文件系统检查和修复工具通常遍历(step through)文件系统,且应用规则以便修正通常错误。通常,这些工具可以在FAT中查找在目录表内的第一簇号(FCN)列中的不具有对应的条目的簇链。这些工具将在FAT中的不具有任何目录或文件条目的簇分配视为未说明的(unaccounted)数据脆片(也称为孤簇(orphan clusters)),且这些工具可以删除这些孤簇或在目录表中建立对应的文件条目。因为在此描述的可丢弃文件系统可能利用原本将被认为是孤簇的簇,因此这些工具可能不适当地将可丢弃文件转变为不可丢弃文件,或整个移除可丢弃文件。为了解决这些问题,在一些实施方式中,存储分配器144可以将可丢弃文件与主FAT中的簇链相关联,其中,该簇链隐藏可丢弃文件的物理位置,且存储分配器144在可丢弃FAT、数据库或一个或多个位置文件中存储该文件的物理位置。通常,可丢弃FAT、数据库或一个或多个位置文件对主FAT来说不可见,且在一些实施方式中,与可丢弃FAT、数据库、或一个或多个位置文件相关联的属性可以被使能以防止主机操作系统访问该可丢弃FAT、数据库或一个或多个位置文件。
如之前注意的,FAT32中的每个条目是32位,但仅使用较低的28位。通常,较高的四位被预留且被设置为零。(需要FAT32的兼容实施方式来在较高的四位被设置在分配的簇上的情况下忽略较高的四位,且当写新的FAT条目时将较高的四位设置为零。)用与可丢弃文件相关联的每个簇链的FAT条目的较高(upper)四位内的标志来区分可丢弃文件与不可丢弃文件。标准FAT32驱动器将可丢弃文件看作已分配的空间,且不会写在它们上。但是,存储分配器144可以周期性地进行诸如参考图5所描述的那些操作,以便在存储器件110中维持空闲空间分配,且可以恢复分配给可丢弃文件的空间。通过使用主FAT和可丢弃FAT、数据库和一个或多个位置文件中的至少一个,可以扩展主FAT。当结合在文件分配表查找逻辑中的分支使用扩展的主FAT时,使得如果FAT条目的较高四位非零,则替代在主FAT中的FAT条目,使用在可丢弃FAT、数据库或一个或多个文件中的反映可丢弃文件的物理位置的信息。由于在可丢弃FAT、数据库或一个或多个位置文件中的信息覆写主FAT的FAT条目中的值,因此诸如chkdsk和fsck.vfat的工具将不把可丢弃文件转变为不可丢弃文件,这是因为这些工具将可丢弃文件的簇视为与可丢弃FAT、数据库或一个或多个位置文件中的目录或文件条目相关联。而且,FAT恢复工具将不复位FAT32中的指示一个文件是可丢弃文件的标志,这是因为诸如chkdsk和fsck.vfat的工具将与可丢弃文件相关的簇视为与可丢弃FAT、数据库或一个或多个位置文件中的目录或文件条目相关联,而不是作为空闲空间。当文件系统160利用主FAT1200和可丢弃FAT1201时,为了存储已经被标记为可丢弃文件的文件,存储分配器144更新如图12a所示的主FAT1200来将分配给可丢弃文件的簇链1202与该文件相关联。通常,簇链1202可以与相关联于簇链1201的可丢弃文件相同大小或大于该可丢弃文件。在一些实施方式中,簇链1202在主FAT中遮蔽可丢弃文件的物理位置。通常,如上参考图7和8描述的,开始于条目1204的簇链中的每个簇指向簇链1202的下一顺序的簇,直到如条目1206中示出的诸如IFFF FFFF的值指示簇链1202的结尾。但是,在其他实施方式中,簇链的每个簇可以具有诸如IFFF FFFF的值,指示该簇是个别分配的簇,而不是指向簇链的下一顺序。簇链1202的第一条目1204指向可丢弃FAT1201中的对应条目1208,如图12b所示。如以上参考图7和8描述的,对于每个文件,在可丢弃FAT1201内的簇链1202中的每个簇指向该文件的下一顺序的簇,直到诸如条目1210中示出的IFFF FFFF的值指示文件的EOF。应该理解,一个簇链1202可以与多于一个文件相关联。例如,如图12b所示,簇链1202包括用于第一文件1212的从簇#6 (元素1208)到簇#9 (元素1210)的第一组簇,且包括用于第二文件1214的从簇#10到簇#11的第二组簇。另外,应该理解,主FAT1200和对应的可丢弃FAT1201可以包括多于一个簇链。例如,如图12a和12b所示,主FAT可以包括簇#6到簇#11的簇链1202,且可以包括簇#20到簇#22的第二簇链1216。在其他实施方式中,不使用主FAT1200和可丢弃FAT1201,文件系统可以使用主FAT1200来将一个或多个文件与如上所述的簇链相关联且利用数据库或一个或多个分开的位置文件代替可丢弃FAT,来存储与簇链相关的一个或多个可丢弃文件的物理位置。数据库或位置文件可以是存储在文件系统的不可丢弃区域中的文本文件或二进制文件。
图13是用于使用FAT和可丢弃FAT来管理存储器件的方法。图13将与图1相关联地描述。在步骤1310,主机1410接收在存储器件100中存储文件142的请求。在一些实施方式中,存储分配器144基于与该文件相关的一个或多个写请求来得出在存储器件100中存储文件142的请求。在步骤1320,存储分配器144在与上述存储器件100相关的文件系统结构中标记该文件为“可丢弃”或为“不可丢弃”。在步骤1320中,也在给文件分配丢弃优先级的意义上标记文件。在步骤1330,当该文件是可丢弃文件时,存储分配器144更新主FAT来将分配给该文件的簇链与该文件相关联。在步骤1340,存储分配器144更新可丢弃FAT来反映该文件在存储器件100中的物理位置。在步骤1350中,存储分配器144 (通过与存储控制器120通信)基于标记的文件且根据可丢弃FAT来管理存储器件100的存储区域,或管理被存储在存储区域110中的文件。存储区域的管理类似于以上参考图5所描述的。图14是用于使用FAT和数据库来管理存储器件的方法。图14将与图1相关联地描述。在步骤1410,主机140接收在存储器件100中存储文件142的请求。在步骤1420中,如上所述,存储分配器144在与上述存储器件100相关联的文件系统结构中标记该文件为“可丢弃”或为“不可丢弃”。在步骤1420中,也在给该文件分配丢弃优先级的意义上标记该文件。在步骤1430,当该文件是可丢弃文件时,存储分配器144更新FAT来将分配给该文件的簇链与该文件相关联。在步骤1440,存储分配器144更新数据库来反映该文件在存储器件100中的物理位置。在步骤1450中,存储分配器144基于FAT和数据库来(通过与存储控制器120的通信)管理存储器件100的存储区域,或管理被存储在存储区域110中的文件。图15是用于使用FAT和位置文件来管理存储器件的方法。图15将与图1相关联地描述。在步骤1510,主机140接收在存储器件100中存储文件142的请求。在步骤1520中,如上所述,存储分配器144在与上述存储器件100相关联的文件系统结构中标记该文件为“可丢弃”或为“不可丢弃”。在步骤1520中,也在给向该文件分配丢弃优先级。在步骤1530,当该文件是可丢弃文件时,存储分配器144更新FAT来将被分配给该文件的簇链与该文件相关联。在步骤1540,存储分配器144更新位置文件来反映该文件在存储器件100中的物理位置。在步骤1550中,存储分配器144基于FAT和位置文件来(通过与存储控制器120通信)管理存储器件100的存储区域,或管理存储在存储区域I中的文件。在其他实施方式中,为了增强安全性,且为了防止文件系统被诸如dosf sck (也已知为fsck.vfat)或chkdsk的文件系统集成工具破坏或损毁,存储分配器144在可丢弃文件区域中不按顺序向簇链分配簇,以保证在不读存储可丢弃文件的物理位置的可丢弃FAT、数据库、或一个或多个位置文件的情况下不能重建簇链。另外,在FAT中生成与簇链的打乱的簇中的一个或多个相关联的范围文件,以便诸如dosf sck的工具将不把可丢弃文件转变为不可丢弃文件,或复位该文件的较高位中的指示该文件是可丢弃的标志。在一些实施方式中,可以使能诸如隐藏、系统、目录或卷属性的与范围文件相关的属性,来防止主机操作系统访问这些范围文件。
图16是图示了包括簇链的FAT的图,其中,组成该簇链的两个或多个簇的顺序已经被打乱。如图16所示,构成在条目1602处开始的簇链的簇不连续。例如,在条目1602处开始的簇链的顺序是簇#13、簇#9、簇#7、簇# 18、和簇#21。在FAT中,每个簇的值指向簇链中的下一簇,如以上图7和8描述的。除了打乱构成与一个或多个文件相关联的簇链的簇的顺序以外,还可以在FAT中建立包括与该文件相关联的簇链的一个或多个簇的一个或多个范围文件。在一些实施方式中,每个范围文件可以表示在作为簇链的一部分的簇的一范围内的所有簇。由于在范围文件和构成簇链的簇之间的关联,因此诸如chkdsk或fsck.vfat的工具将不把可丢弃文件转变为不可丢弃文件,且FAT恢复工具将不复位FAT32条目中的指示该文件是可丢弃文件的图17是图示在FAT中建立的一个或多个范围文件的图表,每个范围文件存储在条目1602处开始的簇链的至少一个簇。例如,第一范围文件1604存储来自在条目1602处开始的簇链的簇#7和簇#9,且第二范围文件1606存储来自在条目1602处开始的簇链的簇#13、簇 #18、和簇 #21。范围文件可以存储来自多于一个簇链的簇。例如,除了以上所列的来自开始于条目1602处的簇链的簇以外,第一范围文件1604可以存储来自开始于条目1608处的簇链的簇#5和簇#10。类似地,除了以上所列的来自开始于条目1602处的簇链的簇以外,第二范围文件1606可以存储来自开始于条目1608处的簇链的簇#16、簇#17、和簇#22。图18是用于使用FAT管理存储器件的方法的流程图,其中,组成簇链的两个或更多簇的顺序被打乱。图18将与图1相关联地描述。在步骤1810,主机140接收在存储器件100中存储文件142的请求。在步骤1820中,如上所述,存储分配器144在与存储器件100相关联的文件系统结构中标记该文件为“可`丢弃”或为“不可丢弃”。在步骤1820中,也在给该文件分配丢弃优先级的意义上标记该文件。在步骤1830,当该文件是可丢弃文件时,存储分配器144更新FAT来将分配给该文件的簇链与该文件相关联。在步骤1840,在FAT内,基于以下来打乱与该文件相关的簇链的两个或更多簇的顺序:诸如存储器件100内的存储器的量、簇链的总大小、在簇链的两个顺序簇之间的簇的数量、和/或闪存管理算法,该闪存管理算法可以考虑擦除块大小、在分配的块中每个逻辑地址的物理块地址、和/或与物理块地址相关联的每个页的损耗平衡数据的闪存管理算法。在一些实施方式中,使用提供在先前没有被分配的每个簇的范围内的偏移量的伪随机数生成器或熵随机数生成器来打乱簇链的两个或多个簇的顺序。在一些实施方式中,使用考虑来自主机系统140和/或存储器件100的不确定值的单向哈希函数(one-way hash function)来打乱簇链的两个或多个簇的顺序。在步骤1850,在FAT中建立第一范围文件,该第一范围文件包括与第一文件相关联的簇链的至少一个簇。在步骤I860,存储分配器144 (通过与存储分配器120通信)基于FAT和范围文件来管理存储器件100的存储区域110,或管理在存储区域110中存储的文件。在其他实施方式中,该文件系统可以实现转换锁,来保证当可丢弃文件打开时该可丢弃文件不被转换为不可丢弃文件。举例而言,一可放弃文件在以下时间段期间可以是打开的:在例如向存储器件100下载可丢弃文件期间或在与可丢弃文件相关的数据被发表给公众之前的时间段期间、诸如当在与关于可丢弃文件的电影、歌曲或节目相关的发表日期之前向存储器件100下载可丢弃文件时。通常,这些转换锁工作以便使得当设置了转换锁时可丢弃文件不能被转换为不可丢弃文件。图19是用于在实现主FAT和可丢弃FAT的文件系统中使用转换锁(conversionlock)来防止当可丢弃文件打开时转换可丢弃文件的方法。图19将与图1相关联地描述。在步骤1910,存储分配器144接收将可丢弃文件转换为不可丢弃文件的请求。在步骤1920,存储分配器144标识与可丢弃文件相关的转换锁标识符的值。在步骤1930,存储分配器144基于转换锁标识符的值来确定是否可以将可丢弃文件转换为不可丢弃文件。通常,存储分配器144当转换锁标识符的值指示可丢弃文件打开时确定可丢弃文件不可转换,且存储分配器144当转换锁标识符的值指示可丢弃文件未打开时确定可丢弃文件可以被转换。如果存储分配器144在步骤1930确定可丢弃文件不可转换为不可丢弃文件,则存储分配器144在步骤1940禁止标记可丢弃文件为不可丢弃的。但是,如果存储分配器144在步骤1930确定可丢弃文件可以被转换为不可丢弃文件,存储分配器144在步骤1950继续在与存储器件100相关的文件系统结构中标记该文件为不可丢弃的文件;在步骤1960更新主FAT来反映该文件的物理位置;以及在步骤1970更新可丢弃FAT来移除该文件的物理位置。将理解,当代替可丢弃FAT将数据库或位置文件与主FAT —起使用时,如上所述,用转换锁来实现类似方法。在一些实施方式中,基于与应用相关联的标识符可以允许该应用进行诸如将可丢弃文件转换为不可丢弃文件、或检查转换锁标识符的值的操作。通常,建立或下载可丢弃文件的应用可以将用户标识符(ID)与可丢弃文件相关联。用户ID可以是标识建立了可丢弃文件的应用或用户的所有者用户ID。在一些实施方式中,所有者用户ID是4字节值。文件系统160向所有者用户ID提供界定何种与其他用户或应用相关联的附加用户ID可以访问可丢弃文件以及这些附加的用户ID可以针对可丢弃文件采取何种动作的能力。将理解,取决于可丢弃文件的使用,附加的用户ID可以与单个应用或单个用户相关联,或者附加的用户ID可以是与多个应用或多个用户相关联的共享用户ID。在一些实施方式中,所有者用户ID可以允许与附加用户ID相关的应用来访问与可丢弃文件相关的预览数据。预览数据可以是可丢弃文件的一部分,其中,在其他实施方式中,预览数据不同于该可丢弃文件、但与该可丢弃文件相关联。在一些示例实施方式中,可丢弃文件可以是电影,且预览数据可以包括与电影相关联的电影预告片;可丢弃文件可以是电视节目,且预览数据可以包括电视节目的一部分;可丢弃文件可以是音乐数据,且预览数据可以包括音乐数据的一部分;或可丢弃文件可以是软件程序,且预览数据可以包括软件程序的演示版本。在其他示例实施方式中,可以使用预览数据以便在与可丢弃文件相关联的发表日期之前,可丢弃文件不可访问,但可以访问与可丢弃文件相关联的预览数据,且然后在发表日期之后,可丢弃文件和预览数据两者皆可访问。在另一例子中,所有者用户ID可以允许与附加用户ID相关联的应用基于与可丢弃文件相关联的用户ID来向可丢弃文件与。在一些实施方式中,该文件系统可以为所有者用户ID提供许可位掩码,来定义与附加用户ID相关的应用可以针对可丢弃文件进行什么操作。典型的使用情景的许可位掩码的一个例子在图20中示出。但是,应该理解,所有者用户ID可以覆写(override)图20所示的许可,且向附加用户ID分配任何许可。参考图20所不的许可,设置了性质写入许可位(properties write permissionbit)2002的应用可以修改属性,诸如使能或禁用转换锁、设置时间戳、或写入消费意向通用资源指示符(“URI”),且具有性质读取许可位2004组的应用可以读取属性,诸如转换锁、时间戳或消费意图的URI。设置了优先级许可位2006的应用可以修改可丢弃文件的优先级。设置了预览读取许可位2008的应用可以读与可丢弃文件相关联的预览数据,且设置了预览写入许可位2010的应用可以写入与可丢弃文件相关联的预览数据。设置了读取许可位2012的应用可以读取可丢弃文件,且设置了写入许可位2014的应用可以向可丢弃文件写入。通常,仅与关联于可丢弃文件的所有者用户ID相关联的应用将具有这些许可。设置了转换许可位2016的应用可以将可丢弃文件转换为不可丢弃文件。注意,在此公开的在相关联的文件系统中标记文件并向它们分配丢弃级别的方法可以具有许多有用的应用,其中之一是恢复存储使用安全余量来保证用户文件的足够存储空间。例如,被分配给文件的丢弃级别可以被用于将文件簇重新映射到较低性能的闪存模块,或用于在请求时清除这些簇。用于大文件的智能高速缓存继管理数据的方法(也称为智能高速缓存)以及在2008年12月16日提交的待审的美国专利N0.12/336,089中和在2009年3月10日提交的待审美国临时申请N0.61/159,034(两者被引用附于此)中描述的智能高速缓存的描述和特征进一步而言,提供用于大(large)可丢弃文件的智能高速缓存技术。该大文件智能高速缓存、也在此称为智能高速缓存HD包括自以上公开的各种改变和扩展。智能高速缓存HD不同于智能高速缓存之处在于其通过添加大文件管理器而支持大于4GB的文件,该大文件管理器在转换时智能地处理这种文件的分裂(split),同时在它们是可丢弃的时维持它们的大(MGB)状态。具体地,这允许这些文件的管理和检索以及其作为单个单元而不是一系列更小的文件的它们的丢弃。组件在图21的方框图中描述了智能高速缓存组件。智能高速缓存组件2100可以结合多个操作系统(诸如ANDROID, WINDOWS或LINUX)中任一来操作。或者,在此讨论的智能高速缓存技术可以在存储介质、诸如没有操作系统的存储卡上实现。为智能高速缓存HD添加的新组件是大文件管理器2102,其处理在大小上大于4GB的文件。以下更详细地描述大文
件管理器。大的可丢弃文件包含可丢弃文件的文件系统在概念上被组织为如图22的文件系统结构所示。文件系统在结构上类似于在SD-HC (和对应的高容量μ SD)卡中建立的标准FAT32文件系统。在可丢弃文件HD实施方式中,可丢弃文件被存储在阴影FAT (shadow FAT)中。阴影FAT原始的两个FAT表使用指示文件的优先级而不是其实际链的OxpFFFFFFF (EOF)或0χρ00000000(未分配)来分配可丢弃簇。如果最高位元是非零,咨询第三FAT表以确定实际的族链序列。不像在原始的两个FAT表中,可丢弃FAT(DFAT)可以包含长于4GB的族链。目录表
可丢弃文件的目录条目具有以下元素。将可以加密的元素表示为在系统的加密变体中的blob (binarylarge objects, 二进制大对象),其可以被统一到单个blob中。在此描述这些字段:
权利要求
1.一种用存储设备管理文件的方法,该方法包括:在操作性地耦合于主机的存储设备中,所述存储设备具有包括用户文件、空闲空间和可丢弃文件的存储区域,所述存储设备: 在可丢弃文件系统数据结构中标识空闲簇的记录; 从主机接收在存储区域中存储用户文件的请求; 确定与请求中的数据相关联的逻辑块地址(LBA)是否处于与可丢弃文件系统数据结构中的该记录中的簇相关联的逻辑块地址的范围中;以及 当LBA处于该范围中且在该范围中存在可用空闲空间时: 将用户文件的LBA映射到在可丢弃文件系统数据结构中标识的空闲簇;以及 随后,从所述可丢弃文件系统数据结构中,移除映射到用户文件的LBA的簇。
2.根据权利要求1的方法,还包括: 当LBA处于该范围中且在该范围中不存在可用的空闲的空间时: 丢弃至少一个可丢弃文件以创建空闲簇; 将用户文件的LBA映射到通过丢弃该至少一个可丢弃文件而创建的空闲簇;以及 随后,从所述可丢弃文件系统数据结构中,移除映射到用户文件的LBA的簇。
3.根据权利要求2所述的方法,其中所述簇包括逻辑簇。
4.根据权利要求2所述的方法,还包括在所述存储设备的存储区域中维持主机文件系统数据结构、和与主机文件 系统数据结构独立地维持所述可丢弃文件系统数据结构,所述可丢弃文件系统数据结构包括对应于存储区域中的至少一个可丢弃文件的存储区域中簇的列表,其中,在主机文件系统数据结构中将所述至少一个可丢弃文件标识为空闲空间。
5.根据权利要求4所述的方法,其中,所述可丢弃文件系统数据结构包括表格、哈希映射、二进制树、阵列或列表中的一种。
6.根据权利要求2所述的方法,其中,丢弃所述至少一个可丢弃文件包括所述存储设备独立于主机操作系统地标识最低优先级的可丢弃文件且丢弃所标识的最低优先级的可丢弃文件。
7.根据权利要求4所述的方法,其中当LBA在该范围之外时: 将所述LBA与存储区域中的空闲物理扇区相关联;以及 更新所述主机文件系统数据结构以反映所述关联。
8.根据权利要求1所述的方法,还包括所述存储设备通过读取所述主机文件系统数据结构以标识空闲簇、且更新所述可丢弃文件系统数据结构以包括所述存储器区域中的该空闲簇的至少一部分,来检测当前空闲簇。
9.根据权利要求8所述的方法,其中,更新所述可丢弃文件系统数据结构包括仅将在至少N个空闲簇的连续系列中布置的空闲簇包括在所述可丢弃文件系统数据结构中,其中,N是等于存储设备中的擦除块大小的簇的倍数。
10.根据权利要求8所述的方法,其中,所述存储设备响应于触发事件而开始检测当前空闲族的步骤。
11.根据权利要求10所述的方法,其中,所述触发事件包括所述存储设备检测到在可丢弃文件系统数据结构中包括的空闲簇的数量小于阈值空闲簇量。
12.根据权利要求10所述的方法,其中,所述触发事件包括检测到对主机文件系统数据结构的主机写。
13.根据权利要求10所述的方法,其中,所述触发事件包括所述存储设备从主机接收指示已经删除了用户文件的通知信号。
14.一种用于与主机可移除地连接的存储器件,该存储器件包括: 具有用户文件、空闲空间和可丢弃文件的存储区域;以及 控制器,与所述存储区域通信,其中,所述控制器被配置以: 在可丢弃文件系统数据结构中标识空闲簇的记录; 从主机接收在存储区域中存储用户文件的请求; 确定与请求中的数据相关联的逻辑块地址(LBA)是否处于与可丢弃文件系统数据结构中的该记录中的簇相关联的逻辑块地址的范围中;以及 当LBA处于该范围中且在该范围中存在可用的空闲空间时: 将用户文件的LBA映射到在可丢弃文件系统数据结构中标识的空闲簇;以及 随后,从所述可丢弃文件系统数据结构中,移除映射到用户文件的LBA的簇。
15.根据权利要求14所述的存储设备,其中,所述控制器还被配置以当LBA处于该范围中且在该范围中不存在可用的空闲空间时: 丢弃至少一个可丢 弃文件以创建空闲簇; 将用户文件的LBA映射到通过丢弃至少一个可丢弃文件而创建的空闲簇;以及 随后,从所述可丢弃文件系统数据结构中,移除映射到用户文件的LBA的簇。
16.根据权利要求15所述的存储设备,其中所述簇包括逻辑簇。
17.根据权利要求15所述的存储设备,其中,所述控制器还被配置以维持主机文件系统数据结构、和与主机文件系统数据结构独立地维持所述可丢弃文件系统数据结构,所述可丢弃文件系统数据结构包括对应于存储区域中的至少一个可丢弃文件的存储区域中簇的列表,其中,在主机文件系统数据结构中将所述至少一个可丢弃文件标识为空闲空间。
18.根据权利要求17所述的存储设备,其中,所述可丢弃文件系统数据结构包括表格、哈希映射、二进制树、阵列或列表中的一种。
19.根据权利要求17所述的存储设备,其中,所述控制器被配置以通过独立于主机操作系统地标识最低优先级的可丢弃文件且丢弃所标识的最低优先级的可丢弃文件,来丢弃所述至少一个可丢弃文件。
20.根据权利要求17所述的存储设备,其中,所述控制器还被配置以响应于确定LBA处于该范围之外: 将所述LBA与存储区域中的空闲物理扇区相关联;以及 更新所述主机文件系统数据结构以反映所述关联。
21.根据权利要求17所述的存储设备,其中,所述控制器被配置以通过读取所述主机文件系统数据结构以标识空闲簇、且更新所述可丢弃文件系统数据结构以包括所述存储器区域中的该空闲簇的至少一部分,来检测当前空闲簇。
22.根据权利要求21所述的存储设备,其中,所述控制器被配置以更新所述可丢弃文件系统数据结构包括仅将在至少N个空闲簇的连续系列中布置的空闲簇包括在所述可丢弃文件系统数据结构中,其中,N是等于存储设备中的擦除块大小的簇的倍数。
23.根据权利要求21所述的存储设备,其中,所述控制器被配置以响应于触发事件而开始检测当前空闲簇的步骤。
24.根据权利要求23所述的存储设备,其中,所述触发事件包括通过控制器检测到在可丢弃文件系统数据结构中包括的空闲簇的数量小于阈值空闲簇量。
25.根据权利要求23所述的存储设备,其中,所述触发事件包括对主机文件系统数据结构的主机写。
26.根据权利要求23所述的存储设备,其中,所述触发事件包括通过控制器从主机接收指示已经删除了用户文件的 通知信号。
全文摘要
公开了用于基于卡地管理可丢弃文件的方法和存储设备,其中,在存储设备上的可丢弃文件系统中跟踪可丢弃文件,且这些可丢弃文件对主机文件系统不可见,该主机文件系统仅跟踪用户文件和空闲空间。该方法包括该存储设备检测对应于存储区域中的至少一部分空闲空间的当前空闲的逻辑簇,且确定与随后的用户文件写入请求相关联的地址是否处于由存储设备在可丢弃文件系统中管理的空闲簇的范围。当在主机写入请求中的地址与由可丢弃文件系统管理的空间的地址重叠时,该存储设备必要时丢弃可丢弃文件,且从可丢弃文件系统中移除新释放的簇,以便当需要用于用户文件的空间时重新调整可丢弃文件系统数据结构的大小。
文档编号G06F17/30GK103154948SQ201180048994
公开日2013年6月12日 申请日期2011年8月10日 优先权日2010年8月19日
发明者J.T.林, J.G.哈恩 申请人:桑迪士克以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1