存储器控制装置、存储器装置、存储器控制方法和程序的制作方法

文档序号:6366050阅读:91来源:国知局
专利名称:存储器控制装置、存储器装置、存储器控制方法和程序的制作方法
技术领域
本公开涉及一种存储器控制装置、存储器装置、存储器控制方法和程序。
背景技术
存储器装置包括例如能够存储数据的主存储单元和缓存块,并且装置驱动器控制到主存储单元和缓存块的数据的存储。在存储器装置中,从加速由装置驱动器进行的处理的观点来看,较少频繁更新的数据存储在主存储单元中,而较多频繁更新的数据存储在缓存块中(參照日本未经审 查的专利申请公布第2009-70098号)。注意,由于缓存块的容量小于主存储单元的容量,因此,当缓冲的数据增加时,例如,旧的数据从缓存块转移到主存储单元。已知这种处理为回写(writebacK;。

发明内容
诸如Linux的操作系统抽象化装置的控制处理(驱动器),并且将其与文件系统的控制处理分离。由于抽象,文件系统控制在不知道装置的固有特性的情况下进行操作。于是,如在日本未经审查的专利申请公布第2009-70098号中所述,当在存储器装置中建立缓存块用于驱动器处理的加速时,只有装置驱动器控制回写的定时。这导致了如下问题具有高数据更新频率的缓存块发生回写,并且因此,数据从缓存块转移到用户块。考虑到上述,期望提供一种新颖且改进的存储器控制装置、存储器装置、存储器控制方法和程序,其能够防止存储具有高更新频率的数据的缓存块发生回写。根据本公开的实施例,提供了一种存储器控制装置,包括装置驱动器,其执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂时写入或读取;以及控制単元,其向装置驱动器发出指令,该指令用于到/来自主存储単元或缓存单元的文件系统的数据的写入或读取。控制单元可向装置驱动器通知优先级信息,该优先级信息关于到与缓存块相关联的逻辑块的数据存储的优先级。装置驱动器可基于从控制単元通知的优先级信息,选择多个缓存块当中的、其数据要被转移到主存储单元的缓存块。装置驱动器可将存储在多个缓存块当中的、与具有最低优先级的逻辑块相关联的缓存块中的数据转移到主存储单元。装置驱动器可存储优先级信息,在从控制単元接收到优先级信息的通知时更新优先级信息,并且基于更新的优先级信息,将存储在多个缓存块当中的、与具有最低优先级的逻辑块相关联的缓存块中的数据转移到主存储单元。装置驱动器可彼此相互关联地存储更新的优先级信息和关于逻辑块的使用状态的信息,并且将存储在与具有相同优先级的多个逻辑块当中的、具有最早使用日期的逻辑块相关联的缓存块中的数据转移到主存储单元。控制单元可在存储器控制装置的初始启动时,向装置驱动器通知优先级信息。
控制单元可当在缓存单元中分配没有存储数据的缓存块时,向装置驱动器通知优先级信息。根据本公开的实施例,提供了一种存储器装置,包括主存储单元,其存储数据;缓存单元,其包括多个缓存块,并且暂时存储数据;装置驱动器,其执行到/来自主存储单元的数据的写入或读取、以及到/来自缓存単元的数据的暂时写入或读取;以及控制単元,其向装置驱动器发出指令,该指令用于到/来自主存储单元或缓存单元的文件系统的数据的写入或读取。控制单元可向装置驱动器通知优先级信息,该优先级信息关于到与缓存块相关联的逻辑块的数据存储的优先级。根据本公开的实施例,提供了一种存储器控制方法,包括装置驱动器执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂
时写入或读取;控制单元向装置驱动器发出指令,该指令用于到/来自主存储单元或缓存単元的文件系统的数据的写入或读取;以及控制単元向装置驱动器通知优先级信息,该优先级信息关于到与缓存块相关联的逻辑块的数据存储的优先级。根据本公开的实施例,提供了ー种使得计算机执行以下的程序装置驱动器执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂时写入或读取;控制单元向装置驱动器发出指令,该指令用于到/来自主存储单元或缓存单元的文件系统的数据的写入或读取;以及控制単元向装置驱动器通知优先级信息,该优先级信息关于到与缓存块相关联的逻辑块的数据存储的优先级。如上所述,根据本公开,可以防止存储具有高更新频率的数据的缓存块发生回写。


图I是示出存储器管理装置10的配置的框图;图2是示出缓存优先级的分配的示例的图;图3是示出缓存优先级的通知的图;图4是示出缓存块管理信息的图;图5是示出每个偏移地址的地址转换信息的图;图6是说明存储器管理装置10的初始启动时的处理的流程图;图7是示出FAT(文件分配表)文件系统的分区结构的图;图8是说明文件创建处理的一般概要的流程图;图9是说明write (写入)处理中缓存优先级的通知的流程图;图10是说明重写(rewrite)处理的流程图;图11是说明回写⑷处理的流程图;图12是说明回写⑶处理的流程图;图13是说明close (关闭)处理中定时信息的通知的流程图;图14是说明flush(刷新)处理的流程图;以及图15是说明mkdir (建立文件夹)处理中定时信息的通知的流程图。
具体实施例方式在下文中,将參照附图详细描述本公开的优选实施例。注意,在该说明和附图中,具有基本相同的功能和结构的结构元件以相同的附图标记表示,并且省略对这些结构元件的重复说明。以如下顺序提供描述I.存储器装置的概要2.初始启动时的处理3.文件创建时的处理3-1.文件创建的概要3-2. write中缓存优先级的通知
3-2-1.重写3-3. close中定时信息的通知3-3-1. flush4. mkdir中定时信息的通知5.总结〈I.存储器装置的概要>參照图I描述其是根据实施例的存储器装置的示例的存储器管理装置10的概要。图I是示出存储器管理装置10的配置的框图。參照图1,存储器管理装置10包括应用单元110、操作系统单元120、其是主存储单元的示例的主存储区域130、以及其是缓存单元的示例的缓存块单元140。(应用单元110)应用单元110实现存储器管理装置10中的各种功能。应用单元110向操作系统単元120发送关于文件系统的请求。例如,应用单元110向操作系统单元120发送文件创建或删除的请求、或目录创建或删除的请求。(操作系统单元120)操作系统单元120控制存储器管理装置10的操作。操作系统单元120响应来自应用单元Iio的请求,控制主存储区域130和缓存块単元140中的数据的读取或写入。操作系统单元120向应用单元110发送根据应用単元110的请求的处理結果。(主存储单元I3O)主存储区域130是非易失性存储器,并且存储各种数据。用以文件为单位处理数据的FAT文件系统来格式化主存储区域130。(缓存块单元140)缓存块単元140是非易失性存储器,并且暂时存储具有高使用频率(访问频率)数据。缓存块単元140包括多个缓存块,每个缓存块能够存储数据。也用FAT文件系统格式化缓存块単元140。注意,缓存块単元140的容量小于主存储区域130的容量。当缓存块単元140中的数据量超过预定量时,如后面详细描述,执行回写以将缓存块单元140的数据转移到主存储区域130。(文件系统)使用FAT (文件分配表)文件系统作为示例,在下文描述文件系统。文件系统是在存储介质(该实施例中,主存储区域130和缓存块单元140)上管理文件的机制。具体地,文件系统是如下系统将用户逻辑地处理的文件或目录与实际的物理存储介质相关联,并且因此生成文件或目录。通过使用被称为目录项和FAT的信息来管理FAT文件系统。在FAT文件系统中,以簇为单位存储文件,并且属于ー个文件的多个簇的物理位置并不一直连续。FAT管理排列多个簇的序列以形成一个文件的顺序。目录是具有管理文件的层次结构的组的名称。包含在每个目录中的文件的信息被称为目录项。在目录项中,包含诸如文件或另一目录名、扩展名、属性、数据大小,以及文件开始簇号码(开始簇号码)的信息。在层次的最高级的目录被称为根目录,并且在较低级的目录被称为子目录。以FAT文件系统格式化的存储介质具有多个FAT区域、根目录区域、实际数据区域等。FAT区域是存储FAT项目的区域,FAT项目是表示存储在数据区域中的数据文件的位置 的信息。FAT区域通常包含两个副本,并且相同内容存储在每个区域。根目录区域是管理文件的位置的区域。根目录区域是存储包含位于根目录中的文件和关于子目录的信息的根目录项的区域。数据区域是存储文件内容(实际数据)和关于子目录下存在的文件和子目录的信息的区域。为了访问存储介质中的数据,通过參照包含在根目录项内的开始簇号码,读出存储在数据区域中的文件的一部分。然后,通过參照FAT,指定存储下ー数据的数据区域中的位置,并且读出指定的位置中的数据。(文件系统控制单元150)返回參照图I,进ー步描述存储器管理装置10的配置。操作系统单元120包括其是控制単元的示例的文件系统控制単元150、以及其是装置驱动器的示例的存储装置驱动器(其也简单地被称为装置驱动器)160。文件系统控制单元150向装置驱动器160发送响应于来自应用单元110的请求的指令。例如,文件系统控制単元150向装置驱动器160发出指令,该指令用于到/来自主存储区域130或缓存块单元140的数据的写入或读取。文件系统控制単元150向装置驱动器160通知优先级信息,该优先级信息表示到与缓存块単元140的每个缓存块相关联的逻辑块的数据存储的优先级(其在下文中也称为“缓存优先级”)。具体地,文件系统控制単元150在存储器管理装置10初始启动时、或在缓存块单元140中分配没有存储数据的缓存块吋,向装置驱动器160通知与每个缓存块相关联的逻辑块的优先级信息。在下文中參照图2和3描述用于缓存优先级的通知所执行的文件系统控制単元150的处理。图2是示出缓存优先级的分配的示例的图。图3是示出缓存优先级的通知的细节的图。首先,文件系统控制単元150从装置驱动器160获取逻辑块的尺寸。例如,当如图2所示ー个逻辑块包括四个簇吋,该逻辑块的尺寸是四个簇。接下来,文件系统控制单元150检查放置数据的区域的使用。例如,在FAT格式的情况下,文件系统控制単元150检查所有使用中的簇,以查明它们是用作文件还是目录。在图2中,所有的簇被用作文件。然后,文件系统控制単元150基于检查结果确定每个逻辑块的缓存优先级。根据实施例的文件系统控制単元150以在下文描述的方式向逻辑块分配缓存优先级。由于放置FAT的逻辑块经常更新,所以,文件系统控制単元150向放置FAT的逻辑块分配高缓存优先级,并且向放置目录的逻辑块分配中等缓存优先级。由干与放置目录的逻辑块相比,仅放置文件的逻辑块较低频率地被更新并且缓冲必要性较少,所以,文件系统控制単元150向仅放置文件的逻辑块分配低优先级。例如,由于在图2的逻辑块中仅放置文件,所以,文件系统控制単元150向该逻辑块分配低缓存优先级。文件系统控制単元150对所有逻辑块执行上述的处理,以因此向所有逻辑块分配缓存优先级。在此之后,如图3所示,文件系统控制単元150向装置驱动器160通知分配给所有逻辑块的缓存优先级。注意,尽管在以上示例中分配给逻辑块的优先级是高、中等、低,但是其不限于这三种。例如,所分配的优先级可以是两种(高和低)、或四种或更多。如上所述,文件系统控制単元150向装置驱动器160通知优先级信息,并且装置驱 动器160可以因此在回写时优先地转移存储在具有低缓存优先级的缓存块中的数据。结果,其可以防止具有高更新频率的数据在回写时被转移到主存储区域130。也可以防止由于到主存储区域130的数据的转移,对数据的存取时间而增加。此外,文件系统控制単元150向装置驱动器160通知表示可执行回写(数据转移)时的定时的定时信息。具体地,文件系统控制単元150识别从应用单元110请求的处理的细节,并且当基于处理的确定结果确定在请求的处理之后没有跟随请求其它处理吋,文件系统控制単元150向装置驱动器通知定时信息。例如,当文件系统控制単元150从应用单元110接收文件close等请求时,文件系统控制单元150向装置驱动器160通知定时信息。如上所述,文件系统控制単元150向装置驱动器160通知定时信息,并且因此装置驱动器160可以防止在其它处理(例如,write)的执行期间发生回写。结果,可以防止诸如write的其它处理的处理速度由于回写而降低。(装置驱动器160)返回參照图I,进ー步描述存储器管理装置10的配置。装置驱动器160响应于来自文件系统控制单元150的指令,控制主存储区域130和缓存块单元140。装置驱动器160执行到/来自主存储区域130的数据的写入或读取、以及到/来自缓存块单元140的数据的暂时写入或读取。装置驱动器160基于从文件系统控制単元150通知的优先级信息,选择回写时其数据要转移到主存储区域130的缓存块。具体地,设备驱动器160选择构成缓存块単元140的多个缓存块当中、具有最低缓存优先级的缓存块。然后,装置驱动器160在回写时,将存储在具有最低缓存优先级的所选缓存块中的数据转移到主存储区域130。因此,可以防止在回写时存储在具有高缓存优先级的缓存块中的数据(具有高更新频率的数据)被转移到主存储区域130。注意,当存在空闲缓存块时,无论逻辑块的缓存优先级如何,装置驱动器160将数据写入到空闲缓存块。另ー方面,当不存在空闲缓存块时,装置驱动器160执行回写并且确保空余缓存块。装置驱动器160将从文件系统控制単元150通知的优先级信息存储作为缓存块管理信息的一部分。參照图4在下文描述存储在装置驱动器160中的缓存块管理信息。图4是示出缓存块管理信息的图。管理信息表示缓冲的逻辑块和缓存块之间的对应关系。管理信息包含逻辑块的地址、使用状态以及缓存优先级的信息。使用状态是逻辑块(例如,图4中的四个逻辑块)当中的比较,并且较小的值表示逻辑块最近被使用(数据被写入)。在图4中,在四个逻辑块当中具有地址O的逻辑块最近被使用。高、中等以及低中之一作为缓存优先级被分配给每个逻辑块。具有较高缓存优先级的逻辑块被更优选地缓沖。在图4中,具有地址O的逻辑块的优先级是高。注意,对于要被缓冲的逻辑块的数量存在上限,图4的示例中上限是五个。此外,多个缓存块可被分配给ー个逻辑块。在图4中,具有地址O的缓存块和具有地址4的缓存块都被分配给具有地址O的逻辑块。注意,对于可分配给ー个逻辑块的缓存块的数量存在上限,在图4的示例中上限是三个。装置驱动器160存储逻辑块中的每个偏移地址的地址转换信息。换句话说,装置驱动器160存储与偏移地址相对应的缓存块数据被存储的偏移地址。
图5是示出每个偏移地址的地址转换信息的图。在图5中,示出了具有地址O的逻辑块中的每个偏移地址的地址转换信息。例如,逻辑块中与偏移地址O相对应的数据被存储在缓存块O中的偏移地址3。在接收到来自文件系统控制単元150的优先级信息的通知时,装置驱动器160更新上述管理信息。然后,在回写时,装置驱动器160基于更新的优先级信息,将存储在具有最低缓存优先级的缓存块中的数据转移到主存储区域130。因此,在接收到优先级信息之后,通过回写,存储在具有最低缓存优先级的缓存块中的数据转移到主存储区域130。在存在多个具有相同缓存优先级的逻辑块的情况下,装置驱动器160将存储在与具有最早使用日期的逻辑块相关联的缓存块中的数据转移到主存储区域130。与具有较晚使用日期的缓存块相比,具有较早使用日期的缓存块较少可能更新存储在其中的数据。因此,即使当存在具有相同优先级的多个逻辑块时,也可以防止在回写时具有高更新频率的数据被转移到主存储区域130。此外,如较早所述,装置驱动器160从文件系统控制単元150接收回写的定时信息。接收到定时信息,装置驱动器160确定是否执行回写。具体地,在接收到定时信息吋,存储装置驱动器160基于管理信息中的缓存块的使用状态,确定是否执行回写。在如下的情况中装置驱动器160执行回写。首先,在接收到定时信息的通知时使用缓存块的逻辑块的数量达到预定数量时,装置驱动器160強制地执行回写。因此,可以仅在与具有高缓存优先级的逻辑块相对应的缓存块中存储数据。此外,在接收到定时信息的通知时分配给逻辑块的缓存块的数量达到预定数量时,装置驱动器160强制执行回写。因此,可以避免过量的缓存块被分配给ー个逻辑块。此外,在接收到定时信息的通知时缓存块单元140中不存储数据的缓存块的数量少于预定数量时,装置驱动器160强制执行回写。因此,可以保持预定数量的空闲缓存块。如上所述,由于装置驱动器160响应于接收到定时信息而执行回写,所以可以防止在其它处理期间执行回写,因此避免了其它处理的处理速度降低。存储器管理装置10还包括CPU、ROM、RAM等,其没有被示出。CPU将从ROM、外部存储装置等读取的程序装载到RAM,并且执行程序,由此实现各种处理(诸如稍后描述的文件创建处理)。注意,程序可被存储在记录介质中。
〈2.初始启动时的处理〉如上所述,文件系统控制単元150在存储器管理装置10的初始启动吋,向装置驱动器160通知优先级信息。在下文中,參照图6描述在存储器管理装置10的初始启动时通知优先级信息的处理。图6是说明在存储器管理装置10的初始启动时的处理的流程图。通过CPU执行存储在ROM等中的程序实现这个处理。当应用单元110向文件系统控制单元150提出安装(mount)请求时(步骤S102),图6的流程图开始。接收到来自应用単元110的安装请求,文件系统控制単元150执行安装(步骤S104)。
在下文中描述步骤S104中的安装。例如,文件系统控制单元150向应用单元110提供由IS0/IEC9945 (POSIX)定义的接ロ。此外,文件系统控制単元150以文件系统特定的结构(格式)管理装置驱动器160上的文件或目录。例如,如图7所示,使用由IS0/IEC9293(JIS X0605) (FAT格式)定义的格式。图7是示出FAT文件系统的分区结构的图。安装是能够由文件系统控制単元150向应用单元110提供接ロ的准备处理,并且它是从装置驱动器160读取格式信息的处理。读取的信息是以图7的FAT格式存储在BPB(BI0S參数块)区域、FATl区域以及FAT2区域的信息。具体地,读取的信息是关于管理文件系统格式的信息的存储地址和尺寸、以及数据的存储地址和尺寸的信息。注意,图7中FAT格式的每个簇用作目录或文件。返回參照图6的流程图,进ー步描述在初始启动时的处理。在步骤S104中执行安装之后,文件系统控制単元150向装置驱动器160通知缓存优先级(步骤S106)。接下来,装置驱动器160基于所通知的缓存优先级,更新每个存储的逻辑块的缓存优先级(步骤S108)。例如,装置驱动器160通过从中等到高改变缓存优先级来更新缓存优先级。然后,文件系统控制単元150向应用单元110发送安装结果(步骤S110)。应用单元110接收安装结果(步骤S112),并且初始启动时的处理从而结束。如上所述,在初始启动时的处理中,从文件系统控制単元150向装置驱动器160通知缓存优先级,并且装置驱动器160更新每个存储的逻辑块的缓存优先级。在这种情况下,因为文件系统控制単元150向装置驱动器160通知优先级信息,所以装置驱动器160可以在回写时优选地转移存储在具有低缓存优先级的缓存块中的数据。结果,可以防止在回写时具有高更新频率的数据被转移到主存储区域130。〈3.文件创建时的处理〉如上所述,在初始启动时执行缓存优先级的通知。在文件创建时也执行缓存优先级的通知。在下文中,描述在文件创建时通知优先级信息的处理。(3-1.文件创建的概要)首先,參照图8描述文件创建处理的一般概要。图8是说明文件创建处理的一般概要的图。通过CPU执行存储在ROM等中的程序实现这个处理。当应用单元110请求文件系统控制单元150open(打开)文件(步骤S202)时,图8的流程图开始。接收到来自应用単元110的open请求,文件系统控制単元150执行open(步骤S204)。注意,尽管在执行open时执行缓存优先级的通知,但是其在以后详细描述。应用单元110从文件系统控制单元150接收open结果(步骤S206)。然后,应用单元110请求文件系统控制单元150向文件write数据(步骤S208)。接收到来自应用单元110的write请求,文件系统控制单元150执行write (步骤S210)。注意,尽管在执行write时执行缓存优先级的通知,但是其在以后详细描述。应用单元110从文件系统控制单元150接收write结果(步骤S212)。然后,在进ー步执行write文件的情况下(步骤S214中的“是”),重复上述步骤S208到S212的处理。另ー方面,在结束write文件的情况下(步骤S214中的“否”),应用单元110请求文件系统控制单元150close文件(S216)。
接收到来自应用单元110的close请求,文件系统控制单元150执行close (步骤S218)。注意,尽管在执行close时执行定时信息的通知,但是其在以后详细描述。应用单元110从文件系统控制单元150接收close结果(步骤S220)。在文件创建时的一系列处理从而结束。(3-2. write中缓存优先级的通知)图8的步骤S204中open处理的缓存优先级的通知和图8的步骤S210中write处理的缓存优先级的通知是相同的。因此,在下文描述write处理中的缓存优先级的通知。图9是说明write处理中的缓存优先级的通知的流程图。首先,文件系统控制单元150确定重写数据的区域(重写区域)(步骤S302)。接下来,文件系统控制単元150确定与重写区域相对应的逻辑块的缓存优先级是否存在变化(步骤S304)。当缓存优先级存在变化(步骤S304中的“是”)时,文件系统控制单元150向装置驱动器160通知缓存优先级(步骤S306)。在下文描述对于缓存优先级的通知执行的文件系统控制単元150的处理。如以上參照图2所述,文件系统控制単元150基于逻辑块的使用向逻辑块分配缓存优先级。此后,文件系统控制単元150向装置驱动器160通知分配给逻辑块的缓存优先级。注意,尽管如先前參照图3所述,在初始启动时的处理中通知所有逻辑块的缓存优先级,但是在write处理中,可仅通知新分配给逻辑块的缓存优先级。这减少通知的数据量,并且因此缩短涉及缓存优先级的通知的处理时间。返回參照图9的流程图,进ー步描述处理。装置驱动器160基于从文件系统控制単元150通知的缓存优先级,更新存储的逻辑块的缓存优先级(步骤S308)。文件系统控制単元150请求装置驱动器160重写装置(步骤S310)。接收到重写装置的请求,装置驱动器160基于目标块的缓存优先级执行重写(步骤S312)。以后详细描
述重写。文件系统控制単元150从装置驱动器160接收重写结果并检查该結果。然后,重复上述步骤S302到S312的处理,直到重写结束为止。在重写结束后,处理结束并且返回到图8的流程图。(3-2-1.重写)在下文中參照图10描述图9的步骤S312中的重写。图10是说明重写处理的流程图。
在重写处理中,装置驱动器160首先根据与write指令相对应的地址计算逻辑块地址和逻辑块中的偏移地址(步骤S402)。装置驱动器160基于图4的管理信息和图5的地址转换信息计算逻辑块地址和逻辑块中的偏移地址。接下来,装置驱动器160基于管理信息确定缓存块是否已经被分配给逻辑块(步骤S404)。当在步骤S404中缓存块已经被分配给逻辑块(“是”)时,装置驱动器160确定附加的数据是否可以被写入到缓存块(步骤S406)。当在步骤S406中到缓存块的数据的附加写入是可能的(“是”)时,装置驱动器160向缓存块写入数据(步骤S408)。然后,装置驱动器160更新管理信息(步骤S410)。另ー方面,当在步骤S406中到缓存块的数据的附加写入是不可能的(“否”)吋,装置驱动器160检查分配给逻辑块的缓存块的使用数量(步骤S412)。然后,装置驱动器160确定分配给逻辑块的缓存块的使用数量是否达到上限(例如,图4中示出的三个)(步骤 S414)。
当在步骤S414中缓存块的使用数量达到上限(“是”)时,装置驱动器160执行回写(A)以生成空闲缓存块(步骤S416)。(回写(A))在下文參照图11描述步骤S416中的回写(A)。图11是说明回写(A)处理的流程图。在图11的流程图中,装置驱动器160首先将有效数据从缓存块转移到主存储区域130(步骤S502)。接下来,装置驱动器160将从其移除有效数据的缓存块设置为空闲缓存块(步骤S504)。从其转移有效数据的缓存块的数量可以是ー个或多于ー个。然后,装置驱动器160对于从其移除有效数据的缓存块,更新图2中示出的管理信息(步骤S506)。回写(A)处理因此结束并且返回到图10的流程图。上述回写(A)对分配给ー个逻辑块的缓存块的数量施加限制,并且因此,即使缓存块单元140的容量较小,缓存块也可被分配给具有高更新频率的多个逻辑块。返回參照图10的流程图,进ー步描述重写处理。当步骤S416中的回写(A)完成时,装置驱动器160获取空闲缓存块(从其移除有效数据的缓存块)(步骤S420)。此后,装置驱动器160向空闲缓存块写入新数据(步骤S408),并且更新管理信息(步骤S410)。当在步骤S404中缓存块还没有分配给逻辑块(“否”)时,装置驱动器160检查使用缓存块的逻辑块的数量(步骤S422)。然后,装置驱动器160确定使用缓存块的逻辑块的数量是否达到上限(例如,图4中示出的五个)(步骤S424)。当在步骤S424中使用缓存块的逻辑块的数量达到上限(“是”)时,装置驱动器160执行回写(B)以创建空闲缓存块(步骤S426)。(回写(B))在下文參照图12描述步骤S426中的回写(B)。图12是说明回写(B)处理的流程图。在图12的流程图中,装置驱动器160首先从管理信息捜索分配给具有低缓存优先级的逻辑块的所有缓存块(步骤S552)。然后,装置驱动器160确定是否存在分配给具有低缓存优先级的逻辑块的缓存块(步骤S554)。当在步骤S554中存在分配给具有低缓存优先级的逻辑块的缓存块(“是”)吋,装置驱动器160捜索具有低缓存优先级的逻辑块当中的、最近没有使用的逻辑块(步骤S556)。即,装置驱动器160捜索具有图4的管理信息中的使用状态的较大值的逻辑块。然后,装置驱动器160将分配给在步骤S556中检索到的逻辑块的缓存块中的有效数据转移到主存储区域130 (步骤S558)。装置驱动器160因此将分配给具有相同低缓存优先级的逻辑块当中的、最近没有使用的逻辑块的缓存块设置为空闲缓存块(步骤S560)。注意,当多个缓存块分配给逻辑块时,装置驱动器160将所分配的缓存块设置为空闲缓存块。此后,装置驱动器160更新管理信息(步骤S562)。当在步骤S554中不存在分配给具有低缓存优先级的逻辑块的缓存块(“否”)吋,装置驱动器160捜索分配给具有中等缓存优先级的逻辑块的所有缓存块(步骤S564)。然后,装置驱动器160确定是否存在分配给具有中等缓存优先级的逻辑块的缓存块(步骤S566)。、
当在步骤S566中存在分配给具有中等缓存优先级的逻辑块的缓存块(“是”)吋,装置驱动器160捜索具有中等缓存优先级的逻辑块当中的最近没有使用的逻辑块(步骤S556)。此后,装置驱动器160执行上述步骤S558到S562的处理。当在步骤S566中不存在分配给具有中等缓存优先级的逻辑块的缓存块(“否”)时,装置驱动器160捜索分配给具有高缓存优先级的逻辑块的所有缓存块(步骤S568)。然后,装置驱动器160捜索具有高缓存优先级的逻辑块当中的最近没有使用的逻辑块(步骤S556)。此后,装置驱动器160执行上述步骤S558到S562的处理。在步骤S562中完成管理信息的更新之后,回写(B)处理结束并且返回到图10的流程图。在回写(B)中,装置驱动器160基于从文件系统控制单元150通知的缓存优先级,将分配给具有低缓存优先级的逻辑块的缓存块的数据转移到主存储区域130。因此,可以防止在回写时,存储在分配给具有高缓存优先级的逻辑块的缓存块中的数据(具有高更新频率的数据)被转移到主存储区域130。此外,在回写(B)中,当存在具有相同缓存优先级的多个逻辑块时,装置驱动器160将分配给具有最早使用日期的逻辑块的缓存块中的数据转移到主存储区域130。因为此后具有最早使用日期的逻辑块较少可能被更新,所以可以防止分配给另ー逻辑块(此后可能被更新的逻辑块)的缓存块中的数据被转移到主存储区域130。返回參照图10的流程图,进ー步描述重写处理。当步骤S426中的回写(B)完成时,装置驱动器160获取空闲缓存块(步骤S420)。此后,装置驱动器160向空闲缓存块写入数据(步骤S408),并且更新管理信息(步骤S410)。注意,当在步骤S418中存在空闲缓存块(“是”)时,装置驱动器160获取空闲缓存块,而无需执行回写(步骤S420)。另ー方面,当在步骤S418中不存在空闲缓存块(“否”)时,装置驱动器160执行上述回写(B)(步骤S426),并且获取空闲缓存块(步骤S420)。此外,当在步骤S424中使用缓存块的逻辑块的数量没有达到上限(“否”)时,装置驱动器160获取空闲缓存块,而无需执行回写(步骤S420)。此后,装置驱动器160向空闲缓存块写入数据(步骤S408),并且更新管理信息(步骤S410)。如上所述,在write处理中,从文件系统控制单元150向装置驱动器160通知缓存优先级,并且装置驱动器160更新存储的逻辑块的缓存优先级(与open处理中是相同的)。在这种情况下,因为文件系统控制単元150向装置驱动器単元160通知优先级信息,所以,装置驱动器160可以在回写时优选地转移存储在具有低优先级的缓存块中的数据。結果,可以防止在回写时具有高更新频率的数据被转移到主存储区域130。(3-3. close中定时信息的通知)在下文參照图13描述图8中的步骤S218的close处理中的定时信息的通知。图13是说明close处理中的定时信息的通知的图。首先,文件系统控制单元150执行文件close (步骤S602)。close是文件创建中的最后处理,并且因此在这个处理之后不可能执行其它处理,这不同于open和write。因此,通过在close之后的闲时期间执行回写,可以防止其它处理的处理速度的降低。文件系统控制単元150在close之后的闲时期间向装置驱动器160通知表示可以 执行回写的定时信息(步骤S604)。响应于定时信息的通知,文件系统控制単元150请求装置驱动器160执行flush。Flush是强制地执行回写的处理。接收到flush请求,装置驱动器160执行图14中示出的flush处理(步骤S606)。注意,以后描述flush的细节。在flush完成时,文件系统控制单元150向应用单元110发送close结果(步骤S608)。处理因此结束并且返回到图8的流程图。(3-3-1. flush)在下文參照图14描述图13的步骤S606中的flush。图14是说明flush处理的
流程图。装置驱动器160首先确定空闲缓存块的数量是否是特定的数量或更多(例如,是否存在空闲缓存块)(步骤S702)。当在步骤S702中确定存在空闲缓存块(“是”)时,装置驱动器160检查使用缓存块的逻辑块的数量(步骤S704)。装置驱动器160然后确定使用缓存块的逻辑块的数量是否达到上限(例如,图4中的五个)(步骤S706)。当在步骤S706中逻辑块的数量达到上限(“是”)时,装置驱动器160执行前述图12中的回写(B)(步骤S708)。另ー方面,当在步骤S706中逻辑块的数量没有达到上限(“否”)时,装置驱动器160检查分配给逻辑块的缓存块的使用数量(步骤S710)。然后,装置驱动器160确定分配给逻辑块的缓存块的使用数量是否达到上限(例如,图4中的三个)(步骤S712)。当在步骤S712中缓存块的使用数量达到上限(“是”)时,装置驱动器160执行前述图11中的回写(A)(步骤S714)。另ー方面,当在步骤S712中缓存块的使用数量没有达到上限(“否”)时,装置驱动器160结束处理,而无需执行回写㈧和回写(B)。当在步骤S702中确定不存在空闲缓存块(“否”)时,装置驱动器160执行前述图12中的回写(B)(步骤S716)。处理因此结束并且返回到图13的流程图。如上所述,在close处理中,文件系统控制单元150向装置驱动器160通知定时信息,并且因此装置驱动器160可以防止在其它操作(例如,write)的执行期间发生回写。结果,可以防止诸如write的其它处理的处理速度由于回写而降低。<4. mkdir中定时信息的通知>尽管在上述示例中在close时执行回写的定时信息的通知,但是也可在mkdir时执行该处理,其是创建目录的处理。下文參照图15描述mkdir中回写的定时信息的通知。图15是说明mkdir处理中的定时信息的通知的流程图。首先,文件系统控制单元150执行文件mkdir (步骤S802)。与close相似,mkdir不可能跟随有其它处理。因此,通过在mkdir之后的闲时期间执行回写,可以防止其它处理的处理速度下降。文件系统控制単元150在mkdir之后的闲时期间向装置驱动器160通知表示可以执行回写的定时信息(步骤S804)。响应于定时信息的通知,文件系统控制単元150请求装置驱动器160执行flush。接收到对于flush的请求,装置驱动器160执行前述图14中的flush (步骤S806)。 在flush完成时,文件系统控制单元150向应用单元110发送mkdir结果(步骤S808)。如上所述,在mdir处理中,文件系统控制单元150向装置驱动器160通知定时信息,并且因此装置驱动器160可以防止在其它处理(例如,write)的执行期间发生回写。结果,可以防止诸如write的其它处理的处理速度由于回写而降低。注意,在不同于close或mkdir的处理时,可执行回写的定时信息的通知。例如,因为rmdir(删除目录)、unlink(删除文件)以及rename (重新命名)也都是不可能跟随有其它处理的处理,所以可执行定时信息的通知。rmdir是删除目录的处理。unlink是删除文件的处理。rename是改变文件名称或移动文件名称的处理。此外,当基于应用単元110的确定而已知请求暂时不被发送到操作系统单元120时,应用单元110可向装置驱动器160通知定时信息。<5.总结〉在上述实施例中,文件系统控制単元150向装置驱动器160通知优先级信息,该优先级信息表示到与缓存块相关联的逻辑块的数据存储的优先级。装置驱动器160因此可在回写时优选地转移存储在具有低缓存优先级的缓存块中的数据。结果,可以防止在回写时具有高更新频率的数据被转移到主存储区域130。尽管以上參照附图描述了本公开的优选实施例,但本公开不限于此。本领域的技术人员应该理解,在所附权利要求或其等同方案的范围内,根据设计需要和其它因素,可进行各种修改、组合、子组合以及变更。在上述实施例中,尽管存储器管理装置10包括主存储区域130和缓存块単元140,但其不限于此,并且主存储区域130和缓存块単元140可以合并到不同于存储器管理装置10的装置中。在这种情况下,存储器管理装置10起存储器控制装置的作用。此外,在上述实施例中,尽管主存储区域130和缓存块单元140都是非易失性存储器,但其不限于此。例如,主存储区域130或缓存块単元140的任一个可以是非易失性存储器。应该注意,在该说明书中,流程图中示出的步骤不仅包括根据在其中示出的序列按时间顺序执行的处理,还包括并行或单独执行的、不必按时间顺序执行的处理。此外,按时间顺序处理的步骤可理所当然的在ー些情况下以不同的序列执行。本公开包含与2011年3月17日向日本专利局提交的日本优先权专利申请JP2011-059385中公开的主题内容相关的主题内容,在此通过引用将其全文合并于此。
权利要求
1.一种存储器控制装置,包括 装置驱动器,其执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂时写入或读取;以及 控制单元,其向所述装置驱动器发出指令,所述指令用于到/来自所述主存储单元或所述缓存单元的文件系统的数据的写入或读取, 其中,所述控制单元向所述装置驱动器通知优先级信息,所述优先级信息关于到与所述缓存块相关联的逻辑块的数据存储的优先级。
2.根据权利要求I所述的存储器控制装置, 其中,所述装置驱动器基于从所述控制单元通知的所述优先级信息,选择所述多个缓存块当中的、其数据要被转移到所述主存储单元的缓存块。
3.根据权利要求2所述的存储器控制装置, 其中,所述装置驱动器将存储在所述多个缓存块当中的、与具有最低优先级的所述逻辑块相关联的缓存块中的数据转移到所述主存储单元。
4.根据权利要求3所述的存储器控制装置, 其中,所述装置驱动器存储所述优先级信息,在从所述控制单元接收到所述优先级信息的通知时更新所述优先级信息,并且基于更新的优先级信息,将存储在所述多个缓存块当中的、与具有最低优先级的所述逻辑块相关联的缓存块中的数据转移到所述主存储单元。
5.根据权利要求4所述的存储器控制装置, 其中,所述装置驱动器彼此相互关联地存储所述更新的优先级信息和关于所述逻辑块的使用状态的信息,并且将存储在与具有相同优先级的多个逻辑块当中的、具有最早使用日期的所述逻辑块相关联的缓存块中的数据转移到所述主存储单元。
6.根据权利要求I所述的存储器控制装置, 其中,所述控制单元在所述存储器控制装置的初始启动时,向所述装置驱动器通知所述优先级信息。
7.根据权利要求I所述的存储器控制装置, 其中,所述控制单元当在所述缓存单元中分配没有存储数据的缓存块时,向所述装置驱动器通知所述优先级信息。
8.一种存储器装置,包括 主存储单元,其存储数据; 缓存单元,其包括多个缓存块,并且暂时存储数据; 装置驱动器,其执行到/来自所述主存储单元的数据的写入或读取、以及到/来自所述缓存单元的数据的暂时写入或读取;以及 控制单元,其向所述装置驱动器发出指令,所述指令用于到/来自所述主存储单元或所述缓存单元的文件系统的数据的写入或读取, 其中,所述控制单元向所述装置驱动器通知优先级信息,所述优先级信息关于到与所述缓存块相关联的逻辑块的数据存储的优先级。
9.一种存储器控制方法,包括 装置驱动器执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂时写入或读取; 控制单元向所述装置驱动器发出指令,所述指令用于到/来自所述主存储单元或所述缓存单元的文件系统的数据的写入或读取;以及 所述控制单元向所述装置驱动器通知优先级信息,所述优先级信息关于到与所述缓存块相关联的逻辑块的数据存储的优先级。
10.一种使得计算机执行以下的程序 装置驱动器执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂时写入或读取; 控制单元向所述装置驱动器发出指令,所述指令用于到/来自所述主存储单元或所述缓存单元的文件系统的数据的写入或读取;以及 所述控制单元向所述装置驱动器通知优先级信息,所述优先级信息关于到与所述缓存块相关联的逻辑块的数据存储的优先级。
全文摘要
提供了一种存储器控制装置、存储器装置、存储器控制方法和程序,其中该存储器控制装置包括装置驱动器,其执行到/来自主存储单元的数据的写入或读取、以及到/来自包括多个缓存块的缓存单元的数据的暂时写入或读取;以及控制单元,其向装置驱动器发出指令,该指令用于到/来自主存储单元或缓存单元的文件系统的数据的写入或读取。控制单元可向装置驱动器通知优先级信息,该优先级信息关于到与缓存块相关联的逻辑块的数据存储的优先级。
文档编号G06F12/08GK102708066SQ20121006216
公开日2012年10月3日 申请日期2012年3月9日 优先权日2011年3月17日
发明者佐伯修祐, 木田嵩, 石泽宏明, 金子畅宏, 香取知浩 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1