CN101981551B - 用于高速缓存利用的设备和方法 - Google Patents

用于高速缓存利用的设备和方法 Download PDF

Info

Publication number
CN101981551B
CN101981551B CN200980112390.9A CN200980112390A CN101981551B CN 101981551 B CN101981551 B CN 101981551B CN 200980112390 A CN200980112390 A CN 200980112390A CN 101981551 B CN101981551 B CN 101981551B
Authority
CN
China
Prior art keywords
information
access
guiding
streaming access
streaming
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.)
Expired - Fee Related
Application number
CN200980112390.9A
Other languages
English (en)
Other versions
CN101981551A (zh
Inventor
R·S·特特里克
D·朱内曼
J·豪斯
J·马修斯
S·威尔斯
G·欣顿
O·平托
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101981551A publication Critical patent/CN101981551A/zh
Application granted granted Critical
Publication of CN101981551B publication Critical patent/CN101981551B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在一些实施例中,一种电子系统可包括:设置在大容量存储设备与系统存储器之间的高速缓存;以及存储在电子系统上的代码,用于基于对第一信息的第一请求的第一元数据与在先前引导上下文中存储的预引导流信息的比较防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储设备之间直接发送流数据。还公开其它实施例并要求其它实施例的权利。

Description

用于高速缓存利用的设备和方法
技术领域
本发明涉及高速缓存利用。更具体来说,本发明的一些实施例涉及在诸如基于处理器的系统的电子系统中利用非易失性高速缓存的设备和方法。
背景技术
许多电子系统得益于高速缓存存储器的使用。在一些电子系统中,可提供驱动程序软件来利用高速缓存存储器。
美国专利第7360015号描述了高速缓存存储器的一些利用,其可包括:确定所请求的信息是否是流式访问(streaming access)的一部分:以及如果所请求的信息是流式访问的一部分,则在存储装置与存储器之间直接传送所请求的信息。或者,如果所请求的信息不是流式访问的一部分,则它可在存储装置与高速缓存之间进行传送。在各种实施例中,高速缓存可以是非易失性盘高速缓存。
ftp://download.intel.com/design/flash/NAND/turbomemory/whitepaper.pdf发布的白皮书中,白皮书描述了Intel
Figure BPA00001234124900011
Turbo Memory,它由Intel TurboMemory控制器ASIC(专用集成电路)芯片和使得能够在休眠之后更快速恢复生产力的两个Intel NAND闪速非易失性存储器组件组成,从而通过限制硬盘驱动器访问而提供额外的功率节省,并增加应用响应性以实现更丰富的用户体验。
附图说明
通过以下对在附图中示出的优选实施例的描述,本发明的各种特征将显而易见,附图中,类似的附图标记一般指相同的部分。附图不一定按比例绘制,而是将重点放在说明本发明的原理上。
图1是根据本发明一些实施例的电子系统的框图。
图2是根据本发明一些实施例的基于处理器的系统的框图。
图3是根据本发明一些实施例的流程图。
图4是根据本发明一些实施例的另一流程图。
图5是根据本发明一些实施例的另一流程图。
图6是根据本发明一些实施例的另一流程图。
图7是根据本发明一些实施例的另一流程图。
图8是根据本发明一些实施例用于比较的编号唯一扇区对访问次数的曲线图。
图9是根据本发明一些实施例的编号唯一扇区对访问次数的曲线图。
图10是根据本发明一些实施例的另一流程图。
具体实施方式
在以下描述中,为了说明而非限制的目的,阐述了诸如特定结构、体系结构、接口、技术等具体细节,以便充分了解本发明的各个方面。但是,对于得益于本公开的本领域技术人员显而易见的是,可在离开这些具体细节的其它实例中实现本发明的各个方面。在某些情况下,省略了对公知装置、电路和方法的描述,以免用不必要的细节混淆对本发明的描述。
参考图1,电子系统10可包括设置在大容量存储设备14与系统存储器16之间的高速缓存12。系统10可包括存储在电子系统10上的代码,用于基于对第一信息的第一请求的第一元数据与在电子系统10的先前引导上下文中存储的预引导流信息的比较而防止将流数据存储在高速缓存12中,而是在系统存储器16与大容量存储设备14之间直接发送流数据。例如,代码可存储在大容量存储设备14、系统存储器16或耦合到电子系统10的另一存储器或存储装置上。
在系统10的一些实施例中,如果基于与第一请求相关联的第一元数据与预引导流信息的比较确定第一信息不是流式访问的一部分,则代码还可使电子系统10缓存第一信息。在系统10的一些实施例中,代码还可使电子系统10:接收对大容量存储设备访问的第二请求,第二请求用于请求第二信息;并且如果先前确定第一信息不是流式访问的一部分,则基于与第一请求相关联的第一元数据和与第二请求相关联的第二元数据的比较确定第二信息是否是流式访问的一部分;并且如果确定第二信息是流式访问的一部分,则存储对应于流式访问的流信息,该流信息跨越包括电子系统10的硬引导在内的电子系统的不同功率状态保持连续(persistent),其中所存储的流信息可在以后用作随后引导的预引导流信息。
在系统10的一些实施例中,代码还可使系统10:基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息是否是流式访问的一部分;将流式访问的频率信息与频率阈值进行比较;如果确定第一信息是流式访问的一部分并且流式访问的频率信息没有超过频率阈值,则直接用大容量存储设备14执行对大容量存储设备访问的第一请求;并且如果确定第一信息是流式访问的一部分并且流式访问的频率信息超过频率阈值,则缓存第一信息。例如,在一些实施例中,代码还可更新流式访问的频率信息。例如,在一些实施例中,代码还可将流式访问的长度信息与流长度阈值进行比较,并且如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器16与大容量存储设备14之间直接发送流数据。
参考图2,基于处理器的系统20可包括处理器21、耦合到处理器21的系统存储器22、大容量存储装置23、以及设置在系统存储器22与大容量存储装置23之间的非易失性高速缓存存储器24。例如,处理器21可以是中央处理单元(CPU)。例如,系统存储器22可以是动态随机存取存储器(DRAM)。例如,系统存储器22可以经由存储器控制器集线器(MCH)25耦合到处理器21。例如,高速缓存24可以是非易失性存储器(NVM)高速缓存。例如,大容量存储装置23可以是诸如硬盘驱动器或光盘驱动器的旋转介质。例如,大容量存储装置23可以是诸如固态驱动器的非旋转介质。例如,高速缓存24和大容量存储装置23都可经由输入/输出控制器集线器(ICH)26耦合到MCH。
存储在基于处理器的系统20上的代码可使基于处理器的系统:接收对大容量存储设备访问的第一请求,第一请求用于请求第一信息;检索在基于处理器的系统的先前引导上下文期间存储的预引导流信息,先前的引导上下文不同于当前的引导上下文。代码还可使基于处理器的系统20:基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息是否是流式访问的一部分;并且如果基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息不是流式访问的一部分,则缓存第一信息。如果确定第一信息是流式访问的一部分,则代码还可使基于处理器的系统20:将流式访问的频率信息与频率阈值进行比较;如果确定第一信息是流式访问的一部分并且流式访问的频率信息没有超过频率阈值,则直接用大容量存储装置23执行对大容量存储设备访问的第一请求;并且如果确定第一信息是流式访问的一部分并且流式访问的频率信息超过频率阈值,则缓存第一信息。例如,代码可存储在大容量存储装置23、系统存储器22或耦合到基于处理器的系统20的另一存储器或存储装置上。例如,代码可作为耦合到ICH 26的基本输入/输出系统(BIOS)27的一部分加以存储。
例如,在系统20的一些实施例中,代码还可使基于处理器的系统20接收对大容量存储设备访问的第二请求,第二请求用于请求第二信息。如果先前确定第一信息不是流式访问的一部分,则代码还可使基于处理器的系统20基于与第一请求相关联的第一元数据和与第二请求相关联的第二元数据的比较确定第二信息是否是流式访问的一部分。如果确定第二信息是流式访问的一部分,则代码还可使基于处理器的系统20存储对应于流式访问的流信息,该流信息跨越包括基于处理器的系统20的硬引导在内的不同功率状态保持连续,其中流信息可在以后用作随后引导的预引导流信息。
例如,在基于处理器的系统20的一些实施例中,代码还可更新流式访问的频率信息。在基于处理器的系统20的一些实施例中,代码还可将流式访问的长度信息与流长度阈值进行比较,并且如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存24中,而是在系统存储器22与大容量存储装置23之间直接发送流数据。
参考图3和图4,根据本发明的一些实施例,在电子系统中利用高速缓存可包括:在大容量存储装置与系统存储器之间设置高速缓存(例如,在方框30);接收对大容量存储设备访问的第一请求,第一请求用于请求第一信息(例如,在方框31);检索在先前的引导上下文期间存储的预引导流信息,先前的引导上下文不同于当前的引导上下文(例如,在方框32);基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息是否是流式访问的一部分(例如,在方框33);以及如果基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息是流式访问的一部分,则直接用大容量存储装置执行对大容量存储设备访问的第一请求(例如,在方框34)。
例如,本发明的一些实施例还可包括:如果基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息不是流式访问的一部分,则缓存第一信息(例如,在方框35)。例如,本发明的一些实施例还可包括:接收对大容量存储设备访问的第二请求,第二请求用于请求第二信息(例如,在方框36);以及如果先前确定第一信息不是流式访问的一部分,则基于与第一请求相关联的第一元数据和与第二请求相关联的第二元数据的比较确定第二信息是否是流式访问的一部分(例如,在方框37);以及如果确定第二信息是流式访问的一部分,则存储对应于流式访问的流信息,该流信息跨越包括电子系统的硬引导在内的电子系统的不同功率状态保持连续,其中所存储的流信息可在以后用作随后引导的预引导流信息(例如,在方框38)。
参考图5和图6,根据本发明的一些实施例,在电子系统中利用高速缓存可包括:在大容量存储装置与系统存储器之间设置高速缓存(例如,在方框50);接收对大容量存储设备访问的第一请求,第一请求用于请求第一信息(例如,在方框51);基于与第一请求相关联的第一元数据和与流式访问相关联的其它信息的比较确定第一信息是否是流式访问的一部分(例如,在方框52);以及如果基于与第一请求相关联的第一元数据和与流式访问相关联的其它信息的比较确定第一信息是流式访问的一部分,则将流式访问的频率信息与频率阈值进行比较(例如,在方框53);如果确定第一信息是流式访问的一部分并且流式访问的频率信息没有超过频率阈值,则直接用大容量存储装置执行对大容量存储设备访问的第一请求(例如,在方框54);以及如果确定第一信息是流式访问的一部分并且流式访问的频率信息超过频率阈值,则缓存第一信息(例如,在方框55)。
例如,与流式访问相关联的其它流信息可以是预引导流信息、在当前的引导上下文中保存的流信息、或与流式访问相关联的可用于将第一信息识别为流式访问的一部分的其它信息。例如,一些实施例还可包括更新流式访问的频率信息(例如,在方框56)。例如,一些实施例还可包括:将流式访问的长度信息与流长度阈值进行比较(例如,在方框57);以及如果流式访问的长度信息超过长度阈值,则防止缓存第一信息(例如,在方框58)。
参考图7,根据本发明的一些实施例,在基于处理器的系统中利用高速缓存可包括:在大容量存储装置与系统存储器之间设置高速缓存(例如,在方框70);接收对大容量存储设备访问的第一请求,第一请求用于请求第一信息(例如,在方框71);检索在先前的引导上下文期间存储的预引导流信息,先前的引导上下文不同于当前的引导上下文(例如,在方框72);基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息是否是流式访问的一部分(例如,在方框73);如果基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息不是流式访问的一部分,则缓存第一信息(例如,在方框74)。如果基于与第一请求相关联的第一元数据和预引导流信息的比较确定第一信息是流式访问的一部分,则一些实施例还可包括:将流式访问的频率信息与频率阈值进行比较(例如,在方框75);如果确定第一信息是流式访问的一部分并且流式访问的频率信息没有超过频率阈值,则直接用大容量存储装置执行对大容量存储设备访问的第一请求(例如,在方框76);以及如果确定第一信息是流式访问的一部分并且流式访问的频率信息超过频率阈值,则缓存第一信息(例如,在方框77)。
本发明的一些实施例还可包括更新流式访问的频率信息(例如,在方框78)。例如,一些实施例还可在进入点A之后利用高速缓存(例如,参见图3)。例如,一些实施例还可在进入点B之后利用高速缓存(例如,参见图5)。
有利地,本发明的一些实施例可提供用于在旋转介质与高速缓存之间处理流访问的改进的技术。如上述白皮书中所述,Intel TurboMemory提供可加快硬盘访问的高速缓存策略。但是,也有一些访问是硬盘做得好但同时可能对高速缓存有害的。例如,媒体文件回放要求可由硬盘以HD视频显示器所需的速率容易地满足。由于这些文件大且很少再使用,所以它们违反根本的缓存前提,即,时间局部性(temporal locality)。如果将这些文件进行缓存,则影响是,可能会从高速缓存中驱逐出具有良好时间局部性的位置而用具有较差时间局部性的位置取代。有利地,本发明的一些实施例可改善何时以及是否缓存信息的决定的时机和质量。
决定过程会因高速缓存驱动程序软件在文件系统软件栈中的位置而复杂化。例如,高速缓存驱动程序软件可能不能直接访问文件名称信息。而是,高速缓存驱动程序软件可访问诸如下列元数据的有限信息:
LBA-用于识别硬盘驱动器上的起始扇区的逻辑块地址;
命令-对大容量存储装置的命令,例如读或写;以及
长度-命令的扇区数。
有利地,本发明的一些实施例可提供用于汇集对高速缓存驱动程序软件有用的这种有限信息并利用此有限信息来识别和管理流的改进的技术。例如,流可以是表示相同命令的命令集和所有或几乎所有扇区。例如,在一些实施例中,最小大小可以是用于检测和识别流的有用参数。最小大小参数可以具有使高速缓存看起来更大的效果,这是因为可移除不太可能的候选者。
参考图8和图9,图8示出没有最小大小参数的示范模拟高速缓存利用,而图9示出具有四兆字节(MB)最小大小参数的示范模拟高速缓存利用。在图9中可见,在移除4MB或更大大小的流之后,还有约40%的高速缓存大小可用。
在一些实施例中,关于流的信息可以用元数据存储。如果以后受到请求要访问,则这些信息可用于在以后识别相同流。这些元数据可用于为来自例如盘驱动器的这个后来的请求直接访问数据,而放弃存储在高速缓存中。在一些实施例中,流式访问可通过将关于先前访问的信息记录到潜在流信息的阵列中来进行检测和识别。这种阵列可存储在各种位置,例如存储在系统存储器或高速缓存本身中。该阵列中的每个元素可包括某些元数据,例如起始位置(例如,起始盘地址)、长度、流(或潜在流)中的请求数量的计数和/或指示流(或潜在流)中的最近请求的到达的时间戳。例如,在流结束之后,可以用元数据表示流的最终长度。
参考图10,本发明的一些实施例可包括识别流(例如,方框101)。例如,此识别包括顺序访问,但不只限于顺序访问。例如,如果信息足够接近顺序性,则访问也可检测为流。读访问和写访问都可识别为流。有利地,通过不将流识别局限于顺序访问,本发明的一些实施例可识别两种额外情形:
a)当没有顺序访问流时;以及
b)当由于例如分段或压缩(但不限于这些实例)而导致流没有按顺序排列在大容量存储装置(例如,旋转介质)上时。
本发明的一些实施例还可包括:将流的所有剩余访问直接指向大容量存储装置(例如,硬盘驱动器)而不是插入到高速缓存中(例如,方框102);将任何缓存的流内容标记为“较早逐出”候选者(例如,方框103);预取流并在系统存储器(例如,DRAM)中缓冲流(例如,方框104);以及当由于例如再使用或基于时间老化而导致流不再有效时,结束流(例如,方框105)。
本发明的一些实施例还可包括跨越系统功率状态保存流信息(例如,方框106)。例如,可在大的时间周期(例如但不限于按分、小时或天计的特定时间长度)内保留在当前引导上下文中检测到的流信息以用作随后引导中的预引导流信息。有利地,存储预引导流信息可有助于在访问流本身的第一元素时检测流,从而更早地识别流(例如,在第二访问请求之前),并能更好地利用高速缓存(例如,通过避免缓存来自第一访问请求的信息)。例如,预引导流信息可存储在永久性存储装置中,例如存储在硬盘、非易失性存储器或电池供电的存储器中。
例如,系统功率状态可包括功率减小状态和关机功率状态。一些基于处理器的系统利用各种功率状态,包括例如就绪状态、待机状态、挂起状态、休眠状态和关闭状态。例如,硬引导可对应于从关闭状态重启系统。
本发明的一些实施例可包括:保存流访问频率信息(例如,方框107);以及利用流频率信息来确定是直接执行对盘的流访问还是将流访问保存在高速缓存中(例如,方框108)。尽管与当前利用高速缓存的做法相反,但根据本发明的一些实施例,如果相对频繁地访问流,则将相对较大的流存储在高速缓存中可能是有利的。例如,如果高速缓存提供比大容量存储装置相对更好的性能,则用户体验可通过缓存频繁访问的流而增强。
根据本发明的一些实施例,可根据以下伪代码来利用高速缓存:
输入:
Access(访问),由系统做出请求。
关键变量:
N,流检测时隙数。
IsAStream,在过滤开始之前的流式数据的扇区数。
M,已知流时隙数。
//处理预先检测的情形,其中保留有预引导流信息:
LOOP M
  IF KnownStream[M].StartLBA=Access.StartLBA
  && KnownStream[M].RequestSizeThreshold=AVERAGE(Access.RequestSize)
  && KnownStream[M].Operation=Access.Operation THEN
     KnownStream[M].Frequency++
     IF KnownStream[M].Frequency>FREQUENCY_THRESHOLD
     && KnownStream[M].Length<CACHED_STREAM_THRESHOLD THEN
        Pre-fetch(M)OR Send to Disk
        Save stream in Cache
        EXIT
     ENDIF
  ENDIF
END LOOP
//运行中检测流
LOOP N
     IF Stream[N].ExpectedStartLBA=Access.StartLBA
     && Stream[N].ExpectedRequestSize=AVERAGE(Access.RequestSize)
     && Stream[N].ExpectedOperation=Access.Operation
     && Stream[N].Valid
     && Stream[N].NotEmpty THEN
           Stream[N].ExpectedStartLBA+=Stream[N].ExpectedRequestSize
           Stream[N].Length+=ExpectedRequestSize
           PlacedInStream=TRUE
           IF Stream[N].Length>IsAStream THEN
                   GOTO Pre-Fetch(N)OR Send To Disk
        Move Stream[N]to Stream[M]
     ENDIF
 ELSE IF Stream[N].NotEmpty THEN
      Stream[N].Expire++
      IF Stream[N].Expire>HighestExpire.Value THEN
           HighestExpire.Value=Stream[N].Expire
           HighestExpired.Index=N
      ENDIF
ENDIF
END LOOP
//将新访问添加到可用流时隙并令N检测新流
IF PlacedInStream=FALSE THEN
      IF Stream[ANY N]IS OPEN THEN
             Stream[ANY N].Valid=TRUE
             Stream[ANY N].ExpectedLBA=Access.StartLBA+Access.RequestSize
             Stream[ANY N].ExpectedRequestSize=Access.RequestSize
             Stream[ANY N].ExpectedOperation=Access.Operation
      ELSE
       Place In Stream[HighestExpired.Index]
      ENDIF
ENDIF
有利地,跨越系统功率状态存储流信息和/或保存流频率信息可改善决定何时以及是否将信息存储在高速缓存中的时机和质量。在一些实施例中,关于利用高速缓存存储器做出更好的决定可使小的高速缓存更有效,从而减少系统大小和/或成本。在一些实施例中,另一个优点是,可移除不太可能对高速缓存有益的访问,从而通过移除队列业务改善高速缓存的响应性,同时保留来自大容量存储装置的良好的介质性能。在一些实施例中,缓存频繁使用的某些大小的流可提供更好的用户体验。
本领域技术人员将明白,给定本描述的益处,各种各样的其它电路以及硬件和/或软件的组合可配置成根据本文描述的实施例和本发明的其它实施例实现各种方法、电路和系统。图1-10的实例是合适实施例的非限制性实例。
本发明的前述和其它方面可个别以及组合地实现。除非特定权利要求明确需要,否则不应将本发明理解为需要两个或两个以上这样的方面。此外,尽管结合目前被认为是优选实例的内容描述了本发明,但应了解,本发明不限于所公开的实例,而是相反,本发明意在涵盖包含在本发明的精神和范围内的各种修正和等效布置。

Claims (20)

1.一种在电子系统中利用高速缓存的方法,包括:
在大容量存储装置与系统存储器之间设置高速缓存;
接收对大容量存储装置访问的第一请求,所述第一请求用于请求第一信息;
检索在先前的引导上下文期间存储的预引导流信息,所述先前的引导上下文不同于当前的引导上下文;
基于与所述第一请求相关联的第一元数据和所述预引导流信息的比较确定所述第一信息是否是流式访问的一部分;
如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息是所述流式访问的一部分,则直接用所述大容量存储装置执行对大容量存储装置访问的所述第一请求;以及
如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储装置之间直接发送流数据。
2.如权利要求1所述的方法,还包括:如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息不是所述流式访问的一部分,则缓存所述第一信息。
3.如权利要求2所述的方法,还包括:
接收对大容量存储装置访问的第二请求,所述第二请求用于请求第二信息;
如果先前确定所述第一信息不是所述流式访问的一部分,则基于与所述第一请求相关联的所述第一元数据和与所述第二请求相关联的第二元数据的比较确定所述第二信息是否是所述流式访问的一部分;以及
如果确定所述第二信息是所述流式访问的一部分,则存储对应于所述流式访问的流信息,所述流信息跨越包括所述电子系统的硬引导在内的所述电子系统的不同功率状态保持连续,其中所存储的流信息可在以后用作随后引导的预引导流信息。
4.一种在电子系统中利用高速缓存的方法,包括:
在大容量存储装置与系统存储器之间设置高速缓存;
接收对大容量存储装置访问的第一请求,所述第一请求用于请求第一信息;
基于与所述第一请求相关联的第一元数据和与流式访问相关联的其它信息的比较确定所述第一信息是否是所述流式访问的一部分;
如果基于与所述第一请求相关联的所述第一元数据和与所述流式访问相关联的所述其它信息的所述比较确定所述第一信息是所述流式访问的一部分,则将所述流式访问的频率信息与频率阈值进行比较;
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息没有超过所述频率阈值,则直接用所述大容量存储装置执行对大容量存储装置访问的所述第一请求;
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息超过所述频率阈值,则缓存所述第一信息;以及
如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储装置之间直接发送流数据。
5.如权利要求4所述的方法,还包括:
更新所述流式访问的频率信息。
6.如权利要求4所述的方法,还包括:
将所述流式访问的长度信息与长度阈值进行比较。
7.一种在基于处理器的系统中利用高速缓存的方法,包括:
在大容量存储装置与系统存储器之间设置高速缓存;
接收对大容量存储装置访问的第一请求,所述第一请求用于请求第一信息;
检索在先前的引导上下文期间存储的预引导流信息,所述先前的引导上下文不同于当前的引导上下文;
基于与所述第一请求相关联的第一元数据和所述预引导流信息的比较确定所述第一信息是否是流式访问的一部分;
如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息不是所述流式访问的一部分,则缓存所述第一信息;以及
如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息是所述流式访问的一部分,则:
将所述流式访问的频率信息与频率阈值进行比较;
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息没有超过所述频率阈值,则直接用所述大容量存储装置执行对大容量存储装置访问的所述第一请求;以及
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息超过所述频率阈值,则缓存所述第一信息;以及
如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储装置之间直接发送流数据。
8.如权利要求7所述的方法,还包括:
接收对大容量存储装置访问的第二请求,所述第二请求用于请求第二信息;
如果先前确定所述第一信息不是所述流式访问的一部分,则基于与所述第一请求相关联的第一元数据和与所述第二请求相关联的第二元数据的比较确定所述第二信息是否是所述流式访问的一部分;以及
如果确定所述第二信息是所述流式访问的一部分,则存储对应于所述流式访问的流信息,所述流信息跨越包括所述基于处理器的系统的硬引导在内的不同功率状态保持连续,其中所述流信息可在以后用作随后引导的预引导流信息。
9.如权利要求7所述的方法,还包括:
更新所述流式访问的频率信息。
10.如权利要求7所述的方法,还包括:
将所述流式访问的长度信息与长度阈值进行比较。
11.一种在电子系统中利用高速缓存的装置,包括:
在大容量存储装置与系统存储器之间设置高速缓存的部件;
接收对大容量存储装置访问的第一请求的部件,所述第一请求用于请求第一信息;
检索在先前的引导上下文期间存储的预引导流信息的部件,所述先前的引导上下文不同于当前的引导上下文;
基于与所述第一请求相关联的第一元数据和所述预引导流信息的比较确定所述第一信息是否是流式访问的一部分的部件;
如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息是所述流式访问的一部分,则直接用所述大容量存储装置执行对大容量存储装置访问的所述第一请求的部件;以及
如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储装置之间直接发送流数据的部件。
12.如权利要求11所述的装置,还包括:如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息不是所述流式访问的一部分,则缓存所述第一信息的部件。
13.如权利要求12所述的装置,还包括:
接收对大容量存储装置访问的第二请求的部件,所述第二请求用于请求第二信息;
如果先前确定所述第一信息不是所述流式访问的一部分,则基于与所述第一请求相关联的所述第一元数据和与所述第二请求相关联的第二元数据的比较确定所述第二信息是否是所述流式访问的一部分的部件;以及
如果确定所述第二信息是所述流式访问的一部分,则存储对应于所述流式访问的流信息的部件,所述流信息跨越包括所述电子系统的硬引导在内的所述电子系统的不同功率状态保持连续,其中所存储的流信息可在以后用作随后引导的预引导流信息。
14.一种在电子系统中利用高速缓存的装置,包括:
在大容量存储装置与系统存储器之间设置高速缓存的部件;
接收对大容量存储装置访问的第一请求的部件,所述第一请求用于请求第一信息;
基于与所述第一请求相关联的第一元数据和与流式访问相关联的其它信息的比较确定所述第一信息是否是所述流式访问的一部分的部件;
如果基于与所述第一请求相关联的所述第一元数据和与所述流式访问相关联的所述其它信息的所述比较确定所述第一信息是所述流式访问的一部分,则将所述流式访问的频率信息与频率阈值进行比较的部件;
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息没有超过所述频率阈值,则直接用所述大容量存储装置执行对大容量存储装置访问的所述第一请求的部件;
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息超过所述频率阈值,则缓存所述第一信息的部件;以及
如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储装置之间直接发送流数据的部件。
15.如权利要求14所述的装置,还包括:
更新所述流式访问的频率信息的部件。
16.如权利要求14所述的装置,还包括:
将所述流式访问的长度信息与长度阈值进行比较的部件。
17.一种在基于处理器的系统中利用高速缓存的装置,包括:
在大容量存储装置与系统存储器之间设置高速缓存的部件;
接收对大容量存储装置访问的第一请求的部件,所述第一请求用于请求第一信息;
检索在先前的引导上下文期间存储的预引导流信息的部件,所述先前的引导上下文不同于当前的引导上下文;
基于与所述第一请求相关联的第一元数据和所述预引导流信息的比较确定所述第一信息是否是流式访问的一部分的部件;
如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息不是所述流式访问的一部分,则缓存所述第一信息的部件;以及
如果基于与所述第一请求相关联的所述第一元数据和所述预引导流信息的所述比较确定所述第一信息是所述流式访问的一部分,则:
将所述流式访问的频率信息与频率阈值进行比较的部件;
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息没有超过所述频率阈值,则直接用所述大容量存储装置执行对大容量存储装置访问的所述第一请求的部件;以及
如果确定所述第一信息是所述流式访问的一部分并且所述流式访问的频率信息超过所述频率阈值,则缓存所述第一信息的部件;以及
如果流式访问的长度信息超过长度阈值,则防止将流数据存储在高速缓存中,而是在系统存储器与大容量存储装置之间直接发送流数据的部件。
18.如权利要求17所述的装置,还包括:
接收对大容量存储装置访问的第二请求的部件,所述第二请求用于请求第二信息;
如果先前确定所述第一信息不是所述流式访问的一部分,则基于与所述第一请求相关联的第一元数据和与所述第二请求相关联的第二元数据的比较确定所述第二信息是否是所述流式访问的一部分的部件;以及
如果确定所述第二信息是所述流式访问的一部分,则存储对应于所述流式访问的流信息的部件,所述流信息跨越包括所述基于处理器的系统的硬引导在内的不同功率状态保持连续,其中所述流信息可在以后用作随后引导的预引导流信息。
19.如权利要求17所述的装置,还包括:
更新所述流式访问的频率信息的部件。
20.如权利要求17所述的装置,还包括:
将所述流式访问的长度信息与长度阈值进行比较的部件。
CN200980112390.9A 2008-06-25 2009-06-09 用于高速缓存利用的设备和方法 Expired - Fee Related CN101981551B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/215,093 2008-06-25
US12/215,093 US8433854B2 (en) 2008-06-25 2008-06-25 Apparatus and method for cache utilization
PCT/US2009/046731 WO2009158183A2 (en) 2008-06-25 2009-06-09 Apparatus and method for cache utilization

Publications (2)

Publication Number Publication Date
CN101981551A CN101981551A (zh) 2011-02-23
CN101981551B true CN101981551B (zh) 2014-04-16

Family

ID=41445201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980112390.9A Expired - Fee Related CN101981551B (zh) 2008-06-25 2009-06-09 用于高速缓存利用的设备和方法

Country Status (6)

Country Link
US (1) US8433854B2 (zh)
JP (2) JP5340315B2 (zh)
CN (1) CN101981551B (zh)
DE (1) DE112009000418T5 (zh)
GB (1) GB2473149B (zh)
WO (1) WO2009158183A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433854B2 (en) 2008-06-25 2013-04-30 Intel Corporation Apparatus and method for cache utilization
US8161304B2 (en) * 2009-01-20 2012-04-17 Microsoft Corporation Power management for large memory subsystems
US8533445B2 (en) * 2009-04-21 2013-09-10 Hewlett-Packard Development Company, L.P. Disabling a feature that prevents access to persistent secondary storage
FI20105743A0 (fi) * 2010-06-29 2010-06-29 Tuxera Inc Muistista lukeminen tai muistiin kirjoittaminen
CN102651861B (zh) * 2011-02-24 2014-08-20 腾讯科技(深圳)有限公司 用于移动终端的下载方法、移动终端和代理下载服务器
JP5117608B1 (ja) * 2011-09-30 2013-01-16 株式会社東芝 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法
US11003464B2 (en) * 2012-04-19 2021-05-11 Microsoft Technology Licensing, Llc Control flow integrity enforcement at scale
US9141648B1 (en) 2012-05-05 2015-09-22 Paraccel Llc Management of database blocks
WO2014015409A1 (en) * 2012-07-24 2014-01-30 Institute Of Computer Science Of The Foundation For Research And Technology - Hellas (Ics-Forth) System and method for implementing ssd-based i/o caches
US20140095778A1 (en) * 2012-09-28 2014-04-03 Jaewoong Chung Methods, systems and apparatus to cache code in non-volatile memory
US9009439B2 (en) * 2013-03-12 2015-04-14 Sap Se On-disk operations on fragments to support huge data sizes
CN104424314B (zh) * 2013-09-06 2019-06-11 Sap欧洲公司 对列状表数据库的数据库操作
US11169925B2 (en) 2015-08-25 2021-11-09 Samsung Electronics Co., Ltd. Capturing temporal store streams into CPU caches by dynamically varying store streaming thresholds
CN113448877A (zh) * 2020-03-26 2021-09-28 伊姆西Ip控股有限责任公司 用于数据存储的方法、设备和计算机程序

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748487B1 (en) * 1998-02-04 2004-06-08 Hitachi, Ltd. Disk cache control method, disk array system, and storage system
CN1757018A (zh) * 2003-03-06 2006-04-05 皇家飞利浦电子股份有限公司 具有预取装置的数据处理系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04340637A (ja) 1991-05-17 1992-11-27 Mitsubishi Electric Corp キャッシュ制御方式
JPH06195265A (ja) 1992-12-25 1994-07-15 Matsushita Electric Ind Co Ltd キャッシュメモリの操作方法
JP2943896B2 (ja) 1993-09-03 1999-08-30 株式会社ピーエフユー 計算機システム及びディスク・データの制御方法
JP3585091B2 (ja) 1998-06-15 2004-11-04 富士通株式会社 記憶装置
US6578111B1 (en) * 2000-09-29 2003-06-10 Sun Microsystems, Inc. Cache memory system and method for managing streaming-data
US6826710B2 (en) 2001-01-25 2004-11-30 Dell Products L.P. System and method for providing a fault-resilient boot
US7051161B2 (en) * 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
US20040255106A1 (en) 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
US20040267708A1 (en) 2003-06-18 2004-12-30 Rothman Michael A Device information collection and error detection in a pre-boot environment of a computer system
JP4452064B2 (ja) 2003-11-18 2010-04-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US7360015B2 (en) * 2004-05-04 2008-04-15 Intel Corporation Preventing storage of streaming accesses in a cache
US7392340B1 (en) * 2005-03-21 2008-06-24 Western Digital Technologies, Inc. Disk drive employing stream detection engine to enhance cache management policy
US8490065B2 (en) * 2005-10-13 2013-07-16 International Business Machines Corporation Method and apparatus for software-assisted data cache and prefetch control
GB2439577B (en) * 2006-06-30 2011-12-14 Data Equation Ltd Data processing
US8433854B2 (en) 2008-06-25 2013-04-30 Intel Corporation Apparatus and method for cache utilization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748487B1 (en) * 1998-02-04 2004-06-08 Hitachi, Ltd. Disk cache control method, disk array system, and storage system
CN1757018A (zh) * 2003-03-06 2006-04-05 皇家飞利浦电子股份有限公司 具有预取装置的数据处理系统

Also Published As

Publication number Publication date
CN101981551A (zh) 2011-02-23
JP2011514593A (ja) 2011-05-06
US20090327607A1 (en) 2009-12-31
DE112009000418T5 (de) 2011-04-21
US8433854B2 (en) 2013-04-30
JP2013178818A (ja) 2013-09-09
GB2473149B (en) 2012-10-17
JP5717790B2 (ja) 2015-05-13
WO2009158183A2 (en) 2009-12-30
JP5340315B2 (ja) 2013-11-13
GB201015976D0 (en) 2010-11-03
GB2473149A (en) 2011-03-02
WO2009158183A3 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
CN101981551B (zh) 用于高速缓存利用的设备和方法
CN107346290B (zh) 使用并行化日志列表重放分区逻辑到物理数据地址转换表
EP2921963B1 (en) Memory recycling method and device
CN100487632C (zh) 双媒体存储装置
KR101257848B1 (ko) 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US8880775B2 (en) System and method of garbage collection in a memory device
CN102063943B (zh) Nand闪存参数自动检测系统
CN106547476B (zh) 用于数据存储系统的方法和装置
US20130060994A1 (en) Non-volatile memory management system with time measure mechanism and method of operation thereof
US8819350B2 (en) Memory system
KR20150035560A (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
CN101627373A (zh) 通过预擦除机制的存储器设备性能增强
US8214596B2 (en) Apparatus and method for segmented cache utilization
US20090094391A1 (en) Storage device including write buffer and method for controlling the same
CN101702139B (zh) 一种访问Nand闪存数据的方法和装置
CN112799595B (zh) 数据处理方法、设备及存储介质
CN109491592B (zh) 存储设备及其数据写入方法、存储装置
KR102343246B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN108874574B (zh) 一种垃圾回收处理方法及相关装置
KR102366512B1 (ko) 논리 블록 어드레싱 범위 충돌 크롤러
US10007601B2 (en) Data storage device and operating method for flash memory
US20170269834A1 (en) Data storage device and data management method thereof
CN106055488B (zh) 数据储存设备及其操作方法
US20110087828A1 (en) Method for enhancing performance of accessing a flash memory, and associated memory device and controller thereof
CN113900591A (zh) 延长存储器寿命的方法、装置、电子设备及存储介质

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140416

Termination date: 20180609

CF01 Termination of patent right due to non-payment of annual fee