KR101877824B1 - 보조 기억 장치 - Google Patents

보조 기억 장치 Download PDF

Info

Publication number
KR101877824B1
KR101877824B1 KR1020180017013A KR20180017013A KR101877824B1 KR 101877824 B1 KR101877824 B1 KR 101877824B1 KR 1020180017013 A KR1020180017013 A KR 1020180017013A KR 20180017013 A KR20180017013 A KR 20180017013A KR 101877824 B1 KR101877824 B1 KR 101877824B1
Authority
KR
South Korea
Prior art keywords
parity
individual
memory
controller
data
Prior art date
Application number
KR1020180017013A
Other languages
English (en)
Inventor
최영준
Original Assignee
엣센클라우드 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엣센클라우드 주식회사 filed Critical 엣센클라우드 주식회사
Priority to KR1020180017013A priority Critical patent/KR101877824B1/ko
Application granted granted Critical
Publication of KR101877824B1 publication Critical patent/KR101877824B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

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

Abstract

본 발명에 따른 보조 기억 장치는, 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하기 위해, 컨트롤러를 통해 개별 워드 선을 따라 데이터를 복수의 불활성 낸드 메모리 다이에 스트라이핑 라이트(striping write)할 때, 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(parity)를 생성시키며, 개별 불활성 낸드 메모리 다이에서 하나의 패러티 그룹의 복수의 페이지에 데이터와 패러티를 쓴 후 나머지 패러티 그룹의 복수의 페이지에 데이터와 패러티를 쓰도록 구성된다.

Description

보조 기억 장치{AUXILIARY MEMORY UNIT}
본 발명은 3차원 수직구조 낸드 플래시(3D vertical-NAND flash)로 이루어지고 데이터의 저장시 레이드(RAID; redundant array of inexpensive disks) 방식을 채택하는 반도체 칩을 저장매체(storage mass)로 사용하면서 컨트롤러(controller)를 통해 데이터에 대한 패러티(parity)의 생성시 컨트롤러에 구비된 에스램(SRAM)의 패러티 임시 저장 영역을 최소 할당시켜 반도체 칩의 에러 비트(error bit)를 구제하는 보조 기억 장치에 관한 것이다.
일반적으로, 보조 기억 장치는 주기억 장치(예를 들면, 코어 기억 장치나 개인용 컴퓨터의 ROM, RAM 등)의 기억 용량이 부족할 때 그것을 보조하기 위한 기억 장치이다. 여기서, 상기 보조 기억 장치는 하드 디스크 드라이브(hard disk drive; HDD) 또는 솔리드 스테이트 드라이브(solid state drive; SSD)를 많이 지칭하지만 발명의 전개를 위해 솔리드 스테이트 드라이브에 한정시켜 설명하기로 한다.
상기 솔리드 스테이트 드라이브는 반도체 메모리 칩을 저장매체로 사용한다. 상기 반도체 메모리 칩은 낸드 플래쉬(NAND Flash) 메모리 칩이다. 상기 낸드 플래쉬 메모리 칩은 전원이 꺼진 상태에서도 저장 영역에 쓰여진 데이터(data)를 보전하는 불휘발성 특성을 갖는다. 여기서, 상기 솔리드 스테이트 드라이브는 유저 호스트(user host)에 전기적으로 접속되어 내부에 구비되는 컨트롤러(controller)를 이용하여 유저 호스트와 반도체 메모리 칩의 데이터 교환을 중개한다.
또한, 상기 솔리드 스테이트 드라이브는 반도체 메모리 칩의 워드 라인(word line)에 대응되는 페이지(page; 낸드 플래쉬 메모리의 읽기 또는 쓰기의 단위)를 따라 페이지의 비트 영역(bit region)에 데이터를 기록하기 전, 컨트롤러를 통해, 패러티 생성 회로에서 페이지의 비트 영역에 기록하기 위한 데이터에 대해 패러티 연산(parity operation)을 수행하여 패러티(parity)를 생성하고 에스램의 패러티 임시 저장 영역에 패러티를 임시 저장한 후, 에스램으로부터 패러티를 인출하여 페이지에 데이터와 패러티를 계속해서 기록한다.
한편, 상기 솔리드 스테이트 드라이브는, 페이지에 데이터와 패러티를 기록한 후 페이지의 비트 영역에 발생된 비트 에러를 구제하는 종래기술로써, 한국 공개 특허 공보 제 10-2017-0015757 호에 발명의 명칭 '데이터 저장 장치 및 그것의 동작 방법'으로 개시되었다. 상기 종래 기술에서, 상기 솔리드 스테이트 드라이브는 2차원 평면구조 낸드 플래시(2D plane-NAND flash)로 이루어지고 데이터의 저장시 레이드(RAID; redundant array of inexpensive disks) 방식을 채택하는 두 개의 불활성 메모리 장치를 저장 매체로 사용한다.
상기 레이드 방식은 데이터를 페이지 단위로 분할하여 두 개의 불활성 메모리 장치에 분산 저장하도록 수행된다. 여기서, 상기 솔리드 스테이트 드라이브는 불활성 메모리 장치에서 페이지의 속성에 따라 페이지 마다 기록될 데이터에 대한 패러티를 생성한다. 상기 페이지의 속성은 블럭 오프셋, 플레인 오프셋, 페이지 오프셋, 워드 라인 오프셋, 및 셀 당 저장 비트 개수 중 적어도 두 개로 이루어진다. 그러나, 상기 솔리드 스테이트 드라이브는 불활성 메모리 장치의 2차원 평면구조 낸드 플레시 특성에 따라 컨트롤러를 통해 불활성 메모리 장치에서 복수의 페이지에 데이터를 입력 중지없이 순차적으로 기록해야 한다.
상기 복수의 페이지에 데이터의 기록을 위해, 상기 컨트롤러는 페이지 속성에 따라 에스램에 적어도 두 개의 패러티 임시 저장 영역을 구비하여 패러티 임시 저장 영역 마다 데이터에 대한 패러티를 생성한 후, 불활성 메모리 장치에서 복수의 페이지에 데이터의 순차적 기록과 함께 페이지의 속성에 따라 페이지에 패러티를 기록한다. 상기 패러티는 페이지에 기록된 데이터에서 시간 경과 후 에러 비트의 발생시 에러 비트의 구제를 위해 사용된다.
즉, 일 예로써, 상기 페이지 속성이 워드 라인 오프셋으로 이루어지는 때, 상기 컨트롤러는 에스램에 짝수 번째 워드 라인 관련한 제1 패러티 임시 저장 영역과 홀수 번째 워드 라인 관련한 제2 패러티 임시 저장 영역을 구비하여 불활성 메모리 장치에서 복수의 페이지에 순차적으로 기록될 데이터에 대한 짝수 번째 워드 라인 관련한 짝수 패러티와 홀수 번째 워드 라인 관련한 홀수 패러티를 제1 및 제2 패러티 임시 저장 영역에 각각 동시에 생성한 후, 에스램으로부터 짝수 및 홀수 패러티를 인출하여 불활성 메모리 장치에서 페이지에 데이터와 함께 짝수 및 홀수 패러티를 기록한다.
상기 제1 및 제2 패러티 임시 저장 영역은 에스램에서 패러티 임시 저장 영역의 개수 증가를 야기시키기 때문에 에스램의 가격 상승 및 저장 능력에 부담을 가중시킨다. 이와 유사하게, 다른 예로써, 상기 페이지 속성이 셀(cell)마다 하나의 워드 라인에 순차적으로 대응되는 두 개의 비트(bit)로 이루어지는 때, 상기 컨트롤러는 에스램에서 하나의 워드 라인에 대응되도록 제1 비트(LSB; least significant bit)에 관련한 상부 패러티 임시 저장 영역과 제2 비트(MSB; most significant bit)에 관련한 하부 패러티 임시 저장 영역을 구비해야 한다.
이 경우에, 상기 컨트롤러는 불활성 메모리 장치에서 복수의 페이지에 순차적으로 기록될 데이터에 대한 제1 비트(LSB) 관련한 상부 패러티와 제2 비트(MSB) 관련한 하부 패러티를 에스램의 상부 및 하부 패러티 임시 저장 영역에 각각 동시에 생성한 후, 에스램으로부터 상부 및 하부 패러티를 인출하여 불활성 메모리 장치에서 페이지에 데이터와 함께 상부 및 하부 패러티를 기록한다. 따라서, 상기 상부 및 하부 패러티 임시 저장 영역은 에스램에서 패러티 임시 저장 영역의 개수 증가를 야기시키기 때문에 에스램의 가격 상승 및 저장 능력에 부담을 가중시킨다.
만약에, 상기 페이지 속성이 셀마다 하나의 워드 라인에 순차적으로 대응되는 세 개의 페이지(LSB, CSB(center significant bit), MSB)로 이루어지는 때, 상기 에스램은 상부 및 중부 및 하부 패러티 임시 저장 영역을 가지기 때문에 가격 상승 및 저장 능력의 부담으로부터 자유로울 수 없다. 다시 한번 더 부연 설명하면, 상기 불활성 메모리 장치는 2차원 평면구조 낸드 플래시로 이루어지고 데이터의 저장시 레이드 방식을 채택한다.
상기 에스램에서 패러티 생성시 불활성 메모리 장치에서 페이지에 데이터의 순차적 기록 방식(=레이드 방식)에 의존하기 때문에, 상기 컨트롤러가 페이지 속성에 따라 복수의 페이지에 입력될 데이터를 구분한 후 에스램에 구분된 데이터 만을 공급하여 목적하는 패러티를 단속적으로 생성하지 못하므로, 상기 솔리드 스테이트 드라이브는 패러티의 속성에서 구성 요소의 증가에 따라 에스램의 사용에 부담을 갖는다.
한국 공개 특허 공보 제 10-2017-0015757 호
본 발명은, 종래의 문제점을 해결하기 위해 안출된 것으로, 낸드 플래시 특성을 갖는 불활성 메모리 장치(이하, '반도체 칩'으로 지칭함)에서 복수의 페이지를 따라 유저 호스트의 요청과 관련된 데이터를 레이드 방식으로 기록하기 전, 컨트롤러를 통해 반도체 칩의 페이지의 속성을 기준으로 데이터를 분할하여 에스램의 패러티 임시 저장 영역에 분할된 데이터를 입력시키면서 에스램의 패러티 임시 저장 영역에 패러티를 단속적으로 생성해도 페이지 속성에서 구성 요소의 증가에 따라 패러티 임시 저장 영역의 개수 증가를 요구하지 않는 보조 기억 장치를 제공하는데 그 목적이 있다.
본 발명에 따른 보조 기억 장치는, 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하도록, 개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고, 상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 상기 데이터에 대한 패러티(parity)를 생성시키며, 상기 개별 메모리 다이에서 하나의 패러티 그룹의 복수의 페이지에 데이터와 패러티를 쓴 후 나머지 패러티 그룹의 복수의 페이지에 데이터와 패러티를 쓰는 것을 특징으로 한다.
상기 패러티 그룹은 상기 동일 층에서 짝수 워드선들과 홀수 워드선들로 나누어 생성될 수 있다.
상기 개별 메모리 블럭은, 상기 개별 페이지와 개별 스트링(string)의 교차 영역에 셀(cell)을 포함하고, 상기 개별 페이지는 상기 개별 워드 선을 따라 복수의 셀을 포함하고, 상기 셀은 상기 데이터를 복수의 비트(bit)로 가지며, 상기 개별 워드 선은 셀 별로 상기 복수의 비트에 각각 대응되는 복수의 비트 페이지를 가지고, 상기 parity는 상기 개별 페이지에 저장될 수 있다.
상기 컨트롤러는 상기 개별 메모리 다이에서 상기 개별 워드 선의 상기 셀에 상기 복수의 비트 페이지를 연속적으로 쓸 수 있다.
상기 컨트롤러는 상기 개별 메모리 다이에서 하나의 비트 페이지를 쓴 후 나머지 비트 페이지를 순차적으로 쓸 수 있다.
또한, 본 발명에 따른 보조 기억 장치는, 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하도록, 개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고, 개별 페이지는 복수의 스트링(string)과 교차 영역에 복수의 셀(cell)을 가지면서 개별 셀에 상기 데이터를 복수의 비트(bit)로 저장하여 복수 타입의 비트 페이지(bit page)를 가지고, 상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 상기 데이터에 대한 패러티(parity)를 생성시키며, 상기 복수의 메모리 다이에서 상기 개별 워드 선에 대응되는 상기 개별 페이지에, 한 타입의 비트 페이지 별로 데이터와 패러티를 쓴 후 나머지 타입의 비트 페이지 별로 데이터와 패러티를 쓰는 것을 특징으로 한다.
상기 데이터가 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)될 때, 상기 개별 메모리 다이의 동일 층에서 인접한 워드 선들은 서로 다른 스트라이핑(striping) 그룹에 속할 수 있다.
또한, 본 발명에 따른 보조 기억 장치는, 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하도록, 개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고, 상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 상기 데이터에 대한 패러티(parity)를 생성시키며, 상기 개별 메모리 다이의 복수 층에서 개별 층 마다 상기 인접한 워드 선들에 순차적으로 동일하게 적용되는 패러티 그룹에 속하도록 상기 데이터에 대한 패러티를 생성시키는 것을 특징으로 한다.
상기 컨트롤러는 상기 개별 메모리 다이의 상기 복수 층 중 하나의 층에서 생성된 패러티를 외부 메모리에 옮겨둔 후 다음 층에서 상기 데이터를 쓰기 시작할 때 상기 하나의 층의 패러티 그룹의 패러티를 가져와서 패러티 연산을 수행할 수 있다.
상기 외부 메모리는 상기 컨트롤러 주변에 위치되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함할 수 있다.
상기 외부 메모리는, 상기 유저 호스트에 구비되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함하며 상기 다이내믹 랜덤 억세스 메모리의 일부를 할당하여 상기 컨트롤러를 통해 상기 반도체 칩과 상기 패러티를 주고 받을 수 있다.
또한, 본 발명에 따른 보조 기억 장치는, 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하도록, 개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고, 상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는, 개별 메모리 다이의 동일 층에서 개별 워드 선에 상기 데이터를 쓰고 패러티를 생성하고, 개별 메모리 다이의 복수 층에서 개별 층 마다 동일하게 반복되는 워드 선들을 포함하는 패러티 그룹을 구성하고, 상기 개별 메모리 다이의 상기 복수 층 중 하나의 층에서 생성된 패러티를 외부 메모리에 옮겨둔 후 다음 층에서 상기 데이터를 쓰기 시작할 때 상기 하나의 층의 패러티 그룹의 패러티를 가져와서 패러티 연산을 수행하는 것을 특징으로 한다.
상기 외부 메모리는 상기 컨트롤러 주변에 위치되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함할 수 있다.
상기 외부 메모리는, 상기 유저 호스트에 구비되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함하며 상기 다이내믹 랜덤 억세스 메모리의 일부를 할당하여 상기 컨트롤러를 통해 상기 반도체 칩과 상기 패러티를 주고 받을 수 있다.
본 발명에 따라, 반도체 칩의 내부에 복수의 메모리 다이(memory die), 개별 메모리 다이에 3차원으로 배열된 복수의 메모리 블럭(memory block), 개별 메모리 블럭에 하나의 층에서 2차원적으로 배열된 복수의 수직 NAND 채널, 그리고 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하므로,
본 발명은, 개별 메모리 블럭에 서로에 대해 전기적으로 고립된 복수의 수직 NAND 채널과 함께 개별 메모리 블럭 내 하나의 층(=동일한 수평 레벨에서 워드 선들로 이루어진 layer)에서 서로 전기적으로 연결된 인접한 워드 선을 가져 인접한 워드 선 간에 전기적 간섭을 배제시키므로, 컨트롤러를 통해 개별 메모리 블록 내 동일 층에서 짝수 워드 선과 홀수 워드 선에 데이터를 교차 쓰기하여 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 하기 위해, 컨트롤러를 통해 에스램에서 하나의 패러티 임시 저장 영역 만을 사용하여 데이터에 대한 패러티(parity)를 단속적으로 생성시킨 후 에스램의 패러티 임시 저장 영역에 짝수 워드 선의 패러티와 홀수 워드 선의 패러티를 소정 시간 간격으로 순차적 저장하여 에스램의 패러티 임시 저장 영역의 개수 증가를 요구하지 않는다.
본 발명은, 개별 메모리 블럭에 서로에 대해 전기적으로 고립된 복수의 수직 NAND 채널과 함께 개별 메모리 블럭 내 하나의 층에서 서로 전기적으로 연결된 인접한 워드 선을 가져 인접한 워드 선 간에 전기적 간섭을 배제시키므로, 컨트롤러를 통해 동일 층에서 짝수 워드 선과 홀수 워드 선에 데이터를 교차 쓰기하여 복수의 메모리 다이에서 하나의 셀에 비트 페이지 별로 데이터와 패러티를 쓴 후 나머지 셀에 비트 페이지 별로 데이터와 패러티를 쓰게 하기 위해, 컨트롤러를 통해 에스램에서 하나의 패러티 임시 저장 영역 만을 사용하여 데이터에 대한 패러티를 단속적으로 생성시킨 후 에스램의 패러티 임시 저장 영역에 하나의 셀 관련 패러티와 나머지 셀 관련 패러티를 소정 시간격으로 순차적 저장하여 에스램의 패러티 임시 저장 영역의 개수 증가를 요구하지 않는다.
도 1은 본 발명에 따른 보조 기억 장치를 보여주는 블럭도이다.
도 2는 도 1의 보조 기억 장치에서 반도체 칩의 내부에 하나의 메모리 다이를 개략적으로 보여주는 블럭도이다.
도 3은 도 2의 메모리 다이에서 메모리 블럭을 상세하게 2차원적으로 보여주는 회로도이다.
도 4는 도 2의 메모리 다이에서 메모리 블럭을 상세하게 3차원적으로 보여주는 회로도이다.
도 5는 도 1의 보조 기억 장치의 반도체 칩에서 복수의 메모리 다이에 적용되는 스트라이핑 라이트(striping write)를 개략적으로 보여주는 블럭도이다.
도 6 내지 8은 도 3의 메모리 블럭에서 동일 층에서 서로 다른 패러티 그룹(parity group)에 속하는 인접한 워드 선들을 개략적으로 보여주는 회로도이다.
도 9 및 10은 도 5의 복수의 메모리 다이에서 하나의 셀에 비트 페이지 별로 데이터와 패러티를 쓴 후 나머지 셀에 비트 페이지 별로 데이터와 패러티를 쓰는 블럭도이다.
도 11은 개별 메모리 다이의 복수 층에서 개별 층 마다 인접한 워드 선들에 순차적으로 동일하게 적용되는 패러티 그룹에 속하도록 데이터에 대한 패러티를 생성시키는 블럭도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭하며, 길이 및 면적, 두께 등과 그 형태는 편의를 위하여 과장되어 표현될 수도 있다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예(들)에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 보조 기억 장치를 보여주는 블럭도이다.
도 1을 참조하면, 본 발명에 따른 보조 기억 장치(120)는 컨트롤러(90)와 저장메체(110)를 포함할 수 있다. 상기 컨트롤러(90)는 유저 호스트(10)와 저장 매체(110) 사이의 데이터 교환을 제어할 수 있다. 상기 컨트롤러(90)는 프로세서(20), 디램(DRAM; 30), 에스램(SRAM; 40), ECC부(50), 호스트 인터페이스부(60) 및 저장매체 인터페이스부(70)를 포함한다.
상기 프로세서(20)는 컨트롤러(90)의 제반 동작을 제어할 수 있다. 상기 프로세서(1110)는 유저 호스트(10)의 요청에 따라 저장매체(110)에 데이터를 저장하고, 저장매체(110)로부터 저장된 데이터를 리드할 수 있다. 상기 프로세서(20)는 저장매체(110)를 효율적으로 관리하기 위해서 가비지 컬렉션 및 웨어 레벨링을 포함한 펌웨어(firm ware)의 동작을 제어할 수 있다.
상기 디램(30)은 프로세서(20)에 의해 사용되는 프로그램 및 프로그램 데이터를 저장할 수 있다. 상기 디램(30)은 호스트 인터페이스부(60)로부터 전송된 데이터를 저장메체(110)에 전달하기 전 임시 저장할 수 있고. 저장매체(110)로부터 전송된 데이터를 유저 호스트(10)로 전달하기 전 임시 저장할 수 있다. 상기 에스램(40)은 프로세서(10)에 의해 리드되는 프로그램 코드 및 데이터 저장용으로 사용할 수 있다.
상기 프로그램 코드는 프로세서(20)가 컨트롤러(90)의 내부 유닛들을 제어하기 위해서 프로세서(20)에 의해 처리되는 명령들을 포함할 수 있다. 상기 ECC부(50)는 저장매체(110)에 저장될 데이터를 인코딩하고, 저장매체(110)로부터 리드된 데이터를 디코딩할 수 있다. 상기 ECC부(50)는 ECC 알고리즘에 따라 데이터에 발생된 에러를 검출하고 정정할 수 있다.
상기 호스트 인터페이스부(60)는 유저 호스트(10)와 요청 및 데이터 등을 교환할 수 있다. 상기 저장매체 인터페이스부(70)는 저장매체(110)로 제어 신호 및 데이터를 전송할 수 있다. 상기 저장매체 인터페이스부(70)는 저장매체(110)로부터 데이터를 전송받을 수 있다. 상기 저장매체 인터페이스부(70)는 저장매체(110)와 복수의 채널들(CH0~CHn)을 통해 연결될 수 있다.
상기 저장매체(110)는 복수의 반도체 칩(100)을 포함할 수 있다. 여기서, 상기 컨트롤러(90)는 버스 라인(80)을 통해 프로세서(20), 디램(DRAM; 30), 에스램(SRAM; 40), ECC부(50), 호스트 인터페이스부(60) 및 저장매체 인터페이스부(70)를 전기적으로 서로 연결한다.
도 2는 도 1의 보조 기억 장치에서 반도체 칩의 내부에 하나의 메모리 다이를 개략적으로 보여주는 블럭도이고, 도 3은 도 2의 메모리 다이에서 메모리 블럭을 상세하게 2차원적으로 보여주는 회로도이다.
또한, 도 4는 도 2의 메모리 다이에서 메모리 블럭을 상세하게 3차원적으로 보여주는 회로도이고, 도 5는 도 1의 보조 기억 장치의 반도체 칩에서 복수의 메모리 다이에 적용되는 스트라이핑 라이트(striping write)를 개략적으로 보여주는 블럭도이다.
도 2 내지 도 5를 참조하면, 상기 보조 기억 장치(120)는 컨트롤러(controller)를 통해 유저 호스트(user host; 10)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip; 도 1의 100)의 동작을 관장한다. 여기서, 개별 반도체 칩(100)은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함한다. 상기 복수의 메모리 다이는 본 발명의 설명을 단순화시키기 위해 도 2에 하나만 도시한다.
개별 메모리 다이는 도 2 내지 도 4와 같이 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함한다. 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line; WL)을 도 3 및 도 4와 같이 포함한다. 여기서, 상기 복수의 워드 선(WL)은 도 4에서 하나의 층(layer)에 4개의 워드 선(a, b, c, d)만을 도시하였지만 4개의 워드 선 이상일 수 있다.
이후로, 상기 4개의 워드 선(a, b, c, d)은 본 발명을 한정하여 설명할 때 계속 사용된다. 한편, 상기 복수의 워드 선(WL)은 동일한 층(layer)에서 전기적으로 서로 접속할 수 있다. 개별 워드 선(WL)은 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 도 2 및 도 3과 같이 갖는다. 개별 페이지는 데이터 영역(data area)과 스페어 영역(spare area)을 포함한다. 여기서, 상기 개별 메모리 블럭은, 도 3과 같이 개별 페이지와 개별 스트링(string)의 교차 영역에 셀(cell)을 포함한다.
상기 개별 페이지는 개별 워드 선(WL)을 따라 복수의 셀(cell)을 포함한다. 한편, 상기 스트라이핑 라이트는 도 5와 같이 복수의 메모리 다이(Die 0, Die 1,..., Die N)에서 개별 워드 선(WL)에 대응되는 페이지를 따라 데이터를 쓰도록 수행된다.
도 6 내지 8은 도 3의 메모리 블럭에서 동일 층에서 서로 다른 패러티 그룹(parity group)에 속하는 인접한 워드 선들을 개략적으로 보여주는 회로도이다. 여기서, 도 6 내지 8은 도 2 내지 도 5를 참조하여 설명하기로 한다. 또한, 상기 패러티는 '해결하고자 하는 과제'와'본 발명의 효과'에 상세하게 기재된 바와 같이 솔리드 스테이트 드라이브의 컨트롤러를 사용하여 컨트롤러의 내부에 구비되는 에스램에서 하나의 패러티 임시 저장 영역에 형성된다. 따라서, 상기 에스램에서 패러티의 생성은 컨트롤러의 동작을 통해 수행되므로 컨트롤러에 의해 에스램의 설명을 갈음한다.
도 6을 참조하면, 상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는 동일 층(layer)에서 인접한 워드 선들(Oa, Ob, Oc, Od)을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(Parity 1 또는 Parity 2)를 생성시키며, 개별 메모리 다이에서 하나의 패러티 그룹의 복수의 페이지에 데이터와 패러티(Parity 1)를 쓴 후 나머지 패러티 그룹의 복수의 페이지에 데이터와 패러티(Parity 2)를 쓴다.
여기서, 상기 패러티 그룹은 동일 층(layer)에서 짝수 워드선들(0a, 0c)과 홀수 워드선들(0b, 0d)로 나누어 생성된다.
도 7을 참조하면, 상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는 동일 층(layer)에서 인접한 워드 선들(Oa, Ob, Oc, Od)을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(Even LSB Parity, Odd LSB Parity, Even CSB Parity, Odd CSB Parity, Even MSB Parity 또는 Odd MSB Parity)를 생성시키며, 개별 메모리 다이에서 하나의 패러티 그룹의 복수의 페이지에 데이터와 패러티(Even LSB Parity)를 쓴 후 나머지 패러티 그룹의 복수의 페이지에 데이터와 패러티(Odd LSB Parity, Even CSB Parity, Odd CSB Parity, Even MSB Parity, Odd MSB Parity)를 쓴다.
여기서, 상기 개별 페이지는 개별 워드 선(WL)을 따라 복수의 셀을 포함한다. 상기 셀은 데이터를 복수의 비트(bit)로 갖는다. 상기 개별 워드 선(WL)은 셀 별로 복수의 비트에 각각 대응되는 복수의 비트 페이지를 가지고, 상기 패러티(Even LSB Parity, Odd LSB Parity, Even CSB Parity, Odd CSB Parity, Even MSB Parity 또는 Odd MSB Parity)는 개별 페이지에 저장된다.
또한, 상기 컨트롤러(90)는 개별 메모리 다이에서 개별 워드 선(WL)의 셀에 복수의 비트 페이지를 연속적으로 쓴다.
도 8을 참조하면, 상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는 동일 층(layer)에서 인접한 워드 선들(Oa, Ob, Oc, Od)을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(Parity 0a(LSB, CSB 또는 MSB), Parity 0b(LSB, CSB 또는 MSB), Parity 0c(LSB, CSB 또는 MSB) 또는 Parity 0d(LSB, CSB 또는 MSB))를 생성시키며, 개별 메모리 다이에서 하나의 패러티 그룹의 복수의 페이지에 데이터와 패러티(Parity 0a(LSB, CSB 또는 MSB))를 쓴 후 나머지 패러티 그룹의 복수의 페이지에 데이터와 패러티(Parity 0b(LSB, CSB 또는 MSB), Parity 0c(LSB, CSB 또는 MSB) 또는 Parity 0d(LSB, CSB 또는 MSB))를 쓴다.
여기서, 상기 개별 페이지는 개별 워드 선(WL)을 따라 복수의 셀을 포함한다. 상기 셀은 데이터를 복수의 비트(bit)로 갖는다. 상기 개별 워드 선(WL)은 셀 별로 복수의 비트에 각각 대응되는 복수의 비트 페이지를 가지고, 상기 패러티(Parity 0a(LSB, CSB 또는 MSB), Parity 0b(LSB, CSB 또는 MSB), Parity 0c(LSB, CSB 또는 MSB) 또는 Parity 0d(LSB, CSB 또는 MSB))는 개별 페이지에 저장된다.
또한, 상기 컨트롤러는 개별 메모리 다이에서 하나의 비트 페이지를 쓴 후 나머지 비트 페이지를 순차적으로 쓴다.
도 9 및 10은 도 5의 복수의 메모리 다이에서 하나의 셀에 비트 페이지 별로 데이터와 패러티를 쓴 후 나머지 셀에 비트 페이지 별로 데이터와 패러티를 쓰는 블럭도이다. 여기서, 도 9 및 10은 도 2 내지 도 5를 참조하여 설명하기로 한다. 또한, 상기 패러티는 '해결하고자 하는 과제'와'본 발명의 효과'에 상세하게 기재된 바와 같이 솔리드 스테이트 드라이브의 컨트롤러를 사용하여 컨트롤러의 내부에 구비되는 에스램에서 하나의 패러티 임시 저장 영역에 형성된다. 따라서, 상기 에스램에서 패러티의 생성은 컨트롤러의 동작을 통해 수행되므로 컨트롤러에 의해 에스램의 설명을 갈음한다.
도 9를 참조하면, 개별 페이지는 복수의 스트링(string)과 교차 영역에 복수의 셀(cell)을 가지면서 개별 셀에 데이터를 복수의 비트(bit)로 저장하여 복수 타입의 비트 페이지(a plurality of bit page)를 갖는다.
상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는 동일 층(layer)에서 인접한 워드 선들(0a, 0b, 0c, 0d)을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(Even W/L 3-page parity 또는 Odd W/L 3-page parity)를 생성시키며, 복수의 메모리 다이에서 개별 워드 선에 대응되는 개별 페이지에, 한 타입(one type)의 비트 페이지 별로 데이터와 패러티(Even W/L 3-page parity)를 쓴 후 나머지 타입(the remaining type)의 비트 페이지 별로 데이터와 패러티(Odd W/L 3-page parity)를 쓴다.
도 10을 참조하면, 개별 페이지는 복수의 스트링(string)과 교차 영역에 복수의 셀(cell)을 가지면서 개별 셀에 데이터를 복수의 비트(bit)로 저장하여 복수 타입의 비트 페이지(bit page)를 갖는다.
상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는 동일 층(layer)에서 인접한 워드 선들(0a, 0b, 0c, 0d)을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(Parity 0a, Parity 0b, Parity 0c 또는 Parity 0d)를 생성시키며, 복수의 메모리 다이에서 개별 워드 선에 대응되는 개별 페이지에, 한 타입의 비트 페이지 별로 데이터와 패러티(Parity 0a)를 쓴 후 나머지 타입의 비트 페이지 별로 데이터와 패러티(Parity 0b, Parity 0c 또는 Parity 0d)를 쓴다.
여기서, 상기 데이터가 복수의 메모리 다이에 스트라이핑 라이트(striping write)될 때, 상기 개별 메모리 다이의 동일 층(layer)에서 인접한 워드 선들(0a, 0b, 0c, 0d)은 서로 다른 스트라이핑(striping) 그룹에 속한다.
도 11은 개별 메모리 다이의 복수 층에서 개별 층 마다 인접한 워드 선들에 순차적으로 동일하게 적용되는 패러티 그룹에 속하도록 데이터에 대한 패러티를 생성시키는 블럭도이다. 여기서, 도 11은 도 2 내지 도 5를 참조하여 설명하기로 한다. 또한, 상기 패러티는 '해결하고자 하는 과제'와' 본 발명의 효과'에 상세하게 기재된 바와 같이 솔리드 스테이트 드라이브의 컨트롤러를 사용하여 컨트롤러의 내부에 구비되는 에스램에서 하나의 패러티 임시 저장 영역에 형성된다. 따라서, 상기 에스램에서 패러티의 생성은 컨트롤러의 동작을 통해 수행되므로 컨트롤러에 의해 에스램의 설명을 갈음한다.
도 11을 참조하면, 상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는 동일 층(layer)에서 인접한 워드 선들(0a, 0b, 0c, 0d)을 서로 다른 패러티 그룹(parity group)에 속하도록 데이터에 대한 패러티(Parity a copy, Parity b copy, Parity c copy 또는 Parity d copy)를 생성시키며, 개별 메모리 다이의 복수 층(layer)에서 개별 층(layer) 마다 인접한 워드 선들(0a, 0b, 0c, 0d)에 순차적으로 동일하게 적용되는 패러티 그룹에 속하도록 데이터에 대한 패러티(Parity a copy, Parity b copy, Parity c copy 또는 Parity d copy)를 생성시킨다.
상기 컨트롤러(90)는 개별 메모리 다이의 복수 층(layer) 중 하나의 층(layer)에서 생성된 패러티를 외부 메모리에 옮겨둔 후 다음 층(layer)에서 데이터를 쓰기 시작할 때 하나의 층(layer)의 패러티 그룹의 패러티를 가져와서 패러티 연산을 수행한다. 상기 외부 메모리는 컨트롤러(90) 주변에 위치되는 다이내믹 랜덤 억세스 메모리(DRAM; 30)를 포함한다. 변형 예로써, 상기 외부 메모리는, 유저 호스트(10)에 구비되는 다이내믹 랜덤 억세스 메모리(DRAM; 도면에 미 도시)를 포함하며 다이내믹 랜덤 억세스 메모리의 일부를 할당하여 컨트롤러(90)를 통해 반도체 칩(100)과 패러티를 주고 받는다.
이와 유사하게, 상기 컨트롤러(90)를 통해 개별 워드 선(WL)을 따라 데이터를 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러(90)는, 개별 메모리 다이의 동일 층(layer)에서 개별 워드 선(WL)에 데이터를 쓰고 패러티를 생성하고, 개별 메모리 다이의 복수 층(layer)에서 개별 층(layer) 마다 동일하게 반복되는 워드 선(WL)들을 포함하는 패러티 그룹을 구성한다.
또한, 상기 컨트롤러(90)는 개별 메모리 다이의 복수 층(layer) 중 하나의 층(layer)에서 생성된 패러티(Parity a copy, Parity b copy, Parity c copy 또는 Parity d copy)를 외부 메모리에 옮겨둔 후 다음 층(layer)에서 데이터를 쓰기 시작할 때 하나의 층(layer)의 패러티 그룹의 패러티(Parity a copy, Parity b copy, Parity c copy 또는 Parity d copy)를 가져와서 패러티 연산을 수행한다.
여기서, 상기 외부 메모리는 컨트롤러(90) 주변에 위치되는 다이내믹 랜덤 억세스 메모리(DRAM; 10)를 포함한다. 변형 예로써, 상기 외부 메모리는, 유저 호스트(10)에 구비되는 다이내믹 랜덤 억세스 메모리(DRAM; 도면에 미 도시)를 포함하며 다이내믹 랜덤 억세스 메모리의 일부를 할당하여 컨트롤러(90)를 통해 반도체 칩(100)과 패러티(Parity a copy, Parity b copy, Parity c copy 또는 Parity d copy)를 주고 받는다.
layer; 층, 0a, 0b, 0c, 0d; 워드 라인
parity; 패러티.

Claims (14)

  1. 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하는 보조 기억 장치에 있어서,
    개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고,
    상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 상기 데이터에 대한 패러티(parity)를 생성시키며, 상기 개별 메모리 다이에서 하나의 패러티 그룹의 복수의 페이지에 데이터와 패러티를 쓴 후 나머지 패러티 그룹의 복수의 페이지에 데이터와 패러티를 쓰는 보조 기억 장치.
  2. 제1 항에 있어서,
    상기 패러티 그룹은 상기 동일 층에서 짝수 워드선들과 홀수 워드선들로 나누어 생성되는 보조 기억 장치.
  3. 제1 항에 있어서,
    상기 개별 메모리 블럭은,
    상기 개별 페이지와 개별 스트링(string)의 교차 영역에 셀(cell)을 포함하고,
    상기 개별 페이지는 상기 개별 워드 선을 따라 복수의 셀을 포함하고,
    상기 셀은 상기 데이터를 복수의 비트(bit)로 가지며,
    상기 개별 워드 선은 셀 별로 상기 복수의 비트에 각각 대응되는 복수의 비트 페이지를 가지고,
    상기 parity는 상기 개별 페이지에 저장되는 보조 기억 장치.
  4. 제3 항에 있어서,
    상기 컨트롤러는 상기 개별 메모리 다이에서 상기 개별 워드 선의 상기 셀에 상기 복수의 비트 페이지를 연속적으로 쓰는 보조 기억 장치.
  5. 제3 항에 있어서,
    상기 컨트롤러는 상기 개별 메모리 다이에서 하나의 비트 페이지를 쓴 후 나머지 비트 페이지를 순차적으로 쓰는 보조 기억 장치.
  6. 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하는 보조 기억 장치에 있어서,
    개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고,
    개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고, 개별 페이지는 복수의 스트링(string)과 교차 영역에 복수의 셀(cell)을 가지면서 개별 셀에 상기 데이터를 복수의 비트(bit)로 저장하여 복수 타입의 비트 페이지(bit page)를 가지고,
    상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 상기 데이터에 대한 패러티(parity)를 생성시키며, 상기 복수의 메모리 다이에서 상기 개별 워드 선에 대응되는 상기 개별 페이지에, 한 타입의 비트 페이지 별로 데이터와 패러티를 쓴 후 나머지 타입의 비트 페이지 별로 데이터와 패러티를 쓰는 보조 기억 장치.
  7. 제6 항에 있어서,
    상기 데이터가 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)될 때,
    상기 개별 메모리 다이의 동일 층에서 인접한 워드 선들은 서로 다른 스트라이핑(striping) 그룹에 속하는 보조 기억 장치.
  8. 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하는 보조 기억 장치에 있어서,
    개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고,
    상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는 동일 층에서 인접한 워드 선들을 서로 다른 패러티 그룹(parity group)에 속하도록 상기 데이터에 대한 패러티(parity)를 생성시키며, 상기 개별 메모리 다이의 복수 층에서 개별 층 마다 상기 인접한 워드 선들에 순차적으로 동일하게 적용되는 패러티 그룹에 속하도록 상기 데이터에 대한 패러티를 생성시키고, 상기 개별 메모리 다이의 상기 복수 층 중 하나의 층에서 생성된 패러티를 외부 메모리에 옮겨둔 후 다음 층에서 상기 데이터를 쓰기 시작할 때 상기 하나의 층의 패러티 그룹의 패러티를 가져와서 패러티 연산을 수행하는 보조 기억 장치.
  9. 삭제
  10. 제8 항에 있어서,
    상기 외부 메모리는 상기 컨트롤러 주변에 위치되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함하는 보조 기억 장치.
  11. 제8 항에 있어서,
    상기 외부 메모리는,
    상기 유저 호스트에 구비되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함하며 상기 다이내믹 랜덤 억세스 메모리의 일부를 할당하여 상기 컨트롤러를 통해 상기 반도체 칩과 상기 패러티를 주고 받는 보조 기억 장치.
  12. 컨트롤러(controller)를 통해 유저 호스트(user host)의 요청된 명령을 처리하여 복수의 반도체 칩(semiconductor chip)의 동작을 관장하는 보조 기억 장치에 있어서,
    개별 반도체 칩은 서로에 대해 전기적으로 접속하는 복수의 메모리 다이(memory die)를 포함하고, 개별 메모리 다이는 3차원으로 배열되어 이루어진 복수의 메모리 블럭(memory block)을 포함하고, 개별 메모리 블럭은 2차원적으로 배열된 복수의 수직 NAND 채널을 가지면서 개별 수직 NAND 채널을 따라 순차적으로 적층되는 복수의 워드 선(word line)을 포함하고, 개별 워드 선은 상기 유저 호스트의 요청된 명령과 관련된 데이터(date)의 읽기 또는 쓰기 단위로서 페이지(page)를 복수 개로 가지고,
    상기 컨트롤러를 통해 상기 개별 워드 선을 따라 상기 데이터를 상기 복수의 메모리 다이에 스트라이핑 라이트(striping write)할 때, 상기 컨트롤러는, 개별 메모리 다이의 동일 층에서 개별 워드 선에 상기 데이터를 쓰고 패러티를 생성하고, 개별 메모리 다이의 복수 층에서 개별 층 마다 동일하게 반복되는 워드 선들을 포함하는 패러티 그룹을 구성하고, 상기 개별 메모리 다이의 상기 복수 층 중 하나의 층에서 생성된 패러티를 외부 메모리에 옮겨둔 후 다음 층에서 상기 데이터를 쓰기 시작할 때 상기 하나의 층의 패러티 그룹의 패러티를 가져와서 패러티 연산을 수행하는 보조 기억 장치.
  13. 제12 항에 있어서,
    상기 외부 메모리는 상기 컨트롤러 주변에 위치되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함하는 보조 기억 장치.
  14. 제12 항에 있어서,
    상기 외부 메모리는,
    상기 유저 호스트에 구비되는 다이내믹 랜덤 억세스 메모리(DRAM)를 포함하며 상기 다이내믹 랜덤 억세스 메모리의 일부를 할당하여 상기 컨트롤러를 통해 상기 반도체 칩과 상기 패러티를 주고 받는 보조 기억 장치.


