CN101853208A - 基于文件级启发式规则来执行缓存的方法和系统 - Google Patents
基于文件级启发式规则来执行缓存的方法和系统 Download PDFInfo
- Publication number
- CN101853208A CN101853208A CN201010158578A CN201010158578A CN101853208A CN 101853208 A CN101853208 A CN 101853208A CN 201010158578 A CN201010158578 A CN 201010158578A CN 201010158578 A CN201010158578 A CN 201010158578A CN 101853208 A CN101853208 A CN 101853208A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- cache
- storage medium
- cache device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Abstract
一种用于至少基于一个或多个文件级启发式规则来执行缓存的方法和系统。由高速缓存策略引擎来执行在高速缓存设备中的存储介质的缓存。高速缓存策略引擎接收存储介质的数据的输入/输出访问的文件级信息,并且基于接收的文件级信息来将存储介质的数据缓存在高速缓存设备中或从高速缓存设备中逐出。在本发明的一个实施例中,通过使用关于与存储介质的磁盘扇区或逻辑块地址相关联的文件和文件操作的信息,高速缓存策略引擎可以更好的决定是将存储介质的数据缓存在高速缓存设备中还是将其逐出高速缓存设备。可以达到更高的高速缓存命中率,并且提高了使用高速缓存策略引擎的系统的性能。
Description
技术领域
本发明涉及高速缓存的领域,并且更具体地说涉及基于文件级启发式规则来执行缓存,但并不排除涉及其它内容。
背景技术
硬盘驱动器的性能已经显著地落后于中央处理单元的性能。同样地,到驱动器的输入/输出(I/O)数据传输仍然是计算机系统的最大的瓶颈之一。即使更快的驱动器(例如,固态驱动器)的出现减轻了该瓶颈,但是更快的驱动器的相对较高的成本还是阻碍了大规模采用更快的驱动器作为主存储设备。
为了减轻瓶颈的问题,非易失性存储器在系统中被用作硬盘驱动器的高速缓存。例如,硬盘驱动器的一些磁盘扇区或逻辑块地址(LBA)可以被缓存到非易失性存储器中,以使得中央处理器单元能够以比硬盘驱动器更快的访问速率来访问非易失性存储器中缓存的数据。
用于加速I/O数据传输的缓存方案主要基于LBA级访问模式或来自操作系统或用户的、用于锁定(pin)或解锁非易失性存储器中的LBA的具体指令。
附图说明
根据以下对所述主题的详细描述,本发明的实施例的特征和有点将变得显而易见,其中:
图1说明了根据本发明的一个实施例的、用于实现本文公开的方法的系统;
图2说明了根据本发明的一个实施例的、用于实现本文公开的方法的系统结构;
图3说明了根据本发明的一个实施例的操作系统中的模块的框图;
图4说明了根据本发明的一个实施例的操作系统(OS)中的模块的框图;
图5说明了根据本发明的一个实施例的将LBA映射到文件级信息的表;以及
图6说明了根据本发明的一个实施例的用于执行高速缓存策略的步骤的流程图。
具体实施方式
在说明书中提及的本发明的“一个实施例”或“实施例”意味着结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿说明书各处出现的短语“在一个实施例中”并不必然都是指同一实施例。
本发明的实施例提供了一种用于至少基于一个或多个文件级启发式规则(file-level heuristics)来执行高速缓存的方法和系统。在本发明的一个实施例中,高速缓存策略引擎将来自持久性存储介质的数据缓存到高速缓存设备中。高速缓存策略引擎接收存储介质的数据的I/O访问的文件级信息,并且至少基于所接收的文件级信息来将存储介质的数据缓存到高速缓存设备中或将其逐出高速缓存设备。在本发明的一个实施例中,通过使用关于与存储介质的数据相关联的文件和文件操作的信息,高速缓存策略引擎能够做出关于将从存储介质选择的数据缓存到高速缓存设备中还是将其逐出高速缓存设备的更好的决定。可以达到更高的高速缓存命中率,并且提高了使用高速缓存策略引擎的系统的性能。
存储介质可以包括但并不限于固态驱动器、硬盘驱动器、磁带驱动器、光盘(CD)、软盘、通用串行总线闪速存储器驱动器或任何其它形式的非易失性计算机数据存储介质。高速缓存设备包括,但并不限于非易失性介质、固态驱动器、NAND闪存、相变存储器或任何其它形式的非易失性计算机数据存储介质。
图1说明了根据本发明的一个实施例的用于实现本文公开的方法的系统100。系统100包括但并不限于台式计算机、膝上型计算机、笔记本电脑、上网本计算机、个人数字助(PDA)、服务器、工作站、蜂窝电话、移动计算设备、互联网装置或任何其它类型的计算设备。在另一个实施例中,用于实现本文公开的方法的系统100可以是片上系统(SOC)。
系统100包括存储器/图形控制器120和I/O控制器150。存储器/图形控制器120通常提供存储器和I/O管理功能以及可以由处理器110访问或使用的多个通用和/或专用寄存器、计时器等。可以使用一个或多个处理器或者使用多核处理器来实现处理器110。I/O控制器150具有根据本发明的实施例的高速缓存策略引擎152。高速缓存策略引擎(CPE)152便于在I/O控制器150、存储介质160和高速缓存设备170之间的I/O数据的访问。
存储器/图形控制器120执行允许处理器110访问主存储器140并与其进行通信的功能,所述主存储器140包括易失性存储器142和/或非易失性存储器144。在本发明的另一个实施例中,高速缓存策略引擎152可以被集成在存储器/图形控制器120而不是I/O控制器152中。易失性存储器142包括但并不限于同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或其它类型的随机存取存储器设备。非易失性存储器144包括但是并不限于NAND闪存存储器、ROM、EEPROM和/或任何其它期望类型的存储器设备。主存储器140存储信息和由处理器110执行的指令。主存储器140还可以在处理器110执行指令时存储临时变量或其它中间信息。在本发明的另一个实施例中,存储器/图形控制器120是处理器110的一部分。
存储器/图形控制器120连接到显示设备130,其包括但是并不限于液晶显示器(LCD)、阴极射线管(CRT)显示器或任何其它形式的可视显示设备。I/O控制器150耦合到存储介质160、高速缓存设备170、网络接口180和键盘/鼠标190,但并不限于此。特别地,I/O控制器150执行允许处理器110与存储介质160、高速缓存设备170、网络接口180和键盘/鼠标190进行通信的功能。
使用任何类型的公知的网络接口标准来实现网络接口180,所述标准包括但并不限于以太网接口、通用串行总线(USB)、快速外围部件互连(PCI)接口、无线接口和/或任何其它合适类型的接口。无线接口根据电气和电子工程师协会(IEEE)无线标准族802.11、家庭插电AV(HPAV)、超宽带(UWB)、蓝牙、WiMax或任何形式的无线通信协议来操作,但并不限于此。
图2说明了根据本发明的一个实施例的用于实现本文公开的方法的系统结构200。系统结构200示出了本发明的一个实施例,其中,一个或多个高速缓存设备和存储介质可以连接到系统100。在系统结构200中,存储介质220经由通信链路连接到系统100。通信链路包括但并不限于高级技术附件(ATA)接口、串行ATA(SATA)接口和串行连接小型计算机系统接口(SCSI)(SAS)和任何其它有线或无线通信链路。类似地,高速缓存设备230经由通信链路连接到系统100,所述通信链路包括但并不限于SATA接口、SAS接口、PCI-E接口和ONFI。在本发明的一个实施例中,在高速缓存设备230和系统100之间的通信链路可以比在存储介质220和系统100之间的通信链路快。
系统100还经由网络/桥210连接到存储介质240和高速缓存设备250。系统结构200示出了存在将存储介质220、240和高速缓存设备230、250连接到系统100的多种方法。在图1和2中示出的高速缓存设备和存储介质的结构并不意味着限制性的,相关领域中的普通技术人员将意识到,可以在没有影响本发明的工作的情况下,使用其它结构。高速缓存设备可以经由通信链路从内部连接到系统100或从外部连接到系统100。例如,在本发明的一个实施例中,高速缓存设备170可以经由通信链路从平台100的内部连接到CPE 152,所述通信链路包括但并不限于PCI-E接口、SATA接口和ONFI。在另一个示例中,在本发明的一个实施例中,高速缓存设备170可以经由USB通信链路从平台100的外部连接。
图3说明了根据本发明的一个实施例的操作系统(OS)中的模块的框图300。OS具有应用程序层310和文件系统320。应用程序层310能够访问由文件系统320组织的文件。文件系统320具有文件系统过滤驱动器(FFD)322,用于监视存储介质160的数据的I/O访问。FFD 322监视文件级信息,其包括但并不限于访问的数据的LBA、访问的文件的文件类型、访问的文件的文件名称、访问的文件的文件大小、在访问的文件上执行的文件操作、来自文件创建操作的属性的用户或应用程序意图以及可用作高速缓存启发式规则的任何其它文件级信息。
OS还具有存储驱动器堆栈330和块驱动器340。块驱动器具有高速缓存策略引擎344,其便于存储介质160和高速缓存设备170的访问。CPE 344从FFD 322接收存储介质160的数据的I/O访问的文件级信息,并且至少基于一个或多个文件级启发式规则来将存储介质160的数据缓存在高速缓存设备170中,或将其逐出高速缓存设备170。利用文件级信息的知识,CPE 344可以针对是将存储介质160的数据缓存到高速缓存设备170还是将其逐出高速缓存设备170做出更好的决定。
在本发明的一个实施例中,CPE 344将高速缓存设备170划分成多个高速缓存行。每个高速缓存行存储存储介质160的一个或多个LBA。在本发明的另一个实施例中,没有以LBA来安排存储介质160的数据,并且可以使用替代的寻址方案。CPE 344的每个高速缓存行存储替代寻址方案的一个或多个单元。在本发明的另一个实施例中,CPE 344使用插入或逐出决定来确定是将文件移动到高速缓存设备170还是将文件移出高速缓存设备170。相关领域中的普通技术人员将容易地理解,可以由CPE 344使用除了LBA方案之外的替代寻址方案,以将来自高速缓存设备170的数据缓存或逐出,并且可以在不影响本发明的工作的情况下使用替代的寻址方案。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当与数据相关联的文件被删除时,从高速缓存设备170中逐出存储介质160的数据。例如,在本发明的一个实施例中,如果在存储介质160中存储的文件被缓存在高速缓存设备170的一个或多个高速缓存行中,当FFD 332检测到文件被OS删除时,FFD 332向CPE 344通知该事件。CPE 344基于高速缓存策略来就是否将与该文件相关联的数据逐出高速缓存设备170做出决定。文件删除发生在以下情况中,其包括但并不限于:将文件移动到微软的回收站、永久删除文件或使得文件被临时或永久删除的任何其它事件。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当与数据相关联的文件被从一个LBA位置移动到另一个LBA位置时,在高速缓存设备170中更新存储介质160的缓存数据的LBA信息。例如,在本发明的一个实施例中,高速缓存设备170的每一个高速缓存行包含其缓存的数据的LBA信息。当在存储介质160的整理碎片操作期间,由OS将文件从存储介质160中的一个LBA位置移动到另一个LBA位置时,FFD 332通知CPE 344更新高速缓存设备170中的、存储与文件相关联的数据的相应的高速缓存行中的LBA信息。在另一个示例中,当对文件执行微小的更新时,也可以由OS将文件从存储介质160中的一个LBA位置移动到另一个LBA位置。FFD 332也通知CPE 344更新高速缓存设备170中的、存储与文件相关联的数据的相应的高速缓存行中的LBA信息。通过更新LBA信息,避免了需要将存储介质160的无效或旧的LBA保持在高速缓存设备170中或逐出高速缓存设备170。当将文件从存储介质160中的一个LBA位置移动到另一个LBA位置时,也不需要将新的LBA再次插入到高速缓存设备170中。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当在移动文件之后,与数据相关联的文件的元数据被更新时,更新存储介质160的缓存数据的数据锁定信息(data pinning information)。例如,在本发明的一个实施例中,可以由系统的用户或OS来直接地或间接地指定一个或多个文件放置在高速缓存设备170中。所述一个或多个文件被称为锁定的文件(pinned files),并且当由OS移动锁定的文件时仅导致更新锁定的文件的元数据时,CPE 344更新数据锁定信息以确保与锁定的文件对应的数据仍然在高速缓存设备170中锁定。此外,CPE 344还可以更新高速缓存设备170中的、存储与锁定的文件相关联的数据的各个高速缓存行中的LBA信息。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:在高速缓存设备170中标记与一文件相关联的缓存数据,以当访问信息指示了文件被复制时,允许其它文件引用或指向所述缓存数据。例如,在本发明的一个实施例中,当一文件被缓存在高速缓存设备170中时,CPE 344标记与该文件相关联的缓存数据,以使得多个文件或LBA可以指向或引用所述缓存数据。通过这样做,可以加速关于文件的所有副本的数据I/O,而无需在高速缓存设备170中多次存储相同数据。在本发明的一个实施例中,可以通过设置与缓存数据相关联的寄存器位或通过指示缓存数据可以由多个文件或LBA来引用的任何其它方法,来标记缓存数据。
在本发明的一个实施例中,FFD 322向CPE 344提供OS的虚拟存储器页文件的扇区映射,以允许页文件的高速缓存插入。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括缓存映射OS的虚拟存储器页文件的一个或多个LBA。FFD 322还可以向CPE 344发送数据I/O访问的进程识别信息。在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当进程识别信息指示启动数据I/O访问的应用程序是挖掘应用程序时,不对与文件相关联的数据进行缓存。挖掘应用程序包括但并不限于病毒扫描应用程序、数据备份应用程序、数据搜索应用程序或访问数据而不重用该数据的任何应用程序。例如,在本发明的一个实施例中,当由OS来访问文件时,FFD 320可以检查文件是否在被挖掘应用程序访问。如果是的话,那么不在高速缓存设备170中缓存与文件相关联的数据。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当与数据相关联的文件被具有相同文件名的另一个文件替换时,逐出存储介质160的数据。例如,在一个实施例中,当文件被复制到包含具有同一名称的文件的目的地目录时,目的地目录中的文件被替换并且从高速缓存设备170逐出与隐式删除的文件相关联的数据。与被复制的文件相关联的数据不被插入到高速缓存设备170中。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当与数据相关联的文件被从缓存存储设备移动到非缓存存储设备时,将存储介质160中的数据逐出高速缓存设备170。例如,在一个实施例中,系统100具有两个存储介质,并且高速缓存设备170仅缓存所述存储介质中的一个。由高速缓存设备170缓存的存储介质被称为缓存存储设备,不由高速缓存设备170缓存的存储介质被称为非缓存存储设备。当缓存存储设备中存储的文件被缓存在高速缓存设备170中时,如果文件被从缓存存储设备移动到非缓存存储设备,那么CPE 344逐出与该文件相关联的数据。在另一个示例中,在本发明的一个实施例中,除了用作高速缓存设备以外,高速缓存设备还可以被用作存储介质。当高速缓存设备170中的文件被从高速缓存设备170移动到存储介质160时,CPE 344逐出与该文件相关联的数据。
在本发明的一个实施例中,CPE 344的高速缓存策略或文件级启发式规则包括:当文件被从缓存存储设备复制到非缓存存储设备时,降低与文件相关联的数据的优先级。例如,在一个实施例中,当在缓存存储设备中存储的文件被缓存到高速缓存设备170中时,如果文件被从缓存存储设备复制到非缓存存储设备,那么CPE 344在高速缓存设备170中降低与文件相关联的数据的优先级。在另一个示例中,在一个实施例中,如果缓存存储设备中存储的文件不在高速缓存设备170中,当文件被从缓存存储设备移动到非缓存存储设备时,CPE 344不在高速缓存设备170中插入或缓存数据。
图4说明了根据本发明的一个实施例的OS中的模块的框图400。框图400示出了CPE 422可以是文件系统420的一部分。例如,在本发明的一个实施例中,CPE是FFD的一部分,并且CPE 422能够获得存储介质160的数据的I/O访问的文件级信息,并且能够至少基于一个或多个文件级启发式规则来将存储介质160的数据缓存在高速缓存设备170中或将其逐出高速缓存设备170。
在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当为了读取访问而打开文件时,缓存与文件相关联的数据。例如,在本发明的一个实施例中,当仅具有读取访问许可的文件被打开时,如果在高速缓存设备170中存在可用的存储空间,那么从存储介质160中预取与文件相关联的数据,并且将其缓存在高速缓存设备170中。在本发明的另一个实施例中,可以标记预取的数据以指示预取的数据近期没有被访问。
在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当为了重写而打开文件时,逐出与该文件相关联的数据。在本发明的另一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当为了读取访问而打开文件并且文件的快速I/O标志被设置时,逐出与所述文件相关联的数据。例如,在本发明的一个实施例中,OS可以为缓存在系统高速缓存中的数据设置快速I/O标志,并且在用户缓冲器和系统高速缓存之间直接传输所述数据,从而绕过文件系统420和存储驱动器堆栈430。当为了由在系统上执行的OS来进行读取访问而打开文件并且该文件的快速I/O标志被设置时,CPE 422逐出与该文件相关联的数据。当文件的快速I/O标志被设置时,与该文件相关联的数据被OS缓存到系统高速缓存中,并且提高了文件的访问速率。因此,在本发明的一个实施例中,由于文件的访问速率已经提高,所以CPE 422不对与该文件相关联的数据进行缓存。
OS可以结合提前读取操作来执行快速I/O读取操作。例如,当OS执行快速I/O读取操作时,OS检查是否需要执行提前读取操作。如果需要提前读取操作,那么OS在快速I/O读取操作期间发出提前读取命令。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当OS在快速I/O读取操作期间发出提前读取命令时,缓存与提前读取命令相关联的数据。通过缓存与提前读取命令相关联的数据,能够进一步改进快速I/O操作。
在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当文件被关闭时,逐出与文件相关联的数据。在本发明的另一个实施例中,与文件相关联的数据可以被降低优先级而保留在高速缓存设备170中,因为在没有中间文件操作以打开文件的情况下,不太可能再次使用所述数据。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:如果文件是媒体流文件,那么不缓存与该文件相关联的数据。例如,在本发明的一个实施例中,当OS对流媒体文件执行顺序读取操作时,CPE 422不在高速缓存设备170中缓存流媒体文件。流媒体文件是以如下所述的格式工作的文件,所述格式包括但并不限于:音频视频交错(AVI)格式、运动图像专家组(MPEG)1音频层3(MP3)格式、MP4格式、QuickTime格式和任何其它流媒体格式。
在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当文件的大小比阈值大时,逐出与文件相关联的数据。例如,在本发明的一个实施例中,当CPE 422接收到关于文件的大小的信息时,它基于阈值来决定将与文件相关联的数据缓存在高速缓存设备170中。在一个实施例中,CPE 422设置阈值为小的或中等的值,以使得大文件可以留在存储介质160中,并且允许更多的小文件留在高速缓存设备170中。可以在后台或对文件读取访问操作来进行该操作。
OS可以根据优先级方案来标记与文件相关联的数据。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当文件被标记为低优先级时,不缓存与该文件相关联的数据。在其它实施例中,如果标记为低优先级的文件已经被缓存在高速缓存设备170中,那么CPE 422降低与该文件相关联的数据的优先级。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当将由标记为高优先级的应用程序来访问文件时,缓存与该文件相关联的数据。例如,在本发明的一个实施例中,当应用程序被标记为高优先级时,CPE 422检查要执行的任何应用程序的进程标识是否匹配所述应用程序。如果匹配,那么由该应用程序访问的数据被缓存在高速缓存设备170中。
可以由CPE 422来使用关于所访问的文件的文件类型或文件扩展名的信息,以定义包括列表和排除列表。包括列表包括:将包括在高速缓存设备170中的一个或多个文件类型或扩展名的文件,排除列表包括:在高速缓存设备170中排除的一个或多个文件类型或扩展名的文件。在本发明的一个实施例中,CPE 422的高速缓存策略或文件级启发式规则包括:当文件的文件类型或文件扩展名属于包括列表时,缓存与该文件相关联的数据,当文件的文件类型或文件扩展名属于排除列表时,避免缓存或逐出与该文件相关联的数据。例如,在一个实施例中,包括列表可以包括具有文件扩展名“DOC”的所有文件。此外,在本发明的另一个实施例中,可以结合包括或排除列表增加额外的规则。例如,规则可以指定:可执行的文件类型的文件将被包括在包括列表中并且文件大小不应大于256千字节。
可以由FFD 322、CPE 344和422或由系统中的另一个部件来执行本文描述的高速缓存策略或文件级启发式规则。尽管在图1中CPE被显示为I/O控制器的一部分、在图3中被显示为块驱动器340的一部分,并且在图4中显示为文件系统420的一部分,但这不意味着是限制性的。高速缓存策略引擎可以是系统的另一个部件的一部分,或者是应用程序的一部分,或者是另一个过滤驱动器,或者可以被包括作为系统上的硬件/固件的一部分。本文描述的高速缓存策略或文件级启发式规则并不意味着是限制性的,相关领域中的普通技术人员将容易理解,还可以在不影响本发明的工作的情况下,使用其它文件级启发式规则。在本发明的其它实施例中,CPE可以结合文件级启发式规则来使用其它启发式规则,以便更好地决定将缓存在高速缓存设备中或从高速缓存设备逐出的存储介质的数据选择。其它启发式规则包括但并不限于:最近最少触碰的数据、最先插入的数据和最后插入的数据。
图5说明了根据本发明的一个实施例的将LBA映射到文件级信息的表500。在本发明的一个实施例中,FFD 322接收每个I/O数据访问的文件级信息。表500示出了LBA 510与文件名称520、文件大小530、文件类型540和文件操作550之间的映射。在本发明的一个实施例中,CPE 344使用表500来确定要执行的适当的高速缓存策略动作。FFD 322维护表500,并且CPE 344从表500中查询或提取文件级信息,以基于文件级信息中的一项或多项来进行其缓存操作。
在本发明的另一个实施例中,CPE 422在没有FFD 322帮助的情况下维护表500,即,CPE是FFD 322的一部分。例如,在本发明的一个实施例中,根据一个文件级启发式规则,CPE 422的高速缓存策略确定文件music.mp3是流媒体文件,因此不在高速缓存设备170中缓存文件music.mp3。可以在平台的主存储器140、高速缓存设备170或CPE能够访问的任何其它位置中维护表500。表500中所示的文件级信息并不意味着是限制性的,表500可以维护或多或少的文件级信息,以允许CPE做出更好的决定。
图6说明了根据本发明的一个实施例的用于执行高速缓存策略的步骤的流程图600。在步骤610中,存储介质160的数据的I/O访问的文件级信息被接收。在步骤620,基于接收的文件级信息来确定适当的高速缓存策略动作。在步骤630,执行适当的动作。本文描述的高速缓存策略启发式规则并不意味着是限制性的,相关领域中的普通技术人员可以在不影响本发明的工作的情况下,至少基于文件级信息来应用其它高速缓存策略启发式规则。
尽管描述了所公开的主题的实施例的例子,但是相关领域中的普通技术人员将容易地理解,可以替代地使用实现所公开的主题的多种其它方法。在前述描述中,已经描述了所公开的主题的各个方面。为了解释的目的,阐明了具体的数量、系统和配置,以便于透彻理解所述主题。但是,对于受益于该公开的相关领域中的技术人员来说,可以在没有这些具体的细节的情况下实现本主题是显而易见的。在其它实例中,公知的特征、部件或模块被省略、简化、组合或分离,以便不模糊所公开的主题。
本文使用的术语“可操作的”意味着:当设备或系统处于断电的状态时,设备、系统、协议等能够操作或适合操作以用于期望的功能。可以用硬件、固件、软件或其组合来实现所公开的主题的各个实施例,并且可以参考或结合程序代码来描述其,所述程序代码例如指令、函数、过程、数据结构、逻辑、应用程序、用于设计的仿真、模拟和制造的设计表示或格式,当由机器访问它们时,导致机器执行任务、定义抽象数据类型或低级硬件环境、或产生结果。
可以使用在一个或多个计算设备(例如,通用计算机或计算设备)上存储并执行的代码和数据来实现图中所示的技术。这种计算设备使用机器可读介质(例如机器可读存储介质,例如:磁盘,光盘,随机存取存储器,只读存储器,闪速存储器设备,相变存储器)和机器可读通信介质(例如,电子的、光的、声的或其它形式的传播信号-例如载波、红外信号、数字信号等)来对代码和数据进行存储和传送(在内部以及通过网络与其它计算设备传送)。
虽然参考示例性实施例描述了所公开的主题,但是该描述并非旨在以限制性的含义来解释。对于公开主题所属领域中的技术人员来说显而易见的示例性的实施例的各种变型以及本主题的其它实施例被认为在所公开的主题的范围内。
Claims (32)
1.一种系统,包括:
存储介质,用于存储数据;
NAND闪存,用于对所述存储介质的数据进行缓存;以及
高速缓存策略引擎,用于至少基于与所述数据相关联的一个或多个文件级启发式规则,将所述存储介质的数据缓存在所述NAND闪存中或逐出所述存储介质的数据。
2.根据权利要求1所述的系统,其中,所述NAND闪存具有比所述存储介质更快的访问速度。
3.根据权利要求1所述的系统,其中,所述高速缓存策略引擎是块驱动器的一部分,并且其中,所述块驱动器便于由所述系统来访问所述NAND闪存和所述存储介质。
4.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括:当与所述数据相关联的文件被在所述系统上执行的操作系统(OS)删除时,逐出所述数据。
5.根据权利要求1所述的系统,其中,所述高速缓存策略引擎还用于:当由在所述系统上执行的操作系统(OS)将与所述存储介质的缓存数据相关联的文件从一个LBA位置移动到另一个LBA位置时,更新所述存储介质的缓存数据的逻辑块地址(LBA)信息,而不将所述数据再次写入所述存储介质。
6.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括:当与所述数据相关联的文件被在所述系统上执行的操作系统(OS)打开时,缓存所述数据的至少一部分。
7.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括:当与所述数据相关联的文件是流媒体文件时,不缓存所述数据。
8.根据权利要求1所述的系统,其中,所述一个或多个文件级启发式规则包括:当与所述数据相关联的文件的大小比阈值大时,不缓存所述数据、逐出所述数据、降低所述数据的优先级或者增加所述数据的寿命。
9.一种方法,包括:
接收在存储介质中存储的数据的输入/输出(I/O)访问的文件级信息;以及
至少基于所述接收的文件级信息来将所述存储介质中存储的数据缓存到高速缓存设备中或从所述高速缓存设备中逐出。
10.根据权利要求9所述的方法,其中,将所述存储介质中存储的数据缓存到所述高速缓存设备或从所述高速缓存设备逐出包括:将所述存储介质的一个或多个逻辑块地址(LBA)中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出。
11.根据权利要求9所述的方法,其中,所述文件级信息包括:文件删除、文件复制、文件打开、文件读取、文件大小、文件类型和文件移动信息中的至少一个。
12.根据权利要求9所述的方法,其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出包括:当所述数据的文件类型或文件扩展名属于包括列表时,缓存所述数据,并且当所述数据的文件类型属于排除列表时,不缓存所述数据或逐出所述数据。
13.根据权利要求9所述的方法,其中,所述文件级信息包括操作系统(OS)对所述数据的访问优先级,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出包括:当所述数据的访问优先级较低时,不缓存所述数据或逐出所述数据,并且当所述数据的访问优先级较高时,缓存所述数据。
14.根据权利要求9所述的方法,其中,所述文件级信息包括执行所述数据的I/O访问的应用程序的信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出包括:当所述应用程序是挖掘应用程序时,不缓存所述数据。
15.根据权利要求10所述的方法,其中,所述存储介质的一个或多个LBA被映射到虚拟存储器页文件,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出包括:将映射到所述虚拟存储器页文件的一个或多个LBA缓存到所述高速缓存设备。
16.一种计算机可读存储介质,其上存储有指令,当所述指令被执行时,使得处理器执行以下方法:
接收存储介质中存储的数据的输入/输出(I/O)访问的文件级信息;以及
至少基于所述接收的文件级信息来将所述存储介质中存储的数据缓存到高速缓存设备中或从所述高速缓存设备中逐出。
17.根据权利要求16所述的介质,其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出的所述处理器将所述存储介质的一个或多个逻辑块地址(LBA)中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出。
18.根据权利要求16所述的介质,其中,所述文件级信息包括:文件删除、文件复制、文件打开、文件读取、文件大小、文件类型和文件移动信息中的至少一个。
19.根据权利要求17所述的介质,其中,所述处理器还用于:当与所述存储介质的缓存数据相关联的文件被在所述处理器上执行的操作系统(OS)移动时,更新所述存储介质的缓存数据的LBA信息。
20.根据权利要求17所述的介质,其中,所述处理器还用于:当与所述存储介质的缓存数据相关联的文件被在所述处理器上执行的操作系统(OS)从一个LBA移动到另一个LBA时,更新所述存储介质的缓存数据的LBA信息。
21.根据权利要求16所述的介质,其中,所述文件级信息包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出的处理器用于:
预取所述存储介质中存储的所述数据;以及
当所述访问信息指示为了读取操作而打开与所述数据相关联的文件时,将所述存储介质中存储的数据缓存到所述高速缓存设备中。
22.根据权利要求16所述的介质,其中,所述文件级信息包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出的处理器用于:当所述访问信息指示为了重写操作而打开与所述数据相关联的文件时,逐出所述数据。
23.一种装置,包括:
高速缓存策略引擎,用于至少基于与存储介质中存储的数据相关联的一个或多个文件级启发式规则来将所述数据缓存到NAND闪存中或从NAND闪存中逐出。
24.根据权利要求23所述的装置,其中,所述高速缓存策略引擎是文件系统过滤驱动器的一部分,并且其中,所述高速缓存策略引擎便于由所述系统来访问所述NAND闪存和所述存储介质。
25.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存中或从所述NAND闪存中逐出的所述高速缓存策略引擎用于:当所述访问信息指示与所述数据相关联的文件被关闭时,逐出所述数据。
26.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存或从所述NAND闪存中逐出的所述高速缓存策略引擎用于:当所述访问信息指示为了读取操作而打开与所述数据相关联的文件并且所述文件的快速I/O标志被设置时,逐出所述数据。
27.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存或从所述NAND闪存中逐出的所述高速缓存策略引擎用于:当所述访问信息指示在数据的快速I/O读取操作期间发出了提前读取命令时,对与所述提前读取命令相关联的数据进行缓存。
28.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,所述高速缓存策略引擎还用于:当所述访问信息指示文件被复制时,标记所述文件的缓存数据以允许由其它文件来引用所述缓存数据。
29.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出的所述高速缓存策略引擎用于:当所述访问信息指示与所述数据相关联的文件被具有相同文件名的另一个文件替换时,逐出所述数据。
30.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述高速缓存设备中或从所述高速缓存设备中逐出的所述高速缓存策略引擎用于:当所述访问信息指示与所述数据相关联的文件被从缓存存储设备移动到非缓存存储设备时,逐出所述数据。
31.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,所述高速缓存策略引擎还用于:当所述访问信息指示与所述数据相关联的文件被从缓存存储设备复制到非缓存存储设备时,降低与所述高速缓存设备中的所述文件相关联的数据的优先级。
32.根据权利要求23所述的装置,其中,所述一个或多个文件级启发式规则包括所述数据的访问信息,并且其中,将所述存储介质中存储的数据缓存到所述NAND闪存或从所述NAND闪存中逐出的所述高速缓存策略引擎用于:当所述访问信息指示访问文件的应用程序被标记为高优先级时,对与所述文件相关联的数据进行缓存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/415,595 | 2009-03-31 | ||
US12/415,595 US8171219B2 (en) | 2009-03-31 | 2009-03-31 | Method and system to perform caching based on file-level heuristics |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101853208A true CN101853208A (zh) | 2010-10-06 |
CN101853208B CN101853208B (zh) | 2014-12-10 |
Family
ID=42228569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010158578.1A Active CN101853208B (zh) | 2009-03-31 | 2010-03-31 | 基于文件级启发式规则来执行缓存的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8171219B2 (zh) |
CN (1) | CN101853208B (zh) |
DE (1) | DE102010013389B4 (zh) |
GB (1) | GB2469373B (zh) |
TW (1) | TWI503665B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049395A (zh) * | 2012-12-10 | 2013-04-17 | 记忆科技(深圳)有限公司 | 缓存存储设备数据的方法及其系统 |
CN104025185A (zh) * | 2011-12-13 | 2014-09-03 | Ati科技无限责任公司 | 用于使用gpu控制器来预加载缓存的机制 |
CN104298617A (zh) * | 2014-08-20 | 2015-01-21 | 深圳大学 | 一种numa平台中非核部件数据流缓冲管理的优化方法及系统 |
CN107223240A (zh) * | 2015-03-12 | 2017-09-29 | 英特尔公司 | 与文件高速缓存的上下文感知管理相关联的计算方法和装置 |
CN107807888A (zh) * | 2017-09-04 | 2018-03-16 | 东莞市爱协生智能科技有限公司 | 一种用于soc架构的数据预取系统及其方法 |
CN112069090A (zh) * | 2016-09-06 | 2020-12-11 | 超威半导体公司 | 用于管理高速缓存层级结构的系统和方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8850128B2 (en) * | 2009-12-23 | 2014-09-30 | HGST Netherlands B.V. | Implementing data storage and dual port, dual-element storage device |
WO2012025728A1 (en) | 2010-08-27 | 2012-03-01 | Fxi Technologies As | Electronics Device |
US9280477B2 (en) | 2010-12-13 | 2016-03-08 | Seagate Technology Llc | Data storage management in a memory device |
US9323670B2 (en) | 2010-12-13 | 2016-04-26 | Seagate Technology Llc | Protecting volatile data of a storage device in response to a state reset |
US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
US8473462B1 (en) * | 2011-04-21 | 2013-06-25 | Symantec Corporation | Change tracking for shared disks |
US8838916B2 (en) | 2011-09-15 | 2014-09-16 | International Business Machines Corporation | Hybrid data storage management taking into account input/output (I/O) priority |
CN102521161B (zh) * | 2011-11-21 | 2015-01-21 | 华为技术有限公司 | 一种数据的缓存方法、装置和服务器 |
US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US10102117B2 (en) * | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
JP5861473B2 (ja) * | 2012-01-27 | 2016-02-16 | 富士通株式会社 | 情報処理装置、メモリ管理方法およびメモリ管理プログラム |
US9612956B2 (en) | 2013-03-15 | 2017-04-04 | Seagate Technology Llc | Multi-tiered caching for data storage management in a device |
US10146437B2 (en) | 2014-03-17 | 2018-12-04 | Primaryio, Inc. | Tier aware caching solution to increase application performance |
US10133488B2 (en) * | 2014-03-17 | 2018-11-20 | Primaryio, Inc. | Apparatus and method for cache provisioning, configuration for optimal application performance |
CN104202650B (zh) * | 2014-09-28 | 2017-11-17 | 西安诺瓦电子科技有限公司 | 流媒体播放系统及方法、led显示屏系统 |
US10365798B1 (en) | 2016-01-08 | 2019-07-30 | Microsoft Technology Licensing, Llc | Feedback manager for integration with an application |
US10891233B2 (en) | 2018-06-28 | 2021-01-12 | Intel Corporation | Intelligent prefetch disk-caching technology |
US10846241B2 (en) * | 2018-08-29 | 2020-11-24 | Vmware, Inc. | Score-based cache admission and eviction |
KR20200143871A (ko) * | 2019-06-17 | 2020-12-28 | 삼성전자주식회사 | 스토리지를 포함하는 전자 장치 및 그의 스토리지 이용 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801121A (zh) * | 2004-05-03 | 2006-07-12 | 微软公司 | 非易失性存储器高速缓存性能改进 |
CN1910538A (zh) * | 2003-12-18 | 2007-02-07 | 英特尔公司 | 改变高速缓存策略的方法和系统 |
US20080162795A1 (en) * | 2006-12-28 | 2008-07-03 | Genesys Logic, Inc. | Hard disk cache device and method |
US20080215800A1 (en) * | 2000-01-06 | 2008-09-04 | Super Talent Electronics, Inc. | Hybrid SSD Using A Combination of SLC and MLC Flash Memory Arrays |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257370A (en) * | 1989-08-29 | 1993-10-26 | Microsoft Corporation | Method and system for optimizing data caching in a disk-based computer system |
JPH0883148A (ja) | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
US6766413B2 (en) * | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
US7444662B2 (en) * | 2001-06-28 | 2008-10-28 | Emc Corporation | Video file server cache management using movie ratings for reservation of memory and bandwidth resources |
US20030061352A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Optimized file cache organization in a network server |
US7237061B1 (en) * | 2003-04-17 | 2007-06-26 | Realnetworks, Inc. | Systems and methods for the efficient reading of data in a server system |
US7610348B2 (en) * | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US7509329B1 (en) * | 2004-06-01 | 2009-03-24 | Network Appliance, Inc. | Technique for accelerating file deletion by preloading indirect blocks |
KR100674189B1 (ko) | 2005-07-06 | 2007-01-24 | 주식회사 대우일렉트로닉스 | 프로젝터가 가능한 프로젝션 텔레비전 |
KR100723512B1 (ko) * | 2005-11-23 | 2007-05-30 | 삼성전자주식회사 | 캐쉬 버퍼 제어 방법 및 이를 이용한 디스크 드라이브 |
JP2007193865A (ja) * | 2006-01-17 | 2007-08-02 | Toshiba Corp | 情報記録装置及びその制御方法 |
US8019790B2 (en) * | 2006-07-11 | 2011-09-13 | Dell Products, Lp | System and method of dynamically changing file representations |
JP2008046964A (ja) * | 2006-08-18 | 2008-02-28 | Toshiba Corp | 情報記録装置及びその制御方法 |
KR100833188B1 (ko) * | 2006-11-03 | 2008-05-28 | 삼성전자주식회사 | 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템 |
KR100881187B1 (ko) * | 2007-01-16 | 2009-02-05 | 삼성전자주식회사 | 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로 |
TW200841343A (en) * | 2007-04-02 | 2008-10-16 | Apacer Technology Inc | A data storage device consisting of NAND (Not-AND) flash memory and its data storing method |
TWI397912B (zh) * | 2008-02-13 | 2013-06-01 | Genesys Logic Inc | 調整存取效能的快閃記憶體儲存裝置 |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8407400B2 (en) * | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
US8209466B2 (en) * | 2008-12-16 | 2012-06-26 | Intel Corporation | Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory |
-
2009
- 2009-03-31 US US12/415,595 patent/US8171219B2/en active Active
-
2010
- 2010-03-29 GB GB1005305A patent/GB2469373B/en active Active
- 2010-03-29 TW TW099109383A patent/TWI503665B/zh not_active IP Right Cessation
- 2010-03-30 DE DE102010013389.2A patent/DE102010013389B4/de active Active
- 2010-03-31 CN CN201010158578.1A patent/CN101853208B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215800A1 (en) * | 2000-01-06 | 2008-09-04 | Super Talent Electronics, Inc. | Hybrid SSD Using A Combination of SLC and MLC Flash Memory Arrays |
CN1910538A (zh) * | 2003-12-18 | 2007-02-07 | 英特尔公司 | 改变高速缓存策略的方法和系统 |
CN1801121A (zh) * | 2004-05-03 | 2006-07-12 | 微软公司 | 非易失性存储器高速缓存性能改进 |
US20080162795A1 (en) * | 2006-12-28 | 2008-07-03 | Genesys Logic, Inc. | Hard disk cache device and method |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104025185A (zh) * | 2011-12-13 | 2014-09-03 | Ati科技无限责任公司 | 用于使用gpu控制器来预加载缓存的机制 |
CN103049395A (zh) * | 2012-12-10 | 2013-04-17 | 记忆科技(深圳)有限公司 | 缓存存储设备数据的方法及其系统 |
CN103049395B (zh) * | 2012-12-10 | 2015-12-23 | 记忆科技(深圳)有限公司 | 缓存存储设备数据的方法及其系统 |
CN104298617A (zh) * | 2014-08-20 | 2015-01-21 | 深圳大学 | 一种numa平台中非核部件数据流缓冲管理的优化方法及系统 |
CN104298617B (zh) * | 2014-08-20 | 2017-12-08 | 深圳大学 | 一种numa平台中非核部件数据流缓冲管理的优化方法及系统 |
CN107223240A (zh) * | 2015-03-12 | 2017-09-29 | 英特尔公司 | 与文件高速缓存的上下文感知管理相关联的计算方法和装置 |
CN107223240B (zh) * | 2015-03-12 | 2021-10-15 | 英特尔公司 | 与文件高速缓存的上下文感知管理相关联的计算方法和装置 |
CN112069090A (zh) * | 2016-09-06 | 2020-12-11 | 超威半导体公司 | 用于管理高速缓存层级结构的系统和方法 |
CN107807888A (zh) * | 2017-09-04 | 2018-03-16 | 东莞市爱协生智能科技有限公司 | 一种用于soc架构的数据预取系统及其方法 |
CN107807888B (zh) * | 2017-09-04 | 2021-03-02 | 深圳市爱协生科技有限公司 | 一种用于soc架构的数据预取系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102010013389A1 (de) | 2010-11-04 |
GB2469373B (en) | 2011-10-19 |
DE102010013389B4 (de) | 2022-11-24 |
TW201040722A (en) | 2010-11-16 |
US8171219B2 (en) | 2012-05-01 |
TWI503665B (zh) | 2015-10-11 |
CN101853208B (zh) | 2014-12-10 |
GB201005305D0 (en) | 2010-05-12 |
GB2469373A (en) | 2010-10-13 |
US20100250834A1 (en) | 2010-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853208B (zh) | 基于文件级启发式规则来执行缓存的方法和系统 | |
US10976928B2 (en) | Remove-on-delete technologies for solid state drive optimization | |
CN106575297B (zh) | 使用盲更新操作的高吞吐量数据修改 | |
US10289556B2 (en) | Techniques to perform power fail-safe caching without atomic metadata | |
US8738850B2 (en) | Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory | |
US9959053B2 (en) | Method for constructing NVRAM-based efficient file system | |
US9690694B2 (en) | Apparatus, system, and method for an address translation layer | |
CN102782683B (zh) | 用于数据库服务器的缓冲池扩展 | |
US20100161882A1 (en) | Methods for Executing a Command to Write Data from a Source Location to a Destination Location in a Memory Device | |
US20170139825A1 (en) | Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach | |
CN103678473B (zh) | 用于在去重虚拟介质中进行高效文件归档回收的方法和系统 | |
US20100042776A1 (en) | Method and apparatus for providing enhanced write performance using a buffer cache management scheme based on a buffer replacement rule | |
TW201324154A (zh) | 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法 | |
US20100161932A1 (en) | Methods for writing data from a source location to a destination location in a memory device | |
CN109725842B (zh) | 加速随机写入布局以用于混合存储系统内的桶分配的系统和方法 | |
US20190303019A1 (en) | Memory device and computer system for improving read performance and reliability | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
CN106326229A (zh) | 一种嵌入式系统的文件存储方法和装置 | |
US9218294B1 (en) | Multi-level logical block address (LBA) mapping table for solid state | |
KR102617154B1 (ko) | 저장된 교체 정보를 갖는 스누프 필터, 이에 대한 방법 및 희생자 전용 캐시와 스누프 필터 공유 교체 정책을 포함하는 시스템 | |
US10579541B2 (en) | Control device, storage system and method | |
US9025380B1 (en) | Management of data storage in a non-volatile memory system | |
KR102210536B1 (ko) | 비휘발성 메모리 장치의 데이터 관리 시스템 및 그 방법 | |
KR20160065659A (ko) | 메모리 컨트롤러, 이를 포함하는 시스템, 및 이의 동작 방법 | |
KR101573375B1 (ko) | 스토리지 서버 환경에서 지역성 기반 ssd 캐시 모듈 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |