KR20110048066A - 타임스탬핑 방법, 타임스탬핑 전달 방법 및 머신 액세스가능 매체 - Google Patents

타임스탬핑 방법, 타임스탬핑 전달 방법 및 머신 액세스가능 매체 Download PDF

Info

Publication number
KR20110048066A
KR20110048066A KR1020117007288A KR20117007288A KR20110048066A KR 20110048066 A KR20110048066 A KR 20110048066A KR 1020117007288 A KR1020117007288 A KR 1020117007288A KR 20117007288 A KR20117007288 A KR 20117007288A KR 20110048066 A KR20110048066 A KR 20110048066A
Authority
KR
South Korea
Prior art keywords
time
storage system
timestamp
event
command packet
Prior art date
Application number
KR1020117007288A
Other languages
English (en)
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 KR20110048066A publication Critical patent/KR20110048066A/ko

Links

Images

Classifications

    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0625Power saving in storage 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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

타임스탬핑 방법, 타임스탬핑 전달 방법 및 머신 액세스가능 매체{METHODS TO COMMUNICATE A TIMESTAMP TO A STORAGE SYSTEM}
본 발명은 일반적으로 데이터 처리 분야에 관한 것으로, 특히 고체 메모리 장치의 기대 수명을 향상시키고 내구성(endurance)을 관리하기 위하여 타임스탬프(timestamp)를 플랫폼으로부터 저장 시스템으로 전송하기 위한 방법 및 관련 장치에 관한 것이다.
모바일 및 비교적 고정된 플랫폼은 클럭 발생기, 그래픽 카드, RAM(random access memory)과 같은 휘발성 메모리, 플래시 ROM(read-only memory) 또는 전용 NV(non-volatile) 메모리 공간, 그리고 HDD(hard disk drive)와 같은 고용량 비휘발성 메모리 장치에 CPU(central processing unit)를 결합(couple)하기 위해 주 회로판과 같은 하드웨어 자원을 포함할 수 있다. 또한 플랫폼은 BIOS(basic input/output system), VMM(virtual machine monitor), 그리고 VMM 상에서 실행되는 하나 이상의 게스트 OS(guest operating systems)와 같은 소프트웨어 자원을 포함할 수 있다. 온보드 또는 착탈가능 저지연(low latency) 메모리 등의 다른 NV 메모리 장치들이 플랫폼 형태 및 사용에 따라 HDD를 보완하거나 또는 HDD를 대체하기 위해 플랫폼에 추가될 수 있다.
복잡도 및 비용이 감소된 최소 전력 소비를 요구하기 위해 서버, 데스크탑, 랩탑, 넷북, 모바일 및 다른 핸드헬드 장치를 포함한 비용 효율적 및 저전력 플랫폼이 발전하고 있다. 플랫폼은 저전력 요건을 수용하기 위해 때때로 유휴 또는 파워다운(power-down) 상태로 동작한다.
NAND(not and)와 같은 NV 메모리 장치를 기반으로 한 일부 SSD(solid state disks)는 그들의 데이터 저장 특성이 저하되기 전에 수행할 수 있는 다수의 프로그램/삭제 사이클을 제한하는 내구성 사양(endurance specification)을 가진다. 내구성 한계를 너무 빨리 초과하지 않도록 보장하기 위해서는 사이클링 범위가 명시된 수명을 초과하지 않도록 보장하기 위해 관리 장치를 적용할 수 있다. SSD의 수명 내내 그 사용 시기 및 방법을 나타내기 위해 SSD 관련 상태를 추적하는 메카니즘은 일정한 파워가 항상 켜져 있음을 의미할 것이다.
본 발명에 관한 주제는 특히 명세서의 결론 부분에 언급되며 명백히 주장된다. 그러나 목적, 특징 및 이의 이점과 함께 구조 및 동작 방법의 모두에 관한 본 발명은 첨부 도면을 판독시에 후속되는 상세한 설명을 참조하여 잘 이해될 수 있다.
설명의 단순성 및 명료성을 위하여 도면에 도시된 요소들은 반드시 실제 크기대로 도시되지는 않았다는 것을 알 것이다. 예를 들면 일부 요소의 치수는 명료성을 위해 다른 요소에 비해 과장될 수 있다. 또한 참조번호는 적절한 것으로 간주되는 곳에서 대응 또는 유사한 요소를 가리키기 위해 도면에서 반복되었다.
다음의 상세한 설명에서, 본 발명을 완전히 이해할 수 있도록, 타임스탬프를 플랫폼으로부터 저장 시스템으로 전달하기 위한 다수의 특정 상세부분을 설명할 것이다. 그러나 당업자는 본 발명이 이들 특정 상세부분 없이 실행될 수 있다는 것을 알 것이다. 다른 경우에, 본 발명을 불분명하게 하지 않도록 잘 알려진 방법, 절차, 구성요소 및 회로를 상세히 기술하지는 않았다.
특히 저장 시스템이 간헐적으로 파워업되며 그의 가용 수명을 관리하는 시간 관련 및/또는 사용기반 특성을 가지는 애플리케이션에서, 타임스탬프를 플랫폼으로부터 SSD와 같은 저장 시스템으로 전달하는 기술분야에 진전이 있었다. 메모리 소자를 가진 저장 시스템의 실제 사용을 반영하는 정확한 데이터를 제공하기 위한 저비용 및 효율적 방법은 저장 시스템의 서비스 수명을 연장시킬 수 있다. 이 데이터를 사용함으로써 저장 시스템의 너무 이른 소진을 피하기 위해 저장 시스템은 메모리 소자 사용 및/또는 소비 속도를 추적 및/또는 관리할 수 있다. 예를 들면 그러한 방법은 저장 시스템의 예상 수명을 개선하고 저장 시스템의 하나 이상의 소모 자원을 관리하기 위하여 저장 시스템이 대기중(standby)이거나 또는 최대절전(hibernation) 상태 및/또는 파워오프에 있는 기간 동안에 경과되는 시간량을 저장 시스템에게 통보할 수 있다.
타임스탬프를 플랫폼으로부터 저장 시스템으로 전달하기 위한 이러한 일 방법은 타임스탬프를 수신하고 처리할 저장 시스템을 식별하는 단계를 포함할 수 있다. 기준 신호를 제공할 수 있는 클록 발생기를 선택하고, 기준 신호와 관련하여 타임스탬프를 설정한다. 타임스탬프를 데이터 패킷에 기록하고, 데이터 패킷을 저장 시스템으로 전송한다. 저장 시스템은 타임스탬프를 가진 데이터 패킷을 수신하고 이 타임스탬프는 저장 시스템에 의해 처리된다. 타임스탬프는 단일 시간 값일 수 있고/있거나 타임스탬프는 두 시간 값들 사이의 시간 변동, 결과적으로 타임 델타(time delta)일 수 있다. 저장 시스템이 파워오프였거나, 최대절전모드, 대기 모드 또는 이와 달리 유휴상태인 동안에 경과한 시간량을 저장 시스템에게 통보하기 위하여 타임스탬프로서 타임 델타를 저장 시스템으로 전송할 수 있다. 다수의 타임스탬프를 포함한 데이터는 저장 시스템 수명을 관리하기 위해 소모품 그룹에 대한 예산을 갱신하고, 저장 시스템이 파워오프, 최대절전모드, 유휴상태 또는 이와 달리 사용중이 아닐 때의 시간을 고려하는 데 사용될 수 있다.
도 1은 운영 시스템과 통신하도록 구성된 저장 시스템의 블록도.
도 2는 운영 시스템과 통신하도록 구성된 고용량 저장 시스템과 SSD의 블록도.
도 3은 본 발명의 실시예가 구현될 수 있는 플랫폼을 도시하는 블록도.
도 4는 타임스탬프를 전달하는 데 사용되는 커맨드 큐잉 포맷 커맨드의 실시예를 도시하는 도면.
도 5는 저장 시스템으로 타임스탬프를 전달하기 위한 방법을 설명하는 흐름도.
도 1은 운영 시스템(110)과 통신하도록 구성된 저장 시스템(100)의 블록도이다. 운영 시스템(110)은 플랫폼 자원의 공유 및 활동의 관리와 조정을 책임진다. 운영 시스템(110)은 플랫폼상에 실행되는 애플리케이션 프로그램을 위한 호스트로서 동작한다. 파일 시스템(120)은 데이터의 저장, 구조화, 조작, 내비게이션, 액세스 및 검색을 위해 플랫폼에 의해 사용되는 파일을 저장 및 구조화하기 위하여 운영 시스템(110)과 상호작용한다. 이 실시예에서, 파일 시스템(120)은 또한 파일의 물리적 저장을 위해 플래시 관리 소프트웨어(130)를 통해 저장 시스템(100)과 상호작용한다. 예를 들면 저장 시스템(100)은 데이터의 신속하고 반복된 액세스를 위해 캐시 저장 위치 및/또는 비휘발성 데이터 저장 위치로서 사용될 수 있다.
플래시 관리 소프트웨어(130)는 파일 시스템(120) 및/또는 운영 시스템(110)으로 하여금 저장 시스템(100)과 상호작용할 수 있도록 해주는 인터페이스를 제공한다. 일 실시예에서, 플래시 관리 소프트웨어(130)는 NAND 메모리 어레이에서 불량 블록을 관리하기 위해, 보다 큰 블록의 작은 블록 에뮬레이션(emulation)을 제공하기 위해, 웨어 레벨링(wear leveling) 알고리즘을 적용하여 메모리 어레이에 대한 마모 효과(effects of wear)를 완화시키기 위해, 그리고 플래시 제어기 드라이버(140)를 통해 파일 레벨에서 저장 시스템(100)과 상호작용할 수 있도록 해주는 인터페이스를 제공하기 위해 메카니즘을 제공할 수 있다.
플래시 제어기 드라이버(140)는 플래시 관리 소프트웨어로부터의 상위 레벨 커맨드를 플래시 제어기(150)에 필요한 하위 레벨 커맨드로 변환하기 위한 번역기(translator)로 동작함으로써 플래시 관리 소프트웨어(130)로 하여금 플래시 제어기(150)와 상호작용할 수 있도록 해주는 프로그램이다. 플래시 제어기(150)는 일반적으로 플래시 장치(160)로의 그리고 플래시 장치(160)로부터의 데이터의 전송과 오류 검출에 더하여 판독, 기록 및 삭제 기능을 제공하는데 사용된다. 플래시 장치(160)로 기록되고, 이로부터 판독된 데이터는 메모리 블록 또는 섹터와 같은 물리적 위치에 하나 이상의 레지스터를 사용하여 저장될 수 있다.
이 대신에, 저장 시스템(100)은 영구 데이터를 저장하기 위해 고체 상태 메모리를 사용하는 SSD와 같은 데이터 저장 장치일 수도 있다. SSD는 낮아진 액세스 시간 및 지연시간을 제공하면서 하드 디스크 드라이브를 에뮬레이션할 수 있다. (도시되지 않은) 이 실시예에서, 플래시 관리 소프트웨어(130)는 주로 도 2의 호스트 또는 플랫폼(200)에 투명한(transparent) SSD 내에서 실행되는 펌웨어 형태로 SSD에 내장된다. 여기서, 펌웨어는 그 외 플래시 관리 소프트웨어(130)에 의해 제공되는 기능성을 포함한 다양한 기능을 서비스할 수 있다.
도 2는 고용량 저장 시스템(240)과 운영 시스템(110)과 통신하도록 구성된, 도 1의 저장 시스템(100)의 일 실시예인 SSD(250)를 포함한 플랫폼(200)의 논리적 배치도이다. SSD(250)는 도 2에 도시된 바와 같이 고용량 저장 시스템(240)을 보완할 수 있다. 이 대신에, SSD(250)는 다른 실시예에서 고용량 저장 시스템(240)의 필요성을 없애고 대체하는 기능을 할 수도 있다. 기능상, 운영 시스템(110)은 운영 시스템(110)을 통해 동작하는 하나 이상의 애플리케이션(210)과 상호작용하면서 SSD(250) 및 고용량 저장 시스템(240)으로부터 그리고 SSD(250) 및 고용량 저장 시스템(240)으로 판독 및 기록한다. 일 실시예에서, 애플리케이션(210)은 워드 프로세싱, 스프레드시트, 미디어 플레이어, 매트릭스 저장 및 하나 이상의 암호화 능력을 제공할 수 있다. 운영 시스템(110)은 저장 관리자 드라이버(220)를 통해 고용량 저장 시스템(240)과 상호작용하고, 메모리 드라이버(230)를 사용하거나 또는 이를 사용하지 않고 SSD(250)와 상호작용한다.
저장 제어기(260)와 고용량 저장 메모리(280)를 포함한 고용량 저장 시스템(240)의 실시예는 디스크 드라이브, 네트워크 저장 위치, 테이프 드라이브, 플로피 드라이브 또는 DVD(digital video disk) 및/또는 CD(compact disk) 판독기 및/또는 기록기 또는 이의 결합과 같은 광드라이브일 수 있다. SSD(250)는 직렬 ATA(advanced technology attachment), 병렬 ATA 및/또는 USB(universal serial bus) 인터페이스를 사용하여 프로세서로 연결된 플래시 기반 드라이브, 또는 고속 ICH(I/O(input/output) controller hub) 또는 PCH(platform control hub)를 사용하여 프로세서로 연결된 인텔® 터보 메모리(Intel® Turbo Memory)일 수 있다. 데이터는 SLC(single level cell) 및/또는 MLC(multi-level cell) 포맷으로 저장될 수 있다. 다른 실시예에서, SSD(250)는 판독 및/또는 기록 캐싱 기능성을 제공할 수 있고, 예를 들면 HDD 기능성을 고체 상태 기능성으로 대체 또는 교체함으로써 감소된 부팅 시간과 같이 플랫폼(200) 응답성을 개선하고/하거나 전력을 절약하도록 설계될 수 있다.
도 2에서, SSD(250)는 직렬 ATA 또는 집적 드라이브 전자 제어기와 같은 인터페이스(미도시)로 연결된 ASIC(application specific integrated circuit controller) 장치일 수 있는 SSD 제어기(270)를 포함한다. 또한 SSD(250)는 하나 이상의 NAND 및/또는 NOR 플래시 또는 PC(phase change) 메모리 장치를 구비한 SSD 메모리를 포함한다. 다른 실시예에서, SSD(250)는 또한 BIOS(basic input output system) 레벨 디스크 액세스를 처리하기 위해 사전부팅 소프트웨어의 형태로 디스크 필터링 옵션 ROM(read only memory)과 메모리 드라이버(230)를 포함할 수 있다. 또 다른 실시예에서, SSD(250)는 애플리케이션(210)의 설치 및/또는 설정 매트릭스 저장 애플리케이션을 사용하여 플랫폼(200)의 고용량 저장 시스템(240)으로 SSD(250)를 결속시킴으로써 고용량 저장 시스템(240)과 관련될 수 있다.
도 3은 본 발명의 일 실시예가 구현될 수 있는 플랫폼(200)을 도시하는 블록도이다. 플랫폼(200)은 하나 이상의 시스템 버스(306) 또는 다른 통신 경로 또는 매체를 통해 다양한 다른 구성요소로 통신가능하게 결합된 호스트 또는 CPU(central processing unit)로서 여기서 언급되는 프로세서(304)와 같은 다양한 하드웨어 구성요소(302)를 가진 이동국 또는 상대적으로 고정된 시스템일 수 있다. 예를 들면 프로세서(304)는 하나 이상의 휘발성 또는 비휘발성 데이터 저장장치(예를 들면 RAM(308), ROM(310), 하나 이상의 고용량 저장 시스템(240))로 통신가능하게 결합될 수 있다. 또한 프로세서(304)는 하나 이상의 NIC(network interface controllers)(312), 비디오 제어기, IDE(integrated drive electronics) 제어기, SCSI(small computer system interface) 제어기, USB(universal serial bus) 제어기, I/O(input/output) 포트, 입력 장치, 디스플레이와 같은 출력 장치 등으로 통신가능하게 결합될 수 있다.
도 3의 실시예에서, 프로세서(304)는 제1 처리 유닛(314)과 제2 처리 유닛(316)을 포함한다. 이 대신에, 플랫폼(200)은 일 처리 유닛을 가진 프로세서(304), 또는 적어도 하나의 처리 유닛을 각각 가진 다중 프로세서를 포함할 수 있다. 다중 처리 유닛을 가진 시스템에서, 이들 처리 유닛은 처리 코어로서, HT(Hyper-Threading) 기술로서, 또는 동시에 또는 사실상 동시에 다중 스레드(threads)를 실행하기 위한 임의의 다른 적당한 기술로서 구현될 수 있다.
이 실시예에서, 플랫폼(200)은 실시간 클록을 사용하여 실시간 추적하도록 구성되고, 클록 발생기(318)를 포함한다. 클록 발생기(318)는 공진회로 및 증폭기를 포함하며, 플랫폼(200)의 동작을 동기화하는 데 사용하기 위한 타이밍 신호를 생성하는 회로일 수 있다. 클록 발생기(318)로부터의 타이밍 신호는 단순한 대칭 구형파이거나, 혹은 보다 복잡한 파형을 가질 수 있다. 도 3의 실시예에서, 클록 발생기(318)는 시스템 버스(306)를 통해 프로세서(304)로 통신가능하게 결합된 개별 모듈이다. 이 대신에, 클록 발생기(318)는 칩셋(320)을 통해 프로세서(304)로 결합될 수 있거나, 혹은 클록 발생기(318)는 (도시되지 않은) 프로세서(304)의 일부일 수 있다.
칩셋(320)은 시스템 구성요소를 통신가능하게 결합하기 위한 하나 이상의 브리지(bridges) 또는 허브(hubs)를 포함할 뿐만 아니라 다른 논리부 및 저장 구성요소를 포함할 수 있다. 또한 도 2의 SSD(250)는 시스템 버스(306)를 통해 프로세서(304)로 통신가능하게 결합될 수 있고/있거나 SSD(250)는 USB 또는 직렬 ATA 포트와 같은 포트를 통해 플랫폼(200)으로 결합될 수 있다. SSD(250)는 이미 시스템 시간에 대한 액세스를 가진 호스트 드라이버를 더 가질 수 있다. (도시되지 않은) 다른 실시예에서, SSD(250)는 고용량 저장 시스템(240)을 대신할 수 있다.
소정 구성요소는 버스와 통신하기 위한 인터페이스(예를 들면 PCI 커넥터)를 가진 어댑터 카드로서 구현될 수 있다. 일 실시예에서, 하나 이상의 장치는 프로그램가능 또는 비-프로그램가능 논리 장치 또는 어레이, ASIC, 내장 컴퓨터, 스마트 카드 등과 같은 구성요소를 사용하여 내장된 제어기로서 구현될 수 있다. 이 논의를 위해, 용어 "ROM"은 통상 EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 ROM, 플래시 메모리 등과 같은 비휘발성 메모리 장치를 지칭하는 데 사용될 수 있다. 또한, 용어 "버스"는 포인트 투 포인트(point-to-point) 경로뿐만 아니라 공유 통신 경로를 지칭한다.
플랫폼(200)은 적어도 부분적으로 키보드, 마우스 등과 같은 종래 입력 장치로부터의 입력에 의해, 및/또는 다른 머신, 바이오메트릭 피드백, 또는 다른 입력 소스 또는 신호로부터 수신된 지시에 의해 제어될 수 있다. 플랫폼(200)은 NIC(312), 모뎀 또는 다른 통신 포트 또는 결합부를 통하는 것과 같이 네트워크(322)를 통해 하나 이상의 원격 데이터 플랫폼(200)으로 하나 이상의 연결을 사용할 수 있다. 플랫폼(200)은 LAN(local area network), WAN(wide area network), 인트라넷, 인터넷 등과 같은 물리적 및/또는 논리적 네트워크(322)를 사용하여 데이터 처리 환경을 형성하도록 상호연결될 수 있다. 네트워크(322)를 수반한 통신은 RF(radio frequency), 위성, 마이크로웨이브, IEEE(Institute of Electrical and Electronics Engineers) 802.11, 802.16, 802.20, 블루투스, 광학, 적외선, 케이블, 레이저 등을 포함한 다양한 유선 및/또는 무선 단거리 또는 장거리 캐리어 및 프로토콜을 사용할 수 있다. 또한 802.11용 프로토콜은 WiFi(wireless fidelity) 프로토콜로서 언급될 수 있다. 또한 802.16용 프로토콜은 WiMAX(worldwide interoperability for microwave access) 또는 WirelessMAN(wireless metropolitan area network) 프로토콜로서 언급될 수 있고, 이들 프로토콜에 관한 정보는 grouper.ieee.org/groups/802/16/index.html에서 현재 사용가능하다.
여기서 인스트럭션, 기능, 절차, 데이터 구조, 애플리케이션 프로그램, 구성 설정 등과 같은 데이터를 참조하여 실시예를 기술할 수 있다. 이 개시물의 목적을 위해, 용어 "프로그램"은 애플리케이션, 드라이버, 프로세스, 루틴, 방법, 모듈 및 부프로그램을 포함한, 폭넓은 범위의 소프트웨어 구성요소 및 구성을 포함한다. 용어 "프로그램"은 완전한 컴파일 유닛(즉 독립적으로 컴파일될 수 있는 인스트럭션 집합), 컴파일 유닛 콜렉션, 또는 컴파일 유닛의 일부를 지칭하는 데 사용될 수 있다. 따라서 용어 "프로그램"은 플랫폼(200)에 의해 실행될 때에 원하는 동작 또는 동작들을 수행하는 임의 인스트럭션 콜렉션을 지칭하는 데 사용될 수 있다. 플랫폼(200)에서 프로그램은 소프트웨어 환경(324)의 구성요소로서 간주될 수 있다.
예를 들어 플랫폼(200)이 부팅될 때, BIOS(326)는 RAM(308)으로 로딩될 수 있고, 소프트웨어 환경(324) 내에서 실행될 수 있다. 또한 플랫폼(200)은 소프트웨어 환경(324) 내에서 VMM(328) 및/또는 하나 이상의 OS(110)를 로딩 및 실행할 수 있다. 예를 들면 플랫폼(200)이 가상화를 위해 구성되지 않았다면, VMM(328)은 필요없을 수 있고, 애플리케이션은 OS(110)의 상부에서 실행될 수 있다. 다른 실시예에서, VMM(328)은 소프트웨어 환경(324) 내 개별 가상 머신에서 다양한 게스트 OS 및 사용자 애플리케이션을 시작할 수 있다.
도 4는 본 발명의 실시예가 구현될 수 있는 타임스탬프를 전달하는 데 사용되는 커맨드 패킷(400) 또는 데이터 패킷의 실시예이다. 타임스탬프를 전달하기 위한 커맨드 패킷(400)은 복잡도를 감소시킨 비큐잉 포맷 커맨드(non-queuing formatted command), 또는 이 대신에 여분 데이터 패킷을 포함하도록 분명하게 요구하지 않고 커맨드 패킷(400) 그 자체에 직접 타임스탬프를 내장시키는 ATA 또는 SATA(serial ATA) 커맨드와 같은 큐잉 포맷 커맨드일 수 있다. 여기서 커맨드 코드(64h)로서 포맷된 일반 비데이터 커맨드는 커맨드 패킷(400)의 기능을 플래깅(flagging)하기 위하여 레지스터 집합(410) 및 특징 레지스터(420)로써 정의된다. 이 실시예에서 비트 7(t)(415)은 커맨드 패킷(400)이 SSD(250)로 타임스탬프를 전달하는 데 사용중이라는 것을 나타내기 위하여 값 1로 설정될 수 있다. 운영 시스템(110)은 커맨드 패킷(400)이 플래깅될 것인지의 여부를 결정할 수 있고, 커맨드 패킷(400)이 플래깅되기로 결정되는 것에 응답하여, 커맨드 패킷(400)이 타임스탬프를 포함한다는 것을 나타내기 위해 커맨드 패킷(400)을 플래깅한다.
도 4의 포맷에 따라서, 커맨드 패킷(400)은 다른 플래그 값이 특징 레지스터(feature register)(420)의 비트 6:0에 예약될 수 있도록 하면서 다른 기능을 위해 사용된다. 타임스탬프로서 커맨드 패킷(400)을 식별하게 되면 타임스탬프가 커맨드 패킷(400)의 제1 필드(430) 및 제2 필드(440)에 입력될 수 있다. 섹터 카운트(Sector Count)(450)에 정의되는 TAG 값(445)은 SATA NCQ(native command queuing) 커맨드를 위한 기존 필드 정의와 일치하며, 이로써 다른 커맨드가 SSD(250)에서 처리되지 않은 동안에 NCQ 커맨드를 실행할 수 있다. 또한 커맨드 패킷(400)은 내장된 커맨드 유형(470)에 의해 특징지어질 수 있다.
도 5는 본 발명의 실시예가 구현될 수 있는 저장 시스템에 타임스탬프를 전달하기 위한 방법을 설명하는 흐름도이다. 단계(500)에서, 플랫폼(200)은 가령 라이프사이클 예산(lifecycle budget)을 갱신하도록 타임스탬프를 인식하거나, 또는 타임스탬프를 저장함으로써 타임스탬프를 수신 및 처리할 수 있는 SSD(250)와 같은 하나 이상의 저장 시스템(100)을 식별한다. 라이프사이클 예산은 단순히, 시간 측정치 또는 유사한 매개변수(parameter)에 의해 표현되는 SSD(250)를 위해 할당된 수명일 수 있다.
예를 들면 타임스탬프를 수신 및 처리하는 것은 IDENTIFY DEVICE 또는 IDENTIFY PACKET DEVICE 라는 정의 하에 성취될 수 있다. 일 실시예에서, 타임스탬프는 마이크로초 단위로 세분되는 시간 유닛과 같이 설정된 시간 유닛에 따라 기준 신호를 기반으로 한 64비트 값이다. 다른 실시예에서, 타임스탬프는 날짜 및/또는 날짜와 시간과 상호관련된 실시간 값이다. 또 다른 실시예에서, 타임스탬프는 시간에서 두 순간 사이의 시간차를 나타내는 타임 델타이다.
단계(510)에서, 플랫폼(200)은 기준 신호를 제공하기 위해 클록 발생기(318)를 식별한다. 단계(520)에서, 기준 신호를 기반으로 타임스탬프가 설정되고, 커맨드 패킷(400)(요소 530)에 내장된 타임스탬프로써 커맨드 패킷(400) 또는 데이터 패킷이 형성된다(단계 530). 타임스탬프 값을 가진 타임스탬프는 주기적으로, 프로그래밍된 기준에 따라 또는 이벤트(event)와 같은 트리거에 응답하여 설정될 수 있다. 또한 운영 시스템(110)은 먼저 이벤트가 타임스탬핑될 것인지를 결정할 수 있고, 이벤트가 타임스탬핑될 것으로 결정하는 것에 응답하여 타임스탬프 값으로써 이벤트를 타임스탬핑할 수 있다.
하나 이상의 저장 시스템으로 타임스탬프를 언제, 얼마나 자주 전달하는가에 대한 타이밍은 파워온 이벤트, 파워다운 이벤트와 같은 단일 인스턴스(instance)에 의해 트리거될 수 있거나, 혹은 실행시간 시스템 이벤트 또는 타이머를 기반으로 한 알려진 반복성(recurrence)일 수 있다. 타임스탬프는 단일 시간 값일 수 있고/있거나 두 시간 값 사이의 시간 변동, 결과적으로 타임 델타일 수 있다. 타임 델타는 저장 시스템(100)이 파워오프, 최대절전모드, 대기 모드, 또는 이와 달리 유휴 모드이었던 동안에 경과한 시간량을 저장 시스템(100)에게 통보하기 위하여 저장 시스템(100)으로 전달될 수 있다.
바람직한 실시예에서, 타임스탬프는 SSD(250)가 파워오프되는 동안에 경과된 시간량을 추적하기 위해 제공된다. 예를 들면 플랫폼(200)은 모든 시간 사이클마다 타임스탬프를 전달하는 것과 같이 설정된 정책에 따라 이벤트를 타임스탬핑할 수 있다. 저장 위치는 SSD(250)와 같은 저장 시스템(들)에서 식별되고, 단계(540)에서 내장된 타임스탬프를 가진 커맨드 패킷(400)이 SSD(250)로 전송된다. 타임스탬핑된 커맨드 패킷(400)은 SSD(250)에 의해 처리된다. 이 대신에, 각 커맨드 패킷(400)은 보호 위치에서 SSD(250)에 저장될 수 있다. 또한 각 커맨드 패킷(400)은 삭제되고/되거나 또 다른 커맨드 패킷(400) 또는 다른 데이터에 의해 중복 기록(overwritten)될 수 있다.
SSD(250)와 같은 저장 시스템으로 타임스탬프를 전달하기 위한 또 다른 방법은 로그 페이지(log pages)를 활용한 통신 채널을 사용하는 것일 수 있다. SMART(Self Monitoring Analysis and Reporting Technology), 범용 로깅, SCT(SMART Command Transport)를 포함한 하나 이상의 ATA 프로토콜은 배정된 또는 예약된 로그 페이지 위치를 통해 저장 시스템 내에 데이터를 저장하거나 또는 얻는데 사용될 수 있다. 전형적으로, 특정 로그 페이지 주소는 512 바이트 길이이다. 타임스탬프는 타임스탬프를 저장하기 위해 로그 페이지의 일부만을 또는 전체 로그 페이지를 사용할 수 있다. 타임스탬프를 전달하는 것은 할당된 로그 페이지 레지스터를 사용하여 정의된 프로토콜을 통해 WRITE LOG EXT 또는 WRITE LOG DMA EXT와 같은 기록 커맨드를 통해 수행될 수 있다.
여기에 거론된 동작은 일반적으로, 적용가능하도록 호스트 프로세서(304) 및 마이크로제어기 상에 코드 인스트럭션으로 구현된 적절한 펌웨어 또는 소프트웨어의 실행을 통해 용이하게 될 수 있다. 따라서 본 발명의 실시예는 소정 형태의 처리 코어 상에 실행되거나 또는 이와 달리 머신-판독가능 매체 상에 또는 내에 구현 및 실현될 수 있는 인스트럭션 집합을 포함할 수 있다. 머신-판독가능 매체는 머신(예를 들면 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하기 위한 임의 메카니즘을 포함한다. 예를 들면 머신-판독가능 매체는 ROM(read only memory), RAM(random access memory), 자기디스크 저장 매체, 광저장 매체, 플래시 메모리 장치 등과 같은 물품을 포함할 수 있다. 또한 머신-판독가능 매체는 전기, 광학, 음향과 같은 전달 신호, 또는 다른 형태의 전달 신호(예를 들면 반송파, 적외선 신호, 디지털 신호 등)를 포함할 수 있다.
다음의 설명 및 청구범위에서, 용어 "결합된(coupled)" 및 "연결된(connected)"과 그들의 파생어가 사용될 수 있다. 이들 용어는 서로 동의어로 다루어져서는 안 된다는 것을 알아야 한다. 오히려, 특정 실시예에서, "연결된"은 둘 이상의 요소가 서로 직접 물리적 접촉 또는 전기적 접촉을 한다는 것을 나타내는데 사용될 수 있고, 반면에 "결합된"은 둘 이상의 요소가 서로 직접 접촉하지 않지만 여전히 서로 협력하거나 또는 상호작용한다는 것을 의미할 수 있다.
본 발명의 소정 특징을 여기에 도시 및 설명하였지만, 이제 당업자에게 다수의 변형, 대체, 변경 및 등가물이 발생할 것이다. 따라서 첨부된 특허청구범위는 본 발명의 진정한 사상 내에 있는 이러한 모든 변형 및 변경을 포함하려 한다.

Claims (20)

  1. 저장 시스템을 타임스탬핑(timestamping)하기 위한 방법에 있어서,
    타임스탬프를 수신하고 처리할 상기 저장 시스템을 식별하는 단계와,
    기준 신호를 제공하기 위해 클록 발생기를 선택하는 단계와,
    상기 기준 신호와 관련하여 상기 타임스탬프를 설정하는 단계와,
    상기 타임스탬프를 포함한 데이터 패킷을 형성하는 단계와,
    상기 데이터 패킷을 상기 저장 시스템으로 전송하는 단계와,
    라이프사이클 예산(lifecycle budget)을 갱신하도록 상기 데이터 패킷을 처리하는 단계를 포함하는
    타임스탬핑 방법.
  2. 제 1 항에 있어서,
    이벤트에 응답하여 상기 타임스탬프를 설정하는 단계를 더 포함하는
    타임스탬핑 방법.
  3. 제 2 항에 있어서,
    상기 이벤트가 타임스탬핑될 것인지의 여부를 결정하는 단계와, 상기 이벤트가 타임스탬핑되기로 결정하는 것에 응답하여 상기 타임스탬프로 상기 이벤트를 타임스탬핑하는 단계를 더 포함하는
    타임스탬핑 방법.
  4. 제 2 항에 있어서,
    상기 이벤트는 파워온 이벤트(power-on event)인
    타임스탬핑 방법.
  5. 제 1 항에 있어서,
    상기 타임스탬프는 타임 델타(time delta)인
    타임스탬핑 방법.
  6. 제 1 항에 있어서,
    상기 저장 시스템 내의 저장 위치에 상기 데이터 패킷을 저장하는 단계를 더 포함하는
    타임스탬핑 방법.
  7. 제 6 항에 있어서,
    상기 데이터 패킷은 로그 페이지(log page)를 사용하여 상기 저장 위치에 저장되는
    타임스탬핑 방법.
  8. 호스트가 타임스탬프를 전달하기 위한 방법에 있어서,
    상기 호스트가 트리거를 검출하는 단계와,
    상기 트리거 검출에 응답하여 상기 타임스탬프를 포함한 커맨드 패킷(command packet)을 생성하는 단계와,
    상기 커맨드 패킷이 상기 타임스탬프를 포함하는 것을 나타내도록 상기 커맨드 패킷을 플래깅(flagging)하는 단계와,
    상기 커맨드 패킷을 처리할 저장 시스템을 식별하는 단계와,
    상기 저장 시스템이 상기 커맨드 패킷을 처리하는 단계를 포함하는
    타임스탬프 전달 방법.
  9. 제 8 항에 있어서,
    상기 커맨드 패킷이 플래깅될 것인지를 결정하는 단계와, 상기 커맨드 패킷이 플래깅되기로 결정하는 것에 응답하여 상기 커맨드 패킷이 상기 타임스탬프를 포함한다는 것을 나타내기 위하여 상기 커맨드 패킷을 플래깅하는 단계를 더 포함하는
    타임스탬프 전달 방법.
  10. 제 9 항에 있어서,
    상기 트리거는 파워온 이벤트인
    타임스탬프 전달 방법.
  11. 제 8 항에 있어서,
    상기 타임스탬프는 타임 델타인
    타임스탬프 전달 방법.
  12. 제 8 항에 있어서,
    상기 저장 시스템에 보호 위치(protected location)를 할당하는 단계와, 상기 보호 위치에 상기 커맨드 패킷을 기록하는 단계를 더 포함하는
    타임스탬프 전달 방법.
  13. 제 8 항에 있어서,
    상기 커맨드 패킷은 로그 페이지(log page)를 사용하여 상기 저장 시스템에 기록되는
    타임스탬프 전달 방법.
  14. 액세스될 때 머신으로 하여금 동작을 수행하게 하는 인스트럭션을 제공하는 머신 액세스가능 매체에 있어서, 상기 동작은,
    타임스탬프를 수신하고 저장할 저장 시스템을 식별하는 것과,
    기준 신호를 제공하기 위해 클록 발생기를 선택하는 것과,
    상기 기준 신호와 관련하여 상기 타임스탬프를 설정하는 것과,
    상기 타임스탬프를 포함한 데이터 패킷을 형성하는 것과,
    상기 저장 시스템으로 상기 데이터 패킷을 전송하는 것과,
    라이프사이클 예산을 갱신하도록 상기 데이터 패킷을 처리하는 것을 포함하는
    머신 액세스가능 매체.
  15. 제 14 항에 있어서,
    상기 동작은 이벤트에 응답하여 상기 타임스탬프를 설정하는 것을 더 포함하는
    머신 액세스가능 매체.
  16. 제 15 항에 있어서,
    상기 동작은 상기 이벤트가 타임스탬핑될 것인지를 결정하는 것과, 상기 이벤트가 타임스탬핑되기로 결정하는 것에 응답하여 상기 타임스탬프로 상기 이벤트를 타임스탬핑하는 것을 더 포함하는
    방법.
  17. 제 15 항에 있어서,
    상기 이벤트는 파워온 이벤트인
    방법.
  18. 제 14 항에 있어서,
    상기 타임스탬프는 타임 델타인
    방법.
  19. 제 14 항에 있어서,
    상기 동작은 상기 저장 시스템 내의 저장 위치에 상기 데이터 패킷을 저장하는 것을 더 포함하는
    방법.
  20. 제 19 항에 있어서,
    상기 데이터 패킷은 로그 페이지를 사용하여 상기 저장 위치에 저장되는
    방법.
KR1020117007288A 2008-09-30 2009-09-28 타임스탬핑 방법, 타임스탬핑 전달 방법 및 머신 액세스가능 매체 KR20110048066A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/286,502 US9727473B2 (en) 2008-09-30 2008-09-30 Methods to communicate a timestamp to a storage system
US12/286,502 2008-09-30
PCT/US2009/058533 WO2010039626A2 (en) 2008-09-30 2009-09-28 Methods to communicate a timestamp to a storage system

Publications (1)

Publication Number Publication Date
KR20110048066A true KR20110048066A (ko) 2011-05-09

Family

ID=42058889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117007288A KR20110048066A (ko) 2008-09-30 2009-09-28 타임스탬핑 방법, 타임스탬핑 전달 방법 및 머신 액세스가능 매체

Country Status (7)

Country Link
US (2) US9727473B2 (ko)
EP (1) EP2335145B1 (ko)
JP (1) JP2012503836A (ko)
KR (1) KR20110048066A (ko)
CN (1) CN102165406B (ko)
TW (1) TWI423005B (ko)
WO (1) WO2010039626A2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727473B2 (en) 2008-09-30 2017-08-08 Intel Corporation Methods to communicate a timestamp to a storage system
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
CN102789368B (zh) * 2012-06-21 2015-10-21 记忆科技(深圳)有限公司 一种固态硬盘及其数据管理方法、系统
US9268495B2 (en) 2013-03-15 2016-02-23 Apple Inc. Managing I/O priorities
WO2014142723A1 (en) * 2013-03-15 2014-09-18 Telefonaktiebolaget Lm Ericsson (Publ) Hypervisor and physical machine and respective methods therein for performance measurement
US9043569B2 (en) 2013-05-31 2015-05-26 International Business Machines Corporation Memory data management
CN103559054B (zh) * 2013-10-30 2017-10-10 华为终端有限公司 智能终端多操作系统的实现、删除方法和装置
US9772959B2 (en) 2014-05-30 2017-09-26 Apple Inc. I/O scheduling
US9766819B2 (en) * 2014-12-30 2017-09-19 Sandisk Technologies Llc Systems and methods for managing storage endurance
US10061377B2 (en) * 2015-02-06 2018-08-28 Toshiba Memory Corporation Memory device and information processing device
US10211673B2 (en) 2015-03-04 2019-02-19 Siemens Industry, Inc. Apparatus and methods for timestamping electrical data in a panel meter
TWI559163B (zh) * 2015-03-27 2016-11-21 Nobuyoshi Morimoto Time stamped digital content protection methods and systems
US10025535B2 (en) * 2015-03-27 2018-07-17 Intel Corporation Measurement and reporting of the latency of input and output operations by a solid state drive to a host
CN107817502B (zh) * 2016-09-14 2020-08-07 北京百度网讯科技有限公司 激光点云数据处理方法和装置
US11099760B2 (en) * 2017-12-14 2021-08-24 Intel Corporation Background data refresh using a system timestamp in storage devices
US11012955B2 (en) 2018-03-20 2021-05-18 International Business Machines Corporation Synchronization of host and client log timestamps
US10956068B2 (en) 2018-05-11 2021-03-23 Seagate Technology Llc Time-stamped data in a data storage device
US10719243B2 (en) 2018-05-30 2020-07-21 Apple Inc. Techniques for preserving an expected lifespan of a non-volatile memory
US11475652B2 (en) 2020-06-30 2022-10-18 Samsung Electronics Co., Ltd. Automatic representation toggling based on depth camera field of view
US11422825B2 (en) 2020-12-30 2022-08-23 Kioxia Corporation Determination of power-off duration of NVMe SSD
US11636199B2 (en) 2021-04-12 2023-04-25 Realtek Singapore Pte Ltd. Real time clock with integrated anti-rollback protection

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5941989A (en) * 1997-01-07 1999-08-24 Micron Electronics, Inc. Apparatus for indicating power-consumption status in a computer system
JP2001036549A (ja) 1999-07-15 2001-02-09 Toshiba Corp データ処理システムおよびタイムスタンプ生成方法
US6405329B1 (en) * 1999-07-27 2002-06-11 Dell Usa, L.P. Method and apparatus for HDD time stamp benchmark and installation identification
JP2002032271A (ja) 2000-07-14 2002-01-31 Ricoh Co Ltd 情報処理装置
US6693888B2 (en) * 2001-06-06 2004-02-17 Networks Associates Technology, Inc. Method and apparatus for filtering that specifies the types of frames to be captured and to be displayed for an IEEE802.11 wireless LAN
JP3641239B2 (ja) 2001-12-27 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
JP4434543B2 (ja) * 2002-01-10 2010-03-17 株式会社日立製作所 分散ストレージシステム、ストレージ装置、およびデータのコピー方法
US20030185238A1 (en) 2002-04-01 2003-10-02 Strasser David A. System for maintaining original delivery times in transport packets and method thereof
JP2004030534A (ja) 2002-06-28 2004-01-29 Toshiba Corp ディスク記憶装置及び事象管理方法
US7418356B2 (en) * 2002-09-23 2008-08-26 Research In Motion Limited System and method of battery capacity estimation
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
AU2002953325A0 (en) * 2002-12-13 2003-01-09 Executive Computing Holdings Pty Ltd Means for providing protection for digital assets
JP4651913B2 (ja) 2003-02-17 2011-03-16 株式会社日立製作所 記憶装置システム
US7389394B1 (en) * 2003-05-02 2008-06-17 Symantec Operating Corporation System and method for performing snapshots in a storage environment employing distributed block virtualization
JP4111052B2 (ja) 2003-05-13 2008-07-02 ソニー株式会社 ディスク型記録装置を内蔵する装置及びディスク型記録装置の制御方法、並びにコンピュータ・プログラム
JP2004341755A (ja) * 2003-05-15 2004-12-02 Hitachi Ltd 情報処理装置
US7545794B2 (en) 2003-08-14 2009-06-09 Intel Corporation Timestamping network controller for streaming media applications
US7174421B2 (en) * 2003-12-04 2007-02-06 Matsushita Electric Industrial Co., Ltd. HDD with rapid availability of critical data after critical event
US20060080574A1 (en) * 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
US7363444B2 (en) * 2005-01-10 2008-04-22 Hewlett-Packard Development Company, L.P. Method for taking snapshots of data
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7539882B2 (en) * 2005-05-30 2009-05-26 Rambus Inc. Self-powered devices and methods
KR100660546B1 (ko) * 2005-11-10 2006-12-22 삼성전자주식회사 반도체 디스크 제어 장치
US20070110027A1 (en) 2005-11-15 2007-05-17 Mediatek Incorporation Systems and methods for processing packet streams
US7835823B2 (en) * 2006-01-05 2010-11-16 Intuitive Surgical Operations, Inc. Method for tracking and reporting usage events to determine when preventive maintenance is due for a medical robotic system
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
CA2652594A1 (en) 2006-05-19 2007-11-29 Symmetricom, Inc. Network time protocol precision timestamping service
US20080126685A1 (en) * 2006-11-24 2008-05-29 Radoslav Danilak System, method, and computer program product for reducing memory write operations using an instruction set
US20100115175A9 (en) * 2006-12-18 2010-05-06 Zhiqing Zhuang Method of managing a large array of non-volatile memories
US8259497B2 (en) * 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8069354B2 (en) * 2007-08-14 2011-11-29 Mips Technologies, Inc. Power management for system having one or more integrated circuits
JP2009104687A (ja) * 2007-10-22 2009-05-14 Fujitsu Ltd 記憶装置及び制御回路
US8209465B2 (en) * 2007-10-30 2012-06-26 Hagiwara Sys-Com Co., Ltd. Data writing method
US7970946B1 (en) * 2007-11-27 2011-06-28 Google Inc. Recording and serializing events
US7880591B2 (en) * 2008-02-01 2011-02-01 Apple Inc. Consumer abuse detection system and method
WO2009124320A1 (en) * 2008-04-05 2009-10-08 Fusion Multisystems, Inc. Apparatus, system, and method for bad block remapping
US8244961B2 (en) * 2008-05-27 2012-08-14 Initio Corporation SSD with distributed processors
US8554983B2 (en) * 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
US8285919B2 (en) * 2008-05-27 2012-10-09 Initio Corporation SSD with improved bad block management
US8607020B2 (en) * 2008-06-06 2013-12-10 International Business Machines Corporation Shared memory partition data processing system with hypervisor managed paging
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8140884B2 (en) * 2008-07-18 2012-03-20 Verisign, Inc. Efficient time-based memory counters
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US9727473B2 (en) 2008-09-30 2017-08-08 Intel Corporation Methods to communicate a timestamp to a storage system
US8291181B2 (en) * 2008-10-28 2012-10-16 Micron Technology, Inc. Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation
US20100268694A1 (en) * 2009-04-17 2010-10-21 Laurent Denoue System and method for sharing web applications
US8055943B2 (en) * 2009-04-24 2011-11-08 International Business Machines Corporation Synchronous and asynchronous continuous data protection
US8433931B2 (en) * 2009-05-13 2013-04-30 Microsoft Corporation Integrating energy budgets for power management
US8151137B2 (en) * 2009-05-28 2012-04-03 Lsi Corporation Systems and methods for governing the life cycle of a solid state drive
CN102597910B (zh) * 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
US20170285970A1 (en) * 2016-03-30 2017-10-05 Dell Products L.P. Information Handling System Persistent Storage Device Life Management

Also Published As

Publication number Publication date
WO2010039626A2 (en) 2010-04-08
EP2335145A2 (en) 2011-06-22
WO2010039626A3 (en) 2010-07-01
TWI423005B (zh) 2014-01-11
US20100082995A1 (en) 2010-04-01
CN102165406A (zh) 2011-08-24
EP2335145B1 (en) 2019-03-20
US10261701B2 (en) 2019-04-16
CN102165406B (zh) 2014-03-12
US9727473B2 (en) 2017-08-08
JP2012503836A (ja) 2012-02-09
US20170329537A1 (en) 2017-11-16
TW201027295A (en) 2010-07-16
EP2335145A4 (en) 2012-08-08

Similar Documents

Publication Publication Date Title
US10261701B2 (en) Methods to communicate a timestamp to a storage system
KR101466560B1 (ko) 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
KR101385872B1 (ko) 호스트로부터의 메모리 장치의 부팅
KR101798036B1 (ko) I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US9037778B2 (en) Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device
US8433882B2 (en) Disk array control device and storage device
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
KR102114109B1 (ko) 데이터 저장 장치
US11663133B2 (en) Memory tiering using PCIe connected far memory
Sanvido et al. NAND flash memory and its role in storage architectures
KR102225313B1 (ko) 데이터 저장 장치의 동작 방법
KR20150074550A (ko) 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템
KR20130024271A (ko) 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템
US20140129759A1 (en) Low power write journaling storage system
KR20190022933A (ko) 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법
US8751760B2 (en) Systems and methods for power state transitioning in an information handling system
US20090222614A1 (en) Information processing apparatus and nonvolatile semiconductor memory drive
US11023139B2 (en) System for speculative block IO aggregation to reduce uneven wearing of SCMs in virtualized compute node by offloading intensive block IOs
US20220083280A1 (en) Method and apparatus to reduce latency for random read workloads in a solid state drive
JP2010140342A (ja) ドライブ装置、情報処理装置およびデータ書き換え方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment