KR20100017715A - 시간 추정의 정확성을 향상시키기 위한 회로를 구비하는 메모리 디바이스와, 메모리 디바이스를 사용하기 위한 방법 - Google Patents

시간 추정의 정확성을 향상시키기 위한 회로를 구비하는 메모리 디바이스와, 메모리 디바이스를 사용하기 위한 방법 Download PDF

Info

Publication number
KR20100017715A
KR20100017715A KR1020097025630A KR20097025630A KR20100017715A KR 20100017715 A KR20100017715 A KR 20100017715A KR 1020097025630 A KR1020097025630 A KR 1020097025630A KR 20097025630 A KR20097025630 A KR 20097025630A KR 20100017715 A KR20100017715 A KR 20100017715A
Authority
KR
South Korea
Prior art keywords
time
accuracy
memory device
measured activity
stamp
Prior art date
Application number
KR1020097025630A
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
Priority claimed from US11/811,347 external-priority patent/US20080304364A1/en
Priority claimed from US11/811,284 external-priority patent/US8688924B2/en
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20100017715A publication Critical patent/KR20100017715A/ko

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Electric Clocks (AREA)
  • Debugging And Monitoring (AREA)
  • Measurement Of Unknown Time Intervals (AREA)

Abstract

시간 추정의 정확성을 개선하기 위한 회로를 갖는 메모리 디바이스와 이들 사용하기 위한 방법이 개시된다. 일 실시예에 있어서, 메모리 디바이스는 시간 스탬프를 수신하고 수신된 시간 스탬프에 대해 활동 시간을 측정한다. 메모리 디바이스는 앞서 측정된 활동 시간의 정확성을 결정하고 측정된 활동 시간, 앞서 측정된 활동 시간의 정확성, 그리고 수신된 시간 스탬프를 이용한 시간 추정을 발생한다. 다른 실시예에서, 시간 추정을 발생하거나 발생하지 않고 측정된 활동 시간이 조정된다. 또 다른 실시예가 개시되며, 각각의 실시예는 독자적으로 또는 함께 조합하여 사용될 수 있다.

Description

시간 추정의 정확성을 향상시키기 위한 회로를 구비하는 메모리 디바이스와, 메모리 디바이스를 사용하기 위한 방법{MEMORY DEVICE WITH CIRCUITRY FOR IMPROVING ACCURACY OF A TIME ESTIMATE AND METHOD FOR USE THEREWITH}
본 출원은 미합중국 특허출원 일련번호 제 11/811,347 호 "Memory Device with Circuitry for Improving Accuracy of a Time Estimate", 미합중국 특허출원 일련번호 제 11/811,284 호 "Method for Improving Accuracy of a Time Estimate from a Memory Device", 미합중국 특허출원 일련번호 제 11/811,289 호 "Method for Improving Accuracy of a Time Estimate Used to Authenticate an Entiry to a Memory Device", 미합중국 특허출원 일련번호 제 11/811,344 호 "Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used to Authenticate an Entity", 미합중국 특허출원 일련번호 제 11/811,354 호 "Method for Improving Accuracy of a Time Estimate Used in Digital Rights Management(DRM) License Validation", 미합중국 특허출원 일련번호 제 11/811,348 호 "Memory Device with Circuitry for Improving Accuracy of a Time Estimate Used in Digital Rights Management(DRM) License Validation", 미합중국 특허출원 일련번호 제 11/811,346 호 "Method for Using Time from a Trusted Host Devices", 및 미합중국 특허출원 일련번호 제 11/811,345 호 "Memory Device Using Time from a Trust Host Device" 에 관한 것으로, 본 출원과 함께 출원중에 있는 이들 각각은 본 명세서에 참조로서 인용된다.
샌디스크(SanDisk)사의 TustedFlashTM 메모리 디바이스와 같은 몇몇 메모리 디바이스는 디지털 저작권 관리(DRM) 라이센스 유효와 같은 시간-기반 동작을 수행하기 위해 시간을 알 필요가 있다. 이러한 동작에 포함된 보안 이슈로 인해, 메모리 디바이스는 정확한 시간을 제공하기 위해 호스트 디바이스(a host device)를 신뢰할 수 없다. 메모리 디바이스가 네트워크내 신뢰성있는 구성요소로부터 정확한 시간을 획득할 수 있다고 하더라도, 메모리 디바이스를 호스팅하는 호스트 디바이스는 시간을 알기 위해 메모리 디바이스 필요시 네트워크에 접속할 수 없다. 메모리 디바이스는 자신의 활동 시간을 측정하도록 설계될 수 있지만, 측정된 활동 시간으로부터 발생된 시간 추정은 메모리 디바이스가 활동 시간을 지속적으로 측정하지 않으면 (예를 들어, 메모리 디바이스가 측정 개시 후 파워 다운되면) 실제 시간의 진정한 측정이 아닐 것이다. 따라서, 측정된 활동 시간으로부터 발생된 시간 추정은 실제로 실제 시간일 수 있는 것의 보다 낮은 제한만을 가리킬 것이며, 이러한 시간 추정은 소정의 시간-기반 동작에서 요구되는 정확성을 제공하지 못할 수도 있다. 메모리 디바이스가 비활동일 때 조차 메모리 디바이스가 시간의 트랙을 지속적으로 유지하기 위해 배터리-백업 클럭을 장착할 수 있다고 하더라도, 이러한 클럭은 메모리 디바이스에 비용을 추가할 수 있다.
본 발명은 청구항에 의해 정의되며, 본 섹션 내 어느 것도 이들 청구항을 제한하는 것으로 간주되지 않는다.
소개를 위해, 이하 기술되는 실시예는 시간 추정의 정확성을 향상시키기 위한 회로를 갖는 메모리 디바이스 및 방법을 제공한다. 일 실시예에서, 메모리 디바이스는 시간 스탬프(a time stamp)를 수신하고 수신된 시간 스탬프에 대해 활동 시간을 측정한다. 메모리 디바이스는 앞서 측정된 활동 시간의 정확성을 결정하고 측정된 활동 시간, 앞서 측정된 활동 시간의 정확성, 그리고 수신된 시간 스탬프를 이용하여 시간 추정을 발생한다. 다른 실시예에서, 시간 추정에 의해/의하지 않고 측정된 활동 시간이 조정된다. 다른 실시예가 개시되며, 각각의 실시예는 독자적으로 또는 조합으로 함께 사용될 수 있다.
실시예는 첨부된 도면을 참조하여 기술될 것이다.
도 1은 실시예의 시스템을 예시하는 도면;
도 2는 실시예의 메모리 디바이스의 블럭도;
도 3은 시간 스탬프를 획득하기 위한 실시예의 시스템 다이어그램;
도 4는 시간 스탬프를 획득하기 위한 실시예의 방법의 흐름도;
도 5는 메모리 디바이스로부터 시간 추정의 정확성을 개선하기 위한 실시예의 방법의 흐름도; 그리고
도 6~8은 실시예를 예시하기 위해 사용된 시간표.
이하 기술된 실시예는 시간 추정의 정확성을 개선하기 위한 메모리 디바이스 및 방법에 관한 것이다. 도 1은 이들 실시예를 예시하기 위해 사용될 시스템(10)을 예시한다. 도 1에 도시된 바와 같이, 시스템(10)은 각각의 복수의 호스트 디바이스에 제거가능하게 연결된 복수의 메모리 디바이스(20, 30, 40), 퍼스널 컴퓨터(PC)(50), 디지털 미디어(예를 들어, MP3) 플레이어(60), 그리고 셀 폰(70)을 포함한다. 호스트 디바이스는 메모리 디바이스로부터 데이터를 판독하고/하거나 기록할 수 있는 디바이스이다. 데이터는 오디오 파일 또는 (오디오를 갖거나/갖지않는)비디오 파일, 이미지, 게임, 책, 지도, 데이터 파일, 또는 소프트웨어 프로그램과 같은 디지털 미디어 콘텐츠를 포함하지만 이에 제한되지 않는다. 데이터는 제조사 또는 다른 제 3 자에 의해 사전 로딩되거나 예를 들어, 다른 디바이스로부터 사이드 로딩된 네트워크내 서버로부터 메모리 디바이스에 다운로드될 수 있다.
호스트 디바이스는 어떠한 적절한 형태를 취할 수 있으며 도 1에 도시된 예에 제한되지 않는다. 예를 들어, 호스트 디바이스는 노트북 컴퓨터, 휴대용 컴퓨터, 휴대용 이메일/문자 메시지 디바이스, 휴대용 게임 콘솔, 비디오 플레이어(예를 들어, DVD 플레이어 또는 포터블 비디오 플레이어), 오디오 및/또는 비디오 레코더, 디지털 카메라, 셋-탑 박스, 디스플레이 디바이스(예를 들어, 텔레비전), 프린터, 카 스테레오, 그리고 네비게이션 시스템의 형태를 취할 수 있다. 또한, 호스트 디바이스는 혼합된 기능을 포함할 수 있다. 예를 들어, 호스트 디바이스는 전화 콜을 발생하고 수신할 수 있도록 한 것에 더해 디지털 미디어(예를 들어, 음악 및/ 또는 비디오) 파일을 플레이할 수 있는 셀 폰일 수 있다.
PC(50) 및 셀폰(70)과 같은 호스트 디바이스는 (비록 다른 타입의 네트워크가 사용될 수 있다고 하더라도, 인터넷(80) 또는 무선 네트워크(90)와 같은)네트워크에 통신적으로 연결할 수 있다. 이러한 능력을 갖는 호스트 디바이스는 본 명세서에서 "접속형 디바이스"로 지칭될 것이다. 셀 폰(70)이 비접속 모드에서 동작중이거나 PC(50)가 인터넷 접속을 설정하지 않을 때와 같이 "접속형 디바이스"가 항상 네트워크에 실제적으로 접속되지는 않을 것이라는 것이 이해될 것이다. 자체적으로 (디지털 미디어 플레이어(60)와 같은) 네트워크에 통신적으로 결합할 수 있는 능력을 가지지 못하는 호스트 디바이스는 본 명세서에서 "비접속형 디바이스"로 지칭될 것이다. 비접속형 디바이스는 도 1에 도시된 바와 같이 디지털 미디어 플레이어(60)가 PC(50)에 접속되는 비접속형 디바이스와 접속형 디바이스를 연결함으로써 네트워크와 통신이 유지될 수 있다. 비록 이러한 방법으로 접속된다고 하더라도, 비접속형 디바이스는 비접속형 디바이스가 이러한 기능(예를 들어, 단순 MP3 플레이어)을 위해 설계되지 않는다면 네트워크로부터 정보를 이끌어낼 수 없을 수도 있다. 이러한 상황에 있어서, 네트워크내 구성요소는 정보를 디바이스로 밀어낼 수 있다. 주목해야 할 것은 비록 도 1이 유선 접속을 통해 PC(50)에 접속되는 디지털 미디어 플레이어(60)를 도시한다고 하더라도, 무선 접속이 사용될 수 있다. 유사하게, 용어 "접속형" 및 "결합형"이 유선 접속 또는 직접 접속을 반드시 표시할 필요는 없다.
네트워크(예를 들어, 인터넷(80) 또는 무선 네트워크(90))는 접속형 디바이 스(또는 접속형 디바이스에 연결된 비접속형 디바이스)가 시간 스탬프를 제공할 수 있는 타임 서버(100), DRM-보호 컨테츠를 제공하고 이러한 콘텐츠에 접근하기 위한 라이센스를 제공할 수 있는 디지털 저작권 관리 서버(DRM)(110)와 같은 외부 구성요소에 접근할 수 있도록 허용할 수 있다. 이들 서버 모두는 이하 보다 상세히 기술될 것이다. 비록 타임 서버(100)와 DRM 서버(110)가 도 1에 개별적인 디바이스로서 도시되지만, 이들 두 서버는 단일 디바이스로 결합될 수 있다. 더욱이, 이들 서버는 다른 기능을 포함할 수 있다. 또한, 시간 서버(100) 및 DRM 서버(110)와 다른 구성 요소가 인터넷(80) 및 무선 네트워크(90)를 통해 액세스될 수 있다.
다양한 상황에서, 몇시인지를 알 필요가 있다. 예를 들어, 메모리 디바이스상의 DRM 보호 콘텐츠에 대해 라이센스가 소정의 시간에 종료될 콘텐츠에 대한 액세스를 언급한다면, 라이센스를 유효하도록 하는데 책임이 있는 엔터티는 액세스가 종료되었는지를 판단하기 위해 현재의 시간과 종료 시간을 비교할 필요가 있다. 몇몇 환경에 있어서, 메모리 디바이스는 "dumb" 저장 디바이스이고, 호스트 디바이스는 시간 기반 프로세싱(예를 들어, 호스트-특정 DRM 키에 의해 DRM 라이센스를 유효화하기 위한)을 수행하기 위한 책임이 있다. 이들 환경에서, 호스트 디바이스가 접속형 모드에서 동작하는 PC(50) 또는 셀 폰(70)과 같은 접속형 디바이스이면, 호스트 디바이스는 신뢰할 수 있는 시간의 소스인 시간 서버(100)로부터 현재의 시간을 갖는 시간 스탬프를 얻을 수 있다. 비접속형 모드에서 동작하는 디지털 미디어 플레이어(60) 또는 셀 폰(70)과 같은 비접속형 호스트 디바이스는 시간의 트랙을 유지할 배터리 백업 클럭을 장착할 수 있다. 시간 스탬프가 이들 디바이스와 함께 여전히 사용될 수 있어 클럭이 오랜 시간에 걸쳐 정확성을 잃게 되는 경우 이들의 배터리 백업 클럭을 재조정한다.
이들 호스트 디바이스의 하나의 단점은 DRM 라이센스를 유효화시키기 위해 사용되는 호스트 특정 DRM 키가 이동될 수 없다는 점이다. 이것은 보호 콘텐츠를 특별한 호스트 디바이스에 효과적으로 연결된다. 이러한 단점을 극복하기 위해, DRM 키 및 라이센스가 메모리 디바이스로 발급될 수 있다. DRM 키 및 라이센스는 메모리 디바이스를 따라 움직이기 때문에, 보호 콘텐츠는 호스트 디바이스 대신에 메모리 디바이스에 효과적으로 연결되어, 허용된 디바이스인지를 메모리 디바이스를 입증할 수 있는 어떠한 호스트 디바이스에 의해 운반가능하고 액세스 가능한 보호 콘텐츠를 만들 수 있다. 이러한 상황에서, 메모리 디바이스는 메모리 디바이스에 저장된 DRM 키를 갖는 DRM 라이센스를 유효화시키기 위해 기능을 포함할 수 있다. 대안으로, 메모리 디바이스는 DRM 키에 의해 DRM 라이센스를 유효화시키기 위해 호스트 디바이스에 DRM 키를 제공할 수 있다. 샌디스크사의 TrustedFlashTM 메모리 디바이스는 DRM 키와 라이센스를 메모리 디바이스상에 저장하는 메모리 디바이스의 예이며, 이에 의해 보호 콘텐츠가 메모리 디바이스와 함께 이동가능하다.
이러한 환경에서, "dumb" 저장 디바이스 대신에, 메모리 디바이스는 콘텐츠를 요구하는 엔터티9(entity)가 허가된 엔터티이고 그러한 콘텐츠를 위한 라이센스 기간이 유효한 경우에만 메모리 디바이스로부터 콘텐츠가 판독될 수 있도록하는 프로세싱 능력을 갖는다. 이들 기능 모두를 위해, 메모리 디바이스는 현재의 시간을 알 필요가 있다. 예를 들어, 공용 키 구조(PKI) 인증에 있어서, 엔터티의 인증은 자격증(예를 들어, RSA 증명서)에 기초하며, 이는 종료 시간을 갖는다. 따라서, 엔터티에 의해 제공된 RSA 증명서를 유효하게 하기 위해, 메모리 디바이스는 몇시인지를 알 필요가 있다. 유사하게, 콘텐츠 이용 라이센스는 시간 제한(예를 들어, 노래가 한달동안만 플레이될 수 있고, 영화가 하루동안만 시청될 수 있는 등)을 가질 수 있으며, 메모리 디바이스는 라이센스를 유효화하기 위해 시간을 알 필요가 있다. 따라서, 메모리 디바이스는 시간의 트랙을 유지하기 위해 몇몇 메커니즘을 필요로 한다.
하나의 옵션은 호스트 디바이스를 통해 메모리 디바이스 요청, 메모리 디바이스가 시간을 알 필요가 있을 때 마다 신뢰성있는 시간 서버로부터 시간 스탬프를 갖는 것이다. 이러한 솔루션은 접속형 디바이스에 적합하지만, 메모리 디바이스가 비접속형 디바이스(예를 들어, 인터넷에 연결되지 않은 홈 PC, MP3 플레이어, 네트워크에 연결이 끊긴(예를 들어, 비행중일 때) 셀 폰)와 마찬가지로 접속형 디바이스 모두에 사용될 수 있기 때문에, 메모리 디바이스는 시간을 알 필요가 있을 때 이용할 수 있는 연결성에 의존할 수 없다. 다른 옵션은 배터리 백업 클럭을 갖는 메모리 디바이스를 장착하는 것이다. 그러나, 이것은 바람직하지 않을 수 있는데, 이는 메모리 디바이스에 비용이 추가되기 때문이다. 또 다른 옵션은 메모리 디바이스에 (자신의 내부 클럭 또는 외부 소스로부터) 시간을 제공하기 위해 호스트 디바이스에 의존할 것이다. 그러나, 많은 상황에서, 메모리 디바이스는 정확한 시간을 제공하기 위해 호스트 디바이스를 신뢰할 수 없다. 사용자가 호스트 디바이스상의 클럭을 "백 데이트"하도록 허용되면(즉, 호스트 디바이스상의 클럭을 현재의 시간보다 이른 시간으로 설정하면), 사용자는 메모리 디바이스가 인포스되도록 할 필요가 있는 시간 제한을 회피할 수 있을 것이다. 다른 한편, 메모리 디바이스가 호스트 디바이스를 신뢰할 수 있다면, 메모리 디바이스는 시간동안 호스트 디바이스에 의존할 수 있다. 미합중국 특허출원 일련번호 제 11/811,346 호 "Method for Using Time from a Trusted Host Devices", 및 미합중국 특허출원 일련번호 제 11/811,345 호 "Memory Device Using Time from a Trust Host Device", 이들 각각은 본 출원과 함께 출원중이며 참조로서 본 명세서에 인용되며, 메모리 디바이스가 시간동안 호스트 디바이스에 의존할 수 있는지를 결정하기 위한 기법을 기술한다. 또 다른 옵션은 메모리 디바이스의 제한된 시간 트래킹 능력을 향상시키기 위한 것이다. 이러한 옵션으로의 전환에 앞서, 실시예의 메모리 디바이스의 일반적인 개관이 제공된다.
도면으로 돌아가서, 도 2는 실시예의 메모리 디바이스(200)의 블럭도이며, 메모리 디바이스는 메모리 카드 또는 스틱의 형태를 취할 수 있다. 도 2에 도시된 바와 같이, 메모리 디바이스(200)는 (플래시 메모리와 같은)비휘발성 메모리 어레이(210) 및 회로(220)의 콜렉션을 포함한다. 이러한 실시예에서, 비휘발성 메모리 어레이(210)는 솔리드-스테이트 메모리, 특히, 플래시 메모리(210)의 형태를 취한다. 플래시 대신에, 다른 타입의 솔리드-스테이트 메모리가 사용될 수 있다는 것을 주목해야 한다. 또한 솔리드-스테이트 메모리와 다른 마그네틱 디스크 및 광 CD와 같은 메모리가 사용될 수 있다는 것을 주목해야 한다. 또한, 단순하게 하기 위해, 용어 "회로"는 순수한 하드웨어 구현 및/또는 하드웨어/소프트웨어 결합(또는 펌웨어) 구현을 지칭하는 것으로 본 명세서에 사용될 것이다. 따라서, "회로"는 프로세서에 의해 실행될 수 있는 컴퓨터 판독가능한 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 하나 이상의 ASIC, 프로그램가능한 로직 컨트롤러, 임베디드 마이크로컨트롤러, 그리고 싱글-보드 컴퓨터의 형태를 취할 수 있다.
도 2의 회로(210)의 콜렉션은 복수의 구성요소, 호스트 인터페이스 모듈(HIM)(230), 플래시 인터페이스 모듈(FIM)(240), 버퍼 관리 유닛(BMU)(250), CPU(260), 그리고 하드웨어 타이머 블럭(270)을 포함한다. HIM(230)은 호스트 디바이스(300)를 위한 인터페이스 기능을 제공하며, FIM(240)은 플래시 메모리를 위한 인터페이스 기능을 제공한다. BMU(250)는 암호/암호해제 기능을 제공하기 위한 암호-엔진(252) 및 HIM(230) 및 FIM(240)과 각각 통신하기 위한 호스트 다이렉트 메모리 액세스(DMA) 구성요소(254) 및 플래시 DMA 구성요소(256)를 포함한다. CPU(260)는 CPU RAMS(260) 및/또는 플래시 메모리(210)에 저장된 소프트웨어 및 펌웨어를 실행한다. 하드웨어 타이머 블럭(270)은 시간을 측정하기 위해 메모리 디바이스의 능력과 함께 이하 기술될 것이다.
호스트 디바이스(300)에 메모리 디바이스(200)를 제거가능하게 연결하기 위해 전기적 및 물리적 커넥터와 같은 메모리 디바이스(200)의 다른 구성요소는 도면을 단순하게 하기 위해 도 2에 도시되지 않는다. 메모리 디바이스(200) 및 이의 동작에 관한 보다 많은 정보는 미합중국 특허출원 번호 제 11/314,411 호 및 제 11/557,028 호에서 발견될 수 있으며, 이들 모두는 참조로서 본 명세서에 인용된 다. 추가적인 정보는 미합중국 특허출원 번호 제 11/322,812 호 및 제 11/322,766 호에서 발견될 수 있으며, 이들 모두는 참조로서 본 명세서에 인용된다. 그러나, 이들 문서에 기술된 구성요소 및 기능성은 청구항에 분명히 이용되지 않는 한 다음의 청구항내에 판독되지 않을 것이라는 것을 주목해야 한다.
기술된 메모리 디바이스(200)의 개요와 더불어, 시간을 측정하기 위해 메모리 디바이스(200) 능력이 기술될 것이다. 본 실시예에서, 메모리 디바이스는 시간 스탬프에 대해 측정된 활동 시간에 기초한 시간 추정을 발생한다. 즉, 시간 스탬프는 시간 스탬프에 추가되는 메모리 디바이스의 측정된 시간에 의해 "스타트 라인"으로서 작용한다. 시간 스탬프는 어떠한 원하는 정도의 정밀도(예를 들어, 년, 월, 일, 시간, 분, 초 등)로 시간을 표시하도록 어떠한 형태를 취할 수 있다. 되도록이면, 메모리 디바이스(200)는 메모리 디바이스(200)가 정확한 시간을 제공하기 위해 믿을 수 있는 엔터티(예를 들어, 시간 서버(100) 또는 신뢰성 호스트 디바이스)로부터 시간 스탬프를 제공받는다. 시간 스탬프는 어떠한 형태를 취하고 자체적으로 전송되거나 다른 정보를 포함할 수 있다. 메모리 디바이스는 되도록이면 암호-엔진(252)을 통해 안전하게 시간 스탬프를 저장하여, 쉽게 변경될 수 없다.
도 3 및 도 4는 메모리 디바이스(200)가 시간 스탬프를 획득할 수 있는 하나의 특별한 방법을 예시하는 시스템 다이어그램과 흐름도이다. 메모리 디바이스(200)가 상이한 방법으로 시간 스탬프를 획득할 수 있으며 시간 스탬프가 상이한 형태를 취할 수 있다는 것을 주목해야 한다. 또한 다중 서버 또는 호스트와 인터페이스하는 싱글 메모리 디바이스가 다중 형태를 동시에 다룰 수 있다는 것을 주목해 야 한다. 따라서, 특정한 본 발명의 예는 본 명세서에 명시적으로 인용되지 않는 한 청구항에서 읽히지 않을 것이다.
도 3에 도시된 바와 같이, 메모리 디바이스(200)는 메모리 디바이스-호스트 디바이스 통신 채널(305)을 통해 호스트 디바이스(300)와 통신하며, 호스트 디바이스(300)는 호스트-디바이스-시간 서버 통신 채널(315)를 통해 시간 서버(100)와 통신한다. 비록 시간 서버(100)가 싱글 서버를 포함할 수 있다고 하더라도, 본 발명의 실시예에서, 시간 서버(100)는 시간-서버 통신 채널(325)을 통해 서로 동기되는 복수의 서버(102, 104, 106)를 포함한다.
본 발명의 실시예에서, 시간 스탬프를 요청하기 위한 절차는 호스트 디바이스(300)에 의해 개시되며, 이것은 메모리 디바이스(200)(액트 405)(도 3 및 도 4 참조)로 겟 논스 커맨드(a get nonce command)를 전송한다. 본 발명의 실시예에서, 논스(a nonce)는 후에 시간 서버(100)에 의해 발생된 시간 스탬프의 인증을 증명하기 위해 메모리 디바이스(200)에 의해 사용된 160-비트 랜덤 수이다. 메모리 디바이스(200)는 랜덤 수(논스)(액트 140)를 발생하고 이것을 후에 증명 단계를 위해 CPU RAMS(즉, 휘발성 메모리)(262)(또는 대안적으로, 메모리(210))에 저장한다. 그 다음 메모리 디바이스(200)는 논스를 호스트 디바이스(300)(액트 415)로 전송한다. 메모리 디바이스(200)는 또한 후에 타임-아웃이 발생하였는지를 판단하기 위해 (이하 기술된 바와 같이)시간을 측정하기 위해 시작된다.
호스트 디바이스(300)가 논스를 수신할 때, 호스트 디바이스는 논스를 포함한 겟 타임 스탬프 요청을 시간 서버(100)(액트 420)로 전송한다. 시간 서버(100) 는 자신의 개인 키를 갖는 시간(예를 들어, UTC Zulu 포맷내 월드 타임) 및 논스를 사인한다. 그 다음 시간 서버(100)는 본 실시예에서 논스, 시간 스탬프, 증명서 체인, 그리고 증명서 철회 리스트(CRL) 체인을 포함하는 시간 스탬프 응답을 호스트 디바이스(300)(액트 425)로 전송한다. 그 다음, 호스트 디바이스(300)는 이러한 응답을 갖는 시간 갱신 커맨드를 메모리 디바이스(200)(액트 430)로 전송한다. 이러한 커맨드에 응답하여, 메모리 디바이스(200)는 증명서 및 CRL을 증명하기 위한 시도를 한다(액트 435). 증명이 실패하면, 메모리 디바이스(200)는 휘발성 메모리(262)를 리셋하고 아이들 프로세스(an idle process)로 복귀한다(액트 440). 증명서 및 CRL의 증명이 통과되면(액트 445), 메모리 디바이스(200)는 휘발성 메모리(262)내 논스에 응답하여 논스를 비교한다(액트 450). 비교가 실패하면, 메모리 디바이스는 휘발성 메모리(262)를 리셋하고 아이들 프로세스로 복귀한다(액트 455). 비교가 성공하면, 메모리 디바이스(200)는 메모리(210)에 새로운 시간 스탬프를 저장하며, 되도록이면 안전한 방법으로 탬퍼링에 대해 보호된다.
메모리 디바이스(200)가 논스(410)를 발행하고 응답을 기다린 후 (액트 460), 호스트 디바이스(300)가 다른 겟 논스 커맨드를 메모리 디바이스(200)로 전송할 수 있다는 것을 주목해야 한다(액트 465). 전술한 바와 같이, 메모리 디바이스(200)는 논스가 발생된 후 시간을 측정하기 위해 시작한다. 새로운 논스 커맨드(465)가 측정된 시간이 소정의 타임-아웃 한계에 도달하기 전에 수신되면, 메모리 디바이스(200)는 되도록이면 새로운 논스 커맨드(465)를 무시한다. 그러나, 새로운 논스 커맨드(465)가 타임-아웃 한계 후에 수신되면, 메모리 디바이스(200)는 휘발성 메모리(262)를 리셋하고 새로운 논스를 발생할 것이다(액트 470). 따라서, 논스는 제한된 시간동안에만 유효할 것이고, 타임-아웃 한계("트래블 타임 에러")는 메모리 디바이스(200)가 시간 서버(100)로부터 시간 스탬프를 기다리기 위해 합법적인 것을 고려한다.
메모리 디바이스(200)에 저장된 시간 스탬프가 시간 서버(100)가 데이터 스트링을 사인한 시간을 포함하기 때문에, 시간 스탬프에 표시된 시간은 호스트 디바이스(300)가 시간 스탬프를 요청한 실제의 월드 타임 또는 시간 스탬프의 정확도(예를 들어, 년, 월, 일, 시간, 분, 등) 및 요청을 전송하고 응답을 수신하는데 폼함되는 지연에 따라서 메모리 디바이스(200)가 시간 스탬프를 저장한 실제의 월드 타임이 아닐 수 있다. 상기 논의된 논스 타임-아웃 기간은 타임 스탬프가 메모리 디바이스(200)에 의해 요구된 정확도를 가지도록 보장하기 위해 이러한 시간을 설정할 수 있다. 따라서, 메모리 디바이스(200)는 시간 스탬프 요청에 있어서 최대 수용가능한 지연에 걸쳐 제어한다. 또한, 대안적인 실시예에서, 시간 서버(100)에 의해 발생된 시간 스탬프는 호스트 디바이스(300)가 시간 스탬프를 요청하는 추정된 시간과 같은 몇몇 다른 시간을 표시할 수 있으며, 예상된 시간 스탬프는 메모리 디바이스(200)에 저장될 것이거나 몇몇 다른 시간이다.
상기 프로토콜은 메모리 디바이스(200)가 비보안 접속 시스템(예를 들어, 인터넷, WiFi 네트워크, GSM 네트워크 등)을 통해 시간 서버(100)와 통신할 수 있도록 한다. 접속 시스템은 메모리 디바이스(200)가 시간 서버(100)에 의해 전송된 시간 스탬프가 전송동안 탬퍼되지 않을 것라는 것을 가정할 수 없다는 점에서 보안되 지 않는다. 네트워크가 시간 스탬프를 보호하기 위해 의지될 수 없기 때문에, 상기 보호 메카니즘(또는 몇몇 다른 보호 메카니즘)이 시간 서버(100)와 메모리 디바이스(200)간에 사용될 수 있다. 시간 스탬프가 탬퍼되면, 암호화 프로토콜이 메모리 디바이스(200)가 그것을 검출할 수 있도록 한다. 즉, 접속 시스템이 보안되지 않기 때문에, 시스템 자체는 사람들이 시간 스탬프내 비트를 변화시키는 것을 방지하지 못하지만, 메모리 디바이스(200)는 탬퍼링을 검출할 수 있고 시간 스탬프를 거절할 수 있다. 대안적인 실시예에서, 보안된 통신 시스템이 사용되며(즉, 데이터 통신 라인이 보호된다), 시간 스탬프는 아무도 시간 스탬프에 의해 탬퍼될 수 없기 때문에 평범한 문장으로 전송될 수 있다.
이제 시간 스탬프의 수신이 설명되며, 시간을 추적할 수 있는 메모리 카드의 능력이 논의될 것이다. 전술한 바와 같이, 메모리 디바이스(200)는 제한된 시간 추적 능력을 가지며, 특히, 메모리 디바이스(200)는 자신의 활동 시간을 측정할 수 있다. 활동 시간은 메모리 디바이스(200)가 호스트 디바이스에 접속되고 실제로 사용(아이들 또는 슬립 모드에 비해 메모리 디바이스(200)와 호스트 디바이스(300)간의 버스상에 활동이 존재할 때)되는 시간의 양을 지칭할 수 있다. 대안적으로, 활동 시간은 메모리 디바이스(200)가 호스트 디바이스(300)에 접속되고 호스트 디바이스(300)로부터 파워를 수신하는 전체 시간의 양을 지칭할 수 있다. 용어 "활동 시간" 및 "이용 시간"은 본 명세서에서 상호교환적으로 사용될 것이다. 이하 기술된 바와 같이, 본 실시예에서, 메모리 디바이스(200)는 CPU(260) 인터럽트때 하드웨어 타이머 블럭(270)이 클럭 틱을 발생할 수 있을 활동이며, CPU(260)는 활동 시 간 카운터를 증가시킬 수 있다.
동작에 있어서, 하드웨어 타이머 클럭(270)(예를 들어, ASIC 컨트롤러)은 주기적인 클럭 틱을 발생하고 이러한 틱을 인터럽트때 CPU(260)에 제공하는 오실레이터를 포함한다. (되도록이면, 오실레이터는 매우 낮은 주파수에서 동작하며 카운터 및 CPU(260)가 정지상태인 동안 구동한다). 따라서, 하드웨어 타이머 블럭(270)은 주기적으로(예를 들어, 매 밀리초 또는 마이크로초) CPU(260)를 인터럽트 한다. CPU(260)가 인터럽트를 얻을 때, 특별한 클럭 인터럽트 서비스 루틴(예를 들어, CPU(260)에 의한 펌웨어 구동에서)이 호출되어 하나의 주기/유닛이 활동 시간 카운터에 더해지며, 이것은 CPU RAMS(262)에 저장되고 또한 비휘발성, 플래시 메모리(210)에 저장되어, 카운터 값은 전원이 나갔을 때 손실되지 않는다. 메모리(210)에 대한 과도한 손상을 방지하기 위해, 매 클럭 틱에 응답하는 대신에 메모리(210)내 활동 시간 카운터가 주기적으로 갱신(예를 들어, 메모리 디바이스(200)가 파워온되는 한 매 분 정도)되는 것이 바람직하다. 비록 파워 손실이 활동 시간 카운터가 갱신되기 전에 발생하면 이것이 측정된 시간내 추가적인 부정확성을 가져올 수 있다고 하더라도, 이러한 희생은 메모리 내구성에 비추어 수용할 수 있다. (메모리 내구성을 더 보호하기 위해, 활동 시간 카운터에 저장된 값은 카운터가 얼마나 많이 기록되었는지를 나타내는 필드를 포함할 수 있다. 기록 값이 소정의 양을 초과하면, 카운터는 메모리내 다른 로케이션에 저장될 수 있다. 이것이 내구성에 도움이된다면, 컴퓨터내 비트는 또한 시프트될 수 있다. ) 활동 시간 카운터내 기록이 성능에 영향을 끼치지 않고(기록을 수행하기 위한 전력 소모를 제외하고) 메모리 디바이스(200)의 정상적인 활동에 영향을 끼치지 않는 것이 또한 바람직하다. 예를 들어, 활동 시간 카운터에 대한 기록이 배경 태스크로서 취급되고 호스트 디바이스 커맨드를 서비스하기 전에 수행될 수 있다. 호스트 디바이스 커맨드의 종료시, 메모리 디바이스(200)내 펌웨어는 메모리로부터의 데이터를 판독하고 이 데이터를 원하는 값과 비교하는 것에 이어 활동 시간 카운터의 프로그래밍을 증명할 수 있다.
또한, 활동 시간 카운터의 값이 메모리(210)내에 보안적으로 저장되어(예를 들어, 키-해시 메시지 인증 코드(HMAC)를 이용한 암호-엔진(252)을 통해 서명된), 쉽게 탬퍼되지 않을 수 있도록 하는 것이 바람직하다. 서명이 일치하지 않는 경우에 있어서, 데이터는 공격자가 데이터에 의해 탬퍼된 것 처럼 초기화되지 않는 것으로서 다루어질 수 있다. 더욱이, 주목해야 할 것은 활동 시간을 측정하기 위한 다른 메커니즘이 사용될 수 있다는 것이다.
활동 시간 카운터에 저장된 값을 실시간으로 변환하기 위해, CPU(260)는 저장된 값과 주파수를 곱하여 하드웨어 타이머 블럭(270)은 클럭 틱을 발생한다. 예를 들어, 값(500)이 활동 시간 카운터에 저장되고 하드웨어 타이머 블럭(270)이 매 5밀리초마다 클럭 틱을 발생하면, CPU(260)는 2,500밀리초(500의 5배)의 활동 시간을 계산할 것이다. 시간 추정을 발생하기 위해, 변형된 활동 시간이 지난 시간 스탬프에 더해진다. 새로운 시간 스탬프가 메모리 디바이스(200)에 의해 수신될 때, 새로운 시간 스탬프가 메모리 디바이스(200)에 저장되며, 활동 시간 카운터가 리셋된다. 따라서, 활동 시간은 이후 오래된 시간 스탬프 대신에 새로운 시간 스탬프에 대해 측정될 것이다. 카운터를 리셋하는 대신에(그리고, 따라서, "롤링 백"), 새로 운 시간 스탬프시 존재하는 활동 시간 카운터 값이 기록될 수 있으며 활동 시간을 측정하기 위해 현재의 시간으로 빼진다.
불행히도, 측정된 활동 시간으로부터 발생된 시간 추정은 메모리 디바이스(200)가 활동 시간을 연속적으로 측정하지 않는 한 실제 시간의 실제 측정이 아닐 것이다. 따라서, 메모리 디바이스(200)가 "비활동"이면(예를 들어, 메모리 디바이스(200)가 아이들 또는 슬립 모드일 때, 또는 메모리 디바이스(200)가 파워다운되거나 또는 메모리 디바이스(200)가 호스트 디바이스(300)로부터 제거될 때, 본 실시예에서, 하드웨어 타이머 블럭(270)이 클럭 틱을 발생하는 것을 멈추도록 하고/하거나 CPU(260)가 이러한 틱에 반응하는 것을 멈추도록 하는 어떠한 이벤트), 측정된 활동 시간은 비활동일 때 시간이 지나가고 있다는 것을 말해주는 메모리 디바이스(200)내에 아무것도 없기 때문에 측정이 개시된 이래 경과된 실제 시간보다 작을 것이다.
예를 들어, 시간 스탬프가 1월 1일에 수신되었다고 하자, 그리고, 메모리 디바이스(200)가 이틀의 활동 시간을 측정하였다고 하자. (단순히 하기 위해, 시간의 본 예에서 일 단위로 측정된다. 그러나, 전술한 바와 같이, 어떠한 원하는 시간 단위가 사용될 수 있다.), 따라서, 이 시점에서 메모리 디바이스(200)에 의해 발생된 시간 추정은 날짜가 1월 3일을 가리킬 것이다(즉, 1월 1일의 지난 시간 스탬프에 이틀의 활동 시간을 더함으로써). 메모리 디바이스(200)가 활동 시간을 연속적으로 측정하면, 이러한 시간 추정은 실제 시간을 정확히 표현할 것이다(하드웨어 타이머 블럭(270) 및 CPU(260)이 정확히 기능한다고 가정하면). 그러나, 메모리 디바이 스(200)가 활동 시간을 연속적으로 측정하지 않았다면(즉, 메모리 디바이스(200)가 활동 시간을 측정하기 시작한 이후 어느 시점에서 비활동이면), 시간 추정은 실제 시간을 정확히 표현하지 않을 것이다. 기껏해야, 시간 추정은 실제 시간이 적어도 1월 3일이다라는 것을 표시할 것이다. 실제 시간은 1월 4일 일 수도 있거나 몇몇 보다 늦은 시간(6월 29일, 11월 2일, 12월 5일, 내년 등).
시간 제한이 활동 시간에 기초한다면, 이것은 문제될 것이 없을 것이다. 불행히도, 시간 제한(예를 들어, 인증 또는 DRM 용법을 위한)이 실제 달력 시간에 빌트인 되며, 메모리 디바이스(200)의 활동 시간이 아니다. 그렇다 하더라도, 특별한 어플리케이션을 위한 시간 제한이 1월 3일전 이었다면 이러한 부정확성이 반드시 본 예에서 문제인 것은 아닐 것이다. 즉, 노래에 대한 액세스가 1월 2일 만료되고, 메모리 디바이스(200)로부터의 시간 추정이 1월 3일이면, 노래에 대한 액세스는 시간 추정이 정확(즉, 실제 1월 3일 인지)한지 도는 시간 추정이 부정확한지(즉, 1월 3일 이후인지)에 관계없이 금지될 것이다. 그러나, 시간 제한이 1월 4일 이면(또는 보다 후), 부정확성은 의문을 이끌어낼 것이다---실제 1월 3일 인지(그리고, 따라서, 액세스가 승인될 것이다.) 또는 실제 1월 3일 보다 늦은지(그리고, 따라서, 액세스가 거절될 것이다).
이러한 이슈를 다루기 위해, 본 실시예는 메모리 디바이스(200)로부터 시간 추정의 정확성을 개선하기 위한 방법을 제공한다. 이러한 방법은 도 5의 흐름도와 함께 예시될 것이다. 도 5에 도시된 바와 같이, 시간 스탬프가 수신되며(액트 510), 메모리 디바이스(200)의 활동 시간은 수신된 시간 스탬프(액트 520)와 관련 하여 측정된다. 이들 액트는 앞서 기술되었다. 그러나, 시간 추정의 정확성을 개선하기 위해, 본 방법에서, 메모리 디바이스(200)(예를 들어, CPU(260)를 이용)는 사전 측정된 활동 시간(액트 530)의 정확성을 판단한다. (비록 액트(530)가 흐름도내 액트(510 및 520)에 이어 도시된다고 하더라도, 액트(530)는 어느 때고 수행될 수 있다.). 이러한 액트는 도 6-7내 시간표에 대하여 예시될 것이다.
도 6은 시간 스탬프(TS1)가 1월 1일에 수신되고, 메모리 디바이스(200)가 2틀의 활동 시간을 측정한 상기 예에 대한 시간표를 도시한다. 전술한 바와 같이, 이러한 측정된 활동 시간으로부터 발생된 시간 추정은 적어도 1월 3일 있다는 것을 표시할 것이다. 그러나, 다음 시간 스탬프(TS2)가 수신될 때(도 7 참조), 메모리 디바이스(200)는 이전 시간 스탬프이래 경과된 실제 시간을 알 것인데, 이는 실제 시간이 두 시간 스탬프 사이의 차이기 때문이다(즉, 실제 시간=TS2-TS1). 제 2 시간 스탬프는 또한 메모리 디바이스(200)가 자신의 "다운 타임"(다운 타임=실제 시간-활동 시간)을 계산하는 것을 허용한다. 본 예에서, 다운 타임은 또한 이틀이다. 메모리 디바이스(200)가 시간 스탬프간의 실제 시간(4일), 측정된 활동 시간(이틀), 그리고 계산된 다운 타임(이틀)을 알기 때문에, 메모리 디바이스(200)는 측정된 활동 시간이 이들 시간 스탬프간의 실제 시간을 어떻게 정확히 표시할 수 있을지를 판단할 수 있다. 예를 들어, 메모리 디바이스(200)는 측정된 활동 시간과 실제 시간을 비교하고, 계산된 다운 타임 시간과 실제 시간, 측정된 활동 시간과 계산된 다운 타임 등을 비교할 수 있다. 이들 예에서 알 수 있는 바와 같이, 앞서 측정된 활동 시간의 정확성은 정확성이 다운 타임(측정된 활동 시간으로부터 계산됨)과 실제 시간을 비교함으로써 결정될 때와 같이 계산시 앞서 측정된 활동 시간을 직접적으로 이용하지 않고 결정될 수 있다. 본 예에서, 실제 시간에 대해 측정된 활동 시간의 정확성은 50%이다. 전술한 바와 같이, 앞서 측정된 활동 시간의 정확성이 두 시간 스탬프간의 실제 시간에 대해 측정된 활동 시간을 비교함으로써 본 실시예에서 결정된다고 하더라도, 정확성을 결정하는 다른 방법이 사용될 수 있다.
이러한 정확성 정보와 더불어, 메모리 디바이스(200)는 측정된 활동 시간(액트 540)을 조절할 수 있다. 예를 들어, 도 8은 메모리 디바이스(200)가 지난 시간 스탬프(TS2) 이래로 활동 시간의 3일을 측정한다는 것을 도시한다. (전술한 바와 같이, 활동 시간 카운터는 새로운 시간 스탬프(여기서, TS2)가 수신될 때 리셋되는 것이 바람직하다.) 메모리 디바이스(200)는 측정된 활동 시간을 알며, 실제 시간의 50%인 값을 발생한다. 따라서, 측정된 활동 시간을 이용하는 대신에, 메모리 디바이스(200)는 자신의 이전 정확성의 지식에 기초하여 측정된 활동 시간을 조정(또는 "스트레치")할 수 있다. 이러한 방법에 있어서, 3일의 측정된 활동 시간이 6일을 산출하기 위해 (측정된 활동 시간이 실제 시간의 50%이었기 때문에)2개의 인자에 의해 조정(또는 "스트레치")될 수 있다.
측정된 활동 시간의 조정(또는 "스트레칭")은 어떠한 적절한 방법으로 수행될 수 있다. 일 실시예에서, 이러한 "스트레칭"은 CPU(260)가 활동 시간 카운터내 값을 변형하기 위해 사용하는 곱셈기를 변화시킴으로써 수행된다. (오리지널 곱셈 기가 대체될 수 있는 반면에, 새롭고 오래된 곱셈기 모두가 저장되는 것이 바람직하다.) 전술한 바와 같이, "스트레치되지 않은" 경우에 있어서, CPU(260)는 활동 시간 카운터내 값과 하드웨어 타이머 블럭(270)이 클럭 틱을 발생하는 주파수를 곱한다. 예를 들어, 하드웨어 타이머 블럭(270)이 매 5밀리초마다 클럭 틱을 발생하고 활동 시간 카운터가 500의 값을 저장하면, CPU(260)는 2,500밀리초(즉, 500의 5배)의 시간 값을 발생할 것이다. 이전 시간 추정이 2개의 인자(즉, "스트레치 인자")에 의해 오프되었다면, CPU(260)는 5,000밀리초의 "스트레치된" 시간 값을 산출하기 위해 곱셈기의 값의 2배(즉, 하나의 클럭 틱이 5밀리초 대신에 10밀리초를 나타낸다). 대안적으로, 곱셈기 값을 변경하는 대신에, 오리지널 곱셈기 값이 사용될 수 있으며, 곱셈기의 곱셈의 곱과 활동 시간 카운터내 값은 "스트레치" 인자에 의해 "스트레치"될 수 있다. 물론, 앞서 측정된 활동 시간의 정확성에 기초한 측정된 활동 시간을 조정하기 위해 어떠한 다른 원하는 메커니즘이 사용될 수 있다.
도 6-8내 예가 단지 하나의 이전 정확성 측정에 기초하는 앞서 측정된 활동 시간의 정확성의 판단을 도시하는 반면에, 앞서 측정된 활동 시간의 정확성의 판단이 복수의 이전 정확성 측정에 기초하는 것이 바람직하다는 것을 주목해야 한다. 일 실시예에서, 이전 정확성 측정의 구동 평균이 취해지고 "스트레치" 인자로서 메모리(210)내에 저장된다. 대안으로, 앞서 결정된 "스트레치" 인자의 구동 평균을 나타내는 싱글 "스트레치" 인자를 저장하는 대신에, 메모리 디바이스(200)는 모든 이전 스트레치 인자의 역사적 기록(또는, 모든 이전 활동 및 실제 시간(또는 다운 타임 등))을 저장하고 평균값을 계산할 수 있다. 그러나, 역사적 기록이 보다 많은 메모리를 소모하기 때문에 싱글 "스트레치" 인자를 저장하는 것이 바람직할 수 있다. 무슨 방법이 사용되는지에 관계없이, 시간 스탬프를 보다 자주 갱신할 수록, (보다 정확한 데이터가 수집될 것이기 때문에) 정확히 스트레치된 활동 시간이 실제 시간을 나타낼 것이라는 것이 분명할 것이다. 역으로, 시간 스탬프가 덜 자주 갱신될 수록, 정확히 스트레치된 활동 시간이 실제 시간을 덜 표현할 것이다. 더욱이, 시간 스트레칭이 사용되지 않을 때 조차, 빈번한 시간 갱신은 측정된 활동 시간의 정확성을 증가시킬 수 있는데 이는 활동 시간 카운터가 새로운 시간 스탬프가 수신될 때 리셋(그리고, 따라서 측정된 활동 시간에 너무나 많은 어떠한 부정확성이 있기 때문에)된다. 메모리 디바이스(200)가 내장 배터리 백업 클럭을 포함한다고 하더라도, 빈번한 시간 스탬프 갱신은 클럭이 시간에 걸쳐 드리프트할 수 있기 때문에 이러한 클럭의 정확성이 개선될 수 있다.
비록 상기 예가 "스트레치" 인자의 간단한 평균을 취했지만(즉, 시간 스탬프간의 결정된 정확성), 다른 실시예에서, 가중 평균(또는 몇몇 다른 기능)이 사용될 수 있다. 또 다른 실시예에서, 단지 하나의 스트레치 인자만이 사용될 수 있다. 따라서, "평균"은 본 명세서에 명시적으로 인용되지 않는 한 청구항에 읽히지 않을 것이다. 평균이 사용될 때, 데이터는 각각의 진행하는 시간 스탬프 쌍 또는 몇몇 서브셋을 취할 수 있다. 즉, 소정의 시간 스탬프 쌍이 정확성 결정에서 스킵되거나 버려질 수 있다(예를 들어, 이하 기술된 바와 같이, 파워 사이클 정보가 소정의 주기동안 활동 시간이 매우 부정확하기 때문에). 또한, "스트레치" 인자의 표준 편차가 측정된 활동 시간이 조정될 것인지를 판단하기 위해 계산될 수 있다. 예를 들 어, "스트레치" 인자가 동일한 수를 커버하고 있다면, "스트레치" 인자는 의미있는 것으로 간주될 수 있으며, 메모리 디바이스(200)는 "스트레치" 인자의 평균에 기초하여 측정된 활동 시간을 조정할 수 있다. 다른 한편, "스트레치" 인자의 표준 편차가 몇몇 임계량 보다 크면, 메모리 디바이스(200)는 "스트레치" 인자의 평균이 신뢰할 수 없고 측정된 활동 시간을 조정하지 않는다는 것을 결정할 수 있으며, 이 경우에 있어서 단지 측정된, "비스트레치된" 활동 시간이 사용될 것이다.
전술한 바와 같이, 방법에 있어서 액트가 어떠한 적절한 방법으로 수행될 수 있다. 예를 들어, 이전 활동 시간 측정의 정확성 판단은 가장 최근 시간 스탬프가 수신되고/되거나 현재의 활동 시간이 측정되기 전 또는 후에 이루어질 수 있다. 또한, 현재의 시간 측정의 시간 스탬프는 앞서 측정된 활동 시간의 정확성을 판단하기 위해 사용될 수 있지만 사용될 필요는 없다(즉, 액트(510)에서 수신된 시간 스탬프가 앞서 측정된 활동 시간이 액트(530)에 비교되는 실제 시간을 계산하기 위해 사용된 시간 스탬프들중 하나일 수 있지만 하나일 필요는 없다.) 추가적으로, 상기 실시예에서, 메모리 디바이스(200)는 활동 시간을 정확히 측정하는 것으로 가정한다(즉, 하드웨어 타이머 블럭(270)이 주어진 주파수에서 인터럽트를 신뢰성있게 발생한다). 부정확성이 존재하면, 예를 들어, 이들은 전술한 기법의 변화를 이용하기 위해 고려될 수 있다. 호스트 디바이스에 의해 발생된 시간이 신뢰될 수 있거나 메모리 디바이스가 자신의 배터리 백업 클럭을 갖는다면(예를 들어, 호스트 디바이스내 클럭 또는 메모리 카드가 시간에 걸쳐 부정확해질 수 있다면), "시간 스트레칭"이 사용될 수 있다.
몇몇 상황에서, 활동 시간이 시간-갱신 정책에 있어서 인자일 때와 같은 조정된 활동 시간을 아는 것이 충분하지만, DRM 라이센스를 유효하게 하거나 실제 날짜와 시간을 만료하는 증명을 인증할 때와 같은 다른 상황에서, 시간 추정이 발생될 필요가 있다. 시간 추정의 정확성을 개선하기 위해, 시간 추정은 측정된 활동 시간, 앞서 측정된 활동 시간의 정확성, 그리고 수신된 시간 스탬프(도 5에서 액트(550))를 이용해 발생될 수 있다. 이러한 시간 추정은 어떠한 적절한 방법으로 발생될 수 있다. 예를 들어, 시간 추정은 스트레치된 활동 시간을 이용해 발생될 수 있다. 도 8에 도시된 예로 되돌아가서, 측정된 활동 시간은 3일이다. 1월 8일의 시간 추정(즉, 활동 시간에 의해 측정된 바와 같이, 1월 5일 더하기 3일)을 발생하는 대신에, 측정된 활동 시간은 (앞서 측정된 활동 시간의 50%의 정확성에 기초한)6일로 조정될 수 있으며, 조정된 측정된 활동 시간은 1월 11일의 시간 추정을 발생하기 위해 시간 스탬프에 추가될 수 있다(즉, 1월 5일 더하기 "스트레치된" 활동 시간의 6일). 대안으로, "스트레치된" 활동 시간을 사용한 시간 추정을 발생하는 대신에, 시간 추정은 측정된 활동 시간을 이용해 발생될 수 있으며, 시간 추정은 "스트레치" 인자에 의해 "스트레치"될 수 있다. 다른 대안에 있어서, 시간 추정은 측정된 활동 시간, 앞서 측정된 활동 시간의 정확성, 그리고 수신된 시간 스탬프를 이용해 발생된다. 따라서, 그러한 문구는 "스트레치"된 활동 시간 또는 어떠한 다른 특별한 구현을 요구하는 것으로서 읽히지 않을 것이다.
새로운 시간 스탬프를 획득하거나 "스트레치" 활동 시간 보다는 "스트레치되지 않은" 활동 시간을 사용하는 것이 바람직할 수 있는 소정의 상황이 존재한다. 일례는, 전술한 바와 같이, "스트레치" 인자의 표준 편차가 소정의 임계치를 초과할 때이다. 다른 예로서, 측정된 활동 시간이 소정의 임계치를 초과하며, 따라서, 예상된 용법 패턴내에서 사용되지 않는다면, "스트레치" 인자는 "오버 스트레칭"에 비해 과도한 "언더 스트레칭"의 결과를 가져올 수 있다. 이러한 상황에서 새로운 스탬프를 획득하거나 "스트레치되지 않은" 활동 시간을 이용하는 것이 바람직할 수 있다. 지난 시간 스탬프 이래 줄곧 메모리 디바이스(100)의 파워 사이클의 수가 메모리 디바이스(100)가 예상된 패턴 용법을 벗어나 사용되는 다른 표시이다. 파워 사이클의 수는 얼마나 많이 메모리 디바이스(200)가 파워 업되었는지를 카운트하며, 이것은 메모리 디바이스(200)가 얼마나 많이 파워 다운되었는지를 표시한다(즉, 매 파워 업동안, 파워 다운이이 존재하여야만 한다). 파워 사이클의 수는 CPU(260)에 의해 측정될 수 있다. 메모리 디바이스(200)가 파워 사이클을 통과할 때마다, CPU(260)는 펌웨어내 디바이스 리셋 루틴을 호출할 수 있다. CPU(260)가 하나의 유닛을 활동 시간 카운터에 추가하는 상황에 있어서와 같이, 디바이스 리셋 루틴과 더불어, CPU(260)는 하나의 유닛을 CPU RAMS(262) 및/또는 메모리(210)내 파워 사이클 카운터에 하나의 유닛을 추가할 것이다. 활동 시간 카운터와 함께, 파워 사이클 카운터가 메모리 마모를 감소시키기 위해 주기적으로 갱신될 수 있다.
메모리 디바이스(200)가 파워 다운될 때, 활동 시간에 의해 표시되지 않는 적어도 몇몇 실제 시간이 존재한다. 메모리 디바이스(200)가 파워 사이클간에 얼마나 많은 시간 지나갔는지를 알지 못하기 때문에, 파워 사이클의 수는 시간 정보를 제공하지 않는다. 그러나, 메모리 디바이스(200)의 용법 패턴의 감지를 제공하며, 이것은 대략적으로 측정된 활동 시간이 얼마나 부정확한지를 표시할 수 있다. 예를 들어, 지난 시간 스탬프가 메모리 디바이스(200)가 단지 지난 시간 스탬프 이래 줄곧 싱글 파워 사이클만을 가졌을 때 이루어지는 시간 추정보다 적을 수 있기 때문에 시간 추정은 메모리 디바이스(200)가 10 파워 사이클을 가졌을 때 이루어진다. 또한, 소정의 실시예에서, 메모리 디바이스(200)는 아이들/슬립 모드에서 파워 업될 수 있으며, 따라서, 활동 시간을 측정하지 않는다. 파워 사이클의 수를 지속적으로 추적하는 것은 검출되지 않을 수도 있는 이러한 부정확성에 관한 정보를 제공한다. 이러한 모든 이유들에 대해, 파워 사이클의 수는 활동 시간이 얼마나 부정확한지를 나타낼 수 있다.
메모리 디바이스(200)는 파워 사이클의 수가 시간 추정에 있어서 고려되도록 설계될 수 있다. 특히, 파워 사이클의 수가 몇몇 임계치 수를 초과하면, 메모리 디바이스(200)는 측정된 활동 시간에 기초하여 ("시간 스트레칭"을 사용하거나 사용하지 않고)시간 추정을 발생하기 보다는 새로운 시간 스탬프를 요구할 수 있다. 예를 들어, 시간 동작이 매우 민감하고 만료일이 지나지 않았다는 확신이 필요하다면, 임계 수는 1로 설정될 수 있다. 따라서, 메모리 디바이스(200)가 한번이라도 셧다운(그래서, 측정된 활동 시간에 의해 고려되지 않을 수 있는 시간의 적어도 몇몇 양이 존재한다)되었다면, 메모리 디바이스(200)는 시간 추정을 발생하기 위해 측정된 활동 시간에 의지하지 않고 대신에 새로운 시간 스탬프를 요청할 것이다. 이러한 방법에 있어서, 측정된 활동 시간의 부정확성의 표시인 파워 사이클의 수가 시간 서버(100)와의 시간 동기를 강제하기 위해 사용된다. 대조적으로, 지나 시간 스탬프 이래 줄곧 파워 사이클의 수가 0이면, 측정된 활동 시간에 기초한 시간 추정이 정확할 것이며, 새로운 시간 스탬프가 필요하지 않을 것이다. 이러한 상황에서, 측정된 활동 시간은, 예를 들어, 평균 "스트레치" 인자 대신에 오리지널 곱셈기(하드웨어 타이머 블럭(270)이 클럭 틱을 발생하는 주파수)에 의해 곱해질 수 있다. 이러한 방법에 있어서, 파워 사이클의 수를 결정하는 것은 "시간 스트레칭"을 사용할 것인지 여부를 판단하기 위한 임계 단계이다. 다른 한편, 시간 동작이 민감하지 않으며 활동 시간을 "스트레칭"하는 것이 다운 시간동안 잃어버린 시간을 고려하기에 충분한 것으로 간주된다면, 파워 사이클의 수는 보다 높은 수로 설정되거나 심지어 전혀 고려되지 않을 수도 있다. 파워 사이클의 수가 임계값보다 낮다면(그러나, 전술한 바와 같이, 0이 아니라면), 메모리 디바이스(200)는 "시간 스트레칭" 동작을 수행한다. 파워 사이클의 수가 임계값 보다 크거나 동일하다면, 메모리 디바이스(200)는 새로운 시간 스탬프를 요청하고 "시간 스트레칭" 동작을 수행하지 않을 것이다.
파워 사이클의 수는 또한 "스트레칭" 동작에서 사용될 수 있다. "스트레치" 인자를 결정하는 대신에 또는 더하여, 메모리 디바이스(200)는 파워 사이클당 "스트레치" 인자를 결정할 수 있다. 시간이 경과함에 따라서, 메모리 디바이스(200)가 카운팅하지 않는 시간의 양이 증가한다. 따라서, 시간에 걸쳐서 부정확성이 증가한다. 파워 사이클당 "스트레치" 인자의 사용은 이러한 부정확성 트렌드를 다루기 위해 사용될 수 있다. 예를 들어, 평균 "스트레치" 인자가 50%이고, 시간 스탬프간에 평균적으로 10개의 파워 사이클이 존재하는 것으로 판단된다면, 파워 사이클당 5% "스트레치" 인자가 존재할 것이다. 따라서, 5개의 파워 사이클이 존재하는 주기동안 활동 시간이 "스트레치"될 필요가 있을 때, 활동 시간은 50% 대신에 (5%의 5배인) 25%에 의해 "스트레치"될 것이다. 방법에 있어서 파워 사이클에 가중치를 부여하는 것은 "스트레치된" 시간의 정확성을 개선하는데 도움을 줄 수 있다. (파워 사이클당 "스트레치" 인자의 사용은 앞서앞서 활동 시간의 정확성에 기초한 측정된 활동 시간을 조정(또는 시간 추정을 발생)의 보호하에 여전히 들어갈 것이데, 이는 앞서 측정된 활동 시간의 정확성이 파워 사이클당 "스트레치" 인자를 계산하기 위해 사용되기 때문이다.)
파워 싸이클의 수는 또한 메모리(210)의 내구성을 보호하기 위해 사용될 수 있다. 활동 시간 카운터가 "마모"되지 않는 상황을 피하기 위해, 파워 사이클의 수로서 표시된 바와 같이, 메모리 디바이스(200)의 용법 모델에 기초하여 활동 시간 카운터에 기록의 주파수를 적용하기 위해 레이트-스케일링 알고리즘이 사용될 수 있다. 예를 들어, 활동 시간(예를 들어, 매 2분, 매 4분, 매 8분, 그리고 매 16분)을 기록하기 위해 4 레이트가 존재할 수 있으며, 이들 중 하나가 지난 시간 스탬프 이래 줄곧 파워 사이클의 수에 기초하여 선택된다.
이러한 시간 스탬프, 측정된 활동 시간, 계산된 다운 타임, 파워 사이클의 수, 그리고/또는 "스트레치" 인자가 시간 추정을 발생하기 위해 사용될 수 있기 때문에, 이들 값에 의해 탬퍼링으로부터 누군가를 보호하기 위해 메모리 디바이스(200)에 안전한 방법으로 저장되는 것이 바람직하다. 예를 들어, 암호-엔진(252)은 메모리 어레이(210)(예를 들어 키-해시 메시지 인증 코드(HMAC)를 이용함)내 저 장에 앞서 암호화된 형태로 이들 값을 사인하기 위해 사용될 수 있다. 서명 불일치의 경우에 있어서, 데이터는 공격자가 그것에 의해 탬퍼된 것 처럼, 초기화되지 않은 것으로서 다루어질 수 있다.
주목해야 할 것은 이들 실시예가 어떠한 적절한 어플리케이션에서 사용될 수 있다는 점이다. 이러한 어플리케이션의 예는 인증, 호스트 호출 동작(예를 들어, 호스트의 CRL을 유효화시키는 것), DRM 라이센스 유효화, 그리고 메모리 디바이스(200)내 다른 어플리케이션을 포함하지만, 이에 제한되지 않는다. 더욱이, 이것이 현재 샌디스크사의 TrustedFlashTM 메모리 디바이스에서 구현되는 것이 바람직하다고 하더라도, 이들 실시예는 어떠한 타입의 메모리 디바이스에 의해 사용될 수 있다는 것이 이해될 것이다. 더욱이, 이들 "타임 스트레칭" 실시예는 비메모리 디바이스 필드에서 사용될 수 있으며 여기서 부정확한 클럭을 가지며 시간을 알 필요가 있는 일반적인 문제에 직면한다. 추가적으로, 전술한 몇몇 또는 모든 액트는 메모리 디바이스 대신에 호스트 디바이스(또는 몇몇 다른 디바이스)상에서 수행될 수 있다.
전술한 상세한 설명은 발명이 발명의 정의로서 취할 수 있고 취할 수 없는 선택된 형태의 예로서 이해된다. 단지 모든 등가물을 포함하는 다음의 청구항만이 본 발명의 범주를 정의하기 위한 것이다. 주목해야 할 것은 청구항에 인용된 액트는 어떠한 다른 순서로 수행될 수 있으며---그들이 인용된 순서대로 반드시 수행되어야 한다는 것이 아니라는 점이다. 최종적으로, 주목해야 할 것은 본 명세서에 기 술된 어떠한 바람직한 실시예의 어떠한 면도 독자적으로 또는 서로 조합하여 사용될 수 있다는 점이다.
상술한 바와 같이, 본 발명은, 시간 추정의 정확성을 향상시키기 위한 회로를 갖는 메모리 디바이스와 메모리 디바이스를 사용하기 위한 방법을 제공하는데 사용된다.

Claims (20)

  1. 메모리 디바이스(memory device)로부터 시간 추정(time estimate)의 정확성을 개선하기 위한 방법으로서,
    시간 스탬프(time stamp)를 수신하는 단계;
    상기 수신된 시간 스탬프에 대해 메모리 디바이스의 활동 시간을 측정하는 단계;
    앞서 측정된 활동 시간의 정확성을 판단하는 단계; 및
    상기 측정된 활동 시간, 상기 앞서 측정된 활동 시간의 정확성, 그리고 상기 수신된 시간 스탬프를 이용해 시간 추정을 발생하는 단계를
    포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  2. 제 1항에 있어서,
    상기 수신된 시간 스탬프에 대해 파워 사이클의 수를 측정하는 단계와;
    상기 파워 사이클의 수가 임계치를 초과하면, 상기 시간 추정을 발생하는 대신에 새로운 시간 스탬프를 요청하는 단계를
    더 포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  3. 제 1항에 있어서,
    상기 수신된 시간 스탬프에 대해 파워 사이클의 수를 측정하는 단계와;
    상기 파워 사이클의 수가 0이면, 상기 앞서 측정된 활동 시간의 정확성을 사용하지 않고 상기 측정된 활동 시간 및 상기 수신된 시간 스탬프를 이용해 시간 추정을 발생하는 단계를
    더 포함하는, 시간의 추정의 정확성을 개선하기 위한 방법.
  4. 제 1항에 있어서,
    상기 측정된 활동 시간이 임계치를 초과하면, 상기 시간 추정을 발생하는 대신에 새로운 시간 스탬프를 요청하는 단계를
    더 포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  5. 제 1항에 있어서,
    앞서 측정된 활동 시간의 정확성을 판단하는 단계는 복수의 스트레치 인자를 판단하는 단계를 포함하고, 상기 방법은,
    상기 복수의 스트레치 인자의 표준 편차(standard deviation)를 측정하는 단계와;
    상기 복수의 스트레치 인자의 상기 표준 편차가 임계치를 초과하면,
    상기 시간 추정을 발생하는 대신에 새로운 시간 스탬프를 요청하는 단계와;
    상기 앞서 측정된 활동 시간의 정확성을 사용하지 않고 상기 측정된 활동 시간 및 상기 수신된 시간 스탬프를 이용해 시간 추정을 발생하는 단계중 하나 를 수행하는 단계를
    더 포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  6. 제 1항에 있어서,
    앞서 측정된 활동 시간의 정확성을 판단하는 단계는 복수의 스트레치 인자를 판단하는 단계 및 상기 복수의 스트레치 인자의 러닝 평균(running average)을 계산하는 단계를
    포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  7. 제 1항에 있어서,
    앞서 측정된 활동 시간의 정확성을 판단하는 단계는 앞서 측정된 활동 시간과 시간 스탬프 사이의 실제 시간을 비교하는 단계를
    포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  8. 제 1항에 있어서,
    앞서 측정된 활동 시간의 정확성을 판단하는 단계는 다운 시간과 시간 스탬프 사이의 실제 시간을 비교하는 단계를
    포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  9. 제 1항에 있어서,
    앞서 측정된 활동 시간의 정확성을 판단하는 단계는 앞서 측정된 활동 시간과 다운 시간을 비교하는 단계를
    포함하는, 시간 추정의 정확성을 개선하기 위한 방법.
  10. 제 1항에 있어서,
    앞서 측정된 활동 시간의 정확성을 판단하는 단계는 상기 메모리 디바이스의 파워 사이클당 스트레치 인자를 판단하기 위한 단계를 포함하며, 상기 방법은 상기 수신된 시간 스탬프에 대해 파워 사이클의 수를 측정하는 단계를 더 포함하고, 상기 시간 추정은 파워 사이클당 상기 스트레치 인자 및 상기 파워 사이클의 수에 기초하여 발생되는, 시간 추정의 정확성을 개선하기 위한 방법.
  11. 메모리 디바이스로서,
    메모리 어레이; 및
    상기 메모리 어레이와 통신하고;
    메모리 디바이스의 활동 시간을 측정하도록 동작하며;
    앞서 측정된 활동 시간의 정확성을 판단하도록 동작하고;
    상기 앞서 측정된 활동 시간의 정확성에 기초하여 상기 측정된 활동 시간을 조정하도록 동작하는 회로를
    포함하는, 메모리 디바이스.
  12. 제 11항에 있어서,
    상기 회로는 상기 조정되고 측정된 활동 시간을 이용해 시간 추정을 발생하도록 더 동작하는, 메모리 디바이스.
  13. 제 11항에 있어서,
    상기 회로는,
    상기 수신된 시간 스탬프에 대해 파워 사이클의 수를 측정하고;
    상기 파워 사이클의 수가 임계치를 초과하면, 상기 측정된 활동 시간을 조정하는 대신 새로운 시간 스탬프를 요청하도록 더 동작하는, 메모리 디바이스.
  14. 제 11항에 있어서,
    상기 회로는,
    상기 수신된 시간 스탬프에 대해 파워 사이클의 수를 측정하도록 더 동작하고;
    상기 파워 사이클의 수가가 0이면 상기 회로는 상기 측정된 활동 시간을 조정하지 않는, 메모리 디바이스.
  15. 제 11항에 있어서,
    상기 측정된 활동 시간이 임계치를 초과하면 상기 회로는 상기 측정된 활동 시간을 조정하지 않는, 메모리 디바이스.
  16. 제 11항에 있어서,
    상기 회로는 복수의 스트레치 인자를 결정함으로써 앞서 측정된 활동 시간의 정확성을 판단하며, 상기 회로는
    상기 복수의 스트레치 인자의 표준 편차를 더 측정하도록 하며;
    상기 복수의 스트레치 인자의 상기 표준 편차가 임계치를 초과하지 않는 경우에만 상기 측정된 활동 시간을 조정하며;
    상기 복수의 스트레치 인자의 상기 표준 편차가 임계치를 초과하면 상기 측정된 활동 시간을 조정하는 대신에 새로운 시간 스탬프를 요청하는 것 중 하나를 더 수행하도록 동작하는, 메모리 디바이스.
  17. 제 11항에 있어서,
    상기 회로는 복수의 스트레치 인자를 결정하고 상기 복수의 스트레치 인자의 러닝 평균을 계산함으로써 앞서 측정된 활동 시간의 정확성을 판단하는, 메모리 디바이스.
  18. 제 11항에 있어서,
    상기 회로는 앞서 측정된 활동 시간과 시간 스탬프 사이의 실제 시간을 비교함으로써 앞서 측정된 활동 시간의 정확성을 판단하는, 메모리 디바이스.
  19. 제 11항에 있어서,
    상기 회로는 다운 시간과 시간 스탬프 사이의 실제 시간을 비교함으로써 앞서 측정된 활동 시간의 정확성을 판단하는, 메모리 디바이스.
  20. 제 11항에 있어서,
    상기 회로는 앞서 측정된 활동 시간과 다운 시간을 비교함으로써 앞서 측정된 활동 시간의 정확성을 판단하는, 메모리 디바이스.
