KR20130114297A - 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치 - Google Patents

솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치 Download PDF

Info

Publication number
KR20130114297A
KR20130114297A KR1020120036509A KR20120036509A KR20130114297A KR 20130114297 A KR20130114297 A KR 20130114297A KR 1020120036509 A KR1020120036509 A KR 1020120036509A KR 20120036509 A KR20120036509 A KR 20120036509A KR 20130114297 A KR20130114297 A KR 20130114297A
Authority
KR
South Korea
Prior art keywords
physical
physical page
nth
data
nonvolatile memory
Prior art date
Application number
KR1020120036509A
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 KR1020120036509A priority Critical patent/KR20130114297A/ko
Priority to US13/828,138 priority patent/US20130268724A1/en
Publication of KR20130114297A publication Critical patent/KR20130114297A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

솔리드 스테이트 드라이브는 제1 내지 제N 비휘발성 메모리 장치들 및 RAID 컨트롤러를 포함한다. 제1 내지 제N 비휘발성 메모리 장치들 각각은 복수의 물리 페이지들을 구비하는 메모리 셀 어레이를 포함한다. RAID 컨트롤러는 제1 내지 제(N-1) 물리 페이지 데이터들에 대해 패러티 연산을 수행하여 제N 물리 페이지 데이터를 생성하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 각각으로부터 서로 상이한 비트 에러율을 갖는 물리 페이지를 하나씩 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고, 상기 제1 내지 제N 물리 페이지 데이터들을 상기 제1 내지 제N 물리 페이지들에 각각 저장한다. 솔리드 스테이트 드라이브는 데이터 복원률을 향상시킬 수 있다.

Description

솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치{SOLID STATE DRIVE AND ELECTRONIC DEVICE HAVING THE SAME}
본 발명은 솔리드 스테이트 드라이브(Solid State Drive; SSD)에 관한 것으로, 보다 상세하게는 RAID(Redundant Array of Independent Disks) 구성을 갖는 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치에 관한 것이다.
컴퓨터 시스템들과 같은 전자 시스템들의 데이터 저장 장치로서 자기 디스크들이 전통적으로 사용되었다. 그러나, 반도체 기술의 발전에 따라 컴퓨터 시스템들과 휴대용 장치들에서 자기 디스크 대신 플래시 메모리(예를 들어, NAND-타입 플래시 메모리)를 데이터 저장 장치로서 사용하는 솔리드 스테이트 드라이브(Solid State Drive; SSD)가 점차 사용되는 추세이다.
솔리드 스테이트 드라이브는 하드 디스크 드라이브(Hard Disk Drive; HDD)에서 필수적으로 사용되는 모터와 같은 기계적인 구동 장치를 포함하고 있지 않으므로, 동작 시 열과 소음이 거의 발생하지 않는다. 또한, 솔리드 스테이트 드라이브는 고속 액세스(fast access rate), 고집적도 및 외부 충격에 대한 안정성 때문에 데이터 저장 장치로서 선호되고 있다. 게다가, 솔리드 스테이트 드라이브의 데이터 전송 속도는 하드 디스크 드라이브의 데이터 전송 속도 보다 상당히 빠르다.
이러한 솔리드 스테이트 드라이브의 안정성 및 속도를 보다 향상시키기 위해, 솔리드 스테이트 드라이브는 RAID(Redundant Array of Independent Disks) 구성을 가질 수 있다.
RAID 구성은 여러 개의 독립적인 디스크들을 모아서 하나의 저장 장치를 형성하고 데이터를 각 디스크들에 분산하여 저장한다. 호스트 시스템에는 여러 개의 독립적인 디스크들이 마치 하나의 디스크처럼 보이게 함으로써 대용량 저장 장치의 구현이 가능하고, 각 디스크들에 대한 데이터의 입출력이 동시에 수행됨으로써 데이터 입출력 속도를 향상시킬 수 있다. 또한, 각 디스크들에 저장되는 데이터들에 대한 패러티(parity) 데이터를 함께 저장함으로써, 일부 디스크에 물리적인 에러가 발생하는 경우에도 패러티 데이터를 사용하여 손상된 데이터를 자동으로 복구할 수 있으므로 데이터 안정성을 향상시킬 수 있다.
그러나, 플래시 메모리의 경우 페이지들 간에 비트 에러율(Bit Error Rate; BER)이 서로 상이하므로, RAID 구성을 갖는 솔리드 스테이트 드라이브에 있어서 페이지들 간의 데이터 복원률이 서로 상이하다는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 데이터 복원률을 향상시킬 수 있는 RAID 구성의 솔리드 스테이트 드라이브를 제공하는 것이다.
본 발명의 다른 목적은 상기 솔리드 스테이트 드라이브를 포함하는 전자 장치를 제공하는 것이다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브는 제1 내지 제N 비휘발성 메모리 장치들 및 RAID(Redundant Array of Independent Disks) 컨트롤러를 포함한다. 상기 제1 내지 제N 비휘발성 메모리 장치들 각각은 복수의 물리 페이지들을 구비하는 메모리 셀 어레이를 포함한다. 상기 RAID 컨트롤러는 제1 내지 제(N-1) 물리 페이지 데이터들에 대해 패러티 연산을 수행하여 제N 물리 페이지 데이터를 생성하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 각각으로부터 서로 상이한 비트 에러율을 갖는 물리 페이지를 하나씩 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고, 상기 제1 내지 제N 물리 페이지 데이터들을 상기 제1 내지 제N 물리 페이지들에 각각 저장한다.
일 실시예에 있어서, 상기 제1 내지 제N 비휘발성 메모리 장치들에 포함되는 플래시 메모리 셀 어레이들 각각은 기판 상에 삼차원 구조로 형성되고, 상기 기판에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들에 연결되는 상기 복수의 물리 페이지들을 포함할 수 있다.
상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 기판으로부터 서로 상이한 높이의 워드 라인에 연결될 수 있다.
상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 일부의 물리 페이지는 제1 높이의 워드 라인에 연결되고, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 나머지 물리 페이지는 제2 높이의 워드 라인에 연결될 수 있다.
상기 RAID 컨트롤러는 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 일부 비휘발성 메모리 장치들에 대해서는 최저 높이의 워드 라인에 연결되는 물리 페이지로부터 최고 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 나머지 비휘발성 메모리 장치들에 대해서는 최고 높이의 워드 라인에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
일 실시예에 있어서, 상기 RAID 컨트롤러는 외부로부터 수신되는 데이터를 버퍼링하여 상기 제1 내지 제(N-1) 물리 페이지 데이터들을 출력하는 버퍼 메모리, 상기 제1 내지 제(N-1) 물리 페이지 데이터들에 대해 상기 패러티 연산을 수행하여 상기 제N 물리 페이지 데이터를 생성하는 패러티 생성부 및 상기 물리 페이지 그룹을 결정하고, 상기 제1 내지 제N 물리 페이지 데이터들을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들에 각각 저장하는 제어부를 포함할 수 있다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브는 제1 내지 제N 비휘발성 메모리 장치들 및 RAID 컨트롤러를 포함한다. 상기 제1 내지 제N 비휘발성 메모리 장치들 각각은 복수의 물리 페이지들을 구비하고, 상기 복수의 물리 페이지들 각각이 제1 내지 제M 레벨의 논리 페이지들을 갖는 메모리 셀 어레이를 포함한다. 상기 RAID 컨트롤러는 제1 내지 제(N-1) 논리 페이지 데이터들에 대해 패러티 연산을 수행하여 제N 논리 페이지 데이터를 생성하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 각각으로부터 하나의 물리 페이지를 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 각각으로부터 서로 상이한 레벨의 논리 페이지를 하나씩 선택하고, 상기 제1 내지 제N 논리 페이지 데이터들을 상기 제1 내지 제N 물리 페이지들로부터 상기 선택된 논리 페이지에 각각 저장한다.
일 실시예에 있어서, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들로부터 하나씩 선택되는 논리 페이지들 각각은 상기 제1 내지 제M 레벨 중에서 선택되는 두 레벨 중의 어느 한 레벨을 가질 수 있다.
일 실시예에 있어서, 상기 제1 내지 제N 비휘발성 메모리 장치들에 포함되는 플래시 메모리 셀 어레이들 각각은 기판에 수평한 방향으로 형성되는 이차원 구조를 갖고, 상기 기판에 수평한 방향으로 순차적으로 형성되는 복수의 워드 라인들에 연결되는 상기 복수의 물리 페이지들을 포함할 수 있다.
상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 각각은 상기 복수의 워드 라인들 중에서 상기 기판에 수평한 방향으로 동일한 순서에 형성되는 워드 라인에 연결될 수 있다.
상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 복수의 워드 라인들 중에서 상기 기판에 수평한 방향으로 서로 상이한 순서에 형성되는 워드 라인에 연결될 수 있다.
상기 RAID 컨트롤러는 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 일부 비휘발성 메모리 장치들에 대해서는 최하위 워드 라인에 연결되는 물리 페이지로부터 최상위 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 나머지 비휘발성 메모리 장치들에 대해서는 최상위 워드 라인에 연결되는 물리 페이지를 먼저 선택하고 이후 최하위 워드 라인에 연결되는 물리 페이지로부터 차상위 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
일 실시예에 있어서, 상기 제1 내지 제N 비휘발성 메모리 장치들에 포함되는 플래시 메모리 셀 어레이들 각각은 기판 상에 삼차원 구조로 형성되고 상기 기판에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들을 통해 상기 RAID 컨트롤러와 연결될 수 있다.
상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 기판으로부터 서로 상이한 높이의 워드 라인에 연결될 수 있다.
일 실시예에 있어서, 상기 RAID 컨트롤러는 외부로부터 수신되는 데이터를 버퍼링하여 상기 제1 내지 제(N-1) 논리 페이지 데이터들을 출력하는 버퍼 메모리, 상기 제1 내지 제(N-1) 논리 페이지 데이터들에 대해 상기 패러티 연산을 수행하여 상기 제N 논리 페이지 데이터를 생성하는 패러티 생성부, 상기 제1 내지 제N 논리 페이지 데이터들을 각각 M회 수신하여 순차적으로 저장하는 제1 내지 제N 물리 페이지 버퍼들, 상기 제1 내지 제N 물리 페이지 버퍼들 중에서 적어도 하나의 물리 페이지 버퍼에 대해 상기 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 바꾸어 저장하는 레벨 혼합부 및 상기 물리 페이지 그룹을 결정하고, 상기 제1 내지 제N 물리 페이지 버퍼들에 각각 저장된 상기 M개의 논리 페이지 데이터들을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들의 제1 내지 제M 레벨의 논리 페이지들에 각각 저장하는 제어부를 포함할 수 있다.
본 발명의 실시예들에 따른 솔리드 스테이트 드라이브는 하나의 패러티 그룹에 포함되는 데이터들을 복수의 비휘발성 메모리 장치들에서 비트 에러율이 서로 상이한 페이지들에 분산하여 저장함으로써 전체적인 데이터 복원률을 증가시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 나타내는 블록도이다.
도 2는 도 1의 솔리드 스테이트 드라이브에 포함되는 비휘발성 메모리 장치들의 일 예를 나타내는 블록도이다.
도 3은 도 2의 삼차원 플래시 메모리 셀 어레이에 포함되는 메모리 블록의 삼차원 구조의 일 예를 나타내는 사시도이다.
도 4는 도 3에 도시된 메모리 블록의 I-I' 단면을 나타내는 평면도이다.
도 5 및 6은 도 3의 메모리 블록에 포함되는 필라의 단면을 입체적으로 보여주는 도면이다.
도 7은 도 3에 도시된 메모리 블록의 등가 회로도이다.
도 8은 도 7에 도시된 등가 회로도의 플레인 구조를 설명하기 위한 개념도이다.
도 9는 도 1의 솔리드 스테이트 드라이브에 포함되는 물리 페이지 버퍼들을 설명하기 위한 도면이다.
도 10 및 11은 도 1의 솔리드 스테이트 드라이브의 동작을 설명하기 위한 도면이다.
도 12는 도 1의 솔리드 스테이트 드라이브의 데이터 저장 방법을 나타내는 순서도이다.
도 13은 도 2의 삼차원 플래시 메모리 셀 어레이의 다른 예를 나타내는 단면도이다.
도 14는 본 발명의 다른 실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 나타내는 블록도이다.
도 15는 도 14의 솔리드 스테이트 드라이브에 포함되는 비휘발성 메모리 장치들의 일 예를 나타내는 블록도이다.
도 16은 도 14의 이차원 플래시 메모리 셀 어레이에 포함되는 메모리 블록의 일 예를 나타내는 회로도이다.
도 17 내지 20은 도 16에 도시된 멀티 레벨 셀의 문턱 전압 분포를 설명하기 위한 도면들이다.
도 21은 도 14의 솔리드 스테이트 드라이브에 포함되는 물리 페이지 버퍼들을 설명하기 위한 도면이다.
도 22 및 23은 도 14의 솔리드 스테이트 드라이브에 포함되는 레벨 혼합부의 동작을 설명하기 위한 도면이다.
도 24 내지 27은 도 14의 솔리드 스테이트 드라이브가 도 15의 비휘발성 메모리 장치들을 포함하는 경우에 도 14의 솔리드 스테이트 드라이브의 동작을 설명하기 위한 도면들이다.
도 28은 도 14의 솔리드 스테이트 드라이브에 포함되는 비휘발성 메모리 장치들의 다른 예를 나타내는 블록도이다.
도 29 및 30은 도 14의 솔리드 스테이트 드라이브가 도 28의 비휘발성 메모리 장치들을 포함하는 경우에 도 14의 솔리드 스테이트 드라이브의 동작을 설명하기 위한 도면들이다.
도 31은 도 14의 솔리드 스테이트 드라이브의 데이터 저장 방법을 나타내는 순서도이다.
도 32는 본 발명의 일 실시예에 따른 저장 장치를 나타내는 블록도이다.
도 33 및 34는 도 32의 저장 장치의 동작을 설명하기 위한 도면이다.
도 35는 본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브 시스템을 나타내는 블록도이다.
도 36은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명은 복수의 비휘발성 메모리 장치들이 RAID(Redundant Array of Independent Disks)를 구성하는 솔리드 스테이트 드라이브(Solid State Drive; SSD)에서 비트 에러율(Bit Error Rate; BER)의 불균형을 완화시킴으로써 솔리드 스테이트 드라이브(SSD)의 전체적인 데이터 복원률을 향상시키는 기술에 관한 발명으로서, 본 출원과 동일한 출원인에 의해 출원된 단일 플래시 메모리 시스템에서 비트 에러율(BER)의 불균형을 완화시키는 기술에 관한 특허출원 10-2010-0092583 및 특허출원 10-2010-0092586에 기재된 모든 내용은 본 명세서에 참조로서 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 나타내는 블록도이다.
도 1을 참조하면, 솔리드 스테이트 드라이브(1000)는 제1 내지 제N 비휘발성 메모리 장치들(NVM1, NVM2, , NVMn)(1100-1, 1100-2, ..., 1100-n)(n은 2 이상의 정수) 및 RAID(Redundant Array of Independent Disks) 컨트롤러(1200)를 포함한다.
솔리드 스테이트 드라이브(1000)는 컴퓨터, 노트북, 디지털 카메라, 휴대폰 등과 같은 호스트(HOST)에 접속되어 사용될 수 있다.
제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각은 복수의 물리 페이지들(physical pages)을 구비하는 메모리 셀 어레이를 포함한다.
제조 공정에 따라 상기 메모리 셀 어레이에 포함되는 복수의 물리 페이지들은 서로 상이한 비트 에러율(Bit Error Rate; BER)을 가질 수 있다. 상기 메모리 셀 어레이에 포함되는 복수의 물리 페이지들 사이의 비트 에러율(BER) 불균형에 대해서는 도 2 내지 8을 참조하여 후술한다. 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)은 RAID 컨트롤러(1200)의 제어 하에 쓰기, 읽기 및 소거 동작을 수행할 수 있다.
RAID 컨트롤러(1200)는 제1 내지 제N 채널들(CH1, CH2, ..., CHn)을 통해 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)과 각각 연결된다.
RAID 컨트롤러(1200)는 호스트(HOST)로부터 제공되는 데이터를 물리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))(i는 양의 정수)을 생성하고, 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대해 패러티(parity) 연산을 수행하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 물리 페이지 데이터(PPDi_n)를 생성한다. 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)은 하나의 패러티 그룹(parity group)을 형성한다. 여기서, i는 순차적으로 형성되는 패러티 그룹의 일련번호를 나타낸다.
RAID 컨트롤러(1200)는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각으로부터 서로 상이한 비트 에러율(BER)을 갖는 물리 페이지를 하나씩 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정한다. 일 실시예에 있어서, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 서로 상이한 비트 에러율(BER)을 가질 수 있다.
RAID 컨트롤러(1200)는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들에 각각 저장한다. 예를 들어, RAID 컨트롤러(1200)는 제1 물리 페이지 데이터(PPDi_1)를 제1 비휘발성 메모리 장치(1100-1)로부터 선택된 상기 제1 물리 페이지에 저장하고, 제2 물리 페이지 데이터(PPDi_2)를 제2 비휘발성 메모리 장치(1100-2)로부터 선택된 상기 제2 물리 페이지에 저장하고, 제N 물리 페이지 데이터(PPDi_n)를 제N 비휘발성 메모리 장치(1100-n)로부터 선택된 상기 제N 물리 페이지에 저장할 수 있다.
도 2는 도 1의 솔리드 스테이트 드라이브에 포함되는 비휘발성 메모리 장치들의 일 예를 나타내는 블록도이다.
도 1의 솔리드 스테이트 드라이브(1000)에 포함되는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각은 도 2에 도시되는 플래시 메모리 장치(1100)로 구현될 수 있다.
도 2를 참조하면, 플래시 메모리 장치(1100)는 삼차원 플래시 메모리 셀 어레이(1110), 데이터 입출력 회로(1120), 어드레스 디코더(1130) 및 제어 로직(1140)을 포함할 수 있다.
삼차원 플래시 메모리 셀 어레이(1110)는 기판 상에 삼차원 구조로 형성될 수 있다. 이차원 구조를 갖는 플래시 메모리 셀 어레이의 경우 메모리 셀들이 기판과 수평한 방향으로 형성되나, 삼차원 구조를 갖는 플래시 메모리 셀 어레이의 경우 메모리 셀들이 기판과 수직한 방향으로 형성될 수 있다. 삼차원 플래시 메모리 셀 어레이(1110)는 상기 기판에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들(WLs)에 연결되는 복수의 물리 페이지들을 포함할 수 있다.
삼차원 플래시 메모리 셀 어레이(1110)는 복수의 메모리 블록들(BLK1~BLKz)(z는 양의 정수)을 포함할 수 있다. 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 물리 페이지들로 구성되고, 복수의 물리 페이지들 각각은 복수의 메모리 셀들로 구성된다. 삼차원 플래시 메모리 셀 어레이(1110)는 블록 단위로 소거 동작을 수행하고, 물리 페이지 단위로 쓰기 및 읽기 동작을 수행한다.
데이터 입출력 회로(1120)는 복수의 비트 라인들(BLs)을 통해 삼차원 플래시 메모리 셀 어레이(1110)와 연결될 수 있다. 데이터 입출력 회로(1120)는 RAID 컨트롤러(1200)로부터 데이터(DATA)를 입력받고, 삼차원 플래시 메모리 셀 어레이(1110)로부터 읽은 데이터(DATA)를 RAID 컨트롤러(1200)로 출력할 수 있다.
어드레스 디코더(1130)는 복수의 워드 라인들(WLs), 스트링 선택 라인(SSL) 및 접지 선택 라인(GSL)을 통해 삼차원 플래시 메모리 셀 어레이(1110)와 연결될 수 있다. 어드레스 디코더(1130)는 RAID 컨트롤러(1200)로부터 어드레스(ADDR)를 입력받아 워드 라인을 선택할 수 있다.
제어 로직(1140)은 RAID 컨트롤러(1200)로부터 수신되는 제어 신호(CMD)에 기초하여 데이터 입출력 회로(1120) 및 어드레스 디코더(1130)를 제어함으로써 플래시 메모리 장치(1100)의 프로그램, 읽기, 소거 등의 동작을 제어할 수 있다. 예를 들어, 제어 로직(1140)은 프로그램 동작 시에, 어드레스 디코더(1130)를 제어하여 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(1120)를 제어하여 데이터가 플래시 메모리 셀 어레이(1110)에 프로그램되도록 할 수 있다.
도 3은 도 2의 삼차원 플래시 메모리 셀 어레이에 포함되는 메모리 블록의 삼차원 구조의 일 예를 나타내는 사시도이다.
도 3을 참조하면, 메모리 블록(BLK1)은 기판(SUB)과 수직 방향으로 형성되어 있다. 기판(SUB)에는 n+ 도핑 영역이 형성된다. 기판(SUB) 위에는 게이트 전극막(gate electrode layer)과 절연막(insulation layer)이 교대로 증착된다. 그리고 게이트 전극막(gate electrode layer)과 절연막(insulation layer) 사이에는 전하 저장막(charge storage layer)이 형성될 수 있다.
게이트 전극막과 절연막을 수직 방향으로 패터닝(vertical patterning)하면, V자 모양의 필라(pillar)가 형성된다. 필라는 게이트 전극막과 절연막을 관통하여 기판(SUB)과 연결된다. 필라(Pillar)의 외곽 부분(O)은 채널 반도체로 구성될 수 있고, 내부(I)는 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 3을 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인들(WL1~WL8) 및 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트 라인들(BL1~BL3)과 연결될 수 있다.
도 3에서는, 하나의 메모리 블록(BLK1)이 접지 선택 라인(GSL), 스트링 선택 라인(SSL), 8개의 워드 라인들(WL1, WL2, ..., WL8) 및 3개의 비트 라인들(BL1, BL2, BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
도 4는 도 3에 도시된 메모리 블록의 I-I' 단면을 나타내는 평면도이고, 도 5 및 6은 도 3의 메모리 블록(BLK1)에 포함되는 필라의 단면을 입체적으로 보여주는 도면이다.
도 4 내지 6을 참조하면, 기판(SUB)과 수직 방향으로 절연막(insulation layer)과 게이트 전극막(gate electrode layer)이 교대로 형성되어 있다. 게이트 전극막은 접지 선택 라인(GSL), 복수의 워드 라인들(WL1, WL2, ..., WL8) 및 스트링 선택 라인(SSL)과 연결되어 있다.
필라(pillar)를 형성하기 위하여 수직 패터닝(vertical patterning)을 하는 경우에, 필라 하부 쪽으로 갈수록 그 폭이 작아질 수 있다(즉, Wt>Wb). 따라서 필라는 θ의 경사각을 갖는 V자형 원통일 수 있다. 필라의 폭 차이로 인해, 필라의 둘레 길이는 기판(SUB)으로부터의 높이와 경사각(θ)에 따라 달라질 수 있다. 도 6에 도시된 것처럼, 필라와 교차하는 두 평면들 사이의 높이가 h이고 하부 평면과 교차하는 필라의 반지름이 a인 경우, 상부 평면과 교차하는 필라의 반지름(c)은 수학식 1과 같이 구할 수 있다.
[수학식 1]
Figure pat00001
또한, 하부 및 상부 평면과 교차하는 필라의 둘레 길이(P1, P2)는 수학식 2와 같이 구할 수 있다.
[수학식 2]
Figure pat00002
[수학식 2]에서 보는 바와 같이, 필라의 둘레 길이는 기판(SUB)으로부터의 높이에 따라 달라질 수 있다. 따라서 게이트 전극막이 동일한 두께로 형성되는 경우에, 게이트 전극막의 대향 면적(facing area)은 높이에 따라 달라질 수 있다. 여기에서, 대향 면적은 필라의 외곽 부분(O, 도 5 참조)과 직면하는 게이트 전극막의 면적을 의미한다.
게이트 전극막은 셀 트랜지스터의 게이트 전극으로 사용되고, 필라의 외곽 부분(O)은 셀 트랜지스터의 채널 영역으로 사용될 수 있다. 이때 필라의 둘레 길이(P1 또는 P2) 및 게이트 전극막의 두께(h)는 셀 트랜지스터의 종횡비(W/L)를 결정할 수 있다. 모스 트랜지스터의 드레인 전류(Id)는 아래 수학식 3에서 보는 바와 같이, 채널 폭(W)에 비례하고 채널 길이(L)에 반비례한다.
[수학식 3]
Figure pat00003
(여기서, α는 비례 상수이고, Vg 및 Vd는 각각 게이트 전압 및 드레인 전압이고, Vt는 문턱 전압이다.)
따라서 서로 다른 높이에 형성되는 셀 트랜지스터는 서로 다른 전류 특성을 가질 수 있다. 즉, 게이트 전극막의 두께가 동일한 경우에, 셀 트랜지스터의 전류 특성은 높이에 따라 다르게 나타날 수 있다. 이러한 이유로, 복수의 워드 라인들(WL1~WL8)에 동일한 프로그램 전압 또는 읽기 전압이 인가되더라도, 워드 라인의 높이에 따라서 채널 전류가 달라질 수 있다. 이는 워드 라인의 높이에 따라 셀 트랜지스터의 문턱 전압이 달라질 수 있음을 의미한다. 셀 트랜지스터의 문턱 전압이 달라지면, 비트 에러율(BER)이 워드 라인에 따라 달라질 수 있다.
다시 도 3을 참조하면, 워드 라인의 높이에 따라 메모리 블록(BLK1)에 형성되는 필라의 폭이 달라질 수 있다. 예를 들면, 필라 하부 쪽으로 갈수록 그 폭이 작아질 수 있다. 이는 서로 상이한 높이의 워드 라인에 연결되는 물리 페이지들 사이에서 비트 에러율(BER) 불균형이 나타날 수 있음을 의미한다. 예를 들어, 상대적으로 높이가 낮은 워드 라인에 연결되는 물리 페이지는 상대적으로 높이가 높은 워드 라인에 연결되는 물리 페이지보다 비트 에러율(BER)이 높을 수 있다.
도 7은 도 3에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
도 7을 참조하면, 비트 라인(BL1, BL2, BL3)과 공통 소스 라인(CSL; Common Source Line) 사이에는 낸드 스트링(NS11~NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line)(SSL1, SSL2, SSL3)에 연결되어 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 대응하는 워드 라인(WL1, WL2, ..., WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line)(GSL1, GSL2, GSL3)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결되어 있다.
계속해서 도 7을 참조하면, 동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되어 있고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 분리되어 있다. 제1 워드 라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀들을 포함하는 물리 페이지를 프로그램 하는 경우에는, 제1 워드 라인(WL1), 제1 스트링 선택 라인(SSL1) 및 제1 접지 선택 라인(GSL1)이 선택된다.
도 8은 도 7에 도시된 등가 회로도의 플레인 구조를 설명하기 위한 개념도이다.
도 8을 참조하면, 도 7에 도시된 메모리 블록(BLK1)은 3개의 플레인(plane)으로 구성된다. 도 7에서, 낸드 스트링(NS11, NS12, NS13)은 제1 플레인(PLANEa)을 구성하고, 낸드 스트링(NS21, NS22, NS23)은 제2 플레인(PLANEb)을 구성하며, 낸드 스트링(NS31, NS32, NS33)은 제3 플레인(PLANEc)을 구성한다. 그리고 제1 워드 라인(WL1)은 플레인에 따라 WLa1, WLb1, WLc1로 구분되고, 제2 워드 라인(WL2)은 WLa2, WLb2, WLc2로 구분되고, 제8 워드 라인(WL8)은 WLa8, WLb8, WLc8로 구분될 수 있다.
동일한 플레인 상에서 동일한 높이의 워드라인에 연결되는 메모리 셀들의 집합이 하나의 물리 페이지를 형성한다.
프로그램 순서는 여러 가지일 수 있다. 예를 들면, 제1 플레인(PLANEa)부터 제3 플레인(PLANEc)까지 순차적으로 프로그램 동작이 수행될 수 있다. 그리고 각각의 플레인에서는, 제1 워드 라인(WL1)에 연결되는 물리 페이지부터 제8 워드 라인(WL8)에 연결되는 물리 페이지까지 순차적으로 프로그램 동작이 수행될 수 있다. 또는, 제8 워드 라인(WL8)에 연결되는 물리 페이지부터 제1 워드 라인(WL1)에 연결되는 물리 페이지까지 순차적으로 프로그램 동작이 수행될 수도 있다. 한편, 도 8에 도시된 바와 같이, 제2 플레인(PLANEb)과 제3 플레인(PLANEc) 사이에는 하나 또는 그 이상의 플레인이 더 포함될 수 있다.
다시 도 1을 참조하면, RAID 컨트롤러(1200)는 제어부(1210), 버퍼 메모리(1220), 패러티 생성부(1230), 제1 내지 제N 물리 페이지 버퍼들(1240-1, 1240-2, ..., 1240-n), 호스트 인터페이스(1250) 및 메모리 인터페이스(1260)를 포함할 수 있다.
호스트 인터페이스(1250)는 호스트(HOST)와 데이터를 송수신한다. 호스트 인터페이스(1250)는 호스트(HOST)의 프로토콜에 대응하여 솔리드 스테이트 드라이브(1000)와의 인터페이싱을 제공한다. 호스트 인터페이스(1250)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(HOST)와 통신할 수 있다. 또한, 호스트 인터페이스(1250)는 호스트(HOST)가 솔리드 스테이트 드라이브(1000)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
메모리 인터페이스(1260)는 제1 내지 제N 채널들(CH1, CH2, ..., CHn)을 통해 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)과 각각 데이터를 송수신한다.
버퍼 메모리(1220)는 호스트(HOST)로부터 제공되는 데이터를 물리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))을 출력할 수 있다. 버퍼 메모리(1220)는 (n-1)개의 물리 페이지들에 상응하는 데이터를 버퍼링하고 이를 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))로서 출력하는 동작을 반복적으로 수행할 수 있다. 여기서, i는 버퍼 메모리(1220)로부터 순차적으로 출력되는 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))의 일련번호를 나타낸다.
패러티 생성부(1230)는 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 물리 페이지 데이터(PPDi_n)를 생성할 수 있다. 이 때, 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)은 하나의 패러티 그룹(parity group)을 형성한다. 일 실시예에 있어서, 상기 패러티 연산은 XOR(exclusive OR) 연산일 수 있다. 이 경우, 패러티 생성부(1230)는 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대해 XOR 연산을 수행하여 제N 물리 페이지 데이터(PPDi_n)를 생성할 수 있다.
제1 내지 제N 물리 페이지 버퍼들(1240-1, 1240-2, ..., 1240-n)은 상기 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 각각 저장할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 제1 물리 페이지 버퍼(1240-1)는 제1 물리 페이지 데이터(PPDi_1)를 저장하고, 제2 물리 페이지 버퍼(1240-2)는 제2 물리 페이지 데이터(PPDi_2)를 저장하고, 제N 물리 페이지 버퍼(1240-n)는 제N 물리 페이지 데이터(PPDi_n)를 저장할 수 있다. 도 9는 N이 4인 경우에 대해 도시하고 있으나, N은 4보다 클 수도 있고 적을 수도 있다.
제어부(1210)는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각으로부터 서로 상이한 비트 에러율(BER)을 갖는 물리 페이지를 하나씩 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
도 2 내지 8을 참조하여 상술한 바와 같이, 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)에 포함되는 메모리 셀 어레이가 삼차원 구조를 갖는 삼차원 플래시 메모리 셀 어레이(1110)로 구현되는 경우, 서로 상이한 높이의 워드 라인에 연결되는 물리 페이지들은 서로 상이한 비트 에러율(BER)을 가질 수 있다. 따라서 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 기판으로부터 서로 상이한 높이의 워드 라인에 연결될 수 있다.
일 실시예에 있어서, 제어부(1210)는 기판(SUB)에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들(WLs) 중에서 제1 높이의 워드 라인 및 제2 높이의 워드 라인을 선택하고, 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각으로부터 상기 제1 및 제2 높이의 워드 라인들 중의 하나에 연결되는 물리 페이지를 선택하여 상기 물리 페이지 그룹을 결정할 수 있다. 이 경우, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 일부의 물리 페이지는 상기 제1 높이의 워드 라인에 연결되고, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 나머지 물리 페이지는 상기 제2 높이의 워드 라인에 연결될 수 있다.
제어부(1210)는 메모리 인터페이스(1260)를 제어하여 제1 내지 제N 물리 페이지 버퍼들(1240-1, 1240-2, ..., 1240-n)에 저장된 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들에 각각 저장할 수 있다.
상술한 바와 같이, RAID 컨트롤러(1200)는 호스트(HOST)로부터 제공되는 데이터에 대해 패러티 데이터를 생성하고, 호스트(HOST)로부터 제공되는 데이터를 제1 내지 제(N-1) 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-(n-1))에 분산하여 저장하고, 상기 패러티 데이터를 제N 비휘발성 메모리 장치(1100-n)에 저장할 수 있다.
따라서, 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 중에서 일부 비휘발성 메모리 장치에 물리적인 에러가 발생하여 상기 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n) 중에서 일부의 데이터가 손상되는 경우에도, RAID 컨트롤러(1200)는 상기 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n) 중에서 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)로부터 독출되는 손상되지 않은 나머지 물리 페이지 데이터들에 대해 상기 패러티 연산을 수행함으로써 상기 손상된 일부의 물리 페이지 데이터를 복원할 수 있다.
이 때, 상기 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n) 중에서 상기 패러티 연산에 따른 한계 개수 이상의 물리 페이지 데이터들이 손상된 경우에는 상기 패러티 연산을 통해서 상기 손상된 물리 페이지 데이터를 복원할 수 없게 된다. 솔리드 스테이트 드라이브(1000)의 전체적인 데이터 복원률은 손상된 물리 페이지 데이터를 복원하지 못하는 빈도수에 의해 결정되므로, 솔리드 스테이트 드라이브(1000)의 전체적인 데이터 복원률을 향상시키기 위해서는 높은 비트 에러율(BER)을 갖는 패러티 그룹의 개수를 줄이는 것이 필요하다.
제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각에 포함되는 복수의 물리 페이지들은 연결되는 워드 라인의 높이에 따라 서로 상이한 비트 에러율(BER)을 가지므로, 하나의 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)이 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)에서 동일한 높이의 워드 라인에 연결되는 물리 페이지에 저장된다면, 높은 비트 에러율(BER)을 갖는 워드 라인에 연결되는 물리 페이지에 저장되는 패러티 그룹은 낮은 비트 에러율(BER)을 갖는 워드 라인에 연결되는 물리 페이지에 저장되는 패러티 그룹에 비해 데이터 복원률이 떨어지게 된다.
그러나, 본 발명의 실시예들에 따른 솔리드 스테이트 드라이브(1000)는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)에서 서로 상이한 높이의 워드 라인에 연결되는 물리 페이지를 하나씩 선택하여 상기 물리 페이지 그룹을 결정하고, 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들에 각각 저장한다. 따라서, 상기 물리 페이지 그룹들 간의 비트 에러율(BER)의 불균형이 완화되어 손상된 물리 페이지 데이터를 복원하지 못하는 빈도수가 감소하므로, 솔리드 스테이트 드라이브(1000)의 전체적인 데이터 복원률이 향상될 수 있다.
도 10 및 11은 도 1의 솔리드 스테이트 드라이브의 동작을 설명하기 위한 도면이다.
도 10 및 11에서 솔리드 스테이트 드라이브(1000)는 네 개의 비휘발성 메모리 장치들(1100-1, 1100-2, 1100-3, 1100-4)을 포함하고(즉, N=4), 각각의 비휘발성 메모리 장치들(1100-1, 1100-2, 1100-3, 1100-4)에 포함되는 삼차원 플래시 메모리 셀 어레이(1110)는 여덟 개의 워드 라인들(WL1, WL2, ..., WL8)에 연결되는 것으로 도시된다. 그러나, 본 발명은 이에 국한되지 않는다.
이하, 도 1 내지 11을 참조하여 솔리드 스테이트 드라이브(1000)의 동작에 대해 상세히 설명한다.
버퍼 메모리(1220)는 호스트(HOST)로부터 제공되는 데이터를 물리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))을 출력하고, 패러티 생성부(1230)는 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 물리 페이지 데이터(PPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(1240-1, 1240-2, ..., 1240-n)은 상기 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 각각 저장한다.
제어부(1210)는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 중의 일부 비휘발성 메모리 장치들에 대해서는 최저 높이의 워드 라인에 연결되는 물리 페이지로부터 최고 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 중의 나머지 비휘발성 메모리 장치들에 대해서는 최고 높이의 워드 라인에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
일 실시예에 있어서, 도 10에 도시된 바와 같이, 제어부(1210)는 제1 내지 제3 비휘발성 메모리 장치들(1100-1, 1100-2, 1100-3)에 대해서는 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지로부터 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지의 순서로 선택하고, 제4 비휘발성 메모리 장치(1100-4)에 대해서는 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지로부터 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
이 경우, 제어부(1210)는 제1 내지 제3 비휘발성 메모리 장치들(1100-1, 1100-2, 1100-3)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고, 제4 비휘발성 메모리 장치(1100-4)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(1240-1, 1240-2, 1240-3, 1240-4)에 저장되어 있는 제1 패러티 그룹(PARITY GROUP 1)의 제1 내지 제4 물리 페이지 데이터들(PPD1_1, PPD1_2, PPD1_3, PPD1_4)을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이후, 제어부(1210)는 제1 내지 제3 비휘발성 메모리 장치들(1100-1, 1100-2, 1100-3)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하고, 제4 비휘발성 메모리 장치(1100-4)에서는 제7 워드 라인(WL7)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(1240-1, 1240-2, 1240-3, 1240-4)에 저장되어 있는 제2 패러티 그룹(PARITY GROUP 2)의 제1 내지 제4 물리 페이지 데이터들(PPD2_1, PPD2_2, PPD2_3, PPD2_4)을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이와 같은 방식으로, 제어부(1210)는 제1 내지 제3 비휘발성 메모리 장치들(1100-1, 1100-2, 1100-3)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하고, 제4 비휘발성 메모리 장치(1100-4)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제8 물리 페이지 그룹(PPG8)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(1240-1, 1240-2, 1240-3, 1240-4)에 저장되어 있는 제8 패러티 그룹(PARITY GROUP 8)의 제1 내지 제4 물리 페이지 데이터들(PPD8_1, PPD8_2, PPD8_3, PPD8_4)을 제8 물리 페이지 그룹(PPG8)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
다른 실시예에 있어서, 도 11에 도시된 바와 같이, 제어부(1210)는 제1 및 제2 비휘발성 메모리 장치들(1100-1, 1100-2)에 대해서는 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지로부터 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지의 순서로 선택하고, 제3 및 제4 비휘발성 메모리 장치들(1100-3, 1100-4)에 대해서는 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지로부터 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
이 경우, 제어부(1210)는 제1 및 제2 비휘발성 메모리 장치들(1100-1, 1100-2)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고, 제3 및 제4 비휘발성 메모리 장치들(1100-3, 1100-4)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(1240-1, 1240-2, 1240-3, 1240-4)에 저장되어 있는 제1 패러티 그룹(PARITY GROUP 1)의 제1 내지 제4 물리 페이지 데이터들(PPD1_1, PPD1_2, PPD1_3, PPD1_4)을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이후, 제어부(1210)는 제1 및 제2 비휘발성 메모리 장치들(1100-1, 1100-2)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하고, 제3 및 제4 비휘발성 메모리 장치들(1100-3, 1100-4)에서는 제7 워드 라인(WL7)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(1240-1, 1240-2, 1240-3, 1240-4)에 저장되어 있는 제2 패러티 그룹(PARITY GROUP 2)의 제1 내지 제4 물리 페이지 데이터들(PPD2_1, PPD2_2, PPD2_3, PPD2_4)을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이와 같은 방식으로, 제어부(1210)는 제1 및 제2 비휘발성 메모리 장치들(1100-1, 1100-2)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하고, 제3 및 제4 비휘발성 메모리 장치들(1100-3, 1100-4)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제8 물리 페이지 그룹(PPG8)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(1240-1, 1240-2, 1240-3, 1240-4)에 저장되어 있는 제8 패러티 그룹(PARITY GROUP 8)의 제1 내지 제4 물리 페이지 데이터들(PPD8_1, PPD8_2, PPD8_3, PPD8_4)을 제8 물리 페이지 그룹(PPG8)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
상기와 같은 방식으로 솔리드 스테이트 드라이브(1000)는 하나의 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)에서 상이한 높이의 워드 라인에 연결되는 물리 페이지들에 분산하여 저장함으로써 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 완화시켜 솔리드 스테이트 드라이브(1000)의 전체적인 데이터 복원률이 향상될 수 있다.
도 12는 도 1의 솔리드 스테이트 드라이브의 데이터 저장 방법을 나타내는 순서도이다.
도 12를 참조하면, RAID 컨트롤러(1200)는 호스트(HOST)로부터 제공되는 데이터를 물리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))을 생성한다(단계 S110).
RAID 컨트롤러(1200)는 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대해 패러티(parity) 연산을 수행하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 물리 페이지 데이터(PPDi_n)를 생성한다(단계 S120). 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)은 하나의 패러티 그룹(parity group)을 형성한다.
RAID 컨트롤러(1200)는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 각각으로부터 서로 상이한 비트 에러율(BER)을 갖는 물리 페이지를 하나씩 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고(단계 S130), 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들에 각각 저장한다(단계 S140).
도 12의 솔리드 스테이트 드라이브의 데이터 저장 방법은 도 1의 솔리드 스테이트 드라이브(1000)에 의해 수행될 수 있다. 도 1의 솔리드 스테이트 드라이브(1000)의 구성 및 동작에 대해서는 도 1 내지 11을 참조하여 상세히 설명하였으므로, 여기서는 도 12에 도시되는 솔리드 스테이트 드라이브의 데이터 저장 방법의 각 단계에 대한 상세한 설명은 생략한다.
본 발명의 실시예들에 따른 솔리드 스테이트 드라이브의 데이터 저장 방법은 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)에 분산되어 저장되는 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 완화시켜 솔리드 스테이트 드라이브의 전체적인 데이터 복원률을 향상시킬 수 있다.
한편, 본 발명의 실시예에 따른 솔리드 스테이트 드라이브(1000) 및 그것의 데이터 저장 방법은, 도 13에 도시된 바와 같이 기판에 두 개 또는 그 이상의 필라(pillar)가 형성되는 경우에도 적용될 수 있다. 도 13을 참조하면, 제4 및 제5 워드 라인(WL4, WL5) 사이에 더미 워드 라인(DWL)이 존재할 수 있다.
도 14는 본 발명의 다른 실시예에 따른 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 나타내는 블록도이다.
도 14를 참조하면, 솔리드 스테이트 드라이브(2000)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)(n은 2 이상의 정수) 및 RAID(Redundant Array of Independent Disks) 컨트롤러(2200)를 포함한다.
솔리드 스테이트 드라이브(2000)는 컴퓨터, 노트북, 디지털 카메라, 휴대폰 등과 같은 호스트(HOST)에 접속되어 사용될 수 있다.
제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각은 복수의 물리 페이지들을 구비하는 메모리 셀 어레이를 포함한다. 상기 메모리 셀 어레이는 하나의 메모리 셀에 M(M은 2 이상의 정수)비트의 데이터를 저장할 수 있는 멀티 레벨 셀(Multi Level Cell; MLC)들을 포함한다. 따라서 상기 메모리 셀 어레이에 포함되는 복수의 물리 페이지들 각각은 제1 내지 제M 레벨의 논리 페이지들(logical pages)을 갖는다. 여기에서, 제1 레벨의 논리 페이지는 하나의 물리 페이지에 포함되는 멀티 레벨 셀들에서 최하위 비트(Least Significant Bit; LSB)에 저장되는 데이터들의 집합을 의미하고, 제M 레벨의 논리 페이지는 하나의 물리 페이지에 포함되는 멀티 레벨 셀들에서 최상위 비트(Most Significant Bit; MSB)에 저장되는 데이터들의 집합을 의미한다.
제조 공정에 따라 하나의 물리 페이지에 포함되는 제1 내지 제M 레벨의 논리 페이지들 각각은 서로 상이한 비트 에러율(Bit Error Rate; BER)을 가질 수 있다. 하나의 물리 페이지에 포함되는 복수의 논리 페이지들 사이의 비트 에러율(BER) 불균형에 대해서는 도 15 내지 20을 참조하여 후술한다. 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)은 RAID 컨트롤러(2200)의 제어 하에 쓰기, 읽기 및 소거 동작을 수행할 수 있다.
RAID 컨트롤러(2200)는 제1 내지 제N 채널들(CH1, CH2, ..., CHn)을 통해 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)과 각각 연결된다.
RAID 컨트롤러(2200)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))(i는 양의 정수)을 생성하고, 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 패러티(parity) 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성한다. 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)은 하나의 패러티 그룹(parity group)을 형성한다. 여기서, i는 순차적으로 형성되는 패러티 그룹의 일련번호를 나타낸다.
RAID 컨트롤러(2200)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 하나의 물리 페이지를 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 각각으로부터 서로 상이한 레벨의 논리 페이지를 하나씩 선택한다. 일 실시예에 있어서, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들로부터 하나씩 선택되는 논리 페이지들 각각은 상기 제1 내지 제M 레벨 중에서 선택되는 두 레벨 중의 어느 한 레벨을 가질 수 있다.
RAID 컨트롤러(2200)는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들로부터 상기 하나씩 선택된 논리 페이지에 각각 저장한다. 예를 들어, RAID 컨트롤러(2200)는 제1 논리 페이지 데이터(LPDi_1)를 제1 비휘발성 메모리 장치(2100-1)에 포함되는 상기 제1 물리 페이지로부터 상기 선택된 논리 페이지에 저장하고, 제2 논리 페이지 데이터(LPDi_2)를 제2 비휘발성 메모리 장치(2100-2)에 포함되는 상기 제2 물리 페이지로부터 상기 선택된 논리 페이지에 저장하고, 제N 논리 페이지 데이터(LPDi_n)를 제N 비휘발성 메모리 장치(2100-n)에 포함되는 상기 제N 물리 페이지로부터 상기 선택된 논리 페이지에 저장할 수 있다.
도 15는 도 14의 솔리드 스테이트 드라이브에 포함되는 비휘발성 메모리 장치들의 일 예를 나타내는 블록도이다.
도 14의 솔리드 스테이트 드라이브(2000)에 포함되는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각은 도 15에 도시되는 플래시 메모리 장치(2100)로 구현될 수 있다.
도 15를 참조하면, 플래시 메모리 장치(2100)는 이차원 플래시 메모리 셀 어레이(2110), 데이터 입출력 회로(2120), 어드레스 디코더(2130) 및 제어 로직(2140)을 포함할 수 있다.
이차원 플래시 메모리 셀 어레이(2110)는 기판에 수평한 방향으로 형성되는 이차원 구조를 가질 수 있다. 이차원 플래시 메모리 셀 어레이(2110)는 상기 기판에 수평한 방향으로 순차적으로 형성되는 복수의 워드 라인들(WLs)에 연결되는 복수의 물리 페이지들을 포함할 수 있다.
이차원 플래시 메모리 셀 어레이(2110)는 복수의 메모리 블록들(BLK1~BLKz)(z는 양의 정수)을 포함할 수 있다. 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 물리 페이지(2111)들로 구성되고, 복수의 물리 페이지(2111)들 각각은 복수의 멀티 레벨 셀(Multi Level Cell; MLC)들로 구성된다. 복수의 멀티 레벨 셀들 각각은 M비트의 데이터를 저장한다. 이차원 플래시 메모리 셀 어레이(2110)는 블록 단위로 소거 동작을 수행하고, 물리 페이지 단위로 쓰기 및 읽기 동작을 수행한다.
데이터 입출력 회로(2120)는 복수의 비트 라인들(BLs)을 통해 이차원 플래시 메모리 셀 어레이(2110)와 연결될 수 있다. 데이터 입출력 회로(2120)는 RAID 컨트롤러(2200)로부터 데이터(DATA)를 입력받고, 이차원 플래시 메모리 셀 어레이(2110)로부터 읽은 데이터(DATA)를 RAID 컨트롤러(2200)로 출력할 수 있다.
어드레스 디코더(2130)는 복수의 워드 라인들(WLs), 스트링 선택 라인(SSL) 및 접지 선택 라인(GSL)을 통해 이차원 플래시 메모리 셀 어레이(2110)와 연결될 수 있다. 어드레스 디코더(2130)는 RAID 컨트롤러(2200)로부터 어드레스(ADDR)를 입력받아 워드 라인을 선택할 수 있다.
제어 로직(2140)은 RAID 컨트롤러(2200)로부터 수신되는 제어 신호(CMD)에 기초하여 데이터 입출력 회로(2120) 및 어드레스 디코더(2130)를 제어함으로써 플래시 메모리 장치(2100)의 프로그램, 읽기, 소거 등의 동작을 제어할 수 있다. 예를 들어, 제어 로직(2140)은 프로그램 동작 시에, 어드레스 디코더(2130)를 제어하여 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(2120)를 제어하여 데이터가 이차원 플래시 메모리 셀 어레이(2110)에 프로그램되도록 할 수 있다.
도 16은 도 14의 이차원 플래시 메모리 셀 어레이에 포함되는 메모리 블록의 일 예를 나타내는 회로도이다.
도 16을 참조하면, 메모리 블록(BLK1)은 셀 스트링 구조(cell string structure)로 되어있다. 하나의 셀 스트링은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC64) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다.
도 16에서는, 하나의 메모리 블록(BLK1)이 접지 선택 라인(GSL), 스트링 선택 라인(SSL), 64개의 워드 라인들(WL1, WL2, ..., WL64) 및 2048개의 비트 라인들(BL1, BL2, ..., BL2048)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL)에 연결되고, 복수의 메모리 셀들(MC1, MC2, ..., MC64)은 복수의 워드 라인들(WL1, WL2, ..., WL64)에 연결되며, 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL)에 연결된다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL1, BL2, ..., BL2048)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(Common Source Line; CSL)에 연결된다.
하나의 워드 라인(예를 들면, WLk)(k는 64 이하의 양의 정수)에는 복수의 메모리 셀들이 연결될 수 있다. 하나의 워드 라인에 연결되어 있는 메모리 셀들의 집합을 물리 페이지(physical page)라고 한다.
이차원 플래시 메모리 셀 어레이(2110)에 포함되는 복수의 메모리 셀들은 하나의 메모리 셀에 M비트의 데이터가 저장될 수 있는 멀티 레벨 셀(Multi Level Cell; MLC)이다.
하나의 메모리 셀에 싱글 비트의 데이터를 저장할 수 있는 싱글 레벨 셀(Single Level Cell; SLC)은 문턱 전압에 따라, 소거 상태(erase state) 또는 프로그램 상태(program state)를 가질 수 있는 반면에, 이차원 플래시 메모리 셀 어레이(2110)에 포함되는 멀티 레벨 셀(MLC)은 문턱 전압에 따라, 소거 상태(erase state) 또는 복수의 프로그램 상태 중의 하나를 가질 수 있다.
이차원 플래시 메모리 셀 어레이(2110)는 M비트의 데이터가 저장될 수 있는 멀티 레벨 셀들로 구성되므로, 이차원 플래시 메모리 셀 어레이(2110)에 포함되는 하나의 물리 페이지는 제1 레벨 내지 제M 레벨의 논리 페이지들을 포함할 수 있다. 즉, 이차원 플래시 메모리 셀 어레이(2110)가 두 비트의 데이터를 저장할 수 있는 멀티 레벨 셀들을 포함하는 경우, 하나의 물리 페이지는 두 개의 논리 페이지들을 포함하고, 이차원 플래시 메모리 셀 어레이(2110)가 세 비트의 데이터를 저장할 수 있는 멀티 레벨 셀들을 포함하는 경우, 하나의 물리 페이지는 세 개의 논리 페이지들을 포함하고, 이차원 플래시 메모리 셀 어레이(2110)가 네 비트의 데이터를 저장할 수 있는 멀티 레벨 셀들을 포함하는 경우, 하나의 물리 페이지는 네 개의 논리 페이지들을 포함할 수 있다. 여기에서, 제1 레벨의 논리 페이지는 하나의 물리 페이지에 포함되는 멀티 레벨 셀들에서 최하위 비트(Least Significant Bit; LSB)에 저장되는 데이터들의 집합을 의미하고, 제M 레벨의 논리 페이지는 하나의 물리 페이지에 포함되는 멀티 레벨 셀들에서 최상위 비트(Most Significant Bit; MSB)에 저장되는 데이터들의 집합을 의미한다.
도 17 내지 20은 도 16에 도시된 멀티 레벨 셀의 문턱 전압 분포를 설명하기 위한 도면들이다.
도 17 및 18은 하나의 메모리 셀에 두 비트의 데이터가 저장되는 멀티 레벨 셀의 문턱 전압 분포를 예시적으로 나타낸다. 도 17에서, 가로축은 멀티 레벨 셀의 문턱 전압(Vth)을 나타내고, 세로축은 멀티 레벨 셀의 수(# of cells)를 나타낸다. 도 17을 참조하면, 멀티 레벨 셀은 문턱 전압 분포에 따라 네 개의 상태(E, P1, P2, P3) 중의 하나를 가질 수 있다. 여기에서, E는 소거 상태(erase state)를 나타내고, P1, P2 및 P3은 프로그램 상태(program state)를 나타낸다. 도 17에서, R1, R2 및 R3은 각 상태를 읽기 위한 읽기 전압 레벨을 나타낸다.
네 개의 상태를 갖는 멀티 레벨 셀에는 두 비트의 데이터가 저장될 수 있다. 이 경우, 도 18을 참조하면, 하나의 물리 페이지(예를 들어, 도 16의 2111)는 제1 레벨의 논리 페이지(PAGE1) 및 제2 레벨의 논리 페이지(PAGE2)를 포함할 수 있다. 소거 상태(E)를 갖는 멀티 레벨 셀은 '11'을 저장하고, 제1 프로그램 상태(P1) 상태를 갖는 멀티 레벨 셀은 '10'을 저장하고, 제2 프로그램 상태(P2) 상태를 갖는 멀티 레벨 셀은 '00'을 저장하고, 제3 프로그램 상태(P3) 상태를 갖는 멀티 레벨 셀은 '01'을 저장할 수 있다.
이차원 플래시 메모리 셀 어레이(2110)는 논리 페이지의 레벨에 따라 비트 에러율(BER; Bit Error Rate)이 서로 상이할 수 있다. 논리 페이지의 레벨이 증가할 때마다 비트 에러율(BER)은 두 배씩 증가할 수 있다. 예를 들어, 읽기 레벨마다 페일 비트(fail bit)의 개수가 동일하다고 가정하면, 제1 레벨의 논리 페이지(PAGE1)의 비트 에러율(BER)은 1이고, 제2 레벨의 논리 페이지(PAGE2)의 비트 에러율(BER)은 2일 수 있다.
도 19 및 20은 하나의 메모리 셀에 네 비트의 데이터가 저장되는 멀티 레벨 셀의 문턱 전압 분포를 예시적으로 나타낸다. 도 19에서, 가로축은 멀티 레벨 셀의 문턱 전압(Vth)을 나타내고, 세로축은 멀티 레벨 셀의 수(# of cells)를 나타낸다. 도 19를 참조하면, 멀티 레벨 셀은 문턱 전압 분포에 따라 열 여섯 개의 상태(E, P1, P2, …, P15) 중의 하나를 가질 수 있다. 여기에서, E는 소거 상태(erase state)를 나타내고, P1 내지 P15는 프로그램 상태(program state)를 나타낸다. 도 19에서, R1 내지 R15는 각 상태를 읽기 위한 읽기 전압 레벨을 나타낸다.
열 여섯 개의 상태를 갖는 멀티 레벨 셀에는 네 비트의 데이터가 저장될 수 있다. 이 경우, 도 20을 참조하면, 하나의 물리 페이지(예를 들어, 도 16의 2111)는 제1 레벨의 논리 페이지(PAGE1), 제2 레벨의 논리 페이지(PAGE2), 제3 레벨의 논리 페이지(PAGE3) 및 제4 레벨의 논리 페이지(PAGE4)를 포함할 수 있다. 소거 상태(E)를 갖는 멀티 레벨 셀은 '1111'을 저장하고, 제1 프로그램 상태(P1) 상태를 갖는 멀티 레벨 셀은 '1110'을 저장하고, 제2 프로그램 상태(P2) 상태를 갖는 멀티 레벨 셀은 '1100'을 저장하고, 제15 프로그램 상태(P15) 상태를 갖는 멀티 레벨 셀은 '0111'을 저장할 수 있다.
이차원 플래시 메모리 셀 어레이(2110)는 논리 페이지의 레벨에 따라 비트 에러율(BER; Bit Error Rate)이 서로 상이할 수 있다. 논리 페이지의 레벨이 증가할 때마다 비트 에러율(BER)은 두 배씩 증가할 수 있다. 예를 들어, 읽기 레벨마다 페일비트(fail bit)의 개수가 동일하다고 가정하면, 제1 레벨의 논리 페이지(PAGE1)의 비트 에러율(BER)은 1이고, 제2 레벨의 논리 페이지(PAGE2)의 비트 에러율(BER)은 2이고, 제3 레벨의 논리 페이지(PAGE3)의 비트 에러율(BER)은 4이고, 제4 레벨의 논리 페이지(PAGE4)의 비트 에러율(BER)은 8일 수 있다. 하나의 멀티 레벨 셀에 M비트의 데이터가 저장되는 경우, M개의 논리 페이지별 비트 에러율은 1:2:2^2:...:2^(N-1)이 될 수 있다.
다시 도 14를 참조하면, RAID 컨트롤러(2200)는 제어부(2210), 버퍼 메모리(2220), 패러티 생성부(2230), 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n), 호스트 인터페이스(2250), 메모리 인터페이스(2260) 및 레벨 혼합부(2270)를 포함할 수 있다.
호스트 인터페이스(2250)는 호스트(HOST)와 데이터를 송수신한다. 호스트 인터페이스(2250)는 호스트(HOST)의 프로토콜에 대응하여 솔리드 스테이트 드라이브(2000)와의 인터페이싱을 제공한다. 호스트 인터페이스(2250)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(HOST)와 통신할 수 있다. 또한, 호스트 인터페이스(2250)는 호스트(HOST)가 솔리드 스테이트 드라이브(2000)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
메모리 인터페이스(2260)는 제1 내지 제N 채널들(CH1, CH2, ..., CHn)을 통해 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)과 각각 데이터를 송수신한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력할 수 있다. 버퍼 메모리(2220)는 (n-1)개의 논리 페이지들에 상응하는 데이터를 버퍼링하고 이를 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))로서 출력하는 동작을 반복적으로 수행할 수 있다. 여기서, i는 버퍼 메모리(2220)로부터 순차적으로 출력되는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))의 일련번호를 나타낸다.
패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성할 수 있다. 이 때, 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)은 하나의 패러티 그룹(parity group)을 형성한다. 일 실시예에 있어서, 상기 패러티 연산은 XOR(exclusive OR) 연산일 수 있다. 이 경우, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 XOR 연산을 수행하여 제N 논리 페이지 데이터(LPDi_n)를 생성할 수 있다.
제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장할 수 있다.
제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n) 각각은 제1 내지 제M 논리 페이지 버퍼들을 포함할 수 있다. 이 경우, 도 21에 도시된 바와 같이, 제1 물리 페이지 버퍼(2240-1)는 제1 패러티 그룹에 포함되는 제1 논리 페이지 데이터(LPD1_1)를 수신하여 제1 논리 페이지 버퍼(LPB1)에 저장하고, 제2 패러티 그룹에 포함되는 제1 논리 페이지 데이터(LPD2_1)를 수신하여 제2 논리 페이지 버퍼(LPB2)에 저장하고, 제3 패러티 그룹에 포함되는 제1 논리 페이지 데이터(LPD3_1)를 수신하여 제3 논리 페이지 버퍼(LPB3)에 저장하고, 제4 패러티 그룹에 포함되는 제1 논리 페이지 데이터(LPD4_1)를 수신하여 제4 논리 페이지 버퍼(LPB4)에 저장할 수 있다. 마찬가지로, 제4 물리 페이지 버퍼(2240-4)는 제1 패러티 그룹에 포함되는 제4 논리 페이지 데이터(LPD1_4)를 수신하여 제1 논리 페이지 버퍼(LPB1)에 저장하고, 제2 패러티 그룹에 포함되는 제4 논리 페이지 데이터(LPD2_4)를 수신하여 제2 논리 페이지 버퍼(LPB2)에 저장하고, 제3 패러티 그룹에 포함되는 제4 논리 페이지 데이터(LPD3_4)를 수신하여 제3 논리 페이지 버퍼(LPB3)에 저장하고, 제4 패러티 그룹에 포함되는 제4 논리 페이지 데이터(LPD4_4)를 수신하여 제4 논리 페이지 버퍼(LPB4)에 저장할 수 있다. 도 21은 N이 4이고 M이 4인 경우에 대해 도시하고 있으나, 실시예에 따라서 N 및 M은 4보다 클 수도 있고 적을 수도 있다.
레벨 혼합부(2270)는 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n) 중에서 적어도 하나의 물리 페이지 버퍼에 대해 상기 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 바꾸어 저장할 수 있다. 예를 들어, 레벨 혼합부(2270)는 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n) 중에서 일부의 물리 페이지 버퍼들에 대해 상기 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장할 수 있다.
도 22 및 23은 도 14의 솔리드 스테이트 드라이브에 포함되는 레벨 혼합부의 동작을 설명하기 위한 도면이다.
일 실시예에 있어서, 레벨 혼합부(2270)는 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해서만 순차적으로 저장된 M개의 논리 페이지 데이터들(LPD1_4, LPD2_4, LPD3_4, LPD4_4)의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 도 22에 도시된 바와 같이, 레벨 혼합부(2270)는 제4 물리 페이지 버퍼(2240-4)에 대해서만 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
다른 실시예에 있어서, 레벨 혼합부(2270)는 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4) 및 제3 논리 페이지 데이터(LPDi_3)가 저장되는 제3 물리 페이지 버퍼(2240-3)에 대해서 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 도 23에 도시된 바와 같이, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼들(2240-3, 2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 하나의 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정하고, 메모리 인터페이스(2260)를 제어하여 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)의 제1 내지 제M 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 M개의 논리 페이지 데이터들을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들의 상기 제1 내지 제M 레벨의 논리 페이지들에 각각 저장할 수 있다. 예를 들어, 제어부(2210)는 제J(J는 N 이하의 양의 정수) 물리 페이지 버퍼(2240-j)의 제1 내지 제M 논리 페이지 버퍼들에 저장된 M개의 논리 페이지 데이터들을 상기 제J 비휘발성 메모리 장치(2100-j)로부터 선택된 상기 제J 물리 페이지의 상기 제1 내지 제M 레벨의 논리 페이지들에 각각 저장할 수 있다.
상술한 바와 같이, RAID 컨트롤러(2200)는 호스트(HOST)로부터 제공되는 데이터에 대해 패러티 데이터를 생성하고, 호스트(HOST)로부터 제공되는 데이터를 제1 내지 제(N-1) 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-(n-1))에 분산하여 저장하고, 상기 패러티 데이터를 제N 비휘발성 메모리 장치(2100-n)에 저장할 수 있다.
따라서, 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 중에서 일부 비휘발성 메모리 장치에 물리적인 에러가 발생하여 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n) 중에서 일부의 데이터가 손상되는 경우에도, RAID 컨트롤러(2200)는 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n) 중에서 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)로부터 독출되는 손상되지 않은 나머지 논리 페이지 데이터들에 대해 상기 패러티 연산을 수행함으로써 상기 손상된 일부의 논리 페이지 데이터를 복원할 수 있다.
이 때, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n) 중에서 상기 패러티 연산에 따른 한계 개수 이상의 논리 페이지 데이터들이 손상된 경우에는 상기 패러티 연산을 통해서 상기 손상된 논리 페이지 데이터를 복원할 수 없게 된다. 솔리드 스테이트 드라이브(2000)의 전체적인 데이터 복원률은 손상된 논리 페이지 데이터를 복원하지 못하는 빈도수에 의해 결정되므로, 솔리드 스테이트 드라이브(2000)의 전체적인 데이터 복원률을 향상시키기 위해서는 높은 비트 에러율(BER)을 갖는 패러티 그룹의 개수를 줄이는 것이 필요하다.
제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)에서 각각의 물리 페이지에 포함되는 복수의 논리 페이지들은 레벨에 따라 서로 상이한 비트 에러율(BER)을 가지므로, 하나의 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)이 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)에서 동일한 레벨의 논리 페이지에 저장된다면, 높은 비트 에러율(BER)을 갖는 레벨의 논리 페이지에 저장되는 패러티 그룹은 낮은 비트 에러율(BER)을 갖는 레벨의 논리 페이지에 저장되는 패러티 그룹에 비해 데이터 복원률이 떨어지게 된다.
그러나, 본 발명의 실시예들에 따른 솔리드 스테이트 드라이브(2000)의 경우, 레벨 혼합부(2270)는 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n) 중에서 일부의 물리 페이지 버퍼들에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하고, 제어부(2210)는 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)의 제1 내지 제M 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 M개의 논리 페이지 데이터들을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들의 상기 제1 내지 제M 레벨의 논리 페이지들에 각각 저장하므로, 하나의 패러티 그룹을 형성하는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)은 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들에서 상대적으로 상위 레벨을 갖는 논리 페이지와 상대적으로 하위 레벨을 갖는 논리 페이지에 분산되어 저장될 수 있다. 따라서, 상기 패러티 그룹들 간의 비트 에러율(BER)의 불균형이 완화되어 손상된 논리 페이지 데이터를 복원하지 못하는 빈도수가 감소하므로, 솔리드 스테이트 드라이브(2000)의 전체적인 데이터 복원률이 향상될 수 있다.
일 실시예에 있어서, 제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 복수의 워드 라인들(WLs) 중에서 상기 기판에 수평한 방향으로 동일한 순서에 형성되는 워드 라인에 연결되는 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
도 24 및 25는 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 각각이 복수의 워드 라인들(WLs) 중에서 상기 기판에 수평한 방향으로 동일한 순서에 형성되는 워드 라인에 연결되는 경우의 도 14의 솔리드 스테이트 드라이브(2000)의 동작을 설명하기 위한 도면들이다.
도 24 및 25에서 솔리드 스테이트 드라이브(2000)는 네 개의 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)을 포함하고(즉, N=4), 각각의 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에 포함되는 이차원 플래시 메모리 셀 어레이(2110)는 64개의 워드 라인들(WL1, WL2, ..., WL64)에 연결되는 것으로 도시된다. 그러나, 본 발명은 이에 국한되지 않는다.
도 24는 RAID 컨트롤러(2200)에 포함되는 레벨 혼합부(2270)가, 도 22에 도시된 바와 같이, 제4 물리 페이지 버퍼(2240-4)에 대해서만 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하는 경우를 나타낸다.
이하, 도 14 내지 22 및 24를 참조하여 솔리드 스테이트 드라이브(2000)의 예시적인 동작에 대해 설명한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력하고, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은, 도 21에 도시된 바와 같이, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장한다.
레벨 혼합부(2270)는, 도 22에 도시된 바와 같이, 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들(LPD1_4, LPD2_4, LPD3_4, LPD4_4)의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 레벨 혼합부(2270)는 제4 물리 페이지 버퍼(2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 동일한 순서의 워드 라인에 연결되는 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
예를 들어, 도 24에 도시된 바와 같이, 제어부(2210)는 제1 내지 제4 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
이 때, 레벨 혼합부(2270)는 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하므로, 제1 패러티 그룹(PARITY GROUP 1)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD1_1, LPD1_2, LPD1_3)은 제1 레벨(L1)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD1_4)는 제4 레벨(L4)의 논리 페이지에 저장되고, 제2 패러티 그룹(PARITY GROUP 2)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD2_1, LPD2_2, LPD2_3)은 제2 레벨(L2)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD2_4)는 제3 레벨(L3)의 논리 페이지에 저장되고, 제3 패러티 그룹(PARITY GROUP 3)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD3_1, LPD3_2, LPD3_3)은 제3 레벨(L3)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD3_4)는 제2 레벨(L2)의 논리 페이지에 저장되고, 제4 패러티 그룹(PARITY GROUP 4)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD4_1, LPD4_2, LPD4_3)은 제4 레벨(L4)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD4_4)는 제1 레벨(L1)의 논리 페이지에 저장될 수 있다.
이와 마찬가지 방식으로, 제어부(2210)는 제1 내지 제4 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에서 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제5 내지 제8 패러티 그룹들(PARITY GROUP 5, PARITY GROUP 6, PARITY GROUP 7, PARITY GROUP 8)의 논리 페이지 데이터들을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장하고, 제1 내지 제4 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에서 제64 워드 라인(WL64)에 연결되는 물리 페이지를 선택하여 제64 물리 페이지 그룹(PPG64)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제253 내지 제256 패러티 그룹들(PARITY GROUP 253, PARITY GROUP 254, PARITY GROUP 255, PARITY GROUP 256)의 논리 페이지 데이터들을 제64 물리 페이지 그룹(PPG64)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
도 25는 RAID 컨트롤러(2200)에 포함되는 레벨 혼합부(2270)가, 도 23에 도시된 바와 같이, 제3 및 제4 물리 페이지 버퍼(2240-3, 2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하는 경우를 나타낸다.
이하, 도 14 내지 21, 23 및 25를 참조하여 솔리드 스테이트 드라이브(2000)의 예시적인 동작에 대해 설명한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력하고, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은, 도 21에 도시된 바와 같이, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장한다.
레벨 혼합부(2270)는, 도 23에 도시된 바와 같이, 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4) 및 제3 논리 페이지 데이터(LPDi_3)가 저장되는 제3 물리 페이지 버퍼(2240-3)에 대해서 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼들(2240-3, 2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 동일한 순서의 워드 라인에 연결되는 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
예를 들어, 도 25에 도시된 바와 같이, 제어부(2210)는 제1 내지 제4 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
이 때, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼(2240-3, 2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하므로, 제1 패러티 그룹(PARITY GROUP 1)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD1_1, LPD1_2)은 제1 레벨(L1)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD1_3, LPD1_4)은 제4 레벨(L4)의 논리 페이지에 저장되고, 제2 패러티 그룹(PARITY GROUP 2)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD2_1, LPD2_2)은 제2 레벨(L2)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD2_3, LPD2_4)은 제3 레벨(L3)의 논리 페이지에 저장되고, 제3 패러티 그룹(PARITY GROUP 3)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD3_1, LPD3_2)은 제3 레벨(L3)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD3_3, LPD3_4)은 제2 레벨(L2)의 논리 페이지에 저장되고, 제4 패러티 그룹(PARITY GROUP 4)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD4_1, LPD4_2)은 제4 레벨(L4)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD4_3, LPD4_4)은 제1 레벨(L1)의 논리 페이지에 저장될 수 있다.
이와 동일한 방식으로, 제어부(2210)는 제1 내지 제4 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에서 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제5 내지 제8 패러티 그룹들(PARITY GROUP 5, PARITY GROUP 6, PARITY GROUP 7, PARITY GROUP 8)의 논리 페이지 데이터들을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장하고, 제1 내지 제4 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에서 제64 워드 라인(WL64)에 연결되는 물리 페이지를 선택하여 제64 물리 페이지 그룹(PPG64)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제253 내지 제256 패러티 그룹들(PARITY GROUP 253, PARITY GROUP 254, PARITY GROUP 255, PARITY GROUP 256)의 논리 페이지 데이터들을 제64 물리 페이지 그룹(PPG64)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
한편, 이차원 플래시 메모리 셀 어레이(2110)의 경우 최하위의 워드 라인(WL1)에 연결되는 물리 페이지는 나머지 워드 라인들에 연결되는 물리 페이지들에 비해 상대적으로 높은 비트 에러율(BER)을 가질 수 있다. 서로 다른 순서의 워드 라인에 연결되는 물리 페이지들 간의 비트 에려율(BER)의 불균형을 완화시키기 위해, 다른 실시예에 있어서, 제어부(2210)는 적어도 두 개의 물리 페이지들은 복수의 워드 라인들(WLs) 중에서 상기 기판에 수평한 방향으로 서로 상이한 순서에 형성되는 워드 라인에 연결되도록 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 하나의 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
예를 들어, 제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 중의 일부 비휘발성 메모리 장치들에 대해서는 최하위 워드 라인(WL1)에 연결되는 물리 페이지로부터 최상위 워드 라인(WL64)에 연결되는 물리 페이지의 순서로 선택하고, 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 중의 나머지 비휘발성 메모리 장치들에 대해서는 최상위 워드 라인(WL64)에 연결되는 물리 페이지를 먼저 선택하고 이후 최하위 워드 라인(WL1)에 연결되는 물리 페이지로부터 차상위 워드 라인(WL63)에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
도 26 및 27은 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 복수의 워드 라인들(WLs) 중에서 상기 기판에 수평한 방향으로 서로 상이한 순서에 형성되는 워드 라인에 연결되는 경우의 도 14의 솔리드 스테이트 드라이브(2000)의 동작을 설명하기 위한 도면들이다.
도 26 및 27에서 솔리드 스테이트 드라이브(2000)는 네 개의 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)을 포함하고(즉, N=4), 각각의 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에 포함되는 이차원 플래시 메모리 셀 어레이(2110)는 64개의 워드 라인들(WL1, WL2, ..., WL64)에 연결되는 것으로 도시된다. 그러나, 본 발명은 이에 국한되지 않는다.
도 26은 RAID 컨트롤러(2200)에 포함되는 레벨 혼합부(2270)가, 도 22에 도시된 바와 같이, 제4 물리 페이지 버퍼(2240-4)에 대해서만 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하는 경우를 나타낸다.
이하, 도 14 내지 22 및 26을 참조하여 솔리드 스테이트 드라이브(2000)의 예시적인 동작에 대해 설명한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력하고, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은, 도 21에 도시된 바와 같이, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장한다.
레벨 혼합부(2270)는, 도 22에 도시된 바와 같이, 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들(LPD1_4, LPD2_4, LPD3_4, LPD4_4)의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 레벨 혼합부(2270)는 제4 물리 페이지 버퍼(2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 적어도 두 개의 물리 페이지들은 서로 상이한 순서의 워드 라인에 연결되도록 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 하나의 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
예를 들어, 도 26에 도시된 바와 같이, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고 제4 비휘발성 메모리 장치(2100-4)에서 제64 워드 라인(WL64)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정한다. 이차원 플래시 메모리 셀 어레이(2110)의 경우 최하위 워드 라인(WL1)에서부터 최상위 워드 라인(WL64)의 순서로 프로그램 하므로, 제어부(2210)는 제1 내지 제3 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)의 물리 페이지들에 각각 저장하고, 제4 물리 페이지 버퍼(2240-4)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들은 제4 비휘발성 메모리 장치(2100-4)의 제64 워드 라인에 연결되는 물리 페이지에 저장하지 않고 임시 버퍼에 임시로 저장한다.
이후, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하고 제4 비휘발성 메모리 장치(2100-4)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제5 내지 제8 패러티 그룹들(PARITY GROUP 5, PARITY GROUP 6, PARITY GROUP 7, PARITY GROUP 8)의 논리 페이지 데이터들을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장한다.
이 때, 레벨 혼합부(2270)는 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하므로, 제5 패러티 그룹(PARITY GROUP 5)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD5_1, LPD5_2, LPD5_3)은 제1 레벨(L1)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD5_4)는 제4 레벨(L4)의 논리 페이지에 저장되고, 제6 패러티 그룹(PARITY GROUP 6)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD6_1, LPD6_2, LPD6_3)은 제2 레벨(L2)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD6_4)는 제3 레벨(L3)의 논리 페이지에 저장되고, 제7 패러티 그룹(PARITY GROUP 7)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD7_1, LPD7_2, LPD7_3)은 제3 레벨(L3)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD7_4)는 제2 레벨(L2)의 논리 페이지에 저장되고, 제8 패러티 그룹(PARITY GROUP 8)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD8_1, LPD8_2, LPD8_3)은 제4 레벨(L4)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD8_4)는 제1 레벨(L1)의 논리 페이지에 저장될 수 있다.
이후, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서는 제3 워드 라인(WL3)에 연결되는 물리 페이지로부터 제63 워드 라인(WL63)에 연결되는 물리 페이지의 순서로 선택하고 제4 비휘발성 메모리 장치(2100-4)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지로부터 제62 워드 라인(WL62)에 연결되는 물리 페이지의 순서로 선택하여 제3 내지 제63 물리 페이지 그룹들(PPG3, PPG4, ..., PPG63)을 결정하고, 네 개의 패러티 그룹들의 논리 페이지 데이터들을 상응하는 물리 페이지 그룹에 각각 저장할 수 있다.
마지막으로, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서 제64 워드 라인(WL64)에 연결되는 물리 페이지를 선택하고 제4 비휘발성 메모리 장치(2100-4)에서 제63 워드 라인(WL63)에 연결되는 물리 페이지를 선택하여 제64 물리 페이지 그룹(PPG64)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제253 내지 제256 패러티 그룹들(PARITY GROUP 253, PARITY GROUP 254, PARITY GROUP 255, PARITY GROUP 256)의 논리 페이지 데이터들을 제64 물리 페이지 그룹(PPG64)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
이후, 제어부(2210)는 상기 임시 버퍼에 임시로 저장된 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 제4 비휘발성 메모리 장치(2100-4)의 제64 워드 라인(WL64)에 연결되는 물리 페이지에 저장할 수 있다.
도 27은 RAID 컨트롤러(2200)에 포함되는 레벨 혼합부(2270)가, 도 23에 도시된 바와 같이, 제3 및 제4 물리 페이지 버퍼(2240-3, 2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하는 경우를 나타낸다.
이하, 도 14 내지 21, 23 및 27을 참조하여 솔리드 스테이트 드라이브(2000)의 예시적인 동작에 대해 설명한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력하고, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은, 도 21에 도시된 바와 같이, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장한다.
레벨 혼합부(2270)는, 도 23에 도시된 바와 같이, 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4) 및 제3 논리 페이지 데이터(LPDi_3)가 저장되는 제3 물리 페이지 버퍼(2240-3)에 대해서 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼들(2240-3, 2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 적어도 두 개의 물리 페이지들은 서로 상이한 순서의 워드 라인에 연결되도록 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 하나의 물리 페이지를 선택하여 상기 제1 내지 제N 물리 페이지들을 포함하는 상기 물리 페이지 그룹을 결정할 수 있다.
예를 들어, 도 27에 도시된 바와 같이, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)에서 제64 워드 라인(WL64)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정한다. 이차원 플래시 메모리 셀 어레이(2110)의 경우 최하위 워드 라인(WL1)에서부터 최상위 워드 라인(WL64)의 순서로 프로그램 하므로, 제어부(2210)는 제1 및 제2 물리 페이지 버퍼들(2240-1, 2240-2)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)의 물리 페이지들에 각각 저장하고, 제3 및 제4 물리 페이지 버퍼들(2240-3, 2240-4)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들은 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)의 제64 워드 라인에 연결되는 물리 페이지에 저장하지 않고 임시 버퍼에 임시로 저장한다.
이후, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하고 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제5 내지 제8 패러티 그룹들(PARITY GROUP 5, PARITY GROUP 6, PARITY GROUP 7, PARITY GROUP 8)의 논리 페이지 데이터들을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장한다.
이 때, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼들(2240-3, 2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하므로, 제5 패러티 그룹(PARITY GROUP 5)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD5_1, LPD5_2)은 제1 레벨(L1)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD5_3, LPD5_4)은 제4 레벨(L4)의 논리 페이지에 저장되고, 제6 패러티 그룹(PARITY GROUP 6)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD6_1, LPD6_2)은 제2 레벨(L2)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD6_3, LPD6_4)은 제3 레벨(L3)의 논리 페이지에 저장되고, 제7 패러티 그룹(PARITY GROUP 7)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD7_1, LPD7_2)은 제3 레벨(L3)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD7_3, LPD7_4)은 제2 레벨(L2)의 논리 페이지에 저장되고, 제8 패러티 그룹(PARITY GROUP 8)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD8_1, LPD8_2)은 제4 레벨(L4)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD8_3, LPD8_4)은 제1 레벨(L1)의 논리 페이지에 저장될 수 있다.
이후, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서는 제3 워드 라인(WL3)에 연결되는 물리 페이지로부터 제63 워드 라인(WL63)에 연결되는 물리 페이지의 순서로 선택하고 제3 및 제4 비휘발성 메모리 장치(2100-3, 2100-4)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지로부터 제62 워드 라인(WL62)에 연결되는 물리 페이지의 순서로 선택하여 제3 내지 제63 물리 페이지 그룹들(PPG3, PPG4, ..., PPG63)을 결정하고, 네 개의 패러티 그룹들의 논리 페이지 데이터들을 상응하는 물리 페이지 그룹에 각각 저장할 수 있다.
마지막으로, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서 제64 워드 라인(WL64)에 연결되는 물리 페이지를 선택하고 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)에서 제63 워드 라인(WL63)에 연결되는 물리 페이지를 선택하여 제64 물리 페이지 그룹(PPG64)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제253 내지 제256 패러티 그룹들(PARITY GROUP 253, PARITY GROUP 254, PARITY GROUP 255, PARITY GROUP 256)의 논리 페이지 데이터들을 제64 물리 페이지 그룹(PPG64)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
이후, 제어부(2210)는 상기 임시 버퍼에 임시로 저장된 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)의 제64 워드 라인(WL64)에 연결되는 물리 페이지에 저장할 수 있다.
상기와 같은 방식으로 솔리드 스테이트 드라이브(2000)는 하나의 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 서로 상이한 레벨의 논리 페이지들에 분산하여 저장함으로써 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 완화시켜 솔리드 스테이트 드라이브(2000)의 전체적인 데이터 복원률이 향상될 수 있다.
또한, 솔리드 스테이트 드라이브(2000)는 하나의 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 서로 상이한 레벨의 논리 페이지들에 분산함과 동시에 서로 상이한 순서의 워드 라인에 연결되는 물리 페이지에 분산하여 저장함으로써 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 더욱 완화시켜 솔리드 스테이트 드라이브(2000)의 전체적인 데이터 복원률이 보다 향상될 수 있다.
도 28은 도 14의 솔리드 스테이트 드라이브에 포함되는 비휘발성 메모리 장치들의 다른 예를 나타내는 블록도이다.
도 14의 솔리드 스테이트 드라이브(2000)에 포함되는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각은 도 28에 도시되는 플래시 메모리 장치(2100a)로 구현될 수 있다.
도 28을 참조하면, 플래시 메모리 장치(2100a)는 삼차원 플래시 메모리 셀 어레이(2110a), 데이터 입출력 회로(2120), 어드레스 디코더(2130) 및 제어 로직(2140)을 포함할 수 있다.
삼차원 플래시 메모리 셀 어레이(2110a)는 기판 상에 삼차원 구조로 형성될 수 있다. 이차원 구조를 갖는 플래시 메모리 셀 어레이의 경우 메모리 셀들이 기판과 수평한 방향으로 형성되나, 삼차원 구조를 갖는 플래시 메모리 셀 어레이의 경우 메모리 셀들이 기판과 수직한 방향으로 형성될 수 있다. 삼차원 플래시 메모리 셀 어레이(2110a)는 상기 기판에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들(WLs)에 연결되는 복수의 물리 페이지들을 포함할 수 있다.
삼차원 플래시 메모리 셀 어레이(2110a)는 복수의 메모리 블록들(BLK1~BLKz)(z는 양의 정수)을 포함할 수 있다. 복수의 메모리 블록들(BLK1~BLKz) 각각은 복수의 물리 페이지들로 구성되고, 복수의 물리 페이지들 각각은 복수의 멀티 레벨 셀(Multi Level Cell; MLC)들로 구성된다. 복수의 멀티 레벨 셀들 각각은 M비트의 데이터를 저장한다. 따라서 삼차원 플래시 메모리 셀 어레이(2110a)에 포함되는 하나의 물리 페이지는 제1 레벨 내지 제M 레벨의 논리 페이지들을 포함할 수 있다. 삼차원 플래시 메모리 셀 어레이(2110a)는 블록 단위로 소거 동작을 수행하고, 물리 페이지 단위로 쓰기 및 읽기 동작을 수행한다.
삼차원 플래시 메모리 셀 어레이(2110a)의 구조 및 동작에 대해서는 도 3 내지 8을 참조하여 상세히 설명하였고, 삼차원 플래시 메모리 셀 어레이(2110a)에 포함되는 멀티 레벨 셀(MLC)의 동작에 대해서는 도 16 내지 20을 참조하여 상세히 설명하였으므로, 여기서는 삼차원 플래시 메모리 셀 어레이(2110a)에 대한 상세한 설명은 생략한다.
데이터 입출력 회로(2120)는 복수의 비트 라인들(BLs)을 통해 삼차원 플래시 메모리 셀 어레이(2110a)와 연결될 수 있다. 데이터 입출력 회로(2120)는 RAID 컨트롤러(2200)로부터 데이터(DATA)를 입력받고, 삼차원 플래시 메모리 셀 어레이(2110a)로부터 읽은 데이터(DATA)를 RAID 컨트롤러(2200)로 출력할 수 있다.
어드레스 디코더(2130)는 복수의 워드 라인들(WLs), 스트링 선택 라인(SSL) 및 접지 선택 라인(GSL)을 통해 삼차원 플래시 메모리 셀 어레이(2110a)와 연결될 수 있다. 어드레스 디코더(2130)는 RAID 컨트롤러(2200)로부터 어드레스(ADDR)를 입력받아 워드 라인을 선택할 수 있다.
제어 로직(2140)은 RAID 컨트롤러(2200)로부터 수신되는 제어 신호(CMD)에 기초하여 데이터 입출력 회로(2120) 및 어드레스 디코더(2130)를 제어함으로써 플래시 메모리 장치(2100a)의 프로그램, 읽기, 소거 등의 동작을 제어할 수 있다. 예를 들어, 제어 로직(2140)은 프로그램 동작 시에, 어드레스 디코더(2130)를 제어하여 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(2120)를 제어하여 데이터가 삼차원 플래시 메모리 셀 어레이(2110a)에 프로그램되도록 할 수 있다.
도 2 내지 8을 참조하여 상술한 바와 같이, 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)에 포함되는 메모리 셀 어레이가 삼차원 구조를 갖는 삼차원 플래시 메모리 셀 어레이(2110a)로 구현되는 경우, 서로 상이한 높이의 워드 라인에 연결되는 물리 페이지들은 서로 상이한 비트 에러율(BER)을 가질 수 있다. 따라서 제어부(2210)가 결정하는 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 기판으로부터 서로 상이한 높이의 워드 라인에 연결될 수 있다.
일 실시예에 있어서, 제어부(2210)는 기판(SUB)에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들(WLs) 중에서 제1 높이의 워드 라인 및 제2 높이의 워드 라인을 선택하고, 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 상기 제1 및 제2 높이의 워드 라인들 중의 하나에 연결되는 물리 페이지를 선택하여 상기 물리 페이지 그룹을 결정할 수 있다. 이 경우, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 일부의 물리 페이지는 상기 제1 높이의 워드 라인에 연결되고, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 나머지 물리 페이지는 상기 제2 높이의 워드 라인에 연결될 수 있다.
도 29 및 30은 도 14의 솔리드 스테이트 드라이브가 도 28의 비휘발성 메모리 장치들을 포함하는 경우에 도 14의 솔리드 스테이트 드라이브의 동작을 설명하기 위한 도면들이다.
도 29 및 30에서 솔리드 스테이트 드라이브(2000)는 네 개의 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)을 포함하고(즉, N=4), 각각의 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3, 2100-4)에 포함되는 삼차원 플래시 메모리 셀 어레이(2110a)는 여덟 개의 워드 라인들(WL1, WL2, ..., WL8)에 연결되는 것으로 도시된다. 그러나, 본 발명은 이에 국한되지 않는다.
도 29는 RAID 컨트롤러(2200)에 포함되는 레벨 혼합부(2270)가, 도 22에 도시된 바와 같이, 제4 물리 페이지 버퍼(2240-4)에 대해서만 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하는 경우를 나타낸다.
이하, 도 14, 21, 22 및 29를 참조하여 솔리드 스테이트 드라이브(2000)의 예시적인 동작에 대해 설명한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력하고, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은, 도 21에 도시된 바와 같이, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장한다.
레벨 혼합부(2270)는, 도 22에 도시된 바와 같이, 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들(LPD1_4, LPD2_4, LPD3_4, LPD4_4)의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 레벨 혼합부(2270)는 제4 물리 페이지 버퍼(2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 중의 일부 비휘발성 메모리 장치들에 대해서는 최저 높이의 워드 라인에 연결되는 물리 페이지로부터 최고 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 중의 나머지 비휘발성 메모리 장치들에 대해서는 최고 높이의 워드 라인에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
일 실시예에 있어서, 도 29에 도시된 바와 같이, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에 대해서는 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지로부터 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지의 순서로 선택하고, 제4 비휘발성 메모리 장치(2100-4)에 대해서는 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
도 29를 참조하면, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고 제4 비휘발성 메모리 장치(2100-4)에서 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
이 때, 레벨 혼합부(2270)는 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하므로, 제1 패러티 그룹(PARITY GROUP 1)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD1_1, LPD1_2, LPD1_3)은 제1 레벨(L1)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD1_4)는 제4 레벨(L4)의 논리 페이지에 저장되고, 제2 패러티 그룹(PARITY GROUP 2)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD2_1, LPD2_2, LPD2_3)은 제2 레벨(L2)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD2_4)는 제3 레벨(L3)의 논리 페이지에 저장되고, 제3 패러티 그룹(PARITY GROUP 3)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD3_1, LPD3_2, LPD3_3)은 제3 레벨(L3)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD3_4)는 제2 레벨(L2)의 논리 페이지에 저장되고, 제4 패러티 그룹(PARITY GROUP 4)에 포함되는 제1 내지 제3 논리 페이지 데이터들(LPD4_1, LPD4_2, LPD4_3)은 제4 레벨(L4)의 논리 페이지에 저장되고 제4 논리 페이지 데이터(LPD4_4)는 제1 레벨(L1)의 논리 페이지에 저장될 수 있다.
이후, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지로부터 제7 워드 라인(WL7)에 연결되는 물리 페이지의 순서로 선택하고 제4 비휘발성 메모리 장치(2100-4)에서는 제7 워드 라인(WL7)에 연결되는 물리 페이지로부터 제2 워드 라인(WL2)에 연결되는 물리 페이지의 순서로 선택하여 제2 내지 제7 물리 페이지 그룹들(PPG2, PPG3, ..., PPG67)을 결정하고, 네 개의 패러티 그룹들의 논리 페이지 데이터들을 상응하는 물리 페이지 그룹에 각각 저장할 수 있다.
마지막으로, 제어부(2210)는 제1 내지 제3 비휘발성 메모리 장치들(2100-1, 2100-2, 2100-3)에서 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하고 제4 비휘발성 메모리 장치(2100-4)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제8 물리 페이지 그룹(PPG8)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제29 내지 제32 패러티 그룹들(PARITY GROUP 29, PARITY GROUP 30, PARITY GROUP 31, PARITY GROUP 32)의 논리 페이지 데이터들을 제8 물리 페이지 그룹(PPG8)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
도 30은 RAID 컨트롤러(2200)에 포함되는 레벨 혼합부(2270)가, 도 23에 도시된 바와 같이, 제3 및 제4 물리 페이지 버퍼(2240-3, 2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하는 경우를 나타낸다.
이하, 도 14, 21, 23 및 30을 참조하여 솔리드 스테이트 드라이브(2000)의 예시적인 동작에 대해 설명한다.
버퍼 메모리(2220)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 출력하고, 패러티 생성부(2230)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(2240-1, 2240-2, ..., 2240-n)은, 도 21에 도시된 바와 같이, 상기 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 각각 M회 수신하여 순차적으로 저장한다.
레벨 혼합부(2270)는, 도 23에 도시된 바와 같이, 패러티 데이터인 제4 논리 페이지 데이터(LPDi_4)가 저장되는 제4 물리 페이지 버퍼(2240-4) 및 제3 논리 페이지 데이터(LPDi_3)가 저장되는 제3 물리 페이지 버퍼(2240-3)에 대해서 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장할 수 있다. 즉, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼들(2240-3, 2240-4)에 대해 제1 내지 제4 논리 페이지 버퍼들(LPB1, LPB2, LPB3, LPB4)에 저장된 논리 페이지 데이터를 각각 제4 내지 제1 논리 페이지 버퍼들(LPB4, LPB3, LPB2, LPB1)로 이동 저장할 수 있다.
제어부(2210)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 중의 일부 비휘발성 메모리 장치들에 대해서는 최저 높이의 워드 라인에 연결되는 물리 페이지로부터 최고 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n) 중의 나머지 비휘발성 메모리 장치들에 대해서는 최고 높이의 워드 라인에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
일 실시예에 있어서, 도 30에 도시된 바와 같이, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에 대해서는 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지로부터 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지의 순서로 선택하고, 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)에 대해서는 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
도 30을 참조하면, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고 제3 및 제4 비휘발성 메모리 장치들(2100-3, 2100-4)에서 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제1 내지 제4 패러티 그룹들(PARITY GROUP 1, PARITY GROUP 2, PARITY GROUP 3, PARITY GROUP 4)의 논리 페이지 데이터들을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
이 때, 레벨 혼합부(2270)는 제3 및 제4 물리 페이지 버퍼(2240-3, 2240-4)에 대해 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 역순으로 바꾸어 저장하므로, 제1 패러티 그룹(PARITY GROUP 1)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD1_1, LPD1_2)은 제1 레벨(L1)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD1_3, LPD1_4)은 제4 레벨(L4)의 논리 페이지에 저장되고, 제2 패러티 그룹(PARITY GROUP 2)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD2_1, LPD2_2)은 제2 레벨(L2)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터(LPD2_3, LPD2_4)는 제3 레벨(L3)의 논리 페이지에 저장되고, 제3 패러티 그룹(PARITY GROUP 3)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD3_1, LPD3_2)은 제3 레벨(L3)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터들(LPD3_3, LPD3_4)은 제2 레벨(L2)의 논리 페이지에 저장되고, 제4 패러티 그룹(PARITY GROUP 4)에 포함되는 제1 및 제2 논리 페이지 데이터들(LPD4_1, LPD4_2)은 제4 레벨(L4)의 논리 페이지에 저장되고 제3 및 제4 논리 페이지 데이터(LPD4_3, LPD4_4)는 제1 레벨(L1)의 논리 페이지에 저장될 수 있다.
이후, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지로부터 제7 워드 라인(WL7)에 연결되는 물리 페이지의 순서로 선택하고 제3 및 제4 비휘발성 메모리 장치(2100-3, 2100-4)에서는 제7 워드 라인(WL7)에 연결되는 물리 페이지로부터 제2 워드 라인(WL2)에 연결되는 물리 페이지의 순서로 선택하여 제2 내지 제7 물리 페이지 그룹들(PPG2, PPG3, ..., PPG67)을 결정하고, 네 개의 패러티 그룹들의 논리 페이지 데이터들을 상응하는 물리 페이지 그룹에 각각 저장할 수 있다.
마지막으로, 제어부(2210)는 제1 및 제2 비휘발성 메모리 장치들(2100-1, 2100-2)에서 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하고 제3 및 제4 비휘발성 메모리 장치(2100-3, 2100-4)에서 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제8 물리 페이지 그룹(PPG8)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(2240-1, 2240-2, 2240-3, 2240-4)에 저장되어 있는 제29 내지 제32 패러티 그룹들(PARITY GROUP 29, PARITY GROUP 30, PARITY GROUP 31, PARITY GROUP 32)의 논리 페이지 데이터들을 제8 물리 페이지 그룹(PPG8)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
상기와 같은 방식으로 솔리드 스테이트 드라이브(2000)가 멀티 레벨 셀(MLC)을 포함하고 삼차원 구조로 형성되는 삼차원 플래시 메모리 셀 어레이(2110a)를 포함하는 플래시 메모리 장치들로 구성되는 경우, 솔리드 스테이트 드라이브(2000)는 하나의 패러티 그룹에 포함되는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 서로 상이한 레벨의 논리 페이지들에 분산함과 동시에 서로 상이한 높이의 워드 라인에 연결되는 물리 페이지에 분산하여 저장함으로써 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 더욱 완화시켜 솔리드 스테이트 드라이브(2000)의 전체적인 데이터 복원률이 보다 향상될 수 있다.
도 31은 도 14의 솔리드 스테이트 드라이브의 데이터 저장 방법을 나타내는 순서도이다.
도 31을 참조하면, RAID 컨트롤러(2200)는 호스트(HOST)로부터 제공되는 데이터를 논리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))을 생성한다(단계 S210).
RAID 컨트롤러(2200)는 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대해 패러티(parity) 연산을 수행하여 제1 내지 제(N-1) 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 논리 페이지 데이터(LPDi_n)를 생성한다(단계 S220). 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)은 하나의 패러티 그룹(parity group)을 형성한다.
RAID 컨트롤러(2200)는 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n) 각각으로부터 하나의 물리 페이지를 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고(단계 S230), 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 각각으로부터 서로 상이한 레벨의 논리 페이지를 하나씩 선택한다(단계S240). 일 실시예에 있어서, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들로부터 하나씩 선택되는 논리 페이지들 각각은 제1 내지 제M 레벨 중에서 선택되는 두 레벨 중의 어느 한 레벨을 가질 수 있다.
RAID 컨트롤러(2200)는 제1 내지 제N 논리 페이지 데이터들(LPDi_1, LPDi_2, ..., LPDi_n)을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들로부터 상기 하나씩 선택된 논리 페이지에 각각 저장한다(단계 S250).
도 31의 솔리드 스테이트 드라이브의 데이터 저장 방법은 도 14의 솔리드 스테이트 드라이브(2000)에 의해 수행될 수 있다. 도 14의 솔리드 스테이트 드라이브(2000)의 구성 및 동작에 대해서는 도 14 내지 30을 참조하여 상세히 설명하였으므로, 여기서는 도 31에 도시되는 솔리드 스테이트 드라이브의 데이터 저장 방법의 각 단계에 대한 상세한 설명은 생략한다.
본 발명의 실시예들에 따른 솔리드 스테이트 드라이브의 데이터 저장 방법은 제1 내지 제N 비휘발성 메모리 장치들(2100-1, 2100-2, ..., 2100-n)에 분산되어 저장되는 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 완화시켜 솔리드 스테이트 드라이브의 전체적인 데이터 복원률을 향상시킬 수 있다.
도 32는 본 발명의 일 실시예에 따른 저장 장치를 나타내는 블록도이다.
도 32를 참조하면, 저장 장치(3000)는 제1 내지 제N 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n)(n은 2 이상의 정수) 및 RAID(Redundant Array of Independent Disks) 컨트롤러(3200)를 포함한다.
저장 장치(3000)에서 복수의 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n)은 RAID를 구성하고 있다. 저장 장치(3000)는 컴퓨터, 노트북, 디지털 카메라, 휴대폰 등과 같은 호스트(HOST)에 접속되어 사용될 수 있다.
제1 내지 제N 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n) 각각은 비휘발성 메모리 장치를 포함한다. 상기 비휘발성 메모리 장치에 포함되는 플래시 메모리 셀 어레이는 기판과 수직한 방향으로 형성되는 삼차원 구조를 가질 수 있다.
RAID 컨트롤러(3200)는 제어부(3210), 버퍼 메모리(3220), 패러티 생성부(3230), 제1 내지 제N 물리 페이지 버퍼들(3240-1, 3240-2, ..., 3240-n), 호스트 인터페이스(3250) 및 메모리 인터페이스(3260)를 포함할 수 있다.
도 32의 저장 장치(3000)와 도 1의 솔리드 스테이트 드라이브(1000)를 비교하면, 도 1의 솔리드 스테이트 드라이브(1000)는 제1 내지 제N 비휘발성 메모리 장치들(1100-1, 1100-2, ..., 1100-n)을 포함하는 반면에, 도 32의 저장 장치(3000)는 제1 내지 제N 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n)을 포함하는 것을 제외하고는 동일하다. 즉, 도 1에서는 복수의 비휘발성 메모리 장치들이 RAID를 구성하여 하나의 솔리드 스테이트 드라이브(1000)를 형성하는 반면에, 도 32에서는 비휘발성 메모리 장치를 포함하는 복수의 솔리드 스테이트 드라이브들이 RAID를 구성하여 하나의 저장 장치(3000)를 형성한다는 것을 제외하고는 서로 동일하다. 도 1의 솔리드 스테이트 드라이브(1000)의 구성 및 동작에 대해서는 상세히 설명하였으므로, 여기서는 저장 장치(3000)에 대한 중복되는 설명은 생략한다.
도 33 및 34는 도 32의 저장 장치의 동작을 설명하기 위한 도면이다.
도 33 및 34에서 저장 장치(3000)는 네 개의 솔리드 스테이트 드라이브들(3100-1, 3100-2, 3100-3, 3100-4)을 포함하고(즉, N=4), 각각의 솔리드 스테이트 드라이브들(3100-1, 3100-2, 3100-3, 3100-4)에 포함되는 플래시 메모리 셀 어레이는 여덟 개의 워드 라인들(WL1, WL2, ..., WL8)에 연결되는 메모리 블록을 복수 개 포함하는 것으로 도시된다. 그러나, 본 발명은 이에 국한되지 않는다.
이하, 도 32 내지 34를 참조하여 저장 장치(3000)의 동작에 대해 상세히 설명한다.
버퍼 메모리(3220)는 호스트(HOST)로부터 제공되는 데이터를 물리 페이지 단위로 버퍼링하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))을 출력하고, 패러티 생성부(3230)는 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대해 상기 패러티 연산을 수행하여 제1 내지 제(N-1) 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_(n-1))에 대한 패러티(parity) 데이터를 나타내는 제N 물리 페이지 데이터(PPDi_n)를 생성하고, 제1 내지 제N 물리 페이지 버퍼들(3240-1, 3240-2, ..., 3240-n)은 상기 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 각각 저장한다.
제어부(3210)는 제1 내지 제N 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n) 중의 일부 솔리드 스테이트 드라이브들에 대해서는 최저 높이의 워드 라인에 연결되는 물리 페이지로부터 최고 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 제1 내지 제N 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n) 중의 나머지 솔리드 스테이트 드라이브들에 대해서는 최고 높이의 워드 라인에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
일 실시예에 있어서, 도 33에 도시된 바와 같이, 제어부(3210)는 제1 내지 제3 솔리드 스테이트 드라이브들(3100-1, 3100-2, 3100-3)에 대해서는 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지로부터 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지의 순서로 선택하고, 제4 솔리드 스테이트 드라이브(3100-4)에 대해서는 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지로부터 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
이 경우, 제어부(3210)는 제1 내지 제3 솔리드 스테이트 드라이브들(3100-1, 3100-2, 3100-3)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고, 제4 솔리드 스테이트 드라이브(3100-4)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(3240-1, 3240-2, 3240-3, 3240-4)에 저장되어 있는 제1 패러티 그룹(PARITY GROUP 1)의 제1 내지 제4 물리 페이지 데이터들(PPD1_1, PPD1_2, PPD1_3, PPD1_4)을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이후, 제어부(3210)는 제1 내지 제3 솔리드 스테이트 드라이브들(3100-1, 3100-2, 3100-3)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하고, 제4 솔리드 스테이트 드라이브(3100-4)에서는 제7 워드 라인(WL7)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(3240-1, 3240-2, 3240-3, 3240-4)에 저장되어 있는 제2 패러티 그룹(PARITY GROUP 2)의 제1 내지 제4 물리 페이지 데이터들(PPD2_1, PPD2_2, PPD2_3, PPD2_4)을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이와 같은 방식으로, 제어부(3210)는 제1 내지 제3 솔리드 스테이트 드라이브들(3100-1, 3100-2, 3100-3)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하고, 제4 솔리드 스테이트 드라이브(3100-4)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제8 물리 페이지 그룹(PPG8)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(3240-1, 3240-2, 3240-3, 3240-4)에 저장되어 있는 제8 패러티 그룹(PARITY GROUP 8)의 제1 내지 제4 물리 페이지 데이터들(PPD8_1, PPD8_2, PPD8_3, PPD8_4)을 제8 물리 페이지 그룹(PPG8)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
다른 실시예에 있어서, 도 34에 도시된 바와 같이, 제어부(3210)는 제1 및 제2 솔리드 스테이트 드라이브들(3100-1, 3100-2)에 대해서는 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지로부터 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지의 순서로 선택하고, 제3 및 제4 솔리드 스테이트 드라이브들(3100-3, 3100-4)에 대해서는 최고 높이의 워드 라인(WL8)에 연결되는 물리 페이지로부터 최저 높이의 워드 라인(WL1)에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정할 수 있다.
이 경우, 제어부(3210)는 제1 및 제2 솔리드 스테이트 드라이브들(3100-1, 3100-2)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하고, 제3 및 제4 솔리드 스테이트 드라이브들(3100-3, 3100-4)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하여 제1 물리 페이지 그룹(PPG1)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(3240-1, 3240-2, 3240-3, 3240-4)에 저장되어 있는 제1 패러티 그룹(PARITY GROUP 1)의 제1 내지 제4 물리 페이지 데이터들(PPD1_1, PPD1_2, PPD1_3, PPD1_4)을 제1 물리 페이지 그룹(PPG1)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이후, 제어부(3210)는 제1 및 제2 솔리드 스테이트 드라이브들(3100-1, 3100-2)에서는 제2 워드 라인(WL2)에 연결되는 물리 페이지를 선택하고, 제3 및 제4 솔리드 스테이트 드라이브들(3100-3, 3100-4)에서는 제7 워드 라인(WL7)에 연결되는 물리 페이지를 선택하여 제2 물리 페이지 그룹(PPG2)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(3240-1, 3240-2, 3240-3, 3240-4)에 저장되어 있는 제2 패러티 그룹(PARITY GROUP 2)의 제1 내지 제4 물리 페이지 데이터들(PPD2_1, PPD2_2, PPD2_3, PPD2_4)을 제2 물리 페이지 그룹(PPG2)에 포함되는 물리 페이지들에 각각 저장할 수 있다. 이와 같은 방식으로, 제어부(3210)는 제1 및 제2 솔리드 스테이트 드라이브들(3100-1, 3100-2)에서는 제8 워드 라인(WL8)에 연결되는 물리 페이지를 선택하고, 제3 및 제4 솔리드 스테이트 드라이브들(3100-3, 3100-4)에서는 제1 워드 라인(WL1)에 연결되는 물리 페이지를 선택하여 제8 물리 페이지 그룹(PPG8)을 결정하고, 제1 내지 제4 물리 페이지 버퍼들(3240-1, 3240-2, 3240-3, 3240-4)에 저장되어 있는 제8 패러티 그룹(PARITY GROUP 8)의 제1 내지 제4 물리 페이지 데이터들(PPD8_1, PPD8_2, PPD8_3, PPD8_4)을 제8 물리 페이지 그룹(PPG8)에 포함되는 물리 페이지들에 각각 저장할 수 있다.
상기와 같은 방식으로 저장 장치(3000)는 하나의 패러티 그룹에 포함되는 제1 내지 제N 물리 페이지 데이터들(PPDi_1, PPDi_2, ..., PPDi_n)을 제1 내지 제N 솔리드 스테이트 드라이브들(3100-1, 3100-2, ..., 3100-n)에서 상이한 높이의 워드 라인에 연결되는 물리 페이지들에 분산하여 저장함으로써 패러티 그룹들 간의 비트 에러율(BER)의 불균형을 완화시켜 저장 장치(3000)의 전체적인 데이터 복원률이 향상될 수 있다.
도 35는 본 발명의 일 실시예에 따른 솔리드 스테이트 드라이브 시스템을 나타내는 블록도이다.
도 35를 참조하면, 솔리드 스테이트 드라이브 시스템(4000)은 호스트(4100) 및 솔리드 스테이트 드라이브(4200)를 포함한다.
솔리드 스테이트 드라이브(4200)는 제1 내지 제N 비휘발성 메모리 장치들(4210-1, 4210-2, ..., 4210-n) 및 RAID 컨트롤러(4220)를 포함한다.
제1 내지 제N 비휘발성 메모리 장치들(4210-1, 4210-2, ..., 4210-n) 각각은 플래시 메모리 장치(flash memory device)로 구현될 수 있다. 제1 내지 제N 비휘발성 메모리 장치들(4210-1, 4210-2, ..., 4210-n)은 솔리드 스테이트 드라이브(4200)의 저장 매체로서 사용된다.
RAID 컨트롤러(4220)는 제1 내지 제N 채널들(CH1, CH2, ..., CHn)을 통해 제1 내지 제N 비휘발성 메모리 장치들(4210-1, 4210-2, ..., 4210-n)과 각각 연결된다.
RAID 컨트롤러(4220)는 신호 커넥터(4221)를 통해 호스트(4100)와 신호(SGL)를 송수신한다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. RAID 컨트롤러(4220)는 호스트(4100)의 커맨드에 따라 제1 내지 제N 비휘발성 메모리 장치들(4210-1, 4210-2, ..., 4210-n)에 데이터를 쓰거나 제1 내지 제N 비휘발성 메모리 장치들(4210-1, 4210-2, ..., 4210-n)로부터 데이터를 읽어낸다.
솔리드 스테이트 드라이브(4200)는 보조 전원 장치(4230)를 더 포함할 수 있다. 보조 전원 장치(4230)는 전원 커넥터(4231)를 통해 호스트(4100)로부터 전원(PWR)을 입력받아 RAID 컨트롤러(4220)에 전원을 공급할 수 있다. 한편, 보조 전원 장치(4230)는 솔리드 스테이트 드라이브(4200) 내에 위치할 수도 있고, 솔리드 스테이트 드라이브(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4230)는 메인 보드에 위치하고, 솔리드 스테이트 드라이브(4200)에 보조 전원을 제공할 수도 있다.
솔리드 스테이트 드라이브(4200)는 도 1에 도시된 솔리드 스테이트 드라이브(1000) 및 도 14에 도시된 솔리드 스테이트 드라이브(2000) 중의 하나로 구현될 수 있다. 도 1 및 2의 솔리드 스테이트 드라이브(1000, 2000)의 구성 및 동작에 대해서는 도 1 내지 31을 참조하여 상세히 설명하였으므로, 여기서는 솔리드 스테이트 드라이브(4200)에 대한 상세한 설명은 생략한다.
도 36은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 36을 참조하면, 전자 장치(5000)는 프로세서(PROCESSOR)(5100) 및 솔리드 스테이트 드라이브(Solid State Drive; SSD)(5200)를 포함한다.
프로세서(5100)는 솔리드 스테이트 드라이브(5200)에 데이터를 저장하고 솔리드 스테이트 드라이브(5200)에 저장된 데이터를 독출한다. 프로세서(5100)는 특정 계산들 또는 태스크(task)들을 실행하는 것과 같이 다양한 컴퓨팅 기능들을 수행할 수 있다. 실시예에 따라서, 프로세서(5100)는 마이크로프로세서(microprocessor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 프로세서(5100)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus)를 통하여 솔리드 스테이트 드라이브(5200)에 연결되어 통신을 수행할 수 있다. 실시예에 따라서, 프로세서(5100)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
솔리드 스테이트 드라이브(5200)는 프로세서(5100)의 제어 하에 쓰기, 읽기 및 소거 동작을 수행한다. 솔리드 스테이트 드라이브(5200)는 제1 내지 제N 비휘발성 메모리 장치들(5210-1, ..., 5210-n) 및 RAID 컨트롤러(5220)를 포함한다. RAID 컨트롤러(5220)는 제1 내지 제N 채널들(CH1, ..., CHn)을 통해 제1 내지 제N 비휘발성 메모리 장치들(5210-1, ..., 5210-n)과 각각 연결된다.
솔리드 스테이트 드라이브(5200)는 도 1에 도시된 솔리드 스테이트 드라이브(1000) 및 도 14에 도시된 솔리드 스테이트 드라이브(2000) 중의 하나로 구현될 수 있다. 도 1 및 2의 솔리드 스테이트 드라이브(1000, 2000)의 구성 및 동작에 대해서는 도 1 내지 31을 참조하여 상세히 설명하였으므로, 여기서는 솔리드 스테이트 드라이브(5200)에 대한 상세한 설명은 생략한다.
전자 장치(5000)는 메모리 장치(MEMORY DEVICE)(5300), 디스플레이 장치(DISPLAY DEVICE)(5400), 사용자 인터페이스(USER INTERFACE)(5500) 및 입출력 장치(I/O DEVICE)(5600)를 더 포함할 수 있다. 또한, 도 36에는 도시되지 않았지만, 전자 장치(5000)는 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나 다른 전자 기기들과 통신할 수 있는 여러 포트(port)들을 더 포함할 수 있다.
메모리 장치(5300)는 전자 장치(5000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(5300)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM) 등과 같은 휘발성(volatile) 메모리 장치 및 이피롬(Erasable Programmable Read-Only Memory; EPROM), 이이피롬(Electrically Erasable Programmable Read-Only Memory; EEPROM) 및 플래시 메모리 장치(flash memory device) 등과 같은 비휘발성(non-volatile) 메모리 장치를 포함할 수 있다.
디스플레이 장치(5400)는 솔리드 스테이트 드라이브(5200)에 저장된 데이터를 표시할 수 있다. 예를 들어, 솔리드 스테이트 드라이브(5200)에 멀티미디어 데이터가 저장되어 있는 경우, 프로세서(5100)는 솔리드 스테이트 드라이브(5200)로부터 상기 멀티미디어 데이터를 독출하고 상기 독출된 멀티미디어 데이터를 디코딩하여 출력 영상 데이터를 생성하고, 디스플레이 장치(5400)는 상기 출력 영상 데이터를 표시할 수 있다. 디스플레이 장치(5400)는 유기 발광 표시 장치(Organic Light Emitting Display Device), 액정 표시 장치(Liquid Crystal Display Device) 등을 포함할 수 있다.
사용자 인터페이스(5500)는 사용자가 전자 장치(5000)를 동작시키는데 필요한 다양한 수단을 포함할 수 있다. 입출력 장치(5600)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터 등과 같은 출력 수단을 포함할 수 있다.
전자 장치(5000)는 대용량 저장 수단을 필요로 하는 임의의 장치일 수 있다. 예를 들어, 전자 장치(5000)는 퍼스널 컴퓨터(personal computer), 랩톱 컴퓨터(laptop computre), 텔레비전(television), 디지털 카메라(digital camera), 게임기, 스마트폰, 휴대폰, PDA(Personal Digital Assistant) 등을 포함할 수 있다.
본 발명은 대용량 저장 수단을 필요로 하는 임의의 전자 장치에 유용하게 이용될 수 있다. 특히 본 발명은 RAID 구성을 갖는 솔리드 스테이트 드라이브에 적용되어 솔리드 스테이트 드라이브의 데이터 복원률을 향상시키는 데에 유용하게 사용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 각각이 복수의 물리 페이지들을 구비하는 메모리 셀 어레이를 포함하는 제1 내지 제N 비휘발성 메모리 장치들; 및
    제1 내지 제(N-1) 물리 페이지 데이터들에 대해 패러티 연산을 수행하여 제N 물리 페이지 데이터를 생성하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 각각으로부터 서로 상이한 비트 에러율을 갖는 물리 페이지를 하나씩 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고, 상기 제1 내지 제N 물리 페이지 데이터들을 상기 제1 내지 제N 물리 페이지들에 각각 저장하는 RAID(Redundant Array of Independent Disks) 컨트롤러를 포함하는 솔리드 스테이트 드라이브(Solid State Drive; SSD).
  2. 제1 항에 있어서, 상기 제1 내지 제N 비휘발성 메모리 장치들에 포함되는 플래시 메모리 셀 어레이들 각각은 기판 상에 삼차원 구조로 형성되고, 상기 기판에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들에 연결되는 상기 복수의 물리 페이지들을 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  3. 제2 항에 있어서, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 기판으로부터 서로 상이한 높이의 워드 라인에 연결되는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  4. 제3 항에 있어서, 상기 RAID 컨트롤러는 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 일부 비휘발성 메모리 장치들에 대해서는 최저 높이의 워드 라인에 연결되는 물리 페이지로부터 최고 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 나머지 비휘발성 메모리 장치들에 대해서는 최고 높이의 워드 라인에 연결되는 물리 페이지로부터 최저 높이의 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  5. 복수의 물리 페이지들을 구비하고, 상기 복수의 물리 페이지들 각각이 제1 내지 제M 레벨의 논리 페이지들을 갖는 메모리 셀 어레이를 포함하는 제1 내지 제N 비휘발성 메모리 장치들; 및
    제1 내지 제(N-1) 논리 페이지 데이터들에 대해 패러티 연산을 수행하여 제N 논리 페이지 데이터를 생성하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 각각으로부터 하나의 물리 페이지를 선택하여 제1 내지 제N 물리 페이지들을 포함하는 물리 페이지 그룹을 결정하고, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 각각으로부터 서로 상이한 레벨의 논리 페이지를 하나씩 선택하고, 상기 제1 내지 제N 논리 페이지 데이터들을 상기 제1 내지 제N 물리 페이지들로부터 상기 선택된 논리 페이지에 각각 저장하는 RAID 컨트롤러를 포함하는 솔리드 스테이트 드라이브.
  6. 제5 항에 있어서, 상기 제1 내지 제N 비휘발성 메모리 장치들에 포함되는 플래시 메모리 셀 어레이들 각각은 기판에 수평 방향으로 형성되는 이차원 구조를 갖고, 상기 기판에 수평한 방향으로 순차적으로 형성되는 복수의 워드 라인들에 연결되는 상기 복수의 물리 페이지들을 포함하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  7. 제6 항에 있어서, 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들 중에서 적어도 두 개의 물리 페이지들은 상기 복수의 워드 라인들 중에서 상기 기판에 수평한 방향으로 서로 상이한 순서에 형성되는 워드 라인에 연결되는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  8. 제7 항에 있어서, 상기 RAID 컨트롤러는 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 일부 비휘발성 메모리 장치들에 대해서는 최하위 워드 라인에 연결되는 물리 페이지로부터 최상위 워드 라인에 연결되는 물리 페이지의 순서로 선택하고, 상기 제1 내지 제N 비휘발성 메모리 장치들 중의 나머지 비휘발성 메모리 장치들에 대해서는 최상위 워드 라인에 연결되는 물리 페이지를 먼저 선택하고 이후 최하위 워드 라인에 연결되는 물리 페이지로부터 차상위 워드 라인에 연결되는 물리 페이지의 순서로 선택하여 상기 물리 페이지 그룹을 결정하는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  9. 제5 항에 있어서, 상기 제1 내지 제N 비휘발성 메모리 장치들에 포함되는 플래시 메모리 셀 어레이들 각각은 기판 상에 삼차원 구조로 형성되고 상기 기판에 수직한 방향으로 순차적으로 형성되는 복수의 워드 라인들을 통해 상기 RAID 컨트롤러와 연결되는 것을 특징으로 하는 솔리드 스테이트 드라이브.
  10. 제5 항에 있어서, 상기 RAID 컨트롤러는,
    외부로부터 수신되는 데이터를 버퍼링하여 상기 제1 내지 제(N-1) 논리 페이지 데이터들을 출력하는 버퍼 메모리;
    상기 제1 내지 제(N-1) 논리 페이지 데이터들에 대해 상기 패러티 연산을 수행하여 상기 제N 논리 페이지 데이터를 생성하는 패러티 생성부;
    상기 제1 내지 제N 논리 페이지 데이터들을 각각 M회 수신하여 순차적으로 저장하는 제1 내지 제N 물리 페이지 버퍼들;
    상기 제1 내지 제N 물리 페이지 버퍼들 중에서 적어도 하나의 물리 페이지 버퍼에 대해 상기 순차적으로 저장된 M개의 논리 페이지 데이터들의 순서를 바꾸어 저장하는 레벨 혼합부; 및
    상기 물리 페이지 그룹을 결정하고, 상기 제1 내지 제N 물리 페이지 버퍼들에 각각 저장된 상기 M개의 논리 페이지 데이터들을 상기 물리 페이지 그룹에 포함되는 상기 제1 내지 제N 물리 페이지들의 제1 내지 제M 레벨의 논리 페이지들에 각각 저장하는 제어부를 포함하는 것을 특징을 하는 솔리드 스테이트 드라이브.
KR1020120036509A 2012-04-09 2012-04-09 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치 KR20130114297A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120036509A KR20130114297A (ko) 2012-04-09 2012-04-09 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치
US13/828,138 US20130268724A1 (en) 2012-04-09 2013-03-14 Ssd with raid controller and programming method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120036509A KR20130114297A (ko) 2012-04-09 2012-04-09 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20130114297A true KR20130114297A (ko) 2013-10-17

Family

ID=49293237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120036509A KR20130114297A (ko) 2012-04-09 2012-04-09 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치

Country Status (2)

Country Link
US (1) US20130268724A1 (ko)
KR (1) KR20130114297A (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122403B2 (en) 2013-05-20 2015-09-01 Apple Inc. Distortion cancellation in 3-D non-volatile memory
US9262268B2 (en) 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US20160011810A1 (en) * 2014-03-26 2016-01-14 2419265 Ontario Limited Solid-state memory device with plurality of memory devices
US9015561B1 (en) * 2014-06-11 2015-04-21 Sandisk Technologies Inc. Adaptive redundancy in three dimensional memory
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
KR102248207B1 (ko) * 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
KR20160071948A (ko) * 2014-12-12 2016-06-22 에스케이하이닉스 주식회사 반도체 장치
US9678665B2 (en) * 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
TWI560718B (en) * 2015-03-27 2016-12-01 Silicon Motion Inc Data storage device and encoding method thereof
US9401216B1 (en) * 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US10528276B2 (en) 2015-10-22 2020-01-07 International Business Machines Corporation Shifting wearout of storage disks
US9921760B2 (en) 2015-10-22 2018-03-20 International Business Machines Corporation Shifting wearout of storage disks
US9996417B2 (en) 2016-04-12 2018-06-12 Apple Inc. Data recovery in memory having multiple failure modes
US10755787B2 (en) 2018-06-28 2020-08-25 Apple Inc. Efficient post programming verification in a nonvolatile memory
US10762967B2 (en) 2018-06-28 2020-09-01 Apple Inc. Recovering from failure in programming a nonvolatile memory
US10936455B2 (en) 2019-02-11 2021-03-02 Apple Inc. Recovery of data failing due to impairment whose severity depends on bit-significance value
US11106534B2 (en) 2019-02-27 2021-08-31 Western Digital Technologies, Inc. 3-dimensional NAND flash layer variation aware SSD raid
US10915394B1 (en) 2019-09-22 2021-02-09 Apple Inc. Schemes for protecting data in NVM device using small storage footprint
CN111143260B (zh) * 2019-12-31 2023-08-04 山东华芯半导体有限公司 一种ssd主控中的raid通路切换装置
US11550657B1 (en) 2021-09-01 2023-01-10 Apple Inc. Efficient programming schemes in a nonvolatile memory
US11893243B2 (en) * 2021-10-06 2024-02-06 Western Digital Technologies, Inc. Storage system and method for program reordering to mitigate program disturbs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7484137B2 (en) * 2005-03-31 2009-01-27 Hitachi Global Storage Technologies Netherlands B.V. RAID system using regional error statistics for redundancy grouping
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8631294B2 (en) * 2011-02-02 2014-01-14 Seagate Technology Llc Methods and devices to increase memory device data reliability
US9176810B2 (en) * 2011-05-27 2015-11-03 SanDisk Technologies, Inc. Bit error reduction through varied data positioning
US8853818B2 (en) * 2013-02-20 2014-10-07 Macronix International Co., Ltd. 3D NAND flash memory

Also Published As

Publication number Publication date
US20130268724A1 (en) 2013-10-10

Similar Documents

Publication Publication Date Title
KR20130114297A (ko) 솔리드 스테이트 드라이브 및 이를 포함하는 전자 장치
US10467133B2 (en) Storage device including nonvolatile memory device and garbage collection method thereof
JP6315917B2 (ja) 不揮発性メモリ装置とプログラミング方法
US9792990B2 (en) Flash memory system and word line interleaving method thereof
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
US20140063938A1 (en) Nonvolatile memory device and sub-block managing method thereof
US10699782B2 (en) Nonvolatile memory device and method of operation with a word line setup time based on two sequential read voltages
KR20160127524A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
TW201719378A (zh) 記憶體系統及其操作方法
CN106960679B (zh) 存储器系统及存储器系统的操作方法
KR20170050953A (ko) 메모리 시스템 및 그의 동작방법
JP2020087498A (ja) 複数のメモリプレーンを含む不揮発性メモリ装置及びこれを含むメモリシステム
TWI677873B (zh) 非揮發性記憶體系統及其操作方法
US9251904B2 (en) Nonvolatile memory device and memory system including the same
KR20160107970A (ko) 메모리 시스템 및 그의 동작방법
CN110390984B (zh) 存储器系统和存储器系统的操作方法
US8947934B2 (en) Sharing local control lines across multiple planes in a memory device
KR20110099883A (ko) 홀수의 매트들을 갖는 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 배속 동작 방법
KR102182804B1 (ko) 메모리 장치의 독출 방법
CN106775443B (zh) 存储器系统及其操作方法
CN113129978A (zh) 使用奇偶校验增加存储器存取并行性
CN106126437B (zh) 存储系统
TW201714093A (zh) 資料處理系統
KR20170056782A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20170073944A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid