KR101577721B1 - 메모리 시스템 및 그것의 리프레쉬 방법 - Google Patents

메모리 시스템 및 그것의 리프레쉬 방법

Info

Publication number
KR101577721B1
KR101577721B1 KR1020100066538A KR20100066538A KR101577721B1 KR 101577721 B1 KR101577721 B1 KR 101577721B1 KR 1020100066538 A KR1020100066538 A KR 1020100066538A KR 20100066538 A KR20100066538 A KR 20100066538A KR 101577721 B1 KR101577721 B1 KR 101577721B1
Authority
KR
South Korea
Prior art keywords
memory
refresh
group
groups
blocks
Prior art date
Application number
KR1020100066538A
Other languages
English (en)
Other versions
KR20120005856A (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 KR1020100066538A priority Critical patent/KR101577721B1/ko
Priority to US13/175,973 priority patent/US8675406B2/en
Publication of KR20120005856A publication Critical patent/KR20120005856A/ko
Priority to US14/176,303 priority patent/US9336889B2/en
Application granted granted Critical
Publication of KR101577721B1 publication Critical patent/KR101577721B1/ko
Priority to US15/095,183 priority patent/US9460800B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Abstract

본 발명은 메모리 시스템 및 그것의 리프레쉬 방법에 관한 것이다. 본 발명의 실시 예에 따른 메모리 시스템은 메모리 블록들을 각각 포함하는 제 1 및 제 2 불휘발성 메모리 장치; 그리고 상기 제 1 및 제 2 불휘발성 메모리 장치의 리프레쉬 동작을 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 제 1 및 제 2 불휘발성 메모리 장치에 포함된 메모리 블록들을 적어도 두 개의 메모리 그룹들로 그룹핑하고, 상기 적어도 두 개의 메모리 그룹들을 소정 순서에 따라 리프레쉬한다. 따라서, 본 발명의 실시 예에 따른 메모리 시스템은 데이터의 무결성을 보장할 수 있다.

Description

메모리 시스템 및 그것의 리프레쉬 방법{MEMORY SYSTEM AND REFRESH METHOD THEREOF}
본 발명은 메모리 시스템에 관한 것으로, 좀더 구체적으로는 리프레쉬 동작을 제공하는 메모리 시스템 및 그것의 리프레쉬 방법에 관한 것이다.
최근 디지털 카메라, MP3 플레이어, 핸드폰, PDA 등과 같은 휴대용 전자 장치가 많이 사용되고 있다. 이러한 휴대용 전자 장치에는 데이터를 저장하기 위한 메모리 시스템을 탑재한다. 예를 들어, 메모리 시스템은 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리 등을 포함한다. 휘발성 메모리는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다.
한편, 메모리 시스템의 신뢰성을 확보하기 위해서는, 메모리 시스템에 저장된 데이터에 대한 무결성이 보장되어야 한다. 즉, 메모리 시스템에 저장된 데이터는 시간의 흐름 등에 따라 변경되지 않아야 한다. 그러나, 일반적인 메모리 시스템의 경우, 반복적인 프로그램/소거 사이클의 수행 또는 프로그램 디스터브 스트레스 등과 같은 페일 매커니즘에 의하여 저장된 데이터가 변경될 수 있다.
본 발명의 목적은 저장된 데이터의 무결성을 보장하며 구현이 간단한 메모리 시스템 및 그것의 리프레쉬 방법을 제공하는 데 있다.
본 발명의 기술적 사상의 실시 예에 따른 메모리 시스템은 메모리 블록들을 각각 포함하는 적어도 한 개의 메모리 장치; 및 상기 적어도 한 개의 메모리 장치에 대한 리프레쉬 동작을 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 적어도 한 개의 메모리 장치에 포함된 메모리 블록들을 메모리 그룹들로 그룹핑하고, 상기 메모리 그룹들을 소정 순서에 따라 리프레쉬한다.
실시 예로서, 상기 메모리 컨트롤러는 서로 다른 메모리 장치에 포함된 메모리 블록들을 하나의 메모리 그룹으로 그룹핑한다.
실시 예로서, 상기 메모리 컨트롤러는 동일한 메모리 장치에 포함된 메모리 블록들을 하나의 메모리 그룹으로 그룹핑한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 메모리 그룹들의 리프레쉬 순서를 결정하는 리프레쉬 관리 모듈; 및 상기 리프레쉬 관리 모듈에 의하여 결정된 리프레쉬 순서와 리프레쉬된 메모리 그룹들 중 최후 리프레쉬 그룹의 어드레스를 저장하는 리프레쉬 레지스터를 포함한다.
실시 예로서, 리프레쉬 동작 시에, 상기 메모리 컨트롤러는 상기 리프레쉬 레지스터에 저장된 상기 리프레쉬 순서와 상기 최후 리프레쉬 그룹의 어드레스에 기초하여 타겟 메모리 그룹을 선택한다.
실시 예로서, 상기 메모리 컨트롤러는 리프레쉬 동작 시에 상기 타겟 메모리 그룹의 데이터를 저장하는 리프레쉬 메모리를 더 포함한다.
실시 예로서, 상기 리프레쉬 동작은 리프레쉬 주기마다 반복적으로 수행되는 것을 특징으로 한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 리프레쉬 주기를 결정하는 타임 컨트롤 유닛을 포함하며, 상기 타임 컨트롤 유닛은 상기 메모리 그룹들의 데이터 보유 임계 시간을 기초로 상기 리프레쉬 주기를 결정한다.
실시 예로서, 상기 리프레쉬 주기는 상기 메모리 그룹들의 데이터 보유 임계 시간과 상기 메모리 그룹들의 개수에 의하여 결정된다.
실시 예로서, 상기 리프레쉬 주기는 상기 메모리 그룹들의 데이터 보유 임계 시간, 상기 적어도 한 개의 메모리 장치에 포함된 메모리 블록들의 개수 및 상기 메모리 그룹들의 그룹핑 단위에 의하여 결정된다.
실시 예로서, 상기 타임 컨트롤 유닛은 최후 리프레쉬 완료시간과 현재시간의 시간 차가 상기 리프레쉬 주기보다 큰 경우에, 상기 리프레쉬 동작을 수행하기 위한 인터럽트 신호를 발생한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 최후 리프레쉬 완료시간과 상기 리프레쉬 주기를 저장하기 위한 타임 레지스터를 더 포함한다.
본 발명의 기술적 사상의 실시 예에 따른 제 1 및 제 2 불휘발성 메모리 장치에 연결된 메모리 컨트롤러는 상기 제 1 불휘발성 메모리 장치에 포함된 메모리 블록들 및 상기 제 2 불휘발성 메모리 장치에 포함된 메모리 블록들을 적어도 두 개의 메모리 그룹들로 그룹핑하는 리프레쉬 관리 모듈; 및 상기 적어도 두 개의 메모리 그룹들 및 각 메모리 그룹에 대응하는 메모리 블록들의 어드레스 정보를 저장하는 리프레쉬 레지스터를 포함하며, 상기 리프레쉬 관리 모듈은 상기 적어도 두 개의 메모리 그룹들의 리프레쉬 순서를 결정하고, 상기 리프레쉬 관리 모듈에 의하여 결정된 리프레쉬 순서는 상기 리프레쉬 레지스터에 저장된다.
실시 예로서, 상기 적어도 두 개의 메모리 그룹들은 상기 제 1 불휘발성 메모리 장치에 포함된 메모리 블록들 중 적어도 하나의 메모리 블록과 상기 제 2 불휘발성 메모리 장치에 포함된 메모리 블록들 중 적어도 하나의 메모리 블록을 각각 포함한다.
실시 예로서, 상기 적어도 두 개의 메모리 그룹들은 상기 제 1 불휘발성 메모리 장치에 포함된 메모리 그룹들로 구성된 제 1 메모리 그룹 및 상기 제 2 불휘발성 메모리 장치에 포함된 메모리 그룹들로 구성된 제 2 메모리 그룹을 포함한다.
실시 예로서, 상기 리프레쉬 동작은 리프레쉬 주기마다 반복적으로 수행되는 것을 특징으로 한다.
실시 예로서, 상기 리프레쉬 주기를 결정하기 위한 타임 컨트롤 유닛을 더 포함하며, 상기 타임 컨트롤 유닛은 상기 적어도 두 개의 메모리 그룹들의 데이터 보유 임계 시간을 기초로 상기 리프레쉬 주기를 결정한다.
실시 예로서, 상기 타임 컨트롤 유닛은 최후 리프레쉬 완료시간과 현재시간의 시간 차가 상기 리프레쉬 주기보다 큰 경우에, 상기 리프레쉬 동작을 수행하기 위한 인터럽트 신호를 발생한다.
실시 예로서, 상기 최후 리프레쉬 완료시간과 상기 리프레쉬 주기를 저장하기 위한 타임 레지스터를 더 포함한다.
실시 예로서, 상기 타임 레지스터에 저장된 상기 최후 리프레쉬 완료시간과 상기 리프레쉬 주기는 휴지 기간에 상기 제 1 또는 제 2 불휘발성 메모리 장치에 프로그램된다.
본 발명의 기술적 사상의 실시 예에 따른 적어도 하나의 메모리 장치를 포함하는 메모리 시스템의 리프레쉬 방법은 상기 적어도 하나의 메모리 장치에 포함된 메모리 블록들을 메모리 그룹들로 그룹핑하는 단계; 상기 메모리 그룹들의 리프레쉬 순서에 기초하여, 상기 메모리 블록들 중 타겟 메모리 그룹을 선택하는 단계; 상기 타겟 메모리 그룹의 데이터를 리프레쉬 레지스터에 저장하는 단계; 및 상기 리프레쉬 레지스터에 저장된 데이터를 상기 적어도 하나의 메모리 장치에 재-프로그램하는 단계를 포함한다.
실시 예로서, 상기 메모리 그룹들은 각각 서로 다른 메모리 장치의 메모리 블록을 포함하도록 그룹핑된다.
실시 예로서, 상기 메모리 그룹들은 각각 동일한 메모리 장치의 메모리 블록을 포함하도록 그룹핑된다.
실시 예로서, 상기 리프레쉬 레지스터에 저장된 데이터는 상기 타겟 메모리 그룹의 메모리 블록들에 재-프로그램된다.
실시 예로서, 상기 리프레쉬 레지스터에 저장된 데이터는 상기 타겟 메모리 그룹의 메모리 블록들과 다른 메모리 블록들에 재-프로그램된다.
실시 예로서, 상기 리프레쉬 레지스터는 상기 타겟 메모리 그룹의 메모리 장치와 다른 메모리 장치의 메모리 블록들에 재-프로그램된다.
실시 예로서, 상기 적어도 하나의 메모리 장치에 대한 리프레쉬 동작은 리프레쉬 주기마다 반복적으로 수행된다.
실시 예로서, 최후 리프레쉬 완료시간과 현재시간의 시간 차와 상기 리프레쉬 주기를 비교하는 단계를 더 포함한다.
실시 예로서, 상기 리프레쉬 주기는 상기 메모리 그룹들의 데이터 보유 임계 시간을 기초로 결정된다.
본 발명의 기술적 사상의 실시 예에 따른 메모리 시스템은 간단히 구현될 수 있음과 동시에 저장된 데이터의 무결성을 보장할 수 있다.
도 1은 일반적인 불휘발성 메모리 장치의 데이터 보유 특성을 보여주는 도면이다.
도 2는 본 발명의 제 1 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 3은 도 2의 메모리 셀 어레이를 좀더 자세히 보여주는 블록도이다.
도 4는 도 2의 메모리 시스템의 리프레쉬 동작의 제 1 실시 예를 설명하기 위한 도면이다.
도 5는 도 2의 메모리 시스템의 리프레쉬 동작의 제 2 실시 예를 설명하기 위한 도면이다.
도 6은 도 3 내지 도 5의 메모리 블록의 구성을 보여주는 블록도이다.
도 7은 도 2의 메모리 시스템의 리프레쉬 동작을 설명하기 위한 순서도이다.
도 8은 본 발명의 제 2 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 9 내지 도 11은 도 8의 메모리 시스템의 리프레쉬 동작의 제 1 실시 예를 설명하기 위한 도면들이다.
도 12 내지 도 14는 도 8의 메모리 시스템의 리프레쉬 동작의 제 2 실시 예를 설명하기 위한 도면이다.
도 15는 본 발명의 제 3 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 16 내지 도 18은 도 15의 메모리 시스템의 리프레쉬 동작의 제 1 실시 예를 설명하기 위한 도면들이다.
도 19 내지 도 21은 도 15의 메모리 시스템의 리프레쉬 동작의 제 2 실시 예를 설명하기 위한 도면이다.
도 22는 본 발명의 제 4 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 23은 도 22의 메모리 시스템의 리프레쉬 동작을 설명하기 위한 순서도이다.
도 24는 본 발명의 제 5 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 25는 본 발명의 실시 예에 따른 3차원 메모리 셀 어레이를 보여주는 회로도이다.
도 26은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 전자 장치를 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
도 1은 일반적인 불휘발성 메모리 장치의 데이터 보유 특성(data retension characteristics)을 보여주는 도면이다.
불휘발성 메모리 장치에 있어서, 데이터 보유 특성은 신뢰성의 측면에서 가장 중요한 관심사 중 하나이다. 불휘발성 메모리 장치의 신뢰성을 보장하기 위해서는, 불휘발성 메모리 장치에 저장된 데이터의 무결성이 보장되어야 한다. 그러나 프로그램 디스터브 또는 읽기 디스터브 등과 같은 다양한 페일 매커니즘에 의하여, 불휘발성 메모리 장치에 저장된 데이터의 무결성이 깨질 수 있다.
예를 들어, 플로팅 게이트를 사용하는 플래시 메모리 장치의 경우, 플로팅 게이트에 저장된 전자들은 시간이 지남에 따라 플로팅 게이트로부터 누설될 수 있다. 이는 문턱 전압의 감소를 야기한다. 다른 예로, 칼코겐 화합물을 사용하는 상 변화 메모리 장치의 경우, 프로그램 동작 시에 주울(Joule) 열이 발생할 수 있다. 이 경우, 프로그램될 메모리 셀에 인접한 메모리 셀은 주울 열에 의하여 영향을 받을 수 있다. 따라서 프로그램될 메모리 셀에 인접한 메모리 셀의 저항이 변할 수 있으며, 이는 문턱 전압의 감소를 야기할 수 있다.
결과적으로, 도 1에 점선으로 도시된 바와 같이, 메모리 셀들의 문턱 전압은 낮은 전압으로 이동될 수 있다. 그 결과, 프로그램 검증 전압보다 낮은 문턱 전압을 갖는 메모리 셀들이 발생할 수 있다. 이는 읽기 마진의 감소로 인한 읽기 페일이 발생할 수 있음을 의미한다.
상술한 문제점을 해결하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템은 메모리 그룹들에 대한 리프레쉬 동작을 제공한다. 메모리 그룹들을 리프레쉬함으로써, 본 발명의 실시 예에 따른 메모리 시스템은 저장된 데이터의 무결성을 보장할 수 있다.
또한, 본 발명의 실시 예에 따른 메모리 시스템은 메모리 그룹들을 정해진 순서에 따라 리프레쉬한다. 정해진 순서에 따라 메모리 그룹들을 리프레쉬함으로써, 본 발명의 실시 예에 따른 메모리 시스템은 펌웨어의 오버헤드가 작은 장점을 갖는다. 이하에서는 본 발명의 실시 예에 따른 메모리 시스템 및 리프레쉬 동작이 좀더 자세히 설명될 것이다.
도 2는 본 발명의 제 1 실시 예에 따른 메모리 시스템(100)을 보여주는 블록도이다. 도 2를 참조하면, 메모리 시스템(100)은 호스트(110), 메모리 컨트롤러(120), 그리고 불휘발성 메모리 장치(130)를 포함한다.
호스트(110)는 메모리 컨트롤러(120)에 연결된다. 호스트(110)는 메모리 컨트롤러(120)를 통하여 불휘발성 메모리 장치(130)에 저장된 데이터를 읽거나, 불휘발성 메모리 장치(130)에 데이터를 프로그램한다.
메모리 컨트롤러(120)는 호스트(110) 및 불휘발성 메모리 장치(130)에 연결된다. 메모리 컨트롤러(120)는 리프레쉬 관리 모듈(121, Refresh Manage Module, 이하 RMM), 리프레쉬 레지스터(122), 리프레쉬 메모리(123), 그리고 버퍼 메모리(124)를 포함한다. 메모리 컨트롤러(120)는 리프레쉬 관리 모듈(121), 리프레쉬 레지스터(122), 그리고 리프레쉬 메모리(123)을 이용하여 리프레쉬 동작을 수행한다.
리프레쉬 관리 모듈(121)은 메모리 셀 어레이(131)의 메모리 블록들을 메모리 그룹(Memory Group, MG)으로 그룹핑(Grouping)한다. 여기서, 메모리 그룹(MG)은 한 번의 리프레쉬 동작 시에 리프레쉬되는 메모리 블록들의 집합을 의미한다.
예를 들어, 리프레쉬 관리 모듈(121)은 메모리 셀 어레이(131)의 메모리 블록들을 두 개 또는 그 이상의 메모리 그룹들로 그룹핑할 것이다. 하나의 메모리 그룹은 하나의 메모리 블록을 포함할 수 있다. 하나의 메모리 그룹은 두 개 또는 그 이상의 메모리 블록들을 포함할 수 있다.
또한, 리프레쉬 관리 모듈(121)은 메모리 그룹들의 리프레쉬 순서를 결정한다. 메모리 그룹들은 리프레쉬 관리 모듈(121)에 의하여 정해진 순서에 따라 리프레쉬된다. 각 메모리 그룹(MG)에 포함된 메모리 블록의 개수 및 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다.
리프레쉬 레지스터(122)는 메모리 그룹들 및 각 메모리 그룹에 대응하는 메모리 블록들의 어드레스 정보를 저장한다. 리프레쉬 레지스터(122)는 리프레쉬 관리 모듈(121)에 의하여 결정된 리프레쉬 순서에 대한 정보를 저장한다.
또한, 리프레쉬 레지스터(122)는 최후 리프레쉬 그룹의 어드레스 정보를 저장한다. 여기서, 최후 리프레쉬 그룹은 이전에 리프레쉬된 메모리 그룹들 중 가장 늦게 리프레쉬된 메모리 그룹을 의미한다.
리프레쉬 동작이 수행되는 경우, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)를 체크하여 리프레쉬될 메모리 그룹을 결정한다. 즉, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)에 저장된 리프레쉬 순서 및 최후 리프레쉬 그룹의 어드레스 정보를 기초로 리프레쉬 될 메모리 그룹을 결정한다. 여기서, 리프레쉬될 메모리 그룹은 타겟(target) 메모리 그룹이라 칭해질 수 있다.
리프레쉬 메모리(123)는 타겟 메모리 그룹의 데이터를 임시로 저장한다. 예를 들어, 리프레쉬 동작이 수행되는 경우, 타겟 메모리 그룹의 데이터는 메모리 셀 어레이(131)로부터 리프레쉬 메모리(123)로 로드(load)될 것이다. 타겟 메모리 그룹에 대한 소거 동작이 수행된 이 후, 리프레쉬 메모리(123)에 저장된 데이터는 메모리 셀 어레이(131)에 재-프로그램(re-program)될 것이다.
버퍼 메모리(124)는 호스트(110)로부터 전달받은 데이터를 임시로 저장한다. 이 경우, 버퍼 메모리(124)에 저장된 데이터는 쓰기 동작 시에 메모리 셀 어레이(131)에 프로그램될 것이다. 또한, 버퍼 메모리(124)는 읽기 동작 시에 불휘발성 메모리 장치(130)로부터 전달받은 데이터를 임시로 저장한다. 이 경우, 버퍼 메모리(124)에 저장된 데이터는 호스트(110)에 전달될 것이다.
계속해서 도 2를 참조하면, 불휘발성 메모리 장치(130)는 메모리 컨트롤러(120)에 연결된다. 불휘발성 메모리 장치(130)는 메모리 셀 어레이(131), 어드레스 디코더(132), 비트 라인 선택 회로(133), 입출력 회로(134), 그리고 제어 로직(135)을 포함한다.
메모리 셀 어레이(131)는 복수의 메모리 블록들을 포함한다. 메모리 블록들은 리프레쉬 관리 모듈(121)에 의하여 메모리 그룹으로 그룹핑된다. 메모리 그룹들은 리프레쉬 관리 모듈(121)에 의하여 정해진 순서에 따라 순차적으로 리프레쉬된다. 메모리 셀 어레이(131)는 이하의 도 3에서 좀더 자세히 설명될 것이다.
어드레스 디코더(132)는 워드 라인을 통하여 메모리 셀 어레이(131)에 연결된다. 어드레스 디코더(132)는 메모리 컨트롤러(120)로부터 행 어드레스 및 열 어드레스를 전달받을 것이다. 어드레스 디코더(132)는 행 어드레스를 디코딩하고, 디코딩된 행 어드레스에 응답하여 메모리 셀 어레이(131)의 워드 라인(WL)을 선택할 것이다. 어드레스 디코더(132)는 열 어드레스를 디코딩하고, 디코딩된 열 어드레스에 응답하여, 비트 라인 선택 회로(133)를 제어할 것이다.
비트 라인 선택 회로(133)는 비트 라인들(BL)을 통해 메모리 셀 어레이(131)에 연결된다. 비트 라인 선택 회로(133)는 어드레스 디코더(132)의 제어에 응답하여 비트 라인을 선택할 것이다. 리프레쉬 동작이 수행되는 경우에, 비트 라인 선택 회로(133)는 타겟 메모리 그룹에 대응하는 비트 라인을 선택할 것이다.
입출력 회로(134)는 비트 라인 선택 회로(133)에 연결된다. 리프레쉬 동작이 수행되는 경우, 타겟 메모리 그룹에 저장된 데이터는 비트 라인 선택 회로(133) 및 입출력 회로(134)를 통하여 리프레쉬 메모리(123)에 로드(load)될 것이다. 타겟 메모리 그룹에 대한 소거 동작이 수행된 이 후, 리프레쉬 메모리(123)에 저장된 데이터는 입출력 회로(134) 및 비트 라인 선택 회로(133)를 통하여 메모리 셀 어레이(131)에 재-프로그램(re-program)될 것이다. 한편, 제어 로직(135)은 불휘발성 메모리 장치(130)의 전반적인 동작을 제어한다.
도 3은 도 2의 메모리 셀 어레이(131)를 좀더 자세히 보여주는 블록도이다. 설명의 편의상, 도 3에서는 제 1 플래인(PL 1)에 속하는 메모리 블록들(BLK_1~BLK_k) 및 제 2 플래인(PL 2)에 속하는 메모리 블록들(BLK_k+1~BLK_l)에 데이터가 프로그램(음영으로 표시됨)되어 있다고 가정된다.
도 3을 참조하면, 메모리 셀 어레이(131)는 복수의 메모리 블록들을 포함한다. 각각의 메모리 블록은 데이터를 저장하기 위한 복수의 메모리 셀들을 포함한다. 각각의 메모리 셀은 한 비트의 데이터 또는 두 비트 이상의 데이터를 저장할 수 있다. 하나의 메모리 셀에 한 비트의 데이터를 저장하는 메모리 셀은 싱글 레벨 셀(SLC, Single Level Cell)이라 칭해질 수 있다. 하나의 메모리 셀에 두 비트 이상의 데이터를 저장하는 메모리 셀은 멀티 레벨 셀(MLC, Multi Level Cell)이라 칭해질 수 있다.
이 경우, 메모리 셀들은 플로팅 게이트 기술을 사용하는 플래시 메모리(Flash Memory)일 수 있다. 메모리 셀들은 인가되는 온도에 따라 저항이 가변되는 상 변화 메모리(PRAM)일 수 있다. 메모리 셀들은 강유전체 메모리(FRAM)일 수 있다. 메모리 셀들은 자기 랜덤 액세스 메모리(MRAM)일 수 있다. 메모리 셀들은 저항 메모리(RRAM)일 수 있다.
메모리 블록들은 리프레쉬 관리 모듈(121)에 의하여 그룹핑된다. 예를 들어, 도 3에서 도시된 바와 같이, 행 방향의 두 개의 메모리 블록들이 하나의 메모리 그룹으로 그룹핑될 수 있다. 즉, 제 1 블록(BLK_1) 및 제 k+1 블록(BLK_k+1)은 제 1 메모리 그룹(MG_1)으로 그룹핑될 수 있다. 제 2 블록(BLK_2) 및 제 k+2 블록(BLK_k+2)은 제 2 메모리 그룹(MG_2)으로 그룹핑될 수 있다. 마찬가지로, 제 k 블록(BLK_k) 및 제 l 블록(BLK_l)은 제 k 메모리 그룹(MG_k)으로 그룹핑될 수 있다.
다만, 이는 예시적인 것이며, 각 메모리 그룹에 포함되는 메모리 블록의 개수 및 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다. 예를 들어, 메모리 블록들은 열 방향으로 그룹핑될 수 있다. 또한, 세 개 또는 그 이상의 메모리 블록들이 하나의 메모리 그룹으로 그룹핑될 수 있다. 또한, 하나의 메모리 블록이 하나의 메모리 그룹일 수 있다. 리프레쉬 정책은 불휘발성 메모리 장치의 소거 단위 등의 특성을 고려하여 다양하게 책정될 수 있다.
도 4는 도 2의 메모리 시스템(100)의 리프레쉬 동작의 제 1 실시 예를 설명하기 위한 도면이다. 설명의 편의상, 도 4에서는 도 3과 마찬가지로 제 1 플레인(PL 1)에 속하는 메모리 블록들(BLK1 내지 BLK_k) 및 제 2 플래인(PL 2)에 속하는 메모리 블록들(BLK_k+1 내지 BLK_l)에 데이터가 저장되어 있다고 가정된다. 또한, 도 4의 메모리 블록들은 도 3과 동일한 방법으로 그룹핑되어 있다고 가정된다.
도 2 및 4를 참조하면, 리프레쉬 관리 모듈(121)에 의하여, 제 1 블록(BLK_1) 및 제 k+1 블록(BLK_k+1)은 제 1 메모리 그룹(MG 1)으로 그룹핑된다. 제 2 블록(BLK_2) 및 제 k+2 블록(BLK_k+2)은 제 2 메모리 그룹(MG 2)으로 그룹핑된다. 마찬가지로, 제 k 블록(BLK_k) 및 제 l 블록(BLK_l)은 제 k 메모리 그룹(MG k)으로 그룹핑된다. 이 경우, 메모리 그룹들 및 각 메모리 그룹에 대응하는 메모리 블록들의 어드레스 정보는 리프레쉬 레지스터(122)에 저장된다.
또한, 리프레쉬 관리 모듈(121)에 의하여, 제 1 내지 제 k 메모리 그룹(MG 1-MG k)의 리프레쉬 순서(Refresh Sequence)가 결정된다. 예를 들어, 도 4에서는 제 1 내지 제 k 메모리 그룹(MG 1~MG k)이 순차적으로 리프레쉬된다고 가정된다. 이 경우, 리프레쉬 순서는 리프레쉬 레지스터(122)에 저장된다.
예를 들어, 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 요청이 있다고 가정된다. 이 경우, 제 1 메모리 그룹(MG 1)에 저장된 데이터는 비트 라인 선택 회로(133) 및 입출력 회로(134)를 통하여 리프레쉬 메모리(123)에 로드(load)된다. 이 후, 제 1 메모리 그룹(MG 1)에 대한 소거 동작이 수행된다. 소거 동작이 수행된 이 후, 리프레쉬 메모리(123)에 저장된 데이터는 제 1 리프레쉬 그룹(RG 1)에 재-프로그램(re-program)된다. 이 경우, 리프레쉬 레지스터(122)에는 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음이 저장된다. 즉, 리프레쉬 레지스터(122)에는 최후 리프레쉬 그룹이 제 1 메모리 그룹(MG 1)임이 저장된다.
이 후에 리프레쉬 동작의 요청이 있는 경우, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)에 저장된 리프레쉬 정보를 확인한다. 즉, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)를 체크하여, 메모리 그룹들의 리프레쉬 순서를 확인한다. 또한, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)를 체크하여, 최후 리프레쉬 그룹이 제 1 메모리 그룹(MG 1)임을 확인한다. 따라서, 이 경우, 메모리 컨트롤러(120)는 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작을 제어한다.
제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작은 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다. 또한, 같은 방법으로, 메모리 컨트롤러(120)는 모든 메모리 그룹들을 리프레쉬 순서에 따라 리프레쉬할 수 있다.
한편, 통상의 프로그램 동작 및 머지 동작(merge operation) 등에 의하여, 메모리 셀 어레이(131)에는 새로운 데이터 블록들이 생성될 수 있다. 이 경우, 리프레쉬 관리 모듈(121)은 새로운 데이터 블록들을 그룹핑하여, 새로운 메모리 그룹을 생성할 수 있다. 예를 들어, 리프레쉬 관리 모듈(121)은 제 k+1 메모리 그룹(미도시)을 생성할 수 있다. 이 경우, 새로운 메모리 그룹 및 이에 대응하는 데이터 블록의 어드레스 정보는 리프레쉬 레지스터(122)에 업데이트될 것이다.
또한, 리프레쉬 관리 모듈(121)은 새로운 메모리 그룹을 포함하여 리프레쉬 순서를 다시 결정할 수 있다. 예를 들어, 제 k+1 메모리 그룹은 k+1 번째로 리프레쉬될 수 있다. 이 경우, 새로운 메모리 그룹을 포함하는 리프레쉬 순서는 리프레쉬 레지스터(122)에 업데이트될 것이다.
상술한 바와 같이, 도 2의 메모리 시스템(100)은 메모리 블록들을 메모리 그룹으로 그룹핑하고, 그룹핑된 메모리 그룹들을 리프레쉬한다. 메모리 그룹들을 리프레쉬함으로써, 도 2의 메모리 시스템(100)은 저장된 데이터에 대한 무결성을 보장할 수 있다. 또한, 도 2의 메모리 시스템은 메모리 그룹들을 정해진 순서에 따라 리프레쉬한다. 정해진 순서에 따라 메모리 그룹들을 리프레쉬함으로써, 도 2의 메모리 시스템(100)은 구현이 간단하며 펌웨어의 오버헤드가 작은 장점을 갖는다.
한편, 도 4에서는 리프레쉬 동작이 수행되는 경우에, 리프레쉬 메모리에 저장된 데이터가 리프레쉬 그룹(RG)에 재-프로그램되는 것으로 설명된다. 즉, 타겟 메모리 그룹의 데이터는 타겟 메모리 블록들과 다른 메모리 블록들에 재-프로그램되는 것으로 설명된다.
다만, 이는 예시적인 것으로 이해되어야 할 것이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 타겟 메모리 그룹의 데이터는 다시 타겟 메모리 그룹에 재-프로그램될 수 있다. 이는 이하의 도 5에서 좀더 자세히 설명될 것이다.
도 5는 도 2의 메모리 시스템(100)의 리프레쉬 동작의 제 2 실시 예를 설명하기 위한 도면이다. 도 5의 리프레쉬 동작은 도 4에서 설명된 리프레쉬 동작과 유사하다. 따라서, 이하에서는 도 4의 리프레쉬 동작과의 차이점이 중점적으로 설명될 것이다.
도 5를 참조하면, 제 1 내지 제 k 메모리 그룹들(MG 1-MG k)이 순차적으로 리프레쉬된다고 가정된다. 이 경우, 도 4와 달리, 제 1 내지 제 k 메모리 그룹들(MG 1-MG k)에 저장된 데이터는 각각 동일한 메모리 그룹들(즉, 제 1 내지 제 k 메모리 그룹들)에 재-프로그램(re-program)된다. 즉, 타겟 메모리 그룹의 데이터는 타겟 메모리 그룹에 재-프로그램된다.
자세히 설명하면, 예를 들어, 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 요청이 있다고 가정된다. 이 경우, 제 1 메모리 그룹(MG 1)에 저장된 데이터는 비트 라인 선택 회로(133) 및 입출력 회로(134)를 통하여 리프레쉬 메모리(123)에 로드(load)된다. 이 후, 제 1 메모리 그룹(MG 1)에 대한 소거 동작이 수행된다. 이 후, 리프레쉬 메모리(123)에 저장된 데이터는 입출력 회로(134) 및 비트 라인 선택 회로(133)를 통하여 제 1 메모리 그룹(MG 1)에 재-프로그램(re-program)된다.
한편, 제 2 내지 제 k 메모리 그룹(MG 2-MG k)에 대한 리프레쉬 동작은 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
도 4 및 도 5에서 설명된 바와 같이, 타겟 메모리 그룹의 데이터는 타겟 메모리 그룹과 다른 메모리 블록들에 재-프로그램될 수 있다. 또는, 타겟 메모리 그룹의 데이터는 다시 타겟 메모리 그룹에 재-프로그램될 수 있다. 이는 메모리 블록들의 웨어 레벨링(wear leveling) 등을 고려하여 선택될 수 있다.
한편, 도 3 내지 도 5에 도시된 메모리 블록은 유효 데이터와 무효 데이터를 동시에 포함할 수 있다. 리프레쉬 동작을 좀더 빠르게 수행하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템은 유효 데이터에 대하여만 리프레쉬 동작을 수행할 수 있다. 이는 이하의 도 6에서 좀더 자세히 설명될 것이다.
도 6은 도 3 내지 도 5의 메모리 블록의 구성을 보여주는 블록도이다. 예시적으로, 도 6에서는 제 2 메모리 블록(BLK_2)의 구성이 도시되어 있다. 설명의 편의상, 제 2 메모리 블록(BLK 2)은 4 개의 페이지(page)를 포함한다고 가정된다.
도 6을 참조하면, 제 2 메모리 블록(BLK_2)은 유효(valid) 페이지, 무효(invalid) 페이지 및 엠티(empty) 페이지를 포함한다. 여기서, 유효 페이지는 유효 데이터가 프로그램된 페이지를 의미한다. 무효 페이지는 무효 데이터가 프로그램된 페이지을 의미한다. 엠티 페이지는 데이터가 프로그램되지 않은 페이지을 의미한다.
간략한 설명을 위하여, 제 2 메모리 블록(BLK_2)을 포함하는 메모리 그룹에 대한 리프레쉬 요청이 있다고 가정된다. 제 2 메모리 블록(BLK_2)에 대한 리프레쉬 요청이 있는 경우, 제 2 메모리 블록(BLK_2)에 저장된 데이터는 리프레쉬 메모리(123)로 로드(load)된다.
이 경우, 제 2 메모리 블록(BLK_2)에 저장된 데이터 중 유효 페이지에 저장된 유효 데이터만 리프레쉬 메모리(123)로 로드된다. 예를 들어, 플래시 메모리 장치의 경우, 메모리 컨트롤러(120)는 맵핑 테이블(Mapping table)을 참조하여, 유효 페이지를 판별할 수 있다.
유효 데이터가 리프레쉬 메모리(123)에 로드된 이 후, 제 2 메모리 블록(BLK_2)에 대한 소거 동작이 수행된다. 이 후, 리프레쉬 메모리(123)에 저장된 유효 데이터가 메모리 셀 어레이(131)에 재-프로그램된다.
도 6에서 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 유효 데이터에 대하여만 리프레쉬 동작을 수행할 수 있다. 유효 데이터에 대하여만 리프레쉬 동작을 수행함으로써, 본 발명의 실시 예에 따른 메모리 시스템은 리프레쉬 동작을 좀더 빠르게 수행할 수 있다.
다만, 이는 예시적인 것으로 이해되어야 할 것이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 본 발명의 실시 예에 따른 메모리 시스템은 유효 데이터뿐 및 무효 데이터에 대하여 리프레쉬 동작을 수행할 수 있을 것이다.
도 7은 도 2의 메모리 시스템(100)의 리프레쉬 동작을 설명하기 위한 순서도이다.
S110 단계에서, 리프레쉬 관리 모듈(121)은 메모리 블록들을 메모리 그룹(MG)들로 그룹핑한다. 또한, 리프레쉬 관리 모듈(121)은 메모리 그룹들의 리프레쉬 순서를 결정한다. 메모리 그룹들의 어드레스 정보 및 리프레쉬 순서는 리프레쉬 레지스터(122)에 저장된다.
S120 단계에서, 파워-업(Power-Up)되거나 리프레쉬 명령(Refresh Command)이 인가된다. 예를 들어, 리프레쉬 동작은 파워-업이 될 때마다 수행될 것이다. 다른 예로, 리프레쉬 동작은 리프레쉬 명령에 응답하여 수행될 것이다.
S130 단계에서, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)에 저장된 리프레쉬 순서를 확인한다. 구체적으로, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)에 저장된 리프레쉬 그룹들의 리프레쉬 순서를 확인할 것이다. 또한, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)에 저장된 메모리 그룹들의 어드레스 정보 및 최후 리프레쉬 그룹의 어드레스 정보를 확인할 것이다. 여기서, 최후 리프레쉬 그룹은 리프레쉬 동작이 수행된 메모리 그룹들 중 가장 늦게 리프레쉬된 메모리 그룹을 의미한다.
S140 단계에서, 메모리 컨트롤러(120)는 리프레쉬 순서에 기초하여 타겟 메모리 그룹을 선택한다. 예를 들어, 도 3을 참조하면, 제 1 메모리 그룹(MG 1)부터 제 k 메모리 그룹(MG k)으로 순차적으로 리프레쉬 된다고 가정된다. 또한, 최후 리프레쉬 그룹은 제 1 메모리 그룹(MG 1)이라고 가정된다. 이 경우, 메모리 컨트롤러(120)는 제 2 메모리 그룹(MG 2)을 타겟 메모리 그룹으로 선택할 것이다.
S150 단계에서, 타겟 메모리 그룹에 저장된 데이터가 리프레쉬 메모리(123)로 로드(load)된다. 예를 들어, 제 2 메모리 그룹(MG 2)이 타겟 메모리 그룹인 경우, 제 2 메모리 그룹(MG 2)에 저장된 데이터는 비트 라인 선택 회로(133) 및 입출력 회로(134)를 통하여 리프레쉬 메모리(123)에 저장될 것이다. 이 경우, 예를 들어 도 6에서 설명된 바와 같이, 타겟 메모리 그룹에 저장된 데이터 중 유효 데이터만 리프레쉬 메모리(123)에 로드될 수 있다.
S160 단계에서, 타겟 메모리 그룹에 대한 소거 동작이 수행된다. 예를 들어, 제 2 메모리 그룹(MG 2)이 타겟 메모리 그룹인 경우, 제 2 메모리 그룹(MG2)에 저장된 데이터는 소거될 것이다.
S170 단계에서, 리프레쉬 메모리(123)에 저장된 데이터가 메모리 셀 어레이(131)에 재-프로그램(re-program)된다. 예를 들어, 제 2 메모리 그룹(MG 2)이 타겟 메모리 그룹인 경우, 리프레쉬 메모리(123)에 저장된 데이터는 입출력 회로(134) 및 비트 라인 선택 회로(133)를 통하여 메모리 셀 어레이(131)에 재-프로그램될 것이다.
이 경우, 예를 들어 도 4에서 설명된 바와 같이, 리프레쉬 메모리(123)에 저장된 데이터는 타겟 메모리 그룹과 다른 메모리 블록들에 재-프로그램될 수 있다. 다른 예로 도 5에서 설명된 바와 같이, 리프레쉬 메모리(123)에 저장된 데이터는 타겟 메모리 그룹에 다시 재-프로그램될 수 있다.
S180 단계에서, 리프레쉬 레지스터(122)에 저장된 리프레쉬 정보가 업데이트된다. 예를 들어, 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작이 완료된 경우, 리프레쉬 레지스터(122)는 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작이 완료되었음을 저장할 것이다. 따라서, 이 후에 리프레쉬 동작이 요청되는 경우, 메모리 컨트롤러(120)는 리프레쉬 레지스터(122)를 확인하여 제 3 메모리 그룹(MG 3)에 대한 리프레쉬 동작을 수행할 것이다.
상술한 방법에 의하여, 본 발명의 실시 예에 따른 메모리 시스템은 데이터가 저장된 모든 메모리 그룹을 리프레쉬한다. 따라서, 본 발명의 기술적 사상의 메모리 시스템은 저장된 데이터의 무결성을 보장할 수 있다.
또한, 이 경우, 메모리 그룹들은 리프레쉬 관리 모듈에 의하여 정해진 순서에 따라 순차적으로 리프레쉬된다. 따라서, 본 발명의 기술적 사상의 메모리 시스템은 펌웨어의 오버헤드를 작게 할 수 있다. 또한, 유효 데이터에 대하여 리프레쉬 동작을 수행함으로써, 본 발명의 기술적 사상의 메모리 시스템은 리프레쉬 동작을 좀더 빠르게 수행할 수 있다.
한편, 도 2 내지 도 7에서는 메모리 시스템이 하나의 불휘발성 메모리 장치를 포함하는 경우가 설명되었다. 다만, 이는 예시적인 것으로, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 본 발명의 실시 예에 따른 메모리 시스템은 두 개 또는 그 이상의 불휘발성 메모리 장치를 포함할 수 있다. 이하의 도 8 내지 도 21에서는 두 개 또는 그 이상의 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 리프레쉬 동작이 자세히 설명될 것이다.
도 8은 본 발명의 기술적 사상의 제 2 실시 예에 따른 메모리 시스템(200)을 보여주는 블록도이다. 도 8을 참조하면, 메모리 시스템(200)은 호스트(210), 메모리 컨트롤러(220), 제 1 불휘발성 메모리 장치(230), 그리고 제 2 불휘발성 메모리 장치(240)를 포함한다. 도 8의 메모리 시스템(200)은 도 2의 메모리 시스템(100)과 유사하다. 따라서, 이하에서는 도 2의 메모리 시스템(100)과의 차이점이 중점적으로 설명될 것이다.
호스트(210)는 메모리 컨트롤러(220)에 연결된다. 호스트(220)의 동작은 도 2의 호스트(110)와 유사하므로, 자세한 설명은 생략된다.
메모리 컨트롤러(220)는 호스트(210), 제 1 불휘발성 메모리(230), 그리고 제 2 불휘발성 메모리(240)에 연결된다. 메모리 컨트롤러(220)는 리프레쉬 관리 모듈(221), 리프레쉬 레지스터(222), 리프레쉬 메모리(223), 그리고 버퍼 메모리(224)를 포함한다. 메모리 컨트롤러(220)는 리프레쉬 관리 모듈(221), 리프레쉬 레지스터(222), 그리고 리프레쉬 메모리(223)를 이용하여 리프레쉬 동작을 수행한다.
리프레쉬 관리 모듈(221)은 제 1 불휘발성 메모리 장치(230)의 메모리 셀 어레이의 메모리 블록들 및 제 2 불휘발성 메모리 장치(240)의 메모리 셀 어레이의 메모리 블록들을 메모리 그룹(MG)으로 그룹핑(Grouping)한다. 이 경우, 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다.
예를 들어, 하나의 메모리 그룹은 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑될 수 있다. 이는 이하의 도 9 내지 도 11에서 좀더 자세히 설명될 것이다. 다른 예로, 하나의 메모리 그룹은 서로 다른 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑될 수 있다. 이는 이하의 도 12 내지 도 14에서 좀더 자세히 설명될 것이다.
또한, 리프레쉬 관리 모듈(221)은 메모리 그룹들의 리프레쉬 순서를 결정한다. 이는 도 2에서 설명된 리프레쉬 관리 모듈(221)의 동작과 유사하므로, 자세한 설명은 생략된다.
리프레쉬 레지스터(222)는 메모리 그룹들 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보를 저장한다. 또한, 리프레쉬 레지스터(222)는 리프레쉬 순서 및 최후에 리프레쉬된 메모리 그룹의 어드레스 정보를 저장한다. 리프레쉬 레지스터(222)의 동작은 도 2의 리프레쉬 레지스터(122)와 유사하므로, 자세한 설명은 생략된다.
리프레쉬 메모리(223)는 타겟 메모리 그룹의 데이터를 임시로 저장한다. 여기서, 타겟 메모리 그룹은 리프레쉬 동작 시에, 리프레쉬될 메모리 그룹을 의미한다.
예를 들어, 타겟 메모리 그룹의 메모리 블록들이 제 1 불휘발성 메모리 장치(230)의 메모리 블록들인 경우, 타겟 메모리 그룹의 데이터는 제 1 불휘발성 메모리 장치(230)로부터 리프레쉬 메모리(223)에 로드(load)될 것이다. 다른 예로, 타겟 메모리 그룹의 메모리 블록들이 제 2 불휘발성 메모리 장치(240)의 메모리 블록들인 경우, 타겟 메모리 그룹의 데이터는 제 2 불휘발성 메모리 장치(240)로부터 리프레쉬 메모리(223)에 로드(load)될 것이다. 다른 예로, 타겟 메모리 그룹의 메모리 블록들이 제 1 및 제 2 불휘발성 메모리 장치(230, 240)의 메모리 블록인 경우, 타겟 메모리 그룹의 데이터는 제 1 및 제 2 불휘발성 메모리 장치(230, 240)로부터 리프레쉬 메모리(223)에 각각 로드(load)될 것이다.
버퍼 메모리(224)는 호스트(210) 또는 제 1 및 제 2 불휘발성 메모리 장치(230, 240)로부터 전달받은 데이터를 임시로 저장한다. 버퍼 메모리(224)의 동작은 도 2의 버퍼 메모리(124)와 유사하므로, 자세한 설명은 생략된다.
계속해서 도 8을 참조하면, 제 1 불휘발성 메모리 장치(230) 및 제 2 불휘발성 메모리 장치(240)는 메모리 컨트롤러(220)에 연결된다. 이 경우, 제 1 불휘발성 메모리 장치(230), 및 제 2 불휘발성 메모리 장치(240)의 구성은 도 2의 불휘발성 메모리 장치(130)와 유사하므로, 자세한 설명은 생략된다.
이하의 도 9 내지 도 14에서는 도 8의 메모리 시스템(200)의 리프레쉬 동작이 좀더 자세히 설명될 것이다.
도 9 내지 도 11은 도 8의 메모리 시스템(200)의 리프레쉬 동작의 제 1 실시 예를 설명하기 위한 도면들이다. 도 9 내지 도 11에서는 하나의 메모리 그룹이 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑되는 경우가 예시적으로 도시되어 있다.
도 9를 참조하면, 제 1 불휘발성 메모리 장치(230) 및 제 2 불휘발성 메모리 장치(240)의 메모리 블록들이 도시되어 있다. 설명의 편의상, 제 1 불휘발성 메모리 장치(230)의 제 1, 2, k+1, 그리고 k+2 메모리 블록들(BLK_1, BLK_2, BLK_k+1, BLK_k+2)에 데이터가 프로그램(음영으로 표시됨)되어 있다고 가정된다. 또한, 제 2 불휘발성 메모리 장치(230)의 제 1, 2, k+1, 그리고 k+2 메모리 블록들(BLK_1, BLK_2, BLK_k+1, BLK_k+2)에 데이터가 프로그램되어 있다고 가정된다.
제 1 불휘발성 메모리 장치(230)의 메모리 블록들 및 제 2 불휘발성 메모리 장치(240)의 메모리 블록들은 리프레쉬 관리 모듈(221)에 의하여 그룹핑된다. 예를 들어, 도 9에 도시된 바와 같이, 하나의 메모리 그룹은 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑될 수 있다.
즉, 제 1 불휘발성 메모리 장치(230)의 제 1 메모리 블록(BLK_1) 및 제 k+1 메모리 블록(BLK_k+1)은 제 1 메모리 그룹(MG 1)으로 그룹핑될 수 있다. 제 1 불휘발성 메모리 장치(230)의 제 2 메모리 블록(BLK_2) 및 제 k+2 메모리 블록(BLK_k+2)은 제 2 메모리 그룹(MG 2)으로 그룹핑될 수 있다. 제 2 불휘발성 메모리 장치(240)의 제 1 메모리 블록(BLK_1) 및 제 k+1 메모리 블록(BLK_k+1)은 제 3 메모리 그룹(MG 3)으로 그룹핑될 수 있다. 제 2 불휘발성 메모리 장치(240)의 제 2 메모리 블록(BLK_2) 및 제 k+2 메모리 블록(BLK_k+2)은 제 4 메모리 그룹(MG 4)으로 그룹핑될 수 있다.
다만, 이는 예시적인 것이며, 각 메모리 그룹에 포함되는 메모리 블록의 개수 및 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다. 예를 들어, 도 9에서는 메모리 블록들은 행 방향으로 그룹핑되는 것으로 가정되었다. 그러나, 메모리 블록들은 열 방향으로 그룹핑될 수 있다. 또한, 도 9에서는 각 메모리 그룹은 두 개의 메모리 블록들을 포함하는 것으로 가정되었다. 그러나, 각 메모리 그룹은 하나의 메모리 블록일 수 있다. 각 메모리 그룹은 적어도 세 개의 메모리 블록들을 포함할 수 있다.
도 10을 참조하면, 도 9의 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보가 도시되어 있다. 예를 들어, 제 1 메모리 그룹(MG 1)은 제 1 불휘발성 메모리 장치(NVM 1)의 제 1 메모리 블록(BLK_1) 및 제 1 불휘발성 메모리 장치(NVM 1)의 제 k+1 메모리 블록(BLK_k+1)을 포함한다. 도 10의 어드레스 정보는 리프레쉬 레지스터(222)에 저장될 것이다.
도 11을 참조하면, 도 9의 메모리 그룹들의 리프레쉬 동작이 도시되어 있다. 자세히 설명하면, 도 9에서 설명된 바와 같이, 리프레쉬 관리 모듈(221)에 의하여 메모리 블록들이 그룹핑된다. 예를 들어, 제 1 불휘발성 메모리 장치(230)의 제 1 메모리 블록(BLK_1) 및 제 1 불휘발성 메모리 장치(230)의 제 k+1 메모리 블록(BLK_k+1)은 제 1 메모리 그룹(MG 1)으로 그룹핑된다. 도 10에서 설명된 바와 같이, 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보는 리프레쉬 레지스터(222)에 저장된다.
또한, 리프레쉬 관리 모듈(221)에 의하여, 제 1 내지 제 4 메모리 그룹(MG 1- MG 4)의 리프레쉬 순서(Refresh Sequence)가 결정된다. 예를 들어, 도 10에서는 제 1 내지 제 4 메모리 그룹(MG 1- MG 4)이 순차적으로 리프레쉬된다고 가정된다.
제 1 메모리 그룹(MG 1)에 대한 리프레쉬 요청이 있는 경우, 제 1 메모리 그룹(MG 1)에 저장된 데이터는 리프레쉬 메모리(223)에 로드된다. 이 후, 제 1 메모리 그룹(MG 1)에 대한 소거 동작이 수행된다. 소거 동작이 수행된 이 후, 리프레쉬 메모리(223)에 저장된 데이터는 재-프로그램(re-program)된다. 리프레쉬 레지스터(222)에는 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음이 저장된다.
이 경우, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 다른 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 다른 메모리 블록들에 재-프로그램될 수 있다. 이 경우, 예를 들어, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 불휘발성 메모리 장치(230)의 메모리 블록들에 저장될 수 있다. 다른 예로, 리프레쉬 메모리(223)에 저장된 데이터는 제 2 불휘발성 메모리 장치(240)의 메모리 블록들에 저장될 수 있다. 다른 예로, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 및 제 2 불휘발성 메모리 장치(230, 240)의 메모리 블록에 저장될 수 있다. 이는 도 4에서 설명된 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
또한, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 동일한 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 타겟 메모리 그룹의 블록들에 재-프로그램될 수 있다. 이는 도 5에서 설명된 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
계속해서 도 11을 참조하면, 이 후에 리프레쉬 동작의 요청이 있는 경우, 메모리 컨트롤러(220)는 리프레쉬 레지스터(222)에 저장된 리프레쉬 정보를 확인한다. 즉, 메모리 컨트롤러(220)는 리프레쉬 레지스터(222)에 저장된 리프레쉬 순서 및 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음을 확인한다. 이 후, 메모리 컨트롤러(220)는 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작을 제어한다.
한편, 도 9 내지 도 11에서는 하나의 메모리 그룹이 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑된 경우에, 도 8의 메모리 시스템(200)의 리프레쉬 동작이 설명되었다. 다만, 이는 예시적인 것이며, 하나의 메모리 그룹은 서로 다른 불휘발성 메모리 장치의 메모리 블록을 포함할 수 있다. 이는 이하의 도 12 내지 도 14에서 좀더 자세히 설명될 것이다.
도 12 내지 도 14는 도 8의 메모리 시스템(200)의 리프레쉬 동작의 제 2 실시 예를 설명하기 위한 도면이다. 도 12 내지 도 14에서는 하나의 메모리 그룹이 서로 다른 불휘발성 메모리 장치의 메모리 블록들을 포함하는 경우가 예시적으로 도시되어 있다.
도 12를 참조하면, 제 1 불휘발성 메모리 장치(230) 및 제 2 불휘발성 메모리 장치(240)의 메모리 블록들이 도시되어 있다. 설명의 편의상, 제 1 불휘발성 메모리 장치(230)의 제 1, 2, k+1, 그리고 k+2 메모리 블록들(BLK_1, BLK_2, BLK_k+1, BLK_k+2)에 데이터가 프로그램(음영으로 표시됨)되어 있다고 가정된다. 또한, 제 2 불휘발성 메모리 장치(230)의 제 1, 2, k+1, 그리고 k+2 메모리 블록들(BLK_1, BLK_2, BLK_k+1, BLK_k+2)에 데이터가 프로그램되어 있다고 가정된다.
제 1 불휘발성 메모리 장치(230)의 메모리 블록들 및 제 2 불휘발성 메모리 장치(240)의 메모리 블록들은 리프레쉬 관리 모듈(221)에 의하여 그룹핑된다. 예를 들어, 도 12에 도시된 바와 같이, 하나의 메모리 그룹은 서로 다른 불휘발성 메모리 장치의 메모리 블록을 포함하도록 그룹핑될 수 있다.
즉, 제 1 불휘발성 메모리 장치(230)의 제 1 메모리 블록(BLK_1) 및 제 2 불휘발성 메모리 장치(240)의 제 1 메모리 블록(BLK_1)은 제 1 메모리 그룹(MG 1)으로 그룹핑될 수 있다. 제 1 불휘발성 메모리 장치(230)의 제 2 메모리 블록(BLK_2) 및 제 2 불휘발성 메모리 장치(240)의 제 2 메모리 블록(BLK_2)은 제 2 메모리 그룹(MG 2)으로 그룹핑될 수 있다. 제 1 불휘발성 메모리 장치(230)의 제 k+1 메모리 블록(BLK_k+1) 및 제2 불휘발성 메모리 장치(240)의 제 k+1 메모리 블록(BLK_k+1)은 제 3 메모리 그룹(MG 3)으로 그룹핑될 수 있다. 제 1 불휘발성 메모리 장치(230)의 제 k+2 메모리 블록(BLK_k+2) 및 제 2 불휘발성 메모리 장치(240)의 제 k+2 메모리 블록(BLK_k+2)은 제 4 메모리 그룹(MG 4)으로 그룹핑될 수 있다.
다만, 이는 예시적인 것이며, 각 메모리 그룹에 포함되는 메모리 블록의 개수 및 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다. 예를 들어, 도 12에서는 메모리 그룹은 두 개의 메모리 블록들을 포함하는 것으로 가정되었다. 그러나, 각 메모리 그룹은 적어도 세 개의 메모리 블록들을 포함할 수 있다. 이 경우, 예를 들어, 제 1 불휘발성 메모리 장치(230)의 두 개의 메모리 블록들과 제 2 불휘발성 메모리 장치(240)의 한 개의 메모리 블록들이 하나의 메모리 그룹으로 그룹핑될 수 있다. 이 경우, 제 1 불휘발성 메모리 장치(230)의 두 개의 메모리 블록들은 행 방향 또는 열 방향으로 그룹핑될 수 있다.
도 13을 참조하면, 도 12의 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보가 도시되어 있다. 예를 들어, 제 1 메모리 그룹(MG 1)은 제 1 불휘발성 메모리 장치(NVM 1)의 제 1 메모리 블록(BLK_1) 및 제 2 불휘발성 메모리 장치(NVM 2)의 제 1 메모리 블록(BLK_1)을 포함한다. 제 2 메모리 그룹(MG 2)은 제 1 불휘발성 메모리 장치(NVM 1)의 제 1 메모리 블록(BLK_2) 및 제 2 불휘발성 메모리 장치(NVM 2)의 제 2 메모리 블록(BLK_2)을 포함한다. 도 13의 어드레스 정보는 리프레쉬 레지스터(222)에 저장될 것이다.
도 14를 참조하면, 도 12의 메모리 그룹들의 리프레쉬 동작이 도시되어 있다. 자세히 설명하면, 도 12에서 설명된 바와 같이, 리프레쉬 관리 모듈(221)에 의하여 메모리 블록들이 그룹핑된다. 도 13에서 설명된 바와 같이, 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보는 리프레쉬 레지스터(222)에 저장된다.
또한, 리프레쉬 관리 모듈(221)에 의하여, 제 1 내지 제 4 메모리 그룹(MG 1- MG 4)의 리프레쉬 순서(Refresh Sequence)가 결정된다. 예를 들어, 도 14에서는 제 1 내지 제 4 메모리 그룹(MG 1- MG 4)이 순차적으로 리프레쉬된다고 가정된다.
제 1 메모리 그룹(MG 1)에 대한 리프레쉬 요청이 있는 경우, 제 1 메모리 그룹(MG 1)에 저장된 데이터는 리프레쉬 메모리(223)에 로드된다. 즉, 제 1 불휘발성 메모리 장치(230)의 제 1 메모리 블록(BLK_1)의 데이터가 리프레쉬 메모리(223)에 로드된다. 제 2 불휘발성 메모리 장치(240)의 제 1 메모리 블록(BLK_1)의 데이터가 리프레쉬 메모리(223)에 로드된다. 이 경우, 제 1 및 제 2 불휘발성 메모리 장치(230, 240)로부터 리프레쉬 메모리(223)로의 데이터가 로드되는 동작은 병렬적으로 수행될 수 있다.
이 후, 제 1 메모리 그룹(MG 1)에 대한 소거 동작이 수행된다. 즉, 제 1 불휘발성 메모리 장치(230)의 제 1 메모리 블록(BLK_1) 및 제 2 불휘발성 메모리 장치(240)의 제 1 메모리 블록(BLK_1)에 대한 소거 동작이 수행된다. 이 경우, 제 1 불휘발성 메모리 장치(230) 및 제 2 불휘발성 메모리 장치(240)의 소거 동작은 병렬적으로 수행될 수 있다.
소거 동작이 수행된 이 후, 리프레쉬 메모리(223)에 저장된 데이터는 재-프로그램(re-program)된다. 이 후 리프레쉬 레지스터(222)에는 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음이 저장된다.
이 경우, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 다른 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 다른 메모리 블록들에 재-프로그램될 수 있다. 이 경우, 예를 들어, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 불휘발성 메모리 장치(230)의 메모리 블록들에 저장될 수 있다. 다른 예로, 리프레쉬 메모리(223)에 저장된 데이터는 제 2 불휘발성 메모리 장치(240)의 메모리 블록들에 저장될 수 있다. 다른 예로, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 및 제 2 불휘발성 메모리 장치(230, 240)의 메모리 블록에 저장될 수 있다. 이는 도 4에서 설명된 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
또한, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 동일한 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 타겟 메모리 그룹의 블록들에 재-프로그램될 수 있다. 이는 도 5에서 설명된 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
계속해서 도 14를 참조하면, 이 후에 리프레쉬 동작의 요청이 있는 경우, 메모리 컨트롤러(220)는 리프레쉬 레지스터(222)에 저장된 리프레쉬 정보를 확인한다. 즉, 메모리 컨트롤러(220)는 리프레쉬 레지스터(222)에 저장된 리프레쉬 순서 및 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음을 확인한다. 이 후, 메모리 컨트롤러(220)는 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작이 수행되도록 메모리 시스템(200)을 제어한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 두 개의 불휘발성 메모리 장치를 포함할 수 있다. 두 개의 메모리 장치에 저장된 데이터에 대한 리프레쉬 동작을 제공함으로써, 본 발명의 실시 예에 따른 메모리 시스템은 저장된 데이터의 무결성을 보장할 수 있다.
한편, 상술한 설명은 예시적인 것으로 이해되어야 할 것이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 본 발명의 실시 예에 따른 메모리 시스템은 N 개(N은 2 이상의 정수)의 불휘발성 메모리 장치를 포함할 수 있다. 이는 이하의 도 15 내지 도 21에서 좀더 자세히 설명될 것이다.
도 15는 본 발명의 기술적 사상의 제 3 실시 예에 따른 메모리 시스템(300)을 보여주는 블록도이다. 도 15를 참조하면, 메모리 시스템(300)은 호스트(310), 메모리 컨트롤러(320), 그리고 메모리 장치(330)를 포함한다. 도 15의 메모리 시스템(300)은 도 8의 메모리 시스템(200)과 유사하다. 따라서, 이하에서는 도 8의 메모리 시스템(200)과의 차이점이 중점적으로 설명될 것이다.
호스트(310)는 메모리 컨트롤러(320)에 연결된다. 호스트(320)의 동작은 도 8의 호스트(210)와 유사하므로, 자세한 설명은 생략된다.
메모리 컨트롤러(320)는 호스트(310) 및 메모리 장치(330)에 연결된다. 메모리 컨트롤러(320)는 리프레쉬 관리 모듈(321), 리프레쉬 레지스터(322), 리프레쉬 메모리(323), 그리고 버퍼 메모리(324)를 포함한다. 메모리 컨트롤러(300)는 리프레쉬 관리 모듈(321), 리프레쉬 레지스터(322), 그리고 리프레쉬 메모리(323)를 이용하여 리프레쉬 동작을 수행한다.
리프레쉬 관리 모듈(321)은 메모리 장치(330)의 메모리 블록들을 메모리 그룹(MG)으로 그룹핑(Grouping)한다. 이 경우, 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다.
예를 들어, 하나의 메모리 그룹은 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑될 수 있다. 이는 이하의 도 16 내지 도 18에서 좀더 자세히 설명될 것이다. 다른 예로, 하나의 메모리 그룹은 서로 다른 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑될 수 있다. 이는 이하의 도 19 내지 도 21에서 좀더 자세히 설명될 것이다. 또한, 리프레쉬 관리 모듈(321)은 메모리 그룹들의 리프레쉬 순서를 결정한다.
리프레쉬 레지스터(322)는 메모리 그룹들 및 각 메모리 그룹에 대응하는 메모리 블록들의 어드레스 정보를 저장한다. 또한, 리프레쉬 레지스터(322)는 리프레쉬 관리 모듈(321)에 의하여 결정된 리프레쉬 순서 및 최후에 리프레쉬된 메모리 그룹의 어드레스 정보를 저장한다.
리프레쉬 메모리(323)는 타겟 메모리 그룹의 데이터를 임시로 저장한다. 리프레쉬 레지스터(322)와 리프레쉬 메모리(323)의 동작은 도 8의 리프레쉬 레지스터(222)와 리프레쉬 메모리(223)의 동작과 유사하므로, 자세한 설명은 생략된다.
한편, 버퍼 메모리(324)는 호스트(310) 또는 메모리 장치(330)으로부터 전달받은 데이터를 임시로 저장한다. 버퍼 메모리(324)의 동작은 도 8의 버퍼 메모리(224)와 유사하므로, 자세한 설명은 생략된다.
계속해서 도 15를 참조하면, 메모리 장치(330)는 복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)을 포함한다. 복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)은 메모리 시스템(300)의 저장 매체로 사용된다. 예를 들어, 복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)은 대용량의 저장 능력을 갖는 플래시 메모리 장치로 구현될 수 있다. 다른 예로, 복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)은 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)은 복수의 채널(CH1-CHm)을 통해서 메모리 컨트롤러(320)에 연결된다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리 장치들이 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리 장치들은 동일한 데이터 버스에 연결될 수 있다.
복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)은 메모리 컨트롤러(320)에 의하여 제어된다. 예를 들어, 하나의 채널에 연결된 불휘발성 메모리 장치들 중 소정의 불휘발성 메모리 장치는 메모리 컨트롤러(320)에 의하여 선택될 수 있다. 선택된 불휘발성 메모리 장치에 저장된 데이터는 메모리 컨트롤러(320)로 독출될 수 있다. 선택된 불휘발성 메모리 장치는 메모리 컨트롤러(320)로부터 전달받은 데이터를 저장할 수 있다.
각 불휘발성 메모리 장치는 병렬적으로 읽기 동작, 소거 동작 또는 프로그램 동작을 수행한다. 서로 다른 채널에 연결된 불휘발성 메모리 장치들에 대한 읽기 동작, 소거 동작 또는 프로그램 동작이 수행되는 경우, 데이터는 병렬적으로 전달될 수 있다.
예를 들어, 제 1 채널(CH1)에 연결된 불휘발성 메모리 장치(NVM 11)와 제 2 채널(CH2)에 연결된 불휘발성 메모리 장치(NVM 21)는 병렬적으로 읽기 동작을 수행할 수 있다. 서로 다른 채널에 연결되어 있기 때문에, 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 21)로부터 독출된 데이터는 병렬적으로 메모리 컨트롤러(320)에 전달될 수 있다.
한편, 동일한 채널에 연결된 불휘발성 메모리 장치들에 대한 읽기 동작, 소거 동작 또는 프로그램 동작이 수행되는 경우, 데이터는 직렬적으로 전달될 수 있다.
예를 들어, 불휘발성 메모리 장치(NVM 11)는 제 1 채널(CH1)에 연결되며 제 1 웨이(WAY 1)에 포함된다. 불휘발성 메모리 장치(NVM 12)는 제 1 채널(CH1)에 연결되며 제 2 웨이(WAY)에 포함된다. 서로 다른 웨이에 속하기 때문에, 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 12)는 병렬적으로 읽기 동작 등을 수행할 수 있다. 그러나, 동일한 채널에 연결되어 있기 때문에, 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 12)로부터 독출된 데이터는 직렬적으로 메모리 컨트롤러(320)에 전달될 수 있다.
한편, 복수의 불휘발성 메모리 장치들(NVM 11-NVM mn)의 구성은 도 8의 제 1 및 제 2 불휘발성 메모리 장치(230, 240)와 유사하므로, 자세한 설명은 생략된다. 이하의 도 16 내지 도 21에서는 도 15의 메모리 시스템(300)의 리프레쉬 동작이 좀더 자세히 설명될 것이다.
도 16 내지 도 18은 도 15의 메모리 시스템(300)의 리프레쉬 동작의 제 1 실시 예를 설명하기 위한 도면들이다. 도 16 내지 도 18에서는 하나의 메모리 그룹이 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑되는 경우가 예시적으로 도시되어 있다.
도 16을 참조하면, 설명의 편의상, 메모리 장치(330)의 불휘발성 메모리 장치들(NVM 11-NVM mn) 중 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)이 예시적으로 도시되어 있다. 설명의 편의상, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 1, 2, k+1, 그리고 k+2 메모리 블록들(BLK_1, BLK_2, BLK_k+1, BLK_k+2)에 데이터가 프로그램(음영으로 표시됨)되어 있다고 가정된다.
불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 메모리 블록들은 리프레쉬 관리 모듈(321)에 의하여 그룹핑된다. 예를 들어, 도 16에 도시된 바와 같이, 하나의 메모리 그룹은 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑될 수 있다.
즉, 불휘발성 메모리 장치(NVM 11)의 제 1 메모리 블록(BLK_1) 및 제 k+1 메모리 블록(BLK_k+1)은 제 1 메모리 그룹(MG 1)으로 그룹핑될 수 있다. 불휘발성 메모리 장치(NVM 11)의 제 2 메모리 블록(BLK_2) 및 제 k+2 메모리 블록(BLK_k+2)은 제 2 메모리 그룹(MG 2)으로 그룹핑될 수 있다. 마찬가지로, 불휘발성 메모리 장치들(NVM 12-NVM 22)의 메모리 블록들은 각각 제 3 내지 제 8 메모리 그룹들(MG 3-MG 8)으로 그룹핑될 수 있다.
다만, 이는 예시적인 것이며, 각 메모리 그룹에 포함되는 메모리 블록의 개수 및 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다. 예를 들어, 도 16에서는 메모리 블록들은 행 방향으로 그룹핑되는 것으로 가정되었다. 그러나, 메모리 블록들은 열 방향으로 그룹핑될 수 있다. 또한, 도 16에서는 각 메모리 그룹은 두 개의 메모리 블록들을 포함하는 것으로 가정되었다. 그러나, 각 메모리 그룹은 하나의 메모리 블록일 수 있다. 각 메모리 그룹은 적어도 세 개의 메모리 블록들을 포함할 수 있다.
도 17을 참조하면, 도 16의 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보가 도시되어 있다. 예를 들어, 제 1 메모리 그룹(MG 1)은 불휘발성 메모리 장치(NVM 11)의 제 1 메모리 블록(BLK_1) 및 불휘발성 메모리 장치(NVM 11)의 제 k+1 메모리 블록(BLK_k+1)을 포함한다. 도 17의 어드레스 정보는 리프레쉬 레지스터(322)에 저장될 것이다.
도 18을 참조하면, 도 16의 메모리 그룹들의 리프레쉬 동작이 도시되어 있다. 자세히 설명하면, 도 16에서 설명된 바와 같이, 리프레쉬 관리 모듈(321)에 의하여 메모리 블록들이 그룹핑된다. 예를 들어, 불휘발성 메모리 장치(NVM 11)의 제 1 메모리 블록(BLK_1) 및 제 k+1 메모리 블록(BLK_k+1)은 제 1 메모리 그룹(MG 1)으로 그룹핑된다. 도 17에서 설명된 바와 같이, 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보는 리프레쉬 레지스터(322)에 저장된다.
또한, 리프레쉬 관리 모듈(321)에 의하여, 제 1 내지 제 8 메모리 그룹(MG 1- MG 8)의 리프레쉬 순서(Refresh Sequence)가 결정된다. 예를 들어, 도 18에서는 제 1 내지 제 8 메모리 그룹(MG 1- MG 8)이 순차적으로 리프레쉬된다고 가정된다.
제 1 메모리 그룹(MG 1)에 대한 리프레쉬 요청이 있는 경우, 제 1 메모리 그룹(MG 1)에 저장된 데이터는 리프레쉬 메모리(323)에 로드된다. 이 후, 제 1 메모리 그룹(MG 1)에 대한 소거 동작이 수행된다. 소거 동작이 수행된 이 후, 리프레쉬 메모리(323)에 저장된 데이터는 재-프로그램(re-program)된다. 리프레쉬 레지스터(322)에는 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음이 저장된다.
이 경우, 리프레쉬 메모리(323)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 다른 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 다른 메모리 블록들에 재-프로그램될 수 있다. 또한, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 동일한 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 타겟 메모리 그룹의 블록들에 재-프로그램될 수 있다. 이는 도 11에서 설명된 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
계속해서 도 18을 참조하면, 이 후에 리프레쉬 동작의 요청이 있는 경우, 메모리 컨트롤러(320)는 리프레쉬 레지스터(322)에 저장된 리프레쉬 정보를 확인한다. 즉, 메모리 컨트롤러(320)는 리프레쉬 레지스터(322)에 저장된 리프레쉬 순서 및 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음을 확인한다. 이 후, 메모리 컨트롤러(320)는 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작이 수행되도록 메모리 시스템(300)을 제어한다.
한편, 도 16 내지 도 18에서는 하나의 메모리 그룹이 동일한 불휘발성 메모리 장치의 메모리 블록들을 포함하도록 그룹핑된 경우에, 도 15의 메모리 시스템(300)의 리프레쉬 동작이 설명되었다. 다만, 이는 예시적인 것이며, 하나의 메모리 그룹은 서로 다른 불휘발성 메모리 장치의 메모리 블록을 포함할 수 있다. 이는 이하의 도 19 내지 도 21에서 좀더 자세히 설명될 것이다.
도 19 내지 도 21은 도 15의 메모리 시스템(300)의 리프레쉬 동작의 제 2 실시 예를 설명하기 위한 도면이다. 도 19 내지 도 21에서는 하나의 메모리 그룹이 서로 다른 불휘발성 메모리 장치의 메모리 블록들을 포함하는 경우가 예시적으로 도시되어 있다.
도 19를 참조하면, 설명의 편의상, 메모리 영역의 불휘발성 메모리 장치들(NVM 11-NVM mn) 중 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 메모리 블록들이 도시되어 있다. 설명의 편의상, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 1, 2, k+1, 그리고 k+2 메모리 블록들(BLK_1, BLK_2, BLK_k+1, BLK_k+2)에 데이터가 프로그램(음영으로 표시됨)되어 있다고 가정된다.
불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 메모리 블록들은 리프레쉬 관리 모듈(321)에 의하여 그룹핑된다. 예를 들어, 도 19에 도시된 바와 같이, 하나의 메모리 그룹은 서로 다른 불휘발성 메모리 장치의 메모리 블록을 포함하도록 그룹핑될 수 있다.
즉, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 1 메모리 블록(BLK_1)들은 제 1 메모리 그룹(MG 1)으로 그룹핑될 수 있다. 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 2 메모리 블록(BLK_2)들은 제 2 메모리 그룹(MG 2)으로 그룹핑될 수 있다. 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 3 메모리 블록(BLK 3)들은 제 3 메모리 그룹(MG 3)으로 그룹핑될 수 있다. 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 4 메모리 블록(BLK 4)들은 제 1 메모리 그룹(MG 4)으로 그룹핑될 수 있다.
다만, 이는 예시적인 것이며, 각 메모리 그룹에 포함되는 메모리 블록의 개수 및 그룹핑 방법은 리프레쉬 정책에 따라 다양하게 정의될 수 있다. 예를 들어, 도 19에서는 메모리 그룹은 서로 다른 불휘발성 메모리 장치에 속하는 네 개의 메모리 블록들을 포함하는 것으로 가정되었다. 그러나, 각 메모리 그룹은 서로 다른 불휘발성 메모리 장치에 속하는 적어도 두 개의 메모리 블록들을 포함할 수 있다. 이는 도 12에서 설명된 것과 유사하므로, 자세한 설명은 생략된다.
도 20을 참조하면, 도 19의 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보가 도시되어 있다.
예를 들어, 제 1 메모리 그룹(MG 1)은 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 1 메모리 블록(BLK_1)을 포함한다. 제 2 메모리 그룹(MG 2)은 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 2 메모리 블록(BLK_2)을 포함한다. 도 20의 어드레스 정보는 리프레쉬 레지스터(322)에 저장될 것이다.
도 21을 참조하면, 도 19의 메모리 그룹들의 리프레쉬 동작이 도시되어 있다. 자세히 설명하면, 도 19에서 설명된 바와 같이, 리프레쉬 관리 모듈(321)에 의하여 메모리 블록들이 그룹핑된다. 도 20에서 설명된 바와 같이, 메모리 그룹들의 어드레스 정보 및 각 메모리 그룹에 대응하는 메모리 블록들과 불휘발성 메모리 장치의 어드레스 정보는 리프레쉬 레지스터(322)에 저장된다.
또한, 리프레쉬 관리 모듈(321)에 의하여, 제 1 내지 제 4 메모리 그룹(MG 1- MG 4)의 리프레쉬 순서(Refresh Sequence)가 결정된다. 예를 들어, 도 21에서는 제 1 내지 제 4 메모리 그룹(MG 1- MG 4)이 순차적으로 리프레쉬된다고 가정된다.
제 1 메모리 그룹(MG 1)에 대한 리프레쉬 요청이 있는 경우, 제 1 메모리 그룹(MG 1)에 저장된 데이터는 리프레쉬 메모리(323)에 로드된다. 즉, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 1 메모리 블록(BLK_1)의 데이터가 리프레쉬 메모리(323)에 로드된다.
자세히 설명하면, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)은 각각의 제 1 메모리 블록(BLK_1)에 대하여 병렬적으로 읽기 동작을 수행한다. 독출된 데이터는 각 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)에 연결된 채널들(CH1, CH2)을 통하여 리프레쉬 메모리(323)에 전송된다.
이 경우, 예를 들어, 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 21)는 각각 제 1 채널(CH1) 및 제 2 채널(CH2)을 통하여 메모리 컨트롤러(320)에 연결된다. 따라서, 불휘발성 메모리 장치(NVM 11)로부터 독출된 데이터와 불휘발성 메모리 장치(NVM 21)로부터 독출된 데이터는 병렬적으로 리프레쉬 메모리(323)에 전송될 것이다.
또한, 예를 들어, 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리장치(NVM 12)는 제 1 채널(CH1)을 공유한다. 즉, 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리장치(NVM 12)는 제 1 채널(CH1)을 통하여 메모리 컨트롤러(320)에 연결된다. 따라서, 불휘발성 메모리 장치(NVM 11)로부터 독출된 데이터와 불휘발성 메모리 장치(NVM 12)로부터 독출된 데이터는 직렬적으로 리프레쉬 메모리(323)에 전송될 것이다.
이 후, 제 1 메모리 그룹(MG 1)에 대한 소거 동작이 수행된다. 즉, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)의 제 1 메모리 블록(BLK_1)에 대한 소거 동작이 수행된다. 이 경우, 불휘발성 메모리 장치들(NVM 11, NVM 12, NVM 21, NVM 22)은 병렬적으로 소거 동작을 수행할 수 있다.
소거 동작이 수행된 이 후, 리프레쉬 메모리(323)에 저장된 데이터는 재-프로그램(re-program)된다. 이 후, 리프레쉬 레지스터(322)에는 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음이 저장된다.
이 경우, 리프레쉬 메모리(323)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 다른 메모리 블록들에 재-프로그램될 수 있다. 즉, 타겟 메모리 그룹의 데이터는 다른 메모리 블록들에 재-프로그램될 수 있다. 또한, 리프레쉬 메모리(223)에 저장된 데이터는 제 1 메모리 그룹(MG 1)의 메모리 블록들과 동일한 메모리 블록들에 재-프로그램될 수 있다. 이는 도 11 및 도 14에서 설명된 리프레쉬 동작과 유사하므로, 자세한 설명은 생략된다.
리프레쉬 메모리(323)에 저장된 데이터가 재-프로그램되는 경우, 데이터는 서로 다른 채널에 연결된 불휘발성 메모리 장치의 메모리 블록에 재-프로그램될 수 있다. 예를 들어, 리프레쉬 메모리(323)에 저장된 데이터는 제 1 채널(CH1)에 연결된 불휘발성 메모리 장치(NVM 11)와 제 2 채널(CH2)에 연결된 불휘발성 메모리 장치(NVM 21)에 재-프로그램될 수 있다. 서로 다른 채널을 통하여 메모리 컨트롤러(320)와 연결되기 때문에, 리프레쉬 메모리(323)에 저장된 데이터는 병렬적으로 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 21)에 전송될 것이다.
한편, 리프레쉬 메모리(323)에 저장된 데이터가 재-프로그램되는 경우, 데이터는 동일한 채널에 연결된 불휘발성 메모리 장치들의 메모리 블록에 재-프로그램될 수 있다. 예를 들어, 리프레쉬 메모리(323)에 저장된 데이터는 제 1 채널(CH1)을 공유하는 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 12)에 재-프로그램될 수 있다. 동일한 채널을 통하여 메모리 컨트롤러(320)와 연결되기 때문에, 리프레쉬 메모리(323)에 저장된 데이터는 직렬적으로 불휘발성 메모리 장치(NVM 11)와 불휘발성 메모리 장치(NVM 12)에 전송될 것이다.
계속해서 도 21을 참조하면, 이 후에 리프레쉬 동작의 요청이 있는 경우, 메모리 컨트롤러(320)는 리프레쉬 레지스터(322)에 저장된 리프레쉬 정보를 확인한다. 즉, 메모리 컨트롤러(320)는 리프레쉬 레지스터(322)에 저장된 리프레쉬 순서 및 제 1 메모리 그룹(MG 1)에 대한 리프레쉬 동작이 완료되었음을 확인한다. 이 후, 메모리 컨트롤러(320)는 제 2 메모리 그룹(MG 2)에 대한 리프레쉬 동작이 수행되도록 메모리 시스템(300)을 제어한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 N 개(N은 2 이상의 정수)의 불휘발성 메모리 장치를 포함할 수 있다. N 개의 메모리 장치에 저장된 데이터에 대하여 정해진 순서에 따라 순차적으로 리프레쉬 동작을 제공함으로써, 본 발명의 실시 예에 따른 메모리 시스템은 저장된 데이터의 무결성을 보장할 수 있다.
한편, 본 발명의 실시 예에 따른 리프레쉬 동작은 일정 주기마다 수행될 수 있다. 이는 이하의 도 22에서 좀더 자세히 설명될 것이다.
도 22는 본 발명의 기술적 사상의 제 4 실시 예에 따른 메모리 시스템(400)을 보여주는 블록도이다. 도 22를 참조하면, 메모리 시스템(400)은 호스트(410), 메모리 컨트롤러(420), 그리고 불휘발성 메모리 장치(430)를 포함한다. 도 22의 메모리 시스템(400)은 도 2의 메모리 시스템(100)과 유사하다. 따라서, 이하에서는 도 2의 메모리 시스템(100)과의 차이점이 중점적으로 설명될 것이다.
호스트(410)는 메모리 컨트롤러(420)에 연결된다. 호스트(410)는 메모리 컨트롤러(420)를 통하여 데이터를 전달받거나, 메모리 컨트롤러(420)에 데이터를 전달한다. 호스트(410)는 도 2의 호스트(110)와 유사하므로, 자세한 설명은 생략된다.
메모리 컨트롤러(420)는 호스트(410) 및 불휘발성 메모리 장치(430)에 연결된다. 메모리 컨트롤러(420)는 리프레쉬 관리 모듈(421), 리프레쉬 레지스터(422), 리프레쉬 메모리(423), 버퍼 메모리(424), 그리고 타임 컨트롤 유닛(425)을 포함한다. 타임 컨트롤 유닛(425)은 타임 레지스터(426)를 포함한다.
리프레쉬 관리 모듈(421), 리프레쉬 레지스터(422), 리프레쉬 메모리(423), 버퍼 메모리(424)는 각각 도 2의 리프레쉬 관리 모듈(121), 리프레쉬 레지스터(122), 리프레쉬 메모리(123), 버퍼 메모리(124)와 유사하다. 따라서, 자세한 설명은 생략된다.
타임 컨트롤 유닛(425)은 리프레쉬 주기를 결정한다. 예를 들어, 타임 컨트롤 유닛(425)은 메모리 그룹의 개수와 데이터 보유 임계 시간을 고려하여 리프레쉬 주기를 결정할 수 있다. 여기서, 데이터 보유 임계 시간은 데이터가 저장된 시간부터 저장된 데이터의 무결성이 깨질 때까지의 시간을 의미한다. 이 경우, 타임 컨트롤 유닛(425)은 수학식 1에 의하여 리프레쉬 주기를 결정할 수 있다.
Figure 112010044552173-pat00001
이 경우, 예를 들어, 데이터 보유 임계 시간이 100일이며, 메모리 그룹이 10개인 경우, 타임 컨트롤 유닛(425)은 리프레쉬 주기를 10일로 결정할 것이다.
다른 예로, 타임 컨트롤 유닛(425)은 전체 메모리 블록의 개수, 메모리 그룹의 그룹핑 단위, 그리고 데이터 보유 임계 시간을 고려하여 리프레쉬 주기를 결정할 수 있다. 여기서, 전체 메모리 블록은 데이터가 저장된 메모리 블록과 데이터가 저장되지 않은 메모리 블록을 포함한다. 이 경우, 타임 컨트롤 유닛(425)은 수학식 2에 의하여 리프레쉬 주기를 결정할 수 있다.
Figure 112010044552173-pat00002
이 경우, 예를 들어, 데이터 보유 임계 시간이 100일이며, 전체 메모리 블록의 개수가 100개이고, 4개의 메모리 블록이 하나의 메모리 그룹으로 그룹핑되는 경우(즉, 메모리 그룹의 그룹핑 단위가 4인 경우)에, 타임 컨트롤 유닛(425)은 리프레쉬 주기를 4일로 결정할 것이다.
또한, 타임 컨트롤 유닛(425)는 현재시간과 최후 리프레쉬 완료시간의 시간 차를 계산하고, 이를 리프레쉬 주기와 비교한다. 타임 컨트롤 유닛(425)은 현재시간과 최후 리프레쉬 완료시간의 시간 차가 리프레쉬 주기 이상인 경우에 인터럽트 신호를 발생한다. 여기서, 최후 리프레쉬 완료시간은 이전의 리프레쉬 동작들 중 가장 늦은 리프레쉬 동작의 완료된 시간을 의미한다.
예를 들어, 리프레쉬 주기가 4일이며 현재시간과 최후 리프레쉬 완료시간의 시간 차가 4일 이상인 경우에, 타임 컨트롤 유닛(425)은 인터럽트 신호를 발생할 것이다. 이 경우, 메모리 컨트롤러(420)는 인터럽트 신호에 응답하여, 리프레쉬 동작이 수행되도록 불휘발성 메모리 장치(430)를 제어할 것이다.
이 경우, 예를 들어, 타임 컨트롤 유닛(425)은 타임 레지스터(426)에 액세스하여, 리프레쉬 주기 및 최후 리프레쉬 완료시간 정보를 획득할 것이다. 타임 컨트롤 유닛(425)은 외부로부터 현재시간 정보를 획득할 것이다.
한편, 타임 레지스터(426)는 리프레쉬 주기 및 최후 리프레쉬 완료시간을 저장한다.
계속해서 도 22를 참조하면, 불휘발성 메모리 장치(430)는 메모리 컨트롤러(420)에 연결된다. 불휘발성 메모리 장치(430)는 메모리 셀 어레이(431), 어드레스 디코더(432), 비트 라인 선택 회로(433), 입출력 회로(434), 그리고 제어 로직(435)을 포함한다. 도 22의 불휘발성 메모리 장치(430)는 도 2의 불휘발성 메모리 장치(130)와 유사하므로, 자세한 설명은 생략된다.
도 23은 도 22의 메모리 시스템(400)의 리프레쉬 동작을 설명하기 위한 순서도이다.
S210 단계에서, 타임 컨트롤 유닛(425)이 타임 레지스터(426)에 저장된 시간 정보를 확인한다. 구체적으로, 타임 컨트롤 유닛(425)은 타임 레지스터(426)에 저장된 리프레쉬 주기를 확인할 것이다. 또한, 타임 컨트롤 유닛(425)은 타임 레지스터(426)에 저장된 최후 리프레쉬 완료시간을 확인할 것이다.
S220 단계에서, 타임 컨트롤 유닛(425)은 현재시간과 최후 리프레쉬 완료시간의 시간 차와 리프레쉬 주기를 비교한다. 현재시간과 최후 리프레쉬 완료시간의 시간 차가 리프레쉬 주기보다 작은 경우, 리프레쉬 동작은 수행되지 않는다. 현재시간과 최후 리프레쉬 완료시간의 시간 차가 리프레쉬 주기보다 큰 경우, 타임 컨트롤 유닛(425)은 인터럽트 신호를 발생한다(S230). 이 경우, 리프레쉬 동작을 수행하기 위한 일련의 동작들(S240-S270)이 수행된다.
구체적으로, S240 단계에서, 메모리 컨트롤러(420)는 리프레쉬 레지스터(422)에 저장된 리프레쉬 정보를 확인한다. S250 단계에서, 메모리 컨트롤러(420)는 리프레쉬 순서에 기초하여 타겟 메모리 그룹을 선택한다. S260 단계에서, 타겟 메모리 그룹에 저장된 데이터가 리프레쉬 메모리(423)에 로드된다. S270 단계에서, 타겟 메모리 그룹에 대한 소거 동작이 수행된다. S280 단계에서, 리프레쉬 메모리(426)에 저장된 데이터가 메모리 셀 어레이(431)에 재-프로그램된다. S290 단계에서, 리프레쉬 레지스터(422)에 저장된 데이터가 업데이트된다.
S240 내지 S290 단계에서 설명된 도 22의 메모리 시스템(400)의 동작은 S120 내지 S170 단계에서 설명된 도 2의 메모리 시스템(100)의 동작과 유사하다. 따라서, 자세한 설명은 생략된다.
도 22 및 도 23에서 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 리프레쉬 주기마다 리프레쉬 동작을 수행할 수 있다. 이를 위하여, 본 발명의 실시 예에 따른 메모리 시스템은 타임 컨트롤 유닛 및 타임 레지스터를 더 포함한다.
한편, 도 22 및 도 23에서는, 메모리 컨트롤러에 하나의 불휘발성 메모리 장치가 연결되어 있다. 다만, 이는 예시적인 것으로 이해되어야 할 것이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 도 8을 참조하면, 도 22 및 도 23의 기술적 사상은 메모리 컨트롤러에 두 개의 불휘발성 메모리 장치가 연결된 경우에 적용될 수 있다. 다른 예로, 도 15를 참조하면, 도 22 및 도 23의 기술적 사상은 메모리 컨트롤러에 N 개(N은 2이상의 정수)의 불휘발성 메모리 장치가 연결된 경우에 적용될 수 있다.
한편, 리프레쉬 레지스터 및 타임 레지스터에 저장된 정보는 메모리 시스템에 전원이 공급되지 않는 경우에도 안전하게 보관될 필요가 있다. 예를 들어, 리프레쉬 레지스터 및 타임 레지스터에 저장된 정보는 서든 파워 오프(Sudden Power Off, SPO) 등의 경우에도 안전하게 보관될 필요가 있다. 이를 위하여, 본 발명의 실시 예에 따른 메모리 시스템은 리프레쉬 레지스터 및 타임 레지스터에 저장된 정보를 불휘발성 메모리 장치에 저장할 수 있다. 이는 이하의 도 24에서 좀더 자세히 설명될 것이다.
도 24는 본 발명의 기술적 사상의 제 5 실시 예에 따른 메모리 시스템(500)을 보여주는 블록도이다. 도 24를 참조하면, 메모리 시스템(500)은 호스트(510), 메모리 컨트롤러(520), 그리고 불휘발성 메모리 장치(530)를 포함한다. 도 24의 메모리 시스템(500)은 도 22의 메모리 시스템(400)과 유사하다. 따라서, 이하에서는 도 22의 메모리 시스템(400)과의 차이점이 중점적으로 설명될 것이다.
호스트(510)는 메모리 컨트롤러(520)에 연결된다. 호스트(510)는 메모리 컨트롤러(520)를 통하여 데이터를 전달받거나, 메모리 컨트롤러(520)에 데이터를 전달한다. 호스트(510)는 도 22의 호스트(410)와 유사하므로, 자세한 설명은 생략된다.
메모리 컨트롤러(520)는 호스트(510) 및 불휘발성 메모리 장치(530)에 연결된다. 메모리 컨트롤러(520)는 리프레쉬 관리 모듈(521), 리프레쉬 레지스터(522), 리프레쉬 메모리(523), 버퍼 메모리(524), 그리고 타임 컨트롤 유닛(525)을 포함한다. 타임 컨트롤 유닛(525)은 타임 레지스터(526)를 포함한다. 메모리 컨트롤러(520)는 도 22의 메모리 컨트롤러(420)와 유사하므로, 자세한 설명은 생략된다.
불휘발성 메모리 장치(530)는 메모리 컨트롤러(520)에 연결된다. 불휘발성 메모리 장치(530)는 메모리 셀 어레이(531)를 포함한다. 메모리 셀 어레이(531)는 제 1 저장 영역(532) 및 제 2 저장 영역(533)으로 구분된다.
제 1 저장 영역(532)에는 호스트(510)로부터 쓰기 요청된 데이터가 저장된다. 예를 들어, 호스트(510)로부터 쓰기 요청이 있는 경우, 호스트(510)로부터 전달된 데이터는 제 1 저장 영역(532)에 프로그램될 것이다.
제 2 저장 영역(533)에는 리프레쉬 레지스터(522) 및 타임 레지스터(526)에 저장된 정보가 저장된다. 예를 들어, 리프레쉬 레지스터(522)에 저장된 메모리 그룹들 및 각 메모리 그룹에 대응하는 메모리 블록들의 어드레스 정보는 제 2 저장 영역(533)에 프로그램될 것이다. 예를 들어, 리프레쉬 레지스터(522)에 저장된 리프레쉬 순서 및 최후에 리프레쉬된 메모리 그룹의 어드레스 정보는 제 2 저장 영역(533)에 프로그램될 것이다. 예를 들어, 타임 레지스터(526)에 저장된 리프레쉬 주기 및 최후 리프레쉬 완료시간은 제 2 저장 영역(533)에 프로그램될 것이다.
이 경우, 예를 들어, 리프레쉬 레지스터(522) 및 타임 레지스터(526)에 저장된 정보는 주기적으로 제 2 저장 영역(533)에 프로그램될 수 있다. 다른 예로, 리프레쉬 레지스터(522) 및 타임 레지스터(526)에 저장된 정보는 휴지 기간(idle time)에 제 2 저장 영역(533)에 프로그램될 수 있다.
한편, 계속해서 도 24를 참조하면, 불휘발성 메모리 장치(530)는 어드레스 디코더(534), 비트 라인 선택 회로(535), 입출력 회로(536), 그리고 제어 로직(537)을 포함한다. 이는 도 22의 불휘발성 메모리 장치(430)와 유사하므로, 자세한 설명은 생략된다.
도 24에서 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 리프레쉬 레지스터 및 타임 레지스터에 저장된 정보를 불휘발성 메모리 장치에 프로그램할 수 있다. 따라서, 리프레쉬 레지스터 및 타임 레지스터에 저장된 정보는 서든 파워 오프(SPO) 등과 무관하게 안전하게 보관될 수 있다.
한편, 도 24에서는, 메모리 컨트롤러에 하나의 불휘발성 메모리 장치가 연결되어 있다. 다만, 이는 예시적인 것으로 이해되어야 할 것이며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 도 8을 참조하면, 도 24의 기술적 사상은 메모리 컨트롤러에 두 개의 불휘발성 메모리 장치가 연결된 경우에 적용될 수 있다. 다른 예로, 도 15를 참조하면, 도 24의 기술적 사상은 메모리 컨트롤러에 N 개(N은 2이상의 정수)의 불휘발성 메모리 장치가 연결된 경우에 적용될 수 있다.
한편, 도 2 내지 도 24에서는 2차원 메모리 셀 어레이의 회로를 이용하여 본 발명의 기술적 사상을 설명하였다. 그러나, 본 발명의 기술적 사상은 2차원 메모리 셀 어레이에 한정되는 것은 아니다. 예를 들어, 도 2의 메모리 셀 어레이(131)는 3차원 메모리 셀 어레이일 수 있으며, 본 발명의 기술적 사상은 3차원 메모리 셀 어레이에도 적용될 수 있다. 이는 이하의 도 25에서 좀더 자세히 설명될 것이다.
도 25는 본 발명의 실시 예에 따른 3차원 메모리 셀 어레이를 보여주는 회로도이다.
도 25를 참조하면, 제 1 비트 라인(BL1) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS1~1~NS31)이 전기적으로 연결된다. 마찬가지로, 제 2 비트 라인(BL2) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12~NS32)이 전기적으로 연결된다. 제 3 비트 라인(BL3) 및 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS13~NS33)이 전기적으로 연결된다. 제 1 내지 제 3 비트 라인들(BL1~BL3)은 제 3 방향(3rd direction)으로 연장되며, 제 1 방향(1st direction)을 따라 나란히 배치된다.
각각의 낸드 스트링(NS)은 스트링 선택 트랜지스터(SST, String Select Transistor), 메모리 셀들(MC, Memory Cell), 더미 메모리 셀들(DMC, Dummy Memory Cell), 그리고 접지 선택 트랜지스터(GST, Ground Select Transistor)를 포함한다.
동일한 층에 위치한 메모리 셀들의 게이트들은 제 1 방향(1st direction)으로 연장된 워드 라인에 전기적으로 연결된다. 또한, 동일한 층에 위치한 더미 메모리 셀들의 게이트들은 제 1 방향(1st direction)으로 연장된 더미 워드 라인에 전기적으로 연결된다.
상술한 바와 같이, 본 발명의 실시 예에 따른 메모리 셀 어레이는 3차원 메모리 셀 어레이일 수 있다. 이 경우, 3차원 메모리 셀 어레이의 메모리 셀들은 복수의 메모리 그룹들로 그룹핑되고, 정해진 순서에 따라 순차적으로 리프레쉬될 수 있다. 이는 도 2 내지 도 24에서 설명된 것과 유사하므로 자세한 설명은 생략된다.
도 26은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 전자 장치를 보여주는 블록도이다. 전자 장치(10)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 26을 참조하면, 전자 장치(10)는 메모리 시스템(11), 전원 장치(13), 보조 전원 장치(12), 중앙처리장치(14), 램(15), 그리고 사용자 인터페이스(16)를 포함한다. 메모리 시스템(11)은 불휘발성 메모리 장치(11a) 및 메모리 컨트롤러(11b)를 포함한다.
도 26에 도시된 메모리 시스템(11a)은 도 2 내지 도 24에서 설명된 메모리 시스템일 수 있다. 즉, 도 26에 도시된 메모리 시스템은 메모리 그룹들을 정해진 순서에 따라 순차적으로 리프레쉬할 수 있다. 따라서, 저장된 데이터의 무결성을 보장할 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100, 200, 300, 400, 500 : 메모리 시스템
110, 210, 310, 410, 510: 호스트
120, 220, 320, 420, 520: 메모리 컨트롤러
130, 230, 330, 430, 530: 불휘발성 메모리 장치
NVM: 불휘발성 메모리 장치
RMM: 리프레쉬 관리 모듈

Claims (29)

  1. 메모리 블록들을 포함하는 적어도 하나의 불휘발성 메모리 장치; 그리고
    상기 적어도 하나의 불휘발성 메모리 장치의 리프레쉬 동작을 제어하는 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 적어도 하나의 불휘발성 메모리 장치에 포함된 메모리 블록들을 복수의 메모리 그룹들로 그룹핑하고, 상기 복수의 메모리 그룹들에 대한 리프레쉬 순서를 결정하고, 상기 리프레쉬 순서에 따라 상기 복수의 메모리 그룹들을 리프레쉬하며,
    상기 복수의 메모리 그룹들 각각은 상기 적어도 하나의 불휘발성 메모리 장치의 서로 다른 플래인들로부터 각각 선택된 적어도 두 개의 메모리 블록들을 포함하는, 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 불휘발성 메모리 장치는 제 1 및 제 2 불휘발성 메모리 장치를 포함하며,
    상기 복수의 메모리 그룹들은 각각 상기 제 1 불휘발성 메모리 장치의 메모리 블록들로부터 선택된 적어도 하나의 메모리 블록과 상기 제 2 불휘발성 메모리 장치의 메모리 블록들로부터 선택된 적어도 하나의 메모리 블록을 포함하는 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 제 1 및 제 2 불휘발성 메모리 장치는 각각 제 1 및 제 2 채널을 통하여 상기 메모리 컨트롤러에 연결되며,
    상기 복수의 메모리 그룹들 각각에 포함된 메모리 블록들 중 상기 제 1 불휘발성 메모리 장치의 메모리 블록은 상기 제 1 채널을 통하여 리프레쉬되고, 상기 제 2 불휘발성 메모리 장치의 메모리 블록은 상기 제 2 채널을 통하여 리프레쉬되는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 메모리 컨트롤러는
    상기 복수의 메모리 그룹들의 상기 리프레쉬 순서를 결정하는 리프레쉬 관리 모듈; 및
    상기 리프레쉬 관리 모듈에 의하여 결정된 상기 리프레쉬 순서와 관련된 정보를 저장하는 리프레쉬 레지스터를 포함하는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는
    상기 복수의 메모리 그룹들 중 리프레쉬될 메모리 그룹의 데이터를 저장하는 리프레쉬 메모리를 더 포함하는 메모리 시스템.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 메모리 컨트롤러는
    리프레쉬 주기를 결정하는 타임 컨트롤 유닛을 포함하며,
    상기 타임 컨트롤 유닛은 상기 복수의 메모리 그룹들 각각의 데이터 보유 임계 시간을 기초로 리프레쉬 주기를 결정하는 메모리 시스템.
  8. 제 7 항에 있어서,
    상기 타임 컨트롤 유닛은 최후 리프레쉬 완료시점과 현재시점 사이의 시간 차가 상기 리프레쉬 주기보다 큰 경우에, 상기 리프레쉬 동작을 수행하기 위한 인터럽트 신호를 발생하는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 메모리 컨트롤러는
    상기 최후 리프레쉬 완료시간에 관한 정보 및 상기 리프레쉬 주기에 관한 정보를 저장하는 타임 레지스터를 더 포함하는 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 메모리 블록들 중 적어도 하나는 3차원 메모리 셀 어레이를 포함하는, 메모리 시스템.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 불휘발성 메모리 장치들을 포함하는 메모리 시스템의 리프레쉬 방법에 있어서:
    상기 불휘발성 메모리 장치들에 포함된 메모리 블록들을 적어도 두 개의 메모리 그룹들로 그룹핑하는 단계;
    상기 적어도 두 개의 메모리 그룹들의 리프레쉬 순서를 결정하는 단계;
    상기 리프레쉬 순서에 기초하여, 상기 적어도 두 개의 메모리 그룹들 중 리프레쉬될 메모리 그룹을 선택하는 단계;
    상기 리프레쉬될 메모리 그룹의 데이터를 리프레쉬 레지스터에 저장하는 단계; 및
    상기 리프레쉬 레지스터에 저장된 데이터를 상기 불휘발성 메모리 장치들에 재-프로그램하는 단계를 포함하며,
    상기 적어도 두 개의 메모리 그룹들 각각은 서로 다른 불휘발성 메모리 장치들로부터 각각 선택된 적어도 두 개의 메모리 블록들을 포함하는 메모리 시스템의 리프레쉬 방법.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020100066538A 2010-07-09 2010-07-09 메모리 시스템 및 그것의 리프레쉬 방법 KR101577721B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100066538A KR101577721B1 (ko) 2010-07-09 2010-07-09 메모리 시스템 및 그것의 리프레쉬 방법
US13/175,973 US8675406B2 (en) 2010-07-09 2011-07-05 Nonvolatile memory system and refresh method
US14/176,303 US9336889B2 (en) 2010-07-09 2014-02-10 Nonvolatile memory system and refresh method
US15/095,183 US9460800B2 (en) 2010-07-09 2016-04-11 Nonvolatile memory system and refresh method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100066538A KR101577721B1 (ko) 2010-07-09 2010-07-09 메모리 시스템 및 그것의 리프레쉬 방법

Publications (2)

Publication Number Publication Date
KR20120005856A KR20120005856A (ko) 2012-01-17
KR101577721B1 true KR101577721B1 (ko) 2015-12-29

Family

ID=45438463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100066538A KR101577721B1 (ko) 2010-07-09 2010-07-09 메모리 시스템 및 그것의 리프레쉬 방법

Country Status (2)

Country Link
US (3) US8675406B2 (ko)
KR (1) KR101577721B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200032676A (ko) * 2013-03-13 2020-03-26 매크로닉스 인터내셔널 컴퍼니 리미티드 비휘발성 메모리의 리텐션 로직
US11061608B2 (en) 2018-04-23 2021-07-13 SK Hynix Inc. Memory controller and memory system having the same

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101989850B1 (ko) * 2012-04-03 2019-06-18 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
KR101974108B1 (ko) 2012-07-30 2019-08-23 삼성전자주식회사 리프레쉬 어드레스 생성기, 이를 포함하는 휘발성 메모리 장치 및 휘발성 메모리 장치의 리프레쉬 방법
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
TWI515743B (zh) 2013-11-20 2016-01-01 旺宏電子股份有限公司 復原數個記憶胞之陣列的方法、電子裝置及控制器
JP5981906B2 (ja) * 2013-12-17 2016-08-31 京セラドキュメントソリューションズ株式会社 画像形成装置
KR20160023274A (ko) * 2014-08-22 2016-03-03 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
KR102148197B1 (ko) * 2015-01-27 2020-08-26 에스케이하이닉스 주식회사 반도체 장치
US9977615B2 (en) * 2015-09-28 2018-05-22 Qualcomm Incorporated Smart refresh of data on flash devices
KR102224564B1 (ko) 2017-03-29 2021-03-09 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
TWI628659B (zh) * 2017-05-04 2018-07-01 華邦電子股份有限公司 非揮發性記憶體裝置及其刷新方法
US20190066760A1 (en) * 2017-08-23 2019-02-28 Nanya Technology Corporation Dram and method for operating the same
KR102567111B1 (ko) 2018-08-02 2023-08-14 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
KR20200061960A (ko) * 2018-11-26 2020-06-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11087858B1 (en) * 2020-07-24 2021-08-10 Macronix International Co., Ltd. In-place refresh operation in flash memory
WO2022108848A1 (en) * 2020-11-17 2022-05-27 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040257888A1 (en) 2003-04-22 2004-12-23 Kabushiki Kaisha Toshiba Data storage system
US20080068912A1 (en) 2006-09-19 2008-03-20 Jong-Soo Lee Flash memory device and refresh method thereof
US20090323416A1 (en) 1999-09-28 2009-12-31 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory having plural data storage portions for a bit line connected to memory cells

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835413A (en) 1996-12-20 1998-11-10 Intel Corporation Method for improved data retention in a nonvolatile writeable memory by sensing and reprogramming cell voltage levels
US6088268A (en) 1998-09-17 2000-07-11 Atmel Corporation Flash memory array with internal refresh
JP4143368B2 (ja) * 2002-09-04 2008-09-03 エルピーダメモリ株式会社 半導体記憶装置
KR100558339B1 (ko) 2002-12-17 2006-03-10 주식회사 엑셀반도체 다층셀 플래시메모리의 데이터보존성 개선방법
JP4597829B2 (ja) * 2005-09-27 2010-12-15 パトレネラ キャピタル リミテッド, エルエルシー メモリ
JP4989872B2 (ja) * 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 半導体記憶装置および演算処理装置
KR100794664B1 (ko) * 2006-09-01 2008-01-14 삼성전자주식회사 플래시 메모리 장치 및 그것의 리프레쉬 방법
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US8938655B2 (en) 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
WO2009116117A1 (ja) * 2008-03-19 2009-09-24 富士通マイクロエレクトロニクス株式会社 半導体メモリ、システム、半導体メモリの動作方法および半導体メモリの製造方法
JP2010170596A (ja) * 2009-01-20 2010-08-05 Elpida Memory Inc 半導体記憶装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323416A1 (en) 1999-09-28 2009-12-31 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory having plural data storage portions for a bit line connected to memory cells
US20040257888A1 (en) 2003-04-22 2004-12-23 Kabushiki Kaisha Toshiba Data storage system
US20080068912A1 (en) 2006-09-19 2008-03-20 Jong-Soo Lee Flash memory device and refresh method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200032676A (ko) * 2013-03-13 2020-03-26 매크로닉스 인터내셔널 컴퍼니 리미티드 비휘발성 메모리의 리텐션 로직
KR102198436B1 (ko) 2013-03-13 2021-01-06 매크로닉스 인터내셔널 컴퍼니 리미티드 비휘발성 메모리의 리텐션 로직
US11061608B2 (en) 2018-04-23 2021-07-13 SK Hynix Inc. Memory controller and memory system having the same

Also Published As

Publication number Publication date
US20160225455A1 (en) 2016-08-04
US8675406B2 (en) 2014-03-18
KR20120005856A (ko) 2012-01-17
US20140160858A1 (en) 2014-06-12
US20120008394A1 (en) 2012-01-12
US9460800B2 (en) 2016-10-04
US9336889B2 (en) 2016-05-10

Similar Documents

Publication Publication Date Title
KR101577721B1 (ko) 메모리 시스템 및 그것의 리프레쉬 방법
US9875793B2 (en) Storage and programming method thereof
US9710376B2 (en) Wear leveling for a memory device
KR102117919B1 (ko) 저장 장치 및 그것의 프로그램 방법
US20070285980A1 (en) Semiconductor memory device
KR20150107405A (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102646907B1 (ko) 쓰기 버퍼 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20140139335A (ko) 불휘발성 메모리 장치 및 그것의 재프로그램 방법
US20210334000A1 (en) Memory system, memory controller and memory device for configuring super blocks
US11342013B2 (en) Memory system and operating method to set target command delay time to merge and process read commands
US11301174B2 (en) Memory system, memory controller and method for operating memory system
KR20200083917A (ko) 버퍼 리셋 커맨드를 이용하는 메모리 관리
KR20200076923A (ko) 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
US11321014B2 (en) Memory system, memory controller, and operating method for performing status check based on status check delay information
US11474726B2 (en) Memory system, memory controller, and operation method thereof
KR102341698B1 (ko) 메모리 동작을 위한 전용 명령
KR20200073108A (ko) Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법
US11709610B2 (en) Memory system, memory controller and operating method
US20230195342A1 (en) Memory system for managing data corresponding to a plurality of zones and operating method thereof

Legal Events

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