CN1801121A - 非易失性存储器高速缓存性能改进 - Google Patents

非易失性存储器高速缓存性能改进 Download PDF

Info

Publication number
CN1801121A
CN1801121A CNA2005100837924A CN200510083792A CN1801121A CN 1801121 A CN1801121 A CN 1801121A CN A2005100837924 A CNA2005100837924 A CN A2005100837924A CN 200510083792 A CN200510083792 A CN 200510083792A CN 1801121 A CN1801121 A CN 1801121A
Authority
CN
China
Prior art keywords
data
long
storage medium
computer system
term storage
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
Application number
CNA2005100837924A
Other languages
English (en)
Other versions
CN100470508C (zh
Inventor
C·俄干
C·D·尼科尔森
D·特奥多苏
D·L·德威特
E·N·希尔
H·R·科达瓦拉
J·M·帕切姆
M·J·兹比科斯吉
M·J·兹威林
M·R·夫廷
N·S·欧布拉
P·L·斯特蒙
R·Y·纳佳
S·费尔玛
T·鲍威尔
W·J·韦斯特林宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1801121A publication Critical patent/CN1801121A/zh
Application granted granted Critical
Publication of CN100470508C publication Critical patent/CN100470508C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/74Feeding, transfer, or discharging devices of particular kinds or types
    • B65G47/88Separating or stopping elements, e.g. fingers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

为了提供一种更有效的永久存储设备,一个或多个长期存储媒体连同非易失性存储器被包括。在一个实施例中,一部分非易失性存储器被用作写缓冲器和读高速缓存以用于对长期存储媒体的写和读。接口被提供以用于控制作为写缓冲器和读高速缓存的非易失性存储器的使用。另外,一部分非易失性存储器被用来提供用于该长期存储媒体的指定扇区的直接映射。与永久存储设备相关的描述性数据被存储在该非易失性存储器的另一部分中。

Description

非易失性存储器高速缓存性能改进
发明领域
本发明一般地涉及计算机系统,更特别地,涉及通过使用结合长期存储单元的非易失性存储器来改进计算机系统的性能。
发明背景
某些存储设备被用在计算机系统中,目的是为计算机系统的功能提供永久性存储器。例如,一种磁性硬盘驱动器组件是本领域公知的。然而,这种永久性存储器有一些缺点。准备磁性硬盘驱动器用于读取或写入数据是耗费时间的。在大多数情况下,为了这样做,必需在物理上启动磁盘的旋转,并将读/写头定位到合适的位置。
从存储设备中读或写的准备既耗时又耗费功率。因此,可能会由这样的磁性硬盘驱动存储器和它的部件产生噪声。因此,需要一种用于计算基系统的改进存储器,弥补一些这些缺陷。
永久性存储器的新成分和配置可以提供一些存储性能的改进。然而,简单地使用访问永久性存储器的传统技术将不会提供这些新成分和配置的全部好处。通常,操作系统被用来控制计算机系统的操作。该操作系统也在该计算机系统的其它应用程序与硬盘之间起仲裁作用。这样,需要例如应用程序接口(APIs)这样的方法以提供增强的性能。同样,需要由计算机系统使用的、创建用于存储的新配置和新控制技术的系统。
发明概述
包括一个或多个长期存储媒体以及非易失性存储器的永久性存储设备,与提供或响应于应用程序接口、命令和中断的操作系统一起使用,允许操作系统或应用程序有效地使用非易失性存储器以在时间上和效率上提高性能。虽然设想该非易失性存储器在物理上与长期存储媒体包括在一起,但也可能将非易失性存储器与长期存储媒体相分离而在功能上结合以提供永久性存储。
在一个实施例中,公开了允许请求长期存储媒体旋转加速或旋转减速的应用程序接口(APIs)。其它APIs允许请求非易失性存储器被刷新或批量载入来自长期存储媒体的指定地址的数据。其它APIs还允许数据被直接写入长期存储媒体中、允许数据被作为原子写而写入或允许写入至非易失性存储器高速缓存中的数据被忽略而不是被保存写入长期存储媒体中。另外,提供了发现并给出用于该存储的现有的可得到的非易失性存储器的详细情况的请求。
在一个实施例中,非易失性存储器能够以良种方式中的一种被使用。在第一种方式中,用非易失性存储器来提供高速缓存。这一高速缓存被用来作为从长期存储媒体中读取数据的读高速缓存(读cache),也作为向长期存储媒体中写数据的写缓冲器。这样,对长期存储媒体的读和写可以在一起集群发生,而不是偶然发生,从而要求更少的读、写和长期存储媒体的准备。
一部分非易失性存储器能由操作系统或另一应用直接拥有。长期存储媒体中的某一逻辑扇区地址(LSAs)被映射到非易失性存储器,且读取或写入这些LSA将在非易失性存储器中执行。该映射能够与上述非易失性存储器部分中的高速缓存一起发生。
本发明的其它特征在下面描述。
附图简要说明
在前的概述,以及下面对优选实施例的详细描述,当结合附图阅读时将更好理解。为了说明本发明的目的,本发明的结构被显示在图例中;然而,本发明不局限于公开的具体方法和手段。在图中:
图1是一般地说明本发明驻留的示例计算机系统的框图;
图2是一般地说明本发明可以被实现的位置的图1的示例计算机系统的框图;
图3是根据本发明一个方面的永久性存储设备的框图;
图4是根据本发明一个方面的永久性存储设备的框图;
图5是根据本发明一个实施例说明在操作系统、非易失性存储器和长期存储媒体之间的数据流的框图;
图6是根据本发明一个实施例的非易失性存储器的高速缓存部分的状态的状态图;
图7是根据本发明一个实施例的启动状态的操作的流程图;
图8是根据本发明一个实施例的在运行状态中的操作的流程图;
图9是根据本发明一个实施例的在关闭状态中的操作的流程图;和
图10是根据本发明一个实施例的在非易失性存储器的映射部分的刷新期间的操作的流程图。
说明性实施例的详细描述
在下面的描述中,术语“非易失性存储器”将被用来表示固体状态非易失性存储器。非易失性存储器意指在断电时保持它的数据并能被擦除和以新数据再编程的任何类型的存储器。非易失性存储器可以包括后备电池存储器。非易失性存储器可以被定位在计算机中作为例如个人计算机插槽卡的计算机部件或作为在系统存储器中的部件。可选择地,它可以是永久性存储设备比如硬盘的一个部件,或在笔记本设备等的坞站中的一个部件。在移动系统中,磁盘驱动器具有的磁道缓冲存储器能够被使用(即,本发明也能够使用磁道缓冲存储器实现)。
未来的用于移动系统的磁盘可以从电池电源中拔出以保持它的存储器运行,不是真正拔出电源以保持磁盘旋转。非易失性存储器可以存储文件数据、文件元数据以及已知的磁盘扇区比如引导扇区和分区表。在断电或进入休眠模式期间,计算机系统根据先前的使用历史,确定将被存储到非易失性存储器中的静态和动态配置数据。在系统操作期间数据也被存储在非易失性存储器中以减少磁盘驱动器旋转的次数。对于移动PCs及其类似物来说,减少磁盘驱动器旋转的次数改善了用户的体验因为功率被减少,从而允许更小和更轻的移动PCs及其类似物用给定的电池容量持续更长时间。它也减少了运行噪声、声音大且干扰用户的高速风扇的需要。
转向附图,其中同样的标号表示同一元件,本发明被说明为在适当的计算环境中实现。虽然没有要求,但本发明将在由个人计算机执行的计算机可执行指令比如程序模块的通常上下文中被说明。通常,程序模块包括执行特殊任务或实现特殊抽象数据类型的子程序、程序、对象、组件、数据结构等。而且,本领域技术人员将理解本发明可以用其它计算机配置实现,包括手持式设备、多处理器系统、基于微处理器或可编程的消费者电子产品、网络PCs、小型计算机、大型计算机及类似物。本发明也可以在任务由通过通信网络连接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
图1说明了本发明可以被实现适当的计算系统环境100的例子。该计算系统环境100仅是适当的计算环境的一个例子,并不是有意建议本发明的使用或功能的范围的任何限制。计算环境100不应被解释为具有任何与在示例操作环境100中的任何一个部件或部件的组合相关的依赖或必要条件。
本发明可在许多其它通用或专用的计算系统环境或配置上运行。适合于本发明使用的已知的计算系统、环境和/或配置的例子包括但不局限于个人计算机、服务器计算机、手持式或膝上型电脑设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费者电子产品、网络PCs、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境及类似物。
本发明可以在由个人计算机执行的计算机可执行指令比如程序模块的通常上下文中被说明。通常,程序模块包括执行特殊任务或实现特殊抽象数据类型的子程序、程序、对象、组件、数据结构等。本发明也可以在任务由通过通信网络连接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储媒体中。
参见图1,用于实现本发明的示例系统包括以计算机110形式存在的通用目的计算设备。计算机110的组件可以包括但不局限于处理单元120、系统存储器130以及连接包括系统存储器的各种系统部件到处理单元120的系统总线121。该系统总线121可以是以下几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围设备总线和使用多种总线体系结构中的任何一种的局部总线。为了举例但不局限于此,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及也被叫做Mezzanine总线的外围部件互连(PCI)总线。
典型地,计算机110包括多种计算机可读媒体。计算机可读媒体能够是能由计算机110访问的任何可得到的媒体,包括易失性非易失性媒体、可移动和不可移动媒体。为了举例但不局限于此,计算机可读媒体可以包括计算机存储媒体和通信媒体。计算机可读媒体包括以用于存储信息比如计算机可读指令、数据结构、程序模块或其它数据的任何方法或技术实现的易失性和非易失性、可移动和不可移动媒体。计算机存储媒体包括但不局限于RAM、ROM、EEPROM、快闪存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储或其它磁存储设备、或任何其它能被用来存储所希望的信息且能被计算机110访问的媒体。典型地,通信媒体具体化为在一个调制数据信号比如载波或其它传输机制中的计算机可读指令、数据结构、程序模块或其它数据,且包括任何信息传输媒体。术语“调制数据信号”意指具有一个或多个它的字符集或以在该信号中编码信息的方式改变的信号。为了举例但不局限于此,通信媒体包括有线媒体比如有线网络或直接有线连接,以及无线媒体比如声音、RF(射频)、红外和其它无线媒体。任何上述内容的组合应该也被包括在计算机可读媒体的范围内。
系统存储器130包括以易失性和/或非易失性存储器比如只读存储器(ROM)131和随机访问存储器(RAM)132的形式存在的计算机存储媒体。包括比如在启动期间帮助在计算机110的元件之间传输信息的基本例程的基本输入/输出系统133(BIOS),被典型地存储在ROM131中。典型地,RAM132包括可由处理单元120直接访问和/或当前正在被处理单元120操作的数据和/或程序模块。为了举例但不局限于此,图1说明了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括可移动/不可移动、易失性/非易失性计算机存储媒体。仅为了举例,图1说明了从不可移动非易失性磁性媒体中读出或向不可移动非易失性磁性媒体写入的硬盘驱动器141、从可移动非易失性磁盘152中读出或向可移动非易失性磁盘152写入的磁盘驱动器151以及从可移动非易失性光盘156比如CD ROM或其它光学媒体中读出或向可移动非易失性光盘156写入的光盘驱动器155。其它能够被用于示例操作环境中的可移动/不可移动、易失性/非易失性计算机存储媒体包括但不局限于盒式磁带、快闪存储器卡、数字通用盘、数字视频带、固态RAM、固态ROM等等。典型地,该硬盘驱动器141通过不可移动存储器接口比如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通过可移动存储器接口比如接口150被典型地连接到系统总线121。
以上讨论并显示在图1中的驱动器及它们相关的计算机存储媒体,提供计算机可读指令、数据结构、程序模块和其它用于计算机110的数据的存储。在图1中,例如,硬盘驱动器141被说明为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些部件能够相同或不同于操作系统134、应用程序135、其它程序模块136和程序数据137。操作系统144、应用程序145、其它程序模块146和程序数据147到目前为止被给定不同的数字,至少说明它们是不同的拷贝。用户可以通过输入设备比如键盘162和一般指鼠标的指点设备161、轨迹球或触摸板输入命令和信息至计算机110。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪等等。这些和其它输入设备常常通过与系统总线连接的用户输入接口160连接到处理单元120,但也可以通过其它接口和总线结构连接,比如并行端口、游戏端口或通用串行总线(USB)。显示器191或其它类型的显示设备也可以通过一个接口比如视频接口190连接到系统总线121。除了显示器,计算机也可以包括其它外围输出设备比如可以通过输出外围设备接口195连接的扬声器197和打印机196。
计算机110可以在使用逻辑连接到一个或多个远程计算机比如远程计算机180的网络环境中操作。远程计算机180可以是另一个个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,且典型地包括多个或全部上述与个人计算机110相关的元件,虽然只有存储器存储设备181在图1中被说明。在图1中描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的网络环境在办公室、企业级计算机网络、企业内部互联网和因特网中是常见的。
当在LAN网络环境中使用时,个人计算机110通过网络接口或适配器170连接到LAN171。当在WAN网络环境中使用时,个人计算机110典型地包括调制解调器172或用于与WAN173建立通信的其它装置,比如因特网。可以是内置的或外置的调制解调器172,可以通过用户输入接口160或其它合适的机制连接到系统总线121。在连网环境中,被描述与个人计算机110相关的程序模块或它的一部分,可以被存储在远程存储器存储设备中。为了举例但不局限于此,图1说明了驻留在存储器设备181中的远程应用程序185。可以理解,显示的网络连接是示例性的,在计算机之间建立通信连接的其它装置也可以使用。
在以下描述中,除非以别的方式表示,本发明将描述由一个或多个计算机执行的相关的动作和操作的符号表示。同样,可以理解,有时被称为由计算机执行的该动作和操作,包括由计算机的处理单元对以结构化形式代表数据的电气信号的处理。该处理转换数据或将数据保持在计算机的存储器系统的单元中,该计算机以本领域技术人员易于理解的方式重新配置或另外改变计算机的操作。保持数据的数据结构是具有由数据格式定义的特殊属性的存储器的物理单元。然而,当本发明在前述上下文中被描述时,并不意味着限定本领域技术人员理解此后描述的各种动作和操作也可以用硬件实现。
在计算机110中的非易失性存储器的内含物
现在转到图2,该非易失性存储器200可以定位在计算机110中作为计算机110的分离部件202比如插入pc槽中的卡或作为在系统存储器中的部件204。可选择地,它可以是在笔记本设备的坞站及类似物中的永久存储设备300比如硬盘驱动器141中的部件206。非易失性存储器200的另一可选位置是以能够被插入到计算机系统中的可移动固态非易失性存储器设备的形式存在,比如依照由CompactFlash协会维护的CompactFlash规范的可移动固态非易失性存储器设备,或类似的东西。作为分离部件202的该非易失性存储器200提供了改进不具有非易失性存储器200的传统系统的性能的能力,不必安装具有非易失性存储器的硬盘驱动器。
现在转到图3,永久存储设备300具有包括了非易失性存储器存储媒体(长期存储媒体)比如一个或多个磁盘304的磁盘组件302,读/写头306用于读和写磁盘304,主轴/电枢组件308用于移动读/写头306以定位在磁盘304上。虽然磁盘组件302被显示在图3中并在以下描述中使用,但当另一个长期存储媒体被使用时本发明技术的优点可以被发现,本发明并没有限制于磁盘组件被用来作为长期存储媒体的例子。控制器310命令磁盘组件从存储媒体中读取数据或将数据写入到存储媒体中。高速缓存312被用来缓冲从存储媒体中读取或写入到存储媒体中的数据。本发明的非易失性存储器200被定位在控制器310内或作为永久存储设备300的分离部件。在一个实施例中,非易失性存储器200是作为由一个或多个邻近扇区构成的磁盘304的至少一个大区域被暴露给计算机110。没有对IDE(集成器件电子技术,Integrated Drive Electronics)或SCSI(小型计算机系统接口,Small Computer System Interface)的规范进行改变的需要。非易失性存储器200被暴露给操作系统,这样操作系统和其它部件能够查询非易失性存储器200的大小,控制非易失性存储器200的状态,使用处理程序将数据写入非易失性存储器200,以及如上所述,使用非易失性存储器200作为写缓冲。在另一预备实施例中,计算机110能够通过观察用于磁盘304的大区域的500微秒或更少的访问时间而不是大约10毫秒的典型时间来检测非易失性存储器的存在。
操作系统和非易失性存储器的主机应用程序使用
再次参考图2,为了利用非易失性存储器200以改进性能,根据本发明的一个实施例,操作系统(OS)134被提供以各种接口以便提供非易失性存储器200的改进使用。
首先,一个检测接口被提供。OS134能够检测是否有非易失性存储器200,以及非易失性存储器的大小。这一功能被作为应用程序135和其它程序模块136能够使用的接口公开,以便确定在计算机110中是否存在非易失性存储器200。另外,OS部件,比如文件系统或其它对象存储,能够使用检测接口以确定计算机110上非易失性存储器200的存储和大小。其它关于非易失性存储器200的信息比如使用信息或类型信息也可以被提供。由于某一非易失性存储器具有有限的使用期限,因此这此信息可能是有用的,这可能影响非易失性存储器200在某种情况下的使用。
为了读出或写入在磁盘组件302中的磁盘304,磁盘必须被旋转,并且读/写头306必须由主轴/电枢组件移动到合适的位置。这一准备动作需要时间并在数据被从磁盘组件302中读出或写入前引起延迟。在写磁盘304中的这一准备动作将被称为旋转磁盘,即使它还包括移动读/写头306。当然,当磁盘被描绘为旋转媒体时,它被认为在永久存储设备300中,非易失性存储器200可以与另一种形式的在数据被写入或读出存储器前要求准备动作的长期存储媒体(除了磁盘组件302)包括在一起。对在永久存储设备300上的长期存储媒体的使用的任何准备动作将被称为“旋转(spin up)”或“正在旋转(spinning up)”存储器,即使它被认为可能有另外的准备动作,或者甚至旋转媒体的实际旋转可以不被包括。因为应用程序或操作系统134本身可以预先识别对永久存储设备300的写入,这种要求对在设备300上的长期存储媒体进行旋转的写入将会发生的一个显著概率是存在的,通过使用一个允许应用程序或操作系统134请求长期存储媒体旋转的接口,由等待长期存储媒体旋转需要所引起的延迟能够被避免。
同样,一个停转接口也被提供。为了节约功耗,如果没有对永久存储设备300的磁盘组件302的写入正在进行,则磁盘304的旋转可以被暂停。此外,当永久存储设备300被显示为包括其实际停转将减少功耗的旋转媒体时,在永久存储设备300上的除了非易失性存储器200之外的其它形式的长期存储媒体被考虑,且这样的长期存储媒体可以具有相似于磁盘组件302的停转的动作,在其中通过停止允许即时或相对快速对该存储器的读或写的动作可以得到一些好处。这样的动作的停止实际上可以不包括正在旋转的媒体的物理停转,然而,这样的停止通过在此被称为“停转(spin down)”或“正在停转(spinning down)”来考虑。
停转和旋转动作可以以小于它们最大速度的速度来执行。以更低的速度执行该操作能够减少与这些动作相关的噪声,且减少功耗中任何相关的峰信号。因为旋转和停转(或对长期存储媒体的其它准备动作)能够被预先执行且绝对需要该动作,在不影响性能的情况下这些优点可以被得到。当磁盘被慢慢旋转而不是快速旋转时,该磁盘将是可用的当它全速旋转时,但对用户的效果和系统的休息被减少。
一些或所有非易失性存储器200可以被用作永久存储设备300的磁盘组件302的写高速缓存。在这种情况下,一个接口被提供给该情形,其中应用程序或操作系统134可以为了性能的原因确定该接口,非易失性存储器200应当刷新到永久存储设备300中的其它存储器。该接口刷新该非易失性存储器200到长期存储媒体。
非易失性存储器200的不同部分可以被标记为不同的优先权。例如,非易失性存储器200的区域可以以应当被保持在非易失性存储器200中的高优先权被“标识(pinned)”或标记,而不是被刷新到优选为没有用该方法标识或标记的非易失性存储器200的其它区域的长期存储媒体。本发明的一个实施例允许许多优先权中的一个被分配给非易失性存储器200中的区域。例如,可以有三个优先权,最高优先权(或“标识的”存储器或“优先权1”存储器)、第二优先权(“优先权2”)和最低优先权(或“优先权3”)。这里需要非易失性存储器200中的空间,在更高的优先权存储器区域被刷新前最低优先权存储器被刷新到长期存储媒体。这样,按照本发明的一个实施例,为刷新该非易失性存储器200高速缓存几个接口选择可以被提供——例如,刷新整个高速缓存的接口,只刷新高速缓存更低优先权区域的接口或刷新高速缓存的具有等于或小于调用该接口时指定的优先权的优先权的所有区域。
作为另一个性能改进,因为被写入非易失性存储器200中的数据可以在稍后被删除,所以一个允许OS 134或应用程序将某一被写入非易失性存储器200的数据不再被需要的信号发送给非易失性存储器200的接口被提供,且能够从非易失性存储器200的写高速缓存中丢弃。这样,当存储器被刷新时,该被丢弃的区域将不被写到长期存储媒体中,且当在该被丢弃的区域上执行读取时,一个错误或随机数据可以被返回。
例如,该接口能够被使用以管理事务。事务日志常常包括某一不要求被长期存储的中间数据。例如,在一种情况下,当事务发生时,关于该事务的元数据被首先提交给该日志。如果这一日志被存储在非易失性存储器200中,则该写将不要求磁盘的旋转。当事务被完成且改变被提交时,关于该事务的被存储的元数据被改变或删除以反映该完成的事务。然而,如果该事务在它被完成和提交前被中断,则非易失性存储器200中的数据将保持并因此能被用于确定什么事务正在发生且解决关于该被中断的事务的问题。
在另一实施例中,这一接口能够被用来避免刷新与临时文件相关的任何数据或元数据到磁盘。最初,这些文件和它们的元数据被创建在非易失性存储器200中。当该文件被删除时,OS134或一个应用程序可以将写入到非易失性存储器200中的文件数据和元数据不再被需要的信号发送给非易失性存储器200,且能够从非易失性存储器200的写高速缓存中丢弃。
一个非易失性存储器的欺骗接口也被提供。在某种情况下,对于读或写操作非易失性存储器的使用可能没有效率。再次参考图3,例如,如果一个应用程序将与非易失性存储器200的大小非常相关的数据写入永久存储设备300,则将一些该数据写入非易失性存储器200一般将不会有用,因为该非易失性存储器200将充满而数据则将从非易失性存储器200刷新到长期存储媒体。这样,非易失性存储器的欺骗接口允许该操作系统或一个应用程序使用该接口以指出对永久存储设备300读取或写入的数据应当直接从长期存储媒体上的物理存储器地址读取或写入,而不是从非易失性存储器200。
在一个实施例中,当在永久存储设备300中的磁盘控制器正在准备或实际上正在旋转磁盘组件302时,一个中断从永久存储设备300中发出到主计算机110。该中断可以被传送到操作系统134或它的部件或传送到一个应用程序。根据接收的该中断,一个被适当编程以根据情况动作的接受器能够保证数据被从非易失性存储器200移动到长期存储媒体或从长期存储媒体移动到非易失性存储器200,因为该长期存储媒体很快将被旋转且准备那样的移动。这减少了长期存储媒体旋转的数量并因此减少了磁盘驱动器的功耗。另外,根据接收的该中断指示存储器正在旋转或被旋转,该OS能够使用非易失性存储器欺骗接口以将任何非永久写缓冲或高速缓存直接刷新到长期存储媒体中。
此外,OS部件和应用程序可以使用一个允许对永久存储设备300的写被看成原子的原子写接口。所有将被原子写的数据被存储在非易失性存储器200中。当这被完成时,该永久存储设备保证所有将被原子写的数据被写入到长期存储媒体中。如果在所有被原子写的数据被存储在非易失性存储器200之前一个故障发生,则一个错误被返回,且已经被接收的数据就被丢弃。在非易失性存储器200上的存储被完成之后,如果由于系统或电源故障使得原子写失败,则在系统重新启动时该失败被检测,且存储在非易失性存储器中的原子数据集被再次写入到长期存储媒体中。这允许在应用中改进性能且设置大数据的原子写是更可取的,例如在数据库应用中,因为它不要求这些应用去处理在现有技术中称为“撕裂的写”的问题。
在一个实施例中,操作系统134、它的部件或应用程序使用非易失性存储器200以存储指定的定期使用的文件或对象。因此花费更高的对长期存储媒体的写/读被避免。例如,数据库事务日志、文件系统元数据和其它元数据被存储在非易失性存储器200中。在一个实施例中,优先权方案被使用以分配不同的优先权给存储数据的非易失性存储器200的区域,这样被频繁访问的文件被赋予高优先权,这进一步有助于避免花费更高的对长期存储媒体的写入/读出。
非易失性存储器的分区
在一个实施例中,非易失性存储器200包括允许非易失性存储器200的一部分被操作系统专门使用的一个分区。这样的一个实现允许操作系统134将非易失性存储器200分区,且具有一个根据操作系统的输入由磁盘控制器固件直接控制的非易失性存储器200的OS分区。
这样,通过磁盘控制器,OS134要求具有可能接下来将被需要的特定的扇区的非易失性存储器200的移入。例如,这些扇区是在下一次启动时或系统从休眠中恢复时被需要或被认为可能需要的扇区。作为更进一步的例子,这些扇区是OS134预测在不久的将来需要的扇区。
因此,在该实施例中,每次长期存储媒体被旋转,通过发送一个逻辑扇区地址(LSAs)列表到磁盘驱动控制器,该OS能够再次移入在非易失性存储器200中的读高速缓存的OS分区。这个列表能够包括按照上述的优先权方案被使用的优先权信息,以指出磁盘驱动控制器很容易将写缓冲数据写在读高速缓存数据的上面。
在OS134内,一个机制被提供以将特殊的LSAs集合映射到非易失性存储器200。这允许非易失性存储器200的一个扇区直接处在OS134的控制之下。对这些LSAs的读和写则将总是访问非易失性存储器200。在这些LSAs中的数据将不被刷新到存储单元,除非非易失性存储器被操作系统重新配置。在一个实施例中,在非易失性存储器200的这个扇区中,OS134存储被用来诊断系统故障的“黑匣子记录器信息”即操作的最近历史。该OS134存储被要求用于安全启动的启动恢复控制台和文件,这样系统还能够启动并诊断机械磁盘失败。它也可以存储被要求用于下次启动的文件的被用来代替常规的系统文件的表示或除了常规的系统文件的表示之外的可能压缩包。
如上所述的接口和命令在如下的表1中被列出:
  命令 用于命令的数据   驱动行为
  查询非易失性存储器   确定用于使用的非易失性存储器的存在;此外能被用来确定关于非易失性存储器的大小或其它信息
  旋转磁盘   准备用于读/写(R/W)访问的磁盘。根据情况从写缓冲刷新数据到磁盘。
  停转磁盘   停放R/W头并停止磁盘主轴以节约功率和减少磨损。
  刷新非易失性存储器高速缓存   从非易失性存储器高速缓存移动所有的已修改扇区到磁盘。
  刷新非易失性存储器高速缓存-非标识   与刷新非易失性存储器高速缓存相同但被标识的块也被移动。
  刷新非易失性存储器高速缓存-所有   将在被映射的部分中和R/W高速缓存中的所有被修改的数据刷新到磁盘。
  移入非易失性存储器高速缓存 LSAs列表和优先权(例如,1=标识,   旋转磁盘。刷新高速缓存到磁盘。如列表所确定的,从磁盘拷贝数据到非
 2=在优先权3扇区后移动,3=需要时移动)   易失性存储器高速缓存。将列表连同它们的LSAs和优先权存储在非易失性存储器高速缓存中。
  通过非易失性存储器高速缓存写   直接写数据到磁盘而不是缓冲在非易失性存储器中。
  原子写  扇区数   将接下来的N扇区数据作为原子单元写。如果磁盘驱动控制器在写这些N扇区到非易失性存储器(或非易失性存储器或磁盘)时失败则一个错误被返回,该数据被忽略,且非易失性存储器高速缓存或磁盘空间被收回。注意,这可能跨功率周期发生,因此该数据必须与指定原子写是否完成的元数据一起被存储在高速缓存中。
  忽略最近的写  忽略LSAs的列表   如果扇区还在写缓冲器中且没有被移动到磁盘,则该扇区数据不被移动到磁盘而是丢弃。在写缓冲器中的相应的空间能够被控制器用将来的写缓冲重写。
  映射非易失性存储器分区  将被从磁盘映射到非易失性存储器的LSAs的列表   如下描述;当一部分非易失性存储器被映射用于操作系统134或其它应用时;从高速缓存和非易失性存储器的映射部分刷新所有的数据到磁盘。为映射的LSAs从磁盘拷贝数据到非易失性存储器。如果有空间将读高速缓存列表重新移入高速缓存部分。
表1:用于永久存储设备使用的接口和命令
在写时拷贝的功能
数据库和数据库产品,在其它应用和产品中,可以使用写时拷贝功能以减少资源如时间或金钱的消耗。写时拷贝允许数据的先前版本成为可得到的。这是有用的因为除了例如存储在数据库中的信息的当前版本外,信息的先前版本对用户也可能是有用的。
如果不写时拷贝,则一个提供数据先前版本信息的方法是在用户感兴趣的时间点进行数据库的完全拷贝。当这个发生时,所有与数据库相关的文件被存储。然而,这一技术是空间密集的,因为对于一个存储在一定量的存储空间中的数据库,每个拷贝也会需要该数量的存储空间。这个方法也耗费时间,因为拷贝本身包括大量的数据移动。
因此,作为替代,对最初版本的改变可以被存储。在非易失性存储器200可以被得到的地方,它能够被用来执行写时拷贝行为。在写时拷贝的第一个实现中,将被改变的最初数据被存储在系统存储器130中。然后,在它被更新前,一个拷贝必须被写入稳定存储器中,以便使得数据的未改变版本可得到。在非易失性存储器200可以被得到的地方,这样的存储器可以是非易失性存储器200。这允许未改变拷贝的存储被快速执行。如上所述,这一拷贝可以在后面的时间点上被移动到磁盘存储器中。使用基于块定向高速缓存的数据库系统能够使用这个技术来减少存储器写的时间。
在写时拷贝的第二个实施例中,最初版本可以被存储在长期存储媒体中。在这种情况下,如果数据位于非易失性存储器200中,则在写发生之前,另一个拷贝可以在非易失性存储器200中进行。如果数据没有存储在非易失性存储器中,则最初存储的拷贝可以被看成档案拷贝——存储未改变版本的拷贝。非易失性存储器200存储改变的版本。当这个版本从非易失性存储器200中刷新到或用别的方式移动到磁盘时,该版本将被写入存储器200中的一个新单元,因为在磁盘上最初存储的版本拷贝现在是改变前数据的档案拷贝。
使用非易失性存储器的磁盘碎片整理
大数据存储器,例如文件系统和数据库,通过数据的持续存储和删除可以出现称为磁盘碎片的情形。这个当在存储设备上的大范围的自由存储器变得越来越少时发生,且可能导致性能下降。为了改正这种情况,磁盘碎片整理被使用。磁盘碎片整理处理将在连续地址空间的文件再结合。为了执行磁盘碎片整理,数据文件在磁盘的物理存储器单元中被移动以创建连续存储的文件。因此,临时存储单元被使用;因为由第一个文件占用的空间被第二个文件使用,所以第一个文件必须被存储在一些存储单元中,这样它才不会丢失。
在一个实施例中,在磁盘碎片整理期间非易失性存储器被用作临时存储单元。数据被写入非易失性存储器。其它数据的单元被改变以增加其它数据存储的邻近性。然后数据被从非易失性存储器写入进行磁盘碎片整理过的存储设备。当临时存储的数据被再次存储到存储设备(比如计算机系统的硬盘)时临时拷贝被从非易失性存储器中移除。这样磁盘碎片整理不需要使用长期存储媒体和相关的用于存储临时数据的成本就能发生。
永久存储设备的控制
如图4所示和如上所述,永久存储设备300能够包括长期存储媒体430(例如图3中的磁盘组件302)。在这种情况下,来自CPU120数据在主计算机110和永久存储设备300之间传播。这个流动由主计算机110中的主计算机接口400和永久存储设备300中的主计算机接口420仲裁。设备控制固件440可以直接或间接控制在非易失性存储器200和长期存储媒体430中的存储。
为了开始使用永久存储设备300,如上所述,操作系统134查询存储单元配置,以确定非易失性存储器200是否可得到,如果可得到,则查询非易失性存储器200的大小和其它参数,比如类型、使用历史等。随后关于非易失性存储器200怎样被使用的决定被产生。
非易失性存储器200的使用可以用两个方法控制。第一,非易失性存储器200的一些部分可以由存储单元控制。第二,非易失性存储器200的一些部分可以由OS134直接控制。如上所述,当一部分非易失性存储器200由OS直接控制时,该部分被用来映射LSAs的特殊集合。对这些LSAs的读和写则将总是访问非易失性存储器200的被映射部分。在这些LSAs中的数据将不被刷新到存储单元中,除非非易失性存储器被操作系统重新配置。
没有由操作系统直接控制的这部分非易失性存储器200被用作高速缓存。这一高速缓存部分具有读高速缓存和写缓冲器的双重作用。当写缓冲器被刷新到磁盘时,OS根据情况将来自磁盘的数据再移入非易失性存储器200作为读高速缓存。这一高速缓存数据被用写缓冲器数据写在上面。最终,该读高速缓存被写缓冲器数据完全写在上面,当缓冲器满时,存储单元控制器就旋转磁盘,刷新缓冲器数据到磁盘,将读高速缓存再次移入,并停转磁盘。
具有高速缓存部分和映射部分的非易失性存储器的使用如图5所示。非易失性存储器200被分为高速缓存部分500和映射部分510。如箭头520所示,读自LSAs或写入LSAs的没有被映射到映射部分510的数据被写入高速缓存部分500;如箭头530所示,如果从LSA中读出的数据没有被提供给高速缓存部分,则它被从长期存储媒体430中读取。就象被讨论的,高速缓存部分500既作为读高速缓存又作为写高速缓存,箭头540示出了高速缓存部分540中的数据被刷新到长期存储媒体430,并且当有空间来使用高速缓存部分500作为写缓冲器时数据被从长期存储媒体430拷贝到高速缓存部分500。
映射部分510被映射到特定的LSAs。这样,如箭头550所示,当这些LSAs被读取或写入时,这些读和写直接来自映射部分510。在映射部分510的数据不被刷新到长期存储媒体430,长期存储媒体430也不提供数据给映射部分。对这个的唯一例外是再映射。如箭头560所示,当一个新映射被创建时,来自前面映射的数据被拷贝到长期存储媒体430,且来自磁盘用于新LSAs映射的数据被拷贝到非易失性存储器200(特别地,到映射部分510。)。
高速缓存部分500的控制
该高速缓存部分的控制由图6所示的状态图确定。如图6所示,或者在初始化(603)期间或者在关闭(625)后重新启动期间一个启动状态600被输入。在启动状态后,如转换605所示,当操作系统移动到运行状态610时,发送一个命令以及一个最初移入高速缓存的逻辑扇区地址列表以刷新高速缓存和再移入。如转换613所示,每次刷新高速缓存和再移入的这个命令被从操作系统134接收时,运行状态610的操作被再次执行。为了移动到关闭状态620,转换615,发生。按照一个实施例,当关闭发生时,一个刷新和再移入高速缓存的命令以及一个LSA列表被发送。
在某种情况下,通过使用非易失性存储器200而不是使用更慢的磁盘430,磁盘驱动控制器固件440减少功耗并改进可靠性和性能。该磁盘驱动控制器440接收来自OS136的命令将来自指定逻辑扇区地址(LSAs)的列表的数据移入非易失性存储器200的高速缓存部分500。该LSAs列表也包括扇区的优先权,最高优先权扇区最少可能被从高速缓存中移出而最低优先权的扇区最多可能被移出。一旦高速缓存500被移入,磁盘430被停转,高速缓存500被用作写缓冲器。当缓冲器满时,按照它们的优先权被高速缓存用于读的扇区被写在上面。磁盘只在读高速缓存未命中时、当写缓冲器满时或当一个清楚的旋转命令被从OS134中接收到时旋转。这样,相对于它运转的时间,磁盘430将保持长时间的关闭,从而减少功耗并改进可靠性。最高优先权的LSAs被永久标识在非易失性存储器200高速缓存中,直到被OS134以别的方式命令。
在启动状态600中的操作被显示在图7中。如图7所示,步骤700,当由BIOS和操作系统134请求时,来自非易失性存储器200的启动状态块被提供。并行地,长期存储媒体430(例如磁盘)被旋转。
在这个状态被完成后,运行状态610被输入,该OS发出一个命令以刷新并将指定的LSAs再移入高速缓存。运行状态610的操作如图8所示。如图8所示,在运行状态,如果磁盘没有被旋转,则磁盘被旋转,步骤800。在步骤810,任何在非易失性存储器200中被修改的扇区被刷新到磁盘/长期存储媒体430。在步骤820,由OS指定的LSAs则被从磁盘读取到非易失性存储器200用于读高速缓存。在步骤830,磁盘则被停转。在步骤840,非易失性存储器200被用作读高速缓存和写缓冲器。根据请求被高速缓存的扇区被提供;被写入的扇区被保存在非易失性存储器缓冲器中,按照优先权写在读高速缓存扇区的上面。在步骤850,当写缓冲器超过满阈值时,非易失性存储器被刷新和再移入,从步骤800到830。
当一个命令被接收以关闭时,关闭状态620被输入。关闭状态620的操作如图9所示。在步骤900,磁盘被旋转。在步骤910,任何在非易失性存储器200中被修改的扇区被刷新到磁盘/长期存储媒体430。在步骤920,由OS指定的LSAs则被从磁盘中读出到非易失性存储器200用于读高速缓存。这允许非易失性存储器具有在启动时将由BIOS和操作系统134请求的可用的数据。
其它形式的关闭或在功能上类似的停止(例如备用和休眠)也可以按照图6到9所示的方法运行。恢复运行所需的信息被存储在允许更快地恢复的非易失性存储器200中。
此外,如上所述,OS134和应用程序(经过OS134)可以将其它暗示给设备控制器440以帮助它确定什么时候旋转或停转磁盘,相反地,如果控制器FW由于任何原因必须旋转磁盘,它发出一个中断给OS134指示磁盘正在被旋转。该操作系统和应用程序则能够利用这种情况将高速缓存在非易失性工作存储器中的非关键数据写入到存储单元中。
在一个实施例中,该控制器440固件也使用由非易失性存储器200实现的好处来降低硬盘驱动存储单元中的噪声。通过将写缓冲器阈值设置得足够低,该控制器440能够旋转得更慢且能够更久地将写缓冲器刷新到磁盘430,减少发自主轴电机和寻找伺服系统的磁头的噪声。这一技术也减少了由电源供给的峰值电流。该控制器440固件也利用将在该缓冲器中的相对大量的数据放置数据在磁盘的邻近块中且避免在刷新数据到磁盘时产生碎片。
该高速缓存500的准确状态只有控制器440知道。该操作系统能够通过查询控制器440得到它的快照。在任何时间,通过发送一个命令该操作系统134可以选择刷新高速缓存500并用它认为在不久的将来将被需要的新的扇区集开始(图6中的转换613)。
在一个实施例中,在缺少来自OS 134的特殊命令的情况下,通过提出一个LSAs(例如,在转换615中要求启动或从休眠中恢复的LSA,或通常根据从启动状态600或在运行状态610的转换给出的LSA)的列表将文件移入高速缓存部分500,该控制器通过紧接着启动或S4恢复之后监视磁盘IOs进行它自己的从磁盘到非易失性存储器200的预取。这些IOs代表在接下来的启动或S4恢复中将被请求的最可能的数据。一旦这些数据被控制器440收集到,它就被存储在非易失性存储器200的一张表中,在下一次关闭或休眠时,在关闭或休眠前控制器440使用这些数据从磁盘移入非易失性存储器200。
映射部分510的控制
操作系统直接控制非易失性存储器200的映射部分510。对于这一部分,操作系统确定具体的必须映射到映射部分510的逻辑扇区地址。这使得操作系统直接控制存储在非易失性存储器200中的数据。在一个实施例中,这一控制也可以交给其它应用程序。
这能够被实现的一个方法是操作系统134创建一部分映射或遮蔽一具体但不是必须邻近的LSAs集合的非易失性存储器200。为了创建这一部分,OS发送一命令给磁盘控制器以刷新整个非易失性存储器200,这移动在写缓冲器和先前映射中的修改过的数据到长期存储媒体430。然后它发送一个命令将LSAs的列表映射到非易失性存储器200的映射部分510。控制器440从磁盘拷贝扇区到非易失性存储器200并将它们保持在那儿,直到操作系统136以别的方式告知。如果发送给永久存储设备300用于映射的逻辑扇区地址超出了磁盘430的当前地址空间,则这些被附加在磁盘的地址空间的末端。当再映射发生时,OS 134需要将在这些扩展地址中的数据拷贝到磁盘地址空间中的单元里以避免丢失数据。操作系统是对这些在非易失性存储器200中被映射的扇区直接控制的。
OS134可以周期性地将映射部分510刷新到磁盘430且将LSAs的一个新集合映射到映射部分510。这发生在如图10所示的内容中。在步骤1000中,磁盘430准备读/写。在步骤1010中,来自非易失性存储器200的映射部分510的数据被刷新到磁盘430。在步骤1020中,高速缓存部分500也被刷新到磁盘。在步骤1030中,将要被映射的新的LSAs被从磁盘430拷贝到非易失性存储器200的映射部分510。虽然没有被显示,在一个实施例中,高速缓存部分500被用来自磁盘430的数据充满以便作为读高速缓存。在步骤1040,磁盘430就被停转。
作为对这一映射的一个选择,非易失性存储器也可以被配置为永久存储设备300的分离部分或逻辑卷。如上所述连续的逻辑扇区则处在操作系统136的直接控制下。
用于永久存储设备300的自描述存储器部分
在一个实施例中,除了如图5所示的高速缓存部分500和映射部分510之外,一部分非易失性存储器被留出以存储关于允许诊断或其它信息被保持的永久存储设备300的某一信息。
在一个实施例中,这一描述信息包括标志信息、在长期存储媒体430中的坏扇区的数量、关于在某一数量时间内扇区被写或读的次数的统计数据、在某一数量时间内磁盘被旋转或停转的次数和长期存储媒体已经运行的小时数。
在一个实施例中,这个自描述存储器部分由特殊的允许OS部件或一个应用程序访问存储器的接口读取。在另一个实施例中,永久存储设备300包括一个显示器。例如,一个LCD显示器可以被包括在永久存储设备300中。当某一对永久存储设备300的查询被进行时,或者通过计算机110或者直接地(例如通过按压在永久存储设备300上的按钮),来自自描述存储器部分的数据被显示。
在一个实施例中,OS或应用程序使用存储在自描述存储器中的信息确定什么时候存储设备300接近它的生命期望以及存储在所述存储设备300上的数据需要被转移到一个新的存储设备。
允许非易失性存储器200被用作存储关于计算机操作的数据的“黑匣子”记录器的信息也可以被存储。万一发生故障,比如异常关闭,关于计算机操作的信息被存储且能够被检索以分析该故障。这个信息可以包括关于运行在所述计算机系统上的处理的处理信息;关于运行在所述计算机系统上的线程的线程信息;数据访问;和设备访问。类似于飞机上的黑匣子记录器,有限数量的空间可以被分配给这一操作信息,且当超过该空间能够存储的更多信息被收集时,先前存储的操作信息被用更新的信息写在上面。
磨损测量
某些非易失性存储器技术在太多的擦除周期后都遭到磨损。为了延迟该磨损的出现,在一个实施例中,控制器440平衡非易失性存储器200中所有区域的擦除以便对每个区域的擦除近似相同。控制器440改变非易失性存储器内被使用的物理地址以避免磨损与被频繁写的磁盘扇区相关的非易失性存储器块。在一个实施例中,这要求某一数量的花费以用来保证在映射部分总有可得到的空间去进行磨损测量。例如,如果1MB的扇区被留用作为映射部分510,则磁盘控制器实际上可留用1.5MB以允许磨损测量完全工作。
结论
应当注意,前述例子被提供仅是为了解释的目的,决不能被解释为对本发明的限制。虽然本发明已经参考各种实施例进行了描述,但应当理解在此使用的语句只是描述和解释的语句,而不是限制的语句。此外,虽然本发明已经在此参考特殊的装置、材料和实施例进行了描述,但本发明不打算被限制于在此公开的特殊内容;更合适地,本发明扩展了所有在功能上相等的结构、方法和使用,这些包括在附加的权利要求的范围内。理解了本说明书教导的好处的本领域技术人员可以实现许多修改,且可以进行改变而不脱离本发明各方面的范围和精神。

Claims (102)

1.一种操作具有非易失性存储器和长期存储媒体的计算机系统的方法,包括:
使用至少一部分所述非易失性存储器作为写缓冲器用于来自对所述长期存储媒体的写操作的数据的中间存储;和
提供一个接口用于请求写入所述写缓冲器的数据被传送到所述长期存储媒体。
2.如权利要求1所述的方法,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于写。
3.如权利要求2所述的方法,其中所述长期存储媒体包括一个旋转存储媒体,且所述准备动作包括旋转所述旋转存储媒体。
4.如权利要求3所述的方法,其中所述准备动作以比所述准备动作可能的最快速度更慢的速度发生。
5.如权利要求2所述的方法,进一步包括:
检测所述准备动作已经被执行;
将写入所述写缓冲器的第一数据传送到所述长期存储媒体。
6.如权利要求5所述的方法,进一步包括:
确定一组第二数据是可得到的以传送给所述长期存储器;
根据所述准备动作已经被执行的检测,传送所述第二数据到所述长期存储器。
7.如权利要求1所述的方法,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个动作以使它暂时对写失效。
8.如权利要求7所述的方法,其中所述长期存储媒体包括一个旋转存储媒体,且所述动作包括停转所述旋转存储媒体。
9.如权利要求8所述的方法,其中所述失效动作以比所述准备动作可能的最快速度更慢的速度发生。
10.如权利要求1所述的方法,进一步包括:
提供一个接口用于请求某一指定的数据在一个或多个写操作中被直接写入所述长期存储媒体而不是所述写缓冲器。
11.如权利要求1所述的方法,其中,对于每个存储在所述写缓冲器中的数据的元件,一个优先权指示被分配给所述元件,其中用于请求所述数据被传送给所述长期存储媒体的所述接口包括一个优先权级的指示,且其中,对于每个存储在所述写缓冲器中的数据的元件,所述元件是否被传送给所述长期存储媒体是根据所述指示和所述元件的所述分配的优先权级。
12.如权利要求1所述的方法,进一步包括:
提供一个接口用于指示存储在所述非易失性存储器中的某一指定数据是无效的。
13.如权利要求12所述的方法,其中所述无效数据不被传送到所述长期存储媒体。
14.如权利要求13所述的方法,其中在所述非易失性存储器中用于所述无效数据的单元被设为可得到以用于存储其它数据。
15.如权利要求1所述的方法,进一步包括:
提供一个接口用于接收关于所述非易失性存储器的信息。
16.如权利要求15所述的方法,其中所述信息包括所述非易失性存储器是否存在。
17.如权利要求15所述的方法,其中所述信息包括所述非易失性存储器的大小。
18.如权利要求1所述的方法,其中所述信息包括选自以下内容中的至少一个:关于所述非易失性存储器的使用信息;和所述非易失性存储器的类型。
19.如权利要求1所述的方法,进一步包括:
提供一个控制以保证在所述非易失性存储器内的不同物理单元以近似相等的频率被擦除。
20.一种具有执行权利要求1的方法的计算机可执行指令的计算机可读媒体。
21.一种在具有非易失性存储器和所述长期存储媒体的计算机系统中执行将某一数据原子写操作到长期存储媒体中的方法,包括:
尝试将所述某一数据写到所述非易失性存储器;
如果所述尝试成功,则传送所述某一数据到所述长期存储媒体。
22.如权利要求21所述的方法,其中如果所述尝试不成功,则包括一个故障指示的故障数据被返回。
23.一种数据库应用,其中原子写操作按照权利要求21的方法被执行。
24.一种具有执行权利要求21的方法的计算机可执行指令的计算机可读媒体。
25.一种操作具有非易失性存储器和长期存储媒体的计算机系统的方法,包括:
使用至少一部分所述非易失性存储器作为读缓冲器用于对来自所述长期存储媒体的数据的存储;和
提供一个接口用于请求将某一数据从所述长期存储媒体读到非易失性存储器的所述部分中。
26.如权利要求25所述的方法,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于读。
27.如权利要求26所述的方法,其中所述长期存储媒体包括一个旋转存储媒体,且所述准备动作包括旋转所述旋转存储媒体。
28.如权利要求25所述的方法,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个动作以使它暂时对读失效。
29.如权利要求28所述的方法,其中所述长期存储媒体包括一个旋转存储媒体,且所述动作包括停转所述旋转存储媒体。
30.如权利要求25所述的方法,其中,对于每个存储在所述读缓冲器中的数据的元件,一个优先权指示被分配给所述元件,其中部分所述读缓冲器被周期性地再分配以用于其它目的,且其中所述读缓冲器的第一部分是否在所述读缓冲器的第二部分之前被再分配是根据分配给所述第一部分中的数据的元件的第一优先权指示和分配给存储在所述第二部分中的数据的元件的第二优先权指示的相对值。
31.如权利要求30所述的方法,其中至少一个所述其它使用包括使用作为用于来自所述长期存储媒体的写操作的数据的中间存储器的写缓冲器;且其中所述方法进一步包括:
提供一个接口用于请求写入所述写缓冲器的数据被传送到所述长期存储媒体。
32.一种具有执行权利要求25的方法的计算机可执行指令的计算机可读媒体。
33.一种操作具有非易失性存储器和长期存储媒体的计算机系统的方法,包括:
建立一个所述非易失性存储器的至少一个非易失性存储器存储元件与所述长期存储媒体的至少一个长期存储媒体存储元件的直接对应;
从所述长期存储元件读出数据到所述非易失性存储元件;
在所述非易失性存储元件中执行指向所述长期存储元件的任何写操作;和
通过从所述非易失性存储元件中读取数据响应指向所述长期存储元件的任何读操作。
34.如权利要求33所述的方法,其中所述方法进一步包括提供一个接口用于请求所述直接对应被改变。
35.如权利要求33所述的方法,进一步包括,响应于所述直接对应被改变的请求:
从每个非易失性存储器存储元件中读取第二数据到所述长期存储媒体的所述对应的长期存储元件;
按照所述非易失性存储器的至少一个非易失性存储器存储元件与所述长期存储媒体的至少一个长期存储元件的第二直接对应,从至少一个长期存储元件中读取第三数据到非易失性存储器;
根据所述第二直接对应,将来自指向所述长期存储元件的写操作的第四数据写到所述非易失性存储元件;和
根据所述第二直接对应,从所述非易失性存储元件中读取响应于指向所述长期存储元件的读操作的第五数据。
36.一种具有执行权利要求33的方法的计算机可执行指令的计算机可读媒体。
37.一种操作具有包括非易失性存储器和长期存储媒体的永久存储设备的计算机系统的方法,包括:
使用至少一部分所述非易失性存储器作为与所述永久存储设备有关的描述信息的存储器;和
提供从所述部分读取数据的方法。
38.如权利要求37所述的方法,其中所述描述信息包括用于所述永久存储设备的标记。
39.如权利要求37所述的方法,其中所述描述信息包括关于所述长期存储媒体的使用统计信息。
40.如权利要求39所述的方法,其中所述使用统计信息包括一个或多个以下内容:在所述长期存储媒体上被写的扇区数;一个指定动作已经在所述长期存储媒体上被执行的次数;在所述长期存储媒体上的坏扇区数;所述非易失性存储器的类型;和所述非易失性存储器的期望生命信息。
41.如权利要求37所述的方法,其中所述方法包括一个用于请求来自所述部分的数据被返回的接口。
42.如权利要求37所述的方法,其中所述永久存储设备进一步包括显示器,且其中所述方法包括显示来自所述部分的数据。
43.一种具有执行权利要求37的方法的计算机可执行指令的计算机可读媒体。
44.一种在具有非易失性存储器和长期存储媒体的计算机系统中对存储器进行磁盘碎片整理的方法,包括:
将先前存储在所述长期存储器中的第一部分数据存储在所述非易失性存储器中;
在所述长期存储媒体中改变存储在第一组存储器单元中的第二部分数据的存储器单元,这样所述第二部分数据被存储在一个第二组存储器单元中,其中所述第二组存储器单元比所述第一组存储器单元更邻近;和
将所述第一部分数据写入到所述长期存储器。
45.一种具有执行权利要求44的方法的计算机可执行指令的计算机可读媒体。
46.一种操作具有非易失性存储器和长期存储媒体的计算机系统的方法,包括:
在所述非易失性存储器中存储请求用于初始化所述计算机系统的启动数据;
使用所述启动数据以便初始化所述计算机系统;和
在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于动作。
47.如权利要求46所述的方法,进一步包括:
接收一个请求以将所述计算机转换到关闭状态;和
在所述非易失性存储器中存储被请求用于所述计算机系统的后来的初始化的第二启动数据。
48.如权利要求47所述的方法,其中所述存储第二启动数据包括:
在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于动作;
将来自所述非易失性存储器中的其它数据写入到所述长期存储媒体;和
将所述第二启动数据存储到所述非易失性存储器中。
49.一种具有执行权利要求46的方法的计算机可执行指令的计算机可读媒体。
50.一种操作具有非易失性存储器和长期存储媒体的计算机系统的方法,包括:
将关于所述计算机系统的操作的操作数据存储在所述非易失性存储器中;和
在所述计算机系统发生故障后使用所述操作数据以分析所述计算机系统的所述操作。
51.如权利要求50所述的方法,其中所述操作数据包括从以下内容中选择的一个:关于运行在所述计算机系统上的处理的处理信息;关于运行在所述计算机系统上的线程的线程信息;数据访问;和设备访问。
52.一种具有执行权利要求50的方法的计算机可执行指令的计算机可读媒体。
53.一种将数据存储在具有非易失性存储器和长期存储媒体的计算机系统上的方法,包括:
存储数据的第一版本;
在所述非易失性存储器上创建所述数据的第二版本;和
根据至少一个数据改变更新所述数据的所述第二版本。
54.如权利要求53所述的方法,其中所述第一版本被存储在非易失性存储器中。
55.如权利要求53所述的方法,其中数据的所述第一版本被存储在所述长期存储媒体中,且其中数据的所述第一版本被表示为所述数据的当前版本,进一步包括:
改变所述表示以表示所述第一版本被表示为存档版本。
56.一种具有执行权利要求53的方法的计算机可执行指令的计算机可读媒体。
57.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
使用至少一部分所述非易失性存储器作为写缓冲器用于来自对所述长期存储媒体的写操作的数据的中间存储的逻辑;和
提供一个接口用于请求写入所述写缓冲器的数据被传送到所述长期存储媒体的逻辑。
58.如权利要求57所述的计算机系统,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于写的逻辑。
59.如权利要求58所述的计算机系统,其中所述长期存储媒体包括一个旋转存储媒体,且所述准备动作包括旋转所述旋转存储媒体。
60.如权利要求59所述的计算机系统,其中所述准备动作以比所述准备动作可能的最快速度更慢的速度发生。
61.如权利要求58所述的计算机系统,进一步包括:
检测所述准备动作已经被执行的逻辑;和
将写入所述写缓冲器的第一数据传送到所述长期存储媒体的逻辑。
62.如权利要求61所述的计算机系统,进一步包括:
确定一组第二数据是可得到的以传送给所述长期存储器的逻辑;
根据所述准备动作已经被执行的检测,传送所述第二数据到所述长期存储器的逻辑。
63.如权利要求57所述的计算机系统,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个动作以使它暂时对写失效的逻辑。
64.如权利要求63所述的计算机系统,其中所述长期存储媒体包括一个旋转存储媒体,且所述动作包括停转所述旋转存储媒体。
65.如权利要求64所述的计算机系统,其中所述失效动作以比所述准备动作可能的最快速度更慢的速度发生。
66.如权利要求57所述的计算机系统,进一步包括:
提供一个接口用于请求某一指定的数据在一个或多个写操作中被直接写入所述长期存储媒体而不是所述写缓冲器的逻辑。
67.如权利要求57所述的计算机系统,其中,对于每个存储在所述写缓冲器中的数据的元件,一个优先权指示被分配给所述元件,其中用于请求所述数据被传送给所述长期存储媒体的所述接口包括一个优先权级的指示,且其中,对于每个存储在所述写缓冲器中的数据的元件,所述元件是否被传送给所述长期存储媒体是根据所述指示和所述元件的所述分配的优先权级。
68.如权利要求57所述的计算机系统,进一步包括:
提供一个接口用于指示存储在所述非易失性存储器中的某一指定数据为无效的逻辑。
69.如权利要求68所述的计算机系统,其中所述无效数据不被传送到所述长期存储媒体。
70.如权利要求69所述的计算机系统,其中在所述非易失性存储器中用于所述无效数据的单元被设为可得到以用于存储其它数据。
71.如权利要求57所述的计算机系统,进一步包括:
提供一个接口用于接收关于所述非易失性存储器的信息的逻辑。
72.如权利要求71所述的计算机系统,其中所述信息包括所述非易失性存储器是否存在。
73.如权利要求71所述的计算机系统,其中所述信息包括所述非易失性存储器的大小。
74.如权利要求57所述的计算机系统,其中所述信息包括选自以下内容中的至少一个:关于所述非易失性存储器的使用信息;和所述非易失性存储器的类型。
75.如权利要求57所述的计算机系统,进一步包括:
提供一个控制以保证在所述非易失性存储器内的不同物理单元以近似相等的频率被擦除的逻辑。
76.一种允许对长期存储媒体进行某一数据的原子写操作的计算机系统,所述计算机系统使用非易失性存储器和长期存储媒体,所述计算机系统包括:
具有非易失性存储器和长期存储器媒体,包括:
尝试将所述某一数据写到所述非易失性存储器的逻辑;
如果所述尝试成功,则传送所述某一数据到所述长期存储媒体的逻辑。
77.如权利要求76所述的计算机系统,其中如果所述尝试不成功,则包括一个故障指示的故障数据被返回。
78.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
使用至少一部分所述非易失性存储器作为读缓冲器用于对来自所述长期存储媒体的数据的存储的逻辑;和
提供一个接口用于请求将某一数据从所述长期存储媒体读到非易失性存储器的所述部分中的逻辑。
79.如权利要求78所述的计算机系统,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于读的逻辑。
80.如权利要求79所述的计算机系统,其中所述长期存储媒体包括一个旋转存储媒体,且所述准备动作包括旋转所述旋转存储媒体。
81.如权利要求78所述的计算机系统,进一步包括:
提供一个接口用于请求在所述长期存储媒体上执行一个动作以使它暂时对读失效的逻辑。
82.如权利要求81所述的计算机系统,其中所述长期存储媒体包括一个旋转存储媒体,且所述动作包括停转所述旋转存储媒体。
83.如权利要求78所述的计算机系统,其中,对于每个存储在所述读缓冲器中的数据的元件,一个优先权指示被分配给所述元件,其中部分所述读缓冲器被周期性地再分配以用于其它目的,且其中所述读缓冲器的第一部分是否在所述读缓冲器的第二部分之前被再分配是根据分配给所述第一部分中的数据的元件的第一优先权指示和分配给存储在所述第二部分中的数据的元件的第二优先权指示的相对值。
84.如权利要求83所述的计算机系统,其中至少一个所述其它使用包括使用作为用于来自所述长期存储媒体的写操作的数据的中间存储器的写缓冲器;且其中所述计算机系统进一步包括:
提供一个接口用于请求写入所述写缓冲器的数据被传送到所述长期存储媒体的逻辑。
85.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
建立一个所述非易失性存储器的至少一个非易失性存储器存储元件与所述长期存储媒体的至少一个长期存储媒体存储元件的直接对应的逻辑;
从所述长期存储元件读出数据到所述非易失性存储元件的逻辑;
在所述非易失性存储元件中执行指向所述长期存储元件的任何写操作的逻辑;和
通过从所述非易失性存储元件中读取数据响应指向所述长期存储元件的任何读操作的逻辑。
86.如权利要求85所述的计算机系统,其中所述计算机系统进一步包括提供一个接口用于请求所述直接对应被改变。
87.如权利要求85所述的计算机系统,进一步包括,响应于所述直接对应被改变的请求:
从每个非易失性存储器存储元件中写第二数据到所述长期存储媒体的所述对应的长期存储元件的逻辑;
按照所述非易失性存储器的至少一个非易失性存储器存储元件与所述长期存储媒体的至少一个长期存储元件的第二直接对应,从至少一个长期存储元件中读取第三数据到非易失性存储器的逻辑;
根据所述第二直接对应,在所述非易失性存储元件上执行指向所述长期存储元件的写操作的逻辑;和
根据所述第二直接对应,通过从所述非易失性存储元件中读取数据来执行指向所述长期存储元件的读操作的逻辑。
88.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
使用至少一部分所述非易失性存储器作为与所述永久存储设备有关的描述信息的存储器;和
提供从所述部分读取数据的计算机系统。
89.如权利要求88所述的计算机系统,其中所述描述信息包括用于所述永久存储设备的标记。
90.如权利要求88所述的计算机系统,其中所述描述信息包括关于所述长期存储媒体的使用统计信息。
91.如权利要求90所述的计算机系统,其中所述使用统计信息包括一个或多个以下内容:在所述长期存储媒体上被写的扇区数;一个指定动作已经在所述长期存储媒体上被执行的次数;在所述长期存储媒体上的坏扇区数;所述非易失性存储器的类型;和所述非易失性存储器的期望生命信息。
92.如权利要求88所述的计算机系统,其中所述计算机系统包括一个用于请求来自所述部分的数据被返回的接口。
93.如权利要求88所述的计算机系统,其中所述永久存储设备进一步包括显示器,且其中所述计算机系统包括显示来自所述部分的数据。
94.一种具有磁盘碎片整理能力的计算机系统,所述计算机系统使用非易失性存储器和长期存储媒体,包括:
将先前存储在所述长期存储器中的第一部分数据存储在所述非易失性存储器中的逻辑;
在所述长期存储媒体中改变存储在第一组存储器单元中的第二部分数据的存储器单元,以便所述第二部分数据被存储在一个第二组存储器单元中,其中所述第二组存储器单元比所述第一组存储器单元更邻近的逻辑;和
将所述第一部分数据写入到所述长期存储器的逻辑。
95.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
在所述非易失性存储器中存储请求用于初始化所述计算机系统的启动数据的逻辑;
使用所述启动数据以便初始化所述计算机系统的逻辑;和
在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于动作的逻辑。
96.如权利要求95所述的计算机系统,进一步包括:
接收一个请求以将所述计算机转换到关闭状态的逻辑;和
在所述非易失性存储器中存储被请求用于所述计算机系统的后来的初始化的第二启动数据的逻辑。
97.如权利要求96所述的计算机系统,其中所述存储第二启动数据包括:
在所述长期存储媒体上执行一个准备动作以使所述长期存储媒体准备用于动作的逻辑;
将来自所述非易失性存储器中的其它数据写入到所述长期存储媒体的逻辑;和
将所述第二启动数据存储到所述非易失性存储器中的逻辑。
98.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
将关于所述计算机系统的操作的操作数据存储在所述非易失性存储器中的逻辑;和
在所述计算机系统发生故障后使用所述操作数据以分析所述计算机系统的所述操作的逻辑。
99.如权利要求98所述的计算机系统,其中所述操作数据包括从以下内容中选择的一个:关于运行在所述计算机系统上的处理的处理信息;关于运行在所述计算机系统上的线程的线程信息;数据访问;和设备访问。
100.一种使用非易失性存储器和长期存储媒体的计算机系统,包括:
存储数据的第一版本的逻辑;
在所述非易失性存储器上创建所述数据的第二版本的逻辑;和
根据至少一个数据改变更新所述数据的所述第二版本的逻辑。
101.如权利要求100所述的计算机系统,其中所述第一版本被存储在非易失性存储器中。
102.如权利要求100所述的计算机系统,其中数据的所述第一版本被存储在所述长期存储媒体中,且其中数据的所述第一版本被表示为所述数据的当前版本,进一步包括:
改变所述表示以表示所述第一版本被表示为存档版本的逻辑。
CNB2005100837924A 2004-05-03 2005-05-08 用于非易失性存储器高速缓存性能改进的系统和方法 Active CN100470508C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/837,986 US7644239B2 (en) 2004-05-03 2004-05-03 Non-volatile memory cache performance improvement
US10/837,986 2004-05-03

Publications (2)

Publication Number Publication Date
CN1801121A true CN1801121A (zh) 2006-07-12
CN100470508C CN100470508C (zh) 2009-03-18

Family

ID=34939672

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100837924A Active CN100470508C (zh) 2004-05-03 2005-05-08 用于非易失性存储器高速缓存性能改进的系统和方法

Country Status (6)

Country Link
US (5) US7644239B2 (zh)
EP (1) EP1594064B1 (zh)
JP (2) JP2006004407A (zh)
KR (1) KR101044220B1 (zh)
CN (1) CN100470508C (zh)
TW (2) TWI480732B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727978A (zh) * 2008-10-23 2010-06-09 意法半导体股份有限公司 在电可擦和可编程的非易失性存储器中写入和读取数据的方法
CN101853208A (zh) * 2009-03-31 2010-10-06 英特尔公司 基于文件级启发式规则来执行缓存的方法和系统
CN101256535B (zh) * 2007-03-01 2011-03-09 创惟科技股份有限公司 硬盘资料读写快取装置及方法
US7975095B2 (en) 2006-12-28 2011-07-05 Genesys Logic, Inc. Device and method for using a flash memory as a hard disk cache
CN102160038A (zh) * 2008-09-15 2011-08-17 惠普开发有限公司 管理非易失性磁盘高速缓存的方法和设备
US8028146B2 (en) 2007-08-09 2011-09-27 Hitachi, Ltd. Management of temporary and permanent areas in nonvolatile memories of a storage system
CN102792289A (zh) * 2010-03-08 2012-11-21 惠普发展公司,有限责任合伙企业 数据存储装置和方法
CN103562915A (zh) * 2011-04-12 2014-02-05 阿玛得斯两合公司 高速缓冲存储器结构和方法
CN103999042A (zh) * 2011-10-26 2014-08-20 惠普发展公司,有限责任合伙企业 加载引导数据
CN104272243A (zh) * 2012-05-31 2015-01-07 桑迪士克科技股份有限公司 用于评估修剪指令的执行的方法和主机装置
CN105683925A (zh) * 2013-10-29 2016-06-15 西部数据技术公司 数据存储设备启动
CN106294189A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 内存碎片整理方法及装置
CN107003919A (zh) * 2014-12-24 2017-08-01 英特尔公司 容错自动双列直插存储器模块刷新
CN107430547A (zh) * 2015-03-27 2017-12-01 英特尔公司 用于非易失性存储设备的故障安全写回高速缓存模式设备驱动
CN110546628A (zh) * 2017-04-17 2019-12-06 微软技术许可有限责任公司 用有向线缓冲器最小化存储器读取提高神经网络环境性能
CN112166405A (zh) * 2018-04-25 2021-01-01 美光科技公司 在存储器系统中分配可变媒体类型的存储器装置
CN114127699A (zh) * 2019-09-11 2022-03-01 国际商业机器公司 在存储器拷贝和存储器映射之间动态切换以优化i/o性能

Families Citing this family (242)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
CA2560386C (en) 2004-03-23 2013-09-24 Google Inc. A digital mapping system
US7599790B2 (en) * 2004-03-23 2009-10-06 Google Inc. Generating and serving tiles in a digital mapping system
US7831387B2 (en) 2004-03-23 2010-11-09 Google Inc. Visually-oriented driving directions in digital mapping system
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7962576B2 (en) * 2004-07-22 2011-06-14 Sap Ag Quantity conversion interface for external program calls
US8347078B2 (en) * 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) * 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US20060230226A1 (en) 2005-04-12 2006-10-12 M-Systems Flash Disk Pioneers, Ltd. Hard disk drive with optional cache memory
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US7370143B1 (en) 2005-06-20 2008-05-06 Network Appliance, Inc. Controlling write request access to a non-volatile log
US20060294339A1 (en) * 2005-06-27 2006-12-28 Trika Sanjeev N Abstracted dynamic addressing
JP2007059014A (ja) * 2005-08-26 2007-03-08 Sony Corp 情報記録装置、および情報記録方法、並びにコンピュータ・プログラム
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7917286B2 (en) 2005-12-16 2011-03-29 Google Inc. Database assisted OCR for street scenes and other images
KR100755702B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
JP2007293987A (ja) * 2006-04-24 2007-11-08 Toshiba Corp 情報記録装置及びその制御方法
KR20070105779A (ko) * 2006-04-27 2007-10-31 엠텍비젼 주식회사 프로세스 기능을 갖는 메모리 장치 및 그 프로세스 방법
US7558913B2 (en) * 2006-06-20 2009-07-07 Microsoft Corporation Atomic commit of cache transfer with staging area
US7783956B2 (en) * 2006-07-12 2010-08-24 Cronera Systems Incorporated Data recorder
KR100782594B1 (ko) * 2006-07-14 2007-12-06 엠텍비젼 주식회사 데이터 처리 기능을 구비한 메모리 장치
KR100876841B1 (ko) * 2006-08-22 2009-01-07 엘지전자 주식회사 캐쉬 메모리 탑재형 컴퓨터 및 그 제어 방법
US7669044B2 (en) * 2006-09-29 2010-02-23 Microsoft Corporation Accelerated system boot
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US8010407B1 (en) 2006-11-14 2011-08-30 Google Inc. Business finder for locating local businesses to contact
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
WO2008070814A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
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
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US7921258B1 (en) 2006-12-14 2011-04-05 Microsoft Corporation Nonvolatile disk cache for data security
US20080209198A1 (en) * 2007-02-26 2008-08-28 Majni Timothy W Boot Acceleration For Computer Systems
JP4874844B2 (ja) * 2007-03-26 2012-02-15 株式会社東芝 情報記録装置及びその制御方法
JP2008250718A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 不揮発性キャッシュメモリを用いた記憶装置とその制御方法
US9207876B2 (en) 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
US8478515B1 (en) 2007-05-23 2013-07-02 Google Inc. Collaborative driving directions
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8078648B2 (en) * 2007-06-15 2011-12-13 Microsoft Corporation Data structure for supporting a single access operation
US7945728B1 (en) 2007-06-18 2011-05-17 Marvell International Ltd. Storage device cache
US8266391B2 (en) * 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US7965532B2 (en) * 2007-08-28 2011-06-21 Micron Technology, Inc. Enhanced performance memory systems and methods
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
KR20090035938A (ko) * 2007-10-08 2009-04-13 삼성전자주식회사 하이브리드 디스크의 조각 모음 장치 및 방법
US8495276B2 (en) * 2007-10-12 2013-07-23 HGST Netherlands B.V. Power saving optimization for disk drives with external cache
US8316277B2 (en) 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
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
US8024515B2 (en) * 2007-12-07 2011-09-20 Hitachi Global Storage Technologies Netherlands B.V. Non-volatile cache in disk drive emulation
US8631203B2 (en) * 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8775758B2 (en) * 2007-12-28 2014-07-08 Sandisk Technologies Inc. Memory device and method for performing a write-abort-safe firmware update
KR20100114540A (ko) * 2008-02-10 2010-10-25 램버스 인코포레이티드 부분적인 휘발성 저장부에 대한 플래시 메모리의 세그먼트화
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8464021B2 (en) * 2008-05-28 2013-06-11 Spansion Llc Address caching stored translation
US20090327577A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Hybrid storage
US20100049931A1 (en) * 2008-08-20 2010-02-25 Jacobson Michael B Copying Logical Disk Mappings Between Arrays
US8032707B2 (en) * 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
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
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8627014B2 (en) 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US8529346B1 (en) * 2008-12-30 2013-09-10 Lucasfilm Entertainment Company Ltd. Allocating and managing software assets
US8806101B2 (en) * 2008-12-30 2014-08-12 Intel Corporation Metaphysical address space for holding lossy metadata in hardware
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
KR101618634B1 (ko) * 2009-01-07 2016-05-09 삼성전자주식회사 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
US20100185806A1 (en) * 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk
US8195901B2 (en) * 2009-02-05 2012-06-05 International Business Machines Corporation Firehose dump of SRAM write cache data to non-volatile memory using a supercap
US8195891B2 (en) * 2009-03-30 2012-06-05 Intel Corporation Techniques to perform power fail-safe caching without atomic metadata
US8225042B1 (en) * 2009-05-05 2012-07-17 Micron Technology, Inc. Method and apparatus for preventing foreground erase operations in electrically writable memory devices
US9881039B2 (en) * 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device
KR20100133710A (ko) * 2009-06-12 2010-12-22 삼성전자주식회사 메모리 시스템 및 그것의 코드 데이터 로딩 방법
US8489864B2 (en) * 2009-06-26 2013-07-16 Microsoft Corporation Performing escape actions in transactions
US8370577B2 (en) * 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US20100332768A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Flexible read- and write-monitored and buffered memory blocks
US8812796B2 (en) * 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8356166B2 (en) * 2009-06-26 2013-01-15 Microsoft Corporation Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers
US8250331B2 (en) 2009-06-26 2012-08-21 Microsoft Corporation Operating system virtual memory management for hardware transactional memory
US8229907B2 (en) * 2009-06-30 2012-07-24 Microsoft Corporation Hardware accelerated transactional memory system with open nested transactions
JP5999645B2 (ja) * 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
WO2011031900A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US9092253B2 (en) * 2009-12-15 2015-07-28 Microsoft Technology Licensing, Llc Instrumentation of hardware assisted transactional memory system
US8533440B2 (en) * 2009-12-15 2013-09-10 Microsoft Corporation Accelerating parallel transactions using cache resident transactions
US8402218B2 (en) 2009-12-15 2013-03-19 Microsoft Corporation Efficient garbage collection and exception handling in a hardware accelerated transactional memory system
US8539465B2 (en) 2009-12-15 2013-09-17 Microsoft Corporation Accelerating unbounded memory transactions using nested cache resident transactions
US8850151B2 (en) * 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
DE112010005347T5 (de) 2010-04-12 2012-12-13 Hewlett-Packard Development Company, L.P. Nichtflüchtiger Cache-Speicher
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
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
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
TWI421764B (zh) * 2010-10-15 2014-01-01 Inventec Corp 在中斷管理模式下顯示畫面的方法
US8578100B1 (en) * 2010-11-08 2013-11-05 Western Digital Technologies, Inc. Disk drive flushing write data in response to computed flush time
US8489829B2 (en) * 2010-12-01 2013-07-16 International Business Machines Corporation Reduction of communication and efficient failover processing in distributed shared memory-based application
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
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
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
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
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8966184B2 (en) 2011-01-31 2015-02-24 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
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US20120303942A1 (en) * 2011-05-25 2012-11-29 Eric Peacock Caching of boot data in a storage device
US20120311279A1 (en) * 2011-06-02 2012-12-06 Toshiba America Information Systems, Inc. Data recovery and backup system and process
US9311327B1 (en) * 2011-06-30 2016-04-12 Emc Corporation Updating key value databases for virtual backups
US8849777B1 (en) 2011-06-30 2014-09-30 Emc Corporation File deletion detection in key value databases for virtual backups
US9158632B1 (en) 2011-06-30 2015-10-13 Emc Corporation Efficient file browsing using key value databases for virtual backups
US8843443B1 (en) 2011-06-30 2014-09-23 Emc Corporation Efficient backup of virtual data
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
US9229951B1 (en) 2011-06-30 2016-01-05 Emc Corporation Key value databases for virtual backups
US9417794B2 (en) 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
WO2013025540A1 (en) * 2011-08-12 2013-02-21 Sandisk Enterprise Ip Llc Cache management including solid state device virtualization
US8627036B2 (en) * 2011-09-12 2014-01-07 Microsoft Corporation Memory management techniques
US20130067289A1 (en) * 2011-09-14 2013-03-14 Ariel Maislos Efficient non-volatile read cache for storage system
JP2013089067A (ja) * 2011-10-19 2013-05-13 Sony Corp メモリ管理装置、メモリ管理方法、制御プログラム、および、記録媒体
CN102567490B (zh) * 2011-12-21 2013-12-04 华为技术有限公司 数据库内的描述信息的恢复和数据的缓存方法及设备
WO2013091192A1 (zh) * 2011-12-21 2013-06-27 华为技术有限公司 提供多设备镜像和条带功能的磁盘缓存方法、设备和系统
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
US9275096B2 (en) 2012-01-17 2016-03-01 Apple Inc. Optimized b-tree
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
US8527462B1 (en) 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
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
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
TWI584120B (zh) * 2012-03-23 2017-05-21 Lsi公司 用於動態調適快取的方法及系統
KR101404129B1 (ko) * 2012-06-26 2014-06-10 인텔렉추얼디스커버리 주식회사 데이터 저장 시스템 및 데이터 관리 방법
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
KR20140007990A (ko) 2012-07-09 2014-01-21 삼성전자주식회사 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법
US9035961B2 (en) 2012-09-11 2015-05-19 Apple Inc. Display pipe alternate cache hint
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
US8984267B2 (en) * 2012-09-30 2015-03-17 Apple Inc. Pinning boot data for faster boot
US10489295B2 (en) * 2012-10-08 2019-11-26 Sandisk Technologies Llc Systems and methods for managing cache pre-fetch
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
JP5597266B2 (ja) * 2013-01-15 2014-10-01 株式会社日立製作所 ストレージシステム
US9239610B2 (en) * 2013-02-28 2016-01-19 Sandisk Technologies Inc. Systems and methods for managing data in a system for hibernation states
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9417974B2 (en) 2013-03-28 2016-08-16 Microsoft Technology Licensing, Llc. Transaction processing for database in persistent system
EP2979187B1 (en) 2013-03-28 2019-07-31 Hewlett-Packard Enterprise Development LP Data flush of group table
US9703701B2 (en) 2013-03-28 2017-07-11 Hewlett Packard Enterprise Development Lp Address range transfer from first node to second node
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
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
SG11201601215QA (en) * 2013-08-27 2016-03-30 Agency Science Tech & Res Raid parity stripe reconstruction
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
JP5627754B2 (ja) * 2013-10-28 2014-11-19 株式会社東芝 仮想記憶管理装置及び記憶管理装置
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
JP6299169B2 (ja) 2013-11-14 2018-03-28 富士通株式会社 ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
KR102219288B1 (ko) 2013-12-09 2021-02-23 삼성전자 주식회사 캐시 모드 및 메모리 모드 동작을 지원하는 메모리 장치 및 이의 동작 방법
US9436408B2 (en) * 2013-12-20 2016-09-06 Seagate Technology Llc Direct hinting for a memory device
US9436606B2 (en) 2014-01-02 2016-09-06 Qualcomm Incorporated System and method to defragment a memory
KR102168169B1 (ko) 2014-01-07 2020-10-20 삼성전자주식회사 비휘발성 메모리 시스템의 메모리 맵핑 방법 및 이를 제공하는 시스템
US10002077B2 (en) 2014-01-31 2018-06-19 Hewlett Packard Enterprise Development Lp Persistent memory controller based atomicity assurance
WO2015130314A1 (en) 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
KR102248915B1 (ko) * 2014-03-26 2021-05-07 삼성전자주식회사 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법
WO2015147817A1 (en) * 2014-03-26 2015-10-01 Hewlett-Packard Development Company, L.P. Nvm object
US20150310079A1 (en) * 2014-04-28 2015-10-29 Elwha Llc Methods, systems, and devices for machines and machine states that analyze and modify documents and various corpora
US20150310003A1 (en) * 2014-04-28 2015-10-29 Elwha Llc Methods, systems, and devices for machines and machine states that manage relation data for modification of documents based on various corpora and/or modification data
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9471955B2 (en) 2014-06-19 2016-10-18 Apple Inc. Multiple display pipelines driving a divided display
US9535844B1 (en) * 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
CN106233274B (zh) 2014-08-27 2020-01-07 惠普发展公司有限责任合伙企业 一种在计算装置之间同步文件的方法、系统和计算装置
WO2016038722A1 (ja) * 2014-09-11 2016-03-17 株式会社日立製作所 ストレージシステム及びデータ書込み方法
JP5795418B2 (ja) * 2014-09-25 2015-10-14 株式会社東芝 キャッシュ装置、及び記憶システム
US10223006B2 (en) 2014-10-03 2019-03-05 Drive Thru Technology Inc. Data management system
US10235054B1 (en) 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
US9348529B1 (en) 2015-01-27 2016-05-24 HGST Netherlands B.V. Peak power efficient data storage drives
US10353816B2 (en) 2015-01-28 2019-07-16 Hewlett-Packard Development Company, L.P. Page cache in a non-volatile memory
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10824362B2 (en) 2015-03-27 2020-11-03 Hewlett Packard Enterprise Development Lp File migration to persistent memory
WO2016160027A1 (en) * 2015-04-02 2016-10-06 Hewlett Packard Enterprise Development Lp Page cache on persistent memory
US20160299844A1 (en) * 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Mapping Logical Groups of Data to Physical Locations In Memory
US10078448B2 (en) * 2015-07-08 2018-09-18 Samsung Electronics Co., Ltd. Electronic devices and memory management methods thereof
US10037163B2 (en) * 2015-07-29 2018-07-31 Sandisk Technologies Llc Self-describing cluster association
US9778879B2 (en) 2015-10-23 2017-10-03 Microsoft Technology Licensing, Llc Flushless transactional layer
CN105353989B (zh) * 2015-11-19 2018-12-28 华为技术有限公司 存储数据访问方法及相关的控制器、设备、主机和系统
CN105589812B (zh) * 2015-12-16 2018-10-30 成都华为技术有限公司 磁盘碎片整理方法、装置及主机
US10402101B2 (en) 2016-01-07 2019-09-03 Red Hat, Inc. System and method for using persistent memory to accelerate write performance
US20170351447A1 (en) * 2016-06-03 2017-12-07 Scale Computing, Inc. Data protection implementation for block storage devices
US10318175B2 (en) 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US20180309826A1 (en) * 2017-04-24 2018-10-25 EITR Systems, Inc. Fault-tolerant storage system using an alternate network
KR102387461B1 (ko) * 2017-07-24 2022-04-15 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 이의 동작 방법
US10936441B2 (en) 2017-12-15 2021-03-02 Microsoft Technology Licensing, Llc Write-ahead style logging in a persistent memory device
KR102566635B1 (ko) 2017-12-18 2023-08-14 삼성전자주식회사 비휘발성 메모리 시스템 및 그 동작 방법
US11194588B2 (en) * 2018-07-09 2021-12-07 Dell Products L.P. Information handling systems and method to provide secure shared memory access at OS runtime
US10732892B2 (en) 2018-09-24 2020-08-04 Micron Technology, Inc. Data transfer in port switch memory
TWI684860B (zh) * 2018-10-15 2020-02-11 慧榮科技股份有限公司 用來進行讀取加速之方法以及資料儲存裝置及其控制器
KR102588143B1 (ko) 2018-11-07 2023-10-13 삼성전자주식회사 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법
JP2022533207A (ja) * 2019-05-21 2022-07-21 マジック リープ, インコーポレイテッド 稠密3d再構築データのキャッシュおよび更新
US11036594B1 (en) 2019-07-25 2021-06-15 Jetstream Software Inc. Disaster recovery systems and methods with low recovery point objectives
US11119676B2 (en) 2019-11-08 2021-09-14 International Business Machines Corporation Using spare bits in memory systems
US11150840B2 (en) * 2020-02-09 2021-10-19 International Business Machines Corporation Pinning selected volumes within a heterogeneous cache
US11379408B2 (en) 2020-05-04 2022-07-05 International Business Machines Corporation Pointer-based dynamic data structures in key-value stores
US11816354B2 (en) * 2020-07-27 2023-11-14 EMC IP Holding Company LLC Persistent memory adaptation
US11544197B2 (en) 2020-09-18 2023-01-03 Alibaba Group Holding Limited Random-access performance for persistent memory
TWI760880B (zh) * 2020-10-07 2022-04-11 瑞昱半導體股份有限公司 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法
CN114372009A (zh) * 2020-10-15 2022-04-19 瑞昱半导体股份有限公司 传输控制电路、数据传输系统及操作数据传输系统的方法
US20230083798A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Maintaining metadata from a catalog in a repository to return to requests for the metadata

Family Cites Families (336)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4612612A (en) 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
JPH06100981B2 (ja) 1983-12-28 1994-12-12 株式会社日立製作所 記憶階層制御方式
US4979108A (en) * 1985-12-20 1990-12-18 Ag Communication Systems Corporation Task synchronization arrangement and method for remote duplex processors
JPS62247853A (ja) * 1986-04-22 1987-10-28 Mazda Motor Corp 二液ミキシング塗装装置
US4972316A (en) 1987-03-30 1990-11-20 International Business Machines Corporation Method of handling disk sector errors in DASD cache
US4945474A (en) * 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
JPH01303547A (ja) 1988-05-31 1989-12-07 Toshiba Corp 情報記憶制御システム
JPH0239256A (ja) 1988-07-28 1990-02-08 Toshiba Corp メモリシステム
SU1575192A1 (ru) 1988-08-01 1990-06-30 Войсковая часть 03080 Устройство дл выделени области во внешней пам ти
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
EP0618535B1 (en) 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5900870A (en) * 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5088026A (en) 1990-02-09 1992-02-11 International Business Machines Corporation Method for managing a data cache using virtual external storage addresses as arguments
JPH03294942A (ja) 1990-04-12 1991-12-26 Hitachi Ltd ファイルバックアップ方式及び情報複写方式
US5307497A (en) 1990-06-25 1994-04-26 International Business Machines Corp. Disk operating system loadable from read only memory using installable file system interface
JPH04205634A (ja) 1990-11-30 1992-07-27 Matsushita Electric Ind Co Ltd 記憶装置制御方法
JPH04246746A (ja) * 1991-02-01 1992-09-02 Hitachi Ltd 記憶装置システム
US5764877A (en) * 1991-06-25 1998-06-09 Digital Equipment Corporation Media recovery with time-split B-trees
JP2582487B2 (ja) 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JPH0562329A (ja) * 1991-08-29 1993-03-12 Hitachi Ltd データ処理装置
JPH0559537A (ja) 1991-09-03 1993-03-09 Sony Corp 蒸着装置
JP2995942B2 (ja) 1991-09-10 1999-12-27 セイコーエプソン株式会社 文書印刷システム及びその方法
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JPH0594353A (ja) 1991-10-02 1993-04-16 Hokkaido Nippon Denki Software Kk データベース管理方式
US5297258A (en) 1991-11-21 1994-03-22 Ast Research, Inc. Data logging for hard disk data storage systems
JP3451099B2 (ja) 1991-12-06 2003-09-29 株式会社日立製作所 外部記憶サブシステム
EP0547992A3 (en) 1991-12-17 1993-12-01 Ibm Method and system for enhanced efficiency of data recovery in balanced tree memory structures
JP2839060B2 (ja) 1992-03-02 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
EP0630499A4 (en) 1992-03-09 1996-07-24 Auspex Systems Inc ACCELERATION SYSTEM WITH NON-VOLATILE, PROTECTED, WRITABLE RAM CACHE.
JP3485938B2 (ja) 1992-03-31 2004-01-13 株式会社東芝 不揮発性半導体メモリ装置
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
US5398325A (en) 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
JPH06140446A (ja) 1992-07-21 1994-05-20 Hitachi Ltd 半導体装置及びそれを用いた電子装置
JPH0635802A (ja) 1992-07-21 1994-02-10 Hitachi Ltd 複数キャッシュ付きディスク制御装置
US5574877A (en) 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US5454098A (en) 1992-09-28 1995-09-26 Conner Peripherals, Inc. Method of emulating access to a sequential access data storage device while actually using a random access storage device
US5561783A (en) 1992-11-16 1996-10-01 Intel Corporation Dynamic cache coherency method and apparatus using both write-back and write-through operations
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
JPH06236351A (ja) 1993-02-10 1994-08-23 Hitachi Ltd オンラインシステムのバックアップリストア装置
US5557770A (en) 1993-03-24 1996-09-17 International Business Machines Corporation Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JP3600257B2 (ja) 1993-05-31 2004-12-15 富士通株式会社 情報処理装置及びキャッシュ制御装置
US5636355A (en) 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US5551002A (en) 1993-07-01 1996-08-27 Digital Equipment Corporation System for controlling a write cache and merging adjacent data blocks for write operations
US5572660A (en) 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
JPH086854A (ja) 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
US6026027A (en) 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
ATE220811T1 (de) 1994-02-22 2002-08-15 Advanced Micro Devices Inc Virtuelle speicheranordnung
JPH07253935A (ja) * 1994-03-15 1995-10-03 Toshiba Corp コンピュータのデータ保護装置
US5751990A (en) 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
US5603001A (en) 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5642501A (en) 1994-07-26 1997-06-24 Novell, Inc. Computer method and apparatus for asynchronous ordered operations
US5845293A (en) 1994-08-08 1998-12-01 Microsoft Corporation Method and system of associating, synchronizing and reconciling computer files in an operating system
CA2203000A1 (en) 1994-10-18 1996-04-25 Iomega Corporation Disk cartridge detection methods and apparatus
JPH08137634A (ja) 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH08195068A (ja) 1995-01-20 1996-07-30 Pioneer Electron Corp オーディオ信号混合装置
JPH11500548A (ja) * 1995-01-23 1999-01-12 タンデム コンピューターズ インコーポレイテッド データベース完全性の保守用システム
JP3426385B2 (ja) * 1995-03-09 2003-07-14 富士通株式会社 ディスク制御装置
JPH08263380A (ja) * 1995-03-22 1996-10-11 Mitsubishi Electric Corp ディスクキャッシュ制御方式
US6078925A (en) * 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
US5917723A (en) 1995-05-22 1999-06-29 Lsi Logic Corporation Method and apparatus for transferring data between two devices with reduced microprocessor overhead
US5758174A (en) 1995-06-07 1998-05-26 International Business Machines Corporation Computer system having a plurality of stored system capability states from which to resume
US5608892A (en) 1995-06-09 1997-03-04 Alantec Corporation Active cache for a microprocessor
US5720029A (en) * 1995-07-25 1998-02-17 International Business Machines Corporation Asynchronously shadowing record updates in a remote copy session using track arrays
US5765151A (en) 1995-08-17 1998-06-09 Sun Microsystems, Inc. System and method for file system fix-on-panic for a computer operating system
JP3704767B2 (ja) 1995-11-16 2005-10-12 ソニー株式会社 情報記録装置
US5754782A (en) * 1995-12-04 1998-05-19 International Business Machines Corporation System and method for backing up and restoring groupware documents
US5860095A (en) 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
US5754888A (en) 1996-01-18 1998-05-19 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment
US5764505A (en) 1996-01-23 1998-06-09 Cymer, Inc. Gas discharge laser control systems using multiple CPU's with shared memory on a common bus
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US6247026B1 (en) * 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
KR0174711B1 (ko) 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
JPH1040170A (ja) 1996-07-26 1998-02-13 Toshiba Corp ディスクキャッシュシステム
US6026293A (en) 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
JPH1091488A (ja) 1996-09-12 1998-04-10 Sony Corp データ処理装置および方法
US5996054A (en) 1996-09-12 1999-11-30 Veritas Software Corp. Efficient virtualized mapping space for log device data storage system
US5832515A (en) 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
US6321234B1 (en) 1996-09-18 2001-11-20 Sybase, Inc. Database server system with improved methods for logging transactions
GB2317720A (en) 1996-09-30 1998-04-01 Nokia Mobile Phones Ltd Managing Flash memory
GB2317722B (en) 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
JPH10177563A (ja) 1996-12-17 1998-06-30 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータ
US6073232A (en) * 1997-02-25 2000-06-06 International Business Machines Corporation Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage
US5940856A (en) 1997-04-14 1999-08-17 International Business Machines Corporation Cache intervention from only one of many cache lines sharing an unmodified value
US6345000B1 (en) 1997-04-16 2002-02-05 Sandisk Corporation Flash memory permitting simultaneous read/write and erase operations in a single memory array
JP3982871B2 (ja) 1997-04-25 2007-09-26 松下電器産業株式会社 半田印刷検査処理方法および半田印刷機
US5943692A (en) * 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US5991847A (en) 1997-06-06 1999-11-23 Acceleration Software International Corporation Data pattern caching for speeding up write operations
US5897638A (en) * 1997-06-16 1999-04-27 Ab Initio Software Corporation Parallel virtual file system
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
KR19990019377A (ko) 1997-08-29 1999-03-15 윤종용 플래시 메모리 이용 보조기억장치 및 그 방법
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6189071B1 (en) 1997-10-06 2001-02-13 Emc Corporation Method for maximizing sequential output in a disk array storage device
US6108004A (en) * 1997-10-21 2000-08-22 International Business Machines Corporation GUI guide for data mining
US6560702B1 (en) 1997-12-10 2003-05-06 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation
US6098075A (en) * 1997-12-16 2000-08-01 International Business Machines Corporation Deferred referential integrity checking based on determining whether row at-a-time referential integrity checking would yield the same results as deferred integrity checking
US6567889B1 (en) 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6018746A (en) * 1997-12-23 2000-01-25 Unisys Corporation System and method for managing recovery information in a transaction processing system
US6006291A (en) 1997-12-31 1999-12-21 Intel Corporation High-throughput interface between a system memory controller and a peripheral device
US6205527B1 (en) * 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
JP2918531B1 (ja) 1998-03-13 1999-07-12 三菱電機株式会社 キャッシュメモリ制御装置
US6298428B1 (en) 1998-03-30 2001-10-02 International Business Machines Corporation Method and apparatus for shared persistent virtual storage on existing operating systems
US6360330B1 (en) * 1998-03-31 2002-03-19 Emc Corporation System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server
US6138125A (en) 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US6263342B1 (en) * 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
JPH11288421A (ja) * 1998-04-03 1999-10-19 Fujitsu Ltd サービス提供装置、サービス受信装置、サービス提供ホスト、選択サービス受信プログラムを記録したコンピュータ読み取り可能な記録媒体、選択サービス送信プログラムを記録したコンピュータ読み取り可能な記録媒体、サービス受信装置におけるサービス選択方法及びサービス提供ホストにおける選択サービスの送信方法
US6128627A (en) 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6101601A (en) * 1998-04-20 2000-08-08 International Business Machines Corporation Method and apparatus for hibernation within a distributed data processing system
JPH11316699A (ja) 1998-05-01 1999-11-16 Hiroaki Horikoshi データベース作成方法、データベース作成システムおよびデータベース作成プログラムを記録したプログラム記録媒体
US6122685A (en) 1998-05-06 2000-09-19 Emc Corporation System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed
KR100283243B1 (ko) 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
JP3404289B2 (ja) 1998-05-22 2003-05-06 富士通株式会社 ディスク制御装置及びその制御方法
US6314433B1 (en) * 1998-06-12 2001-11-06 Hewlett-Packard Company Frame-based heroic data recovery
FR2780178B1 (fr) * 1998-06-18 2001-08-10 Inst Nat Rech Inf Automat Procede de transformation et d'acheminement de donnees entre des serveurs d'agents presents sur des machines et un serveur d'agent central present sur une autre machine
US6714935B1 (en) * 1998-09-21 2004-03-30 Microsoft Corporation Management of non-persistent data in a persistent database
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
US6519597B1 (en) * 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6249841B1 (en) 1998-12-03 2001-06-19 Ramtron International Corporation Integrated circuit memory device and method incorporating flash and ferroelectric random access memory arrays
US6338056B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
KR20000039727A (ko) 1998-12-15 2000-07-05 구자홍 플래시 메모리 접근 방법
US6279081B1 (en) 1998-12-22 2001-08-21 Hewlett-Packard Company System and method for performing memory fetches for an ATM card
JP2000194645A (ja) 1998-12-28 2000-07-14 Toshiba Corp 電子機器制御方法および電子機器制御装置および電子機器
JP3543661B2 (ja) 1999-03-05 2004-07-14 日本電気株式会社 交換機ファイルシステムにおけるバッファキャッシュ方法および装置
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US20030070065A1 (en) 1999-03-31 2003-04-10 Fleming Bruce L. Suspending to nonvolatile storage
US6401093B1 (en) * 1999-03-31 2002-06-04 International Business Machines Corporation Cross file system caching and synchronization
US6295578B1 (en) * 1999-04-09 2001-09-25 Compaq Computer Corporation Cascaded removable media data storage system
US6535949B1 (en) 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
US6381605B1 (en) * 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6370534B1 (en) * 1999-06-01 2002-04-09 Pliant Technologies, Inc. Blocking techniques for data storage
US6438750B1 (en) 1999-06-18 2002-08-20 Phoenix Technologies Ltd. Determining loading time of an operating system
TW479194B (en) 1999-06-18 2002-03-11 Phoenix Tech Ltd Method and apparatus for execution of an application during computer pre-boot operation
JP3204251B2 (ja) 1999-06-30 2001-09-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイバネーション装置及び方法、それを格納した記録媒体並びにそれを適用したコンピュータ
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
JP3812928B2 (ja) 1999-07-14 2006-08-23 株式会社日立製作所 外部記憶装置及び情報処理システム
US6513051B1 (en) 1999-07-16 2003-01-28 Microsoft Corporation Method and system for backing up and restoring files stored in a single instance store
US6311232B1 (en) 1999-07-29 2001-10-30 Compaq Computer Corporation Method and apparatus for configuring storage devices
US6542904B2 (en) * 1999-07-30 2003-04-01 International Business Machines Corporation Method and system for efficiently providing maintenance activity on a relational database that is utilized within a processing system
EP1330727A2 (en) 1999-08-05 2003-07-30 Oracle Corporation Internet file system
JP3239335B2 (ja) * 1999-08-18 2001-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 電気的接続用構造体の形成方法およびはんだ転写用基板
JP2001067258A (ja) * 1999-08-25 2001-03-16 Mitsubishi Electric Corp フラッシュメモリ内蔵半導体装置及びフラッシュメモリアドレス変換方法
US6370541B1 (en) * 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6539456B2 (en) 1999-10-13 2003-03-25 Intel Corporation Hardware acceleration of boot-up utilizing a non-volatile disk cache
US6751658B1 (en) * 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
US6338126B1 (en) * 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
WO2001044948A1 (en) * 1999-12-17 2001-06-21 Koninklijke Philips Electronics N.V. Data processor with cache
JP3562419B2 (ja) 2000-02-01 2004-09-08 日本電気株式会社 電子交換機
US6556983B1 (en) * 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
US6609182B1 (en) 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
WO2001057675A1 (en) 2000-02-02 2001-08-09 Sony Electronics Inc. System and method for effectively utilizing a cache memory in an electronic device
JP4131894B2 (ja) 2000-02-29 2008-08-13 株式会社東芝 ランダムディスクライトに好適なディスク制御機構
JP4078010B2 (ja) * 2000-03-03 2008-04-23 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク装置及び情報記録方法
US6684294B1 (en) * 2000-03-31 2004-01-27 Intel Corporation Using an access log for disk drive transactions
US6633978B1 (en) * 2000-03-31 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for restoring computer resources
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US7421541B2 (en) 2000-05-12 2008-09-02 Oracle International Corporation Version management of cached permissions metadata
WO2001088720A2 (en) 2000-05-15 2001-11-22 Superspeed Software, Inc. System and method for high-speed substitute cache
KR100694043B1 (ko) 2000-05-18 2007-03-12 삼성전자주식회사 Av 시스템 및 그 기능 확장 모듈
US6671699B1 (en) * 2000-05-20 2003-12-30 Equipe Communications Corporation Shared database usage in network devices
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
JP3705731B2 (ja) 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
US7412369B1 (en) 2000-06-09 2008-08-12 Stmicroelectronics, Inc. System and method for designing and optimizing the memory of an embedded processing system
JP4394806B2 (ja) 2000-06-22 2010-01-06 独立行政法人科学技術振興機構 バックアップ装置
TW576966B (en) 2000-06-23 2004-02-21 Intel Corp Non-volatile cache integrated with mass storage device
JP3951918B2 (ja) 2000-06-23 2007-08-01 インテル・コーポレーション 不揮発性キャッシュ
US6557077B1 (en) 2000-07-07 2003-04-29 Lsi Logic Corporation Transportable memory apparatus and associated methods of initializing a computer system having the same
US6928521B1 (en) 2000-08-01 2005-08-09 International Business Machines Corporation Method, system, and data structures for using metadata in updating data in a storage device
US6725342B1 (en) 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US6434682B1 (en) 2000-09-28 2002-08-13 International Business Machines Corporation Data management system with shortcut migration via efficient automatic reconnection to previously migrated copy
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US6629198B2 (en) 2000-12-08 2003-09-30 Sun Microsystems, Inc. Data storage system and method employing a write-ahead hash log
US7178100B2 (en) * 2000-12-15 2007-02-13 Call Charles G Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US6871271B2 (en) * 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
JP2002197073A (ja) 2000-12-25 2002-07-12 Hitachi Ltd キャッシュ一致制御装置
US6546472B2 (en) 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US6516380B2 (en) 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US6918022B2 (en) 2001-02-28 2005-07-12 Intel Corporation Memory space organization
JP2002259186A (ja) 2001-03-06 2002-09-13 Hitachi Ltd Tree構造型インデクスの整合性チェック処理方法およびプログラムおよび装置
US6877111B2 (en) * 2001-03-26 2005-04-05 Sun Microsystems, Inc. Method and apparatus for managing replicated and migration capable session state for a Java platform
US6996660B1 (en) 2001-04-09 2006-02-07 Matrix Semiconductor, Inc. Memory device and method for storing and reading data in a write-once memory array
US6584034B1 (en) 2001-04-23 2003-06-24 Aplus Flash Technology Inc. Flash memory array structure suitable for multiple simultaneous operations
US6961723B2 (en) * 2001-05-04 2005-11-01 Sun Microsystems, Inc. System and method for determining relevancy of query responses in a distributed network search mechanism
US6717763B2 (en) * 2001-05-16 2004-04-06 Hitachi Global Storage Technologies, Netherlands B.V. Power savings method and apparatus for disk drives
US6697818B2 (en) * 2001-06-14 2004-02-24 International Business Machines Corporation Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database
US6920533B2 (en) 2001-06-27 2005-07-19 Intel Corporation System boot time reduction method
US6772178B2 (en) * 2001-07-27 2004-08-03 Sun Microsystems, Inc. Method and apparatus for managing remote data replication in a distributed computer system
US20030041213A1 (en) * 2001-08-24 2003-02-27 Yakov Tokar Method and apparatus for using a cache memory
JP2003076498A (ja) 2001-09-05 2003-03-14 Hitachi Ltd ディスク記憶装置
US6769050B1 (en) 2001-09-10 2004-07-27 Rambus Inc. Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules
JP2003085041A (ja) 2001-09-10 2003-03-20 Ricoh Co Ltd ディスクキャッシュシステム
US7472230B2 (en) 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
JP3822081B2 (ja) 2001-09-28 2006-09-13 東京エレクトロンデバイス株式会社 データ書込装置、データ書込制御方法及びプログラム
JP4093741B2 (ja) 2001-10-03 2008-06-04 シャープ株式会社 外部メモリ制御装置およびそれを含んだデータ駆動型情報処理装置
US6636942B2 (en) 2001-10-05 2003-10-21 International Business Machines Corporation Storage structure for storing formatted data on a random access medium
US20030074524A1 (en) 2001-10-16 2003-04-17 Intel Corporation Mass storage caching processes for power reduction
US6944757B2 (en) 2001-10-16 2005-09-13 Dell Products L.P. Method for allowing CD removal when booting embedded OS from a CD-ROM device
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation
US6687158B2 (en) 2001-12-21 2004-02-03 Fujitsu Limited Gapless programming for a NAND type flash memory
JP2003196032A (ja) 2001-12-26 2003-07-11 Nec Corp ストレージ装置のライトキャッシュ制御方法及びストレージ装置
AU2003217366A1 (en) 2002-02-08 2003-09-02 I/O Integrity, Inc. Redirecting local disk traffic to network attached storage
US6771536B2 (en) 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
US6901499B2 (en) 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
JP4299555B2 (ja) 2002-03-15 2009-07-22 富士通株式会社 キャッシュ制御プログラム
US7136966B2 (en) 2002-03-18 2006-11-14 Lsi Logic Corporation Method and apparatus for using a solid state disk device as a storage controller cache
US6801459B2 (en) * 2002-03-22 2004-10-05 Intel Corporation Obtaining data mask mapping information
US20040044776A1 (en) * 2002-03-22 2004-03-04 International Business Machines Corporation Peer to peer file sharing system using common protocols
US7065627B2 (en) * 2002-03-25 2006-06-20 International Business Machines Corporation Method and system for providing an event driven image for a boot record
JP4229626B2 (ja) 2002-03-26 2009-02-25 富士通株式会社 ファイル管理システム
US6820180B2 (en) * 2002-04-04 2004-11-16 International Business Machines Corporation Apparatus and method of cascading backup logical volume mirrors
EP1351146A1 (en) 2002-04-04 2003-10-08 Hewlett-Packard Company Power management system and method with recovery after power failure
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US6966006B2 (en) 2002-05-09 2005-11-15 International Business Machines Corporation Adaptive startup policy for accelerating multi-disk array spin-up
US6898609B2 (en) * 2002-05-10 2005-05-24 Douglas W. Kerwin Database scattering system
US6968450B1 (en) 2002-06-01 2005-11-22 Western Digital Technologies, Inc. Disk drive caching initial host requested data in non-volatile semiconductor memory to reduce start-up time of a host computer
JP2004021370A (ja) 2002-06-13 2004-01-22 Hitachi Ltd ディスクアレイ制御装置
US7062675B1 (en) 2002-06-25 2006-06-13 Emc Corporation Data storage cache system shutdown scheme
US7065527B2 (en) * 2002-06-26 2006-06-20 Microsoft Corporation Systems and methods of optimizing metadata publishing system updates by alternating databases
US7017037B2 (en) * 2002-06-27 2006-03-21 Microsoft Corporation Apparatus and method to decrease boot time and hibernate awaken time of a computer system utilizing disk spin-up-time
US7082495B2 (en) * 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
US6941310B2 (en) * 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application
WO2004010306A1 (en) * 2002-07-23 2004-01-29 Research In Motion Limited Data store management system and method for wireless devices
JP2004054845A (ja) 2002-07-24 2004-02-19 Sony Corp データ管理装置
JP4026753B2 (ja) 2002-07-25 2007-12-26 株式会社日立製作所 半導体集積回路
NZ520786A (en) * 2002-08-14 2005-06-24 Daniel James Oaeconnell Method of booting a computer system using a memory image of the post boot content of the system RAM memory
US7043610B2 (en) 2002-08-19 2006-05-09 Aristos Logic Corporation System and method for maintaining cache coherency without external controller intervention
US7096378B2 (en) * 2002-08-29 2006-08-22 Freescale Semiconductor, Inc. Data storage system having a non-volatile IC based memory for storing user data
FI20021620A (fi) 2002-09-10 2004-03-11 Nokia Corp Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä
US20040078508A1 (en) 2002-10-02 2004-04-22 Rivard William G. System and method for high performance data storage and retrieval
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7284149B1 (en) 2002-10-16 2007-10-16 Ken Scott Fisher Intermittent connection protection for external computer devices
US20040088481A1 (en) 2002-11-04 2004-05-06 Garney John I. Using non-volatile memories for disk caching
US7035974B2 (en) 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
US7003620B2 (en) 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US7036040B2 (en) * 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
US7502791B2 (en) * 2002-11-26 2009-03-10 Norsync Technology A/S Database constraint enforcer
JP4304974B2 (ja) 2002-12-12 2009-07-29 富士ゼロックス株式会社 キャッシュメモリのデータ管理方法、及び情報処理装置
US7039765B1 (en) 2002-12-19 2006-05-02 Hewlett-Packard Development Company, L.P. Techniques for cache memory management using read and write operations
US7010645B2 (en) 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
US7437440B2 (en) 2003-01-27 2008-10-14 Microsoft Corporation Peer-to-peer networking framework application programming interfaces
KR100504696B1 (ko) 2003-02-26 2005-08-03 삼성전자주식회사 블록 소거/프로그램 정보를 저장하기 위한 상태 셀들의어레이를 포함한 낸드 플래시 메모리 장치
JP2004272324A (ja) 2003-03-05 2004-09-30 Nec Corp ディスクアレイ装置
JP2004272764A (ja) 2003-03-11 2004-09-30 Toyo Commun Equip Co Ltd コンピュータシステムの機能拡張方法
US7505958B2 (en) 2004-09-30 2009-03-17 International Business Machines Corporation Metadata management for a data abstraction model
US20050286855A1 (en) 2003-04-25 2005-12-29 Matsushita Electric Industrial Co., Ltd. Data recording apparatus
US7296043B2 (en) 2003-05-30 2007-11-13 Microsoft Corporation Memory file size adjustment
US7139933B2 (en) 2003-06-20 2006-11-21 International Business Machines Corporation Preserving cache data against cluster reboot
US7299379B2 (en) 2003-06-27 2007-11-20 Intel Corporation Maintaining cache integrity by recording write addresses in a log
JP4090400B2 (ja) 2003-07-24 2008-05-28 株式会社日立製作所 ストレージシステム
US7068575B2 (en) 2003-07-30 2006-06-27 Microsoft Corporation High speed optical disc recording
US6977842B2 (en) 2003-09-16 2005-12-20 Micron Technology, Inc. Boosted substrate/tub programming for flash memories
US7366866B2 (en) 2003-10-30 2008-04-29 Hewlett-Packard Development Company, L.P. Block size allocation in copy operations
EP1538525A1 (en) 2003-12-04 2005-06-08 Texas Instruments Incorporated ECC computation simultaneously performed while reading or programming a flash memory
WO2005057400A1 (ja) 2003-12-09 2005-06-23 Matsushita Electric Industrial Co., Ltd. 電子装置、その制御方法、ホスト装置及びその制御方法
US7130962B2 (en) 2003-12-18 2006-10-31 Intel Corporation Writing cache lines on a disk drive
JP2005191413A (ja) 2003-12-26 2005-07-14 Toshiba Corp 不揮発性半導体記憶装置
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US8458488B2 (en) * 2003-12-31 2013-06-04 International Business Machines Corporation Method and system for diagnosing operation of tamper-resistant software
US20050145923A1 (en) 2004-01-06 2005-07-07 Chiou-Feng Chen NAND flash memory with enhanced program and erase performance, and fabrication process
US6993618B2 (en) 2004-01-15 2006-01-31 Super Talent Electronics, Inc. Dual-mode flash storage exchanger that transfers flash-card data to a removable USB flash key-drive with or without a PC host
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
JP4494031B2 (ja) 2004-02-06 2010-06-30 株式会社日立製作所 ストレージ制御装置、及びストレージ制御装置の制御方法
KR100564613B1 (ko) * 2004-02-25 2006-03-29 삼성전자주식회사 플래시 메모리 및 광 드라이브의 펌웨어 모듈 동적 로딩동작 방법
US7421562B2 (en) 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US20050204091A1 (en) 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
US7620983B1 (en) 2004-03-16 2009-11-17 Symantec Corporation Behavior profiling
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7366740B2 (en) * 2004-05-03 2008-04-29 Microsoft Corporation Systems and methods for automatic maintenance and repair of enitites in a data model
JP4392601B2 (ja) 2004-05-07 2010-01-06 パナソニック株式会社 データアクセス装置および記録媒体
US7526608B2 (en) 2004-05-28 2009-04-28 Sony Computer Entertainment Inc. Methods and apparatus for providing a software implemented cache memory
US7231497B2 (en) 2004-06-15 2007-06-12 Intel Corporation Merging write-back and write-through cache policies
US20060010293A1 (en) 2004-07-09 2006-01-12 Schnapp Michael G Cache for file system used in storage system
US7171532B2 (en) 2004-08-30 2007-01-30 Hitachi, Ltd. Method and system for data lifecycle management in an external storage linkage environment
EP1789883B1 (en) 2004-08-31 2011-12-07 Freescale Semiconductor Inc. A virtual address cache and method for sharing data using a unique task identifier
EP1807767A1 (en) 2004-09-07 2007-07-18 Freescale Semiconductors, Inc. A virtual address cache and method for sharing data stored in a virtual address cache
JP4192129B2 (ja) 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置
US20060075185A1 (en) 2004-10-06 2006-04-06 Dell Products L.P. Method for caching data and power conservation in an information handling system
US7657756B2 (en) 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
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 ソニー株式会社 記憶装置
US20060106889A1 (en) * 2004-11-12 2006-05-18 Mannby Claes-Fredrik U Method, system, and program for managing revisions to a file
KR100643287B1 (ko) 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
JP4689247B2 (ja) 2004-11-19 2011-05-25 キヤノン株式会社 カメラ及びその制御方法
US20060136664A1 (en) 2004-12-16 2006-06-22 Trika Sanjeev N Method, apparatus and system for disk caching in a dual boot environment
US7480654B2 (en) 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US7480761B2 (en) 2005-01-10 2009-01-20 Microsoft Corporation System and methods for an overlay disk and cache using portable flash memory
KR100670010B1 (ko) 2005-02-03 2007-01-19 삼성전자주식회사 하이브리드 브로드캐스트 암호화 방법
US7620773B2 (en) 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
US8812781B2 (en) 2005-04-19 2014-08-19 Hewlett-Packard Development Company, L.P. External state cache for computer processor
US7516277B2 (en) 2005-04-28 2009-04-07 Sap Ag Cache monitoring using shared memory
US20060277359A1 (en) 2005-06-06 2006-12-07 Faber Robert W Blank memory location detection mechanism
US7523256B2 (en) 2005-06-15 2009-04-21 Bea Systems, Inc. System and method for scheduling disk writes in an application server of transactional environment
JP4833595B2 (ja) 2005-06-30 2011-12-07 大和ハウス工業株式会社 脱臭機能を備えたシューズボックス
US7640398B2 (en) 2005-07-11 2009-12-29 Atmel Corporation High-speed interface for high-density flash with two levels of pipelined cache
US7409524B2 (en) 2005-08-17 2008-08-05 Hewlett-Packard Development Company, L.P. System and method for responding to TLB misses
US7634516B2 (en) 2005-08-17 2009-12-15 International Business Machines Corporation Maintaining an aggregate including active files in a storage pool in a random access medium
US7533215B2 (en) 2005-09-15 2009-05-12 Intel Corporation Distributed and packed metadata structure for disk cache
US7395401B2 (en) 2005-09-30 2008-07-01 Sigmatel, Inc. System and methods for accessing solid-state memory devices
US7409537B2 (en) 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US20070150966A1 (en) 2005-12-22 2007-06-28 Kirschner Wesley A Method and apparatus for maintaining a secure software boundary
US7451353B2 (en) 2005-12-23 2008-11-11 Intel Corporation Cache disassociation detection
US7627713B2 (en) 2005-12-29 2009-12-01 Intel Corporation Method and apparatus to maintain data integrity in disk cache memory during and after periods of cache inaccessibility
JP2007233896A (ja) 2006-03-03 2007-09-13 Hitachi Ltd ストレージ装置及びその制御方法
CN101410906B (zh) 2006-03-31 2015-04-29 考文森智财管理公司 闪烁存储器系统及控制方法
US7558913B2 (en) 2006-06-20 2009-07-07 Microsoft Corporation Atomic commit of cache transfer with staging area
US7512739B2 (en) 2006-07-05 2009-03-31 International Business Machines Corporation Updating a node-based cache LRU tree
JP2008052321A (ja) 2006-08-22 2008-03-06 Murata Mach Ltd ネットワークデジタル複合機
US8121977B2 (en) 2006-08-30 2012-02-21 Iwmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US7870336B2 (en) 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US7818701B1 (en) 2006-12-22 2010-10-19 Cypress Semiconductor Corporation Memory controller with variable zone size
US20080172519A1 (en) 2007-01-11 2008-07-17 Sandisk Il Ltd. Methods For Supporting Readydrive And Readyboost Accelerators In A Single Flash-Memory Storage Device
TWI417722B (zh) 2007-01-26 2013-12-01 Hicamp Systems Inc 階層式不可改變的內容可定址的記憶體處理器
US7698506B1 (en) 2007-04-26 2010-04-13 Network Appliance, Inc. Partial tag offloading for storage server victim cache
US7945734B2 (en) 2007-08-10 2011-05-17 Eastman Kodak Company Removable storage device with code to allow change detection
US7895242B2 (en) 2007-10-31 2011-02-22 Microsoft Corporation Compressed storage management
US8190652B2 (en) 2007-12-06 2012-05-29 Intel Corporation Achieving coherence between dynamically optimized code and original code
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8082384B2 (en) * 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
US8275970B2 (en) 2008-05-15 2012-09-25 Microsoft Corp. Optimizing write traffic to a disk
US8597563B2 (en) 2008-07-11 2013-12-03 Rohm And Haas Company Recycled thermoplastic composition comprising waste thermoset material and methods of making
TWI347515B (en) 2008-09-04 2011-08-21 Asustek Comp Inc Electronic device
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
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
JP6236351B2 (ja) 2013-08-30 2017-11-22 アルプス電気株式会社 入力装置

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975095B2 (en) 2006-12-28 2011-07-05 Genesys Logic, Inc. Device and method for using a flash memory as a hard disk cache
CN101256535B (zh) * 2007-03-01 2011-03-09 创惟科技股份有限公司 硬盘资料读写快取装置及方法
US8028146B2 (en) 2007-08-09 2011-09-27 Hitachi, Ltd. Management of temporary and permanent areas in nonvolatile memories of a storage system
CN102841761B (zh) * 2007-08-09 2015-12-02 株式会社日立制作所 存储系统
US8327110B2 (en) 2007-08-09 2012-12-04 Hitachi, Ltd. Storage system including a virtual volume, a plurality of disk drives and a plurality of flash memory devices
CN102841761A (zh) * 2007-08-09 2012-12-26 株式会社日立制作所 存储系统
CN102160038A (zh) * 2008-09-15 2011-08-17 惠普开发有限公司 管理非易失性磁盘高速缓存的方法和设备
CN101727978A (zh) * 2008-10-23 2010-06-09 意法半导体股份有限公司 在电可擦和可编程的非易失性存储器中写入和读取数据的方法
CN101727978B (zh) * 2008-10-23 2015-07-01 意法半导体有限公司 在电可擦和可编程的非易失性存储器中写入和读取数据的方法
CN101853208B (zh) * 2009-03-31 2014-12-10 英特尔公司 基于文件级启发式规则来执行缓存的方法和系统
CN101853208A (zh) * 2009-03-31 2010-10-06 英特尔公司 基于文件级启发式规则来执行缓存的方法和系统
CN102792289B (zh) * 2010-03-08 2015-11-25 惠普发展公司,有限责任合伙企业 数据存储装置
CN102792289A (zh) * 2010-03-08 2012-11-21 惠普发展公司,有限责任合伙企业 数据存储装置和方法
CN103562915A (zh) * 2011-04-12 2014-02-05 阿玛得斯两合公司 高速缓冲存储器结构和方法
CN103562915B (zh) * 2011-04-12 2017-05-24 阿玛得斯两合公司 高速缓冲存储器结构和方法
CN103999042A (zh) * 2011-10-26 2014-08-20 惠普发展公司,有限责任合伙企业 加载引导数据
CN103999042B (zh) * 2011-10-26 2018-03-30 惠普发展公司,有限责任合伙企业 加载引导数据
US9858086B2 (en) 2011-10-26 2018-01-02 Hewlett-Packard Development Company, L.P. Load boot data
CN104272243B (zh) * 2012-05-31 2017-08-08 桑迪士克科技有限责任公司 用于评估修剪指令的执行的方法和主机装置
CN104272243A (zh) * 2012-05-31 2015-01-07 桑迪士克科技股份有限公司 用于评估修剪指令的执行的方法和主机装置
CN105683925A (zh) * 2013-10-29 2016-06-15 西部数据技术公司 数据存储设备启动
CN107003919A (zh) * 2014-12-24 2017-08-01 英特尔公司 容错自动双列直插存储器模块刷新
CN107430547A (zh) * 2015-03-27 2017-12-01 英特尔公司 用于非易失性存储设备的故障安全写回高速缓存模式设备驱动
CN106294189A (zh) * 2015-05-25 2017-01-04 中兴通讯股份有限公司 内存碎片整理方法及装置
CN106294189B (zh) * 2015-05-25 2020-09-25 中兴通讯股份有限公司 内存碎片整理方法及装置
CN110546628A (zh) * 2017-04-17 2019-12-06 微软技术许可有限责任公司 用有向线缓冲器最小化存储器读取提高神经网络环境性能
CN110546628B (zh) * 2017-04-17 2023-10-20 微软技术许可有限责任公司 用有向线缓冲器最小化存储器读取提高神经网络环境性能
CN112166405A (zh) * 2018-04-25 2021-01-01 美光科技公司 在存储器系统中分配可变媒体类型的存储器装置
CN114127699A (zh) * 2019-09-11 2022-03-01 国际商业机器公司 在存储器拷贝和存储器映射之间动态切换以优化i/o性能

Also Published As

Publication number Publication date
US8041904B2 (en) 2011-10-18
US20170132136A1 (en) 2017-05-11
US8255645B2 (en) 2012-08-28
TW200608198A (en) 2006-03-01
KR20060047704A (ko) 2006-05-18
US9405693B2 (en) 2016-08-02
US20050246487A1 (en) 2005-11-03
TWI370359B (en) 2012-08-11
TWI480732B (zh) 2015-04-11
US7644239B2 (en) 2010-01-05
EP1594064B1 (en) 2017-11-08
US10216637B2 (en) 2019-02-26
EP1594064A2 (en) 2005-11-09
KR101044220B1 (ko) 2011-06-29
US20120290785A1 (en) 2012-11-15
US20120005422A1 (en) 2012-01-05
TW201227293A (en) 2012-07-01
JP2013047979A (ja) 2013-03-07
EP1594064A3 (en) 2007-09-12
JP2006004407A (ja) 2006-01-05
CN100470508C (zh) 2009-03-18
US20100077197A1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
CN1801121A (zh) 非易失性存储器高速缓存性能改进
US7774540B2 (en) Storage system and method for opportunistic write-verify
JP5162535B2 (ja) メモリシステムを利用する方法及びメモリシステム
JP5554489B2 (ja) ソリッドステートメモリ(ssm)、ssmを有するコンピュータシステム及びssm駆動方法
CN106598878B (zh) 一种固态硬盘冷热数据分离方法
US20100161882A1 (en) Methods for Executing a Command to Write Data from a Source Location to a Destination Location in a Memory Device
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
KR101678911B1 (ko) 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
JP2009181314A (ja) 情報記録装置およびその制御方法
TW201432449A (zh) 非揮發性記憶裝置及其操作方法
KR20150020385A (ko) 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
CN110362499B (zh) 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法
TWI766582B (zh) 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
US9081505B1 (en) Method and system for improving disk drive performance
CN112799601B (zh) 有效数据合并方法、存储器存储装置及控制电路单元
KR101629179B1 (ko) 플래시 메모리 저장 장치 및 그것을 포함한 컴퓨팅 시스템
CN113093997B (zh) 一种基于Host Based FTL架构分离数据的方法
KR20110096813A (ko) 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법
KR20100032019A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.