KR102248207B1 - 저장 장치 및 그것의 동작 방법 - Google Patents

저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102248207B1
KR102248207B1 KR1020140149388A KR20140149388A KR102248207B1 KR 102248207 B1 KR102248207 B1 KR 102248207B1 KR 1020140149388 A KR1020140149388 A KR 1020140149388A KR 20140149388 A KR20140149388 A KR 20140149388A KR 102248207 B1 KR102248207 B1 KR 102248207B1
Authority
KR
South Korea
Prior art keywords
data
nonvolatile memory
parity
memory
nonvolatile
Prior art date
Application number
KR1020140149388A
Other languages
English (en)
Other versions
KR20160053065A (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 KR1020140149388A priority Critical patent/KR102248207B1/ko
Priority to US14/925,077 priority patent/US9881696B2/en
Publication of KR20160053065A publication Critical patent/KR20160053065A/ko
Application granted granted Critical
Publication of KR102248207B1 publication Critical patent/KR102248207B1/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 저장 장치의 동작 방법은: 제 1 데이터를 제 1 비휘발성 메모리 및 제 2 비휘발성 메모리들에 동시에 버퍼링하는 단계; 제 2 데이터를 상기 제 2 비휘발성 메모리 및 제 3 비휘발성 메모리에 동시에 버퍼링하는 단계; 패리티를 발생하기 위하여 상기 제 2 비휘발성 메모리에서 상기 제 1 데이터 및 상기 제 2 데이터에 대한 패리티 동작을 수행하는 단계; 및 상기 제 1 데이터를 상기 제 1 비휘발성 메모리에, 상기 제 2 데이터를 상기 제 3 비휘발성 메모리에, 상기 패리티를 상기 제 2 비휘발성 메모리에 각각 프로그램시키는 단계를 포함한다.

Description

저장 장치 및 그것의 동작 방법{STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명의 저장 장치 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 나누어진다. 비휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 비휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 비휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 및 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 사용자 데이터 저장, 프로그램 및 마이크로 코드의 저장을 위해서 사용된다.
본 발명의 목적은 RAID 기능을 수행하는 저장 장치 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 저장 장치의 동작 방법은: 제 1 데이터를 제 1 비휘발성 메모리 및 제 2 비휘발성 메모리들에 동시에 버퍼링하는 단계; 제 2 데이터를 상기 제 2 비휘발성 메모리 및 제 3 비휘발성 메모리에 동시에 버퍼링하는 단계; 패리티를 발생하기 위하여 상기 제 2 비휘발성 메모리에서 상기 제 1 데이터 및 상기 제 2 데이터에 대한 패리티 동작을 수행하는 단계; 및 상기 제 1 데이터를 상기 제 1 비휘발성 메모리에, 상기 제 2 데이터를 상기 제 3 비휘발성 메모리에, 상기 패리티를 상기 제 2 비휘발성 메모리에 각각 프로그램시키는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 데이터를 상기 제 1 및 상기 제 2 비휘발성 메모리들에 동시에 버퍼링할 때, 상기 제 1 및 제 2 비휘발성 메모리들은 대응하는 칩활성화 신호들에 응답하여 동시에 활성화되거나, 상기 제 1 데이터를 상기 제 2 및 상기 제 3 비휘발성 메모리들에 동시에 버퍼링할 때, 상기 제 2 및 제 3 비휘발성 메모리들은 대응하는 칩활성화 신호들에 응답하여 동시에 활성화된다.
실시 예에 있어서, 상기 제 1 데이터를 상기 제 2 비휘발성 메모리에 버퍼링할 때, 상기 제 1 비휘발성 메모리 및 상기 제 2 비휘발성 메모리는 동시에 활성화되거나, 상기 제 2 데이터를 상기 제 2 비휘발성 메모리에 버퍼링할 때, 상기 제 2 비휘발성 메모리 및 상기 제 3 비휘발성 메모리는 동시에 활성화된다.
실시 예에 있어서, 상기 패리티 동작은 실시간으로 수행된다.
실시 예에 있어서, 상기 패리티 동작은 아이들(idle) 타임 때 수행된다.
실시 예에 있어서, 상기 패리티 동작은 XOR 동작이다.
실시 예에 있어서, 상기 패리티 동작은 상기 제 2 비휘발성 메모리의 페이지 버퍼에서 수행된다.
실시 예에 있어서, 읽기 요청시 어느 하나의 비휘발성 메모리로부터 읽혀진 데이터에 대한 복원 여부를 판별하는 단계를 더 포함한다.
실시 예에 있어서, RAID(redundant arrays of independent disks) 엔진에서 상기 읽혀진 데이터에 대한 복원 여부를 판별한다.
실시 예에 있어서, 상기 읽혀진 데이터에 대한 에러 정정이 불가능할 때, 상기 읽혀진 데이터가 복원된다.
실시 예에 있어서, 상기 읽혀진 데이터는 다른 비휘발성 메모리에 저장된 상기 읽혀진 데이터에 대응하는 패리티를 이용하여 복원된다.
실시 예에 있어서, 버퍼 메모리에 상기 제 1 데이터를 입력하는 단계; 상기 버퍼 메모리로부터 상기 제 1 데이터를 상기 제 1 비휘발성 메모리 및 상기 제 2 비휘발성 메모리로 동시에 전송하는 단계; 및 상기 버퍼 메모리에 상기 제 2 데이터를 입력하는 단계; 및 상기 버퍼 메모리로부터 상기 제 2 데이터를 상기 제 2 비휘발성 메모리 및 상기 제 3 비휘발성 메모리로 동시에 전송하는 단계를 더 포함한다.
실시 예에 있어서, 상기 패리티 동작은 복수의 래치들을 제어함으로써 수행되고, 상기 패리티 동작을 수행하면서 상기 제 2 비휘발성 메모리에 대한 읽기 요청이 입력될 때, 상기 복수의 래치들 중 일부는 상기 읽기 요청에만 사용된다.
본 발명의 실시 예에 따른 저장 장치는, 복수의 비휘발성 메모리들; 및 상기 복수의 비휘발성 메모리들을 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는, 제 1 데이터에 대한 쓰기 요청시, 상기 복수의 비휘발성 메모리들 중 제 1 비휘발성 메모리로 프로그램 동작을 수행하기 위하여 상기 제 1 데이터를 전송하고, 상기 복수의 비휘발성 메모리들 중 제 2 비휘발성 메모리로 패리티를 발생하기 위한 패리티 동작을 수행하기 위하여 상기 제 1 데이터를 전송하고, 제 2 데이터에 대한 쓰기 요청시, 상기 복수의 비휘발성 메모리들 중 제 3 비휘발성 메모리로 프로그램 동작을 수행하기 위하여 상기 제 2 데이터를 전송하고, 상기 복수의 비휘발성 메모리들 중 상기 제 2 비휘발성 메모리로 패리티를 발생하기 위한 패리티 동작을 수행하기 위하여 상기 제 2 데이터를 전송한다.
실시 예에 있어서, 상기 제 1, 제 2 및 제 3 비휘발성 메모리들 각각은 별도의 채널을 통하여 상기 메모리 제어기에 연결된다.
실시 예에 있어서, 상기 제 1, 제 2 및 제 3 비휘발성 메모리들은 하나의 채널을 통하여 상기 메모리 제어기에 연결된다.
실시 예에 있어서, 읽기 요청시 상기 복수의 비휘발성 메모리들 중 어느 하나로부터 읽혀진 데이터에 대한 데이터 복원 여부를 판별하고, 상기 읽혀진 데이터에 대한 복원이 필요할 때 상기 읽혀진 데이터에 대응하는 패리티를 상기 복수의 비휘발성 메모리들 중 다른 하나로부터 읽어오고, 상기 읽혀진 패리티를 이용하여 상기 읽혀진 데이터를 복원하는 RAID(redundant arrays of independent disks) 엔진을 더 포함한다.
실시 예에 있어서, 쓰기 요청시 외부로부터 데이터를 입력 받거나, 읽기 요청시 읽혀진 데이터 혹은 복원된 데이터를 외부로 출력하는 버퍼 메모리를 더 포함한다.
실시 예에 있어서, 상기 복수의 비휘발성 메모리들 각각은 상기 패리티 동작을 수행하는 복수의 래치들을 구비한 페이지 버퍼를 포함한다.
실시 예에 있어서, 상기 패리티 동작은 아이들(idle) 타임에 수행된다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치는, 비트라인들을 공유하는 복수의 메모리 블록들로 구성된 메모리 셀 어레이; 어드레스에 응답하여 상기 복수의 메모리 블록들 중 적어도 하나를 선택하는 어드레스 디코더; 상기 비트라인들에 연결되고, 상기 선택된 메모리 블록에 대한 프로그램 동작시 외부로부터 데이터를 입력받는 입출력 회로; 및 외부의 명령에 따라 패리티를 상기 선택된 메모리 블록에 프로그램시키도록 상기 어드레스 디코더 및 상기 입출력 회로를 제어하는 제어 로직을 포함하고, 상기 입출력 회로는 상기 패리티를 발생하기 위하여 상기 제어 로직의 제어에 따라 이전에 버퍼링된 데이터 및 상기 입력된 데이터에 대한 패리티 동작을 수행한다.
상술한 바와 같이 본 발명에 따른 저장 장치 및 그것의 동작 방법은, XOR e동작을 수행하는 비휘발성 메모리들을 이용하여 내부적으로 RAID 구현함으로써, 추가적인 부담없이 데이터 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 도면이다.
도 2는 도 1에 도시된 비휘발성 메모리의 버퍼링 및 패리티 동작에 대한 제 1 실시 예를 보여주는 도면이다.
도 3은 도 1에 도시된 비휘발성 메모리의 버퍼링 및 패리티 동작에 대한 제 2 실시 예를 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 저장 장치의 데이터 입력 동작을 설명하는 도면이다.
도 5는 본 발명의 실시 예에 따른 저장 장치의 데이터 출력 동작을 설명하는 도면이다.
도 6은 본 발명의 실시 예에 따른 저장 장치의 쓰기 동작시 패리티 동작과 읽기 동작을 동시에 수행하는 것을 개념적으로 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른 비휘발성 메모리에 대한 실시 예를 보여주는 블록도이다.
도 9는 도 8에 도시된 어느 하나의 블록에 대한 사시도를 예시적으로 보여주는 도면이다.
도 10은 도 9의 I-I'에 따른 단면도이다.
도 11은 본 발명의 실시 예에 따른 2개의 스트링들에 패리티들을 저장하는 실시 예를 보여주는 도면이다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 블록을 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 복수의 메모리 블록에 RAID 구현한 것을 개념적으로 보여주는 도면이다.
도 14는 본 발명의 실시 예에 따른 복수의 플레인들 RAID 구현한 것을 개념적으로 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 모바일 장치를 예시적으로 보여주는 블록도이다.
도 17은 본 발명의 실시 예에 따른 저장 장치의 쓰기 방법에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 18은 본 발명의 실시 예에 따른 저장 장치의 쓰기 방법에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 19는 본 발명의 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 실시 예에 따른 저장 장치는 내부적/자체적으로 RAID(redundant array of independent disks) 구현할 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 도면이다. 도 1을 참조하면, 호스트에서 데이터(A, B, C)를 저장 장치(1000)에 저장하는 과정이 기술된다. 여기서 저장 장치(1000)는, 예를 들어, SSD(solid state drive)일 수 있다. 저장 장치(1000)는, 도 1에 도시된 바와 같이, 버퍼 메모리(1200) 및 복수의 비휘발성 메모리들(NVM1 ~ NVM4)을 포함한다.
비휘발성 메모리들(NVM1 ~ NVM4) 각각은 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리들(NVM1 ~ NVM4) 각각은 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 비휘발성 메모리는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다.
도 1에서는 설명의 편의를 위하여 4개의 비휘발성 메모리들(NVM1 ~ NVM4)로 RAID를 구현한 것을 도시한다. 하지만, 본 발명의 RAID를 구현하는데 있어서 비휘발성 메모리들의 개수가 여기에 제한되지 않는다.
우선, 호스트로부터 데이터(A)의 쓰기 요청이 있을 때, 데이터(A)는 버퍼 메모리(1200)를 경유하여, 제 1 비휘발성 메모리(NVM1)에 전송된 후 쓰여질 것이다. 동시에, 데이터(A)는 RAID를 위한 패리티(parity) 발생을 위하여 제 4 비휘발성 메모리(NVM4)에 전송된다. 또한, 제 4 비휘발성 메모리(NVM4)에 대한 데이터(A) 전송시, 패리티 동작을 수행하기 위한 데이터라는 정보도 함께 전송될 수 있다. 실시 예에 있어서, 제 4 비휘발성 메모리(NVM4)는 패리티 발생을 위하여 데이터(A)를 버퍼링 해둔다.
다음에, 호스트로부터 데이터(B)의 쓰기 요청이 있을 때, 데이터(B)는 버퍼 메모리(1200)를 경유하여, 제 2 비휘발성 메모리(NVM2)에 전송된 후, 쓰여질 것이다. 동시에, 데이터(B)는 RAID를 위한 패리티 발생을 위하여 제 4 비휘발성 메모리(NVM4)에 전송된다. 또한, 제 4 비휘발성 메모리(NVM4)에 대한 데이터(B) 전송시, 패리티 동작(혹은, 래치 동작)을 수행하기 위한 데이터라는 정보도 함께 전송될 수 있다. 실시 예에 있어서, 제 4 비휘발성 메모리(NVM4)는 패리티 발생을 위하여 이전에 버퍼링된 데이터(A) 및 입력된 데이터(B)에 대한 패리티 동작을 수행하고, 그 결과값을 저장할 수 있다. 여기서, 패리티 동작은 XOR(exclusive OR) 동작을 포함할 수 있다. 실시 예에 있어서, 패리티 동작은 실시간으로 수행되거나, 아이들 타임(idle time)에 수행될 수 있다. 다른 실시 예에 있어서, 제 4 비휘발성 메모리(NVM4)는 패리티 발생을 위하여 데이터(A)를 버퍼링 해둘 수도 있다.
다음에, 호스트로부터 데이터(C)의 쓰기 요청이 있을 때, 데이터(C)는 버퍼 메모리(1200)를 경유하여, 제 3 비휘발성 메모리(NVM3)에 전송된 후, 쓰여질 것이다. 동시에, 데이터(C)는 RAID를 위한 패리티 발생을 위하여 제 4 비휘발성 메모리(NVM4)에 전송된다. 또한, 제 4 비휘발성 메모리(NVM4)에 대한 데이터(C) 전송시, 패리티 동작을 수행하기 위한 데이터라는 정보도 함께 전송될 수 있다. 실시 예에 있어서, 제 4 비휘발성 메모리(NVM4)는 패리티 발생을 위하여 데이터(A), 데이터(B) 및 데이터 (C)에 대한 패리티 동작을 수행하고, 그 결과값(패리티)을 저장할 수 있다. 실시 예에 있어서, 패리티 동작은 실시간으로 수행되거나, 아이들 타임(idle time)에 수행될 수 있다. 다른 실시 예에 있어서, 제 4 비휘발성 메모리(NVM4)는 패리티 동작 결과값을 쓸 수 있다. 실시 예에 있어서, 패리티 동작 결과값은, 실시간 혹은 아이들 타임에 쓰여질 수 있다.
실시 예에 있어서, 데이터(A, B, C) 의 크기는 페이지 단위, 페이지 단위보다 작거나 클 수 있다.
실시 예에 있어서, 비휘발성 메모리들(NVM1 ~ NVM4) 각각은 패리티 동작을 수행하도록 구현될 수 있다.
실시 예에 있어서, 비휘발성 메모리들(NVM1 ~ NVM4)은 적어도 2개가 동시에 활성화 될 수 있다. 즉, 칩활성화 신호에 응답하여 비휘발성 메모리들(NVM1 ~ NVM4) 중 적어도 2개가 동시에 활성화되고, 활성화된 비휘발성 메모리들로 동일 데이터가 입력될 수 있다.
본 발명의 실시 예에 따른 저장 장치(1000)는, 패리티 동작을 수행하는 비휘발성 메모리들(NVM1 ~ NVM4)를 구비함으로써, 내부적/자체적으로 RAID를 구현할 수 있다. 그 결과, 저장 데이터의 신뢰성이 종래의 그것보다 크게 향상될 수 있다.
한편, 비휘발성 메모리들(NVM1 ~ NVM4) 각각의 패리티 동작은 다양한 방법 혹은 구성에 의해 구현될 수 있다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리들(NVM1 ~ NVM4) 각각의 래치들의 운영에 따라 패리티 동작이 수행된다고 하겠다.
도 2는 도 1에 도시된 비휘발성 메모리(NVM4)의 버퍼링 및 패리티 동작에 대한 제 1 실시 예를 보여주는 도면이다. 도 1 및 도 2를 참조하면, 비휘발성 메모리(NVM4)에 입력 데이터(A, B, C)가 버퍼링 된다. 이후, 래치들은 버퍼링된 데이터(A, B, C)에 대한 패리티 동작을 수행함으로써 패리티를 발생한다. 발생된 패리티는 비휘발성 메모리 셀들(NMC)에 쓰여진다.
한편, 도 2에서는 입력 데이터(A, B, C)의 버퍼링이 래치들 내부에서 이뤄졌다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 입력 데이터(A, B, C)의 버퍼링은 비휘발성 메모리 셀에 이뤄질 수 있다.
도 3은 도 1에 도시된 비휘발성 메모리(NVM4)의 버퍼링 및 패리티 동작에 대한 제 2 실시 예를 보여주는 도면이다. 도 1 및 도 3을 참조하면, 비휘발성 메모리(NVM4)에 입력 데이터(A, B, C)가 SLC(single level cells)에 버퍼링 된다. 이후, 래치들은 SLC에 버퍼링된 데이터(A, B, C)를 읽어와 데이터(A, B, C) 대한 패리티 동작을 수행함으로써 패리티를 발생한다. 실시 예에 있어서, 패리티 동작은 아이들 타임에서 비휘발성 메모리(NVM4) 내부적으로 수행될 수 있다. 이후, 발생된 패리티는 MLC(multi level cells)에 쓰여진다.
도 4는 본 발명의 실시 예에 따른 저장 장치(1000)의 데이터 입력 동작을 설명하는 도면이다. 도 4를 참조하면, 데이터 입력 동작(혹은, 쓰기 동작)시 데이터(DATA)는 버퍼 메모리(1200)를 경유하여 적어도 2 개의 비휘발성 메모리들(NVM1, NVM4)에 전송된다. 여기서 데이터(DATA)는 적어도 2 개의 비휘발성 메모리들(NVM1, NVM4)에 동시에 전송될 수 있다. 이후, 적어도 하나의 비휘발성 메모리(NVM1)는 입력 데이터(DATA)에 대한 쓰기 동작을 수행한다. 나머지 하나의 비휘발성 메모리(NVM4)는 이전에 저장된 데이터와 현재 입력된 데이터(DATA) 사이에 XOR 동작을 수행한다. XOR 동작의 결과로써, 패리티가 발생된다. 이후, 발생된 패리티는, 실시간 혹은 아이들 타임에 비휘발성 메모리(NVM4)에 쓰여 진다. 따라서, 어느 하나의 비휘발성 메모리(NVM1)이 저장되고, 다른 비휘발성 메모리(NVM4)에 그것의 패리티가 저장될 수 있다.
도 5는 본 발명의 실시 예에 따른 저장 장치(1000)의 데이터 출력 동작을 설명하는 도면이다. 도 5를 참조하면, 데이터 출력 동작(혹은, 읽기 동작)시 데이터(DATA)는 어느 하나의 비휘발성 메모리(NVM1)로부터 읽혀지고, RAID 엔진(1225)에 입력 된다. 읽혀진 데이터(DATA)가 복원할 필요가 없으면, RAID 엔진(1225)은 데이터를 버퍼 메모리(1200)로 전송한다. 반면에, 읽혀진 데이터(DATA)가 복원할 필요가 있다면, RAID 엔진(1225)은 다른 비휘발성 메모리(NVM4)로부터 읽어온 패리티를 이용하여 데이터(DATA)를 복원하고, 복원된 데이터를 버퍼 메모리(1200)로 전송한다.
실시 예에 있어서, RAID 엔진(1225)은 소프트웨어,하드웨어,혹은 펌웨어적으로 구현될 수 있다. 버퍼 메모리(1200)는 외부의 호스트로 오리지널 데이터(DATA) 혹은 복원된 데이터를 출력한다.
실시 예에 있어서, RAID 엔진(1225)은 데이터 출력 동작시에만 활성화될 수 있다. 즉, RAID 엔진(1225)은 데이터 입력 동작에서는 비활성화될 수 있다.
실시 예에 있어서, RAID 엔진(1225)은 데이터 복원을 위하여 나머지 비휘발성 메모리들(NVM2, NVM3)로부터 오리지널 데이터(DATA)에 대응하는 데이터를 읽어 보고, 나머지 비휘발성 메모리들(NVM2, NVM3)로부터 읽혀진 데이터 및 패리티를 근거로 하여 오리지널 데이터(DATA)를 복원할 수 있다.
실시 예에 있어서, RAID 엔진(1225)은 나머지 비휘발성 메모리들(NVM2, NVM3)로부터 읽혀진 데이터 및 패리티를 근거로 하여 오리지널 데이터(DATA)를 XOR 연산함으로써 오리지널 데이터(DATA)를 복원할 수 있다.
실시 예에 있어서, RAID 엔진(1225)의 데이터 복원 동작은, 읽혀진 데이터(DATA)의 에러 정정이 불가능할 때 수행될 수 있다.
한편, 본 발명의 실시 예에 따른 저장 장치(1000)는, 어느 하나의 비휘발성 메모리에서 읽기 동작과, 쓰기 동작시 패리티 동작을 동시에 수행하도록 구현될 수 있다.
도 6은 본 발명의 실시 예에 따른 저장 장치(1000)의 쓰기 동작시 패리티 동작과 읽기 동작을 동시에 수행하는 것을 개념적으로 설명하기 위한 도면이다. 도 6을 참조하면, 쓰기 동작의 패리티 동작은 XOR 동작이고, XOR 동작은 비휘발성 메모리(NVM4)의 페이지 버퍼(page buffer)에서 수행될 수 있다. 페이지 버퍼는, 도 2 및 도 3에 도시된 바와 같이 래치들(LAT1 ~ LATk, k는 2 이상의 정수)을 포함한다.
실시 예에 있어서, 래치들(LAT1 ~ LATk) 중 일부(예를 들어, LAT2, LAT4)는 쓰기 동작의 패리티 동작, 예를 들어, XOR 동작을 위해 이용될 수 있다.
실시 예에 있어서, 래치들(LAT1 ~ LATk) 중 일부(예를 들어, LAT1, LATk)는 읽기 동작을 위해 이용될 수 있다. 예를 들어, XOR 동작이 수행되는 동안에는, 센싱 래치 및 캐쉬 래치 만을 이용하여 읽기 동작이 수행될 수 있다.
도 7은 본 발명의 실시 예에 따른 저장 장치(1000)를 예시적으로 보여주는 블록도이다. 도 7을 참조하면, 저장 장치(1000)는 복수의 비휘발성 메모리들(1100) 및 메모리 제어기(1200)를 포함한다. 저장 장치(1000)는 SSD, 메모리 카드(CF, SD, microSD, miniSD, UFS card, 등), eMMC(embedded multimedia card), UFS(universal flash storage) 장치, USB 저장 장치 등과 같은 저장 매체일 수 있다.
비휘발성 메모리들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. 비휘발성 메모리들(1100) 각각은 내부적으로 XOR 동작(혹은, 패리티 동작)을 수행할 수 있도록 구현될 수 있다.
메모리 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리들(1100)에 연결된다. 메모리 제어기(1200)는 복수의 채널들에 연결된 비휘발성 메모리들(1100)에 RAID를 구현하거나 혹은 어느 하나의 채널에 연결된 비휘발성 메모리들에 RAID를 구현할 수 있다. 실시 예에 있어서, RAID 구현은, 사용자에 의해 선택적/옵션적으로 수행될 수 있다. 예를 들어, 저장 장치(1000)의 외부에 RAID 구현을 선택하는 버튼이 구비될 수 있다. 또한, 호스트의 요청에 따라 RAID 구현이 옵션적으로 수행될 수도 있다. 혹은, 저장 장치(1000)의 정책에 따라 특정한 조건을 만족할 때 RAID 구현이 개시될 수도 있다.
실시 예에 있어서, 메모리 제어기(1200)는 RAID 구현을 위하여 입출력 동작시 요청된 하나의 논리 어드레스를 대응하는 서로 다른 적어도 2개의 비휘발성 메모리들에 쓰여질 영역들을 지시하는 적어도 2개의 물리 어드레스들로 변환할 수 있다. 이러한 어드레스 변환은 관리 테이블에 의해 관리될 수 있다.
메모리 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), RAID 엔진(1225), 에러 정정 회로(1230), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 동작(쓰기 동작, 읽기 동작, 관리 동작)에 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 버퍼 메모리(1220)는 데이터 입력 동작시 외부로부터 데이터를 입력 받고, 데이터 출력 동작시 읽혀진 데이터를 외부로 출력할 수 있다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 여기서 복수의 메모리 라인들은 캐시 라인들에 다양한 방법으로 맵핑 될 수 있다.
RAID 엔진(1225)은 읽기 동작시 비휘발성 메모리들(1100)로부터 읽혀진 데이터를 입력 받고, 복원이 필요하지 않을 때 읽혀진 데이터를 버퍼 메모리(1220)으로 전송하고, 복원이 필요할 때 읽혀진 데이터를 패리티를 이용하여 복원하고, 복원된 데이터를 버퍼 메모리(1220)로 전송할 수 있다. RAID 엔진(1225)은 소프트웨어,하드웨어, 혹은 펌웨어적으로 구현될 수 있으며, 읽기 동작시에만 활성화되도록 구현될 수 있다.
다른 실시 예에 있어서, 읽기 동작시 RAID 엔진(1225)이 비활성 상태에서 프로세서(1210)가 비휘발성 메모리들(1100)에 저장된 데이터 및 패리터를 읽고, 데이터 복원을 수행하도록 구현될 수도 있다.
에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 동작하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다. 실시 예에 있어서, 에러 정정 회로(1230)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded moduLATkon), BCM(Block coded moduLATkon) 등의 코디드 모듈레이션(coded moduLATkon)을 사용하여 에러를 정정할 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 여기서 호스트 인터페이스(1250)는 낸드 플래시 인터페이스일 수 있다. 이 외에도 호스트 인터페이스(1250)는 다양한 인터페이스(PATA 버스(parallel AT attachment bus), SATA 버스(serial AT attachment bus), SCSI, USB, PCIe, SD, SAS, UFS, 등)을 통해 호스트와 에 의해 구현될 수 있으며, 복수의 인터페이스들로 구현될 수도 있다.
비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다. 비휘발성 메모리 인터페이스(1260)는 낸드 인터페이스 혹은 VNAND 인터페이스일 수 있다.
도시되지 않았지만, 메모리 제어기(1200)는 무선 통신 기능(예를 들어, WiFi)을 탑재할 수 있다.
본 발명의 실시 예에 따른 저장 장치(1000)는 내부적으로 RAID를 구성함으로써 데이터의 신뢰성을 크게 향상시킬 수 있다.
도 8은 본 발명의 실시 예에 따른 비휘발성 메모리에 대한 실시 예를 보여주는 블록도이다. 도 8을 참조하면, 비휘발성 메모리(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 전압 발생 회로(130), 입출력 회로(140) 및 제어 로직(150)을 포함한다.
메모리 셀 어레이(110)는 복수의 메모리 블록들(BLK1 ~ BLKz, z는 2 이상의 정수)를 포함한다. 메모리 블록들(BLK1 ~ BLKz) 각각은 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL)을 통해 어드레스 디코더(120)에 연결되고, 비트라인들(BLs)을 통해 입출력 회로(140)에 연결된다. 실시 예에 있어서, 워드라인들(WLs)은 적층된 판 형태 구조일 수 있다.
복수의 메모리 블록들(BLK1 ~ BLKz) 각각은 기판 상에서 제 1 방향 및 제 2 방향(제 1 방향과 다름)에 따라 배열되고, 제 3 방향(제 1 방향과 제 2 방향으로 형성된 평면에 수직한 방향)으로 배열되는 3차원 구조의 복수의 스트링들(strings)을 포함한다. 여기서 복수의 스트링들 각각은, 비트라인과 공통 소스 라인(common source line, CSL) 사이에서 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터, 복수의 메모리 셀들, 적어도 하나의 접지 선택 트랜지스터들로 구성된다. 여기서 복수의 메모리 셀들 각각은 적어도 한 비트를 저장할 수 있다.
실시 예에 있어서, 적어도 하나의 스트링 선택 트랜지스터 및 복수의 메모리 셀들 사이에 적어도 하나의 더미 셀들이 포함될 수 있다. 다른 실시 예에 있어서, 복수의 메모리 셀들과 적어도 하나의 접지 선택 트랜지스터들 사이에 적어도 하나의 더미 셀들이 포함될 수 있다.
어드레스 디코더(120)는 어드레스에 응답하여 복수의 메모리 블록들(BLK1 ~ BLKz) 중 어느 하나를 선택할 수 있다. 또한, 어드레스 디코더(120)는 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL)을 통해 메모리 셀 어레이(110)에 연결된다. 어드레스 디코더(120)는 디코딩된 로우(row) 어드레스를 이용하여 워드라인들(WLs), 스트링 선택 라인(SSL), 접지 선택 라인(GSL)을 선택한다. 또한, 어드레스 디코더(120)는 입력된 어드레스 중 컬럼(column) 어드레스를 디코딩 할 수 있다. 여기서 디코딩된 컬럼 어드레스는 입출력 회로(140)에 전달될 것이다. 실시 예에 있어서, 어드레스 디코더(120)는 로우 디코더, 컬럼 디코더, 어드레스 버퍼 등을 포함할 수 있다.
전압 발생 회로(130)는 동작에 필요한 전압들(프로그램 전압, 패스 전압, 읽기 전압, 읽기 패스 전압, 검증 전압, 소거 전압, 공통 소스 라인 전압, 웰전압 등)을 발생할 수 있다. 전압 발생 회로(130)는 프로그램/읽기/소거 동작에 필요한 워드라인 전압을 발생할 수 있다.
입출력 회로(140)는 비트라인들(BLs)을 통해 메모리 셀 어레이(110)에 연결된다. 입출력 회로(140)는 어드레스 디코더(120)로부터 디코딩된 컬럼 어드레스를 입력 받도록 구현될 것이다. 입출력 회로(140)는 디코딩된 컬럼 어드레스를 이용하여 비트라인들(BLs)을 선택할 수 있다.
입출력 회로(140)는 프로그램 동작시 프로그램 될 데이터를 저장하거나, 읽기 동작시 읽혀진 데이터를 저장하는 복수의 페이지 버퍼들을 포함한다. 여기서 복수의 페이지 버퍼들 각각은 복수의 래치들(도 6에 도시된, LAT1 ~ LATk 등) 을 포함할 수 있다. 프로그램 동작시 페이지 버퍼들에 저장된 데이터는 비트라인들(BLs)을 통하여 선택된 메모리 블록에 대응하는 페이지에 프로그램 될 수 있다. 읽기 동작시 선택 메모리 블록에 대응하는 페이지로부터 읽혀진 데이터는 비트라인들(BLs)을 통하여 페이지 버퍼들에 저장될 수 있다.
또한, 입출력 회로(140)는 메모리 셀 어레이(110)의 제 1 영역으로부터 데이터를 읽고, 읽혀진 데이터를 메모리 셀 어레이(110)의 제 2 영역으로 저장할 수도 있다. 예를 들어, 입출력 회로(140)는 카피-백(copy-back)을 수행하도록 구현될 수 있다.
또한, 입출력 회로(140)는 제어 로직(150)의 제어에 따라 복수의 래치들(도 6에 도시된, LAT1 ~ LATk 등)의 운용함으로써 XOR 동작을 수행할 수 있다. 입출력 회로(140)에서 XOR 동작을 수행하겠다는 것은, 삼성 전자에서 출원되고 이 출원의 참고문헌으로 결합된 US 7,296,128, US 7,729,175, US 8,339,854, US 8,751,729, US 8,812,933, US 8,856,428, US 2012-0221775, US 2013-0124783, US 2013-0135932, US 2013-0135934, US 2014-0022853, US 2014-0029355, US 2014-0108895, US 2014-0153331, US 2014-0185377, US 2014-0281174 에서 설명될 것이다.
제어 로직(150)은 비휘발성 메모리 장치(100)의 전반적인 동작(프로그램/읽기/소거 등)을 제어한다. 제어 로직(150)은 외부로부터 입력된 제어 신호들(CTRL) 혹은 명령에 응답하여 동작할 것이다.
또한, 제어 로직(150)은 쓰기 동작의 패리티 발생 동작시 페이지 버퍼들에 포함된 래치들을 운용함으로써 XOR 동작을 수행할 수 있다.
또한, 제어 로직(150)은 읽기 동작만을 수행하는 래치 운용과 패리티 동작과 읽기 동작을 동시에 수행하는 래치 운용을 다르게 제어할 수 있다. 자세한 것은 도 6에서 설명된 바 여기서는 생략하겠다.
도 9는 도 8에 도시된 어느 하나의 블록에 대한 사시도를 예시적으로 보여주는 도면이다. 도 10은 도 9에 도시된 I-I'에 따른 단면도이다. 도 9 및 도 10을 참조하면, 메모리 블록(BLK)에서 하나의 필라는 제 1 서브 필라(113a) 및 제 2 서브 필라(113b)를 포함한다.
기판(111) 상에 제 1 서브 필라(113a)가 제공된다. 예시적으로, 제 1 서브 필라(113a)의 표면층(114a)은 p 타입을 갖는 실리콘 물질을 포함한다. 제 1 서브 필라(113a)의 표면층(114a)은 제 2 방향의 바디로 동작한다. 제 1 서브 필라(113a)의 내부층(115a)은 절연 물질로 구성된다. 제 1 서브 필라(113a) 상에 제 2 서브 필라(113b)가 제공된다. 예시적으로, 제 2 서브 필라(113b)의 표면층(114b)은 p 타입을 갖는 실리콘 물질을 포함한다. 제 2 서브 필라(113b)의 표면층(114b)은 제 2 방향의 바디로 동작한다. 제 2 서브 필라(113b)의 내부층(115b)은 절연 물질로 구성된다.
예시적으로, 제 1 서브 필라(113a)의 표면층(114a) 및 제 2 서브 필라(113b)의 표면층(114b)은 연결된다. 예를 들면, 제 1 서브 필라(113a)의 표면층(114a) 및 제 2 서브 필라(113b)의 표면층(114b)은 p 타입을 갖는 실리콘 패드(SIP)를 통해 연결될 것이다.
예시적으로, 실리콘 패드(SIP)에 대응하는 높이, 즉 제 5 높이를 갖는 제 1 도전 물질들은 더미 워드 라인(DWL) 및 더미 메모리 셀(DMC)을 형성할 것이다. 예를 들면, 메모리 블록(BLKb)이 제 2 방향을 따라 복수의 서브 블록들로 분할되는 경우, 메모리 블록(BLKb)은 실리콘 패드(SIP)에 대응하는 높이를 기준으로 서브 블록들로 분할될 것이다.
한편, 본 발명의 메모리 블록에 대한 자세한 것은, 삼성전자에 출원되었으며 이 출원의 참고 문헌으로 결합된 US 8,559,235에서 설명될 것이다.
한편, 본 발명은 비휘발성 메모리의 블록 내부에 RAID 구현할 수도 있다.
도 10을 다시 참조하면, 블록 내부에 RAID 구현된 실시 예가 도시된다. 도 10에 도시된 바와 같이, 하나의 비트라인(BL)에 4개의 스트링들이 연결된다. 각 스트링을 선택하는 스트링 선택 라인들(SSL1, SSL2, SSL3, SSL4)을 제어함으로써, RAID 구현이 가능하다. 동일 계층의 메모리 셀들 중에서 적어도 하나의 스트링에 연결된 메모리 셀에는 패리티(p)를 저장하고, 나머지 메모리 셀들에는 원래의 데이터(a, b, c)를 저장하도록 구현될 수 있다. 여기서 패리티(p)는 비트라인(BL)에 연결된 페이지 버퍼(도 6 참조)의 래치 동작에 의해 발생 및 저장될 수 있다. 어느 하나의 데이터가 복원이 필요할 때, 나머지 데이터 및 패리티를 근거로 하여 데이터 복원이 이뤄질 수 있다.
한편, 본 발명의 하나의 비트라인에 연결된 스트링의 개수는, 도 10에 도시된 4개에 제한되지 않는다고 이해되어야 할 것이다.
한편, 도 10에서는 어느 하나의 스트링에만 패리티를 저장하였으나, 본 발명이 여기에 제한될 필요는 없다. 본 발명은 적어도 2개의 스트링들에 패리티들을 저장할 수도 있다.
도 11은 본 발명의 실시 예에 따른 2개의 스트링들에 패리티들을 저장하는 실시 예를 보여주는 도면이다. 도 11을 참조하면, 공정 상 데이터 신뢰성이 취약한 부분으로 판단되는 메모리 셀의 경우에는 데이터 신뢰성 향상을 위하여 2개의 스트링들에 패리티들(p1, p2)을 저장할 수 있다.
한편, 본 발명은 다른 구조의 블록에도 적용 가능하다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 블록을 보여주는 도면이다. 도 12를 참조하면, 메모리 블록(BLKb)은 설명의 편의를 위하여 워드라인의 층수가 4라고 하였다. 메모리 블록(BLKb)은 인접한 직렬 연결된 메모리 셀들의 하단들을 파이프로 연결하는 PBiCS(pipe-shaped bit cost scalable) 구조로 구현된다. 메모리 블록(BLKb)은 m x n (m,n은 자연수)의 스트링들(NS)를 포함한다.
도 12에서는 m=6, n=2를 나타내고 있다. 각 스트링(NS)은 직렬 연결된 메모리 셀들(MC1 ~ MC8)를 포함한다. 여기서 메모리 셀들(MC1 ~ MC8)의 제 1 상단은 스트링 선택 트랜지스터(SST)에 연결되고, 메모리 셀들(MC1 ~ MC8)의 제 2 상단은 접지 선택 트랜지스터(GST)에 연결되고, 메모리 셀들(MC1 ~ MC8)의 하단은 파이프 연결된다.
스트링(NS)을 구성하는 메모리 셀들은 복수의 반도체 층에 적층됨으로써 형성된다. 각 스트링(NS)은 제 1 필라(PL11), 제 2 필라(PL12), 제 1 필라(PL11) 및 제 2 필라(PL12)를 연결하는 필라 연결부(PL13)를 포함한다. 제 1 필라(PL11)는 비트라인(예를 들어, BL1)과 필라 연결부(PL13)에 연결되고, 스트링 선택 라인(SSL), 워드라인들(WL5 ~ WL8) 사이를 관통함으로써 형성된다. 제 2 필라(PL12)는 공통소스라인(CSL)과 필라 연결부(PL13)에 연결되고, 접지 선택 라인(GSL), 워드라인들(WL1 ~ WL4) 사이를 관통함으로써 형성된다. 도 12에 도시된 바와 같이, 스트링(NS)은 U 자형 필라 형태로 구현된다.
실시 예에 있어서, 백-게이트(BG)는 기판 위에 형성되고, 백-게이트(BC) 내부에 필라 연결부(PL13)가 구현될 수 있다. 실시 예에 있어서, 백-게이트(BG)는 블록(BLKb)에 공통적으로 존재할 수 있다. 백-게이트(BG)는 다른 블록의 백-게이트와 서로 분리된 구조일 수 있다.
한편, 본 발명은 복수의 메모리 블록들에 RAID을 구현할 수 있다.
도 13은 본 발명의 실시 예에 따른 복수의 메모리 블록에 RAID 구현한 것을 개념적으로 보여주는 도면이다. 도 11을 참조하면, 메모리 블록(BLK1 ~ BLK3)으로는 정상적인 데이터(A, B, C)에 대한 프로그램 동작이 수행되고, 어느 하나의 메모리 블록(BLK4)에는 패리티 데이터(P)에 대한 프로그램 동작이 수행된다. 여기서 패리티 데이터는 데이터(A, B, C)에 대한 XOR 동작 결과값이다. XOR 동작은 도시되지 않았지만, 페이지 버퍼 내에서 수행될 수 있다.
한편, 본 발명은 복수의 플레인들(혹은 매트들)에 RAID을 구현할 수 있다. 여기서 플레인들 각각은 비트라인들을 공유하는 복수의 메모리 블록들을 포함한다.
도 14는 본 발명의 실시 예에 따른 복수의 플레인들 RAID 구현한 것을 개념적으로 보여주는 도면이다. 도 14를 참조하면, 플레인들(Plain1 ~ Plain3)으로는 정상적인 데이터(A, B, C)에 대한 프로그램 동작이 수행되고, 어느 하나의 플레인(Plain4)에는 패리티 데이터(P)에 대한 프로그램 동작이 수행된다. 여기서 패리티 데이터는 데이터(A, B, C)에 대한 XOR 동작 결과값이다. XOR 동작은 도시되지 않았지만, 페이지 버퍼 내에서 수행될 수 있다.
한편, 본 발명은 UFS(uiversal flash storage)에도 적용 가능하다. 도 15는 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다. 도 15를 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), 적어도 하나의 임베디드 UFS 장치(3200), 착탈형 UFS 카드(3300)를 포함할 수 있다. UFS 호스트(3100) 및 임베디드 UFS 장치(3200) 사이의 통신 및 UFS 호스트(3100) 및 착탈형 UFS 카드(3300) 사이의 통신은 M-PHY 계층을 통하여 수행될 수 있다.
임베디드 UFS 장치(3200), 및 착탈형 UFS 카드(3300) 중 적어도 하나는 도 1 내지 도 14에 도시된 바와 같이 RAID를 구현할 수 있는 저장 장치이다.
한편, 호스트(3100)는 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신하도록 브릿지(bridge)를 구비할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC, eMMC SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
본 발명은 모바일 장치에도 적용 가능하다. 도 16은 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 블록도이다. 도 16을 참조하면, 모바일 장치(4000)는 통합 프로세서(ModAP, 4100), 버퍼 메모리(4200), 디스플레이/터치 모듈(4300) 및 저장 장치(4400)를 포함한다.
통합 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작 및 외부와의 유선/무선 통신을 제어하도록 구현될 수 있다. 버퍼 메모리(4200)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 디스플레이/터치 모듈(4300)은 통합 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 1 내지 도 14에서 설명된 바와 같이 RAID를 내부적/자체적으로 구현할 수 있다.
본 발명의 실시 예에 따른 모바일 장치(4000)는 RAID 환경을 제공함으로써, 데이터의 신뢰성을 향상시키고, 그에 따른 최적의 동작 성능을 꾀할 수 있다.
도 17은 본 발명의 실시 예에 따른 저장 장치의 쓰기 방법에 대한 제 1 실시예를 보여주는 흐름도이다. 도 1 내지 도 17을 참조하면, 저장 장치(1000)의 쓰기 방법은 다음과 같다.
외부(호스트)로부터 제 1 데이터를 입력 받고, 입력된 제 1 데이터가 제 1 비휘발성 메모리(NVM1)에 프로그램 된다. 동시에 입력된 제 1 데이터는, 패리티 발생을 위하여 제 2 비휘발성 메모리(NVM2)에 버퍼링 된다(S110).
외부로부터 제 2 데이터를 입력 받고, 입력된 제 2 데이터가 제 3 비휘발성 메모리(NVM3)에 프로그램 된다. 동시에 입력된 제 2 데이터는, 패리티 발생을 위하여 제 2 비휘발성 메모리(NVM2)에 버퍼링 된다(S120). 이후, 실시간 혹은 아이들 타임 동안에 제 2 비휘발성 메모리(NVM2)에서 패리티 발생을 위한 패리티 동작(혹은, 래치 동작)이 수행된다(S130). 예를 들어, 패리티 동작은 제 1 데이터 및 제 2 데이터 사이의 XOR 동작이 될 수 있다. 이후, 제 2 비휘발성 메모리(NVM2)에 래치 동작의 결과값이 패리티로써 프로그램 된다(S140)
본 발명의 실시 예에 따른 저장 장치(1000)의 쓰기 방법은, 패리티 동작을 통해 얻어진 결과값을 패리티로 프로그램 시킨다.
한편, 도 17에서 도시된 쓰기 방법은, 데이터의 프로그램과 패리티의 프로그램이 서로 다르게 진행되었다. 하지만, 본 발명의 쓰기 방법이 여기에 제한되지는 않을 것이다. 본 발명의 저장 장치의 쓰기 방법은, 데이터의 프로그램과 패리티의 프로그램을 동시에 진행할 수 있다.
도 18은 본 발명의 실시 예에 따른 저장 장치의 쓰기 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 1 내지 도 16 및 도 18을 참조하면, 저장 장치(1000)의 쓰기 방법은 다음과 같다. 제 1 데이터가 제 1 비휘발성 메모리(NVM1) 및 제 2 비휘발성 메모리(NVM2)에 동시에 버퍼링된다(S210). 이후, 제 2 데이터가 제 2 비휘발성 메모리(NVM2) 및 제 3 비휘발성 메모리(NVM3)에 동시에 버퍼링된다(S220). 패리티를 발생하기 위하여 제 2 비휘발성 메모리(NVM2)에서 제 1 데이터 및 상기 제 2 데이터에 대한 패리티 동작이 수행된다(S230). 제 1 데이터를 제 1 비휘발성 메모리(NVM1)에, 제 2 데이터를 상기 제 3 비휘발성 메모리(NVM3)에, 패리티를 제 2 비휘발성 메모리(NVM2)에 각각에 프로그램된다(S240). 실시 예에 있어서, 제 1 내지 제 3 비휘발성 메모리들(NVM1 ~ NVM3)에서 프로그램 동작이 동시에 진행될 수 있다.
본 발명의 저장 장치(1000)의 쓰기 방법은 데이터 및 패리티를 동시에 프로그램할 수 있다.
도 19는 본 발명의 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 19를 참조하면, 저장 장치(1000)의 읽기 방법은 다음과 같다.
외부(호스트)의 읽기 요청시, 읽기 요청에 대응하는 비휘발성 메모리(NVM)으로부터 데이터가 읽혀진다(S310). 읽혀진 데이터에 대한 복원이 필요한 지가 판별된다(S320). 읽혀진 데이터에 대한 복원 여부는, RAID 엔진(도 3 참조, 1250)에서 결정할 수 있다. 예를 들어, 읽혀진 데이터의 에러 정정이 불가할 때, 패리티 이용한 복원이 결정될 수 있다. 만일, 데이터 복원이 결정된다면, RAID 엔진(1225)은 데이터에 대응하는 패리티를 다른 비휘발성 메모리로부터 읽어오고, 패리티를 이용하여 데이터를 복원한다(S330). 반면에, 데이터 복원이 필요 없거나, 데이터 복원이 완료되면, 데이터가 외부로 출력 된다(S340).
본 발명의 실시 예에 따른 저장 장치(1000)의 읽기 방법은, RAID 엔진(1225)을 이용하여 데이터 복원을 수행할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
1000: 저장 장치
NVM1 ~ NVM4, NVM: 비휘발성 메모리
1220: 버퍼 메모리
1250: RAID 엔진
1100: 비휘발성 메모리
LAT1 ~ LATk: 래치
P: 패리티
A, B, C, DATA: 데이터

Claims (10)

  1. 저장 장치의 동작 방법에 있어서:
    제 1 데이터를 제 1 비휘발성 메모리의 페이지 버퍼 및 제 2 비휘발성 메모리의 페이지 버퍼에 동시에 버퍼링하는 단계;
    제 2 데이터를 상기 제 2 비휘발성 메모리의 페이지 버퍼 및 제 3 비휘발성 메모리의 페이지 버퍼에 동시에 버퍼링하는 단계;
    패리티를 발생하기 위하여 상기 제 2 비휘발성 메모리의 페이지 버퍼에서 상기 제 1 데이터 및 상기 제 2 데이터에 대한 패리티 동작을 수행하는 단계; 및
    상기 제 1 데이터를 상기 제 1 비휘발성 메모리에, 상기 제 2 데이터를 상기 제 3 비휘발성 메모리에, 상기 패리티를 상기 제 2 비휘발성 메모리에 각각 프로그램하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 제 1 데이터를 상기 제 1 비휘발성 메모리의 페이지 버퍼 및 상기 제 2 비휘발성 메모리의 페이지 버퍼에 동시에 버퍼링할 때, 상기 제 1 및 제 2 비휘발성 메모리는 대응하는 칩활성화 신호들에 응답하여 동시에 활성화되거나,
    상기 제 2 데이터를 상기 제 2 비휘발성 메모리의 페이지 버퍼 및 상기 제 3 비휘발성 메모리의 페이지 버퍼에 동시에 버퍼링할 때, 상기 제 2 및 제 3 비휘발성 메모리는 대응하는 칩활성화 신호들에 응답하여 동시에 활성화되는 동작 방법.
  3. 제 1 항에 있어서,
    상기 패리티 동작은 아이들(idle) 타임 때 수행되는 동작 방법.
  4. 제 1 항에 있어서,
    상기 패리티 동작은 XOR 동작인 동작 방법.
  5. 제 1 항에 있어서,
    읽기 요청시 어느 하나의 비휘발성 메모리로부터 읽혀진 데이터에 대한 복원 여부를 판별하는 단계를 더 포함하는 동작 방법.
  6. 제 5 항에 있어서,
    RAID(redundant arrays of independent disks) 엔진에서 상기 읽혀진 데이터에 대한 복원 여부를 판별하고, 상기 읽혀진 데이터에 대한 에러 정정이 불가능할 때, 상기 읽혀진 데이터가 복원되는 동작 방법.
  7. 제 1 항에 있어서,
    상기 패리티 동작은 상기 제 2 비휘발성 메모리의 페이지 버퍼에 포함되는 복수의 래치들을 제어함으로써 수행되고,
    상기 패리티 동작을 수행하면서 상기 제 2 비휘발성 메모리에 대한 읽기 요청이 입력될 때, 상기 복수의 래치들 중 일부는 상기 읽기 요청에만 사용되는 동작 방법.
  8. 복수의 비휘발성 메모리들; 및
    상기 복수의 비휘발성 메모리들을 제어하는 메모리 제어기를 포함하고,
    상기 메모리 제어기는,
    제 1 데이터에 대한 쓰기 요청시, 상기 복수의 비휘발성 메모리들 중 제 1 비휘발성 메모리로 프로그램 동작을 수행하기 위하여 상기 제 1 데이터를 상기 제 1 비휘발성 메모리의 페이지 버퍼에 기입하고, 상기 복수의 비휘발성 메모리들 중 제 2 비휘발성 메모리로 패리티를 발생하기 위한 패리티 동작을 수행하기 위하여 상기 제 1 데이터를 상기 제 2 비휘발성 메모리의 페이지 버퍼에 기입하고,
    제 2 데이터에 대한 쓰기 요청시, 상기 복수의 비휘발성 메모리들 중 제 3 비휘발성 메모리로 프로그램 동작을 수행하기 위하여 상기 제 2 데이터를 상기 제 3 비휘발성 메모리의 페이지 버퍼에 기입하고, 상기 복수의 비휘발성 메모리들 중 상기 제 2 비휘발성 메모리로 패리티를 발생하기 위한 패리티 동작을 수행하기 위하여 상기 제 2 데이터를 상기 제 2 비휘발성 메모리의 페이지 버퍼에 기입하는 저장 장치.
  9. 제 8 항에 있어서,
    상기 제 1, 제 2 및 제 3 비휘발성 메모리들 각각은 별도의 채널을 통하여 상기 메모리 제어기에 연결되는 저장 장치.
  10. 제 8 항에 있어서,
    읽기 요청시 상기 복수의 비휘발성 메모리들 중 어느 하나로부터 읽혀진 데이터에 대한 데이터 복원 여부를 판별하고, 상기 읽혀진 데이터에 대한 복원이 필요할 때 상기 읽혀진 데이터에 대응하는 패리티를 상기 복수의 비휘발성 메모리들 중 다른 하나로부터 읽어오고, 상기 읽혀진 패리티를 이용하여 상기 읽혀진 데이터를 복원하는 RAID(redundant arrays of independent disks) 엔진을 더 포함하는 저장 장치.
KR1020140149388A 2014-10-30 2014-10-30 저장 장치 및 그것의 동작 방법 KR102248207B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140149388A KR102248207B1 (ko) 2014-10-30 2014-10-30 저장 장치 및 그것의 동작 방법
US14/925,077 US9881696B2 (en) 2014-10-30 2015-10-28 Storage device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140149388A KR102248207B1 (ko) 2014-10-30 2014-10-30 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160053065A KR20160053065A (ko) 2016-05-13
KR102248207B1 true KR102248207B1 (ko) 2021-05-06

Family

ID=55852771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140149388A KR102248207B1 (ko) 2014-10-30 2014-10-30 저장 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US9881696B2 (ko)
KR (1) KR102248207B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134630A (en) 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US7047358B2 (en) 2001-12-26 2006-05-16 Boon Storage Technologies, Inc. High-performance log-structured RAID
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US20050273651A1 (en) 2004-05-18 2005-12-08 Aristos Logic Corporation Method of implementing XOR based raid algorithms
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US7721146B2 (en) 2006-05-04 2010-05-18 Dell Products L.P. Method and system for bad block management in RAID arrays
KR101245219B1 (ko) 2007-05-16 2013-03-19 삼성전자주식회사 메모리 셀 기입/독출 방법 및 페이지 버퍼
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US20090172335A1 (en) * 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US20100125695A1 (en) 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
KR20100111990A (ko) 2009-04-08 2010-10-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
US8176284B2 (en) 2009-08-11 2012-05-08 Texas Memory Systems, Inc. FLASH-based memory system with variable length page stripes including data protection information
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8307271B1 (en) 2009-09-17 2012-11-06 Emc Corporation Fast verification of data block cycle redundancy checks
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8751729B2 (en) 2010-12-23 2014-06-10 Samsung Electronics Co., Ltd. Flash memory device and memory system including the same
KR101736337B1 (ko) 2011-02-28 2017-05-30 삼성전자주식회사 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법
KR101751506B1 (ko) * 2011-03-28 2017-06-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법
KR101818671B1 (ko) 2011-04-19 2018-02-28 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법
KR20120129239A (ko) * 2011-05-19 2012-11-28 삼성전자주식회사 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
US20130019057A1 (en) 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
KR101842507B1 (ko) * 2011-10-06 2018-03-28 삼성전자주식회사 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 제어하는 방법
KR20130049332A (ko) 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR20130052971A (ko) 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
KR101858560B1 (ko) 2011-11-24 2018-05-18 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법과 상기 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법
KR20130060795A (ko) 2011-11-30 2013-06-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
JP2013131192A (ja) * 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
KR101917192B1 (ko) * 2012-03-12 2018-11-12 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 읽기 방법
KR101962786B1 (ko) * 2012-03-23 2019-03-27 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
KR20130114297A (ko) * 2012-04-09 2013-10-17 삼성전자주식회사 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치
KR20140013401A (ko) 2012-07-23 2014-02-05 삼성전자주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
KR101984900B1 (ko) 2012-07-24 2019-05-31 삼성전자 주식회사 메모리 장치 및 상기 메모리 장치의 독출 전압 결정 방법
JP2014082574A (ja) 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
KR102125371B1 (ko) 2012-12-04 2020-06-22 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 동작방법
KR102123946B1 (ko) 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
KR102094334B1 (ko) 2013-03-15 2020-03-27 삼성전자주식회사 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device

Also Published As

Publication number Publication date
KR20160053065A (ko) 2016-05-13
US20160124809A1 (en) 2016-05-05
US9881696B2 (en) 2018-01-30

Similar Documents

Publication Publication Date Title
KR102233074B1 (ko) 저장 장치 및 그것의 신뢰성 검증 방법
US9570176B2 (en) Nonvolatile memory device, storage device having the same, operating method thereof
CN107045462B (zh) 存储装置
US10116336B2 (en) Error correcting code adjustment for a data storage device
KR102277521B1 (ko) 저장 장치 및 그것의 리드 리클레임 및 읽기 방법
US20180102172A1 (en) Memory device and operating method of the memory device
KR102468751B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US9244767B1 (en) Data storage device with in-memory parity circuitry
CN106776352B (zh) 存储器系统和存储器系统的操作方法
TWI693607B (zh) 記憶體系統及記憶體系統的操作方法
KR102643658B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
US20160378595A1 (en) Controller, semiconductor memory system and operating method thereof
KR102603243B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
TWI720985B (zh) 記憶體系統及其操作方法
KR102503169B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
US11531615B2 (en) Controller and memory system for performing garbage collection operation, and operating method thereof
KR102475798B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN111145818B (zh) 存储器系统及其操作方法
CN110928486B (zh) 存储器系统及其操作方法
KR20170040466A (ko) 데이터 처리 시스템
KR102665270B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20200079811A (ko) 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템
CN112908370B (zh) 存储器装置和操作该存储器装置的方法
CN114356208A (zh) 存储器系统及其操作方法
US20210255941A1 (en) Controller and method of operating the same

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