CN1295623C - 非易失性高速缓存 - Google Patents
非易失性高速缓存 Download PDFInfo
- Publication number
- CN1295623C CN1295623C CNB018143652A CN01814365A CN1295623C CN 1295623 C CN1295623 C CN 1295623C CN B018143652 A CNB018143652 A CN B018143652A CN 01814365 A CN01814365 A CN 01814365A CN 1295623 C CN1295623 C CN 1295623C
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- memory
- disk
- chipset
- 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
- 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
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一个非易失性高速缓存包括一个非易失性存储器,非易失性存储器用来缓存存储在大容量存储设备上的数据。
Description
技术领域
本发明的实施例涉及非易失性高速缓存。确切地说,本发明涉及为磁盘存储设备缓存数据的非易失性存储器。
背景技术
计算机系统通常将数据保存在大容量易失性存储器和非易失性存储器中。这些数据通常包括操作系统的计算机指令、应用程序和通过上述指令访问的数据。磁盘驱动器,作为大容量存储器的一个例子,可以是现代计算机系统的一部分。通常,当计算机关机或者切断电源后,非易失性大容量存储器,比如磁盘驱动器中的数据是不会丢失的。因而,非易失性大容量存储器,比如磁盘驱动器,可以用来保存计算机中需要长期保留的数据。
在众多计算机系统中,计算机微处理器当前使用的一组数据可以从磁盘驱动器中拷贝到易失性随机存储器中(RAM),因为RAM中数据的存取速度要比磁盘驱动器快得多。然而,单位容量的RAM存储器(例如1M字节)一般要比相同容量的磁盘驱动器贵的多,因而,在典型的计算机系统中,RAM的容量要比磁盘驱动器的容量小得多。当所需要的数据尚未存放到RAM存储器之前,微处理器可以读取一组信息,包括所需要的从磁盘存入RAM的数据。如果RAM存储器中没有足够的空间,微处理器可以通过把RAM中的某组数据写回磁盘驱动器来释放RAM的空间。
由于磁盘驱动器的存取时间要比RAM的存取时间慢的多,因此磁盘驱动器就成为提高性能的瓶颈。此外,从磁盘驱动器中读取数据要比从RAM中读取数据花消更大的功率,这是因为从磁盘驱动器读取数据时必须进行机械运转。现有的磁盘驱动器包括一个易失性高速缓存(例如,动态随机存取存储器高速缓存DRAM cache,静态存储器高速缓存SRAM cache),但是这些易失性高速缓存通常是微处理器的主内存地址空间并且是字节寻址的。
发明内容
本发明提供了一种计算机,包括:一块主板;与主板相连的一个芯片组;与芯片组相连的磁盘存储器;和一个堆积在芯片组上、对保存在磁盘存储器上的数据进行缓存的非易失性铁电存储器。附图说明
图1是一个具有依照本发明实施例的非易失性高速缓存的计算机系统的局部结构图。
图2是依照本发明实施例的磁盘驱动器的局部结构图。
图3是依照本发明实施例的芯片组和磁盘驱动器的局部结构图。
图4是一个依照本发明实施例的非易失性磁盘高速缓存的更为详细的局部结构图。
图5依照本发明实施例的非易失性磁盘高速缓存入口的局部结构图。
图6是与依照本发明实施例的磁盘驱动器中的分区有关的数据获取方法的一个流程图。
图7是一个具有依照本发明实施例的非易失性磁盘高速缓存的计算机系统的局部结构图。
图8是一个具有依照本发明实施例的非易失性磁盘高速缓存的磁盘驱动器的局部结构图。
图9图示了在依照本发明实施例的非易失性存储器中保存数据的方法。
具体实施方式
本文中所描述的方法和设备涉及用在大容量存储器中的高速缓存,该高速缓存能够用在非易失性存储器中。特别地,本发明的实施例涉及非易失性高速缓存,该非易失性高速缓存能够提高内存的效率以及通过将数据缓存到非易失性存储器中来重新获取数据。
图1图示了一个具有依照本发明实施例的非易失性高速缓存的计算机系统(“计算机”)的局部结构图。特别地,图1图示了一个计算机系统100,计算机系统100包括一个中央处理器(CPU)102,或处理器,和一个安装在主板106上的内存元件104。处理器102可以是,如Santa Clara,California因特尔公司制造的奔腾3处理器,特定用途集成电路(ASIC),微控制器等等。可用在计算机系统100的内存104的一个例子是128M动态随机存取存储器(DRAM)。内存104也可以是如ROM。另外,处理器102和内存104可以驻留于连接在主板106上的各自的印制电路中。术语“连接”揽括了直接连接,间接连接和间接通信,等等。
芯片组110连接在处理器102和其它系统元件比如内存104,大容量存储器130和连接在扩展总线116上的外围元件之间,并对双方的交互进行管理。在本专利申请中,术语芯片组指的是实现处理器和计算机系统元件之间数据交换功能的一个或多个集成电路组。如图1所示,芯片组可以连接在计算机系统的主板上。芯片组110可以集成(如,焊上)在主板106中。芯片组110可以是类似于Santa Clara,California因特尔公司制造的820和810E芯片组。芯片组110可以是一个单一的集成电路或者可以包含两个或多个集成电路芯片。如图3所示,芯片组110可以包含一个内存控制集线器(MCH)311,该内存控制集线器实现所熟知的“北桥功能”,以及包含一个输入/输出控制集线器(ICH)312,该输入/输出控制集线器实现所熟知的“南桥功能”。
大容量存储器130可以是磁盘驱动器,同时可以通过电缆连接器170与芯片组110相连。大容量存储器130也可以是3.5英寸磁盘,5.25英寸软盘,ZIP磁盘(例如,由Iomega Corporation of Roy Utah生产的ZIP磁盘),jaz磁盘(例如,由Iomega Corporation of Roy Utah生产的jaz磁盘),LS-120 Superdisk(例如由Imation Corporationof Oakdale,Minnesota生产的),可擦写数字化视频光盘(DVD-RAM),读/写光盘(CD-RW),光存储器,磁-光存储器,磁存储器,全息等等。为方便起见,本申请所公开的实施例中,大容量存储器是指磁盘驱动器。可用于本发明的磁盘驱动器的一个实施例图示在图2中。
扩展总线116可以是周边元件扩展接口(PCI)总线,扩展总线116是数据总线,在计算机系统100中很常见,遵从局部总线规格。一个或多个PCI相适应的周边元件,例如网络接口卡(NIC)126,可以连接到扩展总线116。网络接口卡126可以将计算机系统100连接到局域网或者广域网。
本发明的一个实施例是非易失性高速缓存,包含一个可以对保存在大容量存储器上的数据进行缓存的非易失性内存。在图1所示的实施例中,非易失性高速缓存150与芯片组110相连。在另一个实施例中,芯片组和非易失性内存对大容量存储器130的数据进行缓存。而在另外一个实施例中,大容量存储器是一个磁盘驱动器,而非易失性高速缓存150对磁盘中的数据进行缓存,这种情况下高速缓存可以指磁盘高速缓存。
图2图示了依照本发明实施例的磁盘驱动器230的局部结构图。磁盘驱动器230可以是与图1中的大容量存储器130相同,并且为了下文中论述的需要,把它当作大容量存储器130。磁盘驱动器230可以是一个外部磁盘驱动器或者网络磁盘驱动器。磁盘驱动器230可以保存,如超过100G比特的数据。在其中一个实施例中,磁盘驱动器230是硬盘。在另一个实施例中,磁盘驱动器230是一个由Seagate Inc.of Scotts Valley,California制造的Cheetah 18XL磁盘驱动器。磁盘驱动器130可以包含一个磁盘控制器210和一个大容量存储器220。磁盘控制器210可以是应用说明集成电路,它可以包含一个与缓冲器和程序存储器215以及ECC逻辑电路218相连的微处理元件(MPU)211。缓冲器和程序存储器215可以保存由MPU211执行的磁盘驱动器操作程序219,并且也可以充当保存从大容量存储器220中写入或读取的数据的缓存器。MPU211可以处理通过向大容量存储器220写入或读取数据来处理来自CPU的请求。比如,MPU211可以判定何时发出请求,并且可以将逻辑分区地址转换成物理分区地址。缓冲器和程序存储器215可以连接在磁盘轴接口逻辑电路213上,该逻辑电路可以与主机系统(例如,计算机系统100)对接。磁盘控制器210也可以包含磁盘格式化逻辑电路来格式化待写入大容量磁盘的数据组(例如,插入一个序言和特定的字符)。本专利申请中,“logic”包括硬件逻辑电路,比如无线操作电路,或者程序逻辑电路比如执行操作的微程序语言。
大容量存储器220可以存储其他内容,计算机操作系统(0S)代码231,这些操作系统代码一旦引导,可以北载入计算机内存104中供处理器102处理。大容量处理器220也可以为磁盘驱动器设备驱动程序235,该驱动程序也可以载入计算机的内存104供处理器103处理,从而实现与磁盘驱动器230之间的数据转换和通信。大容量存储器220也可以保存其他的数据,如应用程序以及可以由这些程序访问的数据。大容量存储器220可以包含能分成磁道的盘面,这些磁道能依次分成不同的分区。比如,经格式化的磁盘,每个盘面可以具有1000个磁道。在其中一个实施例中,当磁盘控制器210从磁盘驱动器外界接收到读或写的请求后,可以按照逻辑磁盘分区来发出请求,磁盘控制器可以采用匹配算法将这些请求转换成物理磁盘分区。某些物理分区可以留出供共享,匹配可以是硬件
在操作过程中,当操作系统231(由处理器102执行)从程序或操作系统的其他部分接收到一个数据请求时,可以利用一个文件系统通过检测文件分配表(FAT)来判定当前数据是否在内存104中,如果不否,并且在大容量磁盘上220(例如,磁盘分区地址),数据可以被发现。如果操作系统231判定所需要的数据不在内存104中,而是保存在磁盘230中,操作系统231可以通过芯片组110向磁盘驱动器230发送一个获取数据的请求。更确切地,操作系统231可以向含有操作系统231所需要的数据的磁盘驱动器230发送一个拷贝请求。磁盘控制器210之后可以接收磁盘分区信息请求,从大容量存储器220中获取磁盘分区,并且通过芯片组110将用于磁盘分区的数据发送到内存104。在另一个时间点,操作系统231可以引发磁盘分区将内存104中的数据写入到磁盘驱动器230中,这种情况下,磁盘控制器210将接收数据并将其存入大容量存储器220的磁盘分区中。
在另一个实施例中,尽管诸如寻址信息和有效性数据之类的管理信息可以存入较小的单元,分区是磁盘驱动器230使用的最小的可寻址物理存储单元。在另一个实施例中,每个磁盘分区的大小是512比特。在另一个实施例中,一个数据块是指一组包含有标识代码、错误检测代码和/或数据块的错误纠正代码(ECC)的一个或多个磁盘分区。在另一个实施例中,操作系统向磁盘请求获取有关磁盘分区或者数据块分区(即,不请求一个字节或一个字)的数据,在这种情况下,磁盘驱动器被称作数据块引导的(即,数据块可寻址的)。在另一个数据块引导的磁盘驱动器实施例中,管理信息可以存入较小的单元。ECC是一个较高级的错误检测和纠正协议,它可以检测出单字节和多字节错误并且可以纠正某些运行中的错误。在其中一个实施例中,数据块中的磁盘分区在磁盘的一面呈一个挨一个的物理划分。在另一个实施例中,数据块由磁盘驱动器230,非易失性高速缓存和相关元件按照一个单元来操作。在另一个实施例中,一个数据块包含100个磁盘分区。
在本发明的其中一个实施例中,保存在磁盘驱动器230中的数据可以缓存到非易失性高速缓存150中。在该实施例中,非易失性高速缓存150充当一特定的内存子系统的作用,保存有磁盘驱动器使用频率很高的分区数据的备份供快速存取。根据该实施例,当数据磁盘分区从磁盘驱动器230拷入到内存104时,可以将磁盘分区的备份存入到非易失性高速缓存150中。根据该实施例,当操作系统判定所需要的数据不在内存104,而请求的数据放在非易失性高速缓存150时,可以将数据从非易失性高速缓存150(代替原来的磁盘驱动器230)读入到内存104中。在该实施例中,逻辑磁盘驱动器内存包括物理磁盘驱动器230和非易失性高速缓存150。如果操作系统判定需要将数据保存到磁盘上,比如当字-处理程序的用户发出指令将当前文档“存盘”,数据就可以存入物理磁盘驱动器230或者非易失性高速缓存150。同样,当操作系统判定需要将保存在内存104中的数据释放出来,就可以将数据写回非易失性高速缓存150。由于非易失性高速缓存150是非易失的,所以当计算机系统切断电源关机后保存在其上的数据不会丢失。
当非易失性高速缓存150的数据存取速度比磁盘驱动器230快时,非易失性磁盘高速缓存150的用户可以从总体上提高处理器102的程序执行速度。比如,当磁盘驱动器230的平均存取速度大大低于非易失性磁盘高速缓存150的存取速度时,那么非易失性磁盘高速缓存150的使用可以从整体上大大提高存取速度。由于一般的计算机系统肿磁盘驱动器的存取时间占到用户等待系统响应时间的80%,非易失性高速缓存150的使用将让用户感到较大的满意。此外,当非易失性高速缓存150每一次存取所消耗的功率比磁盘驱动器230小时,非易失性高速缓存150的使用将节省系统用电。此外,非易失性高速缓存150比磁盘驱动器更加可靠,从而减少计算机系统崩溃或死机的次数。
在其中一个实施例中,磁盘设备驱动器235包含用于非易失性高速缓存150的高速缓存管理指令237。这些高速缓存管理指令237可以决定那些数据需要进行高速缓存,那些数据需要替换,以及那些数据需要写回到磁盘中。此外,高速缓存管理指令237也可以决定高速缓存间断发生的时间,以及那些数据预先存入高速缓存。例如,高速缓存管理指令237可以决定是否需要将所希望的磁盘数据分区从非易失性高速缓存150(例如,如果数据当前存放在非易失性高速缓存150)读入到内存230。高速缓存管理决断,比如是否需要将数据缓存到非易失性高速缓存150中,可以通过使用所熟知的高速缓存算法来实现。例如,如果算法决定若在紧随其后的时间里数据被再次使用的可能性较低(例如,数据用于MP3音频文件),那么就不把这些数据进行高速缓存。此外,当需要把非易失性高速缓存150中的数据写回到磁盘驱动器230时,高速缓存管理指令可以决定将哪些数据写回,比如采用所熟知的近来很少采用的(LRU)算法或者随即替换算法。
在其中一个实施例中,出现在操作系统231中的磁盘设备驱动器235,即便它具有高速缓存管理指令237,看起来似乎是一个正常的设备驱动器(例如,WIN98环境下的ATAPLSYS)。在该实施例中,非易失性高速缓存150的存在对于操作系统231来说是显而易见的。在另一个实施例中,高速缓存管理指令是操作系统231的一部分。在另一个实施例中,高速缓存管理由芯片组110中的逻辑电路来实现。在另一个实施例中,高速缓存管理由操作系统231,磁盘235的设备驱动器和/或芯片组110上的逻辑电路相结合来实现。
图3是根据本发明实施例的芯片组310和非易失性磁盘高速缓存350的一个局部结构图。芯片组310和非易失性磁盘高速缓存350可以与图1中的芯片组110以及非易失性高速缓存150相同。在该实施例中,非易失性磁盘高速缓存350是指磁盘高速缓存,因为它向磁盘驱动器提供数据缓冲。非易失性磁盘高速缓存350可以是任何能够读取和写入、以及在所有的与其相连的外部电源被切断后仍能保留数据的内存。非易失性磁盘高速缓存350可以是,比如闪存,电池支持动态随机存取存储器,磁随机存贮器,全息内存,铁-电随机存贮器等等。在其中一个实施例中,非易失性磁盘高速缓存350可以保存500M字节的数据。在另一个实施例中,非易失性磁盘高速缓存350属于面向块的,每个数据块包含一个或多个逻辑磁盘分区,这些分区对应磁盘驱动器的逻辑磁盘分区。在该实施例中,非易失性高速缓存350的每个磁盘分区和块与磁盘驱动器中的磁盘分区和块的大小是相同的。如果磁盘高速缓存350属于面向块的,数据(而非高速缓存管理信息)可以按照磁盘分区或块分区来读取或保存。
在其中一个实施例中,非易失性高速缓存350与芯片组310相连。在另一个实施例中,非易失性高速缓存350可以直接连接或部分连接芯片组310。在其中一个实施例中,如图3所示,非易失性高速缓存150堆积在芯片组310的集成电路上。在该实施例中,ICH312包括磁盘高速缓存接口逻辑电路315,该电路控制非易失性磁盘高速缓存350的存取。
如上文所述,芯片组310可以是单个集成电路或者集成电路组,控制处理器和相关设备之间的通信。在其中一个实施例中,芯片组310包含多个集成电路,这些集成电路可以指第一芯片组集成电路和第二芯片组集成电路,而非易失性高速缓存可以与芯片组中的其中一个集成电路相连。芯片组310可以包含一个内存控制集线器(MCH)311的内存,该集线器用于实现所熟知的“北桥功能”,和一个输入/输出控制集线器(ICH)312,该集线器用于实现所熟知的“南桥功能”。如图3所示,内存控制集线器311和输入/输出控制集线器可以是独立的芯片。在其中一个实施例中,高速缓存逻辑电路315和缓冲器318构成了部分芯片组上的内存控制集线器311。非易失性内存可以以任何形式与芯片组相连,而本发明则可以采用任何类型的芯片组。在图3中,非易失性内存堆积在输入/输出控制集线器312之上。该非易失性内存可以覆盖它所堆积的整个芯片。
在另一个实施例中,非易失性高速缓存可以是完全相关的高速缓存。在另一个实施例中,非易失性高速缓存可以是一组相关的高速缓存。
图4是根据本发明实施例的非易失性磁盘高速缓存350的一个更为详细的局部结构图。非易失性磁盘高速缓存可以保存多个磁盘高速缓存入口400和管理信息。在其中一个实施例中,保存在非易失性磁盘高速缓存350中的每个磁盘高速缓存入口的大小是大容量存储器220的磁盘分区大小。在另一个实施例中,每个磁盘高速缓存入口对应一个或多个磁盘分区(例如,100个磁盘分区)的块。
非易失性磁盘高速缓存350也可以包含一个高速缓存目录表410,目录表具有每个磁盘高速缓存入口的一个表格入口。高速缓存目录表410可以用于决定同额定的磁盘分区或数据块是否当前存放在非易失性磁盘高速缓存350中。在其中一个实施例中,高速缓存目录表可以显示磁盘驱动器分区所对应的数据是否保存在磁盘高速缓存中。高速缓存目录表410中为每个包含数据逻辑分区的有效磁盘高速缓存入口设有一个表格入口。高速缓存目录表410中的每个表格入口可以包含一个保存在非易失性磁盘高速缓存350的逻辑磁盘分区的分区地址。为了决定磁盘分区当前是否存放在非易失性磁盘高速缓存350中,可以利用所熟知的搜索算法对高速缓存目录表410进行搜索。另外,高速缓存目录表410中的表格入口可以采用散列算法进行保存。在其中一个实施例中,磁盘分区是否存放在非易失性磁盘高速缓存350可以通过将所希望的分区地址与保存在高速缓存目录表入口中的分区地址进行比较来得到确认。由于高速缓存目录表410保存在非易失性内存中,即使计算机系统切断电源或者关机,高速缓存的状态(例如,高速缓存中有什么)仍可得到保留。在一个非易失性磁盘高速缓存350中具有2,000,000磁盘高速缓存入口的实施例中,高速缓存目录表410中具有2,000,000个表格入口。在该实施例中,每个表格入口可以是四个字节,而高速缓存目录表可以8字节的非易失性内存。在其中一个实施例中,因为在每个磁盘高速缓存入口包含了一个多磁盘分区块而减小了高速缓存目录表的大小。
非易失性高速缓存350也可以包含控制寄存器如指令寄存器401,地址寄存器402和目标指针寄存器403。指令寄存器401可以保存从其他设备接收的命令,比如来自处理器102、用以获取保存在非易失性磁盘高速缓存350上的磁盘分区的命令。地址寄存器402可以保存磁盘分区的分区地址,这些磁盘分区从非易失性高速缓存350中读取或写入到非易失性高速缓存350中。目标指针寄存器403可以保存位置,比如诸如用来写入磁盘分区的RAM等设备的位置。
图5是根据本发明实施例的非易失性磁盘高速缓存500的一个结构图。非易失性磁盘高速缓存入口500可以是图4中的多个磁盘高速缓存入口400中的一个,并且也可以包含磁盘分区数据或磁盘分区块。非易失性磁盘高速缓存入口500可以具有一个有效域501,一个修改域502,一个分区地址505,一个地址域510和一个ECC域520。当高速缓存入口500包含有效数据时,有效域502可以被设置为“有效”,而当高速缓存入口500不包含有效数据时,则将有效域502设置为“无效”。比如,当高速缓存入口500中的数据写回到磁盘驱动器230后,有效域501可以从“有效”转变成“无效”以表明高速缓存入口不再保存有逻辑磁盘分区。如果高速缓存入口500中的数据与磁盘驱动器230中相对应的磁盘分区中的数据不相同的话,修改域502可以设置成“经修改”。例如,如果数据磁盘分区从内存104写回到非易失性高速缓存150,而该磁盘分区含有在内存104中经修改过的数据,那么该数据所对应的磁盘高速缓存入口的修改域将被设置为“经修改”。修改域502可以是指“页面重写标记位”(“dirty bit”)。分区地址505可以包含那些保存在高速缓存入口、可指为“分区标识”的数据的逻辑磁盘分区地址(或者多个地址,如果入口具有多个分区的话)。在其中一个实施例中,分区地址505包含块的起始地址,每个块的长度是固定的。数据域510保存高速缓存入口数据。在其中一个实施例中,数据域510可以包含一个数据磁盘分区(比如,512字节)。ECC域520保存有用于高速缓存入口的错误纠正代码。在其中一个实施例中,每个块与一个错误纠正代码相关联。
在操作过程中,处理器可以判定某个特定的数据块不在内存104中,并且可以向芯片组110发信号来判定数据是否在非易失性磁盘缓存中。磁盘高速缓存接口逻辑电路315可以根据高速缓存目录表410判定数据块是否在非易失性磁盘高速缓存中。为了从非易失性高速缓存350中读取数据块,处理器102可以向指令寄存器401发送一个“读请求”,将块磁盘分区地址发送给地址寄存器402,以及将内存104中的一个目标地址发送给目标指针寄存器403。根据该指令,磁盘高速缓存接口逻辑电路315可以将高速缓存入口所对应的数据(比如,高速缓存入500的数据域中的数据)写入到缓冲器318中。然后,缓冲器中的数据就可以被转移到目标指针寄存器403所指定的内存104某个位置。在另一个实施例中,由于内存的速度原因,缓冲器318不可用。在其中一个实施例中,磁盘高速缓存接口逻辑电路315可以检测与保存在非易失性内存(例如,ECC代码520)中的数据有关的错误纠正代码,以便对从非易失性磁盘高速内存读入到缓冲器318过程中发生的错误进行纠正。在其中一个实施例中,非易失性内存是面向块的,并且对每一个从非易失性内存读取的数据块进行错误纠正代码检测。
在其中一个实施例中,从非易失性磁盘高速缓存可能是破坏性的读取,这是因为读取过程不可预期地引起保存在入口的数据丢失或改变。这种情况可能在如下情况发生,即如果在非易失性磁盘高速缓存是在核心逻辑电路中实现。在该实施例中,磁盘高速缓存接口逻辑电路315可以支持对破坏性读取进行写回。也就是说,磁盘高速缓存接口逻辑电路315可以将已读地数据重新写回,从而就可以将数据重新存入入口恢复原状。
可选地,如果处理器102所希望的数据当前不在非易失性磁盘高速缓存中,则可以向磁盘驱动器230发送一个获取合适数据块的请求。磁盘驱动器130可以将数据块写入到内存104中。此外,可以通过将块写入缓冲器318以及将合适的指令写入指令寄存器401来把相同的数据块写入到非易失性磁盘高速缓存中。之后,高速缓存接口逻辑电路315可以创建一个新的磁盘高速缓存入口500以及将块拷入到新的高速缓存入口中。此外,高速缓存接口逻辑电路315可以对应新的磁盘高速缓存入口在高速缓存目录表410中创建一个新的入口。新磁盘高速缓存入口的有效域501可以被设置成“有效”而修改域将被设成“未经修改”。在其中一个实施例中,非易失性磁盘高速缓存中的块与磁盘驱动器中的块之间具有相同的大小和结构,以便块可以不经修改或者只经稍稍改动就可以拷入到磁盘高速缓存中。一旦数据块存入非易失性磁盘高速缓存后,处理器102可以从非易失性磁盘高速缓存而不是从磁盘驱动器中读取这些数据块。
图6是一个获取与根据本发明的磁盘驱动器中的分区有关的数据的方法的流程图。为清楚起见,所列出的方法与上文中所述的优选实施例相结合来描述。处理器102可能需要一个数据项以及可以判定数据是否已经保存在磁盘驱动器(601)的某个位置。与磁盘驱动器位置相关的最当前的数据可以保存在RAM或者磁盘高速缓存中。
如果数据没有保存在RAM中,那么处理器可以通过检测高速缓存目录表来判定与磁盘驱动器位置相关的数据是否保存在非易失性能够磁盘高速缓存(602)中。如果数据已经保存在非易失性磁盘高速缓存(603)中,那么就可以从非易失性磁盘高速缓存(604)中读取这些数据。在从非易失性磁盘高速缓存读取这些数据时可以对错误纠正代码进行检测,从而纠正错误(605)。然后就可以将数据写入到RAM(606)。如果数据没有保存在非易失性磁盘高速缓存(603)中,那么可以从磁盘驱动器(607)中读取所需要的数据。然后,就可以将数据写入到RAM和非易失性磁盘高速缓存中,从而在非易失性高速缓存(608)中创建了一个信的入口。接下来,可以在高速缓存目录表中创建对与非易失性磁盘高速缓存(609)中的新的入口相对应的新信的入口。
图7是一个具有依照本发明另一个实施例的非易失性高速缓存扩展卡的计算机系统的局部结构图。在该实施例中,非易失性磁盘高速缓存包含在PCI总线扩展卡中。图7所图示的计算机系统700可以与图1所示的计算机系统100相似。图7图示了一个主板706,该主板包含一个CPU702,RAM704,芯片组710和磁盘驱动连接电缆770,以上元件可以分别同图1中的CPU2,内存104,芯片组110和连接电缆170相同。计算机系统700也包含一个磁盘驱动器730,该驱动器730可以与图1中的大容量存储设器130相同。然而,与图1不同的是,图7的实施例中,非易失性高速缓存并不与芯片组710相连。
在本发明的该实施例中,计算机系统700包含一个非易失性高速缓存扩充卡750,该扩充卡与PCI总线716相连。网络接口卡726也与PCI总线716相连。PCI总线716和网络接口卡726可以与图1中的扩展总线116及网络接口卡126相同。在另一个实施例中,非易失性高速缓存扩充卡750可以与计算机系统700的另一个扩展总线相连。非易失性高速缓存扩充卡750可以插入计算机700的总线也可以从中移走。非易失性高速缓存扩充卡750包含非易失性内存,该内存可以与非易失性磁盘高速缓存350中的非易失性内存相似。扩充卡750也可以包含磁盘高速缓存接口逻辑电路。计算机700可以为磁盘驱动器730缓冲数据,其方式如与计算机系统100相类似。当计算机700的操作系统需要获取可能保存在磁盘驱动器730中的数据时,可以作出是否缓存在非易失性高速缓存扩充卡750中。如果结果肯定,那么可以将数据从非易失性扩充卡750而非磁盘驱动器730写入到RAM704中。因而,从为磁盘驱动器缓存数据角度考虑,该实施例与图1的实施例是相似的,尽管在该实施例中,高速缓存是扩充卡的一部分而不象图1中的高速缓存是与芯片组相连的。
图8是具有一个根据本发明实施例的非易失性磁盘高速缓存的磁盘驱动器的局部结构图。图8图示了一个磁盘驱动830,该驱动器与图2所示的磁盘驱动器230相似。如磁盘驱动器230一样,磁盘驱动器830具有一个磁盘控制器810和磁盘轴820。磁盘驱动器830也具有一个非易失性高速缓存850。磁盘轴820可以保存操作系统831和一个磁盘驱动器835。然而,磁盘轴820并不保存高速缓存管理指令。磁盘控制器810具有一个MPU811,缓冲器和程序存储器815,接口逻辑电路813和ECC逻辑电路818,这些元件可以分别与图2中的MPU211,缓冲器,程序存储器215,磁盘轴接口逻辑电路213和ECC逻辑电路218相似。此外,磁盘控制器810具有高速缓存接口逻辑电路并且与非易失性高速缓存850相连。非易失性磁盘高速缓存850可以与图3中的非易失性高速缓存350相似。而高速缓存接口逻辑电路815则可以与图3所示的磁盘高速缓存接口逻辑电路315相似。
磁盘驱动器830可以用于如图1和7所示的计算机系统中,只不过非易失性高速缓存850是计算机系统中的仅有的非易失性磁盘高速缓存器。图8所示的实施例与图1和图7操作上的相似点在于都为磁盘驱动器的数据缓冲到非易失性存储器中。然而,在该实施例中,磁盘高速缓存可以是磁盘驱动器的一部分。在另一个实施例中,磁盘高速缓存管理功能可以由程序819来实现。在该实施例中,磁盘高速缓存可以由磁盘控制器810来管理,并且对于计算机系统的其他部分来说是透明的。
图9图示了在依照本发明实施例的非易失性存储器中保存数据的方法。接收一个在非易失性存储器中保存数据的指令(901)。例如,在word处理程序中编辑文档的用户,可以向程序发送一个“保存”的指令。在另一个例子中,程序可以自我决定,比如根据时间作出决定,将文档的备份进行保存。在另一个例子中,部分操作系统可以产生一个将数据存入磁盘驱动器或非易失性存储器的指令,比如为了清空RAM。对是否将数据存入非易失性高速缓存(902)作出决定。可以采用所熟知的缓冲算法来作出上述决定。如果数据在随后的时间里不被使用的话,可以不对数据进行缓存。此外,如果非易失性高速缓存扩充卡与扩展总线不相连的话,可以作出不把数据保存到非易失性高速缓存的决定。当作出将数据保存到非易失性高速缓存的决定,就把数据写入到非易失性高速缓存903。在其中一个实施例中,把数据写入非易失性高速缓存包括将非易失性高速缓存(904)上、非易失性存储器中的高速缓存目录表进行更新。当作出不把数据存入非易失性高速缓存的决定,就把数据写入到磁盘驱动器(905)。
本发明的实施例涉及将数据缓存到存储器的非易失性磁盘高速缓存。本文中对多个实施例进行了详细的叙述。然而,本申请中的技术以及所附的权力要求覆盖了本发明的各种修改版,而不会背离本发明的范围和精神,这一点将得到认可。例如,尽管论述了用作高速缓存可的多钟非易失性存储器,但是可以使用任何一种非易失性存储器。而另一个例子中,尽管本发明公开了用于非易失性磁盘高速缓存和磁盘高速缓存入口的数据结构,但是高速缓存和高速缓存入口可以采用任何数据结构配置来实现。而且,磁盘高速缓存可以用芯片组的一部分,一个扩展卡,磁盘驱动器的一部分来实现,或者可在另一部分操作系统,比如在磁盘驱动器连接电缆中实现。此外,尽管上文所述的实施例叙述了采用非易失性高速缓存来为磁盘驱动器缓存数据,非易失性高速缓存也可以用来为其它大容量存储器缓存数据。因而,尽管如图3,4和5所示的实施例为便于论述高速缓存,参考了磁盘驱动器高速缓存(即磁盘高速缓存),所公开的仪器和方法也可以用来为其它类型的大容量存储器缓存数据。
Claims (9)
1.一台计算机,包括:
一块主板;
与主板相连的一个芯片组;
与芯片组相连的磁盘存储器;和
一个堆积在芯片组上、对保存在磁盘存储器上的数据进行缓存的非易失性铁电存储器。
2.权利要求1的计算机,进一步包括将数据保存到磁盘存储器以及从磁盘存储器中读取数据的设备驱动器指令,所述设备驱动器指令包括对非易失性铁电存储器中的数据的缓存进行管理的高速缓存管理指令。
3.权利要求2的计算机,其中设备驱动器指令包括通过对保存在非易失性存储器中的高速缓存目录表进行检测来判断数据当前是否在非易失性铁电存储器中的指令。
4.权利要求1的计算机,其中非易失性铁电存储器是面向块的。
5.权利要求4的计算机,其中:
芯片组包括磁盘高速缓存接口逻辑电路来对非易失性存储器的存取进行控制;以及
该磁盘高速缓存接口逻辑电路用来对非易失性铁电存储器中读取的数据块有关的错误纠正代码进行检测。
6.权利要求1的计算机,其中芯片组进一步包括高速缓存管理逻辑电路,该逻辑电路用来分析处理器向芯片组发送的从磁盘驱动器获取数据的请求,以及如果数据已经缓存在非易失性铁电存储器的话,从非易失性存储器向处理器提供所请求的数据。
7.权利要求1的计算机,其中芯片组进一步包括对每个非易失性铁电存储器中读取的数据块的错误纠正代码进行检测的逻辑电路。
8.权利要求1的计算机,其中非易失性铁电存储器用来保存高速缓存目录表,以显示数据块当前是否在非易失性铁电存储器中。
9.权利要求1的计算机,其中芯片组包括一个输入/输出控制集线器芯片和一个内存控制集线器芯片,并且其中非易失性铁电存储器是堆积在输入/输出控制集线器芯片的顶部。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60201000A | 2000-06-23 | 2000-06-23 | |
US09/602,010 | 2000-06-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1527973A CN1527973A (zh) | 2004-09-08 |
CN1295623C true CN1295623C (zh) | 2007-01-17 |
Family
ID=24409613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018143652A Expired - Fee Related CN1295623C (zh) | 2000-06-23 | 2001-06-01 | 非易失性高速缓存 |
Country Status (6)
Country | Link |
---|---|
JP (1) | JP3951918B2 (zh) |
CN (1) | CN1295623C (zh) |
AU (1) | AU2001275147A1 (zh) |
DE (1) | DE10196380T1 (zh) |
GB (1) | GB2379538B (zh) |
WO (1) | WO2002001365A2 (zh) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920533B2 (en) | 2001-06-27 | 2005-07-19 | Intel Corporation | System boot time reduction method |
US7275135B2 (en) | 2001-08-31 | 2007-09-25 | Intel Corporation | Hardware updated metadata for non-volatile mass storage cache |
US7103724B2 (en) | 2002-04-01 | 2006-09-05 | Intel Corporation | Method and apparatus to generate cache data |
US7036040B2 (en) | 2002-11-26 | 2006-04-25 | Microsoft Corporation | Reliability of diskless network-bootable computers using non-volatile memory cache |
US7136973B2 (en) * | 2004-02-04 | 2006-11-14 | Sandisk Corporation | Dual media storage device |
US7328304B2 (en) * | 2004-02-27 | 2008-02-05 | Intel Corporation | Interface for a block addressable mass storage system |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
JP4664011B2 (ja) * | 2004-06-21 | 2011-04-06 | 株式会社リコー | 情報処理装置及び情報処理方法 |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
JP4956922B2 (ja) | 2004-10-27 | 2012-06-20 | ソニー株式会社 | 記憶装置 |
JP5338859B2 (ja) * | 2004-10-27 | 2013-11-13 | ソニー株式会社 | 記憶装置および情報処理システム |
JP4989875B2 (ja) * | 2005-11-01 | 2012-08-01 | 技嘉科技股▲ふん▼有限公司 | 模擬ハードディスクの方法 |
US7634585B2 (en) * | 2005-11-04 | 2009-12-15 | Sandisk Corporation | In-line cache using nonvolatile memory between host and disk device |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US7721049B2 (en) * | 2006-03-27 | 2010-05-18 | Kabuhsiki Kaisha Toshiba | Disk drive write method |
US7558913B2 (en) | 2006-06-20 | 2009-07-07 | Microsoft Corporation | Atomic commit of cache transfer with staging area |
KR101128234B1 (ko) * | 2006-08-23 | 2012-03-23 | 엘지전자 주식회사 | 메모리 접근 제어 장치 및 방법 |
KR20080044505A (ko) * | 2006-11-16 | 2008-05-21 | 삼성전자주식회사 | 데이터를 관리하는 장치 및 방법 |
US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
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 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
KR20090102789A (ko) | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
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 |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
WO2009107212A1 (ja) | 2008-02-28 | 2009-09-03 | 富士通株式会社 | ストレージ装置、ストレージ制御装置およびストレージ制御方法 |
WO2009107213A1 (ja) | 2008-02-28 | 2009-09-03 | 富士通株式会社 | ストレージ装置、ストレージ制御装置、データ転送集積回路、および、ストレージ制御方法 |
WO2010016115A1 (ja) | 2008-08-06 | 2010-02-11 | 富士通株式会社 | ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法 |
JP5581577B2 (ja) * | 2008-08-29 | 2014-09-03 | 富士通株式会社 | データ処理装置 |
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 |
KR101023883B1 (ko) | 2009-02-13 | 2011-03-22 | (주)인디링스 | 고속 저장 장치를 캐쉬로 사용하는 스토리지 시스템 |
US8195878B2 (en) | 2009-02-19 | 2012-06-05 | Pmc-Sierra, Inc. | Hard disk drive with attached solid state drive cache |
JP5999645B2 (ja) | 2009-09-08 | 2016-10-05 | ロンギチュード エンタープライズ フラッシュ エスエイアールエル | ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法 |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
CN102136274B (zh) * | 2009-12-30 | 2013-03-27 | 爱国者电子科技有限公司 | 一种具有两种存储介质的移动硬盘 |
EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
WO2012082792A2 (en) | 2010-12-13 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for auto-commit memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US9213594B2 (en) | 2011-01-19 | 2015-12-15 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing out-of-service conditions |
JP5605238B2 (ja) | 2011-01-25 | 2014-10-15 | ソニー株式会社 | メモリシステムおよびその動作方法 |
US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
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 |
CN102521147B (zh) * | 2011-11-17 | 2015-03-25 | 曙光信息产业(北京)有限公司 | 一种使用高速非易失介质做缓存的管理方法 |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US8782344B2 (en) | 2012-01-12 | 2014-07-15 | Fusion-Io, Inc. | Systems and methods for managing cache admission |
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 |
US10073656B2 (en) | 2012-01-27 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for storage virtualization |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
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 |
US9208101B2 (en) * | 2013-06-26 | 2015-12-08 | Western Digital Technologies, Inc. | Virtual NAND capacity extension in a hybrid drive |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
CN103488582B (zh) * | 2013-09-05 | 2017-07-28 | 华为技术有限公司 | 写高速缓冲存储器的方法及装置 |
US20150089118A1 (en) * | 2013-09-20 | 2015-03-26 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for partition and cache restore |
US10019352B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
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 |
JP5950470B2 (ja) * | 2014-03-24 | 2016-07-13 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | バッファマッピングを制御するための方法およびバッファシステム |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
CN106528001B (zh) * | 2016-12-05 | 2019-08-23 | 北京航空航天大学 | 一种基于非易失性存储器和软件raid的缓存系统 |
CN111857587B (zh) * | 2020-07-15 | 2022-06-17 | 济南浪潮数据技术有限公司 | 一种在存储系统缓存装置中基于磁道地址的命中检测方法 |
CN116583827A (zh) * | 2021-12-08 | 2023-08-11 | 华为技术有限公司 | 数据存取方法、装置、磁盘控制器、磁盘和数据存储系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6362056A (ja) * | 1986-09-02 | 1988-03-18 | Nec Corp | デイスクキヤツシユ装置 |
JPH0273439A (ja) * | 1988-09-09 | 1990-03-13 | Nec Corp | 補助記憶装置用キャッシュ制御装置 |
US5594885A (en) * | 1991-03-05 | 1997-01-14 | Zitel Corporation | Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry |
CA2105085A1 (en) * | 1991-03-05 | 1992-09-06 | Marvin Lautzenheiser | Cache memory system and method of operating the cache memory system |
GB2256735B (en) * | 1991-06-12 | 1995-06-21 | Intel Corp | Non-volatile disk cache |
JPH05225055A (ja) * | 1992-02-17 | 1993-09-03 | Sharp Corp | 情報処理装置 |
JPH05250274A (ja) * | 1992-03-04 | 1993-09-28 | Mitsubishi Electric Corp | ディスクキャッシュ装置 |
US5584007A (en) * | 1994-02-09 | 1996-12-10 | Ballard Synergy Corporation | Apparatus and method for discriminating among data to be stored in cache |
EP0667579A1 (en) * | 1994-02-09 | 1995-08-16 | Ballard Synergy Corporation | Cache for optical storage device |
JP3576561B2 (ja) * | 1994-11-22 | 2004-10-13 | モノリシック・システム・テクノロジー・インコーポレイテッド | 第2レベルのキャシュメモリとしてdramアレイを用いる方法及び構成 |
US5963721A (en) * | 1995-12-29 | 1999-10-05 | Texas Instruments Incorporated | Microprocessor system with capability for asynchronous bus transactions |
JPH1040170A (ja) * | 1996-07-26 | 1998-02-13 | Toshiba Corp | ディスクキャッシュシステム |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JP2000122968A (ja) * | 1998-10-15 | 2000-04-28 | Nec Corp | 入出力キャッシュメモリ及びその制御方法 |
US6195749B1 (en) * | 2000-02-10 | 2001-02-27 | Advanced Micro Devices, Inc. | Computer system including a memory access controller for using non-system memory storage resources during system boot time |
-
2001
- 2001-06-01 JP JP2002506434A patent/JP3951918B2/ja not_active Expired - Fee Related
- 2001-06-01 WO PCT/US2001/017851 patent/WO2002001365A2/en active Application Filing
- 2001-06-01 DE DE10196380T patent/DE10196380T1/de not_active Ceased
- 2001-06-01 GB GB0228871A patent/GB2379538B/en not_active Expired - Fee Related
- 2001-06-01 CN CNB018143652A patent/CN1295623C/zh not_active Expired - Fee Related
- 2001-06-01 AU AU2001275147A patent/AU2001275147A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2004506256A (ja) | 2004-02-26 |
DE10196380T1 (de) | 2003-10-16 |
AU2001275147A1 (en) | 2002-01-08 |
GB2379538B (en) | 2005-01-12 |
GB0228871D0 (en) | 2003-01-15 |
CN1527973A (zh) | 2004-09-08 |
GB2379538A (en) | 2003-03-12 |
WO2002001365A3 (en) | 2002-04-11 |
WO2002001365A2 (en) | 2002-01-03 |
JP3951918B2 (ja) | 2007-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1295623C (zh) | 非易失性高速缓存 | |
US8166258B2 (en) | Skip operations for solid state disks | |
US8533391B2 (en) | Storage device and user device including the same | |
US8898371B2 (en) | Accessing logical-to-physical address translation data for solid state disks | |
US6725342B1 (en) | Non-volatile mass storage cache coherency apparatus | |
US8312326B2 (en) | Delta checkpoints for a non-volatile memory indirection table | |
US8725946B2 (en) | Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller | |
US7051152B1 (en) | Method and system of improving disk access time by compression | |
US7254668B1 (en) | Method and apparatus for grouping pages within a block | |
US6449689B1 (en) | System and method for efficiently storing compressed data on a hard disk drive | |
US20070130442A1 (en) | Apparatus and Methods Using Invalidity Indicators for Buffered Memory | |
US20080028132A1 (en) | Non-volatile storage device, data storage system, and data storage method | |
CN1828555A (zh) | 支持多存储器映射方案的快闪存储器控制器件及其方法 | |
CN1465009A (zh) | 与大容量存储装置集成的非易失性高速缓冲存储器 | |
CN101645043A (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN1109300C (zh) | 计算机硬盘存储内容透明保护的方法及其装置 | |
US11061598B2 (en) | Optimized handling of multiple copies in storage management | |
JP3335919B2 (ja) | ディスクキャッシュ制御装置 | |
CN1311367C (zh) | 用于提高存取数据请求的处理速度的方法、装置和系统 | |
GB2403834A (en) | Non-volatile ferro-electric RAM cache | |
EP0661638A1 (en) | Method and apparatus for transferring data in a computer |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070117 Termination date: 20130601 |