KR20150102228A - 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법 - Google Patents

데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법 Download PDF

Info

Publication number
KR20150102228A
KR20150102228A KR1020140023839A KR20140023839A KR20150102228A KR 20150102228 A KR20150102228 A KR 20150102228A KR 1020140023839 A KR1020140023839 A KR 1020140023839A KR 20140023839 A KR20140023839 A KR 20140023839A KR 20150102228 A KR20150102228 A KR 20150102228A
Authority
KR
South Korea
Prior art keywords
storage device
data storage
initialization
command
host
Prior art date
Application number
KR1020140023839A
Other languages
English (en)
Other versions
KR102188062B1 (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 삼성전자주식회사
Priority to KR1020140023839A priority Critical patent/KR102188062B1/ko
Priority to US14/532,109 priority patent/US9933974B2/en
Publication of KR20150102228A publication Critical patent/KR20150102228A/ko
Priority to US15/943,589 priority patent/US10552084B2/en
Priority to US16/780,783 priority patent/US11216206B2/en
Application granted granted Critical
Publication of KR102188062B1 publication Critical patent/KR102188062B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

데이터 저장 장치의 동작 방법은 호스트로부터 초기화 명령을 수신하는 단계와, 상기 초기화 명령에 기초하여, 물리 영역의 어드레스들과 상기 물리 영역을 로지컬하게 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의한 하나의 매핑 테이블 전부를 한번에 초기화하는 단계를 포함한다. 실시 예에 따라, 상기 동작 방법은, 상기 매핑 테이블 전부가 초기화된 후, 상기 초기화 명령에 기초하여 상기 물리 영역에 저장된 모든 데이터를 이레이즈하는 단계를 더 포함한다.

Description

데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법{METHOD FOR OPERATING DATA STORAGE DEVICE AND METHOD FOR OPERATING SYSTEM HAVING THE DEVICE}
본 발명의 개념에 따른 실시 예는 데이터 저장 장치의 동작 방법에 관한 것으로, 특히 호스트로부터 출력된 하나의 초기화 명령에 응답하여 로지컬 파티션들에 대한 어드레스들과 물리 영역에 대한 물리적 어드레스들 사이의 매핑 정보 전부를 한번에 초기화할 수 있는 방법에 관한 것이다.
플래시-기반 저장 장치는 USB(universal serial bus) 플래시 드라이브, 디지털 카메라, 이동 전화기, 스마트폰, 태블릿(tablet) PC, 메모리 카드, 및 솔리드 스테이트 드라이브(solid state drive(SSD)) 등에서 널리 사용된다.
플래시-기반 저장 장치는 일반적으로 로지컬 파티션(logical partition)으로 구분되고, 상기 플래시-기반 저장 장치는 호스트로부터 출력된 이레이즈 명령에 기초하여 로지컬 파티션 단위로 이레이즈 동작을 수행한다.
플래시-기반 저장 장치의 물리 영역에 대응되는 로지컬 파티션들이 N(N은 자연수)개 존재할 때, N개의 로지컬 파티션들 전체에 대해 이레이즈 동작을 수행하기 위해서, 호스트는 N번의 이레이즈 명령들을 상기 플래시-기반 저장 장치로 출력해야 한다. 즉, 수백 개의 로지컬 파티션들이 존재할 때, 호스트는 수 백번의 이레이즈 명령들을 상기 플래시-기반 저장 장치로 출력해야 한다.
임베디드 멀티디이어 카드(embedded multimedia card(eMMC))의 경우, 플래시 메모리 영역은 논리적으로 복수의 로지컬 파티션들로 나누어져 있고, 상기 플래시 메모리 영역 전부를 이레이즈하기 위해서는 상기 복수의 로지컬 파티션들의 개수만큼 이레이즈 명령들이 호스트로부터 수신되어야 한다.
UFS(universal flash storage)의 경우, 플래시 메모리 영역은 로지컬 유닛들 (logical units)이라는 로지컬 파티션들로 나누어져 있고, 상기 플래시 메모리 영역 전부를 이레이즈하기 위해서 호스트는 상기 로지컬 유닛들의 개수만큼 이레이즈에 관련된 명령들을 상기 UFS로 전송해야 한다.
eMMC에서 플래시 메모리 영역에 대한 이레이즈 동작은 로지컬 파티션 단위로 수행되고, UFS에서 플래시 메모리 영역에 대한 이레이즈 동작은 로지컬 유닛 단위로 수행된다. 따라서, 로지컬 파티션들의 개수 또는 로지컬 유닛들의 개수가 증가할수록, 플래시 메모리 영역 전부에 대한 이레이즈 시간이 증가한다.
본 발명이 이루고자 하는 기술적인 과제는 플래시 메모리 영역 전부를 삭제하는 시간과 상기 삭제에 관련된 명령들의 출력 회수를 줄임으로써 상기 삭제에 관련된 성능을 향상시킬 수 있는 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법을 제공하는 것이다.
이를 위해, 로지컬 파티션들에 대한 어드레스들과 물리 영역에 대한 어드레스들 사이의 매핑 정보 전부를 호스트로부터 출력된 하나의 초기화 명령에 기초하여 한번에 초기화할 수 있는 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 호스트로부터 하나의 초기화 명령을 수신하는 단계와, 상기 하나의 초기화 명령에 기초하여, 물리 영역의 어드레스들과 상기 물리 영역을 로지컬하게 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의한 하나의 매핑 테이블 전부를 한번에 초기화하는 단계를 포함한다.
실시 예에 따라, 상기 동작 방법은, 상기 매핑 테이블 전부가 초기화된 후, 상기 하나의 초기화 명령에 기초하여 상기 물리 영역에 저장된 모든 데이터를 이레이즈하는 단계를 더 포함한다.
다른 실시 예에 따라 상기 동작 방법은, 상기 모든 데이터가 이레이즈된 후, 상기 하나의 초기화 명령에 기초하여 상기 물리 영역에 특정 데이터를 프로그램하는 단계를 더 포함한다.
또 다른 실시 예에 따라 상기 동작 방법은, 상기 초기화의 완료, 상기 이레이즈의 완료, 및 상기 프로그램의 완료 중에서 어느 하나를 지시하는 완료 응답을 상기 호스트로 전송하는 단계를 더 포함한다.
또 다른 실시 예에 따라 상기 동작 방법은, 상기 완료 응답에 기초하여 상기 매핑 테이블 전부를 초기화하는 기능을 디스에이블하는 단계를 더 포함한다.
또 다른 실시 예에 따라 상기 동작 방법은 상기 완료 응답에 기초하여 상기 호스트로부터 출력된 설정 비트를 수신하여 WOM(write once memory)에 저장하는 단계와, 상기 WOM에 저장된 상기 설정 비트에 기초하여, 상기 매핑 테이블 전부를 초기화하는 기능을 디스에이블하는 단계를 더 포함한다.
상기 하나의 초기화 명령이 FORMAT UNIT command이고 상기 데이터 저장 장치가 UFS(universal flash storage)일 때, 상기 수신하는 단계는 UFS Device well known logical unit을 이용하여 상기 FORMAT UNIT command를 수신한다.
또 다른 실시 예에 따라 상기 동작 방법은, 상기 하나의 초기화 명령에 기초하여, 상기 물리 영역에 저장된 암호화된 데이터를 복호화할 수 있는 복호화 키들 전부를 삭제하는 단계를 더 포함한다.
상기 데이터 저장 장치의 동작 방법을 수행할 수 있는 컴퓨터 프로그램은 컴퓨터로 읽을 수 있는 기록 매체에 저장된다.
본 발명의 실시 예에 따른 애플리케이션 프로세서와 데이터 저장 장치를 포함하는 시스템의 동작 방법은, 상기 데이터 저장 장치가 상기 애플리케이션 프로세서로부터 하나의 초기화 명령을 수신하는 단계와, 상기 데이터 저장 장치가, 상기 하나의 초기화 명령에 기초하여, 물리 영역의 어드레스들과 상기 물리 영역을 로지컬하게 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의한 하나의 매핑 테이블 전부를 한번에 초기화하는 초기화 동작과, 상기 물리 영역에 저장된 암호화된 데이터를 복호화할 수 있는 복호화 키들 전부를 삭제하는 삭제 동작 중에서 적어도 하나를 수행하는 단계를 포함한다.
상기 초기화 동작과 상기 삭제 동작 중에서 적어도 하나는, 상기 애플리케이션 프로세서로부터 출력된 UPIU(UFS protocol information unit)의 CDB(command descriptor block)에 포함된 하나 또는 그 이상의 지시 비트들에 기초하여 수행된다.
상기 시스템의 동작 방법은 상기 애플리케이션 프로세서와 상기 데이터 저장 장치가 인증 동작을 수행하는 단계와, 상기 인증 동작이 성공한 후, 상기 애플리케이션 프로세서가 상기 하나의 초기화 명령을 상기 데이터 저장 장치로 전송하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은, 호스트로부터 출력된 하나의 초기화 명령에 기초하여, 로지컬 파티션들에 대한 어드레스들과 물리 영역에 대한 어드레스들 사이의 매핑 정보 전부를 한번에 초기화할 수 있는 효과가 있다.
상기 데이터 저장 장치의 동작 방법은, 상기 하나의 초기화 명령에 기초하여, 상기 물리 영역 전부에 대한 이레이즈 동작을 한번에 수행할 수 있는 효과가 있다.
상기 데이터 저장 장치의 동작 방법은 상기 매핑 정보 전부를 한번에 초기화할 수 있으므로, 상기 물리 영역에 관련된 로지컬 파티션들이 하나의 매핑 테이블로 관리되고 상기 로지컬 파티션들 각각이 이레이즈되더라도 상기 매핑 테이블을 업데이트하지 않아도 되는 효과가 있다.
따라서, 상기 데이터 저장 장치의 동작 방법은 상기 매핑 테이블을 업데이트하는데 필요한 시간을 줄일 수 있는 효과가 있다.
본 발명의 실시 예에 따른 시스템의 동작 방법은 로지컬 파티션들 각각의 삭제에 관련된 명령을 데이터 저장 장치로 출력하는 횟수를 감소시킬 수 있는 효과가 있다.
본 발명의 실시 예에 따른 시스템의 동작 방법은 데이터 저장 장치의 양산 과정에서 테스트에 소요되는 시간을 줄일 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 데이터 처리 시스템의 구체적인 블록도이다.
도 3은 로지컬 파티션의 개념을 설명하기 위한 개념도이다.
도 4는 매핑 테이블을 초기화하는 과정을 설명하기 위한 개념도이다.
도 5는 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 일 실시 예를 설명하기 위한 개념도이다.
도 6은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 다른 실시 예를 설명하기 위한 개념도이다.
도 7은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 8은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 9는 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 10은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 11은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 12는 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 13은 도 1에 도시된 데이터 처리 시스템을 포함하는 전자 시스템의 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
실시 예에 따라, 본 명세서에서 설명되는 데이터 저장 장치의 양산 단계 (mass-produce state)에서 사용되는 와이프 디바이스 기능(wipe device function)은, 상기 데이터 저장 장치가 복수의 로지컬 파티션들을 관리하는 하나의 매핑 테이블을 포함할 때, 하나의 초기화 명령에 기초하여 상기 하나의 매핑 테이블 전부를 한번에 초기화하는 초기화 기능을 의미한다.
다른 실시 예에 따라, 상기 와이프 디바이스 기능은 상기 하나의 초기화 명령에 기초하여 상기 데이터 저장 장치에 포함된 메모리 장치에 저장된 모든 데이터를 이레즈하는 이레이즈 기능을 더 포함할 수 있다.
또 다른 실시 예에 따라, 상기 와이프 디바이스 기능은, 상기 모든 데이터가 이레이즈된 후, 상기 하나의 초기화 명령에 기초하여 상기 메모리 장치에 특정 데이터를 프로그램하는 프로그램 기능을 더 포함할 수 있다.
따라서, 상기 데이터 저장 장치는 상기 이레이즈 기능에 의해 상기 데이터 저장 장치에 테스트를 위해 저장된 데이터(예컨대, 테스트 데이터)에 대한 보안을 강화할 수 있을 뿐만 아니라, 상기 이레이즈 기능과 상기 프로그램 기능에 의해 상기 데이터에 대한 보안을 더욱 강화할 수 있다.
본 명세서는 JEDEC STANDARD의 Universal Flash Storage (UFS) Version 2.0, 즉 JESD220B의 내용을 레퍼런스(reference)로 포함하고, 본 명세서에서 별도로 다르게 정의되지 않는 한 본 명세서에 기재된 용어와 동일하게 JESD220B에서 정의된 용어는 서로 동일한 용어를 의미한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 호스트(200)와 데이터 저장 장치 (300)를 포함할 수 있다.
데이터 처리 시스템(100)은 PC(personal computer), 데이터 서버(data server), 네트워크-결합 스토리지(network-attached storage(NAS)), 또는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), IoT(internet of things) 장치, IoE(internet of everything) 장치, 웨어러블 컴퓨터, 또는 e-북(e-book)으로 구현될 수 있다.
호스트(200)는 데이터 저장 장치(300)의 동작을 제어할 수 있는 장치를 의미하고, 상기 장치는 집적 회로, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor), 모바일 AP, 테스트 보드(test board), 또는 테스터(tester)를 의미할 수 있다.
양산 단계에서, 호스트(200)는 하나의 초기화 명령(CMD)을 데이터 저장 장치 (300)로 전송할 수 있다. 데이터 저장 장치(300)는, 하나의 초기화 명령(CMD)에 기초하여, 메모리(335)에 저장되고 복수의 로지컬 파티션들(logical partitions)을 관리하는 하나의 매핑 테이블(337)에 저장된 매핑 정보 전부를 한번에 초기화할 수 있다. 즉, 데이터 저장 장치 (300)는 초기화 명령(CMD)에 기초하여 와이프(wipe) 디바이스 기능을 수행할 수 있다.
예컨대, 매핑 테이블(337)에 저장된 매핑 정보는, 도 3과 도 4에 도시된 바와 같이, 메모리 장치(350)의 물리 영역의 어드레스들과 상기 물리 영역을 로지컬하게(logically) 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의하는 정보일 수 있다.
실시 예에 따라, 초기화 명령(CMD)은 제조사 특유 명령(vendor specific command)일 수 있다. 예컨대, 초기화 명령(CMD)은 JESD220B의 FORMAT UNIT command Descriptor Block의 Vendor Specific에 제조사에 의해 설정된 하나 또는 그 이상의 비트들을 포함할 수 있다.
예컨대, 초기화 명령(CMD)은 JESD220B에서 정의된 UFS Device well known logical unit에서 처리될 수 있다.
따라서, 양산 단계에서 사용되는 초기화 명령(CMD)은 해당 로지컬 파티션에 대한 언맵 명령(unmap command), 해당 로지컬 파티션에 대한 이레이즈(erase) 명령, 및 해당 로지컬 파티션에 대한 포맷 유닛 명령(format unit command)과는 구별된다.
상기 언맵 명령은 매핑 테이블(337)에 저장된 매핑 정보 중에서 일부의 정보만을 초기화하는 명령으로, 데이터 저장 장치(300)는 상기 언맵 명령에 기초하여 메모리 장치(350)의 물리 영역에 저장된 데이터를 실제로 이레이즈하지 않는다.
상기 이레이즈 명령은 해당 로지컬 파티션 단위로 이레이즈를 위한 명령이고 포맷 유닛 명령도 해당 로지컬 파티션 단위로 포맷을 수행하기 위한 명령이다. 따라서, 데이터 저장 장치(300)의 메모리 장치(350)의 물리 영역이 N개의 로지컬 파티션들로 분할된 경우, 상기 물리 영역 전부를 이레이즈하거나 포맷하기 위해서 호스트(200)는 N번의 이레이즈 명령 또는 N번의 포멧 유닛 명령을 데이터 저장 장치 (300)로 출력해야 한다.
호스트(200)와 데이터 저장 장치(300)는 인터페이스들(210과 310)을 통해 접속되고 명령 또는 데이터를 주거나 받을 수 있다.
예컨대, 각 인터페이스(210과 310)는 UHI(UHS-I 또는 UHS-Ⅱ), PCI-E (peripheral component interconnect-express), ATA(Advanced attached SCSI), SATA(serial advanced technology attachment), SAS(Serial Attached SCSI), 또는 DDRx(Double Data Rate x) 등과 같은 인터페이스를 의미할 수 있다.
데이터 저장 장치(300)는 플래시-기반 데이터 저장 장치로 구현될 수 있다. 예컨대, 상기 플래시-기반 데이터 저장 장치는 솔리드 스테이트 드라이브(solid state drive(SSD)), USB 플래시 드라이브(universal serial bus flash drive), UFS (universal flash storage), MMC(multi-media card), 또는 eMMC(embedded MMC)로 구현될 수 있다.
데이터 저장 장치(300)는 스토리지 사이드 인터페이스(310), 컨트롤러(330), 및 메모리 장치(350)를 포함할 수 있다.
컨트롤러(330)는 메모리 장치(350)에 대한 리드 동작 또는 라이트 동작을 제어할 수 있다. 컨트롤러(330)는 집적 회로 또는 SoC로 구현될 수 있고, 스토리지 컨트롤러(331)와 메모리(335)를 포함할 수 있다.
스토리지 컨트롤러(331)는 메모리 장치(350)의 물리 영역(간단히, '물리 영역'이라 한다)의 어드레스들과 물리 영역(350)을 로지컬하게 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의하는 매핑 정보를 생성할 수 있다.
상기 매핑 정보는 매핑 테이블(337)의 형태로 메모리(335)에 저장될 수 있다. 메모리(335)는 DRAM(dynamic random access memory) 또는 SRAM(static random access memory)으로 구현될 수 있다. 또 1에서는 설명의 편의를 위해, 메모리(335)가 컨트롤러(330)의 내부에 구현된 실시 예가 도시되어 있으나, 다른 실시 예에 따라 메모리(335)는 컨트롤러(330)의 외부에 구현될 수 있다.
스토리지 컨트롤러(331)에 의해 생성된 매핑 정보는 메모리 장치(350)에 저장될 수 있다. 예컨대, 데이터 처리 시스템(100)이 부팅될 때, 메모리 장치(350)에 저장된 매핑 정보는, 스토리지 컨트롤러(331)의 제어에 따라, 메모리 장치(350)로부터 메모리(335)로 로드될 수 있다.
스토리지 컨트롤러(331)는 소프트웨어(예컨대, FTL(flash translation layer))를 동작하는 CPU(미도시)를 포함할 수 있다.
데이터 저장 장치(300)는, 호스트(200)로부터 출력된 하나의 초기화 명령 (CMD)에 응답하여, 매핑 테이블(337) 전부 또는 매핑 테이블(337)에 저장된 매핑 정보 전부를 한번에 초기화할 수 있다.
도 2는 도 1에 도시된 데이터 처리 시스템의 구체적인 블록도이다.
도 1과 도 2를 참조하면, 호스트(200)는 호스트 사이드 인터페이스(210), CPU(central processing unit; 220), 및 메모리(230)를 포함할 수 있다.
CPU(220)는 초기화 명령(CMD)을 생성하고, 생성된 초기화 명령(CMD)을 버스 (201)와 호스트 사이드 인터페이스(210)를 통해 스토리지 사이드 인터페이스(310)로 전송할 수 있다. CPU(220)는 버스(201)를 통해 각 구성 요소(210과 230)의 동작을 제어할 수 있다.
메모리(230)는 호스트(200)의 동작에 필요한 프로그램(들) 및/또는 데이터를 저장할 수 있다. 도 2에서는 설명의 편의를 위해, 하나의 메모리(230)가 도시되어 있으나, 메모리(230)는 휘발성 메모리와 불휘발성 메모리의 집합을 의미할 수 있다. 예컨대, 상기 휘발성 메모리는 DRAM 또는 SRMA으로 구현될 수 있고, 상기 불휘발성 메모리는 ROM(read only memory) 또는 플래시 메모리로 구현될 수 있다.
데이터 저장 장치(300)는 스토리지 사이드 인터페이스(310), 컨트롤러(330),및 메모리 장치(350)를 포함할 수 있다.
호스트(200)와 컨트롤러(330)는 인터페이스들(210과 310)을 통해 데이터 및/또는 명령을 주거나 받을 수 있다.
메모리 장치(350)는 플래시-기반 메모리, 예컨대 플래시 메모리로 구현될 수 있다. 상기 플래시 메모리는 NAND-타입 플래시 메모리 또는 NOR-타입 플래시 메모리로 구현될 수 있다.
스토리지 컨트롤러(331)는 CPU(331-1)와 플래시 컨트롤러(331-2)를 포함할 수 있다.
도 2에서는 설명의 편의를 위해, 하나의 CPU(331-1)가 도시되어 있으나, 실시 예에 따라 CPU(331-1)는 호스트(200)와 데이터를 주거나 받는 제1CPU와 플래시 컨트롤러(331-2)와 데이터를 주거나 받는 제2CPU의 집합을 의미할 수 있다.
CPU(331-1)의 제어에 따라 도 3부터 도 12에 도시된 방법들이 수행될 수 있다.
CPU(331-1)는 물리 영역(350)의 어드레스들과 물리 영역(350)을 로지컬하게 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의하는 매핑 정보를 생성하고, 생성된 매핑 정보를 매핑 테이블(337)의 형태로 메모리(335)에 저장할 수 있다.
실시 예들에 따라, 메모리(335)는 컨트롤러(330)의 내부 또는 외부에 구현될 수 있다. 다른 실시 예들에 따라, 메모리(335)에 저장된 매핑 테이블(337)은 플래시 컨트롤러(331-2)의 제어에 따라 플래시 메모리(350)에 저장될 수 있다.
또 다른 실시 예에 따라, 메모리(335)는 CPU(331-1)의 L1 데이터 캐시를 의미할 수도 있다.
도 3은 로지컬 파티션의 개념을 설명하기 위한 개념도이다.
도 3을 참조하면, 메모리 장치(350), 예컨대 플래시 메모리(350)의 물리 영역(예컨대, 플래시 메모리 셀 어레이)이 4개의 블록들(Block0~Block3)을 포함하고, 각 블록(Block0~Block3)이 4개의 페이지들(Page0~Page3)을 포함한다고 가정할 때, 플래시 메모리(350)의 물리 영역은 로지컬하게 4개의 로지컬 파티션들(LP0~LP3)로 분할될 수 있다.
즉, 해당 로지컬 파티션(LP0, LP1, LP2, 또는 LP3)은 해당 물리 영역의 블록 (Block0, Block1, Block2, 또는 Block3)에 로지컬하게 대응될 수 있다.
예컨대, 데이터 저장 장치(300)가 UFS로 구현될 때, JEDEC STANDARD의 Universal Flash Storage (UFS) Version 2.0, 즉 JESD220B에서 정의한 바와 같이 로지컬 파티션은 로지컬 유닛(logical unit)을 의미할 수 있다. JESD220B에서 정의한 바와 같이, 상기 UFS는 하나 또는 그 이상의 로지컬 유닛들을 포함할 수 있고, 상기 UFS는 최대 8개의 로지컬 유닛들을 지원할 수 있다.
플래시 메모리(350)의 물리 영역은 최대 8개의 로지컬 유닛들로 로지컬하게 분할될 수 있다.
도 3에서는 설명의 편의를 위해, 플래시 메모리(350)의 물리 영역이 로지컬하게 4개의 로직컬 파티션들로 분할된 실시 예에 도시되어 있으나, 설계 사양에 따라 로지컬 파티션들의 개수는 다양하게 변경될 수 있다.
eMMC 또는 UFS는 로지컬 파티션 단위 또는 로지컬 유닛 단위로 플래시 메모리(350)의 물리 영역을 분할한다. 따라서, 상기 eMMC 또는 상기 UFS는 로지컬 파티션 단위 또는 로지컬 유닛 단위로 이레이즈 동작을 수행할 수 있다. 이때, 이레이즈 동작의 대상이 된 로지컬 파티션에 대응되는 물리 영역의 블록에 저장된 데이터가 물리적으로 이레이즈된다.
예컨대, 모든 로지컬 파티션들 또는 모든 로지컬 유닛들이 하나의 매핑 테이블로 관리될 때, 해당 로지컬 파티션 또는 해당 로지컬 유닛에 대한 이레이즈 동작이 수행될 때마다 상기 매핑 테이블은 업데이트되어야 하므로 데이터 저장 장치의 성능이 저하될 수 있다.
도 4는 매핑 테이블을 초기화하는 과정을 설명하기 위한 개념도이다.
도 3과 4에 도시된 바와 같이, 하나의 매핑 테이블(337)에 의해 모든 로지컬 파티션들이 관리되더라도, 데이터 저장 장치(300)는 하나의 초기화 명령(CMD)에 따라 매핑 테이블(337) 전부를 한번에 초기화할 수 있다.
따라서, 종래의 데이터 저장 장치와 달리 데이터 저장 장치(300)는 매핑 테이블(337)을 업데이트하지 않고도 이레이즈 동작을 수행할 수 있는 효과가 있다.
예컨대, 종래에는 제1로지컬 파티션(LP0)에 대한 이레이즈 동작이 수행될 때, 종래의 데이터 저장 장치는 제1블록(Block0)의 제2페이지(Page1)부터 제4페이지(Page3) 각각에 저장된 데이터를 하나 또는 그 이상의 다른 블록의 프리(free) 페이지들 각각으로 복사(copy)한 후 제1블록(Block0)의 제1페이지(Page0)부터 제4페이지(Page3)에 대한 이레이즈 동작을 수행했다.
이때, 상기 종래의 데이터 저장 장치는 제1로지컬 파티션(LP0)의 매핑 정보를 업데이트해야 한다. 즉, 업데이트된 매핑 정보는 제2페이지(Page1)부터 제4페이지(Page3) 각각에 저장된 데이터가 어떤 블록의 어떤 페이지로 복사되었는지를 나타낸다.
그러나, 본 발명의 실시 예에 따른 데이터 저장 장치(300)는 초기화 명령 (CMD)에 따라 매핑 테이블(337) 전부를 한번에 초기화하므로, 데이터 저장 장치 (300)는 매핑 테이블(337)을 업데이트하지 않는다.
도 4의 (a)에서 LA는 로지컬 어드레스를 나타내고, 매핑 테이블(337)의 k (m,n)에서 k는 LA를 나타내고, (m,n)에서 m은 해당 블록의 어드레스를 나타내고, n은 해당 페이지의 어드레스를 나타낸다. 이때, k는 0부터 15이고, m은 0부터 3이고, n은 0부터 3이다.
10(2,1)에서 10은 LA를 나타내고, (2,1)은 블록(Block2)의 페이지(Page1)를 나타내다.
도 4의 (a)는 매핑 테이블(337) 전부 또는 매핑 테이블(337)에 저장된 매핑 정보 전부가 한번에 초기화되기 이전의 매핑 테이블(337)을 나타내고, 도 4의 (b)는 매핑 테이블(337) 전부 또는 매핑 테이블(337)에 저장된 매핑 정보 전부가 한번에 초기화된 후의 매핑 테이블(337)을 나타낸다.
도 5는 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 일 실시 예를 설명하기 위한 개념도이다.
설명의 편의를 위해, 데이터 저장 장치(300)의 메모리 장치(350)의 물리 영역이 로지컬하게 4개의 로지컬 파티션들(LP0~LP3)로 분할(divide)되고, 하나의 매핑 테이블(337)을 이용하여 4개의 로지컬 파티션들(LP0~LP3)에 대한 매핑이 관리되고 있다고 가정한다. 또한, 초기화 명령(CMD)은 데이터 저장 장치(300)에 대한 양산 과정에서 사용된다고 가정한다.
도 1부터 도 5를 참조하면, 호스트(200)는 데이터 저장 장치(300)로 초기화 명령(CMD)을 전송한다(S110). 데이터 저장 장치(300)의 컨트롤러(330)는, 초기화 명령(CMD)에 기초하여, 매핑 테이블(337)을 초기화한다(S120). 초기화는 디-얼로케이션(de-allocation)이라고도 불릴 수 있다.
매핑 테이블(337)의 초기화 과정은 도 4의 (a)와 도 4의 (b)에 예시적으로 도시된 바와 같다.
초기화 명령(CMD)을 사용할 수 없는 종래의 데이터 처리 시스템이 4개의 로지컬 파티션들(LP0~LP3)에 대한 초기화 동작을 수행하기 위해서, 상기 데이터 처리 시스템에 포함된 호스트는 상기 데이터 처리 시스템에 포함된 데이터 저장 장치로 4번의 언맵 명령들을 출력해야 한다.
그러나, 호스트(200)는 하나의 초기화 명령(CMD)만을 데이터 저장 장치(300)로 출력하고, 데이터 저장 장치(300)는 초기화 명령(CMD)에 응답하여 4개의 로지컬 파티션들(LP0~LP3)에 대한 초기화를 동시에 수행할 수 있다.
초기화가 성공적으로 완료되면, 데이터 저장 장치(300)의 컨트롤러(330)는 초기화의 완료를 지시하는 완료 응답(RES)을 생성하고, 완료 응답(RES)을 호스트 (200)로 전송한다(S130).
호스트(200) 이외의 최종 사용자(end user)가 초기화를 남용하거나 또는 해커(hacker)에 의해 초기화가 수행되는 것을 방지하지 위해, 완료 응답(RES)이 호스트(200)로 전송된 후, 컨트롤러(330)는 초기화 기능(즉, 와이프 디바이스 기능)을 디스에이블시킬 수 있다(S140).
다른 실시 예에 따라, 초기화 기능의 디스에이블 타이밍은 완료 응답(RES)의 생성에 기초하여 결정될 수 있다.
초기화 기능은 데이터 저장 장치(300)에 대한 양산 과정에서 사용되므로, 데이터 저장 장치(300)가 출하된 후에는 상기 초기화 기능을 사용하지 못하도록, 완료 응답(RES)이 생성된 후에 또는 완료 응답(RES)이 호스트(200)로 전송된 후에, 컨트롤러(330)는 초기화 명령(CMD)의 동작 코드(operation code)를 무효 코드 (invalid code)로 등록하거나 초기화 기능을 지원하는 필드(field)를 보류 (reserved)로 등록할 수 있다.
상술한 바와 같이, 컨트롤러(330)의 펌웨어에 따라 초기화 기능(예컨대, 와이프 디바이스 기능)은 한 번만 수행될 수 있다.
도 6은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 다른 실시 예를 설명하기 위한 개념도이다.
도 5와 도 6을 참조하면, 완료 응답(RES)이 호스트(200)로 전송된 후(S130), 호스트(200)는 완료 응답(RES)에 기초하여 설정 비트(SB)를 데이터 저장 장치(300)로 전송한다(S133).
컨트롤러(330)의 제어에 따라 설정 비트(SB)는 WOM(write once memory)에 저장된다(S210). 여기서, 상기 WOM는 한번 저장된 데이터를 변경(modify)하거나 삭제할 수 없는 데이터 저장 장치를 의미한다.
상기 WOM은 레지스터로 구현될 수 있고, 메모리(335)에 포함될 수 있다.
컨트롤러(330)는 WOM에 저장된 설정 비트(SB)에 기초하여 매핑 테이블(337) 전부를 한번에 초기화하는 초기화 기능을 디스에이블시킬 수 있다(S220). 이 경우, 최종 사용자(end user) 또는 해커(hacker)는 초기화 기능을 사용할 수 없다.
도 7은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 5와 도 7을 참조하면, 매핑 테이블(337)에 대한 초기화가 성공적으로 종료된 후(S120), 컨트롤러(330)는 초기화 명령(CMD)에 기초하여 메모리 장치(350)의 물리 영역 전부에 대한 이레이즈 동작을 수행한다(S121). 따라서, 메모리 장치 (350)에 저장된 모든 데이터는 초기화 명령(CMD)에 기초하여 이레이즈된다.
메모리 장치(350)에 저장된 모든 데이터가 이레이즈됨에 따라, 양산 과정에서 메모리 장치(350)에 저장된 모든 데이터 중에서 적어도 일부가 외부로 유출되는 것이 방지되는 효과가 있다.
이레이즈 동작이 성공적으로 완료되면, 컨트롤러(330)는 이레이즈 동작의 완료를 지시하는 완료 응답(RES)을 생성하고, 완료 응답(RES)을 호스트(200)로 전송한다(S130).
컨트롤러(330)는, 완료 응답(RES)이 호스트(200)로 전송된 후, 초기화 기능(즉, 와이프 디바이스 기능)을 디스에이블시킬 수 있다(S140). 다른 실시 예에 따라, 컨트롤러(330)는, 완료 응답(RES)의 생성에 기초하여, 초기화 기능을 디스에이블시킬 수 있다(S140).
도 8은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 5, 도 7, 및 도 8을 참조하면, 완료 응답(RES)이 호스트(200)로 전송된 후(S130), 호스트(200)는 완료 응답(RES)에 기초하여 설정 비트(SB)를 데이터 저장 장치(300)로 전송한다(S133).
컨트롤러(330)의 제어에 따라 설정 비트(SB)는 WOM(write once memory)에 저장된다(S310). 컨트롤러(330)는 WOM에 저장된 설정 비트(SB)에 기초하여 매핑 테이블(337) 전부를 한번에 초기화하는 초기화 기능을 디스에이블시킬 수 있다(S320). 이경우, 최종 사용자(end user) 또는 해커(hacker)는 초기화 기능을 사용할 수 없다.
도 9는 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 5, 도 7, 및 도 9를 참조하면, 메모리 장치(350)의 물리 영역 전부에 대한 이레이즈 동작이 성공적으로 수행되면(S121), 컨트롤러(330)는 초기화 명령 (CMD)에 기초하여 메모리 장치(350)의 물리 영역에 특정 데이터를 프로그램한다 (S123). 상기 특정 데이터는 특정 패턴을 갖는 데이터, 예컨대 올 제로(all-zero) 데이터일 수 있다.
메모리 장치(350)의 물리 영역에 저장된 모든 데이터가 이레이즈된 후에 상기 물리 영역에 특정 데이터가 프로그램됨에 따라, 양산 과정에서 메모리 장치 (350)의 물리 영역에 저장된 모든 데이터 중에서 적어도 일부가 외부로 유출되는 것이 한층 더 방지되는 효과가 있다.
프로그램 동작이 성공적으로 완료되면, 컨트롤러(330)는 프로그램 동작의 완료를 지시하는 완료 응답(RES)을 생성하고, 완료 응답(RES)을 호스트(200)로 전송한다(S130).
컨트롤러(330)는, 완료 응답(RES)이 호스트(200)로 전송된 후, 초기화 기능(즉, 와이프 디바이스 기능)을 디스에이블시킬 수 있다(S140). 다른 실시 예에 따라, 컨트롤러(330)는, 완료 응답(RES)의 생성에 기초하여, 초기화 기능을 디스에이블시킬 수 있다(S140).
도 10은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 6, 도 9, 및 도 10을 참조하면, 프로그램 동작에 대한 완료 응답(RES)이 호스트(200)로 전송된 후(S130), 호스트(200)는 완료 응답(RES)에 기초하여 설정 비트(SB)를 데이터 저장 장치(300)로 전송한다(S133).
컨트롤러(330)의 제어에 따라 설정 비트(SB)는 WOM에 저장된다(S410). 컨트롤러(330)는 WOM에 저장된 설정 비트(SB)에 기초하여 매핑 테이블(337) 전부를 한번에 초기화하는 초기화 기능을 디스에이블시킬 수 있다(S420). 따라서, 최종 사용자(end user) 또는 해커(hacker)는 초기화 기능을 사용할 수 없다.
도 11은 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 5부터 도 11을 참조하면, 호스트(200)는 데이터 저장 장치(300)로 제2인증키(AKEY1)를 생성하기 위한 정보(예컨대, 패스워드(PW))를 전송할 수 있다 (S510). 컨트롤러(330)의 제어에 따라 암호화 엔진(미도시)은 상기 정보(예컨대, 패스워드(PW))를 이용하여 제2인증키(AKEY1)를 생성할 수 있다(S515). 예컨대, 상기 암호화 엔진은 암호화 알고리즘을 이용하여 상기 정보(예컨대, 패스워드(PW))로부터 제2인증키(AKEY1)를 생성할 수 있다(S515). 여기서, 상기 암호화 엔진은 암호화와 복호화를 수행할 수 있는 하드웨어 컴포넌트 또는 소프트웨어 컴포넌트를 의미할 수 있다.
예컨대, 상기 암호화 알고리즘은 DES(Data Encryption Standard), AES (Advanced Encryption Standard), 또는 다양한 암호화 알고리즘을 포함할 수 있다. 또한, 상기 암호화 엔진은 해시 함수(hash function)를 이용하여 상기 정보로부터 제2인증키(AKEY1)를 생성할 수 있다(S515).
컨트롤러(330)는 메모리(335)에 저장된 제1인증키(AKEY0)와 상기 암호화 엔진에 의해 생성된 제2인증키(AKEY2)를 서로 비교한다(S520).
제1인증키(AKEY0)와 제2인증키(AKEY2)가 서로 일치할 때, 컨트롤러(330)는 인증 성공을 지시하는 지시 신호(ACK)를 호스트(200)로 전송한다.
호스트(200)는 지시 신호(ACK)에 기초하여 하나의 초기화 명령(CMD)을 데이터 저장 장치(300)로 전송할 수 있다(S540). 컨트롤러(330)는 하나의 초기화 신호 (CMD)에 기초하여 매핑 테이블(337)의 초기화 동작 및/또는 암복호화 키들 (encryption/decryption keys) 전부를 삭제하는 삭제 동작을 수행할 수 있다(S120-1).
상기 암복호화 키들 각각은 메모리 장치(350)에 저장될 데이터를 암호화하기 위해 사용되는 암호화 키들과 메모리 장치(350)에 저장된 암호화된 데이터를 복호화할 수 있는 복호화 키들을 포함한다.
예컨대, 초기화 명령(CMD)이 UFS의 UPIU(UFS protocol information unit)의 CDB(command descriptor block)을 포함하고, 상기 CDB에 적어도 하나의 지시 비트가 포함될 때, 컨트롤러(330)는 상기 적어도 하나의 지시 비트에 기초하여 매핑 테이블(337)의 초기화 동작과 암복호화 키들 전부를 삭제하는 삭제 동작 중에서 적어도 하나를 수행할 수 있다(S120-1).
모든 암복호화 키들이 삭제되면, 메모리 장치(350)에 저장된 암호화된 데이터는 복호화될 수 없으므로, 호스트(200)가 상기 암호화된 데이터를 수신하더라도 상기 암호화된 데이터를 복호화할 수 없다.
실시 예들에 따라, 컨트롤러(330)는 도 5부터 도 10을 참조하여 설명한 바와 같이 이레이즈 동작(S121) 및/또는 프로그램 동작(S123)을 추가적으로 수행할 수 있다.
또한, 컨트롤러(330)는 완료 응답(RES)을 호스트(200)로 전송하는 단계(130)를 더 수행할 수 있고, 와이프 디바이스 기능을 디스에이블시키는 단계(S140, S220, S320, 또는 S420)를 더 수행할 수 있다.
도 12는 도 1 또는 도 2에 도시된 데이터 저장 장치에 수행되는 동작의 또 다른 실시 예를 설명하기 위한 개념도이다.
도 12를 참조하면, 호스트(220)는 명령(CMD_1)을 데이터 저장 장치(300)로 전송한다(S610). 컨트롤러(330)는 수신된 명령(CMD_1)을 해석하고(S620), 수신된 명령(CMD_1)이 초기화 명령(CMD)일 때 컨트롤러(330)는 와이프 디바이스 기능을 수행할 수 있다(S630).
그러나, 와이프 디바이스 기능이 디스에이블된 후, 수신된 명령(CMD_1)이 초기화 명령(CMD)일 때 컨트롤러(330)는 초기화 명령(CMD)을 수행할 수 없다. 이때, 컨트롤러(330)는 초기화 명령(CMD)을 무시하거나 초기화 명령(CMD)의 수행을 거부할 수 있다.
또한, 수신된 명령(CMD_1)이 해당 로지컬 파티션에 대한 언맵 명령일 때, 컨트롤러(330)는 상기 언맵 명령에 따라 상기 해당 로지컬 파티션에 대해 언맵 동작을 수행할 수 있다.
상기 언맵 동작은, 매핑 테이블(337) 전부를 한번에 초기화하는 동작이 아니라, 매핑 테이블(337)에서 해당 로지컬 파티션에 대응되는 매핑 정보만을 초기화하거나 삭제하는 동작을 의미한다. 이때, 상기 해당 로지컬 파티션에 대응되는 메모리 장치(350)의 물리 영역의 블록에 대한 이레이즈 동작은 수행되지 않는다.
또한, 수신된 명령(CMD_1)이 해당 로지컬 파티션에 대한 이레이즈 명령일 때, 컨트롤러(330)는 상기 이레이즈 명령에 따라 상기 로지컬 파티션에 대해 이레이즈 동작을 수행할 수 있다.
상기 이레이즈 동작은, 매핑 테이블(337) 전부를 한번에 초기화한 후 메모리 장치(350)의 물리 영역 전부를 한번에 이레이즈하는 동작이 아니라, 매핑 테이블 (337)에서 해당 로지컬 파티션에 대응되는 매핑 정보만을 삭제한 후 상기 해당 로지컬 파티션에 대응되는 메모리 장치(350)의 물리 영역의 블록에 대한 이레이즈 동작을 수행하는 것을 의미한다.
상술한 바와 같이, 와이프 디바이스(wipe device) 기능은 데이터 저장 장치 (300)의 양산 과정에서 수행되는 기능을 의미하므로, 실시 예들에 따라 최종 사용자가 상기 와이프 디바이스 기능에 관련된 초기화 명령(CMD)을 사용할 수 없도록 구현될 수도 있다.
그러나, 로지컬 파티션 단위로 수행되는 언맵 명령과 이레이즈 명령은 데이터 저장 장치(300)가 출하된 후에도 최종 사용자는 호스트(200)를 이용하여 사용할 수 있다.
도 13은 도 1에 도시된 데이터 처리 시스템을 포함하는 전자 시스템의 블록도이다. 도 13을 참조하면, 전자 시스템(400)은 도 1을 참조하여 설명된 휴대용 전자 장치로 구현될 수 있다. 예컨대, 전자 시스템(400)은 MIPI 표준에 적합한 휴대용 전자 장치로 구현될 수 있다.
전자 시스템(400)은 도 1의 호스트(200)의 기능을 수행하는 애플리케이션 프로세서(application processor(AP); 200A), 데이터 저장 장치(300A), 디스플레이 시리얼 인터페이스(display serial interface(DIS); 410), 디스플레이(420), 카메라 시리얼 인터페이스(camera serial interface(CIS); 430), 및 카메라(440)를 포함할 수 있다. 예컨대, 데이터 저장 장치(300A)는 UFS로 구현될 수 있다.
AP(200A)는 UFS(300A)로 초기화 명령(CMD)을 전송할 수 있다. 이때 UFS (300A)는 도 5부터 도 12를 참조하여 설명한 바와 같이 매핑 테이블(337) 전부를 초기화하는 동작 및/또는 암복호화 키들 전부를 삭제하는 동작을 수행할 수 있다. 즉, UFS(300A)는 다양한 실시 예들에 따른 와이프 디바이스 기능을 수행할 수 있다.
AP(200A)는 DSI(410)를 통해 디스플레이 데이터를 디스플레이(420)로 전송할 수 있다. 카메라(440)는 CSI(430)를 통해 이미지 데이터를 AP(200A)로 전송할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 데이터 처리 시스템
200: 호스트
200A; 애플리케이션 프로세서
210: 호스트 사이드 인터페이스
300: 데이터 저장 장치
310: 스토리지 사이드 인터페이스
330: 컨트롤러
331: 스토리지 컨트롤러
335: 메모리
337: 매핑 테이블
350: 메모리 장치 또는 플래시 메모리

Claims (10)

  1. 호스트로부터 하나의 초기화 명령을 수신하는 단계; 및
    상기 하나의 초기화 명령에 기초하여, 물리 영역의 어드레스들과 상기 물리 영역을 로지컬하게 분할한 로지컬 파티션들(logical partitions)에 대한 어드레스들 사이의 관계를 정의한 하나의 매핑 테이블 전부를 한번에 초기화하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 매핑 테이블 전부가 초기화된 후, 상기 하나의 초기화 명령에 기초하여 상기 물리 영역에 저장된 모든 데이터를 이레이즈하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 모든 데이터가 이레이즈된 후, 상기 하나의 초기화 명령에 기초하여 상기 물리 영역에 특정 데이터를 프로그램하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  4. 제1항에 있어서,
    상기 초기화의 완료를 지시하는 완료 응답을 상기 호스트로 전송하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  5. 제4항에 있어서,
    상기 완료 응답에 기초하여 상기 매핑 테이블 전부를 초기화하는 기능을 디스에이블하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  6. 제4항에 있어서,
    상기 완료 응답에 기초하여 상기 호스트로부터 출력된 설정 비트를 수신하여 WOM(write once memory)에 저장하는 단계; 및
    상기 WOM에 저장된 상기 설정 비트에 기초하여, 상기 매핑 테이블 전부를 초기화하는 기능을 디스에이블하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  7. 제1항에 있어서,
    상기 하나의 초기화 명령이 FORMAT UNIT command이고 상기 데이터 저장 장치가 UFS(universal flash storage)일 때,
    상기 수신하는 단계는 UFS Device well known logical unit을 이용하여 상기 FORMAT UNIT command를 수신하는 데이터 저장 장치의 동작 방법.
  8. 제1항에 있어서,
    상기 하나의 초기화 명령에 기초하여, 상기 물리 영역에 저장된 암호화된 데이터를 복호화할 수 있는 복호화 키들 전부를 삭제하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  9. 애플리케이션 프로세서와 데이터 저장 장치를 포함하는 시스템의 동작 방법에 있어서,
    상기 데이터 저장 장치가 상기 애플리케이션 프로세서로부터 하나의 초기화 명령을 수신하는 단계; 및
    상기 데이터 저장 장치가, 상기 하나의 초기화 명령에 기초하여, 물리 영역의 어드레스들과 상기 물리 영역을 로지컬하게 분할한 로지컬 파티션들에 대한 어드레스들 사이의 관계를 정의한 하나의 매핑 테이블 전부를 한번에 초기화하는 초기화 동작과, 상기 물리 영역에 저장된 암호화된 데이터를 복호화할 수 있는 복호화 키들 전부를 삭제하는 삭제 동작 중에서 적어도 하나를 수행하는 단계를 포함하는 시스템의 동작 방법.
  10. 제9항에 있어서,
    상기 초기화 동작과 상기 삭제 동작 중에서 적어도 하나는, 상기 애플리케이션 프로세서로부터 출력된 UPIU(UFS protocol information unit)의 CDB(command descriptor block)에 포함된 하나 또는 그 이상의 지시 비트들에 기초하여 수행되는 시스템의 동작 방법.
KR1020140023839A 2014-02-28 2014-02-28 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법 KR102188062B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140023839A KR102188062B1 (ko) 2014-02-28 2014-02-28 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US14/532,109 US9933974B2 (en) 2014-02-28 2014-11-04 Method of operating data storage device
US15/943,589 US10552084B2 (en) 2014-02-28 2018-04-02 Method of operating data storage device
US16/780,783 US11216206B2 (en) 2014-02-28 2020-02-03 Method of operating data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140023839A KR102188062B1 (ko) 2014-02-28 2014-02-28 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20150102228A true KR20150102228A (ko) 2015-09-07
KR102188062B1 KR102188062B1 (ko) 2020-12-07

Family

ID=54006787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140023839A KR102188062B1 (ko) 2014-02-28 2014-02-28 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법

Country Status (2)

Country Link
US (3) US9933974B2 (ko)
KR (1) KR102188062B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102482116B1 (ko) * 2021-11-08 2022-12-29 삼성전자주식회사 연산 스토리지 장치의 메모리 할당 및 보호 방법 및 이를 수행하는 연산 스토리지 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150112075A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9762548B2 (en) * 2015-03-13 2017-09-12 Western Digital Technologies, Inc. Controlling encrypted data stored on a remote storage device
JP6453457B2 (ja) * 2015-06-04 2019-01-16 株式会社日立製作所 ストレージ装置
US9898229B1 (en) * 2016-07-29 2018-02-20 Sandisk Technologies Llc Systems and methods of memory reads
US10979223B2 (en) * 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
KR20180094386A (ko) 2017-02-15 2018-08-23 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR20200069889A (ko) * 2018-12-07 2020-06-17 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US11157624B2 (en) * 2019-08-14 2021-10-26 Silicon Motion, Inc. Scheme of using electronic device to activate mass production software tool to initialize memory device including flash memory controller and flash memory
US11127467B1 (en) * 2020-06-19 2021-09-21 Western Digital Technologies, Inc. Hybrid erase mode for high data retention in memory device
CN112395463B (zh) * 2020-11-16 2024-02-23 深信服科技股份有限公司 数据的存储方法、装置、设备以及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030225962A1 (en) * 2002-05-31 2003-12-04 Hitachi, Ltd. Memory card and memory card system
US20040098416A1 (en) * 2000-08-14 2004-05-20 Moore Christopher S. Method for deleting stored digital data from write-once memory device
US20130036257A1 (en) * 2011-08-01 2013-02-07 Takaya Suda Memory system which can avoid unavailability due to operation error by user
WO2014006274A1 (en) * 2012-07-05 2014-01-09 Blancco Oy Ltd An apparatus, a system, a method and a computer program for erasing data stored on a storage device

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385074B1 (en) * 1998-11-16 2002-05-07 Matrix Semiconductor, Inc. Integrated circuit structure including three-dimensional memory array
JP2002170389A (ja) 2000-06-30 2002-06-14 Toshiba Corp 不揮発性半導体記憶装置とその動作方法
JP2003151285A (ja) 2001-11-08 2003-05-23 Fujitsu Ltd 半導体メモリ
US6778443B2 (en) 2001-12-25 2004-08-17 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device having memory blocks pre-programmed before erased
JP2005092678A (ja) 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd 半導体メモリカード及び不揮発性メモリのデータ消去処理方法
JP2005135544A (ja) 2003-10-31 2005-05-26 Matsushita Electric Ind Co Ltd 半導体記録媒体及び半導体記録媒体のデータ消去方法
KR100571915B1 (ko) 2003-12-01 2006-04-17 삼성전자주식회사 갱신할 데이터에 따라 전체 지우기와 부분 지우기를선택하여 프로그램을 갱신하는 방법 및 그 장치
US7640389B2 (en) 2006-02-28 2009-12-29 Freescale Semiconductor, Inc. Non-volatile memory having a multiple block erase mode and method therefor
KR20080038936A (ko) 2006-10-31 2008-05-07 주식회사 하이닉스반도체 비휘발성 메모리 장치의 소거 방법
US8019940B2 (en) * 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
JP4292225B2 (ja) * 2007-12-17 2009-07-08 株式会社東芝 情報記録装置および情報記録方法
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US20100174850A1 (en) * 2009-01-08 2010-07-08 Chin-Huo Chu Data moving method and system utilizing the same
US8255620B2 (en) 2009-08-11 2012-08-28 Texas Memory Systems, Inc. Secure Flash-based memory system with fast wipe feature
US8856501B2 (en) * 2009-12-14 2014-10-07 Sandisk Technologies Inc. Method and system for controlling operation of interconnected devices by circulating host capability without a centralized manager
US20110161560A1 (en) 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
KR20110119408A (ko) 2010-04-27 2011-11-02 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8447920B1 (en) * 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8239619B2 (en) * 2010-07-09 2012-08-07 Macronix International Co., Ltd. Method and apparatus for high-speed byte-access in block-based flash memory
US20120079289A1 (en) * 2010-09-27 2012-03-29 Skymedi Corporation Secure erase system for a solid state non-volatile memory device
JP5792019B2 (ja) * 2011-10-03 2015-10-07 株式会社日立製作所 半導体装置
US8914570B2 (en) * 2012-05-04 2014-12-16 International Business Machines Corporation Selective write-once-memory encoding in a flash based disk cache memory
US20140095822A1 (en) * 2012-10-01 2014-04-03 Trend Micro Incorporated Secure removable mass storage devices
US8997197B2 (en) * 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098416A1 (en) * 2000-08-14 2004-05-20 Moore Christopher S. Method for deleting stored digital data from write-once memory device
US20030225962A1 (en) * 2002-05-31 2003-12-04 Hitachi, Ltd. Memory card and memory card system
US20130036257A1 (en) * 2011-08-01 2013-02-07 Takaya Suda Memory system which can avoid unavailability due to operation error by user
WO2014006274A1 (en) * 2012-07-05 2014-01-09 Blancco Oy Ltd An apparatus, a system, a method and a computer program for erasing data stored on a storage device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102482116B1 (ko) * 2021-11-08 2022-12-29 삼성전자주식회사 연산 스토리지 장치의 메모리 할당 및 보호 방법 및 이를 수행하는 연산 스토리지 장치

Also Published As

Publication number Publication date
KR102188062B1 (ko) 2020-12-07
US9933974B2 (en) 2018-04-03
US20150248250A1 (en) 2015-09-03
US10552084B2 (en) 2020-02-04
US11216206B2 (en) 2022-01-04
US20180225062A1 (en) 2018-08-09
US20200218466A1 (en) 2020-07-09

Similar Documents

Publication Publication Date Title
KR102188062B1 (ko) 데이터 저장 장치의 동작 방법과 상기 데이터 저장 장치를 포함하는 시스템의 동작 방법
US20200364159A1 (en) Storage system and method for performing and authenticating write-protection thereof
US10983722B2 (en) Data storage device using host memory buffer and method of operating the same
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
US20140129761A1 (en) Non-volatile memory device and host device configured to communication with the same
US20220004530A1 (en) Key-value storage device and operating method thereof
US9690953B2 (en) Generating efficient reads for a system having non-volatile memory
US9223696B2 (en) Data storage device for holding erasure of victim block having valid page copied to merge block and method of operating the same
US11847243B2 (en) Memory system
CN110046506B (zh) 存储设备和包括存储设备的存储系统及使用其进行操作的方法
US20160034683A1 (en) Memory card and storage system having authentication program and method for operating thereof
EP4020296A1 (en) Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device
US20230152993A1 (en) Storage device
KR102583592B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11550906B2 (en) Storage system with separated RPMB sub-systems and method of operating the same
US20190212942A1 (en) Data Erasure Method and Apparatus
KR102509646B1 (ko) 스토리지 장치
US20230289071A1 (en) Electronic device and method of operating the same
CN111090388B (zh) 使用主机存储器缓冲器的数据存储设备及其操作方法
US20220222003A1 (en) Method of writing data in storage device and storage device performing the same
KR20220092770A (ko) 커맨드의 보안 모드를 설정하는 스토리지 장치의 동작 방법, 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법
KR20230068266A (ko) 메모리 컨트롤러, 저장 장치, 및 저장 장치의 동작 방법

Legal Events

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