KR20110014919A - 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 - Google Patents
불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 Download PDFInfo
- Publication number
- KR20110014919A KR20110014919A KR1020090072525A KR20090072525A KR20110014919A KR 20110014919 A KR20110014919 A KR 20110014919A KR 1020090072525 A KR1020090072525 A KR 1020090072525A KR 20090072525 A KR20090072525 A KR 20090072525A KR 20110014919 A KR20110014919 A KR 20110014919A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- unit
- page
- memory device
- flash memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 더욱 상세하게는 적어도 두 개의 플래시 메모리 장치들을 사용하는 시스템에서 플래시 메모리 장치의 프로그램 방법에 관한 것이다.
일반적으로 불휘발성 메모리 장치란, 전기적으로 데이터의 소거(Erase) 및 저장(Program)이 가능하고 전원이 차단되어도 데이터의 보존이 가능한 장치이다. 특히, 낸드형 불휘발성 메모리 장치는 다수의 메모리 셀 트랜지스터들이 직렬적으로 연결된 셀 스트링(String) 구조로 인해, 고집적화에 유리하다. 그리고 낸드형 불휘발성 메모리 장치는 복수 개의 메모리 셀 트랜지스터들에 저장된 정보를 동시에 변경하는 동작 방식을 채택하기 때문에 정보 갱신(Update) 속도가 빠르다. 또한, 낸드형 불휘발성 메모리 장치는 크기가 매우 작기 때문에 휴대용 기기 등에 많이 사용되고 있다.
낸드형 불휘발성 메모리 장치인 낸드 플래시 메모리(NAND Flash Memory) 장치는 엠피쓰리 플레이어(MP3 Player), 각종 메모리 카드(Memory Card), 솔리드 스 테이트 드라이브(Solid State Drive: SSD) 등과 같은 다양한 기기들에서 데이터 저장 용량의 확장을 가능케 한다.
낸드 플래시 메모리 사용자는 데이터를 관리하기 위하여 일반적으로 파일 시스템(File System), 호스트 드라이버(Host Dirver), 그리고 메모리 컨트롤러(Memory Controller)를 거쳐 낸드 플래시 메모리 장치에 접근한다.
복수 개의 플래시 메모리 장치들을 사용하는 멀티채널(Multi-Channel) 방식의 플래시 메모리 시스템에 있어서, 고속의 데이터 처리를 위해 메모리 컨트롤러는 복수 개의 플래시 메모리 장치들을 효과적으로 제어해야 한다.
본 발명의 목적은 복수 개의 메모리 장치를 제어하는 메모리 컨트롤러의 프로그램 동작 처리 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 복수의 불휘발성 메모리 장치들 및 메모리 컨트롤러를 포함하는 메모리 시스템의 프로그램 방법은, 상기 복수의 불휘발성 메모리 장치의 메모리 셀 영역의 일부를 선택하여 프로그램 시간 측정 그룹으로 설정하는 단계; 상기 프로그램 시간 측정 그룹을 구성하는 상기 선택된 메모리 셀 영역에 대하여 프로그램 동작을 실행하되, 상기 메모리 컨트롤러의 타이머 또는 카운터를 이용하여 상기 선택된 메모리 셀 영역의 프로그램 시간을 스캐닝하는 단계를 포함하며, 상기 스캐닝한 프로그램 시간을 이용하여 인터리브 동작의 단위로 사용하게 되는 인터리브 유닛을 설정하는 것을 특징으로 할 수 있다.
예시적인 실시예에 있어서, 상기 프로그램 시간 측정 그룹은, 상기 불휘발성 메모리 장치의 프로그램 동작의 최소 단위, 또는 상기 불휘발성 메모리 장치의 메모리 셀 어레이의 구조 및 특성이 일정하게 반복되는 단위로 구성하는 것을 포함할 수 있다.
예시적인 실시예에 있어서, 상기 불휘발성 메모리 장치는 플래시 메모리 장치일 수 있으며, 상기 프로그램 동작의 최소 단위는 페이지 그리고 상기 메모리 셀 어레이의 구조가 일정하게 반복되는 단위는 블럭인 것을 포함할 수 있다.
예시적인 실시예에 있어서, 상기 메모리 셀 어레이의 특성은 프로그램 시간인 것을 포함할 수 있다.
예시적인 실시예에 있어서, 상기 인터리브 유닛은, 긴 프로그램 시간을 갖는 프로그램 단위, 또는 짧은 프로그램 시간을 갖는 프로그램 단위와 최소 하나 이상의 긴 프로그램 시간을 갖는 프로그램 단위를 조합하여 스몰 인터리브 유닛을 구성하고, 최소 하나 이상의 상기 스몰 인터리브 유닛을 조합하여 라지 인터리브 유닛을 구성하는 것을 포함할 수 있다.
예시적인 실시예에 있어서, 상기 메모리 시스템의 인터리브 동작은 상기 인터리브 유닛을 단위로 실행하되, 상기 스몰 인터리브 유닛 간 및 라지 인터리브 유닛 간에 인터리브 동작을 실행하는 것을 포함할 수 있다.
본 발명의 다른 실시예에 따른 메모리 시스템은, 복수의 불휘발성 메모리 장치들 및 적어도 하나의 채널을 통해 상기 복수의 불휘발성 메모리 장치들과 데이터 를 교환하되, 상기 복수의 불휘발성 메모리 장치들의 메모리 셀 영역들의 일부를 선택하여 프로그램 시간을 측정하고, 상기 측정된 프로그램 시간들에 따라 상기 복수의 불휘발성 메모리 장치들을 인터리브 방식으로 구동하기 위한 인터리브 유닛을 구성하는 메모리 컨트롤러를 포함하며, 상기 복수의 불휘발성 메모리 장치들은 제 1 불휘발성 메모리 장치 및 제 2 불휘발성 메모리 장치를 포함하고, 상기 메모리 컨트롤러는 상기 제 1 불휘발성 메모리 장치 및 상기 제 2 불휘발성 메모리 장치의 제 1 프로그램 단위들을 순차적으로 구동한 후, 상기 제 1 불휘발성 메모리 장치 및 상기 제 2 불휘발성 메모리 장치의 제 2 프로그램 단위들을 순차적으로 구동하되, 상기 제 1 프로그램 단위들은 제 1 프로그램 시간을 갖고, 상기 제 2 프로그램 단위들은 상기 제 1 프로그램 시간보다 긴 프로그램 시간을 갖는 것을 특징으로 할 수 있다.
본 발명의 실시예에 따르면, 복수 개의 메모리 장치를 포함하는 메모리 시스템에서, 데이터 프로그램 동작시 메모리 시스템의 속도를 향상시킬 수 있다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되어 있는 실시예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제 공되는 것이다.
도면들에 있어서, 본 발명의 실시예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 불휘발성 메모리 장치의 외형을 나타낸다.
본 발명의 실시예에 따른 메모리 시스템의 불휘발성 메모리 장치는 낸드 플래시 메모리(NAND Flash Memory) 장치로 구성될 것이다. 하지만, 본 발명이 낸드 플래시 메모리 시스템에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 본 발명은 노어 플래시 메모리 장치, PRAM, FRAM, MRAM 등과 같은 불휘발성 메모리 장치들을 사용한 메모리 시스템에 적용될 수 있다.
도 1을 참조하면, 플래시 메모리 장치(100)는 커맨드(Command), 어드레스(Address) 또는 데이터(Data) 신호를 입출력하기 위한 입출력단(110)과 제어 신호들(Control Signals)을 입출력하기 위한 제어 신호단(120)으로 구성된다.
입출력단(110)은 8-비트(또는 1-바이트)를 입/출력하는 입출력 단자들(I/O 0~I/O 7)로 구성될 수 있다. 제어 신호들에 따라 커맨드, 어드레스 또는 데이터 등이 입출력단(110)을 통해 입출력 된다. 예를 들면, 후술하게 될 커맨드 래치 인에이블(Command Latch Enable) 신호가 인가될 때, 플래시 메모리 장치(100)는 입출력단(110)에 인가된 임의의 신호를 커맨드로서 입력할 수 있다.
제어 신호단(120)에는 칩 인에이블(Chip Enable: CE#) 신호, 레디/비지(Ready/Busy#: R/B#) 신호, 어드레스 래치 인에이블(Address Latch Enable: ALE) 신호, 커맨드 래치 인에이블(Command Latch Enable: CLE) 신호, 라이트 인에이블(Write Enable: WE#) 신호, 리드 인에이블(Read Enable: RE#) 신호가 입출력될 수 있다. 신호 명칭에 있어서, ‘#’으로 표기된 신호는 플래시 메모리 장치(100)에 입출력되는 신호의 상태가 로우(Low)일때 활성화됨을 의미한다.
칩 인에이블(CE#) 신호는 플래시 메모리 장치(100)를 선택하여 동작시키고자 할 때 인가된다. 즉, 플래시 메모리 장치(100)에 커맨드, 어드레스 또는 데이터가 입출력되거나 임의의 동작이 요청될 때 칩 인에이블(CE#) 신호가 인가되어야 한다. 레디/비지(R/B#) 신호는 플래시 메모리 장치(100)가 내부적으로 동작중인지 아닌지를 나타내는 신호이다. 즉, 레디/비지(R/B#) 신호는 플래시 메모리 장치(100)가 내부적으로 동작중일 때에는 저전압을 갖고, 내부적으로 동작중이지 않을 때에는 고전압을 갖는다.
어드레스 래치 인에이블(ALE) 신호는 플래시 메모리 장치(100)에 어드레스를 입력하기 위해서 인가된다. 즉, 어드레스 래치 인에이블(ALE) 신호가 인가될 때(또는, 활성화될 때), 플래시 메모리 장치(100)는 입출력부(110)에 인가되는 임의의 신호를 어드레스로 인식하게 된다. 커맨드 래치 인에이블(CLE) 신호는 전술한 바와 같이 플래시 메모리 장치(100)에 커맨드를 입력할 때 사용된다.
라이트 인에이블(WE#) 신호는 플래시 메모리 장치(100)에 임의의 신호를 입력할 때 사용된다. 즉, 플래시 메모리 장치(100)의 입출력부(110)에 커맨드, 어드레스 또는 데이터를 입력하는 경우, 라이트 인에이블(WE#) 신호가 인가되어야 한다. 리드 인에이블(RE#) 신호는 플래시 메모리 장치(100)로부터 데이터를 출력할 때 사용된다. 즉, 플래시 메모리 장치(100)에서 데이터를 출력할 경우, 리드 인에이블(RE#) 신호가 인가되어야 한다.
도 2는 본 발명의 실시예에 따른 메모리 시스템의 블럭도이다.
도 2를 참조하면, 메모리 시스템(200)은 복수 개의 플래시 메모리 장치들로 구성된 저장 매체(210)와 메모리 컨트롤러(220)를 포함한다. 저장 매체(210)를 구성하는 플래시 메모리 장치들 각각은 도 1에 도시된 것과 실질적으로 동일한 인터페이스 방식으로 동작할 것이다. 메모리 컨트롤러(220)는 저장 매체(210)와 플래시 메모리 장치들과 호스트(Host) 간의 데이터 교환을 제어한다. 즉, 호스트의 요청에 따라 저장 매체(210)의 플래시 메모리 장치들로 인가될 각종 신호들을 발생시키고 저장 매체(210)의 플래시 메모리 장치들과 데이터를 주고받는다.
복수 개의 플래시 메모리 장치들은 4개의 웨이들(Way, 230, 240, 250, 260)로 구성될 수 있다. 또한 1개의 웨이는 4개의 플래시 메모리 장치들로 구성될 수 있다. 예를 들면, 제 1 웨이(230)는 4개의 플래시 메모리 장치들(231, 232, 233, 234)로 구성될 수 있다.
메모리 컨트롤러(220)와 웨이들(230, 240, 250, 260)은 4개의 채널(CH 0, CH 1, CH 2, CH 3)을 통해 연결될 수 있다. 예를 들면, 채널(CH 0)에는 4개의 플래시 메모리 장치들(231, 241, 251, 261)이 연결될 수 있다. 여기에서 채널이란 각각의 플래시 메모리 장치가 공유하여 사용하는 신호들의 버스(Bus)를 의미한다.
복수 개의 플래시 메모리 장치들을 사용하는 메모리 시스템은 인터리브(Interleave) 방식을 사용하여 성능을 향상시킬 수 있다. 여기에서, 인터리브 방식이란 하나의 채널을 두 개 이상의 웨이들이 공유하는 구조에서, 웨이를 옮겨가며 데이터 읽기 또는 쓰기 동작을 실행하는 것을 말한다. 예를 들면, 채널(CH 0)을 통해 제 1 플래시 메모리 장치(231)로 커맨드, 어드레스를 포함한 제어 신호 및 데이터를 전송한다. 제 1 플래시 메모리 장치(231)가 전송된 데이터를 메모리 셀(Memory Cell)에 프로그램(Program)하고 있는 동안, 제 2 플래시 메모리 장치(241)로 커맨드, 어드레스를 포함한 제어 신호 및 데이터를 전송하는 동작이다.
메모리 컨트롤러(220)가 인터리브 동작을 실행하기 위해서는 동일 채널에 연결되어 있는 각각의 플래시 메모리 장치의 입출력단 및 칩 인에이블(CE#) 신호 및 레디/비지(R/B#) 신호를 제외한 제어 신호단이 공유되도록 채널이 구성될 수 있다. 도 2에서는 플래시 메모리 장치의 공유되는 입출력부 및 제어 신호부는 데이터(Data) 라인으로 표시되며, 칩 인에이블(CE#) 및 레디/비지(R/B#) 신호들은 각각의 플래시 메모리 장치마다 구성되어있다.
도 3은 본 발명의 실시예에 따른 인터리브 유닛(Interleave Unit)을 구성하 는 방법을 설명하기 위한 순서도이다.
플래시 메모리 장치들이 메모리 시스템에 장착되는 초기에는 메모리 컨트롤러(도 2의 220)에 의해 여러 가지 초기화 동작들이 실행될 수 있다. 예를 들면, 리드 아이덴티피케이션(Read Identification: Read ID), 배드 블럭 스캔(Bad Block Scan), 시스템 코드(System Code) 저장, 맵핑(Mapping) 정보 작성 등과 같은 동작들이 실행될 수 있다.
리드 아이덴티피케이션(Read ID) 동작은 플래시 메모리 장치의 각종 정보를 읽어오는 동작이며, 배드 블럭 스캔은 플래시 메모리 장치의 배드 블럭을 읽어오는 동작이다. 여기에서, 배드 블럭은 데이터 프로그램 및 리드 동작에 있어서 정상적으로 동작을 할 수 없는 블럭이다. 메모리 컨트롤러(도 2의 220)는 배드 블럭을 사용하지 않도록 배드 블럭 테이블(Bad Block Table)을 작성하여 배드 블럭들을 관리할 수 있다.
시스템 코드를 저장하는 동작은 메모리 시스템에서 사용될 데이터를 플래시 메모리 장치들로 구성된 저장 매체(210)에 저장하는 동작이다. 맵핑 정보를 작성하는 동작은 맵핑 테이블(Mapping Table)을 작성하여 플래시 메모리 장치들로 구성된 저장 매체(210)에 저장하는 동작이다. 여기에서, 맵핑 테이블은 호스트가 접근하려고 하는 어드레스를 저장 매체(210)의 플래시 메모리 장치들의 어드레스와 대응시키는 정보를 의미한다.
본 발명의 실시예에 따르면, 메모리 컨트롤러(도 2의 220)에 의한 초기화 동작에서, 메모리 시스템(도 2의 200)은 플래시 메모리 장치의 페이지(Page) 프로그 램 시간을 측정하고 측정된 프로그램 시간 정보를 바탕으로 인터리브 유닛을 구성할 것이다. 여기에서, 페이지는 플래시 메모리 장치의 프로그램 동작의 기본 단위를 의미한다. 인터리브 유닛은 인터리브 동작이 실행되는 단위로, 메모리 컨트롤러는 복수 개의 페이지를 인터리브 유닛으로 구성할 수 있다.
메모리 컨트롤러는 플래시 메모리 장치의 메모리 셀 어레이의 구조 및 내부 동작에 대한 정보를 알 수 없는 경우가 있다. 예를 들면, 플래시 메모리 장치의 페이지 구조, 페이지 구조에 따른 내부적인 프로그램 방법 및 프로그램 시간에 대한 정보를 알 수 없을 수 있다. 이 경우, 메모리 컨트롤러는 후술되는 플래시 메모리 장치의 프로그램 시간 측정 방법에 따라 플래시 메모리 장치의 내부 구조 및 프로그램 시간을 유추해 낼 수 있다.
이하, 도 3을 참조하여 메모리 컨트롤러(도 2의 220)가 인터리브 유닛을 구성하는 동작을 설명하기로 한다.
S301 단계에서, 메모리 컨트롤러(도 2의 220)는 플래시 메모리 장치의 페이지 프로그램 시간이 측정될 프로그램 시간 측정 그룹을 설정한다. 프로그램 시간 측정 그룹은 플래시 메모리 장치의 메모리 셀 어레이의 모든 페이지로 설정될 수 있다. 또는 프로그램 시간 측정 그룹은 플래시 메모리 장치의 메모리 셀 어레이의 구조를 고려하여 임의의 단위로 설정될 수 있다. 예를 들면, 복수 개의 페이지로 구성되고, 메모리 셀 어레이의 구조가 일정하게 반복되는 블럭(Block)을 프로그램 시간 측정 그룹으로 설정할 수 있다.
본 발명의 실시예에 따르면, 플래시 메모리 장치의 아이덴티피케이션 정보를 이용하여 프로그램 시간 측정 그룹을 설정할 수 있다. 즉, 플래시 메모리 장치의 첫 번째 블럭을 프로그램 시간 측정 그룹으로 설정하고, 플래시 메모리 장치의 아이덴티피케이션 정보 중 블럭의 크기와 페이지의 크기를 이용하여 프로그램 시간 측정 그룹의 페이지 수를 결정할 수 있다. 예를 들면, 플래시 메모리 장치로부터 읽어온 아이덴티피케이션 정보 중 한 블럭의 크기가 128KB이고 블럭을 구성하는 한 페이지의 크기가 2KB 일 때, 프로그램 시간 측정 그룹은 플래시 메모리 장치의 첫 번째 블럭의 모든 페이지들(예를 들면, 64개의 페이지들)로 설정될 수 있다.
S302 단계에서, 메모리 컨트롤러(도 2의 220)는 프로그램 시간 측정 그룹으로 설정된 첫 번째 페이지를 프로그램한다. 메모리 컨트롤러(도 2의 220)는 측정시간의 정확성을 기하기 위하여 프로그램 시간 측정 그룹의 첫 번째 페이지부터 마지막 페이지까지 동일한 데이터로 프로그램할 수 있다.
S303 단계에서, 메모리 컨트롤러(도 2의 220)는 프로그램된 페이지의 프로그램 시간을 측정하여 메모리 컨트롤러(도 2의 220)의 저장 영역에 기록한다. 예를 들면, 메모리 컨트롤러(도 2의 220)는 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터를 플래시 메모리 장치로 전송한다. 플래시 메모리 장치로 전송된 데이터가 플래시 메모리 장치의 페이지 버퍼부에 로딩 된 후, 메모리 컨트롤러(도 2의 220)는 제 2 커맨드를 전송한다. 이 때, 메모리 컨트롤러(도 2의 220)는 타이머 또는 카운터를 이용하여 프로그램 시간 측정을 시작할 수 있다.
메모리 컨트롤러(도 2의 220)는 플래시 메모리 장치의 레디/비지(R/B#) 신호를 확인하여 프로그램이 완료되었는지 확인할 수 있다. 레디/비지(R/B#) 신호가 저 전압 상태에서 고전압 상태로 변화되면, 메모리 컨트롤러(도 2의 220)는 프로그램 시간 측정을 완료할 수 있다.
메모리 컨트롤러(도 2의 220)는 측정된 페이지 프로그램 시간을 메모리 컨트롤러(도 2의 220)의 저장 영역에 저장할 수 있다. 메모리 컨트롤러(도 2의 220)의 저장 영역에 기록된 페이지 프로그램 시간은 인터리브 유닛을 설정하는 단계에서 이용될 수 있다.
S304 단계에서, 메모리 컨트롤러(도 2의 220)는 프로그램된 페이지가 프로그램 시간 측정 그룹으로 설정된 마지막 페이지인지 판단한다. 프로그램 시간 측정 그룹으로 설정된 마지막 페이지가 아닌 경우 S302 단계로 돌아가 프로그램 동작을 반복 실행하고, 마지막 페이지인 경우 프로그램 동작을 종료한다.
S305 단계에서, 메모리 컨트롤러(도 2의 220)는 측정된 프로그램 시간을 바탕으로 인터리브 유닛을 설정한다. 메모리 컨트롤러(도 2의 220)는 측정된 페이지 프로그램 시간을 이용하여 프로그램 시간이 짧은 페이지 및 프로그램 시간이 긴 페이지를 구분할 수 있다. 예를 들면, 메모리 컨트롤러는 프로그램 시간이 짧은지 또는 긴지를 판단하는 범위를 설정할 수 있다. 각각의 페이지에 대해 측정된 프로그램 시간이 설정한 범위 안에 포함되는지를 판단하여 프로그램 시간이 짧은 페이지와 프로그램 시간이 긴 페이지로 구분할 수 있다. 여기에서 프로그램 시간이 짧고 긴 것은 각 페이지끼리의 상대적인 시간일 수 있다.
메모리 컨트롤러(도 2의 220)는 프로그램 시간이 짧은 페이지 및 프로그램 시간이 긴 페이지를 조합하여 스몰 인터리브 유닛을 설정할 수 있다. 또한 스몰 인 터리브 유닛을 묶어서 라지 인터리브 유닛으로 설정할 수 있다.
인터리브 유닛을 설정하는 방법은 도 4 및 도 5A를 참조하여 상세하게 설명한다.
도 4는 도 2에 도시된 채널(CH 0)에 연결된 4개의 플래시 메모리 장치들(231, 241, 251, 261)을 간략히 보여주는 도면이다.
도 4를 참조하면, 플래시 메모리 장치들(231, 241, 251, 261) 각각의 메모리 셀 어레이는 페이지, 블럭 및 플레인으로 나뉠 수 있다. 또한 플래시 메모리 장치들(231, 241, 251, 261) 각각은 페이지 버퍼부를 포함할 수 있다.
플래시 메모리 장치는 구조적인 특징으로 인해 복수 개의 메모리 셀들로 구성된 페이지를 단위로 프로그램 동작을 실행한다. 페이지는 프로그램 시간이 짧은 페이지 및 프로그램 시간이 긴 페이지로 구분될 수 있다. 예를 들면, 한 개의 메모리 셀이 2-bit을 저장할 수 있는 멀티 레벨 셀(Multi Level Cell: MLC) 플래시 메모리 장치의 경우, 페이지는 프로그램 시간이 짧은 LSB 페이지 및 프로그램 시간이 긴 MSB 페이지로 구분될 수 있다.
플래시 메모리 장치의 메모리 셀 어레이는 각각이 복수 개의 페이지로 구성된 블럭들로 구분될 수 있다. 각 블럭은 동일한 특성을 갖는 페이지가 일정하게 반복되어 구성될 수 있다. 여기에서, 페이지의 특성은 프로그램 동작시 프로그램이 완료되는 시간일 수 있다. 전술한 2-bit MLC 플래시 메모리 장치의 경우, 예를 들면, LSB 페이지 및 MSB 페이지가 교차되어 블럭이 구성될 수 있다. 즉, 첫 번째 페이지(Page 0)은 LSB 페이지, 두 번째 페이지(Page 1)는 MSB 페이지, 세 번째 페이 지(Page 2)는 LSB 페이지 및 네 번째 페이지(Page 3)는 MSB 페이지와 같이 LSB 및 MSB 페이지가 반복적으로 교차되어 블럭이 구성될 수 있다.
플래시 메모리 장치의 메모리 셀 어레이는 각각이 복수 개의 블럭들로 구성된 플레인들로 구분될 수 있다. 플레인들 각각은 페이지 버퍼부를 구비하기 때문에 플레인들 간의 병렬 동작(예를 들면, 프로그램 또는 이레이즈 동작을 동시에 실시하는 것)이 가능할 수 있다. 페이지 버퍼부는 메모리 셀에 저장된 데이터를 읽어 오거나 메모리 셀로 데이터를 저장한다. 즉, 페이지 버퍼부는 리드(Read) 동작시, 메모리 셀에 저장된 데이터를 감지하고 페이지 버퍼부에 구성된 래치(Latch) 회로에 감지한 데이터를 로딩(Loading)하고, 로딩된 데이터를 데이터 출력 회로를 통하여 플래시 메모리 장치 외부로 출력한다. 또한 페이지 버퍼부는 프로그램 동작시, 메모리 셀에 저장할 데이터를 래치 회로에 로딩한 후 선택된 메모리 셀로 로딩한 데이터를 프로그램한다.
본 발명의 실시예에 따르면, 메모리 컨트롤러(도 2의 220)는 플래시 메모리 장치에 접근할 때 기본이 되는 단위를 슈퍼 페이지(Super Page)로 구성할 수 있다. 슈퍼 페이지는 메모리 컨트롤러(도 2의 220)가 플래시 메모리 장치의 페이지를 관리하는 단위이며, 메모리 시스템의 구성에 따라 여러 크기로 변경될 수 있다.
예를 들면, 메모리 컨트롤러(도 2의 220)는 채널(CH 0)의 제 1 플래시 메모리 장치(231)의 2개 플레인들(PLN 0, PLN 1)의 동일한 페이지들을 하나의 슈퍼 페이지로 구성할 수 있다. 즉, 플래시 메모리 장치(231)의 제 1 플레인(PLN 0)의 첫 번째 페이지와 제 2 플레인(PLN 1)의 첫 번째 페이지를 첫 번째 슈퍼 페이지(SP 0) 로 구성할 수 있다.
도 4에 도시된 바와 같이 메모리 컨트롤러(도 2의 220)는 채널(CH 0)을 통해 연결된 플래시 메모리 장치들(231, 241, 251, 261)의 모든 메모리 셀 어레이 영역에 대해 슈퍼 페이지들을 구성할 수 있다. 또한 도 2의 메모리 시스템에서 각 채널(CH 0, CH 1, CH 2, CH 3)에 연결된 플래시 메모리 장치들의 모든 메모리 셀 어레이 영역들에 대해 슈퍼 페이지들을 구성할 수 있다.
도 5A는 본 발명의 실시예에 따른 인터리브 유닛을 설정하는 방법을 나타낸다.
본 발명의 실시예에 따르면, 메모리 컨트롤러(도 2의 220)는 플래시 메모리 장치의 페이지를 관리하는 단위인 슈퍼 페이지를 조합하여 인터리브 유닛으로 설정할 수 있다.
하나의 인터리브 유닛으로 조합되는 슈퍼 페이지들은 서로 다른 프로그램 시간을 갖는 슈퍼 페이지들일 수 있다. 즉, 메모리 컨트롤러(도 2의 220)는 도 3의 S303 단계에서 수집된 페이지의 프로그램 시간을 참조하여 프로그램 시간이 짧은 슈퍼 페이지와 프로그램 시간이 긴 슈퍼 페이지의 조합으로 인터리브 유닛을 설정할 수 있다. 예를 들면, 하나의 프로그램 시간이 긴 페이지를 인터리브 유닛으로 설정하거나, 프로그램 시간이 짧은 페이지들과 프로그램 시간이 긴 페이지들을 조합하여 인터리브 유닛으로 설정할 수 있다.
도 5A를 참조하면, 메모리 컨트롤러(도 2의 220)는 채널(CH 0)에 연결된 제 1 플래시 메모리 장치(231)의 프로그램 시간이 짧은(LSB 페이지) 슈퍼 페이지(SP 0)와 프로그램 시간이 긴(MSB 페이지) 슈퍼 페이지(SP 4)를 스몰(Small) 인터리브 유닛(S-IU 0)으로 설정한다. 또한 메모리 컨트롤러(도 2의 220)는 제 2 플래시 메모리 장치(241)의 프로그램 시간이 짧은(LSB 페이지) 슈퍼 페이지(SP 1)와 프로그램 시간이 긴(MSB 페이지) 슈퍼 페이지(SP 5)를 스몰 인터리브 유닛(S-IU 1)으로 설정한다.
본 발명의 실시예에 따르면, 메모리 컨트롤러(도 2의 220)는 복수 개의 스몰 인터리브 유닛들을 라지(Large) 인터리브 유닛으로 설정할 수 있다. 예를 들면, 스몰 인터리브 유닛(S-IU 0) 및 스몰 인터리브 유닛(S-IU 1)을 묶어서 라지 인터리브 유닛(L-IU 0)으로 설정할 수 있다.
상기와 같은 방법으로, 메모리 컨트롤러(도 2의 220)는 제 3 플래시 메모리 장치(251)의 슈퍼 페이지들(SP 2, SP 6)을 스몰 인터리브 유닛(S-IU 2)으로 설정하고, 제 4 플래시 메모리 장치(261)의 슈퍼 페이지들(SP 3, SP 7)을 스몰 인터리브 유닛(S-IU 3)으로 설정한다. 또한 메모리 컨트롤러는 스몰 인터리브 유닛들(S-IU 2, S-IU 3)을 라지 인터리브 유닛(L-IU 1)로 설정할 수 있다.
메모리 컨트롤러(도 2의 220)는 채널(CH 0)을 통해 연결된 플래시 메모리 장치들(231, 241, 251, 261)의 모든 메모리 셀 어레이 영역들에 대해 인터리브 유닛을 설정할 수 있다. 또한 도 2의 메모리 시스템에서, 메모리 컨트롤러(도 2의 220)는 각 채널(CH 0, CH 1, CH 2, CH 3)에 연결된 플래시 메모리 장치들의 모든 메모리 셀 어레이 영역에 대해 인터리브 유닛을 설정할 수 있다.
본 발명의 실시예에 따르면, 메모리 컨트롤러(도 2의 220)는 설정한 스몰 인 터리브 유닛 간 또는 라지 인터리브 유닛 간에 인터리브 동작을 실행할 수 있다. 예를 들면, 라지 인터리브 유닛(L-IU 0)에 포함된 스몰 인터리브 유닛들(S-IU 0, S-IU 1)은 상호간에 인터리브 동작을 할 수 있고, 라지 인터리브 유닛들(L-IU 0, L-IU 1)은 상호간에 인터리브 동작을 할 수 있다.
도 5B는 본 발명의 다른 실시예에 따른 인터리브 유닛을 설정하는 방법을 나타낸다.
본 발명의 다른 실시예에 따르면, 메모리 컨트롤러(도 2의 220)는 플래시 메모리 장치의 페이지를 관리하는 단위인 슈퍼 페이지의 구성 순서를 인터리브 유닛의 순서에 따라 구성할 수 있다.
메모리 컨트롤러(도 2의 220)는 도 3의 S303 단계에서 수집된 페이지의 프로그램 시간을 참조하여 프로그램 시간이 짧은 페이지와 프로그램 시간이 긴 페이지를 조합하여 인터리브 유닛을 설정할 수 있다.
도 5B를 참조하면, 메모리 컨트롤러(도 2의 220)는 채널(CH 0)에 연결된 제 1 플래시 메모리 장치(231)와 제 2 플래시 메모리 장치(241)의 프로그램 시간이 짧은 페이지(LSB 페이지)와 프로그램 시간이 긴 페이지(MSB 페이지)를 조합하여 스몰 인터리브 유닛(S-IU 0)으로 설정한다. 또한 메모리 컨트롤러(도 2의 220)는 제 3 플래시 메모리 장치(251)와 제 4 플래시 메모리 장치(261)의 프로그램 시간이 짧은 페이지(LSB 페이지)와 프로그램 시간이 긴 페이지(MSB 페이지)를 조합하여 스몰 인터리브 유닛(S-IU 1)으로 설정한다.
상기와 같은 방법으로 인터리브 유닛을 설정한 후, 메모리 컨트롤러(도 2의 220)는 플래시 메모리 장치의 페이지를 관리하는 단위인 슈퍼 페이지의 구성 순서를 인터리브 유닛 내에서 다양하게 구성할 수 있다.
예를 들면, 첫 번째 스몰 인터리브 유닛(S-IU 0)에 포함되는 페이지들을 제 1 플래시 메모리 장치(231)의 첫 번째 페이지(LSB 페이지)를 첫 번째 슈퍼 페이지(SP 0), 제 2 플래시 메모리 장치(241)의 첫 번째 페이지(LSB 페이지)를 두 번째 슈퍼 페이지(SP 1), 제 1 플래시 메모리 장치(231)의 두 번째 페이지(MSB 페이지)를 세 번째 슈퍼 페이지(SP 2), 제 2 플래시 메모리 장치(241)의 두 번째 페이지(MSB 페이지)를 네 번째 슈퍼 페이지(SP 3)로 순차적으로 구성할 수 있다.
다른 예로써, 첫 번째 스몰 인터리브 유닛(S-IU 0)에 포함되는 페이지들을 제 2 플래시 메모리 장치(241)의 두 번째 페이지(MSB 페이지)를 첫 번째 슈퍼 페이지(SP 0), 제 1 플래시 메모리 장치(231)의 두 번째 페이지(MSB 페이지)를 두 번째 슈퍼 페이지(SP 1), 제 2 플래시 메모리 장치(241)의 첫 번째 페이지(LSB 페이지)를 세 번째 슈퍼 페이지(SP 2), 제 1 플래시 메모리 장치(231)의 첫 번째 페이지(LSB 페이지)를 네 번째 슈퍼 페이지(SP 3)로 구성할 수 있다.
다른 예로써, 첫 번째 스몰 인터리브 유닛(S-IU 0)에 포함되는 페이지들을 제 1 플래시 메모리 장치(231)의 첫 번째 페이지(LSB 페이지)를 첫 번째 슈퍼 페이지(SP 0), 제 2 플래시 메모리 장치(241)의 두 번째 페이지(MSB 페이지)를 두 번째 슈퍼 페이지(SP 1), 제 2 플래시 메모리 장치(241)의 첫 번째 페이지(LSB 페이지)를 세 번째 슈퍼 페이지(SP 2), 제 1 플래시 메모리 장치(231)의 두 번째 페이지(MSB 페이지)를 네 번째 슈퍼 페이지(SP 3)로 구성할 수 있다.
다른 예로써, 첫 번째 스몰 인터리브 유닛(S-IU 0)에 포함되는 페이지들을 제 1 플래시 메모리 장치(231)의 첫 번째 페이지(LSB 페이지)를 첫 번째 슈퍼 페이지(SP 0), 제 1 플래시 메모리 장치(231)의 두 번째 페이지(MSB 페이지)를 두 번째 슈퍼 페이지(SP 1), 제 2 플래시 메모리 장치(241)의 두 번째 페이지(MSB 페이지)를 세 번째 슈퍼 페이지(SP 2), 제 2 플래시 메모리 장치(241)의 첫 번째 페이지(LSB 페이지)를 네 번째 슈퍼 페이지(SP 3)로 구성할 수 있다.
다른 예로써, 첫 번째 스몰 인터리브 유닛(S-IU 0)에 포함되는 페이지들을 제 1 플래시 메모리 장치(231)의 두 번째 페이지(MSB 페이지)를 첫 번째 슈퍼 페이지(SP 0), 제 1 플래시 메모리 장치(231)의 첫 번째 페이지(LSB 페이지)를 두 번째 슈퍼 페이지(SP 1), 제 2 플래시 메모리 장치(241)의 첫 번째 페이지(LSB 페이지)를 세 번째 슈퍼 페이지(SP 2), 제 2 플래시 메모리 장치(241)의 두 번째 페이지(MSB 페이지)를 네 번째 슈퍼 페이지(SP 3)로 구성할 수 있다.
도 6A는 본 발명의 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 나타낸 타이밍도(Timing Diagram)이다.
본 발명의 실시예에 따른 프로그램 방법을 도 2에 도시된 채널(CH 0)의 플래시 메모리 장치들(231, 241, 251, 261)를 예로 들어 설명한다. 하지만, 후술되는 프로그램 방법은 메모리 시스템에 따라 다양한 형태로 응용될 것이다. 예를 들면, 채널(CH 0)에 연결되는 웨이들의 수가 증가된 형태 및 메모리 컨트롤러(도 2의 220)에 연결되는 채널들의 수가 증가된 형태로 플래시 메모리 장치들이 확장 가능할 것이고, 그에 따라 프로그램 방법도 달라질 수 있다.
도 2, 도 5A 및 도 6A를 참조하면, 메모리 컨트롤러(220)는 제 1 플래시 메모리 장치(231)의 스몰 인터리브 유닛(S-IU 0)에 포함된 슈퍼 페이지(SP 0)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D0)를 전송한다. 이 때, 제 1 플래시 메모리 장치(231)의 칩 인에이블(CE# 0) 신호는 논리 '0'(또는 논리 'Low') 상태를 유지하고, 제 1 플래시 메모리 장치(231)를 제외한 플래시 메모리 장치들(241, 251, 261)의 칩 인에이블(CE# 1, CE# 2, CE# 3) 신호들은 논리 '1'(또는 논리 'High') 상태를 유지한다.
제 1 플래시 메모리 장치(231)로 전송된 데이터는 제 1 플래시 메모리 장치(231)의 페이지 버퍼부에 로딩 된다. 메모리 컨트롤러(220)가 커맨드, 어드레스 및 데이터를 전송하고 플래시 메모리 장치가 전송된 데이터를 페이지 버퍼부에 로딩하는 동작을 셋업 동작이라고 정의한다.
메모리 컨트롤러(220)로부터 제 2 커맨드가 전송되면 제 1 플래시 메모리 장치(231)는 페이지 버퍼부에 로딩된 데이터를 선택된 메모리 셀로 프로그램한다. 이 때, 제 1 플래시 메모리 장치(231)는 비지(Busy) 상태가 되어 레디/비지(R/B# 0) 신호는 논리 '0'(또는 논리 'Low') 상태(U0~S0)로 유지된다. 플래시 메모리 장치가 페이지 버퍼부에 로딩된 데이터를 선택된 메모리 셀로 프로그램하는 동작을 프로그램 동작이라고 정의한다.
U0~S0의 시간 동안, 메모리 컨트롤러(220)는 제 2 플래시 메모리 장치(241)의 스몰 인터리브 유닛(S-IU 1)에 포함된 슈퍼 페이지(SP 1)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D1)를 전송한다. 이 때, 제 2 플래시 메모리 장 치(241)의 칩 인에이블(CE# 1) 신호는 논리 '0'(또는 논리 'Low') 상태를 유지하고, 제 2 플래시 메모리 장치(241)를 제외한 플래시 메모리 장치들(231, 251, 261)의 칩 인에이블(CE# 0, CE# 2, CE# 3) 신호들은 논리 '1'(또는 논리 'High') 상태를 유지한다.
제 2 플래시 메모리 장치(241)로 전송된 데이터가 페이지 버퍼에 로딩 되고, 선택된 메모리 셀로 프로그램되는 동안, 제 2 플래시 메모리 장치(241)는 비지 상태가 되어 레디/비지(R/B# 1) 신호가 논리 '0'(또는 논리 'Low') 상태(U1~S1)로 유지된다. U1~S1의 시간 동안, 메모리 컨트롤러(220)는 제 1 플래시 메모리 장치(231)의 슈퍼 페이지(SP 0)의 프로그램이 완료되었는지 레디/비지(R/B# 0) 신호를 확인할 수 있다.
슈퍼 페이지(SP 0)의 프로그램이 완료되어 제 1 플래시 메모리 장치(231)의 레디/비지(R/B# 0) 신호가 논리 '1'(또는 논리'High') 상태로 유지되었을 때, 메모리 컨트롤러(220)는 스몰 인터리브 유닛(S-IU 0)에 포함된 슈퍼 페이지(SP 4)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D2)를 전송한다. 제 1 플래시 메모리 장치(231)로 전송된 데이터가 페이지 버퍼에 로딩 되고, 선택된 메모리 셀로 프로그램되는 동안, 제 1 플래시 메모리 장치(231)는 비지 상태가 되어 레디/비지(R/B# 0) 신호가 논리 '0'(또는 논리 'Low') 상태(S4~U0')로 유지된다. S4~U0' 시간 동안, 다음 순서의 데이터들(D3~D7)을 스몰 인터리브 유닛들(S-IU 2, S-IU 3) 및 라지 인터리브 유닛(L-IU 1) 단위로 인터리브 방식을 이용하여 프로그램한다.
본 발명의 실시예에 따르면, 스몰 인터리브 유닛(S-IU 0)의 슈퍼 페이지(SP 4)는 프로그램 시간이 긴 페이지이기 때문에 메모리 컨트롤러(220)는 긴 프로그램 시간 동안 복수 개의 스몰 인터리브 유닛들 및 라지 인터리브 유닛들을 단위로 인터리브 동작을 실행할 수 있다. 예를 들면, 도시된 바와 같이 스몰 인터리브 유닛들(S-IU 1, S-IU 2) 및 스몰 인터리브 유닛(S-IU 3)이 포함된 라지 인터리브 유닛(L-IU 1)을 단위로 인터리브 동작을 실행할 수 있다.
제 4 플래시 메모리 장치(261)의 스몰 인터리브 유닛(S-IU 3)에 포함된 슈퍼 페이지(SP 7)가 프로그램 되는 동안(S7~U3'), 메모리 컨트롤러(220)는 제 1 플래시 메모리 장치(231)의 슈퍼 페이지(SP 4)의 프로그램이 완료되었는지 레디/비지(R/B# 0) 신호를 확인할 수 있다. 슈퍼 페이지(SP 4)의 프로그램이 완료되어 제 1 플래시 메모리 장치(231)의 레디/비지(R/B# 0) 신호가 논리 '1'(또는 논리 'High') 상태로 유지되었을 때, 메모리 컨트롤러(220)는 스몰 인터리브 유닛(S-IU 4)에 포함된 슈퍼 페이지(SP 8)에 데이터(D8)의 프로그램 동작을 실행한다.
이 경우, 메모리 컨트롤러(220)는 슈퍼 페이지(SP 7)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D7)의 셋업 동작 후, 슈퍼 페이지(SP 8)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D8)의 셋업 동작을 시작하기까지의 대기 시간 Δt1을 갖는다. 메모리 컨트롤러(220)는 프로그램 동작이 완료될 때까지 다음 순서의 데이터들(D9~D15)을 스몰 인터리브 유닛 및 라지 인터리브 유닛 단위로 인터리브 방식을 이용하여 프로그램할 수 있다.
본 발명의 실시예에 따르면, 메모리 컨트롤러(220)는 프로그램 동작시 프로그램을 진행하는 순서를 인터리브 유닛의 순서로 실행할 수 있다. 즉, 메모리 컨트 롤러(220)는 플래시 메모리 장치를 관리하는 단위인 슈퍼 페이지의 순서로 프로그램 하지 않고, 설정한 스몰 인터리브 유닛들 간 및 라지 인터리브 유닛들 간의 인터리브 동작을 인터리브 유닛 순서로 실행할 수 있다.
전술한 2-bit MLC 플래시 메모리 장치의 경우, 예를 들면, 라지 인터리브 유닛(L-IU 0)의 프로그램 시간이 짧은 LSB 페이지로 구성된 슈퍼 페이지들(SP 0, SP 1)을 인터리브 방식으로 차례대로 프로그램할 수 있다. 이 후 프로그램 시간이 긴 MSB 페이지로 구성된 슈퍼 페이지들(SP 4, SP 5)을 인터리브 방식으로 차례대로 프로그램할 수 있다.
또한 라지 인터리브 유닛(L-IU 0)의 프로그램 동작이 진행되는 동안 라지 인터리브 유닛(L-IU 1)을 프로그램할 수 있다. 전술한 바와 같이 라지 인터리브 유닛(L-IU 1)의 프로그램 시간이 짧은 LSB 페이지로 구성된 슈퍼 페이지들(SP 2, SP 3)과 프로그램 시간이 긴 MSB 페이지로 구성된 슈퍼 페이지들(SP 6, SP 7)을 인터리브 방식으로 차례대로 프로그램할 수 있다.
이 경우 슈퍼 페이지의 프로그램 순서는 LSB 페이지(SP 0) → LSB 페이지(SP 1) → MSB 페이지(SP 4) → MSB 페이지(SP 5)의 순서로 구성될 수 있다.
도 6B는 종래의 불휘발성 메모리 장치의 프로그램 방법을 나타내는 타이밍도이다.
종래의 프로그램 방법을 도 2의 메모리 시스템에서 도 6A와 동일한 데이터들(D0~D12)을 전송하는 경우를 예로 들어 설명한다. 도 2, 도 4 및 도 6B를 참조하면, 메모리 컨트롤러(도 2의 220)는 채널(CH 0)을 통해 연결된 플래시 메모 리 장치들(231, 241, 251, 261)에 구성된 슈퍼 페이지들을 차례대로 프로그램할 수 있다. 이 경우, 각각의 플래시 메모리 장치들(231, 241, 251, 261)이 프로그램 동작을 하는 시간(S 0~S 11)에 메모리 컨트롤러는 슈퍼 페이지의 순서대로 인터리브 동작을 실행할 수 있다. 예를 들면, 제 1 플래시 메모리 장치(231)의 슈퍼 페이지(SP 0)가 프로그램되는 시간 S0 동안 제 2 플래시 메모리 장치(241)의 슈퍼 페이지(SP 1)를 프로그램하기 위한 셋업 동작을 실행할 수 있다.
메모리 컨트롤러(220)는 슈퍼 페이지(SP 7)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D7)의 셋업 동작 후, 슈퍼 페이지(SP 8)를 프로그램하기 위한 제 1 커맨드, 어드레스 및 데이터(D8)의 셋업 동작을 시작하기까지 대기 시간 Δt2를 갖는다. 메모리 컨트롤러의 대기 시간 Δt2는 본 발명의 실시예에 따른 메모리 컨트롤러의 대기 시간 Δt1 보다 길다. 즉, 본 발명에 따라 인터리브 유닛을 단위로 인터리브 동작을 실행하는 방법은 메모리 시스템의 속도를 향상시킬 수 있다.
도 7은 본 발명의 실시예에 따른 메모리 시스템을 예시적으로 보여주는 블럭도이다.
도 7을 참조하면, 고용량의 데이터 저장 능력을 지원하기 위한 메모리 시스템(700)은 불휘발성 메모리 장치(705)를 포함한다. 메모리 컨트롤러(715)는 불휘발성 메모리 장치(705)와 호스트(710) 간의 데이터 교환을 제어한다. 메모리 컨트롤러(715)는 본 발명의 실시예에 따른 인터리브 방식을 실행할 수 있다.
중앙처리장치(Central Processing Unit: CPU, 720)는 메모리 컨트롤러(715) 의 데이터 교환을 위한 제어 동작을 수행한다. SRAM(Static Random Access Memory, 725)은 중앙처리장치의 동작 메모리(Working Memory)로써 사용된다. 호스트 인터페이스(Host Interface, 730)는 메모리 시스템(700)과 접속되는 호스트(710) 간의 데이터 교환 프로토콜(Protocol)을 구비한다.
에러 정정 블럭(Error Correcting Code: ECC, 735)은 멀티 비트(Multi Bit) 불휘발성 메모리 장치(705)로부터 독출된 데이터에 포함되는 에러를 분석 및 정정한다. 메모리 인터페이스(Memory Interface, 740)는 불휘발성 메모리 장치(705)와 인터페이싱(Interfacing) 한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(700)은 호스트(710)와의 인터페이싱을 위한 코드 데이터(Code Data)를 저장하는 ROM(Read Only Memory, 도시하지 않음)등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 8은 본 발명의 실시예에 따른 또 다른 메모리 시스템을 예시적으로 보여주는 블럭도이다.
도 8을 참조하면, 메모리 시스템(800)은 중앙처리장치(Central Processing Unit: CPU, 805), RAM(Random Access Memory, 810), 사용자 인터페이스(User Interface, 815), 시스템 버스(System Bus, 820), 불휘발성 메모리 시스템(830) 및 전원 장치(Power Supply, 840)를 포함한다.
불휘발성 메모리 시스템(830)은 시스템 버스(820)를 통해 중앙처리장치(805), RAM(810), 사용자 인터페이스(815) 및 전원 장치(840)에 전기적으로 연결된다.
불휘발성 메모리 시스템(830)은 메모리 컨트롤러(831) 및 불휘발성 메모리 장치(832)를 포함할 수 있다. 불휘발성 메모리 시스템(830)은 본 발명의 실시예에 따른 인터리브 방식을 실행할 수 있다. 불휘발성 메모리 장치(832)에는 사용자 인터페이스(815)를 통해서 제공되거나 또는 중앙처리장치(805)에 의해서 처리된 데이터가 메모리 컨트롤러(831)를 통해 저장된다.
비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
본 발명의 실시예에 따른 메모리 시스템의 플래시 메모리 장치 또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 또는 메모리 컨트롤러는 POP(Package on Package), Ball grid arrays(BGAs), Chip Scale Packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.
도 1은 본 발명의 실시예에 따른 불휘발성 메모리 장치의 외형도이다.
도 2는 본 발명의 실시예에 따른 메모리 시스템의 블럭도이다.
도 3은 본 발명의 실시예에 따른 인터리브 유닛 구성방법에 대한 순서도이다.
도 4는 도 2에 도시된 불휘발성 메모리 장치의 메모리 셀 어레이에 대한 개략도이다.
도 5A는 본 발명의 실시예에 따른 인터리브 유닛 설정 방법을 보여주는 도면이다.
도 5B는 본 발명의 다른 실시예에 따른 인터리브 유닛 설정 방법을 보여주는 도면이다.
도 6A는 본 발명의 실시예에 따른 불휘발성 메모리 장치의 프로그램 방법을 나타내는 타이밍도이다.
도 6B는 종래의 불휘발성 메모리 장치의 프로그램 방법을 나타내는 타이밍도이다.
도 7은 본 발명의 실시예에 따른 메모리 시스템을 예시적으로 보여주는 블럭도이다.
도 8은 본 발명의 실시예에 따른 다른 메모리 시스템을 예시적으로 보여주는 블럭도이다.
Claims (9)
- 복수의 불휘발성 메모리 장치들 및 메모리 컨트롤러를 포함하는 메모리 시스템의 인터리브 유닛 구성 방법에 있어서,상기 복수의 불휘발성 메모리 장치들의 메모리 셀 영역들의 일부를 선택하여 프로그램 시간 측정 그룹으로 설정하는 단계;상기 프로그램 시간 측정 그룹을 구성하는 상기 선택된 메모리 셀 영역들에 대하여 프로그램 동작을 실행하되, 상기 선택된 메모리 셀 영역들의 프로그램 시간들을 스캐닝하는 단계; 및상기 스캐닝한 프로그램 시간들을 이용하여 인터리브 동작의 단위로 사용하게되는 인터리브 유닛을 설정하는 단계를 포함하는 인터리브 유닛 구성 방법.
- 제 1 항에 있어서,상기 프로그램 시간 측정 그룹은,상기 불휘발성 메모리 장치의 프로그램 동작의 최소 단위로 구성되거나,복수의 상기 프로그램 동작의 최소 단위들을 포함하되, 상기 프로그램 동작의 최소 단위들의 특성이 일정하게 반복되는 단위로 구성되는 인터리브 유닛 구성 방법.
- 제 2 항에 있어서,상기 프로그램 동작의 최소 단위들의 특성은 프로그램 시간인 것을 특징으로 하는 인터리브 유닛 구성 방법.
- 제 1 항에 있어서,상기 프로그램 시간을 스캐닝하는 것은,상기 메모리 컨트롤러의 타이머 또는 카운터에 의해서 행해지는 인터리브 유닛 구성 방법.
- 제 1 항에 있어서,상기 인터리브 유닛은,스몰 인터리브 유닛 또는 라지 인터리브 유닛으로 구성되되,상기 스몰 인터리브 유닛은 제 1 프로그램 시간을 갖는 프로그램 단위, 또는상기 제 1 프로그램 시간보다 짧은 제 2 프로그램 시간을 갖는 프로그램 단위와 적어도 하나의 상기 제 1 프로그램 시간을 갖는 프로그램 단위를 조합하여 구성되고,상기 라지 인터리브 유닛은 적어도 하나의 상기 스몰 인터리브 유닛을 조합하여 구성되는 인터리브 유닛 구성 방법.
- 복수의 불휘발성 메모리 장치들; 및적어도 하나의 채널을 통해 상기 복수의 불휘발성 메모리 장치들과 데이터를 교환하되, 상기 복수의 불휘발성 메모리 장치들의 메모리 셀 영역들의 일부를 선택하여 프로그램 시간을 측정하고, 상기 측정된 프로그램 시간들에 따라 상기 복수의 불휘발성 메모리 장치들을 인터리브 방식으로 구동하기 위한 인터리브 유닛을 구성하는 메모리 컨트롤러를 포함하며,상기 복수의 불휘발성 메모리 장치들은 제 1 불휘발성 메모리 장치 및 제 2 불휘발성 메모리 장치를 포함하고;상기 메모리 컨트롤러는 상기 제 1 불휘발성 메모리 장치 및 상기 제 2 불휘발성 메모리 장치의 제 1 프로그램 단위들을 순차적으로 구동한 후, 상기 제 1 불휘발성 메모리 장치 및 상기 제 2 불휘발성 메모리 장치의 제 2 프로그램 단위들을 순차적으로 구동하되, 상기 제 1 프로그램 단위들은 제 1 프로그램 시간을 갖고, 상기 제 2 프로그램 단위들은 상기 제 1 프로그램 시간보다 긴 프로그램 시간을 갖는 메모리 시스템.
- 제 6 항에 있어서,상기 메모리 컨트롤러는,상기 불휘발성 메모리 장치의 프로그램 동작의 최소 단위, 또는복수의 상기 프로그램 동작의 최소 단위들을 포함하되, 상기 프로그램 동작의 최소 단위들의 특성이 일정하게 반복되는 단위로 프로그램 시간 측정 그룹을 구성하여 프로그램 시간을 측정하는 메모리 시스템.
- 제 6 항에 있어서,상기 인터리브 유닛은,스몰 인터리브 유닛 또는 라지 인터리브 유닛으로 구성되되,상기 스몰 인터리브 유닛은 제 1 프로그램 시간을 갖는 프로그램 단위, 또는상기 제 1 프로그램 시간보다 짧은 제 2 프로그램 시간을 갖는 프로그램 단위와 적어도 하나의 상기 제 1 프로그램 시간을 갖는 프로그램 단위를 조합하여 구성되고,상기 라지 인터리브 유닛은 적어도 하나의 상기 스몰 인터리브 유닛을 조합하여 구성되는 메모리 시스템.
- 제 6 항에 있어서,상기 메모리 시스템의 인터리브 동작은 상기 인터리브 유닛을 단위로 실행되되,상기 스몰 인터리브 유닛들 사이에서 인터리브 동작이 실행되고, 상기 라지 인터리브 유닛들 사이에서 인터리브 동작이 실행되는 메모리 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090072525A KR101581857B1 (ko) | 2009-08-06 | 2009-08-06 | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 |
US12/820,445 US8332569B2 (en) | 2009-08-06 | 2010-06-22 | Nonvolatile memory system using data interleaving scheme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090072525A KR101581857B1 (ko) | 2009-08-06 | 2009-08-06 | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110014919A true KR20110014919A (ko) | 2011-02-14 |
KR101581857B1 KR101581857B1 (ko) | 2015-12-31 |
Family
ID=43535662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090072525A KR101581857B1 (ko) | 2009-08-06 | 2009-08-06 | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8332569B2 (ko) |
KR (1) | KR101581857B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128890B2 (en) | 2012-12-20 | 2015-09-08 | SK Hynix Inc. | Semiconductor memory system and method for controlling order of access operation on a plurality of memory devices of multi-plane array |
KR20170140467A (ko) * | 2016-06-10 | 2017-12-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI425512B (zh) * | 2009-06-16 | 2014-02-01 | Phison Electronics Corp | 快閃記憶體控制電路及其儲存系統與資料傳輸方法 |
US8634240B2 (en) | 2009-10-28 | 2014-01-21 | SanDisk Technologies, Inc. | Non-volatile memory and method with accelerated post-write read to manage errors |
US8423866B2 (en) * | 2009-10-28 | 2013-04-16 | SanDisk Technologies, Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8214700B2 (en) | 2009-10-28 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
US8305807B2 (en) | 2010-07-09 | 2012-11-06 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US8514630B2 (en) | 2010-07-09 | 2013-08-20 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays: current based approach |
US8432732B2 (en) | 2010-07-09 | 2013-04-30 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays |
US9058212B2 (en) * | 2011-03-21 | 2015-06-16 | Microsoft Technology Licensing, Llc | Combining memory pages having identical content |
US8379454B2 (en) | 2011-05-05 | 2013-02-19 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US8775901B2 (en) | 2011-07-28 | 2014-07-08 | SanDisk Technologies, Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
US8726104B2 (en) | 2011-07-28 | 2014-05-13 | Sandisk Technologies Inc. | Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages |
US8750042B2 (en) | 2011-07-28 | 2014-06-10 | Sandisk Technologies Inc. | Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures |
US10203881B2 (en) | 2011-12-19 | 2019-02-12 | Apple Inc. | Optimized execution of interleaved write operations in solid state drives |
US8566671B1 (en) | 2012-06-29 | 2013-10-22 | Sandisk Technologies Inc. | Configurable accelerated post-write read to manage errors |
TWI520152B (zh) * | 2013-03-01 | 2016-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與快閃記憶體控制方法 |
US9213601B2 (en) | 2013-12-03 | 2015-12-15 | Sandisk Technologies Inc. | Adaptive data re-compaction after post-write read verification operations |
KR102161448B1 (ko) | 2014-02-03 | 2020-10-05 | 삼성전자 주식회사 | 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법 |
US9632706B2 (en) * | 2015-01-04 | 2017-04-25 | Apple Inc. | Ordering of parallel data storage based on die programming durations |
US9952779B2 (en) | 2016-03-01 | 2018-04-24 | Apple Inc. | Parallel scheduling of write commands to multiple memory devices |
KR20190006680A (ko) * | 2017-07-11 | 2019-01-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20210026832A (ko) * | 2019-09-02 | 2021-03-10 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
KR20210079611A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
KR20210083941A (ko) | 2019-12-27 | 2021-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법 |
TWI783842B (zh) * | 2021-12-29 | 2022-11-11 | 瑞昱半導體股份有限公司 | 記憶體壞塊掃描方法及其電路系統 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06195988A (ja) * | 1992-12-28 | 1994-07-15 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置の書込み方法 |
KR100506448B1 (ko) * | 2002-12-27 | 2005-08-08 | 주식회사 하이닉스반도체 | 불휘발성 강유전체 메모리를 이용한 인터리브 제어 장치 |
JP2006235761A (ja) * | 2005-02-22 | 2006-09-07 | Nec Corp | 分散共有メモリ装置およびメモリアクセス方法 |
JP2007517320A (ja) * | 2003-12-30 | 2007-06-28 | サンディスク コーポレイション | ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
JP2755202B2 (ja) | 1995-02-13 | 1998-05-20 | 日本電気株式会社 | 複数のeepromを有する処理装置 |
JP3444154B2 (ja) * | 1997-09-17 | 2003-09-08 | 日本電気株式会社 | メモリアクセス制御回路 |
JP4248772B2 (ja) | 2001-07-05 | 2009-04-02 | Tdk株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP2010020715A (ja) * | 2008-07-14 | 2010-01-28 | Toshiba Corp | 半導体メモリコントローラおよび半導体メモリシステム |
JP5480714B2 (ja) * | 2009-05-15 | 2014-04-23 | パナソニック株式会社 | 半導体記録装置 |
-
2009
- 2009-08-06 KR KR1020090072525A patent/KR101581857B1/ko active IP Right Grant
-
2010
- 2010-06-22 US US12/820,445 patent/US8332569B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06195988A (ja) * | 1992-12-28 | 1994-07-15 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置の書込み方法 |
KR100506448B1 (ko) * | 2002-12-27 | 2005-08-08 | 주식회사 하이닉스반도체 | 불휘발성 강유전체 메모리를 이용한 인터리브 제어 장치 |
JP2007517320A (ja) * | 2003-12-30 | 2007-06-28 | サンディスク コーポレイション | ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え |
JP2006235761A (ja) * | 2005-02-22 | 2006-09-07 | Nec Corp | 分散共有メモリ装置およびメモリアクセス方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128890B2 (en) | 2012-12-20 | 2015-09-08 | SK Hynix Inc. | Semiconductor memory system and method for controlling order of access operation on a plurality of memory devices of multi-plane array |
KR20170140467A (ko) * | 2016-06-10 | 2017-12-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Also Published As
Publication number | Publication date |
---|---|
US8332569B2 (en) | 2012-12-11 |
US20110035538A1 (en) | 2011-02-10 |
KR101581857B1 (ko) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101581857B1 (ko) | 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법 | |
KR101957614B1 (ko) | 메모리의 상이한 메모리 평면들을 동시에 액세스하기 위한 장치들 및 방법들 | |
KR101371516B1 (ko) | 플래시 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템 | |
JP5368735B2 (ja) | ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 | |
CN110389720B (zh) | 存储装置及其操作方法 | |
US11360711B2 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
KR102012740B1 (ko) | 복수의 불휘발성 메모리 칩들을 포함하는 저장 장치 및 그것의 제어 방법 | |
CN107797855A (zh) | 存储器系统及其操作方法 | |
US8154925B2 (en) | Semiconductor memory device and system capable of executing an interleave programming for a plurality of memory chips and a 2-plane programming at the respective memory chips | |
US9152553B1 (en) | Generic command descriptor for controlling memory devices | |
US20170147235A1 (en) | Memory system controlling interleaving write to memory chips | |
KR20170001235A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN110827873B (zh) | 存储器控制器 | |
US11688472B2 (en) | Memory device for passing verify operation and operating method of the same | |
KR20150055884A (ko) | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
KR20090120675A (ko) | 불휘발성 메모리 소자의 어드레스 입력 방법 및 동작 방법 | |
US9952779B2 (en) | Parallel scheduling of write commands to multiple memory devices | |
US10937492B2 (en) | Semiconductor storage apparatus | |
KR20080062173A (ko) | 복수의 메모리를 갖는 메모리 시스템 그것의 메모리 억세스방법 | |
TW202242888A (zh) | 記憶體、讀取設置突發操作的執行方法及記憶體操作方法 | |
US9311257B2 (en) | Semiconductor memory device, memory system and method of operating the same | |
KR20180008172A (ko) | 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 | |
US11210223B2 (en) | Storage device and operating method thereof | |
US20230238040A1 (en) | Storage device and operating method thereof | |
KR102686745B1 (ko) | 필드 프로그래머블 게이트 어레이를 업데이트하도록 구성된 스토리지 장치 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |