KR101131560B1 - 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 - Google Patents

웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR101131560B1
KR101131560B1 KR1020100068395A KR20100068395A KR101131560B1 KR 101131560 B1 KR101131560 B1 KR 101131560B1 KR 1020100068395 A KR1020100068395 A KR 1020100068395A KR 20100068395 A KR20100068395 A KR 20100068395A KR 101131560 B1 KR101131560 B1 KR 101131560B1
Authority
KR
South Korea
Prior art keywords
logical group
chip
memory controller
target
logical
Prior art date
Application number
KR1020100068395A
Other languages
English (en)
Other versions
KR20120007722A (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 KR1020100068395A priority Critical patent/KR101131560B1/ko
Priority to US12/963,379 priority patent/US8671239B2/en
Priority to TW100101760A priority patent/TWI523017B/zh
Publication of KR20120007722A publication Critical patent/KR20120007722A/ko
Application granted granted Critical
Publication of KR101131560B1 publication Critical patent/KR101131560B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

비휘발성 메모리 장치는, 호스트 인터페이스, 상기 호스트 인터페이스와 연결된 메모리 컨트롤러, 상기 메모리 컨트롤러에 의해 제어되는 복수의 칩을 포함하는 메모리 영역을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 칩에 논리적 어드레스를 부여하여 가상의 논리적 그룹을 형성하고, 상기 논리적 그룹별 전체 삭제 횟수에 따른 복수의 임계치 및 복수의 검색 범위를 설정하여 웨어 레벨링을 단계적으로 수행한다.

Description

웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법{Non-Volitile Memory Device For Performing Wear-Leveling and Method Thereof}
본 발명은 비휘발성 메모리 장치 및 그의 제어 방법에 관한 것으로서, 보다 구체적으로는 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법에 관한 것이다.
일반적으로 비휘발성 메모리를 많은 휴대용 정보 기기의 저장용 메모리로 사용하고 있다. 더 나아가, 최근에는 PC(Personal Computer)에서 HDD(Hard Disk Drive)를 대신하여 낸드(NAND) 플래시 메모리를 사용한 SSD(Solid State Drive)가 출시되고 있어 급속도로 HDD 시장을 잠식할 것으로 전망되고 있다.
통상적으로 이러한 SSD와 같은 반도체 스토리지 시스템에서 데이터 파일을 제어하는 것은, 데이터 파일을 식별할 수 있는 논리적 어드레스(logical address)가 지정하는 페이지에 실제 데이터를 라이트, 삭제 및 갱신하는 것으로 이루어진다. 보다 구체적으로, 논리적 어드레스와 데이터 저장 영역의 물리적 어드레스(physical address)를 FTL(Flash Translation Layer)변환으로 맵핑시킨다. 이후, 호스트(미도시)의 명령에 따라 논리적 어드레스를 참조하면, 논리적 어드레스와 맵핑된 물리적 어드레스가 지정하는 해당 위치에 데이터를 라이트, 삭제 및 리드할 수 있다. 물리적 어드레스란, 메모리 영역의 페이지, 또는 서브 블록의 위치 정보이다.
낸드 플래시 메모리의 경우, 셀의 균등한 수명 사용을 위해 웨어 레벨링(wear leveling)을 수행한다.
이러한 웨어 레벨링을 하기 위해서는 모든 블록의 삭제 횟수 정보를 낸드 플래시 메모리 영역에 저장하고 있다가, 웨어 레벨링 수행이 필요한 때에 이들 정보를 램(RAM) 버퍼에 로딩하여 교체 가능한 블록을 검색(searching)하여 물리적 위치 또는 물리적 어드레스를 변경한다.
그러나, 최근의 대용량의 SSD 추세로 메모리 영역의 블록수가 증가함에 따라 이들 전체 블록의 삭제 횟수를 로딩해야 하는 램 버퍼의 메모리 증가도 불가피해졌다. 그러나, 비용 및 칩 면적에 의해 램 버퍼의 메모리 증가는 제한이 될 수 밖에 없다.
본 발명의 기술적 과제는 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법을 제공하는 것이다.
본 발명의 기술적 과제를 달성하기 위하여, 일 실시예에 따른 비휘발성 메모리 장치는, 호스트 인터페이스, 상기 호스트 인터페이스와 연결된 메모리 컨트롤러, 상기 메모리 컨트롤러에 의해 제어되는 복수의 칩을 포함하는 메모리 영역을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 칩에 논리적 어드레스를 부여하여 가상의 논리적 그룹을 형성하고, 상기 논리적 그룹별 전체 삭제 횟수에 따른 복수의 임계치 및 복수의 검색 범위를 설정하여 웨어 레벨링을 단계적으로 수행한다.
본 발명의 기술적 과제를 달성하기 위하여, 다른 실시예에 따른 비휘발성 메모리 장치는, 호스트 인터페이스, 상기 호스트 인터페이스와 연결된 메모리 컨트롤러, 상기 메모리 컨트롤러에 의해 제어되는 복수의 칩을 포함하는 메모리 영역을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 칩을 포함하여 가상의 논리적 그룹으로 그룹핑하고, 상기 논리적 그룹에 대한 삭제 횟수 정보 및 물리적으로 동일 채널에 대응되는 칩들에 대한 삭제 횟수 정보를 이용하여 웨어 레벨링을 수행한다.
본 발명의 다른 기술적 과제를 달성하기 위하여, 비휘발성 메모리 장치의 제어 방법은, 복수의 칩을 포함한 가상의 논리적 그룹에 대한 전체 삭제 횟수를 누산하고, 상기 칩별 삭제 횟수를 이용하여 칩별 편차 정보를 저장하는 단계; 웨어 레벨링 조건이 만족되면 상기 논리적 그룹에 대한 상기 전체 삭제 횟수가 기 설정된 복수의 임계치 기준값을 초과하는지 여부를 각각 판단하는 단계 및 상기 판단 결과에 따라 웨어 레벨링 대상이 되는 타겟 논리적 그룹의 칩 검색 범위를 서로 다르게 한정하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 웨어 레벨링의 조건을 다양화하고 그에 따른 검색 범위를 다양하게 함으로써, 웨어 레벨링 수행 시간을 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 블록도,
도 2는 도 1에 따른 논리적 그룹을 도식화한 블록도,
도 3은 도 2에 따른 논리적 그룹의 삭제 횟수를 저장한 테이블,
도 4는 복수의 웨어 레벨링 임계치에 따른 논리적 블록의 스캔 범위를 나타낸 그래프,
도 5는 본 발명의 다른 실시예에 따른 논리적 그룹의 삭제 횟수를 저장한 테이블, 및
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 제어 방법을 나타낸 플로우 차트이다.
이하, 본 발명의 실시예에 의한 본 발명의 일 실시예에 따른 비휘발성 메모리 장치 및 제어 방법을 설명하기 위한 블록도 또는 플로우 차트에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
또한, 각 블록도는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 블록도이다. 여기서, 비휘발성 메모리 장치는 낸드 플래시 메모리를 이용한 메모리 장치로 예시하기로 한다.
도 1을 참조하면, 비휘발성 메모리 장치(100)는 호스트 인터페이스(110), 버퍼부(120), MCU(130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.
우선, 호스트 인터페이스(110)는 버퍼부(120)와 연결된다. 호스트 인터페이스(110)는 외부 호스트 (미도시)와 버퍼부(120)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다. 호스트 인터페이스(110)와 외부 호스트 (미도시)간의 인터페이스 방식은 직렬 ATA(Serial Advanced Technology Attachment;SATA), 병렬 ATA(Parallel Advanced Technology attachment;PATA) 및 SCSI, Express Card, PCI-Express 방식 중 어느 하나일 수 있으며 제한되지 않는다.
버퍼부(120)는 호스트 인터페이스(110)로부터의 출력 신호들을 버퍼링하거나, 논리적 어드레스 및 물리적 어드레스간의 맵핑 정보 및 메모리 영역의 블록 할당 정보, 블록의 삭제 횟수 및 외부로부터 수신된 데이터를 임시 저장한다. 버퍼부(120)는 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)을 이용한 버퍼일 수 있다.
MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.
한편, 메모리 컨트롤러(140)는 통상과 같이 호스트 인터페이스(110)로부터의 입력 데이터와 라이트 명령어를 수신하여 입력 데이터가 메모리 영역(150)에 라이트 될 수 있도록 제어한다. 이와 마찬가지로, 메모리 컨트롤러(140)는 호스트 인터페이스(110)로부터의 리드 명령어를 수신하면, 메모리 영역(150)으로부터의 데이터를 리드하여 외부로 출력되도록 제어한다.
특히, 본 발명의 일 실시예에 따른 메모리 컨트롤러(140)는 복수의 칩을 포함하는 가상의 논리적 그룹을 만들고 칩 개별의 삭제 횟수에 더불어 논리적 그룹의 삭제 횟수를 추가로 관리한다. 그리하여, 메모리 컨트롤러(140)는 논리적 그룹 단위로 웨어 레벨링을 수행, 즉, 칩 전체가 아닌 일부의 칩을 대상으로 함으로써 웨어 레벨링 수행 시간을 감소시킬 수 있다.
보다 자세히 설명하면, 메모리 컨트롤러(140)는 각 칩을 논리적 어드레스를 부여한 논리적 블록으로 간주하여 가상의 논리적 그룹을 형성한 후, 논리적 어드레스에 대응되는 논리적 블록의 삭제 횟수를 누적하여 저장한다. 이러한 삭제 횟수의 임계치 이상이 되면, 삭제 횟수의 누적 횟수가 가장 많은 논리적 그룹에 대해서 웨어 레벨링을 수행한다. 이 때, 웨어 레벨링 대상이 되는 논리적 그룹내에서도 가장 삭제 횟수가 높은 칩을 추적하여, 동일 논리적 그룹내에서 가장 삭제 횟수가 작은 칩과 서로 교체되도록 한다. 이에 대한 자세한 설명은 도면과 함께 후술하기로 한다.
메모리 영역(150)은 메모리 컨트롤러(140)에 의해 제어되어 데이터의 라이트, 삭제 및 리드 동작이 수행된다. 여기서, 메모리 영역(150)은 낸드(NAND) 플래시 메모리일 수 있다. 본 발명의 일 실시 예에서는 낸드(NAND) 플래시 메모리의 셀은 SLC(Single Level Cell) 또는 MLC(Multi Level Cell) 일 수 있다. 이러한 메모리 영역(150)은 복수의 페이지를 포함하는 복수의 블록으로 구성된 칩이 복수개 구비될 수 있다.
도 2는 도 1에 따른 논리적 그룹을 구현한 블록도이고, 도 3은 논리적 그룹의 삭제 횟수를 저장한 테이블이다.
도 2 및 도 3을 참조하여, 본 발명의 일 실시예에 따른 웨어 레벨링 방법에 대해 자세히 설명하기로 한다.
제 1 논리적 그룹(논리적 그룹0)은 복수의 칩(칩 0, 칩 1, 칩2..)들을 포함한다.
제 2 논리적 그룹(논리적 그룹 1)은 복수의 칩(칩 0, 칩 1, 칩 2..)들을 포함한다.
도시되어 있는 제 3 및 제 4 논리적 그룹(논리적 그룹 2, 논리적 그룹 3)도 상기의 방법과 마찬가지로 설명될 수 있다.
제 1 논리적 그룹(논리적 그룹0)의 복수의 칩(칩 0, 칩 1, 칩2..)들의 논리적 어드레스는 전체 논리적 그룹 수에 대응되어 0부터 3까지 순차적으로 랩핑(wrapping )어드레스로서 부여하는 것으로 예시한다.
한편, 제 2 논리적 그룹(논리적 그룹1)의 복수의 칩(칩 0, 칩 1, 칩 2..)들의 논리적 어드레스는 1, 2, 3, 0의 순으로 부여하는 것으로 예시한다.
계속해서, 제 3 논리적 그룹(논리적 그룹 2)의 복수의 칩(칩 0, 칩 1, 칩 2..)들의 논리적 어드레스는 2, 3, 0, 1의 순으로, 제 4 논리적 그룹(논리적 그룹 3)의 복수의 칩(칩 0, 칩 1, 칩 2..)들의 논리적 어드레스는 3, 0, 1, 2 의 순으로 부여하는 것으로 예시한다. 즉, 가상 블록인 논리적 그룹의 주소를 맵핑시킬 때, 그룹의 전체 수를 모듈로(modulo)로 하여, 각 논리적 그룹내 시작되는 논리적 어드레스를 쉬프트시키며 할당한다.
이와 같은 방식으로 어드레스를 부여하는 것은 각 논리적 그룹내 칩들간에 실질적으로 시스템내에서 서로 물리적으로 동일한 채널에 대응되는 칩들의 어드레스가 인터리빙(interleaving) 방식으로 부여되도록 구현하고자 함이다. 다시 말하면, 제 1 내지 제 4 논리적 그룹의 각 칩0의 논리적 어드레스는, 0, 1, 2, 3으로써 서로 중복되지 않는 어드레스가 부여된 것을 알 수 있다. 같은 방식으로, 제 1 내지 제 4 논리적 그룹의 각 칩1의 논리적 어드레스는, 1, 2, 3, 0으로 서로 중복되지 않는 어드레스가 부여된 것을 알 수 있다.
분산된 어드레싱을 이용함으로써 특정 어드레스에 따른 특정 위치로 데이터 영역이 집중적으로 할당되는 것을 방지하여 메모리를 효율적으로 이용하도록 할 수 있다.
본 발명의 일 실시예에 따르면, 각 논리적 그룹내 칩마다 삭제 횟수(Erase Count; EC)를 누적하여 저장할 뿐 아니라, 각 논리적 그룹내 포함된 모든 칩들의 삭제 횟수, 즉 전체 삭제 횟수(Total Erase Count; 이하, TEC라 함)를 별도로 누적하여 저장한다.
이와 동시에, 본 발명의 일 실시예에 따르면, 비휘발성 메모리 장치내에서 동일 채널(미도시)로 연결된 칩간의 삭제 횟수를 비교할 수 있는 편차, 여기서는 '거리(distance)'라고 명명하기로 하나 명칭에 제한을 두는 것은 아니다. 즉, 각 논리적 그룹의 동일 채널에 대응되는 칩들의 누적 횟수에 대해 가장 삭제 횟수가 큰 칩과 가장 삭제 횟수가 적은 칩의 편차를 구하여 저장한다.
설명의 편의상, 특정 논리적 그룹의 TEC가 임계치에 도달하여 웨어 레벨링 조건이 된 것으로 예시하기로 한다. 예컨대, 제 1 논리적 그룹(논리적 그룹 0)의 TEC가 기 설정된 임계치(8)에 도달하였다면, 이에 따라 제 1 논리적 그룹(논리적 그룹 0)이 웨어 레벨링 대상이 되는 그룹으로 선정된다(①). 이 때 본 발명의 일 실시예에 따르면, 제 1 논리적 그룹내 포함된 칩들 중에서 삭제 횟수 편차가 심한 칩을 추적하도록 한다.
이는 각 칩의 거리 정보를 이용함으로써 간접적으로 알 수 있다.
칩내 편차 정보인 거리를 보면 칩 0가 '4'로서 가장 큰 편차를 갖고 있는 것을 알 수 있다(②). 이는 복수의 논리적 그룹내의 칩0 중 어느 하나는 높은 삭제 횟수를 갖는 것을 의미한다. 따라서, 웨어 레벨링 조건이 되면 제 1 논리적 그룹(논리적 그룹0)의 칩 0와 동일 논리적 그룹내 최소 편차를 갖는 예컨대 칩 1의 논리적 어드레스를 서로 치환하도록 한다(③).
한편, 보다 효과적으로 웨어 레벨링을 수행하도록, 웨어 레벨링의 임계치 기준을 다양하게 설정하고, 각 기준치에 따라 대응되는 웨어 레벨링 스캔 범위를 다양하게 설정할 수 있다.
도 4는 복수의 웨어 레벨링 임계치에 따른 논리적 블록의 스캔 범위를 나타낸 그래프이다.
도 4를 참조하면, 웨어 레벨링 임계치가 0에서 B1 사이이면 웨어 레벨링을 하지 않는다.
만약, 웨어 레벨링 임계치가 B1에서 B2 사이이면, 타겟 논리적 그룹내 칩의 수를 일부(X1까지)만 검색하도록 한다.
웨어 레벨링 임계치가 B2에서 B3 사이이면, 타겟 논리적 그룹내 칩의 수를 보다 확장하여 X2까지 검색하도록 한다.
그러나, 웨어 레벨링 임계치가 TH(최대 한도)이면, 타겟 논리적 그룹내 칩의 수는 전체를 대상으로 하도록 한다.
즉, 웨어 레벨링 기준을 다양하게 구비하고 이에 대한 검색 범위의 가중치를 설정함으로써, 웨어 레벨링의 스캔 시간을 보다 효율적으로 제어할 수 있다.
다시 도 4를 참조하여, 기준치에 따른 검색 범위를 적용하여 설명한다면, 기 설정된 임계치가 8이라면 논리적 블록, 즉 칩의 검색 범위는 칩 0부터 칩 3까지, 기 설정된 임계치가 10이라면 칩의 검색 범위는 보다 확장되어 칩 0부터 칩 7까지 일 수 있다.
이로써, 본 발명의 일 실시예에 따르면 칩 전체를 대상으로 웨어 레벨링을 수행하지 않아도 되므로 웨어 레벨링에 필요한 칩 스캔 시간을 감소시킬 수 있다.
도 5는 본 발명의 다른 실시예에 따른 논리적 그룹의 삭제 횟수를 저장한 테이블이다.
중복되는 설명을 피하기 위하여, 일 실시예와 다른 점만 자세히 설명하기로 한다.
도 5를 참조하면, 각 논리적 그룹(논리적 그룹0)의 복수의 칩(칩 0, 칩 1, 칩2..)들의 논리적 어드레스는 논리적 그룹 수에 대응되어 0부터 3까지 정해진 규칙에 의해 논리적 어드레스를 부여하는 것은 일 실시예와 유사하다.
또한, 일 실시예와 마찬가지로 각 논리적 그룹내 칩마다 삭제 횟수를 누적하여 각 논리적 그룹내 포함된 모든 칩들의 삭제 횟수, 즉 전체 삭제 횟수(Total Erase Count; 이하, TEC라 함)를 누적하여 저장한다.
더 나아가, 다른 실시예에 따른 비휘발성 메모리 장치는, 각 논리적 그룹의 동일 채널에 대응되는 칩들의 삭제 횟수에 대해서도 누적하여 논리적 블록별 삭제 횟수(Logical block Erase Count; 이하 LEC)로서 저장한다.
그리하여, 각 칩마다 개별의 삭제 횟수를 저장함에 기인하여 많은 메모리를 할당했던 일 실시예와는 달리 개별 칩들의 삭제 횟수를 저장하지 않고 그룹에 대응되거나 채널에 대응되는 삭제 횟수만 관리함으로써 삭제 횟수에 대한 메모리를 감소시킬 수 있다.
다른 실시예에 따른 웨어 레벨링 수행 방법을 보다 자세히 설명하면, 특정 논리적 그룹의 TEC가 임계치 기준에 도달하여 웨어 레벨링 조건이 된 것으로 예시하기로 한다. 예컨대, 제 1 논리적 그룹(논리적 그룹 0)의 TEC가 임계치(8)에 도달하였다면, 이에 따라 웨어 레벨링 대상이 되는 그룹으로 선정된다. 이 때 본 발명의 다른 실시예에 따르면, 제 1 논리적 그룹내 포함된 칩들 중에서 삭제 횟수가 상대적으로 높은 칩을 추적하도록 한다. 이 때, 칩별 LEC의 정보를 이용하면 간접적으로 삭제 횟수가 높은 칩을 추적할 수 있다. 제 1 논리적 그룹중에서도 칩 0의 LEC가 8로서 상대적으로 높다. 따라서, 웨어 레벨링 조건이 되면 제 1 논리적 그룹(논리적 그룹0)의 칩 0가 특히 삭제 횟수가 높음을 인지할 수 있는 것이다. 전술한 바와 같이 웨어 레벨링 조건의 임계치 기준값에 따라, 웨어 레벨링 대상이 되는 논리적 블록의 검색 범위를 한정한다. 계속해서, 한정된 범위 내에서 삭제 횟수가 상대적으로 낮은 칩을 추적하여, LEC가 높은 칩과 낮은 칩간에 서로의 논리적 어드레스를 치환함으로써 웨어 레벨링을 수행한다. 웨어 레벨링 조건의 임계치 기준값이 보다 높다면 검색 대상의 칩의 수는 보다 확장될 수 있다.
웨어 레벨링에 의해 어드레스 치환이 된 후의 LEC와 TEC의 누적 삭제 횟수는 초기화 하도록 한다.
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 동작을 나타낸 순서도이다.
도 6을 참조하면, 논리적 그룹에 대한 TEC 누산 및 각 칩별 EC를 누산한다(S10).
즉, 각 칩을 논리적 블록으로 간주하고, 복수의 논리적 블록을 포함한 가상의 논리적 그룹을 설정한다. 이 후, 각 논리적 그룹에 대한 TEC를 누적하여 저장한다. 이와 동시에 칩별 EC도 누적하여 저장한다. 더 나아가, 칩별 EC를 이용하여 칩별 편차 정보인 거리 값을 저장한다.
이후, 웨어 레벨링 조건이 만족되면 저장된 TEC가 임계치의 제 1 기준값을 초과하는지 여부를 판단한다(S20).
만약, 저장된 TEC가 임계치의 제 1 기준값을 초과하지 않으면(N), 계속해서 각 칩에 대한 리드 및 라이트 동작을 수행한다(S30).
그러나, 저장된 TEC가 임계치의 제 1 기준값을 초과하면(Y), TEC가 임계치의 제 2 기준값을 초과하는지 여부를 판단한다(S40).
만약, 저장된 TEC가 임계치의 제 2 기준값을 초과하지 않으면(N), 해당 논리적 그룹내에서 제 1 검색 범위를 한정하고 한정된 범위 안에서 거리 정보를 이용하여 상대적으로 EC가 높은 칩과 낮은 칩간에 웨어 레벨링을 수행한다(S50).
그러나, 만약, 저장된 TEC가 임계치의 제 2 기준값을 초과하면(Y), TEC가 임계치의 다음 기준값, 즉 제 3 기준값을 초과하는지 여부를 판단한다(S60).
만약, 저장된 TEC가 임계치의 제 3 기준값을 초과하지 않으면(N), 논리적 그룹내에서 제 2 검색 범위를 한정하고, 한정된 범위 안에서 거리 정보를 이용하여 상대적으로 EC가 높은 칩과 낮은 칩간에 웨어 레벨링을 수행한다(S70).
그러나, 저장된 TEC가 임계치의 제 3 기준값을 초과하면(Y), 논리적 그룹내에서 제 3 검색 범위로 확장해서 웨어 레벨링을 수행한다(S80).
이는 어디까지나 설명의 편의상 일부의 기준값과 일부의 검색 범위로써 설명한 것이다. 하지만 상기 숫자에 제한되는 것이 아님은 당연하며, 설정된 기준값과 검색 범위의 가감이 가능하다. 다만, 일정한 기준값과 검색 범위를 구획화하여 임계치에 대한 웨어 레벨링 스캔 범위를 가변 조정할 수 있다는 것을 만족하면 본 발명의 일 실시예를 만족한다.
본 발명의 다른 실시예에 따른 순서도는 도시하지 않았으나, 그 원리는 도 6과 유사하며, 다른 실시예에 따른 비휘발성 메모리 장치의 웨어 레벨링 수행 방법은 다만 논리적 그룹에 대한 TEC 누산 및 동일 채널로 연결된 칩의 논리적 블록 EC를 누산하여 저장하는 것이 다를 뿐이다.
이와 같이, 본 발명의 일 실시예에 따르면, 웨어 레벨링의 조건을 다양화하고 그에 따른 검색 범위를 다양하게 함으로써, 웨어 레벨링 수행 시간을 감소시킬 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 호스트 인터페이스 120: 버퍼부
130: MCU 140: 메모리 컨트롤러
150: 메모리 영역

Claims (19)

  1. 호스트 인터페이스;
    상기 호스트 인터페이스와 연결된 메모리 컨트롤러; 및
    상기 메모리 컨트롤러에 의해 제어되는 복수의 칩을 포함하는 메모리 영역을 포함하고,
    상기 메모리 컨트롤러는 상기 복수의 칩에 논리적 어드레스를 부여하여 가상의 논리적 그룹을 형성하고, 상기 논리적 그룹별 전체 삭제 횟수에 따른 복수의 임계치 및 상기 복수의 임계치에 대응하는 복수의 검색 범위를 설정하여 상기 임계치에 따른 검색 범위에 따라 웨어 레벨링을 수행하는 비휘발성 메모리 장치.
  2. 제 1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 서로 다른 논리적 그룹에 포함되나 물리적으로 동일 채널에 대응되는 칩간의 삭제 횟수 편차 정보를 저장하는 비휘발성 메모리 장치.
  3. 제 2항에 있어서,
    상기 메모리 컨트롤러는,
    상기 논리적 그룹별 전체 삭제 횟수를 이용하여 웨어 레벨링 수행 대상이 되는 타겟 논리적 그룹을 설정하고,
    상기 편차 정보를 이용하여 상기 타겟 논리적 그룹내의 타겟 칩을 추적하는 비휘발성 메모리 장치.
  4. 제 3항에 있어서,
    상기 메모리 컨트롤러는,
    상기 타겟 논리적 그룹이 설정되면, 상기 논리적 그룹의 상기 임계치에 따라 해당 논리적 그룹내 포함된 상기 칩의 검색 범위를 다르게 한정하도록 제어하는 비휘발성 메모리 장치.
  5. 제 4항에 있어서,
    상기 메모리 컨트롤러는,
    상기 논리적 그룹의 상기 임계치가 높아짐에 따라 해당 논리적 그룹내 포함된 상기 칩의 검색 범위를 확장하도록 제어하는 비휘발성 메모리 장치.
  6. 제 1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 서로 다른 논리적 그룹에 포함되나 물리적으로 동일 채널에 대응되는 칩들에 대한 전체 삭제 횟수를 누적하여 저장하는 것을 더 포함하는 비휘발성 메모리 장치.
  7. 호스트 인터페이스;
    상기 호스트 인터페이스와 연결된 메모리 컨트롤러; 및
    상기 메모리 컨트롤러에 의해 제어되는 복수의 칩을 포함하는 메모리 영역을 포함하고,
    상기 메모리 컨트롤러는 상기 복수의 칩을 포함하여 가상의 논리적 그룹으로 그룹핑하고, 동일 논리적 그룹에 대한 삭제 횟수 정보 및 물리적으로 구별되는 각 칩들에 대한 삭제 횟수 정보를 이용하여 웨어 레벨링을 수행하는 비휘발성 메모리 장치.
  8. 제 7항에 있어서,
    상기 메모리 컨트롤러는,
    상기 논리적 그룹내 각 칩에 대한 삭제 횟수를 누적하여 각 논리적 그룹별 전체 삭제 횟수를 저장하는 비휘발성 메모리 장치.
  9. 제 8항에 있어서,
    상기 메모리 컨트롤러는,
    상기 논리적 그룹별 전체 삭제 횟수를 이용하여 웨어 레벨링 수행 대상이 되는 타겟 논리적 그룹을 설정하는 비휘발성 메모리 장치.
  10. 제 9항에 있어서,
    상기 메모리 컨트롤러는,
    상기 타겟 논리적 그룹이 설정되면, 상기 논리적 그룹의 상기 전체 삭제 횟수에 따라 해당 논리적 그룹내 포함된 상기 칩의 검색 범위를 다르게 한정하도록 제어하는 비휘발성 메모리 장치.
  11. 제 10항에 있어서,
    상기 메모리 컨트롤러는,
    상기 논리적 그룹의 상기 전체 삭제 횟수가 높아짐에 따라 상기 해당 논리적 그룹내 포함된 타겟 칩의 검색 범위를 확장하도록 제어하는 비휘발성 메모리 장치.
  12. 제 7항에 있어서,
    상기 메모리 컨트롤러는,
    상기 서로 다른 논리적 그룹에 포함되나 물리적으로 동일 채널에 대응되는 칩간의 삭제 횟수 편차 정보를 상기 칩별로 저장하는 비휘발성 메모리 장치.
  13. 제 12항에 있어서,
    상기 메모리 컨트롤러는,
    상기 편차 정보를 이용하여 웨어 레벨링 수행 대상이 되는 타겟 논리적 그룹 내의 타겟 칩을 추적하는 비휘발성 메모리 장치.
  14. 제 7항에 있어서,
    상기 메모리 컨트롤러는,
    상기 서로 다른 논리적 그룹에 포함되나 상기 물리적으로 동일 채널에 대응되는 칩들의 삭제 횟수를 누산하여 상기 칩별로 저장하는 비휘발성 메모리 장치.
  15. 제 14항에 있어서,
    상기 메모리 컨트롤러는,
    상기 칩별 누산된 상기 삭제 횟수를 이용하여 웨어 레벨링 수행 대상이 되는 타겟 논리적 그룹 내의 타겟 칩을 추적하는 비휘발성 메모리 장치.
  16. 복수의 칩을 포함한 가상의 논리적 그룹에 대한 전체 삭제 횟수를 누산하고, 상기 칩별 삭제 횟수를 이용하여 칩별 편차 정보를 저장하는 단계;
    웨어 레벨링 조건이 만족되면 상기 논리적 그룹에 대한 상기 전체 삭제 횟수가 기 설정된 복수의 임계치 기준값을 초과하는지 여부를 각각 판단하는 단계; 및
    상기 판단 결과에 따라 웨어 레벨링 대상이 되는 타겟 논리적 그룹의 칩 검색 범위를 서로 다르게 한정하는 단계를 포함하는 비휘발성 메모리 장치의 제어 방법.
  17. 제 16항에 있어서,
    상기 전체 삭제 횟수를 이용하여 상기 타겟 논리적 그룹을 설정하는 비휘발성 메모리 장치의 제어 방법.
  18. 제 16항에 있어서,
    상기 칩별 삭제 횟수를 이용하여 한정된 상기 칩 검색 범위 내에서의 타겟 칩을 추적하는 비휘발성 메모리 장치의 제어 방법.
  19. 제 18항에 있어서,
    상기 타겟 칩이 추적되면, 한정된 상기 칩 검색 범위 내에서의 최소 삭제 횟수를 갖는 칩의 논리적 어드레스를 치환하여 웨어 레벨링을 수행하는 비휘발성 메모리 장치의 제어 방법.
KR1020100068395A 2010-07-15 2010-07-15 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 KR101131560B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100068395A KR101131560B1 (ko) 2010-07-15 2010-07-15 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US12/963,379 US8671239B2 (en) 2010-07-15 2010-12-08 Nonvolatile memory apparatus for performing wear-leveling and method for controlling the same
TW100101760A TWI523017B (zh) 2010-07-15 2011-01-18 執行平均抹寫的非揮發性記憶體設備及控制該設備的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100068395A KR101131560B1 (ko) 2010-07-15 2010-07-15 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법

Publications (2)

Publication Number Publication Date
KR20120007722A KR20120007722A (ko) 2012-01-25
KR101131560B1 true KR101131560B1 (ko) 2012-04-04

Family

ID=45467809

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100068395A KR101131560B1 (ko) 2010-07-15 2010-07-15 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법

Country Status (3)

Country Link
US (1) US8671239B2 (ko)
KR (1) KR101131560B1 (ko)
TW (1) TWI523017B (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
KR101586047B1 (ko) * 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US20160196076A1 (en) * 2013-07-08 2016-07-07 Wilus Institute Of Standards And Technology Inc. Memory system and method for controlling same
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) * 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10365835B2 (en) * 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9582201B2 (en) * 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
KR102258126B1 (ko) 2015-03-19 2021-05-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
CN105067992B (zh) * 2015-08-25 2018-06-05 无锡中微腾芯电子有限公司 通过测试数据实现芯片追溯的方法
KR102553170B1 (ko) 2016-06-08 2023-07-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180041898A (ko) * 2016-10-17 2018-04-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10922221B2 (en) 2018-03-28 2021-02-16 Micron Technology, Inc. Memory management
EP4053705B1 (en) * 2021-03-03 2023-10-25 Samsung Electronics Co., Ltd. Operating method of storage device
CN115081257B (zh) * 2022-08-22 2022-11-11 中诚华隆计算机技术有限公司 一种用于电力能源的芯片损耗优化方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070099234A (ko) * 2006-04-04 2007-10-09 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
JP2007133683A (ja) 2005-11-10 2007-05-31 Sony Corp メモリシステム
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
TWI366828B (en) * 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070099234A (ko) * 2006-04-04 2007-10-09 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문 1(2007) *

Also Published As

Publication number Publication date
TWI523017B (zh) 2016-02-21
KR20120007722A (ko) 2012-01-25
TW201205585A (en) 2012-02-01
US20120017053A1 (en) 2012-01-19
US8671239B2 (en) 2014-03-11

Similar Documents

Publication Publication Date Title
KR101131560B1 (ko) 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US9298603B2 (en) NAND flash-based storage device and methods of using
KR102610395B1 (ko) 비휘발성 메모리 장치를 포함하는 메모리 시스템
US8060719B2 (en) Hybrid memory management
US8046526B2 (en) Wear leveling method and controller using the same
KR101097438B1 (ko) 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법
KR100974215B1 (ko) 반도체 스토리지 시스템 및 그 제어 방법
US9632926B1 (en) Memory unit assignment and selection for internal memory operations in data storage systems
KR101086876B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
JP2015204118A (ja) ストレージコントローラ及びストレージ装置
US10990325B2 (en) Write control method, associated data storage device and controller thereof
TW201349096A (zh) 資料儲存裝置和快閃記憶體之區塊管理方法
US20100030948A1 (en) Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system
US20120179859A1 (en) Nonvolatile memory apparatus performing ftl function and method for controlling the same
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
JP2016024678A (ja) メモリシステム
US10545700B2 (en) Memory management method, memory storage device and memory control circuit unit
US20220300184A1 (en) Method of performing wear-leveling operation in flash memory and related controller and storage system
US9013922B2 (en) Data storage device and flash memory control method thereof
KR101027687B1 (ko) 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법
KR20100055201A (ko) 플래시 메모리장치, 및 데이터 기록방법
US20240094923A1 (en) Memory system
Phoenix High-Performance Low-Overhead Stochastic Wear Leveling of Flash Memory By Comparing Age of a Block with Age of a Randomly Selected Block
KR20130087898A (ko) 파일 속성을 고려한 메모리 블록 할당 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150223

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160223

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170223

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180223

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190220

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200226

Year of fee payment: 9