KR101044220B1 - 비휘발성 메모리 캐시 성능 향상 - Google Patents

비휘발성 메모리 캐시 성능 향상 Download PDF

Info

Publication number
KR101044220B1
KR101044220B1 KR1020050037139A KR20050037139A KR101044220B1 KR 101044220 B1 KR101044220 B1 KR 101044220B1 KR 1020050037139 A KR1020050037139 A KR 1020050037139A KR 20050037139 A KR20050037139 A KR 20050037139A KR 101044220 B1 KR101044220 B1 KR 101044220B1
Authority
KR
South Korea
Prior art keywords
delete delete
nonvolatile memory
term storage
storage medium
long term
Prior art date
Application number
KR1020050037139A
Other languages
English (en)
Other versions
KR20060047704A (ko
Inventor
센크 에간
클락 디. 니콜슨
댄 테오도시우
딘 엘. 데윗
에밀리 니콜 힐
하누만따 알 코다발라
존 엠. 파쳄
마크 요셉 즈비코우스키
마이클 제이. 즈윌링
마이클 알. 포틴
나단 스티븐 오브르
패트릭 엘 스테멘
라지브 와이 나갈
슈렌다 버마
쎄론 포웰
윌리암 제이. 웨스터리넌
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060047704A publication Critical patent/KR20060047704A/ko
Application granted granted Critical
Publication of KR101044220B1 publication Critical patent/KR101044220B1/ko

Links

Images

Classifications

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

Abstract

보다 효율적인 영구 저장 장치를 제공하기 위하여, 비휘발성 메모리와 함께 하나 이상의 장기 저장 매체가 포함된다. 일 실시예에서, 비휘발성 메모리의 일부는 장기 저장 매체에 대한 기입 및 판독을 위한 기입 버퍼 및 판독 캐시로 사용된다. 기입 버퍼 및 판독 캐시로서의 비휘발성 메모리의 사용을 제어하기 위한 인터페이스들이 제공된다. 또한, 비휘발성 메모리의 일부는 장기 저장 매체의 특정 섹터들에 대한 직접적인 맵핑을 제공하기 위해 사용된다. 영구 저장 장치에 관한 설명 데이터가 비휘발성 메모리의 다른 부분에 저장된다.
영구 저장 장치, 장기 저장 매체, 판독 캐시, 기입 버퍼, 비휘발성 메모리

Description

비휘발성 메모리 캐시 성능 향상{NON-VOLATILE MEMORY CACHE PERFORMANCE IMPROVEMENT}
도 1은 본 발명이 속하는 예시적인 컴퓨터 시스템을 전반적으로 나타내는 블럭도.
도 2는 도 1의 예시적인 컴퓨터 시스템에서 본 발명이 실시될 수 있는 위치를 전반적으로 나타내는 블럭도.
도 3은 본 발명의 한 특징에 따른 영구 저장 장치의 블럭도.
도 4는 본 발명의 한 특징에 따른 영구 저장 장치의 블럭도.
도 5는 본 발명의 일 실시예에 따른 오퍼레이팅 시스템, 비휘발성 메모리 및 장기 저장 매체 사이의 데이터의 흐름을 나타내는 블럭도.
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리의 캐시부의 상태를 나타내는 상태도.
도 7은 본 발명이 일 실시예에 따른 부트 상태의 동작의 흐름도.
도 8은 본 발명의 일 실시예에 따른 실행 상태에서의 동작의 흐름도.
도 9는 본 발명의 일 실시예에 따른 셧 다운(shut down) 상태에서의 동작의 흐름도.
도 10은 본 발명의 일 실시예에 따른 비휘발성 메모리의 맵핑부의 플러시 (flush) 동안의 동작의 흐름도.
〈도면의 주요부분에 대한 부호의 설명〉
134: 오퍼레이팅 시스템
202: NV 메모리
300: 영구 저장 장치
430: 장기 저장 매체
500: 캐시부
510: 맵핑부
관련 특허 출원에의 상호 참조
본 출원은 이전에 출원된 아래의 출원들과 관련되어 있다.
미국 특허 출원 제 NN/NNN,NNN호(출원일 XX/XX/XXXX) "Method and Apparatus to Reduce Power Consumption and Improve Read/Write Performance of Hard Disk Dirves Using Non-Volatile Memory".
미국 특허 출원 제 NN/NNN,NNN호(출원일 XX/XX/XXXX) "Apparatus and Method to Decrease Boot Time and Hibernate Awaken Time of a Computer System".
미국 특허 출원 제 NN/NNN,NNN호(출원일 XX/XX/XXXX) "Improved Reliability of Diskless Network-Bootable Computers Using Non-Volatile Memory Cache".
본 발명은 전반적으로 컴퓨터 시스템에 관한 것으로, 보다 구체적으로는 장기 저장 유닛과 함께 비휘발성 메모리를 이용함으로써 컴퓨터 시스템의 성능을 향상시키는 것에 관한 것이다.
컴퓨터 시스템을 기능토록하기 위한 영구 메모리를 제공하기 위하여 소정의 저장 장치들이 컴퓨터 시스템상에서 이용된다. 예를 들면, 자기 하드 디스크 드라이브 어셈블리는 본 기술 분야에서 널리 공지되어 있다. 그러나, 이러한 영구 메모리는 몇몇 단점을 가진다. 데이터를 판독하거나 기입하기 위하여 자기 하드 드라이브를 준비하는 데에는 시간이 많이 소모된다. 대부분의 경우에, 데이터의 판독 또는 기입을 위해서는 디스크의 회전을 물리적으로 개시시키고, 올바른 위치상에 판독/기입 헤드를 위치시키는 것이 요구된다.
저장 장치로부터의 판독 또는 기입을 위한 준비는 시간과 전력을 많이 소비한다. 추가적으로, 이러한 자기 하드 드라이브 메모리 및 그 컴포넌트들에 의해서 잡음이 생성될 수 있다. 따라서, 이러한 단점들을 개선하는 컴퓨터 시스템을 위한 향상된 메모리에 대한 요구가 존재하게 된다.
영구 저장 장치의 새로운 구성은 저장 장치와 관련된 성능 향상을 제공할 수 있을 것이다. 그러나, 단순히 영구 저장 장치에 액세스하는 통상적인 기술을 사용하는 것은 이러한 새로운 구성에 대하여 많은 혜택을 제공하지는 않을 것이다. 통상적으로, 컴퓨터 시스템의 동작을 제어하는 데에 오퍼레이팅 시스템이 이용된다. 이러한 오퍼레이팅 시스템은 컴퓨터 시스템 내의 다른 애플리케이션과 하드 디스크 사이를 조정한다. 따라서, 향상된 성능을 제공하기 위하여 애플리케이션 프로그래밍 인터페이스(API)와 같은 방법이 요구된다. 마찬가지로, 컴퓨터 시스템에 의해서 이용되는 저장을 위한 새로운 구성 및 새로운 제어 기술을 생성하는 시스템에 대한 요구가 존재한다.
수행 시간과 효율을 향상시키기 위하여, 비휘발성 메모리와 함께, 하나 이상의 장기 저장 매체가 포함되는 영구 저장 장치가 오퍼레이팅 시스템 또는 애플리케이션 프로그램이 비휘발성 메모리를 효과적으로 이용할 수 있도록 하는 애플리케이션 프로그램 인터페이스, 커맨드 및 인터럽트를 제공하거나 이에 응답하는 오퍼레이팅 시스템과 함께 이용된다. 비휘발성 메모리가 물리적으로 장기 저장 매체에 포함되는 것도 고려할 수 있지만, 비휘발성 메모리가 장기 저장 매체와는 별도로 형성되어 장기 저장 매체와 함께 영구 저장 장치를 제공하도록 기능할 수도 있다.
일 실시예에서, 장기 저장 매체의 스핀 업(spin up) 또는 스핀 다운(spin down)의 요청을 허용하는 API(application program interface)가 노출된다. 다른 API는 비휘발성 메모리가 장기 저장 매체의 특정 어드레스로부터의 데이터로 플러싱(flushing) 또는 파퓰레이팅(populating)될 것에 대한 요청을 허용한다. 또 다른 API는 데이터가 장기 저장 매체에 직접 기입될 것을 허용하거나, 데이터가 매우 작은 기입으로서 기입될 것을 허용하거나, 또는 비휘발성 메모리 캐시에 기입된 데이터가 장기 저장 매체에의 기입을 위하여 저장되지 않고 무시될 것을 허용한다. 추가적으로, 이러한 저장 장치를 위한 이용가능한 기존 비휘발성 메모리에 대한 세부사항이 제공된다.
일 실시예에서, 비휘발성 메모리는 두가지 방식 중 하나의 방식으로 제공될 수 있다. 첫번째 방식에서, 캐시가 비휘발성 메모리내에 제공된다. 이러한 캐시는 장기 저장 매체로부터의 데이터 판독을 위한 판독 캐시로서, 그리고 장기 저장 매체에 데이터를 기입하기 위한 기입 버퍼로서 이용된다. 이러한 방식으로, 장기 저장 매체에의 판독 및 기입은 산발적으로 발생하지 않고 무리를 지어 나타나, 장기 저장 매체의 보다 적은 판독, 기입 및 준비를 요구할 수 있을 것이다.
비휘발성 메모리의 일부는 오퍼레이팅 시스템 또는 다른 애플리케이션에 의해서 직접적으로 소유될 수 있다. 장기 저장 매체로부터의 소정의 논리 섹터 어드레스(LSA)는 비휘발성 메모리에 맵핑되며, 이들 LSA로부터의/로의 판독 또는 기입은 비휘발성 메모리내에서 수행될 것이다. 이러한 맵핑은 상기된 비휘발성 메모리부내의 캐싱과 함께 발생할 수 있다.
본 발명의 다른 특징은 아래에서 기술될 것이다.
발명의 구성과 바람직한 실시예의 상세한 설명은 첨부된 도면을 참조하여 읽을 때에 가장 잘 이해될 것이다. 본 발명을 설명하기 위하여, 도면에 본 발명의 예시적인 구성이 나타나 있다. 그러나, 본 발명이 개시된 특정한 방법과 수단에 한정되는 것은 아니다.
아래의 설명에서, "NV 메모리"라는 용어는 반도체 비휘발성 메모리를 일컫는데에 이용될 것이다. NV 메모리는 전원이 제거되는 때에도 데이터를 유지하며, 데 이터가 삭제되고 새로운 데이터로 재프로그래밍될 수 있는 임의의 타입의 메모리를 의미한다. NV 메모리는 배터리 백업 메모리를 포함할 수 있을 것이다. NV 메모리는 퍼스널 컴퓨터 슬롯 카드같이 컴퓨터의 별도의 컴포넌트로서, 또는 시스템 메모리내의 컴포넌트로서 컴퓨터내에 위치할 수 있다. 이와 달리, 노트북 장치 등의 도킹 스테이션의 하드 드라이브와 같은 영구 저장 장치의 컴포넌트일 수도 있다. 이동 시스템에서, 디스크 드라이브가 가지는 트랙 버퍼 메모리가 이용될 수도 있다(즉, 본 발명이 트랙 버퍼 메모리를 이용하여 실시될 수도 있다).
이동 시스템을 위한 장래의 디스크는 디스크를 회전하도록 유지하는 데에 실제로 전력을 공급받지 않고 메모리를 유지하는 데에 배터리 전원으로부터 전력을 공급받을 수 있을 것이다. NV 메모리는 부트 섹터 및 파티션 테이블과 같은 알려진 디스크 섹터 뿐만 아니라 파일 데이터, 파일 메타 데이터를 저장할 수 있을 것이다. 전력 다운(down) 또는 절전 모드로의 진입동안, 컴퓨터 시스템은 이전의 사용 히스토리에 근거하여 NV 메모리내에 저장될 정적 및 동적 구성 데이터를 결정한다. 또한, 데이터는 시스템 동작 동안 NV 메모리 내에 저장되어, 디스크 드라이브가 스핀 업(spin up)되는 횟수를 감소시킨다. 이동 PC 등에 대하여, 디스크 드라이브가 스핀업된 횟수를 감소시키면 사용자 경험을 향상시키는데, 이는 전력이 감소되고, 이로 인하여 주어진 배터리 용량으로 보다 오랫동안 지속되는, 보다 작고 경량의 이동 PC 등이 가능하도록 하기 때문이다. 이는 사용자에게는 소음을 일으켜 성가신 존재인 큰 소리의 고속 팬을 구동시킬 필요성 또한 감소시킨다.
도면을 살펴보면, 동일한 참조 부호는 동일한 요소를 나타내며, 본 발명이 적절한 컴퓨팅 환경에서 실시되는 것으로 나타나 있다. 요구되는 바는 아니나, 본 발명은 프로그램 모듈과 같은 퍼스널 컴퓨터에 의해서 실행되는 컴퓨터 실행가능 명령의 일반적인 컨텍스트로 기술될 것이다. 통상적으로, 프로그램 모듈은 특정한 업무를 수행하거나, 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 더욱이, 본 기술 분야의 당업자는 본 발명이 핸드핼드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 가전제품, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성에서 실시될 수 있음을 이해할 것이다. 본 발명은 또한 통신 네트워크를 통해서 연결되는 원격 프로세싱 장치에 의해서 업무가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있을 것이다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있을 것이다.
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 다른 범용 또는 특수목적 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드 헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령과 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크된 원격 프로세싱 장치에 의해 태스크를 수행하는 분산형 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈 및 그외 데이터는 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러 한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상 을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기입하는 하드 디스크 드라이브(140), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기입하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기입하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카 드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 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)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 퍼스널 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스 템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
이어지는 설명에서, 본 발명은 달리 표시되지 않는 한 하나 이상의 컴퓨터들에 의해서 수행되는 동작과 연산의 부호적인 표현을 참조하여 기술될 것이다. 이처럼, 때때로 컴퓨터에 의한 실행으로 불리는 이러한 동작과 연산은 데이터를 구조화된 형식으로 나타내는 전기 신호의 컴퓨터 처리 유닛에 의한 조작을 포함한다. 이러한 조작은 데이터를 변환하거나 혹은 데이터를 컴퓨터의 메모리 시스템내의 위치에 유지하는데, 이는 컴퓨터의 동작을 본 기술 분야의 당업자에게 공지된 방식으로 재구성하거나 혹은 변경하는 것이다. 데이터가 유지되는 데이터 구조는 데이터의 포맷에 의해서 규정되는 특유의 특성을 가지는 메모리의 물리적 위치이다. 그러나, 아래에 기술되는 다양한 동작 및 연산이 하드웨어로도 구현될 수 있는 바, 본 발명이 앞서 기술된 컨텍스트와 연관하여 기술되겠지만 이에 한정하기 위함이 아님을 본 기술 분야의 당업자가 알 수 있을 것이다.
컴퓨터(110)내의 NV 메모리 포함
이제 도 2를 살펴보면, NV 메모리(200)는 컴퓨터(110)내에서 pc 슬롯내에 끼워질 카드와 같은 컴퓨터(110)의 별도의 컴포넌트(202)로서, 또는 시스템 메모리내의 컴포넌트(204)로서 위치할 수 있을 것이다. 이와 달리, 노트북 장치의 도킹 스 테이션 등에서, 하드 드라이브(141)와 같은 영구 저장 장치(300)의 컴포넌트(206)일 수도 있다. NV 메모리(200)에 대한 다른 위치는 CompactFlash Association 등에 의해서 유지되는 CompactFlash 사양에 따른 것과 같이 컴퓨터 시스템에 플러그 인(plug in)될 수 있는 분리형 반도체 비휘발성 메모리 장치의 형태이다. 별도의 컴포넌트(202)로서의 NV 메모리(200)는 NV 메모리를 가지는 하드 드라이브를 설치하지 않아도 되는, NV 메모리(200)를 가지지 않는 레거시 시스템(legacy system)상의 성능을 향상시키는 능력을 제공한다.
이제 도 3을 살펴보면, 영구 저장 장치(300)는 하나 이상의 디스크(304), 디스크(304)의 판독 및 기입을 위한 판독/기입 헤드(306), 판독/기입 헤드(306)를 디스크(304)상의 위치에 이동시키는 스핀들/아머쳐 어셈블리(spindle/armature assembly)(308)와 같은 비휘발성 메모리 저장 매체(장기 저장 매체)를 포함하는 디스크 어셈블리(302)를 가진다. 디스크 어셈블리(302)가 도 3에 도시되고 아래의 설명에서 이용되지만, 본 발명의 기술상의 장점들은 다른 장기 저장 매체가 이용되는 경우에도 적용될 수 있으며, 디스크 어셈블리가 장기 저장 매체로 이용되는 경우에는 제한없이 본 발명이 이용될 수 있을 것이다. 컨트롤러(310)는 디스크 어셈블리가 저장 매체로부터 데이터를 판독하거나 저장 매체에 기입하도록 명령한다. 캐시 메모리(312)는 저장 매체로부터 판독되거나 저장 매체에 기입되는 데이터를 버퍼링하는 데에 이용된다. 본 발명의 NV 메모리(200)는 컨트롤러(310)내에, 또는 영구 저장 장치(300)의 별도의 컴포넌트로서 위치한다. 일 실시예에서, NV 메모리(200)는 하나 이상의 연속적인 섹터들로 구성되는 디스크(304)의 적어도 하나의 큰 영역으로 나타나도록 컴퓨터에 노출된다. IDE(Integrated Drive Elecronics) 또는 SCSI(Small Computer System Interface) 사양에 변화는 요구되지 않는다. NV 메모리(200)는 오퍼레이팅 시스템 및 기타 컴포넌트가 NV 메모리(200)의 크기를 문의하고, NV 메모리의 상태를 제어하며, 트랜잭션 절차를 이용하여 NV 메모리(200)에 데이터를 기입하고, 상기된 바와 같이 NV 메모리(200)를 기입 버퍼로 이용할 수 있도록 오퍼레이팅 시스템에 노출된다. 다른 실시예에서, 컴퓨터(110)는 약 10㎳의 전형적인 시간 대신에 디스크(304)의 큰 영역에 대한 500㎲ 이하의 액세스 시간을 관찰함으로써 NV 메모리의 존재를 검출할 수 있다.
NV 메모리의 오퍼레이팅 시스템 및 호스트 애플리케이션 이용
다시 도 2를 참조하면, 성능을 향상시키도록 NV 메모리를 이용하기 위하여, 본 발명의 일 실시예에 따라 오퍼레이팅 시스템(OS)(134)에는 NV 메모리(200)의 향상된 이용을 제공하기 위하여 다양한 인터페이스가 제공된다.
먼저, 검출 인터페이스가 제공된다. OS(134)는 NV 메모리가 존재하는지 여부 및 NV 메모리의 크기를 검출할 수 있다. 이러한 기능은 NV 메모리(200)가 컴퓨터(110)내에 존재하는지 여부를 판정하기 위하여 애플리케이션 프로그램(135) 및 기타 프로그램 모듈(136)이 이용할 수 있는 인터페이스로서 노출된다. 추가적으로, 파일 시스템 또는 다른 객체 저장장치와 같은 OS 컴포넌트는 컴퓨터(110)상의 존재 및 NV 메모리(200)의 크기를 결정하는 데에 검출 인터페이스를 이용할 수 있다. 사용 정보 또는 타입 정보와 같은 NV 메모리(200)와 관련된 기타 정보 또한 제공될 수 있을 것이다. 이러한 정보는 소정의 NV 메모리가 제한된 수명을 가지기 때문에 유용할 수 있을 것이며, 이것은 소정의 상황에서는 NV 메모리(200)의 이용에 영향을 미칠 것이다.
디스크 어셈블리(302)내의 디스크(304)로부터 판독하거나 이에 기입하기 위하여, 디스크는 스핀 업되어야 하고, 판독/기입 헤드(306)는 스핀들/아마쳐 어셈블리에 의해서 적절한 위치로 이동되어야 한다. 이러한 준비 동작에는 시간이 소요되며, 디스크 어셈블리(302)로부터 데이터가 판독되거나, 이로부터 데이터가 기입될 수 있기 전에 지연을 야기한다. 디스크(304)에 기입시의 준비 동작은, 비록 판독/기입 헤드(306)의 이동을 또한 포함하는 개념이지만, 디스크의 스핀 업으로 불릴 것이다. 사실, 디스크가 회전 매체로 나타나 있기는 하지만, 영구 저장 장치(300)에서 NV 메모리(200)는 데이터가 메모리에 기입되기 전에 준비 동작을 요구하는 (디스크 어셈블리(302)와는 다른)다른 형태의 장기 저장 매체와 함께 포함될 수 있음이 고려될 수 있다. 영구 저장 장치(300)상의 장기 저장 매체의 이용을 위한 임의의 준비 동작은, 추가적인 준비 동작이 존재하거나, 또는 실제 회전 매체의 회전이 포함되지 않는 것이 고려될지라도 메모리의 "스핀 업(spin up)" 또는 "스피닝 업(spinning up)"으로 알려질 것이다. 영구 저장 장치(300)에의 기입에 앞서, 애플리케이션 또는 오퍼레이팅 시스템(134) 자신이 장치(300)상의 장기 저장 매체의 스핀 업을 요구하는 기입이 발생할 상당한 가능성이 존재함을 인식할 수 있기 때문에, 장기 저장 매체의 스핀업을 기다려야 할 필요에 의해서 야기되는 지연은 애플리케이션 또는 오퍼레이팅 시스템(134)이 장기 저장 매체의 스핀 업을 요청하는 것을 가능케 하는 인터페이스의 이용을 통해서 제거될 수 있다.
이와 유사하게, 스핀 다운 인터페이스 또한 제공된다. 전력 소비를 줄이기 위하여, 영구 저장 장치(300)의 디스크 어셈블리(302)에 기입이 행해지지 않는다면, 디스크(304)의 회전은 중지될 수 있을 것이다. 다시 말하면, 영구 저장 장치(300)는 회전 매체를 포함하고, 실제 스핀 다운이 전력 소비를 감소시킬 것으로 나타나 있지만, NV 메모리(200)와는 별도로 영구 저장 장치(300)상에 다른 형태의 장기 저장 매체가 고려될 수 있으며, 이러한 장기 저장 매체는 디스크 어셈블리(302)의 스핀 다운과 유사한 동작을 가질 것이며, 즉각적인 또는 비교적 신속한 메모리에의 판독 및 기입을 가능케하는 동작을 중지함으로써 몇몇 혜택이 얻어진다. 이러한 동작의 중지는 회전 매체의 물리적 스피닝 다운을 실제로는 포함하지는 않을 것이나, 이러한 중지는 본 명세서에서 "스핀 다운" 또는 "스피닝 다운"으로 불릴 것이다.
스핀 다운 및 스핀 업 동작은 최대 속도보다 작게 수행될 것이다. 이러한 동작들을 보다 낮은 속도에서 수행하는 것은 이들 동작과 관련되는 음향 잡음(acoustic noise) 감소시키고, 전력 소비에서의 임의의 관련 스파이크들을 감소시킬 수 있다. 스핀 업 및 스핀 다운(또는 장기 저장 매체에 대한 기타 예비 동작들)은 이러한 동작들에 대한 절대적 요구 이전에 수행될 수 있기 때문에, 이들 장점은 성능에 영향을 주지 않고도 얻어질 수 있다. 디스크가 빠르게 보다는 서서히 스핀 업하는 경우, 디스크는 완전히 스핀 업 될 때 사용가능하게 될 것이지만, 사용자 및 나머지 시스템에 대한 영향은 최소화된다.
NV 메모리(200)의 일부 또는 전부가 영구 저장 장치(300)의 디스크 조립체 (302)에 대한 기입 캐시로서 사용될 수 있다. 이러한 경우, 성능을 이유로 NV 메모리(200)가 영구 저장 장치(300)의 다른 메모리에 플러시되어야(flushed) 하는지를 애플리케이션 또는 오퍼레이팅 시스템(134)이 판정하는 상황에 대한 인터페이스가 제공된다. 이러한 인터페이스는 NV 메모리(200)를 장기 저장 매체에 플러시한다.
NV 메모리(200)의 다른 부분들은 다른 우선순위로 마크될 수 있다. 예를 들어, NV 메모리(200)의 일 영역은, 높은 우선 순위를 NV 메모리(200)에 유지하면서, 장기 저장 매체에 플러시되기 보다는 오히려, 바람직하게는 본 방식으로 핀처리 또는 마크되지 않은 NV 메모리(200)의 다른 영역에 "핀처리(pinned)되거나" 또는 마크될 것이다. 본 발명의 일 실시예는 복수의 우선 순위들 중 하나가 NV 메모리(200)의 영역들에 할당될 수 있게 한다. 예를 들어, 3개의 우선순위, 최고 우선순위(또는 "핀처리된" 메모리 또는 "우선순위 1" 메모리), 제2 우선순위("우선순위 2") 및 최저 우선순위(또는 "우선순위 3")가 있을 수 있다. NV 메모리(200)에서 스페이스가 요구되는 곳에서, 최고 우선순위 메모리가 플러시되기 이전에 최저 우선순위가 장기 저장 매체에 플러시된다. 따라서, 본 발명의 일 실시예에 따르면, NV 메모리(200)의 캐시를 플러시하기 위한 몇몇 인터페이스 옵션들이 제공될 수 있다- 예를 들어, 전체 캐시를 플러시하는 것, 캐시의 보다 낮은 우선순위 영역들만을 플러시하는 것, 또는 인터페이스로의 호출에 특정된 우선순위와 동일한 또는 그 이하인 우선순위인 캐시의 모든 영역을 플러시하는 것 -.
다른 성능 개선으로서, NV 메모리(200)에 기입된 데이터가 차후 삭제될 것이 기 때문에, OS(134) 또는 애플리케이션으로 하여금 NV 메모리(200)에게 NV 메모리(200)에 기입된 특정 데이터가 더 이상 필요없고, NV 메모리(200) 기입 캐시로부터 폐기될 수 있다는 것을 시그널링할 수 있게 하는 인터페이스가 제공된다. 이러한 방식으로, 메모리가 플러시되는 경우, 폐기되는 영역들은 장기 저장 매체에 기입되지 않을 것이고, 폐기된 영역에 대한 판독이 수행되는 경우, 에러 또는 랜덤 데이터가 리턴될 것이다.
이러한 인터페이스는 예를 들어 트랜잭션을 관리하기 위해 사용될 수 있다. 종종 트랜잭션 로그는 장기 저장될 필요가 없는 중간 데이터를 포함한다. 예를 들어, 일 경우에 있어서, 트랜잭션이 발생할 때, 트랜잭션에 관한 메타-데이터가 먼저 로그에 넘겨진다. 이러한 로그가 NV 메모리(200)에 저장되면, 기입은 디스크의 스핀 업을 요구하지 않을 것이다. 트랜잭션이 완료되고 변경사항들이 넘겨지면, 트랜잭션에 관해 저장된 메타-데이터는 변경되거나 삭제되어 완료된 트랜잭션을 반영한다. 그러나, 트랜잭션이 완료되어 넘겨질 수 있기 이전에 인터럽트되면, NV 메모리(200)의 데이터는 존속할 것이고, 따라서 어떠한 트랜잭션이 발생되고 있었는지를 판정하고, 이러한 인터럽트된 트랜잭션들에 관한 문제점들을 해결할 수 있다.
다른 예에서, 이러한 인터페이스는 임시 파일들에 관련된 임의의 데이터 또는 메타데이터가 디스크에 플러시하는 것을 회피하기 위해 사용될 수 있다. 초기에, 이들 파일들 및 그 메타데이터는 NV 메모리(200)에 생성될 수 있다. 파일들이 삭제되면, OS(134) 또는 애플리케이션은 NV 메모리(200)에 기입된 파일 데이터 및 메타데이터가 더 이상 요구되지 않고 NV 메모리(200) 기입 캐시로부터 폐기될 수 있다는 것을 NV 메모리(200)에게 시그널링할 수 있다.
NVM 우회 인터페이스 또한 제공된다. 특정 상황들에서는, NV 메모리의 사용이 판독 또는 기입 동작들에 효율적이지 못할 것이다. 도 3을 다시 참조하여, 예를 들어, 어느 애플리케이션이 NV 메모리(200)의 사이즈에 비해 큰 데이터를 영구 저장 장치(300)에 기입하는 중이라면, NV 메모리(200)가 가득찰 것이고 데이터는 NV 메모리(200)로부터 장기 저장 매체로 플러시될 필요가 있을 것이기 때문에, 그 데이터 중 일부를 NV 메모리(200)에 기입하는 것은 일반적으로 유용하지 않다. 따라서, NVM 우회 인터페이스는 이를 사용하는 오퍼레이팅 시스템 또는 애플리케이션으로 하여금 영구 저장 장치(30)로부터 판독될 또는 영구 저장 장치(300)에 기입될 데이터가 NV 메모리(200)에 보다는 오히려 장기 저장 매체상의 물리적 메모리 어드레스로부터 직접 판독되거나 또는 상기 물리적 메모리 어드레스에 직접 기입되도록 특정할 수 있다.
일 실시예에서, 인터럽트는 영구 저장 장치(300)의 디스크 컨트롤러가 디스크 조립체(302)를 준비하거나 또는 실제로 스핀 업 할 때 영구 저장 장치(300)로부터 호스트 컴퓨터(110)로 전달된다. 인터럽트는 오퍼레이팅 시스템(134) 또는 그 컴포넌트나 애플리케이션에 전송될 수 있다. 이러한 인터럽트의 수신시, 기회를 보아 동작하도록 적절하게 프로그램된 수신자는, 데이터가 NV 메모리(200)로부터 장기 저장 매체로 또는 장기 저장 매체로부터 NV 메모리(200)로 이동된다는 것을 보장할 수 있고, 이는 장기 저장 매체가 곧 스핀업 되고 이러한 이동에 대해 준비 되기 때문이다. 이는 장기 저장 매체 스핀-업 횟수를 감소시키고, 따라서 디스크 구동 전력 소비를 감소시킨다. 또한, 메모리가 스핀 업 중이거나 스핀 업 된다는 것을 나타내는 인터럽트의 수신시, OS는 NVM 우회 인터페이스를 사용하여 임의의 비영구적 기입 버퍼들 또는 캐시들을 장기 저장 매체에 직접 플러시할 수 있다.
또한, OS 컴포넌트들 및 애플리케이션들은 영구 저장 장치(300)로의 기입이 원자로서 취급되도록 하는 원자 기입 인터페이스(atomic write interface)를 사용할 수 있다. 원자적으로 기입될 모든 데이터는 NV 메모리(200)에 저장된다. 이러한 것이 완료되면, 영구 저장 장치는 자동으로 기입될 모든 데이터가 장기 저장 매체에 기입되는 것을 보장한다. 원자적으로 기입될 모든 데이터가 NV 메모리(200)에 저장되기 이전에 오류가 발생하면, 에러가 리턴되고, 수신된 데이터는 폐기된다. NV 메모리(200)에 대한 저장이 완료되면, 원자 기입은 시스템 또는 전원 오류에 기인하여 실패하고, 시스템이 재시작할 때 이러한 오류가 검출되며, NV 메모리에 저장된 원자 세트의 데이터는 장기 저장 매체에 재기입된다. 이는 대량 데이터의 원자 기입이 바람직한 애플리케이션들 및 세팅들에서, 예를 들어 데이터베이스 애플리케이션들에서 성능을 향상시키는데, 이는 이들 애플리케이션들이 공지된 "톤 기입(torn writes)" 문제점을 다룰 필요가 없기 때문이다.
일 실시예에서, 오퍼레이팅 시스템(134), 그 컴포넌트들 또는 애플리케이션들은 NV 메모리(200)를 사용하여 정규적으로 사용되는 특정 파일들 또는 오브젝트들을 저장한다. 따라서, 장기 저장 매체로부터의 보다 비용이 드는 기입/판독이 회피될 수 있다. 예를 들어, 데이터베이스 트랜잭션 로그들, 파일 시스템 메타데 이터 및 기타 메타데이터가 NV 메모리(200)에 저장된다. NV 메모리(200)에서 데이터를 저장하는 영역들에 서로 다른 우선순위를 할당하기 위해 우선 순위 스킴이 사용되는 경우, 일 실시예에서, 이러한 자주-액세스되는 파일들은 높은 우선순위로 분류되고, 이는 장기 저장 매체로의 기입/장기 저장 매체로부터의 판독 비용의 회피를 더욱 돕는다.
NV 메모리의 구획화(Partitioning of the NV Memory)
일 실시예에서, NV 메모리(200)는 NV 메모리(200)의 일부가 오퍼레이팅 시스템에 의해 배타적으로 사용될 수 있게 하는 구획을 포함한다. 이러한 것의 구현중 하나는 오퍼레이팅 시스템(134)으로 하여금 NV 메모리(200)를 구획화할 수 있게 하고, 오퍼레이팅 시스템으로부터의 입력을 갖는 디스크 컨트롤러 펌웨어에 의해 직접 제어되는 NV 메모리(200)의 OS 구획을 갖게 하는 것이다.
따라서, 디스크 컨트롤러를 통해, OS(134)는 다음에 필요할 것 같은 특정 섹터들을 갖는 NV 메모리(200) 캐시의 파퓰레이션(population)을 요청한다. 예를 들어, 이들 섹터는 다음 부팅시 필요한 또는 필요로 될 것 같은 섹터들이다. 또 다른 예로서, 이들 섹터는 OS(134)가 가까운 미래에 필요로 할 것으로 예상하는 섹터들이다.
따라서, 이러한 실시예에서, 장기 저장 매체가 스핀 업 될 때마다 OS는 디스크 구동 컨트롤러에 논리적 섹터 어드레스들(LSAs)의 리스트를 보내어 NV 메모리(200)에 판독 캐시의 OS 구획을 리파퓰레이트할 수 있다. 이러한 리스트는 상술된 바와 같은 우선순위 스킴에 따라 사용될 우선순위 정보를 포함할 수 있어, 디스크 구동 컨트롤러가 판독 캐시 데이터를 기입 버퍼링 데이터로 얼마나 미리 중복기입할지를 나타낸다.
OS(134) 내에는, 특정 세트의 LSA를 NV 메모리(200)에 맵핑하는 메카니즘이 제공된다. 이는 NV 메모리(200)의 섹션이 OS(134)의 직접 제어하에 놓일 수 있게 한다. 이들 LSA에 대한 판독 및 기입은 항상 NV 메모리(200)를 액세스할 것이다. 이들 LSA의 데이터는 NV 메모리가 오퍼레이팅 시스템에 의해 재구성되지 않으면 저장 유닛에 플러시되지 않을 것이다. 일 실시예에서는, NV 메모리(200)의 이러한 섹션에, OS(134)는 시스템 오류를 진단하기 위해 사용된 동작들의 최근 이력인 "블랙 박스 레코더 정보(black box recorder information)"를 저장한다. OS(134)는 시스템이 여전히 부트하고 기계적 디스크 오류들을 진단할 수 있도록 안전한 부트에 요구되는 부트 복구 콘솔과 파일들을 저장한다. 이는 또한 시스템 파일의 정규 표현 대신에 또는 이에 추가적으로 다음 부트가 사용되는데 요구되는 가능한 압축된 패키지의 파일들을 저장할 수 있다.
상술된 인터페이스들 및 명령어들이 이하 <표 1>에 개시된다.
<표 1 : 영구 저장 장치용 인터페이스들 및 명령어들>
명령어 명령어를 위한 데이터 구동 동작
쿼리 NVM(Query NVM) 사용할 NV 메모리의 존재 판정; 또한 NV 메모리에 관한 사이즈 또는 기타 정보를 판정하기 위해 사용될 수 있음
디스크 스핀업
(Spin Up Disk)
디스크를 판독/기입(R/W) 액세스에 대해 준비시킴. 기회를 보아 데이터를 기입 버퍼로부터 디스크로 플러시함.
디스크 스핀다운
(Spin Down Disk)
R/W 헤드를 멈추고 디스크 스핀들을 턴 오프하여 전력을 아끼고 낭비를 줄임.
NVM 캐시 플러시
(Flush NVM Cache)
모든 변경된 섹터들을 NV 메모리 캐시로부터 디스크로 이동시킴.
NVM 캐시-언핀 플러시
(Flush NVM Cache-unpin)
플러시 NVM 캐시에서와 동일하지만 핀처리된(pinned) 블럭들도 제거됨.
NVM 캐시-올 플러시
(Flush NVM Cache-All)
맵핑된 부분의 모든 변경된 데이터 및 R/W 캐시의 모든 변경된 데이터를 디스크에 플러시함
NVM 캐시 파퓰레이트
(NVM Cache Populate)
LSA 및 우선순위의 리스트
[예를 들어, 1 = 핀(pin), 2 = 우선순위 3 섹터들 이후 제거, 3 = 필요에 따라 제거]
디스크를 스핀 업함. 캐시를 디스크에 플러시함. 디스크로부터의 데이터를 리스트에 정의된 바와 같이 NV 메모리 캐시에 복사함. 그들의 LSA 및 우선순위와 함께 NV 메모리 캐시에 리스트를 저장함
NVM 캐시를 통한 기입
(Write through NVM Cache)
NV 메모리에 버퍼링하기 보다는 오히려 데이터를 디스크에 직접 기입함.
원자 기입
(Atomic write)
섹터 번호 다음 N 섹터들의 데이터를 원자 유닛으로서 기입함. 디스크 구동 컨트롤러가 이들 N 섹터들을 비휘발성 스토리지(NV 메모리 또는 디스크)에 기입하는 것에 실패하면, 에러가 리턴되고, 데이터가 무시되며, NV 메모리 캐시 또는 디스크 스페이스가 이용됨. 이는 데이터가 원자 기입 완료 여부를 특정하는 메타-데이터와 함께 캐시에 저장되도록 전원 사이클에 발생한다는 점에 주의.
최근 기입 무시
(Ignore recent write)
무시할 LSA의 리스트 섹터가 여전히 기입 버퍼에 있고 디스크로 이동되지 않았다면, 섹터는 디스크로 이동되지 않고 폐기됨. 기입 버퍼에서의 대응 스페이스는 컨트롤러에 의해 미래 기입 버퍼링을 위해 재기입됨.
NVM 구획 맵핑
(Map NVM partition)
디스크로부터 NVM으로 맵핑되어야 할 LSA의 리스트 이하 설명됨; NV 메모리의 일부가 오퍼레이팅 시스템(134) 또는 기타 애플리케이션을 위해 맵핑될 때; 캐시 메모리로부터의 모든 데이터와 NV 메모리의 맵핑된 부분들을 디스크에 플러시함. 맵핑된 LSA를 위해 데이터를 디스크로부터 NV 메모리로 복사함. 여유가 있다면 판독 캐시 리스트를 갖는 캐시 부분을 리파퓰레이트함.
다른 애플리케이션들 및 프로덕트들 중, 데이터베이스들 및 데이터베이스 프로덕트들은 시간 및 메모리 등 리소스의 소비를 감소시키기 위해 기입 시 복사(copy-on-write) 기능을 사용할 수 있다. 기입 시 복사는 이전 버전의 데이터가 사용가능하게 될 수 있도록 한다. 이는 예를 들어 데이터베이스에 저장된 현재 버전의 정보 이외에도, 이전 버전의 정보가 사용자에게 유용할 수 있기 때문에 유용하다.
기입 시 복사가 없으면, 이전 버전의 데이터에 대한 정보를 제공하는 방식 중 하나는 사용자에게 관심이 되는 시점에 데이터베이스의 완전한 사본을 만드는 것이다. 이러한 것이 발생할 때에는, 그 데이터베이스에 관련된 모든 파일들이 저장된다. 그러나, 이러한 기술은, 일정량의 저장 스페이스에 저장되는 데이터베이스에 대하여, 각 사본이 그 양만큼의 저장 스페이스를 요구할 것이기 때문에, 스페 이스 집약적이다. 이러한 어프로치는 사본 자체가 다량의 데이터의 이동을 포함하기 때문에 시간 소비적이다.
따라서, 그 대신, 본래 버전으로부터의 변경사항들이 저장된다. NV 메모리(200)가 사용될 수 있는 경우, 이는 기입 시 복사 액티비티들을 수행하기 위해 사용될 수 있다. 기입 시 복사의 제1 구현에서는, 변경되어야 할 본래 데이터가 시스템 메모리(130)에 저장된다. 이는 변경되지 않은 사본의 저장이 빠르게 수행될 수 있게 한다. 상술된 바와 같이, 이 사본은 이후 시점에 디스크 스토리지로 이동될 수 있다. 블럭-지향 캐싱을 사용하는 데이터베이스 시스템은 이를 이용하여 메모리 기입에 기인하는 시간을 감소시킬 수 있다.
제2 기입시 복사 구현에서는, 본래 버전이 장기 저장 매체에 저장될 수 있다. 이러한 경우, 데이터가 NV 메모리(200)에 위치되면, 기입이 발생하기 이전에 추가적인 사본이 NV 메모리(200)에 만들어질 수 있다. 데이터가 NV 메모리에 저장되지 않는 경우, 본래 저장된 사본은 속성 사본- 변경되지 않은 버전을 저장하는 사본 -으로서 취급될 수 있다. NV 메모리(200)는 변경된 버전을 제공한다. 이러한 버전이 NV 메모리(200)로부터 플러시되거나 또는 그렇지 않으면 디스크로 이동될 때, 본래 디스크에 저장된 사본은 이제 변경 이전 데이터의 속성 사본이기 때문에, 버전은 메모리(200)의 새로운 위치에 기입될 것이다.
NV 메모리를 사용하는 디프래그멘테이션(Defragmentation Using NV Memory)
데이터의 일정한 저장 및 삭제를 통해 파일 시스템들 및 데이터베이스들 등 큰 데이터 스토어는 프래그멘테이션(fragmentation)으로서 알려진 조건을 나타낼 수 있다. 이는 저장 장치 상의 자유 메모리의 큰 범위가 더욱 산재하게 될 때 발생하고, 성능 저하를 초래할 수 있다. 이를 정정하기 위해, 디프래그멘테이션이 사용된다. 디프래그멘테이션 프로세스는 연속적인 어드레스 스페이스의 파일들을 재결합한다. 디프래그멘테이션을 수행하기 위해, 데이터 파일들은 디스크 상의 물리적 메모리 위치 내에서 이동되어 연속적으로 저장된 파일들을 생성한다. 따라서, 임시 저장 위치들이 사용되고; 제1 파일에 의해 차지되는 스페이스가 제2 파일에 의해 사용되듯이, 제1 파일은 손실되지 않도록 몇몇 위치에 저장되어야 한다.
일 실시예에서, NV 메모리는 디프래그멘테이션 동안 임시 저장 위치로서 사용된다. 데이터는 NV 메모리에 기입된다. 다른 데이터의 위치는 다른 데이터의 저장의 연속성을 증가시키기 위해 변경된다. 그리고, NV 메모리로부터의 데이터는 디프래그먼트되는 저장 장치에 기입된다. 임시로 저장된 데이터가 저장 장치( 컴퓨터 시스템의 하드 디스크 등)에 복구될 때, 임시 사본은 NV 메모리로부터 제거된다. 따라서, 디프래그멘테이션은 장기 저장 매체의 사용 및 임시 데이터를 저장하기 위한 이러한 사용의 관련 비용을 요구하지 않고 발생할 수 있다.
영구 저장 장치 제어(Control over the Persistent Storage Device)
도 4에 도시되고 전술된 바와 같이, 영구 저장 장치(300)는 장기 저장 매체(430)(예를 들면, 도 3으로부터의 디스크 어셈블리(302)) 모두를 포함할 수 있다. 그러한 상황에서, CPU(120)로부터의 데이터는 호스트 컴퓨터(110)와 영구 저장 장치(300) 사이에서 이동한다. 이 플로우는 영구 저장 장치(300) 내의 호스트 컴퓨터 인터페이스(420) 및 호스트 컴퓨터(110) 내의 호스트 컴퓨터 인터페이스(400)에 의하여 전달된다. 장치제어 펌웨어(440)는 장기 저장 매체(430) 및 NV 메모리(200) 내의 저장을 직접 또는 간접적으로 제어할 수 있다.
영구 저장 장치(300)의 사용을 개시하기 위하여, 오퍼레이팅 시스템(134)은, 전술된 바와 같이, 저장 유니트 구성에 질의하여 NV 메모리(200)가 이용 가능한지 여부 및, 만일 그렇다면, NV 메모리(200)의 사이즈 및 다른 파라미터들(유형, 이용 히스토리 등)을 결정한다. 그 후 NV 메모리(200)이 이용될 방법에 관한 결정이 이루어진다.
NV 메모리(200)의 이용은 두가지 방법으로 제어될 수 있다. 첫째, NV 메모리(200)의 일부 부분들은 저장 유니트의 제어를 받을 수 있다. 둘째, NV 메모리(200)의 일부 부분들은 OS(134)의 직접 제어를 받을 수 있다. 전술된 바와 같이, NV 메모리(200)의 일 부분이 OS의 직접 제어를 받는 경우, 그 부분은 LSA들의 특정 세트를 맵핑하는데 이용된다. 이 LSA들로의 기입 및 판독은 그 후 상기 맵핑된 위치에서 NV 메모리(200)를 항상 액세스할 것이다. 이 LSA들 내의 데이터는 NV 메모리가 오퍼레이팅 시스템에 의하여 재구성되지 않으면 저장 유니트로 플러시되지 않을 것이다.
직접적인 오퍼레이팅 시스템 제어를 받지 않는 NV 메모리(200)의 부분은 캐시로서 이용된다. 이 캐시부는 판독 캐시 및 기입 버퍼로서 이중 임무를 수행한다. 기입 버퍼가 디스크로 플러시되는 경우 OS는 기회를 보아 디스크로부터의 데이터로 NV 메모리(200)를 다시 차지하여 판독 캐시로서 기능한다. 이 캐시 데이터는 기입 버퍼 데이터로 중복 기입된다. 결국 판독 캐시는, 버퍼가 다 차고, 저장 유니트 컨트롤러가 디스크를 스핀업하고, 버퍼 데이터를 디스크로 플러시하고, 판독 캐시를 다시 채우며, 디스크를 스핀다운하는 때에, 기입 버퍼 데이터에 의하여 완전히 중복 기입된다.
캐시부 및 맵핑부 모두를 갖는 NV 메모리의 사용은 도 5에 도시된다. NV 메모리(200)는 캐시부(500) 및 맵핑부(510)로 구분된다. 화살표(520)에 의하여 도시된 바와 같이, 맵핑부(510)로 맵핑되지 않은 LSA들로부터 판독되거나 그것으로 기입된 데이터는 캐시부(500)로 기입되고; 화살표(530)에 의하여 도시된 바와 같이, LSA로부터 판독되는 데이터가 캐시부에 존재하지 않으면, 그것은 장기 저장 매체(430)로부터 판독된다. 설명된 바와 같이, 캐시부(500)는 판독 캐시 및 기입 캐시 모두로서 기능하며, 화살표(540)는 캐시부(540) 내의 데이터가 장기 저장 매체(430)로 플러시되고, 캐시부(500)를 기입 버퍼로서 사용할 여유가 있는 경우 데이터는 장기 저장 매체(430)로부터 캐시부(500)로 카피되는 것을 나타낸다.
상기 맵핑부(510)는 특정한 LSA들로 맵핑된다. 따라서, 화살표(550)에 의하여 도시된 바와 같이, 이 LSA들이 판독되거나 기입되는 경우, 이 판독들 및 기입들은 맵핑부(510)로부터 직접적인 것이다. 맵핑부(510) 내의 데이터는 장기 저장 매체(430)로 플러시되지 않고, 또한 장기 저장 매체(430)는 맵핑부로 데이터를 제공하지 않는다. 이것에 대한 유일한 예외는 리맵핑(remapping)의 경우이다. 화살표(560)에 의하여 도시되는 바와 같이, 새로운 맵핑이 생성되는 경우, 이전의 맵핑으로부터의 데이터는 장기 저장 매체(430)로 카피되고 맵핑된 새로운 LSA들을 위한 디스크로부터의 데이터는 NV 메모리(200)(특히, 맵핑부(510)로)로 카피된다.
캐시부(500)의 제어
캐시부의 제어는 도 6에 도시된 상태도에 의하여 정의된다. 도 6에 도시된 바와 같이, 부트 상태(600)는 초기화(603)동안 또는 셧다운 이후 리부트(reboot)(625)동안 시작된다. 전이(605)에 의하여 도시되는 바와 같이, 부트 상태 이후, 오퍼레이팅 시스템이 실행 상태(610)로 이동하는 경우, 초기에 캐시를 채우는 논리 섹터 어드레스들의 리스트와 함께, 캐시를 플러시하고 다시 차지하기 위한 커맨드를 보낸다. 전이(613)에 의하여 도시되는 바와 같이, 캐시를 플러시하고 다시 차지하기 위한 이 명령이 오퍼레이팅 시스템(134)으로부터 수신되는 때마다, 실행상태(610)의 오퍼레이팅이 다시 수행된다. 셧다운 상태(620)로 이동하기 위하여, 전이(615)가 발생한다. 셧다운이 발생하는 경우, 일 실시예에 따라, LSA 리스트와 함께, 캐시를 플러시하고 다시 차지하기 위한 커맨드가 보내진다.
디스크 드라이브 컨트롤러 펌웨어(440)는 전력소모를 감소시키며 더 느린 디스크(430)를 이용하는 것보다는 어떤 경우에는 NV 메모리(200)를 이용함으로써 신뢰성 및 성능을 향상시킨다. 디스크 드라이브 컨트롤러(440)는 LSAs(logical sector addresses)의 특정 리스트로부터의 데이터로 NV 메모리(200)의 캐시부(500)를 차지하기 위한 커맨드를 OS(136)로부터 수신한다. LSA의 리스트는 또한 최상의 우선순위 섹터들은 캐시로부터 제거될 가능성이 가장 적고 최저의 우선순위 섹터들은 제거될 가능성이 가장 높게 되는 섹터들의 우선순위화(prioritization)를 포함한다. 캐시(500)가 차지되면, 디스크(430)는 스핀다운되고 캐시(500)는 기입 버퍼로서 이용된다. 판독을 위하여 캐시된 섹터들은 우선순위에 따라 버퍼가 채움에 따라 중복기입된다. 디스크는 판독 캐시 미스(read cache miss)가 존재하고, 기입 버퍼가 다 채워지거나, OS(134)로부터 명백한 스핀업 커맨드가 수신되는 경우에만 스핀업된다. 이 방식으로 디스크(430)는 턴온되는 시간과 비교하여 긴 주기의 시간동안 오프로 유지될 것이므로, 전력을 감소시키고 신뢰성을 향상시킨다. 최상의 우선순위 LSA는 OS(134)에 의하여 달리 지시가 있을 때까지 NV 메모리(200) 캐시 내에서 영구적으로 고정된다.
부트 상태(600) 내에서의 동작들은 도 7에 도시된다. 도 7에 도시된 바와 같이, 단계 700에서, 오퍼레이팅 시스템(134) 및 BIOS에 의하여 요청된 바대로, NV 메모리(200)로부터의 부트 상태 블럭들이 제공된다. 동시에, 장기 저장 매체(430)(예를 들면, 디스크)가 스핀업된다.
이 상태가 종료된 후, 실행 상태(610)가 시작되고, OS는 특정 LSA들로 캐시를 플러시하고 다시 차지하기 위한 커맨드를 보낸다. 실행 상태(610)의 동작들이 도 8에 도시된다. 도 8에 도시된 바와 같이, 실행 상태에서, 디스크가 이미 스핀업되지 않았다면, 단계 800에서 디스크는 스핀업된다. 단계 810에서, NV 메모리(200) 내의 임의의 변형된 섹터들은 디스크/장기 저장 매체(430)로 플러시된다. OS에 의하여 특정된 LSA들은 그 후 단계 820에서 디스크로부터 판독 캐시를 위한 NV 메모리(200)로 판독된다. 그 후 디스크는 단계 830에서 스핀다운된다. 단계 840에서, NV 메모리(200)는 판독 캐시 및 기입 버퍼로서 이용된다. 캐시된 섹터들은 요청된 대로 제공되고, 기입되는 섹터들은 NV 메모리 버퍼에 저장되며, 우선순위에 따라 판독 캐시 섹터들을 중복기입한다. 기입 버퍼가, 단계 850에서,풀 스레 시홀드(full threshold)를 초과하는 경우, 단계 800 내지 830에서, NV 메모리는 플러시되고 다시 차지된다.
셧다운하는 커맨드가 수신되는 경우, 셧다운 상태(620)가 시작된다. 셧다운 상태(620)의 동작은 도 9에 도시된다. 단계 900에서, 디스크가 스핀업된다. 단계 910에서, NV 메모리(200) 내의 임의의 변형된 섹터들은 디스크/장기 저장 매체(430)로 플러시된다. OS에 의하여 특정된 LSA는 그 후 단계 920에서 디스크로부터 판독 캐시를 위한 NV 메모리(200)로 판독된다. 이것은 NV 메모리가 오퍼레이팅 시스템(134) 및 BIOS에 의하여 스타트업(startup)시 요청될 이용 가능한 데이터를 가지도록 한다.
기능의 셧다운 또는 유사한 중지들의 다른 형태들(예를 들면, 스탠바이(standby) 및 하이버네이트(hibernate))도 도 6 내지 9에서 도시된 방법들에 따라 기능한다. 기능을 재개하는데 필요한 정보는 NV 메모리(200) 내에 저장되며, 이것은 더 신속한 재개를 가능케 한다.
다시, 전술된 바와 같이, OS(134) 및 애플리케이션(OS(134)를 통함)은 디스크를 스핀업 또는 스핀다운하는 시기를 결정하는 것을 돕기 위하여 장치 컨트롤러(440)로 다른 힌트를 제공할 수 있고, 반대로, 컨트롤러 FW가 어떤 이유로 디스크를 스핀업시켜야만 한다면, 디스크가 스핀업중이라는 것을 알리는 인터럽트를 OS(134)로 보낸다. 오퍼레이팅 시스템 및 애플리케이션은 그 후 이 상황을 이용하여 휘발성 작업 메모리에 캐시된 비중대(non-critical) 데이터를 저장 유니트로 기입할 수 있다.
일 실시예에서, 컨트롤러(440) 펌웨어는 또한 NV 메모리(200)로부터 실현된 장점들을 이용하여 하드 드라이브 저장 유니트들 내의 음향 잡음을 낮춘다. 기입 버퍼 스레시홀드를 충분히 낮게 설정함으로써, 컨트롤러(440)는 더 느리게 스핀업하고 기입 버퍼를 디스크(430)로 플러시하는데 더 오래 걸릴 수 있어서, 서보(servos)를 찾는 헤드 및 스핀들로부터의 음향 잡음을 감소시킨다. 이 기술은 또한 전원으로부터의 피크 전류 드로우(peak current draw)를 감소시킨다. 컨트롤러(440) 펌웨어는 또한 버퍼 내의 데이터의 비교적 큰 양을 이용하여 인접 블럭들 내의 디스크에 데이터를 위치시키고 데이터를 디스크로 플러시하는 경우 프래그멘테이션을 피한다.
캐시(500)의 정확한 상태는 컨트롤러(440)에 의해서만 알려진다. 오퍼레이팅 시스템은 컨트롤러(440)에 질의함으로써 그것의 스냅샷을 얻을 수 있다. 임의의 시점에 오퍼레이팅 시스템(134)은 캐시(500)를 플러시하며 일 커맨드를 보냄으로써 가까운 장래에 요구될 것으로 믿는 섹터들의 새로운 세트들로 개시하는 것을 선택할 수 있다(도 6의 전이 613).
일 실시예에서, LSA들(예를 들면, 전이(615)에서의 하이버네이트로부터 재개 또는 부트를 위하여 필요한 것들, 또는 일반적으로 부트 상태(600)로부터의 전이시 또는 실행 상태(610)에서 주어진 것들)의 리스트를 제공함으로써 파일들로 캐시부(500)를 차지하기 위한 OS(134)로부터의 특정한 커맨드가 없는 경우 컨트롤러는 부트 또는 S4 재개 직후 디스크 IO들을 모니터링함으로써 디스크로부터 NV 메모리(200)로 그 자체의 프리페칭(prefeteching)을 수행할 수 있을 것이다. 이 IO들은 다음의 부트 또는 S4 재개시 요구될 가능성이 가장 높은 데이터를 나타낸다. 이 데이터가 컨트롤러(440)에 의하여 수집되면 그것을 NV 메모리(200) 내의 테이블에 저장된다. 다음의 셧다운 또는 하이버네이트시, 셧다운 또는 하이버네이트 이전에 디스크로부터 NV 메모리(200)를 차지하기 위하여 컨트롤러(440)는 이 데이터를 이용한다.
맵핑부(510)의 제어
오퍼레이팅 시스템은 NV 메모리(200)의 맵핑부(510)를 직접 제어한다. 이 부분에 대하여, 오퍼레이팅 시스템은 맵핑부(510)로 반드시 맵핑하여야 하는 특정 LSA(logical sector addresses)를 정의한다. 이것은 NV 메모리(200)에 저장된 데이터의 직접 제어를 오퍼레이팅 시스템에 제공한다. 일 실시예에서, 그러한 제어는 다른 애플리케이션들로 제공될 수도 있다.
이것이 이루어질 수 있는 한 방법은 특정하지만 반드시 연속일 필요는 없는 LSA들의 세트를 맵핑하거나 섀도(shadow)하는 NV 메모리(200)의 일 부분을 오퍼레이팅 시스템(134)이 생성하는 것이다. 이 부분을 생성하기 위하여 OS는 디스크 컨트롤러로 일 커맨드를 보내서 전체 NV 메모리(200)를 플러시하며 이것은 이전의 맵핑 및 기입 버퍼 내의 모든 변형된 데이터를 장기 저장 매체(430)로 이동시킨다. 그것은 그 후 NV 메모리(200)의 맵핑부(510)로 LSA들의 리스트를 맵핑하는 커맨드를 보낸다. 컨트롤러(440)는 디스크로부터의 섹터들을 NV 메모리(200)로 카피하고 오퍼레이팅 시스템(136)에 의하여 달리 지시받을 때까지 그들을 그곳에 유지시킨다. 맵핑을 위하여 영구 저장 장치(300)로 보내진 LSA(logical sector addresses) 가 디스크(430)의 현재 어드레스 공간을 초과하여 확장하면 이들은 디스크의 어드레스 공간의 끝에 첨부된다. 리맵핑이 발생하는 경우 OS(134)는 이 확장된 어드레스들 내의 데이터를 디스크의 어드레스 공간 내의 위치들로 카피하여 데이터 소실을 피할 필요가 있을 것이다. 오퍼레이팅 시스템은 NV 메모리(200) 내의 이 맵핑된 섹터들을 직접 제어한다.
OS(134)는 디스크(430)로 맵핑부(510)를 주기적으로 플러시하고 새로운 세트의 LSA들을 맵핑부(510)로 맵핑할 수 있다. 이것은 도 10에 도시된 바와 같이 발생한다. 단계 1000에서, 디스크(430)는 판독/기입을 위하여 준비된다. 단계 1010에서, NV 메모리(200)의 맵핑부(510)로부터의 데이터는 디스크(430)로 플러시된다. 단계 1020에서, 캐시부(500)는 디스크로 플러시되기도 한다. 단계 1030에서, 맵핑되는 새로운 LSA들은 디스크(430)로부터 NV 메모리(200)의 맵핑부(510)로 카피된다. 도시하지는 않지만, 일 실시예에서 캐시부(500)는 판독 캐시로서 기능하기 위하여 디스크(430)로부터의 데이터로 채워진다. 디스크(430)는 그 후 단계 1040에서 스핀다운된다.
이 맵핑에 대한 대안으로서, NV 메모리는 영구 저장 장치(300)의 논리 볼륨(logical volume) 또는 별도의 파티션으로서 구성될 수도 있다. 연속적인 논리 섹터는 그 후 전술된 바와 같이 오퍼레이팅 시스템(136)의 직접 제어를 받는다.
영구 저장 장치(300)에 대한 자기 기술적(Self-Descriptive) 메모리부
일 실시예에서, 도 5에 도시된 바와 같은 캐시부(500) 및 맵핑부(510) 이외에, NV 메모리의 일 부분은 진단 또는 다른 정보가 유지되도록 하는 영구 저장 장 치(300)에 대한 어떤 정보를 저장시키도록 준비된다.
일 실시예에서, 그러한 기술적 정보는 라벨 정보, 장기 저장 매체(430) 내의 불량 섹터들의 수, 특정한 양의 시간에 기입되는 섹터 수에 관한 통계 데이터, 특정한 양의 시간에서의 디스크의 스핀업 또는 스핀다운의 수, 및 장기 저장 매체가 실행한 시간의 수를 포함한다.
일 실시예에서, 이 자기 기술적 메모리부는 OS 구성요소나 애플리케이션이 메모리를 액세스하도록 하는 특정한 인터페이스에 의하여 판독된다. 또 다른 실시예에서, 영구 저장 장치(300)는 디스플레이를 포함한다. 예를 들면, 영구 저장 장치(300)에 LCD 디스플레이가 포함될 수 있다. 컴퓨터(110)를 통하여 또는 직접(예를 들면, 영구 저장 장치(300)상의 버튼을 누름으로써), 영구 저장 장치(300)로 특정한 질의(query)가 이루어지는 경우, 자기 기술적 메모리부로부터의 데이터가 디스플레이된다.
일 실시예에서, OS 또는 애플리케이션은 자기 기술적 메모리에 저장된 정보를 이용하여 저장 장치(300)가 그 수명에 근접하고 있고 상기 저장 장치(300)에 저장된 데이터는 새로운 저장 장치로 전송될 필요가 있는 시기를 결정한다.
NV 메모리(200)가 컴퓨터의 동작에 관한 데이터를 저장하는 "블랙 박스" 기입기로서 이용되도록 하는 정보가 저장될 수도 있다. 비정상적인 셧다운과 같은, 실패의 경우, 컴퓨터의 동작에 관한 정보가 저장되고 상기 실패를 분석하기 위하여 검색될 수 있다. 그런 정보는 상기 컴퓨터 시스템 내에서 실행하는 프로세스들에 관한 프로세스 정보; 상기 컴퓨터 시스템에서 실행하는 스레드(thread)에 관한 스 레드 정보; 데이터 액세스; 및 장치 액세스를 포함할 수 있다. 항공기 내의 블랙박스 기입기와 유사하게, 제한된 양의 공간이 이 동작 정보에 할당될 수 있으며, 그 공간에 적당할 수 있는 것보다 더 많은 정보가 수집되는 경우, 이전에 저장된 동작 정보는 더 새로운 정보로 중복 기입된다.
마모 레벨링(Wear Leveling)
어떤 NV 메모리 기술들은 너무 많은 소거 사이클 이후에 마모를 겪는다. 그러한 마모의 개시를 지연시키기 위하여, 일 실시예에서, 컨트롤러(440)는 각 영역에 대하여 대략적으로 균등한 이용이 이루어지는 것을 확실히 하도록 NV 메모리(200)의 모든 영역들의 소거의 균형을 잡는다. 컨트롤러(440)는 빈번히 기입되어지는 디스크 섹터들에 관련된 NV 메모리 블럭들의 마모를 피하기 위하여 NV 메모리 내에서 이용된 물리 위치들을 변경시킨다. 일 실시예에서, 이것은 마모 레벨링을 실행하기 위하여 맵핑부에서 이용 가능한 공간이 항상 존재하는 것을 확보하는데 이용되는 특정한 양의 오버헤드를 요구한다. 예를 들면, 섹터들의 1MB가 맵핑부(510)를 위하여 준비되면, 디스크 컨트롤러는 마모 레벨링이 적절히 작용하도록 실질적으로 1.5 MB를 준비한다.
결론
이전의 예들은 설명의 목적으로만 제시되었으며 본 발명을 한정하는 것으로 해석되지 않는다는 점을 주목한다. 본 발명이 다양한 실시예들을 참조하여 기술되었지만, 여기에서 이용된 용어들은 한정의 용어가 아닌 설명과 예시의 언어인 점이 이해된다. 또한, 본 발명이 여기에서 특정한 수단, 자료 및 실시예를 참조하여 기 술되었지만, 본 발명은 여기에 개시된 특별한 사항들로 한정되는 것이 아니며, 오히려, 본 발명은 첨부된 청구범위 내에 있는 것과 같은, 모든 기능적으로 균등한 구조, 방법 및 이용들로 확장한다. 본 발명의 내용의 장점을 가지는 당업자는 많은 변형들을 실시할 수 있으며 본 발명의 범위 및 취지를 벗어나지 않고 변화들이 이루어질 수 있다.
전술한 바와같이, 본원 발명은 수행 시간과 효율을 향상시키기 위하여, 비휘발성 메모리와 함께 하나 이상의 장기 저장 매체가 포함되는 영구 저장 장치가 오퍼레이팅 시스템 또는 애플리케이션 프로그램이 비휘발성 메모리를 효과적으로 이용할 수 있도록 하는 애플리케이션 프로그램 인터페이스, 커맨드 및 인터럽트를 제공하거나 이에 응답하는 오퍼레이팅 시스템과 함께 이용된다.

Claims (102)

  1. 비휘발성 메모리(non-voltaile memory) 및 장기 저장 매체(long-term storage medium)를 갖는 컴퓨터 시스템의 오퍼레이팅 방법으로서,
    상기 비휘발성 메모리의 제1 부분을 맵핑된 부분(mapped portion)으로서 사용하는 단계 - 상기 맵핑된 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리의 상기 제1 부분의 직접적인 제어(direct control)를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들(logical sector addresses)의 특정 세트는 상기 비휘발성 메모리의 맵핑된 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리를 액세스함 -;
    상기 비휘발성 메모리의 제2 부분을 저장 유닛 컨트롤러(storage unit controller)의 직접적인 제어 하에서 데이터의 중간 저장(intermediate storage)을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용하는 단계 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있으며, 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러시(flushed)될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입(overwrite)하고, 판독 동작을 위한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작을 위한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고 상기 비휘발성 메모리는 우회(bypassed)됨 -; 및
    상기 기입 버퍼에 기입될 데이터가 상기 장기 저장 매체로 전송될 것을 요청하기 위한 인터페이스를 제공하는 단계
    를 포함하는 컴퓨터 시스템의 오퍼레이팅 방법.
  2. 제1항에 있어서,
    기입을 위해 상기 장기 저장 매체를 준비시키기 위한 준비 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스,
    기입을 위해 상기 장기 저장 매체를 일시적으로 비활성화(deactivate)하기 위한 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스,
    하나 이상의 기입 동작에서 소정의 특정 데이터가 상기 기입 버퍼가 아니라 상기 장기 저장 매체로 직접 기입될 것을 요청하기 위한 인터페이스,
    상기 비휘발성 메모리에 저장된 소정의 특정 데이터가 무효임을 표시하기 위한 인터페이스,
    상기 비휘발성 메모리에 관한 정보를 수신하기 위한 인터페이스,
    판독을 위해 상기 장기 저장 매체를 준비시키기 위한 준비 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스, 및
    판독을 위해 상기 장기 저장 매체를 일시적으로 비활성화하기 위한 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스
    중 어느 하나의 인터페이스를 제공하는 단계를 더 포함하는, 컴퓨터 시스템의 오퍼레이팅 방법.
  3. 제1항에 있어서,
    상기 기입 버퍼에 저장된 데이터의 각 요소에 대해, 상기 요소에 우선순위 표시(priority indication)가 할당되고, 데이터가 상기 장기 저장 매체로 전송될 것을 요청하기 위한 상기 인터페이스는 우선순위의 레벨의 표시를 포함하고, 상기 기입 버퍼에 저장된 데이터의 각 요소에 대해, 상기 요소가 상기 장기 저장 매체로 전송되는지의 여부는 상기 요소에 대한 상기 표시 및 상기 할당된 우선순위의 레벨에 기초하는, 컴퓨터 시스템의 오퍼레이팅 방법.
  4. 비휘발성 메모리 및 장기 저장 매체 내의 동작들을 수행하기 위한 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 동작들은,
    상기 비휘발성 메모리의 제1 부분을 맵핑된 부분으로서 사용하는 동작 - 상기 맵핑된 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리의 상기 제1 부분의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 맵핑된 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리를 액세스함 -;
    상기 비휘발성 메모리의 제2 부분을 저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용하는 동작 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있으며, 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러시될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 판독 동작을 위한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작을 위한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고 상기 비휘발성 메모리는 우회됨 -; 및
    상기 기입 버퍼에 기입될 데이터가 상기 장기 저장 매체로 전송될 것을 요청하기 위한 인터페이스를 제공하는 동작
    을 포함하는, 컴퓨터 판독가능 저장 매체.
  5. 비휘발성 메모리 및 장기 저장 매체를 갖는 컴퓨터 시스템의 오퍼레이팅 방법으로서,
    상기 비휘발성 메모리의 제1 부분을 맵핑된 부분으로서 사용하는 단계 - 상기 맵핑된 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리의 제1 부분에 저장된 데이터의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 맵핑된 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리를 액세스함 -;
    상기 비휘발성 메모리의 제2 부분의 적어도 하나의 비휘발성 메모리 저장 소자와 상기 장기 저장 매체의 적어도 하나의 장기 저장 소자와의 직접적인 대응(direct correspondence)을 설정하도록 저장 유닛 컨트롤러의 직접적인 제어 하에 상기 적어도 하나의 비휘발성 메모리 저장 소자의 제2 부분을 설정하는 단계 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있음 -;
    상기 장기 저장 소자로부터 상기 비휘발성 메모리 저장 소자로 데이터를 판독하는 단계;
    상기 장기 저장 소자로 향하는 임의의 기입 동작들을 상기 비휘발성 메모리 저장 소자에서 수행하는 단계 - 상기 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러쉬될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입함 -; 및
    상기 판독 동작을 위한 데이터가 상기 판독 캐시에 존재하지 않는다는 것을 판정하고 후속적으로 상기 비휘발성 메모리 저장 소자의 제1 및 제2 부분 모두로부터 직접 데이터를 판독함으로써 상기 장기 저장 소자로 향하는 임의의 판독 동작들에 응답하는 단계
    를 포함하는 컴퓨터 시스템의 오퍼레이팅 방법.
  6. 비휘발성 메모리 및 장기 저장 매체를 갖는 컴퓨터 시스템을 오퍼레이팅하는 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어들은,
    상기 비휘발성 메모리의 제1 부분을 맵핑된 부분으로서 사용하게 하고 - 상기 맵핑된 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 비휘발성 메모리의 상기 제1 부분에 저장된 데이터의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 맵핑된 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리를 액세스함 -,
    비휘발성 메모리의 제2 부분의 적어도 하나의 비휘발성 메모리 저장 소자와 상기 장기 저장 매체의 적어도 하나의 장기 저장 소자와의 직접적인 대응을 설정하도록 저장 유닛 컨트롤러의 직접적인 제어 하에 상기 적어도 하나의 비휘발성 메모리 저장 소자의 상기 제2 부분을 설정하게 하고 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있음 -,
    상기 장기 저장 소자로부터 상기 비휘발성 메모리 저장 소자로 데이터를 판독하게 하고,
    상기 장기 저장 소자로 향하는 임의의 기입 동작들을 상기 비휘발성 메모리 저장 소자에서 수행하게 하고 - 상기 기입 동작들은 기입 버퍼가 상기 장기 저장 매체로 플러쉬될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입함 -,
    상기 판독 동작을 위한 데이터가 상기 판독 캐시에 존재하지 않는다는 것을 판정하고 후속적으로 상기 비휘발성 메모리 저장 소자의 제1 및 제2 부분 모두로부터 직접 데이터를 판독함으로써 상기 장기 저장 소자로 향하는 임의의 판독 동작들에 응답하게 하는, 컴퓨터 판독가능 저장 매체.
  7. 비휘발성 메모리 및 장기 저장 매체를 포함하는 영구 저장 장치(persistent storage device)를 갖는 컴퓨터 시스템의 오퍼레이팅 방법으로서,
    상기 비휘발성 메모리의 제1 부분을 맵핑된 부분으로서 사용하는 단계 - 상기 맵핑된 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리의 상기 제1 부분의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 맵핑된 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리를 액세스함 -;
    상기 비휘발성 메모리의 제2 부분을 저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용하는 단계 - 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러시될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 판독 동작에 대한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작에 대한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고, 상기 비휘발성 메모리는 우회됨 -;
    상기 비휘발성 메모리의 제3 부분을 상기 영구 저장 장치에 관한 설명 정보를 위한 저장소로서 사용하는 단계 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있음 -; 및
    상기 제3 부분으로부터 데이터를 판독하기 위한 방법을 제공하는 단계
    를 포함하는 컴퓨터 시스템의 오퍼레이팅 방법.
  8. 제7항에 있어서,
    상기 설명 정보는,
    상기 영구 저장 장치에 대한 라벨(label)을 포함하는 설명 정보 또는
    상기 장기 저장 매체에 관한 사용량 통계 정보(usage statistics information)를 포함하는, 컴퓨터 시스템의 오퍼레이팅 방법.
  9. 비휘발성 메모리 및 장기 저장 매체를 포함하는 영구 저장 장치를 오퍼레이팅하는 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어들은,
    상기 비휘발성 메모리의 제1 부분을 맵핑된 부분으로서 사용하게 하고 - 상기 맵핑된 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리의 상기 제1 부분의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 맵핑된 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리를 액세스함 -,
    상기 비휘발성 메모리의 제2 부분을 저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용하게 하고 - 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러시될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 판독 동작에 대한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작에 대한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고, 상기 비휘발성 메모리는 우회됨 -,
    상기 비휘발성 메모리의 제3 부분을 상기 영구 저장 장치에 관한 설명 정보를 위한 저장소로서 사용하게 하고 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있음 -,
    상기 제3 부분으로부터 데이터를 판독하기 위한 방법을 제공하게 하는, 컴퓨터 판독가능 저장 매체.
  10. 비휘발성 메모리 및 장기 저장 매체를 사용하는 컴퓨터 시스템으로서,
    상기 비휘발성 메모리의 제1 부분 - 상기 제1 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리에 저장된 데이터의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 제1 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리의 제1 부분을 액세스함 -;
    상기 비휘발성 메모리의 제2 부분을 저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용하기 위한 로직 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있으며, 상기 장기 저장 매체로의 기입 동작들은 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 판독 동작에 대한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작에 대한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고, 상기 비휘발성 메모리는 우회됨 -; 및
    상기 기입 버퍼에 기입될 데이터가 상기 장기 저장 매체로 전송될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직
    을 포함하는 컴퓨터 시스템.
  11. 제10항에 있어서,
    기입을 위해 상기 장기 저장 매체를 준비시키기 위한 준비 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직,
    기입을 위해 상기 장기 저장 매체를 일시적으로 비활성화하기 위한 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직,
    하나 이상의 기입 동작에서 소정의 특정 데이터가 상기 기입 버퍼가 아니라 상기 장기 저장 매체로 직접 기입될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직,
    상기 비휘발성 메모리에 저장된 소정의 특정 데이터가 무효임을 표시하기 위한 인터페이스를 제공하기 위한 로직,
    상기 비휘발성 메모리에 관한 정보를 수신하기 위한 인터페이스를 제공하기 위한 로직,
    상기 비휘발성 메모리 내의 상이한 물리적 위치들이 동일한 빈도(equal frequency)로 삭제되는 것을 보증(ensuring)하는 제어를 제공하기 위한 로직
    중 어느 하나의 로직을 더 포함하는 컴퓨터 시스템.
  12. 비휘발성 메모리 및 장기 저장 매체를 사용하는 컴퓨터 시스템으로서,
    상기 비휘발성 메모리의 제1 부분 - 상기 제1 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리에 저장된 데이터의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 상기 제1 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리의 제1 부분을 액세스함 -;
    저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용되는 상기 비휘발성 메모리의 제2 부분 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있으며, 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러쉬될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 판독 동작에 대한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작에 대한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고, 상기 비휘발성 메모리는 우회됨 -; 및
    상기 비휘발성 메모리의 제2 부분을 상기 장기 저장 매체로부터의 데이터의 저장을 위한 판독 버퍼로서 사용하기 위한 로직; 및
    소정의 데이터가 상기 장기 저장 매체로부터 상기 비휘발성 메모리의 상기 부분 내로 판독될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직
    을 더 포함하는 컴퓨터 시스템.
  13. 제12항에 있어서,
    판독을 위해 상기 장기 저장 매체를 준비시키기 위한 준비 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직 또는
    판독을 위해 상기 장기 저장 매체를 일시적으로 비활성화하기 위한 동작이 상기 장기 저장 매체 상에 수행될 것을 요청하기 위한 인터페이스를 제공하기 위한 로직을 더 포함하는 컴퓨터 시스템.
  14. 비휘발성 메모리 및 장기 저장 매체를 사용하는 컴퓨터 시스템으로서,
    상기 비휘발성 메모리의 제1 부분 - 상기 제1 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리에 저장된 데이터의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 상기 제1 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리의 상기 제1 부분을 액세스함 -;
    저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용되는 상기 비휘발성 메모리의 제2 부분 - 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러시될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고, 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있음 -;
    상기 비휘발성 메모리의 적어도 하나의 비휘발성 메모리 저장 소자와 상기 장기 저장 매체의 적어도 하나의 장기 저장 소자와의 직접적인 대응을 설정하기 위한 로직;
    상기 장기 저장 소자로부터 상기 비휘발성 메모리 저장 소자로 데이터를 판독하기 위한 로직;
    상기 장기 저장 소자로 향하는 임의의 기입 동작들을 상기 비휘발성 메모리 저장 소자에서 수행하기 위한 로직; 및
    상기 판독 동작을 위한 데이터가 상기 판독 캐시에 존재하지 않는다는 것을 판정하고 후속적으로 상기 비휘발성 메모리 저장 소자로부터 직접 데이터를 판독함으로써 상기 장기 저장 소자로 향하는 임의의 판독 동작들에 응답하기 위한 로직
    을 포함하는 컴퓨터 시스템.
  15. 비휘발성 메모리 및 장기 저장 매체를 사용하는 컴퓨터 시스템으로서,
    상기 비휘발성 메모리의 제1 부분 - 상기 제1 부분은 단일 오퍼레이팅 시스템에 의해 배타적으로 사용되고 상기 오퍼레이팅 시스템은 상기 비휘발성 메모리의 상기 제1 부분의 직접적인 제어를 가지며, 상기 장기 저장 매체의 논리적 섹터 어드레스들의 특정 세트는 상기 비휘발성 메모리의 상기 제1 부분 상에 맵핑되고, 논리적 섹터 어드레스들의 상기 특정 세트에 대한 판독들 및 기입들은 상기 비휘발성 메모리의 상기 제1 부분을 액세스함 -;
    상기 비휘발성 메모리의 제2 부분을 저장 유닛 컨트롤러의 직접적인 제어 하에서 데이터의 중간 저장을 위한 판독 캐시 및 기입 버퍼의 조합으로서 사용하기 위한 수단 - 상기 장기 저장 매체로의 기입 동작들은 상기 기입 버퍼가 상기 장기 저장 매체로 플러시될 때까지 상기 제2 부분의 판독 캐시 영역들을 중복 기입하고, 판독 동작에 대한 데이터가 상기 판독 캐시 영역에 존재하지 않으면, 상기 판독 동작에 대한 상기 데이터는 상기 장기 저장 매체로부터 직접 획득되고, 상기 비휘발성 메모리는 우회됨 -;
    상기 비휘발성 메모리의 제3 부분을 영구 저장 장치에 관한 설명 정보를 위한 저장소로서 사용하기 위한 수단 - 상기 비휘발성 메모리의 부분들은 상기 오퍼레이팅 시스템의 직접적인 제어 하에 있지 않고 상기 저장 유닛 컨트롤러의 직접적인 제어 하에 있음 -; 및
    상기 제3 부분으로부터 데이터를 판독하기 위한 컴퓨터 시스템을 제공하기 위한 수단
    을 포함하는 컴퓨터 시스템.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
KR1020050037139A 2004-05-03 2005-05-03 비휘발성 메모리 캐시 성능 향상 KR101044220B1 (ko)

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
KR20060047704A KR20060047704A (ko) 2006-05-18
KR101044220B1 true KR101044220B1 (ko) 2011-06-29

Family

ID=34939672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050037139A KR101044220B1 (ko) 2004-05-03 2005-05-03 비휘발성 메모리 캐시 성능 향상

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180102483A (ko) * 2017-03-07 2018-09-17 삼성전자주식회사 이종 불휘발성 메모리 형태를 갖는 솔리드 스테이트 드라이브

Families Citing this family (258)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7831387B2 (en) 2004-03-23 2010-11-09 Google Inc. Visually-oriented driving directions in digital mapping system
US7599790B2 (en) * 2004-03-23 2009-10-06 Google Inc. Generating and serving tiles in a digital mapping system
US7158878B2 (en) * 2004-03-23 2007-01-02 Google Inc. Digital mapping system
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7962576B2 (en) * 2004-07-22 2011-06-14 Sap Ag Quantity conversion interface for external program calls
US8347078B2 (en) * 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US20060230226A1 (en) 2005-04-12 2006-10-12 M-Systems Flash Disk Pioneers, Ltd. Hard disk drive with optional cache memory
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US7370143B1 (en) * 2005-06-20 2008-05-06 Network Appliance, Inc. Controlling write request access to a non-volatile log
US20060294339A1 (en) * 2005-06-27 2006-12-28 Trika Sanjeev N Abstracted dynamic addressing
JP2007059014A (ja) * 2005-08-26 2007-03-08 Sony Corp 情報記録装置、および情報記録方法、並びにコンピュータ・プログラム
US7917286B2 (en) 2005-12-16 2011-03-29 Google Inc. Database assisted OCR for street scenes and other images
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
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
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
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
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
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
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
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
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US7921258B1 (en) 2006-12-14 2011-04-05 Microsoft Corporation Nonvolatile disk cache for data security
TW200828273A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Hard disk cache device and method
US20080209198A1 (en) * 2007-02-26 2008-08-28 Majni Timothy W Boot Acceleration For Computer Systems
CN101256535B (zh) * 2007-03-01 2011-03-09 创惟科技股份有限公司 硬盘资料读写快取装置及方法
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
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US8266391B2 (en) * 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
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
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
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
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
EP2243085A1 (en) * 2008-02-10 2010-10-27 Rambus Inc. Segmentation of flash memory for partial volatile storage
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
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
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
US20110167214A1 (en) * 2008-09-15 2011-07-07 Leonard Russo Method And Apparatus To Manage Non-Volatile Disk Cache
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) * 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
EP2180408B1 (en) * 2008-10-23 2018-08-29 STMicroelectronics N.V. Method for writing and reading data in an electrically erasable and programmable nonvolatile memory
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
US8529346B1 (en) * 2008-12-30 2013-09-10 Lucasfilm Entertainment Company Ltd. Allocating and managing software assets
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
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
US8171219B2 (en) * 2009-03-31 2012-05-01 Intel Corporation Method and system to perform caching based on file-level heuristics
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 삼성전자주식회사 메모리 시스템 및 그것의 코드 데이터 로딩 방법
US8356166B2 (en) * 2009-06-26 2013-01-15 Microsoft Corporation Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers
US8250331B2 (en) 2009-06-26 2012-08-21 Microsoft Corporation Operating system virtual memory management for hardware transactional memory
US20100332768A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Flexible read- and write-monitored and buffered memory blocks
US8370577B2 (en) * 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US8489864B2 (en) * 2009-06-26 2013-07-16 Microsoft Corporation Performing escape actions in transactions
US8812796B2 (en) 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8229907B2 (en) * 2009-06-30 2012-07-24 Microsoft Corporation Hardware accelerated transactional memory system with open nested transactions
CN102696010B (zh) * 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
KR101689420B1 (ko) 2009-09-09 2016-12-23 샌디스크 테크놀로지스 엘엘씨 저장 장치의 전력 감소 관리를 위한 장치, 시스템, 및 방법
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US9092253B2 (en) * 2009-12-15 2015-07-28 Microsoft Technology Licensing, Llc Instrumentation of hardware assisted 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
US8402218B2 (en) * 2009-12-15 2013-03-19 Microsoft Corporation Efficient garbage collection and exception handling in a hardware accelerated transactional memory system
US8924645B2 (en) * 2010-03-08 2014-12-30 Hewlett-Packard Development Company, L. P. Data storage apparatus and methods
US8850151B2 (en) * 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
DE112010005347T5 (de) * 2010-04-12 2012-12-13 Hewlett-Packard Development Company, L.P. Nichtflüchtiger Cache-Speicher
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8666939B2 (en) 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC 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
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
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、系统和方法
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
ES2824782T3 (es) * 2011-04-12 2021-05-13 Amadeus Sas Estructura y método de memoria caché
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
US9229951B1 (en) 2011-06-30 2016-01-05 Emc Corporation 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
US9311327B1 (en) * 2011-06-30 2016-04-12 Emc Corporation Updating 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
US8843443B1 (en) 2011-06-30 2014-09-23 Emc Corporation Efficient backup of virtual data
US9158632B1 (en) 2011-06-30 2015-10-13 Emc Corporation Efficient file browsing using key value databases for virtual backups
US9417794B2 (en) 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
EP2742428B1 (en) * 2011-08-12 2016-01-06 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 メモリ管理装置、メモリ管理方法、制御プログラム、および、記録媒体
CN103999042B (zh) * 2011-10-26 2018-03-30 惠普发展公司,有限责任合伙企业 加载引导数据
CN102567490B (zh) 2011-12-21 2013-12-04 华为技术有限公司 数据库内的描述信息的恢复和数据的缓存方法及设备
WO2013091192A1 (zh) * 2011-12-21 2013-06-27 华为技术有限公司 提供多设备镜像和条带功能的磁盘缓存方法、设备和系统
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
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
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9275096B2 (en) 2012-01-17 2016-03-01 Apple Inc. Optimized b-tree
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US8527462B1 (en) 2012-02-09 2013-09-03 Microsoft Corporation Database point-in-time restore and as-of query
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
TWI584120B (zh) * 2012-03-23 2017-05-21 Lsi公司 用於動態調適快取的方法及系統
US8996768B2 (en) * 2012-05-31 2015-03-31 Sandisk Technologies Inc. Method and storage device for assessing execution of trim commands
KR101404129B1 (ko) * 2012-06-26 2014-06-10 인텔렉추얼디스커버리 주식회사 데이터 저장 시스템 및 데이터 관리 방법
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
KR20140007990A (ko) 2012-07-09 2014-01-21 삼성전자주식회사 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법
US9035961B2 (en) 2012-09-11 2015-05-19 Apple Inc. Display pipe alternate cache hint
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US8984267B2 (en) * 2012-09-30 2015-03-17 Apple Inc. Pinning boot data for faster boot
US10489295B2 (en) * 2012-10-08 2019-11-26 Sandisk Technologies Llc Systems and methods for managing cache pre-fetch
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
JP5597266B2 (ja) * 2013-01-15 2014-10-01 株式会社日立製作所 ストレージシステム
US9239610B2 (en) * 2013-02-28 2016-01-19 Sandisk Technologies Inc. Systems and methods for managing data in a system for hibernation states
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
CN104937564B (zh) 2013-03-28 2017-09-12 慧与发展有限责任合伙企业 组表格的数据冲洗
CN104937565B (zh) 2013-03-28 2017-11-17 慧与发展有限责任合伙企业 从第一节点到第二节点的地址范围传送
US9519551B2 (en) 2013-03-28 2016-12-13 Microsoft Technology Licensing, Llc Recovery processing for database in persistent system
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
WO2015030679A1 (en) * 2013-08-27 2015-03-05 Agency For Science, Technology And Research Raid parity stripe reconstruction
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
JP5627754B2 (ja) * 2013-10-28 2014-11-19 株式会社東芝 仮想記憶管理装置及び記憶管理装置
US9323467B2 (en) * 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
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
WO2015147817A1 (en) * 2014-03-26 2015-10-01 Hewlett-Packard Development Company, L.P. Nvm object
KR102248915B1 (ko) * 2014-03-26 2021-05-07 삼성전자주식회사 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법
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
US10616328B2 (en) 2014-08-27 2020-04-07 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 株式会社東芝 キャッシュ装置、及び記憶システム
US10223006B2 (en) 2014-10-03 2019-03-05 Drive Thru Technology Inc. Data management system
US10235054B1 (en) 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
US20160188414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
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
US20160283385A1 (en) * 2015-03-27 2016-09-29 James A. Boyd Fail-safe write back caching mode device driver for non volatile storage device
WO2016159930A1 (en) 2015-03-27 2016-10-06 Hewlett Packard Enterprise Development Lp File migration to persistent memory
WO2016160027A1 (en) * 2015-04-02 2016-10-06 Hewlett Packard Enterprise Development Lp Page cache on persistent memory
US20160299844A1 (en) * 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Mapping Logical Groups of Data to Physical Locations In Memory
CN106294189B (zh) * 2015-05-25 2020-09-25 中兴通讯股份有限公司 内存碎片整理方法及装置
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
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
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 삼성전자주식회사 비휘발성 메모리 시스템 및 그 동작 방법
US10929033B2 (en) * 2018-04-25 2021-02-23 Micron Technology, Inc. Allocating variable media types of memory devices in a memory system
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
US11016692B2 (en) * 2019-09-11 2021-05-25 International Business Machines Corporation Dynamically switching between memory copy and memory mapping to optimize I/O performance
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253935A (ja) * 1994-03-15 1995-10-03 Toshiba Corp コンピュータのデータ保護装置
JP2001027967A (ja) 1999-07-14 2001-01-30 Hitachi Ltd 外部記憶装置及び情報処理システム
WO2001075581A1 (en) 2000-03-31 2001-10-11 Intel Corporation Using an access log for disk drive transactions
US20040093463A1 (en) 2002-11-06 2004-05-13 Rung-Ji Shang RAID-5 disk having cache memory implemented using non-volatile RAM

Family Cites Families (332)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
US4612612A (en) 1983-08-30 1986-09-16 Amdahl Corporation Virtually addressed cache
JPH06100981B2 (ja) 1983-12-28 1994-12-12 株式会社日立製作所 記憶階層制御方式
US4979108A (en) 1985-12-20 1990-12-18 Ag Communication Systems Corporation Task synchronization arrangement and method for remote duplex processors
JPS62247853A (ja) * 1986-04-22 1987-10-28 Mazda Motor Corp 二液ミキシング塗装装置
US4972316A (en) 1987-03-30 1990-11-20 International Business Machines Corporation Method of handling disk sector errors in DASD cache
US4945474A (en) 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
JPH01303547A (ja) 1988-05-31 1989-12-07 Toshiba Corp 情報記憶制御システム
JPH0239256A (ja) 1988-07-28 1990-02-08 Toshiba Corp メモリシステム
SU1575192A1 (ru) 1988-08-01 1990-06-30 Войсковая часть 03080 Устройство дл выделени области во внешней пам ти
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
EP1031992B1 (en) 1989-04-13 2006-06-21 SanDisk 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 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システムおよびデータ処理方法
CA2131627A1 (en) 1992-03-09 1993-09-16 Yu-Ping Cheng High-performance non-volatile ram protected write cache accelerator system
JP3485938B2 (ja) 1992-03-31 2004-01-13 株式会社東芝 不揮発性半導体メモリ装置
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
US5398325A (en) 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
JPH06140446A (ja) 1992-07-21 1994-05-20 Hitachi Ltd 半導体装置及びそれを用いた電子装置
JPH0635802A (ja) 1992-07-21 1994-02-10 Hitachi Ltd 複数キャッシュ付きディスク制御装置
US5574877A (en) 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US5454098A (en) 1992-09-28 1995-09-26 Conner Peripherals, Inc. Method of emulating access to a sequential access data storage device while actually using a random access storage device
US5561783A (en) 1992-11-16 1996-10-01 Intel Corporation Dynamic cache coherency method and apparatus using both write-back and write-through operations
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
JPH06236351A (ja) 1993-02-10 1994-08-23 Hitachi Ltd オンラインシステムのバックアップリストア装置
US5557770A (en) 1993-03-24 1996-09-17 International Business Machines Corporation Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JP3600257B2 (ja) 1993-05-31 2004-12-15 富士通株式会社 情報処理装置及びキャッシュ制御装置
US5636355A (en) 1993-06-30 1997-06-03 Digital Equipment Corporation Disk cache management techniques using non-volatile storage
US5551002A (en) 1993-07-01 1996-08-27 Digital Equipment Corporation System for controlling a write cache and merging adjacent data blocks for write operations
US5572660A (en) 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
JPH086854A (ja) 1993-12-23 1996-01-12 Unisys Corp アウトボードファイルキャッシュ外部処理コンプレックス
US6026027A (en) 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
DE69527383T2 (de) 1994-02-22 2003-03-27 Advanced Micro Devices Inc Virtuelle Speicheranordnung
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
JPH10507566A (ja) 1994-10-18 1998-07-21 アイオメガ コーポレイション ディスクカートリッジの検出方法および装置
JPH08137634A (ja) 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH08195068A (ja) 1995-01-20 1996-07-30 Pioneer Electron Corp オーディオ信号混合装置
WO1996023269A1 (en) 1995-01-23 1996-08-01 Tandem Computers Incorporated 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
US5832515A (en) 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
US5996054A (en) 1996-09-12 1999-11-30 Veritas Software Corp. Efficient virtualized mapping space for log device data storage system
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
GB2317722B (en) 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
GB2317720A (en) 1996-09-30 1998-04-01 Nokia Mobile Phones Ltd Managing Flash memory
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
US6138125A (en) 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
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
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
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
JP5113967B2 (ja) 1999-08-05 2013-01-09 オラクル・インターナショナル・コーポレイション インターネットファイルシステム
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
DE60042640D1 (de) * 1999-12-17 2009-09-10 Nxp Bv Datenprozessor mit cachespeicher
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
WO2001057675A1 (en) 2000-02-02 2001-08-09 Sony Electronics Inc. System and method for effectively utilizing a cache memory in an electronic device
JP4131894B2 (ja) 2000-02-29 2008-08-13 株式会社東芝 ランダムディスクライトに好適なディスク制御機構
JP4078010B2 (ja) * 2000-03-03 2008-04-23 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク装置及び情報記録方法
US6633978B1 (en) 2000-03-31 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for restoring computer resources
US6718361B1 (en) 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6820088B1 (en) 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US7421541B2 (en) 2000-05-12 2008-09-02 Oracle International Corporation Version management of cached permissions metadata
WO2001088720A2 (en) 2000-05-15 2001-11-22 Superspeed Software, Inc. System and method for high-speed substitute cache
KR100694043B1 (ko) 2000-05-18 2007-03-12 삼성전자주식회사 Av 시스템 및 그 기능 확장 모듈
US6671699B1 (en) 2000-05-20 2003-12-30 Equipe Communications Corporation Shared database usage in network devices
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
JP3705731B2 (ja) 2000-06-05 2005-10-12 富士通株式会社 入出力制御装置
US7412369B1 (en) 2000-06-09 2008-08-12 Stmicroelectronics, Inc. System and method for designing and optimizing the memory of an embedded processing system
JP4394806B2 (ja) 2000-06-22 2010-01-06 独立行政法人科学技術振興機構 バックアップ装置
TW576966B (en) 2000-06-23 2004-02-21 Intel Corp Non-volatile cache integrated with mass storage device
JP3951918B2 (ja) 2000-06-23 2007-08-01 インテル・コーポレーション 不揮発性キャッシュ
US6557077B1 (en) 2000-07-07 2003-04-29 Lsi Logic Corporation Transportable memory apparatus and associated methods of initializing a computer system having the same
US6928521B1 (en) 2000-08-01 2005-08-09 International Business Machines Corporation Method, system, and data structures for using metadata in updating data in a storage device
US6725342B1 (en) 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US6434682B1 (en) 2000-09-28 2002-08-13 International Business Machines Corporation Data management system with shortcut migration via efficient automatic reconnection to previously migrated copy
US6999956B2 (en) 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US6629198B2 (en) 2000-12-08 2003-09-30 Sun Microsystems, Inc. Data storage system and method employing a write-ahead hash log
US7178100B2 (en) 2000-12-15 2007-02-13 Call Charles G Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US6871271B2 (en) 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
JP2002197073A (ja) 2000-12-25 2002-07-12 Hitachi Ltd キャッシュ一致制御装置
US6546472B2 (en) 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
AU2002234258A1 (en) 2001-01-22 2002-07-30 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
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
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
US6941310B2 (en) 2002-07-17 2005-09-06 Oracle International Corp. System and method for caching data for a mobile application
AU2003250670A1 (en) * 2002-07-23 2004-02-09 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
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
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
US7502791B2 (en) 2002-11-26 2009-03-10 Norsync Technology A/S Database constraint enforcer
JP4304974B2 (ja) 2002-12-12 2009-07-29 富士ゼロックス株式会社 キャッシュメモリのデータ管理方法、及び情報処理装置
US7039765B1 (en) 2002-12-19 2006-05-02 Hewlett-Packard Development Company, L.P. Techniques for cache memory management using read and write operations
US7010645B2 (en) 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
US7437440B2 (en) 2003-01-27 2008-10-14 Microsoft Corporation Peer-to-peer networking framework application programming interfaces
KR100504696B1 (ko) 2003-02-26 2005-08-03 삼성전자주식회사 블록 소거/프로그램 정보를 저장하기 위한 상태 셀들의어레이를 포함한 낸드 플래시 메모리 장치
JP2004272324A (ja) 2003-03-05 2004-09-30 Nec Corp ディスクアレイ装置
JP2004272764A (ja) 2003-03-11 2004-09-30 Toyo Commun Equip Co Ltd コンピュータシステムの機能拡張方法
US7505958B2 (en) 2004-09-30 2009-03-17 International Business Machines Corporation Metadata management for a data abstraction model
EP1619583A4 (en) 2003-04-25 2008-12-24 Panasonic Corp DATA RECORDING DEVICE
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
US7774508B2 (en) 2003-12-09 2010-08-10 Panasonic Corporation Electronic apparatus, 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
US7143120B2 (en) 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
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
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
WO2006027643A1 (en) 2004-09-07 2006-03-16 Freescale Semiconductors, Inc A virtual address cache and method for sharing data stored in a virtual address cache
JP4192129B2 (ja) 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置
US20060075185A1 (en) 2004-10-06 2006-04-06 Dell Products L.P. Method for caching data and power conservation in an information handling system
US7657756B2 (en) 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
US20060106889A1 (en) 2004-11-12 2006-05-18 Mannby Claes-Fredrik U Method, system, and program for managing revisions to a file
KR100643287B1 (ko) 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
JP4689247B2 (ja) 2004-11-19 2011-05-25 キヤノン株式会社 カメラ及びその制御方法
US20060136664A1 (en) 2004-12-16 2006-06-22 Trika Sanjeev N Method, apparatus and system for disk caching in a dual boot environment
US7480654B2 (en) 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US7480761B2 (en) 2005-01-10 2009-01-20 Microsoft Corporation System and methods for an overlay disk and cache using portable flash memory
KR100670010B1 (ko) 2005-02-03 2007-01-19 삼성전자주식회사 하이브리드 브로드캐스트 암호화 방법
US7620773B2 (en) 2005-04-15 2009-11-17 Microsoft Corporation In-line non volatile memory disk read cache and write buffer
US8812781B2 (en) 2005-04-19 2014-08-19 Hewlett-Packard Development Company, L.P. External state cache for computer processor
US7516277B2 (en) 2005-04-28 2009-04-07 Sap Ag Cache monitoring using shared memory
US20060277359A1 (en) 2005-06-06 2006-12-07 Faber Robert W Blank memory location detection mechanism
US7523256B2 (en) 2005-06-15 2009-04-21 Bea Systems, Inc. System and method for scheduling disk writes in an application server of transactional environment
JP4833595B2 (ja) 2005-06-30 2011-12-07 大和ハウス工業株式会社 脱臭機能を備えたシューズボックス
US7640398B2 (en) 2005-07-11 2009-12-29 Atmel Corporation High-speed interface for high-density flash with two levels of pipelined cache
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 ストレージ装置及びその制御方法
ATE488009T1 (de) 2006-03-31 2010-11-15 Mosaid Technologies Inc Flash-speichersystem-steuerverfahren
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
US20080172518A1 (en) 2007-01-11 2008-07-17 Sandisk Il Ltd. Systems For Supporting Readydrive And Readyboost Accelerators In A Single Flash-Memory Storage Device
WO2008094455A2 (en) 2007-01-26 2008-08-07 Cheriton David R Hierarchical immutable content-addressable memory processor
US7698506B1 (en) 2007-04-26 2010-04-13 Network Appliance, Inc. Partial tag offloading for storage server victim cache
US7945734B2 (en) 2007-08-10 2011-05-17 Eastman Kodak Company Removable storage device with code to allow change detection
US7895242B2 (en) 2007-10-31 2011-02-22 Microsoft Corporation Compressed storage management
US8190652B2 (en) 2007-12-06 2012-05-29 Intel Corporation Achieving coherence between dynamically optimized code and original code
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8082384B2 (en) * 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
US8275970B2 (en) 2008-05-15 2012-09-25 Microsoft Corp. Optimizing write traffic to a disk
US8597563B2 (en) 2008-07-11 2013-12-03 Rohm And Haas Company Recycled thermoplastic composition comprising waste thermoset material and methods of making
TWI347515B (en) 2008-09-04 2011-08-21 Asustek Comp Inc Electronic device
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP6236351B2 (ja) 2013-08-30 2017-11-22 アルプス電気株式会社 入力装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253935A (ja) * 1994-03-15 1995-10-03 Toshiba Corp コンピュータのデータ保護装置
JP2001027967A (ja) 1999-07-14 2001-01-30 Hitachi Ltd 外部記憶装置及び情報処理システム
WO2001075581A1 (en) 2000-03-31 2001-10-11 Intel Corporation Using an access log for disk drive transactions
US20040093463A1 (en) 2002-11-06 2004-05-13 Rung-Ji Shang RAID-5 disk having cache memory implemented using non-volatile RAM

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180102483A (ko) * 2017-03-07 2018-09-17 삼성전자주식회사 이종 불휘발성 메모리 형태를 갖는 솔리드 스테이트 드라이브

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101044220B1 (ko) 비휘발성 메모리 캐시 성능 향상
JP5445463B2 (ja) 計算機システム、データ保存方法およびプログラム
EP2333653A1 (en) Information backup/restoring apparatus and information backup/restoring system
US20150331624A1 (en) Host-controlled flash translation layer snapshot
JP5290287B2 (ja) ネットワークブートシステム
US20130080687A1 (en) Solid state disk employing flash and magnetic random access memory (mram)
US20070006021A1 (en) Reliability of diskless network-bootable computers using non-volatile memory cache
JP4808275B2 (ja) ネットワークブートシステム
US20130151775A1 (en) Information Processing Apparatus and Driver
US8370587B2 (en) Memory system storing updated status information and updated address translation information and managing method therefor
US20130145094A1 (en) Information Processing Apparatus and Driver
US7251716B2 (en) Method and system for data processing with recovery capability
WO2013186828A1 (ja) 計算機システム及び制御方法
JP2007249573A (ja) 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
KR20150058092A (ko) 네트워크 부트 시스템
JP6100750B2 (ja) メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置
JP5012599B2 (ja) メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム
JP2011113129A (ja) 情報記録装置及び情報記録方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140516

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 9