KR20210069480A - 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법 - Google Patents

메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법 Download PDF

Info

Publication number
KR20210069480A
KR20210069480A KR1020190159365A KR20190159365A KR20210069480A KR 20210069480 A KR20210069480 A KR 20210069480A KR 1020190159365 A KR1020190159365 A KR 1020190159365A KR 20190159365 A KR20190159365 A KR 20190159365A KR 20210069480 A KR20210069480 A KR 20210069480A
Authority
KR
South Korea
Prior art keywords
data
controller
host device
storage device
user
Prior art date
Application number
KR1020190159365A
Other languages
English (en)
Inventor
주명종
신민곤
이승재
이화수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190159365A priority Critical patent/KR20210069480A/ko
Priority to US17/035,925 priority patent/US11645000B2/en
Priority to CN202011297633.5A priority patent/CN112905504A/zh
Priority to EP20211497.1A priority patent/EP3832515A1/en
Publication of KR20210069480A publication Critical patent/KR20210069480A/ko
Priority to US18/139,858 priority patent/US12019907B2/en

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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0637Permissions
    • 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/0674Disk device
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

비휘발성 메모리 시스템이 개시된다. 비휘발성 메모리 시스템은, 호스트 장치, 전력 라인 및 데이터 라인을 포함하는 물리 케이블을 통해 호스트 장치와 연결되는 스토리지 장치를 포함할 수 있다. 스토리지 장치는, 비휘발성 메모리, 호스트 장치로부터 전력 라인을 통해 전력이 공급되는 동안, 데이터 라인을 일시적으로 비활성화하는 링크 컨트롤러, 및 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는 스토리지 장치의 사용자를 인증하고, 인증 결과에 따라 비휘발성 메모리의 상태를 변경하기 위한 사용자 인증 회로, 비휘발성 메모리의 상태 변경에 기반하여 링크 컨트롤러를 제어하기 위한 재연결 트리거 회로 및 데이터의 암호화 및 복호화하는 데이터 처리 회로를 포함하는 것을 특징으로 할 수 있다.

Description

메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법{STORAGE DEVICE INCLUDING MEMROY CONTROLLER AND NON VOLATILE MEMORY SYSTEM INCLUDING AND OPERATING METHOD THEREOF}
본 개시의 기술적 사상은 반도체 메모리에 관한 것으로, 구체적으로 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법에 관한 것이다.
반도체 메모리 장치는 전원 공급 중단 시 저장된 데이터를 상실하는 휘발성 메모리 장치(volatile memory device)와 저장된 데이터를 상실하지 않는 비휘발성 메모리 장치(non-volatile memory device)로 구분될 수 있다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버린다. 반면, 비휘발성 메모리 장치는 읽고 쓰는 속도가 휘발성 메모리 장치에 비해 느리지만 외부 전원 공급이 중단되더라도 그 내용을 보존한다.
비휘발성 메모리 장치 중 하나인 플래시 메모리는, 빠른 동작 속도, 낮은 전력, 낮은 소음, 적층을 통한 고용량화의 이점으로 인하여 다양한 분야에서 사용되고 있다. 플래시 메모리의 대중화에 따라 플래시 메모리에 대한 보안 기술의 요구가 증대되고 있다.
플래시 메모리에 대한 보안 기술 중 자가 암호화 드라이브(self encrypting drive, SED)는 데이터를 암호화하여 라이트하고 암호화된 데이터를 복호화하여 리드함으로써 높은 보안 기능을 제공할 수 있다.
다만, SED를 지원하는 스토리지 장치는 수동(passive) 장치이며, 호스트 장치의 커맨드에 종속적으로 동작할 수 있으므로, 호스트 장치가 SED를 지원하지 않는 경우, 스토리지 장치는 독립적으로 동작할 수 없는 문제가 야기된다. 따라서, 보다 다양한 호스트 장치에서 동작할 수 있는 스토리지 장치에 대한 필요성이 증대되고 있다.
본 개시의 기술적 사상은, 메모리 컨트롤러와 메모리 컨트롤러를 포함하는 비휘발성 메모리 시스템 및 이의 동작 방법에 있어서, 호스트 장치와 독립적으로 재연결(relink)을 수행할 수 있는 장치 및 방법을 제공할 수 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 비휘발성 메모리 시스템은, 전력 라인 및 데이터 라인을 포함하는 물리 케이블을 통해 호스트 장치와 연결되는 스토리지 장치를 포함하고, 상기 스토리지 장치는, 비휘발성 메모리, 상기 호스트 장치로부터 상기 전력 라인을 통해 전력이 공급되는 동안, 상기 데이터 라인을 일시적으로 비활성화하는 링크 컨트롤러 및 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 생체 데이터를 수신하고, 상기 생체 데이터에 기반하여 사용자 인증을 수행하기 위한 생체 인증 모듈, 및 상기 사용자 인증의 결과에 기반하여 상기 메모리 컨트롤러의 상태를 변경하기 위한 생체 인증 처리 회로와 상기 메모리 컨트롤러의 상태 변경에 기반하여 상기 링크 컨트롤러를 제어하기 위한 재연결 트리거 회로와 데이터의 암호화 및 복호화하는 데이터 처리 회로를 포함할 수 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 스토리지 장치는, 비휘발성 메모리, 스토리지 장치와 물리적으로 연결되는 호스트 장치 사이의 데이터 라인을 비활성화하는 링크 컨트롤러, 기 저장된 데이터와 수신된 생체 데이터를 비교하여 사용자 인증을 수행하는 생체 인증 모듈 및 상기 사용자 인증의 결과에 기반하여, 상기 메모리 컨트롤러의 상태를 변경하고, 상기 메모리 컨트롤러의 상태 변경에 기반하여, 상기 링크 컨트롤러에게 상기 데이터 라인을 일시적으로 비활성화할 것을 지시하는 트리거 신호를 송신하는 메모리 컨트롤러를 포함하는 것을 특징으로 할 수 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 비휘발성 메모리, 링크 컨트롤러, 메모리 컨트롤러 및 생체 인증 모듈을 포함하는 스토리지 장치의 동작 방법은, 호스트 장치와의 물리적 연결을 검출하는 단계, 상기 생체 인증 모듈을 통해 생체 데이터를 수신하는 단계, 상기 수신된 생체 데이터에 기반하여, 사용자 인증을 수행하는 단계, 상기 사용자 인증에 성공한 경우, 상기 메모리 컨트롤러의 상태를 잠금 해제 상태로 변경하는 단계, 상기 잠금 해제 상태로의 변경에 응답하여, 상기 호스트 장치로부터 전력을 공급받는 동안, 상기 호스트 장치와 연결된 데이터 라인을 일시적으로 비활성화하는 단계를 포함하는 것을 특징으로 할 수 있다.
본 개시의 예시적 실시예에 따른 메모리 장치는, 호스트 장치로부터 커맨드를 수신하지 않더라도 독립적으로 재연결을 트리거할 수 있다.
본 개시의 예시적 실시예에 따른 메모리 장치는, 호스트 장치의 개입 없이 재연결을 트리거할 수 있으므로, 호스트 장치로부터 스토리지 장치의 상태를 식별하기 위한 모니터링 커맨드를 수신하거나, 모니터링 커맨드에 대한 응답 신호를 송신하는 것을 바이패스(bypass)함으로써 전체적인 시스템 부하(load)를 감소시킬 수 있다.
본 개시의 예시적 실시예에 따른 메모리 장치는, 호스트 장치로부터 모니터링 커맨드를 수신할 필요가 없으므로, 일정한 주기에 따라 수신되는 모니터링 커맨드에 기반하여 재연결을 수행할 때보다 재연결을 수행하는 시간 지연을 감소시킬 수 있다.
본 개시의 예시적 실시예에 따른 메모리 장치는, 호스트 장치와 무관하게 재연결을 수행할 수 있으므로, 모니터링 커맨드를 지원하지 않거나, 자가 암호화 드라이브 기능을 지원하지 않는 호스트 장치와 연결되더라도 보안 기능을 제공할 수 있다.
본 개시의 예시적 실시예에 따른 메모리 장치는, 임베디드된 생체 인식 모듈을 통해 사용자 인증을 수행할 수 있으므로, 적절한 입력 수단을 구비하지 않은 호스트 장치와 연결하더라도, 생체 인증을 통하여 스토리지 장치의 잠금을 수행하고, 사용자 데이터 영역에 액세스를 제공할 수 있다.
도 1a 내지 도 1d는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 신호 교환을 도시한다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 컨트롤러의 동작을 나타내는 흐름도이다.
도 4a는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치의 저장 상태를 도시한다.
도 4b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치의 다른 저장 상태를 도시한다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 장치의 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 호스트 장치와 스토리지 장치간에 인터페이스를 도시한다.
도 7은 본 개시의 예시적 실시예에 따른 호스트 장치의 동작을 나타내는 흐름도이다.
도 8은 비휘발성 메모리 시스템의 블록도이다.
도 9는 비휘발성 메모리 시스템의 신호 교환을 도시한다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 장치를 SSD 시스템에 적용하는 예를 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 다양한 실시예들에 대해 상세히 설명한다.
도 1a 내지 도 1d는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다.
도 1a를 참조하면, 비휘발성 메모리 시스템(10)이 개시된다. 비휘발성 메모리 시스템(10)은 호스트 장치(100) 및 스토리지 장치(500)를 포함할 수 있다.
스토리지 장치(500)는 링크 컨트롤러(이하, LINK 컨트롤러)(210), 스토리지 장치 컨트롤러(이하, SD 컨트롤러(220))(220), 비휘발성 메모리(300) 및 생체 인식 모듈(400)를 포함할 수 있다.
호스트 장치(100)는 예를 들어, PC(personal computer), 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book) 등과 같은 전자 장치로 구현될 수 있다. 또한, 호스트 장치(100)는 예를 들어, 손목 시계 또는 HMD(Head-Mounted Display)와 같은 웨어러블(wearable) 기기와 같은 전자 장치로 구현될 수도 있다.
다양한 실시예들에 따라, 호스트 장치(100)는 스토리지 장치(500)와 커맨드(CMD) 및/또는 데이터(DATA)를 송수신하기 위한 인터페이스(150)를 포함할 수 있다. 인터페이스(150)는 핫-플러그를 지원하는(hot-pluggable) 적어도 하나 이상의 인터페이스들을 포함할 수 있다. 예를 들어, 인터페이스(150)는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA) 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 포함할 수 있다. 이외에도, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface) 또는 IDE(Integrated Drive Electronics), 썬더볼트(thunderbolt) 등과 같은 다양한 인터페이스 프로토콜들이 적용될 수도 있다.
다양한 실시예들에 따라, 스토리지 장치(500)는 데이터를 저장 및 출력할 수 있다. 스토리지 장치(500)는 전자 장치에 내장되는(embedded) 내부(internal) 메모리일 수 있다. 예를 들어, 스토리지 장치(500)는 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), 또는 SSD(Solid State Drive)일 수 있다. 스토리지 장치(500)는 호스트(100)와 동일한 기판 상에 임베디드될 수 있다. 일부 실시예들에서, 스토리지 장치(500)는 전자 장치에 탈착 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 메모리 스틱(Memory Stick) 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따라, LINK 컨트롤러(210)는 스토리지 장치(500)와 호스트 장치(100)간에 연결을 제어할 수 있다. LINK 컨트롤러(210)는 SD 컨트롤러(220)와 구별되는 별도의 구성을 포함하도록 구현되는 경우, 브릿지 보드(bridge board)로 지칭될 수도 있다. 상기 제어 가능한 연결은, 전력 라인을 통하여 전력을 공급받는 동안, 데이터 송수신을 위한 데이터 경로를 활성화 또는 비활성화하는 것을 지칭할 수 있다. 예를 들어, LINK 컨트롤러(210)는 USB 케이블(cable)을 통해 호스트 장치와 연결을 유지하는 동안, 상기 데이터 경로가 연결된 핀(pin)을 비활성화할 수 있다. 즉, 호스트 장치(100)로부터 전력을 공급 받는 동안, 상기 데이터 경로에 상응하는 핀을 비활성화 또는 디스에이블(disable)함으로써, 호스트 장치(100)는 스토리지 장치(500)와 상기 USB 케이블을 통해 물리적으로 연결된 상태이나, 데이터 경로에 상응하는 핀의 비활성화로 인하여 스토리지 장치(500)와 연결이 해제된 것으로 식별할 수 있다. 이후, LINK 컨트롤러(210)가 데이터 경로에 상응하는 핀을 다시 활성화함으로써 호스트 장치(100)는 스토리지 장치(500)를 다시 식별할 수 있다. LINK 컨트롤러(210)는 데이터 경로 상에 스위치(미도시)를 포함하고, 상기 스위치를 제어함으로써 연결을 제어할 수 있다. 다른 예를 들어, LINK 컨트롤러(210)는 마이크로컨트롤러(미도시)를 더 포함할 수 있다. LINK 컨트롤러(210)는 상기 마이크로컨트롤러를 리셋(reset) 또는 초기화(initialization)함으로써 전력을 공급받는 동시에 데이터 경로를 일시적으로 비활성화할 수 있다. 이에 따라, 실질적으로 호스트 장치(100)와 스토리지 장치(500) 사이에 플러그-아웃 또는 물리적인 연결 해제가 발생하지 않았음에도 불구하고, 호스트 장치(100)와 스토리지 장치(500)간에 재연결(relink)을 수행할 수 있다.
다양한 실시예들에 따라, SD 컨트롤러(220)는 데이터 처리 회로(data processing circuit)(230), 생체 인증 처리 회로(biometric processing circuit)(240) 및 재연결 트리거 회로(250)를 포함할 수 있다.
데이터 처리 회로(230)는 다양한 신호를 비휘발성 메모리(300)에게 제공하고, 기록 및 독출 등의 동작들을 제어할 수 있다. 예를 들어, SD 컨트롤러(220)는 커맨드(CMD) 및 어드레스(ADDR)를 비휘발성 메모리(300)에게 제공하여 메모리 셀 어레이에 저장된 데이터를 액세스할 수 있다.
다른 예를 들어, 데이터 처리 회로(230)는 데이터를 암호화하여 메모리 셀 어레이에 저장하거나, 또는 메모리 셀 어레이에 저장된 암호화된 데이터를 복호화하여 독출 데이터로 출력할 수 있다. 데이터의 저장 및 출력 과정에서 암호화 및 복호화가 수행되므로, 스토리지 장치(500)를 도난 또는 분실하더라도, 저장된 데이터가 유출되는 것을 방지할 수 있다.
생체 인증 처리 회로(240)는 생체 인증의 결과에 따라, SD 컨트롤러(220)의 상태를 변경할 수 있다. 생체 인증 처리 회로(240)는 생체 인증 모듈(400)로부터 사용자 인증 데이터를 수신할 수 있다. 상기 사용자 인증 데이터는, 생체 인증 모듈(400)을 통해 수행된 생체 인증의 성공 또는 실패를 지시할 수 있다. 생체 인증 처리 회로(240)는 생체 인증의 성공 시, SD 컨트롤러(220)의 상태를 잠금 해제 상태로 변경할 수 있고, 재연결 트리거 회로(250)에게 제어 신호를 송신할 수 있다. 상기 제어 신호는, 재연결 트리거 회로(250)가 LINK 컨트롤러(210)에게 트리거 신호를 송신할 것을 제어하기 위한 신호에 상응할 수 있다.
재연결 트리거 회로(250)는 LINK 컨트롤러(210)에게 트리거 신호를 송신할 수 있다. 상기 트리거 신호는, LINK 컨트롤러(210)가 재연결을 수행하도록 제어하는 신호일 수 있다. 재연결 트리거 회로(250)는 생체 인증 처리 회로(240)로부터 상기 제어 신호를 수신함에 응답하여, LINK 컨트롤러(210)에게 상기 트리거 신호를 송신할 수 있다. 즉, LINK 컨트롤러(210)는 상기 트리거 신호를 수신함에 응답하여, 데이터 경로에 상응하는 핀을 비활성화하거나, 데이터 경로 상에 스위치를 비활성화하거나, 또는 LINK 컨트롤러(210)에 포함되는 마이크로컨트롤러를 초기화할 수 있다.
다양한 실시예들에 따라, 재연결 트리거 회로(250)는 SD 컨트롤러(220)의 상태에 적어도 기반하여 상기 트리거 신호를 LINK 컨트롤러(210)에게 송신할 수 있다. 예를 들어, SD 컨트롤러(220)가 잠금 상태에서 잠금 해제 상태로 천이하는 경우, 재연결 트리거 회로(250)는 LINK 컨트롤러(210)에게 상기 트리거 신호(TRIGGER SIGNAL)를 송신할 수 있다.
다양한 실시예들에 따라, 생체 인증 모듈(400)은 기 저장된 생체 데이터와 입력된 생체 데이터의 비교를 수행할 수 있다. 여기서, 생체 데이터는 사람의 신체적 특징에 기반하여 개인을 식별하거나 인증하는데 사용되는 데이터를 지칭할 수 있다. 예를 들어, 상기 생체 데이터는 지문 데이터, 홍채 데이터, 정맥 데이터, 음성 데이터, 망막 데이터 등 다양한 데이터를 포함할 수 있다.
생체 인증 모듈(400)은 상기 생체 데이터에 기반하여 스토리지 장치(500)에 대한 진정한 사용자가 맞는지 판단할 수 있다. 예를 들어, 스토리지 장치(500)의 사용자는 스토리지 장치(500)가 암호화된 경우, 사용자 인증을 통과해야 사용자 데이터 영역으로 액세스할 수 있다. 따라서, 스토리지 장치(500)의 사용자는 스토리지 장치(500)에 통합된 생체 인증 모듈(400)을 통해 생체 데이터를 입력할 수 있다. 생체 인증 모듈(400)은 기 저장된 생체 데이터를 입력된 생체 데이터와 비교할 수 있다. 생체 인증 모듈(400)은 비교의 결과를 지시하는 사용자 인증 데이터를 생체 인증 처리 회로(240)에게 전달할 수 있다. 비교 결과가 일치하지 않는 경우, 생체 인증 처리 회로(240)에 의해 스토리지 장치(500)의 잠금(LOCK) 상태는 유지되므로, 사용자 데이터는 보호될 수 있다. 비교 결과가 일치하는 경우, 생체 인증 처리 회로(240)에 의해 스토리지 장치(500)의 상태는 잠금 해제(UNLOCK) 상태로 변경되므로, 사용자 데이터에 대한 액세스가 가능해질 수 있다.
일 실시예에 따라, 생체 인증 모듈(400)은 지문 인식 모듈로 구현될 수 있다. 지문 인식 모듈은 사용자의 손가락에 분포된 지문의 디지털 영상을 획득하여 사용자를 식별하는 모듈일 수 있다. 예를 들어, 지문 인식 모듈은 광학식, 정전용량식, 또는 초음파식 중 어느 하나에 기반할 수 있다.
다른 실시예에 따라, 생체 인증 모듈(400)은 정맥 인식 모듈로 구현될 수도 있다. 정맥 인식 모듈은 적외선 센서를 더 포함할 수도 있다. 정맥 인식 모듈은 적외선을 혈관으로 투사하고, 잔영 이미지에 기반하여 개인을 식별하는 모듈일 수 있다. 예를 들어, 정맥 인식 모듈은 사용자의 손등, 손바닥, 손가락 중 적어도 하나에 대한 정맥 이미지에 기반하여 개인을 식별할 수 있다.
또 다른 실시예에 따라, 생체 인증 모듈(400)은 홍채 인식 모듈로 구현될 수 있다. 홍채 인식 모듈은 사용자의 홍채(iris)의 모양에 기반하여 개인을 식별하기 위한 모듈일 수 있다.
전술한 실시예들에서, 생체 인증 모듈(400)은 지문, 정맥, 홍채에 기반하는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 예를 들어, 걸음걸이, 사용자의 얼굴, 음성과 같은 다양한 생체 데이터들에 기반하여 사용자를 식별할 수 있다.
다양한 실시예들에 따라, 생체 인증 모듈(400)은 비교 결과를 지시하는 사용자 인증 데이터를 생체 인증 처리 회로(240)에게 전송할 수 있다. 상기 사용자 인증 데이터는, 사용자 인증이 성공한 경우는 “1” 또는 로직 하이(logic high), 사용자 인증이 실패한 경우는 “0” 또는 로직 로우(logic low) 값을 각각 가질 수 있다. 생체 인증 처리 회로(240)는 생체 인증 모듈(400)로부터 사용자 인증 데이터를 수신하고, “1” 값인 경우 SD 컨트롤러(220)의 상태를 잠금 상태에서 잠금 해제 상태로 변경할 수 있다. 상기 잠금 해제 상태로의 변경은, 생체 인증 모듈(400)이 포인터 정보를 정상 MBR(master boot record)로 변경함으로써 달성될 수 있으며, 이는 도 4a 및 도 4b에서 후술하기로 한다.
다양한 실시예들에 따라, 상기 트리거 신호는 데이터 처리 회로(230)로 전달되는 CMD, DATA 전송을 위한 경로와 상이한 경로를 통해 전달될 수 있다. 상기 트리거 신호는 커맨드 수신에 종속적이지 않는 통신 방법에 따라 전송될 수 있다. 예를 들어, 상기 통신 방법은, GPIO(general purpose input output) 통신(260)에 상응할 수 있다.
도 1b를 참조하면, 생체 인증 모듈(400)은 사용자 인증이 성공함에 응답하여 생체 인증 처리 회로(240)에 더하여 LINK 컨트롤러(210)에게 상기 사용자 인증 데이터를 전송할 수 있다. 다양한 실시예들에 따라, LINK 컨트롤러(210)는 상기 트리거 신호뿐만 아니라, 생체 인증 모듈(400)로부터 상기 사용자 인증 데이터를 직접 수신한 경우에도 재연결을 수행하도록 구성될 수도 있다.
다만, 생체 인증 처리 회로(240)가 상기 사용자 인증 데이터를 수신하고, SD 컨트롤러(220)의 상태를 잠금 해제 상태로 변경하는 시점이 정확하지 않으므로, 일정한 시간 간격에 따라 생체 인증 처리 회로(240)에게 먼저 상기 사용자 인증 데이터를 전송하고, LINK 컨트롤러(210)에게 나중에 상기 사용자 인증 데이터를 전송할 수도 있을 것이다. 시간 간격에 따라 사용자 인증 데이터를 전송함으로써, SD 컨트롤러(220)가 잠금 해제되기 이전에 먼저 호스트 장치(100)와 재연결이 수행되는 것은 방지될 수 있을 것이다. 다양한 실시예들에 따라, 생체 인증 모듈(400)이 LINK 컨트롤러(210)에게 사용자 인증 데이터를 직접 전달하는 경우에, 재연결 트리거 회로(250)는 생략될 수 있다.
도 1c를 참조하면, SD 컨트롤러(220)는 연결 관리 회로(250)를 더 포함할 수 있다. 도 1a 및 도 1b의 경우 LINK 컨트롤러(210) 및 SD 컨트롤러(220)는 서로 구별될 수 있는 별도의 컨트롤러인 것으로 기재되었으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, LINK 컨트롤러(210)는 SD 컨트롤러(220)로 통합(integrated)될 수 있다. 연결 관리 회로(250)는 호스트 장치(100)에 대한 연결을 제어하기 위한 회로일 수 있다. 연결 관리 회로(250)는 도 1a 및 도 1b의 LINK 컨트롤러(210)와 동일 또는 유사한 동작을 수행할 수 있다. 예를 들어, 연결 관리 회로(250)는 SD 컨트롤러(220)의 복수의 핀들 중 데이터 경로에 상응하는 핀을 비활성화 또는 디스에이블하거나, 상기 데이터 경로 상에 배치된 스위치를 비활성화하거나, 또는 SD 컨트롤러(220)를 리셋 또는 초기화(initialization)할 수 있다. 연결 관리 회로(250)를 이용하여, 호스트 장치(100)는 스토리지 장치(500)와 물리적 연결을 유지한 채로, 스토리지 장치(500)의 재연결을 수행할 수 있다. 도 1c를 참조하면, 생체 인증 처리 회로(240)는 생체 인증 모듈(400)로부터 사용자 인증 데이터를 수신하고, 사용자 인증의 성공 시, 연결 관리 회로(270)에게 제어 신호를 송신할 수 있다. 상기 제어 신호는, 연결 관리 회로(270)가 SD 컨트롤러(220)의 복수의 핀들 중 데이터 경로에 상응하는 핀을 비활성화하거나, 데이터 경로 상에 배치된 스위치를 비활성화하거나, 또는 SD 컨트롤러(220)를 리셋하도록 제어하는 신호를 지칭할 수 있다.
도 1d를 참조하면, 생체 인증 모듈(400)은 사용자 인증 데이터를 생체 인증 처리 회로(240) 및 연결 관리 회로(270) 모두에게 전달할 수 있다. 즉, 생체 인증 모듈(400)은 사용자 인증 데이터의 수신에 응답하여 SD 컨트롤러(220)의 상태를 잠금 해제 상태로 변경할 수 있고, 연결 관리 회로(270)는 사용자 인증 데이터를 수신함에 응답하여 호스트 장치(100)와의 재연결을 수행할 수 있다. 도 1b에서 전술한 바와 같이, 생체 인증 모듈(400)이 사용자 인증 데이터를 동시에 생체 인증 처리 회로(240)와 연결 관리 회로(270)에게 전달하는 경우, SD 컨트롤러(220)가 잠금 해제로 변경되기 이전에 재연결을 수행할 수도 있다. 따라서, 생체 인증 모듈(400)은 일정한 시간 간격에 따라 생체 인증 처리 회로(240)에게 사용자 인증 데이터를 먼저 전달하고, 연결 관리 회로(270)에게 나중에 사용자 인증 데이터를 전달할 수도 있을 것이다.
도 2는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 신호 교환을 도시한다.
도 2를 참조하면, 동작 S110에서, 호스트 장치(100) 및 스토리지 장치(400)간에 사용자 구성(USER CONFIGURATION)이 설정될 수 있다. 예를 들어, 스토리지 장치(400)의 사용자는 데이터 암호화를 위하여, 스토리지 장치(400)에 설정되는 사용자 생체 데이터를 새롭게 설정하거나, 또는 기존에 설정된 사용자 생체 데이터를 변경할 수 있다. 다양한 실시예들에 따라, 상기 사용자 구성은 스토리지 장치(400)의 자가 암호화 드라이브(self encrypting drive 이하, SED) 기능을 지원하는 소프트웨어(software)에 의하여 수행될 수 있다. 동작 S110에 대한 구체적인 기재는, 도 7에서 후술하기로 한다.
동작 S120에서, SD 컨트롤러(220)는 SD 컨트롤러(220)의 상태를 잠금 상태로 변경할 수 있다. 동작 S110의 사용자 구성을 완료한 이후, 스토리지 장치(400)의 사용자는 스토리지 장치(400)와 호스트 장치(100)의 연결을 해제할 수 있다. SD 컨트롤러(220)는 사용자 데이터의 보안을 위하여 전력 공급이 차단되는 것에 응답하여 SD 컨트롤러(220)의 상태를 잠금 상태로 변경될 수 있다. 예를 들어, 사용자가 호스트 장치(100)와 물리적 연결을 해제하는 경우, 호스트 장치(100)로부터 전력 공급이 차단될 수 있다. 스토리지 장치(400)의 전력 공급이 차단되면, SD 컨트롤러(220)는 SD 컨트롤러(220)의 상태를 잠금 상태로 변경할 수 있다. SD 컨트롤러(220)는 SD 컨트롤러(220)의 포인터 정보를 변경함으로써 사용자 데이터 영역으로의 액세스를 비활성화할 수 있다.
동작 S130에서 호스트 장치(100)와 스토리지 장치(500)간에 물리적으로 연결될 수 있다. 예를 들어, 호스트 장치(100)와 스토리지 장치(500) 모두 USB 인터페이스를 지원하는 경우, 상기 물리적 연결은 USB 케이블에 기반하여 수행될 수 있다. 호스트 장치(100)는 스토리지 장치(500)와 연결된 경우, 전력 라인을 통해 전력을 공급하여 스토리지 장치(500)를 동작시킬 수 있다. 예를 들어, USB 인터페이스 중 USB 타입-C 인터페이스인 경우, 스토리지 장치(500)는 VBUS 핀을 통하여 호스트 장치(100)로부터 전력을 공급받을 수 있다.
동작 S140에서, 생체 인증 모듈(400)은 사용자 인증을 수행할 수 있다. 동작 S110에서 획득된 생체 데이터와 사용자가 입력한 생체 데이터를 비교하여 비교 결과를 출력할 수 있다. 예를 들어, 기 저장된 지문 이미지와 입력된 지문 이미지를 비교하여, 일치하는 경우 사용자 인증에 성공하였음을 식별하고, 사용자 인증 데이터를 SD 컨트롤러(220)의 생체 인증 처리 회로(240)에게 전달할 수 있다.
동작 S150에서, SD 컨트롤러(220)는 잠금 해제 상태로 변경될 수 있다. 생체 인증 처리 회로(240)는 생체 인증 모듈(400)로부터 “1” 또는 로직 하이의 사용자 인증 데이터를 수신하고, 비휘발성 메모리(300)에 대한 포인터(POINTER) 정보를 변경함으로써 사용자 데이터 영역으로의 액세스를 활성화할 수 있다. 이에 대한 구체적인 기재는 도 4a, 도 4b에서 서술하기로 한다.
동작 S160에서, 호스트 장치(100)와 스토리지 장치(500)의 재연결이 수행될 수 있다. 전술한 바와 같이, 상기 재연결은 물리적으로 연결이 해제되었다가 재차 물리적인 연결이 이루어지는 것을 지칭하는 것이 아니다. 즉, 상기 재연결은 플러그-아웃 및 플러그-인이 아니라, 플러그-인 상태에서 지속적으로 전력이 공급되는 동안 데이터 경로만을 일시적으로 비활성화하는 것을 지칭할 수 있다.
일 실시예에서, 스토리지 장치(500)가 도 1a의 LINK 컨트롤러(210)를 포함하는 경우, SD 컨트롤러(220)의 재연결 트리거 회로(250)는 LINK 컨트롤러(210)에게 트리거 신호를 송신할 수 있다. LINK 컨트롤러(210)는 상기 트리거 신호를 수신함에 응답하여 데이터 경로에 대응하는 핀을 일시적으로 디스에이블(disable)하거나, 데이터 경로상에 배치된 스위치를 일시적으로 비활성화거나, 마이크로프로세서(미도시)를 초기화함으로써 재연결을 수행할 수 있다.
다른 실시예에서, 스토리지 장치(500)가 도 1d와 같이 하나의 SD 컨트롤러(220)를 포함하도록 구현된 경우, 연결 관리 회로(250)를 제어함으로써 재연결을 수행할 수 있다. 예를 들어, 연결 관리 회로(250)는 생체 인증 처리 회로(240)로부터 제어 신호를 수신하거나, 또는 생체 인증 모듈(400)로부터 직접 사용자 인증 데이터를 수신한 경우, 데이터 경로에 대응하는 핀을 일시적으로 디스에이블(disable)하거나, 데이터 경로상에 배치된 스위치를 일시적으로 비활성화함으로써 재연결을 수행할 수 있다.
동작 S170에서, 호스트 장치(100)는 데이터의 기록 및/또는 독출을 수행할 수 있다. 동작 S160에서 재연결이 수행되어, 호스트 장치(100)는 스토리지 장치(500)를 재차 인식할 수 있다. 다만, 동작 S150에서 포인터 정보가 변경되었으므로, 호스트 장치(100)는 사용자 데이터 영역에서 부팅을 시작하고, 사용자 데이터 영역에 대하여 액세스할 수 있다. 따라서, 호스트 장치(100)는 사용자 데이터에 대한 독출을 요청(CMD_READ)하거나, 사용자 데이터 영역으로 데이터 기록(CMD_WRITE)을 요청할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 컨트롤러의 동작을 나타내는 흐름도이다.
도 3을 참조하면, SD 컨트롤러(220)는 호스트 장치(100)와 연결을 검출할 수 있다(동작 S310). 호스트 장치(100) 및 스토리지 장치(500)는 공통적으로 지원 가능한 인터페이스에 따라 연결될 수 있다. 예를 들어, 호스트 장치(100) 및 스토리지 장치(500)가 각각 USB 인터페이스를 지원하는 경우, 상기 연결은 USB 케이블을 통해 수행될 수 있다. 스토리지 장치(500)는 호스트 장치(100)와 연결됨으로써, 전력을 공급받고 데이터를 송수신할 수 있다. 다양한 실시예에 따라, SD 컨트롤러(220)와 호스트 장치(100)가 연결되는 시점에, SD 컨트롤러(220)는 잠금 상태에 상응할 수 있다. 상기 연결이 이루어지기 이전에, SD 컨트롤러(220)와 호스트 장치(100)의 연결이 해제되는 시점에 전력 공급이 차단될 수 있다. SD 컨트롤러(220)는 전력 공급이 차단될 때마다 SD 컨트롤러(220)의 상태를 잠금 상태로 변경할 수 있다.
생체 인증 모듈(400)은, 사용자 인증을 수행할 수 있다(동작 S320). 스토리지 장치(500)의 잠금 해제를 원하는 사용자는, 스토리지 장치(500)에 구비된 생체 인증 모듈(400)을 통해 생체 데이터를 입력할 수 있다. 예를 들어, 생체 인증 모듈(400)이 지문 인식 모듈로 구현된 경우, 사용자는 지문 인식을 위한 모듈에 손가락을 접촉함으로써 지문 형상에 대한 생체 데이터를 입력할 수 있다. 생체 인증 모듈(400)은 상기 입력된 생체 데이터와 사용자 등록 과정을 통하여 기 저장하고 있는 생체 데이터간에 일치 여부를 판단할 수 있다(동작 S340). 예를 들어, 상기 지문 인식 모듈로 구현된 경우, 생체 인증 모듈(400)은 입력된 지문 이미지와 기 저장된 지문 이미지가 일치하는지 판단할 수 있다. 비교 결과 2개의 지문 이미지가 일치하는 경우, 생체 인증 모듈(400)은 사용자 인증이 성공하였음을 판단할 수 있다.
기 저장된 생체 데이터와 입력된 생체 데이터가 일치하지 않는 경우, 생체 인증 모듈(400)은 다시 생체 데이터를 수신할 때까지 대기할 수 있다. 기 저장된 생체 데이터와 입력된 생체 데이터가 일치하는 경우, SD 컨트롤러(220)는 SD 컨트롤러(220)의 상태를 잠금 해제 상태로 변경할 수 있다(동작 S350). 구체적으로, 생체 인증이 성공한 경우, 생체 인증 모듈(400)은 SD 컨트롤러(220)에게 사용자 인증 데이터를 전달할 수 있다. SD 컨트롤러(220)의 생체 인증 처리 회로(240)는 사용자 인증 데이터에 따라 SD 컨트롤러(220)의 상태를 잠금 해제 상태로 변경할 수 있다. 상기 잠금 해제 상태로의 변경은 비휘발성 메모리(300)에 대한 포인터 정보를 OS(operating system) MBR로 변경함으로써 달성될 수 있다. SD 컨트롤러(220)는 SD 컨트롤러(220)의 상태가 잠금 해제 상태로 변경된 이후에 사용자 데이터 영역으로 액세스가 가능하도록 재연결을 수행할 수 있다(동작 S360). 예를 들어, 생체 인증 처리 회로(240)는 상기 포인터 정보를 변경한 이후, 재연결 트리거 회로(250) 또는 연결 관리 회로(270)에게 제어 신호를 송신함으로써 재연결을 수행하도록 제어할 수 있다.
도 4a 및 도 4b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치의 저장 상태를 도시한다.
다양한 실시예들에 따라, 도 4a를 참조하면, 비휘발성 메모리(300)의 저장 공간이 도시된다. 비휘발성 메모리(300)의 저장 공간은 메모리 영역(MEMORY REGION)으로 지칭하기로 한다. 메모리 영역은, 비-보안 영역(NON-SECUTIRY REGION)과 보안 영역(SECURITY REGION)을 포함할 수 있다.
비-보안 영역(NON-SECURITY REGION)은 제1 마스터 부트 레코드(master boot record, 이하 MBR) 및 사용자 데이터(user data)을 포함할 수 있다. 상기 비-보안 영역은 사용자 데이터를 저장하는 영역으로, 유저 볼륨(user volume), 사용자 데이터 영역(user data region), 프라이빗 영역(private region)과 같은 다양한 용어들로 지칭될 수 있다. 상기 비-보안 영역은 스토리지 장치(500)의 보안이 해제된 상태(비-보안 상태)에서 액세스할 수 있는 메모리 영역으로 이해될 수 있다.
MBR은 파티션(partition)에 대한 위치를 포함하는 정보 및 부팅을 위한 부트 코드(boot code)등을 포함할 수 있다. 상기 제1 MBR은 운영체제(operating system) MBR로 지칭될 수도 있다. 예를 들어, 호스트 장치(100)의 운영체제가 Windows인 경우, 상기 제1 MBR은 MBR 로더(loader)일 수 있다. 다른 예를 들어, 호스트 장치(100)의 운영체제가 Linux인 경우, 상기 제1 MBR은 LILO(LInux LOader), 또는 GRUB(GRand Unified Boot loader)일 수 있다. LBA는 메모리 영역에서 데이터 블록의 위치를 지정하기 위한 스킴(scheme)일 수 있다. 예를 들어, 첫 번째 데이터 블록은 LBA 0, 두 번째 데이터 블록은 LBA 1에 대응될 수 있다. 따라서, 제1 MBR은 LBA 0 영역에 저장된 것으로 이해될 수 있다. LBA 1은 사용자 데이터를 저장하는 영역이고, LBA 0는 MBR 데이터를 저장할 수 있다.
다양한 실시예들에 따라, 보안 영역(SECURITY REGION)은 제2 MBR 및 자가 암호화 드라이브 지원 소프트웨어(SED SUPPORT SOFTWARE)를 저장하는 영역을 포함할 수 있다. 상기 보안 영역은, 스토리지 장치(500)의 보안이 유지되는 상태에서 액세스할 수 있는 메모리 영역으로 이해될 수 있다.
상기 제2 MBR은 쉐도우(shadow) MBR 또는 페이크(fake) MBR과 같은 다양한 용어들로 지칭될 수 있다. 상기 제2 MBR은 스토리지 장치(500)의 보안이 해제되지 않아 비-보안 영역으로의 액세스를 허용하지 않아야 하는 경우, 호스트 장치(100)가 강제로 사용자 데이터와 무관한 영역에서 부팅을 시작하도록 하는 MBR에 대응될 수 있다. 다양한 실시예들에 따라, 보안 영역 중 LBA 1에는 펌웨어(firmware) 파일을 저장할 수 있다. 사용자가 보안을 해제할 수 있도록 지원하는 소프트웨어의 설치를 유도하기 위함이다.
다양한 실시예들에 따라, 생체 인증 처리 회로(240)는 포인터 1을 활성화할 수 있다. 포인터 1은 생체 인증 처리 회로(240)가 생체 인증 모듈(400)로부터 생체 인증이 성공하였음을 지시하는 사용자 인증 데이터를 수신하는 경우에 활성화될 수 있다. 포인터 1이 활성화되는 경우, 호스트 장치(100)는 스토리지 장치(500)에 연결되고, 비-보안 영역의 제1 MBR을 이용하여 부팅을 시작할 수 있다. 제1 MBR을 통해 부팅을 시작하는 경우, 호스트 장치(100)는 사용자 데이터가 저장된 영역에 액세스할 수 있다.
다양한 실시예들에 따라, 생체 인증 처리 회로(240)는 포인터 2를 활성화할 수 있다. 포인터 2는 생체 인증 처리 회로(240)가 생체 인증 모듈(400)로부터 생체 인증이 실패하였음을 지시하는 사용자 인증 데이터를 수신하는 경우에 활성화될 수 있다. 포인터 2가 활성화되는 경우, 호스트 장치(100)는 스토리지 장치(500)에 연결되고, 보안 영역의 제2 MBR을 이용하여 부팅을 시작할 수 있다. 제2 MBR을 통해 부팅을 시작하는 경우, 호스트 장치(100)는 사용자 데이터가 저장된 영역을 볼 수 없으며, 호스트 장치(100)가 액세스할 수 있는 영역은 오직 자가 암호화 드라이브 지원 소프트웨어가 저장된 영역뿐일 수 있다.
다양한 실시예들에 따라, 도 4b는 복수의 사용자들이 저장 영역을 사용하는 경우를 도시한다. LBA 1 영역은 제1 사용자의 데이터가 저장된 영역일 수 있고, LBA 2 영역은 제2 사용자의 데이터가 저장된 영역일 수 있고, LBA 3 영역은 제3 사용자의 데이터가 저장된 영역일 수 있다. 생체 인증 모듈(400)은 생체 데이터를 수신하면, 기 저장된 생체 데이터와 일치하는지 비교할 수 있다. 예를 들어, 제1 사용자는 제1 생체 데이터, 제2 사용자는 제2 생체 데이터, 제3 사용자는 제3 생체 데이터에 각각 대응되는 것으로 가정할 수 있다. 이 경우, 생체 인증 모듈(400)은 수신된 생체 데이터와 제1 생체 데이터 내지 제3 생체 데이터를 모두 비교할 수 있다. 제1 생체 데이터 내지 제3 생체 데이터와 모두 일치하지 않는 경우, 스토리지 장치(500)는 보안을 유지할 수 있다. 제1 생체 데이터 내지 제3 생체 데이터 중 일치하는 생체 데이터가 있는 경우, 생체 인증 처리 회로(240)는 제1 MBR 영역의 파티션 정보 중 일치하는 생체 데이터에 대응하는 사용자 데이터 영역의 시작 주소를 참조할 수 있다. 예를 들어, 제2 생체 데이터와 사용자 입력이 일치하는 경우, 생체 인증 처리 회로(240)는 제1 MBR 중 파티션 정보를 통해 LBA 2의 시작 주소를 식별할 수 있다. 이 때, 제1 사용자에 대한 LBA 1 영역 또는 제3 사용자에 대한 LBA 3 영역은 호스트 장치(100)에게 보이지 않을 수 있다. 호스트 장치(100)는 제1 MBR의 파티션 정보를 통해 참조한 LBA 1의 주소에 대해서만 액세스할 수 있기 때문이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 장치의 블록도이다.
이하에서 LINK 컨트롤러(210) 및 SD 컨트롤러(220)가 별도로 구현된 스토리지 장치(500)를 기준으로 서술하기로 한다. 다만, 본 발명은 이에 제한되는 것은 아니며, 도 1c, 도 1d와 같이 SD 컨트롤러(220)만으로 구현된 스토리지 장치(500)의 경우에도 마찬가지로 적용될 수 있다.
도 5를 참조하면, 데이터 처리 회로(230)는 암호화기(encryptor)(231), 복호화기(decryptor)(232) 및 DEK(data encrypting key) 저장 회로(233)를 포함할 수 있다.
암호화기(231)는 기록 데이터(DATA_W)에 대한 암호화를 수행할 수 있다. 일 실시예에 따라, SD 컨트롤러(220)가 잠금 상태일 때, 암호화기(231)에게 기록 커맨드(CMD_W)가 전달될 수 있다. 이 경우, SD 컨트롤러(220)는 비휘발성 메모리(300)의 비-보안 영역으로 액세스할 수 없으므로 데이터 기록은 수행되지 않을 수 있다. 다른 실시예에 따라, SD 컨트롤러(220)가 잠금 해제 상태일 때, 기록 커맨드(CMD_W)가 전달될 수 있다. 잠금 해제 상태에서, 암호화기(231)는 비-보안 영역에 액세스할 수 있으므로 기록 커맨드(CMD_W)를 수행할 수 있다. 암호화기(231)는 기록 데이터(DATA_W)를 그대로 지정된 주소(ADDR)에 저장하는 것이 아니라, 기록 데이터(DATA_W)에 대한 암호화를 수행할 수 있다. 암호화기(231)는 DEK 저장 회로(233)에게 요청 및 수신한 DEK 값을 이용하여 암호화를 수행할 수 있다. 암호화를 완료한 이후, 암호화기(231)는 지정된 주소(ADDR_W)에 암호화된 기록 데이터(ENCRYPTED DATA_W)를 저장할 수 있다.
복호화기(232)는 암호화된 독출 데이터(ENCRYPTED DATA_R)에 대한 복호화를 수행할 수 있다. 일 실시예에 따라, SD 컨트롤러(220)가 잠금 상태인 경우, 복호화기(232)에게 독출 커맨드(CMD_R)가 전달될 수 있다. 이 경우, SD 컨트롤러(220)는 비휘발성 메모리(300)의 비-보안 영역으로 액세스할 수 없으므로, 데이터 독출은 수행되지 않을 수 있다. 다른 실시예에 따라, SD 컨트롤러(220)가 잠금 해제 상태인 경우, 복호화기(232)에게 독출 커맨드(CMD_R)가 전달될 수 있다. 잠금 해제 상태에서, 복호화기(232)는 비-보안 영역에 액세스 할 수 있으므로, 독출 커맨드(CMD_R)를 수행할 수 있다. 복호화기(232)는 지정된 주소(ADDR_R)에 저장된 데이터를 독출할 수 있다. 상기 독출된 데이터는 암호화된 독출 데이터(ENCRYPTED DATA_R)일 수 있다. 복호화기(232)는 DEK 저장 회로(233)로부터 수신된 DEK 값을 이용하여 복호화를 수행할 수 있다. 복호화를 완료한 이후, 복호화기(232)는 복호화된 독출 데이터(DATA_R)를 LINK 컨트롤러(210)에게 전달하여 호스트 장치(100)로 출력할 수 있다.
DEK 저장 회로(233)는 데이터를 암호화 및 복호화하는 데에 사용되는 키 값을 저장할 수 있다. 일 실시예에 따라, 상기 DEK는 스토리지 장치(500)의 고유한 값일 수 있다. 예를 들어, 상기 DEK는 스토리지 장치(500)의 GUID(global unique identifier)에 기반하여 생성될 수 있다.
전술한 실시예에서, 생체 인증 모듈(400)을 통해 수신된 생체 데이터는 사용자 인증을 위하여 사용되고, DEK 값은 스토리지 장치(500)마다 가지는 고유한 값으로 기재하였으나, 이에 제한되는 것은 아니다.
다양한 실시예들에 따라, DEK 값은 기 저장된 생체 데이터에 기반하여 추가적으로 암호화될 수도 있다. 이 경우, 생체 데이터는 생체 인증 모듈(400)에서 올바른 사용자인지 인증하는데 사용되는 동시에, DEK 값을 획득하기 위하여 사용될 수 있다. DEK 값을 추가로 암호화함에 따라서 외부 침입자(예를 들어, 해커)가 DEK 값만 획득하여 사용자 데이터를 복호화하는 것을 방지할 수 있다.
다양한 실시예들에 따라, 생체 인증 모듈(400)은 생체 데이터 저장 회로(410) 및 인증 회로(420)를 포함할 수 있다. 생체 데이터 저장 회로(410)는 사용자 등록 과정에서 입력된 생체 데이터들을 저장할 수 있다. 상기 사용자 등록 과정은 후술하는 도 7에서 SED 기능을 지원하는 소프트웨어를 이용하여 수행될 수 있다. 생체 데이터 저장 회로(410)는 생체 인증 모듈(400)로 생체 데이터가 입력됨에 응답하여 인증 회로(420)에게 저장된 생체 데이터를 전달할 수 있다.
인증 회로(420)는 사용자 인증을 위한 데이터 비교를 수행할 수 있다. 예를 들어, 인증 회로(420)는 입력된 생체 데이터와 생체 데이터 저장 회로(410)의 생체 데이터를 비교할 수 있다. 입력된 생체 데이터와 생체 데이터 저장 회로(410)의 생체 데이터가 일치하지 않는 경우, 인증 결과로서 “0” 또는 로직 로우를 출력할 수 있다. 입력된 생체 데이터와 생체 데이터 저장 회로(410)의 생체 데이터가 일치하는 경우, 인증 결과로서 “1” 또는 로직 하이를 출력할 수 있다. 즉, 상기 인증 결과는 도 1a 내지 도 1d에 도시된 사용자 인증 데이터에 상응할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 호스트 장치와 스토리지 장치간에 인터페이스를 도시한다.
도 6을 참조하면, SD 컨트롤러(220)는 프로세서(610), RAM(620), 호스트 인터페이스(930), 메모리 인터페이스(640), 생체 인증 모듈(660) 및 재연결 모듈(650)을 포함할 수 있다.
프로세서(610)는 중앙처리장치 또는 마이크로 프로세서 등을 포함할 수 있고, SD 컨트롤러(220)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(610)는 SD 컨트롤러(220)를 제어하기 위한 소프트웨어(software) 또는 펌웨어(firmware)를 구동하도록 구성될 수 있으며, 소프트웨어 또는 펌웨어는 RAM(620)에 로딩되어 구동될 수 있다. RAM(620)은 프로세서(610)의 동작 메모리, 캐시 메모리, 또는 버퍼 메모리로 이용될 수 있다. RAM(620)에는 메모리 장치에 기록될 기록 데이터가 일시적으로 저장될 수 있고, 또한, 메모리 장치에서 독출된 독출 데이터가 일시적으로 저장될 수 있다.
호스트 인터페이스(630)는 호스트 장치(100)와 인터페이스하여 호스트 장치(100)로부터 메모리 동작의 요청을 수신한다. 또한, 메모리 인터페이스(640)는 SD 컨트롤러(220)와 메모리 장치(미도시) 사이의 인터페이스를 제공할 수 있으며, 예를 들어, 기록 데이터 및 독출 데이터가 메모리 인터페이스(640)를 통해 메모리 장치와 송수신될 수 있다. 또한, 메모리 인터페이스(640)는 커맨드 및 어드레스를 메모리 장치로 제공할 수 있으며, 또한 메모리 장치로부터 각종 정보들을 수신하여 이를 SD 컨트롤러(220) 내부로 제공할 수 있다.
예시적인 실시예에 따라, 재연결 모듈(650) 및 생체 인증 모듈(660)은 소프트웨어 방식에 기반하여 전술한 실시예들에 따른 재연결에 관련된 다양한 동작들을 수행할 수 있고, 재연결 모듈(650)은 데이터 처리 모듈(651), 사용자 인증 모듈(652) 및 재연결 트리거 모듈(653)를 포함할 수 있다. 소프트웨어 방식에 기반하여 본 발명의 실시예들에 따른 동작이 수행되는 경우, 생체 인증 모듈(660), 데이터 처리 모듈(651), 생체 인증 처리 모듈(652) 및 재연결 트리거 모듈(653) 각각은 프로세서(610)에 의해 실행 가능한 프로그램들을 포함할 수 있고, 상기 프로그램들은 RAM(620)에 로딩되어 프로세서(610)에 의해 실행될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 호스트 장치의 동작을 나타내는 흐름도이다.
도 7을 참조하면, 호스트 장치(100)는 스토리지 장치(500)와 연결을 검출할 수 있다(동작 S710). 동작 S710은 도 2의 동작 S130, 도 3의 동작 S310에 대한 기재를 참조하여 설명될 수 있다. 호스트 장치(100)는 스토리지 장치(500)가 SED 기능을 지원함을 식별할 수 있다(동작 S720). 예를 들어, 호스트 장치(100)는 스토리지 장치(500)에 대한 구성 정보(configuration information)를 수신하고, SED 지원 여부를 나타내는 식별자(identifier)를 통해 SED 기능의 지원 여부를 확인할 수 있다.
다양한 실시예들에 따라, 스토리지 장치(500)가 SED를 지원하는 경우, TCG(Trusted Computing Group) 프로토콜에 기반한 통신이 수행될 수 있다. TCG 프로토콜은 SED를 지원하는 통신 규약으로서, 스토리지 장치(500)에서 사용자 영역의 파티션 방법, 잠금 상태 및 잠금 해제 상태를 변경하는 방법에 관한 것이다. 예를 들어, 스토리지 장치(500)가 SED를 지원하는 경우, TCG 프로토콜에 기반하여 SMBR이 생성될 수 있다.
호스트 장치(100)는 SED 기능을 지원하는 소프트웨어를 설치할 수 있다(동작 S730). 일 실시예에 따라, 호스트 장치(100)는 스토리지 장치(500)가 SED 기능을 지원하는 것을 식별하였으나, 스토리지 장치(500)에 SED 기능이 비활성화된 경우, 상기 소프트웨어를 설치할 것을 제안하는 팝업 창(pop-up window)을 표시하거나, 상기 소프트웨어의 설치 파일이 자동으로 실행되도록 할 수 있다. 호스트 장치(100)는 SED 기능을 지원하는 소프트웨어를 통하여 생체 데이터의 획득을 가이드(guide)할 수 있다(동작 S740). 상기 소프트웨어를 실행하는 경우, 호스트 장치(100)는 스토리지 장치(500)의 생체 인증 모듈(400)을 통해 SED 기능을 활성화하기 위한 생체 데이터의 입력을 요구할 수 있다. 상기 가이드는 팝업-창을 포함하는 시각적 가이드 또는 음성 출력을 포함하는 청각적 가이드 중 적어도 하나에 기반할 수 있다. 스토리지 장치(500)는 입력된 생체 데이터를 생체 데이터 저장 회로(410)에 저장할 수 있다(동작 S750). 상기 입력된 생체 데이터는, 호스트 장치(100)에게 전달될 필요가 없기 때문에, 일단 사용자 등록 과정을 수행하여 SED 기능을 활성화한 이후에는 호스트 장치(100)에 상기 소프트웨어를 설치하지 않거나, 호스트 장치(100)와 연결되지 않은 상태라고 하더라도 스토리지 장치(400)에 구비된 생체 인증 모듈(400)을 통한 생체 데이터 입력만으로 스토리지 장치(400)의 잠금 해제를 수행할 수 있다.
전술한 실시예에서, 사용자 등록 과정에서 입력된 생체 데이터를 호스트 장치(100)에게 전송하지 않는 것으로 기재하였으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, 호스트 장치(100)는 스토리지 장치(500)의 생체 인증 모듈과 구별되는 별도의 생체 인증 모듈을 더 구비할 수 있다. 예를 들어, 상기 별도의 생체 인증 모듈은 별도의 장치로서, 호스트 장치(100)의 입/출력 인터페이스를 통하여 연결될 수도 있고, 호스트 장치(100)와 통합되어 임베디드될 수도 있다. 호스트 장치(100)와 연결된 생체 인증 모듈이 존재하는 경우, 호스트 장치(100)는 상기 생체 데이터를 스토리지 장치(500)에게 요청할 수도 있다. 또는, 호스트 장치(100)는 호스트 장치(100)에 연결된 생체 인증 모듈을 통해 사용자로부터 생체 데이터를 획득하고, 획득된 생체 데이터를 스토리지 장치(400)에게 전송할 수도 있다. 호스트 장치(100)는 스토리지 장치(500)로부터 수신한 생체 데이터를 저장하고, 사용자 인증에 사용할 수도 있다. 예를 들어, 호스트 장치(100)는 생체 인증 모듈(400)을 포함하는 스토리지 장치(500)의 연결을 식별하고, 상기 소프트웨어를 자동 실행하여 생체 데이터 입력을 요청할 수도 있다. 사용자가 상기 요청에 응답하여 호스트 장치(100)의 생체 인증 모듈(400)을 통해 생체 데이터를 입력한 경우, 호스트 장치(100)에서 기 저장된 생체 데이터와 비교하여 사용자 인증을 수행하고 결과를 스토리지 장치(500)에게 전달할 수도 있고, 단순히 상기 별도의 생체 인증 모듈을 통해 입력된 생체 데이터를 스토리지 장치(500)에게 전달하여 스토리지 장치(500)가 사용자 인증을 수행하도록 할 수도 있다.
도 8은 비휘발성 메모리 시스템의 블록도이다. 도 1과 중복되는 기재는 생략될 수 있다.
도 8을 참조하면, 호스트 장치(100)는 SD 컨트롤러(220)의 상태를 식별하기 위한 커맨드(CMD_MONITOR)를 전송할 수 있다. 도 8의 SD 컨트롤러(220)는 본 발명의 다양한 실시예들에 따른 도 1의 LINK 컨트롤러(210) 또는 도 2의 연결 관리 회로(250)를 구비하지 않을 수 있다. 도 8의 SD 컨트롤러(220)는 외부(예를 들어, 호스트 장치(100))로부터 수신하는 커맨드에 종속적일 수 있다. 호스트 장치(100)는 주기적으로 SD 컨트롤러(220)에게 CMD_MONITOR 신호를 송신할 수 있다. 예를 들어, SD 컨트롤러(220)의 상태가 잠금 상태에서 잠금 해제 상태로 변경된 경우, 재연결을 수행해야 변경된 포인터 1에 따라 사용자 데이터 영역으로 액세스가 가능할 수 있다. 다만, SD 컨트롤러(220) 및 비휘발성 메모리(300)는 수동(passive) 장치이므로, SD 컨트롤러(220)의 상태가 변경되었는지 주기적으로 확인해야 한다. 상기 수동 장치는, 커맨드를 수신해야 이에 대한 응답을 송신할 수 있는 장치로서, 독립적으로 먼저 신호를 송신하지 못하는 장치들을 지칭할 수 있다.
SD 컨트롤러(220)는 주기적으로 수신되는 CMD_MONITOR 신호에 대응하여 응답 신호를 송신해야 한다. 예를 들어, 호스트 장치(100)는 SD 컨트롤러(220)의 상태가 어느 시점에 잠금 해제 되었는지 알 수 없기 때문에, 잠금 해제 상태를 지시하는 응답 신호(RSP_MONITOR)를 수신할 때까지 주기적으로 SD 컨트롤러(220)에게 CMD_MONITOR 신호를 송신한다. 따라서, SD 컨트롤러(220)는 주기적으로 송신되는 CMD_MONITOR 신호에 응답하여 RSP_MONITOR 신호를 호스트 장치(100)에게 송신해야 한다. 주기적으로 송수신되는 CMD_MONITOR 신호 및 RSP_MONITOR 신호는 각각 호스트 장치(100) 및 SD 컨트롤러(220)에게 부하로 작용하여 전체 메모리 시스템의 성능을 저하시킬 수 있다.
호스트 장치(100)는 SD 컨트롤러(220)에게 재연결을 수행할 것을 요청하는 신호를 송신할 수 있다. 예를 들어, 호스트 장치(100)가 주기적으로 모니터링을 수행하는 중에, 잠금 해제 상태를 지시하는 응답 신호가 수신될 수 있다. 호스트 장치(100)는 재연결을 수행해야 변경된 포인터에 따라 사용자 데이터 영역으로 액세스할 수 있다. 따라서, 호스트 장치(100)는 SD 컨트롤러(220)에게 재연결을 수행할 것을 지시하는 커맨드를 송신해야 한다. 호스트 장치(100)가 CMD_RELINK 신호를 매번 전송하는 경우, 잠금 해제 상태의 SD 컨트롤러(220)는 비휘발성 메모리(300)를 액세스하는데 지연이 발생할 수 있다. 왜냐하면, SD 컨트롤러(220)가 잠금 해제 상태로 변경되었더라도, 호스트 장치(100)는 다음 주기의 CMD_MONITOR 신호를 송신하고, SD 컨트롤러(220)에서 상기 CMD_MONITOR 신호에 응답하여 RSP_MONITOR 신호를 전달하기 전까지 SD 컨트롤러(220)를 잠금 상태로 식별하기 때문이다. 또한, 호스트 장치(100)는 RSP_MONITOR 신호를 수신한 이후, CMD_RELINK 신호를 다시 전송해야 하므로, CMD_RELINK 신호가 전달되는데 걸리는 시간만큼 지연이 추가적으로 발생할 수 있다.
도 9는 비휘발성 메모리 시스템의 신호 교환을 도시한다. 도 3과 중복되는 기재는 생략하기로 한다.
도 9를 참조하면, 호스트 장치(100)는 일정 주기마다 SD 컨트롤러(220)의 잠금 상태를 확인하기 위한 모니터링 신호(CMD_MONITOR)를 송신해야 한다. 또한, SD 컨트롤러(220)는 일정 주기마다 수신되는 모니터링 신호(CMD_MONITOR)에 대하여 SD 컨트롤러(220)의 상태를 나타내는 응답 신호(RSP_MONITOR)를 반드시 송신해야 한다.
동작 S910을 참조하면, SD 컨트롤러(220)의 잠금 해제를 위한 사용자 입력은 호스트 장치(100)를 통해서만 입력될 수 있다. 도 1a 및 도 1b와 달리, 스토리지 장치(400)는 생체 인증 모듈(400)을 구비하지 않기 때문이다. 따라서, 스토리지 장치(400)의 잠금 해제를 수행하는 것은 호스트 장치(100)에 종속적일 수 있다.
또한, 동작 S160에서 SD 컨트롤러(220)가 잠금 해제 상태로 변경되었지만, 호스트 장치(100)는 여전히 SD 컨트롤러(220)를 잠금 상태로 식별할 수 있다. 이후, 주기적으로 송신하는 CMD_MONITOR 신호에 대한 응답 신호로서 RSP_MONITOR(UNLOCK) 신호를 수신한 시점에 SD 컨트롤러(220)의 상태 변경을 인식할 수 있다. 즉, SD 컨트롤러(220)가 실제로 잠금 해제되는 시점으로부터 호스트 장치(100)가 잠금 해제를 식별하는 시점까지의 지연 시간이 발생할 수 있다.
또한, 호스트 장치(100)는 사용자 데이터 영역을 인식하기 위하여, 재연결을 수행할 것을 요청하는 커맨드를 송신해야 한다. CMD_RELINK 신호를 송신하는데 걸리는 시간, SD 컨트롤러(220)가 CMD_RELINK 신호를 수신하고, 재연결을 시작할 때까지 시간만큼 재연결이 지연될 수 있다.
전술한 도 8, 도 9를 본 발명의 예시적 실시예에 따른 도 1a, 도 2를 함께 참조하는 경우, 본 발명의 효과가 명확하게 이해될 수 있을 것이다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 장치를 SSD 시스템에 적용하는 예를 나타내는 블록도이다.
도 10을 참조하면, SSD 시스템(1000)은 호스트 장치(100) 및 SSD(1100)를 포함할 수 있다. SSD(1100)는 신호 커넥터(signal connector)를 통해 호스트 장치(100)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원을 입력 받는다. SSD(1100)는 SSD 컨트롤러(1110), 복수의 메모리 장치들(1120 내지 1140) 및 LINK 컨트롤러(1160), 및 생체 인증 모듈(1170)를 포함할 수 있다. 이때, SSD 컨트롤러(1110), LINK 컨트롤러(1160), 생체 인증 모듈(1170)는 도 1a 내지 도 9에 도시된 실시예들을 이용하여 구현될 수 있다. 이에 따라서, SSD(1100)는 호스트 장치(100)의 커맨드에 종속적으로 재연결을 수행하지 않고, 호스트 장치(100)로부터 커맨드가 수신되지 않더라도, 독립적으로 재연결을 수행할 수 있다. 또한, SSD(1100)는 호스트 장치(100)로부터 모니터링 커맨드를 수신하지 않고, 모니터링 커맨드에 응답하는 응답 신호를 송신할 필요가 없으므로 메모리 시스템의 부하가 감소될 수 있다. 또한, SSD(1100)는 호스트 장치(100)로부터 모니터링 커맨드 또는 재연결을 지시하는 커맨드를 수신하지 않으므로, 호스트 장치(100)가 모니터링 커맨드 또는 재연결을 지시하는 커맨드를 지원하지 않는 프로토콜 또는 운영체제에 기반하더라도 독자적으로 재연결을 수행할 수 있다. 즉, 호스트 장치(100) 또는 호스트 장치(100)의 운영체제에 대한 의존성(dependency)을 감소시키고 다양한 종류의 호스트 장치에서 사용될 수 있다. 또한, SSD(1100)는 잠금 상태가 해제된 경우, 독립적으로 재연결을 수행하므로, 모니터링 커맨드 및 재연결을 지시하는 커맨드의 송수신에 소요되는 시간 지연 없이 빠르게 재연결을 수행할 수 있다.
본 개시의 실시예들에 따른 메모리 장치는 SSD(1100) 뿐만 아니라, 메모리 카드 시스템, 컴퓨팅 시스템, UFS 등에 탑재되거나 적용될 수 있다. 또한 본 개시의 실시예에 다른 메모리 장치의 동작 방법은 비휘발성 메모리가 탑재되는 다양한 종류의 전자 시스템에 적용될 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 스토리지 장치의 블록도이다. 도 1a와 중복되는 기재는 생략될 수 있다.
도 11을 참조하면, 스토리지 장치(500)는 RFID(Radio Frequency IDentification) 모듈(430)을 더 포함할 수 있다. 상기 RFID 모듈(430)은 무선 주파수를 이용하여 RFID 태그 장치와 RFID 리더 장치간에 데이터를 교환하기 위한 모듈을 지칭할 수 있다. 다양한 실시예들에 따라, RFID 모듈(430)은 NFC(Near Field Communication) 모듈 및/또는 MST(Magnetic Security Transfer) 모듈로 구현될 수 있다.
다양한 실시예들에 따라, 사용자는 호스트 장치(100)와 구별되는 외부 장치(미도시)를 구비할 수 있다. 예를 들어, 상기 외부 장치는 생체 인증이 가능하며, 무선 통신을 수행할 수 있는 스마트폰과 같은 장치들을 포함할 수 있다. 사용자는 상기 외부 장치를 이용하여 생체 인증을 수행할 수 있다. 상기 외부 장치는, 생체 인증 모듈을 포함하고 있어, 입력된 생체 데이터에 기반하여 사용자 인증을 완료할 수 있다. 상기 외부 장치는, 사용자 인증이 성공한 것에 응답하여, 사용자 인증 데이터를 상기 NFC 모듈 또는 상기 MST 모듈을 통하여 스토리지 장치(500)에게 전송할 수 있다. 이 경우, 상기 외부 장치는 스토리지 장치(500)로부터 미리 정의된 거리 이내에 위치하도록 사용자에 의해 조작(manipulate)될 수 있다. 예를 들어, MST 모듈인 경우, 외부 장치 고유의 식별자와 함께 사용자 인증의 성공 여부를 지시하는 사용자 인증 데이터를 자기장을 통해 전송할 수 있다. 스토리지 장치(500)는 RFID 모듈(430)을 통하여 상기 사용자 인증 데이터를 수신하고, “1” 또는 로직 하이인 경우, 잠금 해제를 수행할 수 있다. 전술한 실시예에 따라, 사용자는 호스트 장치(100)의 개입 없이 스토리지 장치(500)에 구비된 생체 인증 모듈(400)뿐만 아니라, 기존에 구비한 외부 장치를 이용하여 스토리지 장치(500)의 잠금 해제를 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 비휘발성 메모리 시스템에 있어서,
    전력 라인 및 데이터 라인을 포함하는 물리 케이블을 통해 호스트 장치와 연결되는 스토리지 장치를 포함하고,
    상기 스토리지 장치는,
    비휘발성 메모리;
    상기 호스트 장치로부터 상기 전력 라인을 통해 전력이 공급되는 동안, 상기 데이터 라인을 일시적으로 비활성화하는 링크 컨트롤러; 및
    메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는, 생체 데이터를 수신하고, 상기 생체 데이터에 기반하여 사용자 인증을 수행하기 위한 생체 인증 모듈, 및 상기 사용자 인증의 결과에 기반하여 메모리 컨트롤러의 상태를 변경하기 위한 생체 인증 처리 회로와 상기 메모리 컨트롤러의 상태 변경에 기반하여 상기 링크 컨트롤러를 제어하기 위한 재연결 트리거 회로와 데이터의 암호화 및 복호화하는 데이터 처리 회로를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러의 상태는,
    잠금 상태 또는 잠금 해제 상태 중 하나에 상응하고,
    상기 비휘발성 메모리는,
    상기 잠금 해제 상태 동안, 상기 호스트 장치가 액세스할 수 있는 제1 영역 및 상기 잠금 상태 동안 상기 호스트 장치가 액세스할 수 있는 제2 영역을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제2항에 있어서,
    상기 메모리 컨트롤러는,
    상기 스토리지 장치의 파워가 오프(off)되는 것에 응답하여, 메모리 컨트롤러의 상태를 상기 잠금 상태로 변경하고,
    상기 생체 인증 모듈은,
    입력된 생체 데이터와 미리 저장된 생체 데이터가 일치하는 경우, 사용자 인증을 완료하고, 상기 사용자 인증의 결과를 지시하는 사용자 인증 데이터를 상기 생체 인증 처리 회로에게 송신하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  4. 제2항에 있어서,
    상기 생체 인증 처리 회로는,
    MBR(master boot record) 정보를 상기 제2 영역에 포함되는 제2 MBR을 지시하도록 포인터 정보를 변경하여 상기 잠금 상태로 변경하고,
    상기 MBR 정보를 상기 제1 영역에 포함되는 제1 MBR을 지시하도록 상기 포인터 정보를 변경하여 상기 잠금 해제 상태로 변경하고,
    상기 제1 MBR은,
    OS(operating system) MBR에 상응하고,
    상기 제2 MBR은,
    SMBR(shadow MBR)에 상응하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  5. 제1항에 있어서,
    상기 물리 케이블은,
    핫 플러그(hot plug)를 지원 가능한 인터페이스를 위한 케이블에 상응하고,
    상기 인터페이스는,
    USB(universal serial bus) 인터페이스, SATA(serial ATA) 인터페이스, PATA(parallel ATA) 인터페이스, SCSI(small computer system interface) 인터페이스, SAS(serial attached SCSI) 인터페이스 중 적어도 하나에 상응하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  6. 제1항에 있어서,
    상기 생체 인증 처리 회로는,
    상기 사용자 인증의 성공에 응답하여, 상기 메모리 컨트롤러의 상태를 잠금 상태에서 잠금 해제 상태로 변경하고,
    상기 잠금 상태에서 상기 잠금 해제 상태로의 변경을 완료함에 응답하여, 상기 재연결 트리거 회로에게 제어 신호를 송신하고,
    상기 재연결 트리거 회로는,
    상기 제어 신호를 수신함에 응답하여 상기 링크 컨트롤러에게 재연결 트리거 신호를 송신하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제6항에 있어서,
    상기 링크 컨트롤러는,
    상기 호스트 장치로부터 재연결을 지시하는 커맨드를 수신하기 이전에, 상기 재연결 트리거 신호를 수신하고,
    상기 재연결 트리거 신호의 수신에 응답하여, 상기 전력 라인을 활성화하는 동안, 상기 데이터 라인을 일시적으로 비활성화하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제1항에 있어서,
    상기 링크 컨트롤러와 상기 메모리 컨트롤러는 동일한 반도체 기판에 형성되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  9. 제1항에 있어서,
    상기 생체 데이터는,
    사용자의 지문에 대한 이미지, 사용자의 홍채에 대한 이미지, 사용자의 정맥에 대한 이미지, 사용자의 음성에 대한 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 제1항에 있어서,
    상기 호스트 장치는,
    상기 스토리지 장치의 상기 메모리 컨트롤러의 상태를 식별하기 위한 모니터링 커맨드 및 상기 메모리 컨트롤러의 상태가 잠금 해제 상태로 변경되는 것에 응답하여 재연결을 지시하는 커맨드를 송신하는 것을 바이패스(bypass)하는 것을 특징으로 하는 비휘발성 메모리 시스템.
