CN1520549A - 系统启动时间减少的方法 - Google Patents
系统启动时间减少的方法 Download PDFInfo
- Publication number
- CN1520549A CN1520549A CNA028129296A CN02812929A CN1520549A CN 1520549 A CN1520549 A CN 1520549A CN A028129296 A CNA028129296 A CN A028129296A CN 02812929 A CN02812929 A CN 02812929A CN 1520549 A CN1520549 A CN 1520549A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- state
- admittedly
- metadata
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了一种减少系统初始化时间的系统和方法。依照本发明,将在系统初始化期间所访问的数据加载到非易失性高速缓存器中并将其固锁从而防止驱逐。在系统重启时,通过将数据固锁在高速缓存器中,来将系统初始化所需的数据预先加载到高速缓存器中,由此消除访问盘的需要。
Description
技术领域
本发明涉及操作系统,尤其涉及在系统中使用的非易失性高速缓存器。
背景技术
将处理器与高速缓存器一起使用,减少存储器访问时间并提供设备的总体速度。典型地,高速缓存器是存储器的一个区域,该区域充当了设备的临时存储区域。处理器所频繁访问的数据,在针对高速缓存器的同一数据可能进行了初次访问及后续访问之后,仍然保留在该高速缓存器当中。
通常使用两类缓存技术:存储器缓存技术和盘缓存技术。存储器高速缓存器,有时称作高速缓冲存储器,典型为高速存储器设备,诸如静态随机存取存储器(SRAM)。存储器缓存技术非常有效,这是因为绝大多数程序常常会重复访问相同数据或指令。
盘缓存技术工作在和存储器缓存技术相同的原理下的,但是却使用常规的存储设备,诸如动态随机存取存储器(DRAM)。最近从盘所访问的数据,被存储于盘高速缓存器当中。当程序需要从盘访问该数据时,就首先要检查盘高速缓存器,以便查看该数据是否在盘高速缓存器中。盘缓存技术能够显著提高应用程序的性能,这是因为在RAM中访问数据的一个字节能够比访问在盘上的一个字节要快得多。举例来讲,为加载操作系统和启用系统服务所需的盘访问序列,是可以预测的。因此,为了更快地访问,可以在正常操作期间,把此初始化数据带入到盘高速缓存器中。
然而,高速缓存器的存储器大小是有限的,而且通常用来存储最近所使用的数据。因而,当高速缓存器变满时,在高速缓存器中所存储的现存数据行,就会被替换或被取消分配,以便为新近请求的数据行腾出空间。最常用的高速缓存器替换是最近最少使用(LRU)算法,通过该算法来驱逐最旧(最近最少使用)的存储器行。
尽管,替换过程通常不会产生问题,但是确定类型的数据替换也会造成损害。因此,在相关技术中,已经提出了许多解决一些可能由替换算法所引起的问题的方法。例如,名为“Programmable CacheIncluding a Non-Lockable Data Way and a Lockable Data WayConfigured To Lock Real-Time Data(包含配置以锁定实时数据的不可锁定数据方式和可锁定数据方式的可编程高速缓存器)”的美国专利5913224和名为“Cache Memory System and Method ForAutomatically Locking Cache Entries To Prevent SelectedMemory Items From Being Replaced(用于自动锁定高速缓存器条目以防止所选存储项被替换的高速缓冲存储器系统及方法)”的美国专利5974508公开了一种方法,该方法用于锁定易失性高速缓冲存储器中的时间临界数据的内容,从而防止在正常操作期间的驱逐。
然而,对于在系统初始化期间所需数据的类型而言,由于在系统启动或系统供电周期之间会丢失信息,所以将初始化数据锁定到易失性高速缓冲存储器中,在需要这些数据时就会使它们变得不可用。
附图说明
下面将参照下列附图详细描述本发明,在其中相同参考标记指的是相似元件,其中:
图1是实现本发明的示范性系统;
图2示出依照本发明实施例的示范性固锁(pinning)过程;
图3示出依照本发明第二实施例的示范性固锁过程;和
图4示出依照本发明第三实施例的示范性固锁过程。
详细说明
在以下说明中给出具体细节,来提供对本发明的彻底理解。例如,为了防止不必要细节造成本发明不清楚,而在方框图中示出一些电路。然而,本领域技术人员将应当理解:本发明可以在没有上述具体细节的情况下加以实施。
如这里所公开的,“高速缓存器”指的是临时存储区域,也可以是存储器缓存器或者盘缓存器。术语“数据”指的是能被存储在高速缓存器中的数据和指令。“盘”指的是硬盘驱动器、软盘驱动器、光盘(CD)驱动器或任何其它用于大容量数据大容量存储器的磁存储器设备或光存储器设备。术语“系统初始化”既指当第一次打开电源时的系统启动,即周知的冷启动,也指当系统重新启动时的系统重启,即周知的热启动。为了解释起见,将可互换地使用系统启动和系统重启。术语“计算机可读介质”包括但不限于:便携式或固定式存储设备、光存储设备和任何其它能存储计算机指令和/或数据的存储设备。术语“计算机指令”是包含可被读取和/或执行来完成确定任务的数据、代码及程序的软件或固件。
一般而言,本发明提供了一种在非易失性存储介质中保留系统初始化期间所需数据的系统和方法。重新加载操作系统和重新启动系统服务所需的时间,是使用户恼怒的重要来源。然而,大多数上述时间都专用于从盘读取必要数据。由于在系统启动或开启期间从盘读取的数据序列是可重复的,而且能够被预测,因而通过将系统初始化必要的数据预先加载到高速缓存器中来减少初始化时间。
具体而言,将初始化期间所访问的数据(以下称为“必要数据”)加载到非易失性高速缓存器中,并且标注或“固锁”它以防止驱逐。因此,必要数据就会驻留在高速缓存器中,以用于在系统初始化期间、甚至是在意外系统关闭后快速访问,由此来避免对盘的访问。
在图1中示出了实现本发明原理的系统100的示范性实施例。该系统100包括:处理器110,它通过总线130耦合于易失性存储器120(以下称为“存储器”)。在一个实施例中,存储器110是动态随机存取存储器(DRAM)。同样耦合于总线130的存储器控制集线器(hub)140,经由链路125来控制存储器120的操作、经由链路155来控制非易失性高速缓存器150(以下称为“高速缓存器”)的操作,以及经由链路165来控制盘160的操作。存储器控制集线器140包括:管理存储器120和高速缓存器150的状态或元数据信息的逻辑电路(未示出)。此外,本领域技术人员将认识到:存储器控制集线器140还可包括:控制诸如读、写、更新以及无效的操作之类的高速缓存功能的附加电路。最后,可将诸如键盘、鼠标和/或显示器等多个输入/输出设备170耦合于总线130。
尽管所示出的系统100是具有单个处理器的系统,但是本发明可以用多个处理器加以实施,在其中附加处理器也将耦合于总线130。在这种情况下,每个附加处理器都将共享高速缓存器150和存储器120,以便将数据和/或指令写入到其中,以及从其中读取数据和/或指令。而且,系统100示出了作为非易失性存储介质的高速缓存器150。然而,高速缓存器150可以是易失性和非易失性存储介质的组合。同样,存储器120可以是易失性存储介质和非易失性存储介质的一种组合或任意组合。此外,可以将高速缓存器150实施到系统100当中,以作为诸如外围部件互连(PCI)内插附件的内插卡。在另一实施例中,可以将盘160的一部分分配作为高速缓存器150。在下面将接着描述本发明。
在一个实施例中,通过将“固锁位”添加到高速缓存器150中每行数据的元数据状态上,来实现数据的固锁。典型地,将校正操作所需的元数据存储在存储器120和高速缓存器150两者中。因为元数据是在系统启动期间被保留的,因此把这种元数据称作为“持久元数据”。持久元数据可包括:表明高速缓存器150中相应数据行为有效和/或脏的标志,以及表明在高速缓存器行中所包含数据的起始盘地址的标记。校正操作不需要、但却能提高性能的元数据,典型地被存储在易失性存储介质中,比如被存储在存储器120中。易失性存储介质中所存储的这种元数据在系统启动期间丢失,将上述数据称作为“非持久元数据”。非持久元数据可包括:用作最近最少使用(LRU)信息的每个高速缓存器行的时效期。
在一个实施例中,将固锁位放置在存储器120当中,以作为非持久元数据。在系统重启时,在前一次系统启动的初始化期间已固锁的必要数据,会已经被加载到高速缓存器150中。然而,由于固锁位是非持久性的,因而固锁位信息会在系统启动中间丢失,并且无法判断出是否固锁了数据行或者该数据行是否仅仅在高速缓存器150呆过。因此,在每次初始化序列期间,都要执行固锁过程来固锁数据。此处,提高系统启动性能的需要与在正常操作期间保持高速缓存器150中多数空间的空闲或可替换的需要,这两者应当保持平衡。因此,为固锁到高速缓存器150当中的数据量设置一个上限,来限制正常执行期间所占用的空间量。
尽管可以利用任意方法来限制所固锁的数据量,但图2示出了依照本发明一个实施例的使用一个计时器的示范性固锁过程200。当系统刚一初始化,就设置计时器(决220)。之后,图1的存储器控制集线器140促使对与所访问数据行相对应的固锁位被设置(块230),直到计时器到期为止(块240)。这里,数据访问包括对高速缓存器150的读和写。也可以根据系统需要来设置计时器。然而,在设置计时器过程中,应该为初始化序列预留出充分的时间量。例如,在大容量存储高速缓存器中可以将计时器设置为两分钟。
图3示出了依照本发明第二实施例的另一个固锁过程300,所述第二实施例允许固锁最大数据量。当系统刚一初始化,就判断是否已经固锁最大数据量(块320)。直到超出最大量,存储器控制集线器140才促使设置对应于所访问数据行的固锁位(块320和330)。这里,访问也包括对高速缓存器150的读和写。根据系统需要来给出能被固锁的最大量。一般而言,应当为正常操作而使高速缓存器150中大多数数据行保持“不固锁”。例如,在带有N个高速缓存器相联组(associativity set)的大容量存储高速缓存器中,可为每一个高速缓存器相联组中的一行设置最大量。
图4示出了依照本发明第三实施例的另一个固锁过程400,所述第三实施例既使用了计时器也使用了最大数据量来进行固锁。在固锁过程400中,还将“重启前缓存位(cacheBeforeReboot bit)”添加到非持久元数据中。为系统初始化之前存在于高速缓存器150中的任一高速缓存行,设置重启前缓存位。例如,当系统重新启动时,随着从高速缓存器150页入(page in)该持久元数据,就可以设置这些位。
现在参照图4,当系统刚一初始化就设置计时器(块420),并且如果还没有超出最大量,那么存储器控制集线器140就促使对应于所访问的高速缓存行的固锁位被设置(块430和440)。这里的访问包括对高速缓存器150的读和写。如果超出最大量,则通过检查该重启前缓存位信息,来判断当前所访问的高速缓存行在重启之前是否被缓存过(块450)。如果设置了与当前所访问的高速缓存行相对应的重启前缓存位,则也通过检查相应的重启前缓存位,来进一步判断在重启之前是否存在未被缓存的固锁行(块460)。
例如,如果在该相联组中具有重启之前未被缓存的现存固锁行,那么存储器控制集线器140就促使与现存行相对应的固锁位被清除(或被解锁),并促使对应于当前所访问的高速缓存行的固锁位被设置(块470)。如果在块450判断出当前所访问的高速缓存行在重启之前未被缓存,或是在块460判断出不存在重启之前未被缓存的固锁行,那么存储器控制集线器140就促使将当前所访问的高速缓存行被带入到高速缓存器150中,但却不被固锁(块470)。
在块440、470和480之后,判断计时器是否到期(块490)。如果计时器已到期,则固锁过程400就结束。否则,该过程将返回到块430并重复。直到计时器到期,才将数据有选择地固锁到高速缓存器150中,以便改进下次重启的性能。与此同时,限制可被固锁的行数,从而为正常操作允许高速缓存器中的大多数空间。
在固锁过程400中,通过固锁在重启之前已被缓存的行,来将优先权赋予固锁那些已经存在高速缓存器中的行。如果在块460中有一行以上的固锁行在重启之前未被缓存,则就利用LRU信息来清除与具有最新时效期的行相对应的固锁位。因此,为了反映出真实的初始化序列而不是可能的早期用户活动,固锁过程400还可以将优先权赋予具有更早时间的行。此外,与在固锁过程200和300一样,应当设置计时器,从而为初始化序列保留出充分的时间量,并且还应当设置要固锁的最大量,从而在高速缓存器中为正常操作保留出每一组的大多数。例如,可以为大容量存储高速缓存器将计时器设置为一分钟、而将最大数目设置为每组一行。
一旦在固锁过程200-400中已经固锁了最大量或者计时器到期了,则任何另外的访问将不驱逐具有被设置的相应固锁位的高速缓存行。而且,图1的存储器控制集线器140可进一步包括:用于清除一个或多个高速缓存行的固锁位的逻辑电路。例如,如果在系统上加载新的操作系统,则多个缓存行的清除就将允许高速缓存行的不同集合被固锁。
通过在系统初始化期间将数据固锁到非易失性高速缓存器中,就能够减少系统初始化所需的时间。这在大容量存储高速缓存器中尤为显著。然而,在另一实施例中,可将该固锁位存储在非易失性存储介质中,从而在启动之间保留该信息。例如,可将固锁位包含于存储在高速缓存器150的元数据中,或者如果存储器120包括非易失性存储介质,也可将固锁位包含于存储器120中。在这种情况下,由于在系统启动之间保留有固锁位信息,因而在每次系统初始化期间的固锁过程将不再成为必要。而且,虽然已经参考系统初始化对本发明作了描述,但是本发明的教导并不限制于固锁系统初始化期间所必须的数据,并且本发明的教导能应用于需要重复使用非易失性高速缓存器中的数据的任何操作之中。
前述实施例仅仅是示范性的,并不能认为它会限制本发明。目前的教导能容易地应用于任何其它类型的装置。本发明的说明是解释说明性的,而不能限定权利要求的保护范围。对本领域技术人员而言,许多替换、修改和变形都是显而易见的。
Claims (32)
1.一种方法,包括:
将数据存储到第一存储器中,所述第一存储器是高速缓存器中的非易失性存储介质;和
固锁在第一存储器中存储的一部分数据。
2.如权利要求1所述的方法,其中存储数据包括:将所述数据存储到大容量高速缓存器中。
3.如权利要求1所述的方法,其中数据的固锁包括:固锁系统初始化所必须的一部分数据。
4.如权利要求1所述的方法,其中数据的固锁包括:
存储与在第一存储器中存储的数据相对应的元数据;和
在所述元数据中设置一状态,用于表明对应的数据行被固锁。
5.如权利要求4所述的方法,其中存储元数据包括:将所述元数据存储到第二存储器中。
6.如权利要求4所述的方法,其中存储元数据包括:将所述元数据存储到易失性存储介质中。
7.一种存储于存储器中的元数据,包括:
第一状态,用于表明非易失性存储器中对应的数据行的最近最少使用信息;和
第二状态,用于表明非易失性存储器中对应的数据行是否被固锁。
8.如权利要求7所述的元数据,进一步包括:
第三状态,用于表明在系统初始化之前在非易失性存储器中是否存在对应的数据行。
9.如权利要求7所述的元数据,其中所述元数据被存储在易失性存储介质中。
10.一种系统,包括:
高速缓存器,包括用于存储高速缓存数据的第一存储介质,所述第一存储介质是非易失性存储介质;和
第二存储介质,用于存储在第一存储介质中所存储的高速缓存数据的元数据,所述元数据包括一状态,用于表明对应的数据行是否被固锁。
11.如权利要求10所述的系统,其中所述高速缓存器是大容量存储高速缓存器。
12.如权利要求10所述的系统,其中所述第二存储介质是易失性存储介质。
13.如权利要求10所述的系统,其中所述第二存储介质被包含于高速缓存器中。
14.如权利要求10所述的系统,其中将所述高速缓存器被实现成内插卡。
15.一种方法,包括:
在系统初始化期间访问第一存储器,所述第一存储器是高速缓存器;和
在第一存储器中固锁在系统初始化期间所访问的数据。
16.如权利要求15所述的方法,其中所述高速缓存器是大容量存储高速缓存器。
17.如权利要求15所述的方法,进一步包括:
在系统初始化期间限制数据的固锁。
18.如权利要求15所述的方法,其中在系统初始化期间数据的固锁包括:
存储在第一存储器中所存储的数据的元数据,所述元数据包括用于表明对应的数据行是否被固锁的第一状态;和
设置对应于所访问数据的第一状态,以便表明所访问的数据被固锁。
19.如权利要求18所述的方法,其中数据的固锁进一步包括:
当系统刚初始化时,设置计时器;和
设置对应于所访问数据的第一状态,直到该计时器到期为止。
20.如权利要求18所述的方法,其中数据的固锁进一步包括:
设置要固锁的最大数据量;和
设置对应于所访问数据的第一状态,直到超出最大量为止。
21.如权利要求18所述的方法,其中所述元数据还包括第二状态;并且其中数据的固锁进一步包括:
为在系统初始化之前存在的数据设置第二状态,第二状态的设置用来表明在系统初始化之前存在对应的数据;
当系统刚初始化时,设置计时器;
设置要固锁的最大数据量;
如果未超出最大量且如果计时器未到期,则设置对应于所访问数据的第一状态;以及否则
清除对应于已固锁数据的第一状态,并且如果未设置对应于已固锁数据的第二状态,而设置了对应于所访问数据的已固锁数据,且如果计时器还未到期,则设置对应于所访问数据的第一状态。
22.如权利要求21所述的方法,其中所述元数据还包括用于表明对应数据行的时效期的第三状态,并且第一状态的清除包括:
如果存在第二状态未被设置的、一个以上的已固锁数据行,则清除最近的数据行。
23.一种系统,包括:
高速缓存器,包括用于在系统初始化期间访问的第一存储介质,所述第一存储介质是非易失性的;
第二存储介质,用于存储在系统初始化期间所访问的数据的元数据,所述元数据包括第一状态;和
存储器控制集线器,用于促使为在系统初始化期间所访问的数据设置第一状态,所述第一状态的设置用来表明对应的数据行被固锁。
24.如权利要求23所述的系统,其中所述元数据还包括第二状态;并且其中所述存储器控制集线器促使为在系统初始化之前存在的数据设置第二状态,所述第二状态的设置用来表明在系统初始化之前存在对应的数据行。
25.如权利要求23所述的系统,其中所述高速缓存器是大容量存储高速缓存器。
26.如权利要求23所述的系统,其中所述存储器控制集线器限制所固锁的数据量。
27.如权利要求23所述的系统,其中所述第二存储介质是易失性存储介质。
28.如权利要求23所述的系统,其中所述第二存储介质被包含于高速缓存器中。
29.如权利要求23所述的系统,其中将所述高速缓存器被实现为内插卡。
30.一种被加载到计算机可读介质中的程序,包括:
第一组计算机指令,用于访问非易失性高速缓存器中的数据;
第二组计算机指令,用于固锁在非易失性高速缓存器中所访问的数据。
31.如权利要求30所述的程序,其中所述第二组计算机指令包括:用于固锁在系统初始化期间所访问数据的计算机指令。
32.如权利要求31所述的程序,其中所述第二组计算机指令进一步包括:用于限制所固锁数据量的计算机指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/894,310 US6920533B2 (en) | 2001-06-27 | 2001-06-27 | System boot time reduction method |
US09/894,310 | 2001-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1520549A true CN1520549A (zh) | 2004-08-11 |
CN1253787C CN1253787C (zh) | 2006-04-26 |
Family
ID=25402894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028129296A Expired - Fee Related CN1253787C (zh) | 2001-06-27 | 2002-06-06 | 系统启动时间减少的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6920533B2 (zh) |
CN (1) | CN1253787C (zh) |
WO (1) | WO2003003202A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035337B (zh) * | 2006-02-15 | 2010-09-29 | 三星电子株式会社 | 减少移动通信终端的引导时间的方法 |
CN103578533A (zh) * | 2012-07-26 | 2014-02-12 | 三星电子株式会社 | 包括可变电阻存储器的存储装置及其操作方法 |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
CN105051684A (zh) * | 2013-03-14 | 2015-11-11 | 桑迪士克科技股份有限公司 | 用于预测和改进启动序列的系统和方法 |
CN106469075A (zh) * | 2015-08-20 | 2017-03-01 | 瑞昱半导体股份有限公司 | 储存装置、加快启动程序的方法与储存控制器 |
CN109408122A (zh) * | 2018-09-28 | 2019-03-01 | 联想(北京)有限公司 | 一种设备启动方法、电子设备和计算机存储介质 |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6791555B1 (en) * | 2000-06-23 | 2004-09-14 | Micron Technology, Inc. | Apparatus and method for distributed memory control in a graphics processing system |
US6922765B2 (en) * | 2001-06-21 | 2005-07-26 | International Business Machines Corporation | Method of allocating physical memory space having pinned and non-pinned regions |
US7275135B2 (en) * | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
US20030061436A1 (en) * | 2001-09-25 | 2003-03-27 | Intel Corporation | Transportation of main memory and intermediate memory contents |
US20030074524A1 (en) * | 2001-10-16 | 2003-04-17 | Intel Corporation | Mass storage caching processes for power reduction |
US20030101312A1 (en) * | 2001-11-26 | 2003-05-29 | Doan Trung T. | Machine state storage apparatus and method |
US7103724B2 (en) * | 2002-04-01 | 2006-09-05 | Intel Corporation | Method and apparatus to generate cache data |
US7133972B2 (en) * | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US7200024B2 (en) * | 2002-08-02 | 2007-04-03 | Micron Technology, Inc. | System and method for optically interconnecting memory devices |
US7117316B2 (en) * | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US7254331B2 (en) * | 2002-08-09 | 2007-08-07 | Micron Technology, Inc. | System and method for multiple bit optical data transmission in memory systems |
US7149874B2 (en) * | 2002-08-16 | 2006-12-12 | Micron Technology, Inc. | Memory hub bypass circuit and method |
US6754117B2 (en) | 2002-08-16 | 2004-06-22 | Micron Technology, Inc. | System and method for self-testing and repair of memory modules |
US7836252B2 (en) | 2002-08-29 | 2010-11-16 | Micron Technology, Inc. | System and method for optimizing interconnections of memory devices in a multichip module |
US6820181B2 (en) | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
US7102907B2 (en) * | 2002-09-09 | 2006-09-05 | Micron Technology, Inc. | Wavelength division multiplexed memory module, memory system and method |
US7162625B2 (en) * | 2003-03-10 | 2007-01-09 | Dell Products L.P. | System and method for testing memory during boot operation idle periods |
CN100454206C (zh) * | 2003-04-17 | 2009-01-21 | 松下电器产业株式会社 | 起动时间缩短装置及电子设备 |
US7607000B1 (en) * | 2003-05-13 | 2009-10-20 | Apple Inc. | Method for booting an operating system |
DE602004019078D1 (de) * | 2003-05-30 | 2009-03-05 | Ibm | Datenspeichersysteme |
US7245145B2 (en) * | 2003-06-11 | 2007-07-17 | Micron Technology, Inc. | Memory module and method having improved signal routing topology |
US7120727B2 (en) * | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
US7107415B2 (en) * | 2003-06-20 | 2006-09-12 | Micron Technology, Inc. | Posted write buffers and methods of posting write requests in memory modules |
US7428644B2 (en) * | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
US7260685B2 (en) | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
US7389364B2 (en) * | 2003-07-22 | 2008-06-17 | Micron Technology, Inc. | Apparatus and method for direct memory access in a hub-based memory system |
US7210059B2 (en) * | 2003-08-19 | 2007-04-24 | Micron Technology, Inc. | System and method for on-board diagnostics of memory modules |
US7133991B2 (en) * | 2003-08-20 | 2006-11-07 | Micron Technology, Inc. | Method and system for capturing and bypassing memory transactions in a hub-based memory system |
US20050050237A1 (en) * | 2003-08-28 | 2005-03-03 | Jeddeloh Joseph M. | Memory module and method having on-board data search capabilities and processor-based system using such memory modules |
US7136958B2 (en) | 2003-08-28 | 2006-11-14 | Micron Technology, Inc. | Multiple processor system and method including multiple memory hub modules |
US7310752B2 (en) | 2003-09-12 | 2007-12-18 | Micron Technology, Inc. | System and method for on-board timing margin testing of memory modules |
US7194593B2 (en) * | 2003-09-18 | 2007-03-20 | Micron Technology, Inc. | Memory hub with integrated non-volatile memory |
US7120743B2 (en) * | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US7330992B2 (en) | 2003-12-29 | 2008-02-12 | Micron Technology, Inc. | System and method for read synchronization of memory modules |
US7216196B2 (en) * | 2003-12-29 | 2007-05-08 | Micron Technology, Inc. | Memory hub and method for memory system performance monitoring |
US7356651B2 (en) * | 2004-01-30 | 2008-04-08 | Piurata Technologies, Llc | Data-aware cache state machine |
US7188219B2 (en) * | 2004-01-30 | 2007-03-06 | Micron Technology, Inc. | Buffer control system and method for a memory system having outstanding read and write request buffers |
US7788451B2 (en) | 2004-02-05 | 2010-08-31 | Micron Technology, Inc. | Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system |
US7181584B2 (en) * | 2004-02-05 | 2007-02-20 | Micron Technology, Inc. | Dynamic command and/or address mirroring system and method for memory modules |
US7412574B2 (en) * | 2004-02-05 | 2008-08-12 | Micron Technology, Inc. | System and method for arbitration of memory responses in a hub-based memory system |
US7366864B2 (en) * | 2004-03-08 | 2008-04-29 | Micron Technology, Inc. | Memory hub architecture having programmable lane widths |
US7464250B2 (en) * | 2004-03-11 | 2008-12-09 | International Business Machines Corporation | Method to reduce disk access time during predictable loading sequences |
US7257683B2 (en) * | 2004-03-24 | 2007-08-14 | Micron Technology, Inc. | Memory arbitration system and method having an arbitration packet protocol |
US7120723B2 (en) * | 2004-03-25 | 2006-10-10 | Micron Technology, Inc. | System and method for memory hub-based expansion bus |
US7447240B2 (en) * | 2004-03-29 | 2008-11-04 | Micron Technology, Inc. | Method and system for synchronizing communications links in a hub-based memory system |
US7213082B2 (en) * | 2004-03-29 | 2007-05-01 | Micron Technology, Inc. | Memory hub and method for providing memory sequencing hints |
US6980042B2 (en) * | 2004-04-05 | 2005-12-27 | Micron Technology, Inc. | Delay line synchronizer apparatus and method |
US7590797B2 (en) * | 2004-04-08 | 2009-09-15 | Micron Technology, Inc. | System and method for optimizing interconnections of components in a multichip memory module |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7162567B2 (en) * | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
US7222213B2 (en) * | 2004-05-17 | 2007-05-22 | Micron Technology, Inc. | System and method for communicating the synchronization status of memory modules during initialization of the memory modules |
US7363419B2 (en) * | 2004-05-28 | 2008-04-22 | Micron Technology, Inc. | Method and system for terminating write commands in a hub-based memory system |
US7519788B2 (en) * | 2004-06-04 | 2009-04-14 | Micron Technology, Inc. | System and method for an asynchronous data buffer having buffer write and read pointers |
US7310748B2 (en) | 2004-06-04 | 2007-12-18 | Micron Technology, Inc. | Memory hub tester interface and method for use thereof |
JP4311287B2 (ja) * | 2004-06-25 | 2009-08-12 | ソニー株式会社 | ブートシステム及びブート方法及びこのブート方法を用いたデータ処理装置 |
US7392331B2 (en) | 2004-08-31 | 2008-06-24 | Micron Technology, Inc. | System and method for transmitting data packets in a computer system having a memory hub architecture |
US20060064684A1 (en) * | 2004-09-22 | 2006-03-23 | Royer Robert J Jr | Method, apparatus and system to accelerate launch performance through automated application pinning |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US20060136664A1 (en) * | 2004-12-16 | 2006-06-22 | Trika Sanjeev N | Method, apparatus and system for disk caching in a dual boot environment |
US7937709B2 (en) * | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
US20060168407A1 (en) * | 2005-01-26 | 2006-07-27 | Micron Technology, Inc. | Memory hub system and method having large virtual page size |
US20070038850A1 (en) * | 2005-08-10 | 2007-02-15 | Matthews Jeanna N | System boot and resume time reduction method |
US8051155B2 (en) * | 2005-08-30 | 2011-11-01 | Cisco Technology, Inc. | Method and apparatus for persisting SNMP variable values |
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
US7634689B2 (en) * | 2005-09-22 | 2009-12-15 | Advanced Micro Devices, Inc. | Boot performance optimization for hard drive for personal internet communicator |
US8352718B1 (en) | 2005-11-29 | 2013-01-08 | American Megatrends, Inc. | Method, system, and computer-readable medium for expediting initialization of computing systems |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
JP4918350B2 (ja) * | 2006-03-29 | 2012-04-18 | 富士通株式会社 | 情報処理装置、電源制御方法及びプログラム |
US20080162821A1 (en) * | 2006-12-27 | 2008-07-03 | Duran Louis A | Hard disk caching with automated discovery of cacheable files |
JP4795378B2 (ja) * | 2008-04-01 | 2011-10-19 | レノボ・シンガポール・プライベート・リミテッド | コンピュータおよびブート方法 |
US7958398B2 (en) * | 2008-07-16 | 2011-06-07 | International Business Machines Corporation | Reference state information generation |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US8417928B2 (en) * | 2008-09-24 | 2013-04-09 | Marvell International Ltd. | Turbo boot systems and methods for subsequent booting from a captured data stored in a non-volatile semiconductor memory |
US8407398B2 (en) * | 2008-10-01 | 2013-03-26 | Lenovo (Singapore) Pte. Ltd. | Cache mapping for solid state drives |
US8464001B1 (en) * | 2008-12-09 | 2013-06-11 | Nvidia Corporation | Cache and associated method with frame buffer managed dirty data pull and high-priority clean mechanism |
US8230208B2 (en) | 2009-04-20 | 2012-07-24 | Intel Corporation | Booting an operating system of a system using a read ahead technique |
US8719559B2 (en) | 2010-10-13 | 2014-05-06 | International Business Machines Corporation | Memory tagging and preservation during a hot upgrade |
US9069475B1 (en) | 2010-10-26 | 2015-06-30 | Western Digital Technologies, Inc. | Hybrid drive selectively spinning up disk when powered on |
US8601248B2 (en) * | 2011-03-28 | 2013-12-03 | Western Digital Technologies, Inc. | Disk drive booting from volatile semiconductor memory when exiting power save mode |
US20120303942A1 (en) * | 2011-05-25 | 2012-11-29 | Eric Peacock | Caching of boot data in a storage device |
US9286079B1 (en) * | 2011-06-30 | 2016-03-15 | Western Digital Technologies, Inc. | Cache optimization of a data storage device based on progress of boot commands |
US8630056B1 (en) | 2011-09-12 | 2014-01-14 | Western Digital Technologies, Inc. | Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory |
US8909889B1 (en) | 2011-10-10 | 2014-12-09 | Western Digital Technologies, Inc. | Method and apparatus for servicing host commands by a disk drive |
JP5915215B2 (ja) * | 2012-02-03 | 2016-05-11 | 富士通株式会社 | 仮想テープ装置及び仮想テープ装置の制御方法 |
US9710397B2 (en) * | 2012-02-16 | 2017-07-18 | Apple Inc. | Data migration for composite non-volatile storage device |
US8984267B2 (en) * | 2012-09-30 | 2015-03-17 | Apple Inc. | Pinning boot data for faster boot |
US10073851B2 (en) | 2013-01-08 | 2018-09-11 | Apple Inc. | Fast new file creation cache |
US9785545B2 (en) * | 2013-07-15 | 2017-10-10 | Cnex Labs, Inc. | Method and apparatus for providing dual memory access to non-volatile memory |
CN104102695B (zh) * | 2014-06-26 | 2017-11-10 | 晨星半导体股份有限公司 | 智能设备启动过程的数据处理方法及智能设备 |
US11829349B2 (en) | 2015-05-11 | 2023-11-28 | Oracle International Corporation | Direct-connect functionality in a distributed database grid |
US10942844B2 (en) | 2016-06-10 | 2021-03-09 | Apple Inc. | Reserved memory in memory management system |
US9965350B2 (en) | 2016-09-30 | 2018-05-08 | International Business Machines Corporation | Maintaining cyclic redundancy check context in a synchronous I/O endpoint device cache system |
US10289421B2 (en) * | 2017-02-17 | 2019-05-14 | Dell Products, L.P. | Booting of IHS from SSD using PCIe |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10956335B2 (en) * | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US10628051B2 (en) | 2018-07-13 | 2020-04-21 | Seagate Technology Llc | Reducing a data storage device boot time |
US11003483B1 (en) | 2019-06-28 | 2021-05-11 | Amazon Technologies, Inc. | Parameterized launch acceleration for compute instances |
US11593207B2 (en) * | 2021-01-20 | 2023-02-28 | EMC IP Holding Company LLC | Storage system having RAID stripe metadata |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713755A (en) | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
GB2210480B (en) | 1987-10-02 | 1992-01-29 | Sun Microsystems Inc | Flush support |
US5974508A (en) | 1992-07-31 | 1999-10-26 | Fujitsu Limited | Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced |
US5636355A (en) | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
JPH0883148A (ja) | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
US5758149A (en) * | 1995-03-17 | 1998-05-26 | Unisys Corporation | System for optimally processing a transaction and a query to the same database concurrently |
US6119118A (en) | 1996-05-10 | 2000-09-12 | Apple Computer, Inc. | Method and system for extending file system metadata |
US5761678A (en) | 1996-06-26 | 1998-06-02 | International Business Machines Corporation | Creation of clone storage area with identification of base storage area and deferred cloning of metadata |
US5983310A (en) | 1997-02-13 | 1999-11-09 | Novell, Inc. | Pin management of accelerator for interpretive environments |
US5913224A (en) | 1997-02-26 | 1999-06-15 | Advanced Micro Devices, Inc. | Programmable cache including a non-lockable data way and a lockable data way configured to lock real-time data |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6134315A (en) | 1997-09-30 | 2000-10-17 | Genesys Telecommunications Laboratories, Inc. | Metadata-based network routing |
US6240416B1 (en) | 1998-09-11 | 2001-05-29 | Ambeo, Inc. | Distributed metadata system and method |
US6295538B1 (en) | 1998-12-03 | 2001-09-25 | International Business Machines Corporation | Method and apparatus for creating metadata streams with embedded device information |
US6370614B1 (en) | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
US6463509B1 (en) * | 1999-01-26 | 2002-10-08 | Motive Power, Inc. | Preloading data in a cache memory according to user-specified preload criteria |
US6308168B1 (en) * | 1999-02-09 | 2001-10-23 | Knowledge Discovery One, Inc. | Metadata-driven data presentation module for database system |
JP2001333350A (ja) * | 2000-03-15 | 2001-11-30 | Sony Corp | 画質調整方法および画質調整装置 |
CN1295623C (zh) | 2000-06-23 | 2007-01-17 | 英特尔公司 | 非易失性高速缓存 |
US6931520B2 (en) * | 2001-05-17 | 2005-08-16 | International Business Machines Corporation | Power management delay system using mouse pointer indicator to indicate power-up delay during powering up a powered down disk device |
US20030005219A1 (en) | 2001-06-29 | 2003-01-02 | Royer Robert J. | Partitioning cache metadata state |
US7275135B2 (en) | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
US20030061436A1 (en) | 2001-09-25 | 2003-03-27 | Intel Corporation | Transportation of main memory and intermediate memory contents |
US20030074524A1 (en) | 2001-10-16 | 2003-04-17 | Intel Corporation | Mass storage caching processes for power reduction |
US6839812B2 (en) | 2001-12-21 | 2005-01-04 | Intel Corporation | Method and system to cache metadata |
US7203886B2 (en) | 2002-03-27 | 2007-04-10 | Intel Corporation | Detecting and correcting corrupted memory cells in a memory |
US7103724B2 (en) | 2002-04-01 | 2006-09-05 | Intel Corporation | Method and apparatus to generate cache data |
-
2001
- 2001-06-27 US US09/894,310 patent/US6920533B2/en not_active Expired - Lifetime
-
2002
- 2002-06-06 CN CNB028129296A patent/CN1253787C/zh not_active Expired - Fee Related
- 2002-06-06 WO PCT/US2002/018058 patent/WO2003003202A1/en not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035337B (zh) * | 2006-02-15 | 2010-09-29 | 三星电子株式会社 | 减少移动通信终端的引导时间的方法 |
CN103578533A (zh) * | 2012-07-26 | 2014-02-12 | 三星电子株式会社 | 包括可变电阻存储器的存储装置及其操作方法 |
CN103578533B (zh) * | 2012-07-26 | 2018-04-20 | 三星电子株式会社 | 包括可变电阻存储器的存储装置及其操作方法 |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
CN105051684A (zh) * | 2013-03-14 | 2015-11-11 | 桑迪士克科技股份有限公司 | 用于预测和改进启动序列的系统和方法 |
CN106469075A (zh) * | 2015-08-20 | 2017-03-01 | 瑞昱半导体股份有限公司 | 储存装置、加快启动程序的方法与储存控制器 |
CN109408122A (zh) * | 2018-09-28 | 2019-03-01 | 联想(北京)有限公司 | 一种设备启动方法、电子设备和计算机存储介质 |
CN109408122B (zh) * | 2018-09-28 | 2021-05-18 | 联想(北京)有限公司 | 一种设备启动方法、电子设备和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2003003202A1 (en) | 2003-01-09 |
US6920533B2 (en) | 2005-07-19 |
CN1253787C (zh) | 2006-04-26 |
US20030005223A1 (en) | 2003-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1253787C (zh) | 系统启动时间减少的方法 | |
RU2212704C2 (ru) | Структура совместно используемого кэша для временных и невременных команд | |
EP0996891B1 (en) | Data processing circuit with cache memory | |
US5228136A (en) | Method and apparatus to maintain cache coherency in a multiprocessor system with each processor's private cache updating or invalidating its contents based upon set activity | |
US7711902B2 (en) | Area effective cache with pseudo associative memory | |
US20070038850A1 (en) | System boot and resume time reduction method | |
US6990557B2 (en) | Method and apparatus for multithreaded cache with cache eviction based on thread identifier | |
US7552286B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
US6338115B1 (en) | Advanced read cache management | |
US6292871B1 (en) | Loading accessed data from a prefetch buffer to a least recently used position in a cache | |
US8478944B2 (en) | Method and apparatus for adaptive cache frame locking and unlocking | |
US20100217937A1 (en) | Data processing apparatus and method | |
US20090164715A1 (en) | Protecting Against Stale Page Overlays | |
WO1994028485A1 (en) | Cache system and method for prefetching of data | |
CN1517886A (zh) | 一种支持处理器的功率操作模式的高速缓存存储器 | |
US7107400B2 (en) | System, apparatus, and process for evaluating projected cache sizes | |
US20050138289A1 (en) | Virtual cache for disk cache insertion and eviction policies and recovery from device errors | |
JPH06282488A (ja) | キャッシュ記憶装置 | |
WO2004049169A2 (en) | Using a cache miss pattern to address a stride prediction table | |
US7805572B2 (en) | Cache pollution avoidance | |
JP4792065B2 (ja) | データ記憶方法 | |
JP2004355365A (ja) | キャッシュ管理装置およびキャッシュメモリ管理方法 | |
JPH10133948A (ja) | キャッシュメモリ装置 | |
JPH0784880A (ja) | 不揮発メモリ利用方法 | |
JPH06161895A (ja) | 多階層メモリにおけるアクセスブロック通知方法 |
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: 20060426 Termination date: 20180606 |
|
CF01 | Termination of patent right due to non-payment of annual fee |