KR20090109354A - 메모리 시스템 및 그것의 동작 방법 - Google Patents

메모리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20090109354A
KR20090109354A KR1020080034765A KR20080034765A KR20090109354A KR 20090109354 A KR20090109354 A KR 20090109354A KR 1020080034765 A KR1020080034765 A KR 1020080034765A KR 20080034765 A KR20080034765 A KR 20080034765A KR 20090109354 A KR20090109354 A KR 20090109354A
Authority
KR
South Korea
Prior art keywords
data
memory
program
block
change
Prior art date
Application number
KR1020080034765A
Other languages
English (en)
Other versions
KR101517185B1 (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 KR1020080034765A priority Critical patent/KR101517185B1/ko
Priority to US12/410,150 priority patent/US8281064B2/en
Priority to TW098112342A priority patent/TWI463309B/zh
Priority to CN2009101320453A priority patent/CN101562043B/zh
Publication of KR20090109354A publication Critical patent/KR20090109354A/ko
Application granted granted Critical
Publication of KR101517185B1 publication Critical patent/KR101517185B1/ko

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 불 휘발성 메모리 장치를 포함한 메모리 시스템의 동작 방법을 제공하며, 이 동작 방법은 상기 불 휘발성 메모리 장치의 메모리 셀들이 프로그램-소거 사이클의 반복시 균일한 프로그램 스트레스를 받도록 프로그램 데이터를 변경하는 단계와; 그리고 상기 변경된 프로그램 데이터를 상기 불 휘발성 메모리 장치에 프로그램하는 단계를 포함한다. 이러한 프로그램 데이터의 변경 방식을 통해 데이터의 패턴에 따른 에러율 증가를 방지하는 것이 가능하다.

Description

메모리 시스템 및 그것의 동작 방법{MEMORY SYSTEM AND OPERATING METHOD THEREOF}
본 발명은 저장 장치에 관한 것으로, 좀 더 구체적으로는 불 휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때 보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단의 열화 또는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.
플래시 메모리 장치는 실리콘 칩에 저장된 정보를 유지하는 데 전원을 필요로 하지 않는 방법으로 실리콘 칩 상에 정보를 저장한다. 이는 만약 칩에 공급되는 전원이 차단되면 전원의 소모없이 정보가 유지됨을 의미한다. 추가로, 플래시 메모리 장치 는 물리적인 충격 저항성 및 빠른 읽기 접근 시간을 제공한다. 이러한 특징들때문에, 플래시 메모리 장치는 배터리에 의해서 전원을 공급받는 장치들의 저장 장치로서 일반적으로 사용되고 있다.
본 발명의 목적은 데이터 리텐션 시간을 증가시킬 수 있는 메모리 시스템 및 그것의 동작 방법을 제공하는 것이다.
본 발명의 다른 목적은 메모리 셀에 동일한 데이터가 반복적으로 쓰여지는 것을 방지할 수 있는 메모리 시스템 및 그것의 동작 방법을 제공하는 것이다.
본 발명의 다른 목적은 메모리 셀들에 동일한 프로그램 스트레스를 가할 수 있는 메모리 시스템 및 그것의 동작 방법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 불 휘발성 메모리 장치를 포함한 메모리 시스템의 동작 방법을 제공하며, 이 동작 방법은 상기 불 휘발성 메모리 장치의 메모리 셀들이 프로그램-소거 사이클의 반복시 균일한 프로그램 스트레스를 받도록 상기 불 휘발성 메모리 장치의 변경 기준 정보에 따라 프로그램 데이터를 변경하는 단계와; 그리고 상기 변경된 프로그램 데이터를 상기 불 휘발성 메모리 장치에 프로그램하는 단계를 포함한다.
예시적인 실시예에 있어서, 상기 변경 기준 정보는 각 메모리 블록의 마모도 정보 및 특정 시드값들 중 어느 하나를 포함한다.
예시적인 실시예에 있어서, 상기 프로그램 데이터를 변경하는 단계는 선택된 메모리 블록의 마모도 정보에 따라 결정된 일정 패턴을 갖는 랜덤 패턴 데이터를 순차적으로 생성하는 단계와; 그리고 상기 생성된 랜덤 패턴 데이터와 상기 프로그램 데이터를 논리적으로 조합하여 상기 변경된 프로그램 데이터를 생성하는 단계를 포함한다.
예시적인 실시예에 있어서, 상기 프로그램 데이터는 동일한 프로그램 데이터의 프로그램 동작이 상기 선택된 메모리 블록에 대해 반복적으로 요청되더라도 상기 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 변경된다.
예시적인 실시예에 있어서, 상기 마모도 정보는 상기 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값을 포함한다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값은 대응하는 메모리 블록을 소거하기 이전까지 변화되지 않는다.
예시적인 실시예에 있어서, 상기 동작 방법은 상기 선택된 메모리 블록으로부터 데이터를 읽는 단계와; 그리고 상기 선택된 메모리 블록의 소거 카운트 값에 따라 결정된 랜덤 패턴 데이터에 의거하여 원래의 데이터로 상기 읽혀진 데이터를 변경하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 동작 방법은 상기 프로그램 데이터에 대한 에러정정코드 데이터를 생성하는 단계와; 그리고 상기 마모도 정보에 따라 상기 에러정정코드 데이터를 변경하는 단계를 더 포함하며, 상기 변경된 에러정정코드는 상기 변경된 프로그램 데이터와 함께 상기 불 휘발성 메모리 장치에 프로그램된다.
본 발명의 다른 예시적인 실시예들은 복수의 메모리 블록들과; 그리고 상기 메모리 블록들 중 선택된 메모리 블록에 저장될 프로그램 데이터를 변경하는 데이터 변경 블록을 포함하며, 상기 데이터 변경 블록은 상기 메모리 블록들에 속하는 메모리 셀들이 프로그램-소거 사이클의 반복시 균일한 프로그램 스트레스를 받도록 상기 선택된 메모리 블록의 변경 기준 정보에 따라 상기 프로그램 데이터를 변경하는 메모리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 변경 기준 정보는 각 메모리 블록의 마모도 정보 및 특정 시드값들 중 어느 하나를 포함한다.
예시적인 실시예에 있어서, 상기 데이터 변경 블록은 선택된 메모리 블록의 마모도 정보에 따라 결정된 일정 패턴을 갖는 랜덤 패턴 데이터를 순차적으로 생성하도록 그리고 상기 생성된 랜덤 패턴 데이터와 상기 프로그램 데이터를 논리적으로 조합하여 상기 변경된 프로그램 데이터를 생성하도록 구성된다.
예시적인 실시예에 있어서, 상기 프로그램 데이터는 동일한 프로그램 데이터의 프로그램 동작이 상기 선택된 메모리 블록에 대해 반복적으로 요청되더라도 상기 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 변경된다.
예시적인 실시예에 있어서, 상기 마모도 정보는 상기 메모리 블록들 각각에 대한 소거 카운트 값을 포함한다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값은 대응하는 메모리 블록을 소거하기 이전까지 변화되지 않다.
예시적인 실시예에 있어서, 상기 데이터 변경 블록은 상기 선택된 메모리 블록의 소거 카운트 값에 따라 결정된 랜덤 패턴 데이터에 의거하여, 상기 선택된 메모리 블록으로부터 읽혀진 데이터를 원래의 데이터로 변경하도록 구성된다.
예시적인 실시예에 있어서, 상기 데이터 변경 블록은 상기 프로그램 데이터에 대한 에러정정코드 데이터를 생성하도록 그리록 상기 마모도 정보에 따라 상기 에러정정코드 데이터를 변경하도록 구성되며, 상기 변경된 에러정정코드는 상기 변경된 프로그램 데이터와 함께 상기 선택된 메모리 블록에 프로그램된다.
예시적인 실시예에 있어서, 상기 메모리 시스템은 불 휘발성 메모리 장치, 에스에스디, 그리고 메모리 카드 중 어느 하나이다.
예시적인 실시예에 있어서, 상기 프로그램 데이터는 일정 단위로 순차적으로 상기 선택된 메모리 블록으로 전송되며, 상기 일정 단위를 구성하는 데이터 비트 수는 상기 순차적으로 생성되는 랜덤 패턴 데이터 각각과 동일하다.
본 발명에 의하면, 메모리 셀에 동일한 데이터가 반복적으로 쓰여지는 것을 방지함으로써 그리고 메모리 셀들에 동일한 프로그램 스트레스를 가함으로써 데이터 리텐션에 의한 셀의 산포 변화를 균일하게 유지하게 하여 메모리 신뢰성을 증가시킬 수 있다.
또한, 본 발명에 의하면, 메모리 셀에서 특정한 데이터 패턴에 대해서 셀의 특성이 나빠지는 현상, 예를 들면, 특정한 데이터 패턴에서 셀간 커플링이 커지게 되는 현상 등이 있을 수 있으며, 이 경우 데이터 패턴 의존성 에러가 증가할 수 있으나, 데이터를 랜덤하게 변경시켜줌으로써 이러한 의존성을 줄일 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 용에 따라 수정되거나 변경될 수 있다.
아래의 실시예에 있어서, 불 휘발성 메모리의 마모도 정보(wear-leveling information)로 사용되는 프로그램-소거 카운트 정보를 기준으로 데이터를 변경하는 것이 설명될 것이다.
도 1은 본 발명의 예시적인 실시예들에 따른 메모리 시스템을 보여주는 블록도이다.
도 1을 참조하면, 본 발명에 따른 메모리 시스템(1000)은 불 휘발성 메모리 장치(1200)와 메모리 제어기(1400)를 포함한다. 불 휘발성 메모리 장치(1200)는, 비록 도면에는 도시되지 않았지만, 매트릭스 형태로 배열된 불 휘발성 메모리 셀들을 포함할 것이다. 불 휘발성 메모리 셀들은, 예를 들면, 전하 저장층(예를 들면, 플로팅 게이트)을 갖는 트랜지스터로 구성될 것이다. 불 휘발성 메모리 셀들 각각은 1-비트 데이터 또는 N-비트 데이터(N은 2 또는 그 보다 큰 정수)를 저장할 것이다. 예시적인 실시예에 있어서, 불 휘발성 메모리 장치(1200)는 플래시 메모리 장치일 것이다. 하지만, 본 발명이 플래시 메모리 장치에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자에게 자명하다. 예를 들면, PRAM, CTF 메모리 장치, 등과 같은 불 휘발성 메모리 장치들에 본 발명의 기술적 사상을 적용하는 것이 가능할 것이다.
계속해서 도 1을 참조하면, 메모리 제어기(1400)는 외부 장치(예를 들면, 호스트)로부터의 요청에 응답하여 불 휘발성 메모리 장치(1200)를 제어할 것이다. 메모리 제어기(1400)는 호스트 인터페이스(1410), 플래시 인터페이스(1420), 프로세싱 유니트(1430), 버퍼 메모리(1440), 그리고 데이터 변경 블록(data changing block, 1450)을 포함할 것이다.
호스트 인터페이스(1410)는 정해진 인터페이스 프로토콜에 따라 외부 장치와 인터페이스하도록 구성되며, 플래시 인터페이스(1420)는 정해진 인터페이스 프로토콜에 따라 불 휘발성 메모리 장치(1200)와 인터페이스하도록 구성될 것이다. 프로세싱 유니트(1430)는 메모리 제어기(1400)의 전반적인 동작을 제어할 것이다. 버퍼 메모리(1440)는 외부 장치로부터 제공되는 쓰기 데이터(또는, 프로그램 데이터라 불림) 또는 불 휘발성 메모리 장치(1200)로부터 읽혀진 데이터를 저장하는 데 사용될 것이다. 버퍼 메모리(1440)는, 또한, 불 휘발성 메모리 장치(1200)로부터 읽혀진 소거 카운트 정보를 저장하는 데 사용될 것이다. 이후 설명되는 바와 같이, 소거 카운트 정보는 프로그램/쓰기 및 읽기 동작들이 수행될 때 프로세싱 유니트(1430)의 제어하에 데이터 변경 블록(1450)으로 제공될 것이다.
여기서, 불 휘발성 메모리 장치(1200)의 마모도 정보(wear-leveling information)로서, 소거 카운트 정보는 불 휘발성 메모리 장치(1200)의 특정 어드레스 영역에 저장되며, 파워-업시 버퍼 메모리(1440)에 로드될 것이다. 소거 카운트 정보는 불 휘발성 메모리 장치(1200)의 각 소거 단위에 대한 소거 카운트 값이다. 소거 단위는, 예를 들면, 메모리 블록이 될 것이다. 다시 말해서, 소거 카운트 정보는 각 메모리 블록의 소거 카운트 값을 나타낼 것이다. 잘 알려진 바와 같이, 소거 카운트 정보는 정해진 알고리즘(또는, 플래시 변환 레이어(FTL)과 같은 펌웨어)에 의거하여 프로세싱 유니트(1430)에 의해서 관리될 것이다.
데이터 변경 블록(1450)은 프로세싱 유니트(1430)의 제어에 응답하여 동작하며, 버퍼 메모리(1440)에서 불 휘발성 메모리 장치(1200)로 전송되는 데이터(이하, 프로그램 데이터라 칭함)를 변경할 것이다. 좀 더 구체적으로, 데이터 변경 블록(1450)은 불 휘발성 메모리 장치(1200)의 각 메모리 셀에 동일한 데이터가 반복적으로 쓰여지는 것을 방지하도록 프로그램 데이터를 변경할 것이다. 프로그램 데이터의 변경은 선택될 메모리 블록의 소거 카운트 값에 따라 일정한 순서로 행해질 것이다. 예를 들면, 메모리 셀에 데이터 '00'가 반복적으로 쓰여진다고 가정하면, 프로그램 데이터 '00'는 소거 카운트 값에 따라 '01', '10', '00'와 같은 정해진 패턴을 갖도록 변경될 것이다. 이는 이후 상세히 설명될 것이다. 데이터 변경 블록(1450)은 불 휘발성 메모리 장치(1200)로부터 읽혀진 데이터(이하, 독출 데이터라 칭함)가 원래의 데이터로 복원되도록 소거 카운트 값에 의거하여 독출 데이터를 변경할 것이다. 이는 이후 상세히 설명될 것이다.
이상의 설명으로부터 알 수 있듯이, 비록 각 메모리 셀에 반복적으로 쓰여질 프로그램 데이터가 동일하더라도, 실질적으로 각 메모리 셀은 매번 다른 프로그램 데이터로 프로그램될 것이다. 이는 각 메모리 셀이 균일한 프로그램 스트레스를 받음을 의미한다. 각 메모리 셀이 균일한 프로그램 스트레스를 받기 때문에, 프로그램 스트레스로 인한 각 메모리 셀의 문턱 전압의 이동(shift) 역시 균일해질 것이다.
도 2는 본 발명의 예시적인 실시예들에 따른 도 1에 도시된 데이터 변경 블록을 개략적으로 보여주는 블록도이다.
도 2를 참조하면, 본 발명에 따른 데이터 변경 블록(1450)은 도 1의 프로세싱 유니트(1430)의 제어에 응답하여 동작하며, 선택 코드 발생 회로(1451), 랜덤 패턴 발생 회로(1452), 그리고 제 1 및 제 2 배타적 논리합 회로들(1453, 1454)을 포함할 것이다. 선택 코드 발생 회로(1451)는 읽기/프로그램 동작시 프로세싱 유니트(1430)로부터 제공되는 소거 카운트 값(ECV)에 응답하여 선택 코드(SC)를 발생할 것이다. 소거 카운트 값(ECV)은 읽기/프로그램 동작이 수행될 메모리 블록의 소거 카운트 횟수를 나타낼 것이다. 임의 메모리 블록에 대응하는 소거 카운트 값(ECV) 은 소거 동작이 임의 메모리 블록에 대해 행해지기 이전까지 유지될 것이다.
다른 예로서, 선택 코드 발생 회로(1451)는 소거 카운트 값(ECV) 대신 특정 시드값을 이용하여 선택 코드(SC)를 발생하도록 구성될 수 있다. 예를 들면, 각 메모리 블록에 특정 시드값들을 저장하고, 저장된 특정 시드값을 이용하여 선택 코드를 생성하는 것이 가능하다. 즉, 마모도 정보로서 소거 카운트 값 대신 특정 시드값을 이용하여 랜덤 패턴 데이터를 생성하는 것이 가능하다. 마모도 정보 및 특정 시드값은 프로그램 데이터를 변경하는 데 사용되는 기준 정보(즉, 변경 기준 정보)일 것이다.
랜덤 패턴 발생 회로(1452)는 제어 신호(EN), 클록 신호(CLK), 그리고 선택 코드(SC)에 응답하여 랜덤 패턴 데이터(RPD)를 발생할 것이다. 제어 신호(EN)는 읽기/프로그램 동작시 프로세싱 유니트(1430)로부터 제공될 것이다. 랜덤 패턴 발생 회로(1452)는 제어 신호(EN)의 활성화(예를 들면, 로우-하이 천이)에 응답하여 활성화되고, 제어 신호(EN)의 비활성화(예를 들면, 하이-로우 천이)에 응답하여 초기화될 것이다. 제어 신호(EN)의 활성화 구간 동안, 랜덤 패턴 발생 회로(1452)는 선택 코드(SC)에 따라 클록 신호(CLK)에 동기되어 랜덤 패턴 데이터(RPD)를 발생할 것이다. 랜덤 패턴 데이터(RPD)는 프로그램 데이터(WD)와 동일한 비트 수를 가질 것이다. 프로그램 데이터(WD)가 8-비트 데이터이면, 예를 들면, 랜덤 패턴 데이터(RPD) 역시 8-비트 데이터일 것이다. 랜덤 패턴 데이터(RPD)의 값은 클록 신호(CLK)의 매 주기마다 변화되며, 변화되는 값들은 일정한 패턴을 갖도록 설정될 것이다. 예를 들면, 랜덤 패턴 데이터(RPD)는 '01', '10', '11', 그리고 '00'와 같 은 일정 패턴을 갖도록 변화될 것이다. 단, 랜덤 패턴 데이터(RPD)의 시작값(또는, 시드값(seed value)이라 칭함)은 소거 카운트 값(ECV)에 따라 변화되는 선택 코드(SC)에 의해서 선택될 것이다. 즉, 랜덤 패턴 데이터(RPD)의 시작값이 '10'로 선택될 때, 랜덤 패턴 데이터(RPD)는 '10', 11', '00', 그리고 '01'의 값들을 갖도록 반복적으로 변화될 것이다.
프로그램 동작시, 제 1 배타적 논리합 회로(1453)는 버퍼 메모리(1440)로부터 제공되는 프로그램 데이터(WD)와 랜덤 패턴 데이터(RPD)를 논리적으로 조합하고, 조합된 데이터를 프로그램 데이터(WD')로서 출력할 것이다. 예를 들면, 프로그램 데이터(WD)가 '01010101'이고 랜덤 패턴 데이터(RPD)가 '00001111'이라고 가정하면, 제 1 배타적 논리합 회로(1453)는 '01011010'의 프로그램 데이터(WD')를 출력할 것이다. '01011010'의 프로그램 데이터(WD')는 도 1의 플래시 인터페이스(1420)를 통해 불 휘발성 메모리 장치(1200)로 전송될 것이다.
읽기 동작시, 제 2 배타적 논리합 회로(1453)는 플래시 인터페이스(1420)를 통해 불 휘발성 메모리 장치(1200)로부터 전송된 독출 데이터(RD')와 랜덤 패턴 데이터(RPD)를 논리적으로 조합하고, 조합된 데이터를 독출 데이터(RD)로서 출력할 것이다. 앞서의 가정에 의하면, '01011010'의 독출 데이터(RD')는 '00001111'의 랜덤 패턴 데이터(RPD)의 논리적인 조합을 통해 '01010101'의 원래의 데이터(RD)로 복원될 것이다. 복원된 독출 데이터(RD)는 버퍼 메모리(1440)로 전송될 것이다. 앞에서 설명된 바와 같이, 랜덤 패턴 데이터(RPD)는 읽기/프로그램 동작시 선택된 메모리 블록이 소거되기 이전까지 동일하게 유지될 것이다. 그러한 까닭에, 메모리 블록에 대한 프로그램 동작시 사용된 랜덤 패턴 데이터(RPD)는 동일한 메모리 블록에 대한 읽기 동작에도 그대로 적용될 것이다.
도 3a 내지 도 3d는 본 발명의 예시적인 실시예들에 따른 도 2에 도시된 랜덤 패턴 발생 회로를 보여주는 블록도들이다.
먼저, 도 3a를 참조하면, 랜덤 패턴 발생 회로(1452)는 복수의 랜덤 패턴 발생기들(1610∼1640)과 선택기(1640)를 포함할 것이다. 랜덤 패턴 발생기들(1610∼1640) 각각은 제어 신호(EN)의 활성화 구간 동안 클록 신호(CLK)에 동기되어 랜덤 패턴 데이터를 발생할 것이다. 랜덤 패턴 발생기들(1610∼1640) 각각은 제어 신호(EN)에 의해서 활성화된 후 클록 신호(CLK)에 동기되어 같은 순서를 가지는 숫자 즉, 랜덤 패턴 데이터를 발생할 것이다. 랜덤 패턴 발생기들(1610∼1640) 각각은 제어 신호(EN)가 비활성화될 때 초기화될 것이다. 랜덤 패턴 발생기들(1610∼1640) 각각은 서로 다른 초기값(또는 시드값)을 갖도록 구현될 것이다. 랜덤 패턴 발생기들(1610∼1640) 각각은, 예를 들면, 잘 알려진 CRC(Cyclic Redundancy Checks)를 이용하여 구현될 수 있다. 선택기(1640)는 선택 코드(SC)에 응답하여 랜덤 패턴 발생기들(1610∼1640) 중 하나를 선택하며, 선택된 랜덤 패턴 발생기의 출력을 랜덤 패턴 데이터(RPD)로서 출력할 것이다.
도 3a에 도시된 것과 달리, 랜덤 패턴 발생 회로(1452)는 하나의 랜덤 패턴 발생기를 이용하여 구현될 수 있다. 예를 들면, 도 3b에 도시된 바와 같이, 랜덤 패턴 발생기(1650)의 초기값(SV)은 선택 코드(SC)에 의해서 설정될 것이다. 랜덤 패턴 발생기(1650)는 제어 신호(EN)에 의해서 활성화된 후 클록 신호(CLK)에 동기 되어 같은 순서를 가지는 숫자 즉, 랜덤 패턴 데이터(RPD)를 발생할 것이다. 랜덤 패턴 발생기(1650)는 제어 신호(EN)가 비활성화될 때 초기화될 것이다. 여기서, 초기값(SV)은 선택 코드(SC) 대신 다른 값을 이용하여 설정될 수도 있다. 예를 들면, 앞서 언급된 특정 시드값을 이용하여 초기값(SV)을 설정하는 것이 가능하다.
랜덤 패턴 발생기를 사용하지 않고 랜덤 패턴 발생 회로(1452)를 구현하는 것이 가능하다. 예를 들면, 도 3c에 도시된 바와 같이, 랜덤 패턴 발생 회로(1452)는 선택기(1660)와 액티브 테이블 버퍼(1670)로 구성될 수 있다. 선택기(1660)는 프로세싱 유니트(1430)의 내부 버퍼 또는 외부 메모리(예를 들면, 버퍼 메모리, ROM, 등)에 저장된 랜덤 패턴 테이블들 중 하나를 선택하고, 선택된 랜덤 패턴 테이블을 액티브 테이블 버퍼(1670)로 전송할 것이다. 액티브 테이블 버퍼(1670)는 제어 신호(EN)에 의해서 활성화된 후 클록 신호(CLK)에 동기되어 같은 순서를 가지는 숫자 즉, 랜덤 패턴 데이터(RPD)를 출력할 것이다. 액티브 테이블 버퍼(1670)는 제어 신호(EN)가 비활성화될 때 초기화될 것이다. 또는, 도 3d에 도시된 바와 같이, 전송되는 데이터의 패턴(DP) 즉, 데이터 패턴에 대응하는 랜덤 패턴 데이터(RPD)를 저장하는 맵핑 테이블을 이용하여 랜덤 패턴 발생 회로(1452)를 구현하는 것이 가능할 것이다. 이러한 경우, 랜덤 패턴 발생 회로(1452)는 전송되는 데이터의 패턴을 검출하는 데이터 패턴 검출기(1680)를 필요로 할 것이다. 검출된 결과는 맵핑 테이블(1690)의 포인터로서 사용될 것이다. 맵핑 테이블(1690)은 에스램을 이용하여 구현될 수 있다.
본 발명의 랜덤 패턴 발생 회로의 구현이 이상에서 설명된 것에 국한되지 않 음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 4는 본 발명에 따른 데이터 변경 블록에 의해서 처리되는 데이터 패턴을 보여주는 도면이고, 도 5a 내지 도 5c는 본 발명의 메모리 시스템에 따라 데이터 리텐션 시간이 증가되는 것을 설명하기 위한 도면이다. 이하, 본 발명에 따른 메모리 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
불 휘발성 메모리 장치(1200)에 대한 프로그램 동작이 요청될 때, 불 휘발성 메모리 장치(1200)에 저장될 프로그램 데이터는 호스트 인터페이스(1410)를 통해 버퍼 메모리(1440)에 임시 저장될 것이다. 이후, 버퍼 메모리(1440)에 임시 저장된 프로그램 데이터는 프로세싱 유니트(1430)의 제어하에 데이터 변경 블록(1450) 및 플래시 인터페이스(1420)를 통해 불 휘발성 메모리 장치(1200)로 전송될 것이다. 데이터 전송 동안, 원래의 프로그램 데이터는 데이터 변경 블록(1450)에 의해서 변경될 것이다. 앞서 언급된 바와 같이, 원래의 프로그램 데이터는 선택될 메모리 블록의 소거 카운트 값(ECV)에 따라 결정된 랜덤 패턴 데이터(RPD)와의 논리적인 조합을 통해 변경될 것이다.
원래의 프로그램 데이터가 랜덤 패턴 데이터(RPD)를 이용하여 변경됨에 따라, 비록 메모리 셀들 각각이 특정 데이터 상태를 나타내는 데이터를 갖도록 프로그램 동작이 요청되더라도, 불 휘발성 메모리 장치(1200)의 메모리 셀들 각각은 특정 데이터 상태(또는, 문턱 전압 분포)로 프로그램되는 것이 아니라 복수의 데이터 상태들을 균일하게 갖도록 프로그램될 것이다. 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 프로그램됨에 따라, 메모리 셀들 각각은 동일한/유사한 프로그램 스트레스를 받을 것이다.
예를 들면, 도 4에 도시된 바와 같이, 4개의 메모리 셀들에 '00', '00', '11', 그리고 '11'의 데이터를 반복적으로 쓰고자 하는 경우를 고려하여 볼 때, 메모리 블록에 대한 첫 번째 프로그램 동작시, '00', '00', '11', 그리고 '11'의 데이터는 데이터 변경 블록(1450)을 통해 '01', '01', '10', '10'의 데이터로 변경될 것이다. 메모리 블록이 소거된 후 두 번째 프로그램 동작이 요구될 때, '00', '00', '11', 그리고 '11'의 데이터는 변경된 소거 카운트 값(ECV)에 따라 데이터 변경 블록(1450)에 의해서 '00', '00', '11', '11'의 데이터로 변경될 것이다. 메모리 블록이 다시 소거된 후 세 번째 프로그램 동작이 요구될 때, '00', '00', '11', 그리고 '11'의 데이터는 변경된 소거 카운트 값(ECV)에 따라 데이터 변경 블록(1450)에 의해서 '10', '10', '01', '01'의 데이터로 변경될 것이다. 메모리 블록이 다시 소거된 후 네 번째 프로그램 동작이 요구될 때, '00', '00', '11', 그리고 '11'의 데이터는 변경된 소거 카운트 값(ECV)에 따라 데이터 변경 블록(1450)에 의해서 '11', '11', '00', '00'의 데이터로 변경될 것이다.
앞에서 설명된 바와 같이, 동일한 데이터에 대한 프로그램 동작이 요청되더라도, 프로그램 데이터는 매번 상이한 데이터 패턴을 갖도록 변경된다. 이는 평균적으로 각 메모리 셀이 복수의 데이터 상태들을 균일하게 갖도록 프로그램됨을 의미한다. 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 프로그램됨에 따라, 메모리 셀들 각각은 동일한/유사한 프로그램 스트레스를 받을 것이다. 잘 알려진 바와 같이, 프로그램 스트레스는 메모리 셀의 문턱 전압이 낮아지게 하는 원인이 된다. 각 메모리 셀이 상이한 프로그램 스트레스를 받는 경우, 각 메모리 셀의 문턱 전압의 변경 정도가 다를 것이다. 이에 반해서, 본 발명의 경우, 메모리 셀들 각각이 동일한/유사한 프로그램 스트레스를 받기 때문에, 각 메모리 셀의 문턱 전압의 변경 정도가 동일할 것이다(또는, 유사할 것이다). 이는 이하 도 5a 내지 도 5c를 참조하여 좀 더 구체적으로 설명될 것이다.
도 5a를 참조하면, 사각형은 '00'의 데이터로 프로그램된 메모리 셀들의 문턱 전압들을 나타내고, 원형은 '10'의 데이터로 프로그램된 메모리 셀들의 문턱 전압들을 나타낸다. 비록 데이터 '00'로 메모리 셀들이 동일하게 프로그램되더라도, 메모리 셀들의 이전의 프로그램된 상태들이 서로 다를 수 있다. 이는 메모리 셀들이 서로 다른 프로그램 스트레스를 받았음을 의미한다. 즉, 메모리 셀들의 문턱 전압들의 변화는, 도 5b에 도시된 바와 같이, 시간이 지남에 따라 다른 전하 손실로 인해 달라진다. 도 5b에서, 실선은 전하 손실로 인해 변화된 문턱 전압을 나타내고, 점선은 전하 손실 이전의 문턱 전압을 나타낸다. 이러한 경우, 비록 읽기 전압들(VR1, VR2, VR3)을 보다 낮은 읽기 전압들(VR1', VR2', VR3')로 재조정하더라도, '10'에 대응하는 문턱 전압의 강하가 큰 메모리 셀(MCA)(또는, P2의 프로그램 상태)과 '00'에 대응하는 문턱 전압의 강하가 큰 메모리 셀(MCB)(또는, P2의 프로그램 상태)을 판별하는 것이 어렵다.
이에 반해서, 본 발명의 경우, 비록 데이터 '00'로 메모리 셀들이 동일하게 프로그램되더라도, 메모리 셀들에 실질적으로 쓰여지는 데이터는 복수의 데이터 상태들을 균일하게 갖도록 데이터 변경 블록(1450)에 의해서 변경된다. 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 프로그램됨에 따라, 메모리 셀들 각각은 동일한/유사한 프로그램 스트레스를 받을 것이다. 메모리 셀들 각각이 동일한/유사한 프로그램 스트레스를 받기 때문에, 도 5c에 도시된 바와 같이, 메모리 셀들 각각의 문턱 전압의 변화는 시간의 경과에 따라 동일해질 것이다. 따라서, 읽기 전압들을 보다 낮은 읽기 전압들로 재조정함으로써 데이터 '10'(또는, P2의 프로그램 상태)에 대응하는 문턱 전압을 갖는 메모리 셀(MCA1)과 데이터 '00'(또는, P3의 프로그램 상태)에 대응하는 문턱 전압을 갖는 메모리 셀(MCB1)을 판별하는 것이 가능할 것이다. 이는 데이터 리텐션 시간(data retention time)이 증가됨을 의미한다.
도 6은 본 발명에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다.
도 6을 참조하면, 불 휘발성 메모리 장치를 포함한 메모리 시스템의 동작 방법은 불 휘발성 메모리 장치의 메모리 셀들이 프로그램-소거 사이클의 반복시 균일한 프로그램 스트레스를 받도록 불 휘발성 메모리 장치의 마모도 정보에 따라 프로그램 데이터를 변경하는 단계(S100)와; 그리고 변경된 프로그램 데이터를 불 휘발성 메모리 장치에 프로그램하는 단계(S200)를 포함할 것이다. 프로그램 데이터는 선택된 메모리 블록의 마모도 정보에 따라 결정된 일정 패턴을 갖는 랜덤 패턴 데이터를 순차적으로 생성하고, 생성된 랜덤 패턴 데이터와 프로그램 데이터를 논리적으로 조합하여 변경된 프로그램 데이터를 생성함으로써 변경될 것이다. 이러한 데이터 변경 스킴에 따르면, 프로그램 데이터는 동일한 프로그램 데이터의 프로그 램 동작이 선택된 메모리 블록에 대해 반복적으로 요청되더라도 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 변경될 것이다.
앞서 언급된 바와 같이, 마모도 정보는 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값을 포함할 것이다. 하지만, 본 발명이 이에 국한되지 않음은 자명하다. 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값은 대응하는 메모리 블록을 소거하기 이전까지 변화되지 않는다.
상기한 방식으로 프로그램된 데이터는 선택된 메모리 블록으로부터 데이터를 읽고, 선택된 메모리 블록의 소거 카운트 값에 따라 결정된 랜덤 패턴 데이터에 의거하여 읽혀진 데이터를 변경함으로써 본래의 데이터로 복원될 것이다.
도 7은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 7을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 불 휘발성 메모리 장치(2200)와 메모리 제어기(2400)를 포함할 것이다. 불 휘발성 메모리 장치(2200)는 도 1에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 메모리 제어기(2400)는 외부 장치(예를 들면, 호스트)로부터의 요청에 응답하여 불 휘발성 메모리 장치(2200)를 제어할 것이다. 메모리 제어기(2400)는 호스트 인터페이스(2410), 플래시 인터페이스(2420), 프로세싱 유니트(2430), 버퍼 메모리(2440), 데이터 변경 블록(2450)을 포함할 것이다. 메모리 제어기(24000의 구성 요소들(2410∼2450)은 도 1에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 메모리 제어기(2400)는 에러 정정 회로(도면에는, 'ECC'로 표기됨)(2460)를 더 포함할 것이다. 에러 정정 회로(2460)는 버퍼 메모리(2440)에서 데이터 변경 블록(2450)으로 전송되는 데이터를 이용하여 ECC 데이터를 생성하고, 생성된 ECC 데이터를 데이터 변경 블록(2450)으로 출력할 것이다. 즉, ECC 데이터 역시 데이터 변경 블록(2450)을 통해 변경될 것이다. 도 7에 도시된 메모리 시스템(2000)은 상술한 차이점을 제외하면 도 1에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
비록 도면에는 도시되지 않았지만, 에러 정정 회로(2460)는 불 휘발성 메모리 장치(2460) 내에 구현될 수도 있다.
도 8은 본 발명의 예시적인 실시예들에 따른 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
도 8을 참조하면, 참조부호 'B100'는 데이터 정보를 저장하기 위한 메모리 셀 어레이를 나타내고, 참조부호 'B200'는 메모리 셀 어레이(B100)에 대한 읽기 및 쓰기 동작들을 수행하도록 구성되는 읽기/쓰기 회로를 나타낸다. 참조부호 'B300'는 도 7에 도시된 불 휘발성 메모리 장치의 전반적인 동작을 제어하도록 구성된 제어 블록을 나타낸다. 제어 블록(B300)은 파워-업시 메모리 셀 어레이(B100)에 저장된 소거 카운트 정보를 저장하도록 구성될 것이다. 참조부호 'B400'는 불 휘발성 메모리 장치의 동작에 필요한 전압들을 발생하도록 구성된 전압 발생 회로를 나타낸다. 참조부호 'B500'는 각 메모리 셀에 동일한 데이터가 반복적으로 쓰여지는 것을 방지하도록 그리고 각 메모리 셀이 균일한 프로그램 스트레스를 받도록 프로그램 데이터를 변경하는 데이터 변경 회로를 나타낸다. 데이터 변경 회로(B500)는 제 어 블록(B300)의 제어에 응답하여 프로그램 데이터 및 독출 데이터를 변경할 것이다. 데이터 변경 회로(B500)는 도 2에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
마모도 정보로서 소거 카운트 값을 이용하여 랜덤 패턴 데이터를 생성하는 실시예들이 설명되었다. 하지만, 랜덤 패턴 데이터를 생성하는 데 필요한 마모도 정보 대신에 특정 시드값들을 각 메모리 블록에 저장하고 각 메모리 블록에 저장된 특정 시드값들을 이용하여 랜덤 패턴 데이터를 사용하는 것이 가능할 것이다. 즉, 특정 시드값을 기준으로 프로그램 데이터를 변경하고 특정 시드값을 기준으로 상기 변경된 프로그램 데이터를 원래의 데이터로 복원하는 것이 가능하다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명의 예시적인 실시예들에 따른 메모리 시스템을 포함한 컴퓨팅 시스템이 도 9에 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템은 버스(3001)에 전기적으로 연결된 마이크로프로세서(3100), 사용자 인터페이스(3200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(3300), 메모리 제어기(3400), 그리고 플래시 메모리 장치(3500)를 포함한다. 메모리 제어기(3400)와 플래시 메모리 장치(3500)는 메모리 시스템을 구성하며, 도 1 또는 도 7에 도시된 것과 실질적으 로 동일하게 구성될 것이다. 플래시 메모리 장치(3500)에는 마이크로프로세서(3100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(3400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(3300)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 플래시 메모리 장치와 메모리 컨트롤러가 메모리 시스템으로서 메모리 카드 형태로 구성될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 플래시 메모리 장치와 메모리 제어기가 메모리 시스템으로서 메모리 카드 형태로 구성될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 또는, 메모리 제어기와 플래시 메모리 장치는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 반도체 드라이브/디스크(Solid State Drive/Disk: SSD)를 구성할 수 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
도 1은 본 발명의 예시적인 실시예들에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 예시적인 실시예들에 따른 도 1에 도시된 데이터 변경 블록을 개략적으로 보여주는 블록도이다.
도 3a 내지 도 3d는 본 발명의 예시적인 실시예들에 따른 도 2에 도시된 랜덤 패턴 발생 회로를 보여주는 블록도들이다.
도 4는 본 발명에 따른 데이터 변경 블록에 의해서 처리되는 데이터 패턴을 보여주는 도면이다.
도 5a 내지 도 5c는 본 발명의 메모리 시스템에 따라 데이터 리텐션 시간이 증가되는 것을 설명하기 위한 도면이다.
도 6은 본 발명에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다.
도 7은 본 발명의 다른 예시적인 실시예들에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 8은 본 발명의 예시적인 실시예들에 따른 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
도 9는 본 발명의 예시적인 실시예들에 따른 메모리 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.

Claims (21)

  1. 불 휘발성 메모리 장치를 포함한 메모리 시스템의 동작 방법에 있어서:
    상기 불 휘발성 메모리 장치의 메모리 셀들이 프로그램-소거 사이클의 반복시 균일한 프로그램 스트레스를 받도록 상기 불 휘발성 메모리 장치의 변경 기준 정보에 따라 프로그램 데이터를 변경하는 단계와; 그리고
    상기 변경된 프로그램 데이터를 상기 불 휘발성 메모리 장치에 프로그램하는 단계를 포함하는 것을 특징으로 하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 변경 기준 정보는 마모도 정보를 포함하는 것을 특징으로 하는 동작 방법.
  3. 제 2 항에 있어서,
    상기 프로그램 데이터를 변경하는 단계는
    선택된 메모리 블록의 마모도 정보에 따라 결정된 일정 패턴을 갖는 랜덤 패턴 데이터를 순차적으로 생성하는 단계와; 그리고
    상기 생성된 랜덤 패턴 데이터와 상기 프로그램 데이터를 논리적으로 조합하여 상기 변경된 프로그램 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 프로그램 데이터는 동일한 프로그램 데이터의 프로그램 동작이 상기 선택된 메모리 블록에 대해 반복적으로 요청되더라도 상기 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 변경되는 것을 특징으로 하는 동작 방법.
  5. 제 3 항에 있어서,
    상기 프로그램 데이터는 상기 메모리 셀들의 신뢰성을 떨어뜨리는 특징이 있는 데이터 패턴이 반복적으로 포함되더라도 상기 메모리 셀들 각각의 복수의 데이터 상태들을 균일하게 갖도록 변경되는 것을 특징으로 하는 방법.
  6. 제 3 항에 있어서,
    상기 마모도 정보는 상기 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값을 포함하는 것을 특징으로 하는 동작 방법.
  7. 제 6 항에 있어서,
    상기 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값은 대응하는 메모리 블록을 소거하기 이전까지 변화되지 않는 것을 특징으로 하는 동작 방법.
  8. 제 6 항에 있어서,
    상기 선택된 메모리 블록으로부터 데이터를 읽는 단계와; 그리고
    상기 선택된 메모리 블록의 소거 카운트 값에 따라 결정된 랜덤 패턴 데이터에 의거하여 원래의 데이터로 상기 읽혀진 데이터를 변경하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
  9. 제 2 항에 있어서,
    상기 프로그램 데이터에 대한 에러정정코드 데이터를 생성하는 단계와; 그리고
    상기 마모도 정보에 따라 상기 에러정정코드 데이터를 변경하는 단계를 더 포함하며,
    상기 변경된 에러정정코드는 상기 변경된 프로그램 데이터와 함께 상기 불 휘발성 메모리 장치에 프로그램되는 것을 특징으로 하는 동작 방법.
  10. 제 1 항에 있어서,
    상기 변경 기준 정보는 메모리 블록들 각각에 저장된 특정 시드값들을 포함하는 것을 특징으로 하는 동작 방법.
  11. 복수의 메모리 블록들과; 그리고
    상기 메모리 블록들 중 선택된 메모리 블록에 저장될 프로그램 데이터를 변 경하는 데이터 변경 블록을 포함하며,
    상기 데이터 변경 블록은 상기 메모리 블록들에 속하는 메모리 셀들이 프로그램-소거 사이클의 반복시 균일한 프로그램 스트레스를 받도록 상기 선택된 메모리 블록의 변경 기준 정보에 따라 상기 프로그램 데이터를 변경하는 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 변경 기준 정보는 상기 메모리 블록들에 대한 마모도 정보를 포함하는 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 데이터 변경 블록은 선택된 메모리 블록의 마모도 정보에 따라 결정된 일정 패턴을 갖는 랜덤 패턴 데이터를 순차적으로 생성하도록 그리고 상기 생성된 랜덤 패턴 데이터와 상기 프로그램 데이터를 논리적으로 조합하여 상기 변경된 프로그램 데이터를 생성하도록 구성되는 메모리 시스템.
  14. 제 11 항에 있어서,
    상기 프로그램 데이터는 동일한 프로그램 데이터의 프로그램 동작이 상기 선택된 메모리 블록에 대해 반복적으로 요청되더라도 상기 메모리 셀들 각각이 복수의 데이터 상태들을 균일하게 갖도록 변경되는 메모리 시스템.
  15. 제 12 항에 있어서,
    상기 마모도 정보는 상기 메모리 블록들 각각에 대한 소거 카운트 값을 포함하는 메모리 시스템.
  16. 제 14 항에 있어서,
    상기 불 휘발성 메모리 장치의 메모리 블록들 각각에 대한 소거 카운트 값은 대응하는 메모리 블록을 소거하기 이전까지 변화되지 않는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 데이터 변경 블록은 상기 선택된 메모리 블록의 소거 카운트 값에 따라 결정된 랜덤 패턴 데이터에 의거하여, 상기 선택된 메모리 블록으로부터 읽혀진 데이터를 원래의 데이터로 변경하도록 구성되는 메모리 시스템.
  18. 제 12 항에 있어서,
    상기 데이터 변경 블록은 상기 프로그램 데이터에 대한 에러정정코드 데이터를 생성하도록 그리록 상기 마모도 정보에 따라 상기 에러정정코드 데이터를 변경하도록 구성되며, 상기 변경된 에러정정코드는 상기 변경된 프로그램 데이터와 함께 상기 선택된 메모리 블록에 프로그램되는 메모리 시스템.
  19. 제 11 항에 있어서,
    상기 메모리 시스템은 불 휘발성 메모리 장치, 에스에스디, 그리고 메모리 카드 중 어느 하나인 메모리 시스템.
  20. 제 11 항에 있어서,
    상기 프로그램 데이터는 일정 단위로 순차적으로 상기 선택된 메모리 블록으로 전송되며, 상기 일정 단위를 구성하는 데이터 비트 수는 상기 순차적으로 생성되는 랜덤 패턴 데이터 각각과 동일한 메모리 시스템.
  21. 제 11 항에 있어서,
    상기 변경 기준 정보는 상기 메모리 블록들 각각에 저장된 특정 시드값들을 포함하는 메모리 시스템.
KR1020080034765A 2008-04-15 2008-04-15 메모리 시스템 및 그것의 동작 방법 KR101517185B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080034765A KR101517185B1 (ko) 2008-04-15 2008-04-15 메모리 시스템 및 그것의 동작 방법
US12/410,150 US8281064B2 (en) 2008-04-15 2009-03-24 Systems, methods and computer program products for encoding data to be written to a nonvolatile memory based on wear-leveling information
TW098112342A TWI463309B (zh) 2008-04-15 2009-04-14 記憶體系統、操作非揮發性記憶體系統的方法以及非揮發性記憶體
CN2009101320453A CN101562043B (zh) 2008-04-15 2009-04-15 非易失性存储器及对将写入其中的数据编码的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080034765A KR101517185B1 (ko) 2008-04-15 2008-04-15 메모리 시스템 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20090109354A true KR20090109354A (ko) 2009-10-20
KR101517185B1 KR101517185B1 (ko) 2015-05-04

Family

ID=41164926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080034765A KR101517185B1 (ko) 2008-04-15 2008-04-15 메모리 시스템 및 그것의 동작 방법

Country Status (4)

Country Link
US (1) US8281064B2 (ko)
KR (1) KR101517185B1 (ko)
CN (1) CN101562043B (ko)
TW (1) TWI463309B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100133707A (ko) * 2009-06-12 2010-12-22 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 최상위 비트 프로그램 상태 판별 방법
US7961520B2 (en) 2009-08-18 2011-06-14 Seagate Technology Llc Encoding and decoding to reduce switching of flash memory transistors
US8266334B2 (en) * 2010-02-12 2012-09-11 Phison Electronics Corp. Data writing method for non-volatile memory, and controller and storage system using the same
KR20110097438A (ko) * 2010-02-25 2011-08-31 삼성전자주식회사 메모리 시스템, 그리고 그것의 동작 방법
KR20120001405A (ko) * 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
DE102011056141A1 (de) 2010-12-20 2012-06-21 Samsung Electronics Co., Ltd. Negativspannungsgenerator, Dekoder, nicht-flüchtige Speichervorrichtung und Speichersystem, das eine negative Spannung verwendet
JP2012226822A (ja) * 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
US8762626B2 (en) * 2011-09-12 2014-06-24 Sandisk Technologies Inc. Data modification based on matching bit patterns
CN104272241B (zh) 2012-04-30 2017-08-15 英派尔科技开发有限公司 提高固态存储装置的寿命的数值表示
US9292428B2 (en) * 2012-09-05 2016-03-22 Kabushiki Kaisha Toshiba Memory system
US8898549B2 (en) 2013-02-12 2014-11-25 Seagate Technology Llc Statistical adaptive error correction for a flash memory
US9007842B2 (en) 2013-03-12 2015-04-14 Seagate Technology Llc Retention detection and/or channel tracking policy in a flash memory based storage system
KR20140114516A (ko) 2013-03-15 2014-09-29 삼성전자주식회사 메모리 컨트롤러 및 이의 동작 방법
KR102200108B1 (ko) 2014-10-10 2021-01-08 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
TWI545576B (zh) * 2014-10-27 2016-08-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN105573662B (zh) * 2014-10-31 2020-05-26 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置
TWI562149B (en) * 2015-03-09 2016-12-11 Phison Electronics Corp Memory control circuit unit, memory storage apparatus and data accessing method
JP5940704B1 (ja) * 2015-03-26 2016-06-29 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10579290B2 (en) 2016-03-23 2020-03-03 Winbond Electronics Corp. Option code providing circuit and providing method thereof
US10152276B2 (en) 2016-07-18 2018-12-11 Winbond Electronics Corporation Memory device including data processor and program method of same
US11967391B2 (en) * 2021-08-06 2024-04-23 SK Hynix Inc. System and method for testing multicore SSD firmware based on preconditions generation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
JP2845308B2 (ja) * 1993-04-02 1999-01-13 株式会社アドバンテスト 並列疑似ランダムパターン発生器
US6345001B1 (en) 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
KR100484147B1 (ko) 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7032087B1 (en) * 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
US20050120265A1 (en) * 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
EP1686592A3 (en) 2005-01-19 2007-04-25 Saifun Semiconductors Ltd. Partial erase verify
JP2007133541A (ja) 2005-11-09 2007-05-31 Tokyo Electron Device Ltd 記憶装置、メモリ管理装置、メモリ管理方法及びプログラム
JP2007133683A (ja) 2005-11-10 2007-05-31 Sony Corp メモリシステム
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
JP4930760B2 (ja) * 2006-04-28 2012-05-16 ソニー株式会社 変調装置および方法、並びに記録媒体
US7734861B2 (en) * 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory

Also Published As

Publication number Publication date
TWI463309B (zh) 2014-12-01
CN101562043A (zh) 2009-10-21
TW200949534A (en) 2009-12-01
US20090259803A1 (en) 2009-10-15
CN101562043B (zh) 2013-12-11
KR101517185B1 (ko) 2015-05-04
US8281064B2 (en) 2012-10-02

Similar Documents

Publication Publication Date Title
KR101517185B1 (ko) 메모리 시스템 및 그것의 동작 방법
JP5296464B2 (ja) 向上した信頼性を有するメモリシステム及びそのウェアレベリング方法
KR100830580B1 (ko) 플래시 메모리 장치를 포함한 메모리 시스템의 데이터 복원방법
US9159440B2 (en) Read method for nonvolatile memory device, and data storage system using the same
KR20100111990A (ko) 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법
US20110119432A1 (en) Nonvolatile memory devices having improved read performance resulting from data randomization during write operations
KR101678909B1 (ko) 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8788908B2 (en) Data storage system having multi-bit memory device and on-chip buffer program method thereof
CN105931671B (zh) 对非易失性存储器件编程的方法
US8743604B2 (en) Nonvolatile memory devices having improved read reliability
US9032272B2 (en) Memory systems and block copy methods thereof
US7757153B2 (en) Multi-bit memory device and memory system
US20160259685A1 (en) Memory system and read reclaim method thereof
US8732553B2 (en) Memory system and control method thereof
KR100794664B1 (ko) 플래시 메모리 장치 및 그것의 리프레쉬 방법
US9037776B2 (en) Storage device with flash memory and data storage method
US20100217921A1 (en) Memory system and data processing method thereof
JP2012133877A (ja) 初期シード生成方法とそれを利用するフラッシュメモリ装置及びメモリシステム
KR20100052159A (ko) 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
KR20140008705A (ko) 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
KR101662276B1 (ko) 불 휘발성 메모리 장치 및 그것의 프로그램 및 읽기 방법들
TWI539281B (zh) 資料儲存裝置、編碼單元、包含該裝置、單元的系統、編碼方法以及讀取資料的方法
KR20100088898A (ko) 플래시 메모리 장치, 및 이의 프로그램 및 독출 방법
KR100764748B1 (ko) 향상된 리프레쉬 기능을 갖는 플래시 메모리 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190329

Year of fee payment: 5