KR101283289B1 - 고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템 - Google Patents

고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101283289B1
KR101283289B1 KR1020110028957A KR20110028957A KR101283289B1 KR 101283289 B1 KR101283289 B1 KR 101283289B1 KR 1020110028957 A KR1020110028957 A KR 1020110028957A KR 20110028957 A KR20110028957 A KR 20110028957A KR 101283289 B1 KR101283289 B1 KR 101283289B1
Authority
KR
South Korea
Prior art keywords
area
physical
count
logical
information
Prior art date
Application number
KR1020110028957A
Other languages
English (en)
Other versions
KR20110110720A (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 인텔 코오퍼레이션
Publication of KR20110110720A publication Critical patent/KR20110110720A/ko
Application granted granted Critical
Publication of KR101283289B1 publication Critical patent/KR101283289B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

정적 콘텐츠 또는 정보를 보유하는 고체 상태 드라이브의 논리 영역들을 모든 물리 영역의 평균 삭제 카운트보다 큰 삭제 카운트를 갖는 고체 상태 드라이브의 물리 영역으로 맵핑하여 고체 상태 드라이브에서 웨어 레벨링(wear leveling)하는 방법 및 시스템이 개시되어 있다. 이렇게 함으로써, 이는 고체 상태 드라이브가 계속적인 사용을 통해 자연스럽게 스스로 웨어 레벨링을 가능하게 한다. 본 발명의 일 실시예에서, 각 물리 영역의 삭제 카운트는 각 물리 영역의 매 삭제 동작마다 증가한다. 높은 수의 삭제 카운트 동작을 갖는 물리 영역은 정적 콘텐츠를 갖는 논리 영역들의 콘텐츠로 맵핑되어 이 물리 영역들의 차후 삭제 동작들의 가능성이 감소한다.

Description

고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템{METHOD AND SYSTEM FOR WEAR LEVELING IN A SOLID STATE DRIVE}
본 발명은 고체 상태 드라이브에 관한 것으로, 보다 구체적으로는 이하에 한정되는 것은 아니지만 고체 상태 드라이브 내의 메모리 모듈들의 웨어 레벨링(wear leveling)을 위한 기술에 관한 것이다.
고체 상태 드라이브들(solid state drives; SSDs)은 종종 복수의 NAND 플래시 메모리 블록 또는 모듈을 이용하여 저장 용량을 증가시킨다. 그러나, 각 NAND 플래시 메모리 모듈은 고장 나기 전까지 제한된 수의 기록 또는 삭제 사이클을 갖고 이는 SSD의 안정성에 영향을 주는데, 특히 SSD의 호스트 액세스들이 예측될 수 없는 환경에서 그러하다. 특정 SSD로의 기록 또는 삭제 동작들의 임의의 제어가 없으면, 일부 NAND 플래시 메모리 모듈들은 다른 모듈들보다 자주 기입되거나 삭제될 수 있고 따라서 특정 SSD의 안정성 또는 수명에 영향을 미친다.
본 발명의 특징 및 장점은 본 발명의 다음의 상세한 설명으로부터 명확해 질 것이다.
도 1은 본 발명의 일 실시예에 따른 고체 상태 드라이브의 블록도.
도 2는 본 발명의 일 실시예에 따른 고체 상태 드라이브의 구성을 도시한 도면.
도 3a은 본 발명의 일 실시예에 따른 고체 상태 드라이브 내의 웨어 레벨링을 수행하는 단계들의 흐름도.
도 3b는 본 발명의 일 실시예에 따른 고체 상태 드라이브 내의 웨어 레벨링을 수행하는 단계들의 흐름도.
도 3c는 본 발명의 일 실시예에 따른 고체 상태 드라이브 내의 웨어 레벨링을 수행하는 단계들의 흐름도.
도 4는 본 발명의 일 실시예에 따라 개시된 방법들을 실시하는 시스템을 도시한 도면.
본 명세서에서 설명된 발명의 실시예들은 예로서 설명되는 것이고 첨부된 도면들에 의해 제한되지 않는다. 설명을 단순 명료하게 하기 위해, 도면 내에 도시된 요소들은 반드시 크기가 비례하여 도시되지는 않았다. 예를 들어, 일부 요소들의 치수는 명확히 하기 위해 다른 요소들에 비해 과장될 수 있다. 더욱이, 적절하게 고려하면, 참조 번호들은 도면들에서 대응하거나 유사한 요소들을 나타내도록 반복된다. 명세서에서 발명의 "일 실시예" 또는 "실시예"에 대한 언급은 실시예와 함께 설명되는 특정 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서의 다양한 위치에 있는 "일 실시예에서"라는 문구는 모두 반드시 동일한 실시예를 의미할 필요는 없다.
본 발명의 실시예들은 정적 콘텐츠 또는 정보를 유지하는 SSD의 논리 영역들을 모든 물리 영역들의 평균 삭제 카운트보다 큰 삭제 카운트를 갖는 SSD의 물리 영역들로 맵핑하여 SSD에서 웨어 레벨링하기 위한 방법 및 시스템을 제공한다. 이렇게 함으로써, 이는 SSD가 계속적인 사용을 통해 자연스럽게 웨어 레벨링하는 것을 가능하게 한다. 본 발명의 일 실시예에서, 각 물리 영역의 삭제 카운트는 각 물리 영역의 매 삭제 동작마다 증가한다. 높은 수의 삭제 카운트 동작을 갖는 물리 영역은 정적 콘텐츠를 갖는 논리 영역들의 콘텐츠로 맵핑되어 이 물리 영역들의 차후 삭제 동작들의 가능성이 감소한다.
본 발명의 일 실시예에서, SSD 내의 웨어 레벨링은 모든 물리 영역의 평균 삭제 카운트 및 모든 물리 영역의 최소 삭제 카운트 간의 차이가 임계값을 초과한 경우 수행된다. SSD의 웨어 레벨링은 또한 모든 물리 영역의 최대 삭제 카운트 및 모든 물리 영역의 평균 삭제 카운트 간의 차이가 임계값을 넘은 경우 수행된다. 본 발명의 일 실시예에서, 두 시나리오에 대한 임계값은 동일하다. 발명의 또 다른 실시예에서, 각 시나리오는 상이한 임계값을 사용한다. 임계값의 사용은 임계값을 넘지 않는 경우 SSD가 최소의 부정적인 수행 영향으로 레벨을 소모할 수 있게 한다.
도 1은 본 발명의 일 실시예에 따른 고체 상태 드라이브(102)의 블록도(100)를 도시한다. SSD(102)는 제어기(130), 호스트 인터페이스 모듈(110), 버퍼(120), 및 메모리 모듈 0(140), 메모리 모듈 1(142), 메모리 모듈 2(144), 및 메모리 모듈 3(146)을 갖는다. 본 발명의 일 실시예에서, 호스트 인터페이스 모듈(110)은 호스트 장치 또는 시스템과 연결할 인터페이스를 제공한다. 호스트 인터페이스 모듈(110)은 이하에 한정되지는 않지만 시리얼 고급 기술 부착(Serial Advanced Technology Attachment; SATA) 리비전(Revision) 1.x, SATA 리비전 2.x, SATA 리비전 3.x, 및 임의의 기타 유형의 통신 프로토콜을 포함하는 통신 프로토콜에 따라 작동한다.
버퍼(120)는 본 발명의 일 실시예에서 임시 저장소를 SSD(102)로 제공한다. 버퍼는 동기식 동적 랜덤 액세스 메모리(Synchronous Dynamic Random Access Memory; SDRAM), 동적 랜덤 액세스 메모리(DRAM), RAMBUS 동적 랜덤 액세스 메모리(RDRAM), 및/또는 임의의 기타 유형의 랜덤 액세스 메모리 장치를 포함한다.
제어기(130)는 본 발명의 일 실시예에서 메모리 모듈 0-3으로의 액세스를 가능하게 하는 논리를 갖고 메모리 모듈들 0-3(140, 142, 144 및 146)의 웨어 레벨링을 가능하게 한다. 제어기(130)는 메모리 모듈들 0-3(140, 142, 144 및 146)을 논리 대역들 및 물리 대역들로 분할하거나 분리하고 논리 대역들 내의 정적 콘텐츠를 모든 물리 대역의 평균 삭제 카운트를 초과하는 삭제 카운트를 갖는 물리 대역들로 이전시켜 웨어 레벨링을 수행한다.
본 발명의 일 실시예에서, 메모리 모듈 0-3(140, 142, 144 및 146)은 이하에 한정되지는 않지만 NAND 플래시 메모리, 및 제한된 기록 또는 삭제 싸이클을 갖는 메모리를 포함한다. 도 1에 도시된 메모리 모듈의 수는 제한적인 것이 아니고 본 발명의 다른 실시예들에서, 네 개의 메모리 모듈들보다 많거나 적을 수 있다.
도 2는 본 발명의 일 실시예에 따른 고체 상태 드라이브(102)의 구성(200)을 도시한다. 설명을 명확히 하기 위해, 도 2는 도 1을 참고하여 설명된다. 본 발명의 일 실시예에서, 제어기(130)는 메모리 모듈 0-3(140, 142, 144 및 146)을 논리 영역 및 물리 영역으로 분리하거나 나눈다.
논리 영역은 논리 영역(L-영역) 1(221), L-영역 2(222), L-영역 3(223), 및 L-영역 4(224)로 도시된다. 본 발명의 일 실시예에서, 논리 영역은 논리 대역(L-대역)의 크기와 일치하는 더 작은 유닛 또는 요소들로 나뉘거나 낱개로 된다. L-대역들(210)은 L-대역 1(L1) 내지 L-대역 22(L22)를 갖는다. 본 발명의 일 실시예에서, 각 L-대역의 크기는 하나 이상의 페이지를 갖는 삭제 블록의 크기이다. 각 L-대역의 호스트 사용은 본 발명의 일 실시예에서 제어기(130)에 의해 추적된다. 본 발명의 또 다른 실시예에서, 펌웨어 또는 소프트웨어가 제어기(130)로 로딩되어 각 L-대역의 호스트 사용을 추적한다.
본 발명의 일 실시예에서 상대적으로 빠른 호스트 기록 속도를 갖는 L-대역은 동적(dynamic)으로 간주되고 상대적으로 느린 호스트 기록 속도를 갖는 L-대역은 정적(static)으로 간주된다. 본 발명의 일 실시예에서, L-대역은 자신의 호스트 기록 속도가 모든 L-대역의 평균 호스트 기록 속도보다 빠른 경우 동적으로 간주된다. 본 발명의 또 다른 실시예에서, L-대역은 자신의 호스트 기록 속도가 모든 L-대역의 평균 호스트 기록 속도보다 느린 경우 정적으로 간주된다. 본 발명의 일 실시예에서, 특정 L-대역에 대한 호스트 기록의 속도 또는 빈도는 특정 L-대역에 대한 최근 호스트 기록의 가중 평균(weighted average)이다.
호스트 기록 동작이 특정 L-대역에서 수행되는 경우, 이는 특정 L-대역이 동적이 되도록 한다. 어떠한 호스트 기록 동작도 특정 L-대역 상에서 수행되지 않는 경우, 느린 주기적 감쇠 기능이 특정 L-대역이 정적으로 되도록 한다. 정적 L-대역들(235) 및 동적 L-대역들(230)이 정적 L-대역들 및 동적 L-대역들의 목록을 각각 보여준다. 특정 L-대역은 정적 L-대역들(235)로부터 동적 L-대역들(230)로 움직일 수 있고 그 역도 가능하다.
예를 들어, 본 발명의 일 실시예에서, L-영역 1(221)은 5개의 L-대역들(L1-L5)로 구성된다. 호스트가 L-영역 1(221)로 데이터를 기록하는 경우, 제어기(130)가 L-영역 1(221)과 연관된 5개의 L-대역들을 동적으로 설정한다. L1-L5는 정적 L-대역들(235)의 목록으로부터 동적 L-대역들(230)의 목록으로 이동된다. 또 다른 예에서, L-영역 2(222)는 4개의 L-대역들(L6-L9)로 구성된다. 어떤 데이터도 L-영역 2(222)로 기록되지 않는 경우, 제어기(130)가 L-영역 2(222)와 연관된 4개의 L-대역들을 느린 주기적 감쇠 기능에 기초하여 정적으로 설정한다. L6-L9가 동적 L-대역들(230)의 목록으로부터 정적 L-대역들(235)의 목록으로 이동된다. 본 발명의 일 실시예에서, 제어기(130)는 만약 논리 영역이 평가된 경우 머신 싸이클들의 주기 또는 고정된 수를 검토한다. 느린 주기 감쇠 기능에 기초하여, 제어기(130)는 언제 논리 영역의 L-대역들을 정적으로 설정해야 하는지 결정한다.
L-대역들(210)을 분류하는 방법은 제한적인 것이 아니고 당업자라면 분류의 다른 방법들이 발명의 작동에 영향을 주지않으면서 사용될 수 있음을 알 수 있다.
물리 영역은 또한 물리 대역들(P-대역들)(240)로 도시된 더 작은 유닛들 또는 요소로 나뉘거나 낱개로 될 수 있다. 물리 영역은 22개의 P-대역들(P1 내지 P22)로 도시된다. P-대역 1(P1) 내지 P6, P9 내지 P10, 및 P13 내지 P16 내의 콘텐츠는 비어 있거나 삭제되었다. P7 내지 P8, P11-P12 및 P17 내지 P22는 콘텐츠를 저장하도록 활용된다. 본 발명의 일 실시예에서, 각 P-대역의 크기는 하나 이상의 페이지를 갖는 삭제 블록이다.
본 발명의 일 실시예에서 제어기(130)는 각 P-대역에 대한 삭제 카운터를 설정하고 각 P-대역의 각 삭제 카운트는 각 P-대역의 매 삭제 동작에 따라 증가한다. 각 P-대역에 대한 삭제 카운터는 특정 P-대역이 삭제된 횟수를 나타내고 이는 제어기(130)가 각 P-대역의 사용 패턴을 추적 또는 모니터링하도록 한다. 각 P-대역의 삭제 카운트는 괄호안에 기재되어 있다. 예를 들어, P1은 142개의 삭제 카운트를 갖는다.
본 발명의 일 실시예에서, 제어기(130)는 P-대역들(240)의 삭제 카운터들에 기초하여 빈 목록(250)을 생성한다. 빈 목록(250)은 비어 있거나 삭제된 P-대역들의 지표 목록으로 구성되고 P-대역들의 삭제 카운트에 의해 정렬된다. 예를 들어, P1은 비어 있거나 삭제된 P-대역들 가운데서 가장 높은 삭제 카운트를 갖기 때문에 빈 목록(250)의 맨 위로 삽입된다. P10은 비어 있거나 삭제된 P-대역들 가운데서 가장 낮은 삭제 카운트를 갖기 때문에 빈 목록(250)의 말단에 삽입된다. 빈 목록(250)의 말단은 빈 목록의 콜드(cold) 말단이라 하고, 빈 목록(250)의 말단은 빈 목록의 핫(hot) 말단이라 한다.
빈 목록(250)으로부터 특정 P-대역의 할당은 본 발명의 일 실시예에서 특정 P-대역의 예상 사용에 기초한다. 예를 들어, 본 발명의 일 실시예에서, 신규 호스트 정보를 기록하거나 저장할 신규 P-대역의 할당은 빈 목록(250)의 콜드 말단으로부터 발생한다. 본 발명의 또 다른 실시예에서, 동적 L-대역이 저장될 필요가 있는 경우, 동적 L-대역은 빈 목록(250)의 가장 콜드한 말단의 P-대역으로 맵핑된다. 정적 L-대역이 저장될 필요가 있는 경우, 정적 L-대역은 빈 목록(250)의 가장 핫한 말단의 P-대역으로 맵핑된다. 본 발명의 또 다른 실시예에서, 빈 목록(250)의 중간에서의 P-대역은 다른 저장 요청들에 기초하여 사용될 수 있다. P-대역들을 이들의 예상 사용에 기초하여 빈 목록(250)에 할당함으로써, 제어기(130)는 기록 확장에 비용이 추가되지 않는 메모리 모듈들 0-3(140, 142, 144, 및 146)의 웨어 레벨링을 수행할 수 있다.
본 발명의 일 실시예에서, 제어기(130)는 빈 목록(250)으로부터 평균 삭제 카운트, 최소 삭제 카운트 및 최대 삭제 카운트를 결정한다. 본 발명의 일 실시예에서 최소 및 최대 삭제 카운트는 각각 빈 목록(250)에서 가장 낮은 및 가장 높은 삭제 카운트로 설정된다.
본 발명의 일 실시예에서, 제어기는 평균 삭제 카운트 및 최소 삭제 카운트 간의 차이를 결정 및 계산하고 차이가 임계값보다 큰지 여부를 검토한다. 임계값을 초과하는 경우, 빈 목록(250)의 말단의 P-대역은 매우 콜드한 것으로 간주된다. 본 발명의 일 실시예에서 제어기(130)는 콜드 정적 콘텐츠를 빈 목록(250)의 가장 핫한 P-대역으로 맵핑하여 웨어 레벨링을 수행한다. 빈 목록(250)을 예로 사용하여, 제어기(130)는 정적 논리 콘텐츠를 삭제 카운트 142를 갖는 P1으로 이동시키거나 이전시켜 웨어 레벨링을 수행한다. 이렇게 함으로써, 제어기(130)는 가장 낮은 또는 최소 삭제 카운트를 갖는 P-대역들이 정적 콘텐츠로 묶여 있는 대신 정상 사용을 통해 순환되도록 한다.
본 발명의 또 다른 실시예에서, 제어기는 최대 삭제 카운트 및 평균 삭제 카운트 간의 차이를 결정 또는 계산하고 이 차이가 임계값보다 큰지 여부를 검토한다. 임계값을 넘는 경우, 빈 목록(250)의 맨 위의 P-대역은 매우 핫한 것으로 간주되는데, 즉 최대 삭제 카운트를 갖는 P-대역의 삭제 카운트가 더 이상 증가되지 않는다. 제어기(130)는 정적 콘텐츠를 갖는 L-대역들을 최대 삭제 카운트를 갖는 P-대역으로 맵핑하여 웨어 레벨링을 수행한다. 빈 목록(250)을 예로 이용하여, 제어기(130)는 L-영역 1(221)과 연관된 정적 L-대역들 중 하나를 삭제 카운트 142를 갖는 P1으로 이동시키거나 이전시켜 웨어 레벨링을 수행한다. 이렇게 함으로써, 삭제 카운트 142 또는 최대 삭제 카운트를 갖는 P1은 정적 콘텐츠를 유지하고 있기 때문에 다시 삭제되는 가능성이 더 적다. 본 발명의 일 실시예에서 제어기의 웨어 레벨링 기술들은 SSD(102)가 임의의 내구 관련 안정성 문제들을 겪지 않고도 더 기록될 수 있도록 한다.
본 발명의 일 실시예에서, 제어기(130)는 빈 목록(250)을 필요로 하지 않고 120에 삭제 카운트의 배열을 생성한다. 당업자라면 삭제 카운트들을 추적하는 다른 방법들이 본 발명의 작동에 영향을 주지 않으면서 사용될 수 있음을 알 수 있다.
도 3a는 본 발명의 일 실시예에 따라 고체 상태 드라이브(102)에서 웨어 레벨링을 수행하는 단계들의 흐름도(300)를 도시한다. 설명을 명확히 하기 위해, 도 3a는 도 1 및 2를 참조하여 설명된다. 흐름도(300)는 두 주요 단계; 초기화 단계(302) 및 웨어 레벨링 단계(304)를 갖는다. 초기화 단계(302) 동안, 제어기(130)는 단계(350)에서 L-대역들(210)의 호스트 사용을 추적한다. 본 발명의 일 실시예에서, 매 L-대역은 SSD(102)에 전력이 공급되거나 인에이블되는 경우 정적으로 초기화된다. 본 발명의 또 다른 실시예에서, 매 L-대역의 정적/동적 상태는 비휘발성 저장소에 저장되고 SSD(102)에 전력이 공급되거나 인에이블되는 경우 비휘발성 저장소로부터 복원된다. 특정 L-대역이 호스트 머신에 의해 기록되거나 액세스되는 경우, 제어기(130)가 특정 L-대역을 동적으로 설정한다. 특정 L-대역은 추가적인 기록 동작이 특정 L-대역 상에서 수행되지 않는 경우 느린 감쇠 기능에 기초하여 정적으로 되돌아간다.
단계(352)에서, 제어기(130)는 각 P-대역의 삭제 카운트를 추적한다. 본 발명의 일 실시예에서, 각 P-대역의 삭제 카운트는 비휘발성 방식으로 저장된다. 이는 SSD(102)가 전원이 끊기거나 디스에이블되는 경우에도 제어기(130)가 각 P-대역의 삭제 카운트의 현재 기록을 유지할 수 있게 한다. 단계(354)에서, 제어기(130)가 P-대역 번호를 색인하여 P 대역들(240)의 삭제 카운트를 추적하는 비휘발성 저장소로부터 빈 목록(250)을 채운다. 빈 목록(250)의 순서는 P-대역들(240)의 삭제 카운트에 기초한다.
웨어 레벨링 단계(304)는 제어기(130)가 빈 목록(250)으로부터 최소 삭제 카운트, 최대 삭제 카운트 및 평균 삭제 카운트를 결정하는 단계(315)에서 시작한다. 단계(320)에서, 제어기(130)는 빈 목록(250)의 가장 콜드한 영역 또는 말단이 평균 삭제 카운트로부터 너무 멀리 떨어져 있는지 여부를 검토한다. 본 발명의 일 실시예에서, 제어기(130)는 평균 삭제 카운트 및 최소 삭제 카운트 간의 차이가 임계값보다 큰 지 여부를 검토하여 단계(320)를 수행한다. 만약 그러하면, 흐름도(300)는 단계 3b로 넘어간다. 그렇지 않으면, 빈 목록(250)의 가장 핫한 영역 또는 말단이 평균 삭제 카운트로부터 너무 멀리 떨어져 있는지 여부를 검토한다. 본 발명의 일 실시예에서, 제어기(130)는 최대 삭제 카운트 및 평균 삭제 카운트 간의 차이가 임계값보다 큰 지 여부를 검토하여 단계(320)를 수행한다. 만약 그러하면, 흐름도(300)는 단계 3c로 넘어간다. 그렇지 않으면, 흐름(300)은 종료한다.
도 3b는 본 발명의 일 실시예에 따라 고체 상태 드라이브(102)에서 웨어 레벨링을 수행하는 단계들의 흐름도(330)를 도시한다. 설명을 명확히 하기 위해, 도 3b는 도 1, 2, 및 3a를 참조하여 설명된다. 단계(332)에서, 제어기(130)는 빈 목록(250)의 가장 콜드한 영역 또는 부분이 정적 콘텐츠를 보유하고 있는지 여부를 검토한다. 본 발명의 일 실시예에서, 제어기(130)는 빈 목록(250) 내의 최소 삭제 카운트를 갖는 P-대역과 연관된 논리 영역이 정적 콘텐츠를 보유하고 있는지, 즉 논리 영역의 L-대역이 정적인지 여부를 검토하여 단계(322)를 수행한다. 만약 그러하면, 제어기(130)는 단계(326)에서 정적 콘텐츠를 빈 목록(250) 내의 가장 높은 삭제 카운트를 갖는 P-대역으로 맵핑하고 흐름도(330)는 단계(360)로 진행한다. 그렇지 않으면, 제어기(130)는 낮은 삭제 카운트를 갖는 또 다른 P-대역을 선택하고, 최소 삭제 카운트를 갖는 P-대역과 연관된 논리 영역의 콘텐츠를 선택된 P-대역으로 이전하고 흐름도는 단계(360)로 진행한다. 이는 빈 목록(250)의 가장 콜드한 영역이 풀리도록 하여 이것이 더 많은 삭제 싸이클을 수신하도록 한다.
도 3c는 본 발명의 일 실시예에 따른 고체 상태 드라이브에서 웨어 레벨링을 수행하는 단계들의 흐름도(340)를 도시한다. 설명을 명확하게 하기 위해, 도 3c는 도 1, 2, 및 3a를 참고하여 설명된다. 단계(332)에서, 제어기(130)는 정적 콘텐츠가 있는지, 즉 임의의 정적 L-대역이 있는지 여부를 검토한다. 만약 그러하면, 단계(334)에서 제어기(130)는 정적 콘텐츠를 빈 목록(250) 내의 가장 높은 삭제 카운트를 갖는 P-대역으로 맵핑하고 흐름도(330)는 종료한다. 만약 그러하지 않으면, 제어기(130)는 단계(336)에서 유효 데이터를 갖는 다음 순서의 논리 영역을 찾는다. 단계(338)에서, 제어기(130)는 다음 순서의 논리 영역의 유효 데이터를 빈 목록(250) 내의 가장 높은 삭제 카운트를 갖는 P-대역으로 맵핑하고 흐름도(330)는 종료한다. 이는 제어기(130)가 정적 영역의 수가 불충분한 호스트 작업량을 관리할 수 있도록 하고 이것은 모든 물리 대역들이 빈 목록(250)을 통해 순환하고 이에 따라 정렬되도록 하는 순환 모델을 이용하여 논리 영역들을 물리 영역들로 맵핑한다.
도 4는 본 발명의 일 실시예에 따라 본 명세서에서 개시된 방법들을 실행하는 시스템(400)을 도시한다. 시스템(400)은 이하에 한정되지는 않지만, 데스크톱 컴퓨터, 랩톱 컴퓨터, 넷북, 노트북 컴퓨터, 개인용 디지털 보조기(PDA), 서버, 워크스테이션, 셀룰러 전화, 모바일 컴퓨팅 장치, 인터넷 기기 또는 임의의 기타 유형의 컴퓨팅 장치를 포함한다. 또 다른 실시예에서, 본 명세서에서 개시된 방법들을 실행하는데 사용되는 시스템(400)은 시스템 온 칩(system on a chip; SOC) 시스템이 될 수 있다.
프로세서(410)는 시스템(400)의 명령들을 실행하는 프로세싱 코어(412)를 갖는다. 프로세싱 코어(412)는 이하에 한정되지 않지만, 명령들을 페칭하기 위한 프리-페치(pre-fetch) 논리, 명령들을 디코딩하기 위한 디코드 논리, 명령들을 실행하기 위한 실행 논리 등을 포함한다. 프로세서(410)는 시스템(400)의 명령들 및/또는 데이터를 캐싱하기 위한 캐시 메모리(416)를 갖는다. 본 발명의 또 다른 실시예에서, 캐시 메모리(416)는 이하에 한정되지 않지만, 레벨 원, 레벨 투, 레벨 쓰리, 캐시 메모리 또는 프로세서(410) 내의 임의의 다른 구성의 캐시 메모리를 포함한다.
메모리 제어 허브(memory control hub; MCH, 414)가 프로세서(410)가 휘발성 메모리(432) 및/또는 비휘발성 메모리(434)를 포함하는 메모리(430)에 액세스하고 이 메모리와 통신할 수 있게 하는 기능들을 수행한다. 비휘발성 메모리(432)는 이하에 한정되지 않지만 동기식 동적 랜덤 액세스 메모리(Synchronous Dynamic Random Access Memory; SDRAM), 동적 랜덤 액세스 메모리(DRAM), RAMBUS 동적 랜덤 액세스 메모리(RDRAM), 및/또는 임의의 기타 유형의 랜덤 액세스 메모리 장치를 포함한다. 비휘발성 메모리(434)는 이하에 한정되지 않지만 NAND 플래시 메모리, 위상 변화 메모리(phase change memory; PCM), 리드 온니 메모리(ROM), 전기적으로 소거가능한 프로그램가능 리드 온니 메모리(electrically erasable programmable read only memory; EEPROM), 또는 임의의 기타 유형의 비휘발성 메모리 장치를 포함한다.
메모리(430)는 프로세서(410)에 의해 실행되는 명령들 및 정보를 저장한다. 메모리(430)는 또한 프로세서(410)가 명령들을 실행하는 동안 임시 변수들 또는 기타 중간 정보를 저장할 수 있다. 칩셋(420)은 포인트 투 포인트(Point-to-Point; PtP) 인터페이스들(417 및 422)을 통해 프로세서(410)와 연결된다. 칩셋(420)은 프로세서(410)가 시스템(400)의 다른 모듈들로 연결될 수 있도록 한다. 본 발명의 일 실시예에서, 인터페이스들(417 및 422)은 Intel® QuickPath Interconnect(QPI) 등과 같은 PtP 통신 프로토콜에 따라 동작한다.
칩셋(420)은 이하에 한정되지 않지만 액정 디스플레이(LCD), 음극선 관(cathode ray tube; CRT) 디스플레이, 또는 임의의 기타 형태의 시각 디스플레이 장치를 포함하는 디스플레이 장치(440)로 연결된다. 본 발명의 일 실시예에서, 프로세서(410) 및 칩셋(420)은 SOC로 병합된다. 또한, 칩셋(420)은 다양한 모듈들(474, 460, 462, 464 및 466)을 상호연결하는 하나 이상의 버스(450 및 455)로 연결된다. 버스들(450 및 455)은 버스 속도 또는 통신 프로토콜에 불일치가 있으면 버스 브리지(472)를 통해 함께 상호연결될 수 있다. 칩셋(420)은 이하에 한정되지 않지만, 비휘발성 메모리(460), 저장 장치(들)(462), 키보드/마우스(464) 및 네트워크 인터페이스(466)와 결합된다. 본 발명의 일 실시예에서, 고체 상태 드라이브(102)는 저장 장치(462)이다.
저장 장치(462)는 이하에 한정되지 않지만 고체 상태 드라이브, 하드 디스크 드라이브, 범용 직렬 버스 플래시 메모리 드라이브, 또는 임의의 기타 형태의 컴퓨터 데이터 저장 매체를 포함한다. 네트워크 인터페이스(466)는 이하에 한정되지 않지만 이더넷 인터페이스, 범용 직렬 버스(USB) 인터페이스, 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 고속 인터페이스, 무선 인터페이스 및/또는 임의의 기타 적절한 유형의 인터페이스를 포함하는 임의의 유형의 공지의 네트워크 인터페이스 표준을 이용하여 실행된다. 무선 인터페이스는 이하에 한정되지 않지만, IEEE 802.11 표준 및 이와 관련된 패밀리, 홈 플러그 AV(Home Plug AV; HPAV), 울트라 와이드 대역(Ultra Wide Band; UWB), 블루투스, WiMax, 또는 임의의 형태의 무선 통신 프로토콜에 따라 작동한다.
도 4에 도시된 모듈들이 시스템(400) 내에서 별개의 블록들로 도시되어 있지만, 이들 몇몇의 블록들에 의해 수행되는 기능들은 하나의 반도체 회로 내에서 통합될 수 있거나 둘 이상의 별개의 집적 회로를 이용하여 수행될 수 있다. 예를 들어, 캐시 메모리(416)가 프로세서(410) 내에서 별개의 블록으로 묘사되어 있지만, 캐시 메모리(416)는 각기 프로세서(412)로 통합될 수 있다. 본 발명의 또 다른 실시예에서 시스템(400)은 하나 보다 많은 프로세서 /프로세싱 코어를 포함할 수 있다.
본 명세서에서 설명된 방법들은 하드웨어, 소프트웨어, 펌웨어, 또는 임의의 이들의 기타 조합으로 실행될 수 있다. 개시된 발명의 실시예들의 예가 설명되었지만, 당업자라면 개시된 발명을 실시하는 여러 다른 방법들이 대체하여 사용될 수 있음을 알 수 있다. 위의 설명에서, 개시된 발명의 다양한 특징들이 설명되었다. 설명을 목적으로, 발명의 완벽한 이해를 돕기 위해 특정 숫자, 시스템 및 구성들이 제공되었다. 그러나, 당업자라면 본 개시 내용을 이용하여 구체적인 상세한 내용 없이도 발명이 실시될 수 있음을 알 수 있다. 다른 예에서, 공지의 특징, 구성요소, 또는 모듈들이 개시된 발명을 모호하게 하는 것을 막기 위해 생략되거나, 간소화되거나, 결합되거나, 나누어져 있다.
"동작할 수 있는"이라는 본 명세서에서 사용되는 용어는 장치, 시스템, 프로토콜 등이 장치 또는 시스템이 전력 오프 상태인 경우 원하는 기능을 동작할 수 잇는 또는 원하는 기능을 동작하도록 조정된 것을 의미한다. 개시된 발명의 다양한 실시예들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 수행될 수 있고, 머신에 의해 액세스되는 경우 머신 수행 태스크들을 가져와, 추상 데이터 유형 또는 로우 레벨 하드웨어 콘텍스트를 정의하거나 결과를 생산하는, 명령, 기능, 절차, 데이터 구조, 논리, 애플리케이션 프로그램, 시뮬레이션을 위한 디자인 표현 또는 포맷, 에뮬레이션, 및 디자인 제작과 같은 프로그램 코드를 참조하여 또는 프로그램 코드와 함께 설명될 수 있다.
도면들에 도시된 기술들은 범용 컴퓨터 또는 컴퓨팅 장치들과 같은 하나 이상의 컴퓨팅 장치상에 저장되고 장치상에서 실행되는 코드 및 데이터를 이용하여 실행될 수 있다. 이러한 컴퓨팅 장치들은 머신 판독가능 저장 매체(예컨대, 자기 디스크; 광 디스크; 랜덤 액세스 메모리; 리드 온니 메모리; 플래시 메모리 장치; 위상 변화 메모리) 및 머신 판독가능 통신 매체(예컨대, 전기, 광, 음향 또는 기타 형태의 전송 신호들 - 이를테면 반송파, 적외선 신호, 디지털 신호 등)와 같은 머신 판독가능 매체를 이용하여 코드 및 데이터를 저장하고 (내부적으로 및 네트워크를 통해 다른 컴퓨팅 장치들과) 통신한다.
개시된 발명이 예시적인 실시예들을 참고하여 설명되었지만, 본 설명은 제한적인 것으로 해석되어서는 안된다. 당업자에게 있어 본 발명과 관련된 것으로 보이는 예시적인 실시예들의 다양한 수정 뿐만 아니라 발명의 다른 실시예들은 개시된 발명의 범위 내에 있는 것으로 간주된다.

Claims (25)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 시스템으로서,
    고체 상태 드라이브
    를 포함하고,
    상기 고체 상태 드라이브는
    NAND 플래시 메모리; 및
    제어기를 포함하고,
    상기 제어기는
    상기 NAND 플래시 메모리의 복수의 논리 영역 중 하나의 논리 영역 내의 정보가 정적인지 여부를 판단하고 - 상기 하나의 논리 영역은 복수의 물리 영역 중 제1 물리 영역과 연관되고, 상기 제1 물리 영역은 모든 물리 영역의 평균 삭제 카운트보다 낮은 제1 삭제 카운트를 갖음 -,
    상기 하나의 논리 영역 내의 상기 정보가 정적이지 않다는 판단에 응답하여 상기 하나의 논리 영역 내의 상기 정보를 상기 복수의 물리 영역 중 제2 물리 영역으로 이전하며, 상기 제2 물리 영역은 상기 평균 삭제 카운트보다 낮고 상기 제1 삭제 카운트보다 높은 제2 삭제 카운트를 갖는 시스템.
  18. 제17항에 있어서,
    상기 제어기는 또한
    상기 하나의 논리 영역 내의 상기 정보가 정적이다는 판단에 응답하여 상기 하나의 논리 영역 내의 상기 정보를 상기 복수의 물리 영역 중 제3 물리 영역으로 맵핑하고, 상기 제3 물리 영역은 상기 평균 삭제 카운트보다 높은 제3 삭제 카운트를 갖는 시스템.
  19. 제17항에 있어서,
    상기 제어기는 또한
    상기 논리 영역들 중 어떠한 것도 정적 정보를 보유하고 있지 않다고 판단하고,
    유효 정보를 갖는 또 다른 논리 영역을 결정하며 - 상기 다른 논리 영역의 주소는 상기 하나의 논리 영역의 주소에 순차적임 -,
    상기 다른 논리 영역의 상기 유효 정보를 상기 복수의 물리 영역 중 제3 물리 영역으로 맵핑하고, 상기 제3 물리 영역은 상기 평균 삭제 카운트보다 높은 제3 삭제 카운트를 갖는 시스템.
  20. 제19항에 있어서,
    상기 제어기는 또한
    각 논리 영역의 기록 액세스 속도를 결정하고,
    각 물리 영역의 삭제 카운트를 결정하며, 각 물리 영역의 삭제 카운트는 각 물리 영역의 매 삭제 동작에 응답하여 증가하는 시스템.
  21. 제20항에 있어서,
    상기 제어기는 또한
    비어 있거나 삭제된 각 물리 영역의 삭제 카운트를 이용하여 각 물리 영역의 삭제 카운트의 오름 차순으로 배열되는 목록을 형성하고,
    상기 목록으로부터 최소 삭제 카운트, 최대 삭제 카운트, 및 평균 삭제 카운트를 결정하는 시스템.
  22. 제21항에 있어서,
    상기 제어기는 또한
    상기 평균 삭제 카운트와 상기 최소 삭제 카운트 간의 차이가 임계값보다 큰지 여부를 판단하고, 상기 하나의 논리 영역 내의 상기 정보가 정적이지 않다는 판단에 응답하여 상기 하나의 논리 영역 내의 상기 정보를 상기 제2 물리 영역으로 이전하는 상기 제어기는 상기 하나의 논리 영역 내의 상기 정보가 정적이지 않다는 판단 및 상기 차이가 상기 임계값보다 크다는 판단에 응답하여 상기 하나의 논리 영역 내의 상기 정보를 상기 제2 물리 영역으로 이전하는 시스템.
  23. 제21항에 있어서,
    상기 제어기는 또한
    상기 최대 삭제 카운트와 상기 평균 삭제 카운트 간의 차이가 임계값보다 큰지 여부를 판단하고, 상기 하나의 논리 영역 내의 상기 정보가 정적이다는 판단에 응답하여 상기 하나의 논리 영역 내의 상기 정보를 상기 제3 물리 영역으로 맵핑하는 상기 제어기는 상기 하나의 논리 영역 내의 상기 정보가 정적이다는 판단 및 상기 차이가 상기 임계값보다 크다는 판단에 응답하여 상기 하나의 논리 영역 내의 상기 정보를 상기 제3 물리 영역으로 맵핑하는 시스템.
  24. 삭제
  25. 삭제
KR1020110028957A 2010-04-01 2011-03-30 고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템 KR101283289B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/752,659 US8621141B2 (en) 2010-04-01 2010-04-01 Method and system for wear leveling in a solid state drive
US12/752,659 2010-04-01

Publications (2)

Publication Number Publication Date
KR20110110720A KR20110110720A (ko) 2011-10-07
KR101283289B1 true KR101283289B1 (ko) 2013-07-15

Family

ID=43980964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110028957A KR101283289B1 (ko) 2010-04-01 2011-03-30 고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템

Country Status (3)

Country Link
US (1) US8621141B2 (ko)
KR (1) KR101283289B1 (ko)
GB (1) GB2479235B (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694718B2 (en) * 2008-12-30 2014-04-08 Micron Technology, Inc. Wear leveling for erasable memories
EP2742429A4 (en) 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
CN104115109A (zh) 2012-02-08 2014-10-22 株式会社日立制作所 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法
WO2013176305A1 (en) * 2012-05-23 2013-11-28 Taejin Info Tech Co., Ltd. System architecture based on ddr memory
US8898405B2 (en) * 2012-06-12 2014-11-25 Storart Technology Co. Ltd Method for static wear leveling in non-violate storage device
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9117533B2 (en) * 2013-03-13 2015-08-25 Sandisk Technologies Inc. Tracking erase operations to regions of non-volatile memory
KR102085127B1 (ko) 2013-11-13 2020-04-14 삼성전자주식회사 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치
EP3078184A4 (en) * 2013-12-06 2017-07-26 Concurrent Ventures LLC System and method for dynamically load balancing storage media devices based on a mid-range performance level
US10235096B2 (en) 2013-12-06 2019-03-19 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on an average or discounted average sustained performance level
US9436404B2 (en) 2013-12-06 2016-09-06 Concurrent Ventures, LLC System and method for dynamically load balancing across storage media devices having fast access rates
US9274722B2 (en) 2013-12-06 2016-03-01 Concurrent Ventures, LLP System, method and article of manufacture for monitoring, controlling and improving storage media system performance
US10048895B2 (en) 2013-12-06 2018-08-14 Concurrent Ventures, LLC System and method for dynamically load balancing storage media devices based on a mid-range performance level
US9336136B2 (en) 2014-10-08 2016-05-10 HGST Netherlands B.V. Apparatus, systems, and methods for providing wear leveling in solid state devices
US9934872B2 (en) * 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US10691531B2 (en) * 2014-12-04 2020-06-23 Western Digital Technologies, Inc. Systems and methods for multi-zone data tiering for endurance extension in solid state drives
KR20170078310A (ko) * 2015-12-29 2017-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10656843B2 (en) 2016-05-16 2020-05-19 Dell Products L.P. Systems and methods for wear levelling in a storage array
KR102553170B1 (ko) * 2016-06-08 2023-07-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN107025066A (zh) * 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
KR20180064198A (ko) 2016-12-05 2018-06-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2018120439A (ja) 2017-01-25 2018-08-02 東芝メモリ株式会社 メモリシステムおよび制御方法
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
CN108563397B (zh) * 2018-01-04 2021-08-24 威盛电子股份有限公司 存储装置以及数据保存方法
EP3627308A1 (en) * 2018-09-20 2020-03-25 STMicroelectronics Srl A method of managing memories, corresponding circuit, device and computer program product
US11402999B2 (en) * 2019-12-03 2022-08-02 Burlywood, Inc. Adaptive wear leveling using multiple partitions
US11366597B2 (en) 2020-01-27 2022-06-21 Western Digital Technologies, Inc. Storage system and method for maintaining uniform hot count distribution using smart stream block exchange
US20220317916A1 (en) * 2021-04-05 2022-10-06 Micron Technology, Inc. Inter-device communications for memory health monitoring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065632A (ko) * 2002-10-28 2005-06-29 샌디스크 코포레이션 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치
WO2009108619A1 (en) * 2008-02-29 2009-09-03 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3507132B2 (ja) 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
JP2009003880A (ja) 2007-06-25 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及びその制御方法及び記憶装置
TWI366828B (en) * 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI389125B (zh) 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
CN101645309B (zh) 2008-08-05 2013-05-22 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
US8065469B2 (en) * 2009-04-20 2011-11-22 Imation Corp. Static wear leveling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050065632A (ko) * 2002-10-28 2005-06-29 샌디스크 코포레이션 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치
WO2009108619A1 (en) * 2008-02-29 2009-09-03 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system

Also Published As

Publication number Publication date
GB2479235B (en) 2014-04-02
US8621141B2 (en) 2013-12-31
KR20110110720A (ko) 2011-10-07
US20110246705A1 (en) 2011-10-06
GB201104299D0 (en) 2011-04-27
GB2479235A (en) 2011-10-05

Similar Documents

Publication Publication Date Title
KR101283289B1 (ko) 고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템
US11579773B2 (en) Memory system and method of controlling memory system
KR102164630B1 (ko) 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
US8332578B2 (en) Method and system to improve the performance of a multi-level cell (MLC) NAND flash memory
CN107179996B (zh) 数据存储装置和其操作方法
US8612666B2 (en) Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
US9461904B2 (en) Selective enablement of operating modes or features via host transfer rate detection
US8843697B2 (en) Operating method of data storage device
US9396108B2 (en) Data storage device capable of efficiently using a working memory device
US20140317337A1 (en) Metadata management and support for phase change memory with switch (pcms)
US20170270045A1 (en) Hybrid memory device and operating method thereof
US20230214158A1 (en) Read performance of memory devices
TWI475387B (zh) 記憶體控制方法及記憶體控制電路
US20120017052A1 (en) Information Handling System Universal Memory Wear Leveling System and Method
KR20190089429A (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
CN113590505A (zh) 地址映射方法、固态硬盘控制器及固态硬盘
CN106055488B (zh) 数据储存设备及其操作方法
US11409599B2 (en) Managing probabilistic data integrity scans in workloads with localized read patterns
CN113448487A (zh) 写入闪存管理表的计算机可读取存储介质、方法及装置
KR20160065644A (ko) 메모리 컨트롤러, 이를 포함하는 시스템, 및 이의 동작 방법
US11275620B2 (en) Efficient utilization of turbo-write buffers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6