CN101542449B - 优化存储控制器高速缓存卸载电路性能和可靠性的系统 - Google Patents
优化存储控制器高速缓存卸载电路性能和可靠性的系统 Download PDFInfo
- Publication number
- CN101542449B CN101542449B CN2007800439252A CN200780043925A CN101542449B CN 101542449 B CN101542449 B CN 101542449B CN 2007800439252 A CN2007800439252 A CN 2007800439252A CN 200780043925 A CN200780043925 A CN 200780043925A CN 101542449 B CN101542449 B CN 101542449B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- circuit
- bandwidth
- power
- 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
- 230000015654 memory Effects 0.000 claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 9
- 239000003990 capacitor Substances 0.000 claims description 5
- 238000007599 discharging Methods 0.000 claims description 2
- 230000037361 pathway Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
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/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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
Abstract
公开了一种用于对高速缓冲存储器进行卸载的方法(140)。该方法大体包括以下步骤:(A)响应于信号的认定对高速缓冲存储器的多条高速缓存线中的所有高速缓存线进行读取,以对高速缓冲存储器进行卸载(144),(B)根据RAID配置通过对各高速缓存线进行分割来产生多个块(146),以及(C)将这些块写入RAID配置中的多个非易失性存储器中,其中,每个非易失性存储器均具有小于高速缓冲存储器的读取带宽的写入带宽(148)。
Description
技术领域
本发明大体涉及存储控制器,且更具体地,涉及用于优化存储控制器高速缓存卸载电路的性能和可靠性的方法和/或设备。
背景技术
一旦AC电源有功率损耗,传统存储控制器就被迫使用来自储量有限的电池备用单元的功率来尽可能快且可靠地将高速缓冲内容从高速缓冲存储器卸载到本地持久性存储装置。该持久性存储装置(i)通常是本地的以避免依赖于要被加电的远程装置,以及(ii)利用非常少量的功率来避免大的电池。非常少的功率导致持久性存储装置具有有限的访问带宽。大的电池非常昂贵且具有随着时间而降低的可靠性。
发明内容
本发明涉及用于对高速缓冲存储器进行卸载的方法。该方法大体包括以下步骤:(A)响应于信号的认定(assert)对高速缓冲存储器的多条高速缓存线中的所有高速缓存线进行读取,以对高速缓冲存储器进行卸载,(B)根据RAID配置通过对各高速缓存线进行分割来产生多个块,以及(C)将这些块写入RAID配置中的多个非易失性存储器中,其中,每个非易失性存储器都具有小于高速缓冲存储器的读取带宽的写入带宽。
本发明的目的、特征和优点包括:提供用于优化存储器控制器高速缓存卸载电路的性能和可靠性的方法和/或设备,该方法和/或设备可以(i)在RAID配置中布置多个非易失性存储器,(ii)基本上同时地对两个或更多的非易失性存储器进行写入,(iii)使得能够通过添加更多的存储器电路来进行非易失性存储器的容量扩展,(iv)相比于传统方法允许更小的电池备用单元大小,和/或(v)允许使用超电容器技术作为传统电池单元的替代。
附图说明
本发明的这些和其他目的、特征和优点将从下面的详细描述和所附权利要求以及附图中变得显而易见,附图中:
图1是根据本发明优选实施例的系统的框图;
图2是非易失性存储器电路的示例性实现的示图;
图3是用于对高速缓冲存储器进行卸载的示例性方法的流程图;
图4是示例性RAID 0配置的示图;
图5是示例性RAID 1配置的示图;以及
图6是示例性RAID 5配置的示图。
具体实施方式
本发明大体实现了并行使用多个非易失性驱动器的快速高速缓存卸载架构。这些非易失性驱动器可以被安排在RAID配置中,诸如RAID 0配置、RAID 1配置、或RAID 5配置。还可以实现其他的RAID配置以满足特定应用的标准。相比于传统技术,多个RAID配置的并行写入特性通常考虑了高速缓存卸载接口上更高的性能和更高的可靠性。
参照图1,示出了根据本发明一个优选实施例的系统100的框图。该系统(或设备)100可以实现为一个基于高速缓存的处理系统。该系统100通常包括:电路(或模块)102、电路(或模块)104、电路(或模块)106、电路(或模块)108、电路(或模块)110、和电路(或模块)112。可以通过电路110接收信号(例如,PWR)。可以由电路110产生一个信号(例如,OFFLOAD)并将其提供给电路104。接口114可以使得电路102和电路104能够彼此进行通信。电路104可以通过接口116与电路106进行通信。接口118可以允许电路104与电路108进行通信。电路104可以通过接口120与电路112进行通信。
电路102可以实现为处理器电路。电路102可以用于通过执行软件程序来执行各种功能。电路102可以通过电路104从电路106、108和112读取软件程序的指令和/或数据,以及将软件程序的指令和/或数据写入电路106、108和112。
电路104可以实现为存储器控制器电路。电路104可以用于控制电路106、电路108和电路112。电路104可以通过处理器接口114与电路102交换软件程序的指令和数据。这些数据和指令可以(i)通过高速缓存接口116在电路104和电路106之间、(ii)通过闪存接口118在电路104和电路108之间、以及通过存储器接口120在电路104和电路112之间进行交换。电路104可以进一步用于响应于信号OFFLOAD的认定状态(例如,逻辑低)来通过接口118将存储在电路106中的所有信息(例如,数据和指令)卸载到电路108中(见箭头128)。
电路106可以实现为易失性存储器。具体地,电路106可以被实现为易失性高速缓冲存储器。电路106通常可用于缓冲由在电流102中执行的软件产生和使用的数据和指令。存储在电路106中的信息可以被安排为高速缓存线124a-124n。高速缓存线124a-124n中的每一个都可以基于高速缓存命中和高速缓存未命中来与电路112进行交换。这些高速缓存线可以被以第一读取带宽从电路106被读取,而以第一写入带宽被写入。
电路108可以实现为非易失性存储器126a-126d的阵列。存储器(或部件)126a-126d可以被安排在RAID(独立磁盘的冗余阵列)配置中。在一些实施例中,电路108的每个存储器“磁盘”126a-126d都可以实现为闪存。还可以实现其他的非易失性存储器技术来满足特定应用的标准。信息可以以第二写入带宽被写入到存储器126a-126d中的每一个,以及以第二读取带宽被读取。
电路110可以实现为备用功率单元。电路110可以用于将在信号PWR中接收到的电功率存储、变换、调整和/或滤波成适于电路102、104、106、108和112使用的一个或多个功率网络。电路110还可用于在有限的时间内提供电功率,以适于使电路104、106和108至少工作足够的时间以将信息从电路106卸载到电路108中。此外,电路110可以监控通过信号PWR流入的功率状况,以及响应于信号PWR中功率的严重下降和/或完全损失来认定信号OFFLINE。在一些实施例中,电路110可以实现为一个或多个电池。在至少一个实施例中,电路110可以实现为一个或多个超电容器或超级电容器(super-capacitor或ultra-capacitor)。
电路112可以实现为主存储器电路。具体地,电路112可以实现为易失性随机存取存储器。电路112可以用于存储在电路102上执行的软件的指令和数据。如由电路104所确定的,电路112可以为电路106提供高速缓存线以及接收来自电路106的高速缓存线。
参照图2,示出了电路108的示例性实现的示图。除了存储器部件126a-126d以外,电路108还可以包括多个插口130a-130d。这些插口(或端口)130a-130d中的每一个都通常被安排为连接至单个的存储器126a-126d。该连接可以包括物理连接、电功率连接和通信连接。在系统100的至少一个配置中,插口130a-130d可以由单个存储器部件(例如,126a)总装(populate)。在系统100的其他配置中,两个或更多的存储器126a-126d可以被安装在插口130a-130d中。
参照图3,示出了用于对电路106进行卸载的示例性方法140的流程图。该方法140大体实现了将数据从电路106移至电路108的快速卸载方法。方法140大体包括步骤(或块)142、步骤(或块)144、可选步骤(或块)146和步骤(或块)148。
该方法140可以利用信号OFFLOAD的认定来触发。诸如来自电路102的命令的其他触发也可以启动该方法140。在步骤142中,一旦检测到信号PWR中的电功率损失,则电路110可认定信号OFFLOAD。信号OFFLOAD的认定可以由电路104感测。作为响应,在步骤144中,电路104可以读取(卸载)来自电路106的高速缓存线124a-124n。信息从电路106到电路104的传送速度可以由电路106的读取带宽控制。
根据在电路108中实现的具体RAID配置,在步骤146中,电路104可以/不可以对高速缓存线124a-124n中的信息分条(stripe)。之后在步骤148中,信息块/信息条以及误差校正信息(如果有的话)可以由电路104写入到存储器126a-126d中。这些块/条从电路104到电路108的传送速度可以由存储器126a-126d的写入带宽确定。
由于信息可以被基本同时地沿多条并行路径从电路104写入到存储器126a-126d,因此到存储器126a-126d的组合写入带宽可以大于(快于)从电路106的读取带宽。相比于传统技术,更高的组合写入带宽通常减少执行传送所耗费的时间。系统100的架构可以以低成本利用可移动非易失性存储器部件126a-126d。示例性的存储器部件126a-126d可以包括但不限于安全数字(SD)闪存卡和USB闪存驱动器。
近年来,用于电路106的用户指定的高速缓存大小已经变得很大。因此,由于较慢的写入时间和更小的容量,低成本的非易失性存储器选择通常是不可用的。本发明通常使用多个非易失性存储器,从而可以使用RAID技术建立比单个普通非易失性存储器元件更大且更快的虚拟非易失性存储器(电路108),来提高非易失性存储器的容量和速度。
通过使用多个存储器126a-126d,电路104和电路108可以与由用户定制的高速缓存的数量成比例的缩放。例如,电路104可以支持电路106中的8十亿字节(GB)、16十亿字节(GB)和32十亿字节(GB)的高速缓存大小选项。电路104可以被配置为控制电路108中的多个(例如,四个)存储器部件126a-126d,这些部件中的每一个都为8GB大小。如此,8GB的高速缓存系统100可以利用单个8GB的存储器(例如,126a)来构建。16GB的高速缓存系统100可以利用两个8GB的存储器(例如,126a和126b)来构建。32GB的高速缓存系统可以利用四个8GB的存储器(例如,126a-126d)来构建。
考虑了存储器126a-126d中的每一个都具有20兆字节每秒(MB/sec)的示例性写速度。8GB高速缓存系统100可以使用约8GB/(20MB/sec)=400秒将8GB易失性电路106卸载至8GB的非易失性电路108。对于16GB的高速缓存系统100,由于使用了RAID技术来配置两个存储器(例如,126a和126b),到电路108的写入带宽通常被加倍。用于将信息从16GB电路106移出的全部卸载时间可以为16GB/(2×20MB/sec)=400秒。32GB的高速缓存系统100可以使用四个存储器元件126a-126d,来提供4×20MB/sec=80MB/sec的有效带宽。较大的写入带宽可以允许32 GB/(4×20MB/sec)=400秒的高速缓存卸载时间。在所有的三个实例中,高速缓存卸载时间都可以保持在约400秒。较大数量的存储器部件126a-126d可以用于减少卸载时间,允许更大的高速缓存大小和/或实现其他的RAID配置。
参照图4,示出了示例性RAID 0配置的示图。RAID 0配置可以实现由存储器部件126a-126d构成的条阵列。电路104可以将从电路106读取的高速缓存线124a-124n分组成多个块(例如,A-H)。各块A-H中的每一个都可以被写至单个存储器126a-126d,其中多个块被基本同时地沿并行路径150a-150d写入。例如,电路104可以并行或以交错起始顺序将块A写至存储器126a,将块B写至存储器126b,将块C写至存储器126c,将块D写至存储器126d。在交错起始序列中,电路104可以开始对块A进行写入,同时仍然从高速缓存线124a-124n来组装块B。一旦块B准备好,电路104就可以开始对块B进行写入,继续块A的写入以及开始组装块C。RAID 0配置通常以存储器126a-126d中的至少两个实现。
参照图5,示出了RAID 1配置的示图。RAID 1配置通常使用多个(例如,8个)存储器126a-126h来实现镜像对的双工。电路104可以将从电路106读取的高速缓存线124a-124n分组成多个块A-H。各块A-H中的每一个都可以被写至存储器126a-126h中的两个,其中多个块被基本同时地沿并行路径150a-150h写入。例如,块A可以被写至存储器126a和126b两者,块B可以被写至存储器126c和126d两者,等等。RAID 1配置通常提供所存信息的容错。对于每个存储器对,即使这些存储器部件之一失效,写入到该对中的块也可以被恢复。RAID 1配置以存储器126a-126h中的至少四个实现。
参照图6,示出了示例性RAID 5配置的框图。RAID 5配置可以实现具有分布式奇偶校验(parity)的数据条。如前所述,电路104可以响应于信号OFFLOAD的认定读取来自电路106的高速缓存线124a-124n。读取的信息可以被组装成块A-H。然后块A-H中的每一个都可以被形成条。例如,块A可以变成条A0、A1和A2,块B可以变成条B0、B1和B3,块C可以变成条C0、C2和C3,块D可以变成条D1、D2和D3等等。给定块的各条可以被按顺序写至单个存储器126a-126d。
可以由电路104以相同的等级对所有的条计算奇偶校验条,然后将其写入到单个存储器126a-126d中。例如,0级奇偶校验(例如,0 PARITY)可以由条A0、条B0和条C0产生,并被写入到存储器126d中。第一级奇偶校验(例如,1 PARITY)可以用条A1、条B1和条D1计算,并被写入到存储器126c中。在写入每个新的级时都可以继续奇偶校验计算。RAID 5配置通常提供在单个存储器部件126a-126d失效的情况下恢复所存信息的能力。分布式奇偶校验的使用可以允许存储器126a-126d的有效使用。RAID 5配置可以以存储器126a-126d中的三个或更多个来实现。可以在电路108中实现其他的RAID配置来满足特定应用的标准。
由图1和图3的示图执行的功能可以使用根据本说明书的教导编程的传统的通用数字计算机实现,这对本领域技术人员将是显而易见的。有经验的程序员基于本公开的教导可以容易地制备适当的软件代码,这对于本领域技术人员也将是显而易见的。
本发明还可以通过制备ASIC、FPGA,或通过将传统部件电路的适当网络进行互联来实现,如在本文中所述,其改进对于本领域技术人员也是显而易见的。
因此,本发明还可以包括计算机产品,该计算机产品可以是存储介质,该存储介质包括可以被用于对计算机进行编程以执行根据本发明的过程的指令。存储介质可以包括但不限于任何类型的磁盘,包括软磁盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、闪存、磁或光卡、或适于存储电子指令的任何类型的介质。如在本文中使用的,术语“同时”是指描述共享一些公共时间段的一些事件,但是该术语不意味着限制于以同一时间点开始、以同一时间点结束、或具有相同的持续时间的事件。
尽管已经参照优选实施例具体示出并描述了本发明,但是应该理解,在不背离本发明范围的条件下,本领域技术人员可以进行形式和细节上的各种改变。
Claims (20)
1.一种用于对高速缓冲存储器进行卸载的方法,包括以下步骤:
(A)直接通过控制器在所述高速缓冲存储器和主存储器之间交换多条高速缓存线,其中,所述主存储器和所述高速缓冲存储器是易失性的;
(B)通过所述控制器而不经过所述高速缓冲存储器在处理器和所述主存储器之间交换数据;
(C)响应于表示功率损耗的信号的认定,将来自所述高速缓冲存储器的所有所述高速缓存线缓存到所述控制器中;
(D)根据RAID配置,通过对缓存的所述高速缓存线进行分割来在所述控制器中产生多个块;以及
(E)将来自所述控制器的所述块直接写入所述RAID配置中的多个非易失性存储器,其中,每个所述非易失性存储器均具有(i)小于所述高速缓冲存储器的读取带宽的写入带宽以及(ii)至所述控制器的用于传送所述块的不同的独立路径。
2.根据权利要求1所述的方法,其中,所述块中的至少两个块被基本上同时地写入所述非易失性存储器。
3.根据权利要求1所述的方法,还包括以下步骤:
通过将所述块分成条来产生多个条,其中,每个所述块成为多个条。
4.根据权利要求3所述的方法,其中,所述步骤(E)包括以下子步骤:
将(i)所述条和(ii)相同等级的所述条的奇偶校验写入所述非易失性存储器之中。
5.根据权利要求4所述的方法,其中,所述条中的至少两个条被基本上同时地写入所述非易失性存储器。
6.根据权利要求1所述的方法,其中,(i)所述信号的所述认定表示流入功率电路的功率的损耗,以及(ii)所述功率电路被配置为在所述功率的损耗之后向所述控制器、所述高速缓冲存储器和所述非易失性存储器提供功率。
7.根据权利要求1所述的方法,其中,(i)每个所述非易失性存储器均具有第一存储容量,(ii)所述高速缓冲存储器具有第二存储容量,以及(iii)全部的所述第一存储容量至少与所述第二存储容量一样大。
8.根据权利要求1所述的方法,其中,所述非易失性存储器的所述写入带宽的全部至少与所述高速缓冲存储器的所述读取带宽一样大。
9.根据权利要求1所述的方法,其中,以最接近所述高速缓冲存储器的所述读取带宽的第一带宽从所述高速缓冲存储器读取所述高速缓存线。
10.根据权利要求9所述的方法,其中,以最接近所述非易失性存储器的所述写入带宽的第二带宽将所述块写入所述非易失性存储器。
11.一种系统,包括:
高速缓冲存储器,具有读取带宽并配置为存储多条高速缓存线,所述高速缓冲存储器是易失性的;
多个非易失性存储器,其中每一个均具有小于所述读取带宽的写入带宽;
控制器,配置为(i)响应于表示功率损耗的信号的认定对来自所述高速缓冲存储器的所有所述高速缓存线进行缓存;
(ii)根据RAID配置通过对缓存的所述高速缓存线进行分割来产生多个块;以及(iii)在所述功率的损耗之后,将所述块直接写入所述RAID配置中的所述非易失性存储器,其中,每个所述非易失性存储器均具有至所述控制器的用于传送所述块的不同的独立路径;主存储器,配置为直接通过所述控制器与所述高速缓冲存储器交换所述高速缓存线,所述主存储器是易失性的;以及
处理器,配置为通过所述控制器而不经过所述高速缓冲存储器与所述主存储器交换第一数据。
12.根据权利要求11所述的系统,其中,所述块中的至少两个块被基本上同时地写入所述非易失性存储器。
13.根据权利要求11所述的系统,其中所述处理器还被配置为通过所述控制器与所述高速缓冲存储器交换第二数据。
14.根据权利要求11所述的系统,还包括功率电路,所述功率电路配置为认定所述信号。
15.根据权利要求14所述的系统,其中,所述信号的所述认定表示流入到所述功率电路的功率的损耗,以及所述功率电路还被配置为在所述功率的损耗之后向所述控制器、所述高速缓冲存储器和所述非易失性存储器提供功率。
16.根据权利要求14所述的系统,其中,所述功率电路包括超电容器和超级电容器中的至少一个,以在源功率释放之后传送功率。
17.根据权利要求11所述的系统,还包括至少四个插口,每个所述插口均配置为连接至一个所述非易失性存储器。
18.根据权利要求17所述的系统,其中,至少一个所述插口在所述系统的至少一种配置中为空。
19.根据权利要求17所述的系统,其中,所述RAID配置包括以下各项之一:(i)RAID 0配置,(ii)RAID 1配置,以及(iii)RAID 5配置。
20.一种系统,包括:
用于易失性存储的装置,具有读取带宽且配置为存储多条高速缓存线;
用于非易失性存储的多个装置,其中每一个均具有小于所述读取带宽的写入带宽;
用于控制包括以下各项的装置,(i)响应于表示功率损耗的信号的认定对来自所述用于易失性存储的装置的所有所述高速缓存线进行缓存;(ii)根据RAID配置通过对缓存的所述高速缓存线进行分割来产生多个块;以及(iii)在所述功率的损耗之后,将所述块直接写入所述RAID配置中的所述用于非易失性存储的装置,其中,所述每个所述用于非易失性存储的装置具有至所述用于控制的装置用来传送所述块的不同的独立路径;
用于主存储器的装置,配置为直接通过所述用于控制的装置与所述用于易失性存储的装置交换所述高速缓存线;以及
用于处理的装置,配置为通过所述用于控制的装置而不经过所述用于易失性存储的装置与所述用户主存储器的装置交换数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/604,631 US7904647B2 (en) | 2006-11-27 | 2006-11-27 | System for optimizing the performance and reliability of a storage controller cache offload circuit |
US11/604,631 | 2006-11-27 | ||
PCT/US2007/021692 WO2008066605A2 (en) | 2006-11-27 | 2007-10-09 | System for optimizing the performance and reliability of a storage controller cache offload circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101542449A CN101542449A (zh) | 2009-09-23 |
CN101542449B true CN101542449B (zh) | 2012-06-13 |
Family
ID=39465141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800439252A Expired - Fee Related CN101542449B (zh) | 2006-11-27 | 2007-10-09 | 优化存储控制器高速缓存卸载电路性能和可靠性的系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7904647B2 (zh) |
EP (1) | EP2097822A4 (zh) |
JP (1) | JP4996693B2 (zh) |
KR (1) | KR101214206B1 (zh) |
CN (1) | CN101542449B (zh) |
WO (1) | WO2008066605A2 (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296337B2 (en) | 2006-12-06 | 2012-10-23 | Fusion-Io, Inc. | Apparatus, system, and method for managing data from a requesting device with an empty data token directive |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
US8719501B2 (en) * | 2009-09-08 | 2014-05-06 | Fusion-Io | Apparatus, system, and method for caching data on a solid-state storage device |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US8566639B2 (en) * | 2009-02-11 | 2013-10-22 | Stec, Inc. | Flash backed DRAM module with state of health and/or status information accessible through a configuration data bus |
US20100205349A1 (en) * | 2009-02-11 | 2010-08-12 | Stec, Inc. | Segmented-memory flash backed dram module |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
JP5518197B2 (ja) * | 2009-09-09 | 2014-06-11 | フュージョン−アイオー・インコーポレーテッド | ストレージを割り当てるための装置、システム、および方法 |
KR101777376B1 (ko) * | 2010-11-08 | 2017-09-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 구동 방법 |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8484408B2 (en) | 2010-12-29 | 2013-07-09 | International Business Machines Corporation | Storage system cache with flash memory in a raid configuration that commits writes as full stripes |
US9092337B2 (en) | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
WO2012129191A2 (en) | 2011-03-18 | 2012-09-27 | Fusion-Io, Inc. | Logical interfaces for contextual storage |
US20120278528A1 (en) * | 2011-04-28 | 2012-11-01 | International Business Machines Corporation | Iimplementing storage adapter with enhanced flash backed dram management |
TW201310337A (zh) * | 2011-08-31 | 2013-03-01 | Ily Entpr Inc Dba Ez Dupe | 應用於一對多複製裝置之資料複製方法 |
US8996805B2 (en) | 2011-10-26 | 2015-03-31 | Hewlett-Packard Development Company, L.P. | Shared cache module and method thereof |
CN103092722A (zh) * | 2011-11-08 | 2013-05-08 | 艾利科技股份有限公司 | 应用于一对多复制装置的数据复制方法 |
US20140281222A1 (en) * | 2011-11-17 | 2014-09-18 | Ching-Chung Lee | Antiharmonic data copying method |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
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 |
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 |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US9489151B2 (en) | 2013-05-23 | 2016-11-08 | Netapp, Inc. | Systems and methods including an application server in an enclosure with a communication link to an external controller |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US20160188414A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Fault tolerant automatic dual in-line memory module refresh |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596708A (en) | 1994-04-04 | 1997-01-21 | At&T Global Information Solutions Company | Method and apparatus for the protection of write data in a disk array |
JP3065481B2 (ja) * | 1994-04-22 | 2000-07-17 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | ディスク・アレイ装置およびデータの格納方法 |
GB2293668B (en) * | 1994-09-30 | 1999-09-29 | Advanced Risc Mach Ltd | Accessing data memories |
JPH10269138A (ja) * | 1997-03-25 | 1998-10-09 | Hitachi Ltd | キャッシュメモリ制御及びそれを用いたデータ処理装置 |
JP3204295B2 (ja) * | 1997-03-31 | 2001-09-04 | 日本電気株式会社 | キャッシュメモリシステム |
JP2000187616A (ja) * | 1998-12-22 | 2000-07-04 | Nec Corp | キャッシュラインをクリーンな状態に保つメモリシステム |
US6370605B1 (en) * | 1999-03-04 | 2002-04-09 | Sun Microsystems, Inc. | Switch based scalable performance storage architecture |
JP3611763B2 (ja) * | 1999-11-22 | 2005-01-19 | 株式会社日立製作所 | ディスク制御装置 |
US7107480B1 (en) * | 2000-12-22 | 2006-09-12 | Simpletech, Inc. | System and method for preventing data corruption in solid-state memory devices after a power failure |
US7979632B2 (en) | 2002-09-06 | 2011-07-12 | Hewlett-Packard Development Company, L.P. | Storage system including a fast storage device for storing redundant data |
US7076606B2 (en) * | 2002-09-20 | 2006-07-11 | Quantum Corporation | Accelerated RAID with rewind capability |
US20040078508A1 (en) * | 2002-10-02 | 2004-04-22 | Rivard William G. | System and method for high performance data storage and retrieval |
JP2004127031A (ja) * | 2002-10-03 | 2004-04-22 | Yaskawa Electric Corp | メモリ切り替え回路 |
JP4469563B2 (ja) * | 2003-06-05 | 2010-05-26 | 株式会社ソニー・コンピュータエンタテインメント | 電子機器、電磁波放射抑制部材 |
US7073027B2 (en) * | 2003-07-11 | 2006-07-04 | International Business Machines Corporation | Methods, systems and computer program products for controlling caching of distributed data |
US7085887B2 (en) * | 2003-08-21 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | Processor and processor method of operation |
JP4374221B2 (ja) * | 2003-08-29 | 2009-12-02 | パナソニック株式会社 | コンピュータシステムおよび記録媒体 |
GB2407405B (en) | 2003-10-23 | 2008-05-21 | Andrew Lester | Small-scale RAID arrays and adapters for mobile computing devices |
JP2005352746A (ja) * | 2004-06-10 | 2005-12-22 | Canon Inc | アレイ型記憶装置 |
US7536506B2 (en) * | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US7702864B2 (en) * | 2004-11-18 | 2010-04-20 | International Business Machines Corporation | Apparatus, system, and method for writing stripes in parallel to unique persistent storage devices |
JP4401954B2 (ja) * | 2004-12-20 | 2010-01-20 | 富士通株式会社 | 電源制御装置及び電源制御プログラム |
US7685376B2 (en) * | 2006-05-03 | 2010-03-23 | Intel Corporation | Method to support heterogeneous memories |
-
2006
- 2006-11-27 US US11/604,631 patent/US7904647B2/en not_active Expired - Fee Related
-
2007
- 2007-10-09 EP EP07852642A patent/EP2097822A4/en not_active Withdrawn
- 2007-10-09 CN CN2007800439252A patent/CN101542449B/zh not_active Expired - Fee Related
- 2007-10-09 JP JP2009538383A patent/JP4996693B2/ja not_active Expired - Fee Related
- 2007-10-09 KR KR1020097013338A patent/KR101214206B1/ko not_active IP Right Cessation
- 2007-10-09 WO PCT/US2007/021692 patent/WO2008066605A2/en active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
JP4996693B2 (ja) | 2012-08-08 |
US7904647B2 (en) | 2011-03-08 |
WO2008066605A2 (en) | 2008-06-05 |
EP2097822A4 (en) | 2010-06-02 |
CN101542449A (zh) | 2009-09-23 |
KR20090086266A (ko) | 2009-08-11 |
WO2008066605A3 (en) | 2008-09-18 |
WO2008066605B1 (en) | 2008-10-30 |
KR101214206B1 (ko) | 2012-12-20 |
EP2097822A2 (en) | 2009-09-09 |
US20080126700A1 (en) | 2008-05-29 |
JP2010511224A (ja) | 2010-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101542449B (zh) | 优化存储控制器高速缓存卸载电路性能和可靠性的系统 | |
US10146700B2 (en) | Systems and methods for storage space recovery | |
US9170941B2 (en) | Data hardening in a storage system | |
US5392445A (en) | Data storing system and data transfer method with a plurality of disk units | |
KR101689420B1 (ko) | 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법 | |
CN105556416B (zh) | 数据存储设备/系统中利用低功率状态的停电保护和恢复 | |
CN102024044B (zh) | 分布式文件系统 | |
US8074112B1 (en) | Memory backup used in a raid system | |
US7228381B2 (en) | Storage system using fast storage device for storing redundant data | |
JP4881856B2 (ja) | 記憶装置 | |
US9645769B2 (en) | Performance acceleration during shutdown of a data storage device | |
CN103970688A (zh) | 缩短数据存储系统中写入等待时间的方法和系统 | |
US9582192B2 (en) | Geometry aware block reclamation | |
CN102054534A (zh) | 包括响应电源故障信号而刷新写入数据的电源故障电路的非易失性半导体存储器 | |
CN102177496A (zh) | 用于针对当前数据和回放数据在不同raid数据存储类型之间转移数据的系统和方法 | |
CN101510223A (zh) | 一种数据处理方法和系统 | |
TW202143052A (zh) | 用於固態硬碟的緩衝區最佳化 | |
US20130117603A1 (en) | Method for completing write operations to a raid drive pool with an abnormally slow drive in a timely fashion | |
US20210318739A1 (en) | Systems and methods for managing reduced power failure energy requirements on a solid state drive | |
US7206908B2 (en) | Apparatus and method to convert a plurality of sectors from a first sector format to a second sector format | |
CN107797946B (zh) | 一种车载存储装置 | |
CN103049221A (zh) | 磁盘阵列缓存刷写处理方法和装置 | |
KR20230099605A (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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160725 Address after: Singapore Singapore Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd. Address before: California, USA Patentee before: LSI Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120613 Termination date: 20151009 |
|
EXPY | Termination of patent right or utility model |