KR1020097025630A 2007-06-08 2008-06-05 시간 추정의 정확성을 향상시키기 위한 회로를 구비하는 메모리 디바이스와, 메모리 디바이스를 사용하기 위한 방법 KR20100017715A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/811,347 US20080304364A1 (en) 2007-06-08 2007-06-08 Memory device with circuitry for improving accuracy of a time estimate
US11/811,347 2007-06-08
US11/811,284 2007-06-08
US11/811,284 US8688924B2 (en) 2007-06-08 2007-06-08 Method for improving accuracy of a time estimate from a memory device

Publications (1)

Publication Number Publication Date
KR20100017715A true KR20100017715A (ko) 2010-02-16

Family

ID=40130439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097025630A KR20100017715A (ko) 2007-06-08 2008-06-05 시간 추정의 정확성을 향상시키기 위한 회로를 구비하는 메모리 디바이스와, 메모리 디바이스를 사용하기 위한 방법

Country Status (6)

Country Link
EP (1) EP2153299A2 (ko)
JP (1) JP5180292B2 (ko)
KR (1) KR20100017715A (ko)
CN (1) CN101720455B (ko)
TW (1) TW200907686A (ko)
WO (1) WO2008154307A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109388617B (zh) * 2018-10-31 2020-10-30 厦门市美亚柏科信息股份有限公司 一种文件时间戳可信度的判定方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3056084B2 (ja) * 1996-08-15 2000-06-26 静岡日本電気株式会社 無線選択呼出受信機
DE69937682T2 (de) * 1999-10-20 2008-11-20 Sony Deutschland Gmbh Mobiler Terminal für ein drahtloses Telekommunikationsverfahren mit genauer Echtzeiterzeugung
JP3419407B1 (ja) * 2002-03-29 2003-06-23 セイコーエプソン株式会社 電子機器および電子機器の受信制御方法
EP1597905A1 (en) * 2003-02-20 2005-11-23 Ase R & D Europe Method for offering time on smart card and method for time registration by means of mobile communication device
JP2005063079A (ja) * 2003-08-11 2005-03-10 Matsushita Electric Ind Co Ltd メモリカード装置、権利管理システムおよび時間管理方法
JP3949648B2 (ja) * 2003-12-05 2007-07-25 株式会社東芝 移動通信端末装置
JP4301035B2 (ja) * 2004-03-02 2009-07-22 ソニー株式会社 再生時刻管理システム、再生時刻管理方法、再生装置、再生方法、記録媒体
JP2005331461A (ja) * 2004-05-21 2005-12-02 Seiko Epson Corp 電波修正時計、その制御方法、その制御プログラム、記憶媒体
US7411868B2 (en) * 2004-11-14 2008-08-12 International Business Machines Corporation Estimation of time within untrusted time device disconnected from trusted time device
JP4680686B2 (ja) * 2005-06-06 2011-05-11 アドバンス・デザイン株式会社 コンピュータ端末用記憶媒体
KR20070059380A (ko) * 2005-12-06 2007-06-12 삼성전자주식회사 내장 전원이 구비되지 않은 기기에서의 안전 클럭 구현방법 및 장치
WO2007148319A2 (en) * 2006-06-20 2007-12-27 Nds Limited Time information management system