KR1020180017013A 2018-02-12 2018-02-12 보조 기억 장치 KR101877824B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180017013A KR101877824B1 (ko) 2018-02-12 2018-02-12 보조 기억 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180017013A KR101877824B1 (ko) 2018-02-12 2018-02-12 보조 기억 장치

Publications (1)

Publication Number Publication Date
KR101877824B1 true KR101877824B1 (ko) 2018-07-12

Family

ID=62919713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180017013A KR101877824B1 (ko) 2018-02-12 2018-02-12 보조 기억 장치

Country Status (1)

Country Link
KR (1) KR101877824B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015018451A (ja) * 2013-07-11 2015-01-29 株式会社東芝 メモリコントローラ、記憶装置およびメモリ制御方法
US20160004596A1 (en) * 2014-07-07 2016-01-07 Sandisk Technologies Inc. Data storage device with in-memory parity circuitry
KR20160050961A (ko) * 2014-10-31 2016-05-11 에스케이하이닉스 주식회사 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
KR20160097657A (ko) * 2015-02-09 2016-08-18 에스케이하이닉스 주식회사 데이터 저장 장치 그리고 그것의 동작 방법
KR20170083386A (ko) * 2016-01-08 2017-07-18 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US20170293527A1 (en) * 2016-04-12 2017-10-12 Apple Inc. Data recovery in memory having multiple failure modes
KR20180008219A (ko) * 2016-07-15 2018-01-24 삼성전자주식회사 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015018451A (ja) * 2013-07-11 2015-01-29 株式会社東芝 メモリコントローラ、記憶装置およびメモリ制御方法
US20160004596A1 (en) * 2014-07-07 2016-01-07 Sandisk Technologies Inc. Data storage device with in-memory parity circuitry
KR20160050961A (ko) * 2014-10-31 2016-05-11 에스케이하이닉스 주식회사 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
KR20160097657A (ko) * 2015-02-09 2016-08-18 에스케이하이닉스 주식회사 데이터 저장 장치 그리고 그것의 동작 방법
KR20170083386A (ko) * 2016-01-08 2017-07-18 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US20170293527A1 (en) * 2016-04-12 2017-10-12 Apple Inc. Data recovery in memory having multiple failure modes
KR20180008219A (ko) * 2016-07-15 2018-01-24 삼성전자주식회사 Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법

