专利名称:可废弃文件的下载管理的制作方法
技术领域:
本发明通常涉及存储器件,且更具体地涉及管理在存储器件中的文件的方法和设备。
背景技术:
近年来已经快速地增加了非易失性的存储器件的使用,因为它们便携且它们具有小的物理尺寸和大的存储容量。在各种设计中出现了存储器件。一些存储器件被视为" 嵌入式",意味着它们不能且不意图由用户从它们所工作的主机设备上移除。其他存储器件是可移除的,这意味着用户可以从一个主机设备(例如,从数码相机)移除它们到另一设备,或用另一个存储器件来替换一个存储器件。在存储器件中存储的数字内容可以来源于存储器件的主机,例如,数码相机、一种示例的主机捕获图像且将它们翻译为对应的数字数据。然后,数据相机在与其一起操作的存储器件中存储数字数据。在存储器件中存储的数字内容还可以来源于远程源其可以通过数据网络(例如,因特网)或通信网络(例如,蜂窝电话网络)向存储器件的主机发送, 且然后由该主机下载到存储器件。远程源可以是例如服务提供者或内容提供者。服务提供者和内容提供者以下统称为"发行商(publishers)"。随着移动手持机内的存储器件在尺寸和容量上增长,内容获取和消费的新场景正变为可行。通常,可以使用手持机来消费从操作员控制的服务器下载的电影和音乐、诸如苹果(Apple)的iTunes服务的市场应用、和来自诸如SanDisk的slotMedia卡的源的侧装 (side-loaded)。但是,在所有这些应用中,用户必须前期搜寻他想要消费的内容,指示并授权该内容的获取,获取该内容,然后消费它。这减少内容所有者提供用于随时消费的内容的能力、和用户立即看到他获取的东西而不用等待下载它的能力。产品主导人(initiatives)的数量已经创新了向用户预先载入内容,但是他们都遭受一个共同的缺陷用户必须牺牲其自己的存储容量来存储内容,但不能访问该内容直到购买它之后。必须购买该性能的用户通常不想看到被分配给他们不能实际使用的内容的很大部分。存储器件的用户可以通过从发行商请求媒体内容或广告来意图下载媒体内容和广告。但是,有时,想要提高他们收益的发行商向用户发送内容,而不询问他们的许可,且有时甚至用户不知道这种内容已被下载到他们的存储器件了。发行商向用户发送而不让他们得知的内容在此被称为"自发内容"。通常,主动提供的内容意图由用户在支付之后、或在委托支付给发行商费用之后消费。
通过向用户的存储器件下载主动提供的内容,发行商希望用户将最终消费该主动提供的内容以获得费用,由此增加他们的收益。在存储器件上存储主动提供的内容而不要求用户得知的发行商希望该用户将消费这些内容来获得费用,该发行商的实践在媒体发布领域中被已知为〃预测寄售(predictive consignment)“。但是,主动提供的内容可以仍然存储在存储器件中,而不需要存储器件的用户得知其存在或想要消费它。在存储器件中存储主动提供的内容减少了在存储器件上的可用(即,空闲)用户存储空间,这是从用户的角度不期望的。用户可以找到在存储器件中存在更少空间来用于用户自己的内容(例如, 音乐文件),因为其他人(即,一些发行商)已经占据了存储器件上的部分存储空间,或用户可能必须收回(reclaim)通过删除主动提供的内容而如此获得的存储空间。对占据用户的部分存储空间的该问题的一个部分解决方案包括阻止发行商对存储器件的访问,诸如通过阻止发行商的网站。该解决方案可能对用户是可接受的,但是其从发行商的角度来说是有问题的,因为发行商将得到更少的销售额且损失潜在的收益源。对该问题的另一部分解决方案包括向主机发布内容(即,在这些主机的存储器件中存储内容文件),且当其变得不相关时移除该内容。换句话说,产生了该内容的发行商当该内容变得不相关时从存储器件移除所存储的主动提供的内容。如果已经经过了用于其消费的时间, 或当存在该用户不可能消费它的指示时,主动提供的内容被视为不相关。因此,出现对智能地管理手持存储器、以便用户自由地使用他们的存储器而不受到损失、同时仍然使得内容所有者能够向手持机推送内容的新技术的需要。换句话说,存在解决具有主动提供的文件的问题的需要。具体地,当发行商应该被允许在进行其商业的过程中向存储器件下载主动提供的内容时,这些下载不应该对用户体验具有本质上阻碍的效^ O
发明内容
因此,将有益地能够在存储器件存储主动提供的文件,只要在存储器件中容纳它们所需的存储空间对用户的文件来说不需要,且从存储器件移除主动提供的文件以便为用户文件保证最小尺寸的空闲存储空间。各种实施例被设计来实现这种文件管理,其例子在此被提供。为了解决上述问题,在存储器件中的存储的文件或要存储的文件被标记为在于存储器件相关联的文件系统的结构中是不可废弃或可废弃的。每个标记的文件与其相关联的是废弃优先级。新发行商的文件(即,主动提供的文件)只有在存储器件中存储它不缩窄存储使用安全裕度,才被允许在存储器件中存储,该存储使用安全裕度被预留在期望的裕度之外用于用户文件。另一方面,用户文件即使在它们的存储缩窄了在期望宽度以外的存储使用安全裕度的情况下也被允许存储在存储器件中。但是,在这种情况下,通过从存储器件移除一个或多个可废弃文件来恢复存储安全裕度的期望宽度。可废弃文件如果在其废弃优先级等于或高于(或,低于,如在此描述的)预定废弃阈值的情况下从存储器件移除。下载管理器基于一个或多个下载条件来管理向存储器件的存储区域下载可废弃文件,在一些实施方式中下载管理器可以是存储分配器的部分,下载管理器和存储分配器两者都可以存在于主机、存储器件或两者的组合中的。接收在存储器件的存储区域中存储文件的请求,该文件是可废弃的文件且关联于在与存储器件相关联的数据结构中的数据;在一些实施方式中,数据结构可以包括与存储器件相关的文件系统结构。该文件被标记为可废弃文件。在一些实施方式中,与可废弃文件相关的数据结构的文件系统结构被标记以指示该文件是可废弃文件。在其他实施方式中,文件本身被标记为可废弃文件。下载管理器确定与该请求相关的下载条件来在存储器件的存储区域中存储可废弃文件,且下载管理器基于确定的下载条件来确定是否延迟向存储器件下载可废弃文件。 下载管理器基于是否延迟向存储器件下载可废弃文件的确定来管理可废弃文件向存储器件的下载。在一些实施方式中,下载管理器可以延迟向存储器件下载可废弃文件,直到满足与下载条件相关的参数。然后,可以包括下载管理器的存储分配器基于标记文件是可废弃文件,管理在存储器件的存储区域中存储下载的可废弃文件。
在附图中图示各种示例实施例,意图这些例子不是限制性的。将理解,为了图示的简化和清除,以下引用的图中所示的元件不一定被画成成比例的。而且,被考虑为适当的, 可以在附图之间重复附图标记来指示相同的、对应的或类似的元件。附图中图1是根据示例实施例的存储系统的方框图;图2是根据另一示例实施例的存储系统的方框图;图3是根据示例实施例的存储分配器的方框图;图4是根据示例实施例的用于管理文件的方法;图5是根据示例实施例的用于管理在存储器件中的可废弃文件的存储的方法;图6是用于根据示例实施例的用于标记在FAT 32结构的文件系统中的一个或多个主动提供的文件的方法;图7是与FAT 32表相关联的示例目录区域;图8是根据示例实施例的FAT 32表;
图9是根据示例实施例的NTFS表;
图10是根据示例实施例的基于FAT的文件系统的逻辑图像;以及
图11示范了根据该工况的文件的存储管理方法。
图12a图示示例主要FAT。
图12b图示示例可废弃FAT。
图13是用于使用主要FAT和可废弃FAT来管理存储器件的方法的流程图。
图14是用于使用FAT和数据库来管理存储器件的方法的流程图。
图15是用于使用FAT和位置文件来管理存储器件的方法的流程图。
图16图示了包括簇链的示例FAT,其中,组成该簇链的两个或更多簇的顺序已经被打乱。
图17图示了示例FAT和相关位置文件,其中,FAT包括簇链的示例FAT,其中,组成
该簇链的簇中的两个或更多的顺序已经被打乱。图18是用于使用FAT管理存储器件的方法的流程图,其中,组成簇链的两个或更多簇的顺序被打乱。图19是用于使用转换锁(conversion lock)来防止当可废弃文件在实现主要FAT 和可废弃FAT的文件系统中打开时转换可废弃文件。
图20图示在文件系统中的示例位掩码(mask)用户ID。图21图示智能缓存的客户端侧组件。图22示出可废弃文件的文件系统结构,如为智能缓存HD修改的。图23是用于在智能缓存HD系统中使用的大文件管理器的方框图。图24描述大可废弃文件的转换流程。图25是图示用大文件管理器来处理转换请求的方法的流程图。图26描述作为可以被分裂的文件的例子的Matroska文件结构。图27描述分裂的Matroska文件。图28是用于管理向存储器件的存储区域下载可废弃文件的方法的流程图。
具体实施例方式以下的描述提供示例实施例的各种细节。但是,该描述不意图限制权利要求的范围,但相反说明了本发明的各种原理和实践它的方式。为了解决主动提供的内容和向问题,用户文件被给定了相比于其他文件的存储优先权,且存储使用安全裕度被维持以保证该优先权。“用户文件"是存储器件的用户意图存储或已经同意其在存储器件中存储的文件。例如,用户向她/他的存储器件下载的音乐文件被视为用户文件。被用户请求或同意存储,用户文件被视为"恳求的(solicited)"文件。“其他文件〃在此被称为〃发行商文件〃和〃主动提供的(unsolicited)文件"。“发行商文件"是在存储器件中存储的文件,而用户不请求它或得知它;至少一段时间还没有。用户可能不想要使用主动提供的文件。未使用的主动提供的文件趋于消费在用户的存储器件上的昂贵存储器件。因此,根据在此公开的原理,这种文件只有存储它们不缩窄存储使用安全裕度才被允许以存储在存储器件中。通过维持将被保留用于未来的用户的文件的空闲存储空间(即,存储使用安全裕度)来向用户文件呈现存储优先权。存储使用安全裕度必须被维持以便保证随时需要或期望时可以在存储器件中存储用户文件。如果为了一些原因,存储使用安全裕度比期望的更窄,将从存储器件移除一个或多个主动提供的文件以便恢复存储使用安全裕度。维持存储使用安全裕度保证用于附加的用户文件的存储空间,如果这种文件被下载到存储器件。最后,主动提供的文件在存储文件系统的结构中被标记为"可废弃的",且如果需要,稍后被移除来收回(reclaim)至少维持存储使用安全裕度所需的空闲存储空间。因为用户使用各种可废弃文件的可能性可能在一个可废弃文件和另一个之间不同,因此,根据一个或多个标准,诸如使用文件的可能性、与使用文件相关联的可能的收入、 文件的尺寸、文件的类型、文件的位置、文件的年龄等,预先给每个主动提供的文件(即,每个可废弃文件)分配废弃优先级。例如,可以通过收入的潜在可能来确定废弃优先级。根据另一例子,电影宣传片或广告将具有比实际电影更高的废弃优先权,因为用户通常不喜欢看宣传片和广告。根据另一例子,最可能被用户使用的一个或多个可废弃文件将被分配最低废弃优先级,这意味着这种文件将是从存储器件移除的最后的(一个或多个)文件。换句话说,可废弃文件的使用可能性越高,被分配给该文件的废弃优先级的级别越低。如果即使一个或多个可废弃文件被移除了,期望的存储使用安全裕度也不完全恢复,将从存储器件移除附加的可废弃文件,直到期望的存储使用安全裕度被恢复。简要地,诸如文件系统的数据结构实现用于存储和组织计算机文件的方法。文件系统包括用于存储、层次地组织、操纵、导航、访问和提取数据而实施的抽象数据类型和元数据的集合。抽象的数据类型和元数据形成“目录树”,通过其可以访问、操纵和启动计算机文件(在此也简称为“数据文件”或“文件”)。“目录树”通常包括根目录和可选的子目录。 目录树被存储在文件系统中作为一个或多个“目录文件”。在文件系统中包括的元数据和目录文件的集合在此被称为“文件系统结构”。因此,文件系统包括数据文件和有助于访问、操纵、更新、删除和启动该数据文件的文件系统结构。文件分配表("FAT")是示例的文件系统架构。FAT文件系统与包括DR-D0S, OpenDOS,MS-DOS, Linux, Windows等的各种操作系统一起使用。FAT结构的文件系统使用集中存储关于哪些存储区域是空闲或被分配的和每个文件被存储在存储器件上哪里的信息的表。为了限制该表的尺寸,向在称为"簇"的连续扇区的组中的文件分配存储空间。由于存储器件已经演化,簇的最大数量已经增加且用于标识簇的位的数量已经增长了。FAT格式的版本来源于表位的数量FAT 12使用12位;FAT 16使用16位,且FAT 32使用32位。另一文件系统架构已知为新技术文件系统(〃 NTFS“)。目前,NTFS是Windows NT、包括其稍后的版本 Windows 2000, Windows XP, Windows Server2003, Windows Server 2008,和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卩、删除)用户文件或发行商文件,空闲了的存储空间被添加到(其返回到)空闲存储空间190。空闲存储空间190的尺寸允许她,则存储器件100的用户可以从主机140下载用户文件到存储区域110.下载的用户文件将被存储在空闲存储空间190中,且如以上所述, 保持该文件的存储空间将从空闲的存储空间190减去且被添加到用户区域170.如上所述, 用户文件具有高于其他(例如,发行商)文件的优先权,且为了保证该优先权,期望的存储使用安全裕度被设置,且如果需要,以以下描述的方式恢复。主机140包括存储分配器144来有助于恢复空闲存储空间190。存储分配器144 可以是硬件、固件、软件或其组合。通常,存储分配器144确定向主机140通信的文件(例如文件142)是用户文件还是发行商文件,且然后因此标记所通信的文件(即,作为不可废弃的文件或作为可废弃的文件)。如果存储分配器114确定向主机140通信的文件(例如,文件142)是不可废弃的,例如,因为用户是用户文件,则存储分配器144以常规的方式在存储区域110中存储该文件。如上所述,保持不可废弃文件的存储区域100内的存储空间将被添加到用户区域170 或是用户区域170的部分。但是,如果存储分配器144确定向主机140通信的文件是不可废弃的,例如因为其是发行商文件,则存储分配器144标记该文件作为可废弃的。将理解, 在一些实施方式中,为了标记文件作为可废弃的,存储分配器144标记在文件系统160中的文件系统结构以指示该文件是可废弃文件。在其他实施方式中,为了标记该文件作为可废弃的,存储分配器144标记文件本身作为可废弃文件。如果空闲存储空间190大于期望的存储使用安全裕度,存储分配器144还在空闲存储空间190中存储标记的可废弃文件,且如上所述,保持可废弃文件的空闲存储空间190内的存储空间从空闲存储空间190中减去 (即,空闲存储空间被减去),且向发行商区域180添加(该添加在逻辑上已知为可废弃文件 182)。如上所述,发行商文件可以被用户使用的可能性可能在一个发行商文件和另一个之间变化,这使得具有最小使用概率的发行商文件成为用于从存储区域110移除的第一候选。因此,除了标记文件作为不可废弃的或可废弃的以外,在可废弃文件被存储在存储区域 110中之前、时或之后存储分配器144向每个可废弃文件分配废弃优先级。通过标记文件作为不可废弃的或作为可废弃的,由存储分配器144分配废弃优先级且通过使用存储器件100的文件系统160 (或其映像),存储分配器144"得知〃在存储区域110中的用户文件和发行商文件的数量以及其尺寸和在存储区域110内的逻辑位置。 知道该信息(即,文件的数量、尺寸和位置),且具体地基于一个或多个标记的文件,存储分配器144管理存储区域110和恳求的和主动提供的文件在存储区域110中的存储。管理存储区域110或管理在存储区域110中的文件的存储可以包括例如通过选择性地移除被标记为可废弃的一个或多个文件来恢复存储使用安全裕度,通过移除被标记为可废弃的所有文件来释放存储区域,且将文件的簇重新映射到更低性能的存储模块。管理存储区域110或在此存储的文件可以包括管理存储区域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. io类数的使用。如果存储分配器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或包装的USB/MSC命令,而不是文件级别的命令),所接收的请求处于比文件级别低得多的级别。也就是说,所接收的请求将是在逻辑块地址处存储扇区的请求,当由主机适当的翻译时,该逻辑块地址将对应于一个文件。如果存储控制器220支持NVMHCI协议或诸如NFS或类似协议的联网文件系统协议,存储控制器220可以得到文件级别的请求。因此,在诸如存储控制器220的存储控制器和诸如接口 330的接口之间的通信不限于NVMHCI或类似于NVMHCI的实施方式。通信接口 330可以与存储分配器300是一体的,如图3所示。处理器320还被配置或适用于向存储器件发送标记文件,标记该文件作为可废弃的包括向该文件分配废弃优先级。如果由存储器件使用的文件系统是基于FAT的,处理器 320通过向m个最高(即,最高有效)位(例如,m = 4)设置对应的值,向标记的文件分配废弃优先级。设置给在FAT条目中的最高位的对应值、或设置给NTFS目录条目的值可以是, 或其可以与文件的属性相关。通过"属性",意味着在FAT表或NTFS表的头标部中的元数据标签或某种数据结构,该FAT表或NTFS表包含属于该表内存储的内容的类型的信息。“ 广告"、“奖励内容"和"推广(空闲)内容"是可以在FAT表或在NTFS表中存储的示例类型的内容。设置废弃级别的替换标准是例如最后访问的文件、文件尺寸、文件类型等。专用于标记文件的FAT32条目的最高位的数量m可以是四个或少于四个,因为不使用那些位。另外,使用更多的位,则可以使用更高的废弃优先级。例如,使用三个位(即, m = 3)提供八个(23 = 8)废弃优先级且使用四个位(即,m = 4)提供十六个(24 = 16)废弃优先级(即,包括废弃优先级"0",其被分配给不可废弃的文件)。换句话说,如果标记的文件是不可废弃的,所述处理器将m个最高位的值设置为0,或如果标记的文件是可废弃的,m个最高位的值则设置为在1和2m-l之间的值。废弃优先级包括标记文件可以或应该从存储器件废弃的优先权。例如,取决于实施方式,值"1"可以表示用最低优先权或用最高优先权可废弃的文件,且值"2m-l"可以分别表示用最高优先权或用最低优先权可废弃的文件。处理器320可以根据文件的预期使用,如上所述结合要由存储器件的用户使用主动提供的文件的概率或可能性,来向标记文件分配废弃优先级。处理器320可以在接收到在存储器件中存储新文件的每个请求时、或响应于其,更新标记文件的废弃优先级。处理器 320可以与在存储器件中存储文件的一个或多个新请求独立地更新给定的标记文件的废弃优先级。例如,先前是高优先权的文件可以具有在特定时间段之后降低的优先权。处理器 320检测到在存储器件中存储的文件,如果该文件具有与其相关的等于或大于预定废弃阈值的废弃优先级。处理器320可以基于文件写或添加的数量来(重新)设置废弃阈值,或取决于对存储器件上的空闲存储空间的预期使用或新发行商文件的可用性。存储器单元310可以保持包含处理器320向在存储器件中存储的文件分配的废弃优先级的分配表340。另外,分配表340可以保持文件的标识符和将文件与被分配给文件的废弃优先级相关联的信息。分配表340可以另外保持废弃阈值。在分配表340中保持的信息允许处理器320标识可以从存储器件移除哪个或哪些文件来恢复期望的存储使用安全裕度。响应于接收在存储器件中存储新文件的请求,处理器320评估在存储器件上的空闲存储空间的尺寸,且如果存储器件上的空闲存储空间(f)的评估尺寸大约预定尺寸,则在存储器件中存储新文件,或如果其不大于预定尺寸,处理器320在可以删除的存储器件内搜索一个或多个可废弃文件,且在找到这一种或多种文件时,处理器320删除该一个文件或多个文件来扩展当前空闲的存储空间(f),以便扩展空闲存储空间的总尺寸等于或大于预定尺寸。如果与可废弃文件相关联的废弃优先级等于或大于预定废弃阈值(例如,在 1和15之间(包含本数),例如15),可以从存储器件删除可废弃的一个文件或多个文件。在空闲存储空间被扩展足够之后,处理器320允许在扩展空闲存储空间中尺寸新文件。通过"空闲存储空间被扩展足够"来表示通过一个接一个地释放占用的存储空间来扩张空闲存储空间直到总空闲存储卡可以容纳新文件而没有缩窄上述期望的存储使用安全裕度(margin),或最终直到扩展的空闲存储空间的总尺寸等于或大于预定尺寸,或直到移除了所有可废弃文件。控制器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")(该文件以下被称为"DFl") 时,存储分配器144删除文件DFl以便添加或返回其存储空间(该存储空间以下被称为〃 SPl")到存储空间190。然后,在步骤550中,存储分配器144检查扩展的空闲存储空间190(即,空闲存储空间190加上最后返回的存储空间,或f+SPl)是否能够容纳新用户文件。如果扩展的空闲存储空间190(即,f+SPl)仍然不能容纳新用户文件(在步骤550中示出为"N"),存储分配器144迭代地重复步骤550(该迭代在555处示出)以便返回附加的存储空间到空闲存储空间190 (即,通过找到并删除应该被删除的下一可废弃文件)。在找到具有次最高的废弃优先权的下一可废弃文件(该下一可废弃文件以下被称为"DF2")时,存储分配器144删除文件DF2以便释放并添加附加的存储空间(该附加的存储空间以下称为"SP2")来释放存储空间190。然后,在步骤550中,存储分配器 144再次检查扩展的空闲存储空间190 ( S卩,空闲存储空间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可以决定不在存储区域110中存储该新发行商文件。在这种情况下,存储分配器144可以避免对该文件采取任何动作,且不从存储器件中删除文件来释放新发行商文件的存储空间。或者,存储分配器144可以在步骤540中删除一个或多个更高优先权的可废弃文件以便为具有较低废弃优先权的可废弃文件释放存储空间。如上所述,文件被标记到且废弃级别被嵌入到存储器件100的文件系统中,且文件被标记的方式和被嵌入到文件系统中的废弃级别取决于或可以适用于所使用的文件系统。图6是用于根据示例实施例的用于标记在FAT 32结构的文件系统中的主动提供的文件的方法;FAT 32结构的文件系统使用簇。如上结合FAT 32结构的文件系统所述,用于标识FAT 32簇的位的数量是32。图6将与图1相关联地描述。在步骤610中,FAT 32的每个簇的32位的m个最高位(其中m < 4)被分配或专用于标记文件作为不可废弃的或作为可废弃的,如情况可能是这样的,以及用于为每个可废弃文件保持对应的废弃级别。向文件分配废弃级别通过对对应于标记文件的被分配的m 位设置对应值来进行。在步骤620中,存储分配器144评估存储器件100的用户将使用该主动提供的文件的概率级别。使用该文件的概率的评估可以以寄售文件领域的技术人员已知的各种方式来实现。例如,使用该文件的概率的评估可以基于监视使用存储器件的人的位置,和/或监视用户的先前体验和偏好。使用该文件的概率的评估还可以基于例如在FAT表或NTFS表内存储的内容的类型(例如,“广告内容",“奖励内容","推广(免费)内容"等)。 存储分配器144可以使用替换的或附加的标准来评估将使用该文件的概率。例如,它可以使用文件的属性或特征,这可以是、或关联于最后访问的文件、文件尺寸、文件类型等。在存储分配器144评估用户将使用主动提供的文件的概率的级别之后,存储分配器144在步骤630中分配与该主动提供的文件的使用的评估的概率级别对应的废弃优先级。由存储器件100的用户使用主动提供的文件的概率越大,废弃级别越低。如果m等于四位,这意味着废弃范围提供从1(即0001)到15 (即1111)的15个废弃级别。也就是说,向每个不可废弃的文件分配废弃级别0,向具有最低废弃优先权的可废弃文件分配优先级1,且向具有最高废弃优先权的可废弃文件分配废弃级别15。在存储分配器144向主动提供的文件分配对应的废弃级别之后,存储分配器144在步骤640中向与主动提供的文件相关联的簇的四个最高位分配在1和15之间的对应值。如果主动提供的文件具有与其相关联的两个或多个簇,在每个簇中的四个最高位被设置为相同值。在步骤650中,检查主动提供的文件是需要被评估的最后的文件。如果主动提供的文件不是需要被评估的最后的文件(在步骤650中示出为"N"),以上述方式评估另一文件。如果主动提供的文件是需要被评估的最后的文件(在步骤650中示出为"Y"),主动提供的文件被发送到存储器件,每个m位,在步骤640中设置了每个的值。图7是与FAT 32表相关联的示例目录区域700。目录表700仅是用于图示的部分表,且如此,表700不示出FAT目录条目的所有字段。目录区域700保持在相关文件系统中存储的文件的细节,诸如文件名称、文件尺寸和每个文件在相关存储空间中何处开始。文件的细节被保持在以下字段中。字段710保持在相关文件系统中存储的文件的盘操作系统 (“DOS")文件名,字段720保持文件的扩展名,字段730保持文件的各种属性,字段740 保持文件的第一簇号(“FCN")的高16位字,字段750保持文件的第一簇号(“FCN") 的低部分,且字段760保持文件的尺寸。每个FCN号指示文件可以被找到的第一逻辑簇。.目录区域700的第一条目保持用于称为"REALFILE"的示例文件的信息(在770 处示出)。REALFILE 770具有文件扩展名"DAT",其FCN是"00000002"(在755处示出)且其示出是"000024E4"。在表700中的数字以十六进制值示出。作为标准的一部分,属性值"00"(在780处示出)和"20"(未在图7中示出)指的是"常规"文件,而属性值"02"指的是在文件系统中隐藏的文件。文件名"\xE5Consign"指示删除的文件,而"\xE5"意味着文件名的第一字节的值在十六进制中是E5。通过示例,FCN号 00000002 (在755处示出)指定文件REALFILE的第一簇。图8是根据示例实施例的FAT 32表800。FAT32表800被示出为双字(〃 DWORD") 阵列,且值是十六进制的值。参考数字810指示保持FAT32表800的器件的类型,其中〃 F8"指的是硬盘。FAT32表800包括被指定为簇#1(在820处示出),簇#2(在825处示出),...,和簇#23(在830处示出)的23个簇。图8将与图7相关联地描述。FAT32表 800中的簇可以是文件的第一簇,或其可以指向文件的下一链接的簇,或其可以是文件末尾 (“EOF")指示。再次参考目录区域700,REALFILE的第一 FCN (在770处示出) 是〃 00000002〃(在755处示出),其在图8的表800中指在簇#2处。如图8所示,簇#2 的值(即,值"0000003")指在(在840处示出)簇#3处,其是下一文件的簇。类似地, 簇#3的值(即"00000004")指在簇#4处,其是下一文件的簇。簇#4具有值"OFFF FFFF “ (〃 F"是表示十进制值〃 15"的十六进制位),其中〃 FFFFFFF"(在850处示出) 表示文件的EOF指示,且零值(在860处示出)表示废弃级别0。因此,文件REALFILE与其相关联的是三个簇(即,簇#2,簇#3,和簇#4)如上所述,废弃级别0被分配给不可废弃文件。注意,具体文件的每个簇的最高十六进制位被设置为被分配给该文件的相同废弃优先级。例如,文件REALFILE已经被分配了废弃级别"0",且因此,簇#2,#3,和#4的最高十六进制位具有该值(即, 值〃 0",“ 0"值被下划线了)。根据另一例子,其FCN是文件〃 00000005"的〃 E5 Consign"(如在图7中示出的)被分配了废弃优先级"1 “。因此,属于该文件的簇#5到 12的每个的最高十六进制位具有值"1"(例如在870处示出)。换句话说,根据本公开, 最高十六进制位(或,等同地,与具体可废弃文件相关联的簇的四个最高位)被设置为与被分配给该具体文件的废弃优先级对应的相同值。如上所述,用于指示废弃优先级的最高位的数量m可以不同于四(即,m<4)。图9是根据示例实施例的NTFS表900。NTFS表900保持文件的细节,诸如文件名称、文件尺寸等。NTFS表900包括保持根据"正常"数据流而改变的文件的"常规"数据 (例如数据920)的数据字段910。根据本公开,NTFS表900还包括"废弃信息"字段915 用于保持每个评估的文件的废弃信息(例如,废弃信息930)。废弃信息字段915还可以包括除了废弃优先级以外的信息。例如,废弃信息字段915可以包括属于供应该文件的服务器的信息和文件必须被废弃的过期时间。不像基于FAT的文件系统,在基于NTFS的文件系统中,被分配给可废弃文件的废弃值不限于由一组位规定的最大值。这意味着废弃值的范围可以自由地选择。例如,废弃值的范围可以从1到25。NTFS是示例的非FAT文件系统。 通常,可以在对应于标记的文件的基于非FAT的文件系统条目中的数据字段设置对应的废弃值。图10是根据示例实施例的存储器件的文件系统1000的逻辑布置。存储分配器 (例如,图1的存储分配器144)可以保持与其一起操作的存储器件的文件系统1000或文件系统1000的映像,或者存储分配器可以具有对文件系统1000的访问。文件系统1000包括引导部分1010、与文件系统1000相关联的FAT 1020、目录表 1030、文件区域1040和可废弃文件区域1050。FAT 1020包括包含可废弃文件的废弃优先级的可废弃文件分配区域1025。目录表1030包括用于访问在存储器件中存储的任何文件 (即,可废弃文件和/或不可废弃文件)的访问信息。文件区域1040包含不可废弃文件。 索引和数据库区域1045保持可废弃文件的索引,以及与可废弃文件相关联的元数据。在索引和数据库区域1045中保持的索引和元数据用于计算废弃级别,但是在实际的废弃处理器件不需要它们。可废弃文件区域1050保持可废弃文件。图11示范了根据本公开的文件管理方法。图11将与图1相关联地描述。假设, 在时间TO处,两个用户文件(S卩,文件"Fl"和"F2")初始地被存储在存储区域110 中。因为文件"Fl"和"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还确定文件Pl,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"和"F4")。存储分配器144重新评估在存储器件中的空闲存储卡190的尺寸 (或在1120处的f),以便确定在存储区域110中是否存在足够的存储空间来存储该另一文件(即,文件F5)。在该例子中,存储分配器144确定当前的空闲存储空间能够容纳文件F5。因此,在时间T3处,存储分配器144允许存储控制器120在存储区域110中存储文件F5。如图11 所示,存储用户文件F5缩窄了存储使用安全裕度。也就是说,在文件Fl到F5和Pl到P3 被存储在存储区域110中之后维持的在存储区域110中的空闲存储空间f小于存储使用安全裕度1130。因此,存储分配器144通过移除发行商的文件(S卩,PI, 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确定发行商的新主动提供的文件(S卩,文件"P4") 可以被存储在储存区域110中,而不减少存储使用安全裕度1130。因此,在时间T6处,存储分配器144允许存储控制器120在存储区域110中存储发行商的文件P4。存储分配器144 还确定文件P4将被存储器件100的用户使用的概率,并向该文件分配对应的废弃级别。然后,存储分配器144在FAT表,如在图8中示范的,或在NTFS表中,如在图9中示范的,存储被分配给文件P4的废弃级别。存储新发行商的文件和新用户文件和移除所存储的文件的处理可以当每次向存储器件110添加新文件时继续,存储分配器144评估空闲存储空间190 的当前尺寸,并确定必须从存储区域110移除哪个发行商文件或哪些发行商文件(如果还会的话)。
向可废弃文件分配废弃级别可以基于关于用户的全球定位系统(“GPS")位置和/或其他标准的用户体验或偏好。例如,如果存储器件的用户好像(基于先前的用户体验)喜欢特定类型的音乐,则如果发行商的文件包含用户最喜欢的音乐类型之一的音乐, 存储分配器可以向该文件分配相对低的废弃优先级(例如,在1到15的规模内的3)。但是,如果用户不喜欢发行商的音乐(即,基于先前用户体验),存储分配器可以向相关发行商的文件分配较高的废弃优先级(例如,在1到15的规模内的12).用于向可废弃文件分配废弃级别的标准可以包括文件的预期使用、与使用该文件相关联的预期收入、文件的类型、 文件的尺寸、文件在存储器件中的位置、文件的年龄和在此指定的其他标准或参数。其他标准、无论单独或结合在此描述的任意标准,可以类似地使用,且可以使用一个或多个标准来进行废弃级别的分配。另外,可以使用不同标准来向不同可废弃文件分配废弃级别。在另一例子中,如果发行商想要向用户发送与位置有关的广告(即,关于具体位置内呈现的产品或服务的广告),则尺寸分配器可以向发行商的广告分配根据用户的改变的位置而改变的废弃优先级。也就是说,用户离具体位置越远,废弃级别将越高,因为由于离具体位置远,可能假设用户不感兴趣于消费在该具体位置处呈现的产品或服务。如上所述,在FAT中用标识与FAT32条目相关的文件作为可废弃文件的标志来记录可废弃文件的簇链。通常,该标志在每个FAT32条目的四个最高位中。因为簇链可以被分配给可废弃文件,但不具有与它们相关的不可废弃的文件,因此可能诸如chkdsk或fsck. vfat的工具将转变可废弃文件为不可废弃文件,也已知为"真实"文件,由此降低文件系统160的安全性。另外,存在风险一些FAT回复工具将复位在FAT32条目中的可废弃文件的标志。FAT32文件系统检查和修复工具通常步经(st印through)文件系统,且施加规则以便修理通常错误。通常,这些工具可以在FAT中查找在目录表内的第一簇号(FCN)列中的不具有对应的条目的簇链。这些工具处理在FAT中的不具有任何目录或文件条目作为未说明的数据碎片0 (已知为孤立簇(orphan clusters))的簇分配,且这些工具可以删除这些孤立簇或在目录表中建立对应的文件条目。因为在此描述的可废弃文件系统可能利用什么将被另外考虑为孤立簇,因此这些工具可能错误的将可废弃文件转变为不可废弃文件, 或整个移除可废弃文件。为了解决这些文件,在一些实施方式中,存储分配器144可以将可废弃文件与主要FAT中的簇链相关联,其中,该簇链隐藏可废弃文件的物理位置,且存储分配器144在可废弃FAT、数据库或一个或多个位置文件中存储该文件的物理位置。通常,可废弃FAT、数据库或一个或多个位置文件对主要FAT来说不可见,且在一些实施方式中,与可废弃FAT、数据库、或一个或多个位置文件相关联的属性可以被使能以防止主机操作系统访问该可废弃 FAT、数据库或一个或多个位置文件。如之前注意的,FAT32中的每个条目是32位,但仅使用较低的28位。通常,较高的四位被预留且被设置为零。(需要FAT32的兼容实施方式来如果较高的四位被设置在分配的簇上则忽略较高的四位,且当写新的FAT条目时设置较高的四位为零。)用与该文件相关的每个簇链的FAT条目的较高四位内的标志来区分可废弃文件与不可废弃文件。标准 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利用主要FAT 1200和可废弃FAT 1201时,为了存储已经被标记为可废弃文件的文件,存储分配器144更新如图1 所示的主要FAT1200来将被分配给可废弃文件的簇链1202与该文件相关。通常,簇链1201可以是与簇链1201相关的可废弃文件相同的尺寸或大于与簇链1201相关的可废弃文件。在一些实施方式中,簇链1202标记在主要FAT中的可废弃文件的物理位置。通常,如上参考图7和8描述的,在在条目1204中开始的簇链中的每个簇指向簇链1202的下一顺序的簇,直到诸如条目1206中示出的IFFF FFFF的值指示簇链1202的结尾。但是,在其他实施方式中,簇链的每个簇可以具有诸如 IFFF FFFF的值,指示簇是单独分配的簇,而不是指向簇链的下一顺序的簇。簇链1202的第一条目1204指向在可废弃FAT 1201中的对应条目1208,如图1 所示。如以上参考图7和8描述的,对于每个文件,在可废弃FAT 1201内的簇链1202中的每个簇指向该文件的下一顺序的簇,直到诸如条目1210中示出的IFFF FFFF的值指示文件的 EOF。应该理解,一个簇链1202可以与多于一个文件相关联。例如,如图12b所示,簇链 1202包括从第一文件1212的簇#6 (元素1208)到簇#9 (元素1210)的第一组簇,且包括从第二文件1214的簇#10到簇#11的第二组簇。另外,应该理解,主要FAT 1200和对应的可废弃FAT 1201可以包括多于一个簇链。例如,如图12a和12b所示,主要FAT可以包括簇#6到簇#11的簇链1202,且可以包括簇#20到簇#22的第二簇链1216。在其他实施方式中,不使用主要FAT 1200和可废弃FAT 1201,文件系统可以使用主要FAT 1200来将一个或多个文件与如上所述的簇链和数据库或一个或多个分离位置文件相关联,代替可废弃FAT,来存储与簇链相关的一个或多个可废弃文件的物理位置。数据库或位置文件可以是在文件系统的不可废弃区域中存储的文本文件或二进制文件。图13是用于使用主要FAT和可废弃FAT来管理存储器件的方法。图13将与图1 相关联地描述。在步骤1310,主机1410接收在存储器件100中存储文件142的请求。在一些实施方式中,存储分配器144基于与文件相关的一个或多个写请求来得出在存储器件 100中存储文件142的请求。在步骤1320,存储分配器144在与上述存储器件100相关的文件系统结构中标记该文件作为"可废弃"或作为"不可废弃"。在步骤1320中,也在向文件分配废弃优先级的意义上标记该文件。
20
在步骤1330,当文件是可废弃文件时,存储分配器144更新主要FAT来将被分配给该文件的簇链与该文件相关联。在步骤1340,存储分配器144更新可废弃FAT来反映该文件在存储器件100中的物理位置。在步骤1350中,存储分配器144(通过与存储控制器120 的通信)管理存储器件100的存储区域,或基于标记的文件且根据可废弃FAT来管理被存储在存储区域110中的文件。存储区域的管理类似于以上参考图5所描述的。图14是用于使用FAT和数据库来管理存储器件的方法的流程图。图14将与图1 相关地描述。在步骤1410,主机140接收在存储器件100中存储文件142的请求。在步骤 1420中,存储分配器144在与上述存储器件100相关的文件系统结构中标记该文件为"可废弃"或作为"不可废弃"。在步骤1420中,也在向文件分配废弃优先级的意义上标记该文件。在步骤1430,当文件是可废弃文件时,存储分配器144更新FAT来将被分配给该文件的簇链与该文件相关联。在步骤1440,存储分配器144更新数据库来反映该文件在存储器件100中的物理位置。在步骤1450中,存储分配器144(通过与存储控制器120的通信)管理存储器件100的存储区域,或基于FAT和数据库来管理被存储在存储区域110中的文件。图15是用于使用FAT和位置文件来管理存储器件的方法的流程图。图15将与图 1相关地描述。在步骤1510,主机140接收在存储器件100中存储文件142的请求。在步骤1520中,存储分配器144在与上述存储器件100相关的文件系统结构中标记该文件为" 可废弃"或作为"不可废弃"。在步骤1520中,也在向文件分配废弃优先级的意义上标记该文件。在步骤1530,当文件是可废弃文件时,存储分配器144更新FAT来将被分配给该文件的簇链与该文件相关联。在步骤1540,存储分配器144更新位置文件来反映该文件在存储器件100中的物理位置。在步骤1550中,存储分配器144(通过与存储控制器120的通信)管理存储器件100的存储区域,或基于FAT和位置文件来管理被存储在存储区域110 中的文件。在其他实施方式中,为了增强安全,且为了防止文件系统被诸如dosf sck (也已知为fsck. vfat)或chkdsk的文件系统集成工具破坏或损毁,存储分配器144不在可废弃文件区域中顺序地向簇链分配簇,以保证不能在不读可废弃FAT、数据库、或存储可废弃文件的物理位置的一个或多个位置文件的情况下被重建簇链。另外,在FAT中生成与簇链的一个或多个打乱的簇相关的范围文件,以便诸如dosfsck的工具将不转变可废弃文件为不可废弃文件,或复位在文件的较高位中的指示该文件是可废弃的标志。在一些实施方式中,可以使能诸如隐藏、系统、目录或卷属性的与范围文件相关的属性,来防止主机操作系统访问这些范围文件。图16是图示了包括簇链的FAT的图,其中,组成该簇链的两个或多个簇的顺序已经被打乱。如图16所示,包括在条目1602处开始的簇链的簇不连续。例如,在条目1602 处开始的簇链的顺序是簇# 13,簇#9,簇#7,簇# 18,和簇#21。在FAT中,每个簇的值指向在簇链中的下一簇,如以上图7和8描述的。除了打乱包括与一个或多个文件相关的簇链的簇的顺序,可以在FAT中建立包括与该文件相关的簇链的一个或多个簇的一个或多个范围文件。在一些实施方式中,每个范围文件可以表示在作为簇链的部分的簇的范围内的所有簇。由于在范围文件和包括簇链的簇之间的相关,因此诸如chkdsk或fsck. Vfat的工具将不转变可废弃文件为不可废弃文件,且FAT回复工具将不复位在FAT32条目中的指示该文件是可废弃文件的标志。图17是图示在FAT中建立的一个或多个范围文件,该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的通信)管理存储器件100的存储区域110,或基于FAT和范围文件来管理在存储区域110中存储的文件。在其他实施方式中,文件系统可以实现转换锁,来保证当可废弃文件打开时该可废弃文件不被转换为不可废弃文件。可能在例如向存储器件100下载可废弃文件期间或在与可废弃文件相关的数据被发表给公众之前的时间段期间、诸如当在与关于可废弃文件的音乐、歌曲或节目相关的发表日期之前向存储器件100下载可废弃文件时,打开可废弃文件。通常,这些转换锁操作以便当设置了转换锁时可废弃文件不能被转换为不可废弃文件。图19是用于使用转换锁来当可废弃文件在实现主要FAT和可废弃FAT的文件系统中被打开时防止可废弃文件的转换的方法。图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可以优先于图20所示的许可,且向附加用户ID分配任何许可。参考图20所示的许可,设置了特性写许可位(properties write permission bit) 2002的应用可以修改属性,诸如使能或禁用转换锁、设置时间戳、或写消费意图的通用资源指示符(“URI"),且设置了特性读许可位2004的应用可以读属性,诸如转换锁、时间戳或消费意图的URI。设置了优先权许可位2006的应用可以修改可废弃文件的优先级。 设置了预览读许可位2008的应用可以读与可废弃文件相关的预览数据,且设置了预览写许可位2010的应用可以写与可废弃文件相关的预览数据。设置了读许可位2012的应用可以读可废弃文件,且设置了写许可位2014的应用可以向可废弃文件写。通常,仅与关联于可废弃文件的所有者用户ID相关的应用将具有这些许可。设置了转换许可位2016的应用可以将可废弃文件转换为不可废弃文件。注意,在此公开的在相关文件系统中标记文件并向它们分配废弃级别的方法可以具有许多有用的应用,其中之一是恢复存储使用安全裕度来保证用户文件的足够存储空间。例如,被分配给文件的废弃级别可以被用于将文件簇重新映射到较低性能的闪存模块, 或在请求时清除该簇。大文件的智能高速缓存对于管理数据的方法、诸如作为如上所述的智能缓存,以及在2008年12月16日提交的待审的美国专利No. 12/336,089中和在2009年3月10日提交的待审美国临时申请 No. 61/159,034中描述的智能缓存的描述和特征,两者被引用附于此,提供大可废弃文件的智能缓存技术。该大文件智能缓存、也在此称为智能缓存HD不可来自以上公开的各种改变和扩展。智能缓存HD不同于智能缓存之处在于其提供添加了大文件管理器来支持大于 4GB的文件,该大文件管理器在转换时智能地处理这种文件的分裂,同时在它们是可废弃的时维持它们的大(>4GB)状态。具体地,这允许这些文件的管理和检索以及它们的丢弃, 作为单个单元而不是一系列更小的文件。组件在图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 ( 二进制大对象),其可以被统一到单个blob中。在此描述这些字段
类型元素名整数(主要密钥)文件ID整数创建日期/实际长整数尺寸(这不同于智能缓存实施方式)整数/blob第一簇号
权利要求
1.一种管理存储器器件的方法,该方法包括在存储器件操作性地耦合到其中的主机中接收在存储器件的存储区域中存储文件的请求,该文件是可废弃的文件且关联于在与存储器件相关联的数据结构中的数据;将该文件标记为"可废弃文件";确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件;基于所确定的下载条件,确定是否延迟向存储器件下载该可废弃的文件;基于是否延迟向存储器件下载可废弃文件的确定来管理可废弃文件向存储器件的下载;以及基于标记该文件是可废弃文件来管理在存储器件的存储区域中所下载的可废弃文件的存储。
2.根据权利要求1的方法,其中,管理可废弃文件的下载包括延迟向存储器件下载可废弃文件,直到满足与下载条件相关的参数。
3.根据权利要求1的方法,其中确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件包括确定可用于向存储器件下载可废弃文件的网络类型。
4.根据权利要求3的方法,其中,确定可用于向存储器件下载可废弃文件的网络类型包括确定无线保真(WiFi)网络可用于向存储器件下载可废弃文件。
5.根据权利要求3的方法,其中,确定可用于向存储器件下载可废弃文件的网络类型包括确定蜂窝网络可用于向存储器件下载可废弃文件。
6.根据权利要求1的方法,其中确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件包括确定当向存储器件下载可废弃文件时可用于存储器件的功率条件。
7.根据权利要求6的方法,其中确定当向存储器件下载可废弃文件时可用于存储器件的功率条件包括确定该存储器件与电源耦合。
8.根据权利要求6的方法,其中确定当向存储器件下载可废弃文件时可用于存储器件的功率条件包括确定与存储器件相关的电池正被充电。
9.根据权利要求6的方法,其中确定当向存储器件下载可废弃文件时可用于存储器件的功率条件包括确定与存储器件相关的电池的功率级别高于预定级别。
10.根据权利要求1的方法,其中确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件包括确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的日期时间。
11.根据权利要求1的方法,其中确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件包括确定在存储可废弃文件到存储器件的存储区域中之前在存储器件中的可用存储量高于预定级别。
12.根据权利要求1的方法,其中,数据结构包括与存储器件相关的文件系统。
13.根据权利要求12的方法,其中,所述文件系统结构被标记以指示该文件是可废弃文件。
14.根据权利要求1的方法,其中,所述文件本身被标记以指示该文件是可废弃文件。
15.一种存储系统,包括通信接口 ;处理器,用于管理在存储器件的存储区域中的一个或多个文件的存储,其中,所述处理器被配置以接收在存储器件的存储区域中存储文件的请求,该文件是可废弃的文件且关联于在与存储器件相关联的数据结构中的数据;将该文件标记为"可废弃文件";确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件;基于所确定的下载条件,确定是否延迟向存储器件下载该可废弃的文件;基于是否延迟向存储器件下载可废弃文件的确定来管理可废弃文件向存储器件的下载;以及基于标记该文件是可废弃文件来管理在存储器件的存储区域中所下载的可废弃文件的存储。
16.根据权利要求15的存储系统,其中,为了管理可废弃文件的下载,所述处理器还被配置以延迟向存储器件下载可废弃文件,直到满足与下载条件相关的参数。
17.根据权利要求15的存储系统,其中为了确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件,所述处理器还被配置以确定可用于向存储器件下载可废弃文件的网络类型。
18.根据权利要求17的存储系统,其中,为了确定可用于向存储器件下载可废弃文件的网络的类型,所述处理器还被配置以确定无线保真(WiFi)网络可用于向存储器件下载可废弃文件。
19.根据权利要求17的存储系统,其中,为了确定可用于向存储器件下载可废弃文件的网络的类型,所述处理器还被配置以确定蜂窝网络可用于向存储器件下载可废弃文件。
20.根据权利要求15的存储系统,其中为了确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件,所述处理器还被配置以确定当向存储器件下载可废弃文件时可用于存储器件的功率条件。
21.根据权利要求20的存储系统,其中为了确定当向存储器件下载可废弃文件时可用于存储器件的功率条件,所述处理器还被配置以确定该存储器件与电源耦合。
22.根据权利要求20的存储系统,其中为了确定当向存储器件下载可废弃文件时可用于存储器件的功率条件,所述处理器还被配置以确定与存储器件相关的电池正被充电。
23.根据权利要求20的存储系统,其中为了确定当向存储器件下载可废弃文件时可用于存储器件的功率条件,所述处理器还被配置以确定与存储器件相关的电池的功率级别高于预定级别。
24.根据权利要求15的存储系统,其中为了确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件,所述处理器还被配置以确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的日期时间。
25.根据权利要求15的存储系统,其中为了确定与在存储器件的存储区域中存储该可废弃文件的请求相关联的下载条件,所述处理器还被配置以确定在存储可废弃文件到存储器件的存储区域中之前在存储器件中的可用存储量高于预定级别。
26.根据权利要求15的存储系统,其中,数据结构包括与存储器件相关的文件系统。
27.根据权利要求26的存储系统,其中,所述文件系统结构被标记以指示该文件是可废弃文件。
28.根据权利要求15的存储系统,其中,所述文件本身被标记以指示该文件是可废弃文件。
全文摘要
接收在存储器件的存储区域中存储文件的请求,该文件是可废弃且关联于在与存储器件相关联的数据结构中的数据。该文件被标记为可废弃文件。在一些实施方式中,数据结构的文件系统结构被标记以指示该文件是可废弃文件,其中在其他实施方式中,文件本身被标记以指示该文件是可废弃文件。下载管理器确定与该请求相关的下载条件来在存储器件的存储区域中存储可废弃文件,且基于确定的下载条件来确定是否延迟向存储器件下载可废弃文件。下载管理器基于是否延迟向存储器件下载可废弃文件的确定来管理可废弃文件向存储器件的下载。
文档编号G06F17/30GK102257497SQ201080003585
公开日2011年11月23日 申请日期2010年3月9日 优先权日2009年3月10日
发明者D.科伦, J.G.哈恩 申请人:桑迪士克以色列有限公司