KR20160017983A - 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 - Google Patents

메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR20160017983A
KR20160017983A KR1020140101794A KR20140101794A KR20160017983A KR 20160017983 A KR20160017983 A KR 20160017983A KR 1020140101794 A KR1020140101794 A KR 1020140101794A KR 20140101794 A KR20140101794 A KR 20140101794A KR 20160017983 A KR20160017983 A KR 20160017983A
Authority
KR
South Korea
Prior art keywords
data
key
memory device
memory
parity data
Prior art date
Application number
KR1020140101794A
Other languages
English (en)
Other versions
KR102154187B1 (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 KR1020140101794A priority Critical patent/KR102154187B1/ko
Priority to US14/696,609 priority patent/US10438684B2/en
Publication of KR20160017983A publication Critical patent/KR20160017983A/ko
Application granted granted Critical
Publication of KR102154187B1 publication Critical patent/KR102154187B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)

Abstract

메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법이 개시된다. 본 발명의 일 실시예에 따른 비휘발성의 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 상기 메모리 장치에 대한 제1 요청에 응답하여, 원본 키(key)를 이용하여 상기 제1 요청에 대한 응답을 처리하는 단계; 상기 원본 키에 대응되는 제1 패리티 데이터(parity data)를 생성하고 저장하는 단계; 및 상기 원본 키를 삭제하는 단계를 포함한다.

Description

