KR101401560B1 - 반도체 메모리 시스템 및 그것의 마모도 관리 방법 - Google Patents

반도체 메모리 시스템 및 그것의 마모도 관리 방법 Download PDF

Info

Publication number
KR101401560B1
KR101401560B1 KR1020070130186A KR20070130186A KR101401560B1 KR 101401560 B1 KR101401560 B1 KR 101401560B1 KR 1020070130186 A KR1020070130186 A KR 1020070130186A KR 20070130186 A KR20070130186 A KR 20070130186A KR 101401560 B1 KR101401560 B1 KR 101401560B1
Authority
KR
South Korea
Prior art keywords
wear
entries
entry
data
write data
Prior art date
Application number
KR1020070130186A
Other languages
English (en)
Other versions
KR20090062754A (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 KR1020070130186A priority Critical patent/KR101401560B1/ko
Priority to CN2008101846534A priority patent/CN101458969B/zh
Priority to US12/316,508 priority patent/US8055836B2/en
Publication of KR20090062754A publication Critical patent/KR20090062754A/ko
Application granted granted Critical
Publication of KR101401560B1 publication Critical patent/KR101401560B1/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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/14Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements
    • G11C11/15Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements using multiple magnetic layers

Abstract

본 발명은 반도체 메모리 시스템에 관한 것으로서, 좀 더 구체적으로는 반도체 메모리 시스템 및 그것의 마모도 관리 방법에 관한 것이다.
본 발명의 예시적인 실시예들은 복수의 엔트리로 구분되는 복수의 논리 블록을 포함하는 불휘발성 메모리; 쓰기 데이터의 특성을 검출하고, 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 엔트리를 상기 쓰기 데이터의 저장을 위해 할당하는 파일 시스템; 및 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 간 또는 상기 엔트리 간의 마모도를 관리하는 변환 계층을 포함하는 반도체 메모리 시스템을 제공한다.
본 발명에 의하면, 마모도 관리시 데이터의 특성에 따라 논리 블록 또는 엔트리 사이의 마모도를 관리함으로써 반도체 메모리 장치의 성능을 증가시키는 것이 가능해진다.

Description

반도체 메모리 시스템 및 그것의 마모도 관리 방법{SEMICONDUCTOR MEMORY SYSTEM AND WEAR-LEVELING METHOD THEREOF}
본 발명은 반도체 메모리 시스템에 관한 것으로서, 좀 더 구체적으로는 반도체 메모리 시스템 및 그것의 마모도 관리 방법에 관한 것이다.
반도체 메모리 장치는 데이터를 저장하도록 구성된다. 반도체 메모리 장치는 크게 휘발성(volatile) 메모리 장치와 불휘발성(nonvolatile) 메모리 장치로 나뉜다. 휘발성 메모리 장치에 저장된 데이터는 전원 공급이 중단되면 소멸된다. 반면에, 불휘발성 메모리 장치에 저장된 데이터는 전원 공급이 중단되더라도 유지된다.
불휘발성 메모리 장치는 저 전력으로 데이터를 유지할 수 있기 때문에, 휴대용 기기의 저장 매체로서 각광받고 있다. 불휘발성 메모리 장치의 일종으로서 플래시 메모리(Flash memory), PRAM(Phase change RAM), FeRAM(Ferroelectric RAM), 그리고 MRAM(Magnetic RAM) 등이 있다.
플래시 메모리 장치는 높은 집적도를 가지고, 불휘발성 메모리 장치라는 점에서 이동형 시스템에 널리 사용된다. 플래시 메모리 장치는 복수의 메모리 블록들로 구성된다.
MRAM은 하드 디스크와 같이 자기적 성질을 이용하여 데이터를 저장한다. MRAM은 강자성 터널 자기 저항(Tunnel Magneto Resistance: TMR) 소자를 이용하여 데이터를 저장한다.
PRAM에서는 CD-ROM이나 DVD-RAM에서와 같이 칼코게나이드(Ge2Sb2Te5 : GST) 합금이라고 하는 박막 소재가 사용된다. 칼코게나이드 합금의 저항은 비결정(Amorphous) 상태에서는 높아지고, 결정 상태에서는 낮아진다. 따라서, 저항의 크기를 구별함으로써 "1"과 "0"의 데이터가 기억된다.
FeRAM은 강유전체를 이용하여 데이터를 저장한다. 강유전체의 분극 방향은 인가 전압에 의해 변화된다. 따라서, 분극 방향을 참조하여 데이터가 구별된다.
그런데, 반도체 메모리 장치에 저장된 데이터의 변경 횟수는 제한된다. 기입 및 삭제 동작에 의해 반도체 메모리 장치가 마모(wearing)되기 때문이다. 마모도가 증가하면, 데이터가 변경(기입 또는 소거)되는데 더 긴 시간이 걸리고, 데이터가 변경될 때 오류가 발생할 확률이 증가한다. 결국, 단위 셀의 데이터 저장 능력이 완전히 상실될 수 있다.
반도체 메모리 장치가 마모에 견디는 능력은 내구도(endurance)에 의해 설명된다. 내구도는 반도체 메모리 장치가 고장 없이 동작될 수 있는 횟수이다. 내구도는 반도체 메모리 장치의 종류에 따라 수만 내지 수백만의 값을 가진다.
반도체 메모리 장치의 수명을 증가시키기 위해서는 데이터의 변경(기입 또는 삭제)이 반도체 메모리 장치 전체에 대하여 균등하게 수행되어야 한다. 반도체 메 모리 장치의 특정 부분에 대하여 변경 동작이 수행될 경우, 반도체 메모리 장치의 수명이 급속하게 감소된다. 반면에, 변경 동작이 반도체 메모리 장치 내의 유닛들에 대해 균등하게 수행된다면, 반도체 메모리 장치의 수명이 증가된다.
따라서, 데이터 변경 동작이 반도체 메모리 장치 전체에 대해 골고루 수행되도록 하는 마모도 관리 방법이 제시되었다. 그런데, 다른 메모리와는 달리, 플래시 메모리 장치는 겹쳐 쓰기(overwrite)를 지원하지 않는다. 겹쳐 쓰기가 허용되는 PRAM, MRAM, FeRAM 등에 플래시 메모리 장치에 사용되는 마모도 관리 방법을 적용할 경우, 시스템의 성능이 저하된다. 결국, 겹쳐 쓰기가 허용되는 반도체 메모리 시스템을 위한 마모도 관리 방법이 요구된다.
본 발명의 목적은 데이터의 특성에 따라 마모도 관리의 단위를 다르게 설정함으로써 성능이 향상된 마모도 관리 방법을 제공하는 것이다.
본 발명의 다른 목적은 데이터의 특성에 따라 마모도 관리의 단위를 다르게 설정함으로써 반도체 메모리 장치의 수명을 증가시키는 마모도 관리 방법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 복수의 엔트리로 구분되는 복수의 논리 블록을 포함하는 불휘발성 메모리; 쓰기 데이터의 특성을 검출하고, 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 엔트리를 상기 쓰기 데이터의 저장을 위해 할당하는 파일 시스템; 및 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 간 또는 상기 엔트리 간의 마모도를 관리하는 변환 계층을 포함하는 반도체 메모리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 변환 계층은 엔트리 마모 횟수가 임계 횟수에 도달하였는지를 검출하고, 상기 검출 결과에 따라, 동일 논리 블록 내의 복수의 엔트리에 저장된 데이터들을 서로 교환한다.
예시적인 실시예에 있어서, 상기 변환 계층은 엔트리 마모 횟수가 임계 횟수에 도달한 엔트리에 저장된 데이터와 가장 작은 엔트리 마모 횟수를 가지는 엔트리에 저장된 데이터를 교환함으로써 상기 동일 블록 내의 상기 복수의 엔트리에 저장 된 데이터들을 서로 교환한다.
예시적인 실시예에 있어서, 상기 변환 계층은 모든 엔트리 마모 횟수들이 임계 횟수에 도달될 때까지 상기 복수의 엔트리에 저장된 데이터들을 서로 교환한다.
예시적인 실시예에 있어서, 상기 변환 계층은 상기 쓰기 데이터의 변경 빈도에 따라 상기 임계 횟수를 결정한다.
예시적인 실시예에 있어서, 상기 쓰기 데이터의 변경 빈도가 크면, 상기 변환 계층은 상기 임계 횟수를 증가시킨다.
예시적인 실시예에 있어서, 상기 쓰기 데이터의 변경 빈도가 낮으면, 상기 변환 계층은 상기 임계 횟수를 감소시킨다.
예시적인 실시예에 있어서, 상기 변환 계층은 모든 엔트리 마모 횟수들이 상기 임계 횟수에 도달되면, 블록 마모 횟수를 상기 임계 횟수만큼 증가시키고, 상기 엔트리 마모 횟수들을 초기화시키는 반도체 메모리 시스템.
예시적인 실시예에 있어서, 상기 변환 계층은 상기 논리 블록의 회수시, 상기 엔트리 마모 횟수들의 분산이 작으면, 블록 마모 횟수를 상기 엔트리 마모 횟수들의 평균만큼 증가시키고, 상기 엔트리 마모 횟수들을 초기화시킨다.
예시적인 실시예에 있어서, 상기 변환 계층은 상기 논리 블록의 회수시, 상기 엔트리 마모 횟수들의 분산이 크면, 상기 논리 블록을 무효화시키고, 상기 엔트리 마모 횟수들을 유지한다.
예시적인 실시예에 있어서, 상기 파일 시스템은 FAT, 심비안 FAT, 그리고 EFS2 중 하나이다.
예시적인 실시예에 있어서, 상기 파일 시스템은 상기 쓰기 데이터가 핫 데이터(hot data)인 경우, 상기 엔트리를 상기 쓰기 데이터의 저장을 위해 할당한다.
예시적인 실시예에 있어서, 상기 파일 시스템은 상기 쓰기 데이터가 콜드 데이터(cold data)인 경우, 상기 논리 블록을 상기 쓰기 데이터의 저장을 위해 할당한다.
예시적인 실시예에 있어서, 상기 변환 계층은 상기 블록 마모 횟수를 참조하여 상기 논리 블록을 할당한다.
예시적인 실시예에 있어서, 상기 변환 계층은 가장 작은 블록 마모 횟수를 갖는 논리 블록을 먼저 할당한다.
예시적인 실시예에 있어서, 상기 불휘발성 메모리는 겹쳐 쓰기(overwrite)가 지원된다.
예시적인 실시예에 있어서, 상기 불휘발성 메모리는 PRAM, MRAM, 그리고 FeRAM 중 하나이다.
예시적인 실시예에 있어서, 상기 파일 시스템(File system)의 종류에 따라 상기 논리 블록의 크기가 정해진다.
예시적인 실시예에 있어서, 상기 파일 시스템은 상기 논리 블록의 크기 정보를 상기 변환 계층에 제공한다.
예시적인 실시예에 있어서, 상기 파일 시스템은 빌드 타임(build time) 또는 마운트 타임(mount time)에 상기 논리 블록의 크기를 결정한다.
예시적인 실시예에 있어서, 상기 파일 시스템의 종류에 따라 상기 엔트리의 크기가 정해진다.
예시적인 실시예에 있어서, 상기 파일 시스템은 상기 엔트리의 크기 정보를 상기 변환 계층에 제공한다.
예시적인 실시예에 있어서, 상기 파일 시스템은 빌드 타임(build time) 또는 마운트 타임(mount time)에 상기 엔트리의 크기를 결정한다.
본 발명의 다른 예시적인 실시예들은 반도체 메모리 시스템의 마모도 관리 방법에 있어서: 상기 반도체 메모리 시스템은 복수의 엔트리로 구분되는 복수의 논리 블록을 포함하는 불휘발성 메모리를 포함하고, 상기 마모도 관리 방법은, 쓰기 데이터의 특성을 검출하고, 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 엔트리를 상기 쓰기 데이터의 저장을 위해 할당하는 단계; 및 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 엔트리 사이의 마모도를 관리하는 단계를 포함하는 방법을 제공한다.
본 발명에 의하면, 데이터의 특성에 따라 마모도 관리의 단위를 다르게 설정함으로써 반도체 메모리 장치의 성능을 증가시키는 것이 가능해진다.
본 발명에 의하면, 데이터의 특성에 따라 마모도 관리의 단위를 다르게 설정함으로써 반도체 메모리 장치의 수명을 증가시키는 것이 가능해진다.
이하, 본 발명의 바람직한 실시예들이 참조 도면들에 의거하여 상세히 설명될 것이다. 본 발명에 따른 실시예들에서는 데이터의 특성을 고려한 마모도 관리 방법이 설명된다.
반도체 메모리 장치에는 여러 종류의 데이터가 저장될 수 있다. 예를 들어, 반도체 메모리 장치에 저장되는 데이터는 메타 데이터(Meta data)와 유저 데이터(User data)로 구분될 수 있다.
메타 데이터는 유저 데이터를 설명하기 위한 데이터이다. 메타 데이터는 유저 데이터의 저장 위치(location), 크기(size), 속성(attribute) 등을 정의한다. 메타 데이터는 사용자에 의해 인식되지 않고 시스템에 의해 참조된다.
메타 데이터는 유저 데이터의 갱신(update)시 함께 갱신된다. 반면에, 메타 데이터의 갱신시, 유저 데이터는 갱신되지 않을 수 있다. 따라서, 메타 데이터는 유저 데이터에 비해 빈번하게 수정된다.
유저 데이터는 핫 데이터(hot data)와 콜드 데이터(cold data)로 나뉜다. 핫 데이터는 크기가 작고 액세스 빈도가 높은 데이터를 의미한다. 핫 데이터의 일 예로서, 이동 통신 단말기의 연락처 데이터가 있다.
상술한 메타 데이터는 크기가 작고 빈번하게 수정된다. 따라서, 이하 본 발명에 따른 실시예들에 있어서, 메타 데이터와 핫 데이터는 동일하게 취급된다.
콜드 데이터는 크기가 크고 액세스 빈도가 낮은 데이터를 의미한다. 콜드 데이터의 예로서 대용량 멀티 미디어(비디오, 오디오 등) 데이터가 있다. 대용량 멀티 미디어 데이터는 크기가 크고, 빈번하게 수정되지 않는다.
본 발명에 있어서, 데이터의 특성(예를 들어, 핫 데이터인지 또는 콜드 데이터인지 여부)을 고려한 마모도 관리 방법이 수행된다. 이하, 도 1을 참조하여 본 발명에 따른 마모도 관리 방법이 설명될 것이다.
도 1은 본 발명에 따른 반도체 메모리 시스템을 보여준다.
도 1을 참조하면, 반도체 메모리 시스템(100)은 중앙 처리 장치(110), 주 기억 장치(120), 그리고 PRAM(130)을 포함한다. 실선은 데이터 및 명령이 전달되는 버스를 나타낸다. PRAM(130)은 불휘발성 메모리 장치로서 데이터를 저장하기 위해 사용된다. 전원 공급이 중단된 경우에도 PRAM(130)에 저장된 데이터는 소멸되지 않는다.
PRAM(130)에 저장된 데이터는 주 기억 장치(120)에 로드(load)된 후, 중앙 처리 장치(110)에 의해 처리된다. 중앙 처리 장치(110)에 의해 처리된 데이터는 PRAM(130)에 저장된다. 이러한 구성을 통해 본 발명에 따른 반도체 메모리 시스템의 마모도 관리 방법이 수행된다.
도 2는 본 발명에 따른 마모도 관리의 처리 계층을 보여준다.
본 발명에 따른 마모도 관리는 애플리케이션(application)(210), 파일 시스템(file system)(220), 변환 계층(translation layer)(230), 그리고 PRAM(240)을 통해 수행된다.
애플리케이션(210), 파일 시스템(220), 변환 계층(230)은 주 기억 장치(120)에 로드되어 중앙 처리 장치(110)에 의해 수행된다.
애플리케이션(210)은 사용자의 입력에 응답하여 데이터를 처리한다. 애플리케이션(210)은 데이터를 처리하고, 처리된 데이터를 저장하기 위한 명령을 파일 시스템(220)에 전달한다.
파일 시스템(220)은 애플리케이션(210)으로부터의 명령에 응답하여, 데이터가 저장될 영역을 할당한다. 그리고, 파일 시스템(220)은 저장될 데이터에 관한 정보를 변환 계층(230)에 전달한다. 변환 계층(230)은 파일 시스템(220)으로부터의 정보에 응답하여 데이터를 관리한다.
이하에서는 핫 데이터(hot data)가 반도체 메모리 장치에 저장되는 경우가 가정된다. 핫 데이터가 저장되는 경우에, 애플리케이션(210)은 핫 데이터를 저장하기 위한 명령을 파일 시스템(220)에 전달한다. 파일 시스템(220)은 애플리케이션(210)으로부터의 명령에 응답하여 데이터의 저장을 위한 영역을 할당(allocation)한다. 그리고, 파일 시스템(220)은 저장될 데이터가 핫 데이터라는 것을 변환 계층(230)에 알린다. 변환 계층(230)은 파일 시스템(220)으로부터의 정보에 응답하여, 핫 데이터를 관리한다.
본 발명에 따른 실시예들에 있어서, PRAM(240)이 예로서 설명된다. PRAM(240)은 온도에 따라 저항이 변화되는 물질을 이용하여 데이터를 저장하는 불휘발성 메모리이다.
PRAM(240)은 불휘발성이고 저 전력으로 동작한다. 기입 동작시, 상 변화 물질에 전류를 흘리면 상 변화 물질이 결정 상태(Crystalline state) 또는 비결정 상태(Amorphous state)로 전이(transition)된다. 상 변화 물질의 결정 상태 또는 비결정 상태는 상 변화 물질에 흐르는 전류의 크기와 시간에 좌우된다. PRAM(240)은 상 변화 물질의 저항 차이에 의해 데이터를 구분한다.
PRAM(240)은 기입 전 소거(erase before write) 동작이 요구되지 않는 반도 체 메모리 장치이다. 본 발명의 적용 범위는 PRAM에 한정되지 않고 겹쳐 쓰기(overwrite)가 가능한 임의의 반도체 메모리 장치들에 적용될 수 있다. 겹쳐 쓰기가 가능한 반도체 메모리 장치라 함은 쓰기 전 소거 동작을 요하지 않는 장치를 의미한다. 예를 들어, 겹쳐 쓰기가 가능한 반도체 메모리 장치로서 MRAM, FeRAM등이 있다.
파일 시스템(220)에는 여러 종류가 있다. 본 실시예에 있어서, FAT 파일 시스템이 예로서 설명된다.
도 3은 FAT 파일 시스템의 구조를 보여준다. 도 3을 참조하면 FAT 파일 시스템(300)에서 PRAM(240)은 부트 레코드(310), FAT #1(320), FAT #2(330), 그리고 데이터 영역(340)으로 구분된다.
부트 레코드(310)에는 시스템의 부팅을 위한 기계어 코드와 FAT 파일 시스템(300)의 설정 값들이 저장된다. 부트 레코드(310)는 바이오스 파라미터 블록(Bios Parameter Block, BPB)으로도 불린다.
FAT #1(320) 및 FAT #2(330) 영역에는 클러스터(cluster)들을 관리하는 테이블이 저장된다. 클러스터는 데이터 저장을 위해 할당될 수 있는 가장 작은 단위이다. 따라서, 클러스터는 할당 단위(allocation unit)로 불린다.
클러스터와 파일 사이의 할당 관계를 추적하기 위해 FAT #1(320) 영역이 참조된다. FAT #1(320) 영역을 참조하여 클러스터의 사용 여부, 클러스터와 파일의 연결 관계가 식별된다. FAT #1(320) 영역이 손상되면 파일이 읽혀질 수 없다. 따라서, 일종의 백업본(copy)으로서 FAT #2(330) 영역을 둔다. 즉, FAT #1(320) 및 FAT #2(330)의 내용은 동일하다.
데이터 영역(340)에는 파일(file) 및 디렉토리(directory)가 저장된다. 디렉토리는 디렉토리 엔트리(directory entry)들을 포함한다. 디렉토리 엔트리에는 파일의 이름(name)이나 크기(size), 위치(location)와 같은 속성(attribute)들이 저장된다.
FAT 파일 시스템에 있어서, FAT #1(320) 및 FAT #2(330), 디렉토리 엔트리 등과 같이 액세스 빈도가 높은 데이터들은 핫 데이터(hot data)에 해당한다. 반면에, 액세스 빈도가 낮은 파일은 콜드 데이터(cold data)에 해당한다.
본 발명에 따른 실시예들에서 저장될 데이터가 핫 데이터 또는 콜드 데이터인지 여부에 따라 상이한 마모도 관리 방법이 수행된다. 이하, 도 4를 참조하여 본 발명에 따른 마모도 관리 방법이 설명될 것이다.
도 4는 본 발명에 따른 마모도 관리 방법을 간략하게 보여주는 순서도이다.
도 4를 참조하면, 먼저, 데이터의 특성(type)이 검출된다(410). 데이터의 특성은 파일 시스템(220)에 의해 검출된다. 저장될 데이터가 콜드 데이터인 경우, 파일 시스템(220)은 저장될 데이터가 콜드 데이터임을 변환 계층(230)에 알린다. 파일 시스템(220)은 콜드 데이터를 저장하기 위해 PRAM(240)의 논리 블록 전체를 할당한다.
저장될 데이터가 콜드 데이터인 경우, 변환 계층(230)은 논리 블록 단위로 마모도 관리를 수행한다(430). 마모도 관리에 있어서, 논리 블록의 마모 횟수가 참조된다. 가장 작은 마모 횟수를 가지는 논리 블록이 먼저 할당된다.
여기서, 논리 블록이라 함은 PRAM(240)의 메모리 셀 어레이가 논리 단위로 구분된 것을 말한다. 이는 메모리 셀 어레이의 물리적 구조와는 구별된다. 편의상, 논리 블록의 크기는 파일 시스템의 할당 단위(예를 들어, FAT 파일 시스템에서의 클러스터)와 동일할 수 있다. 단, 논리 블록의 크기는 이에 한정되지 않는다. 또한, 논리 블록의 크기는 빌드 타임(build time) 또는 마운트 타임(mount time) 동안에 결정될 수 있다.
저장될 데이터가 핫 데이터인 경우, 파일 시스템(220)은 저장될 데이터가 핫 데이터라는 것을 변환 계층(230)에 알린다. 또한, 파일 시스템(220)은 핫 데이터를 저장하기 위한 영역으로서 논리 블록의 일부를 할당한다. 본 실시예에서, 논리 블록의 일부는 엔트리(entry)로 정의된다. 엔트리는 핫 데이터를 저장하기 위한 영역이다. 편의상, 엔트리의 크기는 FAT 파일 시스템에서의 디렉토리 엔트리의 크기와 동일할 수 있다. 단, 엔트리의 크기는 이에 한정되지 않는다. 또한, 엔트리의 크기는 빌드 타임(build time) 또는 마운트 타임(mount time) 동안에 결정될 수 있다.
요약하면, 저장될 데이터가 콜드 데이터인 경우에는 논리 블록 단위로 마모도 관리가 수행된다(430). 콜드 데이터의 특성상, 논리 블록 단위로 마모되기 때문이다. 반면에, 저장될 데이터가 핫 데이터인 경우에는 논리 블록 단위 마모도 관리가 수행되기에 앞서, 엔트리 단위로 마모도 관리가 수행된다(420). 핫 데이터의 특성상, 엔트리 단위로 마모되기 때문이다. 이하, 본 발명에 따른 논리 블록의 구조가 후술될 도면을 참조하여 설명될 것이다.
도 5는 본 발명에 따른 논리 블록들을 보여준다.
도 5(a)는 콜드 데이터(CD)가 저장되는 경우의 논리 블록을 보여준다. 도 5(a)를 참조하면, 논리 블록의 헤더 영역에는 논리 블록에 관한 정보가 저장된다. 특히, 논리 블록의 헤더(header) 영역에는 블록 마모 횟수(Blk cnt) 가 저장된다.
블록 마모 횟수(Blk cnt)는 논리 블록 할당시 변환 계층(230)에 의해 참조된다. 논리 블록 할당시, 논리 블록 사이의 마모도 밸런스 유지를 위해, 가장 작은 블록 마모 횟수(Blk cnt)를 갖는 논리 블록이 먼저 할당된다.
도 5(b)는 핫 데이터(HD)가 저장되는 경우의 논리 블록을 보여준다. 도 5(b)를 참조하면, 논리 블록의 헤더 영역에는 블록 마모 횟수(Blk cnt)가 저장된다. 논리 블록은 복수의 엔트리들(E1 ~ E4)을 포함한다. 각 엔트리에는 핫 데이터(HD)가 저장된다.
엔트리 마모 횟수(E1 cnt~ E4 cnt)들은 엔트리들의 마모도를 나타낸다. 엔트리 마모 횟수는 변환 계층(230)에 의해 참조되어 마모도 관리의 기준이 된다. 엔트리 마모 횟수는 블록 헤더에 저장되거나 별도의 영역에 저장될 수 있다. 예를 들어, 엔트리 마모 횟수는 블록 마모 횟수와 함께 표(table)의 형태로 PRAM(240)에 저장되어, 변환 계층(230)에 의해 참조될 수 있다.
도 5(b)에 도시된 논리 블록은 4개의 엔트리들(E1 ~ E4)을 포함하지만, 본 발명의 범위는 이에 한정되지 않는다. 엔트리의 수는 데이터의 특성에 따라 변할 수 있다.
반도체 메모리 장치의 수명을 증가시키기 위해서는 엔트리 사이의 마모도가 균일하여야 한다. 이하, 도면을 참조하여 본 발명에 따른 엔트리 단위 마모도 관리 방법이 설명될 것이다.
도 6은 본 발명에 따른 엔트리 단위 마모도 관리 방법을 보여준다.
도 6을 참조하면, 논리 블록은 복수의 엔트리들(E1 ~ E4)을 포함한다. 괄호안의 숫자는 마모 횟수를 의미한다. 각 엔트리들(E1 ~ E4)에는 핫 데이터들(HD1 ~ HD4)이 저장된다. 예를 들어, 엔트리 1(E1)에는 핫 데이터 1(HD1)이 저장되고, 엔트리 1(E1)의 마모 횟수는 4이다.
본 발명에 있어서, 마모 횟수가 드레솔드 값에 도달된 엔트리에 저장된 데이터는 가장 적게 마모된 엔트리에 저장된 데이터와 교환된다. 마모 횟수가 드레솔드 값에 도달된 엔트리에 저장된 데이터는 변경 빈도가 높은 데이터일 가능성이 크고 반면에, 가장 적게 마모된 엔트리에 저장된 데이터는 변경 빈도가 낮은 데이터일 가능성이 크기 때문이다. 따라서, 이러한 교환을 반복함으로써 엔트리 사이의 마모도 밸런스가 유지될 수 있다.
드레솔드 값은 임의의 값을 가질 수 있다. 예를 들어, 데이터가 빈번하게 갱신되는 경우, 큰 드레솔드 값이 적용될 수 있다. 반면에, 데이터가 빈번하게 갱신되지 않는 경우, 작은 드레솔드 값이 적용될 수 있다. 본 발명에 따른 실시예에 있어서, 드레솔드 값은 5인 것으로 가정된다.
다시, 도 6을 참조하면, 핫 데이터 1(HD1)이 수정되는 경우가 설명된다. 엔트리 1(E1)의 마모 횟수는 4이기 때문에 수정에 의해 드레솔드 횟수에 도달된다. 그리고, 엔트리 3(E3)은 가장 작은 마모 횟수를 갖는다. 따라서, 엔트리 1(E1)에 저장된 핫 데이터 1(HD1)과 엔트리 3(E3)에 저장된 핫 데이터 3(HD3)이 교환된다. 도면에는 도시되지 않았지만, 데이터의 교환을 위한 버퍼(buffer)가 구비될 수 있다. 겹쳐 쓰기에 의해 엔트리에 저장된 데이터가 소멸될 수 있기 때문이다.
결국, 엔트리 1(E1)에는 핫 데이터 3(HD3)이 저장되고, 엔트리 3(E3)에는 핫 데이터 1(HD1)이 저장된다. 엔트리 1(E1) 및 엔트리 3(E3)이 모두 변경되기 때문에, 엔트리 1(E1) 및 엔트리 3(E3)의 엔트리 마모 횟수는 각각 5 및 2가 된다.
이와 같은 동작이 반복됨으로써 빈번하게 변경되는 데이터는 가장 적게 마모된 엔트리에 저장된다. 따라서, 엔트리 사이의 마모도 밸런스 유지가 가능해진다.
도 7은 본 발명에 따른 엔트리 단위 마모도 관리 방법을 자세하게 보여준다.
도 7(a)를 참조하면, 논리 블록은 4개의 엔트리들(E1 ~ E4)을 포함한다.
엔트리들(E1 ~ E4)에는 각각 핫 데이터들(HD1 ~ HD4)이 저장된다. 먼저, 핫 데이터 2(HD2)가 변경될 경우가 가정된다. 또한, 드레솔드 값은 5인 것으로 가정된다.
엔트리 2(E2)의 마모 횟수는 4이기 때문에, 변경에 의해 드레솔드 값에 도달한다. 따라서, 핫 데이터 2(HD2)는 가장 작은 엔트리 마모 횟수를 가지는 엔트리 1(E1)에 저장된다. 그리고, 핫 데이터 1(HD1)은 엔트리 2(E2)에 저장된다. 결국, 핫 데이터 1(HD1)과 핫 데이터 2(HD2)의 위치가 교환된다. 도 7(b)를 참조하면, 엔트리 1(E1) 및 엔트리 2(E2)의 마모 횟수는 각각 4 및 5가 된다.
다음에, 핫 데이터 2(HD2)가 다시 변경될 경우가 가정된다. 엔트리 1(E1)의 엔트리 마모 횟수는 4이기 때문에 변경에 의해 드레솔드 값에 도달된다. 따라서, 핫 데이터 2(HD2)는 가장 작은 엔트리 마모 횟수를 가지는 엔트리 4(E4)에 저장된 다. 그리고, 핫 데이터 4(HD4)는 엔트리 1(E1)에 저장된다. 결국, 핫 데이터 2(HD2)와 핫 데이터 4(HD4)의 위치가 교환된다. 도 7(c)를 참조하면, 엔트리 1(E1) 및 엔트리 4(E4)의 마모 횟수는 각각 5 및 4가 된다.
다음에, 핫 데이터 2(HD2)가 또다시 변경될 경우가 가정된다. 엔트리 4(E4)의 엔트리 마모 횟수는 4이기 때문에, 변경에 의해서 드레솔드 값(5)에 도달된다. 그러나, 다른 엔트리들(E1 ~ E3)의 엔트리 마모 횟수들이 모두 드레솔드 값에 도달하였기 때문에, 핫 데이터들의 위치 교환은 일어나지 않는다. 결국, 핫 데이터 4(HD4)만이 갱신(update)되고, 엔트리 4(E4)의 마모 횟수가 증가된다. 결국, 모든 엔트리들(E1 ~ E4)의 마모 횟수들이 드레솔드 값에 도달한다.
상기한 방법을 통해 엔트리들 사이의 마모도가 관리된다. 요약하면, 가장 빈번하게 수정되는 데이터가 가장 덜 마모된 엔트리에 저장됨으로써, 엔트리들 사이의 마모도 밸런스가 유지된다.
모든 엔트리들(E1 ~ E4)의 마모 횟수들이 드레솔드 값에 도달하면 엔트리 마모 횟수의 초기화(reset)가 수행되어야 한다. 본 발명에 따른 초기화 방법이 후술될 도면을 참조하여 설명될 것이다.
도 8은 본 발명에 따른 마모도 관리 방법에 있어서, 엔트리 마모 횟수들을 초기화하는 방법을 보여준다.
도 8(a)는 엔트리 마모 횟수들이 모두 드레솔드 값에 도달된 경우의 초기화 방법을 보여준다. 도 8(a)를 참조하면, 엔트리 마모 횟수들이 모두 드레솔드 값에 도달되면 블록 마모 횟수가 드레솔드 값만큼 증가된다. 그리고, 엔트리 마모 횟수 들은 0으로 초기화된다. 결국, 블록 마모 횟수가 5라 함은 모든 엔트리들(E1 ~ E4)이 5번씩 마모되었음을 의미한다. 이와 같은 방법을 통해 엔트리 마모 횟수들이 간단하게 관리될 수 있다.
도 8(b) 및 8(c)는 논리 블록이 회수되는 경우, 엔트리 마모 횟수가 초기화되는 방법을 보여준다. 이 경우, 도 8(a)의 경우와 달리 엔트리 마모 횟수들이 드레솔드 값에 도달하지 않았음에도 불구하고 초기화가 수행된다.
본 실시예에서, 엔트리 마모 횟수들의 분산에 따라 서로 다른 초기화 방법이 수행된다. 분산(variation)이라 함은 엔트리 마모 횟수들이 평균(m)에서 벗어난 정도를 말한다. 예를 들어, 엔트리 마모 횟수들이 평균(m)에서 멀리 떨어져 있으면, 분산이 크다. 반대로, 엔트리 마모 횟수들이 평균(m)에서 가깝게 있으면, 분산이 작다.
도 8(b)는 엔트리 마모 횟수들의 분산이 작은 경우의 초기화 방법을 보여준다. 도 8(b)를 참조하면, 엔트리들의 마모 횟수들은 평균(m)에서 가까운 값을 갖는다. 이 경우, 블록 마모 횟수가 평균(m)만큼 증가되고, 엔트리 마모 횟수들은 0으로 초기화된다. 결국, 엔트리들은 m번씩 마모된 것으로 가정된다. 엔트리 마모 횟수의 분산이 작기 때문에 이러한 방법은 합리적이다.
도 8(c)는 엔트리 마모 횟수들의 분산이 큰 경우의 초기화 방법을 보여준다. 도 8(c)를 참조하면, 엔트리 마모 횟수들은 평균(m)에서 멀리 떨어진 값을 갖는다. 이 경우, 블록 헤더에 무효 정보(invalid)가 저장된다. 무효 정보는 논리 블록이 할당되지 않아 사용될 수 있는 상태에 있음을 의미한다. 그리고, 엔트리 마모 횟수 들은 유지된다. 이후, 논리 블록이 할당되면, 엔트리 마모 횟수들이 참조되어 마모도 관리가 수행된다. 즉, 엔트리 마모 횟수들의 편차가 크기 때문에 엔트리 마모 횟수들을 유지하여 마모도가 관리된다.
본 발명에 따른 실시예들에서, 논리 블록은 클러스터(cluster)에, 엔트리는 디렉토리 엔트리(directory entry)에 대응되지만, 본 발명의 범위는 이에 제한되지 않는다. 논리 블록 및 엔트리의 크기는 파일 시스템의 종류에 따라 변경될 수 있다.
본 발명에 따른 마모도 관리 방법은 다른 파일 시스템을 통해 수행될 수 있다. 특히, 이동 통신 장치용 파일 시스템으로서 심비안(Symbian) FAT 및 EFS2가 있다.
심비안 OS(Symbian OS)는 노키아(Nokia), 소니 에릭슨(Sony Ericsson), 지멘스(Siemens) 등 유럽의 이동통신 장비업체들이 1998년부터 컨소시엄을 결성해 개발한 휴대폰, PDA, 스마트폰 등 모바일용 컴퓨터 운영체제(OS)이다.
EFS2(Embedded File System 2)는 EFS를 개량한 것이다. EFS2는 퀄컴(Qualcomm)의 REX(Real Time Executive) 운영 체제에 의해 운용되는 CDMA 휴대폰에서 사용된다.
도 9는 본 발명에 따른 반도체 메모리 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 9를 참조하면, 컴퓨팅 시스템(500)은 프로세서(510), 컨트롤러(520), 입력 장치들(530), 출력 장치들(540), 불휘발성 메모리(550), 그리고 RAM(560)를 포 함한다. 도면에서 실선은 데이터 또는 명령이 이동하는 시스템 버스(System bus)를 나타낸다.
본 발명에 따른 컴퓨팅 시스템(500)은 입력 장치들(530)(키보드, 카메라 등)을 통해 외부로부터 데이터를 입력받는다. 입력된 데이터는 불휘발성 메모리(550) 또는 RAM(560)에 저장된다.
컨트롤러(520)는 외부로부터의 명령에 응답하여 각 컴포넌트들을 제어한다. 프로세서(510)는 컨트롤러(520)의 제어에 응답하여 프로세스를 처리한다. 처리 결과는 불휘발성 메모리(550) 또는 RAM(560)에 저장된다.
출력 장치들(540)은 컨트롤러(520)의 제어에 응답하여 불휘발성 메모리(550) 또는 RAM(560)에 저장된 데이터를 출력한다. 출력 장치들(540)은 불휘발성 메모리(550)에 저장된 데이터를 인간이 감지 가능한 형태로 출력한다. 예를 들어, 출력 장치(540)는 디스플레이 또는 스피커 등이 될 수 있다. 불휘발성 메모리(550)에는 본 발명에 따른 마모도 관리 방법이 적용될 것이다.
불휘발성 메모리(550), 그리고/또는 컨트롤러(520)는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 불휘발성 메모리(550) 그리고/또는 컨트롤러(520)는 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) 등과 같은 패키지들을 이용하여 실장될 수 있다.
비록 도면에는 도시되지 않았지만 컴퓨팅 시스템(500)의 동작에 필요한 전원을 공급하기 위한 전원 공급부(Power supply)가 요구됨은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 그리고, 컴퓨팅 시스템(500)이 모바일 장치인 경우, 동작 전원의 공급을 위한 배터리가 포함될 것이다. 불휘발성 메모리(550)의 성능 및 수명이 향상됨에 따라 컴퓨팅 시스템(500)의 성능 및 수명도 이에 비례하여 향상될 것이다.
본 발명에 따른 반도체 메모리 장치는 SSD(Solid State Disk)에도 적용될 수 있다. 최근, 하드디스크 드라이브(HDD)를 교체할 것으로 예상되는 SSD가 차세대 메모리 시장에서 각광을 받고 있다. SSD는 기계적으로 움직이는 하드디스크 드라이브에 비해 속도가 빠르고 외부 충격에 강하며, 소비전력도 낮다는 장점을 가진다.
본 발명에 따른 반도체 메모리 시스템은 이동형 저장 장치로서 사용될 수 있다. 예를 들어, 본 발명에 다른 반도체 메모리 시스템은 MP3, 디지털 카메라, PDA, e-Book의 저장 장치로서 사용될 수 있다. 또한, 디지털 TV나 컴퓨터 등의 저장 장치로서 사용될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내 용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
210: 애플리케이션 220: 파일 시스템
230: 변환 계층 240: PRAM

