KR20170013252A - 이벤트 로크 저장 디바이스 - Google Patents

이벤트 로크 저장 디바이스 Download PDF

Info

Publication number
KR20170013252A
KR20170013252A KR1020167033257A KR20167033257A KR20170013252A KR 20170013252 A KR20170013252 A KR 20170013252A KR 1020167033257 A KR1020167033257 A KR 1020167033257A KR 20167033257 A KR20167033257 A KR 20167033257A KR 20170013252 A KR20170013252 A KR 20170013252A
Authority
KR
South Korea
Prior art keywords
storage device
event
file
data
partition
Prior art date
Application number
KR1020167033257A
Other languages
English (en)
Other versions
KR101917940B1 (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 KR20170013252A publication Critical patent/KR20170013252A/ko
Application granted granted Critical
Publication of KR101917940B1 publication Critical patent/KR101917940B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • 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/12Replacement control
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/1052Security improvement
    • G06F2212/69
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

이벤트 로크 저장 디바이스를 위한 시스템 및 방법이 개시된다. 저장 디바이스는 사용자 파티션 및 이벤트 파티션(이벤트와 관련될 수 있음)을 포함한다. 저장 디바이스는 호스트 디바이스로부터 데이터를 수신하고, 사용자 파티션 내에 데이터를 저장한다. 이벤트의 표시를 수신한 것에 응답하여, 저장 디바이스는 이벤트 파티션의 부분으로서 데이터를 지정할 수 있다. 이벤트 파티션은 데이터를 포함하는 파일의 수정 또는 삭제에 대해 더 제한적인 규칙들과 같은, 사용자 파티션과 상이한 한 세트의 액세스 규칙들을 포함할 수 있다.

Description

이벤트 로크 저장 디바이스{EVENT LOCK STORAGE DEVICE}
관련 출원에 대한 참조
본 출원은 그 전체가 본원에 참조로 포함된 미국 출원 번호 14/292,047(2014년 5월 30일자 출원됨)을 우선권 주장한다.
기술분야
본 출원은 일반적으로 저장 디바이스 내의 데이터를 관리하는 것에 관한 것이다. 더욱 구체적으로, 본 출원은 미리 결정된 이벤트의 발생에 응답하여 파일에의 액세스 또는 파일의 삭제를 제한하는 저장 디바이스에 관한 것이다.
저장 디바이스는 파일 시스템을 사용하여 파일들을 저장할 수 있다. 파일을 삭제로부터 보호하기를 원할 때, 파일 시스템은 파일을 읽기 전용이거나 숨겨지게 설정할 수 있다. 이 방식으로, 파일은 무의식적으로나 의도적으로 파일이 삭제될 가능성은 거의 없다. 그러나, 이 보호 방식하에서, 파일들은 파일 시스템 테이블들을 변경함으로써와 같이, 여전히 손상될 수 있다.
이벤트 로크 저장 디바이스를 위한 시스템 및 방법이 개시된다. 제1 양태에 따르면, 저장 디바이스가 개시된다. 저장 디바이스는 메모리 및 메모리와 통신하는 제어기를 포함한다. 메모리는 사용자 파티션 및 이벤트 파티션을 포함하고, 사용자 파티션은 그 안의 파일들을 제어하기 위한 제1 세트의 규칙들을 갖고, 이벤트 파티션은 이벤트와 관련되고 그 안의 파일들을 제어하기 위한 관련된 제2 세트의 규칙들을 갖고, 제2 세트의 규칙들은 제1 세트의 규칙들보다 적어도 하나의 양태에서 더 제한적이다. 제어기는 호스트 디바이스로부터 데이터를 수신하고; 저장 디바이스 내의 사용자 파티션과 관련된 파일 내에 데이터를 저장하고; 호스트 디바이스로부터, 데이터에 관한 이벤트의 발생의 표시를 수신하고; 이벤트의 발생의 표시를 수신한 것에 응답하여, 파일을 저장 디바이스의 이벤트 파티션과 관련시키도록 구성된다.
제2 양태에 따르면, 사용자 파티션 및 이벤트 파티션을 갖는 메모리를 갖는 저장 디바이스를 위한 방법이 개시된다. 방법은 호스트 디바이스로부터 데이터를 수신하고; 사용자 파티션 내의 파일들을 제어하기 위한 제1 세트의 규칙들을 사용하는 저장 디바이스 내에 사용자 파티션과 관련된 파일 내에 데이터를 저장하고; 호스트 디바이스로부터, 데이터에 관한 이벤트의 발생의 표시를 수신하고; 이벤트의 발생의 표시를 수신한 것에 응답하여, 파일을 저장 디바이스의 이벤트 파티션과 관련시키는 것을 포함하고, 저장 디바이스는 이벤트 파티션 내의 파일들을 제어하기 위해 제2 세트의 규칙들을 사용하고, 이벤트 파티션은 이벤트와 관련되고, 제2 세트의 규칙들은 제1 세트의 규칙들보다 적어도 하나의 양태에서 더 제한적이다.
제3 양태에 따르면, 저장 디바이스가 개시된다. 저장 디바이스는 메모리 및 메모리와 통신하는 제어기를 포함한다. 제어기는 저장 디바이스 외부에 있는 디바이스로부터, 동작을 수행하라는 명령을 수신하고; 명령을 수신한 것에 응답하여, 저장 디바이스의 나이 표시자에 액세스하고 - 나이 표시자는 저장 디바이스의 적어도 일부의 나이를 표시함 - ; 액세스된 나이 표시자에 기초하여, 동작을 수행할지를 결정하도록 구성된다.
제4 양태에 따르면, 저장 디바이스가 저장 디바이스의 메모리 내의 동작을 수행할지를 결정하는 방법이 개시된다. 방법은, 저장 디바이스에서: 저장 디바이스 외부에 있는 디바이스로부터, 동작을 수행하라는 명령을 수신하는 단계; 명령을 수신한 것에 응답하여, 저장 디바이스의 나이 표시자에 액세스하는 단계 - 나이 표시자는 저장 디바이스의 적어도 일부의 나이를 표시함 - ; 및 액세스된 나이 표시자에 기초하여, 동작을 수행할지를 결정하는 단계를 포함한다.
다른 특징들 및 장점들은 다음의 도면, 상세한 설명 및 청구범위의 검토 시 분명해질 것이다. 부가적으로, 다른 실시예들이 개시되고, 각각의 실시예들은 단독으로 또는 조합하여 함께 사용될 수 있다. 실시예들이 이제 첨부된 도면을 참조하여 설명될 것이다.
시스템은 다음의 도면 및 설명을 참조하여 보다 잘 이해될 수 있다. 도면에서, 유사한 참조 번호들은 상이한 도면들에 걸쳐 대응하는 부분들을 지정한다.
도 1은 실시예의 예시적인 호스트 디바이스, 센서 디바이스, 및 저장 디바이스의 블록도를 도시한다.
도 2a는 도 1의 호스트 디바이스의 확대된 블록도이다.
도 2b는 도 1의 저장 디바이스의 확대된 블록도이다.
도 3은 호스트 디바이스가 이벤트가 발생하였는지를 결정하기 위한 실시예의 방법의 흐름도이다.
도 4는 저장 디바이스가 호스트 디바이스로부터 수신된 명령을 처리하기 위한 실시예의 방법의 흐름도이다.
도 5는 저장 디바이스가 저장 디바이스의 나이 표시자에 기초하여 동작을 수행할지를 결정하기 위한 실시예의 방법의 흐름도이다.
도 6은 저장 디바이스가 저장 디바이스의 현재의 나이 표시자 및 파일과 관련된 나이 표시자에 기초하여 파일을 삭제할지를 결정하기 위한 실시예의 방법의 흐름도이다.
도 7은 저장 디바이스 내의 동작들의 블록도이다.
위에 언급된 바와 같이, 저장 디바이스는 파일을 읽기 전용 또는 숨겨지게 지정함으로써 파일을 삭제로부터 보호하기를 시도할 수 있다. 그러나, 이 보호 방식하에서, 파일들은 여전히 손상될 수 있다. 파일들의 보호를 개선하기 위해, 저장 디바이스는 이벤트의 결정에 응답하여 이벤트 파티션의 부분으로서 파일을 지정할 수 있다. 아래에 더 상세히 논의되는 바와 같이, 이벤트는 저장 디바이스 외부에 발생된 데이터에 기초할 수 있다. 저장 디바이스가 (호스트 디바이스에 의해 수신된 명령을 통해 또는 저장 디바이스에 의한 결정을 통해) 이벤트를 통지받을 때, 파일은 이벤트 파티션의 부분으로서 지정될 수 있다.
이벤트 파티션은 저장 디바이스 내의 다른 파티션(들)과 상이한 한 세트의 액세스 규칙들을 포함할 수 있다. 예를 들어, 이벤트 파티션의 부분으로서 지정된 파일에의 쓰기 및/또는 파일의 삭제가 허용되지 않을 수 있거나 제한된 환경들하에서만 허용될 수 있다. 제한된 환경들의 예는 (삭제와 같은) 동작을 수행하기 위해 저장 디바이스의 (저장 디바이스의 부분의 마모(wear)(예를 들어, NAND 저장 디바이스의 부분의 평균 프로그램/소거(P/E) 카운트)와 같은) 나이를 분석하는 것을 포함할 수 있다. 저장 디바이스가 (미리 결정된 양의 마모(예를 들어, 평균 P/E 카운트가 정해진 퍼센티지만큼 증가했음)와 같은) 미리 결정된 양의 나이를 거쳤다면, 저장 디바이스는 동작을 수행할 수 있다. 이와 관련하여, 동작은 저장 디바이스의 나이에 단지 의존하여 수행될 수 있다. 다음 섹션은 여기에 논의된 실시예들과 사용될 수 있는 예시적인 호스트 및 저장 디바이스들의 논의를 제공한다. 물론, 이들은 단지 예들이고, 다른 적합한 유형들의 호스트 및 저장 디바이스들이 사용될 수 있다.
이제 도면을 참조하면, 도 1은 실시예의 예시적인 호스트 디바이스(100), 센서 디바이스(110), 및 저장 디바이스(120)의 블록도를 도시한다. 도 1에 도시된 바와 같이, 호스트 디바이스(100)는 저장 디바이스(120)와 통신한다. 여기에 사용된 바와 같이, 문구 "~와 통신하는"은 여기에 도시되지 않거나 설명되지 않을 수 있는, 하나 이상의 소자를 통해 직접적으로 통신 또는 간접적으로 통신하는 것을 의미할 수 있다. 한 실시예에서, 호스트 디바이스(100) 및 저장 디바이스(120)는 각각 저장 디바이스(120)가 호스트 디바이스(100)에 제거가능하게 접속되게 하는 짝이 되는 물리적 접속들을 가질 수 있다. 대안적인 실시예에서, 호스트 디바이스(100) 및 저장 디바이스(120)는 서로 무선으로 통신할 수 있다. 마찬가지로, 호스트 디바이스(100)는 센서 디바이스(110)와 통신한다.
도 1에 도시된 바와 같이, 호스트 디바이스(100)는 센서 디바이스(110)로부터 센서 데이터를 수신한다. 센서 데이터는 호스트 디바이스(100)가 디바이스의 상태, 상황 또는 표시에 관한 입력에 관련한 것을 수신할 수 있는 데이터의 유형의 한 예이다. 한 실시예에서, 상태, 상황 또는 표시는 (차량과 관련한 상태, 상황 또는 표시에 관한 입력과 같은) 호스트 디바이스(100) 이외의 디바이스와 관련될 수 있다. 대안적인 실시예에서, 상태, 상황 또는 표시에 관한 입력은 호스트 디바이스(100)와 관련될 수 있다.
한 실시예에서, 센서 데이터는 센서 디바이스(110)에 의해 발생된 데이터를 포함할 수 있다. 예를 들어, (대시-캠과 같은) 카메라는 호스트 디바이스(100)에 보내지는 비디오 데이터를 발생할 수 있다. 또 하나의 예로서, 속도 센서는 호스트 디바이스(100)에 보내지는 속도 데이터를 발생할 수 있다. 대안적인 실시예에서, 센서 데이터는 센서 디바이스에 의해 발생된 데이터로부터 도출될 수 있다. 예를 들어, 호스트 디바이스(100)는 첨단 운전자 지원 시스템(ADAS)과 통신할 수 있다. ADAS는 근접 센서들과 같은 하나 이상의 센서를 포함할 수 있고, 하나 이상의 센서의 출력을 분석할 수 있고, 분석에 기초하여 (차선 이탈 경고와 같은) 경고를 호스트 디바이스(100)에 보낼 수 있다.
호스트 디바이스(100)는 이벤트 결정 기능성(105)을 포함할 수 있다. 아래에 더 상세히 논의되는 바와 같이, 몇 가지 형태들 중 하나를 취할 수 있는 이벤트 결정 기능성(105)은 이벤트가 발생하였는지를 결정하고, 이벤트가 발생하였다는 것을 (예를 들어, 이벤트가 저장을 위한 저장 디바이스(120)에 이전에 보내진 센서 데이터 또는 저장을 위한 저장 디바이스(120)에 아직 보내지지 않은 후속하는 센서 데이터에서 발생하였다는 것을) 표시하라고 저장 디바이스(120)에 명령하도록 구성될 수 있다. 한 실시예에서, 호스트 디바이스(100)의 이벤트 결정 기능성(105)은 미리 결정된 이벤트가 발생하였는지를 결정하기 위해 센서 데이터를 분석할 수 있다. 예를 들어, 센서 데이터가 차량 속도를 포함하는 경우에, 호스트 디바이스(100)의 이벤트 결정 기능성(105)은 차량 속도 데이터가 미리 결정된 속도보다 큰 속도를 표시하는지를 결정하기 위해 차량 속도를 분석할 수 있다. 차량 속도 데이터가 미리 결정된 속도보다 크다고 결정한 것에 응답하여, 호스트 디바이스(100)는 아래에 더 상세히 논의되는 바와 같이, 이벤트가 발생하였다고 결정할 수 있고, 저장 디바이스(120)에 명령을 보낼 수 있다. 명령은 일정 보호들을 받는, 이벤트 파티션 내에 기존의 파일(또는 기존의 파일의 부분)을 지정하도록 저장 디바이스에 표시할 수 있다. 호스트 디바이스(100)는 이벤트 결정 기능성(105)을 주기적으로 또는 새로운 센서 데이터의 수신 시에 사용할 수 있다. 예를 들어, 이벤트 결정 기능성(105)은 새로운 센서 데이터가 수신될 때마다 센서 데이터를 분석할 수 있다. 이벤트 결정 기능성(105)이 이벤트가 발생하지 않았다고 결정한 경우에, 호스트 디바이스(100)는 사용자 파티션의 부분으로서 지정된 파일 내에 저장하기 위한 저장 디바이스(120)에 새로운 센서 데이터를 보낼 수 있다. 후속하는 센서 데이터(즉, 저장 디바이스에 이전에 보내진 센서 데이터에 후속하여 발생된 센서 데이터)의 수신 시에, 이벤트 결정 기능성(105)은 이벤트가 발생하였는지를 결정하기 위해 후속하는 센서 데이터를 분석할 수 있다. 이벤트 결정 기능성(105)이 이벤트가 후속하는 센서 데이터에서 발생하였다고 결정한 것에 응답하여, 호스트 디바이스(120)는 저장 디바이스에 이벤트 파티션의 부분으로서 파일을 지정하라고 명령할 수 있다. 한 실시예에서, 이벤트 파티션의 부분으로서의 파일의 지정은 후속하는 데이터가 파일 내에 저장하기 위한 저장 디바이스에 보내진 다음에 이루어질 수 있다. 대안적인 실시예에서, 이벤트의 발생의 통지를 포함하는 명령은 또한 후속하는 센서 데이터를 포함할 수 있다. 이와 관련하여, 한 실시예에서, 후속하는 센서 데이터는 이벤트 파티션의 부분으로서의 파일의 지정 전에 파일 내에 저장될 수 있다. 대안적인 실시예에서, 후속하는 센서 데이터는 이벤트 파티션의 부분으로서의 파일의 지정 후에 파일 내에 저장될 수 있다.
대안적으로, 명령은 (명령의 페이로드에서 또는 명령과 관련된 통신에서와 같은) 명령과 함께 보내진 데이터가 이벤트 파티션 내에 저장된다는 것을 저장 디바이스에 표시할 수 있다. 또 하나의 예로서, 호스트 디바이스(100)는 원심력이 미리 결정된 양을 초과하는지를 결정하기 위해 차량의 원심력을 분석할 수 있다. 원심력이 미리 결정된 양을 초과한다고(즉, 차가 변덕스럽게 가거나 다른 차량과 충돌한다고) 결정한 것에 응답하여, 호스트 디바이스(100)는 이벤트의 별도의 기록 또는 파일을 생성하라고 저장 디바이스(120)에 명령할 수 있다.
대안적인 실시예에서, 호스트 디바이스(100)의 이벤트 결정 기능성(105)은 미리 결정된 이벤트가 발생하였는지를 결정하기 위해, 센서 데이터와 독립하여 분석할 수 있다. 예를 들어, 이벤트 결정 기능성(105)은 이벤트가 매일 12:00 PM과 같이, 미리 결정된 시간에 발생하였다는 것을 결정하도록 프로그램될 수 있다. 또 하나의 예로서, 호스트 디바이스(100)의 이벤트 결정 기능성(105)은 이벤트가 발생하였다는 것을 표시하는 센서 디바이스(110)로부터 이외의 입력을 수신할 수 있다. 더욱 구체적으로, 입력은 호스트 디바이스(100) 상의 키보드 등을 통하는 수동 입력일 수 있다. 대안적으로, 입력은 호스트 디바이스(100)와 통신하는 (제어 서버와 같은) 센서 디바이스(110)와 별도인 디바이스(도시 안됨)로부터 나올 수 있다.
대안적으로, 이벤트 결정 기능성(105)은 호스트 디바이스(100) 이외의 디바이스 내에 상주할 수 있다. 예를 들어, 이벤트 결정 기능성(105)은 저장 디바이스(120) 내에 상주할 수 있다. 이와 관련하여, 이벤트 결정 기능성(105)을 구현하는 저장 디바이스(120)는 이벤트가 발생하였는지를 결정할 수 있고, 이 결정에 응답하여, 이벤트 파티션의 부분으로서 파일을 지정할 수 있다. 예를 들어, 저장 디바이스(120)는 (센서 디바이스(120)로부터 직접 또는 호스트 디바이스(100)를 통해) 센서 데이터를 수신할 수 있고, 그 결정을 할 수 있다.
호스트 디바이스(100)는 이동 전화, 디지털 미디어 플레이어, 게임 디바이스, 개인 휴대 단말기(PDA), 퍼스널 컴퓨터(PC), 키오스크, 셋톱 박스, TV 시스템, 북 리더, 또는 이들의 어떤 조합과 같은, 그러나 이들로 제한되지 않는 임의의 적합한 형태를 취할 수 있다. 저장 디바이스(120)는 보안 디지털(SD) 메모리 카드, 마이크로SD 메모리 카드, 컴팩트 플래시(CF) 메모리 카드, 또는 유니버설 시리얼 버스(USB) 디바이스와 같은 소비자, 고상 저장 디바이스와 같은, 그러나 이들로 제한되지 않는 임의의 적합한 형태를 취할 수 있다. 한 실시예에서, 저장 디바이스(120)는 SanDisk Corporation에 의한 iNAND™ eSD/eMMC 매립된 플래시 드라이브의 형태를 취한다. 대안적으로, 내부 또는 매립된 SSD 드라이브로서 사용하기 위해 구성되는 저장 디바이스는 도 1에 도시된 것과 유사하게 보일 수 있고, 주된 차이는 저장 디바이스(120)의 위치가 호스트 디바이스(100) 내부에 있다는 것이다. SSD 드라이브들은 자기 디스크 드라이브들을 회전시키기 위한 드롭-인 대체들인 분리된 모듈들의 형태로 될 수 있다.
다양한 센서 디바이스들이 고려된다. 예를 들어, 카메라는 호스트 디바이스(100)에 보내기 위해 비디오 데이터를 발생하는, 센서 디바이스의 한 유형으로서 사용될 수 있다. 또 하나의 예로서, 센서 데이터는 제어기 영역 네트워크(CAN) 버스를 통해 호스트 디바이스에 전달될 수 있다. 호스트 디바이스는 차량의 헤드 유닛과 같은 차량의 제어 시스템을 포함할 수 있거나, 차량 제어 시스템과 분리된 컴퓨터를 포함할 수 있다. CAN 버스는 차량 내의 다양한 센서들과 더 통신할 수 있다. 더욱 구체적으로, CAN 버스는 크루즈 제어의 동작, (브레이크들이 동작하고 있는지 및 브레이크들이 어떻게 동작하는지(예를 들어, 잠김 방지 시스템이 작동되는지)를 포함하는 전자 브레이크 시스템의 동작; 전자 회로의 동작(예를 들어, 조종 메커니즘의 동작, 액셀러레이터 페달의 동작, (헤드라이트들이 켜져 있는지 및 헤드라이트들이 상향등인지를 포함하는) 헤드라이트들의 동작); 에어백 시스템의 동작 등을 제한 없이 포함하는 차량의 동작에 관한 데이터를 송신할 수 있다. 이와 관련하여, CAN 버스는 센서 데이터를 호스트 디바이스에 전달할 수 있다. 센서 데이터의 수신에 응답하여, 호스트 디바이스는 아래에 더 상세히 논의되는 바와 같이, 이벤트가 발생하였는지를 결정할 수 있다. 예를 들어, 전자 회로는 에어백이 터졌다는 표시를 CAN 버스를 통해 호스트 디바이스(100)에 보낼 수 있다. 응답하여, 호스트 디바이스의 이벤트 결정 기능성(105)은 이벤트가 발생하였다고 결정하고 그에 따라 저장 디바이스(120)에 명령할 수 있다.
또 다른 예로서, 호스트 디바이스는 첨단 운전자 지원 시스템(ADAS)과 통신할 수 있다. ADAS는 차선 이탈 경고들, 주변 카메라들, 후방 카메라를 통한 교통 혼잡 경고들 등 중 하나 이상을 결정하도록 구성된 하나 이상의 센서로 이루어질 수 있다. ADAS로부터 데이터를 수신한 것에 응답하여, 호스트 디바이스의 이벤트 결정 기능성(105)은 아래에 더 상세히 논의되는 바와 같이, 이벤트가 발생하였는지를 결정할 수 있다.
도 2a는 도 1의 호스트 디바이스(100)의 확대된 블록도이다. 호스트 디바이스(100)는 저장 디바이스(120)와 인터페이스하는 저장 디바이스 인터페이스(225)를 갖는 제어기(200)를 포함한다. 제어기(200)는 또한 중앙 처리 장치(CPU)(205), 랜덤 액세스 메모리(RAM)(210), 리드 온리 메모리(ROM)(215), 및 저장소(230)를 포함한다. ROM(215) 또는 저장소(230)는 CPU(205)에 의해 실행하기 위한 명령어들을 저장할 수 있다. 명령어들은 펌웨어 등과 같은, 몇 가지 형태들 중 하나로 될 수 있다. CPU(205)에 의한 명령어들의 실행은 아래에 더 상세히 논의되는 바와 같이, 호스트 디바이스(100)에 맡겨지는 방법들을 구현하기 위해 사용될 수 있다.
저장 디바이스(120) 및 호스트 디바이스(100)는 저장 디바이스 인터페이스(225) 및 호스트 디바이스 인터페이스(255)를 통해 서로 통신한다. 호스트 디바이스(100)는 센서 디바이스(110)와 통신하도록 구성될 수 있는 센서 인터페이스(220)를 더 포함할 수 있다. 위에 논의된 바와 같이, 센서 인터페이스(220)는 유선 또는 무선으로 통신하도록 구성될 수 있다. 호스트 디바이스(100)는 도면을 간단히 하기 위해 도 2a에 도시하지 않은 다른 소자들(예를 들어, 비디오 및/또는 오디오 센서들, 네트워크 접속기, 디스플레이 디바이스, 스피커, 헤드폰 잭, 비디오 출력 접속 등)을 포함할 수 있다.
도 2b는 도 1의 저장 디바이스(120)의 확대된 블록도이다. 저장 디바이스(120)는 제어기(250) 및 메모리(280)를 포함한다. 제어기(250)는 메모리(280)와 인터페이스하는 메모리 인터페이스(275) 및 호스트 디바이스(100)와 인터페이스하는 호스트 디바이스 인터페이스(255)를 포함한다. 제어기(250)는 또한 중앙 처리 장치(CPU)(260), 랜덤 액세스 메모리(RAM)(265), 및 저장 디바이스(120)의 기본 동작들을 위한 펌웨어를 저장할 수 있는 리드 온리 메모리(ROM)(270)를 포함한다. 제어기(250)는 임의의 적합한 방식으로 구현될 수 있다. 예를 들어, 제어기(250)는 마이크로프로세서 또는 프로세서 및 예를 들어, (마이크로)프로세서, 논리 게이트들, 스위치들, 주문형 집적 회로(ASIC), 프로그래머블 논리 제어기, 매립된 마이크로제어기에 의해 실행가능한 컴퓨터 판독가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터 판독가능 매체의 형태를 취할 수 있다. 제어기(250)는 아래에 더 상세히 논의되는 바와 같이, 저장 디바이스(120)에 맡겨지는 방법들을 구현하기 위해 사용될 수 있다.
메모리(280)는 반도체 메모리 디바이스를 포함할 수 있다. 반도체 메모리 디바이스들은 다이내믹 랜덤 액세스 메모리("DRAM") 또는 스태틱 랜덤 액세스 메모리("SRAM") 디바이스들과 같은 휘발성 메모리 디바이스들, 저항 랜덤 액세스 메모리("ReRAM"), 전기적으로 소거가능한 프로그래머블 리드 온리 메모리("EEPROM"), 플래시 메모리(EEPROM의 서브셋으로도 고려될 수 있음), 강유전성 랜덤 액세스 메모리("FRAM"), 및 자기저항 랜덤 액세스 메모리("MRAM")와 같은 비휘발성 메모리 디바이스들, 및 정보를 저장할 수 있는 다른 반도체 요소들을 포함한다. 메모리 디바이스의 각각의 유형은 상이한 구성들을 가질 수 있다. 예를 들어, 플래시 메모리 디바이스들은 NAND 또는 NOR 구성으로 구성될 수 있다.
메모리 디바이스들은 임의의 조합들로, 수동 및/또는 능동 요소들로부터 형성될 수 있다. 비제한적인 예에 의해, 수동 반도체 메모리 요소들은 일부 실시예들에서 앤티-퓨즈, 위상 변화 재료 등과 같은 비저항 스위칭 저장 요소를 포함하는 ReRAM 디바이스 요소들, 및 선택적으로 다이오드 등과 같은 조종 요소를 포함한다. 또한, 비제한적인 예에 의해, 능동 반도체 메모리 요소들은 일부 실시예들에서 플로팅 게이트와 같은 전하 저장 영역, 도전성 나노입자들, 또는 전하 저장 유전체 재료를 포함하는 요소들을 포함하는 EEPROM 및 플래시 메모리 디바이스 요소들을 포함한다.
다중 메모리 요소들은 그들이 직렬로 접속되도록 또는 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다. 비제한적인 예에 의해, NAND 구성(NAND 메모리) 내의 플래시 메모리 디바이스들은 직렬로 접속된 메모리 요소들을 전형적으로 포함한다. NAND 메모리 어레이는 어레이가 스트링이 단일 비트 라인을 공유하고 그룹으로서 액세스되는 다중 메모리 요소들로 이루어진 메모리의 다중 스트링들로 이루어지도록 구성될 수 있다. 대안적으로, 메모리 요소들은 각각의 요소가 개별적으로 액세스가능한, 예를 들어, NOR 메모리 어레이이도록 구성될 수 있다. NAND 또는 NOR 메모리 구성들은 예시적이고, 메모리 요소들은 달리 구성될 수 있다.
기판 내에 및/또는 위에 위치한 반도체 메모리 요소들은 2차원 메모리 구조 또는 3차원 메모리 구조와 같이, 2 또는 3차원들로 배열될 수 있다.
2차원 메모리 구조에서, 반도체 메모리 요소들은 단일 평면 또는 단일 메모리 디바이스 레벨 내에 배열된다. 전형적으로, 2차원 메모리 구조에서, 메모리 요소들은 메모리 요소들을 지지하는 기판의 주 표면에 실질적으로 평행하게 연장하는 평면(예를 들어, x-z 방향 평면) 내에 배열된다. 기판은 메모리 요소들의 층이 그 위에 또는 그 안에 형성되는 웨이퍼일 수 있거나 그것은 그들이 형성된 후에 메모리 요소들에 부착된 캐리어 기판일 수 있다. 비제한적인 예에 의해, 기판은 실리콘과 같은 반도체를 포함할 수 있다.
메모리 요소들은 복수의 행들 및/또는 열들에서와 같이, 정렬된 어레이로 단일 메모리 디바이스 레벨 내에 배열될 수 있다. 그러나, 메모리 요소들은 비정규 또는 비직교 구성들로 배열될 수 있다. 메모리 요소들은 각각 비트 라인들 및 워드 라인들과 같은 2개 이상의 전극들 또는 접촉 라인들을 가질 수 있다.
3차원 메모리 어레이는 메모리 요소들이 다중 평면들 또는 다중 메모리 디바이스 레벨들을 차지함으로써, 3차원(즉, x, y, 및 z 방향들, 여기서 y 방향은 기판의 주 표면에 실질적으로 수직이고 x 및 z 방향들은 실질적으로 평행)으로 구조를 형성하도록 배열될 수 있다.
비제한적인 예에 의해, 3차원 메모리 구조는 다중 2차원 메모리 디바이스 레벨들의 스택으로서 수직으로 배열될 수 있다. 또 하나의 비제한적인 예로서, 3차원 메모리 어레이는 각각의 열이 각각의 열 내의 다중 메모리 요소들을 갖는 다중 수직 열들(예를 들어, 기판의 주 표면에 실질적으로 수직으로, 즉 y 방향으로 연장하는 열들)로서 배열될 수 있다. 열들은 2차원 구성으로, 예를 들어, x-z 평면으로 배열될 수 있어서, 결국 다중의 수직으로 스택된 메모리 평면들 상에 요소들을 갖는 메모리 요소들의 3차원 배열을 야기한다. 3차원의 메모리 요소들의 다른 구성들은 또한 3차원 메모리 어레이를 이룰 수 있다.
비제한적인 예에 의해, 3차원 NAND 메모리 어레이에서, 메모리 요소들은 단일 수평(예를 들어, x-z) 메모리 디바이스 레벨들 내에 NAND 스트링을 형성하도록 함께 결합될 수 있다. 대안적으로, 메모리 요소들은 다중 수평 메모리 디바이스 레벨들을 가로질러 횡단하는 수직 NAND 스트링을 형성하도록 함께 결합될 수 있다. 일부 NAND 스트링들이 단일 메모리 레벨 내에 메모리 요소들을 포함하고 다른 스트링들이 다중 메모리 레벨들을 통해 걸치는 메모리 요소들을 포함하는 다른 3차원 구성들이 상상될 수 있다. 3차원 메모리 어레이들은 또한 NOR 구성으로 및 ReRAM 구성으로 설계될 수 있다.
전형적으로, 모놀리식 3차원 메모리 어레이에서, 하나 이상의 메모리 디바이스 레벨이 단일 기판 위에 형성된다. 선택적으로, 모놀리식 3차원 메모리 어레이는 또한 단일 기판 내에 적어도 부분적으로 하나 이상의 메모리 층을 가질 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다. 모놀리식 3차원 어레이에서, 어레이의 각각의 메모리 디바이스 레벨을 이루는 층들이 전형적으로 어레이의 하부 메모리 디바이스 레벨들의 층들 상에 형성된다. 그러나, 모놀리식 3차원 메모리 어레이의 인접한 메모리 디바이스 레벨들의 층들은 공유될 수 있거나 메모리 디바이스 레벨들 간에 중간 층들을 가질 수 있다.
다음에 다시, 2차원 어레이들은 별도로 형성된 다음에 메모리의 다중 층들을 갖는 비모놀리식 메모리 디바이스를 형성하도록 함께 패키지될 수 있다. 예를 들어, 비모놀리식 스택된 메모리들은 개개의 기판들 상에 메모리 레벨들을 형성하고 다음에 서로 맨 위에 메모리 레벨들을 스택함으로써 구성될 수 있다. 기판들은 스택하기 전에 메모리 디바이스 레벨들로부터 얇게 되거나 제거될 수 있지만, 메모리 디바이스 레벨들이 개개의 기판들 위에 초기에 형성될 때, 결과적인 메모리 어레이들은 모놀리식 3차원 메모리 어레이들이 아니다. 또한, 다중 2차원 메모리 어레이들 또는 3차원 메모리 어레이들(모놀리식 또는 비모놀리식)은 개개의 칩들 상에 형성된 다음에 스택된-칩 메모리 디바이스를 형성하도록 함께 패키지될 수 있다.
메모리 요소들의 동작을 위해 그리고 메모리 요소들과의 통신을 위해 관련된 회로가 전형적으로 요구된다. 비제한적인 예들로서, 메모리 디바이스들은 프로그래밍 및 읽기와 같은 기능들을 달성하기 위해 메모리 요소들을 제어하고 구동하기 위해 사용되는 회로를 가질 수 있다. 이 관련된 회로는 메모리 요소들과 동일한 기판 상에 및/또는 별도의 기판 상에 있을 수 있다. 예를 들어, 메모리 읽기-쓰기 동작들을 위한 제어기는 별도의 제어기 칩 상에 및/또는 메모리 요소들과 동일한 기판 상에 위치할 수 있다.
본 기술 분야의 통상의 기술자는 본 발명이 설명된 2차원 및 3차원 예시적 구조들로 제한되지 않고 여기에 설명된 본 발명의 취지 및 범위 내에서 그리고 본 기술 분야의 통상의 기술자에 의해 이해되는 바와 같이 모든 관련된 메모리 구조들을 커버한다는 것을 인식할 것이다.
메모리(280)는 단일의 파티션 또는 다수의 파티션을 포함할 수 있다. 한 특정한 실시예에서, 메모리(280)는 2개 이상의 논리적 및/또는 물리적 파티션들과 같은, 다수의 파티션으로 나누어질 수 있다. 메모리(280) 내의 파티션들 중 하나, 일부 또는 전부는 독립적인 마스터 부트 기록들 및 파일 시스템 테이블들을 가질 수 있다. 제어기(250)는 제1 파티션을 제어하기 위한 제1 세트의 규칙들 및 제2 파티션을 제어하기 위한 제2 세트의 규칙들을 가질 수 있다. 예를 들어, 메모리(280)는 하나 이상의 사용자 파티션(285) 및 (하나 이상의 이벤트 파티션(290)과 같은) 하나 이상의 비사용자 파티션을 포함할 수 있다. 아래에 더 상세히 논의되는 바와 같이, 사용자 파티션을 제어하기 위한 규칙들은 이벤트 파티션을 제어하기 위한 규칙들과 상이하다(사용자 파티션의 부분으로서 지정된 파일들에 쓰거나 그 파일들을 삭제하기 위한 규칙들은 이벤트 파티션의 부분으로서 지정된 파일들에 쓰거나 그 파일들을 삭제하기 위한 규칙들과 상이할 수 있다). 도 2b는 단일 사용자 파티션(285) 및 단일 이벤트 파티션(290)을 도시하지만; 더 적거나 더 많은 수의 파티션들이 고려된다. 또한, 규칙들은, 아래에 더 상세히 논의되는 바와 같이, 파일이 파티션의 부분으로서 언제 지정되는지와 관련할 수 있고/있거나 지정된 파티션 내의 파일의 제어(예를 들어, 읽기, 쓰기, 및/또는 삭제)와 관련할 수 있다.
사용자 파티션(285) 및 이벤트 파티션(290)은 동일한 메모리 유닛의 상이한 파티션들일 수 있거나 상이한 메모리 유닛들일 수 있다. 사용자 파티션(285)은 호스트 디바이스(100) 상에 파일 시스템에 의해 관리되는 공개 메모리 영역을 포함할 수 있다. 예를 들어, 호스트 디바이스(100)는 보안 디지털(SD) 규격들을 사용하여 사용자 파티션(285)에 액세스할 수 있다. 한 실시예에서, 이벤트 파티션(290)은 호스트 디바이스(100)에 의해 액세스가능할 수 있다. 예를 들어, 이벤트 파티션(290)은 SD 규격들 내에서 식별된 기존의 명령들의 사용 및/또는 판매자 특정 명령들의 사용에 의해 액세스가능한 독립적인 파라미터 파일에 의해 정의된 특성들을 가질 수 있다. 마찬가지로, 기존의 명령들 및/또는 확장된 기능 명령들은 SATA, USB, CF 등을 위해 사용될 수 있다. 이벤트 파티션(290)에 액세스하라는 확장된 기능 명령들의 예들이 아래에 더 상세히 논의된다. 대안적인 실시예에서, 이벤트 파티션(290)은 호스트 디바이스(100)에 의해 액세스가능하지 않다. 더욱 구체적으로, 이벤트 파티션(290)은 그것이 제어기(250)에 의해 내부적으로 관리되기 (그리고 호스트 디바이스의 제어기(200)에 의해 관리되지 않기) 때문에 "비밀"(또는 "숨겨짐")일 수 있다.
이벤트 파티션(들)(290)은 크기에 있어서 구성가능할 수 있고, 특수화된 데이터 삭제 기능성을 지원하고 독특한 파일 전달 방법들을 지원할 수 있다. 예를 들어, 제어기(250)는 파일이 이벤트 파티션(290)의 부분으로서 언제 지정되는지를 결정하고/하거나 이벤트 파티션(290) 내의 파일을 언제 삭제할지를 결정하는 한 세트의 규칙들하에서 이벤트 파티션(290)을 제어할 수 있다. 아래에 더 상세히 논의되는 바와 같이, 파일 삭제의 2개의 예시적인 모드는 WORM(Write Only Read Many) 및 TERM(Time Erase Read Many)를 포함한다. 또한, 이벤트 파티션(290)은 패스워드 로크의 사용을 지원할 수 있다. 물론, 실제로, 호스트 디바이스(100) 및 저장 디바이스(120)는 도 2a-b에 도시한 것들보다 적은 수 및 상이한 소자들을 가질 수 있다.
위에 논의된 바와 같이, 이벤트가 결정될 수 있다. 이벤트의 결정에 응답하여, 파일은 이벤트 파티션(290)의 부분으로서 지정될 수 있다. 도 3은 호스트 디바이스(100)가 이벤트가 발생하였는지를 결정하기 위한 실시예의 방법의 흐름도(300)이다. 302에서, 센서 데이터가 수신된다. 위에 논의된 바와 같이, 센서 데이터는 센서에 의해 발생되고/되거나 센서에 의해 발생된 데이터로부터 도출된 데이터를 포함할 수 있다. 304에서, 센서 데이터는 저장을 위한 저장 디바이스에 보내진다.
306에서, 이벤트가 발생하였는지가 결정된다. 위에 논의된 바와 같이, 이벤트의 결정은 센서 데이터에 기초할 수 있거나 센서 데이터와 독립일 수 있다. 이벤트가 발생하지 않았다고 결정한 것에 응답하여, 흐름도(300)는 302로 다시 이동한다. 이와 관련하여, 호스트 디바이스는 이벤트가 센서 데이터에서 발생하였는지를 반복적으로 결정할 수 있다. 더욱 구체적으로, 호스트 디바이스(100)가 제1 세트의 센서 데이터를 사용자 파티션 내의 파일 내에 저장하기 위한 저장 디바이스(120)에 보낸 후에, 호스트 디바이스(100)는 이벤트가 (제1 세트의 센서 데이터에 후속하여 발생될 수 있는) 제2 세트의 센서 데이터에서 발생하였는지를 결정할 수 있다. 이벤트가 제2 세트의 센서 데이터에서 발생한 경우에, 호스트 디바이스(100)는 저장 디바이스(120)에 이벤트를 명령하고, 그럼으로써 (그 안에 저장된 제1 세트의 센서 데이터를 포함하는) 파일이 아래에 더 상세히 논의되는 바와 같이, 이벤트 파티션의 부분으로서 지정되게 한다.
이벤트가 발생하였다고 결정한 것에 응답하여, 308에서, 호스트 디바이스(100)는 이벤트가 발생하였다는 것을 저장 디바이스(120)에 알리는 명령을 발생할 수 있다. 명령이 이벤트 파티션과 관련한다는 것을 명령이 저장 디바이스(120)에 표시할 수 있는 몇 가지 방식들이 있다.
한 방식에서, 명령은 전형적인 SD 명령을 포함할 수 있지만; 하나 이상의 필드가 명령이 이벤트 파티션과 관련하다는 것을 표시한다. 예를 들어, 명령에 대한 어드레스 범위는 유효 범위 밖에 있을 수 있다. 어드레스 범위의 한가지 유형은 논리적 블록 어드레스들(LBA들)을 포함할 수 있다. 저장 디바이스(120)와 통신할 때, 호스트 디바이스(100)는 LBA들의 범위의 형태에서와 같은, 데이터의 논리적 어드레스들을 보낼 수 있다. 저장 디바이스는 하나 이상의 단계에서, LBA들을 메모리(280) 상의 실제 물리적 어드레스들로 변환한다. 전형적으로, 제어기(250)는 실제 물리적 어드레스들에 맵핑하기 위해 논리적 어드레스-실제 물리적 어드레스 변환을 수행한다. 예를 들어, 호스트 디바이스(100)로부터의 LBA들은 메모리 시스템 내부 논리적 어드레스들에 맵핑될 수 있고, 메모리 시스템 내부 논리적 어드레스들은 실제 물리적 어드레스들에 맵핑된다. 또 하나의 예로서, 호스트 디바이스(100)로부터의 LBA들은 실제 물리적 어드레스들에 직접 맵핑될 수 있다. LBA들이 실제 물리적 어드레스들에의 맵핑의 범위 밖에 있는 경우에, 명령들을 거절하는 저장 디바이스(120)의 제어기(250) 대신에, 제어기는 아래에 더 상세히 논의되는 바와 같이, 명령을 처리하기 위해, 페이로드와 같은 다른 필드들을 검토할 수 있다. 310에서, 호스트 디바이스(100)는 저장 디바이스(120)에 명령을 보낼 수 있다.
또 다른 예로서, 명령은 어드레스들의 허용가능한 범위 내에 있을 수 있는 LBA 어드레스를 포함할 수 있고, (페이로드와 같은) 또 하나의 필드가 이벤트 파티션과 관련할 수 있다. 더욱 구체적으로, 페이로드는 명령(또는 후속하여 보내진 명령)이 이벤트 파티션과 관련한다는 것을 표시하는 (16개의 32-바이트 미리 결정된 시퀀스와 같은) 시그너처를 포함할 수 있다.
도 4는 저장 디바이스가 호스트 디바이스로부터 수신된 명령을 처리하기 위한 실시예의 방법의 흐름도(400)이다. 402에서, 저장 디바이스는 명령을 수신한다. 404에서, 저장 디바이스는 명령이 유효 범위 밖에 있는지를 결정한다. 위에 논의된 바와 같이, 유효 범위 밖에 있는 LBA를 포함하면 명령이 이벤트 파티션과 관련한다는 것이 저장 디바이스에 표시될 수 있다.
LBA가 유효 범위 내에 있다고 결정한 것에 응답하여, 414에서, 명령은 (SD 규격과 같은) 통상적인 통신 규격하에서 처리될 수 있다. LBA가 유효 범위 밖에 있다고 결정한 것에 응답하여, 406에서, 시그너처가 페이로드 내에 존재하는지가 결정된다. 위에 논의된 바와 같이, 명령의 상이한 필드들이 명령을 처리하기 위해 사용될 수 있다. 예를 들어, 호스트 디바이스는 명령의 페이로드 내에 (16개의 32-바이트 미리 결정된 시퀀스와 같은) 시그너처를 포함할 수 있다. 저장 디바이스는 시그너처가 존재하는지를 결정하기 위해 페이로드를 검토할 수 있다. 시그너처가 존재하지 않는다고 결정되면, 408에서, 명령은 거절된다.
시그너처가 존재한다고 결정되면, 410에서, 페이로드는 명령에 대해 조사된다. 412에서, 저장 디바이스는 다음에 페이로드 내의 명령을 수행할 수 있다. 명령들은 이벤트의 지정, 이벤트 파티션 내의 파일의 읽기, 이벤트 파티션 내의 파일에의 쓰기, 및/또는 이벤트 파티션 내의 파일의 삭제를 포함할 수 있다. 다른 명령들이 고려된다.
예를 들어, 페이로드는 이벤트가 발생하였다는 것을 표시할 수 있다. 위에 논의된 바와 같이, 하나 이상의 이벤트는 호스트 디바이스에 의해 또는 또 하나의 디바이스에 의해 결정될 수 있다. 호스트 디바이스가 이벤트를 결정하는 경우에, 호스트 디바이스는 명령 내에 이벤트의 표시를 포함할 수 있다. 한 실시예에서, 호스트 디바이스는 단일 이벤트가 발생하였는지를 결정한다. 이벤트가 발생하였다면, 호스트 디바이스는 명령 내의 이벤트의 표시, 및 (파일에 대한 LBA 범위와 같은) 이벤트와 관련된 파일의 설명을 포함한다. 응답하여, 저장 디바이스는 이벤트 파티션의 부분으로서 파일을 지정함으로써 명령을 처리할 수 있다.
한 실시예에서, 저장 디바이스는 이벤트 파티션의 부분으로서 파일의 LBA 범위(예를 들어, 사용자 파티션의 부분으로서 이전에 지정된 LBA 범위는 다음에 이벤트 파티션의 부분으로서 지정되거나 태그됨)를 지정할 수 있다. 또 하나의 실시예에서, 사용자 파티션의 LBA 범위는 감소될 수 있고, 이벤트 파티션의 LBA 범위는 증가될 수 있다. 이와 관련하여, 저장 디바이스는 이벤트 파티션의 부분으로서 LBA 범위의 변화를 반영하기 위해 이벤트 영역 파일 시스템 테이블들을 업데이트할 수 있다. 보다 특정한 실시예에서, 저장 디바이스는 이벤트 파티션의 부분으로서 더 근접한 LBA 범위를 지정하기 전에 더 근접한 LBA 범위 내에 파일을 통합할 수 있다. 이벤트 파티션과 사용자 파티션에 지정된 공간의 양의 균형을 유지하기 위해서, 저장 디바이스는 사용자 파티션 공간으로 되도록 미사용된 이벤트 파티션 내에 유사한(또는 동일한) 양의 공간을 지정 해제할 수 있다. 이와 관련하여, 이벤트 및 사용자 파티션들에 할당된 공간 사이의 균형이 유지될 수 있다. 대안적인 실시예에서, 저장 디바이스는 이벤트 파티션으로서 메모리(280) 내에 정해진 섹션을 이전에 지정할 수 있다. 명령을 수신한 것에 응답하여, 저장 디바이스는 다음에 파일을 이벤트 파티션으로서 이전에 지정된 메모리의 부분으로 이동시킬 수 있다.
대안적인 실시예에서, 이벤트는 복수의 잠재적인 이벤트로부터 선택될 수 있다. 저장 디바이스가 명령을 수신한 것에 응답하여, 저장 디바이스는 복수의 이벤트로부터, 어떤 특정한 이벤트가 명령에서 표시되는 것을 결정할 수 있다. 응답하여, 저장 디바이스는 특정한 이벤트와 관련된 이벤트 파티션의 부분으로서 파일을 지정함으로써 명령을 처리할 수 있다. 예를 들어, 이벤트들에 대해 차량을 모니터하는 맥락에서, 잠재적인 이벤트들은 (1) 비상이 아닌 이벤트(들); 또는 (2) 비상 이벤트(들)를 포함할 수 있다. 비상이 아닌 이벤트는 (현재 시간이 5:00PM인 것을 표시하는 것과 같은) 미리 결정된 시간 기간 경과를 포함할 수 있다. 비상 이벤트는, 예를 들어, 차량 내의 에어백이 터진 것을 포함할 수 있다. 호스트 디바이스가 이벤트가 발생하였다고 결정한 것에 응답하여, 호스트 디바이스는 명령의 페이로드 내에 이벤트의 표시를 보낼 수 있다. 미리 결정된 시간 기간 경과의 예에서, 호스트 디바이스는 저장 디바이스에 이벤트가 영업일의 마지막이라는 것을 표시하는 "End_of_Day" 표시를 명령 내에 포함할 수 있다. 에어백이 터진 예에서, 호스트 디바이스는 저장 디바이스에 차량이 사고가 났다는 것을 표시하는 "accident" 표시를 명령 내에 포함할 수 있다. 저장 디바이스가 명령이 "End_of_Day" 표시를 포함한다고 결정한 것에 응답하여, 저장 디바이스는 "End_of_Day" 파티션의 부분으로서 명령 내에 표시된 파일을 지정할 수 있다. 마찬가지로, 저장 디바이스가 명령이 "accident" 표시를 포함한다고 결정한 것에 응답하여, 저장 디바이스는 "End_of_Day" 파티션과 별개인, "accident" 파티션의 부분으로서 명령 내에 표시된 파일을 지정할 수 있다.
또 하나의 예로서, 페이로드는 호스트 디바이스가 이벤트 파티션의 부분으로서 지정된 파일을 읽고자 한다는 것을 표시할 수 있다. 위에 논의된 바와 같이, 호스트 디바이스가 이벤트 파티션으로부터 파일을 읽고자 한다는 표시는 명령의 페이로드 내에 포함될 수 있다. 예를 들어, 페이로드는 이벤트의 지정의 표시를 포함할 수 있고, 또한 이벤트 파티션의 부분으로서 지정될 (파일 이름과 같은) 파일의 표시를 포함할 수 있다. 명령을 수신한 것에 응답하여, 저장 디바이스는 명령을 처리할 수 있다. 읽기 명령의 경우에, 저장 디바이스는 선택적으로 이벤트 파티션 내의 파일들의 읽기들이 허용되는지를 먼저 결정할 수 있다. 그렇다면, 저장 디바이스는 선택적으로 파일이 패스워드 로크 되어 있는지를 더 결정할 수 있다. 그렇다면, 저장 디바이스는 올바른 패스워드가 페이로드 내에서와 같이, 명령 내에 포함되는지를 검토할 수 있다. 호스트 디바이스가 이벤트 파티션으로부터 파일을 읽는 것이 허용되는 경우에, 저장 디바이스는 파일을 호스트 디바이스에 보낼 수 있다.
또 다른 예로서, 페이로드는 호스트 디바이스가 이벤트 파티션의 부분으로서 지정된 파일에 쓰고자 한다는 것을 표시할 수 있다. 쓰기 명령을 수신한 것에 응답하여, 한 실시예에서, 저장 디바이스는 이벤트 파티션의 부분으로서 지정된 파일들 상으로의 쓰기가 허용되는지를 먼저 결정할 수 있다. 이벤트 파티션의 부분으로서 지정된 파일들 상으로의 쓰기가 허용되지 않는다고 결정한 것에 응답하여, 저장 디바이스는 명령을 거절할 수 있거나 또 하나의 파일 내로 데이터를 쓸 수 있다(그리고 원래의 파일 이름에 기초하여 다른 파일로 명명할 수 있다). 예를 들어, 이벤트 파티션의 부분으로서 지정된 파일의 이름이 "Accident_June_15_2014"인 경우에 및 명령이 파일의 일부 또는 모두를 덮어쓰기 하라는 것(예를 들어, "Accident_June_15_2014"을 포함하는 LBA 범위를 지정하고 또는 쓰기 위해 "Accident_June_15_2014"를 작성하는 것)을 요구하는 경우에, 저장 디바이스는 새로운 파일 내로 데이터를 저장하고 새로운 파일 "Accident_June_15_2014_1"로 명명할 수 있다. 이와 관련하여, 이벤트 파티션 파일들이 다시 써지는 것을 요구하는 명령들은 (파일들이 다시 써지는 것이 요구된 횟수를 표시하는) 카운트 표시자로 재명명될 수 있고, 이벤트 파티션 내의 원래의 파일은 유지될 수 있다.
대안적인 실시예에서, 쓰기 명령을 수신한 것에 응답하여, 저장 디바이스는 이벤트 파티션의 부분으로서 지정하는 파일들의 쓰기가 허용되는지를 먼저 결정할 수 있다. 그렇다면, 저장 디바이스는 선택적으로 파일이 패스워드 로크 되어 있는지를 더 결정할 수 있다. 파일이 패스워드 로크 되어 있으면, 저장 디바이스는 올바른 패스워드가 페이로드 내에서와 같이, 명령 내에 포함되는지를 검토할 수 있다. 호스트 디바이스가 이벤트 파티션의 부분으로서 지정된 파일에 쓰는 것이 허용되는 경우에, 저장 디바이스는 파일을 덮어쓰기 할 수 있다. 한 실시예에서, 파일은 (프로그램/소거 카운트와 같은) 나이 표시자가 아래에 더 상세히 논의되는 바와 같이 특정 값인 후에 덮어쓰기 될 수 있다. 이와 관련하여, 파일은 올바른 패스워드가 수신되었다는 결정 및 나이 표시자가 특정 값이라는 결정 후에 수정될 수 있다.
또 다른 예로서, 페이로드는 호스트 디바이스가 이벤트 파티션의 부분으로서 지정된 파일을 삭제하고자 한다는 것을 표시할 수 있다. 한 실시예에서, 저장 디바이스는 이벤트 파티션의 부분으로서 지정된 임의의 파일의 삭제를 허용하지 않도록 구성된다. 아래에 더 상세히 논의되는 바와 같이, 이벤트 파티션은 WORM(Write Once Read Many) 파티션일 수 있다. 이 예에서, 저장 디바이스는 이벤트 파티션의 부분으로서 지정된 파일을 삭제하라는 명령을 거절한다. 그러므로, 파일 시스템 테이블들을 포함하는, 쓰여진 파일들은 삭제되는 것이 허용되지 않을 수 있다.
대안적인 실시예에서, 이벤트 파티션의 부분으로서 지정된 파일은 미리 결정된 환경들하에서 삭제될 수 있다. 아래에 더 상세히 논의되는 바와 같이, 이벤트 파티션은 TERM(Time Erase Read Many) 파티션일 수 있다. 이벤트 파티션의 부분으로서 지정된 파일은 아래에 더 상세히 논의되는 바와 같이, 저장 디바이스의 나이 표시자에 기초하여 삭제될 수 있다. 예를 들어, 나이 표시자는 메모리(280)의 부분의 프로그램/소거(P/E) 카운트와 같은, 마모 표시자(wear indicator)를 포함할 수 있다. 더욱 구체적으로, 데이터가 사용자 파티션 내의 파일로 원래 세이브되어 있을 때, 사용자 파티션의 평균 P/E 카운트가 또한 세이브될 수 있고 파일과 관련될 수 있다. 파일 소거는 사용자 파티션 평균 소거 주기 카운트가 (정해진 퍼센티지(%)만큼과 같이) 특정 양만큼 증가한 다음에만 허용될 수 있다. 퍼센티지 값은 일회 프로그램가능한 변수일 수 있고 그 이후에 파일이 삭제될 수 있는 최소 시간 기준과 유효하게 동일하게 되는 값을 나타낼 수 있다. 이와 관련하여, TERM 파티션의 부분으로서의 파일들은 나이 표시자에 의해 좌우되는 것과 같은 시간 기준이 맞을 때만 삭제되거나 덮어쓰기 될 수 있다.
도 5는 저장 디바이스가 저장 디바이스의 나이 표시자에 기초하여 동작을 수행할지를 결정하기 위한 실시예의 방법의 흐름도(500)이다. 502에서, 저장 디바이스는 동작을 수행하라는 명령을 수신한다. 예를 들어, 저장 디바이스는 호스트 디바이스(100)와 같은 외부 디바이스로부터 명령을 수신할 수 있다. 대안적으로, 저장 디바이스는 저장 디바이스 내부에서 실행되는 프로그램과 같이, 내부 동작을 통해 명령의 통지를 수신할 수 있다.
504에서, 저장 디바이스는 저장 디바이스의 나이 표시자에 액세스할 수 있다. 한 특정한 나이 표시자는 마모 표시자를 포함한다. 저장 디바이스의 마모 표시자들의 몇 가지 예들이 있다. 한 예는 위에 논의된 바와 같이, (사용자 파티션과 같은) 메모리의 부분의 P/E 카운트이다. 또 하나의 예는 본원에 전체적으로 참조로 포함된, 미국 출원 번호 2014-0115410에서 논의된 것과 같은, 저장 디바이스의 부분의 비트 에러율이다. 또 다른 예는 저장 디바이스의 부분의 고장율이다. 이와 관련하여, 나이 표시자는 저장 디바이스의 적어도 일부의 나이 또는 마모를 표시할 수 있다. 506에서, 저장 디바이스는 액세스된 나이 표시자에 기초하여 명령 내의 동작을 수행할지를 결정한다. 예를 들어, 소정의 동작은 일정량의 시간의 표시자가 통과했을 때만 수행될 수 있다. 나이 표시자인 P/E 카운트의 예에서, NAND 메모리의 상이한 블록들을 재프로그램하는 데는 통계적으로 예상된 양의 시간이 걸릴 수 있다. 이와 관련하여, P/E 카운트를 분석하는 것(예를 들어, NAND 내의 다양한 블록들이 재프로그램된 횟수들을 카운트하고/하거나 P/E 카운트의 퍼센티지 변화를 조사하는 것)은 호스트 디바이스와 독립한 시간 파라미터에 대한 기초일 수 있다.
시간 표시자로서 나이 표시자를 사용하면 저장 디바이스가 어떤 클록에 의존하지 않고 시간 계산을 수행할 수가 있다. 한 실시예에서, 저장 디바이스는 시간 계산을 결정하기 위해 클록을 포함할 필요가 없음으로써, 저장 디바이스의 비용을 줄인다. 더욱 구체적으로, 저장 디바이스는 시간 계산을 수행하기 위해 (호스트 디바이스(100)와 같은) 외부 디바이스의 클록에 의존할 필요가 없다. 외부 클록에 대한 의존성은 외부 클록이 조작될 수 있기 때문에 권할만한 것이 못될 수 있다. 예를 들어, 조작될 수 있는 시간 스탬프들에 의존하는 것은 현명하지 못할 수 있다. 대신에, 저장 디바이스는 (아래에 논의되는 바와 같이, 나이 표시자들의 변화에 기초하는 것과 같이) 나이 표시자의 분석에 기초하여 여전히 시간-의존 결정들을 할 수 있다. 특히, (호스트 디바이스에 의해 액세스가능한 메모리의 부분 및/또는 제어기(200)에 할당된 메모리의 부분과 같은) 저장 디바이스 내의 메모리의 부분의 나이는 동작을 수행할지를 결정하기 위해 분석될 수 있다.
대안적인 실시예에서, 나이 표시자는 클록 신호에 (직접적으로 또는 간접적으로) 의존할 수 있다. 더욱 구체적으로, 나이 표시자는 저장 디바이스 인터페이스(225)를 통해 호스트 디바이스(100)로부터와 같이, 연관된 호스트 디바이스로부터 수신된 외부 클록 신호에 의존할 수 있다. 제어기(200)는 호스트 디바이스로부터 수신된 클록 신호를 모니터할 수 있고 모니터된 클록 신호에 기초하여 나이를 결정할 수 있다. 더욱 구체적으로, 제어기(200)는 모니터된 클록 신호에 의존하여 (메모리 내의 블록과 같은) 메모리 내의 섹션을 조정할 수 있다. 제1 실시예에서, 제어기는 모니터된 클록 신호에 간접적으로 기초하여 메모리 내의 논리 블록을 수정할 수 있다. 예를 들어, 논리 블록 내의 카운터는 미리 결정된 수의 수신된 클록 주기들마다 증분될 수 있다. 제2 실시예에서, 제어기는 모니터된 클록 신호에 직접적으로 기초하여 메모리 내의 논리 블록을 수정할 수 있다(예를 들어, 만개의 주기들마다 카운터를 증분한다). 예를 들어, 논리 블록 내의 카운터는 수신된 클록 주기마다 증분될 수 있다. 어느 실시예에서나, 논리 블록은 나이(예를 들어, P/E 주기들)의 그것의 관련된 변화에 대해 조사될 수 있다. 논리 블록의 나이의 변화가 미리 결정된 양보다 크다고 결정한 것에 응답하여, (삭제와 같은) 동작이 다음에 수행될 수 있다.
도 6은 저장 디바이스가 저장 디바이스의 현재의 나이 표시자 및 파일과 관련된 나이 표시자에 기초하여 파일을 삭제할지를 결정하기 위한 실시예의 방법의 흐름도(600)이다. 602에서, 이벤트 파티션 내의 파일을 삭제하라는 명령이 수신된다. 위에 논의된 바와 같이, 페이로드와 같은, 명령 내의 상이한 필드들은 명령은 파일을 삭제하라는 것이고 명령은 LBA 범위를 포함함으로써와 같이, 특정한 파일을 지정한다는 것을 표시할 수 있다. 604에서, 현재의 나이 표시자가 액세스된다. 위에 논의된 바와 같이, 나이 표시자의 한 예는 사용자 파티션의 P/E 카운트이다. 606에서, 파일과 관련된 나이 표시자가 또한 액세스된다. 예를 들어, 파일이 처음에 생성될 때의 나이 표시자가 파일과 함께 저장될 수 있다. 또 하나의 예로서, 파일이 마지막으로 업데이트될 때의 나이 표시자가 파일과 함께 저장될 수 있다.
608에서, 현재의 나이 표시자와 파일과 관련된 나이 표시자 사이의 나이 표시자들의 변화가 결정될 수 있다. 610에서, 삭제 동작이 수행될 수 있기 전의 나이의 미리 결정된 양이 액세스된다. 612에서, (현재의 나이 표시자와 파일과 관련된 나이 표시자 사이의) 나이 표시자들의 변화가 삭제 동작이 수행될 수 있기 전에 나이의 미리 결정된 양보다 큰지가 결정된다. 나이 표시자들의 변화가 더 크면, 614에서, 파일의 삭제가 수행된다. 나이 표시자들의 변화가 더 크지 않으면, 616에서, 파일의 삭제는 거절된다.
나이 표시자가 사용자 파티션 평균 P/E 카운트인 예에서, 파일 소거는 사용자 파티션 평균 소거 주기 카운트가 정해진 퍼센티지(%)만큼 증가했을 때만 허용될 수 있다. 정해진 퍼센티지는 일회 프로그램가능한 변수일 수 있다. 그러므로, 정해진 퍼센티지는 최소 시간 기준과 유효하게 동일하게 되는 값을 나타낼 수 있다. 이와 관련하여, 파일들은 최소 시간 기준이 맞을 때만 삭제되고 덮어쓰기 될 수 있다.
도 7은 저장 디바이스(120) 내의 동작들의 블록도이다. A에서, 호스트 디바이스(700)는 명령을 호스트 인터페이스(730)를 통해 SD/마이크로 SD 카드(710)에 보낸다. 명령은 명령 시그너처를 포함하고 파일을 이벤트 영역(745) 내로 이동시키라는 것을 SD/마이크로 SD 카드(710)에 표시한다. 위에 논의된 바와 같이, 파일은 파일 시스템 파일 이름 전달에 기초하여 및/또는 파일과 관련된 섹터들을 식별함으로써와 같이, 몇 가지 방식들 중 하나의 방식으로 명령 내에서 식별될 수 있다. B에서, 명령을 수신한 것에 응답하여, 펌웨어 및 NAND 관리(725)를 실행하는 카드 제어기(720)는 이벤트 영역(745)의 부분으로서 파일을 지정한다. 위에 논의된 바와 같이, 이벤트 영역(745)의 부분으로서 파일을 지정하는 한 방식은 이벤트 영역 파일 시스템 테이블들(F/S)을 업데이트함에 의한 것이다. 이것은 파일이 이벤트 영역(745)의 부분으로서 지정되도록 파일을 태그하는 한 예이다. 또 하나의 방식은 이벤트 영역에 전용된 메모리 내의 영역으로 파일을 이동시키는 것이다.
이벤트 영역(745) 내의 파일을 읽으라는 명령에 응답하여, C에서, 카드 제어기(720)는 NAND 인터페이스(730)를 통해, NAND 메모리(735) 내의 파일 영역(745) 내의 파일을 읽을 수 있다. 이벤트 영역 내의 파일에 쓰라는 명령에 응답하여, D에서, 카드 제어기는 이벤트 영역에의 쓰기 능력이 있는지 및/또는 어떤 것인지를 결정한다. 예를 들어, WORM(write once read many) 구성 또는 TERM(time erase read many) 구성이 있을 수 있다. 이벤트 영역 내의 파일을 삭제하라는 명령에 응답하여, E에서, 제어기는 WORM 구성하에서 명령을 거절할 수 있다. 대안적으로, TERM 구성하에서, F에서, 파일은 사용자 영역(740) 평균 소거 주기 카운트가 정해진 %만큼 증가했을 때만 소거될 수 있다.
그러므로, 한 실시예에서, 저장 디바이스가 개시된다. 저장 디바이스는 메모리 및 메모리와 통신하는 제어기를 포함할 수 있다. 제어기는 (호스트 디바이스와 같은) 저장 디바이스 외부에 있는 디바이스로부터, 동작을 수행하라는 명령을 수신하고; 명령을 수신한 것에 응답하여, (메모리의 적어도 일부의 현재의 나이 표시자와 같은) 저장 디바이스의 나이 표시자에 액세스하고 - 나이 표시자는 저장 디바이스의 적어도 일부의 나이를 표시함 - ; 액세스된 나이 표시자에 기초하여, 동작을 수행할지를 결정하도록 구성될 수 있다. 명령에서의 동작은 저장 디바이스의 메모리 내에 저장된 파일에 대한 동작을 포함할 수 있다. 예를 들어, 파일에 대한 동작은 저장 디바이스의 메모리 내에 저장된 파일의 삭제를 포함할 수 있다. 파일을 삭제하는 동작을 수신한 것에 응답하여, 저장 디바이스는 (파일이 생성될 때의 메모리의 적어도 일부의 나이 표시자와 같은) 파일과 관련된 나이 표시자에 액세스하도록 구성될 수 있고 파일과 관련된 나이 표시자를 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자와 비교함으로써 동작을 수행할지를 결정하도록 구성될 수 있다. 더욱 구체적으로, 제어기는 파일과 관련된 나이 표시자와 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자 사이의 차이를 결정하고; 그 차이가 미리 결정된 양보다 큰지를 결정하고; 그 차이가 미리 결정된 양보다 크다고 결정한 것에 응답하여, 파일을 삭제하고; 그 차이가 미리 결정된 양보다 크지 않다고 결정한 것에 응답하여, 파일을 삭제하지 않음으로써 동작을 수행할지를 결정하도록 구성될 수 있다. 나이 표시자의 한 예는 저장 디바이스의 적어도 일부에 대한 프로그램/소거 카운트이다.
대안적인 실시예에서, 저장 디바이스가 저장 디바이스의 메모리 내의 동작을 수행할지를 결정하는 방법이 개시된다. 방법은 (저장 디바이스에서) 저장 디바이스 외부에 있는 디바이스로부터, 동작을 수행하라는 명령을 수신하는 단계; 명령을 수신한 것에 응답하여, 저장 디바이스의 나이 표시자에 액세스하는 단계 - 나이 표시자는 저장 디바이스의 적어도 일부의 나이를 표시함 - ; 액세스된 나이 표시자에 기초하여, 동작을 수행할지를 결정하는 단계를 포함한다.
따라서, 방법 및 시스템이 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 실현될 수 있다. 방법 및 시스템은 (도 1의 호스트 디바이스(100) 및/또는 저장 디바이스(120) 내에 도시된 것과 같은) 적어도 하나의 전자 디바이스에서의 집중된 방식으로 또는 상이한 요소들이 여러 개의 상호접속된 컴퓨터 시스템들에 걸쳐 분산된 분배된 방식으로 실현될 수 있다. 여기에 설명된 방법을 달성하기 위해 적응된 임의 종류의 컴퓨터 시스템 또는 다른 장치가 맞게 된다. 하드웨어와 소프트웨어의 전형적인 조합이 로드되고 실행될 때, 여기에 설명된 방법들을 달성하도록 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템일 수 있다. 이러한 프로그램된 컴퓨터는 특수 목적 컴퓨터로 고려될 수 있다.
방법 및 시스템은 또한 컴퓨터 판독가능 매체를 사용하여 구현될 수 있다. 예를 들어, 도 3-6에 설명된 이벤트 결정 기능성(105) 및 기능성은 컴퓨터 판독가능 매체를 사용하여 구현될 수 있다. "컴퓨터 판독가능 매체", "컴퓨터 판독가능 저장 매체", "머신 판독가능 매체", "전파된 신호 매체", 또는 "신호-포함 매체"는 명령어 실행가능한 시스템, 장치, 또는 디바이스에 의해 사용하고 또는 그들과 접속하여 소프트웨어를 저장, 통신, 전파 또는 이송하는 임의의 실재적인 디바이스를 포함할 수 있다. 머신 판독가능 매체는 선택적으로, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스, 또는 전파 매체일 수 있지만, 이들로 제한되지 않는다. 컴퓨터 판독가능 매체는 단일 매체 또는 다중 매체일 수 있다. 따라서, 본 개시 내용은 데이터 또는 명령어들이 저장될 수 있는, 컴퓨터 판독가능 매체 또는 분배 매체 및 다른 등가물들 및 후속 매체들 중 임의의 하나 이상을 포함하도록 고려될 수 있다. 예를 들어, CPU(205) 및/또는 CPU(260)는 여기의 기능성을 제공하기 위해, 메모리 내에 저장된 명령어들에 액세스할 수 있다. 또 하나의 예로서, 플래시 메모리 인터페이스(들)는 여기에 설명된 기능성을 구현하도록 구성될 수 있다.
대안적으로 또는 부가하여, 주문형 집적 회로, 프로그래머블 논리 어레이들 및 다른 하드웨어 디바이스들과 같은 전용된 하드웨어 구현들은 여기에 설명된 방법들 중 하나 이상을 구현하도록 구성될 수 있다. 다양한 실시예들의 장치 및 시스템들을 포함할 수 있는 응용들은 다양한 전자 및 컴퓨터 시스템들을 폭넓게 포함할 수 있다. 여기에 설명된 하나 이상의 실시예는 모듈들 간에 그리고 모듈들을 통해 통신될 수 있는 관련된 제어 및 데이터 신호들로, 또는 주문형 집적 회로의 부분들로서 둘 이상의 특정한 상호접속된 하드웨어 모듈들 또는 디바이스들을 사용하여 기능들을 구현할 수 있다. 따라서, 본 시스템은 소프트웨어, 펌웨어, 및 하드웨어 구현들을 포함할 수 있다.
위에 개시된 주제는 예시적이고 제한적인 것으로 고려되지 않고, 첨부된 청구범위는 본 개시 내용의 진정한 취지 및 범위 내에 드는, 모든 그러한 수정들, 향상들, 및 다른 실시예들을 커버하는 것으로 의도된다. 그러므로, 법에 의해 허용되는 최대 정도까지, 본 실시예들의 범위는 다음의 청구범위 및 그들의 등가물들의 가장 폭넓게 허용가능한 해석에 의해 결정되고, 전술한 상세한 설명에 의해 제한되거나 한정되지 않을 것이다. 다양한 실시예들이 설명되었지만, 본 기술 분야의 통상의 기술자에게 더 많은 실시예들 및 구현들이 상기 상세한 설명의 범위 내에서 가능하다는 것이 분명할 것이다. 따라서, 실시예들은 첨부된 청구범위 및 그들의 등가물들에 비추어서는 제외하고 제한되지 않는다.

Claims (30)

  1. 저장 디바이스로서,
    사용자 파티션(user partition) 및 이벤트 파티션(event partition)을 포함하는 메모리; 및
    상기 메모리와 통신하는 제어기
    를 포함하고, 상기 제어기는 제1 세트의 규칙들에 따라 상기 사용자 파티션 내의 파일들을 관리하고 상기 제1 세트의 규칙들과 상이한 제2 세트의 규칙들에 따라 상기 이벤트 파티션 내의 파일들을 관리하도록 구성되고, 상기 제어기는,
    상기 저장 디바이스 외부에 있는 호스트 디바이스로부터 데이터를 수신하고;
    상기 저장 디바이스 내의 상기 사용자 파티션과 관련된 파일 내에 상기 데이터를 저장하고;
    상기 이벤트의 발생의 표시를 상기 호스트 디바이스로부터 수신하고;
    상기 이벤트의 발생의 표시를 수신한 것에 응답하여, 상기 저장 디바이스 내의 하나 이상의 내부 동작을 수행함으로써 단지 상기 데이터를 상기 저장 디바이스의 상기 이벤트 파티션과 관련시키도록 구성되는 저장 디바이스.
  2. 제1항에 있어서, 상기 이벤트 파티션과 관련된 파일들의 삭제 또는 수정은 상기 사용자 파티션과 관련된 파일들의 삭제 또는 수정보다 더 제한적인(restrictive) 저장 디바이스.
  3. 제2항에 있어서, 상기 이벤트 파티션과 관련된 파일들의 삭제 또는 수정은 허용되지 않는 저장 디바이스.
  4. 제2항에 있어서, 상기 이벤트 파티션과 관련된 파일들의 삭제 또는 수정은 상기 저장 디바이스의 적어도 일부와 관련된 나이 표시자(age indicator)가 미리 결정된 양만큼 변화한 후에만 허용되는 저장 디바이스.
  5. 제4항에 있어서, 상기 제어기는
    상기 파일을 삭제하라는 명령을 상기 호스트 디바이스로부터 수신하고;
    상기 파일과 관련된 나이 표시자와 상기 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자 사이의 차이를 결정하고;
    상기 차이가 미리 결정된 양보다 큰지를 결정하고;
    상기 차이가 미리 결정된 양보다 크다고 결정한 것에 응답하여, 상기 파일을 삭제하고;
    상기 차이가 미리 결정된 양보다 크지 않다고 결정한 것에 응답하여, 상기 파일을 삭제하라는 상기 명령을 거절하도록 더 구성되는 저장 디바이스.
  6. 제5항에 있어서, 상기 나이 표시자는 상기 저장 디바이스의 상기 사용자 파티션의 적어도 일부에 대한 프로그램/소거 카운트(program/erase count)를 포함하는 저장 디바이스.
  7. 제1항에 있어서, 상기 데이터는 센서에 의해 발생되거나 센서로부터 도출되는 저장 디바이스.
  8. 제7항에 있어서, 상기 이벤트의 발생의 표시는 상기 데이터에서 또는 상기 센서에 의해 발생되거나 상기 센서로부터 도출된 후속하는 데이터에서 상기 이벤트가 발생하였다는 표시를 포함하는 저장 디바이스.
  9. 제1항에 있어서, 상기 제어기는 상기 파일이 상기 이벤트 파티션의 부분으로서 관련되도록 상기 파일을 태그함으로써 상기 파일을 상기 저장 디바이스의 상기 이벤트 파티션과 관련시키도록 구성되고;
    상기 파일을 태그한 것에 응답하여, 상기 제어기는 상기 이벤트 파티션의 부분을 지정 해제(de-designate)하여 상기 지정 해제된 부분이 상기 사용자 파티션의 부분이 되게 하도록 더 구성되는 저장 디바이스.
  10. 제1항에 있어서, 상기 제어기는 명령을 수신함으로써 상기 데이터와 관련된 이벤트의 상기 표시를 수신하도록 구성되고;
    상기 제어기는
    상기 명령 내의 LBA 범위를 분석하고;
    상기 명령 내의 상기 LBA 범위가 허용가능한 범위 밖에 있는지를 결정하고;
    상기 명령 내의 상기 LBA 범위가 허용가능한 범위 밖에 있다고 결정한 것에 응답하여, 상기 명령이 상기 이벤트의 상기 표시를 포함하는지를 결정하기 위해 상기 명령을 처리하도록 더 구성되는 저장 디바이스.
  11. 제1항에 있어서, 상기 메모리는 실리콘 기판 및 모놀리식 3차원 구조를 형성하는 복수의 메모리 셀을 포함하고, 상기 메모리 셀들의 적어도 하나의 부분은 상기 실리콘 기판에 대해 수직으로 배치되는 저장 디바이스.
  12. 제1항에 있어서, 상기 저장 디바이스는 상기 호스트 디바이스 내에 매립된 SSD 드라이브 또는 메모리 카드 중 하나인 저장 디바이스.
  13. 사용자 파티션 및 이벤트 파티션을 가지는 메모리를 갖는 저장 디바이스를 위한 방법으로서, 상기 방법은
    상기 저장 디바이스 외부에 있는 호스트 디바이스로부터 데이터를 수신하는 단계;
    상기 저장 디바이스 내의 상기 사용자 파티션과 관련된 파일 내에 상기 데이터를 저장하는 단계 - 상기 저장 디바이스는 상기 사용자 파티션 내의 파일들을 제어하기 위해 제1 세트의 규칙들을 사용함 - ;
    상기 이벤트의 발생의 표시를 상기 호스트 디바이스로부터 수신하는 단계; 및
    상기 이벤트의 발생의 표시를 수신한 것에 응답하여, 상기 저장 디바이스 내의 하나 이상의 내부 동작을 수행함으로써 단지 상기 데이터를 상기 저장 디바이스의 상기 이벤트 파티션과 관련시키는 단계 - 상기 저장 디바이스는 상기 이벤트 파티션 내의 파일들을 제어하기 위해 제2 세트의 규칙들을 사용하고, 상기 이벤트 파티션은 상기 이벤트와 관련되고, 상기 제2 세트의 규칙들은 상기 제1 세트의 규칙들보다 적어도 하나의 양태에서 더 제한적임 -
    를 상기 저장 디바이스에서 수행하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서, 상기 이벤트 파티션과 관련된 파일들의 삭제 또는 수정은 상기 사용자 파티션과 관련된 파일들의 삭제 또는 수정보다 더 제한적인 방법.
  15. 제14항에 있어서, 상기 이벤트 파티션과 관련된 파일들의 삭제 또는 수정은 허용되지 않는 방법.
  16. 제14항에 있어서, 상기 이벤트 파티션과 관련된 파일들의 삭제 또는 수정은 상기 저장 디바이스의 적어도 일부와 관련된 나이 표시자가 미리 결정된 양만큼 변화한 후에만 허용되는 방법.
  17. 제16항에 있어서,
    상기 파일을 삭제하라는 명령을 상기 호스트 디바이스로부터 수신하는 단계;
    상기 파일과 관련된 나이 표시자와 상기 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자 사이의 차이를 결정하는 단계;
    상기 차이가 미리 결정된 양보다 큰지를 결정하는 단계;
    상기 차이가 미리 결정된 양보다 크다고 결정한 것에 응답하여, 상기 파일을 삭제하는 단계; 및
    상기 차이가 미리 결정된 양보다 크지 않다고 결정한 것에 응답하여, 상기 파일을 삭제하지 않는 단계를 더 포함하는 방법.
  18. 제17항에 있어서, 상기 나이 표시자는 상기 저장 디바이스의 상기 사용자 파티션의 적어도 일부에 대한 프로그램/소거 카운트를 포함하는 방법.
  19. 제13항에 있어서, 상기 데이터는 센서에 의해 발생되거나 센서로부터 도출되는 방법.
  20. 제19항에 있어서, 상기 데이터에 관한 상기 이벤트의 발생의 표시는 상기 데이터에서 또는 상기 센서에 의해 발생되거나 상기 센서로부터 도출된 후속하는 데이터에서 상기 이벤트가 발생하였다는 표시를 포함하는 방법.
  21. 제13항에 있어서, 상기 파일을 상기 저장 디바이스의 상기 이벤트 파티션과 관련시키는 단계는 상기 파일이 상기 이벤트 파티션의 부분으로서 관련되도록 상기 파일을 태그하는 단계를 포함하고;
    상기 파일을 태그한 것에 응답하여, 상기 이벤트 파티션의 부분을 지정 해제하여 상기 지정 해제된 부분이 상기 사용자 파티션의 부분이 되게 하는 단계를 더 포함하는 방법.
  22. 제13항에 있어서, 상기 데이터와 관련된 이벤트의 상기 표시를 수신하는 단계는 명령을 수신하는 단계를 포함하고;
    상기 명령 내의 LBA 범위를 분석하는 단계;
    상기 명령 내의 상기 LBA 범위가 허용가능한 범위 밖에 있는지를 결정하는 단계; 및
    상기 명령 내의 상기 LBA 범위가 허용가능한 범위 밖에 있다고 결정한 것에 응답하여, 상기 명령이 상기 이벤트의 상기 표시를 포함하는지를 결정하기 위해 상기 명령을 처리하는 단계를 더 포함하는 방법.
  23. 제13항에 있어서, 상기 메모리는 실리콘 기판 및 모놀리식 3차원 구조를 형성하는 복수의 메모리 셀을 포함하고, 상기 메모리 셀들의 적어도 하나의 부분은 상기 실리콘 기판에 대해 수직으로 배치되는 방법.
  24. 저장 디바이스로서,
    메모리; 및
    상기 메모리와 통신하는 제어기
    를 포함하고, 상기 제어기는,
    호스트 디바이스로부터 데이터를 수신하고;
    상기 메모리 내에 상기 데이터를 저장하고;
    상기 호스트 디바이스로부터, 상기 데이터에 대해 동작을 수행하라는 명령을 수신하고;
    상기 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자를 결정하고;
    상기 저장 디바이스의 적어도 일부의 나이를 표시하는 상기 나이 표시자에 기초하여, 상기 데이터에 대해 상기 동작을 수행할지를 결정하고;
    상기 동작을 수행하기로 결정한 것에 응답하여, 상기 데이터에 대해 상기 동작을 수행하고;
    상기 동작을 수행하지 않기로 결정한 것에 응답하여, 상기 데이터에 대해 상기 동작을 수행하라는 상기 명령을 거절하도록 구성되는 저장 디바이스.
  25. 제24항에 있어서, 상기 제어기는
    상기 데이터와 관련된 나이 표시자와 상기 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자 사이의 차이를 결정하고;
    상기 차이가 미리 결정된 양보다 큰지를 결정하고;
    상기 차이가 상기 미리 결정된 양보다 크다고 결정한 것에 응답하여, 상기 동작을 수행하기로 결정함으로써,
    상기 데이터에 대해 상기 동작을 수행할지를 결정하도록 구성되는 저장 디바이스.
  26. 제24항에 있어서, 상기 데이터는 파일 내에 저장되고;
    상기 명령은 상기 파일을 삭제하라는 삭제 명령을 포함하는 저장 디바이스.
  27. 제24항에 있어서, 상기 나이 표시자는 상기 저장 디바이스의 적어도 일부에 대한 프로그램/소거 카운트를 포함하는 저장 디바이스.
  28. 방법으로서, 저장 디바이스에서:
    호스트 디바이스로부터 데이터를 수신하는 단계;
    상기 저장 디바이스의 메모리 내에 상기 데이터를 저장하는 단계;
    상기 호스트 디바이스로부터, 상기 데이터에 대해 동작을 수행하라는 명령을 수신하는 단계;
    상기 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자를 결정하는 단계;
    상기 저장 디바이스의 적어도 일부의 나이를 표시하는 상기 나이 표시자에 기초하여, 상기 데이터에 대해 상기 동작을 수행할지를 결정하는 단계;
    상기 동작을 수행하기로 결정한 것에 응답하여, 상기 데이터에 대해 상기 동작을 수행하는 단계; 및
    상기 동작을 수행하지 않기로 결정한 것에 응답하여, 상기 데이터에 대해 상기 동작을 수행하라는 상기 명령을 거절하는 단계
    를 수행하는 것
    을 포함하는 방법.
  29. 제28항에 있어서, 상기 데이터에 대해 상기 동작을 수행할지를 결정하는 단계는
    상기 데이터와 관련된 나이 표시자와 상기 저장 디바이스의 적어도 일부의 나이를 표시하는 나이 표시자 사이의 차이를 결정하는 단계;
    상기 차이가 미리 결정된 양보다 큰지를 결정하는 단계; 및
    상기 차이가 상기 미리 결정된 양보다 크다고 결정한 것에 응답하여, 상기 동작을 수행하기로 결정하는 단계를 포함하는 방법.
  30. 제29항에 있어서, 상기 데이터는 파일 내에 저장되고;
    상기 명령은 상기 파일을 삭제하라는 삭제 명령을 포함하는 방법.
KR1020167033257A 2014-05-30 2015-05-07 이벤트 로크 저장 디바이스 KR101917940B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/292,047 2014-05-30
US14/292,047 US9015439B1 (en) 2014-05-30 2014-05-30 Event lock storage device
US14/292,074 2014-05-30
PCT/US2015/029660 WO2015183501A1 (en) 2014-05-30 2015-05-07 Event lock storage device

Publications (2)

Publication Number Publication Date
KR20170013252A true KR20170013252A (ko) 2017-02-06
KR101917940B1 KR101917940B1 (ko) 2018-11-12

Family

ID=52822694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033257A KR101917940B1 (ko) 2014-05-30 2015-05-07 이벤트 로크 저장 디바이스

Country Status (4)

Country Link
US (3) US9015439B1 (ko)
KR (1) KR101917940B1 (ko)
CN (1) CN106462720B (ko)
WO (1) WO2015183501A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015439B1 (en) 2014-05-30 2015-04-21 SanDisk Technologies, Inc. Event lock storage device
US20170262180A1 (en) * 2016-03-08 2017-09-14 Burlywood, LLC Integrated control of write-once data storage devices
JP6988893B2 (ja) * 2017-06-14 2022-01-05 住友電気工業株式会社 車外通信装置、通信制御方法および通信制御プログラム
US11328210B2 (en) 2017-12-29 2022-05-10 Micron Technology, Inc. Self-learning in distributed architecture for enhancing artificial neural network
US20200409573A1 (en) * 2018-03-14 2020-12-31 Namusoft Co., Ltd System for providing hybrid worm disk
US11094148B2 (en) 2018-06-18 2021-08-17 Micron Technology, Inc. Downloading system memory data in response to event detection
US10725931B2 (en) 2018-08-22 2020-07-28 Western Digital Technologies, Inc. Logical and physical address field size reduction by alignment-constrained writing technique
US11373466B2 (en) * 2019-01-31 2022-06-28 Micron Technology, Inc. Data recorders of autonomous vehicles
US11410475B2 (en) 2019-01-31 2022-08-09 Micron Technology, Inc. Autonomous vehicle data recorders
US11726679B2 (en) * 2019-11-05 2023-08-15 Western Digital Technologies, Inc. Applying endurance groups to zoned namespaces
KR20210143613A (ko) 2020-05-20 2021-11-29 삼성전자주식회사 Otp 메모리 및 이를 포함하는 스토리지 장치
ES2917252T3 (es) * 2020-06-18 2022-07-07 Paragon Software GmbH Establecimiento dinámico de una compatibilidad de sistemas de archivos en tiempo real

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497419A (en) * 1994-04-19 1996-03-05 Prima Facie, Inc. Method and apparatus for recording sensor data
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6567304B1 (en) * 2002-05-09 2003-05-20 Matrix Semiconductor, Inc Memory device and method for reliably reading multi-bit data from a write-many memory cell
US7590807B2 (en) * 2003-11-03 2009-09-15 Netapp, Inc. System and method for record retention date in a write once read many storage system
US7680864B2 (en) * 2004-03-02 2010-03-16 Intel Corporation Method and apparatus for managing access to stored objects based on retention policy
US7149119B2 (en) * 2004-09-30 2006-12-12 Matrix Semiconductor, Inc. System and method of controlling a three-dimensional memory
JP2006215954A (ja) * 2005-02-07 2006-08-17 Hitachi Ltd ストレージシステム及びストレージ装置のアーカイブ管理方法
WO2006095335A2 (en) * 2005-03-07 2006-09-14 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
US7778077B2 (en) * 2006-05-15 2010-08-17 Sandisk Corporation Non-volatile memory system with end of life calculation
US8443134B2 (en) * 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8739120B2 (en) * 2007-12-03 2014-05-27 Adobe Systems Incorporated System and method for stage rendering in a software authoring tool
US8732389B2 (en) * 2009-06-23 2014-05-20 Seagate Technology Llc Memory wear control
US8423866B2 (en) * 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8187936B2 (en) * 2010-06-30 2012-05-29 SanDisk Technologies, Inc. Ultrahigh density vertical NAND memory device and method of making thereof
CN102375958B (zh) * 2010-08-23 2015-09-16 宇瞻科技股份有限公司 限制文件存取的方法
US9639540B2 (en) 2011-02-25 2017-05-02 Hewlett Packard Enterprise Development Lp Retention management in a worm storage system
KR20120131688A (ko) 2011-05-26 2012-12-05 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그 제조 방법
US9208070B2 (en) * 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
US8862810B2 (en) * 2012-09-27 2014-10-14 Arkologic Limited Solid state device write operation management system
US9361167B2 (en) 2012-10-24 2016-06-07 SanDisk Technologies, Inc. Bit error rate estimation for wear leveling and for block selection based on data type
US9146850B2 (en) * 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9489263B2 (en) * 2014-01-09 2016-11-08 Sandisk Technologies Llc Selective ECC refresh for on die buffered non-volatile memory
US9396064B2 (en) * 2014-04-30 2016-07-19 Freescale Semiconductor, Inc. Error correction with secondary memory
US9015439B1 (en) 2014-05-30 2015-04-21 SanDisk Technologies, Inc. Event lock storage device

Also Published As

Publication number Publication date
US20150347317A1 (en) 2015-12-03
US9015439B1 (en) 2015-04-21
KR101917940B1 (ko) 2018-11-12
US20190146930A1 (en) 2019-05-16
CN106462720B (zh) 2019-06-11
CN106462720A (zh) 2017-02-22
WO2015183501A1 (en) 2015-12-03
US10210100B2 (en) 2019-02-19

Similar Documents

Publication Publication Date Title
KR101917940B1 (ko) 이벤트 로크 저장 디바이스
US10310924B2 (en) Storage device and read reclaim method thereof
US10157012B2 (en) Zero read on trimmed blocks in a non-volatile memory system
KR102445662B1 (ko) 스토리지 장치
US7509441B1 (en) Systems and methods for segmenting and protecting a storage subsystem
US20170242785A1 (en) Efficient Implementation of Optimized Host-Based Garbage Collection Strategies Using Xcopy and Arrays of Flash Devices
US20160232088A1 (en) Garbage Collection in Storage System with Distributed Processors
CN110046506B (zh) 存储设备和包括存储设备的存储系统及使用其进行操作的方法
US9959071B2 (en) Method and system for managing data in non-volatile memory
US8812775B2 (en) System and method for controlling nonvolatile memory
US20160019160A1 (en) Methods and Systems for Scalable and Distributed Address Mapping Using Non-Volatile Memory Modules
US10372382B2 (en) Methods and apparatus for read disturb detection based on logical domain
US10289340B2 (en) Coalescing metadata and data writes via write serialization with device-level address remapping
US10776268B2 (en) Priority addresses for storage cache management
US20210303185A1 (en) Dynamic Allocation Of Sub Blocks
US9916238B2 (en) Memory system and method for performing garbage collection on blocks based on their obsolescence patterns
US10108546B2 (en) Method and system for using non-volatile memory as a replacement for volatile memory
US9904477B2 (en) System and method for storing large files in a storage device
US10268400B2 (en) System and method for file detection and usage during compaction
KR20200133278A (ko) 휘발성 메모리 특징을 갖는 비휘발성 메모리 디바이스와 시스템 및 이의 동작 방법
US11592995B2 (en) Data storage device and method for preventing accidental updates and deletions using data versioning
CN111538685A (zh) 使用固件的存储器装置策略执行
US10037163B2 (en) Self-describing cluster association
US9116794B2 (en) Storage device data protection system
WO2024118256A1 (en) Data storage device and method for swap defragmentation

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant