CN1801121A - 非易失性存储器高速缓存性能改进 - Google Patents
非易失性存储器高速缓存性能改进 Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G1/00—Storing articles, individually or in orderly arrangement, in warehouses or magazines
- B65G1/02—Storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G47/00—Article or material-handling devices associated with conveyors; Methods employing such devices
- B65G47/74—Feeding, transfer, or discharging devices of particular kinds or types
- B65G47/88—Separating or stopping elements, e.g. fingers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mechanical Engineering (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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所述的计算机系统,其中数据的所述第一版本被存储在所述长期存储媒体中,且其中数据的所述第一版本被表示为所述数据的当前版本,进一步包括:
改变所述表示以表示所述第一版本被表示为存档版本的逻辑。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/837,986 | 2004-05-03 | ||
US10/837,986 US7644239B2 (en) | 2004-05-03 | 2004-05-03 | Non-volatile memory cache performance improvement |
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) | TWI370359B (zh) |
Cited By (17)
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)
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 |
JP5592594B2 (ja) * | 2004-03-23 | 2014-09-17 | グーグル インコーポレイテッド | デジタルマッピングシステム |
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 |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US8176564B2 (en) | 2004-11-15 | 2012-05-08 | Microsoft Corporation | Special PC mode entered upon detection of undesired state |
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 |
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 |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
WO2008070172A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
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 |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
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 |
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 |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
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 |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
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 |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
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 |
US20110066792A1 (en) * | 2008-02-10 | 2011-03-17 | Rambus Inc. | Segmentation Of Flash Memory For Partial Volatile Storage |
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 |
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 |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
US8806101B2 (en) * | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US8627014B2 (en) | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
US9785462B2 (en) | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
US8529346B1 (en) * | 2008-12-30 | 2013-09-10 | Lucasfilm Entertainment Company Ltd. | Allocating and managing software assets |
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 | 삼성전자주식회사 | 메모리 시스템 및 그것의 코드 데이터 로딩 방법 |
US8250331B2 (en) * | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
US20100332768A1 (en) * | 2009-06-26 | 2010-12-30 | Microsoft Corporation | Flexible read- and write-monitored and buffered memory blocks |
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 |
US8812796B2 (en) * | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US8370577B2 (en) * | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
US8229907B2 (en) * | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
KR101717644B1 (ko) * | 2009-09-08 | 2017-03-27 | 샌디스크 테크놀로지스 엘엘씨 | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
KR101689420B1 (ko) | 2009-09-09 | 2016-12-23 | 샌디스크 테크놀로지스 엘엘씨 | 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법 |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
KR101769883B1 (ko) * | 2009-09-09 | 2017-08-21 | 샌디스크 테크놀로지스 엘엘씨 | 저장부 할당 장치, 시스템, 및 방법 |
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 |
US8533440B2 (en) * | 2009-12-15 | 2013-09-10 | Microsoft Corporation | Accelerating parallel transactions using cache resident transactions |
US9092253B2 (en) * | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
US8850151B2 (en) | 2010-03-24 | 2014-09-30 | Apple Inc. | Hybrid-device storage based on environmental state |
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 |
US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
WO2011129808A1 (en) * | 2010-04-12 | 2011-10-20 | Hewlett-Packard Development Company, L.P. | Non-volatile cache |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
WO2012016089A2 (en) * | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for 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 |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US8527693B2 (en) | 2010-12-13 | 2013-09-03 | Fusion IO, Inc. | Apparatus, system, and method for auto-commit memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
WO2012083308A2 (en) | 2010-12-17 | 2012-06-21 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
WO2012100087A2 (en) | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
US9092337B2 (en) | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
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 |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
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 |
US9158632B1 (en) | 2011-06-30 | 2015-10-13 | Emc Corporation | Efficient file browsing using key value databases for virtual backups |
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 |
US8843443B1 (en) | 2011-06-30 | 2014-09-23 | Emc Corporation | Efficient backup of virtual data |
US9229951B1 (en) | 2011-06-30 | 2016-01-05 | Emc Corporation | Key value databases for virtual backups |
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 |
US9417794B2 (en) | 2011-07-26 | 2016-08-16 | Apple Inc. | Including performance-related hints in requests to composite memory |
US9323659B2 (en) * | 2011-08-12 | 2016-04-26 | 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 | メモリ管理装置、メモリ管理方法、制御プログラム、および、記録媒体 |
WO2013091192A1 (zh) * | 2011-12-21 | 2013-06-27 | 华为技术有限公司 | 提供多设备镜像和条带功能的磁盘缓存方法、设备和系统 |
CN102567490B (zh) * | 2011-12-21 | 2013-12-04 | 华为技术有限公司 | 数据库内的描述信息的恢复和数据的缓存方法及设备 |
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 |
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 | 인텔렉추얼디스커버리 주식회사 | 데이터 저장 시스템 및 데이터 관리 방법 |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
KR20140007990A (ko) | 2012-07-09 | 2014-01-21 | 삼성전자주식회사 | 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법 |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US9035961B2 (en) * | 2012-09-11 | 2015-05-19 | Apple Inc. | Display pipe alternate cache hint |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
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 |
US9519551B2 (en) | 2013-03-28 | 2016-12-13 | Microsoft Technology Licensing, Llc | Recovery processing for database in persistent system |
EP2979187B1 (en) | 2013-03-28 | 2019-07-31 | Hewlett-Packard Enterprise Development LP | Data flush of group table |
WO2014158166A1 (en) | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company | Address range transfer from first node to second node |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
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 |
WO2015030679A1 (en) * | 2013-08-27 | 2015-03-05 | Agency For Science, Technology And Research | Raid parity stripe reconstruction |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10019352B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
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 |
US20150310128A1 (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 |
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 |
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 |
EP3186716B1 (en) | 2014-08-27 | 2024-02-28 | Hewlett-Packard Development Company, L.P. | Updating files between computing devices via a wireless connection |
WO2016038722A1 (ja) * | 2014-09-11 | 2016-03-17 | 株式会社日立製作所 | ストレージシステム及びデータ書込み方法 |
JP5795418B2 (ja) * | 2014-09-25 | 2015-10-14 | 株式会社東芝 | キャッシュ装置、及び記憶システム |
WO2016054640A1 (en) * | 2014-10-03 | 2016-04-07 | Ezuniverse 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 |
WO2016159930A1 (en) | 2015-03-27 | 2016-10-06 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
CN107209720B (zh) | 2015-04-02 | 2020-10-13 | 慧与发展有限责任合伙企业 | 用于页面高速缓存的系统及方法以及存储介质 |
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 | 삼성전자주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 |
EP3973513A4 (en) * | 2019-05-21 | 2023-06-28 | Magic Leap, Inc. | Caching and updating of dense 3d reconstruction data |
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)
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 |
EP0392895B1 (en) | 1989-04-13 | 1995-12-13 | Sundisk Corporation | Flash EEprom system |
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 |
JPH0635802A (ja) | 1992-07-21 | 1994-02-10 | Hitachi Ltd | 複数キャッシュ付きディスク制御装置 |
JPH06140446A (ja) | 1992-07-21 | 1994-05-20 | 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 |
EP0668565B1 (en) | 1994-02-22 | 2002-07-17 | Advanced Micro Devices, Inc. | Virtual memory system |
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 | オーディオ信号混合装置 |
CA2211013A1 (en) | 1995-01-23 | 1996-08-01 | Thomas M. Eastep | System for maintenance of database integrity |
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 |
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 |
JPH1091488A (ja) | 1996-09-12 | 1998-04-10 | Sony Corp | データ処理装置および方法 |
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 |
US6209088B1 (en) | 1998-09-21 | 2001-03-27 | Microsoft Corporation | Computer hibernation implemented by a computer operating system |
US6714935B1 (en) | 1998-09-21 | 2004-03-30 | Microsoft Corporation | Management of non-persistent data in a persistent database |
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 |
TW479194B (en) | 1999-06-18 | 2002-03-11 | Phoenix Tech Ltd | Method and apparatus for execution of an application during computer pre-boot operation |
US6438750B1 (en) | 1999-06-18 | 2002-08-20 | Phoenix Technologies Ltd. | Determining loading time of an operating system |
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 |
EP1157336B1 (en) * | 1999-12-17 | 2009-07-29 | Nxp B.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 |
US6694336B1 (en) | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
AU2001233131A1 (en) | 2000-02-02 | 2001-08-14 | 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 | 株式会社日立グローバルストレージテクノロジーズ | 磁気ディスク装置及び情報記録方法 |
US6633978B1 (en) | 2000-03-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for restoring computer resources |
US6684294B1 (en) * | 2000-03-31 | 2004-01-27 | Intel Corporation | Using an access log for disk drive transactions |
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 |
US6629201B2 (en) | 2000-05-15 | 2003-09-30 | 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 |
DE10196380T1 (de) | 2000-06-23 | 2003-10-16 | Intel Corp | Nicht-flüchtiger Cache |
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 | ディスク記憶装置 |
JP2003085041A (ja) | 2001-09-10 | 2003-03-20 | Ricoh Co 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 |
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 |
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 |
US20030074524A1 (en) | 2001-10-16 | 2003-04-17 | Intel Corporation | Mass storage caching processes for power reduction |
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 | ストレージ装置のライトキャッシュ制御方法及びストレージ装置 |
WO2003067787A2 (en) | 2002-02-08 | 2003-08-14 | 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 |
US7353350B2 (en) * | 2002-07-23 | 2008-04-01 | 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 |
US7502791B2 (en) | 2002-11-26 | 2009-03-10 | Norsync Technology A/S | Database constraint enforcer |
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 |
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 |
CN100356344C (zh) | 2003-04-25 | 2007-12-19 | 松下电器产业株式会社 | 数据记录装置 |
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 |
EP1701244B1 (en) | 2003-12-09 | 2015-04-01 | Panasonic Corporation | Electronic device, control method thereof, host device, and control method thereof |
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 |
US7366740B2 (en) | 2004-05-03 | 2008-04-29 | Microsoft Corporation | Systems and methods for automatic maintenance and repair of enitites in a data model |
US7143120B2 (en) | 2004-05-03 | 2006-11-28 | Microsoft Corporation | Systems and methods for automated maintenance and repair of database and file systems |
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 |
ATE536587T1 (de) | 2004-08-31 | 2011-12-15 | Freescale Semiconductor Inc | Virtueller adressen-cache und verfahren zum gemeinsamen benutzen von daten unter verwendung einer eindeutigen task-kennung |
US20070266199A1 (en) | 2004-09-07 | 2007-11-15 | Freescale Semiconductor, Inc. | 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 |
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 |
US7409524B2 (en) | 2005-08-17 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | System and method for responding to TLB misses |
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 | ストレージ装置及びその制御方法 |
EP2002442B1 (en) | 2006-03-31 | 2010-11-10 | Mosaid Technologies Incorporated | Flash memory system control scheme |
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 |
CN103473181B (zh) | 2007-01-26 | 2017-06-13 | 英特尔公司 | 分级式不可变内容可寻址存储器处理器 |
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 |
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 |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
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 | アルプス電気株式会社 | 入力装置 |
-
2004
- 2004-05-03 US US10/837,986 patent/US7644239B2/en active Active
-
2005
- 2005-05-02 TW TW094114140A patent/TWI370359B/zh not_active IP Right Cessation
- 2005-05-02 TW TW101110178A patent/TWI480732B/zh not_active IP Right Cessation
- 2005-05-03 EP EP05103697.8A patent/EP1594064B1/en active Active
- 2005-05-03 KR KR1020050037139A patent/KR101044220B1/ko active IP Right Grant
- 2005-05-06 JP JP2005135274A patent/JP2006004407A/ja active Pending
- 2005-05-08 CN CNB2005100837924A patent/CN100470508C/zh active Active
-
2009
- 2009-11-30 US US12/627,710 patent/US8041904B2/en not_active Expired - Fee Related
-
2011
- 2011-09-13 US US13/231,088 patent/US8255645B2/en not_active Expired - Lifetime
-
2012
- 2012-07-23 US US13/555,803 patent/US9405693B2/en not_active Expired - Fee Related
- 2012-11-05 JP JP2012243915A patent/JP2013047979A/ja active Pending
-
2016
- 2016-07-21 US US15/216,059 patent/US10216637B2/en not_active Expired - Lifetime
Cited By (29)
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 |
---|---|
US20100077197A1 (en) | 2010-03-25 |
CN100470508C (zh) | 2009-03-18 |
KR20060047704A (ko) | 2006-05-18 |
KR101044220B1 (ko) | 2011-06-29 |
US20120290785A1 (en) | 2012-11-15 |
EP1594064A3 (en) | 2007-09-12 |
US20050246487A1 (en) | 2005-11-03 |
JP2013047979A (ja) | 2013-03-07 |
US9405693B2 (en) | 2016-08-02 |
US20120005422A1 (en) | 2012-01-05 |
US8041904B2 (en) | 2011-10-18 |
US8255645B2 (en) | 2012-08-28 |
TW201227293A (en) | 2012-07-01 |
TWI480732B (zh) | 2015-04-11 |
EP1594064B1 (en) | 2017-11-08 |
US7644239B2 (en) | 2010-01-05 |
EP1594064A2 (en) | 2005-11-09 |
JP2006004407A (ja) | 2006-01-05 |
TWI370359B (en) | 2012-08-11 |
TW200608198A (en) | 2006-03-01 |
US20170132136A1 (en) | 2017-05-11 |
US10216637B2 (en) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1801121A (zh) | 非易失性存储器高速缓存性能改进 | |
JP4371771B2 (ja) | 不揮発性メモリシステムにおいて用いられる電力管理ブロック | |
US7774540B2 (en) | Storage system and method for opportunistic write-verify | |
JP5554489B2 (ja) | ソリッドステートメモリ(ssm)、ssmを有するコンピュータシステム及びssm駆動方法 | |
US8316201B2 (en) | Methods for executing a command to write data from a source location to a destination location in a memory device | |
CN106598878B (zh) | 一种固态硬盘冷热数据分离方法 | |
TW201619971A (zh) | 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法 | |
KR101678911B1 (ko) | 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템 | |
JP2009181314A (ja) | 情報記録装置およびその制御方法 | |
TW201432449A (zh) | 非揮發性記憶裝置及其操作方法 | |
CN110362499B (zh) | 电子机器及其控制方法、计算机系统及其控制方法以及主机的控制方法 | |
KR20150020385A (ko) | 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 | |
TW201303584A (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) | 저장 장치 및 컴퓨팅 시스템 그리고 그것의 데이터 관리 방법 |
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. |