Also Published As

Publication number Publication date
CN101720455A (zh) 2010-06-02
EP2153299A2 (en) 2010-02-17
JP2010531486A (ja) 2010-09-24
TW200907686A (en) 2009-02-16
WO2008154307A2 (en) 2008-12-18
WO2008154307A3 (en) 2009-07-23
JP5180292B2 (ja) 2013-04-10
CN101720455B (zh) 2013-08-14

Similar Documents

Publication Publication Date Title
US8688924B2 (en) Method for improving accuracy of a time estimate from a memory device
US20080304364A1 (en) Memory device with circuitry for improving accuracy of a time estimate
US8869288B2 (en) Method for using time from a trusted host device
US8688588B2 (en) Method for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US20080307494A1 (en) Memory device with circuitry for improving accuracy of a time estimate used to authenticate an entity
US20080307495A1 (en) Memory device with circuitry for improving accuracy of a time estimate used in digital rights management (DRM) license validation
US8438645B2 (en) Secure clock with grace periods
US20080307507A1 (en) Memory device using time from a trusted host device
CN1971452B (zh) 时间数据检验单元、用于检验时间数据的电子设备和方法
US20120072735A1 (en) Storage device, protection method, and electronic device
US20080307237A1 (en) Method for improving accuracy of a time estimate used to authenticate an entity to a memory device
CN101779207B (zh) 具有改善时间估计准确性电路的存储器器件及其使用方法
JP2011082727A (ja) 情報処理装置
TWI386947B (zh) 使用信任主機裝置之時間的記憶體裝置及其使用方法
KR101465555B1 (ko) 엔티티를 인증하기 위해 사용된 시간 평가의 정확성을 개선하기 위한 회로를 구비한 메모리 디바이스와, 상기 메모리 디바이스와 사용하기 위한 방법
JP5180292B2 (ja) 時間推定の精度を向上させるための回路を備えるメモリ装置とその装置で使用する方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid