KR102614083B1 - 스토리지 장치 및 스토리지 장치의 동작 방법 - Google Patents

스토리지 장치 및 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR102614083B1
KR102614083B1 KR1020160111905A KR20160111905A KR102614083B1 KR 102614083 B1 KR102614083 B1 KR 102614083B1 KR 1020160111905 A KR1020160111905 A KR 1020160111905A KR 20160111905 A KR20160111905 A KR 20160111905A KR 102614083 B1 KR102614083 B1 KR 102614083B1
Authority
KR
South Korea
Prior art keywords
read
controller
valid data
memory block
memory
Prior art date
Application number
KR1020160111905A
Other languages
English (en)
Other versions
KR20180025491A (ko
Inventor
이종원
신동은
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160111905A priority Critical patent/KR102614083B1/ko
Priority to US15/690,328 priority patent/US10114575B2/en
Priority to CN201710769968.4A priority patent/CN107799142B/zh
Publication of KR20180025491A publication Critical patent/KR20180025491A/ko
Application granted granted Critical
Publication of KR102614083B1 publication Critical patent/KR102614083B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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/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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile 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/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/7205Cleaning, compaction, garbage collection, erase control

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 스토리지 장치에 관한 것이다. 본 발명의 실시 예에 따른 스토리지 장치는 불휘발성 메모리 장치 및 컨트롤러를 포함한다. 불휘발성 메모리 장치는 복수의 메모리 블록들을 포함하고, 각 메모리 블록은 복수의 스트링 선택 라인들에 연결된 스트링 선택 트랜지스터들, 복수의 접지 선택 라인들에 연결된 접지 선택 트랜지스터들 및 복수의 워드 라인들에 연결된 메모리 셀들을 포함한다. 컨트롤러는 읽기 리클레임 동작 시에, 제1 메모리 블록의 유효 데이터 그룹들을 읽고 읽혀진 유효 데이터 그룹들을 제2 메모리 블록에 기입한다. 컨트롤러는 유효 데이터 그룹들의 읽기 카운트들에 따라 유효 데이터 그룹들이 제2 메모리 블록에 기입되는 위치들을 재배치한다.

Description

스토리지 장치 및 스토리지 장치의 동작 방법{STORAGE DEVICE AND OPERATING MEHTOD OF STORAGE DEVICE}
본 발명은 반도체 회로에 관한 것으로, 더 상세하게는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터, 스마트 폰, 스마트 패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다.
반도체 제조 기술이 발전되면서, 스토리지 장치의 고집적화 및 그에 따른 대용량화가 지속적으로 진행되고 있다. 스토리지 장치의 고집적화는 스토리지 장치의 생산 비용을 감소시킨다는 장점을 갖는다. 그러나 스토리지 장치의 고집적화로 인해 스토리지 장치의 스케일이 감소하고 구조가 변화하면서, 기존에 발견되지 않은 다양한 문제들이 발견되고 있다. 새롭게 발견되고 있는 다양한 문제들은 스토리지 장치에 저장된 데이터를 손상시킬 수 있으며, 따라서, 스토리지 장치의 신뢰성이 저해될 수 있다. 스토리지 장치의 신뢰성을 향상시킬 수 있는 방법 및 장치에 대한 요구가 지속적으로 제기되고 있다.
본 발명의 목적은 향상된 신뢰성을 갖는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른 스토리지 장치는 불휘발성 메모리 장치 및 컨트롤러를 포함한다. 불휘발성 메모리 장치는 복수의 메모리 블록들을 포함하고, 각 메모리 블록은 복수의 스트링 선택 라인들에 연결된 스트링 선택 트랜지스터들, 복수의 접지 선택 라인들에 연결된 접지 선택 트랜지스터들 및 복수의 워드 라인들에 연결된 메모리 셀들을 포함한다. 컨트롤러는 읽기 리클레임 동작 시에, 제1 메모리 블록의 유효 데이터 그룹들을 읽고 읽혀진 유효 데이터 그룹들을 제2 메모리 블록에 기입한다. 컨트롤러는 유효 데이터 그룹들의 읽기 카운트들에 따라 유효 데이터 그룹들이 제2 메모리 블록에 기입되는 위치들을 재배치한다.
본 발명은 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치의 동작 방법에 관한 것이다. 본 발명의 동작 방법은 불휘발성 메모리 장치의 제1 메모리 블록에 기입된 데이터 그룹들의 읽기 횟수들을 카운트하는 단계, 읽기 리클레임 시에 제1 메모리 블록에 기입된 데이터 그룹들을 불휘발성 메모리 장치의 제2 메모리 블록으로 복사하는 단계를 포함한다. 읽기 리클레임 시에, 데이터 그룹들의 읽기 카운트들에 따라 데이터 그룹들의 위치들이 재배치된다.
본 발명의 실시 예들에 따르면, 읽기 빈도가 높은 데이터가 읽기 동작 시에 더 적게 열화되는 위치의 메모리 셀들에 기입된다. 따라서, 향상된 신뢰성을 갖는 스토리지 장치 및 스토리지 장치의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다.
도 3은 본 발명의 실시 예에 따른 메모리 블록의 예를 보여준다.
도 4는 도 3의 메모리 블록의 하나의 셀 스트링의 구조의 예를 보여준다.
도 5는 메모리 셀들의 위치들에 따른 읽기 교란의 양의 차이의 예를 보여준다.
도 6은 읽기 리클레임 시에 선택된 메모리 블록의 데이터 그룹들이 새로운 메모리 블록에 기입되는 예를 보여준다.
도 7은 컨트롤러가 읽기 리클레임을 수행하는 예를 보여준다.
도 8은 컨트롤러가 읽기 리클레임을 수행하는 다른 예를 보여준다.
도 9는 본 발명의 실시 예에 따라 데이터 그룹들이 설정되는 예들을 보여준다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(200)를 보여주는 블록도이다. 도 1을 참조하면, 스토리지 장치(200)는 불휘발성 메모리 장치(210), 컨트롤러(220), 그리고 버퍼 메모리(230)를 포함한다.
불휘발성 메모리 장치(210)는 컨트롤러(220)의 제어에 따라 쓰기 동작, 읽기 동작 및 소거 동작을 수행할 수 있다. 불휘발성 메모리 장치(210)는 컨트롤러(220)로부터 쓰기 커맨드, 어드레스 및 데이터를 수신하고, 어드레스에 의해 식별되는 저장 공간에 데이터를 기입할 수 있다. 불휘발성 메모리 장치(210)는 컨트롤러(220)로부터 읽기 커맨드 및 어드레스를 수신하고, 어드레스에 의해 식별되는 저장 공간으로부터 데이터를 읽고, 읽혀진 데이터를 컨트롤러(220)로 출력할 수 있다. 불휘발성 메모리 장치(210)는 컨트롤러(220)로부터 소거 커맨드 및 어드레스를 수신하고, 어드레스에 의해 식별되는 저장 공간의 데이터를 소거할 수 있다.
불휘발성 메모리 장치(210)는 복수의 메모리 블록들(BLK1~BLKz)을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들은 불휘발성 메모리 장치(210)의 저장 공간을 형성할 수 있다. 복수의 메모리 블록들 각각은 복수의 메모리 셀들을 개별적으로 선택하는 것을 지원하는 선택 트랜지스터들을 더 포함할 수 있다. 메모리 블록들(BLK1~BLKz)은 불휘발성 메모리 장치(210)의 동작상의 특징에 따라 또는 구조적 특징에 따라 구별될 수 있다. 메모리 블록들(BLK1~BLKz)이 구별되는 예는 도 3을 참조하여 더 상세하게 설명된다.
불휘발성 메모리 장치(210)는 플래시 메모리, 상 변화 랜덤 액세스 메모리(PRAM, Phase-change Random Access Memory), 강유전체 랜덤 액세스 메모리(FeRAM, Ferroelectric RAM), 자기 랜덤 액세스 메모리(MRAM, Magnetic RAM), 저항성 랜덤 액세스 메모리(RRAM, Resistive RAM) 등을 포함할 수 있다.
컨트롤러(220)는 불휘발성 메모리 장치(210) 및 버퍼 메모리(230)를 액세스할 수 있다. 컨트롤러(220)는 외부의 호스트 장치의 요청에 따라 쓰기, 읽기 및 소거를 수행할 수 있다. 컨트롤러(220)는 쓰기 요청된 데이터를 불휘발성 메모리 장치(210)에 기입하고, 읽기 요청된 데이터를 불휘발성 메모리 장치(210)로부터 읽어 출력할 수 있다.
컨트롤러(220)는 버퍼 메모리(230)를 이용하여 스토리지 장치(200)를 관리할 수 있다. 예를 들어, 컨트롤러(220)는 불휘발성 메모리 장치(210)에 기입될 데이터 또는 불휘발성 메모리 장치(210)로부터 읽히는 데이터를 버퍼 메모리(230)에 임시로 저장할 수 있다. 컨트롤러(220)는 불휘발성 메모리 장치(210)를 관리하는 데에 필요한 메타 데이터를 버퍼 메모리(230)에 로드할 수 있다.
컨트롤러(220)는 외부의 호스트 장치로부터 논리 어드레스에 기반한 요청을 수신할 수 있다. 컨트롤러(220)에서 구동되는 플래시 변환 계층(FTL)은 논리 어드레스를 불휘발성 메모리 장치(210)의 물리 어드레스로 변환할 수 있다. 컨트롤러(220)는 변환된 물리 어드레스를 불휘발성 메모리 장치(210)로 전달할 수 있다. 논리 어드레스 및 물리 어드레스 사이의 변환에 필요한 사상 데이터(MD)는 불휘발성 메모리 장치(200)에 보관되며, 버퍼 메모리(230)에 로드되어 사용될 수 있다. 플래시 변환 계층(FTL)은 버퍼 메모리(230)에 로드된 사상 데이터(MD)를 참조하여 논리 어드레스와 물리 어드레스의 변환을 수행할 수 있다.
컨트롤러(220)는 리클레임 모듈(RM) 및 카운터(CNT)를 포함할 수 있다. 컨트롤러(220)는 카운터(CNT)를 이용하여 불휘발성 메모리 장치(210)에서 수행되는 읽기 동작들을 카운트할 수 있다. 예를 들어, 컨트롤러(220)는 불휘발성 메모리 장치(210)에 기입된 각 데이터 그룹의 읽기 카운트를 관리할 수 있다. 데이터 그룹은 미리 정해진 사이즈의 데이터를 가리키며, 데이터 그룹의 사이즈는 각 메모리 블록에 기입될 수 있는 최대 데이터의 사이즈 이하이고, 각 페이지(도 3을 참조하여 후술됨)에 기입될 수 있는 최대 데이터의 사이즈 이상일 수 있다. 각 데이터 그룹의 사이즈는 각 페이지의 최대 데이터의 사이즈의 배수로 정해질 수 있다.
리클레임 모듈(RM)은 읽기 리클레임을 수행할 때에, 읽기 리클레임의 대상으로 선택된 메모리 블록의 데이터 그룹들의 읽기 카운트들에 따라 데이터 그룹들이 새로운 메모리 블록에서 기입될 위치를 조절할 수 있다. 예를 들어, 읽기 리클레임은 선택된 메모리 블록의 유효 데이터를 읽고, 읽혀진 유효 데이터를 새로운 메모리 블록에 기입하고, 선택된 메모리 블록의 유효 데이터를 무효화하는 것을 포함할 수 있다. 데이터 또는 데이터 그룹의 유효화 또는 무효화는 플래시 변환 계층(FTL)에 의해 관리되며, 유효화 또는 무효화의 결과는 사상 데이터(MD)로 저장될 수 있다.
예시적으로, 컨트롤러(220)의 플래시 변환 계층(FTL), 리클레임 모듈(RM) 및 카운터(CNT) 각각은 회로, 상태 기계, 소프트웨어, 펌웨어, 또는 이들 중 적어도 두 개가 조합된 형태로 구현될 수 있다.
도 2는 본 발명의 실시 예에 따른 스토리지 장치(200)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S410 단계에서 컨트롤러(220)는 각 메모리 블록의 각 데이터 그룹의 읽기 동자들의 횟수를 카운트할 수 있다. 예를 들어, 컨트롤러(220)는 각 데이터 그룹에 속한 데이터에 대한 읽기 커맨드를 불휘발성 메모리 장치(210)로 전달하고 불휘발성 메모리 장치(210)가 읽기 커맨드에 따라 읽기 동작을 완료하는 것을 하나의 읽기 카운트로 계산할 수 있다. 각 데이터 그룹의 읽기 카운트들을 계산하는 것과 함께, 컨트롤러(220)는 각 메모리 블록의 읽기 카운트들을 더 카운트할 수 있다. 예를 들어, 읽기 카운트들은 버퍼 메모리(230) 또는 불휘발성 메모리 장치(210)에 저장될 수 있다.
S420 단계에서, 컨트롤러(220)는 읽기 리클레임을 수행하는지 판별한다. 예를 들어, 각 메모리 블록의 읽기 카운트가 미리 정해진 문턱 값에 도달하면, 컨트롤러(220)는 해당 메모리 블록에 대해 읽기 리클레임을 수행하는 것으로 판별할 수 있다. 읽기 리클레임이 수행되지 않으면, 컨트롤러(220)는 S410 단계에서 카운트를 지속할 수 있다. 읽기 리클레임이 수행되면, 컨트롤러(220)는 S430 단계를 수행할 수 있다.
S430 단계에서, 컨트롤러(220)는 선택된 메모리 블록의 유효 데이터 그룹들의 읽기 카운트를 검출할 수 있다. S440 단계에서, 컨트롤러(220)는 읽기 리클레임을 수행하며, 문턱 값보다 높은 읽기 카운트를 갖는 적어도 하나의 데이터 그룹의 위치를 재배치(relocate)할 수 있다. 예를 들어, 읽기 리클레임을 수행한 후에, 컨트롤러(220)는 데이터 그룹들의 읽기 카운트들을 리셋할 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리 블록(BLKa)의 예를 보여준다. 도 3을 참조하면, 복수의 셀 스트링들(CS)이 기판(SUB) 위에서 행들 및 열들로 배치될 수 있다. 복수의 셀 스트링들(CS)은 기판(SUB) 상에 형성되는 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. 도 3에서, 메모리 블록(BLKa)의 구조의 이해를 돕기 위하여, 기판(SUB)의 위치가 예시적으로 표시되어 있다. 도 3에서, 셀 스트링들(CS)의 하단에 공통 소스 라인(CSL)이 연결되는 것으로 도시되어 있다. 그러나 공통 소스 라인(CSL)은 셀 스트링들(CS)의 하단에 전기적으로 연결되는 것으로 충분하며, 물리적으로 셀 스트링들(CS)의 하단에 위치하는 것으로 한정되지 않는다. 예시적으로, 도 3에서 셀 스트링들(CS)은 4X4로 배열되는 것으로 도시되나 본 발명의 기술적 사상은 한정되지 않는다.
각 행의 셀 스트링들은 제1 내지 제4 접지 선택 라인들(GSL1~GSL4) 중 대응하는 접지 선택 라인 또는 제1 내지 제4 스트링 선택 라인들(SSL1~SSL4) 중 대응하는 스트링 선택 라인에 연결될 수 있다. 각 열의 셀 스트링들은 제1 내지 제4 비트 라인들(BL1~BL4) 중 대응하는 비트 라인에 연결될 수 있다. 도면이 복잡해지는 것을 방지하기 위하여, 제2 및 제3 접지 선택 라인들(GSL2, GSL3) 또는 제2 및 제3 스트링 선택 라인들(SSL2, SSL3)에 연결된 셀 스트링들은 옅게 도시되어 있다.
각 셀 스트링은 대응하는 접지 선택 라인에 연결되는 적어도 하나의 접지 선택 트랜지스터(GST), 복수의 워드 라인들(WL1~WL8)에 각각 연결되는 복수의 메모리 셀들(MC), 그리고 대응하는 스트링 선택 라인에 연결되는 적어도 하나(또는 두 개)의 스트링 선택 트랜지스터(SST)를 포함할 수 있다. 각 셀 스트링에서, 접지 선택 트랜지스터(GST), 메모리 셀들(MC) 및 스트링 선택 트랜지스터(SST)는 기판과 수직인 방향을 따라 직렬 연결되고, 기판과 수직인 방향을 따라 순차적으로 적층될 수 있다.
기판(SUB) 또는 접지 선택 트랜지스터(GST)로부터 동일한 높이(또는 순서)에 위치한 셀 스트링들(CS)의 메모리 셀들은 동일한 워드 라인에 공통으로 연결될 수 있다. 기판(SUB) 또는 접지 선택 트랜지스터(GST)로부터 상이한 높이(또는 순서)에 위치한 셀 스트링들(CS)의 메모리 셀들은 상이한 워드 라인들에 연결될 수 있다.
각 스트링 선택 라인 및 각 워드 라인에 공통으로 대응하는 메모리 셀들은 하나의 페이지를 형성할 수 있다. 예를 들어, 하나의 행 및 하나의 높이에 속한 메모리 셀들은 하나의 페이지를 형성할 수 있다.
메모리 블록(BLKa)은 3차원 메모리 어레이로 제공된다. 3차원 메모리 어레이는, 실리콘 기판(SUB) 및 메모리 셀들(MC)의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들(MC)의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. 메모리 셀들(MC)의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 셀 스트링들(CS)(또는 NAND 스트링들)을 포함한다. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. 각 셀 스트링은 메모리 셀들(MC) 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. 적어도 하나의 선택 트랜지스터는 메모리 셀들(MC)과 동일한 구조를 갖고, 메모리 셀들(MC)과 함께 획일적으로 형성된다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에서 워드 라인들 또는 비트 라인들이 공유되는 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
도 4는 도 3의 메모리 블록(BLKa)의 하나의 셀 스트링(CS)의 구조의 예를 보여준다. 도 3 및 도 4를 참조하면, 기판(SUB) 위에 기판과 수직인 방향으로 신장되어 기판(SUB)과 접촉하는 필라(PL)가 제공될 수 있다. 도 4에 도시된 접지 선택 라인(GSL), 워드 라인들(WL1~WL8), 그리고 스트링 선택 라인들(SSL)은 각각 기판(SUB)과 평행한 도전 물질들, 예를 들어 금속 물질들로 형성될 수 있다. 필라(PL)는 접지 선택 라인(GSL), 워드 라인들(WL1~WL8), 그리고 스트링 선택 라인들(SSL)을 형성하는 도전 물질들을 관통하여 기판(SUB)과 접촉할 수 있다.
도 4에서, 절단 선(A-A')에 따른 단면도가 함께 도시되어 있다. 예시적으로, 제1 워드 라인(WL1)에 대응하는 제1 메모리 셀(MC1)의 단면도가 도시된다. 필라(PL)는 원통형의 바디(BD)를 포함할 수 있다. 바디(BD)의 내부에 에어갭(AG)이 제공될 수 있다. 바디(BD)는 P-타입 실리콘을 포함하며, 채널이 형성되는 영역일 수 있다. 필라(PL)는 바디(BD)를 둘러싸는 원통형의 터널 절연막(TI) 및 터널 절연막(TI)을 둘러싸는 원통형의 전하 포획 막(CT)을 더 포함할 수 있다. 제1 워드 라인(WL1) 및 필라(PL)의 사이에 블로킹 절연막(BI)이 제공될 수 있다. 바디(BD), 터널 절연막(TI), 전하 포획 막(CT), 블로킹 절연막(BI), 그리고 제1 워드 라인(WL1)은 기판(SUB) 또는 기판(SUB)의 상부 면과 수직인 방향으로 형성된 전하 포획형 트랜지스터일 수 있다. 스트링 선택 트랜지스터(SST), 접지 선택 트랜지스터(GST) 및 다른 메모리 셀들은 제1 메모리 셀(MC1)과 동일한 구조를 가질 수 있다.
셀 스트링(CS)의 제조 공정에서, 필라(PL)의 폭 또는 기판(SUB)의 상부 면과 평행한 단면적은 기판(SUB)과의 거리가 감소할수록 작게 형성될 수 있다. 따라서, 접지 선택 트랜지스터(GST), 메모리 셀들(MC) 및 스트링 선택 트랜지스터들(SST)의 바디들에 동일한 전압이 인가되고 그리고 접지 선택 라인(GSL), 워드 라인들(WL1~WL8) 및 스트링 선택 라인들(SSL)에 동일한 전압이 인가될 때에, 기판(SUB)에 인접한 메모리 셀 또는 접지 선택 트랜지스터(GST)에 형성되는 전기장은 기판(SUB)과 먼 메모리 셀 또는 스트링 선택 트랜지스터(SST)에 형성되는 전기장보다 크다. 이러한 특징은 읽기 동작이 수행되는 동안에 발생하는 읽기 교란에 영향을 준다.
예시적으로, 읽기 동작 시에, 읽기 대상으로 선택된 메모리 셀들에 연결된 워드 라인에 선택 읽기 전압이 인가된다. 선택 읽기 전압은 메모리 셀들의 문턱 전압 범위 내의 레벨을 갖는다. 선택된 메모리 셀들에서 발생하는 전기장의 세기가 작으므로, 선택된 메모리 셀들에서 읽기 교란은 발생하지 않거나 매우 적게 발생한다. 읽기 동작 시에, 읽기 대상으로 선택되지 않은 메모리 셀들에 연결된 워드 라인들에 비선택 읽기 전압이 인가된다. 비선택 읽기 전압은 메모리 셀들의 문턱 전압 범위보다 높은 레벨을 갖는다. 비선택된 메모리 셀들에서 발생하는 전기장의 세기가 상대적으로 크므로, 비선택된 메모리 셀들에서 읽기 교란이 발생할 수 있다.
특히, 선택된 워드 라인에 바로 인접한 비선택된 워드 라인들에 인가되는 비선택 읽기 전압의 레벨은 다른 비선택된 워드 라인들에 인가되는 비선택 읽기 전압의 레벨보다 높다. 따라서, 인접한 비선택 워드 라인들에 연결된 메모리 셀들에서 발생하는 읽기 교란은 다른 비선택 워드 라인들에 연결된 메모리 셀들에서 발생하는 읽기 교란보다 클 수 있다. 인접한 비선택 워드 라인들에 연결된 메모리 셀들에서 발생하는 읽기 교란은 제1 읽기 교란일 수 있다.
또한, 도 4를 참조하여 설명된 바와 같이, 기판(SUB) 또는 접지 선택 트랜지스터(GST)와의 거리가 가까울수록 메모리 셀에 형성되는 전기장의 세기가 커진다. 따라서, 기판(SUB) 또는 접지 선택 트랜지스터(GST)와의 거리가 가까울수록 메모리 셀들에서 발생하는 읽기 교란이 크다. 기판(SUB)에 가까운 하위 워드 라인들, 예를 들어, 제1 내지 제4 워드 라인들(WL1~WL4)에 연결된 메모리 셀들에서 발생하는 읽기 교란은 제2 읽기 교란일 수 있다.
읽기 동작이 하위(또는 기판(SUB)과 인접한) 워드 라인들 중 하나에서 수행되면, 하위(또는 기판(SUB)과 인접한) 워드 라인들에 연결된 메모리 셀들 중 제1 읽기 교란 및 제2 읽기 교란을 모두 경험하는 메모리 셀들이 발생할 수 있다. 제1 읽기 교란 및 제2 읽기 교란이 중첩되어 제3 읽기 교란이 발생할 수 있다. 제3 읽기 교란은 메모리 블록(BLKa)에서 읽기 동작이 수행될 때에 발생하는 가장 강한 읽기 교란일 수 있다.
상술된 바와 같이, 각 메모리 블록에서 메모리 셀들의 위치들에 따라 메모리 셀들이 경험하는 읽기 교란의 양이 서로 다를 수 있다. 도 5는 메모리 셀들(MCs)의 위치들에 따른 읽기 교란의 양의 차이의 예를 보여준다. 도 5에서, 각 메모리 셀은 각 정육면체로 표현된다. 도 5에서, 제1 내지 제8 워드 라인들(WL1~WL8)에 대응하는 제1 내지 제8 높이들(H1~H8), 제 내지 제4 스트링 선택 라인들(SSL1~SSL4)에 대응하는 제1 내지 제4 행들(R1~R4), 그리고 제1 내지 제4 비트 라인들(BL1~BL4)에 대응하는 제1 내지 제4 열들(C1~C4)에 따라 배열된 메모리 셀들(MCs) 도시된다.
메모리 셀들(MCs)은 읽기 교란의 양에 따라 제1 내지 제5 셀 그룹들(CG1~CG5)로 그룹화될 수 있다. 제1 셀 그룹의 읽기 교란의 양은 제2 셀 그룹의 읽기 교란의 양보다 클 수 있다. 제k 셀 그룹의 읽기 교란의 양은 제k+1 셀 그룹의 읽기 교란의 양보다 클 수 있다.
제5 셀 그룹(CG5)에 기입되는 데이터는 제1 그룹(CG12)에 기입되는 데이터보다 더 적은 읽기 교란을 경험한다. 읽기 빈도가 높은 데이터가 더 적은 읽기 교란이 발생하는 제1 셀 그룹(CG1)에 기입되고 그리고 읽기 빈도가 낮은 데이터가 더 많은 읽기 교란이 발생하는 제5 셀 그룹(CG5)에 기입되면, 읽기 동작들이 수행될 때에 제1 셀 그룹(CG1)에서 발생하는 읽기 교란의 총량과 제5 셀 그룹(CG5)에서 발생하는 읽기 교란의 총량이 유사해질 수 있다. 따라서, 메모리 셀들(MCs)에 기입된 데이터의 신뢰도가 향상되며, 읽기 리클레임의 횟수가 감소될 수 있다.
도 6은 읽기 리클레임 시에 선택된 메모리 블록의 데이터 그룹들(DG1, DG2)이 새로운 메모리 블록에 기입되는 예를 보여준다. 예시적으로, 하나의 높이에 속한 메모리 셀들(MCs)에 기입되는 데이터가 하나의 데이터 그룹을 형성하는 것으로 가정되나, 본 발명은 한정되지 않는다.
도 1 및 도 6을 참조하면, 읽기 리클레임을 수행할 때에 컨트롤러(220)는 유효 데이터 그룹들(DG1, DG2)의 읽기 카운트들을 검출할 수 있다. 예를 들어, 제1 데이터 그룹(DG1)의 읽기 카운트는 문턱 값보다 높고, 제2 데이터 그룹(DG2)의 읽기 카운트는 문턱 값보다 낮을 수 있다. 컨트롤러(220)는 제1 데이터 그룹(DG1)을 읽기 교란이 가장 낮은 제8 높이(H8, 도 5 참조)의 메모리 셀들(MCs)에 기입되도록 읽기 리클레임을 제어할 수 있다.
예시적으로, 읽기 리클레임 시에 제2 데이터 그룹(DG2)의 위치와 제1 데이터 그룹(DG1)의 위치는 상호 교환되는 것으로 도시되어 있다. 그러나 본 발명은 한정되지 않는다. 제2 데이터 그룹(DG2)은 다른 위치에 기입될 수 있다. 예를 들어, 제2 데이터 그룹(DG2)은 제2 데이터 그룹(DG2) 또는 표시되지 않은 다른 데이터 그룹들의 읽기 카운트들에 따라 배치될 수 있다. 예를 들어, 선택된 메모리 블록의 데이터 그룹들의 위치들은 읽기 카운트들의 순서에 따라 재정렬될 수 있다. 예를 들어, 가장 높은 읽기 카운트를 갖는 데이터 그룹, 예를 들어 제1 데이터 그룹(DG1)이 가장 적은 읽기 교란을 갖는 위치에 기입되고, 가장 낮은 읽기 카운트를 갖는 데이터 그룹이 가장 큰 읽기 교란을 갖는 위치에 기입되도록 읽기 리클레임이 제어될 수 있다.
도 7은 컨트롤러(220)가 읽기 리클레임을 수행하는 예를 보여준다. 예시적으로, 컨트롤러(220)는 멀티 쓰레딩(MT)에 기반하여 읽기 리클레임을 수행할 수 있다. 컨트롤러(220)는 미리 정해진 데이터의 단위로 읽기 리클레임을 수행하되, 각 데이터 단위의 읽기 리클레임의 사이에 쓰기, 읽기 리클레임과 무관한 읽기, 소거 등과 같은 다른 작업을 수행할 수 있다. 간결한 설명을 위하여, 읽기 리클레임의 데이터의 단위는 데이터 그룹인 것으로 가정된다. 그러나 읽기 리클레임의 데이터의 단위는 데이터 그룹보다 크거나 작을 수 있다.
도 1 및 도 7을 참조하면, S510 단계에서, 컨트롤러는 선택된 메모리 블록의 유효 데이터 그룹을 읽는다. 예를 들어, 컨트롤러(220)는 제1 워드 라인(WL1, 도 3 참조)으로부터 제8 워드 라인(WL8)의 순서로 또는 그 반대로 유효 데이터 그룹을 순차적으로 선택하여 읽을 수 있다.
S515 단계에서, 컨트롤러(220)는 읽혀진 데이터 그룹의 읽기 카운트를 검출한다. 예를 들어, 컨트롤러(220)는 버퍼 메모리(230) 또는 불휘발성 메모리 장치(210)에서 읽기 카운트가 저장된 영역을 읽어 읽기 카운트를 검출할 수 있다.
S520 단계에서, 컨트롤러(220)는 읽혀진 데이터 그룹의 읽기 카운트가 문턱 값보다 큰지 판별한다. 읽기 카운트가 문턱 값보다 크면 S535 단계가 수행된다. 읽기 카운트가 문턱 값보다 크지 않으면 S525 단계가 수행된다.
S525 단계에서, 컨트롤러(220)는 문턱 값 이하의 읽기 카운트를 갖는 데이터 그룹을 새로운 메모리 블록에 기입하는 프로그램 동작을 수행할 수 있다. 예를 들어, 컨트롤러(220)는 제1 워드 라인(WL1)으로부터 제8 워드 라인(WL8)의 순서로 또는 그 반대로 자유 메모리 셀들을 순차적으로 선택하며 프로그램 동작을 수행할 수 있다.
S530 단계에서, 컨트롤러(220)는 연기된 데이터 그룹이 존재하는지 판별한다. 예를 들어, 연기된 데이터 그룹은 S550 단계를 참조하여 후술되는 상황에 발생할 수 있다. 연기된 데이터 그룹은 버퍼 메모리(230) 또는 컨트롤러(220)의 내부에 버퍼링되고 읽기 리클레임이 연기된 데이터 그룹일 수 있다. 연기된 데이터 그룹이 존재하지 않으면, 컨트롤러(220)는 S510 단계를 수행할 수 있다. 연기된 데이터 그룹이 존재하면, S535 단계가 수행된다.
읽혀진 데이터 그룹의 읽기 카운트가 문턱 값보다 크거나 또는 연기된 데이터 그룹이 존재하면, S535 단계가 수행된다. S535 단계에서, 컨트롤러(220)는 새로운 메모리 블록에서 프로그램 동작이 수행될 현재의 프로그램 위치가 강건한(robust) 위치에 대응하는지 판별한다. 예를 들어, 컨트롤러(220)는 현재의 프로그램 위치가 제7 또는 제8 높이(H7, H8, 도 5 참조)에 대응하는지 판별할 수 있다. 예를 들어, 지연된 데이터 그룹들의 개수가 가장 강건한 제7 및 제8 높이들(H7, H8)의 개수 이하이면, 컨트롤러(220)는 현재의 프로그램 위치가 가장 강건한 제7 및 제8 높이들(H7, H8)에 대응하는지 판별할 수 있다. 지연된 데이터 그룹들의 개수가 가장 강건한 제7 및 제8 높이들(H7, H8)의 개수보다 크고 그리고 다음으로 강건한 높이들을 포함하는 제6 내지 제8 높이들(H6, H8)의 개수 이하이면, 컨트롤러(220)는 현재의 프로그램 위치가 제6 내지 제8 높이들(H6, H8)에 대응하는지 판별할 수 있다. 즉, 컨트롤러(220)는 지연된 데이터 그룹들의 개수에 따라 강건한 위치들의 개수를 조절할 수 있다. 현재의 프로그램 위치가 강건한 위치에 대응하면, S540 단계가 수행된다. 현재의 프로그램 위치가 강건한 위치에 대응하지 않으면, S550 단계가 수행된다.
S540 단계에서, 컨트롤러(220)는 프로그램 동작을 수행한다. 예를 들어, 컨트롤러(220)는 읽혀진 데이터 그룹 연기된 데이터 그룹들 중에서 읽기 카운트가 가장 낮은(또는 가장 높은) 데이터 그룹을 현재의 프로그램 위치에 기입하는 프로그램 동작을 수행할 수 있다. 이후에, 컨트롤러(220)는 S550 단계를 수행한다.
현재의 프로그램 위치가 강건한 위치가 아니면, S545 단계에서, 컨트롤러(220)는 선택된 데이터 그룹(읽혀진 데이터 그룹 또는 연기된 데이터 그룹)의 프로그램 동작을 연기한다.
S550 단계에서, 컨트롤러(220)는 기입된 데이터 그룹이 마지막 유효 데이터 그룹인지 판별한다. 마지막 유효 데이터 그룹이 기입되었으면, 읽기 리클레임은 종료된다. 기입된 데이터 그룹이 마지막 유효 데이터 그룹이 아니면, 컨트롤러(220)는 S510 단계를 다시 수행한다.
요약하면, 컨트롤러(220)는 읽기 리클레임의 데이터 단위에 기반하여 읽기 리클레임을 수행하되, 각 데이터 단위가 읽혀질 때에 읽기 카운트를 체크할 수 있다. 문턱 값 이하의 작은 읽기 카운트를 갖는 데이터 단위는 새로운 메모리 블록의 프로그램 위치 순서에 따라 프로그램된다. 문턱 값보다 큰 읽기 카운트를 갖는 데이터 단위는 새로운 메모리 블록의 프로그램 위치 순서에서 강건한 위치가 프로그램 대상으로 선택될 때까지 프로그램이 연기된다.
도 8은 컨트롤러(220)가 읽기 리클레임을 수행하는 다른 예를 보여준다. 도 1 및 도 8을 참조하면, 컨트롤러(220)는 읽기 리클레임의 대상으로 선택된 메모리 블록의 유효 데이터 그룹들의 읽기 카운트들을 검출할 수 있다.
S620 단계에서, 컨트롤러(220)는 문턱 값보다 높은 읽기 카운트들을 갖는 데이터 그룹들을 선택할 수 있다.
S630 단계에서, 선택된 데이터 그룹들의 위치들을 선택할 수 있다. 예를 들어, 선택된 데이터 그룹들의 위치들이 강건한 제7 및 제8 높이(H7, H8, 도 5 참조)로 선택될 수 있다. 선택된 데이터 그룹들의 수에 따라 강건한 위치들의 수가 조절될 수 있다. 예를 들어, 선택된 데이터 그룹들이 4개이면, 제6 내지 제8 높이들(H6~H8)이 강건한 위치들로 선택될 수 있다.
S640 단계에서, 컨트롤러(220)는 새로운 메모리 블록의 프로그램 위치가 선택된 위치들 중 하나에 대응하는지 판별한다. 프로그램 위치가 선택된 위치들 중 하나에 대응하지 않으면, S650 단계에서 컨트롤러(220)는 선택된 데이터 그룹들을 제외한 유효 데이터 그룹을 읽고, S670 단계에서 읽혀진 데이터 그룹의 프로그램 동작을 수행할 수 있다. 프로그램 위치가 선택된 위치들 중 하나에 대응하면, S660 단계에서 컨트롤러는 프로그램 위치에 대응하는 데이터 그룹을 읽고, S670 단계에서 프로그램 위치에 대응하는 데이터 그룹의 프로그램 동작을 수행할 수 있다.
S680 단계에서, 컨트롤러(220)는 기입된 데이터 그룹이 마지막 유효 데이터 그룹인지 판별한다. 마지막 유효 데이터 그룹이 기입되었으면, 읽기 리클레임은 종료된다. 기입된 데이터 그룹이 마지막 유효 데이터 그룹이 아니면, 컨트롤러(220)는 S640 단계를 다시 수행한다.
요약하면, 컨트롤러(220)는 읽기 리클레임을 시작할 때에 문턱 값보다 큰 읽기 카운트들을 갖는 데이터 그룹들을 미리 검출하고, 검출된 데이터 그룹들의 프로그램 위치들을 미리 할당할 수 있다.
예시적으로, 도 8에서 문턱 값보다 큰 읽기 카운트들을 갖는 데이터 그룹들이 검출되고, 이들의 프로그램 위치들이 선택되는 것으로 설명되었다. 그러나 도 8의 S620 단계는 읽기 카운트들에 따라 데이터 그룹들을 정렬하는 것으로 변경되고, 그리고 S630 단계는 정렬된 데이터 그룹들에 각각 할당되는 프로그램 위치들을 선택하는 것으로 변경될 수 있다.
도 9는 본 발명의 실시 예에 따라 데이터 그룹들이 설정되는 예들을 보여준다. 도 5 및 도 9를 참조하면, 제1 예(E1)로서, 동일한 높이에 속한 메모리 셀들에 프로그램되는 데이터가 하나의 데이터 그룹으로 선택될 수 있다. 제2 예(E2)로서, 동일한 열에 속한 메모리 셀들에 프로그램되는 데이터가 하나의 데이터 그룹으로 선택될 수 있다. 제3 예(E3)로서, 동일한 행에 속한 메모리 셀들에 프로그램되는 데이터가 하나의 데이터 그룹으로 선택될 수 있다. 제4 예(E4)로서, 동일한 페이지에 속한 메모리 셀들에 프로그램되는 데이터가 하나의 데이터 그룹으로 선택될 수 있다. 제5 예(E5)로서, 동일한 셀 그룹에 속한 메모리 셀들에 프로그램되는 데이터가 하나의 데이터 그룹으로 선택될 수 있다.
도 10은 본 발명의 실시 예에 따른 컨트롤러(220)를 보여주는 블록도이다. 도 1 및 도 10을 참조하면, 컨트롤러(220)는 버스(221), 프로세서(222), RAM (223), 에러 정정 블록(224), 호스트 인터페이스(225), 버퍼 제어 회로(226), 그리고 메모리 인터페이스(227)를 포함한다.
버스(221)는 컨트롤러(220)의 구성 요소들 사이에 채널을 제공하도록 구성된다.
프로세서(222)는 컨트롤러(220)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서(222)는 호스트 인터페이스(225)를 통해 외부의 호스트 장치와 통신하고, 메모리 인터페이스(227)를 통해 불휘발성 메모리 장치(210)와 통신하고, 그리고 버퍼 제어 회로(226)를 통해 RAM (230)과 통신할 수 있다. 프로세서(222)는 RAM (223)을 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용하여 스토리지 장치(200)를 제어할 수 있다.
플래시 변환 계층(FTL), 리클레임 모듈(RM), 그리고 카운터(CNT) 중 적어도 하나는 프로세서(222)에 의해 구동되는 펌웨어, 운영 체제, 응용과 같은 소프트웨어의 형태로 구현될 수 있다. 다른 예로서, 플래시 변환 계층(FTL), 리클레임 모듈(RM), 그리고 카운터(CNT) 중 적어도 하나는 프로세서(222)의 내부에서 회로망(circuitry) 또는 지식 자산(IP, Intellectual Property)과 같은 하드웨어로 구현될 수 있다. 다른 예로서, 플래시 변환 계층(FTL), 리클레임 모듈(RM), 그리고 카운터(CNT) 중 적어도 하나는 프로세서(222)와 연관되어 하드웨어 및 소프트웨어가 조합된 형태로 구현될 수 있다. 다른 예로서, 플래시 변환 계층(FTL), 리클레임 모듈(RM), 그리고 카운터(CNT) 중 적어도 하나는 프로세서(222)와 분리된 별도의 모듈로 제공될 수 있다.
RAM (223)은 프로세서(222)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM (223)은 프로세서(222)가 실행하는 코드들 및 명령들을 저장할 수 있다. RAM (223)은 프로세서(222)에 의해 처리되는 데이터를 저장할 수 있다. RAM (223)은 SRAM (Static RAM)을 포함할 수 있다.
에러 정정 블록(224)은 에러 정정을 수행할 수 있다. 에러 정정 블록(224)은 메모리 인터페이스(227)를 통해 불휘발성 메모리 장치(210)에 기입될 데이터에 기반하여 에러 정정 인코딩을 수행할 수 있다. 에러 정정 인코딩된 데이터는 메모리 인터페이스(227)를 통해 불휘발성 메모리 장치(210)로 전달될 수 있다. 에러 정정 블록(224)은 불휘발성 메모리 장치(210)로부터 메모리 인터페이스(227)를 통해 수신되는 데이터에 대해 에러 정정 디코딩을 수행할 수 있다. 예시적으로, 에러 정정 블록(224)은 메모리 인터페이스(227)의 구성 요소로서 메모리 인터페이스(227)에 포함될 수 있다.
호스트 인터페이스(225)는 프로세서(222)의 제어에 따라, 외부의 호스트 장치와 통신하도록 구성된다. 호스트 인터페이스(225)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
버퍼 제어 회로(226)는 프로세서(222)의 제어에 따라, 버퍼 메모리(230)를 제어하도록 구성된다.
메모리 인터페이스(227)는 프로세서(222)의 제어에 따라, 불휘발성 메모리 장치(210)와 통신하도록 구성된다. 도 1을 참조하여 설명된 바와 같이, 메모리 인터페이스(227)는 입출력 채널을 통해 커맨드, 어드레스 및 데이터를 불휘발성 메모리 장치(210)와 통신할 수 있다. 메모리 인터페이스(227)는 제어 채널을 통해 제어 신호를 불휘발성 메모리 장치(210)와 통신할 수 있다.
예시적으로, 스토리지 장치(200)에 RAM (230)이 제공되지 않는 경우, 컨트롤러(220)에 버퍼 제어 회로(226)가 제공되지 않을 수 있다.
예시적으로, 프로세서(222)는 코드들을 이용하여 컨트롤러(220)를 제어할 수 있다. 프로세서(222)는 컨트롤러(220)의 내부에 제공되는 불휘발성 메모리 장치(예를 들어, Read Only Memory)로부터 코드들을 로드할 수 있다. 다른 예로서, 프로세서(222)는 불휘발성 메모리 장치(210)로부터 메모리 인터페이스(227)를 통해 코드들을 로드할 수 있다.
예시적으로, 컨트롤러(220)의 버스(221)는 제어 버스 및 데이터 버스로 구분될 수 있다. 데이터 버스는 컨트롤러(220) 내에서 데이터를 전송하고, 제어 버스는 컨트롤러(220) 내에서 커맨드, 어드레스와 같은 제어 정보를 전송하도록 구성될 수 있다. 데이터 버스와 제어 버스는 서로 분리되며, 상호 간에 간섭하거나 영향을 주지 않을 수 있다. 데이터 버스는 호스트 인터페이스(225), 버퍼 제어 회로(226), 에러 정정 블록(224) 및 메모리 인터페이스(227)에 연결될 수 있다. 제어 버스는 호스트 인터페이스(225), 프로세서(222), 버퍼 제어 회로(226), RAM (223) 및 메모리 인터페이스(227)에 연결될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
200; 스토리지 장치
BLK1~BLKz; 메모리 블록들
210; 불휘발성 메모리 장치
FTL; 플래시 변환 계층
RM; 리클레임 모듈
CNT; 카운터
220; 컨트롤러
230; 버퍼 메모리
MD; 사상 데이터
221; 버스
222; 프로세서
223; 랜덤 액세스 메모리
224; 에러 정정 블록
225; 호스트 인터페이스
226; 버퍼 제어 회로
227; 메모리 인터페이스

Claims (10)

  1. 복수의 메모리 블록들을 포함하고, 각 메모리 블록은 복수의 스트링 선택 라인들에 연결된 스트링 선택 트랜지스터들, 복수의 접지 선택 라인들에 연결된 접지 선택 트랜지스터들 및 복수의 워드 라인들에 연결된 메모리 셀들을 포함하는 불휘발성 메모리 장치; 그리고
    읽기 리클레임 동작 시에, 제1 메모리 블록의 유효 데이터 그룹들을 읽고 상기 읽혀진 유효 데이터 그룹들을 제2 메모리 블록에 기입하는 컨트롤러를 포함하고,
    상기 컨트롤러는 상기 제1 메모리 블록의 상기 유효 데이터 그룹들의 각각의 읽기 카운트를 카운트하도록 구성되고, 그리고
    상기 읽기 리클레임 동작 시에, 상기 컨트롤러는 상기 유효 데이터 그룹들의 각각의 읽기 카운트에 따라 상기 유효 데이터 그룹들을 상기 제2 메모리 블록에 기입하는 위치들을 재배치하는 스토리지 장치.
  2. 제1항에 있어서,
    상기 컨트롤러는 각 데이터 그룹에 대해 읽기 동작이 수행될 때, 해당 데이터 그룹의 읽기 카운트를 증가시키는 스토리지 장치.
  3. 제1항에 있어서,
    상기 컨트롤러는 상기 유효 데이터 그룹들을 상기 제2 메모리 블록에 기입한 후에 상기 읽기 카운트들을 리셋하는 스토리지 장치.
  4. 제1항에 있어서,
    상기 컨트롤러는 적어도 하나의 데이터 그룹의 읽기 카운트가 문턱 값보다 크면, 상기 적어도 하나의 데이터 그룹이 상기 제2 메모리 블록에서 읽기 동작 시에 발생하는 읽기 교란에 강건한(robust) 위치에 기입되도록 상기 유효 데이터 그룹들을 재배치하는 스토리지 장치.
  5. 제1항에 있어서,
    상기 컨트롤러는 각 메모리 블록의 메모리 셀들의 위치들에 따라 정해진 순서로 프로그램 동작을 수행하고, 그리고
    상기 컨트롤러는 상기 제1 메모리 블록의 상기 유효 데이터 그룹들을 미리 정해진 순서에 따라 순차적으로 읽고, 상기 읽혀진 유효 데이터 그룹들의 각각의 읽기 카운트가 문턱 값보다 큰지 판별하는 스토리지 장치.
  6. 제5항에 있어서,
    상기 컨트롤러는 상기 읽혀진 유효 데이터 그룹들 중 하나의 유효 데이터 그룹의 읽기 카운트가 상기 문턱 값 이하이면, 상기 하나의 유효 데이터 그룹을 상기 제2 메모리 블록의 현재 프로그램 위치에 프로그램하는 스토리지 장치.
  7. 제5항에 있어서,
    상기 컨트롤러는 상기 읽혀진 유효 데이터 그룹들 중 하나의 유효 데이터 그룹의 읽기 카운트가 상기 문턱 값보다 크면, 상기 제2 메모리 블록의 현재 프로그램 위치가 읽기 교란에 강건한 위치인지 판별하고, 그리고
    상기 현재 프로그램 위치가 상기 읽기 교란에 강건한 위치이면, 상기 컨트롤러는 상기 하나의 유효 데이터 그룹을 상기 현재 프로그램 위치에 프로그램하는 스토리지 장치.
  8. 제7항에 있어서,
    상기 현재 프로그램 위치가 상기 읽기 교란에 강건한 위치가 아니면, 상기 컨트롤러는 상기 하나의 유효 데이터 그룹의 프로그램을 연기하고, 그리고 상기 제1 메모리 블록의 유효 데이터 그룹들 중 다음 유효 데이터 그룹을 읽는 스토리지 장치.
  9. 제8항에 있어서,
    상기 현재 프로그램 위치가 상기 읽기 교란에 강건한 위치가 되면, 상기 컨트롤러는 상기 연기된 유효 데이터 그룹의 프로그램을 수행하는 스토리지 장치.
  10. 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치의 동작 방법에 있어서:
    상기 불휘발성 메모리 장치의 제1 메모리 블록에 기입된 데이터 그룹들의 각각의 읽기 횟수를 카운트하는 단계; 그리고
    읽기 리클레임 시에 상기 제1 메모리 블록에 기입된 상기 데이터 그룹들을 상기 불휘발성 메모리 장치의 제2 메모리 블록으로 복사하는 단계를 포함하고,
    상기 읽기 리클레임 시에, 상기 컨트롤러는 상기 데이터 그룹들의 각각의 읽기 카운트에 따라 상기 데이터 그룹들을 상기 제2 메모리 블록에 기입하는 위치들을 재배치하는 동작 방법.
KR1020160111905A 2016-08-31 2016-08-31 스토리지 장치 및 스토리지 장치의 동작 방법 KR102614083B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160111905A KR102614083B1 (ko) 2016-08-31 2016-08-31 스토리지 장치 및 스토리지 장치의 동작 방법
US15/690,328 US10114575B2 (en) 2016-08-31 2017-08-30 Storage device and operating method thereof
CN201710769968.4A CN107799142B (zh) 2016-08-31 2017-08-31 存储设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160111905A KR102614083B1 (ko) 2016-08-31 2016-08-31 스토리지 장치 및 스토리지 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20180025491A KR20180025491A (ko) 2018-03-09
KR102614083B1 true KR102614083B1 (ko) 2023-12-18

Family

ID=61242585

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160111905A KR102614083B1 (ko) 2016-08-31 2016-08-31 스토리지 장치 및 스토리지 장치의 동작 방법

Country Status (3)

Country Link
US (1) US10114575B2 (ko)
KR (1) KR102614083B1 (ko)
CN (1) CN107799142B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180076715A (ko) 2016-12-28 2018-07-06 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10685702B2 (en) * 2017-08-28 2020-06-16 Micron Technology, Inc. Memory array reset read operation
US10446243B2 (en) * 2017-12-18 2019-10-15 Macronix International Co., Ltd. Storage device and associated control method to determine target memory blocks for probe operation
KR20190083862A (ko) * 2018-01-05 2019-07-15 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20190088184A (ko) * 2018-01-18 2019-07-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102549548B1 (ko) * 2018-05-08 2023-06-30 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작 방법 및 전자 장치
US11030096B2 (en) * 2019-01-10 2021-06-08 Western Digital Technologies, Inc. Method of identifying and preparing a key block in a flash memory system and memory controller therefor
KR20200142724A (ko) * 2019-06-13 2020-12-23 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
US10950318B2 (en) * 2019-06-14 2021-03-16 Micron Technology, Inc. Memory proximity disturb management
KR20210001414A (ko) * 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
CN112951305A (zh) * 2019-12-10 2021-06-11 北京兆易创新科技股份有限公司 一种存储设备及其控制方法和控制装置
CN112068782B (zh) * 2020-09-17 2023-07-25 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226903A (ja) * 2006-02-23 2007-09-06 Sharp Corp 同期型メモリのコントロールシステム
JP2010157218A (ja) 2008-12-29 2010-07-15 John Rudelic 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置
US20160011996A1 (en) 2010-01-08 2016-01-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007047863A (ja) 2005-08-05 2007-02-22 Hitachi Ltd 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法
KR100855963B1 (ko) * 2006-10-31 2008-09-02 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의프로그램, 독출 및 소거 방법
JP2008181380A (ja) 2007-01-25 2008-08-07 Toshiba Corp メモリシステムおよびその制御方法
JP5661227B2 (ja) 2007-02-07 2015-01-28 株式会社メガチップス メモリコントローラ
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR20100102925A (ko) * 2009-03-12 2010-09-27 삼성전자주식회사 리드 리클레임 신호를 발생하는 불휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
US8189379B2 (en) 2009-08-12 2012-05-29 Texas Memory Systems, Inc. Reduction of read disturb errors in NAND FLASH memory
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8930778B2 (en) 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
CN104903842B (zh) * 2012-12-31 2018-08-14 桑迪士克科技有限责任公司 用于在非易失性存储器中的异步裸芯操作的方法和系统
US9552288B2 (en) 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US9558108B2 (en) 2013-04-15 2017-01-31 Macronix International Co., Ltd. Half block management for flash storage devices
US9244958B1 (en) 2013-06-13 2016-01-26 Amazon Technologies, Inc. Detecting and reconciling system resource metadata anomolies in a distributed storage system
KR20150075887A (ko) * 2013-12-26 2015-07-06 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
CN104934066B (zh) * 2014-03-19 2018-03-27 安华高科技通用Ip(新加坡)公司 Nand闪存中的读取干扰处理
KR102318561B1 (ko) * 2014-08-19 2021-11-01 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법
US9244858B1 (en) 2014-08-25 2016-01-26 Sandisk Technologies Inc. System and method of separating read intensive addresses from non-read intensive addresses
KR102128406B1 (ko) * 2014-09-26 2020-07-10 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102282947B1 (ko) * 2014-12-15 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102282962B1 (ko) * 2014-12-22 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226903A (ja) * 2006-02-23 2007-09-06 Sharp Corp 同期型メモリのコントロールシステム
JP2010157218A (ja) 2008-12-29 2010-07-15 John Rudelic 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置
US20160011996A1 (en) 2010-01-08 2016-01-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer

Also Published As

Publication number Publication date
CN107799142A (zh) 2018-03-13
US10114575B2 (en) 2018-10-30
CN107799142B (zh) 2023-09-26
KR20180025491A (ko) 2018-03-09
US20180059948A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
KR102614083B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR102606490B1 (ko) 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US10162748B2 (en) Prioritizing garbage collection and block allocation based on I/O history for logical address regions
CN106294215B (zh) 存储装置和操作存储装置的方法
US10146448B2 (en) Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114557B2 (en) Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9898207B2 (en) Storage device
US10656842B2 (en) Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
KR102501751B1 (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
EP3158454B1 (en) Sub-block garbage collection
US11287992B2 (en) Controller and storage device including controller and nonvolatile memory devices
US10656840B2 (en) Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9703491B2 (en) Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
KR102634700B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법
CN106971754B (zh) 非易失性存储器设备、包括其的存储装置和操作其的方法
US10372613B2 (en) Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10740244B2 (en) Memory system including a redirector for replacing a fail memory die with a spare memory die
KR20210068894A (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10121543B2 (en) Storage device including a nonvolatile memory device and a controller for controlling a write operation of the nonvolatile memory device and an operating method of the storage device
CN114489466A (zh) 存储器系统及其操作方法
CN111445939B (zh) 存储装置及其操作方法
US11561725B2 (en) System and operating method thereof
US11966608B2 (en) Memory controller with improved data reliability and memory system including the same
CN111580743B (zh) 存储器控制器及其操作方法
US11404137B1 (en) Memory system and operating method of memory system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant