KR20220041586A - 컨트롤러 및 이를 포함하는 전자 시스템 - Google Patents
컨트롤러 및 이를 포함하는 전자 시스템 Download PDFInfo
- Publication number
- KR20220041586A KR20220041586A KR1020200125015A KR20200125015A KR20220041586A KR 20220041586 A KR20220041586 A KR 20220041586A KR 1020200125015 A KR1020200125015 A KR 1020200125015A KR 20200125015 A KR20200125015 A KR 20200125015A KR 20220041586 A KR20220041586 A KR 20220041586A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- request
- output
- host
- controller
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 100
- 239000000872 buffer Substances 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 21
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 2
- 101000741396 Chlamydia muridarum (strain MoPn / Nigg) Probable oxidoreductase TC_0900 Proteins 0.000 description 2
- 101000741399 Chlamydia pneumoniae Probable oxidoreductase CPn_0761/CP_1111/CPj0761/CpB0789 Proteins 0.000 description 2
- 101000741400 Chlamydia trachomatis (strain D/UW-3/Cx) Probable oxidoreductase CT_610 Proteins 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
본 기술은 데이터를 저장할 수 있는 복수의 구역들(zones)을 포함하는 메모리 장치; 상기 복수의 구역들 중에서 선택된 구역(zone)에 접속이 가능한지 여부를 요청하기 위한 접속 요청들(access requests)을 출력하는 복수의 호스트들; 및 상기 복수의 호스트들이 상기 선택된 구역에 접속하기 위하여 상기 접속 요청들을 출력하면, 상기 접속 요청들이 수신된 순서에 따라 상기 복수의 호스트들 중에서 하나의 호스트를 선택하고, 선택된 호스트를 확인하기 위한 키(key)를 생성 및 저장하고, 상기 키(key)를 상기 선택된 호스트에게 전송하도록 구성된 컨트롤러를 포함하고, 상기 선택된 호스트는 상기 키(key)를 포함한 동작 요청을 상기 컨트롤러에게 전송하고, 상기 컨트롤러는 상기 선택된 호스트로부터 출력된 상기 동작 요청에 상기 키(key)가 포함되어 있으면 상기 동작 요청을 실행하는 컨트롤러 및 이를 포함하는 전자 시스템을 포함한다.
Description
본 발명은 컨트롤러 및 이를 포함하는 전자 시스템에 관한 것으로, 보다 구체적으로는 호스트와 메모리 장치 사이에서 통신하는 컨트롤러와 이를 포함하는 전자 시스템에 관한 것이다.
전자 시스템은 호스트들과 메모리 시스템을 포함할 수 있다.
호스트들은 휴대폰 또는 컴퓨터 등과 같은 장치일 수 있고, 메모리 시스템은 호스트들의 제어에 따라 데이터를 저장하거나 리드된 데이터를 출력하는 시스템일 수 있다. 메모리 시스템은 데이터가 저장되는 메모리 장치와 메모리 장치를 제어하는 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치 (Volatile Memory)와 비휘발성 메모리 장치 (Non Volatile Memory)로 구분된다.
휘발성 메모리 장치는 전원이 공급된 경우에만 데이터를 저장하고, 전원 공급이 차단되면 저장된 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치는 정적 랜덤 액세스 메모리 (Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리 (Dynamic Random Access Memory; DRAM) 등이 있다.
비휘발성 메모리 장치는 전원이 차단되어도 데이터가 소멸되지 않는 메모리 장치로서, 롬(Read Only Memory; ROM), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM) 및 플래시 메모리(Flash Memory) 등이 있다.
본 발명의 실시 예는 복수의 호스트들이 메모리 시스템의 동일한 메모리 영역에 접속을 요청할 때 호스트들의 접속을 효율적으로 관리할 수 있는 컨트롤러 및 이를 포함하는 전자 시스템을 제공한다.
본 발명의 실시 예에 따른 전자 시스템은, 데이터를 저장할 수 있는 복수의 구역들(zones)을 포함하는 메모리 장치; 상기 복수의 구역들 중에서 선택된 구역(zone)에 접속이 가능한지 여부를 요청하기 위한 접속 요청들(access requests)을 출력하는 복수의 호스트들; 및 상기 복수의 호스트들이 상기 선택된 구역에 접속하기 위하여 상기 접속 요청들을 출력하면, 상기 접속 요청들이 수신된 순서에 따라 상기 복수의 호스트들 중에서 하나의 호스트를 선택하고, 선택된 호스트를 확인하기 위한 키(key)를 생성 및 저장하고, 상기 키(key)를 상기 선택된 호스트에게 전송하도록 구성된 컨트롤러를 포함하고, 상기 선택된 호스트는 상기 키(key)를 포함한 동작 요청을 상기 컨트롤러에게 전송하고, 상기 컨트롤러는 상기 선택된 호스트로부터 출력된 상기 동작 요청에 상기 키(key)가 포함되어 있으면 상기 동작 요청을 실행한다.
본 발명의 실시 예에 따른 컨트롤러는, 복수의 호스트들로부터 동일한 구역(zone)에 접속하기 위한 복수의 접속 요청들을 수신받으면, 상기 접속 요청들이 입력된 순서에 따라 하나의 호스트를 선택하고, 선택된 호스트를 확인하기 위한 키를 상기 선택된 호스트에게 출력하도록 구성된 접속 관리부; 복수의 키들을 저장하고, 키 생성 신호에 응답하여 상기 복수의 키들 중에서 하나의 키를 상기 키로써 출력하도록 구성된 키 생성부; 상기 접속 관리부의 요청에 따라 상기 키 생성부에게 상기 키 생성 신호를 전송하고, 상기 키 생성부로부터 출력된 상기 키를 상기 접속 관리부에게 전송하도록 구성된 키 관리부; 및 상기 선택된 호스트가 상기 키를 포함한 동작 요청을 출력하면, 상기 동작 요청에 포함된 상기 키를 체크하도록 구성된 키 비교부를 포함한다.
본 발명의 실시 예에 따른 전자 시스템은, 제1 구역에 접속하기 위한 제1 접속 요청을 출력하는 제1 호스트; 상기 제1 구역에 접속하기 위한 제2 접속 요청을 출력하는 제2 호스트; 상기 제1 및 제2 접속 요청들이 입력되면, 상기 제1 및 제2 접속 요청들 중에서 상대적으로 먼저 입력된 제1 접속 요청을 출력한 상기 제1 호스트를 선택하고, 상기 제1 호스트의 접속을 허가하기 위한 키를 상기 제1 호스트에게 전송하도록 구성된 접속 관리부; 상기 키를 생성하도록 구성된 키 생성부; 상기 제1 구역에 대응되는 메모리 영역에 상기 키를 저장하도록 구성된 키 버퍼; 상기 키 생성부에게 상기 키를 생성할 것을 요청하며, 상기 키 생성부로부터 상기 키를 수신받으면, 상기 키를 상기 접속 관리부 및 상기 키 버퍼에 전송하도록 구성된 키 관리부; 및 상기 제1 호스트가 상기 키를 포함한 동작 요청을 출력하면, 상기 동작 요청에 포함된 상기 키와 상기 키 버퍼에 저장된 상기 키를 서로 비교하여 상기 동작 요청의 실행 여부를 결정하도록 구성된 키 비교부를 포함한다.
본 기술은 복수의 호스트들이 메모리 시스템에게 접속을 요청한 경우, 접속이 허용된 호스트를 식별하기 위한 키(key)를 사용함으로써 복수의 호스트들의 접속을 효율적으로 관리할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 메모리 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따른 메모리 셀 어레이를 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 메모리 블록을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따라 정의된 구역들(zones)을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시 예에 따라 정의된 구역들(zones)을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 컨트롤러를 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 접속 관리부를 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 키 관리부를 설명하기 위한 도면이다.
도 10은 본 발명의 실시 예에 따른 키 생성부를 설명하기 위한 도면이다.
도 11a 및 도 11b는 본 발명의 실시 예에 따른 키 버퍼를 설명하기 위한 도면들이다.
도 12는 본 발명의 실시 예에 따른 컨트롤러의 동작 방법을 설명하기 위한 도면이다.
도 13 내지 도 16은 본 발명의 컨트롤러에 포함된 각 구성들의 동작 방법을 설명하기 위한 도면들이다.
도 17은 본 발명의 컨트롤러가 적용된 메모리 카드 시스템을 보여주는 도면이다.
도 18은 본 발명의 컨트롤러가 적용된 SSD(Solid State Drive) 시스템을 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 메모리 장치를 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따른 메모리 셀 어레이를 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 메모리 블록을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따라 정의된 구역들(zones)을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시 예에 따라 정의된 구역들(zones)을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 컨트롤러를 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 접속 관리부를 설명하기 위한 도면이다.
도 9는 본 발명의 실시 예에 따른 키 관리부를 설명하기 위한 도면이다.
도 10은 본 발명의 실시 예에 따른 키 생성부를 설명하기 위한 도면이다.
도 11a 및 도 11b는 본 발명의 실시 예에 따른 키 버퍼를 설명하기 위한 도면들이다.
도 12는 본 발명의 실시 예에 따른 컨트롤러의 동작 방법을 설명하기 위한 도면이다.
도 13 내지 도 16은 본 발명의 컨트롤러에 포함된 각 구성들의 동작 방법을 설명하기 위한 도면들이다.
도 17은 본 발명의 컨트롤러가 적용된 메모리 카드 시스템을 보여주는 도면이다.
도 18은 본 발명의 컨트롤러가 적용된 SSD(Solid State Drive) 시스템을 보여주는 도면이다.
도 1은 본 발명의 실시 예에 따른 전자 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 전자 시스템(electronic system; 10000)은 다양한 요청들(requests)을 출력하도록 구성된 복수의 호스트들과, 요청들에 응답하여 데이터를 저장하거나, 데이터를 출력하도록 구성된 메모리 시스템(memory system; 1000)을 포함할 수 있다.
메모리 시스템(1000)은 데이터가 저장되는 제1 내지 제N 메모리 장치들(1st~Nth memory devices; 1100; N은 양의 정수)과, 제1 내지 제N 메모리 장치들(1100)을 제어할 수 있는 컨트롤러(controller; 2000)를 포함할 수 있다.
제1 내지 제N 메모리 장치들(1100)은 서로 동일하게 구성될 수 있으며, 컨트롤러(2000)의 제어에 따라 데이터를 저장하거나 저장된 데이터를 출력할 수 있다.
컨트롤러(2000)는 제1 내지 제K 호스트들(1st~Kth hosts)과 제1 내지 제N 메모리 장치들(1100) 사이에서 통신할 수 있다. 예를 들면, 컨트롤러(2000)는 제1 내지 제K 호스트들(1st~Kth hosts) 중 하나의 호스트로부터 출력된 요청(request)에 따라 제1 내지 제N 메모리 장치들(1100) 중 선택된 메모리 장치에 프로그램 동작을 수행하거나, 선택된 메모리 장치로부터 데이터를 리드할 수 있다.
컨트롤러(2000)는 제1 내지 제K 호스트들(1st~Kth hosts)로부터 복수의 접속 요청들(access requests)을 수신 받으면, 수신된 요청들 중에서 하나의 요청을 내부 동작에 따라 선택하고, 선택된 요청을 출력한 호스트에게 키(key)를 전송할 수 있다. 이때, 컨트롤러(2000)는 비선택된 호스트들이 출력한 요청들을 수행할 수 없다는 거절 신호를 비선택된 호스트들에게 출력할 수 있다. 선택된 호스트는 컨트롤러(2000)로부터 전송받은 키(key)를 동작 요청(operation request)에 포함시키고, 키를 포함한 동작 요청을 컨트롤러(2000)에게 출력할 수 있다. 컨트롤러(2000)는 선택된 호스트로부터 출력된 동작 요청을 수신하고, 동작 요청에 포함된 키를 내부에 저장된 키와 비교하고, 두 개의 키가 서로 동일하면 선택된 호스트의 요청을 실행할 수 있다.
도 2는 본 발명의 실시 예에 따른 메모리 장치를 설명하기 위한 도면으로써, 도 1에 도시된 제1 내지 제N 메모리 장치들(1100) 중에서 어느 하나의 메모리 장치를 도시한다.
도 2를 참조하면, 메모리 장치(1100)는 데이터가 저장되는 메모리 셀 어레이(memory cell array; 110)와, 프로그램, 리드 또는 소거 동작을 수행할 수 있는 주변 회로(peripheral circuit; 120~170)를 포함할 수 있다.
메모리 셀 어레이(110)는 데이터가 저장되는 복수의 메모리 블록들을 포함할 수 있다. 메모리 블록들 각각은 복수의 메모리 셀들을 포함하며, 메모리 셀들은 기판에 평행하게 배열되는 2차원 구조 또는 기판에 수직 방향으로 적층되는 3차원 구조로 구현될 수 있다.
주변 회로(120~170)는 로우 디코더(row decoder; 120), 전압 생성부(voltage generator; 130), 페이지 버퍼 그룹(page buffer group; 140), 컬럼 디코더(column decoder; 150), 입출력 회로(input/output circuit; 160) 및 로직 회로(logic circuit; 170)를 포함할 수 있다.
로우 디코더(120)는 로우 어드레스(RADD)에 따라 메모리 셀 어레이(110)에 포함된 메모리 블록들 중에서 하나의 메모리 블록을 선택하고, 선택된 메모리 블록에 동작 전압들(Vop)을 전송할 수 있다.
전압 생성부(130)는 동작 코드(OPCD)에 응답하여, 다양한 동작들에 필요한 동작 전압들(Vop)을 생성 및 출력할 수 있다. 예를 들면, 전압 생성부(130)는 동작 코드(OPCD)에 응답하여 프로그램 전압, 리드 전압, 소거 전압, 패스 전압, 검증 전압 및 음전압 등을 생성하고 출력할 수 있다.
페이지 버퍼 그룹(140)은 비트라인들(bit lines)을 통해 메모리 셀 어레이(110)에 연결될 수 있다. 예를 들면, 페이지 버퍼 그룹(140)은 비트라인들 각각에 연결된 페이지 버퍼들을 포함할 수 있다. 페이지 버퍼들은 페이지 버퍼 제어 신호들(PBSIG)에 응답하여 동시에 동작할 수 있으며, 프로그램 또는 리드 동작 시 데이터를 임시로 저장할 수 있다. 프로그램 동작 시 수행되는 검증 동작과 소거 동작 시 수행되는 검증 동작은 리드 동작과 유사한 방식으로 수행될 수 있다. 페이지 버퍼들은 리드 동작 또는 검증 동작 시, 메모리 셀들의 문턱전압에 따라 가변되는 비트라인들의 전압을 센싱할 수 있다. 즉, 페이지 버퍼들에서 수행되는 센싱 동작의 결과에 따라, 메모리 셀들의 문턱전압들이 리드 전압 또는 검증 전압보다 낮은지 또는 높은지가 판단될 수 있다.
컬럼 디코더(150)는 컬럼 어드레스(CADD)에 따라, 입출력 회로(160) 및 페이지 버퍼 그룹(140) 사이에서 데이터(DATA)를 전송할 수 있다.
입출력 회로(160)는 입출력 라인들(IO)을 통해 컨트롤러(도 1의 2000)에 연결될 수 있다. 입출력 회로(160)는 입출력 라인들(IO)을 통해 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA)를 입출력할 수 있다. 예를 들면, 입출력 회로(160)는 입출력 라인들(IO)을 통해 컨트롤러(2000)로부터 수신된 커맨드(CMD) 및 어드레스(ADD)를 로직 회로(170)에 전송할 수 있고, 입출력 라인들(IO)을 통해 컨트롤러(2000)로부터 수신된 데이터(DATA)를 컬럼 디코더(150)로 전송할 수 있다. 입출력 회로(160)는 컬럼 디코더(150)로부터 수신된 데이터(DATA)를 입출력 라인들(IO)을 통해 컨트롤러(2000)로 출력할 수 있다.
로직 회로(170)는 커맨드(CMD) 및 어드레스(ADD)에 응답하여, 동작 코드(OPCD), 로우 어드레스(RADD), 페이지 버퍼 제어 신호들(PBSIG) 및 컬럼 어드레스(CADD)를 출력할 수 있다. 예를 들면, 로직 회로(170)는 커맨드(CMD)에 응답하여 알고리즘을 수행하는 소프트웨어와, 어드레스(ADD) 및 알고리즘에 따라 다양한 신호들을 출력하도록 구성된 하드웨어를 포함할 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리 셀 어레이를 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 셀 어레이(110)는 싱글 플래인(single plane) 또는 멀티 플래인(multi plane)으로 구성될 수 있다. 싱글 플래인은 메모리 셀 어레이(110)에 하나의 플래인만 포함된 구성을 의미하고, 멀티 플래인은 메모리 셀 어레이(110) 복수의 플래인들이 포함된 구성을 의미한다. 도 3에는 멀티 플래인으로 구성된 메모리 셀 어레이(110)가 도시된다. 플래인들은 서로 다른 로우 디코더들과 서로 다른 페이지 버퍼 그룹들이 연결된 메모리 영역으로 정의될 수 있다. 예를 들면, 메모리 셀 어레이(110)에 제1 내지 제j 플래인들(PL1~PLj; j는 양의 정수)이 포함된 경우, 제1 내지 제j 플래인들(PL1~PLj) 각각은 제1 내지 제i 메모리 블록들(BLK1~BLKi; i는 양의 정수)을 포함할 수 있다. 서로 다른 플래인들에 포함된 제1 내지 제i 메모리 블록들(BLK1~BLKi)은 서로 다른 로우 디코더들과 서로 다른 페이지 버퍼 그룹들에 연결될 수 있고, 동일한 플래인에 포함된 제1 내지 제i 메모리 블록들(BLK1~BLKi)은 동일한 로우 디코더와 동일한 페이지 버퍼 그룹에 연결될 수 있다.
도 4는 본 발명의 실시 예에 따른 메모리 블록을 설명하기 위한 도면이다.
도 4를 참조하면, 도 3에 도시된 복수의 메모리 블록들(BLK1~BLKi) 중 어느 하나의 메모리 블록(BLKi)이 실시 예로써 도시된다.
메모리 블록(BLKi)은 제1 내지 제m 비트 라인들(BL1~BLm; m은 양의 정수)과 소스 라인(SL) 사이에 연결된 복수의 스트링들(ST)을 포함할 수 있다. 스트링들(ST) 각각은 소스 라인(SL)과 제1 내지 제m 비트 라인들(BL1~BLm) 사이에서 직렬로 연결된 소스 셀렉트 트랜지스터(SST), 제1 내지 제n 메모리 셀들(C1~Cn) 및 드레인 셀렉트 트랜지스터(DST)를 포함할 수 있다.
도 4에 도시된 메모리 블록(BLKi)은 메모리 블록의 구성을 설명하기 위한 도면이므로, 소스 셀렉트 트랜지스터(SST), 제1 내지 제n 메모리 셀들(C1~Cn) 및 드레인 셀렉트 트랜지스터(DST)의 개수는 도 4에 도시된 개수로 제한되지 않는다.
서로 다른 스트링들(ST)에 연결된 소스 셀렉트 트랜지스터들(SST)의 게이트들은 소스 셀렉트 라인(SSL)에 연결되고, 제1 내지 제n 메모리 셀들(C1~Cn) 각각의 게이트들은 제1 내지 제n 워드 라인들(WL1~WLn)에 연결되고, 드레인 셀렉트 트랜지스터들(DST)의 게이트들은 드레인 셀렉트 라인(DSL)에 연결될 수 있다.
동일한 워드 라인에 연결되고 서로 다른 스트링들(ST)에 포함된 메모리 셀들의 그룹은 하나의 페이지(PG)를 구성할 수 있다. 프로그램 동작 및 리드 동작은 페이지(PG) 단위로 수행될 수 있다.
도 5는 본 발명의 실시 예에 따라 정의된 구역들(zones)을 설명하기 위한 도면이다.
도 5를 참조하면, 제1 내지 제j 플래인들(PL1~PLj) 각각에 포함된 제1 내지 제i 메모리 블록들(BLK1~BLKi)은 복수의 구역들(zones)로 구분될 수 있다. 구역(zone)은 메모리 셀 어레이에 포함된 메모리 블록들의 개수가 증가하고, 프로그램되는 데이터의 용량이 증가하면서 복수의 메모리 블록들을 효율적으로 관리하기 위한 영역을 의미한다. 예를 들어 제j 플래인(PLj)에 제1 내지 제i 메모리 블록들(BLK1~BLKi)이 포함된 경우, 제1 내지 제i 메모리 블록들(BLK1~BLKi)은 m개(m은 양의 정수)의 구역들로 구분될 수 있다. 예를 들면, 제1 내지 제3 메모리 블록들(BLK1~BLK3)이 제1 구역(ZN1)으로 구분될 수 있고, 제4 내지 제6 메모리 블록들(BLK4~BLK6)이 제2 구역(ZN2)으로 구분될 수 있으며, 제(i-2) 내지 제i 메모리 블록들(BLK(i-2)~BLKi)이 제m 구역(ZNm)으로 구분될 수 있다.
도 6은 본 발명의 다른 실시 예에 따라 정의된 구역들(zones)을 설명하기 위한 도면이다.
도 6을 참조하면, 제1 내지 제m 구역들(ZN1~ZNm)은 복수의 플래인들에 포함된 메모리 블록들의 단위로 구분될 수도 있다. 예를 들면, 제1 내지 제j 플래인들(PL1~PLj) 각각 제1 내지 제i 메모리 블록들(BLK1~BLKi)을 포함한다고 가정하면, 제1 구역(ZN1)은 제1 내지 제j 플래인들(PL1~PLj)에 포함된 제1 내지 제3 메모리 블록들(BLK1~BLK3)을 포함할 수 있고, 제2 구역(ZN2)은 제1 내지 제j 플래인들(PL1~PLj)에 포함된 제4 내지 제6 메모리 블록들(BLK4~BLK6)을 포함할 수 있으며, 제m 구역(ZNm)은 제1 내지 제j 플래인들(PL1~PLj)에 포함된 제(i-2) 내지 제i 메모리 블록들(BLK(i-2)~BLKi)을 포함할 수 있다.
도 5 및 도 6에 도시된 도면들에서 제1 내지 제m 구역들(ZN1~ZNm) 각각에는 구역 아이디(zone ID)가 할당될 수 있으며, 구역 아이디에 따라 선택된 구역에 포함된 메모리 블록들이 선택될 수 있다. 즉, 구역 아이디는 구역의 어드레스일 수 있다.
도 7은 본 발명의 실시 예에 따른 컨트롤러를 설명하기 위한 도면이다.
도 7을 참조하면, 컨트롤러(2000)는 제1 인터페이스(1st interface; 200), 접속 관리부(access manager; 210), 키 관리부(key manager; 220), 키 생성부(key generator; 230), 키 버퍼(key buffer; 240), 키 비교부(key comparator; 250), 커맨드 생성부(command generator; 260), 데이터 버퍼(data buffer; 270) 및 제2 인터페이스(2nd interface; 280)를 포함할 수 있다.
제1 인터페이스(200)는 호스트들과 컨트롤러(2000) 사이에서 요청들, 데이터 및 신호들을 입력 및 출력할 수 있다. 예를 들면, 제1 인터페이스(200)는 호스트들로부터 출력된 접속 요청(A_RQ), 동작 요청(OP_RQ) 또는 데이터(DATA)를 수신하면 접속 요청(A_RQ) 또는 동작 요청(OP_RQ)을 접속 관리부(210)에 전달할 수 있고, 접속 관리부(210)로부터 키(KEY#), 거부 신호(refuse signal; RF_SIG) 또는 재전송 신호(RT_SIG)를 수신하면 선택된 호스트에게 키(KEY#), 거부 신호(RF_SIG) 또는 재전송 신호(RT_SIG)를 전달할 수 있다. 또한, 제1 인터페이스(200)는 호스트들과 데이터 버퍼(270) 사이에서 데이터(DATA)를 전달할 수 있다. 접속 요청(A_RQ)은 호스트들이 메모리 시스템에게 접속을 허가받기 위한 요청으로써, 동작 요청(OP_RQ)을 출력하기 이전에 출력될 수 있다. 동작 요청(OP_RQ)은 프로그램, 리드 또는 소거 동작을 요청할 때 출력될 수 있으며, 키(KEY#)를 가진 호스트로부터 출력될 수 있다. 키(KEY#)는 복수의 호스트들로부터 접속 요청들(A_RQ)이 수신된 경우, 컨트롤러(2000)가 선택된 호스트의 접속을 허가하기 위하여 생성되는 코드일 수 있다. 거부 신호(RF_SIG)는 복수의 호스트들이 접속 요청들(A_RQ)을 출력한 경우, 컨트롤러(2000)가 비선택된 호스트들에게 출력하는 신호일 수 있다. 재전송 신호(RT_SIG)는 선택된 호스트가 출력한 동작 요청(OP_RQ)에 포함된 입력 키(KEYin)와 컨트롤러(2000)에 저장된 키(KEY#)가 서로 다른 경우에 컨트롤러(2000)가 선택된 호스트에게 출력하는 신호일 수 있다.
접속 관리부(210)는 복수의 접속 요청들(A_RQ) 중에서 가장 먼저 입력된 접속 요청(A_RQ)을 선택하고, 키(KEY#)를 생성하기 위한 키 요청(key request; K_RQ)을 출력할 수 있다. 이때, 접속 관리부(210)는 비선택된 호스트들에게 접속이 거부되었다는 것을 알리기 위한 거부 신호(RF_SIG)를 제1 인터페이스(200)에게 출력할 수 있다. 접속 관리부(210)는 키 요청(K_RQ)을 출력한 후에 키 관리부(220)로부터 키(KEY#)를 수신하면, 수신된 키(KEY#)를 제1 인터페이스(200)에게 전달할 수 있다. 접속 관리부(210)는 동작 요청(OP_RQ)이 입력되면, 동작 요청(OP_RQ)에 포함된 입력 키(KEYin)를 추출하고, 입력 키(KEYin)를 키 비교부(250)에게 전달할 수 있다. 접속 관리부(210)는 패스 신호(PASS)가 입력되면, 동작 요청(OP_RQ)에 포함된 요청(RQ)을 추출하고, 추출된 요청(RQ)을 커맨드 생성부(260)에게 전달할 수 있다. 접속 관리부(210)는 페일 신호(FAIL)가 입력되면, 선택된 호스트가 출력한 입력 키(KEYin)와 컨트롤러(2000)에 저장된 키(KEY#)가 서로 상이한 것으로 판단하고, 재전송 신호(RT_SIG)를 출력할 수 있다.
키 관리부(220)는 키 요청(K_RQ)에 응답하여 키 생성 신호(KGEN)을 출력하고, 키 생성부(230)에서 생성된 키(KEY#)를 수신받을 수 있다. 키 관리부(220)는 키(KEY#)가 입력되면, 키(KEY#)를 키 버퍼(240)와 접속 관리부(210)에 각각 전송할 수 있다. 키 관리부(220)는 키(KEY#)를 키 버퍼(240)에 전송할 때 구역 아이디(ZID#)도 함께 전송할 수 있다. 또한, 키 관리부(220)는 리셋 신호(RES)가 입력되면, 키 버퍼(240)에서 선택된 구역 아이디(ZID#)에 대응되는 키(KEY#)를 삭제하기 위하여 구역 아이디(ZID#) 및 리셋 제어 신호(RECON)를 출력할 수 있다.
키 생성부(230)는 키 생성 신호(KGEN)에 응답하여 키(KEY#)를 생성할 수 있다. 예를 들면, 키 생성부(230)는 다양한 키들(KEY#)이 저장된 키 테이블을 포함하고, 키 생성 신호(KGEN)에 응답하여 랜덤으로 선택된 키(KEY#)를 출력하도록 구성될 수 있다. 또는, 키 생성부(230)는 키 생성 신호(KGEN)에 응답하여 복수의 비트들로 이루어진 코드를 생성하고, 생성된 코드를 키(KEY#)로써 출력하도록 구성될 수도 있다.
키 버퍼(240)는 각 구역 별로 할당된 키(KEY#)를 저장하도록 구성될 수 있다. 예를 들면, 키 퍼버(240)는 휘발성 또는 비휘발성 메모리를 포함할 수 있으며, 복수의 구역들에 각각 대응되는 키(KEY#)를 저장할 수 있다. 또한, 키 버퍼(240)는 구역 아이디(ZID#) 및 리셋 제어 신호(RECON)에 응답하여, 구역 아이디(ZID#)에 대응되는 키(KEY#)를 삭제할 수도 있다.
키 비교부(250)는 입력 키(KEYin)가 수신되면 키 버퍼(240)로부터 키(KEY#)를 수신받고, 입력 키(KEYin)와 키(KEY#)를 비교할 수 있다. 입력 키(KEYin)와 키(KEY#)가 서로 동일하면, 키 비교부(250)는 동작 요청(OP_RQ)을 출력한 호스트를 컨트롤러(2000)에서 접속을 허가한 호스트로 판단하여 패스 신호(PASS)를 출력할 수 있다. 입력 키(KEYin)와 키(KEY#)가 서로 다르면, 키 비교부(250)는 동작 요청(OP_RQ)을 출력한 호스트를 컨트롤러(2000)에서 접속을 허가하지 않은 호스트로 판단하여 페일 신호(FAIL)를 출력할 수 있다.
커맨드 생성부(260)는 요청(RQ)에 응답하여 프로그램, 리드 또는 소거 커맨드(CMD)를 생성하고, 생성된 커맨드(CMD)를 출력할 수 있다.
데이터 버퍼(270)는 제1 인터페이스(200)에서 출력된 데이터(DATA)를 임시로 저장하도록 구성될 수 있다. 예를 들면, 데이터 버퍼(270)는 휘발성 또는 비휘발성 메모리로 구성될 수 있다. 데이터 버퍼(270)는 커맨드 생성부(260)에서 커맨드(CMD)가 출력되면 데이터(DATA)를 제2 인터페이스(280)에게 전송할 수 있다.
제2 인터페이스(280)는 커맨드(CMD) 및 데이터를 수신받고, 커맨드(CMD) 및 데이터를 선택된 구역(ZN#)에 전송할 수 있다.
상술한 장치들 중에서 주요 장치들의 상세한 구성 및 동작을 설명하면 다음과 같다.
도 8은 본 발명의 실시 예에 따른 접속 관리부를 설명하기 위한 도면이다.
도 8을 참조하면, 접속 관리부(210)는 키 검출부(key detector; 11), 구역 아이디 비교부(ZID# comparator; 12), 요청 큐(RQ queue; 13) 및 선택 회로(selection circuit; 14)를 포함할 수 있다.
키 검출부(11)는 호스트들로부터 출력된 접속 요청들(A_RQ) 또는 동작 요청(OP_RQ)을 구분할 수 있고, 동작 요청(OP_RQ)에 포함된 다양한 정보들 중에서 필요한 정보를 추출할 수 있다. 예를 들면, 접속 요청(A_RQ)은 구역 아이디(ZID#) 및 접속 코드(ACD)를 포함할 수 있다. 접속 코드(ACD)는 호스트가 메모리 시스템에 접속을 요청한다는 것을 나타내고, 구역 아이디(ZID#)는 데이터를 프로그램하기 위한 구역에 대응되는 어드레스를 나타낸다. 동작 요청(OP_RQ)은 요청(RQ), 입력 키(KEYin) 및 구역 아이디(ZID#)를 포함할 수 있다. 요청(RQ)은 프로그램, 리드 또는 소거 동작을 구분하는 정보일 수 있고, 입력 키(KEYin)는 호스트가 정송한 키(KEY#)일 수 있다. 여기서 입력 키(KEYin)는 컨트롤러(2000)가 선택된 호스트에게 전송한 키(KEY#)와 동일한 코드로 이루어지는 것이 정상이지만, 키(KEY#)가 전송되는 과정에서 에러가 발생하거나 선택된 호스트가 아닌 다른 호스트가 동작 요청(OP_RQ)을 출력하는 경우를 판단하기 위하여 사용될 수 있다. 키 검출부(11)는 접속 요청들(A_RQ)을 구역 아이디 비교부(12)에 전송할 수 있고, 동작 요청(OP_RQ)을 선택 회로(14)에 전송할 수 있다.
구역 아이디 비교부(12)는 접속 요청들(A_RQ) 각각에 포함된 구역 아이디(ZID#)를 서로 비교할 수 있다. 예를 들면, 서로 다른 접속 요청들(A_RQ)에 포함된 구역 아이디들(ZID#)이 서로 동일하면, 구역 아이디 비교부(12)는 복수의 호스트들이 동일한 구역에 접속을 요청하는 것으로 판단하고 접속 요청들(A_RQ) 중에서 가장 먼저 입력된 접속 요청(A_RQ)을 선택할 수 있다. 이어서, 구역 아이디 비교부(12)는 선택된 접속 요청(A_RQ)에 포함된 구역 아이디(ZID#)와 키 요청(K_RQ)을 출력할 수 있고, 비선택된 접속 요청들(A_RQ)에 대한 거부 요청(RF_RQ)을 키 검출부(11)에게 출력할 수 있다. 키 검출부(11)는 거부 요청(RF_RQ)이 수신되면, 접속이 거부된 호스트들에게 거부 신호(RF_SIG)를 출력할 수 있다.
키 검출부(11)는 선택된 접속 요청(A_RQ)에 대한 키(KEY#)가 입력되면, 입력된 키(KEY#)를 출력할 수 있다. 키 검출부(11)에서 출력된 키(KEY#)는 선택된 호스트에게 전송될 수 있다.
서로 다른 접속 요청들(A_RQ)에 포함된 구역 아이디들(ZID#)이 서로 다르면, 구역 아이디 비교부(12)는 복수의 호스트들이 서로 다른 구역들에 접속을 요청하는 것으로 판단하고 접속 요청들(A_RQ) 중에서 가장 먼저 입력된 접속 요청(A_RQ)을 선택하고, 나머지 접속 요청들(A_RQ)을 요청 큐(13)에 전송할 수 있다. 요청 큐(13)는 접속 요청들(A_RQ)이 입력되면, 접속 요청들을 순차적으로 큐잉(queueing)하고, 이전 접속 요청(A_RQ)이 완료되면 다음 순서에 큐잉된 접속 요청(A_RQ)을 구역 아이디 비교부(12)에게 전송할 수 있다.
선택 회로(14)는 동작 요청(OP_RQ)이 입력되면, 동작 요청(OP_RQ)에 포함된 입력 키(KEYin)를 검출하고 검출된 입력 키(KEYin)를 출력할 수 있다. 또한, 선택 회로(14)는 패스 신호(PASS)에 응답하여 요청 패스 신호(RQP)를 출력하고, 페일 신호(FAIL)에 응답하여 요청 전송 신호(RQT)을 출력할 수 있다.
키 검출부(11)는 요청 패스 신호(RQP)에 응답하여 동작 요청(OP_RQ)에 포함된 요청(RQ)을 추출하여 커맨드 생성부(도 7의 260)에게 전송할 수 있다. 키 검출부(11)는 요청 전송 신호(RQT)에 응답하여 요청 재전송 신호(RT_SIG)를 제1 인터페이스(도 7의 200)에게 전송할 수 있다.
도 9는 본 발명의 실시 예에 따른 키 관리부를 설명하기 위한 도면이다.
도 9를 참조하면, 키 관리부(220)는 키 전송 회로(key transmission circuit; 21) 및 버퍼 리셋 회로(buffer reset circuit; 22)를 포함할 수 있다.
키 전송 회로(21)는 구역 아이디(ZID#) 및 키 요청(K_RQ)에 응답하여 키 생성 신호(KGEN)를 출력하고, 키 생성부(도 7의 230)에서 생성된 키(KEY#)를 수신받을 수 있다. 키 전송 회로(21)는 키(KEY#)가 수신되면, 구역 아이디(ZID#) 및 키(KEY#)를 키 버퍼(도 7의 240)에게 전송할 수 있다.
버퍼 리셋 회로(22)는 리셋 신호(RES)가 입력되면, 키 버퍼(도 7의 240)에서 선택된 구역 아이디(ZID#)에 대응되는 키(KEY#)를 삭제하기 위하여, 키 전송 회로(21)로부터 구역 아이디(ZID#)를 수신받고, 수신된 구역 아이디(ZID#)와 함께 리셋 제어 신호(RECON)를 출력할 수 있다. 키 버퍼(도 7의 240)는 리셋 제어 신호(RECOND)에 응답하여 구역 아이디(ZID#)에 대응되는 키(KEY#)를 삭제할 수 있다.
도 10은 본 발명의 실시 예에 따른 키 생성부를 설명하기 위한 도면이다.
도 10을 참조하면, 키 생성부(230)는 키 테이블(key table; 31) 및 테이블 관리부(table manager; 32)를 포함할 수 있다.
키 테이블(31)은 서로 다른 다양한 키들(KEY01~KEY30, … )을 저장할 수 있으며., 테이블 관리부(32)의 제어에 따라 선택된 키(KEY#)를 테이블 관리부(32)에게 출력할 수 있다.
테이블 관리부(32)는 키 생성 신호(KGEN)에 응답하여 키 테이블(31)에서 어느 하나의 키(KEY#)를 선택하고, 선택된 키(KEY#)를 출력할 수 있다. 테이블 관리부(32)는 키 테이블(31)에서 사용중인 키(KEY#)를 모니터링할 수 있으며, 키 생성 신호(KGEN)가 입력되면 현재 사용중이 아닌 키(KEY#)를 선택하고 출력할 수 있다.
도 11a 및 도 11b는 본 발명의 실시 예에 따른 키 버퍼를 설명하기 위한 도면들로써, 도 11a는 키(KEY#)를 저장하는 방법을 설명하기 위한 도면이고, 도 11b는 선택된 구역 아이이(ZID#)의 메모리 영역을 리셋하는 방법을 설명하기 위한 도면이다.
도 11a를 참조하면, 키 버퍼(240)는 구역 아이디(ZID#) 및 키(KEY#)가 입력되면 구역 아이디(ZID#)에 대응되는 메모리 영역에 키(KEY#)를 저장할 수 있다. 예를 들면, 구역 아이디(ZID#)가 3이고 키(KEY#)가 22인 경우, 키 버퍼(240)는 구역 아이디(ZID#)가 3인 인덱스(ZID3)에 대응되는 메모리 영역에 22의 키 값(KEY22)을 저장할 수 있다. 키 버퍼(240)에 저장된 키(KEY#)는 키 비교부(도 7의 250)의 요청에 있을 때 출력될 수 있다.
도 11b를 참조하면, 키 버퍼(240)는 구역 아이디(ZID#) 및 리셋 제어 신호(RECOND)에 응답하여 구역 아이디(ZID#)에 대응되는 메모리 영역을 리셋할 수 있다. 예를 들면, 구역 아이디(ZID#)가 3인 경우, 키 버퍼(240)는 구역 아이디(ZID#)가 3인 인덱스(ZID3)에 대응되는 메모리 영역에 저장된 키 값(KEY22)을 삭제할 수 있다.
도 12는 본 발명의 실시 예에 따른 컨트롤러의 동작 방법을 설명하기 위한 도면이다.
도 12를 참조하면, 복수의 호스트들이 프로그램 동작을 위하여 복수의 접속 요청들(A_RQ)을 컨트롤러에게 출력할 수 있다(S121). 즉, 복수의 호스트들은 프로그램 동작을 실행하기 위한 동작 요청을 출력하기 이전에 메모리 시스템의 선택된 구역(zone)에 접속을 하기 위하여 접속 요청들(A_RQ)을 출력할 수 있다.
컨트롤러는 수신된 복수의 접속 요청들(A_RQ)이 수신된 순서에 따라 호스트를 선택할 수 있다(S122). 예를 들면, 컨트롤러는 수신된 접속 요청들(A_RQ) 중에서 가장 먼저 수신된 접속 요청(A_RQ)을 선택할 수 있다. 따라서, 선택된 접속 요청(A_RQ)을 출력한 호스트가 접속이 허가된 호스트로 선택되고, 나머지 호스트들은 접속이 거부될 수 있다.
컨트롤러는 선택된 호스트에게 전송할 키(KEY#)를 생성할 수 있다(S123). 키(KEY#)는 복수의 비트들로 이루어진 코드로 생성될 수 있으며, 접속이 허용된 호스트를 식별하기 위하여 사용될 수 있다. 컨트롤러는 키(KEY#)를 키 버퍼에 저장할 수 있다.
컨트롤러는 키(KEY#)를 선택된 호스트에게 출력할 수 있다(S124).
선택된 호스트는 수신된 키(KEY#)를 동작 요청(OP_RQ)에 포함시키고 동작 요청(OP_RQ)을 출력할 수 있다. 동작 요청(OP_RQ)에 포함된 키(KEY#)는 컨트롤러에 저장된 키(KEY#)와 구분하기 위하여 입력 키(KEYin)로 정의한다.
컨트롤러는 입력 키(KEYin)를 포함하는 동작 요청(OP_RQ)을 수신하면(S125), 컨트롤러에 저장된 키(KEY#)와 입력 키(KEYin)를 서로 비교할 수 있다(S126).
입력 키(KEYin)와 키(KEY#)가 서로 동일하면, 컨트롤러는 선택된 호스트가 요청한 동작 요청(OP_RQ)을 실행할 수 있다(S127). 입력 키(KEYin)와 키(KEY#)가 서로 다르면, 컨트롤러는 선택된 호스트에게 재전송 신호를 출력할 수 있다(S128).
상술한 바와 같이, 복수의 호스트들이 메모리 시스템의 메모리 구역들 중에서 동일한 구역에 데이터를 프로그램하기 위하여 접속 요청들을 컨트롤러에 전송한 경우, 컨트롤러는 가장 빠르게 수신된 접속 요청을 선택할 수 있고, 해당 접속 요청을 출력한 호스트에게 접속을 허가하는 키(KEY#)를 전송할 수 있다. 따라서, 비선택된 호스트들은 메모리 시스템의 다른 구역에 접속을 시도하거나, 다른 시간에 해당 구역에 다시 접속을 시도할 수 있으므로, 호스트와 메모리 시스템 사이의 접속이 효율적으로 관리될 수 있다.
도 12에 도시된 순서도에 따라 컨트롤러의 각 장치들의 동작 방법을 순차적으로 설명하면 다음과 같다.
도 13 내지 도 16은 본 발명의 컨트롤러에 포함된 각 구성들의 동작 방법을 설명하기 위한 도면들이다.
도 13을 참조하면, 제1 호스트(1st host)는 제1 접속 요청(1A_RQ)을 컨트롤러(2000)에게 전송할 수 있고, 제2 호스트(2nd host)는 제2 접속 요청(2A_RQ)을 컨트롤러(2000)에게 전송할 수 있다. 제1 접속 요청(1A_RQ)에는 접속 코드(ACD) 및 제1 구역 아이디(ZID1)가 포함될 수 있고, 제2 접속 요청(2A_RQ)에는 접속 코드(ACD) 및 제1 구역 아이디(ZID1)가 포함될 수 있다.
컨트롤러(2000)의 제1 인터페이스(200)는 제1 및 제2 접속 요청들(1A_RQ, 2A_RQ)이 입력되면, 제1 및 제2 접속 요청들(1A_RQ, 2A_RQ)을 입력된 순서대로 접속 관리부(210)에 전송할 수 있다.
전송 관리부(210)는 제1 및 제2 접속 요청들(1A_RQ, 2A_RQ)과 같이 복수의 접속 요청들이 입력되면 가장 먼저 입력된 접속 요청을 선택할 수 있다. 예를 들면 제1 접속 요청(1A_RQ)이 제2 접속 요청(2A_RQ)보다 먼저 입력되었다고 가정하면, 접속 관리부(210)는 제1 접속 요청(1A_RQ)을 허가하기 위하여 제1 접속 요청(1A_RQ)을 선택하고, 제2 접속 요청(2A_RQ)을 거부하기 위한 거부 신호(RF_SIG)를 출력할 수 있다. 거부 신호(RF_SIG)는 제1 인터페이스(200)로 전송되며, 제1 인터페이스(200)는 거부 신호(RF_SIG)를 제2 호스트에게 전송할 수 있다. 제2 호스트는 거부 신호가 수신되면, 컨트롤러(2000)에게 전송한 동작 요청을 페일(fail)로 처리할 수 있다. 또는, 제2 호스트는 거부 신호가 수신되면, 컨트롤러(2000)에게 전송한 동작 요청을 패스(pass)로 처리하되, 컨트롤러(2000)로부터 키(KEY#)가 수신되더라도 수신된 키(KEY#)를 무효로 처리할 수 있다.
전송 관리부(210)는 제1 접속 요청(1A_RQ)에 포함된 제1 구역 아이디(ZID1)를 추출하고, 키 요청(K_RQ)과 제1 구역 아이디(ZID1)를 키 관리부(220)에게 전송할 수 있다. 키 관리부(220)는 키 요청(K_RQ)에 응답하여 키 생성 신호(KGEN)를 키 생성부(230)에 전송할 수 있다.
키 생성부(230)는 키 생성 신호(KGEN)에 응답하여 키(KEY#)를 생성하고, 생성된 키(KEY#)를 키 관리부(220)에게 전송할 수 있다.
도 14를 참조하면, 키 관리부(220)는 키 생성부(230)로부터 수신받은 키(KEY#)와 제1 구역 아이디(ZID1)를 키 버퍼(240)에 전송하고, 키(KEY#)를 접속 관리부(210)에도 전송할 수 있다.
키 버퍼(240)는 키 관리부(220)로부터 수신받은 제1 구역 아이디(ZID1)에 대응되는 메모리 영역에 키(KEY#)를 저장할 수 있다. 접속 관리부(210)는 수신받은 키(KEY#)를 제1 인터페이스(200)에 전송할 수 있고, 제1 인터페이스(200)는 수신받은 키(KEY#)를 제1 호스트에게 전송할 수 있다.
도 15를 참조하면, 제1 호스트는 컨트롤러(2000)로부터 수신받은 키(KEY#)를 동작 요청(OP_RQ)에 포함시킨다. 동작 요청(OP_RQ)에 포함된 키(KEY#)는 컨트롤러(2000)에 저장된 키(KEY#)와 구분되도록 입력 키(KEYin)로 정의한다. 이에 따라, 동작 요청(OP_RQ)은 요청(RQ), 입력 키(KEYin) 및 제1 구역 아이디(ZID1)를 포함할 수 있다. 제1 호스트는 프로그램할 데이터(DATA)와 동작 요청(OP_RQ)을 제1 인터페이스(200)에게 전송할 수 있다.
제1 인터페이스(200)는 동작 요청(OP_RQ)을 접속 관리부(210)에게 전송할 수 있다. 접속 관리부(210)는 동작 요청(OP_RQ)에 포함된 입력 키(KEYin)를 추출하고, 추출된 입력 키(KEYin)를 키 비교부(250)에게 전송할 수 있다. 키 비교부(250)는 입력 키(KEYin)가 수신되면, 키 버퍼(240)로부터 제1 구역 아이디(ZID1)에 대응되는 키(KEY#)를 수신받을 수 있다. 이어서, 키 비교부(250)는 입력 키(KEYin)와 키(KEY#)가 서로 동일한지를 판단할 수 있다.
도 16a 및 도 16b는 키 비교부(260)의 판단 결과에 따라 수행되는 후속 동작을 설명하기 위한 도면으로써, 도 16a는 입력 키(KEYin)와 키(KEY#)가 서로 다른 경우의 동작을 설명하는 도면이고, 도 16b는 입력 키(KEYin)와 키(KEY#)가 서로 동일한 경우의 동작을 설명하는 도면이다.
도 16a를 참조하면, 입력 키(KEYin)와 키(KEY#)가 서로 다른 경우, 키 비교부(250)는 접속 관리부(210)에게 페일 신호(FAIL)를 출력할 수 있고, 접속 관리부(210)는 페일 신호(FAIL)에 응답하여 재전송 신호(RT_SIG)를 출력할 수 있다. 제1 인터페이스(200)는 접속 관리부(210)에서 출력된 재전송 신호(RT_SIG)를 제1 호스트에게 전송할 수 있다. 즉, 제1 호스트에서 전송된 입력 키(KEYin)가 컨트롤러(2000)에 저장된 키(KEY#)와 다르다는 것은 제1 호스트가 접속 허가는 받지 못한 호스트이거나, 키(KEY#)가 제1 호스트로 전송되는 과정에서 에러가 발생한 것일 수 있다. 따라서, 컨트롤러(2000)는 제1 호스트가 접속이 허가된 호스트인지를 다시 확인하기 위하여 제1 호스트에게 재전송 신호(RT_SIG)를 전송할 수 있다.
제1 호스트는 재전송 신호(RT_SIG)에 응답하여 동작 요청(도 15의 OP_RQ)을 다시 출력할 수 있다. 제1 호스트에서 출력된 입력 키(KEYin)와 컨트롤러(2000)에 저장된 키(KEY#)가 서로 다른 것으로 판단되는 횟수가 임계 횟수가 되면, 제1 호스트는 제1 접속 요청(도 13의 1A_RQ)을 다시 컨트롤러(2000)에게 출력할 수 있다.
도 16b를 참조하면, 입력 키(KEYin)와 키(KEY#)가 서로 동일한 경우, 키 비교부(250)는 접속 관리부(210)에게 패스 신호(PASS)를 출력할 수 있고, 키 관리부(220)에게는 리셋 신호(RES)를 출력할 수 있다. 키 관리부(220)는 리셋 신호(RES)에 응답하여 제1 구역 아이디(ZID1) 및 리셋 제어 신호(RECON)를 출력할 수 있고, 키 버퍼(240)는 제1 구역 아이디(ZID1)에 대응되는 메모리 영역을 리셋할 수 있다.
접속 관리부(210)는 패스 신호(PASS)에 응답하여 동작 요청(OP_RQ)에 포함된 요청(RQ)을 커맨드 생성부(260)에게 전송할 수 있고, 데이터(DATA)를 데이터 버퍼(270)에게 전송할 수 있다. 예를 들면, 요청(RQ)은 프로그램 동작을 위한 요청일 수 있으며, 데이터(DATA)는 프로그램될 데이터일 수 있다.
데이터 버퍼(270)는 접속 관리부(210)로부터 수신받은 데이터(DATA)를 제2 인터페이스(280)에게 전송할 수 있다. 커맨드 생성부(260)는 요청(RQ)에 응답하여 커맨드(CMD)를 생성할 수 있다. 예를 들면, 커맨드 생성부(260)는 프로그램 동작에 대한 요청(RQ)이 수신되면 프로그램 동작을 수행하기 위한 커맨드(CMD)를 생성할 수 있다. 커맨드 생성부(260)에서 생성된 커맨드(CMD)는 제2 인터페이스(280)로 전송될 수 있다.
제2 인터페이스(280)는 수신된 커맨드(CMD) 및 데이터(DATA)를 제1 구역(ZN1)을 포함하는 메모리 장치에게 전송할 수 있다.
도 17은 본 발명의 컨트롤러가 적용된 메모리 카드 시스템을 보여주는 도면이다.
도 17을 참조하면, 메모리 카드 시스템(3000)은 컨트롤러(3100), 메모리 장치(3200), 및 커넥터(3300)를 포함한다.
컨트롤러(3100)는 메모리 장치(3200)와 연결된다. 컨트롤러(3100)는 메모리 장치(3200)를 접속(access)하도록 구성된다. 예를 들어, 컨트롤러(3100)는 메모리 장치(3200)의 프로그램, 리드 또는 소거 동작을 제어하거나, 배경(background) 동작을 제어하도록 구성될 수 있다. 컨트롤러(3100)는 도 7에 도시된 컨트롤러(2000)와 동일하게 구성될 수 있다. 컨트롤러(3100)는 메모리 장치(3200) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(3100)는 메모리 장치(3200)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다. 컨트롤러(3100)는 도 7을 참조하여 설명된 컨트롤러(2000)와 동일하게 구현될 수 있다.
예시적으로, 컨트롤러(3100)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 메모리 인터페이스(memory interface), 에러 정정부와 같은 구성 요소들을 포함할 수 있다.
컨트롤러(3100)는 커넥터(3300)를 통해 외부 장치와 통신할 수 있다. 컨트롤러(3100)는 특정한 통신 규격에 따라 외부 장치(예를 들어, 호스트)와 통신할 수 있다. 예시적으로, 컨트롤러(3100)는 USB (Universal Serial Bus), MMC (multimedia card), eMMC(embedded MMC), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer system interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), WIFI, Bluetooth, NVMe 등과 같은 다양한 통신 규격들 중 적어도 하나를 통해 외부 장치와 통신하도록 구성된다. 예시적으로, 커넥터(3300)는 상술된 다양한 통신 규격들 중 적어도 하나에 의해 정의될 수 있다.
예시적으로, 메모리 장치(3200)는 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin Transfer Torque - Magnetic RAM) 등과 같은 다양한 비휘발성 메모리 소자들로 구성될 수 있다.
컨트롤러(3100) 및 메모리 장치(3200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(3100) 및 메모리 장치(3200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro, eMMC), SD 카드(SD, miniSD, microSD, SDHC), 범용 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
도 18은 본 발명의 컨트롤러가 적용된 SSD(Solid State Drive) 시스템을 보여주는 도면이다.
도 18을 참조하면, SSD 시스템(4000)은 호스트(4100) 및 SSD(4200)를 포함한다. SSD(4200)는 신호 커넥터(4001)를 통해 호스트(4100)와 신호(SIG)를 주고 받고, 전원 커넥터(4002)를 통해 전원(PWR)을 입력 받는다. SSD(4200)는 컨트롤러(4210), 복수의 플래시 메모리들(4221~422n), 보조 전원 장치(4230), 및 버퍼 메모리(4240)를 포함한다.
본 발명의 실시 예에 따르면, 컨트롤러(4210)는 도 7을 참조하여 설명된 컨트롤러(2000)의 기능을 수행할 수 있다.
컨트롤러(4210)는 호스트(4100)로부터 수신된 신호에 응답하여 복수의 플래시 메모리들(4221~422n)을 제어할 수 있다. 예시적으로, 신호는 호스트(4100) 및 SSD(4200)의 인터페이스에 기반된 신호들일 수 있다. 예를 들어, 신호는 USB (Universal Serial Bus), MMC (multimedia card), eMMC(embedded MMC), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer system interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), WIFI, Bluetooth, NVMe 등과 같은 인터페이스들 중 적어도 하나에 의해 정의된 신호일 수 있다.
보조 전원 장치(4230)는 전원 커넥터(4002)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4230)는 호스트(4100)로부터 전원 전압을 입력 받고, 충전할 수 있다. 보조 전원 장치(4230)는 호스트(4100)로부터의 전원 공급이 원활하지 않을 경우, SSD(4200)의 전원 전압을 제공할 수 있다. 예시적으로, 보조 전원 장치(4230)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 외부에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4230)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(4240)는 SSD(4200)의 버퍼 메모리로 동작한다. 예를 들어, 버퍼 메모리(4240)는 호스트(4100)로부터 수신된 데이터 또는 복수의 플래시 메모리들(4221~422n)로부터 수신된 데이터를 임시 저장하거나, 플래시 메모리들(4221~422n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 버퍼 메모리(4240)는 DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM 등과 같은 휘발성 메모리 또는 FRAM, ReRAM, STT-MRAM, PRAM 등과 같은 비휘발성 메모리들을 포함할 수 있다.
1000: 메모리 시스템
2000: 컨트롤러
200: 제1 인터페이스 210: 접속 관리부
220: 키 관리부 230: 키 생성부
240: 키 버퍼 250: 키 비교부
260: 커맨드 생성부 270: 데이터 버퍼
280: 제2 인터페이스 11: 키 검출부
12: 구역 아이디 비교부 13: 요청 큐
14: 선택 회로 21: 키 전송 회로
22: 버퍼 리셋 회로 31: 키 테이블
32: 테이블 관리부
200: 제1 인터페이스 210: 접속 관리부
220: 키 관리부 230: 키 생성부
240: 키 버퍼 250: 키 비교부
260: 커맨드 생성부 270: 데이터 버퍼
280: 제2 인터페이스 11: 키 검출부
12: 구역 아이디 비교부 13: 요청 큐
14: 선택 회로 21: 키 전송 회로
22: 버퍼 리셋 회로 31: 키 테이블
32: 테이블 관리부
Claims (25)
- 데이터를 저장할 수 있는 복수의 구역들(zones)을 포함하는 메모리 장치;
상기 복수의 구역들 중에서 선택된 구역(zone)에 접속이 가능한지 여부를 요청하기 위한 접속 요청들(access requests)을 출력하는 복수의 호스트들; 및
상기 복수의 호스트들이 상기 선택된 구역에 접속하기 위하여 상기 접속 요청들을 출력하면, 상기 접속 요청들이 수신된 순서에 따라 상기 복수의 호스트들 중에서 하나의 호스트를 선택하고, 선택된 호스트를 확인하기 위한 키(key)를 생성 및 저장하고, 상기 키(key)를 상기 선택된 호스트에게 전송하도록 구성된 컨트롤러를 포함하고,
상기 선택된 호스트는 상기 키(key)를 포함한 동작 요청을 상기 컨트롤러에게 전송하고,
상기 컨트롤러는 상기 선택된 호스트로부터 출력된 상기 동작 요청에 상기 키(key)가 포함되어 있으면 상기 동작 요청을 실행하는 전자 시스템.
- 제1항에 있어서, 상기 메모리 장치는,
상기 데이터를 저장할 수 있는 복수의 메모리 블록들을 포함하고,
상기 복수의 구역들 각각은 상기 복수의 메모리 블록들 중 일부 메모리 블록들을 포함하는 전자 시스템.
- 제1항에 있어서, 상기 접속 요청들은,
상기 선택된 구역의 어드레스에 대응되는 구역 아이디와 접속 코드를 포함하는 전자 시스템.
- 제3항에 있어서, 상기 컨트롤러는,
상기 접속 요청들에 각각 포함된 상기 선택된 구역 아이디가 서로 동일하면 상기 복수의 호스트들 중에서 하나의 호스트를 선택하도록 구성되는 전자 시스템.
- 제1항에 있어서, 상기 컨트롤러는,
상기 복수의 호스트들 중에서 비선택된 호스트들에게 거부 신호를 출력하도록 구성된 전자 시스템.
- 제5항에 있어서, 상기 비선택된 호스트들은,
상기 거부 신호가 수신되면 상기 동작 요청을 페일(fail)로 처리하도록 구성되는 전자 시스템.
- 제5항에 있어서, 상기 비선택된 호스트들은,
상기 거부 신호가 수신되면 상기 동작 요청을 패스(pass)로 처리하고, 상기 키가 수신되더라도 상기 키를 무효로 처리하도록 구성되는 전자 시스템.
- 제1항에 있어서, 상기 컨트롤러는,
상기 접속 요청들 중에서 가장 먼저 수신된 접속 요청을 선택하고, 선택된 상기 접속 요청을 출력한 호스트를 상기 선택된 호스트로 지정하도록 구성된 전자 시스템.
- 제1항에 있어서, 상기 키(key)는,
복수의 비트들로 이루어진 코드로 구성되는 전자 시스템.
- 제1항에 있어서, 상기 동작 요청은,
프로그램 동작에 대한 요청과, 상기 키(key)와, 상기 선택된 구역의 구역 아이디를 포함하는 전자 시스템.
- 제1항에 있어서, 상기 컨트롤러는,
상기 동작 요청을 실행할 때 내부에 저장된 상기 키(key)를 삭제하도록 구성된 전자 시스템.
- 복수의 호스트들로부터 동일한 구역(zone)에 접속하기 위한 복수의 접속 요청들을 수신받으면, 상기 접속 요청들이 입력된 순서에 따라 하나의 호스트를 선택하고, 선택된 호스트를 확인하기 위한 키를 상기 선택된 호스트에게 출력하도록 구성된 접속 관리부;
복수의 키들을 저장하고, 키 생성 신호에 응답하여 상기 복수의 키들 중에서 하나의 키를 상기 키로써 출력하도록 구성된 키 생성부;
상기 접속 관리부의 요청에 따라 상기 키 생성부에게 상기 키 생성 신호를 전송하고, 상기 키 생성부로부터 출력된 상기 키를 상기 접속 관리부에게 전송하도록 구성된 키 관리부; 및
상기 선택된 호스트가 상기 키를 포함한 동작 요청을 출력하면, 상기 동작 요청에 포함된 상기 키를 체크하도록 구성된 키 비교부를 포함하는 컨트롤러.
- 제12항에 있어서, 상기 접속 관리부는,
상기 접속 요청들이 수신되면, 상기 접속 요청들 각각에 포함된 구역 아이디와 키 요청을 상기 키 관리부에게 전송하고,
상기 동작 요청이 수신되면, 상기 동작 요청에 포함된 상기 키를 상기 키 비교부에게 전송하도록 구성된 컨트롤러.
- 제12항에 있어서, 상기 접속 관리부는,
상기 접속 요청들 중 입력된 순서가 가장 빠른 접속 요청을 출력한 호스트를 선택된 호스트로 지정하도록 구성된 컨트롤러.
- 제14항에 있어서, 상기 접속 관리부는,
상기 접속 요청들을 출력한 상기 복수의 호스트들 중에서 비선택된 호스트들에게는 거부 신호를 출력하도록 구성된 컨트롤러.
- 제12항에 있어서, 상기 키 생성부는,
서로 다른 키들로 이루어진 키 테이블; 및
상기 키 생성 신호에 응답하여 상기 키 테이블에서 상기 키를 추출하여 상기 키 관리부에게 전송하도록 구성된 테이블 관리부를 포함하는 컨트롤러.
- 제12항에 있어서,
상기 선택된 호스트에게 전송된 상기 키를 저장하도록 구성된 키 버퍼를 더 포함하는 컨트롤러.
- 제17항에 있어서, 상기 키 버퍼는,
상기 구역의 어드레스에 대응되는 구역 아이디의 메모리 영역에 상기 키를 저장하고,
상기 키 비교부의 요청에 따라 상기 키를 상기 키 비교부에게 전송하도록 구성된 컨트롤러.
- 제12항에 있어서, 상기 키 비교부는,
상기 동작 요청에 포함된 상기 키와 상기 키 생성부에서 생성된 상기 키를 서로 비교하고,
상기 키들이 서로 동일하면 패스 신호를 출력하고,
상기 키들이 서로 다르면 페일 신호를 출력하도록 구성된 컨트롤러.
- 제19항에 있어서, 상기 접속 관리부는,
상기 패스 신호에 응답하여 상기 동작 요청을 실행하고,
상기 페일 신호에 응답하여 상기 선택된 호스트로부터 상기 동작 요청을 다시 수신받기 위하여 상기 선택된 호스트에게 재전송 신호를 출력하도록 구성된 컨트롤러.
- 제1 구역에 접속하기 위한 제1 접속 요청을 출력하는 제1 호스트;
상기 제1 구역에 접속하기 위한 제2 접속 요청을 출력하는 제2 호스트;
상기 제1 및 제2 접속 요청들이 입력되면, 상기 제1 및 제2 접속 요청들 중에서 상대적으로 먼저 입력된 제1 접속 요청을 출력한 상기 제1 호스트를 선택하고, 상기 제1 호스트의 접속을 허가하기 위한 키를 상기 제1 호스트에게 전송하도록 구성된 접속 관리부;
상기 키를 생성하도록 구성된 키 생성부;
상기 제1 구역에 대응되는 메모리 영역에 상기 키를 저장하도록 구성된 키 버퍼;
상기 키 생성부에게 상기 키를 생성할 것을 요청하며, 상기 키 생성부로부터 상기 키를 수신 받으면, 상기 키를 상기 접속 관리부 및 상기 키 버퍼에 전송하도록 구성된 키 관리부; 및
상기 제1 호스트가 상기 키를 포함한 동작 요청을 출력하면, 상기 동작 요청에 포함된 상기 키와 상기 키 버퍼에 저장된 상기 키를 서로 비교하여 상기 동작 요청의 실행 여부를 결정하도록 구성된 키 비교부를 포함하는 전자 시스템.
- 제21항에 있어서, 상기 접속 관리부는,
상기 제1 및 제2 접속 요청들과 상기 동작 요청을 구분하고, 상기 키를 상기 제1 호스트에게 전송하도록 구성된 키 검출부;
상기 제1 및 제2 접속 요청들에 포함된 상기 제1 구역의 구역 아이디에 응답하여, 상기 구역 아이디 및 키 요청을 출력하도록 구성된 구역 아이디 비교부; 및
상기 동작 요청에 포함된 상기 키를 추출하도록 구성된 선택 회로를 포함하는 전자 시스템.
- 제22항에 있어서, 상기 키 관리부는,
상기 키 요청에 응답하여 상기 키 생성부에게 키 생성 신호를 출력하고, 상기 키 생성부로부터 출력된 상기 키를 상기 접속 관리부 및 상기 키 버퍼에 각각 전송하도록 구성된 키 전송 회로; 및
리셋 신호에 응답하여 상기 키 버퍼의 상기 제1 구역에 대응되는 메모리 영역을 리셋하기 위하여 리셋 제어 신호를 출력하도록 구성된 버퍼 리셋 회로를 포함하는 전자 시스템.
- 제22항에 있어서, 상기 선택 회로는,
상기 키 비교부의 비교 결과에 따라 출력되는 패스 신호 또는 페일 신호에 응답하여 상기 키 검출부에게 요청 패스 신호 또는 요청 전송 신호를 출력하도록 구성된 전자 시스템.
- 제24항에 있어서, 상기 키 검출부는,
상기 요청 패스 신호에 응답하여 상기 동작 요청에 포함된 프로그램 동작에 대한 요청을 출력하고,
상기 요청 전송 신호에 응답하여 상기 제1 호스트에게 요청 재전송 신호를 출력하도록 구성된 전자 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200125015A KR20220041586A (ko) | 2020-09-25 | 2020-09-25 | 컨트롤러 및 이를 포함하는 전자 시스템 |
US17/209,927 US11882209B2 (en) | 2020-09-25 | 2021-03-23 | Controller and electronic system having the same |
CN202110556204.3A CN114253468B (zh) | 2020-09-25 | 2021-05-21 | 控制器及具有控制器的电子系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200125015A KR20220041586A (ko) | 2020-09-25 | 2020-09-25 | 컨트롤러 및 이를 포함하는 전자 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220041586A true KR20220041586A (ko) | 2022-04-01 |
Family
ID=80791131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200125015A KR20220041586A (ko) | 2020-09-25 | 2020-09-25 | 컨트롤러 및 이를 포함하는 전자 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11882209B2 (ko) |
KR (1) | KR20220041586A (ko) |
CN (1) | CN114253468B (ko) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027478B2 (en) * | 2007-10-09 | 2018-07-17 | International Business Machines Corporation | Differential key backup |
US9154298B2 (en) * | 2012-08-31 | 2015-10-06 | Cleversafe, Inc. | Securely storing data in a dispersed storage network |
KR102017828B1 (ko) | 2012-10-19 | 2019-09-03 | 삼성전자 주식회사 | 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들 |
US10176122B2 (en) | 2016-10-19 | 2019-01-08 | Advanced Micro Devices, Inc. | Direct memory access authorization in a processing system |
US10560263B2 (en) | 2017-03-24 | 2020-02-11 | Micron Technology, Inc. | Secure memory arrangements |
US10558589B1 (en) * | 2017-06-02 | 2020-02-11 | Apple Inc. | Secure data access between computing devices using host-specific key |
KR20190099693A (ko) | 2018-02-19 | 2019-08-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2020
- 2020-09-25 KR KR1020200125015A patent/KR20220041586A/ko unknown
-
2021
- 2021-03-23 US US17/209,927 patent/US11882209B2/en active Active
- 2021-05-21 CN CN202110556204.3A patent/CN114253468B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US11882209B2 (en) | 2024-01-23 |
CN114253468B (zh) | 2024-03-08 |
CN114253468A (zh) | 2022-03-29 |
US20220103352A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671524B2 (en) | Data storage device including nonvolatile memory device and operating method thereof | |
US20120284460A1 (en) | High performance path for command processing | |
US9627084B2 (en) | Storage device including nonvolatile memory device and controller | |
KR20220104511A (ko) | 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US10672434B2 (en) | Storage device and method of operating the same | |
US11861209B2 (en) | Memory system and method of operating the same | |
US11868664B2 (en) | Electronic system having memory system and host for managing request set queue | |
EP3910464A1 (en) | Memory device, storage device including the same, and method of operating the storage device | |
CN111258934A (zh) | 存储器控制器、包括其的存储器系统及操作其的方法 | |
US20150155041A1 (en) | Semiconductor memory device, memory system including the same and operating method thereof | |
KR20220039282A (ko) | 컨트롤러 및 이를 포함하는 메모리 시스템 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN114373495A (zh) | 存储装置及其操作方法 | |
US11586387B2 (en) | Memory system | |
US11954041B2 (en) | Controller including map cache and memory system including controller | |
US11508448B2 (en) | Memory system including memory device and operating method thereof | |
US11882209B2 (en) | Controller and electronic system having the same | |
US10282325B2 (en) | Semiconductor device including a plurality of circuits and a bus connecting the circuits to one another, and method of operating the semiconductor device | |
KR20230120930A (ko) | 메모리 장치 및 그 동작 방법 | |
CN115203070A (zh) | 控制器、包括控制器的存储器系统及由控制器执行的方法 | |
CN110851382B (zh) | 存储控制器及其操作方法和具有存储控制器的存储器系统 | |
KR20230031617A (ko) | 데이터를 리프레쉬하는 데이터 저장 장치 및 그 동작 방법 | |
CN114237975A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
KR20220099848A (ko) | 컨트롤러 및 이를 포함하는 메모리 시스템 | |
KR102717019B1 (ko) | 메모리 컨트롤러 및 그것의 동작 방법 |