KR20240068509A - Method of operating a storage device and method of operating a storage system including storage device - Google Patents

Method of operating a storage device and method of operating a storage system including storage device Download PDF

Info

Publication number
KR20240068509A
KR20240068509A KR1020230027964A KR20230027964A KR20240068509A KR 20240068509 A KR20240068509 A KR 20240068509A KR 1020230027964 A KR1020230027964 A KR 1020230027964A KR 20230027964 A KR20230027964 A KR 20230027964A KR 20240068509 A KR20240068509 A KR 20240068509A
Authority
KR
South Korea
Prior art keywords
host
storage device
public key
operating
storage
Prior art date
Application number
KR1020230027964A
Other languages
Korean (ko)
Inventor
송용환
김지수
류지민
추연성
이재규
정대진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN202311447975.4A priority Critical patent/CN118013561A/en
Priority to US18/502,321 priority patent/US20240160794A1/en
Priority to EP23208986.2A priority patent/EP4369225A1/en
Publication of KR20240068509A publication Critical patent/KR20240068509A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Abstract

스토리지 장치의 동작 방법 및 상기 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법이 개시된다. 본 개시의 실시예에 따른 비휘발성 메모리 장치, 및 호스트와 통신하며 상기 비휘발성 메모리 장치를 제어하는 스토리지 컨트롤러를 포함하는 스토리지 장치의 동작 방법은, 상기 스토리지 컨트롤러가 제1 호스트로부터 수신된 공개 키를 저장하는 단계, 상기 스토리지 컨트롤러가 상기 공개 키 및 상기 공개 키에 대응하는 개인 키를 획득한 제2 호스트로부터의 호스트 인증 개시 요청에 응답하여 난수를 상기 제2 호스트로 전송하는 단계, 상기 스토리지 컨트롤러가 상기 제2 호스트로부터 상기 개인 키와 상기 난수를 기반으로 생성된 서명을 수신하는 단계, 상기 스토리지 컨트롤러가 상기 공개 키를 기초로 상기 서명을 검증하는 단계 및 상기 서명 검증이 성공하면, 상기 스토리지 컨트롤러가 상기 제2 호스트로부터의 요청에 따라 제1 디바이스 파라미터를 변경하는 단계를 포함할 수 있다. A method of operating a storage device and a method of operating a storage system including the storage device are disclosed. A method of operating a storage device including a non-volatile memory device and a storage controller that communicates with a host and controls the non-volatile memory device according to an embodiment of the present disclosure includes the storage controller using a public key received from a first host. storing, wherein the storage controller transmits a random number to the second host in response to a host authentication initiation request from a second host that has obtained the public key and a private key corresponding to the public key, wherein the storage controller Receiving a signature generated based on the private key and the random number from the second host, verifying the signature based on the public key by the storage controller, and if the signature verification is successful, the storage controller It may include changing first device parameters according to a request from the second host.

Description

스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 {Method of operating a storage device and method of operating a storage system including storage device}{Method of operating a storage device and method of operating a storage system including storage device}

본 개시의 기술적 사상은 스토리지 장치의 동작 방법에 관한 것으로서, 더욱 상세하게는, 인증된 호스트로부터의 요청에 따라 디바이스 파라미터를 변경하는 스토리지 장치의 동작 방법 및, 상기 스토리지 장치 및 호스트를 포함하는 스토리지 시스템의 동작 방법에 관한 것이다. The technical idea of the present disclosure relates to a method of operating a storage device, and more specifically, to a method of operating a storage device that changes device parameters according to a request from an authenticated host, and a storage system including the storage device and the host. It is about how to operate.

UFS(Universal Flash Storage), eMMC(embedded Multi Media Card)와 같은 스토리지 장치가 널리 사용되고 있다. 스토리지 장치는 보안상 한 번 기입이 가능한 속성을 갖는 파라미터들을 포함하고 있으며, 상기 파라미터들은 한 번 기입되면 변경될 수 없어, 스토리지 장치를 포함하는 스토리지 시스템의 제조 단계에서 스토리지 장치의 재활용률을 낮추는 요인이 된다. 상기 파라미터들을 최종 사용자(end user)가 변경하는 것을 방지하면서 호스트가 상기 파라미터들을 변경할 수 있는 방식이 요구된다. Storage devices such as Universal Flash Storage (UFS) and embedded Multi Media Card (eMMC) are widely used. The storage device contains parameters that can be written once for security reasons, and the parameters cannot be changed once written, which is a factor in lowering the recycling rate of the storage device during the manufacturing stage of the storage system including the storage device. do. There is a need for a method in which the host can change the parameters while preventing the end user from changing the parameters.

본 개시의 기술적 사상은, 보안상 한 번 기입 가능한 속성을 갖는 파라미터를 호스트의 인증을 통해 변경 가능한 스토리지 장치의 동작 방법 및 상기 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법을 제공하는 데 있다. The technical idea of the present disclosure is to provide a method of operating a storage device in which a parameter having a security writeable attribute can be changed through authentication of a host, and a method of operating a storage system including the storage device.

본 개시의 예시적 실시예에 따른, 비휘발성 메모리 장치, 및 호스트와 통신하며 상기 비휘발성 메모리 장치를 제어하는 스토리지 컨트롤러를 포함하는 스토리지 장치의 동작 방법은, 상기 스토리지 컨트롤러가 제1 호스트로부터 수신된 공개 키를 저장하는 단계, 상기 스토리지 컨트롤러가 상기 공개 키 및 상기 공개 키에 대응하는 개인 키를 획득한 제2 호스트로부터의 호스트 인증 개시 요청에 응답하여 난수를 상기 제2 호스트로 전송하는 단계, 상기 스토리지 컨트롤러가 상기 제2 호스트로부터 상기 개인 키와 상기 난수를 기반으로 생성된 서명을 수신하는 단계, 상기 스토리지 컨트롤러가 상기 공개 키를 기초로 상기 서명을 검증하는 단계 및 상기 서명 검증이 성공하면, 상기 스토리지 컨트롤러가 상기 제2 호스트로부터의 요청에 따라 제1 디바이스 파라미터를 변경하는 단계를 포함할 수 있다. According to an exemplary embodiment of the present disclosure, a method of operating a storage device including a non-volatile memory device and a storage controller that communicates with a host and controls the non-volatile memory device includes: storing a public key, the storage controller transmitting a random number to the second host in response to a host authentication initiation request from a second host that has obtained the public key and a private key corresponding to the public key, receiving, by the storage controller, a signature generated based on the private key and the random number from the second host; verifying, by the storage controller, the signature based on the public key; and if the signature verification is successful, The storage controller may include changing first device parameters according to a request from the second host.

본 개시의 기술적 사상에 따르면, 스토리지 장치는 호스트로부터 제공되는 공개 키를 기초로 호스트 인증을 수행하고, 인증된 호스트의 요청에 따라 스토리지 장치의 상태를 변경함으로써, 최종 사용자에 대한 보안 수준의 변경 없이 호스트의 요청에 따라 한 번 기입 가능한 파라미터들을 변경할 수 있다. 이에 따라 스토리지 장치가 재사용될 수 있다.According to the technical idea of the present disclosure, the storage device performs host authentication based on a public key provided from the host and changes the state of the storage device according to the request of the authenticated host, without changing the security level for the end user. Parameters that can be written once can be changed according to the host's request. Accordingly, the storage device can be reused.

도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 3은 본 개시의 예시적 실시예에 따른 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다.
도 4a 및 도 4b는 본 개시의 예시적 실시예에 따른 스토리지 장치의 상태들 상태들의 전환을 예시적으로 나타낸다.
도 5는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치의 저장 영역들을 개략적으로 설명한다.
도 6은 본 개시의 예시적 실시예에 따른 호스트와 스토리지 장치 사이의 커맨드 및 응답 전송 동작을 나타내는 흐름도이다.
도 7a는 본 개시의 예시적 실시예에 따른 공개 키 설정 커맨드에 대한 커맨드 블록을 나타내고, 도 7b는 공개 키 설정 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다.
도 8a는 본 개시의 예시적 실시예에 따른 공개 키 설정 커맨드에 대한 커맨드 블록을 나타내고, 도 8b는 공개 키 설정 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다.
도 9a는 본 개시의 예시적 실시예에 따른 인증 커맨드에 대한 커맨드 블록을 나타내고, 도 9b는 인증 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다.
도 10은 본 개시의 예시적 실시예에 따른 호스트와 스토리지 장치 사이의 커맨드 및 응답 전송 동작을 나타내는 흐름도이다.
도 11a는 본 개시의 예시적 실시예에 따른 리셋 올 키 커맨드에 대한 커맨드 블록을 나타내고, 도 11b는 리셋 올 키 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작을 나타낸다.
도 13은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 14는 본 개시의 예시적 실시예에 따른 호스트 및 스토리지 장치의 소프트웨어 계층을 나타낸다.
도 15는 본 개시의 예시적 실시예에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 16은 본 개시의 예시적 실시예에 따른 UFS 시스템을 나타내는 블록도이다.
도 17은 본 발명의 예시적 실시예에 따른 UFS 장치에 적용될 수 있는 3D VNAND 구조에 대해 설명하기 위한 도면이다.
도 18은 본 개시의 예시적 실시예에 따른 UFS 장치에 적용될 수 있는 B-VNAND 구조에 대해 설명하기 위한 도면이다.
1 is a block diagram showing a storage system according to an exemplary embodiment of the present disclosure.
Figure 2 is a flowchart showing a method of operating a storage device according to an exemplary embodiment of the present disclosure.
Figure 3 is a flowchart showing operations between a host and a storage device according to an exemplary embodiment of the present disclosure.
4A and 4B illustratively show transitions of states of a storage device according to an example embodiment of the present disclosure.
Figure 5 schematically illustrates storage areas of a non-volatile memory device according to an example embodiment of the present disclosure.
Figure 6 is a flowchart illustrating a command and response transmission operation between a host and a storage device according to an exemplary embodiment of the present disclosure.
FIG. 7A shows a command block for a public key setting command according to an exemplary embodiment of the present disclosure, and FIG. 7B shows a data block for data corresponding to the public key setting command.
FIG. 8A shows a command block for a public key setting command according to an exemplary embodiment of the present disclosure, and FIG. 8B shows a data block for data corresponding to the public key setting command.
FIG. 9A shows a command block for an authentication command according to an exemplary embodiment of the present disclosure, and FIG. 9B shows a data block for data corresponding to an authentication command.
Figure 10 is a flowchart showing a command and response transmission operation between a host and a storage device according to an exemplary embodiment of the present disclosure.
FIG. 11A shows a command block for a reset all key command according to an exemplary embodiment of the present disclosure, and FIG. 11B shows a data block for data corresponding to the reset all key command.
Figure 12 shows an operation of a storage device according to an exemplary embodiment of the present disclosure.
Figure 13 is a flowchart showing a method of operating a storage device according to an exemplary embodiment of the present disclosure.
14 illustrates software layers of a host and a storage device according to an example embodiment of the present disclosure.
Figure 15 is a block diagram showing a non-volatile memory device according to an exemplary embodiment of the present disclosure.
Figure 16 is a block diagram showing a UFS system according to an exemplary embodiment of the present disclosure.
FIG. 17 is a diagram for explaining a 3D VNAND structure applicable to a UFS device according to an exemplary embodiment of the present invention.
FIG. 18 is a diagram for explaining a B-VNAND structure applicable to a UFS device according to an exemplary embodiment of the present disclosure.

이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.

도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.1 is a block diagram showing a storage system according to an exemplary embodiment of the present disclosure.

도 1을 참조하면, 스토리지 시스템(storage system)(10)은 스토리지 장치(100) 및 호스트(200)를 포함할 수 있다. 스토리지 시스템(10)은 휴대폰, 스마트폰, MP3 플레이어, 랩탑 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 테블릿 PC 또는 차량용 인포테인먼트(in-vehicle infotainment) 시스템 등과 같은 데이터를 저장하는 장치 중 하나일 수 있다.Referring to FIG. 1 , a storage system 10 may include a storage device 100 and a host 200 . The storage system 10 may be one of devices that store data, such as a mobile phone, smartphone, MP3 player, laptop computer, desktop computer, game console, TV, tablet PC, or in-vehicle infotainment system.

호스트(200)는 CPU(Central Processing Unit), 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등과 같이 데이터를 처리할 수 있는 데이터 처리 장치를 의미할 수 있다. 호스트(200)는 운영 체제(operating system, OS) 및/또는 다양한 응용 프로그램(application)을 수행할 수 있다. 일 실시예에서, 스토리지 시스템(10)은 모바일 장치에 포함될 수 있고, 호스트(200)는 어플리케이션 프로세서(AP)로 구현될 수 있다. 일 실시예에서, 호스트(200)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있고, 이에 따라, 전자 장치에 내장될 수 있다. The host 200 may refer to a data processing device capable of processing data, such as a central processing unit (CPU), processor, microprocessor, or application processor (AP). The host 200 may run an operating system (OS) and/or various applications. In one embodiment, storage system 10 may be included in a mobile device, and host 200 may be implemented as an application processor (AP). In one embodiment, the host 200 may be implemented as a System-On-a-Chip (SoC) and, accordingly, may be embedded in an electronic device.

호스트(200)는 다양한 인터페이스를 통하여 스토리지 장치(100)와 통신할 수 있다. 예를 들어, 스토리지 장치(100)와 호스트(200)는 UFS(Universal Flash Storage) 표준(standard)에서 정의된 인터페이스 규약에 따라 연결될 수 있고, 이에 따라, 스토리지 장치(100)는 UFS 장치일 수 있고, 호스트(200)는 UFS 호스트일 수 있다. 그러나, 본 개시는 이에 한정되지 않으며, 스토리지 장치(100)와 호스트(200)는 다양한 표준 인터페이스들에 따라 연결될 수 있다.The host 200 may communicate with the storage device 100 through various interfaces. For example, the storage device 100 and the host 200 may be connected according to the interface protocol defined in the Universal Flash Storage (UFS) standard, and accordingly, the storage device 100 may be a UFS device. , the host 200 may be a UFS host. However, the present disclosure is not limited to this, and the storage device 100 and the host 200 may be connected according to various standard interfaces.

호스트(200)는 스토리지 장치(100)에 대한 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기입 동작(또는 저장 동작) 등을 제어할 수 있다. 호스트(200)는 스토리지 장치(100)로 스토리지 장치(100)의 데이터 처리 동작을 요청하는 커맨드(CMD)및 데이터를 전송하고, 스토리지 장치(100)는 커맨드(CMD)에 따른 데이터 동작을 수행하고 동작 결과를 나타내는 응답(RES)을 호스트(200)로 전송할 수 있다. 호스트(200)는 읽기 커맨드, 쓰기 커맨드와 같이, 일반적인 스토리지 장치(100)의 동작과 관련된 커맨드(CMD)를 전송할 수 있으며, 또한 호스트(200)는 스토리지 장치(100)의 보안 기능을 제공하기 위한 보안 입력 커맨드, 보안 출력 커맨드와 같이, 스토리지 장치(100)와의 인터페이스의 보안 프로토콜에 따른 커맨드(CMD)를 전송할 수 있다. 스토리지 장치(100)는 호스트(200)로부터의 요청에 따른 동작 수행으로 생성되거나 또는 비휘발성 메모리(120)로부터 독출되는 데이터를 호스트(200)로 전송할 수 있다. The host 200 may control data processing operations for the storage device 100, for example, data read operations or data write operations (or storage operations). The host 200 transmits a command (CMD) and data requesting a data processing operation of the storage device 100 to the storage device 100, and the storage device 100 performs a data operation according to the command (CMD). A response (RES) indicating the operation result may be transmitted to the host 200. The host 200 may transmit commands (CMD) related to general operation of the storage device 100, such as read commands and write commands, and the host 200 may also transmit commands to provide security functions of the storage device 100. A command (CMD) according to the security protocol of the interface with the storage device 100, such as a secure input command and a secure output command, may be transmitted. The storage device 100 may transmit data generated by performing an operation according to a request from the host 200 or read from the non-volatile memory 120 to the host 200.

호스트(200)는 보안 매니저(210)를 포함할 수 있으며, 보안 매니저(210)는호스트(200)와 스토리지 장치(100) 간의 통신에 있어서의 보안 기능을 제공할 수 있다. 보안 매니저(210)는 보안 커맨드 및 데이터를 생성하고, 이를 스토리지 장치(100)에 제공할 수 있으며, 스토리지 장치(100)로부터 제공되는 응답(RES) 및/또는 데이터를 기초로 보안 기능을 위한 동작을 수행할 수 있다. The host 200 may include a security manager 210, and the security manager 210 may provide security functions for communication between the host 200 and the storage device 100. The security manager 210 may generate security commands and data, provide them to the storage device 100, and perform operations for security functions based on the response (RES) and/or data provided from the storage device 100. can be performed.

보안 매니저(210)는 스토리지 장치(100)에 대하여 고유한 값을 갖는 공개 키(Public Key) 및 공개 키에 대응하는 개인 키(Private Key)(또는 비밀 키라고 함)를 획득할 수 있다. 예를 들어, 보안 매니저(210)는 공개 키 및 개인 키를 생성할 수 있다. 다른 예로서, 보안 매니저(210)는 다른 호스트가 스토리지 장치(100)에 대하여 생성한 공개 키 및 개인 키를 수신할 수 있다. 예컨대, 호스트(200)(또는 다른 호스트)가 생성한 공개 키 및 개인 키는 별도의 서버에서 관리될 수 있으며, 스토리지 장치(100)에 연결되는 호스트가 변경될 경우, 변경된 호스트는 서버로부터 공개 키 및 개인 키를 수신할 수 있다.The security manager 210 may obtain a public key with a unique value for the storage device 100 and a private key (or referred to as a secret key) corresponding to the public key. For example, security manager 210 can generate public keys and private keys. As another example, the security manager 210 may receive a public key and a private key generated for the storage device 100 by another host. For example, the public key and private key generated by the host 200 (or another host) may be managed on a separate server, and when the host connected to the storage device 100 changes, the changed host receives the public key from the server. and receive a private key.

보안 매니저(210)는 비휘발성 메모리 소자로 구현되는 키 스토리지(예를 들어 도 6의 211)포함할 수 있으며, 보안 매니저(210)는 공개 키 및 개인 키를 키 스토리지에 저장할 수 있다. The security manager 210 may include a key storage (for example, 211 in FIG. 6) implemented as a non-volatile memory element, and the security manager 210 may store the public key and private key in the key storage.

보안 매니저(210)는 보안 커맨드를 기초로 공개 키 및 개인 키를 스토리지 장치(100)에 전송하고, 이후, 공개 키 및 개인 키를 기초로 호스트(200)가 정당한 제어 권한을 가졌음을 인증할 수 있다. The security manager 210 can transmit the public key and private key to the storage device 100 based on the security command, and then authenticate that the host 200 has legitimate control authority based on the public key and private key. there is.

스토리지 장치(100)는 호스트(400)와의 통신 방식인 호스트 인터페이스에 따라서 다양한 종류의 스토리지 장치들 중 어느 하나로 제조될 수 있다. 예를 들면, 스토리지 장치(100)는 SSD(Solid State Driver), MMC, eMMC, RS-MMC, micro-MMC 형태의 멀티 미디어 카드(multimedia card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(secure digital) 카드, USB(universal storage bus) 저장 장치, UFS(universal flash storage) 장치, PCMCIA(personal computer memory card international association) 카드 형태의 저장 장치, PCI(peripheral component interconnection) 카드 형태의 저장 장치, PCI-E(PCI express) 카드 형태의 저장 장치, CF(compact flash) 카드, 스마트 미디어(smart media) 카드, 메모리 스틱(memory stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구성될 수 있다. The storage device 100 may be manufactured as one of various types of storage devices depending on the host interface, which is a communication method with the host 400. For example, the storage device 100 is a multimedia card in the form of SSD (Solid State Driver), MMC, eMMC, RS-MMC, and micro-MMC, and a secure card in the form of SD, mini-SD, and micro-SD. Secure digital card, USB (universal storage bus) storage device, UFS (universal flash storage) device, PCMCIA (personal computer memory card international association) card type storage device, PCI (peripheral component interconnection) card type storage device , It may be composed of any one of various types of storage devices, such as a PCI-E (PCI express) card type storage device, CF (compact flash) card, smart media card, memory stick, etc. .

스토리지 장치(100)는 다양한 종류의 패키지(package) 형태들 중 어느 하나로 제조될 수 있다. 예를 들면, 스토리지 장치(100)는 POP(package on package), SIP(system in package), SOC(system on chip), MCP(multi-chip package), COB(chip on board), WFP(wafer-level fabricated package), WSP(wafer-level stack package) 등과 같은 다양한 종류의 패키지 형태들 중 어느 하나로 제조될 수 있다. The storage device 100 may be manufactured in one of various types of packages. For example, the storage device 100 may include package on package (POP), system in package (SIP), system on chip (SOC), multi-chip package (MCP), chip on board (COB), and wafer- It can be manufactured in any one of various types of package forms, such as level fabricated package (WSP), wafer-level stack package (WSP), etc.

스토리지 장치(100)는 디바이스 컨트롤러(110) 및 비휘발성 메모리 장치(NVM Device) (120)를 포함할 수 있다. 디바이스 컨트롤러(121)는 호스트(200)로부터의 기입 요청에 응답하여 비휘발성 메모리 장치(120)에 데이터를 기입하도록 비휘발성 메모리장치(120)를 제어하거나, 또는 호스트(200)로부터의 독출 요청에 응답하여 비휘발성 메모리 장치(120)에 저장된 데이터를 독출하도록 비휘발성 메모리(130)를 제어할 수 있다. The storage device 100 may include a device controller 110 and a non-volatile memory device (NVM device) 120. The device controller 121 controls the non-volatile memory device 120 to write data to the non-volatile memory device 120 in response to a write request from the host 200, or in response to a read request from the host 200. In response, the non-volatile memory 130 may be controlled to read data stored in the non-volatile memory device 120.

비휘발성 메모리 장치(120)는 복수의 메모리 셀들을 포함할 수 있는데, 예를 들어, 복수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 일 실시예에서, 복수의 메모리 셀들은 낸드(NAND) 플래쉬 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 복수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.The non-volatile memory device 120 may include a plurality of memory cells. For example, the plurality of memory cells may be flash memory cells. In one embodiment, the plurality of memory cells may be NAND flash memory cells. However, the present invention is not limited thereto, and in another embodiment, the plurality of memory cells may be resistive memory cells such as resistive RAM (ReRAM), phase change RAM (PRAM), or magnetic RAM (MRAM).

메모리 셀들은 각각 하나의 데이터 비트를 저장하는 싱글 레벨 셀(Single Level Cell; SLC), 두 개의 데이터 비트들을 저장하는 멀티 레벨 셀(Multi Level Cell; MLC), 세 개의 데이터 비트들을 저장하는 트리플 레벨 셀(Triple Level Cell; TLC) 또는 네 개의 데이터 비트를 저장할 수 있는 쿼드 레벨 셀(Quad Level Cell; QLC)로 구성될 수 있다.Memory cells are single-level cells (SLC) that store one data bit, multi-level cells (MLC) that store two data bits, and triple-level cells that store three data bits. It can be configured as a Triple Level Cell (TLC) or a Quad Level Cell (QLC) that can store four data bits.

비휘발성 메모리(130)는 복수의 메모리 블록, 예컨대 제1 내지 제n 블록(BLK1 내지 BLKn, n은2이상의 정수)을 포함할 수 있다. 각 메모리 블록은 복수의 메모리 셀들을 포함할 수 있다. 각 메모리 블록은 복수의 페이지들을 포함할 수 있다. 실시 예에서, 페이지는 비휘발성 메모리 장치(120)에 데이터를 저장하거나, 비휘발성 메모리 장치(120)에 저장된 데이터를 리드하는 단위일 수 있다. 메모리 블록은 데이터를 지우는 단위일 수 있다.The non-volatile memory 130 may include a plurality of memory blocks, for example, first to nth blocks (BLK1 to BLKn, where n is an integer of 2 or more). Each memory block may include a plurality of memory cells. Each memory block may include multiple pages. In an embodiment, a page may be a unit for storing data in the non-volatile memory device 120 or reading data stored in the non-volatile memory device 120. A memory block may be a unit for erasing data.

본 개시의 실시예에 따른 스토리지 장치(100)의 디바이스 컨트롤러(110)는 보안 매니저(11) 및 상태 매니저(12)를 포함할 수 있다. 보안 매니저(11)는 호스트(200)로부터 수신되는 공개 키를 저장할 수 있다. 예컨대, 보안 매니저(11)는 비휘발성 메모리로 구현되는 키 스토리지(예를 들어 도 6의 1)에 공개 키를 저장하고, 호스트(200)로부터 호스트 인증 요청이 수신되면, 공개 키를 기초로 호스트 인증을 수행할 수 있다. The device controller 110 of the storage device 100 according to an embodiment of the present disclosure may include a security manager 11 and a state manager 12. The security manager 11 may store the public key received from the host 200. For example, the security manager 11 stores the public key in a key storage (e.g., 1 in FIG. 6) implemented as a non-volatile memory, and when a host authentication request is received from the host 200, the host authentication request is based on the public key. Authentication can be performed.

상태 매니저(12)는 스토리지 장치(100)의 상태(예컨대 초기 상태, 락 상태, 및 언락 상태)를 관리할 수 있다. 스토리지 장치(100)는 호스트(200)로부터 전송된 공개 키가 스토리지에 저장되면, 스토리지 장치(100)의 상태를 초기 상태에서 락 상태로 변경할 수 있다. 상태 매니저(120)는 호스트 인증이 성공하면, 스토리지 장치(100)의 상태를 락 상태에서 언락 상태로 변경하거나 또는 락 상태에서 초기 상태로 변경할 수 있다. The state manager 12 may manage the state (eg, initial state, locked state, and unlocked state) of the storage device 100. When the public key transmitted from the host 200 is stored in the storage, the storage device 100 may change the state of the storage device 100 from the initial state to the locked state. If host authentication is successful, the state manager 120 may change the state of the storage device 100 from the locked state to the unlocked state or from the locked state to the initial state.

스토리지 장치(100)에는 스토리지 장치(100)의 동작 설정을 위한 파라미터들이 저장될 수 있다. 예컨대 파라미터들은 비휘발성 메모리 장치(120)의 특정 영역 또는 스토리지 컨트롤러(110) 내부에 구비되는 비휘발성 메모리에 저장될 수 있다. 파라미터들은 읽기 전용(read-only) 속성, 일회성 쓰기 가능한(one-time writable) 속성, 독출 및 쓰기(read and write) 속성 등과 같이 다양한 속성들 중 하나를 가질 수 있다. 스토리지 장치(100)는 언락 상태 또는 초기 상태에서 일회성 쓰기 가능한 파라미터(이하 제1 파라미터라고 함)를 변경할 수 있다. 예컨대 스토리지 장치(100)는 제1 파라미터를 초기화할 수 있다. 여기서 초기화란, 이미 기입된 제1 파라미터의 값을 무효로 설정하는 것을 의미할 수 있다. 실시예에 있어서, 제1 파라미터는 호스트(200)에 의하여 설정되는 값으로서, 리플레이 보호 메모리 블록(RPMB)의 엑세스를 위한 인증에 이용되는 RPMB 키, 비휘발성 메모리 장치(120)의 파티셔닝에 이용되는 설정 값 등을 포함할 수 있다. Parameters for operating settings of the storage device 100 may be stored in the storage device 100. For example, parameters may be stored in a specific area of the non-volatile memory device 120 or in a non-volatile memory provided inside the storage controller 110. Parameters can have one of various properties, such as read-only properties, one-time writable properties, read and write properties, etc. The storage device 100 may change a one-time writable parameter (hereinafter referred to as a first parameter) in an unlocked state or an initial state. For example, the storage device 100 may initialize the first parameter. Here, initialization may mean setting the value of the already written first parameter to invalid. In the embodiment, the first parameter is a value set by the host 200, and is an RPMB key used for authentication for access to the replay protected memory block (RPMB) and a RPMB key used for partitioning of the non-volatile memory device 120. It may include setting values, etc.

본 개시의 실시예에 따른 스토리지 시스템(10)은 호스트(200)가 스토리지 장치(100)에 대하여 고유한 값을 갖는 공개 키 및 공개 키에 대응하는 개인 키를 생성하고, 스토리지 장치(100)는 호스트(200)로부터 제공되는 공개 키를 기초로 호스트 인증을 수행하고, 인증된 호스트(200)의 요청에 따라 스토리지 장치(100)의 상태를 변경하고 또한 제1 파라미터를 변경할 수 있다. 스토리지 장치(200)는 엔드 유저의 제1 파라미터 변경을 방지하면서, 호스트(200)로부터의 요청에 따라 제1 파라미터를 변경할 수 있다. In the storage system 10 according to an embodiment of the present disclosure, the host 200 generates a public key with a unique value for the storage device 100 and a private key corresponding to the public key, and the storage device 100 Host authentication may be performed based on a public key provided from the host 200, and the state of the storage device 100 may be changed and the first parameter may be changed according to a request from the authenticated host 200. The storage device 200 may change the first parameter according to a request from the host 200 while preventing the end user from changing the first parameter.

도 2는 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. Figure 2 is a flowchart showing a method of operating a storage device according to an embodiment of the present disclosure.

도 2의 방법은 스토리지 장치(도 1의 100)에서 수행될 수 있으며, 도 1을 참조하여 설명한 스토리지 장치(100)의 동작은 본 실시예에도 적용될 수 있다. The method of FIG. 2 can be performed in a storage device (100 in FIG. 1), and the operation of the storage device 100 described with reference to FIG. 1 can also be applied to this embodiment.

도 2를 참조하면, 스토리지 장치(100)는 호스트(도 1의 200)로부터 공개 키를 수신할 수 있다(S101). 공개 키는 호스트(200)가 생성하거나 또는 호스트(200)가 다른 호스트로부터 획득할 수 있다. Referring to FIG. 2, the storage device 100 may receive a public key from a host (200 in FIG. 1) (S101). The public key may be generated by the host 200 or the host 200 may obtain it from another host.

스토리지 장치(100)는 수신된 공개 키를 저장할 수 있다(S102). 스토리지 장치(100)는 공개 키를 비휘발성 메모리에 저장할 수 있으며, 예를 들어 비휘발성 메모리 장치(도 1의 120)의 특정 영역에 저장하거나 또는 디바이스 컨트롤러(110)에 구비되는 비휘발성 메모리에 저장할 수 있다. 공개 키의 저장에 응답하여 스토리지 장치(100)의 상태가 초기 상태에서 락 상태로 변경될 수 있다. The storage device 100 may store the received public key (S102). The storage device 100 may store the public key in a non-volatile memory, for example, in a specific area of the non-volatile memory device (120 in FIG. 1) or in a non-volatile memory provided in the device controller 110. You can. In response to storing the public key, the state of the storage device 100 may change from the initial state to the locked state.

스토리지 장치(200)는 호스트(200)로부터의 인증 개시 요청에 응답하여 난수를 호스트(200)로 전송할 수 있다(S103). 스토리지 장치(200)는 호스트(200)로부터의 인증 개시 요청에 응답하여 난수를 생성하고, 난수를 호스트(200)로 전송할 수 있다. 일 예로서, 난수는 32Byte의 데이터일 수 있다. The storage device 200 may transmit a random number to the host 200 in response to an authentication initiation request from the host 200 (S103). The storage device 200 may generate a random number in response to an authentication initiation request from the host 200 and transmit the random number to the host 200 . As an example, the random number may be 32 bytes of data.

스토리지 장치(200)는 호스트(200)로부터 개인 키와 난수를 기반으로 생성된 서명(signature)(또는 디지털 서명이라고 함)을 수신할 수 있다(S104). 실시예에 있어서, 호스트(200)는 스토리지 장치(200)로부터 수신된 난수를 해시 알고리즘(또는 해시 함수)를 기초로 처리하여 해시 값을 생성하고, 해시 값을 개인 키를 이용하여 암호화할 수 있다. 스토리지 장치(200)는 난수와 함께 해시 값 생성에 이용된 해시 알고리즘을 함께 수신할 수 있다. The storage device 200 may receive a signature (or digital signature) generated based on a private key and a random number from the host 200 (S104). In an embodiment, the host 200 may process random numbers received from the storage device 200 based on a hash algorithm (or hash function) to generate a hash value, and encrypt the hash value using a private key. . The storage device 200 may receive a hash algorithm used to generate a hash value along with a random number.

스토리지 장치(200)는 공개 키를 기초로 서명을 검증할 수 있다(S105). 스토리지 장치(200)는 S102 단계에서 저장된 공개 키를 기초로 서명을 검증할 수 있다. 실시예에 있어서, 스토리지 장치(200)는 공개 키를 기초로 서명을 복호화 하여 제1 해시 값(hash value)을 생성하고, 서명과 함께 수신된 해시 알고리즘을 기초로 난수를 처리하여 제2 해시 값을 생성할 수 있다. 스토리지 장치(200)는 제1 해시 값과 제2 해시 값을 비교하여 서명을 검증할 수 있다. 스토리지 장치(200)는 제1 해시 값과 제2 해시 값이 같으면 서명 검증 및 호스트 인증이 성공하였다고 판단할 수 있다. The storage device 200 may verify the signature based on the public key (S105). The storage device 200 may verify the signature based on the stored public key in step S102. In an embodiment, the storage device 200 generates a first hash value by decrypting the signature based on the public key, and generates a second hash value by processing a random number based on a hash algorithm received with the signature. can be created. The storage device 200 may verify the signature by comparing the first hash value and the second hash value. If the first hash value and the second hash value are the same, the storage device 200 may determine that signature verification and host authentication are successful.

스토리지 장치(200)는 서명 검증 성공 시, 다시 말해서 호스트 인증 성공 시에 호스트(200)로부터의 요청에 따라 제1 디바이스 파라미터를 변경할 수 있다(S106). 도 1을 참조하여 설명한 바와 같이, 제1 디바이스 파라미터는 일회성 쓰기 가능한 설정 값일 수 있다. 실시예에 있어서, 호스트가 인증되면, 스토리지 장치(200)의 상태는 락 상태에서 언락 상태로 변경될 수 있다. 스토리지 장치(200)는 언락 상태에서 제1 디바이스 파라미터를 변경할 수 있다. 실시예에 있어서, 호스트가 인증되면, 스토리지 장치(200)는 호스트(200)로부터의 보안 커맨드에 응답하여 락 상태에서 초기 상태로 변경될 수 있다. 예를 들어 보안 커맨드는 키 리셋 커맨드일 수 있으며, 초기 상태에서 공개 키를 포함하여 스토리지 장치(200)에 저장된 키들이 리셋될 수 있다. The storage device 200 may change the first device parameter according to a request from the host 200 when signature verification is successful, that is, when host authentication is successful (S106). As described with reference to FIG. 1, the first device parameter may be a one-time writable setting value. In an embodiment, when the host is authenticated, the state of the storage device 200 may change from the locked state to the unlocked state. The storage device 200 may change the first device parameter in an unlocked state. In an embodiment, when the host is authenticated, the storage device 200 may change from the locked state to the initial state in response to a security command from the host 200. For example, the security command may be a key reset command, and the keys stored in the storage device 200, including the public key, may be reset in the initial state.

도 3은 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 동작을 나타내는 흐름도이다. 도 3의 흐름도는 도 1의 호스트(200) 및 스토리지 장치(200) 간의 동작을 나타내며, 도 1 및 도 2를 참조하여 호스트(200) 및 스토리지 장치(200)의 동작에 대한 설명은 본 실시예에 적용될 수 있다. Figure 3 is a flowchart showing operations between a host and a storage device according to an embodiment of the present disclosure. The flowchart of FIG. 3 shows the operation between the host 200 and the storage device 200 of FIG. 1, and the description of the operation of the host 200 and the storage device 200 with reference to FIGS. 1 and 2 is provided in this embodiment. It can be applied to .

도 3을 참조하면, 호스트(200)는 공개 키 및 개인 키를 획득할 수 있다(S210). 실시예에 있어서, 호스트(200)는 스토리지 장치(100)에 대하여 고유한 값을 갖는 공개 키 및 공개 키에 대응하는 개인 키를 생성할 수 있다. 실시예에 있어서, 공개 키 및 개인 키는 스토리지 장치(100)가 연결되었던 다른 호스트에서 생성되며, 호스트(200)는 다른 호스트로에서 생성된 공개 키 및 개인 키를 수신할 수 있다. 예컨대, 공개 키 및 개인 키는 호스트(200)가 유무선으로 연결될 수 있는 별도의 서버에서 관리될 수 있으며, 호스트(200)는 서버로부터 공개 키 및 개인 키를 수신할 수 있다. Referring to FIG. 3, the host 200 may obtain a public key and a private key (S210). In an embodiment, the host 200 may generate a public key with a unique value for the storage device 100 and a private key corresponding to the public key. In an embodiment, the public key and private key are generated by another host to which storage device 100 was connected, and host 200 may receive the public key and private key generated by the other host. For example, the public key and private key may be managed in a separate server to which the host 200 can be connected wired or wirelessly, and the host 200 may receive the public key and private key from the server.

호스트(200)는 공개 키를 스토리지 장치(100)에 전송할 수 있다(S220). 실시예에 있어서, 호스트(200)는 공개 키 설정을 요청하는 보안 커맨드와 함께 공개 키를 스토리지 장치(100)로 전송할 수 있다.The host 200 may transmit the public key to the storage device 100 (S220). In an embodiment, the host 200 may transmit the public key to the storage device 100 along with a security command requesting public key setting.

스토리지 장치(100)는 호스트(200)로부터 수신된 공개 키를 저장할 수 있자(S110). 도 2를 참조하여 전술한 바와 같이, 스토리지 장치(100)는 공개 키를 저장함에 따라 스토리지 장치(100)의 상태가 초기 상태에서 락 상태로 변경될 수 있다. The storage device 100 may store the public key received from the host 200 (S110). As described above with reference to FIG. 2 , the state of the storage device 100 may change from the initial state to the locked state as the storage device 100 stores the public key.

이후, 호스트(200)는 스토리지 장치(100)로 호스트 인증 시작 요청을 전송할 수 있다(S230). 실시예에 있어서 호스트(200)는 챌린지 커맨드(challenge command)를 스토리지 장치(100)로 전송할 수 있다. 스토리지 장치(100)는 호스트(200)로부터의 호스트 인증 시작 요청에 응답하여, 난수를 생성하고(S120), 난수를 호스트(200)로 전송할 수 있다(S130). Afterwards, the host 200 may transmit a request to start host authentication to the storage device 100 (S230). In an embodiment, the host 200 may transmit a challenge command to the storage device 100. In response to a request to start host authentication from the host 200, the storage device 100 may generate a random number (S120) and transmit the random number to the host 200 (S130).

호스트(200)는 수신된 난수 및 개인 키를 기초로 서명을 생성할 수 있다(S240). 호스트(200)는 서명을 스토리지 장치(100)로 전송할 수 있다. 실시예에 있어서 호스트(200)는 인증 요청을 나타내는 커맨드와 함께 서명을 스토리지 장치(100)로 전송할 수 있다. 실시예에 있어서 호스트(200)는 키 클리어(key clear) 커맨드와 같이 특정 보안 동작을 나타내는 보안 커맨드와 함께 서명을 스토리지 장치(100)로 전송할 수 있다. The host 200 may generate a signature based on the received random number and private key (S240). The host 200 may transmit the signature to the storage device 100. In an embodiment, the host 200 may transmit a signature to the storage device 100 along with a command indicating an authentication request. In an embodiment, the host 200 may transmit a signature to the storage device 100 along with a security command indicating a specific security operation, such as a key clear command.

스토리지 장치(100)는 공개 키를 기초로 서명을 검증할 수 있다(S140). 스토리지 장치(100)는 검증 결과, 예컨대 검증 성공(success) 또는 실패(fail)를 호스트(200)로 전송할 수 있다(S150). 서명 검증이 성공하면, 다시 말해서 호스트(200)가 스토리지 장치(100)를 제어하는 권한을 갖는 호스트임을 나타내는 호스트 인증이 수행되면, 스토리지 장치(100)는 제1 디바이스 파라미터를 변경할 수 있다(S160). 여기서, 스토리지 장치(100)의 제어는 스토리지 장치(100)의 독출 및 기입 기능 뿐만 아니라 스토리지 장치(100)의 보안 기능 제어를 포함할 수 있다.The storage device 100 may verify the signature based on the public key (S140). The storage device 100 may transmit a verification result, for example, verification success or failure, to the host 200 (S150). If the signature verification is successful, that is, if host authentication is performed indicating that the host 200 is a host with authority to control the storage device 100, the storage device 100 may change the first device parameter (S160). . Here, controlling the storage device 100 may include controlling the read and write functions of the storage device 100 as well as controlling the security functions of the storage device 100.

실시예에 있어서, 스토리지 장치(100)는 락 상태에서 언락 상태로 변경되고, 언락 상태에서 스토리지 장치(100)가 제1 디바이스 파라미터를 변경할 수 있다. 전술한 바와 같이, 제1 디바이스 파라미터는 일회성 쓰기 가능한 속성을 가질 수 있다. 예를 들어, 제1 디바이스 파라미터는 RPMB 키일 수 있다. In an embodiment, the storage device 100 changes from the locked state to the unlocked state, and in the unlocked state, the storage device 100 may change the first device parameter. As described above, the first device parameter may have a one-time writable attribute. For example, the first device parameter may be an RPMB key.

실시예에 있어서, 스토리지 장치(100)는 락 상태에서 초기 상태로 변경될 수 있다. 제1 디바이스 파라미터는 공개 키를 포함한 스토리지 장치(100)에 저장된 복수의 키를 포함할 수 있으며, 스토리지 장치(100)기 초기 상태로 변경됨에 따라 복수의 키가 리셋될 수 있다. 예컨대 복수의 키의 키 값들이 무효 처리될 수 있다. In an embodiment, the storage device 100 may change from the locked state to the initial state. The first device parameter may include a plurality of keys stored in the storage device 100, including a public key, and the plurality of keys may be reset as the storage device 100 is changed to its initial state. For example, key values of multiple keys may be invalidated.

도 4a 및 도 4b는 본 개시의 일 실시예에 따른 스토리지 장치의 상태들 상태들의 전환을 예시적으로 나타낸다. 4A and 4B exemplarily show transitions between states of a storage device according to an embodiment of the present disclosure.

도 4a 및 도 4b를 참조하면 스토리지 장치(도 1의 100)는 초기 상태(ST1), 락 상태(ST2), 및 언락 상태(ST3)을 포함할 수 있다. 초기 상태(ST1)는 스토리지 장치의 파라미터들이 설정되지 않은 상태, 다시 말해서 파라미터들이 리셋된 상태를 나타낼 수 있다. 락 상태(ST2)는 제1 파라미터를 포함하는 보안 설정과 관련된 보안 파라미터들의 엑세스 또는 변경이 불가능한 상태일 수 있다. 언락 상태(ST2)는 제1 파라미터를 포함하는 보안 파라미터들의 엑세스 및 변경이 가능한 상태일 수 있다. Referring to FIGS. 4A and 4B , the storage device 100 in FIG. 1 may include an initial state (ST1), a locked state (ST2), and an unlocked state (ST3). The initial state (ST1) may represent a state in which the parameters of the storage device are not set, that is, a state in which the parameters are reset. The lock state (ST2) may be a state in which security parameters related to security settings including the first parameter cannot be accessed or changed. The unlocked state (ST2) may be a state in which security parameters including the first parameter can be accessed and changed.

도 4a를 참조하면, 스토리지 장치(100)에서 공개 키가 설정됨에 따라, 다시 말해서 스토리지 장치(100)가 호스트(100)로부터 수신된 공개 키를 저장함에 따라, 스토리지 장치(100)는 초기 상태(ST1)에서 언락 상태(ST2)로 변경될 수 있다. 이후, 스토리지 장치(100)에 연결된 호스트(100)가 호스트 인증됨에 따라 스토리지 장치(100)는 락 상태(ST2)에서 언락 상태(ST3)로 변경될 수 있다. 언락 상태(ST3)에서 제1 파라미터가 변경될 수 있다. 여기서,제1 파라미터의 변경은 호스트(200)의 요청에 따른다. 제1 파라미터 변경이 완료되면, 스토리지 장치(100)는 다시 락 상태(ST2)로 변경될 수 있다. Referring to FIG. 4A, as the public key is set in the storage device 100, that is, as the storage device 100 stores the public key received from the host 100, the storage device 100 is in an initial state ( It can be changed from ST1) to unlocked state (ST2). Thereafter, as the host 100 connected to the storage device 100 is authenticated as a host, the storage device 100 may change from the locked state (ST2) to the unlocked state (ST3). The first parameter may be changed in the unlocked state (ST3). Here, the change of the first parameter follows the request of the host 200. When the first parameter change is completed, the storage device 100 may change back to the locked state (ST2).

도 4b를 참조하면, 공개 키 설정에 따라 스토리지 장치(100)가 초기 상태(ST1)에서 락 상태(ST2)로 변경된 후, 호스트 인증 및 리셋 커맨드에 응답하여 스토리지 장치(100)는 락 상태(ST2)에서 초기 상태(ST1)으로 변경될 수 있다. 예를 들어 도 3의 S250 단계에서, 호스트(200)는 리셋 커맨드와 함께 서명을 스토리지 장치(100)로 전송할 수 있으며, 스토리지 장치(100)는 서명 검증을 통해 호스트 인증됨에 따라 스토리지 장치(100)는 리셋 커맨드에 따라 락 상태(ST2)에서 초기 상태(ST1)로 변경될 수 있다. 예컨대 리셋 커맨드는 보안 커맨드이며 모든 키의 리셋을 요청하는 리셋 올 키 커맨드를 포함할 수 있다. 초기 상태(ST2)에서 스토리지 장치(100)에 저장된 복수의 키가 리셋될 수 있다.Referring to FIG. 4b, after the storage device 100 changes from the initial state (ST1) to the locked state (ST2) according to the public key setting, the storage device 100 changes to the locked state (ST2) in response to the host authentication and reset command. ) can be changed to the initial state (ST1). For example, in step S250 of FIG. 3, the host 200 may transmit a signature along with a reset command to the storage device 100, and the storage device 100 may be authenticated as a host through signature verification. may change from the locked state (ST2) to the initial state (ST1) according to the reset command. For example, the reset command is a security command and may include a reset all key command that requests reset of all keys. In the initial state (ST2), a plurality of keys stored in the storage device 100 may be reset.

도 5는 본 개시의 일 실시예에 따른 비휘발성 메모리 장치의 저장 영역들을 개략적으로 설명한다.Figure 5 schematically explains storage areas of a non-volatile memory device according to an embodiment of the present disclosure.

도 5를 참조하면, 비휘발성 메모리 장치(120)는 부트 영역(121), 사용자 데이터 영역(122) 및 웰 노운 영역(123)을 포함할 수 있다. 부트 영역(121), 사용자 데이터 영역(122) 및 웰 노운 영역(123)은 각각은 적어도 하나의 논리 유닛을 포함할 수 있다. Referring to FIG. 5 , the non-volatile memory device 120 may include a boot area 121, a user data area 122, and a well-known area 123. The boot area 121, the user data area 122, and the well-known area 123 may each include at least one logical unit.

부트 영역(121)은 파일 시스템을 구성하기 위해 필요한 기본 정보를 포함할 수 있다. 예시적인 실시예에서, 부트 영역(121)은 파일 시스템이 볼륨에 엑세스하기 위해 필요한 정보를 포함할 수 있다. 예를 들어, 부트 영역(121)은 스토리지 시스템(도 1의 10)을 동작시키는 운영 체제를 위해 필요한 로더를 포함할 수 있고, 부트 영역(121)은 운영 체제의 커널 파일을 로드할 수 있다.The boot area 121 may include basic information needed to configure a file system. In an example embodiment, boot area 121 may contain information necessary for a file system to access the volume. For example, the boot area 121 may include a loader necessary for an operating system that operates the storage system (10 in FIG. 1), and the boot area 121 may load a kernel file of the operating system.

사용자 데이터 영역(122)은 사용자의 데이터를 저장할 수 있다. 예컨대 사용자 데이터 영역(122)은 호스트(도 1의 200)로부터 스토리지 장치(100)에 저장하도록 요청된 데이터를 저장할 수 있다. The user data area 122 can store user data. For example, the user data area 122 may store data requested to be stored in the storage device 100 by a host (200 in FIG. 1).

웰 노운 영역(123)은 SCSI 또는 UFS 표준을 위해 정의된 특정 기능을 수행하기 위한 데이터(예컨대 커맨드들, 파라미터들)를 저장할 수 있다. 스토리지 장치(100)의 제1 디바이스 파라미터를 포함하는 파라미터들이 웰 노운 영역(123)에 저장될 수 있다. 호스트 인증에 의해 스토리지 장치(100)가 전술한 바와 같이 언락 상태 또는 초기 상태가 되면 웰 노운 영역(123)에 저장된 데이터가 변경(또는 리셋)될 수 있다. 실시예에 있어서, 웰 노운 영역(123)은 RPMB 논리 유닛을 포함할 수 있고, RPMB 논리 유닛은 RPMB 키를 포함할 수 있다. RPMB 키는 스토리지 장치(100)가 언락 상태 또는 락 상태가 되면 변경 또는 초기화될 수 있다. The well-known area 123 may store data (eg, commands, parameters) for performing a specific function defined for the SCSI or UFS standard. Parameters including the first device parameter of the storage device 100 may be stored in the well-known area 123. When the storage device 100 enters the unlocked or initial state as described above due to host authentication, data stored in the well-known area 123 may be changed (or reset). In an embodiment, well-known area 123 may include an RPMB logical unit, and the RPMB logical unit may include an RPMB key. The RPMB key may be changed or initialized when the storage device 100 is in an unlocked or locked state.

도 6은 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 커맨드 및 응답 전송 동작을 나타내는 흐름도이다. 도 1 내지 도 5b를 참조하여 설명한 호스트(200) 및 스토리지 장치(200)의 동작에 대한 설명은 본 실시예에 적용될 수 있다. 설명의 편의를 위하여 호스트(200) 및 스토리지 장치(100)의 일부 구성 및 동작을 함께 표시하기로 한다. FIG. 6 is a flowchart illustrating a command and response transmission operation between a host and a storage device according to an embodiment of the present disclosure. Descriptions of the operations of the host 200 and the storage device 200 described with reference to FIGS. 1 to 5B may be applied to the present embodiment. For convenience of explanation, some configurations and operations of the host 200 and the storage device 100 will be shown together.

도 6을 참조하면, 호스트(200) 및 스토리지 장치(100)는 각각 키 스토리지(211, 1)를 포함할 수 있으며, 호스트(200)는 키 스토리지(211)에 공개 키 및 개인 키를 저장할 수 있다. 공개 키의 설정 및 공개 키에 기초한 호스트 인증을 위하여 호스트(200)가 스토리지 장치(100)로 전송하는 커맨드들 각각에 대응하여 복수의 단계, 예컨대 S10 단계, S20 단계, S30 단계 및 S40 단계가 수행될 수 있다. Referring to FIG. 6, the host 200 and the storage device 100 may include key storage 211 and 1, respectively, and the host 200 may store a public key and a private key in the key storage 211. there is. To set the public key and authenticate the host based on the public key, a plurality of steps, such as steps S10, S20, S30, and S40, are performed in response to each command transmitted from the host 200 to the storage device 100. It can be.

S10 단계에서, 호스트(200)는 제1 보안 커맨드(SCMD1)을 스토리지 장치(100)에 전송할 수 있다(S11), 제1 보안 커맨드(SCMD1)는 데이터 출력을 나타내며, 스토리지 장치(100)에 공개 키를 설정할 것을 요청하는 공개 키 설정 커맨드(Set Public Key Command)일 수 있다. 여기서, 제1 보안 커맨드(SCMD1) 및 이하 설명되는 보안 커맨드들, 예컨대 제2 보안 커맨드(SCMD2), 제3 보안 커맨드(SMCD3)은 스토리지 장치(100)와 호스트(200) 간의 인터페이스 방식에 따른 보안 프로토콜에 따라 규정될 수 있다. In step S10, the host 200 may transmit a first security command (SCMD1) to the storage device 100 (S11). The first security command (SCMD1) indicates data output and is disclosed to the storage device 100. It may be a Set Public Key Command requesting to set a key. Here, the first security command (SCMD1) and the security commands described below, such as the second security command (SCMD2) and the third security command (SMCD3), are security commands according to the interface method between the storage device 100 and the host 200. It may be specified according to the protocol.

호스트(200)는 제1 데이터(DT1)를 제1 보안 커맨드(SCMD1)에 대응하는 출력 데이터로서 스토리지 장치(100)로 전송할 수 있다. 제1 데이터(DT1)은 공개 키를 포함할 수 있다.The host 200 may transmit the first data DT1 to the storage device 100 as output data corresponding to the first security command SCMD1. The first data DT1 may include a public key.

스토리지 장치(100)는 호스트(200)로부터 수신된 제1 보안 커맨드(SCMD1)에 응답하여 공개 키를 키 스토리지(1)에 저장할 수 있다. 이에 따라 공개 키가 설정될 수 있다. The storage device 100 may store the public key in the key storage 1 in response to the first security command (SCMD1) received from the host 200. Accordingly, the public key may be set.

스토리지 장치(100)는 제1 보안 커맨드(SCMD1)에 응답하여 공개 키가 설정되었음을 나타내는 커맨드 응답을 호스트(200)로 전송할 수 있다(S13). The storage device 100 may transmit a command response indicating that the public key has been set to the host 200 in response to the first security command (SCMD1) (S13).

S20 단계에서, 스토리지 장치(100)는 호스트 인증 개시를 요청하는 제2 보안 커맨드(SCMD2)를 스토리지 장치(100)로 전송할 수 있다(S14). 제2 보안 커맨드(SCMD2)는 데이터 입력 커맨드이며, 다시 말해서 스토리지 장치(100)로 데이터를 요청하는 커맨드 일 수 있다. 실시예에 있어서 제2 보안 커맨드(SCMD2)는 챌린지 커맨드를 포함할 수 있다. 스토리지 장치(100)는 제2 보안 커맨드(SCMD2)에 응답하여 난수를 생성하고, 난수를 포함하는 제2 데이터(DT2)를 호스트(200)로 전송할 수 있다. 또한, 스토리지 장치(100)는 제2 보안 커맨드(SCMD2)에 대한 응답이 완료되었음을 나타내는 커맨드 응답을 호스트(200)로 전송할 수 있다(S16).In step S20, the storage device 100 may transmit a second security command (SCMD2) requesting initiation of host authentication to the storage device 100 (S14). The second security command (SCMD2) is a data input command, that is, it may be a command to request data from the storage device 100. In an embodiment, the second security command (SCMD2) may include a challenge command. The storage device 100 may generate a random number in response to the second security command SCMD2 and transmit second data DT2 including the random number to the host 200. Additionally, the storage device 100 may transmit a command response indicating that the response to the second security command (SCMD2) has been completed to the host 200 (S16).

호스트(200)는 스토리지 장치(100)로부터 수신된 난수 및 공개 키를 기초로 서명(디지털 서명)을 생성할 수 있다. 이후, S30 단계에서, 호스트(200)는 호스트 인증을 요청하는 제3 보안 커맨드(SCMD3)를 스토리지 장치(100)로 전송할 수 있다(S17). 제3 보안 커맨드(SCMD3)는 데이터 출력 커맨드이며, 실시예에 있어서, 제3 보안 커맨드(SCMD3)는 제3 보안 커맨드(SCMD3)과 함께 스토리지 장치(100)로 전송되는 데이터를 기초로 인증을 요청하는 인증 커맨드일 수 있다. 호스트(200)는 제3 보안 커맨드(SCMD3)에 대응하는 제3 데이터(DT3)을 스토리지 장치에 전송할 수 있다(S18). 제3 데이터(DT3)는 호스트(200)에서 생성된 서명을 포함할 수 있으며, 또한 서명 생성에 이용된 해시 알고리즘(또는 해시 함수)를 포함할 수 있다. 스토리지 장치(100)는 키 스토리지(1)에 저장된 공개 키 및 수신된 해시 함수를 기초로 서명을 검증할 수 있다. 스토리지 장치(100)는 검증 결과를 포함하는 커맨드 응답을 호스트(200)로 전송할 수 있다(S19). 전술한 바와 같이 검증이 성공하면, 다시 말해서 호스트가 인증되면 스토리지 장치(10)는 언락 상태로 변경될 수 있다. The host 200 may generate a signature (digital signature) based on the random number and public key received from the storage device 100. Thereafter, in step S30, the host 200 may transmit a third security command (SCMD3) requesting host authentication to the storage device 100 (S17). The third security command (SCMD3) is a data output command. In the embodiment, the third security command (SCMD3) requests authentication based on data transmitted to the storage device 100 together with the third security command (SCMD3). It may be an authentication command. The host 200 may transmit third data (DT3) corresponding to the third security command (SCMD3) to the storage device (S18). The third data DT3 may include a signature generated by the host 200 and may also include a hash algorithm (or hash function) used to generate the signature. The storage device 100 may verify the signature based on the public key stored in the key storage 1 and the received hash function. The storage device 100 may transmit a command response including the verification result to the host 200 (S19). As described above, if verification is successful, that is, if the host is authenticated, the storage device 10 may be changed to an unlocked state.

S40 단계에서, 호스트(200)는 S19 단계에서 수신된 커맨드 응답이 검증 성공을 포함하면, 제1 파라미터 변경을 요청하는 쿼리 커맨드(Query Command)(QCMD)를 스토리지 장치(100)로 전송할 수 있다(S20). 스토리지 장치(100)는 언락 상태에서 쿼리 커맨드(QCMD)에 응답하여 제1 파라미터를 변경할 수 있다. 예를 들어, 쿼리 커맨드는 RPMB 키 리셋 커맨드를 포함할 수 있으며, 스토리지 장치(100)는 RPMB 키 리셋 커맨드에 응답하여 RPMB 키를 리셋할 수 있다. 스토리지 장치(100)는 쿼리 커맨드(QCMD)에 따라 제1 파라미터가 변경되었음을 나타내는 쿼리 응답을 호스트(200)로 전송할 수 있다(S21). In step S40, if the command response received in step S19 includes successful verification, the host 200 may transmit a query command (QCMD) requesting a first parameter change to the storage device 100 ( S20). The storage device 100 may change the first parameter in response to a query command (QCMD) in an unlocked state. For example, the query command may include an RPMB key reset command, and the storage device 100 may reset the RPMB key in response to the RPMB key reset command. The storage device 100 may transmit a query response indicating that the first parameter has changed according to the query command (QCMD) to the host 200 (S21).

도 7a는 본 개시의 예시적 실시예에 따른 공개 키 설정 커맨드(Set Public Key Command)에 대한 커맨드 블록을 나타내고, 도 7b는 공개 키 설정 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다. FIG. 7A shows a command block for a Set Public Key Command according to an exemplary embodiment of the present disclosure, and FIG. 7B shows a data block for data corresponding to the set public key command.

도 7a를 참조하면, 제1 커맨드 블록(CDB1)은 챌린지 커맨드에 대한 커맨들 블록이며, 12 바이트(예컨대 제0 내지 제11 바이트)로 구현될 수 있다. Referring to FIG. 7A, the first command block CDB1 is a command block for a challenge command and may be implemented with 12 bytes (eg, 0th to 11th bytes).

제0 바이트는 동작 코드로서 A2h의 값을 가질 수 있다. 제1 바이트는 보안 포로토콜을 나타내는 코드로서 ECh의 값을 가질 수 있다. 제2 및 제3 바이트는 보안 프로토콜에 특정함을 나타내는 코드로서 01h 및 10h 값을 가질 수 있다. 제4 바이트의 제7 비트는 INC_512를 나타내며 0b의 값을 가질 수 있다. 제6 바이트 내지 제9 바이트는 전송 길이를 나타낼 수 있으며, 제11 바이트는 제어 바이트로서, '00h'로 설정되어 사용되지 않을 수 있다. 제4 바이트의 제0 비트 내지 제6 비트, 제5 바이트, 및 제10 바이트는 예비(reserved)일 수 있다.The 0th byte may have a value of A2h as an operation code. The first byte is a code representing the security protocol and may have a value of ECh. The second and third bytes are codes indicating that they are specific to the security protocol and may have values of 01h and 10h. The 7th bit of the 4th byte represents INC_512 and may have a value of 0b. The 6th to 9th bytes may indicate the transmission length, and the 11th byte is a control byte and may be set to '00h' and not used. The 0th to 6th bits, the 5th byte, and the 10th byte of the 4th byte may be reserved.

도 7b를 참조하면, 제1 데이터 블록(DB1)은 공개 키 설정 커맨드에 대응하는 데이터에 대한 데이터 블록이다. 제1 데이터 블록(DB1)은 적어도 4개의 바이트(예컨대 제0 바이트 내지 제3 바이트)를 포함할 수 있다. 제0 바이트는 태그를 포함하고, 제1 바이트 및 제2 바이트는 데이터의 길이를 나타내며, 제3 바이트를 포함하는 적어도 하나의 바이트는 공개 키의 값을 포함할 수 있다.Referring to FIG. 7B, the first data block DB1 is a data block for data corresponding to a public key setting command. The first data block DB1 may include at least 4 bytes (eg, 0th byte to 3rd byte). The 0th byte includes a tag, the 1st byte and the 2nd byte represent the length of data, and at least one byte including the 3rd byte may include the value of the public key.

도 8a는 본 개시의 예시적 실시예에 따른 공개 키 설정 커맨드(Set Public Key Command)에 대한 커맨드 블록을 나타내고, 도 8b는 공개 키 설정 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다. FIG. 8A shows a command block for a Set Public Key Command according to an exemplary embodiment of the present disclosure, and FIG. 8B shows a data block for data corresponding to the set public key command.

도 8b를 참조하면 제2 커맨드 블록(CDB2)은 공개 키 설정 커맨드에 대한 커맨들 블록이며, 12 바이트(예컨대 제0 내지 제11 바이트)로 구현될 수 있다. 바이트들 각각은 7개의 비트들(예컨대 제0 내지 제7 비트)을 포함할 수 있다. Referring to FIG. 8B, the second command block CDB2 is a command block for a public key setting command and may be implemented with 12 bytes (eg, 0th to 11th bytes). Each of the bytes may include 7 bits (eg, 0th to 7th bits).

제0 바이트는 동작 코드로서 B5h의 값을 가질 수 있다. 제1 바이트는 보안 포로트콜을 나타내는 코드로서 ECh의 값을 가질 수 있다. 제2 및 제3 바이트는 보안 프로토콜에 특정함을 나타내는 코드로서 01h 및 10h 값을 가질 수 있다. 제4 내지 제11 바이트는 도 8a의 제1 커맨드 블록(CDB1)의 제4 내지 제11 바이트와 동일할 수 있다. The 0th byte may have a value of B5h as an operation code. The first byte is a code representing the security protocol and may have a value of ECh. The second and third bytes are codes indicating that they are specific to the security protocol and may have values of 01h and 10h. The 4th to 11th bytes may be the same as the 4th to 11th bytes of the first command block CDB1 of FIG. 8A.

도 8b를 참조하면, 제2 데이터 블록(DB1)은 챌린지 커맨드에 대응하는 데이터에 대한 데이터 블록이다. 제2 데이터 블록(DB2)은 32바이트(예컨대 제0 바이트 내지 제31 바이트)를 포함할 수 있다. 제0 내지 제31바이트는 각각 랜덤 넘버를 포함할 수 있다. Referring to FIG. 8B, the second data block DB1 is a data block for data corresponding to the challenge command. The second data block DB2 may include 32 bytes (eg, 0th byte to 31st byte). The 0th to 31st bytes may each include a random number.

도 9a는 본 개시의 예시적 실시예에 따른 인증 커맨드에 대한 커맨드 블록을 나타내고, 도 9b는 인증 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다. FIG. 9A shows a command block for an authentication command according to an exemplary embodiment of the present disclosure, and FIG. 9B shows a data block for data corresponding to an authentication command.

도 9a를 참조하면, 제3 커맨드 블록(CDB3)은 인증 커맨드에 대한 커맨들 블록이며, 12 바이트(예컨대 제0 내지 제11 바이트)로 구현될 수 있다. Referring to FIG. 9A, the third command block CDB3 is a command block for an authentication command and may be implemented with 12 bytes (eg, 0th to 11th bytes).

제0 바이트는 동작 코드로서 B5h의 값을 가질 수 있다. 제1 바이트는 보안 포로트콜을 나타내는 코드로서 ECh의 값을 가질 수 있다. 제2 및 제3 바이트는 보안 프로토콜에 특정함을 나타내는 코드로서 03h 및 10h 값을 가질 수 있다. 제4 내지 제11 바이트는 도 8a의 제1 커맨드 블록(CDB1)의 제4 내지 제11 바이트와 동일할 수 있다. The 0th byte may have a value of B5h as an operation code. The first byte is a code representing the security protocol and may have a value of ECh. The second and third bytes are codes indicating that they are specific to the security protocol and may have values of 03h and 10h. The 4th to 11th bytes may be the same as the 4th to 11th bytes of the first command block CDB1 of FIG. 8A.

도 9b를 참조하면, 제3 데이터 블록(DB3)은 인증 커맨드에 대응하는 데이터에 대한 데이터 블록이다. 제1 데이터 블록(DB1)은 적어도 4개의 바이트(예컨대 제0 바이트 내지 제3 바이트)를 포함할 수 있다. 제0 바이트는 해시 알고리즘(또는 해시 함수)를 포함하고, 제1 바이트 및 제2 바이트는 데이터의 길이를 나타내며, 제3 바이트를 포함하는 적어도 하나의 바이트는 서명의 값을 포함할 수 있다.Referring to FIG. 9B, the third data block DB3 is a data block for data corresponding to an authentication command. The first data block DB1 may include at least 4 bytes (eg, 0th byte to 3rd byte). The 0th byte includes a hash algorithm (or hash function), the 1st and 2nd bytes represent the length of data, and at least one byte including the 3rd byte may include the value of the signature.

도 10은 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 커맨드 및 응답 전송 동작을 나타내는 흐름도이다. 도 1 내지 도 5b를 참조하여 설명한 호스트(200) 및 스토리지 장치(200)의 동작에 대한 설명은 본 실시예에 적용될 수 있다. 설명의 편의를 위하여 호스트(200) 및 스토리지 장치(100)의 일부 구성 및 동작을 함께 표시하기로 한다. FIG. 10 is a flowchart illustrating a command and response transmission operation between a host and a storage device according to an embodiment of the present disclosure. Descriptions of the operations of the host 200 and the storage device 200 described with reference to FIGS. 1 to 5B may be applied to the present embodiment. For convenience of explanation, some configurations and operations of the host 200 and the storage device 100 will be shown together.

도 10을 참조하면, 호스트(200) 및 스토리지 장치(100)는 각각 키 스토리지(211, 1)를 포함할 수 있으며, 호스트(200)는 키 스토리지(211)에 공개 키 및 개인 키를 저장할 수 있다. 공개 키의 설정 및 공개 키에 기초한 호스트 인증을 위하여 호스트(200)가 스토리지 장치(100)로 전송하는 커맨드들 각각에 대응하여 복수의 단계, 예컨대 S10 단계, S20 단계, 및 S50 단계가 수행될 수 있다. S10 단계 및 S20 단계는 도 6의 S10 단계 및 S20 단계와 동일하다. 따라서 중복되는 설명은 생략하기로 한다. Referring to FIG. 10, the host 200 and the storage device 100 may include key storage 211 and 1, respectively, and the host 200 may store a public key and a private key in the key storage 211. there is. To set the public key and authenticate the host based on the public key, a plurality of steps, such as steps S10, S20, and S50, may be performed in response to each command transmitted from the host 200 to the storage device 100. there is. Steps S10 and S20 are the same as steps S10 and S20 in FIG. 6. Therefore, overlapping explanations will be omitted.

단계 S50에서, 호스트(200)는 제4 보안 커맨드(SCMD4)를 스토리지 장치(100)에 전송할 수 있다(S51). 제4 보안 커맨드(SCMD4)는 데이터 출력을 나타내는 커맨드이며, 예컨대 리셋 키 커맨드(또는 리셋 올 키 커맨드)를 포함할 수 있다. 호스트(200)는 제4 보안 커맨드(SCMD4)에 대응하는 제4 데이터(DT4)를 스토리지 장치에 전송할 수 있다(S52). 제4 데이터(DT4)는 호스트(200)에서 생성된 서명을 포함할 수 있으며, 또한 서명 생성에 이용된 해시 알고리즘(또는 해시 함수)를 포함할 수 있다. 스토리지 장치(100)는 키 스토리지(10)에 저장된 공개 키 및 수신된 해시 함수를 기초로 서명을 검증할 수 있다. 스토리지 장치(100)는 키 스토리지(1)에 저장된 모든 키들(예컨대, 공개 키, 및 인증 키들)을 리셋할 수 있다. 다시 말해서, 키 스토리지(1)에 저장된 모든 키들이 무효화될 수 있다. 스토리지 장치(100)는 키들을 리셋 하였음을 나타내는 커맨드 응답을 호스트(200)로 전송할 수 있다(S53). 실시예에 있어서, 호스트(200)는 스토리지 장치(100)가 키 스토리지(1)의 키들을 리셋하였음을 나타내는 커맨드 응답에 응답하여 키 스토리지(211)에 저장된 키들, 예컨대 공개 키, 개인 키, 및 인증 키들을 리셋할 수 있다. 실시예에 있어서, 호스트(200)는 새로 공개 키 및 개인 키를 생성하고, S10 단계에 따라, 스토리지 장치(100)에 공개 키를 제공함으로써, 스토리지 장치(100)가 공개 키를 설정하도록 제어할 수 있다. In step S50, the host 200 may transmit the fourth security command (SCMD4) to the storage device 100 (S51). The fourth security command (SCMD4) is a command indicating data output and may include, for example, a reset key command (or reset all key command). The host 200 may transmit the fourth data (DT4) corresponding to the fourth security command (SCMD4) to the storage device (S52). The fourth data DT4 may include a signature generated by the host 200 and may also include a hash algorithm (or hash function) used to generate the signature. The storage device 100 may verify the signature based on the public key stored in the key storage 10 and the received hash function. Storage device 100 may reset all keys (eg, public keys and authentication keys) stored in key storage 1. In other words, all keys stored in key storage 1 may be invalidated. The storage device 100 may transmit a command response indicating that the keys have been reset to the host 200 (S53). In an embodiment, host 200 may reset the keys stored in key storage 211 , such as public keys, private keys, and Authentication keys can be reset. In an embodiment, the host 200 generates a new public key and a private key and provides the public key to the storage device 100 in step S10, thereby controlling the storage device 100 to set the public key. You can.

도 11a는 본 개시의 예시적 실시예에 따른 리셋 올 키 커맨드에 대한 커맨드 블록을 나타내고, 도 11b는 리셋 올 키 커맨드에 대응하는 데이터에 대한 데이터 블록을 나타낸다. FIG. 11A shows a command block for a reset all key command according to an exemplary embodiment of the present disclosure, and FIG. 11B shows a data block for data corresponding to the reset all key command.

도 11a를 참조하면, 제4 커맨드 블록(CDB4)은 12 바이트(예컨대 제0 내지 제11 바이트)로 구현될 수 있다. Referring to FIG. 11A, the fourth command block CDB4 may be implemented with 12 bytes (eg, 0th to 11th bytes).

제0 바이트는 동작 코드로서 B5h의 값을 가질 수 있다. 제1 바이트는 보안 포로토콜을 나타내는 코드로서 ECh의 값을 가질 수 있다. 제2 및 제3 바이트는 보안 프로토콜에 특정함을 나타내는 코드로서 04h 및 10h 값을 가질 수 있다. 제4 내지 제11 바이트는 도 8a의 제1 커맨드 블록(CDB1)의 제4 내지 제11 바이트와 동일할 수 있다. The 0th byte may have a value of B5h as an operation code. The first byte is a code representing the security protocol and may have a value of ECh. The second and third bytes are codes indicating that they are specific to the security protocol and may have values 04h and 10h. The 4th to 11th bytes may be the same as the 4th to 11th bytes of the first command block CDB1 of FIG. 8A.

도 11b를 참조하면, 제4 데이터 블록(DB4)은 리셋 올 키 커맨드에 대응하는 데이터에 대한 데이터 블록이다. 제4 데이터 블록(DB4)은 적어도 4개의 바이트(예컨대 제0 바이트 내지 제3 바이트)를 포함할 수 있다. 제0 바이트는 해시 알고리즘(또는 해시 함수)를 포함하고, 제1 바이트 및 제2 바이트는 데이터의 길이를 나타내며, 제3 바이트를 포함하는 적어도 하나의 바이트는 서명의 값을 포함할 수 있다.Referring to FIG. 11B, the fourth data block DB4 is a data block for data corresponding to the reset all key command. The fourth data block DB4 may include at least four bytes (eg, the 0th byte to the 3rd byte). The 0th byte includes a hash algorithm (or hash function), the 1st and 2nd bytes represent the length of data, and at least one byte including the 3rd byte may include the value of the signature.

도 12는 본 개시의 일 실시예에 따른 스토리지 장치의 동작을 나타낸다.Figure 12 shows the operation of a storage device according to an embodiment of the present disclosure.

도 12를 참조하면, 스토리지 장치(100)는 제1 호스트(200a)에 연결될 수 있다. 제1 호스트(200a)는 스토리지 장치(100)에 대한 고유한 값을 갖는 공개 키 및 개인 키를 생성하고, 이를 키 스토리지(201a)에 저장할 수 있다. 스토리지 장치(100)는 제1 호스트(200a)로부터 공개 키를 수신하고, 공개 키를 저장할 수 있다. Referring to FIG. 12, the storage device 100 may be connected to the first host 200a. The first host 200a may generate a public key and a private key with unique values for the storage device 100 and store them in the key storage 201a. The storage device 100 may receive a public key from the first host 200a and store the public key.

이후, 스토리지 장치(100)는 제1 호스트(100a)와의 연결이 종료된 후, 제2 호스트(200b)와 연결될 수 있다. 제2 호스트(200a)는 제1 호스트(201a)에서 생성된 공개 키 및 비밀키를 획득하고, 이를 키 스토리지(201b)에 저장할 수 있다. 스토리지 장치(100)는 호스트 인증 단계, 예컨대 도 6의 단계 S20, S30, S30 및 도 10의 단계 S20, S50을 제2 호스트(200a)와 함께 수행할 수 있다. Thereafter, the storage device 100 may be connected to the second host 200b after the connection with the first host 100a is terminated. The second host 200a may obtain the public key and private key generated by the first host 201a and store them in the key storage 201b. The storage device 100 may perform a host authentication step, for example, steps S20, S30, and S30 of FIG. 6 and steps S20 and S50 of FIG. 10 together with the second host 200a.

스토리지 장치(100)에 연결되는 호스트가 변경되더라도 호스트, 예컨대 제1 호스트(200a)에서 생성된 공개 키 및 개인 키를 제2 호스트(200b)가 획득하고, 스토리지 장치(100)는 제2 호스트(200b)의 요청에 따라 공개 키 및 개인 키를 기초로 호스트 인증을 수행하고, 호스트가 인증되면 제1 파라미터를 변경할 수 있다. 이에 따라, 스토리지 장치(100)의 재사용율이 증가될 수 있다. Even if the host connected to the storage device 100 changes, the second host 200b obtains the public key and private key generated by the host, for example, the first host 200a, and the storage device 100 is connected to the second host ( At the request of 200b), host authentication is performed based on the public key and private key, and when the host is authenticated, the first parameter can be changed. Accordingly, the reuse rate of the storage device 100 may be increased.

도 13은 본 개시의 일 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. Figure 13 is a flowchart showing a method of operating a storage device according to an embodiment of the present disclosure.

도 13의 방법은 스토리지 장치(도 1의 100)에서 수행될 수 있으며, 전술한 스토리지 장치(100)의 동작은 본 실시예에도 적용될 수 있다. The method of FIG. 13 can be performed in a storage device (100 in FIG. 1), and the operation of the storage device 100 described above can also be applied to this embodiment.

도 13를 참조하면, 스토리지 장치(100)는 제1 호스트(도 12의 200a)로부터 공개 키를 수신할 수 있다(S201). 공개 키는 호스트(200)가 생성하거나 또는 호스트(200)가 다른 호스트로부터 획득할 수 있다. Referring to FIG. 13, the storage device 100 may receive a public key from the first host (200a of FIG. 12) (S201). The public key may be generated by the host 200 or the host 200 may obtain it from another host.

스토리지 장치(100)는 수신된 공개 키를 저장할 수 있다(S202). 스토리지 장치(100)는 공개 키를 비휘발성 메모리에 저장할 수 있으며, 공개 키의 저장에 응답하여 스토리지 장치(100)의 상태가 초기 상태에서 락 상태로 변경될 수 있다. The storage device 100 may store the received public key (S202). The storage device 100 may store the public key in a non-volatile memory, and the state of the storage device 100 may change from the initial state to the locked state in response to storage of the public key.

스토리지 장치(200)는 제2 호스트(도 12의 200a)로부터의 인증 개시 요청에 응답하여 난수를 제2 호스트(200a)로 전송할 수 있다(S203). 스토리지 장치(200)는 제2 호스트(200a)로부터의 인증 개시 요청에 응답하여 난수를 생성하고, 난수를 호스트(200)로 전송할 수 있다. 일 예로서, 난수는 32Byte의 데이터일 수 있다. The storage device 200 may transmit a random number to the second host 200a in response to an authentication initiation request from the second host 200a (200a of FIG. 12) (S203). The storage device 200 may generate a random number in response to an authentication initiation request from the second host 200a and transmit the random number to the host 200. As an example, the random number may be 32 bytes of data.

스토리지 장치(200)는 제2 호스트(200a)로부터 개인 키와 난수를 기반으로 생성된 서명(signature)(또는 디지털 서명이라고 함)을 수신할 수 있다(S204). 실시예에 있어서, 제2 호스트(200a)는 스토리지 장치(200)로부터 수신된 난수를 해시 알고리즘(또는 해시 함수)를 기초로 처리하여 해시 값을 생성하고, 해시 값을 개인 키를 이용하여 암호화할 수 있다. 스토리지 장치(200)는 난수와 함께 해시 값 생성에 이용된 해시 알고리즘을 함께 수신할 수 있다. The storage device 200 may receive a signature (or digital signature) generated based on a private key and a random number from the second host 200a (S204). In an embodiment, the second host 200a processes random numbers received from the storage device 200 based on a hash algorithm (or hash function) to generate a hash value, and encrypts the hash value using a private key. You can. The storage device 200 may receive a hash algorithm used to generate a hash value along with a random number.

스토리지 장치(200)는 공개 키를 기초로 서명을 검증할 수 있다(S205). 스토리지 장치(200)는 서명 검증 성공 시, 다시 말해서 호스트 인증 성공 시에 호스트(200)로부터의 요청에 따라 제1 디바이스 파라미터를 변경할 수 있다(S206). 도 1을 참조하여 설명한 바와 같이, 제1 디바이스 파라미터는 일회성 쓰기 가능한 설정 값일 수 있다. 실시예에 있어서, 호스트가 인증되면, 스토리지 장치(200)의 상태는 락 상태에서 언락 상태로 변경될 수 있다. 스토리지 장치(200)는 언락 상태에서 제1 디바이스 파라미터를 변경할 수 있다. 실시예에 있어서, 호스트가 인증되면, 스토리지 장치(200)는 제2 호스트(200a)로부터의 보안 커맨드에 응답하여 락 상태에서 초기 상태로 변경될 수 있다. 예를 들어 보안 커맨드는 키 리셋 커맨드일 수 있으며, 초기 상태에서 공개 키를 포함하여 스토리지 장치(200)에 저장된 키들이 리셋될 수 있다. The storage device 200 may verify the signature based on the public key (S205). The storage device 200 may change the first device parameter according to a request from the host 200 when signature verification is successful, that is, when host authentication is successful (S206). As described with reference to FIG. 1, the first device parameter may be a one-time writable setting value. In an embodiment, when the host is authenticated, the state of the storage device 200 may change from the locked state to the unlocked state. The storage device 200 may change the first device parameter in the unlocked state. In an embodiment, when the host is authenticated, the storage device 200 may change from the locked state to the initial state in response to a security command from the second host 200a. For example, the security command may be a key reset command, and the keys stored in the storage device 200, including the public key, may be reset in the initial state.

도 14는 본 개시의 일 실시예에 따른 호스트 및 스토리지 장치의 소프트웨어 계층을 나타낸다.Figure 14 shows software layers of a host and a storage device according to an embodiment of the present disclosure.

도 14를 참조하면, 호스트(200)는 보안 매니저(210), 애플리케이션(220), 파일 시스템(230), 커맨드 매니저(240), 데이터 전송 매니저(250), 링크 매니저(260) 및 물리 계층(PHY)(270)을 포함할 수 있다. Referring to FIG. 14, the host 200 includes a security manager 210, an application 220, a file system 230, a command manager 240, a data transfer manager 250, a link manager 260, and a physical layer ( PHY) (270).

보안 매니저(210)는 호스트(200)와 스토리지 장치(100) 간의 통신에 있어서의 보안 기능을 제공할 수 있다. 보안 매니저(210)는 공개 키, 개인 키 및 다른 인증 키를 저장하는 키 스토리지(211), 해시 알고리즘을 기초로 해시 값(예컨대 제1 해시 값)을 생성하는 해시 처리부(212) 및 개인 키 및 스토리지 (100)로부터 수신되는 난수를 기초로 서명을 생성하는 서명 생성기(213)를 포함할 수 있다. The security manager 210 may provide security functions for communication between the host 200 and the storage device 100. The security manager 210 includes a key storage 211 that stores public keys, private keys, and other authentication keys, a hash processing unit 212 that generates a hash value (e.g., a first hash value) based on a hash algorithm, a private key, and It may include a signature generator 213 that generates a signature based on a random number received from the storage 100.

호스트(200)에서 실행되는 애플리케이션(220)은 파일 시스템(230)을 통해 스토리지 장치(100)에 엑세스할 수 있다. 커맨드 매니저(240)는 애플리케이션(220)이 스토리지 장치(100)(또는 다른 외부 장치)를 엑세스 하고자 할 때, 엑세스 요청을 나타내는 커맨드를 생성할 수 있다. 데이터 전송 매니저(250)는 스토리지 장치(100)와의 데이터 전송을 제어하며, 링크 매니저(260)는 스토리지 장치(100)와의 연결 관리를 제어하며, 물리 계층(270)은 스토리지 장치(100)와의 물리적 데이터 통신을 관리한다. The application 220 running on the host 200 may access the storage device 100 through the file system 230. The command manager 240 may generate a command indicating an access request when the application 220 wants to access the storage device 100 (or another external device). The data transmission manager 250 controls data transmission with the storage device 100, the link manager 260 controls connection management with the storage device 100, and the physical layer 270 controls the physical connection with the storage device 100. Manage data communications.

스토리지 장치(100)는 보안 매니저(11), 디바이스 파라미터들(13), 상태 매니저(12), 커맨드 매니저(14), 데이터 전송 매니저(15), 링크 매니저(16) 및 물리 계층(17)을 포함할 수 있다. The storage device 100 includes a security manager 11, device parameters 13, state manager 12, command manager 14, data transfer manager 15, link manager 16, and physical layer 17. It can be included.

보안 매니저(11)는 호스트(100)로부터 수신하는 공개 키 및 다른 인증키를 저장하는 키 스토리지(1), 호스트(200)로의 인증 개시 요청에 응답하여 난수를 생성하는 난수 생성기(2), 호스트(200)로부터 수신되는 해시 알고리즘을 기초로 난수를 처리하여 해시 값(예컨대 제2 해시 값)을 생성하는 해시 처리부(3), 및 호스트(200)로부터의 서명을 검증하는 서명 체커(4)를 포함할 수 있다. The security manager 11 includes a key storage 1 that stores the public key and other authentication keys received from the host 100, a random number generator 2 that generates a random number in response to an authentication initiation request to the host 200, and a host 200. A hash processing unit 3 that processes random numbers based on a hash algorithm received from 200 to generate a hash value (e.g., a second hash value), and a signature checker 4 that verifies the signature from the host 200. It can be included.

디바이스 파라미터들(13)은 읽기 전용(read-only) 속성을 갖는 파라미터들, 일회성 쓰기 가능한(one-time writable) 속성을 갖는 파라미터들, 및 독출 및 쓰기(read and write) 속성을 갖는 파라미터들 등과 같이 다양한 속성을 갖는 파라미터들을 포함할 수 있다. The device parameters 13 include parameters with read-only properties, parameters with one-time writable properties, and parameters with read and write properties, etc. Likewise, it can contain parameters with various properties.

상태 매니저(12)는 스토리지 장치(100)의 상태(예컨대 초기 상태, 락 상태, 및 언락 상태) 및 디바이스 파라미터들(13)의 상태를 관리할 수 있다. 전술한 바와 같이, 상태 매니저(12)는 호스트(200)로부터 전송된 공개 키가 스토리지에 저장되면, 스토리지 장치(100)의 상태를 초기 상태에서 락 상태로 변경할 수 있다. 상태 매니저(120)는 호스트 인증이 성공하면, 스토리지 장치(100)의 상태를 락 상태에서 언락 상태로 변경하거나 또는 락 상태에서 초기 상태로 변경할 수 있다. 상태 매니저(12)는 디바이스 파라미터들(13)을 설정하거나 또는 리셋(또는 초기화)할 수 있다. The state manager 12 may manage the state (eg, initial state, locked state, and unlocked state) of the storage device 100 and the state of the device parameters 13 . As described above, when the public key transmitted from the host 200 is stored in the storage, the state manager 12 may change the state of the storage device 100 from the initial state to the locked state. If host authentication is successful, the state manager 120 may change the state of the storage device 100 from the locked state to the unlocked state or from the locked state to the initial state. The state manager 12 can set or reset (or initialize) the device parameters 13.

커맨드 매니저(14)는 호스트(200)로부터 수신된 커맨드를 해석하고, 스토리지 장치(100)가 커맨드에 따른 동작을 수행하도록 제어할 수 있다. 데이터 전송 매니저(15)는 호스트(200)와의 데이터 전송을 제어하며, 링크 매니저(16)는 호스트(200)와의 연결 관리를 제어하며, 물리 계층(17)은 호스트(200)와의 물리적 데이터 통신을 관리한다.The command manager 14 may interpret commands received from the host 200 and control the storage device 100 to perform operations according to the commands. The data transmission manager 15 controls data transmission with the host 200, the link manager 16 controls connection management with the host 200, and the physical layer 17 controls physical data communication with the host 200. Manage.

도 15는 본 개시의 일 실시예에 따른 비휘발성 메모리 장치를 나타내는 블록도이다. Figure 15 is a block diagram showing a non-volatile memory device according to an embodiment of the present disclosure.

도 15를 참조하면, 비휘발성 메모리 장치(120)는 제어 로직 회로(120), 메모리 셀 어레이(122), 페이지 버퍼 회로(123), 전압 생성기(124), 및 로우 디코더(125)를 포함할 수 있다. 도 15에는 도시되지 않았으나, 비휘발성 메모리 장치(120)는 메모리 인터페이스 회로를 더 포함할 수 있고, 또한 커맨드 디코더, 어드레스 디코더 등을 더 포함할 수 있다.Referring to FIG. 15, the non-volatile memory device 120 may include a control logic circuit 120, a memory cell array 122, a page buffer circuit 123, a voltage generator 124, and a row decoder 125. You can. Although not shown in FIG. 15, the non-volatile memory device 120 may further include a memory interface circuit, and may further include a command decoder, an address decoder, etc.

제어 로직 회로(121)는 비휘발성 메모리 장치(120) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(121)는 예를 들어, 디바이스 컨트롤러(도 1의 110)로부터 수신한 커맨드(CMD) 및/또는 어드레스(ADDR)에 응답하여 각종 제어 신호들을 출력할 수 있다. 예를 들어, 제어 로직 회로(121)는 전압 제어 신호(CTRL_vol), 로우 어드레스(X-ADDR), 및 컬럼 어드레스(Y-ADDR)를 출력할 수 있다.The control logic circuit 121 can generally control various operations within the non-volatile memory device 120. For example, the control logic circuit 121 may output various control signals in response to a command (CMD) and/or address (ADDR) received from a device controller (110 in FIG. 1). For example, the control logic circuit 121 may output a voltage control signal (CTRL_vol), a row address (X-ADDR), and a column address (Y-ADDR).

메모리 셀 어레이(122)는 복수의 메모리 블록들(BLK1 내지 BLKn)을 포함할 수 있고(n는 양의 정수), 복수의 메모리 블록들(BLK1 내지 BLKn) 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(122)는 비트 라인들(BL)을 통해 페이지 버퍼 회로(123)에 연결될 수 있고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(125)에 연결될 수 있다.The memory cell array 122 may include a plurality of memory blocks BLK1 to BLKn (n is a positive integer), and each of the memory blocks BLK1 to BLKn may include a plurality of memory cells. there is. The memory cell array 122 may be connected to the page buffer circuit 123 through bit lines BL, and has word lines WL, string select lines SSL, and ground select lines GSL. It can be connected to the row decoder 125 through.

예시적인 실시 예에서, 메모리 셀 어레이(122)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있다. 각 낸드 스트링은 기판 위에 수직으로 적층된 워드 라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 본 명세서에 인용 형식으로 결합된다. 예시적인 실시 예에서, 메모리 셀 어레이(122)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.In an example embodiment, the memory cell array 122 may include a three-dimensional memory cell array, and the three-dimensional memory cell array may include a plurality of NAND strings. Each NAND string may include memory cells each connected to word lines vertically stacked on the substrate. US Patent Publication No. 7,679,133, US Patent Publication No. 8,553,466, US Patent Publication No. 8,654,587, US Patent Publication No. 8,559,235, and US Patent Application Publication No. 2011/0233648 are incorporated herein by reference. are combined. In an example embodiment, the memory cell array 122 may include a two-dimensional memory cell array, and the two-dimensional memory cell array may include a plurality of NAND strings arranged along row and column directions.

페이지 버퍼 회로(123)는 복수의 페이지 버퍼들(PB1 내지 PBm)을 포함할 수 있고(m은 3 이상의 정수), 복수의 페이지 버퍼들(PB1 내지 PBm)은 복수의 비트 라인들(BL)을 통해 메모리 셀들과 각각 연결될 수 있다. 페이지 버퍼 회로(123)는 컬럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 적어도 하나의 비트 라인을 선택할 수 있다. 페이지 버퍼 회로(123)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 프로그램 동작 시, 페이지 버퍼 회로(123)는 선택된 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 인가할 수 있다. 독출 동작 시, 페이지 버퍼 회로(123)는 선택된 비트 라인의 전류 또는 전압을 감지하여 메모리 셀에 저장된 데이터를 감지할 수 있다. The page buffer circuit 123 may include a plurality of page buffers (PB1 to PBm) (m is an integer of 3 or more), and the plurality of page buffers (PB1 to PBm) may include a plurality of bit lines (BL). It can be connected to each memory cell through. The page buffer circuit 123 may select at least one bit line among the bit lines BL in response to the column address Y-ADDR. The page buffer circuit 123 may operate as a write driver or a sense amplifier depending on the operation mode. For example, during a program operation, the page buffer circuit 123 may apply a bit line voltage corresponding to data to be programmed to the selected bit line. During a read operation, the page buffer circuit 123 may detect data stored in the memory cell by detecting the current or voltage of the selected bit line.

전압 생성기(124)는 전압 제어 신호(CTRL_vol)를 기반으로 프로그램, 독출, 및 소거 동작들을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 생성기(124)는 워드 라인 전압(VWL)으로서 프로그램 전압, 독출 전압, 프로그램 검증 전압, 소거 전압 등을 생성할 수 있다.The voltage generator 124 may generate various types of voltages to perform program, read, and erase operations based on the voltage control signal (CTRL_vol). For example, the voltage generator 124 may generate a program voltage, a read voltage, a program verification voltage, an erase voltage, etc. as a word line voltage (VWL).

로우 디코더(125)는 로우 어드레스(X-ADDR)에 응답하여 복수의 워드 라인들(WL) 중 하나를 선택할 수 있고, 복수의 스트링 선택 라인들(SSL) 중 하나를 선택할 수 있다. 예를 들어, 프로그램 동작 시, 로우 디코더(125)는 선택된 워드 라인으로 프로그램 전압 및 프로그램 검증 전압을 인가하고, 독출 동작 시, 선택된 워드 라인으로 독출 전압을 인가할 수 있다. The row decoder 125 may select one of a plurality of word lines (WL) and one of a plurality of string select lines (SSL) in response to the row address (X-ADDR). For example, during a program operation, the row decoder 125 may apply a program voltage and a program verification voltage to the selected word line, and during a read operation, the row decoder 125 may apply a read voltage to the selected word line.

도 1 및 도 14를 함께 참조하면, 메모리 셀 어레이(122)는 제1 파라미터를포함하는 복수의 파라미터들을 저장할 수 있다. 스토리지 장치(도 1의 100)가 언락 상태가 되면, 제1 파라미터가 리셋 될 수 있다. 다시 말해서 제1 파라미터는 무효 데이터로 설정될 수 있다. Referring to FIGS. 1 and 14 together, the memory cell array 122 may store a plurality of parameters including a first parameter. When the storage device (100 in FIG. 1) is unlocked, the first parameter may be reset. In other words, the first parameter may be set to invalid data.

도 16은 본 개시의 일 실시예에 따른 UFS 시스템을 나타내는 블록도이다. Figure 16 is a block diagram showing a UFS system according to an embodiment of the present disclosure.

UFS 시스템(1000)은 JEDEC(Joint Electron Device Engineering Council)에서 발표하는 UFS 표준을 따르는 시스템으로서, UFS 호스트(1100), UFS 장치(1200) 및 UFS 인터페이스(1300)를 포함할 수 있다. 전술한 도 1의 스토리지 시스템(10)에 대한 설명은, 도 16에 대한 이하의 설명과 상충되지 않는 범위 내에서 도 16의 UFS 시스템(1000)에도 적용될 수 있다.The UFS system 1000 is a system that follows the UFS standard published by the Joint Electron Device Engineering Council (JEDEC) and may include a UFS host 1100, a UFS device 1200, and a UFS interface 1300. The description of the storage system 10 of FIG. 1 described above may also be applied to the UFS system 1000 of FIG. 16 to the extent that it does not conflict with the following description of FIG. 16 .

도 16을 참조하면, UFS 호스트(1100)와 UFS 장치(1200)는 UFS 인터페이스(1300)를 통해 상호 연결될 수 있다. 도 1의 호스트(200)가 애플리케이션 프로세서일 경우, UFS 호스트(1100)는 해당 애플리케이션 프로세서의 일부로서 구현될 수 있다. UFS 장치(1200)는 도 1의 스토리지 장치(100)에 대응될 수 있으며, UFS 장치 컨트롤러(1210) 및 비휘발성 메모리(1220)는 도 1의 디바이스 컨트롤러(110) 및 비휘발성 메모리 장치(120)에 각각 대응될 수 있다. UFS 시스템(1000)은 UFS 호스트(1100)가 UFS 장치(1200)에 대하여 고유한 값을 갖는 공개 키 및 공개 키에 대응하는 개인 키를 생성하고, UFS 장치(1200) UFS 호스트(1100)로부터 제공되는 공개 키를 기초로 호스트 인증을 수행하고, 인증된 UFS 호스트(1100)의 요청에 따라 UFS 장치(1200)의 상태를 변경하고 또한 언락 상태 또는 초기 상태에서 일회성 쓰기 가능한 파라미터(제1 파라미터)를 변경할 수 있다. 이에 따라, 최종 사용자가 제1 파라미터를 변경하는 것을 방지하면서, UFS 호스트(1100)로부터의 요청에 따라 제1 파라미터를 변경할 수 있다. Referring to FIG. 16, the UFS host 1100 and the UFS device 1200 may be interconnected through the UFS interface 1300. When the host 200 of FIG. 1 is an application processor, the UFS host 1100 may be implemented as part of the application processor. The UFS device 1200 may correspond to the storage device 100 of FIG. 1, and the UFS device controller 1210 and non-volatile memory 1220 may correspond to the device controller 110 and non-volatile memory device 120 of FIG. 1. can correspond to each. The UFS system 1000 generates a public key with a unique value for the UFS device 1200 and a private key corresponding to the public key, and provides the UFS device 1200 from the UFS host 1100. performs host authentication based on the public key, changes the state of the UFS device 1200 at the request of the authenticated UFS host 1100, and sets a one-time writable parameter (first parameter) in the unlocked or initial state. You can change it. Accordingly, the first parameter can be changed according to a request from the UFS host 1100 while preventing the end user from changing the first parameter.

UFS 호스트(1100)는 UFS 호스트 컨트롤러(1110), 애플리케이션(1120), UFS 드라이버(1130), 호스트 메모리(1140) 및 UIC(UFS interconnect) 레이어(1150)를 포함할 수 있다. UFS 장치(1200)는 UFS 장치 컨트롤러(1210), 비휘발성 메모리(1220), 스토리지 인터페이스(1230), 장치 메모리(1240), UIC 레이어(1250) 및 레귤레이터(1260)를 포함할 수 있다. 비휘발성 메모리(1220)는 복수의 메모리 유닛(1221)으로 구성될 수 있으며, 이와 같은 메모리 유닛(1221)은 2D 구조 혹은 3D 구조의 V-NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. UFS 장치 컨트롤러(1210)와 비휘발성 메모리(1220)는 스토리지 인터페이스(1230)를 통해 서로 연결될 수 있다. 스토리지 인터페이스(1230)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.The UFS host 1100 may include a UFS host controller 1110, an application 1120, a UFS driver 1130, a host memory 1140, and a UFS interconnect (UIC) layer 1150. UFS device 1200 may include a UFS device controller 1210, non-volatile memory 1220, storage interface 1230, device memory 1240, UIC layer 1250, and regulator 1260. The non-volatile memory 1220 may be composed of a plurality of memory units 1221, and the memory units 1221 may include V-NAND flash memory with a 2D structure or 3D structure, but may include PRAM and/or RRAM. It may also include other types of non-volatile memory, such as: The UFS device controller 1210 and the non-volatile memory 1220 may be connected to each other through a storage interface 1230. The storage interface 1230 may be implemented to comply with standard protocols such as Toggle or ONFI.

애플리케이션(1120)은 UFS 장치(1200)의 기능을 이용하기 위해 UFS 장치(1200)와의 통신을 원하는 프로그램을 의미할 수 있다. 애플리케이션(1120)은 UFS 장치(1200)에 대한 입출력을 위해 입출력 요청(input-output request, IOR)을 UFS 드라이버(1130)로 전송할 수 있다. 입출력 요청(IOR)은 데이터의 독출(read) 요청, 저장(write) 요청 및/또는 소거(discard) 요청 등을 의미할 수 있으나, 반드시 이에 한정되는 것은 아니다.The application 1120 may refer to a program that wishes to communicate with the UFS device 1200 in order to use the functions of the UFS device 1200. The application 1120 may transmit an input-output request (IOR) to the UFS driver 1130 for input/output to the UFS device 1200. An input/output request (IOR) may mean a read request, write request, and/or discard request of data, but is not necessarily limited thereto.

UFS 드라이버(1130)는 UFS-HCI(host controller interface)를 통해 UFS 호스트 컨트롤러(1110)를 관리할 수 있다. UFS 드라이버(1130)는 애플리케이션(1120)에 의해 생성된 입출력 요청을 UFS 표준에 의해 정의된 UFS 명령으로 변환하고, 변환된 UFS 명령을 UFS 호스트 컨트롤러(1110)로 전달할 수 있다. 하나의 입출력 요청은 복수의 UFS 명령으로 변환될 수 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의된 명령일 수 있지만, UFS 표준 전용 명령일 수도 있다.The UFS driver 1130 can manage the UFS host controller 1110 through UFS-HCI (host controller interface). The UFS driver 1130 may convert the input/output request generated by the application 1120 into a UFS command defined by the UFS standard and transmit the converted UFS command to the UFS host controller 1110. One input/output request can be converted into multiple UFS commands. UFS commands may basically be commands defined by the SCSI standard, but may also be commands exclusive to the UFS standard.

UFS 호스트 컨트롤러(1110)는 UFS 드라이버(1130)에 의해 변환된 UFS 명령을 UIC 레이어(1150)와 UFS 인터페이스(1300)를 통해 UFS 장치(1200)의 UIC 레이어(1250)로 전송할 수 있다. 이 과정에서, UFS 호스트 컨트롤러(1110)의 UFS 호스트 레지스터(1111)는 명령 큐(command queue, CQ)로서의 역할을 수행할 수 있다. The UFS host controller 1110 may transmit the UFS command converted by the UFS driver 1130 to the UIC layer 1250 of the UFS device 1200 through the UIC layer 1150 and the UFS interface 1300. In this process, the UFS host register 1111 of the UFS host controller 1110 may function as a command queue (CQ).

UFS 호스트(1100) 측의 UIC 레이어(1150)는 MIPI M-PHY(1151)와 MIPI UniPro(1152)를 포함할 수 있으며, UFS 장치(1200) 측의 UIC 레이어(1250) 또한 MIPI M-PHY(1251)와 MIPI UniPro(1252)을 포함할 수 있다. The UIC layer 1150 on the UFS host 1100 side may include MIPI M-PHY 1151 and MIPI UniPro 1152, and the UIC layer 1250 on the UFS device 1200 side may also include MIPI M-PHY (1152). 1251) and MIPI UniPro (1252).

UFS 인터페이스(1300)는 기준 클럭(REF_CLK)을 전송하는 라인, UFS 장치(1200)에 대한 하드웨어 리셋 신호(RESET_n)를 전송하는 라인, 차동 입력 신호 쌍(DIN_t와 DIN_c)을 전송하는 한 쌍의 라인 및 차동 출력 신호 쌍(DOUT_t와 DOUT_c)을 전송하는 한 쌍의 라인을 포함할 수 있다.The UFS interface 1300 includes a line transmitting a reference clock (REF_CLK), a line transmitting a hardware reset signal (RESET_n) for the UFS device 1200, and a pair of lines transmitting a pair of differential input signals (DIN_t and DIN_c). and a pair of lines transmitting a pair of differential output signals (DOUT_t and DOUT_c).

UFS 호스트(1100)로부터 UFS 장치(1200)로 제공되는 기준 클럭의 주파수 값은 19.2MHz, 26MHz, 38.4MHz 및 52MHz의 네 개의 값 중 하나일 수 있으나, 반드시 이에 한정되지는 않는다. UFS 호스트(1100)는 동작 중에도, 즉 UFS 호스트(1100)와 UFS 장치(1200) 사이에서 데이터 송수신이 수행되는 중에도 기준 클럭의 주파수 값을 변경할 수 있다. UFS 장치(1200)는 위상 동기 루프(phase-locked loop, PLL) 등을 이용하여, UFS 호스트(1100)로부터 제공받은 기준 클럭으로부터 다양한 주파수의 클럭을 생성할 수 있다. 또한, UFS 호스트(1100)는 기준 클럭의 주파수 값을 통해 UFS 호스트(1100)와 UFS 장치(1200) 간의 데이터 레이트(data rate)의 값을 설정할 수도 있다. 즉, 상기 데이터 레이트의 값은 기준 클럭의 주파수 값에 의존하여 결정될 수 있다.The frequency value of the reference clock provided from the UFS host 1100 to the UFS device 1200 may be one of four values: 19.2 MHz, 26 MHz, 38.4 MHz, and 52 MHz, but is not necessarily limited thereto. The UFS host 1100 may change the frequency value of the reference clock even during operation, that is, while data is being transmitted and received between the UFS host 1100 and the UFS device 1200. The UFS device 1200 may generate clocks of various frequencies from a reference clock provided from the UFS host 1100 using a phase-locked loop (PLL) or the like. Additionally, the UFS host 1100 may set the value of the data rate between the UFS host 1100 and the UFS device 1200 through the frequency value of the reference clock. That is, the value of the data rate can be determined depending on the frequency value of the reference clock.

UFS 인터페이스(1300)는 복수의 레인들(multiple lanes)을 지원할 수 있으며, 각 레인은 차동(differential) 쌍으로 구현될 수 있다. 예컨대, UFS 인터페이스는 하나 이상의 수신 레인(receive lane)과 하나 이상의 송신 레인(transmit lane)을 포함할 수 있다. 도 16에서, 차동 입력 신호 쌍(DIN_T와 DIN_C)을 전송하는 한 쌍의 라인은 수신 레인을, 차동 출력 신호 쌍(DOUT_T와 DOUT_C)을 전송하는 한 쌍의 라인은 송신 레인을 각각 구성할 수 있다. 도 16에서는 하나의 송신 레인과 하나의 수신 레인을 도시하였지만, 송신 레인과 수신 레인의 수는 변경될 수 있다.The UFS interface 1300 may support multiple lanes, and each lane may be implemented as a differential pair. For example, a UFS interface may include one or more receive lanes and one or more transmit lanes. In Figure 16, a pair of lines transmitting a differential input signal pair (DIN_T and DIN_C) can constitute a receiving lane, and a pair of lines transmitting a differential output signal pair (DOUT_T and DOUT_C) can constitute a transmitting lane. . Although FIG. 16 shows one transmission lane and one reception lane, the number of transmission lanes and reception lanes can be changed.

수신 레인 및 송신 레인은 직렬 통신(serial communication) 방식으로 데이터를 전송할 수 있으며, 수신 레인과 송신 레인이 분리된 구조에 의해 UFS 호스트(1100)와 UFS 장치(1200) 간의 풀 듀플렉스(full-duplex) 방식의 통신이 가능하다. 즉, UFS 장치(1200)는 수신 레인을 통해 UFS 호스트(1100)로부터 데이터를 수신받는 동안에도, 송신 레인을 통해 UFS 호스트(1100)로 데이터를 송신할 수 있다. 또한, UFS 호스트(1100)로부터 UFS 장치(1200)로의 명령과 같은 제어 데이터와, UFS 호스트(1100)가 UFS 장치(1200)의 비휘발성 메모리(1220)에 저장하고자 하거나 비휘발성 메모리(1220)로부터 독출하고자 하는 사용자 데이터는 동일한 레인을 통해 전송될 수 있다. 이에 따라, UFS 호스트(1100)와 UFS 장치(1200) 간에는 한 쌍의 수신 레인과 한 쌍의 송신 레인 외에 데이터 전송을 위한 별도의 레인이 더 구비될 필요가 없다.The receiving lane and the transmitting lane can transmit data through serial communication, and the structure in which the receiving lane and the transmitting lane are separated allows full-duplex between the UFS host 1100 and the UFS device 1200. communication is possible. That is, the UFS device 1200 can transmit data to the UFS host 1100 through the transmission lane even while receiving data from the UFS host 1100 through the reception lane. Additionally, control data, such as commands from the UFS host 1100 to the UFS device 1200, and data that the UFS host 1100 wants to store in the non-volatile memory 1220 of the UFS device 1200 or from the non-volatile memory 1220. User data to be read may be transmitted through the same lane. Accordingly, there is no need to provide a separate lane for data transmission between the UFS host 1100 and the UFS device 1200 in addition to a pair of reception lanes and a pair of transmission lanes.

UFS 장치(1200)의 UFS 장치 컨트롤러(1210)는 UFS 장치(1200)의 동작을 전반적으로 제어할 수 있다. UFS 장치 컨트롤러(1210)는 논리적인 데이터 저장 단위인 LU(logical unit)(1211)를 통해 비휘발성 메모리(1220)를 관리할 수 있다. LU(1211)의 개수는 8개일 수 있으나, 이에 한정되는 것은 아니다. UFS 장치 컨트롤러(1210)는 플래시 변환 계층(flash translation layer, FTL)을 포함할 수 있으며, FTL의 어드레스 매핑(address mapping) 정보를 이용하여 UFS 호스트(1100)로부터 전달된 논리적인 데이터 주소, 예컨대 LBA(logical block address)를 물리적인 데이터 주소로, 예컨대 PBA(physical block address)로 변환할 수 있다. UFS 시스템(1000)에서 사용자 데이터(user data)의 저장을 위한 논리 블록(logical block)은 소정 범위의 크기를 가질 수 있다. 예컨대, 논리 블록의 최소 크기는 4Kbyte로 설정될 수 있다.The UFS device controller 1210 of the UFS device 1200 may generally control the operation of the UFS device 1200. The UFS device controller 1210 can manage the non-volatile memory 1220 through a logical unit (LU) 1211, which is a logical data storage unit. The number of LUs (1211) may be 8, but is not limited thereto. The UFS device controller 1210 may include a flash translation layer (FTL), and uses address mapping information of the FTL to determine a logical data address transmitted from the UFS host 1100, such as LBA. (logical block address) can be converted to a physical data address, for example, a PBA (physical block address). In the UFS system 1000, a logical block for storing user data may have a size within a predetermined range. For example, the minimum size of a logical block may be set to 4Kbytes.

UFS 호스트(1100)로부터의 명령이 UIC 레이어(1250)를 통해 UFS 장치(1200)로 입력되면, UFS 장치 컨트롤러(1210)는 입력된 명령에 따른 동작을 수행하고, 상기 동작이 완료되면 완료 응답을 UFS 호스트(1100)로 전송할 수 있다. When a command from the UFS host 1100 is input to the UFS device 1200 through the UIC layer 1250, the UFS device controller 1210 performs an operation according to the input command and sends a completion response when the operation is completed. It can be transmitted to the UFS host (1100).

일례로서, UFS 호스트(1100)가 UFS 장치(1200)에 사용자 데이터를 저장하고자 할 경우, UFS 호스트(1100)는 데이터 저장 명령을 UFS 장치(1200)로 전송할 수 있다. 사용자 데이터를 전송받을 준비가 되었다(ready-to-transfer)는 응답을 UFS 장치(1200)로부터 수신하면, UFS 호스트(1100)는 사용자 데이터를 UFS 장치(1200)로 전송할 수 있다. UFS 장치 컨트롤러(1210)는 전송받은 사용자 데이터를 장치 메모리(1240) 내에 임시로 저장하고, FTL의 어드레스 매핑 정보에 기초하여 장치 메모리(1240)에 임시로 저장된 사용자 데이터를 비휘발성 메모리(1220)의 선택된 위치에 저장할 수 있다.As an example, when the UFS host 1100 wants to store user data in the UFS device 1200, the UFS host 1100 may transmit a data storage command to the UFS device 1200. Upon receiving a response indicating that user data is ready-to-transfer from the UFS device 1200, the UFS host 1100 may transmit the user data to the UFS device 1200. The UFS device controller 1210 temporarily stores the transmitted user data in the device memory 1240, and stores the user data temporarily stored in the device memory 1240 based on the address mapping information of the FTL in the non-volatile memory 1220. You can save it to the selected location.

또 다른 예로서, UFS 호스트(1100)가 UFS 장치(1200)에 저장된 사용자 데이터를 독출하고자 할 경우, UFS 호스트(1100)는 데이터 독출 명령을 UFS 장치(1200)로 전송할 수 있다. 명령을 수신한 UFS 장치 컨트롤러(1210)는 상기 데이터 독출 명령에 기초하여 비휘발성 메모리(1220)로부터 사용자 데이터를 독출하고, 독출된 사용자 데이터를 장치 메모리(1240) 내에 임시로 저장할 수 있다. 이러한 독출 과정에서, UFS 장치 컨트롤러(1210)는 내장된 ECC(error correction code) 엔진(미도시)을 이용하여, 독출된 사용자 데이터의 에러를 검출하고 정정할 수 있다. 보다 구체적으로, ECC 엔진은 비휘발성 메모리(1220)에 기입될 기입 데이터에 대하여 패리티 비트(parity bit)들을 생성할 수 있으며, 이와 같이 생성된 패리티 비트들은 기입 데이터와 함께 비휘발성 메모리(1220) 내에 저장될 수 있다. 비휘발성 메모리(1220)로부터의 데이터 독출 시, ECC 엔진은 독출 데이터와 함께 비휘발성 메모리(1220)로부터 독출되는 패리티 비트들을 이용하여 독출 데이터의 에러를 정정하고, 에러가 정정된 독출 데이터를 출력할 수 있다.As another example, when the UFS host 1100 wants to read user data stored in the UFS device 1200, the UFS host 1100 may transmit a data read command to the UFS device 1200. The UFS device controller 1210, which has received the command, may read user data from the non-volatile memory 1220 based on the data read command and temporarily store the read user data in the device memory 1240. In this read process, the UFS device controller 1210 can detect and correct errors in the read user data using a built-in error correction code (ECC) engine (not shown). More specifically, the ECC engine can generate parity bits for write data to be written in the non-volatile memory 1220, and the parity bits generated in this way are stored in the non-volatile memory 1220 along with the write data. It can be saved. When reading data from the non-volatile memory 1220, the ECC engine corrects errors in the read data using parity bits read from the non-volatile memory 1220 along with the read data, and outputs error-corrected read data. You can.

그리고, UFS 장치 컨트롤러(1210)는 장치 메모리(1240) 내에 임시로 저장된 사용자 데이터를 UFS 호스트(1100)로 전송할 수 있다. 아울러, UFS 장치 컨트롤러(1210)는 AES(advanced encryption standard) 엔진(미도시)을 더 포함할 수 있다. AES 엔진은, UFS 장치 컨트롤러(1210)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를, 대칭 키 알고리즘(symmetric-key algorithm)을 이용하여 수행할 수 있다.Additionally, the UFS device controller 1210 may transmit user data temporarily stored in the device memory 1240 to the UFS host 1100. In addition, the UFS device controller 1210 may further include an advanced encryption standard (AES) engine (not shown). The AES engine may perform at least one of encryption and decryption of data input to the UFS device controller 1210 using a symmetric-key algorithm.

UFS 호스트(1100)는 명령 큐로 기능할 수 있는 UFS 호스트 레지스터(1111)에 UFS 장치(1200)로 송신될 명령들을 순서에 따라 저장하고, 상기 순서대로 UFS 장치(1200)에 명령을 송신할 수 있다. 이 때, UFS 호스트(1100)는 이전에 송신된 명령이 아직 UFS 장치(1200)에 의해 처리 중인 경우에도, 즉 이전에 송신된 명령이 UFS 장치(1200)에 의해 처리가 완료되었다는 통지를 받기 전에도 명령 큐에 대기 중인 다음 명령을 UFS 장치(1200)로 송신할 수 있으며, 이에 따라 UFS 장치(1200) 역시 이전에 송신된 명령을 처리하는 중에도 다음 명령을 UFS 호스트(1100)로부터 수신할 수 있다. 이와 같은 명령 큐에 저장될 수 있는 명령의 최대 개수(queue depth)는 예컨대 32개일 수 있다. 또한, 명령 큐는 헤드 포인터(head point)와 테일 포인터(tail pointer)를 통해 큐에 저장된 명령 열의 시작과 끝을 각각 나타내는 원형 큐(circular queue) 타입으로 구현될 수 있다.The UFS host 1100 stores commands to be transmitted to the UFS device 1200 in order in the UFS host register 1111, which can function as a command queue, and transmits the commands to the UFS device 1200 in that order. . At this time, the UFS host 1100 even if the previously transmitted command is still being processed by the UFS device 1200, that is, even before receiving notification that the previously transmitted command has completed processing by the UFS device 1200. The next command waiting in the command queue can be transmitted to the UFS device 1200, and accordingly, the UFS device 1200 can also receive the next command from the UFS host 1100 while processing the previously transmitted command. The maximum number (queue depth) of commands that can be stored in such a command queue may be, for example, 32. Additionally, the command queue can be implemented as a circular queue type that indicates the start and end of the command sequence stored in the queue through a head pointer and a tail pointer, respectively.

복수의 메모리 유닛(1221) 각각은 메모리 셀 어레이(미도시)와 상기 메모리 셀 어레이의 작동을 제어하는 제어 회로(미도시)를 포함할 수 있다. 상기 메모리 셀 어레이는 2차원 메모리 셀 어레이 또는 3차원 메모리 셀 어레이를 포함할 수 있다. 3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다.Each of the plurality of memory units 1221 may include a memory cell array (not shown) and a control circuit (not shown) that controls the operation of the memory cell array. The memory cell array may include a two-dimensional memory cell array or a three-dimensional memory cell array. A three-dimensional memory cell array may include vertical NAND strings that are vertically oriented such that at least one memory cell is located on top of other memory cells.

UFS 장치(1200)에는 전원 전압으로서 VCC, VCCQ, VCCQ2 등이 입력될 수 있다. VCC는 UFS 장치(1200)를 위한 주 전원 전압으로서, 2.4~3.6V의 값을 가질 수 있다. VCCQ는 낮은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 UFS 장치 컨트롤러(1210)를 위한 것이며. 1.14~1.26V의 값을 가질 수 있다. VCCQ2는 VCC보다는 낮지만 VCCQ보다는 높은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 MIPI M-PHY(1251)와 같은 입출력 인터페이스를 위한 것이며, 1.7~1.95V의 값을 가질 수 있다. 상기 전원 전압들은 레귤레이터(1260)를 거쳐 UFS 장치(1200)의 각 구성 요소들을 위해 공급될 수 있다. 레귤레이터(1260)는 전술한 전원 전압들 중 서로 다른 것에 각각 연결되는 단위 레귤레이터의 집합으로 구현될 수 있다.VCC, VCCQ, VCCQ2, etc. may be input to the UFS device 1200 as power voltages. VCC is the main power voltage for the UFS device 1200 and can have a value of 2.4 to 3.6V. VCCQ is a power supply voltage for supplying a low range voltage, and is mainly for the UFS device controller 1210. It can have a value of 1.14~1.26V. VCCQ2 is a power supply voltage to supply a voltage range lower than VCC but higher than VCCQ. It is mainly for input/output interfaces such as MIPI M-PHY (1251), and can have a value of 1.7~1.95V. The power voltages may be supplied to each component of the UFS device 1200 through the regulator 1260. The regulator 1260 may be implemented as a set of unit regulators each connected to a different one of the above-described power supply voltages.

도 17은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 3D VNAND 구조에 대해 설명하기 위한 도면이다. UFS 장치의 스토리지 모듈이 3D VNAND(Vertical NAND) 타입의 플래시 메모리로 구현될 경우, 스토리지 모듈을 구성하는 복수의 메모리 블록 각각은 도 17에 도시된 바와 같은 등가 회로로 표현될 수 있다. 도 17에 도시된 메모리 블록(BLKi)은 기판 상에 삼차원 구조로 형성되는 삼차원 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 낸드 스트링들은 상기 기판과 수직한 방향으로 형성될 수 있다.Figure 17 is a diagram for explaining a 3D VNAND structure that can be applied to a UFS device according to an embodiment of the present invention. When the storage module of the UFS device is implemented as a 3D Vertical NAND (VNAND) type flash memory, each of the plurality of memory blocks constituting the storage module may be expressed as an equivalent circuit as shown in FIG. 17. The memory block BLKi shown in FIG. 17 represents a three-dimensional memory block formed in a three-dimensional structure on a substrate. For example, a plurality of memory NAND strings included in the memory block BLKi may be formed in a direction perpendicular to the substrate.

도 17을 참조하면, 메모리 블록(BLKi)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링들(NS11~NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 도 28에는 복수의 메모리 낸드 스트링들(NS11~NS33) 각각이 8개의 메모리 셀들(MC1, MC2, ..., MC8)을 포함하는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.Referring to FIG. 17 , the memory block BLKi may include a plurality of memory NAND strings NS11 to NS33 connected between the bit lines BL1, BL2, and BL3 and the common source line CSL. Each of the plurality of memory NAND strings NS11 to NS33 may include a string selection transistor (SST), a plurality of memory cells (MC1, MC2, ..., MC8), and a ground selection transistor (GST). In FIG. 28, each of the plurality of memory NAND strings NS11 to NS33 is shown to include eight memory cells MC1, MC2, ..., MC8, but is not limited thereto.

스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 상응하는 게이트 라인(GTL1, GTL2, ..., GTL8)에 연결될 수 있다. 게이트 라인(GTL1, GTL2, ..., GTL8)은 워드 라인들에 해당할 수 있으며, 게이트 라인(GTL1, GTL2, ..., GTL8)의 일부는 더미 워드 라인에 해당할 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다. The string select transistor (SST) may be connected to the corresponding string select line (SSL1, SSL2, SSL3). A plurality of memory cells (MC1, MC2, ..., MC8) may each be connected to corresponding gate lines (GTL1, GTL2, ..., GTL8). Gate lines (GTL1, GTL2, ..., GTL8) may correspond to word lines, and some of the gate lines (GTL1, GTL2, ..., GTL8) may correspond to dummy word lines. The ground select transistor (GST) may be connected to the corresponding ground select line (GSL1, GSL2, GSL3). The string select transistor (SST) may be connected to the corresponding bit lines (BL1, BL2, BL3), and the ground select transistor (GST) may be connected to the common source line (CSL).

동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 각각 분리될 수 있다. 도 28에는 메모리 블록(BLK)이 여덟 개의 게이트 라인(GTL1, GTL2, ..., GTL8) 및 세 개의 비트 라인들(BL1, BL2, BL3)에 연결되는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.Word lines (eg, WL1) of the same height may be connected in common, and ground selection lines (GSL1, GSL2, GSL3) and string selection lines (SSL1, SSL2, SSL3) may be separated from each other. In Figure 28, the memory block (BLK) is shown as connected to eight gate lines (GTL1, GTL2, ..., GTL8) and three bit lines (BL1, BL2, BL3), but is not necessarily limited to this. no.

도 18은 본 개시의 일 실시예에 따른 UFS 장치에 적용될 수 있는 B-VNAND 구조에 대해 설명하기 위한 도면이다. UFS 장치에 포함되는 비휘발성 메모리가 B-VNAND(Bonding Vertical NAND) 타입의 플래시 메모리로 구현될 경우, 비휘발성 메모리는 도 18에 도시된 구조를 가질 수 있다.FIG. 18 is a diagram for explaining a B-VNAND structure applicable to a UFS device according to an embodiment of the present disclosure. When the non-volatile memory included in the UFS device is implemented as a B-VNAND (Bonding Vertical NAND) type flash memory, the non-volatile memory may have the structure shown in FIG. 18.

도 18을 참조하면, 메모리 장치(4000)는 C2C(chip to chip) 구조일 수 있다. C2C 구조는 제1 웨이퍼 상에 셀 영역(CELL)을 포함하는 상부 칩을 제작하고, 제1 웨이퍼와 다른 제2 웨이퍼 상에 주변 회로 영역(PERI)을 포함하는 하부 칩을 제작한 후, 상기 상부 칩과 상기 하부 칩을 본딩(bonding) 방식에 의해 서로 연결하는 것을 의미할 수 있다. 일례로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈을 서로 전기적으로 연결하는 방식을 의미할 수 있다. 예컨대, 상기 본딩 메탈이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-Cu 본딩 방식일 수 있으며, 상기 본딩 메탈은 알루미늄 혹은 텅스텐으로도 형성될 수 있다.Referring to FIG. 18, the memory device 4000 may have a C2C (chip to chip) structure. In the C2C structure, an upper chip including a cell region (CELL) is manufactured on a first wafer, and a lower chip including a peripheral circuit region (PERI) is fabricated on a second wafer that is different from the first wafer. This may mean connecting a chip and the lower chip to each other by a bonding method. For example, the bonding method may refer to a method of electrically connecting the bonding metal formed on the top metal layer of the upper chip and the bonding metal formed on the top metal layer of the lower chip. For example, when the bonding metal is made of copper (Cu), the bonding method may be a Cu-Cu bonding method, and the bonding metal may also be made of aluminum or tungsten.

메모리 장치(4000)의 주변 회로 영역(PERI)과 셀 영역(CELL) 각각은 외부 패드 본딩 영역(PA), 워드 라인 본딩 영역(WLBA), 및 비트 라인 본딩 영역(BLBA)을 포함할 수 있다.Each of the peripheral circuit area (PERI) and cell area (CELL) of the memory device 4000 may include an external pad bonding area (PA), a word line bonding area (WLBA), and a bit line bonding area (BLBA).

주변 회로 영역(PERI)은 제1 기판(4110), 층간 절연층(4115), 제1 기판(4110)에 형성되는 복수의 회로 소자들(4120a, 4120b, 4120c), 복수의 회로 소자들(4120a, 4120b, 4120c) 각각과 연결되는 제1 메탈층(4130a, 4130b, 4130c), 제1 메탈층(4130a, 4130b, 4130c) 상에 형성되는 제2 메탈층(4140a, 4140b, 4140c)을 포함할 수 있다. 일 실시예에서, 제1 메탈층(4130a, 4130b, 4130c)은 상대적으로 저항이 높은 텅스텐으로 형성될 수 있고, 제2 메탈층(4140a, 4140b, 4140c)은 상대적으로 저항이 낮은 구리로 형성될 수 있다.The peripheral circuit area (PERI) includes a first substrate 4110, an interlayer insulating layer 4115, a plurality of circuit elements 4120a, 4120b, and 4120c formed on the first substrate 4110, and a plurality of circuit elements 4120a. , 4120b, 4120c) and first metal layers (4130a, 4130b, 4130c) connected to each other, and second metal layers (4140a, 4140b, 4140c) formed on the first metal layers (4130a, 4130b, 4130c). You can. In one embodiment, the first metal layers 4130a, 4130b, and 4130c may be formed of tungsten with relatively high resistance, and the second metal layers 4140a, 4140b, and 4140c may be formed of copper with relatively low resistance. You can.

본 명세서에서는 제1 메탈층(4130a, 4130b, 4130c)과 제2 메탈층(4140a, 4140b, 4140c)만 도시 되고 설명되나, 이에 한정되는 것은 아니고, 제2 메탈층(4140a, 4140b, 4140c) 상에 적어도 하나 이상의 메탈층이 더 형성될 수도 있다. 제2 메탈층(4140a, 4140b, 4140c)의 상부에 형성되는 하나 이상의 메탈층 중 적어도 일부는, 제2 메탈층(4140a, 4140b, 4140c)을 형성하는 구리보다 더 낮은 저항을 갖는 알루미늄 등으로 형성될 수 있다. In this specification, only the first metal layers (4130a, 4130b, 4130c) and the second metal layers (4140a, 4140b, 4140c) are shown and described, but are not limited thereto, and the layers on the second metal layers (4140a, 4140b, 4140c) At least one more metal layer may be further formed. At least some of the one or more metal layers formed on top of the second metal layers 4140a, 4140b, and 4140c are made of aluminum, etc., which has a lower resistance than the copper forming the second metal layers 4140a, 4140b, and 4140c. It can be.

층간 절연층(4115)은 복수의 회로 소자들(4120a, 4120b, 4120c), 제1 메탈층(4130a, 4130b, 4130c), 및 제2 메탈층(4140a, 4140b, 4140c)을 커버하도록 제1 기판(4110) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.The interlayer insulating layer 4115 is formed on the first substrate to cover the plurality of circuit elements 4120a, 4120b, 4120c, the first metal layer 4130a, 4130b, 4130c, and the second metal layer 4140a, 4140b, 4140c. It is disposed on (4110) and may include an insulating material such as silicon oxide, silicon nitride, etc.

워드 라인 본딩 영역(WLBA)의 제2 메탈층(4140b) 상에 하부 본딩 메탈(4171b, 4172b)이 형성될 수 있다. 워드 라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(4171b, 4172b)은 셀 영역(CELL)의 상부 본딩 메탈(4271b, 4272b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있으며, 하부 본딩 메탈(4171b, 4172b)과 상부 본딩 메탈(4271b, 4272b)은 알루미늄, 구리, 혹은 텅스텐 등으로 형성될 수 있다. Lower bonding metals 4171b and 4172b may be formed on the second metal layer 4140b of the word line bonding area (WLBA). In the word line bonding area (WLBA), the lower bonding metals 4171b and 4172b of the peripheral circuit area (PERI) may be electrically connected to the upper bonding metals 4271b and 4272b of the cell area (CELL) by a bonding method. , the lower bonding metals 4171b and 4172b and the upper bonding metals 4271b and 4272b may be formed of aluminum, copper, or tungsten.

셀 영역(CELL)은 적어도 하나의 메모리 블록을 제공할 수 있다. 셀 영역(CELL)은 제2 기판(4210)과 공통 소스 라인(4220)을 포함할 수 있다. 제2 기판(4210) 상에는, 제2 기판(4210)의 상면에 수직하는 방향(Z축 방향)을 따라 복수의 워드 라인들(4231-4238; 4230)이 적층될 수 있다. 워드 라인들(4230)의 상부 및 하부 각각에는 스트링 선택 라인들과 접지 선택 라인이 배치될 수 있으며, 스트링 선택 라인들과 접지 선택 라인 사이에 복수의 워드 라인들(4230)이 배치될 수 있다.The cell area (CELL) may provide at least one memory block. The cell area CELL may include a second substrate 4210 and a common source line 4220. On the second substrate 4210, a plurality of word lines 4231-4238; 4230 may be stacked along a direction perpendicular to the top surface of the second substrate 4210 (Z-axis direction). String select lines and a ground select line may be disposed above and below each of the word lines 4230, and a plurality of word lines 4230 may be disposed between the string select lines and the ground select line.

비트 라인 본딩 영역(BLBA)에서, 채널 구조체(CH)는 제2 기판(4210)의 상면에 수직하는 방향으로 연장되어 워드 라인들(4230), 스트링 선택 라인들, 및 접지 선택 라인을 관통할 수 있다. 채널 구조체(CH)는 데이터 저장층, 채널층, 및 매립 절연층 등을 포함할 수 있으며, 채널층은 제1 메탈층(4250c) 및 제2 메탈층(4260c)과 전기적으로 연결될 수 있다. 예컨대, 제1 메탈층(4250c)은 비트 라인 컨택일 수 있고, 제2 메탈층(4260c)은 비트 라인일 수 있다. 일 실시예에서, 비트 라인(4260c)은 제2 기판(4210)의 상면에 평행한 제1 방향(Y축 방향)을 따라 연장될 수 있다. In the bit line bonding area BLBA, the channel structure CH extends in a direction perpendicular to the top surface of the second substrate 4210 and may penetrate the word lines 4230, the string select lines, and the ground select line. there is. The channel structure CH may include a data storage layer, a channel layer, and a buried insulating layer, and the channel layer may be electrically connected to the first metal layer 4250c and the second metal layer 4260c. For example, the first metal layer 4250c may be a bit line contact, and the second metal layer 4260c may be a bit line. In one embodiment, the bit line 4260c may extend along a first direction (Y-axis direction) parallel to the top surface of the second substrate 4210.

도 18에 도시한 일 실시예에서, 채널 구조체(CH)와 비트 라인(4260c) 등이 배치되는 영역이 비트 라인 본딩 영역(BLBA)으로 정의될 수 있다. 비트 라인(4260c)은 비트 라인 본딩 영역(BLBA)에서 주변 회로 영역(PERI)에서 페이지 버퍼(4293)를 제공하는 회로 소자들(4120c)과 전기적으로 연결될 수 있다. 일례로, 비트 라인(4260c)은 주변 회로 영역(PERI)에서 상부 본딩 메탈(4271c, 4272c)과 연결되며, 상부 본딩 메탈(4271c, 4272c)은 페이지 버퍼(4293)의 회로 소자들(4120c)에 연결되는 하부 본딩 메탈(4171c, 4172c)과 연결될 수 있다.In one embodiment shown in FIG. 18, the area where the channel structure (CH) and the bit line 4260c are placed may be defined as the bit line bonding area (BLBA). The bit line 4260c may be electrically connected to circuit elements 4120c that provide the page buffer 4293 in the bit line bonding area BLBA and the peripheral circuit area PERI. For example, the bit line 4260c is connected to the upper bonding metals 4271c and 4272c in the peripheral circuit area (PERI), and the upper bonding metals 4271c and 4272c are connected to the circuit elements 4120c of the page buffer 4293. It can be connected to the lower bonding metals 4171c and 4172c.

워드 라인 본딩 영역(WLBA)에서, 워드 라인들(4230)은 제2 기판(4210)의 상면에 평행한 제2 방향(X축 방향)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(4241-4247; 4240)와 연결될 수 있다. 워드 라인들(4230)과 셀 컨택 플러그들(4240)은, 제2 방향을 따라 워드 라인들(4230) 중 적어도 일부가 서로 다른 길이로 연장되어 제공하는 패드들에서 서로 연결될 수 있다. 워드 라인들(4230)에 연결되는 셀 컨택 플러그들(4240)의 상부에는 제1 메탈층(4250b)과 제2 메탈층(4260b)이 차례로 연결될 수 있다. 셀 컨택 플러그들(4240)은 워드 라인 본딩 영역(WLBA)에서 셀 영역(CELL)의 상부 본딩 메탈(4271b, 4272b)과 주변 회로 영역(PERI)의 하부 본딩 메탈(4171b, 4172b)을 통해 주변 회로 영역(PERI)과 연결될 수 있다. In the word line bonding area WLBA, the word lines 4230 may extend along a second direction (X-axis direction) parallel to the top surface of the second substrate 4210, and a plurality of cell contact plugs 4241 -4247; 4240). The word lines 4230 and the cell contact plugs 4240 may be connected to each other at pads provided by at least some of the word lines 4230 extending to different lengths along the second direction. A first metal layer 4250b and a second metal layer 4260b may be sequentially connected to the top of the cell contact plugs 4240 connected to the word lines 4230. The cell contact plugs 4240 are connected to the peripheral circuit through the upper bonding metals 4271b and 4272b of the cell area (CELL) and the lower bonding metals 4171b and 4172b of the peripheral circuit area (PERI) in the word line bonding area (WLBA). It can be connected to the area (PERI).

셀 컨택 플러그들(4240)은 주변 회로 영역(PERI)에서 로우 디코더(4294)를 제공하는 회로 소자들(4120b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더(4294)를 제공하는 회로 소자들(4120b)의 동작 전압은, 페이지 버퍼(4293)를 제공하는 회로 소자들(4120c)의 동작 전압과 다를 수 있다. 일례로, 페이지 버퍼(4293)를 제공하는 회로 소자들(4120c)의 동작 전압이 로우 디코더(4294)를 제공하는 회로 소자들(4120b)의 동작 전압보다 클 수 있다.The cell contact plugs 4240 may be electrically connected to circuit elements 4120b that provide the row decoder 4294 in the peripheral circuit area (PERI). In one embodiment, the operating voltage of the circuit elements 4120b providing the row decoder 4294 may be different from the operating voltage of the circuit elements 4120c providing the page buffer 4293. For example, the operating voltage of the circuit elements 4120c that provide the page buffer 4293 may be greater than the operating voltage of the circuit elements 4120b that provide the row decoder 4294.

외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그(4280)가 배치될 수 있다. 공통 소스 라인 컨택 플러그(4280)는 금속, 금속 화합물, 또는 폴리실리콘 등의 도전성 물질로 형성되며, 공통 소스 라인(4220)과 전기적으로 연결될 수 있다. 공통 소스 라인 컨택 플러그(4280) 상부에는 제1 메탈층(4250a)과 제2 메탈층(4260a)이 차례로 적층될 수 있다. 일례로, 공통 소스 라인 컨택 플러그(4280), 제1 메탈층(4250a), 및 제2 메탈층(4260a)이 배치되는 영역은 외부 패드 본딩 영역(PA)으로 정의될 수 있다.A common source line contact plug 4280 may be disposed in the external pad bonding area PA. The common source line contact plug 4280 is made of a conductive material such as metal, metal compound, or polysilicon, and may be electrically connected to the common source line 4220. A first metal layer 4250a and a second metal layer 4260a may be sequentially stacked on the common source line contact plug 4280. For example, the area where the common source line contact plug 4280, the first metal layer 4250a, and the second metal layer 4260a are disposed may be defined as the external pad bonding area PA.

한편 외부 패드 본딩 영역(PA)에는 입출력 패드들(4105, 4205)이 배치될 수 있다. 도 18를 참조하면, 제1 기판(4110)의 하부에는 제1 기판(4110)의 하면을 덮는 하부 절연막(4101) 이 형성될 수 있으며, 하부 절연막(4101) 상에 제1 입출력 패드(4105)가 형성될 수 있다. 제1 입출력 패드(4105)는 제1 입출력 컨택 플러그(4103)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(4120a, 4120b, 4120c) 중 적어도 하나와 연결되며, 하부 절연막(4101)에 의해 제1 기판(4110)과 분리될 수 있다. 또한, 제1 입출력 컨택 플러그(4103)와 제1 기판(4110) 사이에는 측면 절연막이 배치되어 제1 입출력 컨택 플러그(4103)와 제1 기판(4110)을 전기적으로 분리할 수 있다.Meanwhile, input/output pads 4105 and 4205 may be disposed in the external pad bonding area PA. Referring to FIG. 18, a lower insulating film 4101 may be formed on the lower part of the first substrate 4110 to cover the lower surface of the first substrate 4110, and a first input/output pad 4105 may be formed on the lower insulating film 4101. can be formed. The first input/output pad 4105 is connected to at least one of the plurality of circuit elements 4120a, 4120b, and 4120c disposed in the peripheral circuit area PERI through the first input/output contact plug 4103, and the lower insulating film 4101 ) can be separated from the first substrate 4110. Additionally, a side insulating film is disposed between the first input/output contact plug 4103 and the first substrate 4110 to electrically separate the first input/output contact plug 4103 from the first substrate 4110.

도 18을 참조하면, 제2 기판(4210)의 상부에는 제2 기판(4210)의 상면을 덮는 상부 절연막(4201)이 형성될 수 있으며, 상부 절연막(4201) 상에 제2 입출력 패드(4205)가 배치될 수 있다. 제2 입출력 패드(4205)는 제2 입출력 컨택 플러그(4203)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(4120a, 4120b, 4120c) 중 적어도 하나와 연결될 수 있다. Referring to FIG. 18, an upper insulating film 4201 may be formed on the second substrate 4210 to cover the top surface of the second substrate 4210, and a second input/output pad 4205 may be formed on the upper insulating film 4201. can be placed. The second input/output pad 4205 may be connected to at least one of the plurality of circuit elements 4120a, 4120b, and 4120c disposed in the peripheral circuit area PERI through the second input/output contact plug 4203.

실시예들에 따라, 제2 입출력 컨택 플러그(4203)가 배치되는 영역에는 제2 기판(4210) 및 공통 소스 라인(4220) 등이 배치되지 않을 수 있다. 또한, 제2 입출력 패드(4205)는 제3 방향(Z축 방향)에서 워드 라인들(4230)과 오버랩되지 않을 수 있다. 도 29를 참조하면, 제2 입출력 컨택 플러그(4203)는 제2 기판(4210)의 상면에 평행한 방향에서 제2 기판(4210)과 분리되며, 셀 영역(CELL)의 층간 절연층(4215)을 관통하여 제2 입출력 패드(4205)에 연결될 수 있다. Depending on the embodiment, the second substrate 4210 and the common source line 4220 may not be disposed in the area where the second input/output contact plug 4203 is disposed. Additionally, the second input/output pad 4205 may not overlap the word lines 4230 in the third direction (Z-axis direction). Referring to FIG. 29, the second input/output contact plug 4203 is separated from the second substrate 4210 in a direction parallel to the top surface of the second substrate 4210, and the interlayer insulating layer 4215 of the cell region CELL It may be connected to the second input/output pad 4205.

실시예들에 따라, 제1 입출력 패드(4105)와 제2 입출력 패드(4205)는 선택적으로 형성될 수 있다. 일례로, 메모리 장치(4000)는 제1 기판(4110)의 상부에 배치되는 제1 입출력 패드(4105)만을 포함하거나, 또는 제2 기판(4210)의 상부에 배치되는 제2 입출력 패드(4205)만을 포함할 수 있다. 또는, 메모리 장치(4000)가 제1 입출력 패드(4105)와 제2 입출력 패드(4205)를 모두 포함할 수도 있다.Depending on embodiments, the first input/output pad 4105 and the second input/output pad 4205 may be formed selectively. For example, the memory device 4000 includes only the first input/output pad 4105 disposed on the top of the first substrate 4110, or the second input/output pad 4205 disposed on the top of the second substrate 4210. It can only include Alternatively, the memory device 4000 may include both the first input/output pad 4105 and the second input/output pad 4205.

셀 영역(CELL)과 주변 회로 영역(PERI) 각각에 포함되는 외부 패드 본딩 영역(PA)과 비트 라인 본딩 영역(BLBA) 각각에는 최상부 메탈층의 메탈 패턴이 더미 패턴(dummy pattern)으로 존재하거나, 최상부 메탈층이 비어있을 수 있다.The metal pattern of the uppermost metal layer exists as a dummy pattern in each of the external pad bonding area (PA) and bit line bonding area (BLBA) included in each of the cell area (CELL) and the peripheral circuit area (PERI). The top metal layer may be empty.

메모리 장치(4000)는 외부 패드 본딩 영역(PA)에서, 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(4272a)에 대응하여 주변 회로 영역(PERI)의 최상부 메탈층에 셀 영역(CELL)의 상부 메탈 패턴(4272a)과 동일한 형태의 하부 메탈 패턴(4176a)을 형성할 수 있다. 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(4176a)은 주변 회로 영역(PERI)에서 별도의 컨택과 연결되지 않을 수 있다. 이와 유사하게, 외부 패드 본딩 영역(PA)에서 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴에 대응하여 셀 영역(CELL)의 상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴과 동일한 형태의 상부 메탈 패턴을 형성할 수도 있다. The memory device 4000 has a cell area (CELL) on the uppermost metal layer of the peripheral circuit area (PERI) corresponding to the upper metal pattern 4272a formed on the uppermost metal layer of the cell area (CELL) in the external pad bonding area (PA). ) can form a lower metal pattern (4176a) of the same shape as the upper metal pattern (4272a). The lower metal pattern 4176a formed on the uppermost metal layer of the peripheral circuit area PERI may not be connected to a separate contact in the peripheral circuit area PERI. Similarly, the lower metal pattern of the peripheral circuit area (PERI) is formed on the upper metal layer of the cell area (CELL) in response to the lower metal pattern formed on the uppermost metal layer of the peripheral circuit area (PERI) in the external pad bonding area (PA). An upper metal pattern of the same shape as may be formed.

워드 라인 본딩 영역(WLBA)의 제2 메탈층(4140b) 상에는 하부 본딩 메탈(4171b, 4172b)이 형성될 수 있다. 워드 라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(4171b, 4172b)은 셀 영역(CELL)의 상부 본딩 메탈(4271b, 4272b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있다. Lower bonding metals 4171b and 4172b may be formed on the second metal layer 4140b of the word line bonding area (WLBA). In the word line bonding area (WLBA), the lower bonding metals 4171b and 4172b of the peripheral circuit area (PERI) may be electrically connected to the upper bonding metals 4271b and 4272b of the cell area (CELL) by a bonding method. .

또한, 비트 라인 본딩 영역(BLBA)에서, 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(4152)에 대응하여 셀 영역(CELL)의 최상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴(4152)과 동일한 형태의 상부 메탈 패턴(4292)을 형성할 수 있다. 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(4292) 상에는 컨택을 형성하지 않을 수 있다.Additionally, in the bit line bonding area (BLBA), the lower part of the peripheral circuit area (PERI) is formed on the uppermost metal layer of the cell area (CELL) corresponding to the lower metal pattern 4152 formed on the uppermost metal layer of the peripheral circuit area (PERI). An upper metal pattern 4292 of the same shape as the metal pattern 4152 may be formed. A contact may not be formed on the upper metal pattern 4292 formed on the uppermost metal layer of the cell region (CELL).

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specification. Although embodiments have been described in this specification using specific terms, this is only used for the purpose of explaining the technical idea of the present disclosure and is not used to limit the meaning or scope of the present disclosure as set forth in the claims. . Therefore, those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present disclosure should be determined by the technical spirit of the attached patent claims.

10: 스토리지 시스템 200, 200a, 200b: 호스트
100: 스토리지 장치 110: 디바이스 컨트롤러
120: 비휘발성 메모리 장치
10: Storage systems 200, 200a, 200b: Host
100: storage device 110: device controller
120: non-volatile memory device

Claims (20)

비휘발성 메모리, 및 호스트와 통신하며 상기 비휘발성 메모리를 제어하는 스토리지 컨트롤러를 포함하는 스토리지 장치의 동작 방법에 있어서,
상기 스토리지 컨트롤러가 제1 호스트로부터 수신된 공개 키를 저장하는 단계;
상기 스토리지 컨트롤러가 상기 공개 키 및 상기 공개 키에 대응하는 개인 키를 획득한 제2 호스트로부터의 호스트 인증 개시 요청에 응답하여 난수를 상기 제2 호스트로 전송하는 단계;
상기 스토리지 컨트롤러가 상기 제2 호스트로부터 상기 개인 키와 상기 난수를 기반으로 생성된 서명을 수신하는 단계;
상기 스토리지 컨트롤러가 상기 공개 키를 기초로 상기 서명을 검증하는 단계; 및
상기 서명 검증이 성공하면, 상기 스토리지 컨트롤러가 상기 제2 호스트로부터의 요청에 따라 제1 디바이스 파라미터를 변경하는 단계를 포함하는 스토리지 장치의 동작 방법.
A method of operating a storage device including a non-volatile memory and a storage controller that communicates with a host and controls the non-volatile memory, comprising:
storing, by the storage controller, a public key received from a first host;
transmitting, by the storage controller, a random number to the second host in response to a host authentication initiation request from a second host that has obtained the public key and a private key corresponding to the public key;
receiving, by the storage controller, a signature generated based on the private key and the random number from the second host;
the storage controller verifying the signature based on the public key; and
If the signature verification is successful, the storage controller changes first device parameters according to a request from the second host.
제1 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 스토리지 장치의 동작 설정을 위한 설정 값들 중 일회성 쓰기 가능한(one-time writable) 설정 값을 변경하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 1, wherein changing the first device parameter comprises:
A method of operating a storage device, comprising changing a one-time writable setting value among setting values for operating settings of the storage device.
제2 항에 있어서, 상기 일회성 쓰기 가능한 설정 값은 상기 비휘발성 메모리의 제1 영역에 저장된 것을 특징으로 하는 스토리지 장치의 동작 방법. The method of claim 2, wherein the one-time writable setting value is stored in a first area of the non-volatile memory. 제3 항에 있어서, 제1 디바이스 파라미터를 변경하는 단계는,
상기 제1 영역의 상태를 락 상태에서 언락 상태로 변경하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 3, wherein changing the first device parameter comprises:
A method of operating a storage device, further comprising changing the state of the first area from a locked state to an unlocked state.
제1 항에 있어서, 상기 비휘발성 메모리는 리플레이 보호 메모리 블록(RPMB)을 포함하고,
상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 리플레이 보호 메모리 블록의 엑세스를 위한 인증에 사용되는 인증 키를 초기화하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
2. The method of claim 1, wherein the non-volatile memory includes a replay protected memory block (RPMB),
The step of changing the first device parameter is,
A method of operating a storage device, comprising: initializing an authentication key used to authenticate access to the replay-protected memory block.
제1 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 스토리지 장치에 저장된 상기 공개 키를 포함하는 하나 이상의 키를 초기화하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 1, wherein changing the first device parameter comprises:
A method of operating a storage device, comprising: initializing one or more keys including the public key stored in the storage device.
제6 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 스토리지 장치의 상태를 락 상태에서 초기 상태로 변경하는 단계를 포함하는 것을 특징으로 하는, 스토리지 장치의 동작 방법.
The method of claim 6, wherein changing the first device parameter comprises:
A method of operating a storage device, comprising changing the state of the storage device from a locked state to an initial state.
제1 항에 있어서, 상기 공개 키를 저장하는 단계는,
상기 제1 호스트로부터 공개 키 설정을 요청하는 제1 보안 커맨드를 수신하는 단계; 및
상기 제1 호스트로부터 상기 공개 키를 포함하는 제1 데이터를 수신하는 단계를 포함하는 것을 특징으로 스토리지 장치의 동작 방법.
The method of claim 1, wherein storing the public key comprises:
Receiving a first security command requesting public key setting from the first host; and
A method of operating a storage device, comprising receiving first data including the public key from the first host.
제1 항에 있어서, 상기 난수를 상기 호스트로 전송하는 단계는
상기 제2 호스트로부터 호스트 인증 개시를 요청하는 제2 보안 커맨드를 수신하는 단계;
상기 난수를 생성하는 단계; 및
상기 난수를 포함하는 제2 데이터를 상기 제2 보안 커맨드에 대응하여 상기 제2 호스트로 전송하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 1, wherein transmitting the random number to the host includes
Receiving a second security command requesting initiation of host authentication from the second host;
generating the random number; and
A method of operating a storage device, comprising transmitting second data including the random number to the second host in response to the second security command.
제1 항에 있어서, 상기 서명을 수신하는 단계는,
상기 서명을 기초로 인증을 요청하는 제3 보안 커맨드를 수신하는 단계;

상기 서명 및 해시 알고리즘을 포함하는 제3 데이터를 수신하는 단계를 포함하는 것을 특징으로 하는, 스토리지 장치의 동작 방법.
The method of claim 1, wherein receiving the signature comprises:
receiving a third security command requesting authentication based on the signature;
and
A method of operating a storage device, comprising receiving third data including the signature and hash algorithm.
제1 항에 있어서, 상기 서명을 수신하는 단계는,
키 리셋을 요청하는 제4 보안 커맨드를 수신하는 단계; 및
서명 및 해시 알고리즘을 포함하는 제3 데이터를 수신하는 단계를 포함하는 것을 특징으로 하는, 스토리지 장치의 동작 방법.
The method of claim 1, wherein receiving the signature comprises:
Receiving a fourth security command requesting key reset; and
A method of operating a storage device, comprising receiving third data including a signature and a hash algorithm.
제11 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 제4 보안 커맨드에 응답하여 상기 공개 키를 포함하는 상기 스토리지 장치에 저장된 복수의 키를 초기화하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 11, wherein changing the first device parameter comprises:
A method of operating a storage device, comprising: initializing a plurality of keys stored in the storage device including the public key in response to the fourth security command.
제1 항에 있어서, 상기 검증하는 단계는,
상기 서명을 상기 개인 키를 기초로 복호화 하여 제1 해시 값을 생성하는 단계;
상기 해시 알고리즘을 기초로 상기 난수 값을 처리하여 제2 해시 값을 생성하는 단계; 및
상기 제1 해시 값과 상기 제2 해시 값을 비교하는 단계를 포함하는 것을 특징으로 하는, 스토리지 장치의 동작 방법.
The method of claim 1, wherein the verifying step includes:
generating a first hash value by decrypting the signature based on the private key;
generating a second hash value by processing the random number value based on the hash algorithm; and
A method of operating a storage device, comprising comparing the first hash value and the second hash value.
제1 항에 있어서,
상기 제1 호스트와 상기 제2 호스트는 동일한 것을 특징으로 하는, 스토리지 장치의 동작 방법.
According to claim 1,
A method of operating a storage device, wherein the first host and the second host are the same.
제1 항에 있어서,
상기 스토리지 장치는, 상기 호스트와 UFS(Universal Flash Storage) 표준을 통해 상호 연결되는 UFS 장치인 것을 특징으로 하는 스토리지 장치의 동작 방법.
According to claim 1,
A method of operating a storage device, wherein the storage device is a UFS device interconnected with the host through the UFS (Universal Flash Storage) standard.
호스트와 통신하는 스토리지 장치의 동작 방법에 있어서,
상기 스토리지 장치에 구비되는 스토리지 컨트롤러가 상기 호스트로부터 공개 키를 수신하는 단계;
상기 스토리지 컨트롤러가 상기 공개 키를 키 저장 영역에 저장하는 단계;
상기 스토리지 컨트롤러가 상기 호스트로부터의 호스트 인증 요청에 응답하여 난수를 상기 호스트로 전송하는 단계;
상기 스토리지 컨트롤러가 상기 호스트로부터 상기 공개 키에 대응하는 개인 키와 상기 난수를 기반으로 생성된 서명을 수신하는 단계;
상기 스토리지 컨트롤러가 상기 공개 키를 기초로 상기 서명을 검증하는 단계; 및
상기 서명의 검증이 성공하면 상기 스토리지 컨트롤러가 제1 디바이스 파라미터를 변경하는 단계를 포함하는 스토리지 장치의 동작 방법.
In a method of operating a storage device that communicates with a host,
A storage controller provided in the storage device receiving a public key from the host;
the storage controller storing the public key in a key storage area;
transmitting, by the storage controller, a random number to the host in response to a host authentication request from the host;
receiving, by the storage controller, a private key corresponding to the public key and a signature generated based on the random number from the host;
the storage controller verifying the signature based on the public key; and
A method of operating a storage device including the storage controller changing a first device parameter when verification of the signature is successful.
제16 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 스토리지 장치의 상태를 락(lock) 상태에서 언락(unlock) 상태로 변경하는 단계; 및
상기 스토리지 장치의 동작 설정을 위한 설정 값들 중 일회성 쓰기 가능한(one-time writable) 설정 값을 변경하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 16, wherein changing the first device parameter comprises:
changing the state of the storage device from a locked state to an unlocked state; and
A method of operating a storage device, comprising changing a one-time writable setting value among setting values for operating settings of the storage device.
제16 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 공개 키를 포함하는 상기 스토리지 장치에 저장된 모든 키를 초기화하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
The method of claim 16, wherein changing the first device parameter comprises:
A method of operating a storage device, comprising initializing all keys stored in the storage device including the public key.
호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법에 있어서,
상기 호스트가 상기 스토리지 장치에 대응하는 공개 및 상기 공개 키에 대응하는 개인 키를 획득하는 단계;
상기 호스트가 상기 공개 키를 상기 스토리지 장치로 전송하는 단계;
상기 스토리지 장치가 상기 공개 키를 저장하는 단계;
상기 스토리지 장치가 상기 호스트로부터 수신된 호스트 인증 개시 요청에 응답하여 난수를 상기 호스트로 전송하는 단계;
상기 호스트가 상기 개인 키 및 상기 난수를 기초로 서명을 생성하는 단계;
상기 호스트가 상기 서명을 상기 스토리지 장치로 전송하는 단계;
상기 스토리지 장치가 상기 공개 키를 기초로 서명을 검증하는 단계; 및
상기 서명 검증이 성공하면, 상기 스토리지 컨트롤러가 상기 호스트로부터의 요청에 따라 제1 디바이스 파라미터를 변경하는 단계를 포함하는 스토리지 시스템의 동작 방법.
In a method of operating a storage system including a host and a storage device,
the host obtaining a public key corresponding to the storage device and a private key corresponding to the public key;
the host transmitting the public key to the storage device;
the storage device storing the public key;
transmitting, by the storage device, a random number to the host in response to a host authentication initiation request received from the host;
the host generating a signature based on the private key and the random number;
the host transmitting the signature to the storage device;
verifying, by the storage device, a signature based on the public key; and
If the signature verification is successful, the storage controller changes a first device parameter according to a request from the host.
제19 항에 있어서, 상기 제1 디바이스 파라미터를 변경하는 단계는,
상기 스토리지 장치의 동작 설정을 위한 설정 값들 중 일회성 쓰기 가능한(one-time writable) 설정 값을 변경하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법.
The method of claim 19, wherein changing the first device parameter comprises:
A method of operating a storage system, comprising changing a one-time writable setting value among setting values for operating settings of the storage device.
KR1020230027964A 2022-11-10 2023-03-02 Method of operating a storage device and method of operating a storage system including storage device KR20240068509A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202311447975.4A CN118013561A (en) 2022-11-10 2023-11-01 Method for operating a storage device and method for operating a storage system
US18/502,321 US20240160794A1 (en) 2022-11-10 2023-11-06 Operating method of storage device and operating method of storage system including storage device
EP23208986.2A EP4369225A1 (en) 2022-11-10 2023-11-10 Operating method of storage device and operating method of storage system including storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220149352 2022-11-10

Publications (1)

Publication Number Publication Date
KR20240068509A true KR20240068509A (en) 2024-05-17

Family

ID=

Similar Documents

Publication Publication Date Title
US10073643B2 (en) Method of initializing storage device including one or more interface chips and nonvolatile memory devices connected to the one or more interface chips
US10387064B2 (en) Storage device, host communicating with the storage device, and electronic device including the storage device
US10318193B2 (en) Systems and methods of command authorization
KR102154187B1 (en) Memory device, memory system and operating method of memory system
CN110383250B (en) Data storage device configured to perform operations using a wireless interface
CN110046506B (en) Storage device and storage system including the same and method of operating using the same
KR20190099693A (en) Memory system and operating method thereof
US11714561B2 (en) System, device and method for writing data to protected region
CN114255813A (en) Storage device, host device, electronic device including the same, and method of operating the same
US20220366025A1 (en) Vendor unique command authentication system, and a host device, storage device, and method employing the same
US11176048B2 (en) Data storage device, operation method thereof, and controller therefor
EP4180977A1 (en) Parameter change command for storage device interface tuning
KR20210060867A (en) Data storage device and operating method thereof
US20220197510A1 (en) Storage device for executing processing code and operating method of the storage device
EP4369225A1 (en) Operating method of storage device and operating method of storage system including storage device
KR20240068509A (en) Method of operating a storage device and method of operating a storage system including storage device
CN114077391A (en) Storage system, controller of storage system and operation method of storage system
CN118013561A (en) Method for operating a storage device and method for operating a storage system
CN114254402A (en) Data storage device and operation method thereof
CN114078534A (en) Storage device and operation method thereof
US20220187997A1 (en) System, device, and method for writing data to protected region
KR102509646B1 (en) Storage device
US11797210B2 (en) Method of operating memory device and host device, and memory system including partitioning purge region responsive to purge information
US20230195333A1 (en) Storage device and operation method of electronic system
EP3982244A1 (en) Storage controller, storage system and operating methods thereof