Claims (24)

  1. 복수의 엔트리를 각각 포함하는 복수의 논리 블록을 포함하는 불휘발성 메모리;
    쓰기 데이터의 특성을 검출하고, 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 복수의 엔트리를 상기 쓰기 데이터의 저장을 위해 할당하는 파일 시스템; 및
    상기 쓰기 데이터의 특성에 따라 상기 논리 블록 간 또는 상기 복수의 엔트리 간의 마모도를 관리하는 변환 계층을 포함하고,
    상기 복수의 엔트리 각각은 상기 복수의 논리 블록 각각의 일부 영역인 반도체 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 변환 계층은 상기 복수의 엔트리의 엔트리 마모 횟수가 임계 횟수에 도달하였는지를 검출하고, 상기 검출 결과에 따라, 동일 논리 블록 내의 복수의 엔트리에 저장된 데이터들을 서로 교환하는 반도체 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 변환 계층은 상기 복수의 엔트리 중 상기 엔트리 마모 횟수가 임계 횟수에 도달한 엔트리에 저장된 데이터와 상기 복수의 엔트리 중 가장 작은 엔트리 마모 횟수를 가지는 엔트리에 저장된 데이터를 교환함으로써 상기 동일 블록 내의 상기 복수의 엔트리에 저장된 데이터들을 서로 교환하는 반도체 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 변환 계층은 상기 복수의 엔트리의 모든 엔트리 마모 횟수들이 임계 횟수에 도달될 때까지 상기 복수의 엔트리에 저장된 데이터들을 서로 교환하는 반도체 메모리 시스템.
  5. 제 2 항에 있어서,
    상기 변환 계층은 상기 쓰기 데이터의 변경 빈도에 따라 상기 임계 횟수를 결정하고,
    상기 쓰기 데이터의 변경 빈도가 크면, 상기 변환 계층은 상기 임계 횟수를 증가시키고, 상기 쓰기 데이터의 변경 빈도가 낮으면, 상기 변환 계층은 상기 임계 횟수를 감소시키는 반도체 메모리 시스템.
  6. 삭제
  7. 삭제
  8. 제 2 항에 있어서,
    상기 변환 계층은 상기 복수의 엔트리의 모든 엔트리 마모 횟수들이 상기 임계 횟수에 도달되면, 블록 마모 횟수를 상기 임계 횟수만큼 증가시키고, 상기 엔트리 마모 횟수들을 초기화시키는 반도체 메모리 시스템.
  9. 제 1 항에 있어서,
    상기 변환 계층은 상기 논리 블록의 회수시, 상기 엔트리 마모 횟수들의 분산이 작으면, 블록 마모 횟수를 상기 엔트리 마모 횟수들의 평균만큼 증가시키고, 상기 엔트리 마모 횟수들을 초기화시키는 반도체 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 변환 계층은 상기 논리 블록의 회수시, 상기 엔트리 마모 횟수들의 분산이 크면, 상기 논리 블록을 무효화시키고, 상기 엔트리 마모 횟수들을 유지하는 반도체 메모리 시스템.
  11. 제 1 항에 있어서,
    상기 파일 시스템은 FAT, 심비안 FAT, 그리고 EFS2 중 하나인 반도체 메모리 시스템.
  12. 제 1 항에 있어서,
    상기 파일 시스템은 상기 쓰기 데이터가 핫 데이터(hot data)인 경우, 상기 복수의 엔트리 중 어느 하나의 엔트리를 상기 쓰기 데이터의 저장을 위해 할당하는 반도체 메모리 시스템.
  13. 제 1 항에 있어서,
    상기 파일 시스템은 상기 쓰기 데이터가 콜드 데이터(cold data)인 경우, 상기 논리 블록을 상기 쓰기 데이터의 저장을 위해 할당하는 반도체 메모리 시스템.
  14. 제 8 항에 있어서,
    상기 변환 계층은 상기 블록 마모 횟수를 참조하여 상기 논리 블록을 할당하는 반도체 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 변환 계층은 가장 작은 블록 마모 횟수를 갖는 논리 블록을 먼저 할당하는 반도체 메모리 시스템.
  16. 제 1 항에 있어서,
    상기 불휘발성 메모리는 겹쳐 쓰기(overwrite)가 지원되는 반도체 메모리 시스템.
  17. 제 1 항에 있어서,
    상기 불휘발성 메모리는 PRAM, MRAM, 그리고 FeRAM 중 하나인 반도체 메모리 시스템.
  18. 제 1 항에 있어서,
    상기 파일 시스템의 종류에 따라 상기 논리 블록의 크기가 정해지고,
    상기 파일 시스템은 상기 논리 블록의 크기 정보를 상기 변환 계층에 제공하는 반도체 메모리 시스템.
  19. 삭제
  20. 제 18 항에 있어서,
    상기 파일 시스템은 빌드 타임(build time) 또는 마운트 타임(mount time) 동안에 상기 논리 블록의 크기를 결정하는 반도체 메모리 시스템.
  21. 제 1 항에 있어서,
    상기 파일 시스템의 종류에 따라 상기 복수의 엔트리 각각의 크기가 정해지고,
    상기 파일 시스템은 상기 복수의 엔트리의 크기 정보를 상기 변환 계층에 제공하는 반도체 메모리 시스템.
  22. 삭제
  23. 제 21 항에 있어서,
    상기 파일 시스템은 빌드 타임(build time) 또는 마운트 타임(mount time) 동안에 상기 복수의 엔트리의 크기를 결정하는 반도체 메모리 시스템.
  24. 반도체 메모리 시스템의 마모도 관리 방법에 있어서:
    상기 반도체 메모리 시스템은 복수의 엔트리를 각각 포함하는 복수의 논리 블록을 포함하는 불휘발성 메모리를 포함하고,
    상기 마모도 관리 방법은,
    쓰기 데이터의 특성을 검출하고, 상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 복수의 엔트리를 상기 쓰기 데이터의 저장을 위해 할당하는 단계; 및
    상기 쓰기 데이터의 특성에 따라 상기 논리 블록 또는 상기 복수의 엔트리 사이의 마모도를 관리하는 단계를 포함하고,
    상기 복수의 엔트리 각각은 상기 복수의 논리 블록 각각의 일부 영역인 방법.
KR1020070130186A 2007-12-13 2007-12-13 반도체 메모리 시스템 및 그것의 마모도 관리 방법 KR101401560B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070130186A KR101401560B1 (ko) 2007-12-13 2007-12-13 반도체 메모리 시스템 및 그것의 마모도 관리 방법
CN2008101846534A CN101458969B (zh) 2007-12-13 2008-12-11 半导体存储器系统及其磨损平衡方法
US12/316,508 US8055836B2 (en) 2007-12-13 2008-12-12 Semiconductor memory system and wear-leveling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070130186A KR101401560B1 (ko) 2007-12-13 2007-12-13 반도체 메모리 시스템 및 그것의 마모도 관리 방법

Publications (2)

Publication Number Publication Date
KR20090062754A KR20090062754A (ko) 2009-06-17
KR101401560B1 true KR101401560B1 (ko) 2014-06-03

Family

ID=40754782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070130186A KR101401560B1 (ko) 2007-12-13 2007-12-13 반도체 메모리 시스템 및 그것의 마모도 관리 방법

Country Status (3)

Country Link
US (1) US8055836B2 (ko)
KR (1) KR101401560B1 (ko)
CN (1) CN101458969B (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
KR101038991B1 (ko) * 2009-03-10 2011-06-03 주식회사 하이닉스반도체 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법
US8321727B2 (en) * 2009-06-29 2012-11-27 Sandisk Technologies Inc. System and method responsive to a rate of change of a performance parameter of a memory
US20110107042A1 (en) * 2009-11-03 2011-05-05 Andrew Herron Formatting data storage according to data classification
WO2011061724A1 (en) * 2009-11-23 2011-05-26 Amir Ban Memory controller and methods for enhancing write performance of a flash device
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8806106B2 (en) * 2010-11-12 2014-08-12 Seagate Technology Llc Estimating wear of non-volatile, solid state memory
CN103620563B (zh) 2011-04-26 2015-04-29 Lsi公司 用于非易失性存储器的可变超量配置
KR20120136197A (ko) * 2011-06-08 2012-12-18 삼성전자주식회사 비휘발성 메모리에 대한 웨어 레벨링 방법
US20120317337A1 (en) * 2011-06-09 2012-12-13 Microsoft Corporation Managing data placement on flash-based storage by use
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
TWI454916B (zh) * 2012-05-08 2014-10-01 Phison Electronics Corp 儲存單元管理方法、記憶體控制器與記憶體儲存裝置
KR102003930B1 (ko) 2012-07-31 2019-07-25 삼성전자주식회사 불휘발성 메모리 장치의 데이터 라이팅 제어방법 및 웨어레벨링 제어 기능을 가지는 메모리 콘트롤러
US9378793B2 (en) * 2012-12-20 2016-06-28 Qualcomm Incorporated Integrated MRAM module
US9632926B1 (en) 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
CN103688248B (zh) 2013-06-29 2015-09-30 华为技术有限公司 一种存储阵列的管理方法、装置和控制器
CN104391652A (zh) * 2014-10-20 2015-03-04 北京兆易创新科技股份有限公司 一种硬盘的损耗均衡方法及装置
KR20160143259A (ko) * 2015-06-05 2016-12-14 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10698732B2 (en) * 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
CN108228105A (zh) * 2017-12-29 2018-06-29 北京联想核芯科技有限公司 一种ssd硬盘的数据处理方法和装置
US10922221B2 (en) 2018-03-28 2021-02-16 Micron Technology, Inc. Memory management
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010029171A (ko) * 1999-09-29 2001-04-06 윤종용 플래시 메모리와 그 제어 방법
KR20040009926A (ko) * 2002-07-26 2004-01-31 지인정보기술 주식회사 플래시 메모리 관리 방법
KR20050050148A (ko) * 2002-10-28 2005-05-27 샌디스크 코포레이션 비-휘발성 저장 시스템의 소모 레벨링
KR20050059314A (ko) * 2002-10-28 2005-06-17 샌디스크 코포레이션 비휘발성 저장 시스템들에서 가장 자주 소거되는 블록들의추적

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199129A1 (en) * 2001-06-21 2002-12-26 International Business Machines Corp. Data storage on a computer disk array
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010029171A (ko) * 1999-09-29 2001-04-06 윤종용 플래시 메모리와 그 제어 방법
KR20040009926A (ko) * 2002-07-26 2004-01-31 지인정보기술 주식회사 플래시 메모리 관리 방법
KR20050050148A (ko) * 2002-10-28 2005-05-27 샌디스크 코포레이션 비-휘발성 저장 시스템의 소모 레벨링
KR20050059314A (ko) * 2002-10-28 2005-06-17 샌디스크 코포레이션 비휘발성 저장 시스템들에서 가장 자주 소거되는 블록들의추적

Also Published As

Publication number Publication date
CN101458969B (zh) 2013-06-19
US8055836B2 (en) 2011-11-08
US20090157952A1 (en) 2009-06-18
KR20090062754A (ko) 2009-06-17
CN101458969A (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
KR101401560B1 (ko) 반도체 메모리 시스템 및 그것의 마모도 관리 방법
KR102580577B1 (ko) 솔리드 스테이트 드라이브들 내의 zns들
US8046526B2 (en) Wear leveling method and controller using the same
US8103820B2 (en) Wear leveling method and controller using the same
US8504760B2 (en) Method and apparatus for managing erase count of memory device
KR101454817B1 (ko) 반도체 메모리 장치 및 그것의 마모도 관리 방법
KR101543434B1 (ko) 반도체 메모리 시스템의 제조 방법
US11599304B2 (en) Data aggregation in ZNS drive
CN108986859B (zh) 具有可重写原地存储器的数据存储设备
KR20090121631A (ko) 반도체 메모리 장치, 메모리 시스템 및 그것의 데이터 복구방법
KR20100016987A (ko) 상 변화 메모리를 포함하는 컴퓨팅 시스템
WO2013101209A1 (en) Thin translation for system access of non volatile semicondcutor storage as random access memory
KR20120136197A (ko) 비휘발성 메모리에 대한 웨어 레벨링 방법
US11334480B2 (en) Data storage device and non-volatile memory control method
CN114746834A (zh) 基于分区状态的分区附加命令调度
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11960753B2 (en) Solution for super device imbalance in ZNS SSD
KR20200083917A (ko) 버퍼 리셋 커맨드를 이용하는 메모리 관리
KR20090042077A (ko) 파일 관리 시스템 및 방법
GB2559119A (en) Apparatus and methods to prolong lifetime of memories
US20180349148A1 (en) Data Storage Device with Rewritable In-Place Memory
US11847337B2 (en) Data parking for ZNS devices
US10147501B1 (en) Data storage device with rewriteable in-place memory
TWI684861B (zh) 用於資料儲存的設備及方法
US20230418499A1 (en) Storage device pool management based on fragmentation levels

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: 20170427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 6