KR101132497B1 - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR101132497B1
KR101132497B1 KR1020097018225A KR20097018225A KR101132497B1 KR 101132497 B1 KR101132497 B1 KR 101132497B1 KR 1020097018225 A KR1020097018225 A KR 1020097018225A KR 20097018225 A KR20097018225 A KR 20097018225A KR 101132497 B1 KR101132497 B1 KR 101132497B1
Authority
KR
South Korea
Prior art keywords
data
parallel operation
storage unit
unit
address
Prior art date
Application number
KR1020097018225A
Other languages
English (en)
Other versions
KR20090117939A (ko
Inventor
야스시 나가도미
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Publication of KR20090117939A publication Critical patent/KR20090117939A/ko
Application granted granted Critical
Publication of KR101132497B1 publication Critical patent/KR101132497B1/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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7206Reconfiguration of flash memory system
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 블록 사이즈 보다 작은 데이터 및 블록 사이즈 보다 큰 데이터를 기록 효율을 저하시키지 않고 기억할 수 있고 그 데이터에 따라서 병렬도를 동적으로 변경할 수 있는 메모리 시스템을 제공하는 것이다. 본 발명의 실시형태에 따른 메모리 시스템은, DRAM(11), NAND 메모리(12) 및 데이터의 액세스시에 사용되는 NAND 메모리(12) 내의 병렬 동작 소자(120A 내지 120D)를 나타내는 병렬 동작 소자 지정 정보 및 데이터의 어드레스를 NAND 인터페이스(140)에 대하여 지정하는 NAND 제어기 제어 레지스터(150), 각 병렬 동작 소자(120A 내지 120D)에 병렬로 연결되어 지정된 병렬 동작 소자 지정 정보와 어드레스에 기초하여 선택되는 1 또는 복수의 병렬 동작 소자(120A 내지 120D)의 어드레스에 액세스하는 NAND 인터페이스(140) 그리고 액세스되는 데이터의 타입에 따라서 병렬 동작 소자 지정 정보를 NAND 제어기 제어 레지스터(150)에 설정하는 CPU(131)를 구비한다.
메모리 시스템

Description

메모리 시스템{MEMORY SYSTEM}
본 발명은 메모리 시스템에 관한 것으로, 비휘발성 반도체 메모리를 이용하여 구성되는 메모리 시스템에 관한 것이다.
최근, 비휘발성 반도체 메모리의 타입으로서 NAND 타입 플래시 메모리가 주목받고 있다. NAND 타입 플래시 메모리 기록/소거 동작은 NOR 타입 플래시 메모리의 기록/소거 동작 보다 더 빠르다. 또한, 반도체 장치들의 제조 기술의 발전으로 인해, 반도체 소자들의 미세화가 진행되며, 단위 면적 당 메모리 용량이 증대되고 있다. NAND 타입 플래시 메모리를 이용하는 대용량 메모리 시스템들은 이미 상용화되어 있다.
일반적으로, NAND 타입 플래시 메모리에서, 복수의 페이지가 모여서 하나의 블록을 형성한다. 기록/판독 처리는 페이지 단위로 수행되며, 소거 처리는 블록 단위로 수행된다(예를 들어, 특허 문헌 1 참조).
또한, 최근 정보 기술의 발달에 따라서, 예를 들어 화상 파일, 음악 파일 및 비디오 파일과 같은 수 메가바이트를 넘는 사이즈의 큰 용량 파일들이 퍼스널 컴퓨터와 같은 2 차 기억 장치에 저장된다. 2차 기억 장치로서 예를 들어 4 킬로바이트의 페이지 사이즈를 가지는 NAND 타입 플래시 메모리를 이용하는 메모리 시스템 을 적용하는 경우에, NAND 타입 플래시 메모리의 기록 단위인 페이지 사이즈 보다 상당히 더 큰 파일을 기록하는 경우에는, 기록은 각 페이지(4 킬로바이트)에 대하여 수행되어야 하고, 그 파일을 기록하기 위하여 긴 시간이 요구되는 문제점이 있다. 한편, 대용량 파일의 기록의 효율을 향상시키기 위하여 페이지 당 기록 사이즈를 증가시키면, 그 페이지 사이즈 보다 작은 파일의 기록 시에, 페이지 내에 미사용 영역이 발생된다.
또한, NAND 타입 플래시 메모리의 데이터의 재기록 처리는,동적 랜덤 액세스 메모리(DRAM)과 같은 메모리에 데이터를 한번 세이브하고, 그 메모리에 재기록되는 페이지를 업데이트하며, 그 업데이트된 페이지 포함하는 블록을 구성하는 데이터를 데이터가 이미 소거되어 있고 데이터를 현재 저장하는 블록과는 다른 블록에 기록하고, 원래의 블록을 소거하는 처리를 필요로 한다. 따라서, 상기 블록 사이즈와 비교하여 작은 용량을 가지며 높은 재기록 빈도를 가지는 파일의 기록시에, 페이지 내에 미사용 영역이 발생되고, 불필요한 소거 횟수가 증가한다. 따라서, 기록 데이터량에 대한 데이터 소거량의 비율인 기록 효율이 저하되어 블록을 구성하는 셀을 열화시킨다.
특허 문헌 1 : 일본 공개 특허 공보 제2007-279402호
본 발명의 목적은, 기록 효율을 저하시키지 않고, 블록 사이즈 보다 더 큰 데이터 뿐만 아니라 블록 사이즈보다 작은 데이터를 기억할 수 있는 메모리 시스템을 제공하는 것이다.
본 발명의 실시형태에 따른 메모리 시스템은, 휘발성의 제 1 기억부; 상기 제 1 기억부를 통하여 호스트 장치로부터 송신되는 데이터를 기억하는 비휘발성의 제 2 기억부으로서, 메모리 영역이 복수의 병렬 동작 요소를 포함하는 것인 비휘발성의 제 2 기억부; 및 상기 제 1 기억부와 상기 제 2 기억부 사이에서, 또는 상기 제 2 기억부 내에서 데이터 전송을 수행하는 제어기를 구비하며, 상기 제어기는, 인터페이스부에 대하여, 상기 데이터에 액세스하기 위해 사용되는 상기 제 2 기억부 내의 상기 병렬 동작 요소를 나타내는 병렬 동작 요소 지정 정보와, 액세스될 상기 데이터의 어드레스를 지정하는 인터페이스 지정부; 상기 제 2 기억부의 각각의 병렬 동작 요소와 병렬로 접속되어, 상기 인터페이스 지정부에 의해 지정된 상기 병렬 동작 요소 지정 정보 및 상기 어드레스에 기초하여 선택된, 상기 제 2 기억부 내의 1개 또는 복수개의 병렬 동작 요소의 어드레스에 액세스하는 인터페이스부; 및 데이터 액세스 시에, 액세스될 상기 데이터의 타입에 따라서 상기 데이터 액세스에 사용되는 상기 병렬 동작 요소 지정 정보를 상기 인터페이스 지정부에 설정하는 제어부를 포함한다.
본 발명의 실시형태에 따른 메모리 시스템은, 휘발성의 제 1 기억부; 상기 제 1 기억부를 통하여 호스트 장치로부터 송신되는 데이터를 기억하는 비휘발성의 제 2 기억부로서, 메모리 영역이 복수의 병렬 동작 요소를 포함하는 것인 비휘발성의 제 2 기억부; 및 인터페이스부에 대하여, 상기 데이터에 액세스하기 위해 사용되는 어드레스를 지정하는 인터페이스 지정부; 상기 인터페이스 지정부에 의해 지정된 어드레스에 기초하여 상기 데이터에 액세스하기 위한 제 2 기억부의 각각의 병렬 동작 요소에 병렬로 연결되는 인터페이스부; 및 데이터 액세스 시에 상기 인터페이스 지정부에 상기 제 2 기억부의 목적지 어드레스를 설정하고, 상기 제 1 기억부와 상기 제 2 기억부 사이에서 또는 상기 제 2 기억부 내에서의 데이터 전송을 제어하는 제어부를 포함하는 제어기를 구비하며, 상기 제어부는 상기 데이터 액세스시에 액세스될 상기 데이터의 타입에 따라서 상기 인터페이스부와 상기 제 2 기억부 사이의 데이터 액세스에 사용되는 병렬 동작 요소를 결정하고, 상기 인터페이스 지정부에 대하여, 사용되는 상기 병렬 동작 요소에 대한 유효 어드레스 및 사용되지 않는 상기 병렬 동작 요소에 대한 무효 어드레스를 설정한다.
도 1은 본 발명의 제 1 실시형태에 따른 메모리 시스템의 구성의 일례의 블록도이다.
도 2는 NAND 메모리에 포함되는 1 개의 블록의 구성의 일례의 회로도이다.
도 3은 제 1 실시형태에 따른 NAND 제어기 제어 레지스터의 구성의 일례이다.
도 4는 CPU의 기능 구성의 일례에 대한 블록도이다.
도 5는 메모리 시스템에 있어서의 데이터 전송 처리의 일례이다.
도 6의 (a) 및 도 6의 (b)는 8 비트 정규 모드의 경우의 데이터 액세스 제어의 처리 상태를 도시한다.
도 7의 (a) 및 도 7의 (b)는 32 비트 배속 모드의 경우의 데이터 액세스 제어의 처리 상태를 도시한다.
도 8은 본 발명의 제 2 실시형태에 따른 어드레스 할당 방법의 일례이다.
도 9의 (a) 및 도 9의 (b)는 제 2 실시형태에 따른 어드레스 지정 방법의 일례이다.
도 10은 본 발명의 제 3 실시형태에 따른 NAND 메모리의 어드레스 할당 방법의 일례이다.
도 11의 (a) 및 도 11의 (b)는 제 3 실시형태에 따른 어드레스 지정 방법의 일례이다.
도 12는 NAND 메모리 내의 병렬도(parallelism)에 따른 영역 분할의 일례이다.
도 13은 본 발명의 제 4 실시형태에 따른 메모리 시스템의 데이터 전송 처리의 일례이다.
도 14는 본 발명의 제 5 실시형태에 따른 NAND 제어기 제어 레지스터의 구성의 일례를 개략적으로 도시한다.
도 15(a) 및 도 15(b)는 저병렬도 저장 영역의 사이즈를 변경한 경우의 일례이다.
이하, 본 발명에 따른 메모리 시스템의 예시적인 실시형태를 첨부 도면을 참조하여 상세히 설명한다. 본 발명은 이 실시형태로 제한되지 않는다.
본 발명의 제 1 실시형태에 따른 메모리 시스템은, 비휘발성 반도체 메모리를 포함하며, 퍼스널 컴퓨터와 같은 호스트 장치의 2차 기억 장치(SSD: solid state drive)로서 사용된다. 상기 메모리 시스템은, 호스트 장치로부터 기록 요청이 발행되었던 데이터를 기억하고, 호스트 장치로부터 판독 요청이 발행되었던 데이터를 판독하여 호스트 장치에 그 데이터를 출력하는 기능을 가진다. 도 1은 제 1 실시형태에 따른 메모리 시스템의 구성의 일례에 대한 블록도이다. 메모리 시스템(10)은 제 1 기억부로서의 DRAM(11), 제 2 기억부로서의 NAND형 플래시 메모리(이하, "NAND 메모리"라 함)(12) 및 구동 제어 회로(도면에서 "ASIC"으로 표시됨)를 포함한다.
DRAM(11)은 데이터 전송용 또는 관리 정보 기록용 기억부로서 사용된다. 특히, 데이터 전송용 기억부는, 호스트 장치로부터 기록 요청이 발행되었던 데이터를 NAND 메모리(12)에 기록하기 전에 일시적으로 보존하거나 또는 호스트 장치로부터 판독 요청이 발행되었던 데이터를 NAND 메모리(12)로부터 판독하여 일시적으로 보존하는데 사용된다. 상기 관리 정보를 기록하는 기억부는, DRAM(11) 및 NAND 메모리(12)에 기억되는 데이터의 기억 위치를 관리하기 위한 관리 정보를 기억하기 위하여 사용된다.
NAND 메모리(12)는 데이터 기억용 기억부로서 사용된다. 특히, NAND 메모리(12)는 호스트 장치로부터 데이터를 기억하고, DRAM(11)에 의해 관리되는 관리 정보를 백업을 위하여 기억한다. 도 1은, NAND 메모리(12)가 4 개의 병렬 동작 요소(120A 내지 120D)를 포함하는 경우를 나타낸다. 하나의 병렬 동작 요소(120A 내지 120D)는, 미리 결정된 사이즈의 메모리 용량을 갖는 8개의 칩(122)이 하나로 통합된 2개의 패키지(121)를 포함한다. 하나의 병렬 동작 요소 내의 2개의 패키 지(121)는, NAND 제어기(134)의 제어핀(141)과 입/출력 핀(142)을 공유하고, 구동 제어 회로(13)와 버스를 통해 병렬로 연결되어 있다. 각 병렬 동작 요소(120A 내지 120D)에 연결된 버스는, 데이터 전송 시에 채널(15A 내지 15D)로서 기능한다. 이하의 설명에서는, 각 병렬 동작 요소(120A 내지 120D)에 연결되는 각 버스의 폭은 8bit로 가정된다.
구동 제어 회로(13)는, DRAM(l1)과 NAND 메모리(12)를 제어한다. 제 1 실시형태에서, 구동 제어 회로(13)는, 다양한 타입의 처리를 수행하는 CPU(Central Processing Unit)(131)과, 호스트 장치와 같은 외부 장치와 상기 구동 제어 회로(13) 사이에서 데이터를 전송하는 외부 인터페이스(도면 중, 외부 IF로서 표기)(132)와, DRAM(11)를 제어하는 DRAM 제어기(133)와, NAND 메모리(12)를 제어하는 NAND 제어기(134)가 내부 버스(135)를 통해 서로 연결된 구성을 갖는다.
NAND 제어기(134)는, NAND 메모리(12)와 상기 NAND 제어기(134) 사이에서 데이터를 전송하는 NAND 인터페이스(도면 중, NAND-IF로 표기)(140)와, NAND 제어기(134)의 동작의 제어를 하는 NAND 제어기 제어 레지스터(150)를 포함한다. NAND 인터페이스(140)는, NAND 메모리(12)를 구성하는 병렬 동작 요소(120A 내지 120D)의 각각에대하여 제어 핀(141)과 입출력(IO) 핀(142)을 가지며, 채널(15A 내지 15D)을 통해 병렬 동작 요소(120A 내지 120D)에 연결된다. 또한, NAND 인터페이스(140)는, 칩 인에이블 신호 출력부(143)를 가지며, 각 병렬 동작 요소(120A 내지 120D)에 연결되어 있다. 도 1에 도시된 예에서, 각 병렬 동작 요소(120A 내지 120D)의 칩(122-0 내지 122-3)에 연결되는 칩 인에이블 신호선(CE0)과, 칩(122-4 내지 122-7)에 연결되는 칩 인에이블 신호선(CE1)과, 칩(122-8 내지 122-11)에 연결되는 칩 인에블 신호선(CE2)과, 칩(122-12 내지 112-15)에 연결되는 칩 인에이블 신호선(CE3)이 제공된다.
여기서, NAND 메모리(12)의 구성에 관해서 설명한다. NAND 메모리(12)는, 데이터소거의 단위인 블록을 기판 상에 복수 배열하여 구성된다. 도 2는, NAND 메모리에 포함되는 1개의 블록의 구성의 일례를 도시하는 회로도이다. 이 도 2에 있어서, 도면상의 좌우 방향을 X 방향으로 지정하며, 도면상의 X 방향에 수직한 방향을 Y 방향으로 지정하고 있다.
NAND 메모리(12)의 각 블록 BLK은, X 방향을 따라서 순차적으로로 배열된 (m+1)개(m은 0 이상의 정수)의 NAND 스트링 NS를 포함한다. 각 NAND 스트링 NS는, (n+1)개(n은 0이상의 정수)의 메모리 셀 트랜지스터(MT0 내지 MTn)와 상기 (n+1)개의 메모리 셀 트랜지스터(MT0 내지 MTn)의 라인의 양단에 배열되는 선택 트랜지스터( ST1 및 ST2)를 포함한다.
각 메모리 셀 트랜지스터(MT0 내지 MTn)는, 반도체 기판 상에 형성된 적층 게이트 구조를 갖는 전계 효과 트랜지스터를 포함한다. 상기 적층 게이트 구조는, 반도체 기판 상에 게이트 절연막을 개재하여 형성된 전하 축적층(플로팅 게이트 전극)과, 이 전하 축적층 상에 인터 게이트 절연막을 개재하여 형성된 제어 게이트 전극을 포함한다. 메모리 셀 트랜지스터(MT0 내지 MTn)는, 각각 플로팅 게이트 전극에 축적되는 전자의 수에 따라서 임계 전압이 변화하며, 이 임계 전압의 차이에 따라서 2비트 이상의 데이터를 기억할 수 있는 멀티레벨 메모리이다. 이하에 설명 하는 실시 형태들에서, 메모리 셀 트랜지스터(MT)가 멀티레벨 메모리인 경우를 예를 들어 설명하지만, 1비트(2진값)를 기억하는 구조를 가질 수 있다.
NAND 스트링 NS를 구성하는 메모리 셀 트랜지스터(MT0 내지 MTn)의 제어 게이트 전극에는, 각각 워드선(WL0 내지 WLn)이 연결되어 있고, 각 NAND 스트링 NS의 메모리 셀 트랜지스터(MTi)(i= 0 내지 n)는, 동일한 워드선(WLi)(i= 0 내지 n)에 의해서 서로 공통 연결되어 있다. 즉, 블록 BLK 내에서 동일 라인에 있는 메모리 셀 트랜지스터(MTi)의 제어 게이트 전극은, 동일한 워드선(WLi)에 연결된다. 이 동일한 워드선(WLi)에 연결되는 (m+1)개의 메모리 셀 트랜지스터(MTi)는 1페이지로서 취급되고, NAND 메모리(12)에서는, 이 페이지가 데이터의 기록과 판독의 최소 단위가 된다.
하나의 블록 BLK 내의 (m+1)개의 선택 트랜지스터(ST1) 각각의 드레인에는 각각의 비트선(BL0 내지 BLm)이 연결되고, 이것의 게이트에는 선택 게이트 선(SGD)가 공통 연결되어 있다. 선택 트랜지스터(ST1)의 소스는 메모리 셀 트랜지스터(MT0)의 드레인과 연결되어 있다. 마찬가지로, 하나의 블록 BLK 내의 (m+1)개의 선택 트랜지스터(ST2) 각각의 소스에는 소스선(SL)이 공통 연결되고, 이것의 게이트에는 선택게이트선(SGS)가 공통 연결되어 있다. 또한, 선택 트랜지스터(ST2)의 드레인은 메모리 셀 트랜지스터(MTn)의 소스와 연결되어 있다.
도시되어 있지 않지만, 하나의 블록 BLK 내의 비트선 BLj(j= 0 내지 m)은, 다른 블록(BLK)의 비트선(BLj)과의 사이에서, 선택 트랜지스터(ST1)의 드레인에 공통 연결되어 있다. 즉, 복수의 블록(BLK) 내에서 동일 라인에 있는 NAND 스트 링(NS)은, 동일한 비트선(BLj)에 의해서 연결된다.
NAND 메모리(12)에서, 기록 및 판독의 최소단위가 동일한 워드선(WLi)에 연결된 메모리 셀 트랜지스터(MTi)를 포함하는 페이지이며, 소거의 최소 단위가 미리 결정된 수의 페이지를 포함하는 하나의 블록(물리 블록)이다. 복수의 블록이 함께 평면(plane)을 구성하고, 복수의 평면이 병렬 동작 요소(120A 내지 120D) 중 하나를 구성한다. 이 병렬 동작 요소(120A 내지 120D)는 하나의 NAND 메모리(12)를 구성한다. 도 1에 도시된 예에서, 병렬 동작 요소의 수(즉, 채널 수)가 4이며, 평면의 수가 2인 경우를 나타내고 있다. 칩(122)은, 병렬 동작 요소(120A 내지 120D)를 구성하지만, 하나의 칩(122)내에 평면과 블록이 함께 존재하고 있다.
NAND 메모리(12)를 구성하는 각각의 병렬 동작 요소(120A 내지 120D)는 기록 및 판독시에 정규 모드 및 배속 모드 중 어느 모드로 동작할 수 있다. 정규 모드에서, 데이터의 기록 및 판독은 병렬 동작 요소(120A 내지 120D) 중 하나의 각 블록에 대하여 수행된다. 예를 들어, 하나의 병렬 동작 요소 내의 제 1 평면에 대응하는 블록에의 데이터 기록은 제 1 평면용 버퍼에 데이터를 1 페이지분 축적한 후, 지시된 블록에 대한 페이지 단위로 수행된다. 이와 마찬가지로, 제 2 평면에 대응하는 블록에의 데이터 기록은, 제 2 평면용 버퍼에 데이터를 1페이지분 축적한 후, 지시된 블록에 대하여 페이지 단위로 수행된다. 데이터의 판독도 1페이지씩 수행된다.
배속 모드는 2개의 블록에 대한 데이터의 기록 및 판독을 병렬 동작 요소(120A 내지 120D) 중 하나의 2 개의 평면의 각각의 블록을 이용함으로써 동시에 수행하는 모드이다. 예를 들어, 하나의 병렬 동작 요소에 대하여 2개의 블록에 대한 데이터의 기록을 수행하는 경우에, 제 1 평면용 버퍼에 제 1 블록의 1 페이지분의 데이터를 축적하고, 제 2 평면용 버퍼에 제 2 블록의 1 페이지분의 데이터를 축적한다. 그 후, 제 1 평면 및 제 2 프레인용 버퍼에 축적된 데이터를 각각 제 1 평면의 제 1 블록 및 제 2 평면의 제 2 블록에 기록(프로그램을 실행)한다. 이러한 방식으로, 1회의 프로그램 시간으로 2 페이지분의 데이터를 기록할 수 있다. 데이터의 판독은 동일한 방식으로 수행될 수 있다.
병렬 동작 요소(120A 내지 120D)는 각각 채널을 통하여 병렬로 구동 제어 회로(13)에 접속되기 때문에, 병렬 동작 요소(120A 내지 120D)는 병렬로 액세스될 수 있거나 또는 하나의 채널에만 데이터를 전송시켜 병렬 동작요소에 액세스할 수 있다.
제 1 실시형태에서, 도 1의 경우에, 데이터의 기록/판독 속도와 채널의 병렬도를 조합하여, 2 가지 타입의 액세스 모드를 제공한다.
(1) 8비트 정규 모드
구동 제어 회로(13)에 접속되는 4 채널 중 하나의 채널만을 동작시켜 하나의 병렬 동작 요소의 블록에 대하여 8 비트 단위로 기록 및 판독을 수행한다. 데이터의 기록/판독 사이즈의 단위는 페이지 사이즈이며, 소거 사이즈의 단위는 1 물리 블록 사이즈이다.
(2) 32 비트 배속 모드
이 모드에서는, 구동 제어 회로(13)에 연결되는 4 채널을 병렬로 동작시켜, 각 병렬동작 요소의 2개의 평면을 이용하는 배속 모드를 이용하여 기록 및 판독을 수행한다. 데이터의 기록/판독 사이즈의 1단위는“페이지 사이즈 × 4채널 × 2”이며, 소거 사이즈의 1단위는“8 물리 블록 사이즈”이다.
상기 2 가지 타입의 액세스 모드 이외에, NAND 메모리(12)로의 데이터의 기록시에, 어드레스를 지정함으로써, NAND 메모리(12)에 데이터의 기록 및 판독을 수행할 수있다. 도 3은, 제 1 실시형태에 따른 NAND 제어기 제어 레지스터의 구성의 일례이다. 상기 NAND 제어기 제어 레지스터(150)는, 병렬도 지정 레지스터(151), 채널 지정 레지스터(152) 및 어드레스 지정 레지스터(153)를 포함한다.
병렬도 지정 레지스터(151)는 1회에 기록 및 판독을 수행하는 채널의 수, 즉 병렬도를 설정한다. 이 경우에는, 1채널과 4채널 중 어느 하나를 설정할 수 있다. 1채널이 설정된 경우에, 필연적으로 기록 및 판독의 속도는 정규 모드의 것이 되고, 4채널이 설정된 경우에는, 기록 및 판독의 속도는 배속 모드의 것이 된다. 즉, 병렬도 지정 레지스터(151)로 1채널이 설정된 경우에는, 액세스 모드는 8비트 정규 모드이며, 4채널이 설정된 경우에는, 액세스 모드는 32비트 배속 모드이다.
채널 지정 레지스터(152)는, 모든 채널을 동시에 이용하지 않고 액세스 시에 사용되는 채널을 설정한다. 이 예로서는, 병렬도 지정 레지스터(151)로 1채널이 설정된 경우에, 채널(15A 내지 15D)으로부터 기록/판독 처리 또는 소거 처리를 수행하는 하나의 채널이 설정된다. 병렬도 지정 레지스터(151)로 4채널(15A 내지 15D)가 설정된 경우에는, 이 채널 지정 레지스터(152)는 “지정 없음”을 나타낸다.
어드레스 지정 레지스터(153)는, 기록/판독처리 또는 소거 처리를 수행하는 병렬 동작 요소(120A 내지 120D) 상의 어드레스를 설정한다.
다음으로, NAND 제어기 제어 레지스터(150)에 설정되는 CPU(131)의 기능에 관해서 설명한다. 도 4는, CPU의 기능 구성의 일례의 블록도이다. CPU(131)는, DRAM(11)과 NAND 메모리(12) 사이에서 데이터 전송을 수행하는 데이터 전송 처리기(1311), DRAM(11)및 NAND 메모리(12)에 기억되는 데이터의 변경에 따라 관리 정보를 변경 또는 기억하는 관리정보 관리부(1312), 전력 온(ON)시에 NAND 메모리(12)에 기억된 관리 정보에 기초로 하여 최신의 관리 정보를 복원하는 관리정보 복원부(1313), NAND 메모리(12)에 대한 액세스 조건의 설정을 NAND 제어기 제어 레지스터(150)에 대하여 수행하는 처리 조건 설정부(1314)를 포함한다.
처리 조건 설정부(1314)는 NAND 메모리(12)에 기록될 데이터 타입이나 NAND 메모리(12)로부터 판독될 데이터 타입에 따라 NAND 제어기 제어 레지스터(150)에 관한 설정을 수행한다. 후술되는 실시예에서, 처리 조건 설정부(1314)는, 액세스가 호스트 장치로부터 지시를 받은 데이터의 경우에 공정이 32 비트 배속 모드로 수행되고, 메모리 시스템(10)에서 발생된 데이터가 기록 또는 판독되는 경우에 공정이 8 비트 정규 모드로 수행되도록 설정될 수 있다.
공정이 8 비트 정규 모드로 수행될 때에 데이터가 메모리 시스템(10)에서 발생되기 때문에, NAND 메모리(12)에 저장될 데이터의 저장 위치를 관리하기 위한 관리 정보의 백업인 관리-정보 저장 정보가 존재한다. 관리 정보는 CPU(131)에 있는 관리-정보 관리 유닛(1312)에 의해 DRAM(11)에서 관리된다. 관리-정보 관리 유 닛(1312)은 적시에 특정 지점에서의 관리 정보의 카피인 스냅샷과, 관리 정보에 변화가 생길 때에 변화 전후의 관리 정보의 정보 차이인 로그를 NAND 메모리(12)에 관리-정보 저장 정보로서 저장한다. 일반적으로, 메모리 시스템(10)이 작동될 때에, NAND 메모리(12)의 DRAM(11)에 관리 정보를 저장하기 위한 명령(플러시 캐쉬 명령)을 내리는 경우가 흔하고, 관리 정보의 갱신인 로그는 NAND 메모리(12)에 기록된다. 전력 오프시에, DRAM(11)의 관리 정보는 스냅샷으로서 NAND 메모리(12)에 기억된다.
메모리 시스템(10)에서 데이터 전송 작업을 다음에 설명한다. 도 5는 메모리 시스템에서 데이터 전송 공정의 일례이다. 이 예에서, 데이터 전송이 DRAM(11)과 NAND 메모리(12) 사이에 수행되는 경우를 설명한다. CPU(131)의 처리 조건 설정부(1314)은 DRAM(11)과 NAND 메모리(12) 사이에서 전송되는 데이터 타입과, NAND 메모리(12) 상에 접근될 어드레스[칩(122)]를 얻는다.
처리 조건 설정부(1314)는 NAND 제어기 제어 레지스터(150)의 병렬도 지정 레지스터(151)에 관하여 병렬도(“1” 또는 “4”)를 설정할 데이터 타입을 결정한다. 즉, 처리 조건 설정부(1314)은 호스트 장치로부터 요청된 데이터의 경우에 병렬도“4”로 설정하고, 메모리 시스템(10)에서 발생된 데이터의 기록 또는 판독의 경우에 병렬로“1”로 설정한다. 처리 조건 설정부(1314)는 NAND 메모리(12)에 의해 사용될 채널(병렬도가 “1”인 경우에 채널들 중 어느 한 채널, 병렬도가 “4”인 경우에 “지정 없음”)을 데이터의 도착 어드레스를 기초로 하여 채널 특정 레지스터(152)로 설정하고, 도착 어드레스를 어드레스 지정 레지스터(153)에 설정 한다(단계 S11). 처리 조건 설정부(1314)에 의해 NAND 제어기 제어 레지스터(150)에 대한 설정이 완료된 경우에, DRAM(11)과 NAND 메모리(12) 사이의 데이터 전송이 데이터 전송 프로세서(1311)에 의해 시작된다.
이후에, NAND 제어기 제어 레지스터(150)는 병렬도 지정 레지스터(151)의 값과 채널 특정 레지스터(152)의 값을 NAND 인터페이스(140)로 전송한다(단계 S12). NAND 인터페이스(140)는 병렬도 지정 레지스터(151)와 채널 특정 레지스터(152)에 의해 특정된 채널을 제어한다. 이어서, NAND 인터페이스(140)는 어드레스 특정 레지스터(153)에서 특정된 어드레스에 데이터를 액세스하기 위한 제어를 수행한다(단계 S13). 이에 따라, DRAM(11)과 NAND 메모리(12) 사이에서 전송되는 데이터의 전송이 제어된다.
단계 S12 및 S13에서 NAND 제어기(134)에 의하여 수행된 데이터 액세스 제어 프로세스를, 8비트 정규 모드의 경우와 32비트 2배속 모드의 경우에 대하여 순서대로 설명한다. 도 6(a) 및 도 6(b)는 8비트 정규 모드의 경우에서의 데이터 액세스 제어의 프로세싱 상태를 도시하며, 여기서 도 6(a)는 NAND 제어기와 NAND 메모리 간의 데이터 액세스 제어 상태의 개요를 도시하고, 도 6(b)는 NAND 메모리를 구성하는 각 칩들에의 신호의 입력 상태를 도시한다. "1"이 병렬도로서 설정되고(즉, 8비트 정규 모드가 설정), "Ch1"(병렬 동작 요소(120B))이 채널로서 지정되고, "칩 122-10"이 어드레스로서 지정된 예를 여기서 설명한다. 그러나, 사실상, 칩 대신에, 칩(122)(병렬 동작 요소(120A 내지 120D))의 어드레스가 어드레스로서 지정된다.
도 6(a)에 도시된 바와 같이, NAND 인터페이스(140)가 제어 핀(141A)과 입/출력 핀(142A)을 제어하여, NAND 제어기 제어 레지스터(150)로부터의 병렬도 지정 레지스터(151)의 값과 채널 지정 레지스터(152)의 값의 수신에 따라, Ch1에만 신호가 전송된다. 또한, 도 6(b)에 도시된 바와 같이, NAND 인터페이스(140)의 칩 인에이블 신호 출력부(143)는, 칩 인에이블 신호선(CE2)을 통하여 어드레스 지정 레지스터(153)에 의하여 지정된 칩(122-10)의 어드레스에만 칩 인에이블 신호를 공급한다. 따라서, 정규 모드의 데이터 전송이, DRAM(11)과, NAND 메모리(12)의 병렬 동작 요소(120B)의 칩(122-10)에서의 미리 결정된 어드레스 간에서, 비병렬 모드에서 수행된다.
도 7(a) 및 도 7(b)는 32비트 2배속 모드의 경우에서의 데이터 액세스 제어의 프로세싱 상태를 도시하며, 여기서 도 7(a)는 NAND 제어기와 NAND 메모리 간의 데이터 액세스 제어 상태의 개요를 도시하고, 도 7(b)는 NAND 메모리를 구성하는 각 칩들에의 신호의 입력 상태를 도시한다. "4"가 병렬도로서 설정되고(즉, 32비트 이배속 모드가 설정), "지정 없음"이 채널로서 지정되고, "칩 122-5"가 어드레스로서 지정된 예를 여기서 설명한다.
도 7(a)에 도시된 바와 같이, NAND 인터페이스(140)가 모든 제어 핀(141)과 모든 입/출력 핀(142)을 제어하여, NAND 제어기 제어 레지스터(150)로부터의 병렬도 지정 레지스터(151)의 값과 채널 지정 레지스터(152)의 값의 수신에 따라, 병렬 동작 요소(120A 내지 120D) 모두에 신호가 전송된다. 이 때, NAND 인터페이스(140)는 각 병렬 동작 요소(120A 내지 120D)를 제어하여, 데이터 기록 및 판독이 2배속 모드로 수행된다. 또한, 도 7(b)에 도시된 바와 같이, NAND 인터페이스(140)의 칩 인에이블 신호 출력부(143)는, 칩 인에이블 신호선(CE1)을 통하여 어드레스 지정 레지스터(153)에 의하여 지정된 칩(122-5)의 어드레스에만 칩 인에이블 신호를 공급한다. 따라서, 4개 병렬의 2배속 모드의 데이터 전송이, DRAM(11)과, NAND 메모리(12)의 모든 병렬 동작 요소(120A 내지 120D)의 칩(122-5)에서의 미리 결정된 어드레스 간에 수행된다.
데이터 전송 프로세스는, NAND 제어기 제어 레지스터(150)에 의하여 지정된 조건들에 의하여 지정된 데이터 전송이 종료되면, 종료된다.
상기 설명에서, NAND 메모리(12)에서의 각 채널들은, 채널들의 병렬도 뿐만 아니라 데이터 전송 속도도 포함하는 병렬도 지정 레지스터(151)에 의하여 제어된다. 그러나, 병렬도 지정 레지스터(151)는 채널들의 병렬도만을 지정할 수 있고, 전송 속도를 지정하기 위한 전송 속도 지정 레지스터가 정규 모드와 2배속 모드를 변화시키기 위하여 별도로 제공될 수 있다. 이러한 구성에 따르면, 병렬도와 데이터 전송 속도의 조합은, 병렬도와 데이터 전송 속도를 개별적으로 지정함으로써 보다 광범위하게 수행될 수 있다. 상기 설명에서, 병렬도는 "1" 또는 "4"만 선택될 수 있으나, 병렬도는 채널의 최대수의 범위에서 선택 가능하게 행해질 수 있다.
또한, 프로세싱 조건 설정부(1314)는, 호스트 장치로부터 액세스될 데이터가 32비트 2배속 모드로 액세스되고, NAND 메모리(12)에서 생성된 데이터는 8비트 정규 모드로 액세스되도록 프로세싱 조건을 설정하는 예를 상기에서 설명하였다. 그러나, 수십 기가바이트의 메모리 용량을 갖는 NAND 메모리(12)의 경우, 관리 정보 의 크기는 증가하고, 관리 정보의 백업으로서의 스냅샷은 대략 "블록 크기 x 2 x 4 채널"의 크기를 갖는다. 반면, 로그는 차이 정보이므로, 로그는 일반적으로 대략 페이지 크기의 크기를 갖는다. 따라서, 프로세싱 조건 설정부(1314)는, 호스트 장치로부터 액세스될 데이터와, 관리 정보 기억 정보의 스냅샷에 대하여 기록 및 판독이 행해질 때, 이들 정보 피스들이 32비트 2배속 모드로 액세스되고, 관리 정보 기억 정보에서의 로그의 기록 및 판독이 행해질 때, 정보는 8비트 정규 모드로 액세스되도록 프로세싱 조건을 설정한다. 동일한 사항이 후술되는 실시예들에 적용된다.
제1 실시예에 따르면, 채널(15A 내지 15D)의 병렬도와 NAND 제어기(134)의 NAND 메모리(12)로의 데이터 액세스 시 전송 속도는 병렬도 지정 레지스터(151)에 의한 데이터의 형태에 따라 지정되고, 모든 채널(15A 내지 15D)이 사용되지 않을 때 사용될 채널은 채널 지정 레지스터(152)에 의하여 지정된다. 그 결과, 메모리 시스템(10)에서 생성된 데이터의 로그와 같은, 미리 결정된 크기보다 작은 데이터의 기록이 수행될 때, 하나의 선택된 채널이 8비트 정규 모드에서 사용되어, 페이지 단위로 병렬 동작 요소(120A 내지 120D)의 하나의 선택된 블록으로의 기록을 인에이블하여, 기록 효율성을 증가시키게 한다. 또한, 재기록을 요하는 데이터의 경우, 병렬도가 감소되어, 재기록이 수행되지 않는 물리 블록의 쓸모없는 소거를 회피하게 한다. 반면, 호스트 장치로부터 명령된 데이터 또는 스냅샷과 같은, 미리 결정된 크기 이상의 데이터가 기록되고, 판독되고 또는 재기록될 때, 전송 속도는 정규 모드의 속도를 2배로 하도록 설정되고, 병렬도를 증가시킴으로써(예컨대, 4개 병렬), 4배량의 데이터가 8비트 정규 모드에 비하여 2배속으로 기록되거나 판독될 수 있다. 따라서, 액세스될 데이터의 크기에 따라 효율적인 기록/판독 프로세스가 수행될 수 있고, 재기록시 쓸모없는 소거를 회피함으로써 메모리 시스템(10)의 서비스 수명이 연장될 수 있다.
제1 실시예에서, 채널의 병렬도는 NAND 제어기 제어 레지스터(150)의 병렬도 지정 레지스터(151)에 의하여 지정되고, 사용될 채널은 채널 지정 레지스터(152)에 의하여 지정된 병렬도에 따라 지정된다. 본 발명의 제2 실시예에서, 데이터 전송 프로세서에 의한 데이터 전송을 수행할 때의 어드레스 설정 방법을 설계함으로써 NAND 제어기 제어 레지스터(150)에 설정될 조건들 수를 감소하는 방법을 설명한다.
도 8은 제2 실시예에 따른 어드레스 할당 방법의 예를 나타내는 도면이다. 제1 실시예에서는, NAND 메모리(12)를 구성하는 병렬 동작 요소(120A~120D) 각각에 독립적으로 물리 어드레스가 할당되고, 그 물리 어드레스의 범위가 0~5000까지인 경우를 예로서 나타내고 있다. 이 때, CPU(131) 내의 데이터 전송 프로세서(1311)는, 병렬 동작 요소(120A~120D) 중 액세스될 병렬 동작 요소에 접속된 채널에만 유효 어드레스 범위인 0~5000 중의 값을 어드레스로서 지정하고, 병렬 동작 요소(120A~120D) 중 액세스되지 않을 병렬 동작 요소에 접속된 채널에는 그 유효 어드레스 범위 외의 수치, 예컨대 5001을 어드레스로서 지정하는 기능을 갖는다.
데이터 전송 프로세서(1311)에 의해 어드레스를 지정함으로써, 데이터 전송 수행 시에 채널의 병렬도와 이용될 채널이 지정된다. 그 결과, NAND 제어기 제어 레지스터(150)는 병렬도 지정 레지스터(151)와 채널 지정 레지스터(152)를 필요로 하지 않고, 어드레스 지정 레지스터(153)만 필요로 한다. 또한, 처리 조건 설정 유닛(1314)은 데이터 전송 프로세서(1311)에 의해 액세스될 어드레스를 어드레스 지정 레지스터(153)에만 지정하면 된다.
도 9의 (a)와 도 9의 (b)는 제2 실시예에 따른 어드레스 지정 방법의 예를 나타내는 도면이다. 이 예에서, 데이터 전송 프로세서(1311)는 병렬도로서 "1" 또는 "4" 중 어느 하나만 선택할 수 있고, 병렬도는 데이터 전송 속도의 정보를 포함한다. 즉, 병렬도를 "1"로 지정하는 어드레스 지정이 이루어질 경우, 8비트 일반 모드가 선택된 것으로 간주되고, 병렬도를 "4"로 지정하는 어드레스 지정이 이루어질 경우, 32비트 배속 모드가 선택된 것으로 간주된다. 후술하는 바와 같이, 채널 지정에 이용된 채널의 식별자를 각각 Ch0, Ch1, Ch2 및 Ch3이라 한다.
도 9의 (a)에서, 데이터 전송 프로세서(1311)에 의한 어드레스 액세스 시에, 채널 Ch0, Ch1 및 Ch3에의 지시에 대해서는 무효 어드레스(5001)가 어드레스 지시 정보에 지정되고, 채널 Ch2에의 지시에 대해서는 유효 어드레스가 지정된다. 이에, 병렬도 "1"이 지정되고 "Ch2"가 채널로서 지정되는 것으로 간주된다. 그 결과, NAND 제어기(134)는, 채널 Ch2만이 이용되는 것을 나타내는 병렬도 "1"이고 데이터 액세스 속도가 일반 모드인 데이터 액세스 프로세스임을 판단하여 프로세스를 수행한다. 이 때, 처리 조건 설정 유닛(1314)은 지정된 어드레스를 어드레스 지정 레지스터(153)에 설정한다. 이에, 프로세스가 병렬도 "1"로 수행될 경우, 어드레스 지시 정보에 있어서, 이용될 채널에만 유효 어드레스 범위 내의 어드레스가 설 정되고, 다른 채널에는 유효 어드레스 범위 외의 어드레스가 지정된다.
도 9의 (b)에서는, 데이터 전송 프로세스(1311)에 의한 어드레스 지시 정보에 있어서, 모든 채널 Ch0~Ch3에 유효 어드레스가 설정되기 때문에, 병렬도 "4"가 지정되고, 채널로서 "지정 없음"이 지정된다. 그 결과, NAND 제어기(134)는, 모든 채널(Ch0~Ch3)이 배속 모드의 데이터 액세스 속도로 이용되는 것을 나타내는 병렬도가 "4"인 데이터 액세스 프로세스임을 판단하여 프로세스를 수행한다. 이 때, 처리 조건 설정 유닛(1314)은 지정된 어드레스를 어드레스 지정 레지스터(153)에 설정한다.
전술한 설명에서는, 데이터 전송 속도가 데이터 전송 프로세서(1311)에 의한 어드레스 설정에서 병렬도의 지정에 포함된다. 그러나, 데이터 전송 프로세서(1311)에 의한 어드레스 설정에, 데이터 전송 속도를 포함하지 않는 순수한 병렬도만이 지정되도록 구성될 수 있으며, NAND 제어기 제어 레지스터(150) 내에 전송 속도 지정 레지스터를 별도 설치함으로써 처리 조건 설정 유닛(1314)에 의해 데이터 전송 속도가 설정된다.
제2 실시예에 따르면, 데이터 전송 프로세서(1311)에 의해 액세스될 데이터에 관한 액세스 지시 정보에 어드레스가 설정될 경우, 병렬 동작 요소(120A~120D) 중 액세스되지 않는 병렬 동작 요소에는 무효 어드레스 범위의 값이 설정된다. 이에, 병렬도를 지정하는 병렬도 지정 레지스터(151)를 NAND 제어기 제어 레지스터(150)에 설치할 필요가 없으므로, 메모리 시스템(10)의 장치 구성을 간략화할 수 있다.
제2 실시예에서는, 각 병렬 동작 요소에 각각 0~5000까지의 범위의 어드레스를 할당하고, 데이터 전송 프로세스를 수행하지 않는 병렬 동작 요소에 접속되는 채널에 대해서는 유효 어드레스 범위 이외의 어드레스값을 지정함으로써, 병렬도를 설정하기 때문에, 병렬도 지정 레지스터와 채널 지정 레지스터를 설치하지 않는다. 본 발명의 제3 실시예에서는, 다른 어드레스 지정 방법에 의해 병렬도를 설정하고 병렬도 지정 레지스터와 채널 지정 레지스터를 설치하지 않는 경우에 대해서 설명한다.
도 10은 제3 실시예에 따른 NAND 메모리에서의 어드레스 할당 방법의 예를 나타내는 도면이다. 제2 실시예에서는, 도 8에 도시하는 바와 같이, NAND 메모리(12)를 구성하는 병렬 동작 요소(120A~120D)마다 어드레스가 할당된다. 그러나, 제3 실시예에서는, 도 10에 도시하는 바와 같이, 병렬 동작 요소(120A, 120B, 120C 및 120 D)의 선두부터 순서대로 어드레스 0, 1, 2, 3이 할당되고, 이후 이 순서대로 어드레스가 할당되어 NAND 메모리(12) 전체로서 하나의 어드레스를 할당한다. 즉, n을 O 이상의 정수로 하고, 1O진수 표기로 어드레스를 표기하여, 병렬 동작 요소(120 A)(Ch0)에는 어드레스 0, 4, 8,…, 2n, …가 할당되고, 병렬 동작 요소(120B)(Chl)에는 어드레스 1, 5, 9,…, 2n+1,…가 할당되며, 병렬 동작 요소(120C)(Ch2)에는 어드레스 2, 6, 10,…, 2n+2,…가 할당되고, 병렬 동작 요소(120D)(Ch3)에는 어드레스 3, 7, 11,…, 2n+3,…가 할당된다.
이런 식으로 어드레스를 할당함으로써, 10진수 표기로, 어드레스를 4로 나누어 얻은 나머지가 "0"인 경우에는 병렬 동작 요소(120A)(Ch0)를 나타내고, 나머지 가 "1"인 경우에는 병렬 동작 요소(120B)(Chl)를 나타내며, 나머지가 "2"인 경우에는 병렬 동작 요소(120C)(Ch2)를 나타내고, 나머지가 "3"인 경우에는 병렬 동작 요소(120D)(Ch3)를 나타낸다. 즉, 2진수 표기의 어드레스의 하위 2 자릿수는 Ch0에서는 "00"이고, "Ch1"에서는 "01", "Ch2"에서는 "10", "Ch3"에서는 "11"이다. 이에, 이들 숫자는 채널을 식별하는 채널 식별 정보(청구의 범위에서는 병렬 동작 요소 식별 정보에 대응)로서 이용할 수 있다. 채널 식별 정보의 유무에 따라 채널의 사용 유무 및 병렬도를 설정할 수 있다.
즉, 데이터 전송 프로세서(1311)는, 병렬 동작 요소(120A~120D) 중 액세스될 병렬 동작 요소의 데이터에 채널의 채널 식별 정보가 포함되고 병렬 동작 요소(120A~120D) 중 액세스되지 않을 병렬 동작 요소의 데이터에 채널의 채널 식별 정보가 포함되지 않도록 어드레스 지정을 수행한다. 구체적으로, 데이터 전송 프로세서(1311)는 병렬 동작 요소(120A~120D) 중 액세스될 병렬 동작 요소의 데이터의 어드레스의 하위 2자릿수에 대해 채널(병렬 동작 요소)을 식별하는 값(채널 식별 정보)을 지정하고, 병렬 동작 요소(120A~120D) 중 액세스되지 않을 병렬 동작 요소의 어드레스의 하위 2자릿수에 대해 채널(병렬 동작 요소)을 식별하는 값(채널 식별 정보) 외의 값을 지정한다.
도 11의 (a)와 (b)는 제3 실시예에 따른 어드레스 지정 방법의 예를 나타내는 도면이다. 이 예에서, 데이터 전송 프로세서(1311)는 병렬도 "1"과 "4" 중 어느 하나만 선택할 수 있고, 병렬도는 데이터의 전송 속도를 포함한다. 즉, 병렬도가 "1"이도록 어드레스 지정이 이루어질 경우, 8비트 일반 모드가 선택되는 것으로 간주되고, 병렬도가 "4"이도록 어드레스 지정이 이루어질 경우에는, 32비트 배속 모드가 선택되는 것으로 간주된다.
도 11의 (a)에서, 데이터 전송 프로세서(1311)에 의한 액세스 지시 정보에 있어서, 채널 Ch0, Chl, Ch3의 어드레스로서 무효 어드레스가 지정된다. 즉, 채널 Ch0, Chl, Ch3에 대하여 지정되는 각각의 어드레스에 있어서, 10진수 표기로, 어드레스를 4로 나누어 얻은 나머지가 원래 각각 0, 1, 3이어야 하지만, 이 경우에는 모든 채널에 대해 나머지가 2이다. 한편, 채널 Ch2에만 유효 어드레스가 지정된다. 즉, 채널 Ch2의 10진수 표기로 된 어드레스를 4로 나누어 얻은 나머지가 2이다. 그 결과, NAND 제어기(134)는 채널 Ch2만이 일반 모드의 데이터 액세스 속도로 이용되는 것을 나타내는 병렬도가 "1"인 데이터 액세스 프로세스임을 판단하여 프로세스를 수행한다. 이에, 병렬도 "1"로 수행된 프로세스의 경우, 이용될 채널에만 어드레스가 설정되어 그 채널에 설정된 채널 식별 정보가 포함되고(즉, 원래 액세스될 어드레스가 설정되고), 다른 병렬 동작 요소에는 채널 식별 정보를 포함하지 않는 어드레스가 설정된다.
도 11(b)에서는, 데이터 전송 처리기(1311)에 의한 액세스 지시 정보에 있어서, 모든 채널(Ch0 내지 Ch3)에 유효한 어드레스가 지정되어 있다. 즉, 모든 채널(Ch0 내지 Ch3)에 지시된 어드레스는, 각각의 채널(Ch0 내지 Ch3)로 유효한 채널 식별 정보를 포함하고 있다. 보다 상세하게는, 채널 Ch0, Ch1, Ch2, Ch3의 각각의 10진수 표기의 어드레스를 4로 나누었을 때의 나머지가 각각 0,1,2,3로 되어있다. 그 결과, NAND 제어기(134)는, 모든 채널(Ch0 내지 Ch3)을 배속 모드로 데이터 액 세스 속도로 이용하는 병렬도가“4”인 데이터 액세스 처리라고 판정하여 처리를 수행한다.
상술한 설명에서는, 데이터 전송 처리부(1311)에 의한 어드레스의 설정의 병렬도의 지정에, 데이터 전송 속도가 포함된다. 그러나, 데이터 전송 처리기(1311)에 의한 어드레스 설정의 병렬도의 지정은, 데이터 전송 속도가 포함되지 않는 순수한 병렬도만으로 하여, 데이터 전송 속도는 NAND 제어기 제어 레지스터(150)에 전송 속도 지정 레지스터를 별도로 설치하여 처리 조건 설정부(1314)에 의해서 설정되도록 구성될 수 있다.
제3 실시형태에 따르면, 데이터 전송 처리기(1311)가 어드레스를 설정할 때에, 액세스되지 않는 병렬 동작 요소에는 그 병렬동작요소의 채널 식별 정보를 포함하지 않는 무효인 어드레스를 설정한다. 따라서, NAND 제어기 제어 레지스터(150)에 병렬도를 지정하는 병렬도 지정 레지스터(151)와, 사용하는 채널을 지정하는 채널 지정 레지스터(152)를 설치할 필요가 없으므로, 메모리 시스템(10)의 장치 구성을 간략화할 수 있다.
본 발명의 제4 실시형태에서는, NAND 메모리 내에 병렬도가 낮은 데이터를 저장하는 전용 영역을 규정하는 경우에 관해서 설명한다.
도 12는 NAND 메모리에 있어서 병렬도에 따른 영역 분할의 예를 보여준다. 도 12에 도시된 바와 같이, 저(低)병렬도 데이터를 저장하기 위한 저병렬도 저장 영역(1210)과 고(高)병렬도 데이터를 저장하기 위한 고병렬도 저장 영역(1220)이 제공된다. 즉, 저병렬도 저장 영역(1210)이 나눠지도록 어드레싱이 행해진다. 저 병렬도 저장 영역(1210)은 어드레스 0~200의 범위에 있고, 고병렬도 저장 영역(1220)은 어드레스 201~XXX의 범위에 있다. 저병렬도 저장 영역(1210)과 고병렬도 저장 영역(1220) 사이의 경계가 되는 어드레스는 미리 정해진 것으로 한다. 저병렬도 저장 영역(1210)의 구체예로서, 예컨대 관리-정보 보존 정보를 보존하기 위한 영역과, 보다 구체적으로는 관리-정보 보존 정보에 있어서의 로그를 보존하기 위한 영역이 거론될 수 있다. 고병렬도 저장 영역(1220)의 구체예로서, 예컨대 호스트장치로부터 보존을 지시 받은 데이터를 보존하기 위한 영역과, 관리-정보 보존 정보에 있어서의 스냅샷을 보존하기 영역이 거론될 수 있다.
이 예는 병렬도가 “1”또는 “4”중 어느 하나로 설정되어 있는 경우를 나타내며, 병렬도는 데이터 전송 속도를 포함하는 것으로 한다. 즉, 병렬도가 “1”인 저병렬도 저장 영역(1210)은 8비트 정규 모드의 속도로 액세스되고, 병렬도가 “4”인 고병렬도 저장 영역(1220)은 32비트 배속 모드의 속도로 액세스된다.
따라서, 병렬도의 차이에 따라 액세스하는 영역을 분할함으로써, 어드레스는 NAND 제어기(134) 측에서 디코드될 수 있고, 전송 병렬도가 인식될 수 있다. 즉, 목적 어드레스가 0~200일 때, 영역은 저병렬도 저장 영역(1210)이므로, NAND 인터페이스(140)는 병렬도가 “1”인 8비트 정규 모드로 저병렬도 저장 영역(1210)에 액세스하고, 목적 어드레스가 201~XXX일 때, 영역은 고병렬도 저장 영역(1220)이므로, NAND 인터페이스(130)는 병렬도가 “4”인 32비트 배속 모드로 고병렬도 저장 영역(1220)에 액세스한다.
이어서, 이러한 구성을 갖는 메모리 시스템(10)에 있어서 데이터 전송 처리 의 동작을 설명한다. 도 13은 제4 실시예에 따른 메모리 시스템에서의 데이터 전송 처리의 예를 보여준다. 이 예에서는, DRAM(11)과 NAND 메모리(12) 사이에서 데이터 전송이 행해지는 경우를 설명한다. CPU(131)의 처리 조건 설정부(1314)는, DRAM(11)과 NAND 메모리(12) 사이에서 전송되는 데이터의 타입과 어드레스를 취득한다.
이어서, 처리 조건 설정부(1314)는, 데이터의 타입과 어드레스에 기초하여, 채널 지정 레지스터(152)에 대한 목적 어드레스에 대응하는 병렬 동작 요소(120A~120D)를 설정하고, NAND 제어기 제어 레지스터(150)에 있어서 어드레스 지정 레지스터(153)에 대한 목적 어드레스를 설정한다(단계 S31). 처리 조건 설정부(1314)에 의한 NAND 제어기 제어 레지스터(150)의 설정이 완료되었을 때, 데이터 전송 처리기(1311)에 의한 DRAM(11)과 NAND 메모리(12) 간의 데이터 전송 처리가 시작된다.
NAND 제어기(134)의 NAND 인터페이스(140)는, NAND 제어기 제어 레지스터(150)에서 채널 지정 레지스터(152)에 의해 지정되는 채널과 어드레스 지정 레지스터(150)에 의해 지정되는 어드레스에 기초하여 데이터를 액세스하는 병렬도를 결정하여, 사용되는 병렬 동작 요소(120A~120D)를 제어한다(단계 S32). 즉, 어드레스가 0~200일 때, 목적지가 저병렬도 저장 영역(1210)에 있기 때문에, 액세스는 8비트 정규 모드로 행해지고, 어드레스가 201~XXX일 때, 목적지가 고병렬도 저장 영역(1220)에 있기 때문에, 액세스는 32비트 배속 모드로 행해진다. 따라서, DRAM(11)과 NAND 메모리(12) 사이에서 전송되는 데이터의 전송이 제어된다. 데이 터 액세스가 완료되면, 데이터 전송 처리가 종료된다.
단계 S32에서, NAND 인터페이스(140)는 NAND 메모리(12)에 있어서 각 채널에 대한 액세스를 제어하도록 병렬도를 결정하지만, NAND 제어기 제어 레지스터(150)는 채널 지정 레지스터(152)에 설정된 채널의 값과 어드레스 지정 레지스터(153)에 설정된 목적지 어드레스를 NAND 인터페이스(140)에 전달할 수 있어, 그 결과 NAND 제어기 제어 레지스터(150) 측이 채널을 제어한다(단계 S32').
이상의 설명에서, 데이터 전송 속도는 병렬도의 지정에 포함된다. 그러나, 데이터 전송 속도를 포함하지 않는 순수한 병렬도가 지정되도록, 그리고 NAND 제어기 제어 레지스터(150)에 전송 속도 지정 레지스터를 별도로 마련함으로써 처리 조건 설정부(1314)에 의해 데이터 전성 속도가 설정되도록, 구성할 수 있다.
제4 실시예에 따르면, NAND 메모리(12)는 액세스하는 데이터의 병렬도의 차이에 따라 여러 영역으로 분할되기 때문에, 병렬도는 목적지 어드레스에 따라 설정될 수 있고, 병렬도를 지정하기 위한 병렬도 지정 레지스터(151)는 NAND 제어기 제어 레지스터(150)에 마련될 필요가 없으며, 이로써 메모리 시스템(10)의 장치 구성을 간략화할 수 있다.
제4 실시예에서는, 저병렬도 저장 영역과 고병렬도 저장 영역이 NAND 메모리에 마련된 경우를 설명한다. 그러나, 본 발명의 제5 실시예에서는, NAND 메모리에 있어서 저병렬도 저장 영역의 크기와 고병렬도 저장 영역의 크기를 가변으로 한 구성을 설명한다.
도 14는 제5 실시예에 따른 NAND 제어기 제어 레지스터의 한 가지 구성예를 개략적으로 보여준다. NAND 제어기 제어 레지스터(150)는, 병렬도가 낮은 데이터를 저장하기 위한 저병렬도 저장 영역(1210)의 어드레스 영역을 변경할 수 있는 저병렬도 저장 영역 지정 레지스터(154) 뿐만 아니라 채널 지정 레지스터(152) 및 어드레스 지정 레지스터(153)를 포함한다. 저병렬도 저장 영역 지정 레지스터(154)는 CPU(131)의 처리 조건 설정부(1314)에 의해 설정되고, 저병렬도 저장 영역(1210)의 크기를 변경할 수 있다.
도 15의 (a)와 (b)는 저병렬도 저장 영역의 크기가 변경된 예를 보여준다. 도 15의 (a)에서, 저병렬도 저장 영역 지정 레지스터(154)는 저병렬도 저장 영역(1210)을 어드레스 0~200의 범위로 설정한다. 한편, 도 15의 (b)에서, 저병렬도 저장 영역 지정 레지스터(154)는 저병렬도 저장 영역(1210)을 어드레스 0~300의 범위로 설정한다. 이러한 방식으로, 처리 조건 설정부(1314)에 의해 저병렬도 저장 영역 지정 레지스터(154)의 값을 임의로 설정함으로써, 저병렬도 저장 영역(1210)의 크기를 변경할 수 있다.
이상의 설명에서는, 저병렬도 저장 영역(1210)의 어드레스 범위를 변경하는 저병렬도 저장 영역 지정 레지스터(154)를 마련한 경우를 보여주었지만, 본 발명은 이에 국한되는 것은 아니다. 예를 들어, 임의의 병렬도 s(s는 자연수)의 데이터를 저장하기 위한 저장 영역의 크기를 변경하는 병렬도 저장 영역 설정 레지스터를 마련할 수 있다. 제5 실시예에서의 데이터 전송 처리는 제4 실시예에서의 데이터 전송 처리와 동일하므로, 그 설명을 생략한다.
제5 실시예에 따르면, 소정 병렬도의 데이터를 저장하기 위한 병렬도 저장 영역의 어드레스 범위를 변경하는 병렬도 저장 영역 설정 레지스터가 마련되기 때문에, 소정 병렬도의 데이터를 저장하는데 필요한 영역을 임의로 설정할 수 있다.
이상의 설명에서는, NAND 메모리를 제2 기억부로서 사용한 메모리 시스템의 예를 설명하였지만, 본 발명은 이에 국한되는 것은 아니다. NAND 메모리는, 2진 값을 기록할 수 있는 메모리 셀 트랜지스터를 포함하는 대신에, 2비트 이상의 다중값 데이터를 기록할 수 있는 메모리 셀 트랜지스터를 포함할 수 있다. 전술한 실시예는, 메모리 시스템이 다른 비휘발성 반도체 메모리를 제2 기억부로서 사용한 경우에 적용될 수 있다. 이상의 설명에서, NAND 메모리(12)에서의 데이터 기록 및 판독의 단위는 페이지 크기의 단위이고, 소거 단위와 관리 단위는 블록 크기의 단위이지만, 본 발명은 이에 국한되지 않고, 임의의 단위를 각각 사용할 수 있다.
상술한 설명에서, 제 1 기억부가, 휘발성 메모리인 DRAM(11)이고, 제 2 기억부가 비휘발성 메모리인 NAND 메모리(12)로 이루어지는 메모리 시스템의 일례를 설명하였지만, 본 발명은 이것으로 제한되지는 않는다. 예를 들어, 상기 제 1 기억부가 비휘발성 메모리이고, 제 2 기억부도 또한 비휘발성 메모리인 메모리 시스템에 상기 실시형태들을 적용할 수 있다. 제 1 기억부(비휘발성 메모리)에 의해 관리되는 관리 정보의 백업인 스냅샷 및 로그와 같은 관리 정보 보존 정보를 제 2 기억부(NAND 메모리)에 기억하는 처리가 필요없게 된다. 그러나, 데이터 사이즈에 따라서 병렬도 및 데이터 전송 속도를 변경시킬 수 있다.
본 발명에 따르면, 블록 사이즈 보다 작은 데이터 및 블록 사이즈 보다 큰 데이터는 기록 효율을 저하시키지 않고 저장될 수 있다.
부가적인 이점 및 변경은 당업자에게 용이하게 발생할 수 있다. 따라서, 넓은 양태에 있어서의 본 발명은 여기에 도시되고 기술된 특정 세부사항 및 대표적인 실시형태로 제한되지 않는다. 따라서, 첨부된 청구범위 및 그 등가물에 의해 규정된 바와 같이 일반적인 발명의 개념의 사상 및 범위를 벗어나지 않고 다양한 변경이 행해질 수도 있다.

Claims (18)

  1. 휘발성의 제 1 기억부;
    상기 제 1 기억부를 통하여 호스트 장치로부터 송신되는 데이터를 기억하는 비휘발성의 제 2 기억부으로서, 메모리 영역이 복수의 병렬 동작 요소를 포함하는 것인 비휘발성의 제 2 기억부; 및
    상기 제 1 기억부와 상기 제 2 기억부 사이에서, 또는 상기 제 2 기억부 내에서 데이터 전송을 수행하는 제어기를 구비하는 메모리 시스템으로서,
    상기 제어기는,
    인터페이스부에 대하여, 데이터에 액세스하기 위해 사용되는 상기 제 2 기억부 내의 상기 병렬 동작 요소를 나타내는 병렬 동작 요소 지정 정보와, 액세스될 데이터의 어드레스를 지정하는 인터페이스 지정부;
    상기 제 2 기억부의 각각의 병렬 동작 요소와 병렬로 접속되어, 상기 인터페이스 지정부에 의해 지정된 상기 병렬 동작 요소 지정 정보 및 상기 어드레스에 기초하여 선택된, 상기 제 2 기억부 내의 1개 또는 복수개의 병렬 동작 요소의 어드레스에 액세스하는 인터페이스부;
    데이터 액세스 시에, 액세스될 데이터의 타입에 따라서 데이터 액세스에 사용되는 상기 병렬 동작 요소 지정 정보를 상기 인터페이스 지정부에 설정하는 제어부; 및
    상기 호스트 장치와 상기 제 2 기억부 사이의 데이터 액세스를 상기 제 1 기억부를 통하여 수행하는 데이터 전송 프로세서
    를 포함하며,
    상기 제 1 기억부는 상기 제 2 기억부에 기억되는 데이터의 기억 위치를 포함하는 관리 정보를 기억하고,
    상기 제 2 기억부는 어떤 시점에서의 상기 관리 정보의 사본인 스냅샷(snapshot) 및 상기 관리 정보에서 변화가 발생하는 경우에, 상기 변화 전후의 상기 관리 정보의 차이 정보인 로그(log)를 포함하는 관리 정보 기억 정보를 기억하는 관리 정보 기억 영역을 가지며,
    상기 데이터 전송 프로세서에 의해 액세스되는 데이터가 상기 호스트 장치에 의해 액세스가 지시되는 데이터인 경우, 상기 제어부는 전체 병렬 동작 요소를 이용하도록 상기 인터페이스 지정부를 설정하고,
    상기 로그가 상기 관리 정보 기억 영역에 기억되는 경우에, 상기 제어부는 일부의 병렬 동작 요소를 이용하도록 상기 인터페이스 지정부를 설정하는 것인 메모리 시스템.
  2. 제 1 항에 있어서, 상기 병렬 동작 요소는 복수의 평면(plane)을 가지며, 상기 병렬 동작 요소에 액세스 시에 동시에 사용될 평면의 개수가 1개인 정규 모드와 평면의 개수가 복수개인 2배속 모드가 교체될 수 있도록 구성되며,
    상기 인터페이스 지정부는, 상기 제 2 기억부 내의 상기 병렬 동작 요소의 데이터 모드를 지정하기 위한 기능을 더 포함하며,
    상기 제어부는, 데이터 액세스 시에 데이터의 타입에 따라서 상기 인터페이스 지정부에 대하여 상기 데이터 모드를 지정하기 위한 기능을 더 포함하는 것인 메모리 시스템.
  3. 삭제
  4. 제 1 항에 있어서, 상기 메모리 시스템에서 생성되는 데이터가 액세스되는 경우, 상기 제어부는 단지 하나의 병렬 동작 요소만을 사용하도록 상기 인터페이스 지정부를 설정하는 것인 메모리 시스템.
  5. 제 4 항에 있어서, 상기 메모리 시스템에서 생성되는 데이터는, 상기 제어기에 의해 관리되며 상기 제 2 기억부에 기억되는 데이터의 기억 위치를 포함하는 관리 정보인 것인 메모리 시스템.
  6. 제 1 항에 있어서, 상기 스냅샷이 상기 관리 정보 기억 영역에 기억되는 경우에, 상기 제어부는 2배속 모드로 상기 병렬 동작 요소 모두를 이용하도록 상기 인터페이스 지정부를 설정하는 것인 메모리 시스템.
  7. 제 1 항에 있어서, 상기 제 1 기억부는 동적 랜덤 액세스 메모리(DRAM)이며, 상기 제 2 기억부는 NAND형 플래시 메모리인 것인 메모리 시스템.
  8. 휘발성의 제 1 기억부;
    상기 제 1 기억부를 통하여 호스트 장치로부터 전송되는 데이터를 기억하는 비휘발성의 제 2 기억부로서, 메모리 영역이 복수의 병렬 동작 요소를 포함하는 것인 비휘발성의 제 2 기억부; 및
    인터페이스부에 대하여, 데이터에 액세스하기 위해 사용되는 어드레스를 지정하는 인터페이스 지정부; 상기 인터페이스 지정부에 의해 지정된 어드레스에 기초하여 데이터에 액세스하기 위한 제 2 기억부의 각각의 병렬 동작 요소에 병렬로 연결되는 인터페이스부; 및 데이터 액세스 시에 상기 인터페이스 지정부에 상기 제 2 기억부의 목적지 어드레스를 설정하고, 상기 제 1 기억부와 상기 제 2 기억부 사이에서 또는 상기 제 2 기억부 내에서의 데이터 전송을 제어하는 제어부를 포함하는 제어기를 구비하는 메모리 시스템으로서,
    상기 제어부는 데이터 액세스시에 액세스될 데이터의 타입에 따라서 상기 인터페이스부와 상기 제 2 기억부 사이의 데이터 액세스에 사용되는 병렬 동작 요소를 결정하고, 상기 인터페이스 지정부에 대하여, 사용되는 상기 병렬 동작 요소에 대한 유효 어드레스 및 사용되지 않는 상기 병렬 동작 요소에 대한 무효 어드레스를 설정하는 것인 메모리 시스템.
  9. 제 8 항에 있어서, 상기 제 2 기억부에 있어서, 상기 병렬 동작 요소 각각에 어드레스가 할당되는 것인 메모리 시스템.
  10. 제 8 항에 있어서, 상기 제 2 기억부에 어드레스가 전체적으로 할당되어, 상기 제 2 기억부의 각각의 병렬 동작 요소를 식별할 수 있는 병렬 동작 요소 식별 정보가 포함되는 경우, 상기 제어부는, 상기 인터페이스 지정부에 대하여, 병렬 동작 요소에 대한 병렬 동작 요소 식별 정보를 포함하는 유효 어드레스를 데이터 액세스에 사용하도록 설정하고, 상기 병렬 동작 요소에 대한 상기 병렬 동작 요소 식별 정보를 포함하지 않는 무효 어드레스를 사용하지 않도록 설정하는 것인 메모리 시스템.
  11. 제 8 항에 있어서, 상기 제 2 기억부 내의 각각의 병렬 동작 요소는 액세스될 메모리 영역이 데이터 액세스 시에 사용되는 병렬 동작 요소들의 개수에 따라서 설정되는 병렬도별 데이터 기억 영역을 가지며,
    상기 제어부는 데이터 액세스 시에 데이터의 타입에 따른 상기 병렬도별 데이터 기억 영역을 선택하고, 상기 인터페이스 지정부에 상기 병렬도별 데이터 기억 영역의 어드레스를 설정하며,
    상기 인터페이스부는, 상기 인터페이스 지정부에 설정된 어드레스에 기초하여 상기 병렬 동작 요소들의 개수를 결정하고, 상기 제 2 기억부와 상기 인터페이스부 사이에서 데이터 액세스를 수행하는 것인 메모리 시스템.
  12. 제 11 항에 있어서, 상기 인터페이스 지정부는, 상기 제 2 기억부의 각각의 병렬 동작 요소들에 대하여 제공되는 상기 병렬도별 데이터 기억 영역의 범위를 지정하기 위한 기능을 더 포함하는 것인 메모리 시스템.
  13. 제 8 항에 있어서, 상기 병렬 동작 요소는 복수의 평면을 가지며, 상기 병렬 동작 요소에 액세스 시에 동시에 사용될 평면의 개수가 1개인 정규 모드와, 평면의 개수가 복수개인 2배속 모드가 교체될 수 있도록 구성되며,
    상기 인터페이스 지정부는, 상기 제 2 기억부의 상기 병렬 동작 요소의 데이터 모드를 지정하기 위한 기능을 더 포함하며,
    상기 제어부는, 데이터 액세스 시에 데이터의 타입에 따라서 상기 인터페이스 지정부에 대하여 상기 데이터 모드를 지정하기 위한 기능을 더 포함하는 것인 메모리 시스템.
  14. 제 8 항에 있어서, 상기 제어기는, 상기 제 1 기억부를 통하여 상기 호스트 장치와 상기 제 2 기억부 사이의 데이터 액세스를 수행하는 데이터 전송 프로세서를 더 포함하며,
    상기 데이터 전송 프로세서에 의해 액세스되는 데이터가, 상기 호스트 장치에 의해 액세스가 지시되는 데이터인 경우에, 상기 제어부는 상기 병렬 동작 요소 모두를 이용하도록 상기 인터페이스 지정부를 설정하는 것인 메모리 시스템.
  15. 제 8 항에 있어서, 상기 메모리 시스템에서 생성되는 데이터가 액세스되는 경우에, 상기 제어부는 단지 하나의 병렬 동작 요소만을 이용하도록 상기 인터페이스 지정부를 설정하는 것인 메모리 시스템.
  16. 제 15 항에 있어서, 상기 메모리 시스템에서 생성되는 데이터는, 상기 제어기에 의해 관리되며, 상기 제 2 기억부에 기억되는 데이터의 기억 위치를 포함하는 관리 정보인 것인 메모리 시스템.
  17. 제 8 항에 있어서, 상기 제 1 기억부는, 상기 제 2 기억부에 기억되는 데이터의 기억 위치를 포함하는 관리 정보를 기억하며,
    상기 제 2 기억부는, 어떤 시점에서의 상기 관리 정보의 사본인 스냅샷 및 상기 관리 정보에서 변화가 발생하는 경우에, 상기 변화 전후의 상기 관리 정보의 차이 정보인 로그를 포함하는 관리 정보 기억 정보를 기억하는 관리 정보 기억 영역을 가지며,
    상기 로그가 상기 관리 정보 기억 영역에 기억되는 경우에, 상기 제어부는 정규 모드로 단지 하나의 병렬 동작 요소만을 이용하도록 상기 인터페이스 지정부를 설정하고, 상기 스냅샷이 상기 관리 정보 기억 영역에 기억되는 경우에, 상기 제어부는 2배속 모드로 상기 병렬 동작 요소 모두를 이용하도록 상기 인터페이스 지정부를 설정하는 것인 메모리 시스템.
  18. 제 8 항에 있어서, 상기 제 1 기억부는, 동적 랜덤 액세스 메모리(DRAM)이며, 상기 제 2 기억부는 NAND형 플래시 메모리인 것인 메모리 시스템.
KR1020097018225A 2008-02-29 2009-01-20 메모리 시스템 KR101132497B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2008-051285 2008-02-29
JP2008051285A JP2009211192A (ja) 2008-02-29 2008-02-29 メモリシステム
PCT/JP2009/051139 WO2009107426A1 (en) 2008-02-29 2009-01-20 Memory system

Publications (2)

Publication Number Publication Date
KR20090117939A KR20090117939A (ko) 2009-11-16
KR101132497B1 true KR101132497B1 (ko) 2012-04-12

Family

ID=41015832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018225A KR101132497B1 (ko) 2008-02-29 2009-01-20 메모리 시스템

Country Status (7)

Country Link
US (1) US8364884B2 (ko)
EP (1) EP2248024A4 (ko)
JP (1) JP2009211192A (ko)
KR (1) KR101132497B1 (ko)
CN (1) CN101681302B (ko)
TW (1) TWI397815B (ko)
WO (1) WO2009107426A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI432961B (zh) 2009-02-12 2014-04-01 Toshiba Kk 記憶體系統及控制記憶體系統之方法
JP5424200B2 (ja) * 2009-10-09 2014-02-26 国立大学法人 千葉大学 記録装置
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
JP2013077278A (ja) * 2011-09-16 2013-04-25 Toshiba Corp メモリ・デバイス
US9213645B2 (en) * 2011-12-29 2015-12-15 Sandisk Technologies Inc. Command aware partial page programming
CN102968280B (zh) * 2012-11-21 2015-12-02 华为技术有限公司 一种存储系统及存储设备、控制设备
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
EP2939100B1 (en) 2012-12-31 2017-09-06 SanDisk Technologies LLC Method and system for asynchronous die operations in a non-volatile memory
KR102108839B1 (ko) * 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
JP5673980B2 (ja) * 2013-11-13 2015-02-18 国立大学法人 千葉大学 記録装置
JP6139711B2 (ja) * 2014-02-03 2017-05-31 株式会社日立製作所 情報処理装置
US9177654B2 (en) * 2014-03-26 2015-11-03 Burst Corporation Solid-state memory device with plurality of memory cards
CN104216836B (zh) * 2014-08-28 2018-01-23 华为技术有限公司 一种存储系统的并行读写方法和装置
KR102401600B1 (ko) 2015-08-31 2022-05-25 삼성전자주식회사 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
KR20180031412A (ko) 2016-09-20 2018-03-28 삼성전자주식회사 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들
KR20180061851A (ko) 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
CN110413206B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 存储系统中的操作控制方法、设备和计算机程序产品
US10896724B2 (en) * 2018-12-18 2021-01-19 Western Digital Technologies, Inc. Non-volatile storage system with reduced program transfers
US11921649B1 (en) * 2019-09-12 2024-03-05 Kioxia Corporation Multiple parallel mode flash channels with serial link
TW202145017A (zh) * 2020-05-18 2021-12-01 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
US11556279B2 (en) * 2020-08-21 2023-01-17 Samsung Electronics Co., Ltd. System device, and method for memory interface including reconfigurable channel

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187359A (ja) 1996-12-26 1998-07-14 Toshiba Corp データ記憶システム及び同システムに適用するデータ転送方法
WO2005066770A2 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Data run programming
US20060184758A1 (en) * 2005-01-11 2006-08-17 Sony Corporation Storage device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US6513093B1 (en) * 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
CN1688967A (zh) * 2002-10-11 2005-10-26 皇家飞利浦电子股份有限公司 具有并行操作功能单元的数据处理装置
DE10335132B3 (de) * 2003-07-31 2004-12-09 Infineon Technologies Ag Speicheranordnung eines Computersystems
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
WO2005066793A2 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Non-volatile memory and method with non-sequential update block management
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
JP2007279402A (ja) 2006-04-07 2007-10-25 Matsushita Electric Ind Co Ltd 不揮発性メモリへのデータ格納方法および音声記録再生装置
US7587538B2 (en) * 2006-06-01 2009-09-08 Broadcom Corporation Disk controller, channel interface and methods for use therewith
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
JP5068081B2 (ja) * 2007-01-24 2012-11-07 株式会社日立製作所 管理装置および管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187359A (ja) 1996-12-26 1998-07-14 Toshiba Corp データ記憶システム及び同システムに適用するデータ転送方法
WO2005066770A2 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Data run programming
US20060184758A1 (en) * 2005-01-11 2006-08-17 Sony Corporation Storage device

Also Published As

Publication number Publication date
WO2009107426A1 (en) 2009-09-03
EP2248024A1 (en) 2010-11-10
CN101681302A (zh) 2010-03-24
US20100017562A1 (en) 2010-01-21
JP2009211192A (ja) 2009-09-17
TW200945036A (en) 2009-11-01
EP2248024A4 (en) 2012-11-14
CN101681302B (zh) 2012-05-30
KR20090117939A (ko) 2009-11-16
TWI397815B (zh) 2013-06-01
US8364884B2 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
KR101132497B1 (ko) 메모리 시스템
US12019602B2 (en) Key-value storage device and operating method thereof
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
KR101477047B1 (ko) 메모리 시스템 및 그것의 블록 병합 방법
KR101300657B1 (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
KR100884429B1 (ko) 불휘발성 반도체 메모리를 구비하는 메모리 시스템
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
JP4834676B2 (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP4533956B2 (ja) フラッシュメモリシステムのデータ記憶容量の解放
US8966209B2 (en) Efficient allocation policies for a system having non-volatile memory
US11513949B2 (en) Storage device, and control method and recording medium thereof
JP2014056408A (ja) メモリシステム、コンピュータシステム、およびメモリ管理方法
KR20070046864A (ko) 플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및시스템
KR20200086143A (ko) 저장 장치 및 그것의 데이터 처리 방법
KR20200032527A (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
JP2009503743A (ja) データファイルを直接記憶するメモリブロックの管理
US7969781B2 (en) Method of controlling memory system
JP2000181784A (ja) 書き換え可能な不揮発性記憶装置
KR20090106221A (ko) 병렬 구조를 가지는 플래시 메모리 시스템 및 그 데이터기록방법 및 플래시 메모리
JP2024043939A (ja) メモリシステム
JP2023039459A (ja) メモリシステムおよび方法
JP2006048746A (ja) メモリカード
KR20230097866A (ko) 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
JP2009211196A (ja) メモリシステム

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
LAPS Lapse due to unpaid annual fee