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

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

Info

Publication number
KR20210069481A
KR20210069481A KR1020190159366A KR20190159366A KR20210069481A KR 20210069481 A KR20210069481 A KR 20210069481A KR 1020190159366 A KR1020190159366 A KR 1020190159366A KR 20190159366 A KR20190159366 A KR 20190159366A KR 20210069481 A KR20210069481 A KR 20210069481A
Authority
KR
South Korea
Prior art keywords
host device
controller
state
storage device
memory controller
Prior art date
Application number
KR1020190159366A
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 KR1020190159366A priority Critical patent/KR20210069481A/ko
Priority to US17/026,714 priority patent/US11586559B2/en
Priority to CN202011112295.3A priority patent/CN112905495A/zh
Priority to EP20211710.7A priority patent/EP3832505A1/en
Publication of KR20210069481A publication Critical patent/KR20210069481A/ko
Priority to US18/097,530 priority patent/US11947466B2/en

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/4068Electrical coupling
    • 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
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법{STORAGE DEVICE INLCUDING 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는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다.
도 1b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 신호 교환을 도시한다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 컨트롤러의 동작을 나타내는 흐름도이다.
도 4a는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치의 저장 상태를 도시한다.
도 4b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치의 다른 저장 상태를 도시한다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 장치의 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 호스트 장치와 스토리지 장치간에 인터페이스를 도시한다.
도 7은 본 개시의 예시적 실시예에 따른 호스트 장치의 동작을 나타내는 흐름도이다.
도 8은 비휘발성 메모리 시스템의 블록도이다.
도 9는 비휘발성 메모리 시스템의 신호 교환을 도시한다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 장치를 SSD 시스템에 적용하는 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 다양한 실시예들에 대해 상세히 설명한다.
도 1a는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다. 도 1a를 참조하면, 비휘발성 메모리 시스템(10)이 개시된다. 비휘발성 메모리 시스템(10)은 호스트 장치(100) 및 스토리지 장치(400)를 포함할 수 있다.
스토리지 장치(400)는 링크 컨트롤러(이하, LINK 컨트롤러)(210), 스토리지 장치 컨트롤러(이하, SD 컨트롤러(220))(220) 및 비휘발성 메모리(300)를 포함할 수 있다.
호스트 장치(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)는 스토리지 장치(400)와 커맨드(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) 등과 같은 다양한 인터페이스 프로토콜들이 적용될 수도 있다.
다양한 실시예들에 따라, 스토리지 장치(400)는 데이터를 저장 및 출력할 수 있다. 스토리지 장치(400)는 전자 장치에 내장되는(embedded) 내부(internal) 메모리일 수 있다. 예를 들어, 스토리지 장치(400)는 임베디드 UFS(Universal Flash Storage) 메모리 장치, eMMC(embedded Multi-Media Card), 또는 SSD(Solid State Drive)일 수 있다. 스토리지 장치(400)는 호스트(100)와 동일한 기판 상에 임베디드될 수 있다. 일부 실시예들에서, 스토리지 장치(400)는 전자 장치에 탈착 가능한 외장(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)는 스토리지 장치(400)와 호스트 장치(100)간에 연결을 제어할 수 있다. LINK 컨트롤러(210)는 SD 컨트롤러(220)와 구별되는 별도의 구성을 포함하도록 구현되는 경우, 브릿지 보드(bridge board)로 지칭될 수도 있다. 상기 제어 가능한 연결은, 전력 라인을 통하여 전력을 공급받는 동안, 데이터 송수신을 위한 데이터 경로를 활성화 또는 비활성화하는 것을 지칭할 수 있다. 예를 들어, LINK 컨트롤러(210)는 USB 케이블(cable)을 통해 호스트 장치와 연결을 유지하는 동안, 상기 데이터 경로가 연결된 핀(pin)을 비활성화할 수 있다. 즉, 호스트 장치(100)로부터 전력을 공급 받는 동안, 상기 데이터 경로에 상응하는 핀을 비활성화 또는 디스에이블(disable)함으로써, 호스트 장치(100)는 스토리지 장치(400)와 상기 USB 케이블을 통해 물리적으로 연결된 상태이나, 데이터 경로에 상응하는 핀의 비활성화로 인하여 스토리지 장치(400)와 연결이 해제된 것으로 식별할 수 있다. 이후, LINK 컨트롤러(210)가 데이터 경로에 상응하는 핀을 다시 활성화함으로써 호스트 장치(100)는 스토리지 장치(400)를 다시 식별할 수 있다. LINK 컨트롤러(210)는 데이터 경로 상에 스위치(미도시)를 포함하고, 상기 스위치를 제어함으로써 연결을 제어할 수 있다. 다른 예를 들어, LINK 컨트롤러(210)는 마이크로컨트롤러(미도시)를 더 포함할 수 있다. LINK 컨트롤러(210)는 상기 마이크로컨트롤러를 리셋(reset) 또는 초기화(initialization)함으로써 전력을 공급받는 동시에 데이터 경로를 일시적으로 비활성화할 수 있다. 이에 따라, 실질적으로 호스트 장치(100)와 스토리지 장치(400) 사이에 플러그-아웃 또는 물리적인 연결 해제가 발생하지 않았음에도 불구하고, 호스트 장치(100)와 스토리지 장치(400)간에 재연결(relink)을 수행할 수 있다.
다양한 실시예들에 따라, SD 컨트롤러(220)는 데이터 처리 회로(230), 사용자 인증 회로(240) 및 재연결 트리거 회로(250) 및 사용자 입력 수신 회로(270)를 포함할 수 있다.
데이터 처리 회로(230)는 다양한 신호를 비휘발성 메모리(300)에게 제공하고, 기록 및 독출 등의 동작들을 제어할 수 있다. 예를 들어, SD 컨트롤러(220)는 커맨드(CMD) 및 어드레스(ADDR)를 비휘발성 메모리(300)에게 제공하여 메모리 셀 어레이에 저장된 데이터를 액세스할 수 있다.
다른 예를 들어, 데이터 처리 회로(230)는 데이터를 암호화하여 메모리 셀 어레이에 저장하거나, 또는 메모리 셀 어레이에 저장된 암호화된 데이터를 복호하여 독출 데이터로 출력할 수 있다. 데이터의 저장 및 출력 과정에서 암호화 및 복호화가 수행되므로, 스토리지 장치(400)를 도난 또는 분실하더라도, 저장된 데이터가 유출되는 것을 방지할 수 있다.
사용자 인증 회로(240)는 스토리지 장치(400)에 대한 진정한 사용자가 맞는지 판단할 수 있다. 사용자 인증 회로(240)는 호스트 장치(100)를 통하여 비밀번호 또는 패스워드를 수신하거나, 또는 스토리지 장치(400)에 구비된 사용자 입력 수신 회로(270)를 통하여 비밀번호 또는 패스워드를 수신할 수 있다.
예를 들어, 스토리지 장치(400)의 사용자는 스토리지 장치(400)가 암호화된 경우, 사용자 인증을 통과해야 사용자 데이터 영역으로 액세스할 수 있다. 따라서, 호스트 장치(100) 또는 스토리지 장치(400)의 사용자 입력 수신 회로(270)를 통해 사용자가 비밀번호 또는 패스워드를 입력할 수 있다. 상기 비밀번호 또는 패스워드는 사용자 입력으로 지칭될 수 있다. 상기 사용자 입력은 호스트 장치(100)로부터 수신되는 데이터(DATA) 중 적어도 하나에 포함될 수도 있고, 사용자 입력 수신 회로(270)로부터 사용자 인증 회로(240)에게 전달되는 데이터에 포함될 수 있다. 사용자 인증 회로(240)는 호스트 장치(100) 및 LINK 컨트롤러(210)를 통해 수신된 사용자 입력 또는 사용자 입력 수신 회로(270)로부터 수신된 사용자 입력을 기 저장된 비밀번호 또는 패스워드와 비교함으로써 스토리지 장치(400)의 사용자가 맞는지 여부를 판단할 수 있다. 비교 결과가 일치하지 않는 경우, 스토리지 장치(400)의 잠금(LOCK) 상태는 유지되므로, 사용자 데이터는 보호될 수 있다. 비교 결과가 일치하는 경우, 스토리지 장치(400)는 잠금 해제(UNLOCK) 상태로 변경되며, 사용자 데이터에 대한 액세스가 가능해질 수 있다.
재연결 트리거 회로(250)는 LINK 컨트롤러(210)에게 트리거 신호를 송신할 수 있다. 상기 트리거 신호는, LINK 컨트롤러(210)가 재연결을 수행하도록 제어하는 신호일 수 있다. 즉, LINK 컨트롤러(210)는 상기 트리거 신호를 수신함에 응답하여, 데이터 경로에 상응하는 핀을 비활성화하거나, 데이터 경로 상에 스위치를 비활성화하거나, 또는 LINK 컨트롤러(210)에 포함되는 마이크로컨트롤러를 초기화할 수 있다.
다양한 실시예들에 따라, 재연결 트리거 회로(250)는 SD 컨트롤러(220)의 상태에 적어도 기반하여 상기 트리거 신호를 LINK 컨트롤러(210)에게 송신할 수 있다. 예를 들어, SD 컨트롤러(220)가 잠금 상태에서 잠금 해제 상태로 천이하는 경우, 재연결 트리거 회로(250)는 LINK 컨트롤러(210)에게 상기 트리거 신호(TRIGGER SIGNAL)를 송신할 수 있다.
사용자 입력 수신 회로(270)는 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, SD 컨트롤러(220)의 상태를 잠금 상태에서 잠금 해제 상태로 변경하기 위한 비밀번호 또는 패스워드에 대한 데이터를 지칭할 수 있다. 사용자 입력 수신 회로(270)는 상기 사용자 입력을 수신하고, 상기 사용자 입력을 사용자 인증 회로(240)에게 전달할 수 있다. 사용자 인증 회로(240)는 수신된 사용자 입력과 기 저장된 비밀번호 또는 패스워드를 비교하여 사용자 인증을 수행할 수 있다.
일 실시예에 따라, 사용자 입력 수신 회로(270)는 다양한 장치들로 구현될 수 있다. 일 예로, 사용자 입력 수신 회로(270)는 다이얼 장치 또는 키패드로 구현될 수 있다. 사용자 입력 수신 회로(270)는 복수의 숫자를 입력하기 위한 다이얼 또는 조그(jog) 다이얼을 포함할 수 있다. 스토리지 장치(400)의 사용자는 상기 다이얼 또는 조그 다이얼을 조작하거나 키패드의 숫자를 터치 또는 누름(push)으로써 기 설정된 비밀번호 또는 패스워드와 동일한 숫자를 입력할 수 있다.
다른 실시예에 따라, 사용자 입력 수신 회로(270)는 RFID(Radio Frequency IDentification) 모듈로 구현될 수 있다. 상기 RFID 모듈은 무선 주파수를 이용하여 RFID 태그 장치와 RFID 리더 장치간에 데이터를 교환하기 위한 모듈을 지칭할 수 있다. 다양한 실시예들에 따라, RFID 모듈은 NFC(Near Field Communication) 모듈 및/또는 MST(Magnetic Security Transfer) 모듈로 구현될 수 있다. 예를 들어, 사용자는 호스트 장치(100)와 구별되는 외부 장치(미도시)를 구비할 수 있다. 상기 외부 장치는 생체 인증이 가능하며, 무선 통신을 수행할 수 있는 스마트폰과 같은 장치들을 포함할 수 있다. 상기 외부 장치는, 사용자 인증이 성공한 것에 응답하여, 사용자 인증 데이터를 상기 NFC 모듈 또는 상기 MST 모듈을 통하여 사용자 입력 수신 회로(270)에게 전송할 수 있다. 이 경우, 상기 외부 장치는 스토리지 장치(400)로부터 미리 정의된 거리 이내에 위치하도록 사용자에 의해 조작(manipulate)될 수 있다.
또 다른 실시예에 따라, 사용자 입력 수신 회로(270)는 생체 인증 모듈은 기 저장된 생체 데이터와 입력된 생체 데이터의 비교를 수행할 수 있다. 여기서, 생체 데이터는 사람의 신체적 특징에 기반하여 개인을 식별하거나 인증하는데 사용되는 데이터를 지칭할 수 있다. 예를 들어, 상기 생체 데이터는 지문 데이터, 홍채 데이터, 정맥 데이터, 음성 데이터, 망막 데이터 등 다양한 데이터를 포함할 수 있다. 전술한 다양한 실시예들에 따라, 사용자는 호스트 장치(100)를 통해 비밀번호를 입력하지 않더라도, 스토리지 장치(400)의 잠금 해제를 수행할 수 있다.
도 1b는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 시스템의 블록도이다. 도 1a와 중복되는 기재는 생략될 수 있다.
도 1a 및 도 1b를 함께 참조하면, SD 컨트롤러(220)는 연결 관리 회로(260)를 더 포함할 수 있다. 도 1a의 경우 LINK 컨트롤러(210) 및 SD 컨트롤러(220)는 서로 구별될 수 있는 별도의 컨트롤러인 것으로 기재되었으나, 이에 제한되는 것은 아니다.
다양한 실시예들에 따라, 도 1b에 따라, LINK 컨트롤러(210)는 SD 컨트롤러(220)로 통합(integrated)될 수 있다. 연결 관리 회로(260)는 호스트 장치(100)에 대한 연결을 제어하기 위한 회로일 수 있다. 연결 관리 회로(260)는 도 1a의 LINK 컨트롤러(210)와 동일 또는 유사한 동작을 수행할 수 있다. 예를 들어, 연결 관리 회로(260)는 SD 컨트롤러(220)의 복수의 핀들 중 데이터 경로에 상응하는 핀을 비활성화하거나, 상기 데이터 경로 상에 배치된 스위치를 비활성화하거나, 또는 SD 컨트롤러(220)를 리셋 또는 초기화(initialization)할 수 있다. 연결 관리 회로(260)를 이용하여, 호스트 장치(100)는 스토리지 장치(400)와 물리적 연결을 유지한 채로, 스토리지 장치(400)의 재연결을 수행할 수 있다.
도 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)는 비휘발성 메모리(300)의 포인터(POINTER) 정보를 변경함으로써 사용자 데이터 영역으로의 액세스를 비활성화할 수 있다. 이에 대한 구체적인 기재는 도 4a, 도 4b에서 서술하기로 한다.
동작 S130에서 호스트 장치(100)와 스토리지 장치(400)간에 물리적으로 연결될 수 있다. 예를 들어, 호스트 장치(100)와 스토리지 장치(400) 모두 USB 인터페이스를 지원하는 경우, 상기 물리적 연결은 USB 케이블에 기반하여 수행될 수 있다. 호스트 장치(100)는 스토리지 장치(400)와 연결된 경우, 전력 라인을 통해 전력을 공급하여 스토리지 장치(400)를 동작시킬 수 있다. 예를 들어, USB 인터페이스 중 USB 타입-C 인터페이스인 경우, 스토리지 장치(400)는 VBUS 핀을 통하여 호스트 장치(100)로부터 전력을 공급받을 수 있다.
동작 S140에서, SD 컨트롤러(220)는 사용자 입력(USER INPUT)을 수신할 수 있다. 상기 사용자 입력은, 스토리지 장치(400)의 잠금 해제를 위하여 미리 설정된 비밀번호 또는 패스워드를 지칭할 수 있다. 구체적으로, SD 컨트롤러(220)의 사용자 인증 회로(240)는 호스트 장치(100) 또는 사용자 입력 수신 회로(270)를 통해 상기 사용자 입력을 수신할 수 있다. 예를 들어, 호스트 장치(100)는 입/출력 인터페이스(110)를 통하여 사용자 입력을 수신할 수 있다. 상기 입/출력 인터페이스(110)는 마우스, 키보드, 터치스크린을 포함하는 다양한 입출력 장치들을 지칭할 수 있다. 또 다른 예를 들어, 사용자 입력 수신 회로(270)는 다이얼, 조그 다이얼, 생체 인증 모듈, RFID 모듈 및 키패드 중 적어도 하나로 구현될 수 있다.
동작 S150에서, SD 컨트롤러(220)는 사용자 인증(USER AUTHENTICATION)을 수행할 수 있다. SD 컨트롤러(220)는 호스트 장치(100) 또는 사용자 입력 수신 회로(270)로부터 사용자 입력을 전달받고, 사용자 인증 회로(240)를 이용하여 스토리지 장치(400)의 사용자가 맞는지 판단할 수 있다. 사용자 인증 회로(240)는 기 저장된 비밀번호와 상기 수신된 사용자 입력 값을 비교할 수 있다.
동작 S160에서, SD 컨트롤러(220)는 SD 컨트롤러(220)의 상태를 잠금 해제 상태로 천이할 수 있다. 동작 S150에서 기 저장된 비밀번호와 사용자 입력 값이 일치하는 경우, 스토리지 장치(400)의 사용자와 일치하는 것으로 판단하여, 사용자 데이터 영역으로의 액세스를 허용하기 위하여 SD 컨트롤러(220)의 상태를 잠금 해제 상태로 천이시킬 수 있다. 예를 들어, 사용자 인증 회로(240)는 상기 비교 결과가 일치하는 경우, 비휘발성 메모리(300)의 포인터(POINTER) 정보를 변경함으로써 사용자 데이터 영역으로의 액세스를 활성화할 수 있다. 이에 대한 구체적인 기재는 도 4a, 도 4b에서 서술하기로 한다. 사용자 인증 회로(240)는 상기 포인터 정보를 변경하고, 재연결 트리거 회로(250)에게 제어 신호를 전달할 수 있다.
동작 S170에서, 호스트 장치(100)와 스토리지 장치(400)의 재연결이 수행될 수 있다. 전술한 바와 같이, 상기 재연결은 물리적으로 연결이 해제되었다가 재차 물리적인 연결이 이루어지는 것을 지칭하는 것이 아니다. 즉, 상기 재연결은 플러그-아웃 및 플러그-인이 아니라, 플러그-인 상태에서 지속적으로 전력이 공급되는 동안 데이터 경로만을 일시적으로 비활성화하는 것을 지칭할 수 있다. 상기 재연결은, 도 1a의 LINK 컨트롤러(210) 또는 도 1b의 연결 관리 회로(260)를 통해 수행될 수 있다.
일 실시예에서, 스토리지 장치(400)가 도 1a의 LINK 컨트롤러(210)를 포함하는 경우, SD 컨트롤러(220)의 재연결 트리거 회로(250)는 LINK 컨트롤러(210)에게 트리거 신호를 송신할 수 있다. LINK 컨트롤러(210)는 상기 트리거 신호를 수신함에 응답하여 데이터 경로에 대응하는 핀을 일시적으로 디스에이블(disable)하거나, 데이터 경로상에 배치된 스위치를 일시적으로 비활성화거나, 마이크로프로세서(미도시)를 초기화함으로써 재연결을 수행할 수 있다. 다른 실시예에서, 스토리지 장치(400)가 도 1b와 같이 하나의 SD 컨트롤러(220)를 포함하도록 구현된 경우, 연결 관리 회로(260)를 제어함으로써 재연결을 수행할 수 있다. 예를 들어, 연결 관리 회로(260)는 재연결 트리거 회로(250)로부터 트리거 신호를 수신함에 응답하여, 데이터 경로에 대응하는 핀을 일시적으로 디스에이블(disable)하거나, 데이터 경로상에 배치된 스위치를 일시적으로 비활성화함으로써 재연결을 수행할 수 있다.
동작 S180에서, 호스트 장치(100)는 데이터의 기록 및/또는 독출을 수행할 수 있다. 동작 S170에서 재연결이 수행되어, 호스트 장치(100)는 스토리지 장치(400)를 재차 인식할 수 있다. 다만, 동작 S160에서 포인터 정보가 변경되었으므로, 호스트 장치(100)는 사용자 데이터 영역에서 부팅을 시작하고, 사용자 데이터 영역에 대하여 액세스할 수 있다. 따라서, 호스트 장치(100)는 사용자 데이터에 대한 독출을 요청(CMD_READ)하거나, 사용자 데이터 영역으로 데이터 기록(CMD_WRITE)을 요청할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 컨트롤러의 동작을 나타내는 흐름도이다.
도 3을 참조하면, SD 컨트롤러(220)는 호스트 장치(100)와 연결을 검출할 수 있다(동작 S310). 호스트 장치(100) 및 스토리지 장치(400)는 공통적으로 지원 가능한 인터페이스에 따라 연결될 수 있다. 예를 들어, 호스트 장치(100) 및 스토리지 장치(400)가 각각 USB 인터페이스를 지원하는 경우, 상기 연결은 USB 케이블을 통해 수행될 수 있다. 스토리지 장치(400)는 호스트 장치(100)와 연결됨으로써, 전력을 공급받고 데이터를 송수신할 수 있다. 다양한 실시예들에 따라, SD 컨트롤러(220)는 물리적인 연결이 해제될 때마다 즉, 전력 공급이 차단될 때마다 SD 컨트롤러(220)의 상태를 잠금 상태로 변경할 수 있다. 즉, 동작 S310에서 호스트 장치(100)와 연결되기 이전에 SD 컨트롤러(220)의 상태는 기 잠금 상태에 상응할 수 있다.
SD 컨트롤러(220)는 호스트 장치(100) 또는 사용자 입력 수신 회로(270)로부터 사용자 입력을 수신할 수 있다(동작 S320). 상기 사용자 입력은 비휘발성 메모리(300)의 잠금 해제를 위하여 미리 설정된 비밀번호 또는 패스워드를 지칭할 수 있다. SD 컨트롤러(220)는 미리 설정된 비밀번호 또는 패스워드와 수신된 사용자 입력이 일치하는지 비교함으로써 사용자 인증을 수행할 수 있다(동작 S330). SD 컨트롤러(220)는 상기 비교 결과에 기반하여 사용자 인증이 성공하였는지 판단할 수 있다(동작 S340). 일 예로, 사용자 입력과 기 설정된 비밀번호가 일치하지 않는 경우, SD 컨트롤러(220)는 다시 사용자 입력을 수신할 때까지 대기할 수 있다. 다른 예로, 사용자 입력과 기 설정된 비밀번호가 일치하는 경우, SD 컨트롤러(220)는 SD 컨트롤러(220)의 상태를 잠금 상태에서 잠금 해제 상태로 변경할 수 있다(동작 S350).
상기 잠금 해제 상태로의 변경은 SD 컨트롤러(220)가 포인터 정보를 정상 MBR로 변경함으로써 달성될 수 있으며, 이는 도 4a, 도 4b에서 후술하기로 한다. SD 컨트롤러(220)는 호스트 장치(100)가 변경된 포인터 정보에 따라 사용자 데이터 영역으로 액세스하도록 재연결을 수행할 수 있다(동작 S360).
도 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)과 같은 다양한 용어들로 지칭될 수 있다. 상기 비-보안 영역은 스토리지 장치(400)의 보안이 해제된 상태(비-보안 상태)에서 액세스할 수 있는 메모리 영역으로 이해될 수 있다.
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)를 저장하는 영역을 포함할 수 있다. 상기 보안 영역은, 스토리지 장치(400)의 보안이 유지되는 상태에서 액세스할 수 있는 메모리 영역으로 이해될 수 있다.
상기 제2 MBR은 쉐도우(shadow) MBR 또는 페이크(fake) MBR과 같은 다양한 용어들로 지칭될 수 있다. 상기 제2 MBR은 스토리지 장치(400)의 보안이 해제되지 않아 비-보안 영역으로의 액세스를 허용하지 않아야 하는 경우, 호스트 장치(100)가 강제로 사용자 데이터와 무관한 영역에서 부팅을 시작하도록 하는 MBR에 대응될 수 있다. 다양한 실시예들에 따라, 보안 영역 중 LBA 1에는 펌웨어(firmware) 파일을 저장할 수 있다. 사용자가 보안을 해제할 수 있도록 지원하는 소프트웨어의 설치를 유도하기 위함이다.
다양한 실시예들에 따라, SD 컨트롤러(220)는 포인터 1을 활성화할 수 있다. 포인터 1이 활성화되는 경우, 호스트 장치(100)는 스토리지 장치(400)에 연결되고, 비-보안 영역의 제1 MBR을 이용하여 부팅을 시작할 수 있다. 제1 MBR을 통해 부팅을 시작하는 경우, 호스트 장치(100)는 사용자 데이터가 저장된 영역에 액세스할 수 있다.
다양한 실시예들에 따라, SD 컨트롤러(220)는 포인터 2를 활성화할 수 있다. 포인터 2가 활성화되는 경우, 호스트 장치(100)는 스토리지 장치(400)에 연결되고, 보안 영역의 제2 MBR을 이용하여 부팅을 시작할 수 있다. 제2 MBR을 통해 부팅을 시작하는 경우, 호스트 장치(100)는 사용자 데이터가 저장된 영역을 볼 수 없으며, 호스트 장치(100)가 액세스할 수 있는 영역은 오직 자가 암호화 드라이브 지원 소프트웨어가 저장된 영역뿐일 수 있다. 즉, 포인터 2가 활성화되는 것은, 스토리지 장치(400)로 제공되는 전력이 차단되어, SD 컨트롤러(220)의 상태가 잠금 상태에 상응하는 것으로 이해될 수 있다.
다양한 실시예들에 따라, 도 4b는 복수의 사용자들이 저장 영역을 사용하는 경우를 도시한다. LBA 1 영역은 제1 사용자의 데이터가 저장된 영역일 수 있고, LBA 2 영역은 제2 사용자의 데이터가 저장된 영역일 수 있고, LBA 3 영역은 제3 사용자의 데이터가 저장된 영역일 수 있다. SD 컨트롤러(220)는 호스트 장치(100) 또는 사용자 입력 수신 회로(270)로부터 사용자 입력을 수신하면, 기 저장된 비밀번호 또는 패스워드와 일치하는지 비교할 수 있다. 예를 들어, 제1 사용자는 제1 비밀번호, 제2 사용자는 제2 비밀번호, 제3 사용자는 제3 비밀번호를 설정하였다고 가정할 수 있다. 이 경우, SD 컨트롤러(220)는 수신된 사용자 입력과 제1 비밀번호 내지 제3 비밀번호를 모두 비교할 수 있다. 제1 비밀번호 내지 제3 비밀번호와 모두 일치하지 않는 경우, 스토리지 장치(400)는 보안을 유지할 수 있다. 제1 비밀번호 내지 제3 비밀번호 중 일치하는 비밀번호가 있는 경우, 제1 MBR 영역의 파티션 정보 중 일치하는 비밀번호에 대응하는 사용자 데이터 영역의 시작 주소를 참조할 수 있다. 예를 들어, 제2 비밀번호와 사용자 입력이 일치하는 경우, SD 컨트롤러(220)는 제1 MBR 중 파티션 정보를 통해 LBA 2의 시작 주소를 식별할 수 있다. 이 때, 제1 사용자에 대한 LBA 1 영역 또는 제3 사용자에 대한 LBA 3 영역은 호스트 장치(100)에게 보이지 않을 수 있다. 호스트 장치(100)는 제1 MBR의 파티션 정보를 통해 참조한 LBA 1의 주소에 대해서만 액세스할 수 있기 때문이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 장치의 블록도이다.
이하에서 LINK 컨트롤러(210) 및 SD 컨트롤러(220)가 별도로 구현된 스토리지 장치(400)를 기준으로 서술하기로 한다. 다만, 이에 제한되는 것은 아니며, 도 1b와 같이 SD 컨트롤러(220)만으로 구현된 스토리지 장치(400)의 경우에도 마찬가지로 적용될 수 있다.
도 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는 스토리지 장치(400)의 고유한 값일 수 있다. 예를 들어, 상기 DEK는 스토리지 장치(400)의 GUID(global unique identifier)에 기반하여 생성될 수 있다.
전술한 실시예에서, 호스트 장치(100) 또는 사용자 입력 수신 회로(270)로부터 수신된 사용자 입력은 사용자 인증을 위하여 사용되고, DEK 값은 스토리지 장치(400)마다 가지는 고유한 값으로 기재하였으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, DEK 값은 기 설정된 비밀번호 또는 패스워드에 기반하여 추가적으로 암호화될 수도 있다. 이 경우, 사용자 입력은 사용자 인증 회로(240)에서 올바른 사용자인지 인증하는데 사용되는 동시에, DEK 값을 획득하기 위하여 사용될 수 있다. DEK 값을 추가로 암호화함에 따라서 외부 침입자(예를 들어, 해커)가 DEK 값만 획득하여 사용자 데이터를 복호하는 것을 방지할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 호스트 장치와 스토리지 장치간에 인터페이스를 도시한다.
도 6을 참조하면, SD 컨트롤러(220)는 프로세서(610), RAM(620), 호스트 인터페이스(630), 메모리 인터페이스(640), 및 재연결 모듈(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)은 소프트웨어 방식에 기반하여 전술한 실시예들에 따른 재연결에 관련된 다양한 동작들을 수행할 수 있고, 데이터 처리 모듈(651), 사용자 인증 모듈(652) 및 재연결 트리거 모듈(653)를 포함할 수 있다. 소프트웨어 방식에 기반하여 본 발명의 실시예들에 따른 동작이 수행되는 경우, 데이터 처리 모듈(651), 사용자 인증 모듈(652) 및 재연결 트리거 모듈(653) 각각은 프로세서(610)에 의해 실행 가능한 프로그램들을 포함할 수 있고, 상기 프로그램들은 RAM(620)에 로딩되어 프로세서(610)에 의해 실행될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 호스트 장치의 동작을 나타내는 흐름도이다.
도 7을 참조하면, 호스트 장치(100)는 스토리지 장치(400)와 연결을 검출할 수 있다(동작 S710). 동작 S710은 도 2의 동작 S130, 도 3의 동작 S310에 대한 기재를 참조하여 설명될 수 있다. 호스트 장치(100)는 스토리지 장치(400)가 SED 기능을 지원함을 식별할 수 있다(동작 S720). 예를 들어, 호스트 장치(100)는 스토리지 장치(400)에 대한 구성 정보(configuration information)를 수신하고, SED 지원 여부를 나타내는 식별자(identifier)를 통해 SED 기능의 지원 여부를 확인할 수 있다.
다양한 실시예들에 따라, 스토리지 장치(400)가 SED를 지원하는 경우, TCG(Trusted Computing Group) 프로토콜에 기반하여 통신할 수 있다. TCG 프로토콜은 SED를 지원하는 통신 규약으로서, 스토리지 장치(400)에서 사용자 영역의 파티션 방법, 잠금 상태 및 잠금 해제 상태를 변경하는 방법에 관한 것이다. 예를 들어, 스토리지 장치(400)가 SED 를 지원하는 경우, TCG 프로토콜에 기반하여 SMBR이 생성될 수 있다.
호스트 장치(100)는 SED 기능을 지원하는 소프트웨어를 설치할 수 있다(동작 S730). 일 실시예에 따라, 호스트 장치(100)는 스토리지 장치(400)가 SED 기능을 지원하는 것을 식별하였으나, 스토리지 장치(400)에 SED 기능이 비활성화된 경우, 상기 소프트웨어를 설치할 것을 제안하는 팝업 창(pop-up window)을 표시하거나, 상기 소프트웨어의 설치 파일이 자동으로 실행되도록 할 수 있다. 호스트 장치(100)는 SED 기능을 지원하는 소프트웨어를 통하여 사용자 비밀번호 또는 패스워드를 설정할 수 있다(동작 S740). 상기 소프트웨어를 실행하는 경우, SED 기능을 활성화하기 위한 비밀번호의 입력을 요구할 수 있으며, 호스트 장치(100)는 입력된 비밀번호 또는 패스워드를 스토리지 장치(400)에 전달할 수 있다(동작 S750). 상기 전달된 비밀번호 또는 패스워드는 사용자 인증 회로(240)에 저장될 수 있다. 사용자 인증 회로(240)는 호스트 장치(100)와 플러그-인 될 때마다 사용자가 입력하는 비밀번호와 저장된 비밀번호를 비교하여 SD 컨트롤러(220)의 잠금 상태를 제어할 수 있다.
도 8은 비휘발성 메모리 시스템의 블록도이다. 도 1과 중복되는 기재는 생략될 수 있다.
도 8을 참조하면, 호스트 장치(100)는 SD 컨트롤러(220)의 상태를 식별하기 위한 커맨드(CMD_MONITOR)를 전송할 수 있다. 도 8의 SD 컨트롤러(220)는 본 발명의 다양한 실시예들에 따른 도 1의 LINK 컨트롤러(210) 또는 도 2의 연결 관리 회로(260)를 구비하지 않을 수 있다.
도 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 신호를 매번 전송하는 경우, 비휘발성 메모리(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을 참조하면, 비휘발성 메모리(300)의 잠금 해제를 위한 사용자 입력은 호스트 장치(100)를 통해서만 입력될 수 있다. 도 1a 및 도 1b와 달리, SD 컨트롤러(220)는 별도의 사용자 입력 수신 회로(270)를 구비하지 않기 때문이다. 따라서, 사용자 입력을 수신하는 것은 호스트 장치(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 컨트롤러(1150)를 포함할 수 있다. 이때, SSD 컨트롤러(1110) 및 LINK 컨트롤러(1150)는 도 1a 내지 도 9에 도시된 실시예들을 이용하여 구현될 수 있다. 이에 따라서, SSD(1100)는 호스트 장치(100)의 커맨드에 종속적으로 재연결을 수행하지 않고, 호스트 장치(100)로부터 커맨드가 수신되지 않더라도, 독립적으로 재연결을 수행할 수 있다. 또한, SSD(1100)는 호스트 장치(100)로부터 모니터링 커맨드를 수신하지 않고, 모니터링 커맨드에 응답하는 응답 신호를 송신할 필요가 없으므로 메모리 시스템의 부하가 감소될 수 있다. 또한, SSD(1100)는 호스트 장치(100)로부터 모니터링 커맨드 또는 재연결을 지시하는 커맨드를 수신하지 않으므로, 호스트 장치(100)가 모니터링 커맨드 또는 재연결을 지시하는 커맨드를 지원하지 않더라도 독자적으로 재연결을 수행할 수 있으므로 호스트 장치(100) 또는 호스트 장치(100)의 운영체제에 대한 의존성(dependency)을 감소시키고 다양한 종류의 호스트 장치에서 사용될 수 있다. 또한, SSD(1100)는 잠금 상태가 해제된 경우, 독립적으로 재연결을 수행하므로, 모니터링 커맨드 및 재연결을 지시하는 커맨드의 송수신에 소요되는 시간 지연 없이 빠르게 재연결을 수행할 수 있다.
본 개시의 실시예들에 따른 메모리 장치는 SSD(1100) 뿐만 아니라, 메모리 카드 시스템, 컴퓨팅 시스템, UFS 등에 탑재되거나 적용될 수 있다. 또한 본 개시의 실시예에 다른 메모리 장치의 동작 방법은 비휘발성 메모리가 탑재되는 다양한 종류의 전자 시스템에 적용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  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. 제2항에 있어서,
    상기 제1 영역은,
    복수의 사용자들에 각각 상응하는 복수의 서브 영역들을 더 포함할 수 있고,
    상기 복수의 사용자들 각각은, 복수의 서브 영역들 중 사용자 인증을 완료한 서브 영역에 한하여 액세스할 수 있는 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 제1항에 있어서,
    상기 호스트 장치는,
    상기 스토리지 장치의 상기 메모리 컨트롤러의 상태를 식별하기 위한 모니터링 커맨드 및 상기 메모리 컨트롤러의 상태가 상기 잠금 해제 상태로 변경되는 것에 응답하여 재연결을 지시하는 커맨드를 송신하는 것을 바이패스(bypass)하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  11. 스토리지 장치에 있어서,
    비휘발성 메모리;
    사용자 입력 수신 회로;
    스토리지 장치와 물리적으로 연결되는 호스트 장치 사이의 데이터 라인을 비활성화하는 링크 컨트롤러; 및
    기 저장된 사용자 입력 값과 상기 호스트 장치 또는 상기 사용자 입력 수신 회로로부터 수신된 사용자 입력 값을 비교하여 사용자 인증을 수행하고,
    사용자 인증 결과에 기반하여, 메모리 컨트롤러의 상태를 변경하고,
    상기 메모리 컨트롤러의 상태 변경에 기반하여, 상기 링크 컨트롤러에게 상기 데이터 라인을 일시적으로 비활성화할 것을 지시하는 트리거 신호를 송신하는 메모리 컨트롤러를 포함하는 것을 특징으로 하는 스토리지 장치.
  12. 제11항에 있어서,
    상기 링크 컨트롤러는,
    상기 호스트 장치로부터 상기 데이터 라인을 일시적으로 비활성화할 것을 지시하는 커맨드를 수신하기 이전에, 상기 메모리 컨트롤러로부터 상기 트리거 신호를 수신하고,
    상기 트리거 신호에 기반하여, 상기 호스트 장치로부터 전력을 공급받는 동안 상기 데이터 라인을 일시적으로 비활성화하는 것을 특징으로 하는 스토리지 장치.
  13. 제11항에 있어서,
    상기 링크 컨트롤러와 상기 메모리 컨트롤러는 동일한 반도체 기판에 형성되는 것을 특징으로 하는 스토리지 장치.
  14. 제11항에 있어서,
    상기 스토리지 장치는,
    상기 호스트 장치로부터, 상기 메모리 컨트롤러의 상태를 식별하기 위한 모니터링 커맨드 및 상기 메모리 컨트롤러의 상태가 상기 잠금 해제 상태로 변경되는 것에 응답하여 상기 데이터 라인의 비활성화를 지시하는 커맨드를 수신하는 것을 바이패스(bypass)하는 것을 특징으로 하는 스토리지 장치.
  15. 제11항에 있어서,
    상기 메모리 컨트롤러는,
    상기 사용자 인증 결과가, 비교한 값의 일치를 지시하는 경우, 상기 메모리 컨트롤러의 상태를 잠금 상태로부터 잠금 해제 상태로 변경하고,
    상기 링크 컨트롤러에게 상기 트리거 신호를 송신하는 것을 특징으로 하는 스토리지 장치.
  16. 제15항에 있어서,
    상기 메모리 컨트롤러는,
    제1 영역에 포함되는 제1 MBR을 지시하도록 포인터 정보를 변경함으로써 상기 메모리 컨트롤러의 상태를 잠금 해제 상태로 변경하는 것을 특징으로 하는 스토리지 장치.
  17. 제11항에 있어서,
    상기 메모리 컨트롤러는,
    상기 호스트 장치와의 물리적 연결이 해제되는 것을 식별하고,
    상기 식별에 응답하여, 상기 메모리 컨트롤러의 상태를 잠금 상태로 변경하는 것을 특징으로 하는 스토리지 장치.
  18. 제11항에 있어서,
    상기 물리적 연결은,
    핫 플러그(hot plug)를 지원 가능한 인터페이스에 기반하여 생성되고,
    상기 인터페이스는,
    USB(universal serial bus) 인터페이스, SATA(serial ATA) 인터페이스, PATA(parallel ATA) 인터페이스, SCSI(small computer system interface) 인터페이스, SAS(serial attached SCSI) 인터페이스 중 적어도 하나에 상응하는 것을 특징으로 하는 스토리지 장치.
  19. 비휘발성 메모리, 링크 컨트롤러 및 메모리 컨트롤러를 포함하는 스토리지 장치의 동작 방법에 있어서,
    호스트 장치와의 물리적 연결을 검출하는 단계;
    상기 호스트 장치 또는 상기 스토리지 장치의 사용자 입력 수신 회로로부터 사용자 입력을 수신하는 단계;
    상기 수신된 사용자 입력에 기반하여, 사용자 인증을 수행하는 단계;
    상기 사용자 인증에 성공한 경우, 상기 메모리 컨트롤러의 상태를 잠금 해제 상태로 변경하는 단계;
    상기 잠금 해제 상태로의 변경에 응답하여, 상기 호스트 장치와 재연결을 수행하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  20. 제19항에 있어서,
    상기 호스트 장치와 재연결을 수행하는 단계는,
    상기 호스트 장치로부터 전력을 공급받는 동안, 상기 호스트 장치와 연결된 데이터 라인을 일시적으로 비활성화하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
KR1020190159366A 2019-12-03 2019-12-03 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법 KR20210069481A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020190159366A KR20210069481A (ko) 2019-12-03 2019-12-03 메모리 컨트롤러를 포함하는 스토리지 장치 및 비휘발성 메모리 시스템과 이의 동작 방법
US17/026,714 US11586559B2 (en) 2019-12-03 2020-09-21 Storage device, nonvolatile memory system including memory controller, and operating method of the storage device for independently performing a relink to a host device
CN202011112295.3A CN112905495A (zh) 2019-12-03 2020-10-16 存储装置及其操作方法、非易失性存储器系统
EP20211710.7A EP3832505A1 (en) 2019-12-03 2020-12-03 Storage device, nonvolatile memory system including memory controller, and operating method of the storage device
US18/097,530 US11947466B2 (en) 2019-12-03 2023-01-17 Storage device, nonvolatile memory system including memory controller, and operating method of the storage device

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=73698734

Family Applications (1)

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

Country Status (4)

Country Link
US (2) US11586559B2 (ko)
EP (1) EP3832505A1 (ko)
KR (1) KR20210069481A (ko)
CN (1) CN112905495A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI808010B (zh) * 2022-09-26 2023-07-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
CA2374342C (en) * 2001-03-01 2005-12-20 Research In Motion Limited System and method for powering and charging a mobile communication device
US7062602B1 (en) * 2001-04-09 2006-06-13 Matrix Semiconductor, Inc. Method for reading data in a write-once memory device using a write-many file system
US20040088513A1 (en) * 2002-10-30 2004-05-06 Biessener David W. Controller for partition-level security and backup
US8000502B2 (en) 2005-03-09 2011-08-16 Sandisk Technologies Inc. Portable memory storage device with biometric identification security
US7721016B2 (en) 2007-02-12 2010-05-18 Seagate Technology Llc Method for using host controller to solicit a command failure from target device in order to initiate re-enumeration of the target device
US10778417B2 (en) * 2007-09-27 2020-09-15 Clevx, Llc Self-encrypting module with embedded wireless user authentication
US8001304B2 (en) 2008-02-15 2011-08-16 Sandisk Technologies Inc. Portable memory device with multiple I/O interfaces wherein each I/O interface has respective protocol and device parameters are requested from one I/O interface using only respective protocol
WO2009130538A2 (en) 2008-04-22 2009-10-29 E-Roots Pte Ltd Data storage device
US9405939B2 (en) 2008-10-07 2016-08-02 Arm Limited Data processing on a non-volatile mass storage device
US8812769B2 (en) 2008-10-30 2014-08-19 Sandisk Il Ltd. Data storage devices
US8843664B2 (en) 2011-09-29 2014-09-23 Cypress Semiconductor Corporation Re-enumeration of USB 3.0 compatible devices
TWI467379B (zh) 2012-04-23 2015-01-01 Phison Electronics Corp 系統運作方法、記憶體控制器與記憶體儲存裝置
CN103984657B (zh) 2013-09-26 2017-05-10 威盛电子股份有限公司 接口控制器、外接式电子装置及其控制方法
KR102148889B1 (ko) * 2014-08-18 2020-08-31 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR102498223B1 (ko) 2015-10-13 2023-02-09 삼성전자주식회사 Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
US10516533B2 (en) * 2016-02-05 2019-12-24 Mohammad Mannan Password triggered trusted encryption key deletion
DE102018125297A1 (de) 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt
KR102527832B1 (ko) 2017-11-17 2023-05-03 삼성전자주식회사 호스트의 개입 없이 외부 장치와 피어-투-피어 통신을 수행하는 스토리지 장치

Also Published As

Publication number Publication date
EP3832505A1 (en) 2021-06-09
US11947466B2 (en) 2024-04-02
US20210165747A1 (en) 2021-06-03
CN112905495A (zh) 2021-06-04
US11586559B2 (en) 2023-02-21
US20230214471A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
US10359957B2 (en) Integrated circuit device that includes a secure element and a wireless component for transmitting protected data over short range wireless point-to-point communications
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
JP6985011B2 (ja) アクセス保護スキームを確保するための装置及び方法
US8122172B2 (en) Portable information security device
US20210216616A1 (en) Memory controller and storage device including the same
RU2538329C1 (ru) Устройство создания доверенной среды для компьютеров информационно-вычислительных систем
US11681637B2 (en) Memory controller, storage device including the same, and operating method of the memory controller
US20150363763A1 (en) Mobile Information Apparatus That Includes A Secure Element Storing Payment Information And Using A Cryptographic Technique For Implementing Mobile Payment
US10146704B2 (en) Volatile/non-volatile memory device access provisioning system
KR20120123885A (ko) 저장 장치의 인증 장치 및 인증 장치 연결 수단을 구비한 저장 장치
US10783088B2 (en) Systems and methods for providing connected anti-malware backup storage
US9032540B2 (en) Access system and method thereof
US11947466B2 (en) Storage device, nonvolatile memory system including memory controller, and operating method of the storage device
US20230266914A1 (en) Storage device including memory controller, and non-volatile memory system including the same and operating method thereof
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
US9727277B2 (en) Storage device and method for enabling hidden functionality
US8190813B2 (en) Terminal apparatus with restricted non-volatile storage medium
JP5160940B2 (ja) ハードディスク装置
KR20110023685A (ko) 인증 기능을 구비하는 ssd 및 그 구동 방법
KR101936194B1 (ko) 인증에 기반을 둔 다중 파티션 선택적 활성 기능을 갖는 sd 메모리 제어 방법
JP2012212294A (ja) 記憶媒体管理システム、記憶媒体管理方法、及びプログラム