Similar Documents

Publication Publication Date Title
US10732847B2 (en) Optimistic read operation
CN108694128B (zh) 存储器***和用于数据存储的方法
US20210157673A1 (en) Redundant array of independent nand for a three-dimensional memory array
US10929285B2 (en) Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer
US10372603B2 (en) Handling of unaligned writes
US11287992B2 (en) Controller and storage device including controller and nonvolatile memory devices
EP2106587B1 (en) Programming management data for nand memories
US11836354B2 (en) Distribution of logical-to-physical address entries across multiple memory areas
US9905294B1 (en) Writing logically offset pages of data to N-level memory cells coupled to a common word line
KR20170064992A (ko) 중복제거를 위한 어드레스 매핑을 포함하는 플래시 메모리 장치 및 그 동작 방법
US11138069B2 (en) Providing additional parity for non-standard sized parity data sets
US20180211707A1 (en) Semiconductor memory device and method of controlling semiconductor memory device
US10713157B2 (en) Storage system and method for improving read performance using multiple copies of a logical-to-physical address table
KR20180045220A (ko) 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템
US11442666B2 (en) Storage system and dual-write programming method with reverse order for secondary block
US11334481B2 (en) Staggered garbage collection unit (GCU) allocation across dies
US10896002B2 (en) Reverse directory structure in a garbage collection unit (GCU)
US9620201B1 (en) Storage system and method for using hybrid blocks with sub-block erase operations
KR101877824B1 (ko) 보조 기억 장치
US11972155B2 (en) System and apparatus for redundant array of independent disks striping against programming failures
US11455118B1 (en) Method for redundant array of independent disks striping against programming failures and apparatus thereof
US11429663B2 (en) Storage system and method for host-assisted memory block color coding for faster media search
US11640336B2 (en) Fast cache with intelligent copyback
US20240220169A1 (en) System and apparatus for redundant array of independent disks striping against programming failures
US11645003B2 (en) Memory system generating parity data based on written data and control method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant