KR20130015643A - 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 - Google Patents

메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20130015643A
KR20130015643A KR1020110077748A KR20110077748A KR20130015643A KR 20130015643 A KR20130015643 A KR 20130015643A KR 1020110077748 A KR1020110077748 A KR 1020110077748A KR 20110077748 A KR20110077748 A KR 20110077748A KR 20130015643 A KR20130015643 A KR 20130015643A
Authority
KR
South Korea
Prior art keywords
read
memory
rtc
memory controller
storage area
Prior art date
Application number
KR1020110077748A
Other languages
English (en)
Other versions
KR101826140B1 (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 KR1020110077748A priority Critical patent/KR101826140B1/ko
Priority to US13/564,076 priority patent/US8990535B2/en
Publication of KR20130015643A publication Critical patent/KR20130015643A/ko
Application granted granted Critical
Publication of KR101826140B1 publication Critical patent/KR101826140B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/32Timing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/26Sensing or reading circuits; Data output 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
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

리드 리트라이 동작의 최대 회수를 제어할 수 있는 메모리 컨트롤러의 동작 방법이 개시된다. 상기 방법은 불휘발성 메모리의 저장 영역에 데이터를 프로그램하는 프로그램 동작이 수행될 때 상기 프로그램 동작이 수행된 시각을 지시하는 제1실시간 클락 값을 상기 불휘발성 메모리에 프로그램하는 단계와, 상기 저장 영역에 프로그램된 상기 데이터에 대한 리드 동작이 수행될 때 상기 불휘발성 메모리로부터 읽혀진 상기 제1실시간 클락 값과 상기 리드 동작이 수행된 시각을 지시하는 제2실시간 클락 값을 이용하여 상기 저장 영역에 대한 정보를 획득하는 단계와, 상기 저장 영역에 대한 리드 리트라이 동작이 수행될 때 상기 정보를 이용하여 상기 리드 리트라이 동작의 최대 회수를 감소시키는 단계를 포함한다.

Description

메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템{METHOD FOR OPERATING MEMORY CONTROLLER, AND MEMORY SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 메모리 컨트롤러의 동작 방법에 관한 것으로서, 특히 동일한 저장 영역에 대한 프로그램 동작 시각과 리드 동작 시각의 차이를 실시간 클락(real time clock) 회로를 이용하여 계산하고 계산 결과에 따라 상기 저장 영역에 대한 리드 리트라이 동작의 최대 회수를 감소시킬 수 있는 메모리 컨트롤러의 동작 방법과 상기 방법을 수행할 수 있는 메모리 시스템에 관한 것이다.
메모리(memory)는 상기 메모리로 전원이 공급되는 동안에만 상기 메모리에 저장된 데이터를 유지하는 휘발성(volatile) 메모리와 상기 메모리로 전원의 공급이 차단되더라도 상기 메모리에 저장된 데이터를 유지하는 불휘발성(non-volatile) 메모리로 분류된다.
상기 휘발성 메모리는 DRAM(dynamic random access memory)를 포함하고, 상기 불휘발성 메모리는 ROM(read only memory), 플래시(flash) 메모리, 및 저항성 (resistive) 메모리를 포함한다. 상기 플래시 메모리는 NAND 플래시 메모리와 NOR 플래시 메모리를 포함하다.
NAND 플래시 메모리의 제조 공정이 미세화됨에 따라, 상기 NAND 플래시 메모리의 수명이 짧아지고 상기 NAND 플래시 메모리에 저장된 데이터를 리드하는 리드 (read) 동작에서 리드 에러(read error)는 점점 증가한다.
상기 리드 동작 동안에 발생한 상기 리드 에러를 복구하기 위해, 상기 NAND 플래시 메모리는 정해진 회수 범위 이내에서 리드 데이터에 대한 상기 리드 동작이 성공할 때까지 리드 전압 레벨을 변동시켜가면서 상기 리드 데이터에 대한 상기 리드 에러를 복구하는 리드 리트라이 동작(read retry operation)을 수행한다.
리드 에러를 복구하기 위한 리드 리트라이 동작이 빈번히 수행됨에 따라, NAND 플래시 메모리의 성능과 상기 NAND 플래시 메모리를 포함하는 메모리 시스템의 성능이 저하된다.
따라서 리드 동작 동안 NAND 플래시 메모리의 성능과 상기 NAND 플래시 메모리를 포함하는 메모리 시스템의 성능을 개선하기 위한 방법이 필요하다.
본 발명이 이루고자 하는 기술적인 과제는 리드 동작 동안에 NAND 플래시 메모리의 성능과 상기 NAND 플래시 메모리를 포함하는 메모리 시스템의 성능을 개선하기 위한 방법과 상기 방법을 수행할 수 있는 전자 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은 불휘발성 메모리의 저장 영역에 데이터를 프로그램하는 프로그램 동작이 수행될 때 상기 프로그램 동작이 수행된 시각(time-of-day)을 지시하는 제1실시간 클락(real time clock(RTC)) 값을 상기 불휘발성 메모리에 프로그램하는 단계와, 상기 저장 영역에 프로그램된 상기 데이터에 대한 리드 동작이 수행될 때 상기 불휘발성 메모리로부터 읽혀진 상기 제1TRC 값과 상기 리드 동작이 수행된 시각을 지시하는 제2RTC 값을 이용하여 상기 저장 영역에 대한 정보를 획득하는 단계와, 상기 저장 영역에 대한 리드 리트라이 동작이 수행될 때 상기 정보를 이용하여 상기 리드 리트라이 동작의 최대 회수를 제어하는 단계를 포함한다.
상기 메모리 컨트롤러의 동작 방법은 상기 메모리 컨트롤러가 부팅(booting)될 때 호스트로부터 출력된 부팅 시각을 지시하는 부팅 RTC 값을 카운터를 이용하여 생성하는 단계와, 상기 부팅 RTC 값을 상기 카운터를 이용하여 상기 제1RTC 값과 상기 제2RTC 값 각각으로 업-데이트하는 단계를 더 포함한다.
상기 정보를 획득하는 단계는 상기 제2RTC 값과 상기 제1RTC 값의 차이를 이용하여 상기 정보를 획득한다.
상기 메모리 컨트롤러의 동작 방법은 실시간 클락 회로를 이용하여 상기 제1RTC 값을 계산한 후 상기 제2RTC 값을 계산하는 단계를 더 포함한다. 상기 제1RTC 값과 상기 제2RTC 값 각각은 상기 메모리 컨트롤러가 부팅될 때 호스트로부터 출력된 부팅 시각을 나타내는 부팅 RTC 값으로부터 상기 실시간 클락 회로에 의하여 업-데이트된 값이다.
상기 리드 리트라이 동작을 제어하는 단계는 상기 리드 리트라이 동작의 상기 최대 회수를 감소시킨다.
상기 리드 리트라이 동작을 제어하는 단계는 상기 리드 리트라이 동작에 필요한 초기 리드 전압 레벨을 제어하기 위한 제어 신호를 상기 불휘발성 메모리로 전송한다.
본 발명의 실시예에 따른 메모리 시스템은 저장 영역을 포함하는 불휘발성 메모리와, 상기 불휘발성 메모리의 동작을 제어하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 저장 영역에 대한 리드 동작 동안 상기 저장 영역에 대해 프로그램 동작이 수행된 제1시각과 상기 저장 영역에 대해 상기 리드 동작이 수행된 제2시각의 차이를 계산하고 계산 결과에 따라 상기 저장 영역에 대한 리드 리트라이 동작의 최대 회수를 제어한다.
상기 메모리 컨트롤러는 클락 신호에 응답하여 제1실시간 클락(real time clock(RTC)) 값과 제2RTC 값을 생성하는 실시간 클락(RTC) 회로와, 상기 제1시각을 지시하는 상기 제1RTC 값을 상기 불휘발성 메모리로의 프로그램을 제어하고, 상기 리드 동작이 수행될 때 상기 불휘발성 메모리로부터 읽혀진 상기 제1RTC 값과 상기 제2시각을 지시하는 상기 제2RTC 값을 이용하여 상기 차이를 계산하고, 상기 리트라이 동작이 수행될 때 상기 차이를 이용하여 상기 리드 리트라이 동작의 상기 최대 회수의 감소를 제어하는 마이크로프로세서를 포함한다.
상기 RTC 회로는 상기 클락 신호에 응답하여 상기 제1RTC 값과 상기 제2TRC 값을 생성하기 위한 카운터를 포함한다.
상기 마이크로프로세서는 상기 리드 리트라이 동작에 필요한 초기 리드 전압 레벨을 제어하기 위한 제어 신호를 상기 불휘발성 메모리로 전송한다.
상기 메모리 시스템은 상기 불휘발성 메모리와 상기 메모리 컨트롤러를 포함하는 MCP(multi-chip package)이다.
실시 예에 따라 상기 메모리 시스템은 상기 프로그램 동작을 수행하기 위해 호스트로부터 출력된 프로그램 데이터를 상기 메모리 컨트롤러로 전송하고, 상기 리드 리트라이 동작에 따라 상기 메모리 컨트롤러로부터 출력된 리드 데이터를 상기 호스트로 전송하는 카드 인터페이스를 더 포함한다.
다른 실시 예에 따라 상기 메모리 시스템은 광학 이미지를 디지털 이미지로 변환하기 위한 이미지 센서를 더 포함하고, 상기 메모리 컨트롤러는 상기 디지털 이미지를 상기 저장 영역에 프로그램하는 상기 프로그램 동작 또는 상기 저장 영역에 저장된 상기 디지털 이미지를 리드하는 상기 리드 동작을 제어한다.
또 다른 실시 예에 따라 상기 메모리 시스템은 무선 송수신기를 더 포함하며, 상기 마이크프로세서는 상기 무선 송수신기로부터 출력된 데이터를 상기 저장 영역에 프로그램하는 상기 프로그램 동작 또는 상기 리드 리트라이 동작에 따라 상기 저장 영역으로부터 리드된 데이터를 상기 무선 송수신기로의 전송을 제어한다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은 불휘발성 메모리의 동일한 저장 영역에 대해 프로그램 동작과 리드 동작이 시간 차이를 두고 수행될 때 상기 시간 차이를 실시간 클락 회로를 이용하여 계산하고 계산 결과에 따라 상기 저장 영역에 대한 리드 리트라이 동작의 최대 회수를 감소시킬 수 있는 효과가 있다.
따라서 상기 메모리 컨트롤러를 포함하는 메모리 시스템의 리드 성능은 향상된다.
또한, 본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은 상기 시간 차이를 상기 실시간 클락 회로를 이용하여 계산하고 계산 결과에 따라 상기 불휘발성 메모리의 수명을 연장하기 위한 웨어 레벨링을 효과적으로 수행할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 메모리 컨트롤러를 포함하는 메모리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 메모리 컨트롤러의 블록도를 나타낸다.
도 3은 도 2에 도시된 실시간 클락(real time clock) 회로의 동작을 설명하기 위한 신호 파형도를 나타낸다.
도 4는 시간의 경과에 따른 전하 손실에 기인한 불휘발성 메모리 셀들의 문턱 전압의 산포를 나타낸다.
도 5는 프로그램 시각과 리드 시각의 차이에 따른 문턱 전압의 변화와 리드 리트라이의 최대 회수의 변화를 예시적으로 나타내는 표이다.
도 6은 도 1에 도시된 메모리 시스템의 동작을 설명하기 위한 신호 흐름도를 나타낸다.
도 7은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 일 실시예를 나타낸다.
도 8은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 다른 실시예를 나타낸다.
도 9는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 10은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 11은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 12는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 13은 도 12에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 실시예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 메모리 컨트롤러를 포함하는 메모리 시스템의 블록도를 나타낸다.
도 1을 참조하면, 메모리 시스템(10)은 호스트(20), 메모리 컨트롤러(30), 및 불휘발성 메모리, 예컨대 NAND 플래시 메모리(40)를 포함한다. 실시 예에 따라, 메모리 컨트롤러(30)와 NAND 플래시 메모리(40)는 멀티-칩 패키지(multi-chip package) 형태로 패키징될 수 있다.
호스트(20)는 메모리 컨트롤러(30)의 전반적인 동작을 제어할 수 있다. 예컨대, 호스트(20)는 데이터(DATA)를 NAND 플래시 메모리(40)에 프로그램하기 위한 프로그램 요구(program request), NAND 플래시 메모리(40)에 프로그램된 데이터를 리드하기 위한 리드 요구(read request), 또는 NAND 플래시 메모리(40)에 구현된 다수의 블록들 중에서 특정 블록을 이레이즈(erase)하기 위한 이레이즈 요구를 메모리 컨트롤러(30)로 전송할 수 있다.
또한, 호스트(20)는 각 구성 요소(20, 30, 및 40)로 전원이 공급되고 부팅 (booting)될 때 부팅 시각(time-of-day)을 나타내는 부팅 정보(TIN)를 메모리 컨트롤러(30)로 전송할 수 있다. 즉, 호스트(20)는 메모리 시스템(10)이 부팅될 때마다 부팅 시각을 나타내는 부팅 정보(TIN)를 메모리 컨트롤러(30)로 전송할 수 있다.
예컨대, 부팅 시각은 년월일 또는 년월일 및 시분초를 나타낼 수 있다.
메모리 컨트롤러(30)는 호스트(20)로부터 출력된 프로그램 요구에 따라 NAND 플래시 메모리(40)에서 프로그램 동작이 수행될 수 있도록 상기 프로그램 동작에 필요한 다수의 제어 신호들과 데이터(DATA)를 NAND 플래시 메모리(40)로 출력할 수 있다.
메모리 컨트롤러(30)는 호스트(20)로부터 출력된 리드 요구에 따라 NAND 플래시 메모리(40)에서 리드 동작이 수행될 수 있도록 상기 리드 동작에 필요한 다수의 제어 신호들을 NAND 플래시 메모리(40)로 전송할 수 있다.
또한, 메모리 컨트롤러(30)는 호스트(20)로부터 출력된 이레이즈 요구에 따라 NAND 플래시 메모리(40)에서 이레이즈 동작이 수행될 수 있도록 상기 이레이즈 동작에 필요한 다수의 제어 신호들을 NAND 플래시 메모리(40)로 전송할 수 있다.
메모리 컨트롤러(30)는, NAND 플래시 메모리(40)의 저장 영역, 예컨대 특정 페이지(page)에 대한 리드 동작 동안, 상기 저장 영역에 대해 프로그램 동작이 수행된 제1시각과 상기 저장 영역에 대해 상기 리드 동작이 수행된 제2시각의 차이를 계산하고, 계산 결과에 따라 상기 저장 영역에 대한 정보를 획득할 수 있다.
상기 제1시각과 상기 제2시각 각각은 도 2에 도시된 실시간 클락 회로(30-2)에 의하여 계산될 수 있다.
메모리 컨트롤러(30)는 상기 정보를 이용하여 리드 리트라이 동작의 최대 회수를 제어할 수 있다. 또한, 메모리 컨트롤러(30)는 상기 정보를 이용하여 NAND 플래시 메모리(40)에 포함된 블록 또는 페이지에 대한 웨어 레벨링(wear leveling)을 수행할 수 있다.
NAND 플래시 메모리(40)는 메모리 셀 어레이(41)와 액세스 제어 회로(43)를 포함한다.
데이터(DATA)를 저장하기 위한 메모리 셀 어레이(41)는 다수의 블록들 (blocks)을 포함하고, 상기 다수의 블록들 각각은 다수의 페이지들(pages)을 포함하고, 상기 다수의 페이지들 각각은 다수의 워드 라인들, 다수의 비트 라인들, 및 다수의 NAND 메모리 셀들을 포함한다. 다수의 NAND 메모리 셀들 각각은 1-비트를 저장하기 위한 싱글-레벨 셀(single-level cell(SLC)) 또는 2-비트 이상을 저장하기 위한 멀티-레벨 셀(multi-level cell)일 수 있다.
도 1에서는 설명의 편의를 위하여 다수의 페이지들(PAGE 1-PAGE N)을 포함하는 하나의 블록을 포함하는 메모리 셀 어레이(41)를 도시한다.
액세스 제어 회로(43)는 페이지(예컨대, PAGE 1)에 페이지 데이터를 프로그램하는 프로그램 동작을 수행하기 위하여 메모리 셀 어레이(41)를 액세스하고, 페이지(PAGE 1)에 프로그램된 데이터를 리드하는 리드 동작을 수행하기 위하여 메모리 셀 어레이(41)를 액세스하고, 블록에 프로그램된 데이터를 이레이즈하는 이레이즈 동작을 수행하기 위하여 메모리 셀 어레이(41)를 액세스한다.
NAND 플래시 메모리(40)에서, 프로그램 동작과 리드 동작은 페이지 단위로 수행되고 이레이즈 동작은 블록 단위로 수행된다.
도 2는 도 1에 도시된 메모리 컨트롤러의 블록도를 나타낸다.
메모리 컨트롤러(30)는 마이크로프로세서(30-1), 실시간 클락 회로(30-2), ROM(read only memory; 30-4), RAM(random access memory; 30-5), 호스트 인터페이스(30-6), NAND 인터페이스(30-7), 및 버스(BUS)를 포함한다.
마이크로프로세서(30-1)는 메모리 컨트롤러(20)의 동작을 전반적으로 제어할 수 있는 회로, 로직 코드 및/또는 이들의 조합을 의미한다.
실시간 클락(real time clock(RTC))으로도 불리는 RTC회로(30-2)는 메모리 컨트롤러(20)로 전원, 예컨대 메인 전원 또는 배터리 전원이 공급되는 동안 항상 유지되는 시각을 지속적으로 기록하는 시계의 기능을 수행할 수 있다. 즉, RTC 회로(30-2)는 전원이 공급되는 동안 클락 신호(CLK)에 응답하여 항상 현재 시각을 업-데이트한다.
RTC 회로(30-2)는 클락 신호(CLK)를 생성하는 클락 발생기(30-21)와 클락 신호(CLK)에 따라 시각을 나타내는 카운트 값, 즉 RTC 값을 생성 또는 저장하는 카운터(30-22)를 포함한다. 설명을 위한 일 예로서, RTC 회로(30-2)는 현재 시각이 2011.04.01. 0:00:00 AM일 때, 00000000 h에 상응하는 카운트 값, 즉 RTC 값을 생성 또는 저장할 수 있다.
도 2에서는 설명의 편의를 위하여 클락 발생기(30-21)와 카운터(30-22)를 포함하는 RTC 회로(30-2)가 도시되어 있으나, 실시 예에 따라 카운터(30-22)는 RTC 회로(30-2)의 외부에 구현될 수도 있다.
시간 차이를 두고 저장 영역(PAGE 1)에 대해 프로그램 동작과 리드 동작이 수행될 때, 마이크로프로세서(30-1)는 상기 프로그램 동작이 수행된 시각(예컨대, 2011.04.01. 7:00:00 PM)을 지시하는 RTC 값과 상기 리드 동작이 수행된 시각 (2011.07.25. 09:30:00 AM)을 지시하는 RTC 값을 이용하여 상기 저장 영역에 대한 정보를 획득할 수 있다.
ROM(30-4)은 메모리 컨트롤러(30)의 동작에 필요한 프로그램 코드를 저장할 수 있다. 또한, ROM(30-4)에는 도 5에 도시된 테이블이 저장될 수도 있다.
RAM(30-5)은 마이크로프로세서(30-1)의 동작 메모리로서의 기능을 수행할 수 있다. 따라서 메모리 컨트롤러(30)가 부팅 시, ROM(30-4)으로부터 출력되고 부팅에 관련된 프로그램 코드 및/또는 도 5의 테이블은 RAM(30-5)으로 로딩될 수 있다.
호스트 인터페이스(30-6)는 호스트(20)와 메모리 컨트롤러(30)가 주고받는 제어 신호들 및/또는 데이터를 인터페이싱할 수 있다.
NAND 인터페이스(30-7)는 메모리 컨트롤러(30)와 NAND 플래시 메모리(40)가 주고받는 제어 신호들 및/또는 데이터를 인터페이싱할 수 있다.
각 구성 요소(30-1, 30-2, 30-4, 30-5, 30-6, 및 30-7)는 버스(BUS)는 통하여 서로 통신할 수 있다.
도 3은 도 2에 도시된 실시간 클락(real time clock) 회로의 동작을 설명하기 위한 신호 파형도를 나타낸다.
도 1부터 도 3을 참조하면, 각 구성 요소(20, 30, 및 40)로 전원(PWR)이 공급되면 RTC 회로(30-2)의 클락 발생기(20-21)는 클락 신호(CLK)를 발생한다.
메모리 시스템(10)이 부팅시, 호스트(20)는 부팅 시각을 나타내는 부팅 시각 정보(TIN)를 메모리 컨트롤러(30)로 전송한다.
마이크로프로세서(30-1)는 부팅 시각 정보(TIN)에 응답하여 카운터(30-22)를 인에이블시키기 위한 카운터 인에이블 신호(CNTE)를 생성하고, 카운터(30-22)는 카운터 인에이블 신호(CNTE)에 응답하여 부팅 시각에 대응하는 카운트 값(RTCV), 즉 시작 RTC 값(C1)을 생성 또는 저장할 수 있다.
다른 실시 예에 따라, RTC 회로(30-2)의 카운터(30-22)는 호스트 인터페이스 (30-6)를 통하여 입력된 부팅 시각 정보(TIN)에 응답하여 부팅 시각에 대응하는 카운트 값(RTCV), 즉 시작 RTC 값(C1)을 생성 또는 저장할 수 있다.
카운터(30-22)는 클락 발생기(20-21)로부터 출력된 클락 신호(CLK)에 응답하여 시작 RTC 값(C1)으로부터 지속적으로 증가 또는 업-데이트되는 카운트 값 (RTCV), 즉 RTC 값을 생성 또는 저장할 수 있다.
예컨대, RTC 회로(30-2)는 프로그램 동작이 수행될 때 상기 프로그램 동작이 수행되는 시각을 지시하는 제1RTC 값(C2)과 리드 동작이 수행될 때 상기 리드 동작이 수행되는 시각을 지시하는 제2RTC 값(C3) 각각을 클락 신호(CLK)에 따라 생성 또는 저장할 수 있다.
도 4는 시간의 경과에 따른 전하 손실에 기인한 불휘발성 메모리 셀들의 문턱 전압의 산포를 나타낸다.
도 4를 참조하면, 가로축은 문턱 전압(threshold voltage)을 나타내고 세로축은 NAND 메모리 셀들의 개수를 나타내고, DC1은 프로그램 동작 시의 NAND 메모리 셀들의 산포를 나타내고, DC2는 시간의 경과에 따른 발생한 전하 손실(charge loss)에 따라 쉬프트된 NAND 메모리 셀들의 산포를 나타낸다.
제1초기 리드 전압(Vread1)과 제2초기 리드 전압(Vread2) 각각은 리드 동작에 필요한 리드 전압 레벨 또는 리드 리트라이 동작에 필요한 초기 리드 전압 레벨을 나타낸다. 이때, Vread2<Vread1이다.
FA는 제1초기 리드 전압(Vread1)으로 리드 동작 또는 리드 리트라이 동작이 수행될 때, 리드 에러가 발생할 수 있는 NAND 메모리 셀들의 산포를 나타낸다.
도 5는 프로그램 시각과 리드 시각의 차이에 따른 문턱 전압의 변화와 리드 리트라이의 최대 회수의 변화를 예시적으로 나타내는 표이다.
도 5에 도시된 표는 리드 동작이 수행된 시각을 지시하는 제2RTC 값(C3)과 프로그램 동작이 수행된 시각을 지시하는 제1RTC 값(C2)의 차이(Di, i는 자연수, 1≤i≤n)에 따른 문턱 전압의 변화량(Vthi)을 나타낸다.
즉, NAND 메모리 셀에 데이터가 프로그램된 시간이 오래될수록 시간의 경과에 따른 전하 손실의 양이 많아지므로, 문턱 전압의 변화량(Vthi)이 커진다. 따라서, 데이터가 프로그램된 시간이 오래될수록, 메모리 컨트롤러(30)는 리드 에러가 발생하지 않는 범위 내에서 리드 리트라이 동작의 최대 회수를 감소시킬 수 있다.
예컨대, 리드 동작 동안 또는 리드 리트라이 동작 동안, 메모리 컨트롤러 (30)는 제1차이(D1)에서는 제1변화량(Vth1)을 반영하여 리드 리트라이 동작의 최대 회수를 R1로 설정할 수 있고 제2차이(D2>D1)에서는 제2변화량(Vth2>Vth1)을 반영하여 리드 리트라이 동작의 최대 회수를 R2(R2<R1)로 설정할 수 있고, 제3차이 (D3>D2)에서는 제3변화량(Vth3>Vth2)을 반영하여 리드 리트라이 동작의 최대 회수를 R3(R3<R2)로 설정할 수 있다.
따라서 실시 예에 따른 메모리 컨트롤러(30)는 동일한 저장 영역에 대해 프로그램 동작과 리드 동작이 시간 차이를 두고 수행될 때, 상기 시간 차이를 실시간 클락 회로(30-2)를 이용하여 계산하고 계산 결과에 따라 상기 저장 영역에 대한 리드 리트라이 동작의 최대 회수를 감소시킬 수 있는 효과가 있다. 이에 따라, 메모리 컨트롤러(30)를 포함하는 메모리 시스템(10)의 리드 성능은 향상된다.
본 명세서에서는 설명의 편의를 위하여 상기 계산 결과에 따라 리드 리트라이 동작의 최대 회수를 감소시킬 수 있는 방법을 설명하나, 상기 계산 결과는 NAND플래시 메모리의 신뢰도(reliability), 예컨대 인듀어런스(endurance) 및/또는 데이터 리텐션(data retention)을 평가할 수 있는 지표로서 사용될 수 있다.
상기 인듀어런스는 프로그램/이레이즈 사이클(P/E cycle)에 관련된 지표이고, 상기 데이터 리텐션은 NAND 메모리 셀에 저장된 데이터가 일정 시간 이상 유지되는 특성에 관련된 지표이다.
도 6은 도 1에 도시된 메모리 시스템의 동작을 설명하기 위한 신호 흐름도를 나타낸다.
메모리 시스템(10)의 동작은 도 1부터 도 6을 참조하여 상세히 설명된다.
각 구성 요소(20, 30, 및 40)로 전원이 공급됨에 따라 메모리 시스템(10)이 부팅되면(S10), 호스트(20)는 부팅 시각을 나타내는 부팅 시각 정보(TIN)를 메모리 컨트롤러(30)로 전송한다(S12).
메모리 컨트롤러(30)의 RTC 회로(30-2)는 부팅 시각 정보(TIN)에 따라 시작 RTC 값(C1)을 생성한다(S14). RTC 회로(30-2)는 클락 신호(CLK)가 공급되는 동안 클락 신호(CLK)에 응답하여 시작 RTC 값(C1)을 업-데이트한다.
NAND 플래시 메모리(40)의 저장 영역(예컨대, 제1페이지(PAGE1))에 데이터를 프로그램하기 위한 프로그램 요구(PGM)가 T1시점에 호스트(20)로부터 출력되면 (S16), 메모리 컨트롤러(30)는 상기 프로그램 요구(PGM)에 따라 상기 데이터를 저장 영역((PAGE1)에 프로그램하기 위해 필요한 프로그램 명령과 상기 데이터를 NAND플래시 메모리(40)로 전송한다.
이때, 마이크로프로세서(30-1)는 상기 프로그램 명령에 따라 프로그램 동작이 수행된 시각을 지시하는 제1RTC 값(C2)을 NAND 플래시 메모리(40)의 메타(meta) 영역에 저장하기 위하여 제1RTC 값(C2)을 NAND 플래시 메모리(40)로 전송하는 것을 제어한다(S18). 이때 제1RTC 값(C2)은 RTC 회로(30-2)에 의하여 생성된 값, 즉 시작 RTC 값(C1)으로부터 업-데이트된 값이다.
NAND 플래시 메모리(40)는 상기 데이터를 저장 영역(PAGE1)에 프로그램하는 동작과 제1RTC 값(C2)을 저장 영역(PAGE1)에 관련된 메타 영역에 프로그램하는 동작을 수행한다(S20).
NAND 플래시 메모리(40)의 저장 영역(PAGE1)에 프로그램된 데이터를 리드하기 위한 리드 요구(READ)가 T2시점에 호스트(20)로부터 출력되면(S22), 메모리 컨트롤러(30)의 마이크로프로세서(30-1)는 상기 리드 요구(READ)에 따라 상기 메타 영역에 프로그램된 제1RTC 값(C2)을 리드한다(S24).
상기 T1시점과 T2시점 사이에 메모리 시스템(10)은 적어도 한번 이상 부팅될 수 있다. 또한, 메모리 시스템(10)이 서버로 구현될 경우, 전원은 메모리 시스템(10)으로 지속적으로 공급될 수도 있다.
마이크로프로세서(30-1)는 리드 동작이 수행된 시각을 지시하는 제2RTC 값 (C3)과 프로그램 동작이 수행된 시각을 지시하는 제1RTC 값(C2)을 이용하여 저장 영역(PAGE1)에 대한 정보를 획득할 수 있다(S26).
마이크로프로세서(30-1)는 저장 영역(PAGE1)에 대한 리드 리트라이 동작이 수행될 때 상기 정보를 이용하여 상기 리드 리트라이 동작의 최대 회수를 제어할 수 있다(S28).
즉, 마이크로프로세서(30-1)는 감소된 리드 리트라이 동작의 최대 회수 이내에서 리드 에러가 발생하지 않을 때까지 상기 리드 리트라이 동작을 수행할 수 있다. 예컨대, 제2RTC 값(C3)과 제1RTC 값(C2)의 차이가 D2일 때 마이크로프로세서 (30-1)는 R2 이내에서 리드 리트라이 동작이 수행되도록 NAND 플래시 메모리(40)의 동작을 제어하고, 제2RTC 값(C3)과 제1RTC 값(C2)의 차이가 Dn일 때 마이크로프로세서(30-1)는 Rn(Rn<R1) 이내에서 리드 리트라이 동작이 수행되도록 NAND 플래시 메모리(40)의 동작을 제어한다.
이때, 마이크로프로세서(30-1)는 상기 정보에 따라 리드 리트라이 동작에 필요한 초기 리드 전압 레벨을 제어하기 위한 제어 신호를 불휘발성 메모리(40)로 전송할 수 있다(S30).
도 4에 도시된 바와 같이, NAND 플래시 메모리(40)는 상기 제어 신호에 따라 초기 리드 전압 레벨을 제1초기 리드 전압 레벨(Vread1)로부터 제2초기 리드 전압 레벨(Vread2)로 변경할 수 있다.
따라서 NAND 플래시 메모리(40)는 제2초기 리드 전압 레벨(Vread2)을 이용하여 리드 동작 또는 리드 리트라이 동작을 수행할 수 있다(S32). 예컨대, NAND 플래시 메모리(40)는 리드 리트라이 동작의 최대 회수 이내에서 리드 에러가 발생하지 않을 때까지 제2초기 리드 전압 레벨(Vread2)로부터 리드 전압 레벨을 감소시켜가면서 상기 리드 리트라이 동작을 수행할 수 있다.
메모리 컨트롤러(30)는 리드 동작 또는 리드 리트라이 동작에 따라 에러 정정된 데이터(DATA)를 호스트(20)로 전송한다(S34).
도 7은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 일 실시예를 나타낸다.
도 1부터 도 7을 참조하면, 전자 장치(100)는 이동 전화기(cellular phone), 스마트폰(smart phone), PDA(personal digital assistant), PMP(portable multi-media player) 또는 무선 통신 장치로 구현될 수 있다.
전자 장치(100)는 불휘발성 메모리(40), 불휘발성 메모리(40)의 동작을 제어할 수 있는 메모리 컨트롤러(30), 및 도 1의 호스트(20)의 기능을 수행하는 프로세서(110)를 포함한다.
메모리 컨트롤러(30)는 프로세서(110)의 제어에 따라 불휘발성 메모리(40)의 데이터 액세스 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작을 제어할 수 있다.
불휘발성 메모리(40)에 프로그램된 데이터는 프로세서(110) 및/또는 메모리 컨트롤러(30)의 제어에 따라 디스플레이(120)를 통하여 디스플레이될 수 있다.
무선 송수신기(130)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(130)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(110)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 프로세서(110)는 무선 송수신기(130)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 컨트롤러(30) 또는 디스플레이(120)로 전송할 수 있다. 메모리 컨트롤러(30)는 프로세서(110)에 의하여 처리된 신호를 불휘발성 메모리(40)에 프로그램할 수 있다.
또한, 무선 송수신기(130)는 프로세서(110)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 예컨대 메모리 컨트롤러(30)의 마이크로프로세서(30-1)는 무선 송수신기(130)로부터 출력된 데이터를 불휘발성 메모리(40)의 저장 영역(PAGE 1)에 프로그램하는 프로그램 동작 또는 리드 리트라이 동작에 따라 저장 영역(PAGE 1)으로부터 리드된 데이터를 무선 송수신기(130)로의 전송을 제어할 수 있다.
입력 장치(140)는 프로세서(110)의 동작을 제어하기 위한 제어 신호 또는 프로세서(110)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(110)는 메모리 컨트롤러(30)로부터 출력된 데이터, 무선 송수신기 (130)로부터 출력된 데이터, 또는 입력 장치(140)로부터 출력된 데이터가 디스플레이(120)를 통하여 디스플레이될 수 있도록 디스플레이(120)의 동작을 제어할 수 있다.
실시 예에 따라, 불휘발성 메모리(40)의 동작을 제어할 수 있는 메모리 컨트롤러(30)는 프로세서(110)의 일부로서 구현될 수 있고 또한 프로세서(110)와 별도의 칩으로 구현될 수 있다.
도 8은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 다른 실시예를 나타낸다.
도 8에 도시된 전자 장치(200)는 PC(personal computer), 태블릿 (tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA, PMP, MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
전자 장치(200)는 불휘발성 메모리(40), 불휘발성 메모리(40)의 동작을 제어할 수 있는 메모리 컨트롤러(30), 및 도 1의 호스트(20)의 기능을 수행하는 프로세서(210)를 포함한다.
프로세서(210)는 입력 장치(220)를 통하여 입력된 데이터에 따라 불휘발성 메모리(40)에 저장된 데이터를 디스플레이(230)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(220)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
프로세서(210)는 메모리 시스템(200)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(30)의 동작을 제어할 수 있다.
실시 예에 따라 불휘발성 메모리(40)의 동작을 제어할 수 있는 메모리 컨트롤러(30)는 프로세서(210)의 일부로서 구현될 수 있고 또한 프로세서(210)와 별도의 칩으로 구현될 수 있다.
예컨대 메모리 컨트롤러(30)의 마이크로프로세서(30-1)는 입력 장치(220) 또는 프로세서(210)로부터 출력된 데이터를 불휘발성 메모리(40)의 저장 영역(PAGE 1)에 프로그램하는 프로그램 동작 또는 리드 리트라이 동작에 따라 저장 영역(PAGE 1)으로부터 리드된 데이터를 디스플레이(230) 또는 프로세서(210)로의 전송을 제어할 수 있다.
도 9는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 9에 도시된 전자 장치(300)는 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 전자 장치(300)는 불휘발성 메모리(40), 메모리 컨트롤러(30), 및 카드 인터페이스(320)를 포함한다.
메모리 컨트롤러(30)는 메모리 장치(40)와 카드 인터페이스(320) 사이에서 데이터 통신을 제어할 수 있다.
실시 예에 따라, 카드 인터페이스(320)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(320)는 호스트(330)의 프로토콜에 따라 호스트(330)와 메모리 컨트롤러(30) 사이에서 데이터 통신을 인터페이스할 수 있다. 호스트(330)는 도 1에 도시된 호스트(20)와 실질적으로 동일한 구조로 구현될 수 있다.
카드 인터페이스(320)는 프로그램 동작을 수행하기 위해 호스트(330)로부터 출력된 프로그램 데이터를 메모리 컨트롤러(30)로 전송하고, 리드 리트라이 동작에 따라 메모리 컨트롤러(30)로부터 출력된 리드 데이터를 호스트(330)로 전송한다.
실시 예에 따라, 카드 인터페이스(320)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(330)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
전자 장치(300)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트 (330)의 호스트 인터페이스(350)와 접속될 때, 호스트 인터페이스(350)는 마이크로프로세서(340)의 제어에 따라 카드 인터페이스(320)와 메모리 컨트롤러(30)를 통하여 불휘발성 메모리(40)와 데이터 통신을 수행할 수 있다.
도 10은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 10에 도시된 전자 장치(400)는 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
전자 장치(400)는 불휘발성 메모리(40), 불휘발성 메모리(40)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(30), 및 도 1에 도시된 도 1의 호스트(20)의 기능을 수행하는 프로세서(410)를 포함한다.
전자 장치(400)의 이미지 센서(420)는 광학 이미지를 디지털 이미지로 변환하고, 변환된 디지털 이미지는 프로세서(410) 또는 메모리 컨트롤러(30)로 전송된다. 프로세서(410)의 제어에 따라, 상기 변환된 디지털 이미지는 디스플레이(430)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(30)를 통하여 불휘발성 메모리 (40)에 저장될 수 있다.
또한, 불휘발성 메모리(40)에 저장된 데이터는 프로세서(410) 또는 메모리 컨트롤러(30)의 제어에 따라 디스플레이(430)를 통하여 디스플레이된다.
실시 예에 따라 불휘발성 메모리(40)의 동작을 제어할 수 있는 메모리 컨트롤러(30)는 프로세서(410)의 일부로서 구현될 수 있고 또한 프로세서(410)와 별개의 칩으로 구현될 수 있다.
예컨대, 메모리 컨트롤러(30)는 이미지 센서(420)로부터 출력된 디지털 이미지를 불휘발성 메모리(40)의 저장 영역(PAGE 1)에 프로그램하는 프로그램 동작 또는 저장 영역(PAGE 1)에 저장된 디지털 이미지를 리드하는 리드 동작을 제어할 수 있다.
도 11은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 11을 참조하면, 전자 장치(500)는 불휘발성 메모리(40)와 불휘발성 메모리(40)의 동작을 제어할 수 있는 CPU(central processing unit; 510)를 포함한다.
전자 장치(500)는 CPU(510)의 동작 메모리(operation memory)로서 사용될 수 있는 메모리 장치(550)를 포함한다. 메모리 장치(550)는 ROM(read only memory)과 같은 비휘발성 메모리로 구현될 수 있고 SRAM(Static random access memory)과 같은 휘발성 메모리로 구현될 수 있다.
전자 장치(500)에 접속된 호스트(HOST)는 메모리 인터페이스(30')와 호스트 인터페이스(540)를 통하여 불휘발성 메모리(40)와 데이터 통신을 수행할 수 있다. 호스트(HOST)는 도 1에 도시된 호스트(20)의 기능을 수행할 수 있다.
CPU(510)의 제어에 따라 에러 정정 코드(error correction code(ECC)) 블록 (530)은 메모리 인터페이스(30')를 통하여 불휘발성 메모리(40)로부터 출력된 데이터에 포함된 에러 비트를 검출하고, 상기 에러 비트를 정정하고, 에러 정정된 데이터를 호스트 인터페이스(540)를 통하여 호스트(HOST)로 전송할 수 있다.
CPU(510)는 버스(501)를 통하여 메모리 인터페이스(30'), ECC 블록(530), 호스트 인터페이스(540), 및 메모리 장치(550) 사이에서 데이터 통신을 제어할 수 있다. 이때 메모리 인터페이스(30')는 도 1과 도 2에 도시된 메모리 컨트롤러(30)의 기능을 수행할 수 있다.
전자 장치(500)는 플래시 메모리 드라이브, USB 메모리 드라이브, IC-USB 메모리 드라이브, 또는 메모리 스틱(memory stick)으로 구현될 수 있다.
도 12는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시예를 나타낸다.
도 12를 참조하면, 전자 장치(600)는 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다.
전자 장치(600)는 다수의 불휘발성 메모리들(40), 다수의 불휘발성 메모리들 (40) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(30), DRAM과 같은 휘발성 메모리 장치(630), 메모리 컨트롤러(30)와 호스트(640) 사이에서 주고받는 데이터를 휘발성 메모리 장치(630)에 저장하는 것을 제어하는 버퍼 매니저(620)를 포함할 수 있다. 호스트(640)는 도 1에 도시된 호스트(20)와 동일한 기능을 수행할 수 있다. 다수의 불휘발성 메모리들(40) 각각은 NAND 플래시 메모리로 구현될 수 있다.
도 13은 도 12에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 실시예를 나타낸다.
도 12와 도 13을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 처리 시스템(700)은 RAID 컨트롤러(710)와 다수의 전자 장치들(600-1~600-n; n는 자연수)을 포함할 수 있다.
다수의 전자 장치들(600-1~600-n) 각각은 도 12에 도시된 전자 장치(600), 예컨대 메모리 시스템일 수 있다. 다수의 전자 장치들(600-1~600-n)은 RAID 어레이를 구성할 수 있다. 데이터 처리 시스템(700)은 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작 동안, RAID 컨트롤러(710)는 호스트(HOST)로부터 출력된 프로그램 명령에 따라 호스트(HOST)로부터 출력된 프로그램 데이터를 RAID 레벨에 따라 다수의 전자 장치들(600-1~600-n) 중에서 적어도 어느 하나의 전자 장치로 출력할 수 있다.
리드 동작 동안, RAID 컨트롤러(710)는 호스트(HOST)로부터 출력된 리드 명령에 따라 다수의 전자 장치들(600-1~600-n) 중에서 적어도 어느 하나의 전자 장치로부터 읽혀진 데이터를 호스트(HOST)로 전송할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 메모리 시스템
20: 호스트
30: 메모리 컨트롤러
30-1: 마이크로프로세서
30-2: 실시간 클락 회로
30-3: 카운터
30-4: ROM(read only memory)
30-5: RAM(random access memory)
30-6: 호스트 인터페이스
30-7: NAND 인터페이스
40: 불휘발성 메모리

Claims (10)

  1. 불휘발성 메모리의 저장 영역에 데이터를 프로그램하는 프로그램 동작이 수행될 때 상기 프로그램 동작이 수행된 시각(time-of-day)을 지시하는 제1실시간 클락(real time clock(RTC)) 값을 상기 불휘발성 메모리에 프로그램하는 단계;
    상기 저장 영역에 프로그램된 상기 데이터에 대한 리드 동작이 수행될 때 상기 불휘발성 메모리로부터 읽혀진 상기 제1TRC 값과 상기 리드 동작이 수행된 시각을 지시하는 제2RTC 값을 이용하여 상기 저장 영역에 대한 정보를 획득하는 단계; 및
    상기 저장 영역에 대한 리드 리트라이 동작이 수행될 때 상기 정보를 이용하여 상기 리드 리트라이 동작의 최대 회수를 제어하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러가 부팅(booting)될 때 호스트로부터 출력된 부팅 시각을 지시하는 부팅 RTC 값을 카운터를 이용하여 생성하는 단계; 및
    상기 부팅 RTC 값을 상기 카운터를 이용하여 상기 제1RTC 값과 상기 제2RTC 값 각각으로 업-데이트하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  3. 제1항에 있어서, 상기 정보를 획득하는 단계는,
    상기 제2RTC 값과 상기 제1RTC 값의 차이를 이용하여 상기 정보를 획득하는 메모리 컨트롤러의 동작 방법.
  4. 제1항에 있어서, 실시간 클락 회로를 이용하여 상기 제1RTC 값을 계산한 후 상기 제2RTC 값을 계산하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  5. 제4항에 있어서,
    상기 제1RTC 값과 상기 제2RTC 값 각각은 상기 메모리 컨트롤러가 부팅될 때 호스트로부터 출력된 부팅 시각을 나타내는 부팅 RTC 값으로부터 상기 실시간 클락 회로에 의하여 업-데이트된 값인 메모리 컨트롤러의 동작 방법.
  6. 제1항에 있어서, 상기 리드 리트라이 동작을 제어하는 단계는,
    상기 리드 리트라이 동작의 상기 최대 회수를 감소시키는 메모리 컨트롤러의 동작 방법.
  7. 제1항에 있어서, 상기 리드 리트라이 동작을 제어하는 단계는,
    상기 리드 리트라이 동작에 필요한 초기 리드 전압 레벨을 제어하기 위한 제어 신호를 상기 불휘발성 메모리로 전송하는 메모리 컨트롤러의 동작 방법.
  8. 저장 영역을 포함하는 불휘발성 메모리; 및
    상기 불휘발성 메모리의 동작을 제어하는 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는,
    상기 저장 영역에 대한 리드 동작 동안, 상기 저장 영역에 대해 프로그램 동작이 수행된 제1시각과 상기 저장 영역에 대해 상기 리드 동작이 수행된 제2시각의 차이를 계산하고 계산 결과에 따라 상기 저장 영역에 대한 리드 리트라이 동작의 최대 회수를 제어하는 메모리 시스템.
  9. 제8항에 있어서, 상기 메모리 컨트롤러는,
    클락 신호에 응답하여 제1실시간 클락(real time clock(RTC)) 값과 제2RTC 값을 생성하는 실시간 클락(RTC) 회로; 및
    상기 제1시각을 지시하는 상기 제1RTC 값을 상기 불휘발성 메모리로의 프로그램을 제어하고, 상기 리드 동작이 수행될 때 상기 불휘발성 메모리로부터 읽혀진 상기 제1RTC 값과 상기 제2시각을 지시하는 상기 제2RTC 값을 이용하여 상기 차이를 계산하고, 상기 리트라이 동작이 수행될 때 상기 차이를 이용하여 상기 리드 리트라이 동작의 상기 최대 회수의 감소를 제어하는 마이크로프로세서를 포함하는 메모리 시스템.
  10. 제9항에 있어서, 상기 RTC 회로는,
    상기 클락 신호에 응답하여 상기 제1RTC 값과 상기 제2TRC 값을 생성하기 위한 카운터를 포함하는 메모리 시스템.
KR1020110077748A 2011-08-04 2011-08-04 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 KR101826140B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110077748A KR101826140B1 (ko) 2011-08-04 2011-08-04 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
US13/564,076 US8990535B2 (en) 2011-08-04 2012-08-01 Method for operating memory controller, and memory system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110077748A KR101826140B1 (ko) 2011-08-04 2011-08-04 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20130015643A true KR20130015643A (ko) 2013-02-14
KR101826140B1 KR101826140B1 (ko) 2018-03-22

Family

ID=47627709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110077748A KR101826140B1 (ko) 2011-08-04 2011-08-04 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US8990535B2 (ko)
KR (1) KR101826140B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112529A (ko) * 2015-03-19 2016-09-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
KR20190113080A (ko) * 2018-03-27 2019-10-08 삼성전자주식회사 메모리 모듈을 포함하는 메모리 시스템, 메모리 모듈, 그리고 메모리 모듈의 동작 방법
KR20200048499A (ko) * 2018-10-30 2020-05-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10977117B2 (en) 2018-04-27 2021-04-13 SK Hynix Inc. Memory device, a memory system and an operating method thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559140B (zh) * 2013-10-29 2016-07-20 深圳创维数字技术有限公司 一种用于flash存储数据的方法及装置
KR20170076883A (ko) 2015-12-24 2017-07-05 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
CN110246533B (zh) * 2018-03-09 2020-11-13 建兴储存科技(广州)有限公司 固态储存装置的失败模式检测方法及错误更正方法
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
KR102653661B1 (ko) * 2018-12-11 2024-04-03 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
TWI746927B (zh) 2019-01-24 2021-11-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
KR20200132270A (ko) 2019-05-16 2020-11-25 에스케이하이닉스 주식회사 메모리 장치, 메모리 장치를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR102653659B1 (ko) * 2019-07-05 2024-04-03 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11023172B2 (en) * 2019-07-26 2021-06-01 Micron Technology, Inc. Selecting read voltage using write transaction data
KR20210112872A (ko) 2020-03-06 2021-09-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2315887B (en) 1996-07-27 2000-07-05 Motorola Gmbh Method and apparatus for re-programming memory device
JPH10254590A (ja) 1997-03-07 1998-09-25 Seiko Epson Corp 集積回路および情報処理装置
JPH1185571A (ja) 1997-09-03 1999-03-30 Nec Corp フラッシュメモリへのログ格納方式
JP2003006051A (ja) * 2001-06-22 2003-01-10 Matsushita Electric Ind Co Ltd 電子媒体へのアクセス制限システム
KR101030385B1 (ko) * 2006-02-13 2011-04-20 삼성전자주식회사 내부 메모리만을 가지는 시스템의 부팅 장치 및 방법
US7770079B2 (en) 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
US8452934B2 (en) 2008-12-16 2013-05-28 Sandisk Technologies Inc. Controlled data access to non-volatile memory
KR101626528B1 (ko) * 2009-06-19 2016-06-01 삼성전자주식회사 플래시 메모리 장치 및 이의 데이터 독출 방법
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8819503B2 (en) * 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112529A (ko) * 2015-03-19 2016-09-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
KR20190113080A (ko) * 2018-03-27 2019-10-08 삼성전자주식회사 메모리 모듈을 포함하는 메모리 시스템, 메모리 모듈, 그리고 메모리 모듈의 동작 방법
US10977117B2 (en) 2018-04-27 2021-04-13 SK Hynix Inc. Memory device, a memory system and an operating method thereof
KR20200048499A (ko) * 2018-10-30 2020-05-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10908843B2 (en) 2018-10-30 2021-02-02 SK Hynix Inc. Memory system for managing free pages based on real time clock and operating method thereof

Also Published As

Publication number Publication date
US8990535B2 (en) 2015-03-24
KR101826140B1 (ko) 2018-03-22
US20130036261A1 (en) 2013-02-07

Similar Documents

Publication Publication Date Title
KR101826140B1 (ko) 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
US8615702B2 (en) Method and apparatus for correcting errors in memory device
US9773565B1 (en) Memory retry-read method, memory storage device and memory control circuit unit
KR20120035064A (ko) 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
US10977116B2 (en) Data access method, memory control circuit unit and memory storage device
US10782920B2 (en) Data access method, memory storage apparatus and memory control circuit unit
KR102350644B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US20170206006A1 (en) Memory management method, memory storage device and memory control circuit unit
US9892799B1 (en) Read voltage tracking method, memory storage device and memory control circuit unit
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
US20160027524A1 (en) Data storage device and operating method thereof
US20200326736A1 (en) Temperature control circuit, memory storage device and temperature control method
US10528264B2 (en) Storage device and data processing system including the same
CN103853503A (zh) 存储设备、快闪存储器、以及操作所述存储设备的方法
US11301311B2 (en) Memory control method, memory storage device, and memory control circuit unit
CN107045890B (zh) 数据保护方法、存储器控制电路单元及存储器存储装置
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
TW201835753A (zh) 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
KR102187524B1 (ko) 비휘발성 메모리 장치 및 이의 동작 방법
KR20190060429A (ko) 메모리 시스템 및 이의 동작 방법
US8276033B2 (en) Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same
US11449422B2 (en) Memory controller and operating method thereof
US8583855B2 (en) Flash memory preprocessing system and method
US10969987B2 (en) Memory device, memory system including the memory device, and method of operating the memory system
US8914572B2 (en) Memory controllers and memory systems including the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right