KR100974215B1 - 반도체 스토리지 시스템 및 그 제어 방법 - Google Patents

반도체 스토리지 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR100974215B1
KR100974215B1 KR1020080097184A KR20080097184A KR100974215B1 KR 100974215 B1 KR100974215 B1 KR 100974215B1 KR 1020080097184 A KR1020080097184 A KR 1020080097184A KR 20080097184 A KR20080097184 A KR 20080097184A KR 100974215 B1 KR100974215 B1 KR 100974215B1
Authority
KR
South Korea
Prior art keywords
logical block
chip
block
free
address
Prior art date
Application number
KR1020080097184A
Other languages
English (en)
Other versions
KR20100037860A (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 KR1020080097184A priority Critical patent/KR100974215B1/ko
Priority to US12/344,702 priority patent/US20100088461A1/en
Priority to TW098103984A priority patent/TW201015317A/zh
Publication of KR20100037860A publication Critical patent/KR20100037860A/ko
Application granted granted Critical
Publication of KR100974215B1 publication Critical patent/KR100974215B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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

개시된 반도체 스토리지 시스템은, 복수의 칩을 포함하는 메모리 영역 및 상기 메모리 영역의 웨어 레벨링시 논리적 블록 어드레스에 대응되는 논리적 블록의 삭제 횟수를 이용하는 MCU(Main Control Unit)를 포함한다.
Figure R1020080097184
플래시 메모리, 데이터, 웨어 레벨링, 균등

Description

반도체 스토리지 시스템 및 그 제어 방법{Solid State Storage System and Controlling Method thereof}
본 발명은 반도체 스토리지 시스템 및 그 제어 방법에 관한 것으로서, 보다 구체적으로는 메모리 블록의 할당을 제어하는 반도체 스토리지 시스템 및 그 제어 방법에 관한 것이다.
최근 낸드(NAND) 플래시 메모리를 사용한 SSD(Solid State Drive)와 같은 반도체 스토리지 시스템은 시스템의 성능을 향상시키고자 다양한 알고리즘(algorithm)과 제어 방식을 도입하고 있다.
반도체 스토리지 시스템에서는, 이러한 낸드 플래시 메모리 셀들에 반복적으로 데이터를 라이트하고 갱신(update)한다.
통상적으로, 낸드 플래시 메모리 셀의 데이터를 갱신시에는 비휘발성 메모리이므로 해당 셀의 데이터를 일단 삭제하고 다시 새로운 데이터를 라이트한다. 하지만, 데이터 라이트시, 모든 메모리 셀에 데이터를 고르게 프로그램하는 것이 아니라 특정 셀 영역에 보다 집중적으로 프로그램이 빈번히 이루어질 수 있다. 다시 말하면, 데이터에 따라 특정 셀 영역, 또는 일부의 셀들은 빈번한 라이트 및 삭제 과정으로 인해 셀의 수명이 다해 낡아 없어질(wear out) 수 있다. 그러나, 아직 낡지 않은 생생한(fresh) 상태의 셀들이 존재한다 하여도, 반도체 스토리지 시스템 전체의 성능은 일부의 ‘낡은’셀에 의해 제한될 수 밖에 없다.
이로써, 각각의 메모리 셀이 낡아 없어지기(wear out) 전에, 각 메모리 구역(zone), 또는 플레인(plane)내에서 저장 셀의 물리적 위치를 변경해주어 셀의 균등한 사용을 제어하도록 웨어 레벨링(wear leveling)을 수행한다.
하지만, 웨어 레벨링은 해당 플레인(plane) 또는 해당 칩내에서 수행되므로, 동일 플레인(또는 동일 칩)의 셀 사용 빈도는 소정 평준화 된다 하더라도, 데이터가 빈번히 라이트되는 특정 플레인 또는 특정 칩이 존재하는 한 시스템의 성능은 제한될 수 밖에 없다.
이로써, 셀의 균등한 수명 관리를 위해 데이터의 저장 영역이 동일 영역에 집중되지 않도록 하는 방법과, 이들 영역의 웨어 레벨링시에도 모든 칩, 모든 플레인을 대상으로 수행되는 글로벌 웨어 레벨링(Global Wear Leveling; GWL) 개념의 도입이 강력히 요구되고 있다.
본 발명의 기술적 과제는 셀의 수명을 균등하게 관리하는 반도체 스토리지 시스템을 제공하는 것이다.
본 발명의 기술적 과제는 셀의 수명을 균등하게 관리하는 반도체 스토리지 시스템의 제어 방법을 제공하는 것이다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템은, 복수의 칩을 포함하는 메모리 영역 및 상기 메모리 영역의 웨어 레벨링시 논리적 블록 어드레스에 대응되는 논리적 블록의 삭제 횟수를 이용하는 MCU(Main Control Unit)를 포함한다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 다른 실시예에 따른 반도체 스토리지 시스템은, 복수의 칩을 포함하는 메모리 영역 및 연속되는 논리적 블록 어드레스는 서로 다른 상기 칩에 할당하며, 상기 메모리 영역의 웨어 레벨링을 수행하는 MCU를 포함하여 상기 MCU는 기 설정된 삭제 횟수 임계치를 갖는 논리적 블록이 발생되면, 해당 논리적 블록이 포함된 칩을 제외한 다른 칩에서 웨어 레벨링이 수행되도록 함으로써 글로벌 웨어 레벨링(global wear leveling)을 지원한다.
본 발명의 다른 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 제어 방법은, 외부 호스트의 명령에 응답하여 데이터 갱신시, 선택된 논리적 블록 어드레스가 지정하는 논리적 블록의 삭제 횟수를 증가시키는 단계, 해당 논리적 블록 어드레스의 삭제 횟수가 기 설정된 삭제 횟수 임계치를 초과하는지 판단하는 단계, 해당 논리적 블록 어드레스의 삭제 횟수가 기 설정된 임계치를 초과하면 해당 논리적 블록을 다른 칩의 프리 블록으로 맵핑하는 단계를 포함한다.
본 발명의 일 실시예에 따르면 데이터의 저장 영역이 메모리 전체에 고르게 분포할 수 있도록 어드레스를 할당하고, 이들의 영역에 대해, 해당 칩에 제한되지 않고 다른 칩을 대상으로 웨어 레벨링을 수행함으로써 보다 균등한 셀의 수명을 관리할 수 있다. 이로써, 셀의 수명을 향상시킬 수 있으므로 SSD의 수명을 효율적으로 관리할 수 있다.
이하, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템 및 제어 방법을 설명하기 위한 블록도 또는 플로우 차트에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
또한, 각 블록도는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때 때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
먼저, 도 1 내지 도3을 참조하여, 본 발명의 실시예에 따른 반도체 스토리지 시스템에 대해서 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템(100)의 블록도이다. 여기서, 반도체 스토리지 시스템(100)은 낸드 플래시 메모리를 이용한 스토리지 시스템으로 예시한다.
도 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)을 이용한 버퍼일 수 있다.
MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.
특히, 본 발명의 일 실시예에 따른 MCU(130)는 FTL(Flash Transfer Layer) 변환을 이용하여 연속되는 논리적 블록 어드레스를 서로 다른 칩에 할당하고, 라이트 또는 리드 명령에 응답하여 논리적 블록 어드레스 단위로 수행되도록 제어함으로써 라이트되는 데이터가 메모리 영역에 고르게 분포하도록 한다. 또한, 이러한 논리적 블록 어드레스에 대응되는 논리적 블록의 추가적인 수명 관리를 하여, 참조되는 논리적 블록의 갱신 빈도가 높을 때는 해당 칩 외의 다른 칩의 물리적 블록으로 맵핑되도록 제어한다.
이로써, 본 발명의 일 실시예에 따른 MCU(130)는 데이터의 저장 영역이 동일 영역에 집중되지 않도록 함과 동시에, 이들 영역의 웨어 레벨링시에도 해당 칩에 제한되지 않는 글로벌 웨어 레벨링(Global Wear Leveling; GWL)을 구현할 수 있다. 더 나아가, 어드레스 할당 방식에 따라 멀티 플레인 모드 및 인터리빙 모드를 모두 구현할 수 있다.
메모리 컨트롤러(140)는 메모리 영역(150)의 복수개의 낸드 플래시 메모리 소자 중 소정 낸드 플래시 메모리 소자(ND)를 선택하고, 라이트, 삭제 또는 리드 명령을 제공한다. 메모리 컨트롤러(140)는 MCU(130)의 맵핑 방식에 제어됨으로써, 연속적으로 수신되는 데이터에 대해 인터리빙 방식 또는 멀티 플레인 방식으로 메모리 영역(150)내 다수의 칩에서 분산 처리할 수 있다. 이에 대한 자세한 설명은 후술하기로 한다.
메모리 영역(150)은 메모리 컨트롤러(140)에 제어되어 데이터를 라이트, 삭제 및 리드 동작이 수행된다. 특히, 메모리 영역(150)은 MCU(130)에 의해 분산 맵 핑된 논리적 블록 어드레스로 제어됨으로써, 데이터는 모든 플레인에 고르게 분산 저장될 수 있다.
도 2는 도 1에 따른 메모리 영역(150)의 간단한 블록도, 도 3은 도 2에 따른 분산 맵핑을 개념적으로 도시한 블록도이다.
도 2 및 도 3을 참조하면, 메모리 영역(150)은 다수의 칩(칩1, 칩2..)을 포함한다.
또한, 각각의 칩은 복수의 플레인(plane#0, plane#1)을 포함한다. 각각의 플레인(plane#0, plane#1)은 다수개의 메모리 블록(BLK)을 포함하며, 각각의 메모리 블록(BLK)은 워드라인을 공유하는 기준으로 그룹핑(grouping)된 다수개의 페이지를 포함한다. 또한, 각 블록(BLK0, BLK1..)은 임의로 설정된 섹터 어드레스(미도시)를 갖는 것으로 설명한다.
공지된 바와 같이, 각각의 플레인(plane#0, plane#1)은 사용 가능한 블록(BLK)을 포함하여 일정 영역 할당된 메인 블록 및 임시 저장 블록을 포함하는 스페어 블록을 포함한다. 그리하여, 메인 블록은 데이터 블록 영역(DB)으로, 스페어 블록은 프리 블록 영역(FB)으로 칭해질 수 있다.
본 발명의 일 실시예에 따르면, 동일 칩 내 서로 다른 플레인을 지정하는 연속되는 섹터 어드레스들을 그룹핑하여 가상 페이지 단위의 논리적 블록 어드레스(LBA0, LBA1..)를 부여한다. 또한, 논리적 블록 어드레스(LBA0, LBA1..)에 대응되는 각각의 칩내 프리 블록 영역(FB)내 버퍼들도 그룹핑하여 버퍼 어드레스(BBA0, BBA1..)등을 부여할 수 있다. 그리하여, 가상 페이지 단위로 논리적 블록 어드레 스(LBA0, LBA1..)를 부여하고, 외부 명령에 따라 가상 페이지 단위로 리드 및 라이트 동작이 수행된다.
한편, SSD와 같은 반도체 스토리지 시스템을 제어하는 외부 호스트(미도시)의 운영 체제 방식으로 파일 시스템(file system) 방식을 채용한다. 즉, 외부 호스트(미도시)가 반도체 스토리지 시스템에 관련된 모든 미가공(raw) 데이터 및 관리 자료 등을 관리하는 자료 구조 방식을 파일 시스템이라고 통칭한다. 이러한 파일 시스템에서는 운영 체제에 관한 자료 영역, 파일 시스템 자체의 정보 영역, 상기의 영역들에 대한 인덱스(index) 관리 영역 및 데이터 저장 영역등을 구분한다. 이때, 데이터 저장 영역은 예를 들어, 외부 호스트(미도시)에서 관리할 수 있는 소정의 단위, 예컨대 16Kbyte, 32Kbyte 등의 클러스터(cluster) 단위로 제어한다. 이러한 클러스터라는 것은, 전술한 메모리 영역이 동작하는 가상의 페이지 단위, 또는 가상의 블록 단위와는 다른 것으로, 파일을 관리하는 운영 체제의 측면에서 설명될 수 있는 것이다. 여기서는 설명의 편의상, 이러한 외부 호스트의 파일 시스템에 적합한 클러스터 단위는 소정의 논리적 블록 어드레스 그룹군에 대응되는 단위로서의 파일 시스템의 데이터 핸들링 단위로 설명하기로 한다. 따라서, 클러스터 단위에 해당하는 논리적 블록 어드레스 그룹은 서로 다른 칩에 할당된 LBA0, LBA1, LBA2, LBA3이 하나의 클러스터를 이루는 그룹(미도시), 마찬가지로, LBA4, LBA5, LBA6 ,LBA7의 논리적 블록 어드레스 그룹(미도시)도 하나의 클러스터를 이루는 그룹이다.
이에 대해, 다음의 도 4 및 도 5를 참조하여 보다 자세히 설명하기로 한다.
도 4는 도 3에 따른 논리적 블록 어드레스와 물리적 블록 어드레스와의 맵핑 관계를 개념적으로 도시한 블록도, 도 5는 논리적 블록의 삭제 관리 테이블 및 물리적 블록의 삭제 관리 테이블을 도시한 블록도이다.
우선, 도 4를 참조하면, 논리적 블록 어드레스(LBA0..)는 메모리 영역(도 3의 150 참조)의 전체 칩의 물리적 블록 어드레스(PBA0..)를 대상으로 분산 맵핑된다.
구체적으로 설명하면, 논리적 블록 어드레스 0번지(LBA0)는 물리적 어드레스 블록0번지(PBA0)를, 논리적 블록 어드레스 1번지(LBA1)는 물리적 블록 어드레스 m번지(PBAm)를, 논리적 블록 어드레스 2번지(LBA2)는 물리적 블록 어드레스 k번지(PBAk)를 맵핑한다. 논리적 블록 어드레스(LBA0, LBA1)를 기준으로 보면 연속되는 논리적 블록 어드레스(LBA0, LBA1)는 서로 다른 칩의 물리적 블록에 할당되는 것을 알 수 있다.
즉, 본 발명의 일 실시예에 따른 MCU(130)는 섹터 어드레스를 소정의 단위로 그룹핑하여 논리적 블록 어드레스를 생성하고, 논리적 블록 어드레스를 전체 메모리 영역의 칩 대상으로 분산 맵핑한다. 그러므로, 연속되는 논리적 블록 어드레스가 서로 다른 칩의 물리적 블록을 대상으로 순차적으로 맵핑되도록 제어할 수 있다.
보다 구체적으로, 서로 다른 플레인내 페이지를 지정하도록 분산 맵핑된 논리적인 블록 어드레스에 의해 연속적이며 큰 단위(벌크 단위)의 데이터는 실질적으로 모든 플레인에 분산 저장될 수 있다. 그러므로, 프로그램 빈도가 낮고 큰 단위 의 데이터가 집중되는 특정한 플레인의 발생을 방지할 수 있다. 여기서, 큰 단위의 데이터는 가상 페이지 단위 이상을 의미하며, 벌크 단위의 데이터는 2M byte이상의 크기를 갖는 데이터로서 예시하기로 한다. 한편, 작은 사이즈, 예컨대 512K byte의 데이터는 선택된 칩의 가상 페이지 단위로 동작 수행이 가능할 수 있다. 이와 같이, 본 발명의 일 실시예에 따르면 어드레스 맵핑은 분산 맵핑하고 데이터 영역의 핸들링(handling) 단위는 작게 함으로써, 멀티 플레인 방식과 인터리빙 방식이 모두 가능하다. 즉, 상대적으로 적은 단위의 데이터에 대한 동작이 수행될 경우는 멀티 플레인 방식으로 동작시키고, 큰 단위의 메가 데이터에 대한 동작이 수행될 경우는 인터리빙 방식으로 동작시킬 수 있다.
한편, 본 발명의 일 실시예에서는 도 5에 도시된 바와 같이 논리적 블록의 삭제 횟수를 추가적으로 관리한다.
우선, 논리적 블록의 삭제 관리 테이블(A) 및 물리적 블록의 삭제 관리 테이블(B)을 각각 구비한다.
논리적 블록의 삭제 관리 테이블(A)은 논리적 블록 어드레스(LBA0, LBA1..)등에 의해 대응되는 논리적 블록에 데이터 갱신 요청시마다 해당 논리적 블록의 삭제 횟수를 증가시키고 이를 저장한다. 이와 마찬가지로, 물리적 블록의 삭제 관리 테이블(B)은 블록 어드레스(LBA0, LBA1..)등에 의해 맵핑되어 실제 데이터가 처리되는 물리적 블록의 삭제 횟수를 증가시키고 이를 저장한다. 논리적 블록의 삭제 관리 테이블(A) 및 물리적 블록의 삭제 관리 테이블(B)에 각각 표시(빗금)된 블록은 기 설정된 임계치의 삭제 횟수가 발생된 블록을 나타낸다. 따라서, 논리적 블록 어드레스에 지정되는 논리적 블록의 삭제 횟수를 추가 관리하고, 이에 따라 새로운 물리적 영역을 맵핑하도록 한다. 보다 자세히 설명하면, 논리적 블록 어드레스(LBA0, LBA1..)에 맵핑되는 물리적 영역을 다른 칩의 프리 블록에 대응되도록 새롭게 재맵핑한다. 이에 따라, 선택되는 빈도가 높은 논리적 블록 어드레스에 대한 물리적 블록의 웨어 레벨링 수행시, 해당 칩에 제한되지 않고 새로운 칩에서 수행될 수 있다.
도 6은 도 5에 따라 새로운 물리적 블록을 맵핑하는 과정을 개념적으로 도시한 블록도이다.
도 6을 참조하면, 칩 1에서 임계치 삭제 횟수를 갖는 블록이 발생하는 것으로 예시한다.
본 발명의 일 실시예에 따르면 MCU(도 1의 130 참조)는 논리적 삭제 관리 테이블(도 5의 A 참조)을 이용하여, 임계치 삭제 횟수를 갖는 논리적 블록을 알 수 있다. 그리하여, 논리적 블록 어드레스, ‘LBA4’에 대응되는 물리적 블록을 새로운 칩의 프리 블록에 대응되도록 재맵핑을 수행한다.
이를 위해, 칩 2부터 칩 4에 포함된 프리 블록중, 해당 논리적 블록 어드레스와 동일한 클러스터를 이루는 논리적 어드레스 그룹에 대해, 최소 삭제 횟수를 갖는 프리 블록을 추적하고, 해당 논리적 블록에 대응되는 프리 블록의 데이터와 새로이 추적된 프리 블록의 데이터를 서로 교환(Swithcing)한다.
예컨대, 칩 1의 논리적 블록 어드레스, ‘LBA4’에 대응되는 프리 블록이 칩 1의 FBA0 번지를 갖는 프리 블록이었다고 가정하기로 한다.
칩 1의 논리적 블록 어드레스, ‘LBA4’가 많이 선택되어 해당 논리적 블록의 삭제 횟수가 임계치에 도달하면, 이에 대해 추적 연산(ⓐ)을 시작한다.
즉, 칩 1이 아닌 칩 2부터 칩 4의 범위에서 해당 논리적 블록 어드레스와 동일한 클러스터를 이루는 논리적 어드레스 그룹에 대해 삭제 횟수가 가장 작은 프리 블록을 추적한다. 이는 칩 2부터 칩 4의 모든 프리 블록의 삭제 횟수를 비교하는 연산을 수행함으로써 가능하다.
그리하여, 칩 1의 FBA0 번지를 갖는 프리 블록에 저장된 데이터와 새로이 추적된 칩 2 내지 칩 4의 LBA5, LBA6, LBA7에 할당된 프리 블록중 최하 삭제 횟수를 갖는 프리 블록의 데이터를 서로 스위칭한다. 즉, 최고 삭제 횟수(임계치)와 최하 삭제 회수를 갖는 프리 블록의 데이터가 서로 교환되는 것이다. 이를 환언하면, 칩 1의 논리적 블록 어드레스, ‘LBA4’에 대응되는 프리 블록은 새로운 칩의 프리 블록으로 바뀜으로써, 맵핑이 재수행된 것을 의미한다. 이후, 해당 논리적 블록의 삭제 횟수는 리셋한다.
통상적으로, 물리적 블록의 삭제 횟수를 관리하여 기 설정된 삭제 임계치를 판단하여 웨어 레벨링을 수행한다. 종래 기술에서는 이러한 삭제 임계치에 따라 웨어 레벨링 수행 시점이 되면 각 플레인 별 또는 동일 칩별로 개별적이고 독립적인 웨어 레벨링을 수행하도록 하였다.
만약, 특정 논리적 블록 어드레스가 계속 선택되어 이에 대해 일단 맵핑된 특정 셀 영역의 집중적인 갱신 빈도가 높아지면 웨어 레벨링을 수행하여도 해당 칩의 수명은 저하되었다. 이로써, 동일 칩내에서의 셀의 사용 빈도를 평준화시킨다 하여도 갱신 빈도가 높은 칩이 존재하는 한 반도체 스토리지 시스템의 전체 성능을 저하시킬 수 밖에 없었다.
하지만, 본 발명의 일 실시예에서는 특정 논리적 블록 어드레스가 계속 선택된다면 새로운 칩의 셀 영역으로 재맵핑하도록 한다. 이로써, 특정 논리적 블록 어드레스가 계속 선택되어도, 그에 따라 맵핑되는 물리적 영역은 삭제 횟수 임계치에 따라 다른 칩으로 맵핑될 수 있으므로 칩별 셀의 사용 빈도가 균등해질 수 있다. 이에 따라 웨어 레벨링 수행시, 선택된 논리적 블록 어드레스에 대해 어느 한 칩에 제한되어 수행되는 것이 아니라 다른 칩에서 웨어 레벨링이 수행될 수 있으므로 글로벌 웨어 레벨링을 구현할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 새로운 물리적 블록으로 맵핑하는 과정을 개념적으로 도시한 블록도이다.
도 7을 참조하여 도 6과 중복되는 설명은 생략하기로 하고, 다른 점만 설명하기로 한다.
설명의 편의상 도 6과 마찬가지로 칩 1에서 임계치 삭제 횟수를 갖는 블록이 발생하는 것으로 예시한다.
본 발명의 다른 실시예에서는, 라운드 로빈(round robin) 방식으로 각각 다음(next) 칩의 해당 논리적 블록 어드레스와 동일한 클러스터를 이루는 논리적 어드레스 그룹에 대한 프리 블록을 추적하여 새로 맵핑한다.
라운드 로빈 방식이란, 칩 1은 칩 2에서, 칩 2는 칩 3에서, 칩 3은 칩4에서, 칩 4는 다시 칩 1에서 순환(circular) 구조로 각각 프리 블록의 그룹 중 새로운 맵 핑 대상이 될 프리 블록을 추적하는 방식으로 정의한다.
보다 구체적으로 설명하면, 칩 1의 ‘LBA4’에 대응되는 프리 블록이 칩 1의 FBA0 번지를 갖는 프리 블록대신 칩 2의 해당 논리적 블록 어드레스가 포함된 클러스터를 이루는 논리적 어드레스 그룹에 대한 프리 블록을 추적한다. 만약, 추적된 칩2의 LAB5에 대응되는 프리 블록이‘FBA5’번지를 갖는 프리 블록이라고 하자. 따라서, 칩 1의 논리적 블록 어드레스 ‘LBA4’에 대응되는 프리 블록은 칩 2의 ‘FBA5’번지를 갖는 프리 블록으로 새롭게 맵핑된다.
한편, 칩 2의 논리적 블록 어드레스 ‘LBA5’에 대한 새로운 프리 블록은 칩 3에서 동일한 방법으로 추적한다. 만약, 추적된 칩3의 프리 블록이‘FBA10’번지를 갖는 프리 블록이라고 하자. 그리하여, 칩 2의 논리적 블록 어드레스 ‘LBA5’에 대한 새로운 프리 블록은 칩 3의 ‘FBA10’번지를 갖는 프리 블록으로 새롭게 맵핑된다.
이와 마찬가지로, 칩 3의 ‘FBA10’번지를 갖는 프리 블록에 대응되었던 예컨대, 논리적 블록 어드레스 ‘LBA6’은 칩 4에서 프리 블록을 추적한다. 추적된 칩 4의 프리 블록이 ‘FBA3’번지를 갖는 프리 블록이었다면 칩 3의 논리적 블록 어드레스 ‘LBA6’는 칩 4의‘FBA3’번지를 갖는 프리 블록으로 맵핑한다.
또한, 칩 4의 ‘FBA3’번지를 갖는 프리 블록과 대응되었던, 예컨대 논리적 블록 어드레스 ‘LAB7’번지를 갖는 논리적 블록은 칩 1의 프리 블록 그룹중 최대 삭제 횟수를 가지고 있었던 FBA0 번지를 갖는 프리 블록으로 맵핑한다.
즉, 임계치 삭제 횟수 갖는 블록은 칩 1에서 발생되었으나, 이에 대한 재맵 핑은 모든 칩을 대상으로 수행된다. 전술한 바와 같이, 재맵핑이 수행된 후, 해당 논리적 블록의 삭제 횟수는 리셋하여, 다음의 데이터 갱신 요청시 반복적인 재맵핑이 수행되는 것을 방지하도록 한다.
이와 같이, 논리적 블록 어드레스의 삭제 횟수를 이용하여 데이터의 실제 저장 영역을 새롭게 재편성하도록 맵핑하되, 소정의 규칙, 즉 모든 칩을 라운드 로빈 방식으로 맵핑하도록 한다. 이로써, 셀의 갱신 빈도를 균등하게 제어함과 동시에 연속적인 논리적 블록 어드레스에 의한 인터리빙 방식을 유지할 수 있다.
도 8 내지 도 10은 본 발명의 실시예들에 따른 반도체 스토리지 시스템의 제어 방식을 나타낸 플로우 차트이다.
도 1 내지 도 8을 참조하여 설명하기로 한다.
우선, 가상 페이지 단위의 논리적 블록 어드레스(LBA0, LBA1..)를 생성하여 서로 다른 칩의 물리적 블록에 맵핑한다(S10).
칩 내 블록마다 섹터 어드레스(미도시)를 할당하되, 연속되는 섹터 어드레스(미도시)는 서로 다른 플레인에 할당되도록 한다. 이 때, 동일 칩내 연속되는 섹터 어드레스는 그룹핑하여 하나의 가상 페이지 단위에 대응되는 논리적 블록 어드레스(LBA0, LBA1..)를 생성한다. 연속되는 논리적 블록 어드레스(LBA0, LBA1..)는 서로 다른 칩에 맵핑되도록 한다. 논리적 어드레스에 의해 데이터가 분산 배치될 수 있도록 논리적 어드레스와 물리적 어드레스간 맵핑시, 전체 플레인을 대상으로 균등하게 분산 맵핑하는 것이다.
외부 호스트의 데이터 갱신 요청에 응답하여, MCU(130)는 선택된 논리적 블 록 어드레스가 지정하는 논리적 블록의 삭제 횟수를 증가시킨다(S20).
즉, 새로운 데이터를 라이트 하기 전에 이전 데이터를 삭제해야 하므로, 삭제 횟수를 증가시킨다.
그리하여, 해당 논리적 블록 어드레스의 삭제 횟수가 임계치를 초과하는지 판단한다(S30).
임계치가 아니라면 해당 프리 블록에 데이터를 갱신하는 것으로 갱신 명령을 완료한다(S50).
만약, 해당 논리적 블록 어드레스의 삭제 횟수가 임계치를 초과하면 해당 논리적 블록을 다른 칩의 프리 블록으로 맵핑한다(S40).
이 때, 해당 논리적 블록을 다른 칩의 프리 블록으로 맵핑하는 것은 도 9에 도시된 바와 같이, 해당 논리적 블록이 포함되지 않은 칩, 즉 해당 논리적 블록 어드레스가 포함된 클러스터를 이루는 칩 2 내지 칩 4의 논리적 어드레스 그룹에 대한 들의 프리 블록중 최소 삭제 횟수를 갖는 프리 블록을 추적한다(S41). 그리하여, 해당 논리적 블록에 대응되는 프리 블록과 새로이 추적된 프리 블록을 맵핑한다(S42). 맵핑 후, 해당 논리적 블록의 삭제 횟수를 리셋한다(S43).
또는, 해당 논리적 블록을 다른 칩의 프리 블록으로 맵핑하는 것은 도 10에 도시된 바와 같이, 해당 논리적 블록을 포함한 모든 칩에 대해, 라운드 로빈 방식으로 각각 다른 칩의 프리 블록중 교체 대상이 되는 프리 블록을 추적한다(S41). 전술한 바와 같이, 해당 논리적 블록의 새로 맵핑될 프리 블록 및 이에 연관된 칩들은 해당 논리적 블록 어드레스가 포함된 클러스터를 이루는 서로 다른 칩에 할당 된 논리적 어드레스에 대한 프리 블록을 연쇄적으로 추적한다. 하지만, 칩 간 인터리빙 모드 구현을 위해 라운드 로빈 방식으로 프리 블록을 추적하므로, 해당 논리적 블록에 대응되었던 프리 블록으로 데이터를 저장하는 칩도 발생하게 된다. 그리하여, 각각 칩의 해당 프리 블록과 각각 다른 칩의 프리 블록을 맵핑한다(S42). 맵핑 후, 해당 논리적 블록의 삭제 횟수를 리셋한다(S43).
이어서, 소정의 맵핑 규칙에 따라, 새로 맵핑된 해당 프리 블록에 데이터를 저장하는 것으로 갱신 명령을 완료한다(S50).
이와 같이, 본 발명의 일 실시예에 따르면, 데이터 동작 제어 방식의 인터리빙 방식과 멀티 플레인 방식을 모두 수행 할 수 있도록 논리적 블록 어드레스를 서로 다른 칩에 할당되도록 한다. 그리하여, 데이터의 라이트 및 리드 동작의 단위를 작은 사이즈의 가상 페이지 단위로 제어함으로써, 셀의 수명을 보다 효율적으로 관리 가능하다.
이들의 영역을 웨어 레벨링할 때, 국소적(local)이지 않고 해당 칩외 다른 칩을 대상으로 글로벌(global)한 웨어 레벨링을 수행함으로써 보다 균등한 셀의 수명을 관리할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부 터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 블록도,
도 2는 도 1에 따른 메모리 영역의 계층적 구조를 나타낸 블록도,
도 3은 도 2에 따른 논리적 블록 어드레스 맵핑 관계를 개념적으로 나타낸 블록도,
도 4는 도 3에 따른 논리적 블록 어드레스와 물리적 블록 어드레스와의 맵핑 관계를 개념적으로 도시한 블록도,
도 5는 논리적 블록의 삭제 관리 테이블 및 물리적 블록의 삭제 관리 테이블을 도시한 블록도,
도 6은 도 5에 따라 새로운 물리적 블록을 맵핑하는 과정을 개념적으로 도시한 블록도,
도 7은 본 발명의 다른 실시예에 따른 새로운 물리적 블록으로 맵핑하는 과정을 개념적으로 도시한 블록도, 및
도 8 내지 도 10은 본 발명의 실시예들에 따른 반도체 스토리지 시스템의 제어 방식을 나타낸 플로우 차트이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 호스트 인터페이스 120: 버퍼부
130: MCU 140: 메모리 컨트롤러
150: 메모리 영역

Claims (25)

  1. 복수의 칩을 포함하는 메모리 영역; 및
    상기 메모리 영역의 웨어 레벨링시 논리적 블록 어드레스에 대응되는 논리적 블록의 삭제 횟수를 이용하는 MCU(Main Control Unit)를 포함하는 반도체 스토리지 시스템.
  2. 제 1항에 있어서,
    라이트 요청에 따라, 상기 MCU는 선택된 상기 논리적 블록 어드레스에 대응되는 논리적 블록의 삭제 횟수를 증가시키고, 상기 논리적 블록의 기 설정된 삭제 횟수의 임계치를 판단하여 상기 논리적 블록 어드레스의 재맵핑을 수행하는 반도체 스토리지 시스템.
  3. 제 2항에 있어서,
    상기 MCU는 기 설정된 삭제 횟수를 갖는 해당 논리적 블록과 새로 맵핑될 프리 블록을 추적하는 반도체 스토리지 시스템.
  4. 제 3항에 있어서,
    상기 반도체 스토리지 시스템은 클러스터(cluster) 단위로 데이터를 관리하는 파일 시스템(file system) 방식에 적용되는 것을 더 포함하고,
    상기 MCU는 상기 클러스터 단위에 대응되도록 상기 논리적 블록 어드레스를 소정 개수 그룹핑하는 반도체 스토리지 시스템.
  5. 제 4항에 있어서,
    상기 MCU는 해당 논리적 블록이 포함되지 않은 칩들중에서, 해당 논리적 블록 어드레스가 포함된 상기 클러스터를 이루는 논리적 블록 어드레스 그룹에 대응되는 프리 블록중, 최소 삭제 횟수를 갖는 프리 블록을 추적하는 반도체 스토리지 시스템.
  6. 제 5항에 있어서,
    상기 추적된 최소 삭제 횟수를 갖는 프리 블록과 해당 논리적 블록을 맵핑하는 반도체 스토리지 시스템.
  7. 제 4항에 있어서,
    상기 MCU는 해당 논리적 블록이 포함된 칩의 다음(next) 칩에 대해, 해당 논리적 블록 어드레스가 포함된 상기 클러스터를 이루는 논리적 블록 어드레스에 대응되는 프리 블록을 추적하는 반도체 스토리지 시스템.
  8. 제 7항에 있어서,
    상기 다음 칩은 라운드 로빈(round robin) 방식에 의해 결정되는 반도체 스 토리지 시스템.
  9. 제 7항에 있어서,
    상기 MCU는 해당 논리적 블록외, 연쇄적으로 모든 칩에 대해 새로 맵핑될 프리 블록을 추적하여, 모든 칩의 소정의 논리적 블록에 대해 새로 맵핑을 수행하는 반도체 스토리지 시스템.
  10. 복수의 칩을 포함하는 메모리 영역; 및
    연속되는 논리적 블록 어드레스는 서로 다른 상기 칩에 할당하며, 상기 메모리 영역의 웨어 레벨링을 수행하는 MCU를 포함하여,
    상기 MCU는 기 설정된 삭제 횟수 임계치를 갖는 논리적 블록이 발생되면, 해당 논리적 블록이 포함된 칩을 제외한 다른 칩의 물리적 블록으로 할당되도록 함으로써 글로벌 웨어 레벨링(global wear leveling)을 지원하는 반도체 스토리지 시스템.
  11. 제 10항에 있어서,
    라이트 요청에 따라, 상기 MCU는 선택된 상기 논리적 블록의 삭제 횟수를 증가시키고, 상기 논리적 블록의 기 설정된 삭제 횟수의 임계치를 판단하여 상기 논리적 블록의 재맵핑을 수행하는 반도체 스토리지 시스템.
  12. 제 11항에 있어서,
    상기 MCU는 기 설정된 삭제 횟수를 갖는 해당 논리적 블록과 새로 맵핑될 프리 블록을 추적하는 반도체 스토리지 시스템.
  13. 제 12항에 있어서,
    상기 반도체 스토리지 시스템은 클러스터(cluster) 단위로 데이터를 관리하는 파일 시스템(file system) 방식에 적용되는 것을 더 포함하고,
    상기 MCU는 상기 클러스터 단위에 대응되도록 상기 논리적 블록 어드레스를 소정 개수 그룹핑하는 반도체 스토리지 시스템.
  14. 제 13항에 있어서,
    상기 MCU는 해당 논리적 블록이 포함되지 않은 칩들중에서, 해당 논리적 블록 어드레스가 포함된 상기 클러스터를 이루는 논리적 블록 어드레스 그룹에 대응되는 프리 블록중, 최소 삭제 횟수를 갖는 프리 블록을 추적하는 반도체 스토리지 시스템.
  15. 제 14항에 있어서,
    상기 추적된 최소 삭제 횟수를 갖는 프리 블록과 해당 논리적 블록을 맵핑하는 반도체 스토리지 시스템.
  16. 제 13항에 있어서,
    상기 MCU는 해당 논리적 블록이 포함된 칩의 다음(next) 칩에 대해, 해당 논리적 블록 어드레스가 포함된 상기 클러스터를 이루는 논리적 블록 어드레스에 대응되는 프리 블록을 추적하는 반도체 스토리지 시스템.
  17. 제 16항에 있어서,
    상기 다음 칩은 라운드 로빈(round robin) 방식에 의해 결정되는 반도체 스토리지 시스템.
  18. 제 16항에 있어서,
    상기 MCU는 해당 논리적 블록외, 연쇄적으로 모든 칩에 대해 새로 맵핑될 프리 블록을 추적하여, 모든 칩의 소정의 논리적 블록에 대해 새로 맵핑을 수행하는 반도체 스토리지 시스템.
  19. 제 10항에 있어서,
    상기 각각의 칩은 복수의 플레인을 포함하고, 상기 복수의 플레인은 복수의 블록을 포함하며,
    상기 MCU는 동일 칩내의 서로 다른 플레인에 구비된 블록을 그룹핑하여 상기 논리적 블록 어드레스를 할당하는 반도체 스토리지 시스템.
  20. 제 19항에 있어서,
    상기 논리적 블록 어드레스는 가상의 페이지 단위(virtual page unit)를 규정하고, 리드 또는 라이트 동작시 상기 가상의 페이지 단위로 수행되는 것을 더 포함하는 반도체 스토리지 시스템.
  21. 클러스터(cluster) 단위로 데이터를 관리하는 파일 시스템(file system) 방식의 반도체 스토리지 시스템의 제어 방법에 있어서,
    외부 호스트의 명령에 응답하여 데이터 갱신시, 선택된 논리적 블록 어드레스가 지정하는 논리적 블록의 삭제 횟수를 증가시키는 단계;
    해당 논리적 블록 어드레스의 삭제 횟수가 기 설정된 삭제 횟수 임계치를 초과하는지 판단하는 단계; 및
    해당 논리적 블록 어드레스의 삭제 횟수가 기 설정된 임계치를 초과하면 해당 논리적 블록을 다른 칩의 프리 블록으로 맵핑하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  22. 제 21항에 있어서,
    상기 다른 칩의 프리 블록으로 맵핑하는 단계는,
    상기 해당 논리적 블록을 해당 논리적 블록이 포함되지 않은 칩들중에서, 해당 논리적 블록 어드레스가 포함된 상기 클러스터를 이루는 논리적 블록 어드레스 그룹에 대응되는 프리 블록중 최소 삭제 횟수를 갖는 프리 블록을 추적하는 단계;
    상기 해당 논리적 블록에 대응되는 프리 블록과 추적된 새로운 프리 블록을 맵핑하는 단계; 및
    재맵핑 후, 상기 해당 논리적 블록의 삭제 횟수를 리셋하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  23. 제 21항에 있어서,
    상기 다른 칩의 프리 블록으로 맵핑하는 단계는,
    상기 해당 논리적 블록을 포함한 모든 칩에 대해, 라운드 로빈 방식으로 결정된 각각 다음(next) 칩의 교체 대상이 되는 프리 블록을 추적하는 단계; 각각의 칩내 연쇄적으로 선택되는 논리적 블록과 각각의 다음 칩의 추적된 프리 블록을 맵핑하는 단계; 및
    재맵핑 후, 상기 해당 논리적 블록의 삭제 횟수를 리셋하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  24. 제 23항에 있어서,
    상기 교체 대상이 되는 프리 블록을 추적하는 단계는,
    상기 해당 논리적 블록 어드레스가 포함된 상기 클러스터를 이루는 논리적 블록 어드레스에 대응되는 다음 칩의 프리 블록을 추적하고, 추적된 상기 프리 블록에 대응되는 상기 논리적 블록에 대해 맵핑될 또 다음 칩의 프리 블록을 추적하는 것을 포함하는 반도체 스토리지 시스템의 제어 방법.
  25. 제 21항에 있어서,
    상기 각각의 칩은 복수의 플레인을 포함하고, 상기 플레인은 복수의 블록을 포함할 때,
    상기 논리적 블록의 삭제 횟수를 증가시키는 단계 이전에,
    동일 칩내 서로 다른 플레인에 구비된 상기 블록을 그룹핑한, 가상 페이지 단위의 논리적 블록 어드레스를 생성하여, 서로 다른 칩의 물리적 블록에 맵핑하는 것을 더 포함하는 반도체 스토리지 시스템의 제어 방법.
KR1020080097184A 2008-10-02 2008-10-02 반도체 스토리지 시스템 및 그 제어 방법 KR100974215B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080097184A KR100974215B1 (ko) 2008-10-02 2008-10-02 반도체 스토리지 시스템 및 그 제어 방법
US12/344,702 US20100088461A1 (en) 2008-10-02 2008-12-29 Solid state storage system using global wear leveling and method of controlling the solid state storage system
TW098103984A TW201015317A (en) 2008-10-02 2009-02-06 Solid state storage system using global wear leveling and method of controlling the solid state storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080097184A KR100974215B1 (ko) 2008-10-02 2008-10-02 반도체 스토리지 시스템 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20100037860A KR20100037860A (ko) 2010-04-12
KR100974215B1 true KR100974215B1 (ko) 2010-08-06

Family

ID=42076703

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080097184A KR100974215B1 (ko) 2008-10-02 2008-10-02 반도체 스토리지 시스템 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20100088461A1 (ko)
KR (1) KR100974215B1 (ko)
TW (1) TW201015317A (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412880B2 (en) 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US9894093B2 (en) 2009-04-21 2018-02-13 Bandura, Llc Structuring data and pre-compiled exception list engines and internet protocol threat prevention
US8468220B2 (en) * 2009-04-21 2013-06-18 Techguard Security Llc Methods of structuring data, pre-compiled exception list engines, and network appliances
US20110302355A1 (en) * 2010-06-04 2011-12-08 Solid State System Co., Ltd. Mapping and writting method in memory device with multiple memory chips
US9195588B2 (en) 2010-11-02 2015-11-24 Hewlett-Packard Development Company, L.P. Solid-state disk (SSD) management
CN102511044B (zh) 2011-09-06 2013-10-02 华为技术有限公司 一种数据删除方法及装置
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9251056B2 (en) * 2012-06-01 2016-02-02 Macronix International Co., Ltd. Bucket-based wear leveling method and apparatus
KR20140031688A (ko) * 2012-09-05 2014-03-13 삼성전자주식회사 스토리지 시스템을 위한 마모 관리 장치 및 방법
US10055267B2 (en) * 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
KR102258126B1 (ko) 2015-03-19 2021-05-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US10445251B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US10452533B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Access network for address mapping in non-volatile memories
US10445232B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Determining control states for address mapping in non-volatile memories
US9921969B2 (en) 2015-07-14 2018-03-20 Western Digital Technologies, Inc. Generation of random address mapping in non-volatile memories using local and global interleaving
US10452560B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
KR20180123385A (ko) 2017-05-08 2018-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR102533207B1 (ko) * 2018-08-30 2023-05-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11402999B2 (en) 2019-12-03 2022-08-02 Burlywood, Inc. Adaptive wear leveling using multiple partitions
US20220043588A1 (en) * 2020-08-06 2022-02-10 Micron Technology, Inc. Localized memory traffic control for high-speed memory devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100297986B1 (ko) 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
KR20050050148A (ko) * 2002-10-28 2005-05-27 샌디스크 코포레이션 비-휘발성 저장 시스템의 소모 레벨링
KR20070099234A (ko) * 2006-04-04 2007-10-09 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US7966462B2 (en) * 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
AU2003282544A1 (en) * 2002-10-28 2004-05-25 Sandisk Corporation Automated wear leveling in non-volatile storage systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100297986B1 (ko) 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
KR20050050148A (ko) * 2002-10-28 2005-05-27 샌디스크 코포레이션 비-휘발성 저장 시스템의 소모 레벨링
KR20070099234A (ko) * 2006-04-04 2007-10-09 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법

Also Published As

Publication number Publication date
US20100088461A1 (en) 2010-04-08
TW201015317A (en) 2010-04-16
KR20100037860A (ko) 2010-04-12

Similar Documents

Publication Publication Date Title
KR100974215B1 (ko) 반도체 스토리지 시스템 및 그 제어 방법
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
KR101083673B1 (ko) 반도체 스토리지 시스템 및 그 제어 방법
US10204042B2 (en) Memory system having persistent garbage collection
KR101982251B1 (ko) 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법
US9817755B2 (en) Garbage collection management in memories
KR101131560B1 (ko) 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
KR20100012938A (ko) 웨어 레벨링을 수행하는 반도체 스토리지 시스템 및 그제어 방법
US11513949B2 (en) Storage device, and control method and recording medium thereof
US8892816B1 (en) System and method for writing data to a memory
US11422930B2 (en) Controller, memory system and data processing system
KR20100055201A (ko) 플래시 메모리장치, 및 데이터 기록방법
KR100970537B1 (ko) Ssd 관리 장치 및 방법
EP4287028A1 (en) Storage device providing high purge performance and memory block management method thereof
KR20230166803A (ko) 높은 퍼지 성능을 제공하는 스토리지 장치 및 그것의 메모리 블록 관리 방법
JP2014178867A (ja) ストレージ制御装置、及びストレージ制御システム

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
LAPS Lapse due to unpaid annual fee