메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 {Memory device, memory system and operating method of memory system}
본 발명의 기술적 사상은, 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법에 관한 것으로, 자세하게는 보안 기능이 수행될 수 있는 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법에 관한 것이다.
인터넷 및 네트워크의 발전에 따라 임의의 장치에서의 보안이 중요시 되고 있다. 특히, 인터넷 및 네트워크를 이용한 개인 정보 사용 및 금전 거래 등이 빈번히 사용됨에 따라, 각종 정보를 저장하고 있는 메모리 장치에 대한 액세스 등을 보호해야 하는 이슈가 제기된다. 또는, 제품의 퀄리티(quality) 보장을 위해, 메모리 장치와 컨트롤러 사이의 인증이 요구될 수 있다.
본 발명의 기술적 사상은 보안 기능이 수행될 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법을 제공하는데 있다.
본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은, 비휘발성의 메모리 장치를 포함하는 메모리 시스템의 동작 방법으로, 상기 메모리 장치에 대한 제1 요청에 응답하여, 원본 키(key)를 이용하여 상기 제1 요청에 대한 응답을 처리하는 단계; 상기 원본 키에 대응되는 제1 패리티 데이터(parity data)를 생성하고 저장하는 단계; 및 상기 원본 키를 삭제하는 단계를 포함한다.
상기 패리티 데이터를 생성하고 저장하는 단계는, 상기 원본 키를 ECC(Error Check and Correction) 인코딩(encoding) 하여 상기 제1 패리티 데이터를 생성하는 단계; 및 상기 패리티 데이터를 상기 메모리 장치의 비휘발성의 셀 어레이에 저장하는 단계를 더 포함할 수 있다.
상기 제1 패리티 데이터를 ECC 인코딩한 제2 패리티 데이터를 생성하고 저장하는 단계를 더 포함할 수 있다.
상기 제1 요청 이후에 활성화되는 제2 요청을 수신하는 단계; 상기 제2 요청에 응답하여, 키 데이터를 추출하는 단계; 및 상기 제1 패리티 데이터를 이용하여 상기 키 데이터를 제1 키로 변환하는 단계를 더 포함할 수 있다.
상기 제1 키를 이용하여 상기 제2 요청에 대한 응답을 처리하는 단계를 더 포함할 수 있다.
상기 제1 키로 변환하는 단계는, 상기 메모리 장치의 비휘발성의 셀 어레이이로부터 제1 패리티 데이터를 독출하는 단계; 및 상기 패리티 데이터를 이용하여 상기 키 데이터를 ECC 디코딩(decoding)하는 단계를 포함할 수 있다.
상기 제1 키로 변환하는 단계는, 상기 제1 데이터를 N(N은 2 이상의 정수)개로 나누어 상기 키 데이터를 추출하는 단계; 상기 키 데이터와 노운 데이터(known data)를 결합하여 결합 데이터를 생성하는 단계; 상기 메모리 장치의 비휘발성의 셀 어레이로부터 상기 제1 패리티 데이터를 독출하는 단계; 및 상기 제1 패리티 데이터를 이용하여 상기 결합 데이터에 대한 ECC 디코딩을 수행하는 단계를 포함할 수 있다.
상기 ECC 디코딩을 수행하는 단계는, 상기 제1 패리티 데이터에 대한 신뢰도(reliability) 값 및 상기 노운 데이터에 대한 신뢰도 값을 달리 설정할 수 있다.
상기 제1 데이터를 N(N은 2 이상의 정수)개로 나누어 상기 키 데이터를 추출하는 단계는, K(K는 2 이상의 정수)개의 제1 데이터로부터 상기 키 데이터를 추출하고, 상기 ECC 디코딩을 수행하는 ECC 엔진의 정정 능력에 근거하여 상기 K 및 상기 N의 값이 설정될 수 있다.
상기 제1 키를 상기 메모리 시스템의 휘발성의 저장 영역에 저장하는 단계를 더 포함할 수 있다.
상기 제2 요청 이후에 활성화되는 제3 요청을 수신하는 단계; 및 상기 제3 요청에 응답하여, 상기 휘발성의 저장 영역에 저장된 상기 제1 키를 이용하여 상기 제3 요청에 대한 응답으로 생성하는 단계를 포함할 수 있다.
상기 제1 패리티 데이터를 ECC 인코딩하여 제2 패리티 데이터를 생성하여 저장하는 단계를 포함하고, 상기 제1 키로 변환하는 단계는, 상기 제1 패리티 데이터 및 상기 제2 패리티 데이터를 독출하는 단계; 상기 제2 패리티 데이터를 이용하여 상기 제1 패리티 데이터에 대한 에러 체크 및 정정을 수행하는 단계; 및 상기 패리티 데이터를 이용하여 상기 키 데이터를 ECC 디코딩(decoding)하는 단계를 포함할 수 있다.
상기 메모리 장치는, NAND 플래시 메모리 장치일 수 있다.
본 발명의 다른 실시예에 따른, 비휘발성의 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 상기 메모리 장치에 대한 제1 요청에 응답하여, 원본 키(key)를 이용하여 상기 제1 요청에 대한 응답을 처리하는 단계; 상기 원본 키에 대응되는 제1 패리티 데이터(parity data)를 생성하고 저장하는 단계; 상기 원본 키를 삭제하는 단계; 및 상기 제1 요청 이후에 활성화되는 제2 요청에 응답하여, 상기 제1 패리티 데이터를 이용하여 상기 원본 키를 재생산하는 단계를 포함한다.
상기 원본 키를 재생산하는 단계는, 추출된 키 데이터(key data)에 노운 데이터(known data)를 패딩(padding)하는 단계; 상기 제1 패리티 데이터를 독출하여 상기 패딩된 데이터에 대해, 상기 메모리 장치에서 노말 데이터의 기입 또는 독출에 사용되는 ECC 엔진을 이용하여 ECC 디코딩을 수행하는 단계; 및 상기 ECC 디코딩 결과를 이용하여 상기 제2 요청에 대한 응답을 처리하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법에 의하면, 물리적 복제 방지 기능(Physical Unclonable Function)을 수행하는데 사용되는 보안 키의 산포를 삭제하고 이를 용이하게 재생산함으로써, 효율적으로 보안을 강화할 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 2는 도 1의 동작 방법이 구현될 수 있는 메모리 시스템의 일 예를 나타내는 도면이다.
도 3은 도 2의 메모리 시스템의 일 예를 나타내는 도면이다.
도 4a 및 도 4b는 각각, 도 2의 메모리 장치의 셀 어레이의 일 예를 나타내는 도면이다.
도 5는 도 4의 키에 대응되는 문턱 전압 산포의 예를 나타내는 도면이다.
도 6은 도 1의 제1 패리티 데이터를 생성하고 저장하는하는 단계의 예를 나타내는 도면이다.
도 7은 도 1의 삭제된 원본 키와 재생산된 원본 키(제1 키)의 차이 발생을 방지하기 위한 메모리 시스템의 동작의 예를 나타내는 도면이다.
도 8은 도 1의 동작 후 제2 요청이 수신된 경우의 메모리 시스템의 동작의 예를 나타내는 도면이다.
도 9는 도 8의 제1 키로 변환하는 메모리 시스템의 동작의 예를 나타내는 도면이다.
도 10 내지 도 13은 각각, 도 2의 메모리 시스템에서 ECC 엔진이 구비되는 예를 나타내는 도면이다.
도 14는 도 2의 메모리 장치의 일 예를 나타내는 도면이다.
도 15는 본 발명의 실시예에 따른 메모리 카드의 예를 나타내는 도면이다.
도 16은 도 3의 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다. 도 1을 참조하면, 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은, 메모리 장치에 대한 제1 요청에 응답하여, 원본 키(key)를 제1 요청에 대한 응답에 사용하는 단계(S110), 원본 키에 대응되는 제1 패리티 데이터(parity data)를 생성하고 저장하는 단계(S120), 및 원본 키를 삭제하는 단계(S130)를 포함한다.
도 2는 도 1의 동작 방법이 구현될 수 있는 메모리 시스템의 일 예를 나타내는 도면이다. 도 2를 참조하면, 일 실시예에 따른 메모리 시스템(200)은 메모리 컨트롤러(300) 및 메모리 장치(400)를 포함한다. 메모리 컨트롤러(300)는 각종 신호들을 메모리 장치(400)로 제공하여 메모리 동작을 제어한다. 예를 들어, 메모리 컨트롤러(300)는 클록 신호(CLK), 칩 선택신호(CS), 명령(CMD) 및 어드레스(Addr) 등을 메모리 장치(400)로 제공하며, 또한 기입 및 독출 동작을 위한 데이터(DTA)가 메모리 컨트롤러(300)와 메모리 장치(400) 사이에서 송수신된다.
메모리 장치(400)는 메모리 컨트롤러(300)로부터 인가되는 클록 신호(CLK), 칩 선택신호(CS), 명령(CMD) 및 어드레스(Addr) 등을 수신할 수 있고, 데이터(DTA)를 송수신할 수 있다. 메모리 장치(400)는 셀 어레이(440) 및 제어부(420)를 포함할 수 있다. 셀 어레이(440)는 다수의 메모리 셀(MC)들을 포함할 수 있고, 워드라인(WL) 및 비트라인(BL)에 의해서 액세스될 수 있다. 도 2의 메모리 장치(400)는 플래시 메모리 장치, 예를 들어, 낸드(NAND) 플래시 메모리 장치일 수 있다. 이 경우, 메모리 셀(MC)은 각각, 플로팅 게이트 트랜지스터(floating gate transistor)를 포함할 수 있고 동일한 워드라인(WL)에 연결된 복수개의 메모리 셀들을 페이지(PG)이라 부를 수 있다. 메모리 셀(MC)은 적어도 둘 이상의 상태들 사이에서 천이될 수 있는 메모리 단위로서, 각각의 상태는 데이터에 대응할 수 있다. 또한, 메모리 셀(MC)은 메모리 장치(400)로의 전력 공급이 차단되어도 기존 상태를 유지함으로써 프로그램 된 데이터를 유지할 수 있다. 이하에서, 메모리 장치(400)는 낸드 플래시 메모리 장치인 것으로 전제하지만, 이에 제한되는 것은 아니다.
제어부(420)는 메모리 컨트롤러(300)로부터 수신되는 클럭 신호(CLK)에 동기되어, 메모리 컨트롤러(300)로부터 수신되는 명령(CMD), 주소(Addr) 또는 데이터(DTA)에 따라, 셀 어레이(440)에 대한 동작을 수행할 수 있다. 이와 같은 동작을 수행하기 위해, 도 2에 도시되지는 아니하였으나, 메모리 장치(400)는 어드레스(Addr)에 대응되는 메모리 셀(MC)을 선택하기 위한 디코더(미도시), 선택된 메모리 셀(MC)에 대한 명령(CMD)에 따른 동작을 수행하기 위해 워드 라인(WL) 등으로 동작 전압을 인가하는 드라이버(미도시), 동작 전압을 생성하는 전압 생성부(미도시), 및 데이터(DTA)를 수신하거나 송신하는 데이터 입출력부(미도시) 등이 더 구비될 수 있다.
도 2의 메모리 장치(400)가 플래시 메모리 장치, 예를 들어, 낸드(NAND) 플래시 메모리 장치인 경우, 도 2의 메모리 시스템(200)의 일 예를 나타내는 도 3에 도시되는 바와 같이, 메모리 시스템(200)은 SSD(Solid State Drive)로 구현될 수 있다. 도 3을 참조하면, SSD(MSYS)는 SSD 컨트롤러(SCtrl) 및 적어도 하나 이상의 플래시 메모리 장치(MDEV)를 포함한다. SSD 컨트롤러(SCtrl)는 SSD(MSYS)의 제1 포트(PT1)를 통해 호스트 장치(HOST)로부터 수신되는 신호(SIG)에 응답하여 메모리 장치(MDEV)를 제어한다. SSD 컨트롤러(SCtrl)는 다수의 채널(Ch1~CHn)을 통해 플래시 메모리 장치(MDEV)와 연결될 수 있다. SSD(MSYS)는 보조 전원 장치(DSP)를 더 구비하여 제2 포트(PT2)를 통해 호스트 장치(HOST)로부터 전원(PWR)을 입력 받을 수 있다. 다만, 이에 한정되는 것은 아니고, SSD(MSYS)는 호스트 장치(HOST) 이외의 외부 장치로부터 전원을 공급받을 수 있다. SSD(MSYS)는 제1 포트(PT1)를 통해 호스트 장치(HOST)의 요청을 처리한 결과(SIG)를 출력할 수 있다.
그런데, 인터넷 및 네트워크의 발전에 따라 임의의 장치에서의 보안이 중요시 되고 있다. 특히, 인터넷 및 네트워크를 이용한 개인 정보 사용 및 금전 거래 등이 빈번히 사용됨에 따라, 각종 정보를 저장하고 있는 메모리 장치에 대한 액세스가 제어되어야 한다. 이때, 각각의 메모리 장치(400)에 대한 직접적인 액세스 또는 다른 메모리 장치(400)를 통한 간접적인 액세스가 제어되어야 한다. 예를 들어, 공격자는 도 3의 채널 1(Ch1)에 연결된 플래시 메모리 장치(Flash1)를 직접 공격할 수 있고, 도 3의 채널 2(Ch2)에 연결된 플래시 메모리 장치(Flash2)를 통해 플래시 메모리 장치(Flash1)를 공격할 수도 있다. 전자의 경우를 방지하기 위해, 메모리 장치(400)는 인증된 메모리 컨트롤러(300)에 의한 액세스만을 허용할 수 있다. 후자의 경우를 방지하기 위해, 메모리 컨트롤러(300)는 인증된 메모리 장치(400)에 대한 제어만을 수행할 있다. 인증되지 아니한 메모리 장치(400)에 의해 메모리 컨트롤러(300)가 복사될 수 있기 때문이다.
따라서, 메모리 장치(400)에 저장된 정보에 대한 보안 이외에, 메모리 컨트롤러(300)의 복사를 방지하기 위해, 메모리 컨트롤러(300)에 의한 메모리 장치(400)의 인증 동작이 수행될 수 있다. 나아가, 메모리 시스템(200)의 퀄리티(quality)를 보장하기 위해 메모리 컨트롤러(300)에 의한 메모리 장치(400)의 인증 동작이 수행될 수 있다. 예를 들어, 도 2의 SSD(MSYS)에서 SSD 컨트롤러(SCtrl) 및 플래시 메모리 장치(400)가 각각, 동일하거나 상호 인증된 제조사에 의해 제조되었는지를 확인하기 위해, 메모리 컨트롤러(300)가 메모리 장치(400)에 대한 인증을 수행할 수 있다. 다만, 이에 한정되는 것은 아니고, 메모리 장치(400) 또한, 메모리 시스템(200)의 퀄리티(quality)를 보장하기 위해 메모리 컨트롤러(300)에 대한 인증을 수행할 수 있다. 즉, 다양한 요구에 의해, 메모리 컨트롤러(300) 및 메모리 장치(400) 사이에서 액세스 할 수 있는 권한을 갖는지에 대한 인증이 요구된다.
상기와 같은 인증이 수행된 후에도 메모리 시스템(200)은 공격을 받을 수 있고, 이를 방어하기 위해, 메모리 컨트롤러(300) 및 메모리 장치(400) 사이에 암호화된 데이터가 송수신 될 수 있다. 이때, 메모리 컨트롤러(300) 및 메모리 장치(400)는 키(key)를 사용하여 암호화를 수행할 수 있다. 이 경우, 공격자가 키 생성에 관련된 문턱 전압 산포를 획득하는 것이 방지되어야 한다. 이에 대하여 설명한다.
도 4a는 도 2의 메모리 장치의 셀 어레이의 일 예를 나타내는 도면이다. 도 2 및 도 4를 참조하면, 셀 어레이(440)는 메타 데이터 영역(442), 유저 데이터 영역(444) 및 보안 데이터 영역(446)을 포함할 수 있다. 메타 데이터 영역(442), 유저 데이터 영역(444) 및 보안 데이터 영역(446)의 위치 및 상대적 크기는 도 4a에 제한되지 아니한다. 메타 데이터 영역(442)에는 메모리 장치(400)의 동작에 요구되는 다양한 메타 데이터(MDTA)가 포함될 수 있다. 예를 들어, 메모리 장치(400)가 플래시 메모리 장치인 경우, 초기 독출 전압 레벨, P/E 사이클(Program/Erase cycle) 및 로그 블록(log block)과 데이터 블록(data block)의 맵핑(mapping) 정보 등이 메타 데이터(MDTA)로서 메타 데이터 영역(442)에 저장될 수 있다.
유저 데이터 영역(444)에는 유저의 요청에 따라 프로그램 된 유저 데이터(UDTA)가 저장될 수 있다.
보안 데이터 영역(446)에는 인증 데이터(SDTA)가 저장된다. 보안 데이터(SDTA)는 메모리 장치(400)의 물리적 특징을 나타내어 메모리 장치(400)의 고유한 식별자와 같이 기능할 수 있다. 다시 말해, 사람의 경우 지문이나 개인 식별자와 같이, 메모리 장치(400)의 제조 공정상의 물리적 편차에 따른 고유의 특성을 나타낸다. 예를 들어, 동일한 전압을 이용하여 인증 데이터 영역의 메모리 셀을 프로그램 하더라도, 메모리 장치마다 다른 프로그램 된 메모리 셀에 대한 문턱 전압 산포가 상이하다. 예를 들어, 도 5와 같은 문턱 전압 산포가 각 메모리 장치마다 고유하다. 이러한 보안 데이터(SDTA)는 메모리 장치(400)의 제조 시에 인증 데이터 영역(446)에 프로그램 될 수 있다. 보안 데이터(SDTA)는 데이터 값이 아닌, 도 5의 문턱 전압 산포로 구현될 수도 있다. 예를 들어, 유저 데이터(UDAT)를 기입하는데 사용되는 프로그램 전압이 아닌 다른 전압으로 보안 데이터(SDTA)가 구현될 수 있다.
따라서, 임의의 독출 전압으로 보안 데이터 영역의 메모리 셀을 독출하게 되면, 메모리 장치마다 상이한 인증 데이터가 독출된다. 예를 들어, 도 3의 채널 1(Ch1) 상의 플래시 메모리 장치(Flash1)와 채널 2(Ch2) 상의 플래시 메모리 장치(Flash2)에 동일한 프로그램 전압으로 프로그램을 수행하더라도, 이를 보안 데이터로 독출하는 경우, 보안 데이터는 서로 다른 데이터로 독출된다.
보안 데이터(SDTA)의 크기는 메모리 장치(400) 또는 메모리 시스템(200)이 요구하는 보안의 정도 및 할당 가능한 자원(resource)의 정도에 따라 다양하게 설정될 수 있다. 예를 들어, 보안 데이터(SDTA)는 페이지와 동일한 크기를 갖거나, 페이지를 N개로 나눈 크기를 가질 수 있다. 또는, 보안 데이터(SDTA)는 블록(block)의 크기로 설정될 수 있다. 보안 데이터 영역(446)은 적어도 하나 이상의 보안 데이터(SDTA)가 저장될 수 있는 크기로 설정되면, 보안 데이터(SDTA)와 마찬가지로, 메모리 장치(400) 또는 메모리 시스템(200)이 요구하는 보안의 정도 및 할당 가능한 자원의 정도에 따라 다양하게 설정될 수 있다.
또한, 도 4b에 도시된 바와 같이, 보안 데이터를 저장하기 위한 영역이 별도로 존재하지 아니하고, 유저 데이터 영역(444)로부터 보안 데이터(SDTA)가 독출될 수 있다. 즉, 인증 요청 또는 후술되는 키 독출을 위한 요청에 대응되는 어드레스가 유저 데이터 영역(444)을 나타낼 수 있다.
메모리 시스템(200)이 턴-온 되거나, 메모리 컨트롤러(300)에 메모리 장치(400)가 연결되는 때, 또는 요구되는 때에, 메모리 컨트롤러(300)와 메모리 장치(400) 사이에서 인증을 위한 동작이 수행될 수 있다. 전술한 바와 같이, 인증 동작이 완료되면 메모리 장치(400)와 메모리 컨트롤러(300) 사이에 노말 동작(예를 들어, 유저 데이터(UDTA)에 대한 기입 동작 또는 독출 동작 등)을 수행함에 있어, 보안을 위해 키(key)를 사용하여 암호화 된 데이터가 송수신될 수 있다.
예를 들어, 메모리 장치(400)가 플래시 메모리 장치인 경우, 노말 동작은, 플래시 메모리 장치에 대한 프로그램(program), 독출 및 소거(erase) 등일 수 있다. 프로그램 동작을 통해, 플래시 메모리 장치로 데이터가 저장될 수 있다. 이때, 도 2의 메모리 셀(MC)이 가질 수 있는 상태에 따라 하나의 메모리 셀에 프로그램 되는 데이터의 크기가 달라질 수 있다. 예를 들어, 메모리 셀(MC)이 천이될 수 있는 상태가 2개인 경우, 메모리 셀(MC)은 1개 비트를 저장할 수 있는 반면, 메모리 셀(MC)이 천이될 수 있는 상태가 4개인 경우, 메모리 셀(MC)은 2개 비트를 저장할 수 있다. 예를 들어, 1개, 2개, 3개 및 4개의 비트들을 저장할 수 있는 메모리 셀(MC)들을 각각 SLC(single level cell), MLC(multi level cell), TLC(triple level cell) 및 QLC(quadruple level cell)라고 명명할 수 있다.
메모리 셀(MC)을 프로그램하면 플로팅 게이트에 전자가 삽입될 수 있고, 반대로 메모리 셀(MC)을 소거하면 플로팅 게이트에 삽입된 전자가 추출될 수 있다. 플로팅 게이트에 전자를 삽입하기 위하여 플로팅 게이트 트랜지스터의 게이트에 높은 전압이 인가될 수 있다. 하나의 페이지(PG)에 포함된 메모리 셀(MC)들의 게이트들은 동일한 워드라인(WL)에 연결되어 있으므로, 프로그램시 높은 전압이 동일하게 인가될 수 있다.
프로그램 하고자 하는 데이터에 따라 페이지(PG)에 포함된 메모리 셀(MC)들을 선택적으로 프로그램하기 위하여, 비트라인(BL)에 인가되는 전압이 조절될 수 있다. 페이지(PG)에 포함된 메모리 셀(MC)들은 서로 다른 비트라인(BL)들에 연결되어 있을 수 있다. 예컨대, 플로팅 게이트에 전자를 삽입하고자 하는 메모리 셀(MC)에 연결된 비트라인(BL)에 0V 또는 1V를 인가할 수 있는 반면, 플로팅 게이트에 전자의 삽입을 방지하고자 하는 메모리 셀(MC)에 연결된 비트라인(BL)에 전원 전압(VDD)을 인가할 수 있다. 0V 또는 1V가 인가된 비트라인(BL)에 연결된 메모리 셀(MC)은 프로그램된다고 하며, 전원 전압(VDD)이 인가된 비트라인(BL)에 연결된 메모리 셀(MC)은 프그램이 억제(inhibit)된다고 한다.
독출 동작은 프로그램 동작과 유사하나 메모리 셀(MC)에 연결된 비트 라인(BL) 및 워드 라인(WL) 등에 인가되는 전압이 다를 수 있다. 플래시 메모리 장치의 동작 특성 상, 프로그램 하는 단위와 소거되는 단위가 다를 수 있다. 예를 들어, 데이터의 프로그램은 페이지 단위로 수행되는 반면, 데이터의 소거는 페이지 보다 크기가 큰 블록 단위로 수행될 수 있다.
예를 들어, 상기의 프로그램 동작을 수행하기 위해서는, 메모리 컨트롤러(300)가 메모리 장치(400)로 명령(CMD), 어드레스(Addr) 및 데이터(DTA)를 전송한다. 예를 들어, 상기의 독출 동작을 수행하기 위해서는, 메모리 컨트롤러(300)가 메모리 장치(400)로 명령(CMD) 및 어드레스(Addr)를 전송하고, 메모리 장치(400)가 메모리 컨트롤러(300)로 독출된 데이터(DTA)를 전송한다.
이 경우, 보안 데이터(SDTA)를 독출하여 키를 생성할 수 있다. 다만, 이에 한정되는 것은 아니고, 다른 방식으로 키가 생성될 수도 있다.
그런데, 도 5의 문턱 전압 산포를 이용하여 키를 얻게 될 경우, 문턱 전압 산포가 그대로 남아, 권한 없는 유저(공격자)에 의해 독출될 수 있다. 본 발명의 실시예에 따른 메모리 장치, 메모리 시스템 및 이의 동작 방법에 의하면, 도 1과 같이, 원본 키(문턱 전압 산포를 이용하여 생성된 키)를 삭제함으로써, 그와 같은 문제를 방지할 수 있다. 그리고, 다음에서 설명하는 바와 같이, 추후에 발생하는 요청에서 원본 키를 재생산하여 사용한다. 이때, 본 발명의 실시예에 따른 메모리 장치, 메모리 시스템 및 이의 동작 방법에 의하면, 원본 키의 재생산이 효율적이며 정확하게 수행될 수 있다. 이에 대해 좀더 자세히 설명한다.
도 6은 도 1의 원본 키에 대응되는 제1 패리티 데이터를 생성하고 저장하는 단계의 예를 나타내는 도면이다. 도 4a 및 도 6을 참조하면, 제1 패리티 데이터(PDTA1)를 생성하고 저장하는 단계(120)는 원본 키를 ECC(Error Check and Correction) 인코딩(encoding) 하여 제1 패리티 데이터(PDTA1)를 생성하는 단계(S121) 및 제1 패리티 데이터(PDTA1)를 셀 어레이(440)에 저장하는 단계(S122)를 포함한다. 예를 들어, 제1 패리티 데이터(PDTA1)는 보안 데이터 영역(446)에 저장될 수 있다.
다만, 이에 제한되는 것은 아니고, 셀 어레이(440)의 유저 데이터 영역(444)에 저장될 수도 있다. 유저 데이터(UDTA), 즉 노말 데이터(normal data)는 셀 어레이(440)에 저장되는 때에, 노말 데이터를 ECC 인코딩하여 생성된 패리티 데이터(parity data)도 함께 저장된다. 1 패리티 데이터(PDTA1) 또한, 노말 데이터에 대한 패리티 데이터가 저장되는 영역에 저장될 수 있다. 또한, 제1 패리티 데이터(PDTA1)는 노말 데이터가 저장되는 방식, 즉 노말 데이터에 대한 프로그램 패스(program path)와 동일한 방식으로 셀 어레이(440)에 저장될 수 있다. 예를 들어, 제1 패리티 데이터(PDTA1)에 대한 ECC 인코딩을 수행하여, 제1 패리티 데이터(PDTA1)와 함께, 제1 패리티 데이터(PDTA1)의 패리티 데이터(제2 패리티 데이터(PDAT2))도 셀 어레이(440)에 저장될 수 있다.
원본 키에 대한 제1 패리티 데이터(PDTA1)는 노말 데이터에 대한 ECC 인코딩을 수행하는 ECC 엔진과 별도로 구비되는 ECC 엔진에 의해 수행될 수 있다. 제1 키(후술되는 제2 요청에 의해 재생산되는 원본 키)와 원본 키와의 차이, 예를 들어, 해밍 디스턴스(Hamming distance)의 차이를 극복하기 위해 도 7에 도시되는 바와 같이, 원본 키와 제1 키에 대한 에러 레이트(error rate)를 산출하는 단계(S710) 및 에러 레이트에 근거하여 ECC 인코딩에 대한 코드 레이트(code rate)를 달리 설정하는 단계(S720)가 수행될 수 있다.
원본 키와 제1 키에 대한 에러 레이트(error rate)를 산출하는 단계(S710)는 테스트 또는 시뮬레이션을 통해 통계적으로 산출될 수 있다. . 메모리 컨트롤러(300) 또는 메모리 장치(400)는 이를 위해, 테스트 또는 시뮬레이션 시에 원본 키를 삭제하지 아니하고 임시적으로 유지하거나 메모리 시스템 이외의 다른 저장 공간에 임시적으로 저장할 수 있다. 에러 레이트에 근거하여 ECC 인코딩에 대한 코드 레이트(code rate)를 달리 설정하는 단계(S720)는, 예를 들어, 해밍 디스턴스가 큰 경우, 코드 레이트가 낮게 ECC 동작이 수행되도록 할 수 있다.
코드 레이트는 k 비트의 입력 데이터로 n 비트의 코드 워드를 부호화하는 경우 k/n으로 나타낼 수 있다. 즉, 해밍 디스턴스가 커서 재생산된 원본 키와 제1 키의 차이가 발생될 확률이 크면, 부호화 정도를 낮게 함으로써, 재생산된 키에 에러가 발생할 확률을 줄일 수 있다. 메모리 컨트롤러(300) 또는 메모리 장치(400)는 상기와 같이 산출된 코드 레이트를 갖는 ECC 엔진을 구비하여 제1 패리티 데이터(PDTA1)가 생성될 수 있다.
제2 패리티 데이터(PDAT2) 또한 노말 데이터에 대한 ECC 인코딩을 수행하는 ECC 엔진과 별도로 구비되는 ECC 엔진에 의해 수행될 수 있고, 제1 패리티 데이터(PDTA1) 생성에 사용되는 ECC 엔진과 동일하거나 별도의 ECC 엔진으로 생성될 수 있다. 다만, 이에 한정되는 것은 아니고 후술되는 바와 같이, 제1 패리티 데이터(PDTA1) 또는 제2 패리티 데이터(PDTA1)는 노말 데이터에 대한 ECC 인코딩을 수행하는 ECC 엔진을 사용하여 생성될 수 있다. ECC 엔진 또는 ECC 엔진들은 메모리 컨트롤러(300) 또는 메모리 장치(400)에 구비될 수 있다. 도 8은 도 1의 인증 데이터를 삭제하는 단계 이후에 원본 키를 재생산 하는 동작을 나타내는 도면이다. 도 2, 도 4a 및 도 8을 참조하면, 도 1의 메모리 시스템의 동작 방법은, 제1 요청(CHL1) 이후에 활성화되는 제2 요청(CHL2)을 수신하는 단계(S710), 제2 요청(CHL2)에 응답하여, 키 데이터를 추출하는 단계(S720), 및 제1 패리티 데이터를 이용하여 상기 키 데이터를 제1 키로 변환하는 단계(S730)를 더 포함할 수 있다.
제1 요청(CHL1) 및 제2 요청(CHL2)은 메모리 컨트롤러(300)로부터 메모리 장치(400)로 전송될 수 있다. 그리고, 각각 대한 응답(RSP)은 원본 키, 또는 원본 키를 재생산한 제1 키를 이용한 암호화 수행 결과로써, 메모리 장치(400)로부터 메모리 컨트롤러(300)로 전송될 수 있다.
키 데이터를 추출하는 단계(S720)는, 제1 데이터(예를 들어, 보안 데이터(SDTA))를 독출함으로써 수행될 수 있다. 또는 키 데이터를 추출하는 단계(S720)는, 압축하거나 분할함으로써 수행될 수 있다.
제1 패리티 데이터(PDTA1)를 이용하여 키 데이터를 제1 키로 변환하는 단계(S730)는, 셀 어레이(440)로부터 제1 패리티 데이터(PDTA1)를 독출하고 독출된 제1 패리티 데이터(PDTA1)를 이용하여, 키 데이터를 ECC 디코딩함으로써 수행될 수 있다.
도 9는 도 8의 제1 패리티 데이터를 이용하여 키 데이터를 제1 키로 변환하는 단계의 다른 예를 나타내는 도면이다. 도 9를 참조하면, 제1 패리티 데이터(PDTA1)를 이용하여 키 데이터를 제1 키로 변환하는 단계(S730)는, 전술된 바와 같이, 제2 패리티 데이터(PDTA2)가 존재하는 경우에 대한 예이다. 먼저 제1 패리티 데이터(PDTA1) 및 제2 패리티 데이터(PDTA2)를 독출(S731)하고, 제2 패리티 데이터(PDTA2)를 이용하여 제1 패리티 데이터(PDTA1)에 대한 에러 체크 및 정정을 수행(S732)할 수 있다. 그리고, 에러 정정된 제1 패리티 데이터(PDTA1)를 이용하여 키 데이터를 ECC 디코딩(S733)함으로써. 제1 키를 생성할 수 있다.
도 10은 도 9의 제1 키로 변환하는 단계의 예를 나타내는 도면이다. 도 10을 참조하면, 제1 데이터, 예를 들어 보안 데이터(SDTA)를 N(N은 2 이상의 정수)개로 나누어 키 데이터(KDTA)를 추출할 수 있다. 다만, 이에 한정되는 것은 아니고, 제1 데이터를 1/N 크기로 압축하여 키 데이터(KDTA)를 추출할 수 있다. 또한, K(K는 2 이상의 정수)개의 제1 데이터로부터 키 데이터(KDTA)가 추출될 수도 있다. K개의 제1 데이터로부터 추출되는 경우와 하나의 제1 데이터로부터 추출되는 경우의 키 데이터(KDTA)의 크기는 같을 수 있다. 이때, N 및 K는 ECC 엔진의 에러 정정 능력에 따라 달리 설정될 수 있다. 예를 들어, ECC 엔진의 에러 정정 능력이 좋으면 K는 크게 설정되고 N은 작게 설정될 수 있다.
그리고, 키 데이터(DTA)와 노운 데이터(known data, KNDTA)를 결합하여 결합 데이터(CDTA)로 생성할 수 있다. 결합 데이터(CDTA)의 크기는 메모리 시스템(200)이 노말 데이터와 동일할 수 있다. 따라서, 메모리 시스템(200)에 구비된 ECC 엔진을 이용하여 상기의 인증 동작이 수행될 수 있다. 노운 데이터(KNDTA)는 ECC 엔진이 알고 있는 데이터를 의미한다. 예를 들어, 노운 데이터(KNDTA)는 모든 비트 값이 1이거나 모든 비트 값이 0일 수 있다. 다만, 이에 한정되는 것은 아니고, 노운 데이터는 1과 0의 조합으로 이루어진 데이터일 수도 있다.
제1 요청(CHL1) 이후에 활성화되는 제2 요청(CHL2)에 응답하여, 상기와 같이 생성된 키 데이터(또는 결합 데이터)를, 독출된 제1 패리티 데이터(PDAT1)를 이용하여 ECC 디코딩함으로써, 제1 키가 생성될 수 있다. 그리고, 제1 키를 이용하여 암호화 동작이 수행되어 제2 요청(CHL2)에 대한 응답(RSP)이 처리될 수 있다.
상기와 같은 ECC 디코딩 시에 에러 정정 능력이 제한되어 있다. 예를 들어, ECC 엔진이 2비트의 에러만을 정정할 수 있다. 그런데, ECC 디코딩을 수행하는 ECC 엔진이 노운 데이터를 알고 있으므로, 에러 정정은 서브 데이터에 대한 제1 영역에서만 수행하면 되므로, 상기와 같은 동작으로 생성된 제1 키는 원본 키와 일치할 확률이 크다. 또한, ECC 동작을 수행하는 ECC 엔진이 소프트 디지션(Soft Decision)을 지원할 수 있다. 이 경우, 제1 영역에 대한 신뢰도(reliability) 값 및 제2 영역에 대한 신뢰도 값이 달리 설정될 수 있다.
이렇듯, 본 발명의 일 실시예에 따른 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법에 의하면 보안 키의 산포를 삭제하고 이를 용이하게 재생산함으로써, 효율적으로 보안을 강화할 수 있다. 또한 전술한 바와 같이, ECC 엔진의 코드 레이트나 신뢰도 값의 설정에 따라, 원본 키와 제1 키 사이에 차이가 발생하는 문제를 해결할 수 있다.
상기와 같이 생성된 제1 키는 메모리 시스템(200)의 휘발성의 저장 영역(미도시)에 저장할 수 있다. 예를 들어, 제1 키는 메모리 장치(400)의 레지스터(미도시)에 저장될 수 있다. 예를 들어, 메모리 시스템(200)의 휘발성의 저장 영역은 메모리 컨트롤러(420)에 포함되거나, 메모리 컨트롤러(420) 및 메모리 장치(400) 외부에 포함될 수 있다. 그리고, 제2 요청(CHL2) 이후에 발생된 제3 요청(CHL3)이 수신되면, 휘발성의 저장 영역에 저장된 제1 키를 사용하여 요청(CHL3)에 대한 응답을 처리할 수 있다. 즉, 제3 요청(CHL3)이 수신되면, 휘발성의 저장 영역에 저장된 제1 키를 독출하여, 셀 어레이(440)에 저장된 ECC 디코딩함으로써, 제1 키를 생성하는데 소요되는 단계(키 데이터 추출 등)를 생략할 수 있다. 따라서, 키의 재생산에 따른 오버헤드(overhead)를 줄일 수 있다.
도 11 내지 도 13은 각각, 도 2의 메모리 시스템에서 ECC 엔진이 구비되는 예를 나타내는 도면이다. 도 11을 참조하면, 상기의 ECC 동작을 수행하는 ECC 엔진(ECE)은 메모리 컨트롤러(300)에 포함될 수 있다. 또는, 도 11을 참조하면, ECC 엔진(ECE)은 메모리 장치(400)에 포함될 수 있다. 메모리 컨트롤러(300)에 ECC 엔진(ECE)이 포함되는 경우, 레이아웃 면적이 상대적으로 덜 제한되므로, 에러 정정 능력을 향상시킬 수 있는 고성능의 ECC 엔진(ECE)을 구비할 수 있다. 다만, 메모리 컨트롤러(300)에 ECC 엔진(ECE)이 포함되는 경우, 메모리 컨트롤러(300)와 메모리 장치(400) 사이의 데이터 전송 빈번해 질 수 있다.
또한, 도 12를 참조하면, 메모리 컨트롤러(300)에 제1 ECC 엔진(ECE1)이 포함되고, 메모리 장치(400)에 제2 ECC 엔진(ECE2)이 포함될 수 있다. 이 경우, 제1 ECC 엔진(ECE1) 및 제2 ECC 엔진(ECE2) 중 하나는 노말 동작에 사용되고 다른 하나는 원본 키의 재생산에 사용될 수 있다. 다만, 이에 제한되는 것은 아니고, 제1 ECC 엔진(ECE1) 및 제2 ECC 엔진(ECE2) 모두, 노말 동작 및 원본 키의 재생산에 사용될 수도 있다. 이 경우, 제1 ECC 엔진(ECE1) 및 제2 ECC 엔진(ECE2) 모두에 의해 에러 정정 동작 등이 수행되므로, 본 발명의 실시예에 따른 메모리 시스템(200)의 신뢰성이 향상될 수 있다.
도 14는 도 2의 셀 어레이의 일 예를 나타내는 도면이다. 도 2의 셀 어레이(440)는 2차원의 NAND 플래시 메모리일 수 있다. 또는, 도 2의 셀 어레이(440)는 도 14에 도시되는 바와 같이, 3차원으로 적층된 수직 NAND(Vertical NAND) 플래시 메모리 셀 어레이로 구현될 수 있다. 3차원의 셀 어레이(440)는 기판(SUB), 복수의 메모리 셀 스트링(ST), 워드 라인(WL<0> 내지 WL<3>), 및 비트 라인(BL<0> 내지 BL<3>)을 포함할 수 있다. 메모리 셀 스트링(ST)은 기판(110)으로부터 돌출된 방향(예를 들어, 수직 방향(Z))으로 신장될 수 있다. 메모리 셀 스트링(ST) 각각은 Z축 방향으로 메모리 셀들(MC), 소스 선택 트랜지스터(SST), 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다. 소스 선택 트랜지스터(SST)는 열의 방향(Y)으로 연장된 소스 선택 라인(SSL<0> 내지 SSL<3>)과 연결되어 제어될 수 있고, 그라운드 선택 트랜지스터(GST)는 행의 방향(X) 및 열의 방향(Y)으로 연장된 그라운드 선택 라인(GSL)과 연결되어 제어될 수 있다.
워드 라인(WL<0> 내지 WL<3>)은 기판(110)과 수직한 방향(Z)으로 배열된다. 워드 라인(WL<0> 내지 WL<3>) 각각은 메모리 셀 스트링(ST) 내 메모리 셀들(MC) 각각이 존재하는 층의 일부에 위치한다. 워드 라인(WL<0> 내지 WL<3>) 각각은 기판(110) 상의 X축 및 Y축의 매트릭스로 배열된 메모리 셀들(MC)과 결합된다. 비트 라인(BL<0> 내지 BL<3>)은 행의 방향(X)으로 배열된 메모리 셀 스트링과 연결될 수 있다. 메모리 셀 스트링(ST) 내 메모리 셀들(MC), 소스 선택 트랜지스터(SST), 및 그라운드 선택 트랜지스터(GST)는 동일한 채널을 공유할 수 있다. 상기 채널은 기판(110)과 수직한 방향(Z)으로 연장되도록 형성될 수 있다.
도 2의 제어 로직(420)에 의해 워드 라인(WL<0> 내지 WL<3>) 및 비트 라인(BL<0> 내지 BL<3>)에 적절한 전압을 인가하여 메모리 셀들(MC)에 대한 프로그램 동작 및/또는 검증 동작이 수행되도록 제어될 수 있다. 예를 들어, 선택 트랜지스터(SST)와 연결된 소스 선택 라인(SSL<0> 내지 SSL<3>) 및 비트 라인(BL<0> 내지 BL<3>)에 설정된 전압이 인가되어 임의의 메모리 셀 스트링(ST)이 선택될 수 있고, 워드 라인(WL<0> 내지 WL<3>)에 설정된 전압이 인가되여 선택된 메모리 셀 스트링(ST) 중 임의의 메모리 셀(MC)을 선택됨으로써, 선택된 메모리 셀(MC)에 대한 독출, 프로그램 및/또는 검증 동작이 수행될 수 있다.
도 15는 본 발명의 일 실시예에 따른 메모리 카드를 나타내는 도면이다. 메모리 카드(1500)는 모바일 기기나 데스크 탑 컴퓨터와 같은 전자기기에 연결하여 사용할 수 있는 휴대용 저장장치가 될 수 있다. 도 15에 도시된 바와 같이, 메모리 카드(1500)는 메모리 컨트롤러(300), 메모리 장치(400) 및 포트 영역(1520)을 구비할 수 있다. 메모리 카드(1500)는 포트 영역(1520)을 통해서 외부의 호스트(미도시)와 통신할 수 있고, 메모리 컨트롤러(300)는 메모리 장치(200)를 제어할 수 있다. 메모리 컨트롤러(300)는 프로그램을 저장하는 ROM(미도시)으로부터 프로그램을 읽어서 수행할 수 있다. 도 15의 메모리 컨트롤러(300) 및 메모리 장치(400)는 전술된 도 2 등의 메모리 컨트롤러(300) 및 메모리 장치(400)일 수 있다.
도 16은 도 3의 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다. 도 16을 참조하면, 일 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SVSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 일 실시예에 따른 서버 시스템(SVSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함하는 구비할 수 있다. 따라서, 일 실시예에 따른 네트워크 시스템(NSYS) 및 서버 시스템(SVSYS)은 SSD의 컨트롤러와 메모리 사이의 인증 등을 신뢰성 있게 수행함으로써, 시스템에 대한 신뢰성을 확보할 수 있다.
이상에서와 같이 도면과 명세서에서 실시예가 개시되었다. 다만, 이는 의미 한정이나 특허청구범위에 기재된 범위를 제한하기 위하여 사용된 것은 아니다. 예를 들어, 이상에서 메모리 장치가 플래시 메모리 장치인 예만 기술되었으나, 이에 한정되는 것은 아니고, 플래시 메모리 장치 이외에 다양한 비휘발성 메모리 장치인 경우도 본 발명의 기술적 사상이 적용될 수 있다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
200: 메모리 시스템
300: 메모리 컨트롤러
400: 메모리 장치
420: 제어 로직
440: 셀 어레이

Claims (10)

  1. 비휘발성의 메모리 장치를 포함하는 메모리 시스템의 동작 방법에 있어서,
    상기 메모리 장치에 대한 제1 요청에 응답하여, 원본 키(key)를 이용하여 상기 제1 요청에 대한 응답을 처리하는 단계;
    상기 원본 키에 대응되는 제1 패리티 데이터(parity data)를 생성하고 저장하는 단계; 및
    상기 원본 키를 삭제하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  2. 제1항에 있어서, 상기 패리티 데이터를 생성하고 저장하는 단계는,
    상기 원본 키를 ECC(Error Check and Correction) 인코딩(encoding) 하여 상기 제1 패리티 데이터를 생성하는 단계; 및
    상기 패리티 데이터를 상기 메모리 장치의 비휘발성의 셀 어레이에 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  3. 제2항에 있어서,
    상기 제1 패리티 데이터를 ECC 인코딩한 제2 패리티 데이터를 생성하고 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 제1 요청 이후에 활성화되는 제2 요청을 수신하는 단계;
    상기 제2 요청에 응답하여, 키 데이터를 추출하는 단계; 및
    상기 제1 패리티 데이터를 이용하여 상기 키 데이터를 제1 키로 변환하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  5. 제4항에 있어서,
    상기 제1 키를 이용하여 상기 제2 요청에 대한 응답을 처리하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  6. 제4항에 있어서, 상기 제1 키로 변환하는 단계는,
    상기 메모리 장치의 비휘발성의 셀 어레이이로부터 제1 패리티 데이터를 독출하는 단계; 및
    상기 패리티 데이터를 이용하여 상기 키 데이터를 ECC 디코딩(decoding)하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  7. 제4항에 있어서,
    상기 제1 키를 상기 메모리 시스템의 휘발성의 저장 영역에 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  8. 제7항에 있어서,
    상기 제2 요청 이후에 활성화되는 제3 요청을 수신하는 단계; 및
    상기 제3 요청에 응답하여, 상기 휘발성의 저장 영역에 저장된 상기 제1 키를 이용하여 상기 제3 요청에 대한 응답으로 생성하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  9. 제4항에 있어서,
    상기 제1 패리티 데이터를 ECC 인코딩하여 제2 패리티 데이터를 생성하여 저장하는 단계를 포함하고,
    상기 제1 키로 변환하는 단계는,
    상기 제1 패리티 데이터 및 상기 제2 패리티 데이터를 독출하는 단계;
    상기 제2 패리티 데이터를 이용하여 상기 제1 패리티 데이터에 대한 에러 체크 및 정정을 수행하는 단계; 및
    상기 패리티 데이터를 이용하여 상기 키 데이터를 ECC 디코딩(decoding)하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  10. 제1항에 있어서, 상기 메모리 장치는,
    NAND 플래시 메모리 장치인 것을 특징으로 하는 메모리 시스템의 동작 방법.
KR1020140101794A 2014-08-07 2014-08-07 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 KR102154187B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140101794A KR102154187B1 (ko) 2014-08-07 2014-08-07 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
US14/696,609 US10438684B2 (en) 2014-08-07 2015-04-27 Memory device, memory system, and method of operating the memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140101794A KR102154187B1 (ko) 2014-08-07 2014-08-07 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160017983A true KR20160017983A (ko) 2016-02-17
KR102154187B1 KR102154187B1 (ko) 2020-09-09

Family

ID=55267450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140101794A KR102154187B1 (ko) 2014-08-07 2014-08-07 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법

Country Status (2)

Country Link
US (1) US10438684B2 (ko)
KR (1) KR102154187B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200008829A (ko) * 2018-07-17 2020-01-29 한국과학기술연구원 플래시 메모리 시스템 및 그것의 양자화 신호 생성 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572651B2 (en) * 2016-02-16 2020-02-25 Samsung Electronics Co., Ltd. Key generating method and apparatus using characteristic of memory
US10073732B2 (en) * 2016-03-04 2018-09-11 Samsung Electronics Co., Ltd. Object storage system managing error-correction-code-related data in key-value mapping information
KR20180066745A (ko) 2016-12-09 2018-06-19 삼성전자주식회사 반도체 메모리 장치
CN107919956B (zh) * 2018-01-04 2020-09-22 重庆邮电大学 一种面向物联网云环境下端到端安全保障方法
KR102490191B1 (ko) * 2018-03-05 2023-01-18 삼성전자주식회사 데이터 스토리지 장치 및 이를 포함하는 raid 시스템
US10938419B2 (en) * 2018-03-16 2021-03-02 SK Hynix Inc. Encoding method and system for memory device including QLC cells
CN112231719A (zh) * 2019-07-15 2021-01-15 美光科技公司 密码密钥管理
KR20210102740A (ko) 2020-02-12 2021-08-20 삼성전자주식회사 물리적 복제 방지 기능에 기초하여 키를 생성하는 보안 장치 및 이의 동작 방법
US11853607B2 (en) 2021-12-22 2023-12-26 Western Digital Technologies, Inc. Optimizing flash memory utilization for NVMe KV pair storage
US11817883B2 (en) * 2021-12-27 2023-11-14 Western Digital Technologies, Inc. Variable length ECC code according to value length in NVMe key value pair devices
US11733876B2 (en) 2022-01-05 2023-08-22 Western Digital Technologies, Inc. Content aware decoding in KV devices
US11853160B2 (en) 2022-05-27 2023-12-26 Western Digital Technologies, Inc. Variable length ECC code according to data entropy in NVMe key value pair devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066774A1 (en) * 2010-09-10 2012-03-15 Samsung Electronics Co., Ltd. Non-volatile memory for anti-cloning and authentication method for the same
US20120260023A1 (en) * 2011-04-08 2012-10-11 Kabushiki Kaisha Toshiba Storage device, protection method, and electronic apparatus
US20120304281A1 (en) * 2011-05-23 2012-11-29 Samsung Electronics Co., Ltd. Method and apparatus for authenticating a non-volatile memory device
US20140146607A1 (en) * 2011-06-03 2014-05-29 Kabushiki Kaisha Toshiba Semiconductor memory device for pseudo-random number generation

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5323464A (en) * 1992-10-16 1994-06-21 International Business Machines Corporation Commercial data masking
DE69630060T2 (de) * 1995-07-14 2004-07-08 Sony Corp. Verfahren zur Übertragung von digitalen Daten und Aufzeichnungsmedium
US6333983B1 (en) * 1997-12-16 2001-12-25 International Business Machines Corporation Method and apparatus for performing strong encryption or decryption data using special encryption functions
US6397273B2 (en) * 1998-12-18 2002-05-28 Emc Corporation System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory
JP4112188B2 (ja) 2001-03-09 2008-07-02 シャープ株式会社 データ記憶装置
JP2002298105A (ja) * 2001-03-30 2002-10-11 Sony Corp データ記憶装置および方法、情報処理装置および方法、記録媒体、並びにプログラム
US20030002386A1 (en) * 2001-06-30 2003-01-02 Knight William S. Combined chassis and mixer apparatus
EP1616229B1 (en) 2003-03-31 2008-10-08 NDS Limited Method and apparatus for preventing cloning of security elements
US10237237B2 (en) * 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
JP4691355B2 (ja) 2004-12-28 2011-06-01 日本電産サンキョー株式会社 不揮発性メモリ
JP2007188138A (ja) 2006-01-11 2007-07-26 Toshiba Corp マイクロコンピュータおよびそのセキュリティ制御方法
JP2007265400A (ja) 2006-03-01 2007-10-11 Bellwood International Inc 可搬型メモリ
JP2009543139A (ja) * 2006-06-30 2009-12-03 テレ アトラス ノース アメリカ インコーポレイテッド 自動化された分析、処理及び地理データ更新をサポートするために、地理データに関するユーザの更新要求を収集する方法及びシステム
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
KR100857760B1 (ko) 2007-05-15 2008-09-10 삼성전자주식회사 플래시 메모리를 이용한 암호키 저장 장치 및 그것의 보안방법
JP5045242B2 (ja) * 2007-05-30 2012-10-10 富士通セミコンダクター株式会社 半導体メモリ、半導体メモリの動作方法およびシステム
KR20090014828A (ko) 2007-08-07 2009-02-11 삼성전자주식회사 에러 정정 코드를 암호화하는 플래시 메모리 시스템 및플래시 메모리 시스템의 암호화 방법
US20090089247A1 (en) * 2007-09-28 2009-04-02 Terrence Lynn Blevins Methods and apparatus to standardize data properties in a process control environment
US8312269B2 (en) 2007-11-28 2012-11-13 Hitachi Global Storage Technologies Netherlands, B.V. Challenge and response access control providing data security in data storage devices
US8130955B2 (en) 2007-12-21 2012-03-06 Spansion Llc Random number generation through use of memory cell activity
US8799681B1 (en) * 2007-12-27 2014-08-05 Emc Corporation Redundant array of encrypting disks
US8291285B1 (en) * 2008-09-18 2012-10-16 Marvell International Ltd. Circulant processing scheduler for layered LDPC decoder
US9231768B2 (en) * 2010-06-22 2016-01-05 International Business Machines Corporation Utilizing a deterministic all or nothing transformation in a dispersed storage network
FR2964278A1 (fr) 2010-08-31 2012-03-02 St Microelectronics Rousset Extraction de cle dans un circuit integre
JP5625808B2 (ja) * 2010-11-26 2014-11-19 沖電気工業株式会社 データ更新装置及びプログラム、並びに、動画像復号装置及びプログラム、並びに、動画像配信システム
US8625803B1 (en) * 2011-05-31 2014-01-07 Google Inc. Updating shared keys
US8886963B2 (en) 2011-09-15 2014-11-11 Apple Inc. Secure relocation of encrypted files
US20150309874A1 (en) * 2012-12-04 2015-10-29 Ntt Docomo, Inc. A method and apparatus for code length adaptation for access to key-value based cloud storage systems
US8959420B1 (en) * 2012-12-19 2015-02-17 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
CN203321766U (zh) * 2013-07-11 2013-12-04 虞剑勇 一种带快速接头的多功能泵
US9384144B1 (en) * 2014-03-25 2016-07-05 SK Hynix Inc. Error detection using a logical address key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066774A1 (en) * 2010-09-10 2012-03-15 Samsung Electronics Co., Ltd. Non-volatile memory for anti-cloning and authentication method for the same
US20120260023A1 (en) * 2011-04-08 2012-10-11 Kabushiki Kaisha Toshiba Storage device, protection method, and electronic apparatus
US20120304281A1 (en) * 2011-05-23 2012-11-29 Samsung Electronics Co., Ltd. Method and apparatus for authenticating a non-volatile memory device
US20140146607A1 (en) * 2011-06-03 2014-05-29 Kabushiki Kaisha Toshiba Semiconductor memory device for pseudo-random number generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200008829A (ko) * 2018-07-17 2020-01-29 한국과학기술연구원 플래시 메모리 시스템 및 그것의 양자화 신호 생성 방법

Also Published As

Publication number Publication date
KR102154187B1 (ko) 2020-09-09
US10438684B2 (en) 2019-10-08
US20160041783A1 (en) 2016-02-11

Similar Documents

Publication Publication Date Title
KR102154187B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
TWI617945B (zh) 隨機數產生方法、在非揮發性記憶體胞元的記憶體的操作方法以及加密金鑰產生方法
US8036035B2 (en) Erase cycle counter usage in a memory device
CN111539043B (zh) 提供对受保护存储器的存取的系统
CN107957959B (zh) 具有文件级安全擦除的存储器系统及其操作方法
KR102479483B1 (ko) 메모리 시스템 및 이의 동작 방법
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
CN114675779A (zh) 存储设备的操作方法以及存储系统的操作方法
CN104103318B (zh) 操作存储控制器的方法和包括存储控制器的数据存储设备
US9569371B2 (en) Memory device, memory system, and operating method of memory system
US10725687B1 (en) Settable replay protected memory block characteristics in a logic unit
KR102665270B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20150143150A (ko) 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
CN116129975A (zh) 存储装置及其操作方法
KR20200048356A (ko) 호스트 장치, 저장 장치, 이들을 포함하는 vuc 인증 시스템 및 vuc 인증 방법
US11307777B2 (en) Memory system and operating method thereof
CN109508252B (zh) 数据编码方法、存储器控制电路单元与存储器存储装置
CN108091364B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
US11347479B2 (en) Memory system
US11386018B2 (en) Memory system and operating method thereof
CN111666174B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
US20240160566A1 (en) Independent flash translation layer tables for memory
KR20240071464A (ko) 머클 트리 기반 자격증명을 제공하는 컴퓨팅 장치, 스토리지 장치 및 스토리지 장치의 동작 방법
TW202418289A (zh) 存儲系統及其操作方法、存儲器控制器和存儲器
KR20220107733A (ko) 보호모드를 지원하는 비휘발성 메모리 장치 및 그를 포함하는 메모리 시스템

Legal Events

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