KR1020190159365A 2019-12-03 2019-12-03 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법 KR20210069480A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190159365A KR20210069480A (ko) 2019-12-03 2019-12-03 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법
US17/035,925 US11645000B2 (en) 2019-12-03 2020-09-29 Storage device including memory controller, and non-volatile memory system including the same and operating method thereof
CN202011297633.5A CN112905504A (zh) 2019-12-03 2020-11-18 存储设备、包括其的非易失性存储器系统及其操作方法
EP20211497.1A EP3832515A1 (en) 2019-12-03 2020-12-03 Storage device including memory controller, and non-volatile memory system including the same and operating method thereof
US18/139,858 US12019907B2 (en) 2019-12-03 2023-04-26 Storage device including memory controller, and non-volatile memory system including the same and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190159365A KR20210069480A (ko) 2019-12-03 2019-12-03 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210069480A true KR20210069480A (ko) 2021-06-11

Family

ID=73698606

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190159365A KR20210069480A (ko) 2019-12-03 2019-12-03 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법

Country Status (4)

Country Link
US (2) US11645000B2 (ko)
EP (1) EP3832515A1 (ko)
KR (1) KR20210069480A (ko)
CN (1) CN112905504A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230418498A1 (en) * 2022-06-27 2023-12-28 Western Digital Technologies, Inc. Memory partitioned data storage device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442286B1 (en) * 1998-12-22 2002-08-27 Stmicroelectronics, Inc. High security flash memory and method
WO2003003295A1 (en) * 2001-06-28 2003-01-09 Trek 2000 International Ltd. A portable device having biometrics-based authentication capabilities
JP4238514B2 (ja) 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
SG113483A1 (en) * 2003-10-30 2005-08-29 Ritronics Components S Pte Ltd A biometrics parameters protected usb interface portable data storage device with usb interface accessible biometrics processor
JP4701615B2 (ja) * 2004-01-23 2011-06-15 ソニー株式会社 情報記憶装置
US8000502B2 (en) * 2005-03-09 2011-08-16 Sandisk Technologies Inc. Portable memory storage device with biometric identification security
US7512720B2 (en) 2005-04-29 2009-03-31 Sigmatel, Inc. System and method for accessing universal serial bus networks
EP3029597A1 (en) * 2005-07-21 2016-06-08 Clevx, LLC Memory lock system
US20080028146A1 (en) * 2006-07-26 2008-01-31 Sandisk Il Ltd. USB flash disk device and method
WO2009097604A1 (en) * 2008-01-31 2009-08-06 Priva Technologies Inc. System and method for self-authenticating token
WO2009130538A2 (en) 2008-04-22 2009-10-29 E-Roots Pte Ltd Data storage device
KR101662729B1 (ko) 2009-05-08 2016-10-06 삼성전자주식회사 시리얼 인터페이스 프로토콜을 사용하여 호스트와 인터페이스하는 비휘발성 메모리 기반 저장 장치의 커맨드 처리 방법 및 상기 방법을 수행하기 위한 메모리 컨트롤러
KR101070766B1 (ko) 2010-01-28 2011-10-07 주식회사 세미닉스 메모리 기능과 보안토큰 기능을 구비한 usb 복합장치
US8566603B2 (en) 2010-06-14 2013-10-22 Seagate Technology Llc Managing security operating modes
CN104008070A (zh) 2013-02-25 2014-08-27 Lsi公司 固态驱动器中的主引导记录保护
KR102148889B1 (ko) 2014-08-18 2020-08-31 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US9525675B2 (en) * 2014-12-26 2016-12-20 Mcafee, Inc. Encryption key retrieval
KR101936194B1 (ko) 2017-05-23 2019-04-03 (주)피코씨이엘 인증에 기반을 둔 다중 파티션 선택적 활성 기능을 갖는 sd 메모리 제어 방법

Also Published As

Publication number Publication date
US12019907B2 (en) 2024-06-25
EP3832515A1 (en) 2021-06-09
US11645000B2 (en) 2023-05-09
US20210165599A1 (en) 2021-06-03
US20230266914A1 (en) 2023-08-24
CN112905504A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US11662918B2 (en) Wireless communication between an integrated circuit memory device and a wireless controller device
JP6985011B2 (ja) アクセス保護スキームを確保するための装置及び方法
US20160174068A1 (en) Integrated Circuit Device That Includes A Secure Element And A Wireless Component For Transmitting Protected Data Over A Local Point-To-Point Wireless Communication Connection
US11681637B2 (en) Memory controller, storage device including the same, and operating method of the memory controller
US8122172B2 (en) Portable information security device
US20150363763A1 (en) Mobile Information Apparatus That Includes A Secure Element Storing Payment Information And Using A Cryptographic Technique For Implementing Mobile Payment
CN113113068A (zh) 存储器控制器和包括存储器控制器的存储装置
US10783088B2 (en) Systems and methods for providing connected anti-malware backup storage
US20170235682A1 (en) Volatile/non-volatile memory device access provisioning system
US12019907B2 (en) Storage device including memory controller, and non-volatile memory system including the same and operating method thereof
US11947466B2 (en) Storage device, nonvolatile memory system including memory controller, and operating method of the storage device
EP2483800B1 (en) Method and system for supporting portable desktop with enhanced functionality
US8190813B2 (en) Terminal apparatus with restricted non-volatile storage medium
JP5160940B2 (ja) ハードディスク装置
KR20110023685A (ko) 인증 기능을 구비하는 ssd 및 그 구동 방법
KR101936194B1 (ko) 인증에 기반을 둔 다중 파티션 선택적 활성 기능을 갖는 sd 메모리 제어 방법
KR20180044173A (ko) 시큐어 엘리먼트, 시큐어 엘리먼트의 동작 방법 및 시큐어 엘리먼트를 포함하는 전자 장치
KR102324837B1 (ko) 라이센스 정보 기반의 응용 프로그램 실행 방법 및 라이센스 정보 관리 방법
TWI786543B (zh) 無線通訊模組及其應用裝置控制系統與應用裝置控制方法
US20240012889A1 (en) Secure processor performing user authentication, and electronic device including the same
US20140208125A1 (en) Encryption and decryption device for portable storage device and encryption and decryption method thereof
KR20150080458A (ko) Nfc 보안 모듈을 갖는 usb 저장 장치