CN1051387C - 高速缓存控制系统 - Google Patents
高速缓存控制系统 Download PDFInfo
- Publication number
- CN1051387C CN1051387C CN95101132A CN95101132A CN1051387C CN 1051387 C CN1051387 C CN 1051387C CN 95101132 A CN95101132 A CN 95101132A CN 95101132 A CN95101132 A CN 95101132A CN 1051387 C CN1051387 C CN 1051387C
- Authority
- CN
- China
- Prior art keywords
- sector
- cache
- data
- memory element
- speed cache
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
用于具有可拆卸安装存储元件的数据存储装置的高速缓存控制系统。包括这样的装置,当对高速缓存的访问不能满足读写请求时,该装置用来访问存在存储元件上的数据,还包括一个高速缓存替换机制,用于在高速缓存和存储元件之间传送数据,以维持它们之间的数据一致性。其特征在于,仅当读写请求导致对存储元件的一次访问后存储元件达到其工作速度时,高速缓存替换机制才执行高速缓存存储器和存储元件之间的数据传送。
Description
本发明涉及一种用在计算机数据存贮装置中的高速缓存控制系统,尤其涉及在具有可拆卸安装存储元件(如磁盘或光盘等)的数据存储装置中减少功率损耗的高速缓存控制系统。
电池供电的便携式计算机的普及使降低计算机系统功率损耗的需要变得十分重要。这是因为电池的容量是有限的,希望能最大限度地延长便携式计算机的使用时间,而不必更换电池或为了对电池重新充电把计算机连接到某个主电源上。
此外,越来越引起人们重视的环境和生态问题也要求设计一种能量损耗降低的桌面个人计算机。
由于这种计算机一般都带有移动部件(例如磁盘或光盘),因此,从总体上说,这种计算机的数据存储子系统通常是设备功率损耗的主要部件。
本发明是针对降低在具有可拆卸安装元件(例如磁盘)的数据存储装置中的功率损耗问题的。本发明可具体应用于个人计算机和便携式计算机的磁盘存储子系统,但并不局限于此。
许多计算机的数据存储系统用固态存储器做为驱动磁盘设备的前端。这些系统使用一种高速的固态存储器做为被存储在相对为较低速度的磁盘存储器中的数据的缓冲区,由此提高存取的速度(与单纯使用相对速度较低的磁盘存储器相比)。例如,在WO92/15933中已公开的这样一个系统。
一方面,本发明提供了一种用于具有可拆卸安装存储元件和固态高速缓存的数据存储装置中的高速缓存控制系统,在这种数据存储装置中,当数据存取在一个预定的时间周期内没有发生时,其存储元件并没有达到工作速度。高速缓存控制系统响应来自计算机的读写请求,并且包括这样的装置,如果某个读写请求不能通过对高速缓存的访问来满足时,该装置就去访问存在存储元件中的数据。高速缓存控制系统还包括一个高速缓存替换装置,用于在高速缓存和存储元件之间传送数据,以维持它们之间数据的一致性,其特征在于,仅当读写请求已经导致了对存储元件的一次访问之后,存储元件正处于工作速度时,高速缓存替换装置在操作中才能用来执行高速缓存和存储元件之间的数据传送。
由于为了维持存在高速缓存和存储元件之间数据的一致性而对磁盘的访问被限制在仅当读写请求不能从高速缓存中得到满足而需要访问存储元件时才发生的,因此功率的损耗就被降低了。由于存储元件必须被加速到工作速度的次数减少了,因此功率损耗也就降低了。
因此,在一个实施例中,这样一个控制系统利用了这样一个事实:如果在某一时间周期内不出现与之有关的动作,则便携式工作站的磁盘通常是关闭的。当磁盘空闲时发出读/写请求,就需要能量来把磁盘加速到其工作速度。
高速缓存被当作一个仓库,使小的独立读/写操作能在不激活磁盘的情况下执行。
在本发明的装置中,不同于常规的高速缓存,该高速缓存设备不一定要比数据存储器快,如果能在较低的功率消耗下是可访问的,就能满足要求。
不同于常规的高速缓存控制系统,根据本发明的系统不是针对重叠操作,而是针对有效的批处理操作的。现有技术的高速缓存替换算法倾向于通过后台的高速缓存替换装置使用独立的磁盘启动,以保证单纯通过访问高速缓存来满足读写请求的可能性最大。因为启动磁盘的能量损耗很高。因此,本发明的高速缓存替换算法倾向于最小化要求磁盘启动的次数,而不是象以前的技术那样,最小化磁盘访问的请求次数。
显然,高速缓存替换装置可用在某一预定的时间,每当该写请求导致对存储元件进行一次访问时,执行从高速缓存到存储元件的数据传送。
因此,对那些并不需要顺序的片段系列,可能会形成大型的磁盘访问链,因为在一个被请求的磁盘访问后,由这些访问保存起来的能量分期偿还了磁盘的旋转能量。
高速缓存控制系统最好包括这样的装置:如果该写请求涉及多于预定的数据量,该装置能访问存储元件上的数据,而不用修改高速缓存中的数据。这样做是更有效的,因为它避免了在显然无法从高速缓存中满足读写请求时还去访问高速缓存。
在本发明的一种有益的形式中,高速缓存控制系统包括识别同每个扇区关联的一个扇区集的装置,其中的高速缓存替换装置在读写请求已经产生了正从存储元件中读出的扇区时,能把与该扇区关联的扇区集合的所有元素从存储元件中传送到高速缓存中。
因此,适当维持相关扇区的集合,就能利用访问的空间局部性把那些在任何给定时间内最有可能被访问的扇区保持在高速缓存中。
这样做能方便有效地保持相关的扇区集合:即在任一特定的时间,识别那些在先前某一预定的时间间隔内已经被访问的扇区;当读写请求已经产生了正从存储元件中被读出的扇区时,对与该扇区相关的集合进行更新,并把在先前预定时间间隔中已被访问的那些扇区加到该扇区集合中。
更新机制最好还能用来判定在该相关集合中的每个扇区是否在先前预定的时间周期中已经被访问过,并且在判定在先前预定时间周期内没有被访问的扇区这样的机会发生的预定次数后,从该相关集合中去掉那些已经被访问过的扇区。
在一个实施例中,至少对于这些扇区的一个子集,该系统包括判定并存储一个标识的装置,该标识表明每个扇区被送入高速缓存时是否在最近的场合中被访问,并且当读写请求已经产生从存储元件中读出的扇区,仅当该扇区被送入高速缓存时在最近的场合中被访问时,高速缓存替换装置用来把该扇区从存储元件中传送到高速缓存。
这使得系统能识别那些一旦被送入高速缓存就不再被引用的扇区。如果重复地观察到这种模式,这些扇区将不被送入高速缓存,以便更好地利用高速缓存的空间。
本发明也提供了包含这样的高速缓存控制系统、光盘或磁盘驱动器和非易失固态高速缓存的数据存储装置。有利地,该数据存储装置是个人或便携计算机中所用的盘存储子系统的形式。以这种形式,可将该数据存储装置设计为保留盘子系统的外部接口,并在系统级不需要特殊的支持,这样,使该子系统能直接取代常规硬盘驱动器。
从另一方面来看,本发明提供了一种操作数据存储装置的方法,该装置具有一个可拆卸安装的存储元件和固态高速缓存,在这种数据存储装置中,当数据访问在某个预定的时间周期内不发生时,存储元件并没有达到其工作速度,该方法包括响应不能通过访问高速缓存来满足的读写请求而访问存储元件上的数据,还包括在高速缓存和存储元件之间传送数据,以维持它们之间的数据一致性,该方法的特征在于仅当在读写请求已经导致对存储元件的一次访问而存储元件以工作速度运转时,才能执行高速缓存和存储元件之间的数据传送。
现在只通过例子并参考附图来描述本发明的一个实施例,其中:
图1是说明数据存储装置的一个示意图;
图2a和2b说明存放在高速缓存控制机制中的数据结构;
图3是一个流程图,说明当一个扇区从磁盘被传送到高速缓存时所执行的步骤:
图4是一个流程图,说明在读操作期间数据存储装置的操作过程;
图5也是一个流程图,说明写操作期间数据存储装置的操作过程;
图6给出了对数据存储装置操作时间的功率损耗图。
参考图1的数据处理系统,该系统包括一台计算机100,由SC-SI(小型计算机系统接口)10连接到数据存储装置110。熟悉这种技术的人很容易理解这类接口以及实现这种接口所需的硬件和软件的操作过程,因此将不在此进一步描述。它满足了现在所要说明的目的的需要,即响应来自计算机的读写请求的数据存储装置能借助该接口存取数据。
数据存储装置110包括:磁盘存储设备104(在本例子中具有120兆的容量);带有非易失性固态高速缓存106的高速缓存系统102(在本例中为2兆)以及高速缓存控制或管理逻辑108。高速缓存控制系统108包括一个适当的微处理器,该微处理器中带有相关的控制代码,使之能执行这里所述的各种功能,高速缓存控制系统108还包括高速缓存管理表,用于存放高速缓存和数据存储设备的控制数据。
磁盘存储设备104属于这一技术中的常见类型,包括一个可旋转安装的磁盘、驱动电机、读/写磁头组件和相关的控制系统。
应该知道,本例中所用的磁盘存储设备是为了便于讨论,本发明同样适用于任意其他的带有可移动部件(例如光盘驱动器或类似的设备)的数据存储设备。
在这个实施例中,数据存储装置采用了集成磁盘存储子系统的形式,使得对于计算机100来说,该数据存储装置就象单个的可寻址实体,通过该装置中的专用数据传输线,在高速缓存和数据存储设备之间进行数据传送。然而,通过适当的数据总线,高速缓存控制系统的功能也同样可由计算机本身来实现。
磁盘存储设备104有3种可能的状态:等待、空闲和激活。在激活状态下,磁盘以工作速度转动并执行读/写和查找操作。在这种状态下所需的一般功率可能在1.5W和2.5W之间。在空闲状态下,磁盘仍处于工作速度并且一般的功率损耗为0.9W。当从空闲状态变为激活状态时不需要额外的功率损耗。在等待状态下磁盘是静止的,这时具有最低的功率损耗,一般为0.2W。从等待状态到激活状态的转换需要使磁盘达到工作速度,这种向上旋转通常要求在整个加速期中高达4W的功率。与输入/输出操作相比,加速时间是相当长的。
这类磁盘驱动器的一种商品化产品是型号为25252A的Max-tor2.5英寸的磁盘驱动器,其功率如下:上旋功率为2.8W,驱动器达到工作速度需用2秒的时间;激活功率为1.6W;空闲为0.9W;等待状态下为0.1W。
存储装置中的数据按扇区存放,扇区是磁盘上最小的数据可寻址单位。每个扇区包括(例如)512字节的数据。
高速缓存106包括对应磁盘上n个扇区S1,…Sn中的数据。每个高速缓存中的扇区可以具有以下的三种状态之一:
(i)无效。被标识为无效的扇区不包含有意义的数据。
(ii)一致。被标识为一致的扇区包含与被存在磁盘上对应的扇区上相同的信息。
(iii)新的。被标识为新的扇区包含比存放在磁盘上对应的扇区中的信息更新的信息。
高速缓存控制系统把与磁盘上的扇区的访问模式有关的统计信息收集在高速缓存管理表中,并试图利用这些统计信息来猜出给定系统中扇区的行为模式。
图2a是一个示意图,说明高速缓存控制系统的高速缓存管理表200。对于磁盘Si的每个扇区在该表中都有一个表项210。
每个表项包括用于高速缓存的扇区的信息,例如说明该扇区是否在高速缓存中的标识符,如果在高速缓存中,还要给出其状态(新的,一致或无效),时间标记等等。图2a中并没有给出这些常规信息。
此外,每个表项还包括如下的信息,如图2b所示。
每个表项包括下面的有关扇区的数据访问历史数据220:
(1)历史标记222,标识该扇区最近访问历史的状态;
(2)三个引用计算器224,标识该扇区在最近的三次被带入高速缓存中的场合下被访问的次数。
历史引用标记的作用是标记那些一进入高速缓存就不再被引用的扇区。如果重复观察到这种模式,这些扇区在以后的调用中必须直接送到系统,以便更好地利用高速缓存空间。
历史引用标记222是一个变量,初值为-1,说明还没有设置一个合适的值。当该扇区第一次被访问,历史标记被置为另一值,例如1,表示该扇区已经被访问过。如果三个引用计算器都为零,历史标记被置为第三个值,例如零说明该扇区在最近被带入高速缓存的场合下还没有被访问过。
存在该表表项的还有亲缘信息226,亲缘信息226说明在相同的时间间隔期间被装入的那些扇区。
除了存放在高速缓存管理表200中的信息之外,高速缓存管理系统还保存某些全局信息。这些全局信息包括各种系统参数和可调参数,以及对于那些在某一时间窗口内最近已经接收到读请求的扇区的标识符(ID)表(时间窗口的概念将在下面解释),这些扇区将被称为当前代(ganeration)窗口。
在下面,术语“代”(generation)将被用来代表一个有效的短时间间隔,在此期间,所有发生的读扇区请求都被怀疑是来自相同的或相关的应用。这个时间周期是一个可调参数,被高速缓存控制器用来管理高速缓存。
一组扇区将被称为“同代的”,如果这些扇区是在同一个代内被带入内存的。同代组可能有一个或多个成员。如果属于某个同代组的一个扇区被访问,则该组中的其他成员也被访问的可能性是很高的。
在高速缓存管理表200中,亲缘信息包括一个位图228,其中的每一位对应磁盘的每个扇区。该位图被用作记录扇区的同代组的一种集合数据结构,也可以采用其他的数据结构,例如,另一种可能的数据结构是树结构。
高速缓存管理表中的数据被不断更新和精练,使系统能“学习”使用模式,以便最大限度节省能量。
扇区之间的亲缘是利用代参数计算的。被认为象某个扇区一样是由相同或相关应用带入的那些扇区在位图中被标记为该扇区的同代,并且每当该扇区被带入高速缓存时也把其同代一块带入。
同代信息被动态更新来反映这样的一些事实:例如一致性,而不是在初始接纳决定中逻辑的亲缘,使用模式的变化或者把该扇区重新分配到一个新文件。
更新同代组的算法考虑到这样的事实:任何更新算法都是用来预测磁盘访问模式的一种近似,并且把不需要的扇区带入高速缓存所损耗的能量比丢失需要的所损耗的能量少。
本算法的目的是把那些在一个短的时间间隔内被经常和最近访问的扇区保持在相同的同代组中。
在一代的时间窗口中已经发出读请求的那些扇区本身的信息由高速缓存控制系统维持,正如上面所介绍的那样。这些信息用在当某个扇区每次从磁盘被带入高速缓存时,更新该扇区的同代组。
高速缓存管理表为同代组中的每个扇区保存两个整数:Mode(模型)232生LU(最近更新)230。
每当一个从磁盘中被传送到高速缓存时,就执行图3所示的过程。把该扇区的同代组同当前代窗口中的扇区本身的信息进行比较,那些出现在这两个集的交集中的扇区的模型值被增1并置其LU值为1。在同代组中且不在当前代窗口中的那些扇区,如果其LU值大于某个预定的值K,则把它们从正在被传送的扇区的同代组中删去。否则对其LU值增1并保留其模型值。当把数据移到高速缓存时,由于同代的扇区按非增序的模型读入,因此用到了模型值。
仅当高速缓存有足够的空间可用时,才能把整个同代集合从磁盘中传送出来。当写到高速缓存上时,可能替换所有的无效和一致扇区,但不能替换新扇区。当高速缓存中没有足够的无效或一致性的扇区时,模型值就会起作用,只有空间允许的那么多扇区能被读入高速缓存中。适当地选择高速缓存的大小,使得在大部分时间里,整个同代组都能装入高速缓存中。
理想地,高速缓存应该存储有关磁盘上所有扇区的信息。当存储空间不够时,可以把更常用的扇区的有关信息保存在一个散列表数据结构中,对于熟悉这类技术的人来说,这应该是很好理解的。
高速缓存控制系统有一个高速缓存替换机制,它执行两个主要的任务:离台,即把数据从高速缓存传送到磁盘,以及替换。
仅当磁盘正在旋转时,高速缓存控制系统才能执行离台操作,而且只有新扇区才能离台。已经离台的每个扇区被标记为一致状态。
扇区的“空闲时间”一词用来表示当前时间减去该扇区的同代组中任何扇区被用的最近时间。因此,一个同代组中的每个扇区都有相同的空闲时间,每个扇区的空闲时间被存在高速缓存管理表200中该扇区的入口中,如图2a和2b所示。
离台就是把状态为“新”的扇区S1,…,Sn按其IS值的非递增次序排列在高速缓存中,对于具有相同IS值的扇区,则根据其扇区标识符(ID)按升序排列。这种排序方法能避免让那些可能很快又要被重新访问的扇区组离台。用扇区的ID作为次关键码的排序方式能使离台查找时间达到最小。扇区被离台的顺序将被称为离台次序。
每当该写请求导致了对磁盘存储设备的一次访问时,如果高速缓存中有新扇区,就会在某一时间周期发生离台操作。每次发生离台的最大时间周期由分配给它的某个能量预算决定。例如,如果把磁盘保持在激活状态t时间单位所需的能量同上旋该磁盘所需的能量一样,则离台将发生在at+b个时间单位期间,其中的a和b为依赖系统的可调参数。
调整参数a和b,使这一时间间隔足够长到能分期偿还让磁盘达到工作速度所需的能量。这个周期将被标为离台时间间隔。
离台操作,即,将数据从高速缓存106传送到数据存储设备104,将高速缓存中的新扇区变为一致扇区。这是高速缓存替换机制的一部分。
高速缓存替换机制在替换高速缓存中的扇区时服从下面的规则。一个新扇区被替换仅当一个写操作提供了该扇区的一个较新版本,那么该扇区仍然是新的。如果一个写操作绕过高速缓存直接对数据存储设备104执行,则一个新的或一致的扇区变成无效的。
在下面的情况下,一致的或无效的扇区可以被替换:(i)对一个新扇区或同一扇区的较新版本执行一次写操作,在这种情况下,该扇区变成新的,式(ii)把一个扇区从磁盘带入高速缓存的读操作的结果,那么该扇区保持或变成一致的。
图4和图5分别给出了高速缓存控制系统用来处理来自计算机100的读写请求的方法。下面将说明不同输入/输出请求模式之间所造成的区别。
如图4所示,任何读请求都要被检查,看看该请求是否针对多于某个预定数目的扇区,该阈值将取决于高速缓存的大小和磁盘的特性。这样大的请求可通过直接把数据从磁盘中传送到计算机100的主存来满足。因为磁盘正处在读/写状态并且磁盘必须被加速到其工作速度,因此,任何所需的离台也是在等于离台间隔的时间周期中执行的。
该阈值将由高速缓存的大小决定。对于大的输入/输出请求,高速缓存将不够用,并且将不可避免地要求磁盘启动。因此没有必要由高速缓存来满足这些请求。
如果读请求所涉及的扇区少于该阈值,则该请求就能从高速缓存中得到满足。如果发生高速缓存失误,磁盘将被激活,对该扇区的读清求将从磁盘中得到满足,并且丢失的扇区以及相关的扇区都可以被读入高速缓存。在高速缓存失误的事件中,如果象前面那样需要的话,将执行离台操作,因为磁盘已经是激活的。
如图5所示,写操作遵循同样的原理。如果写操作涉及大量的扇区,则这些扇区将被直接写到磁盘上。如果需要的话,这时可以执行离台操作。如果写操作规模不大,则把扇区写到高速缓存上。
因此,当读数据时,可能会出现三种情况。如果高速缓存包含所有被请求的信息,则请求由高速缓存提供服务。如果高速缓存并不包含所有所需的信息并且被读的数据量大于该阈值(即是大的),则从磁盘流到系统的数据将不被存在高速缓存中,换句话说,在这种情况下,高速缓存的内容不改变。
如果高速缓存不包含所有所需的信息并且将被读的数据量小于该阈值(即是小的)并且高速缓存中有足够多的无效或一致状态的扇区,则高速缓存中得不到的数据从磁盘中读出。
当由于读请求导致高速缓存失误而访问磁盘上的任何特定的扇区时,该扇区的历史引用标识222被用来决定是否把该扇区传送到高速缓存中。通过区分以下的三种可能的情况来决定。
如果历史引用标识表明该扇区最近已经被访问过,则该扇区及其同代被读入高速缓存中。该扇区的最近引用计数被置为1,其同代的最近引用计数被置为0。
在历史引用标识没有设置的情况下,该扇区被同时移到高速缓存和系统中,其最近引用计数被置为1。在这种情况下,同代集合只包含该扇区,因为该同代集最初是个空集。
如果历史引用标识表明该扇区最近没有被访问过,则只将其同代读入高速缓存。扇区S本身被送到系统,但不读入高速缓存。该同代组中的扇区的最近引用计数被置为0。
当写数据时,只有两种情况可能发生。当写少量的数据时,存在高速缓存中的每个扇区被较新的版本替换,并被标记为新的。对于那些不在高速缓存的扇区,如果高速缓存中有足够数量的一致扇区,则把这些扇区写入高速缓存中替换这些已存在的一致扇区。
当把多于阈值的数据写到磁盘时,包含系统正在写的数据的那些在高速缓存中的扇区被标记为无效的,位实际的写操作直接对磁盘。
图6是一个简图,说明具有这样装置的系统的使用。运行在计算机上的应用程序600对磁盘发生读写请求,这些请求在操作系统610的控制下被送到磁盘存储子系统620。
当用户启动系统时,所有的应用程序被装入,而且相关的扇区也被装入高速缓存。一旦这个初始阶段630过去,磁盘处于其最低的能量消耗状态,并且保持这种状态直到出现读失误、大规模读或大规模写,在这些情况下能量损耗增加,如640所示。实际上,磁盘在大部分时间中都将处于等待位置。
数据存储装置的这种特定设计保留了磁盘的外部接口,在系统级上不需要特别的支持。
高速缓存的有效性是由于这样的事实:当处于空闲状态时,构成高速缓存的存储器所消耗的功率比磁盘少。对磁盘激活时和激活期间作出预算以保存能量。
访问的局部性原理意味着有可能在高速缓存中保持所有扇区的一个子集,并保证对磁盘的访问机会相当少。正是这一局部性原理使那些适当的扇区被有效地保持在高速缓存中。
有三种类型的局部性,即宏空间、微空间和临时性,头二个涉及引用模式,第三个涉及时间。如果在相同的执行过程中,对当前被访问数据附近数据进行访问的可能性高于对其他数据访问的可能性,则该应用被认为具有好的微空间局部性。如果被某个程序访问的扇区集合在不同的执行过程中不发生变化,则称该应用具有良好的宏空间局部性。如果对最近被访问过的数据再进行访问的可能性很高时,则认为某个应用具有良好的临时局部性。
可调参数代和离台次序使能遵循局部性原则,并把最有可能被小规模的读写请求所访问的那些扇区保持在高速缓存中。
为每个扇区保留的历史标记使能利用临时局部性。使用同代扇区组和历史引用标记,使能把具有良好空间局部性的那些扇区留在高速缓存中。
这样一个事实是很有用的:大多数应用程序只使用非常小的文件。例如在UNIX操作系统中,一个文件的一般尺寸都小于4KB(UNIX是UNIX系统实验公司的商标)。
因此,象传统的高速缓存存储器一样,也是基于局部性的原则设计的,但这仅仅是类似。与传统的高速缓存不一样,这种存储器不需要更快,而只要求消耗更少的功率。
Claims (11)
1.高速缓存控制系统,用于带有可拆卸安装存储元件和固态高速缓存存储器的数据存储装置,在这类数据存储装置中,当数据访问在某个预定的时间周期内不发生时,存储元件并不处于工作速度,高速缓存控制系统响应来自计算机的读写请求,并且包括一个装置,当读写请求不能通过对高速缓存的访问来满足时,该装置用来访问存在存储元件上的数据,高速缓存控制系统还包括一个高速缓存替换装置,用于在高速缓存和存储元件之间传送数据,以维持它们之间数据的一致性,高速缓存控制系统的特征在于,高速缓存替换装置在操作中用来执行高速缓存和存储元件之间的数据传送,仅当在某个读写请求已经导致对存储元件的一次访问后,存储元件才处于工作速度。
2.权利要求1中的高速缓存控制系统,其特征在于,每当读写请求已经导致对存储元件的访问时,高速缓存替换装置被用来在某个预定的时间内执行高速缓存到存储元件的数据传送。
3.权利要求1的高速缓存控制系统,其特征在于包括一个装置,如果读写请求涉及多于预定数量的数据,该装置用来访问存储元件上的数据,而不用修改高速缓存存储器中的数据。
4.权利要求1的高速缓存控制系统,与数据存储装置一起使用,其特征在于数据按扇区存放,至少对于扇区的一个子集,包括这样的装置:能识别与每个扇区相关的一个扇区的集合,在该集合中,当读写请求已经得到正从存储文件中读出的一个扇区时,高速缓存替换装置能把其相关的扇区集合的所有成负从存储元件传送到高速缓存存储器。
5.权利要求4中的高速缓存控制系统,其特征在于包括能响应已经导致对存储元件的访问的读写请求的装置,把高速缓存中那些包含着的信息比存在存储元件对应扇区上的信息更新的扇区,按照其当前时间减去与该扇区相关的扇区组中任何扇区被访问的最近时间结果的非递增次序传送到存储元件上。
6.权利要求3的高速缓存控制系统,其特征在于包括在任何特定时间用来识别那些在某个预定的时间间隔中已经被访问的扇区的装置,以及一个用于当读写请求已经使得正从存储元件中读出一个扇区时对与该扇区有关的扇区集合进行更新的装置,具体作法是把在上述的预定时间间隔中已经被访问的那些扇区加到该集合中。
7.权利要求6的高速缓存控制系统,其特征在于,该更新装置用来决定相关扇区集合中的每一扇区是否已经在上述的预定时间周期中被访问过,并且在根据某个预定的次数决定了在先前预定的时间周期中又经被访问的扇区后,把这些扇区从该集合中删去。
8.权利要求4的高速缓存控制系统,其特征在于,至于对于扇区的一个子集,包括决定和存储一个标识的装置,该标识说明每个扇区在其最近的一次或多次被带入高速缓存的机会中是否被访问过,并且当读写请求已经产生一个正从存储单元中读出的扇区,仅当读扇区在最近的一次或多次被带入高速缓存的机会中被访问过,高速缓存替换装置才用来把该扇区从存储单元中送到高速缓存存储器。
9.数据存储装置,其特征在于包括如权利要求1所述的高速缓存控制系统、光盘或磁盘驱动器和非易失性的固态高速缓存存储器。
10.权利要求9的数据存储装置,其特征在于,采用个人计算机或便携式计算机的磁盘存储子系统的形式。
11.具有可拆卸安装存储元件和固态高速缓存存储器的数据存储装置的操作方法,在这种数据存储装置中,在某个预定的时间周期中没有发生数据访问时,存储元件并没有达到工作速度,该方法包括响应不能通过访问高速缓存来满足的读写请求,对存储元件上的数据进行访问,并且在高速缓存和存储元件之间传送数据以维持它们之间的数据一致性,该方法的特征在于,仅当读写请求已经导致了对存储元件的一次访问后存储元件达到其工作速度时,才能执行高速缓存和存储元件之间的数据传送。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9402054.2 | 1994-02-03 | ||
GB9402054A GB2286267A (en) | 1994-02-03 | 1994-02-03 | Energy-saving cache control system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1120699A CN1120699A (zh) | 1996-04-17 |
CN1051387C true CN1051387C (zh) | 2000-04-12 |
Family
ID=10749787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95101132A Expired - Fee Related CN1051387C (zh) | 1994-02-03 | 1995-01-09 | 高速缓存控制系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8285924B1 (zh) |
EP (1) | EP0666539A3 (zh) |
JP (1) | JPH07219848A (zh) |
KR (1) | KR950025508A (zh) |
CN (1) | CN1051387C (zh) |
GB (1) | GB2286267A (zh) |
TW (1) | TW343305B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0883148A (ja) * | 1994-09-13 | 1996-03-26 | Nec Corp | 磁気ディスク装置 |
JP3423243B2 (ja) | 1999-03-26 | 2003-07-07 | 三洋電機株式会社 | デジタルカメラ |
JP3510829B2 (ja) * | 1999-12-14 | 2004-03-29 | 三洋電機株式会社 | データ記録装置 |
JP2002197415A (ja) | 2000-12-27 | 2002-07-12 | Fujitsu Ltd | データ記憶装置 |
US6757784B2 (en) * | 2001-09-28 | 2004-06-29 | Intel Corporation | Hiding refresh of memory and refresh-hidden memory |
AU2003201483A1 (en) * | 2003-01-15 | 2004-08-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Correlation method for channel estimation for ofdm |
WO2004074971A2 (en) * | 2003-02-20 | 2004-09-02 | Koninklijke Philips Electronics N.V. | Method and circuit for writing data to a disk |
US7549023B2 (en) * | 2003-04-21 | 2009-06-16 | Intel Corporation | Method and apparatus to update a cache for security records |
US20040221117A1 (en) * | 2003-05-02 | 2004-11-04 | Shelor Charles F. | Logic and method for reading data from cache |
US7174471B2 (en) * | 2003-12-24 | 2007-02-06 | Intel Corporation | System and method for adjusting I/O processor frequency in response to determining that a power set point for a storage device has not been reached |
US7334082B2 (en) * | 2003-12-30 | 2008-02-19 | Intel Corporation | Method and system to change a power state of a hard drive |
US7730335B2 (en) | 2004-06-10 | 2010-06-01 | Marvell World Trade Ltd. | Low power computer with main and auxiliary processors |
US7634615B2 (en) | 2004-06-10 | 2009-12-15 | Marvell World Trade Ltd. | Adaptive storage system |
US7702848B2 (en) | 2004-06-10 | 2010-04-20 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US7788427B1 (en) | 2005-05-05 | 2010-08-31 | Marvell International Ltd. | Flash memory interface for disk drive |
US7617359B2 (en) | 2004-06-10 | 2009-11-10 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US7958292B2 (en) * | 2004-06-23 | 2011-06-07 | Marvell World Trade Ltd. | Disk drive system on chip with integrated buffer memory and support for host memory access |
US20080263324A1 (en) | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
JP5374313B2 (ja) * | 2009-10-16 | 2013-12-25 | ファナック株式会社 | 不揮発性メモリ保護機能を備えた情報処理装置 |
US8949544B2 (en) * | 2012-11-19 | 2015-02-03 | Advanced Micro Devices, Inc. | Bypassing a cache when handling memory requests |
JP6130750B2 (ja) * | 2013-07-16 | 2017-05-17 | 株式会社東芝 | メモリ制御回路およびプロセッサ |
US9898413B2 (en) * | 2013-10-29 | 2018-02-20 | Shannon Systems Ltd. | Auto-adaptive system to implement partial write buffering for storage systems dynamic caching method and system for data storage system |
CN103760876B (zh) * | 2014-01-29 | 2018-06-22 | 北京北方华创微电子装备有限公司 | 报警信息的存储方法及存储装置 |
CN112100087B (zh) * | 2019-06-17 | 2024-04-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN112099985B (zh) | 2019-06-17 | 2023-09-12 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN112130750B (zh) | 2019-06-25 | 2023-11-07 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4437155A (en) * | 1980-11-14 | 1984-03-13 | Sperry Corporation | Cache/disk subsystem with dual aging of cache entries |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB979633A (en) | 1960-04-20 | 1965-01-06 | Nat Res Dev | Improvements in or relating to electronic digital computing machines |
US4433374A (en) * | 1980-11-14 | 1984-02-21 | Sperry Corporation | Cache/disk subsystem with cache bypass |
JPS58105365A (ja) * | 1981-12-18 | 1983-06-23 | Fujitsu Ltd | デイスクキヤツシユ制御装置を用いた磁気デイスク書込み方式 |
JPS6055421A (ja) * | 1983-09-06 | 1985-03-30 | Canon Inc | デ−タ処理装置 |
JPS62256025A (ja) * | 1986-04-28 | 1987-11-07 | Nec Corp | 情報機器 |
JPH02205913A (ja) * | 1989-02-03 | 1990-08-15 | Seiko Epson Corp | 情報処理装置 |
JPH0322156A (ja) * | 1989-06-20 | 1991-01-30 | Tokico Ltd | 磁気ディスク装置 |
JP2877378B2 (ja) * | 1989-09-29 | 1999-03-31 | 株式会社東芝 | パーソナルコンピュータ |
JP2753391B2 (ja) | 1990-11-30 | 1998-05-20 | 株式会社日立製作所 | デイスク装置 |
CA2105085A1 (en) | 1991-03-05 | 1992-09-06 | Marvin Lautzenheiser | Cache memory system and method of operating the cache memory system |
US5293609A (en) * | 1991-04-19 | 1994-03-08 | International Business Machines Corporation | Hit-density-based replacement for data cache with prefetching |
US5410653A (en) * | 1992-06-16 | 1995-04-25 | International Business Machines Corporation | Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length |
US5420983A (en) * | 1992-08-12 | 1995-05-30 | Digital Equipment Corporation | Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data |
JP4205852B2 (ja) | 2000-11-14 | 2009-01-07 | 富士フイルム株式会社 | 平版印刷版用支持体の製造方法及び製造装置 |
-
1994
- 1994-02-03 GB GB9402054A patent/GB2286267A/en not_active Withdrawn
- 1994-06-07 TW TW083105178A patent/TW343305B/zh active
- 1994-09-30 KR KR1019940024923A patent/KR950025508A/ko not_active Application Discontinuation
- 1994-11-21 JP JP6286903A patent/JPH07219848A/ja active Pending
- 1994-12-27 US US08/364,334 patent/US8285924B1/en not_active Expired - Fee Related
-
1995
- 1995-01-09 CN CN95101132A patent/CN1051387C/zh not_active Expired - Fee Related
- 1995-01-13 EP EP95300217A patent/EP0666539A3/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4437155A (en) * | 1980-11-14 | 1984-03-13 | Sperry Corporation | Cache/disk subsystem with dual aging of cache entries |
Also Published As
Publication number | Publication date |
---|---|
JPH07219848A (ja) | 1995-08-18 |
TW343305B (en) | 1998-10-21 |
GB2286267A (en) | 1995-08-09 |
EP0666539A3 (en) | 1995-09-27 |
CN1120699A (zh) | 1996-04-17 |
KR950025508A (ko) | 1995-09-18 |
EP0666539A2 (en) | 1995-08-09 |
GB9402054D0 (en) | 1994-03-30 |
US8285924B1 (en) | 2012-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1051387C (zh) | 高速缓存控制系统 | |
US10216639B2 (en) | Identification of blocks to be retained in a cache based on temperature | |
Sun et al. | A hybrid solid-state storage architecture for the performance, energy consumption, and lifetime improvement | |
US9817755B2 (en) | Garbage collection management in memories | |
CN1179276C (zh) | 配置不同的高速缓存分区以具有不同属性的系统和方法 | |
CN1701390A (zh) | 跟踪非易失性存储器系统中最频繁擦除区块 | |
US20130080732A1 (en) | Apparatus, system, and method for an address translation layer | |
CN1698036A (zh) | 跟踪非易失性存储器系统中最不频繁擦除区块 | |
CN1866162A (zh) | 高速缓存层次结构 | |
CN1719422A (zh) | 一种存储器文件数据虚拟存取方法 | |
CN103197899A (zh) | 增强基于闪存的存储的寿命和性能 | |
CN103597444A (zh) | 按照使用来管理基于闪存的存储上的数据放置 | |
CN1902577A (zh) | 动态功率管理 | |
CN1612113A (zh) | 节能高速缓存及其运行方法 | |
JPH02281350A (ja) | キヤツシユ・メモリ管理 | |
EP1850219A2 (en) | Computer system and method for reducing power consumption of a storage system | |
CN1097236C (zh) | 信息处理系统 | |
CN1823327A (zh) | 信息记录介质的数据区域管理方法、使用数据区域管理方法的信息处理装置 | |
Cho et al. | The solid-state drive technology, today and tomorrow | |
CA2415018C (en) | Adaptive parallel data clustering when loading a data structure containing data clustered along one or more dimensions | |
Chen et al. | Co-optimizing storage space utilization and performance for key-value solid state drives | |
CN1749971A (zh) | 用长寿命非挥发性存储芯片提高内部或外部存储器使用寿命 | |
CN1967505A (zh) | 信息处理装置、图像摄取装置、信息处理方法及计算机程序 | |
KR101051504B1 (ko) | 저전력과 입출력 성능 향상을 위한 n-블록 선반입 기반의 하이브리드 하드디스크 입출력 시스템 | |
CN101038529A (zh) | 用长寿命非挥发性存储芯片提高内或外部存储器使用寿命 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20000412 Termination date: 20100209 |