마모 레벨링

Wear leveling

웨어 레벨링(Wear Leveling)은 솔리드 스테이트 드라이브(SSD)나 USB 플래시 드라이브에 사용되는 플래시 메모리, 상변화 메모리 등 소거 가능한 컴퓨터 스토리지 미디어의 수명을 연장하는 기술입니다[1].이러한 메모리 [2][3]시스템에서 다양한 수준의 수명 향상을 제공하는 몇 가지 마모 레벨링 메커니즘이 있습니다.

프리엠프티브 웨어 레벨링(PWL)[4]이라는 용어는 Western Digital에서 오디오 및 비디오 데이터를 저장하도록 설계된 하드 디스크 드라이브(HDD)에 사용되는 보존 기술을 설명하기 위해 사용되었습니다.단, 이 문서에서 HDD는 일반적으로 마모 레벨의 디바이스가 아닙니다.

근거

EEPROM 및 플래시 메모리 미디어에는 개별적으로 소거 가능한 세그먼트가 있으며, 이들 세그먼트는 각각 제한된 수의 소거 사이클을 거쳐 신뢰성이 떨어집니다.일반적으로 약 3,000/5000 사이클이지만[5][6], 많은 플래시 장치에는 100,000 사이클 이상의 특수 수명을 가진 블록이 1개 있어 플래시 메모리 컨트롤러가 세그먼트 간의 데이터 마모 및 이동을 추적하는 데 사용할 수 있습니다.CD-RW 나 DVD-RW 와 같은 소거 가능한 광학 미디어는, 최대 1,000 사이클(DVD-RAM 미디어의 경우는 100,000 사이클)로 평가되고 있습니다.

웨어 레벨링은 지우기 및 다시 쓰기가 매체 전체에 고르게 분산되도록 데이터를 배열하여 이러한 한계를 해결하려고 시도합니다.이렇게 하면 쓰기 사이클의 [7]고농도로 인해 단일 지우기 블록이 조기에 실패하는 일은 없습니다.플래시 메모리에서 칩의 단일 블록은 다른 블록보다 수명이 길도록 설계되어 메모리 컨트롤러가 [3][8]손상 가능성을 줄이면서 운영 데이터를 저장할 수 있습니다.

FAT, UFS, HFS, EXT 및 NTFS와 같은 기존 파일 시스템은 원래 자기 디스크용으로 설계되었으며, 이와 같이 많은 데이터 구조(디렉토리 등)를 동일한 영역에 반복적으로 다시 씁니다.이러한 시스템을 플래시 메모리미디어에서 사용하면 이것이 문제가 됩니다.일부 파일 시스템이 마지막 액세스 시간을 추적하기 때문에 파일 메타데이터가 지속적으로 [9]내부로 다시 작성될 수 있기 때문에 이 문제는 더욱 심각해집니다.

종류들

플래시 메모리 저장 [2]장치에 사용되는 마모 레벨링 메커니즘에는 세 가지 기본 유형이 있습니다.

마모 레벨링 없음

데이터가 플래시에 기록되면 마모 레벨링이 없는 플래시 메모리 스토리지 시스템은 오래가지 못합니다.마모 레벨링을 사용하지 않을 경우 기본 플래시 컨트롤러는 운영 체제(OS)의 논리 주소를 플래시 메모리의 물리적 주소에 영구적으로 할당해야 합니다.즉, 이전에 쓴 블록에 대한 모든 쓰기는 먼저 동일한 위치에 읽고, 지우고, 수정하고, 다시 써야 합니다.이 접근방식은 시간이 많이 걸리고 자주 쓰는 로케이션은 금방 닳지만 다른 로케이션은 전혀 사용되지 않습니다.몇 블록이 수명이 다하면 이러한 장치는 작동할 [2]수 없게 됩니다.

동적 마모 레벨링

첫 번째 마모 레벨링 유형은 동적 마모 레벨링이라고 하며 맵을 사용하여 OS에서 물리적 플래시 메모리로 논리 블록 주소(LBA)를 링크합니다.OS가 치환 데이터를 쓸 때마다 맵이 갱신되어 원래의 물리 블록이 무효 데이터로 마크되고 새로운 블록이 맵 엔트리에 링크된다.데이터 블록이 플래시 메모리에 다시 쓰여질 때마다 새로운 위치에 쓰여집니다.그러나 교체 데이터를 얻지 못하는 플래시 메모리 블록은 추가 마모를 지속하지 않기 때문에 이 이름은 재활용되는 동적 데이터에서만 유래합니다.이러한 장치는 마모 레벨링이 없는 장치보다 더 오래 지속될 수 있지만 장치가 [2][3]더 이상 작동하지 않더라도 여전히 활성 상태로 남아 있는 블록이 있습니다.

정적 마모 레벨링

다른 유형의 마모 레벨링은 정적 마모 레벨링이라고 불리며, LBA를 물리적 메모리 주소에 연결하기 위해 지도를 사용합니다.정적 마모 레벨링은 동적 마모 레벨링과 동일하게 작동하지만 변경되지 않는 정적 블록은 주기적으로 이동하므로 이러한 낮은 사용 셀을 다른 데이터에 사용할 수 있습니다.이러한 회전 효과를 통해 대부분의 블록이 수명이 다 [2][3]할 때까지 SSD가 계속 작동할 수 있습니다.

글로벌 마모 레벨링

동적 및 정적 마모 레벨링은 모두 로컬 레벨에서 구현됩니다.즉, 멀티칩 제품에서는 모든 칩이 단일 리소스로 관리됩니다.NAND 플래시 메모리 내의 칩마다 불량 블록의 수는 다릅니다.특정 칩은 모든 데이터 블록을 마모시키고 다른 칩은 모든 블록을 활성 상태로 유지할 수 있습니다.이러한 상황을 복구하기 위해 글로벌 웨어 레벨링이 도입되었습니다.글로벌 웨어 레벨링에서는 플래시 메모리에 있는 모든 플래시 칩의 모든 블록이 단일 풀에서 함께 관리됩니다.제품 내 모든 칩의 모든 셀이 균등하게 마모되도록 합니다.[10][11]

비교

다음 표에서는 정적 마모 [3]레벨링과 동적 마모 레벨을 비교합니다.

아이템 스태틱 역학
내구성 기대 수명 연장 기대 수명 단축
성능 느리다 빠른
설계의 복잡성 보다 복잡한 덜 복잡함
일반적인 용도 SSD,[2]
산업용 플래시[12] 드라이브
개인 사용자용 플래시 드라이브

기술

미디어 수명을 연장하는 방법에는 다음과 같은 몇 가지 있습니다.

  • 오류를 검출하거나 오류를 수정하기 위해 블록 또는 섹터별로 체크섬 또는 오류 수정 코드를 유지할 수 있습니다.
  • 예비 공간 풀도 유지할 수 있습니다.블록 또는 섹터에 장애가 발생하면 블록 또는 섹터에 대한 향후 읽기 및 쓰기를 해당 풀의 교체 대상으로 리디렉션할 수 있습니다.
  • 미디어상의 블록 또는 섹터는 Lefrequency Used(LFU; 사용빈도가 낮은) 큐로 추적할 수 있습니다.큐 자체의 데이터 구조는 디바이스 외부에 저장하거나 큐가 사용하는 공간 자체가 마모 레벨이거나 플래시 메모리의 경우 특별히 수명이 긴 블록에 저장해야 합니다.그러나 일반적인 캐시 알고리즘은 RAM 기반 캐시에 대한 데이터 흐름을 관리하도록 설계되어 있기 때문에 플래시 기반 스토리지 디바이스에는 직접 적합하지 않습니다.읽기는 일반적으로 쓰기보다 훨씬 빠르며 지우기 작업은 [13]한 번에 1개만 수행할 수 있습니다.
  • 다듬다

일부 Secure Digital [12]카드에서는 내장 마이크로 컨트롤러에 의해 하드웨어에 기술이 구현됩니다.이러한 장치에서는 마모 레벨링이 투명하며 기존 파일 시스템을 그대로 사용할 수 있습니다.

웨어 레벨링은 플래시 미디어 상의 JFFS2나 YAFS 등의 특수 목적 파일시스템이나 광학 미디어 상의 UDF에 의해서도 소프트웨어로 실장할 수 있습니다.세 가지 모두 미디어를 순환 로그로 취급하고 순차적으로 쓰기 때문에 로그 구조화된 파일 시스템입니다.ZFS와 같이 Copy-on-Write 전략을 구현하는 파일 시스템도 일종의 웨어 레벨링을 구현합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 미국 특허 6,850,443 플래시 메모리 시스템의 웨어 레벨링 기술
  2. ^ a b c d e f Perdue, Ken (2010-04-30). "Wear Leveling Application Note" (PDF). Spansion. Archived from the original (PDF) on 2011-06-07. Retrieved 12 August 2010.
  3. ^ a b c d e "USB Flash Wear-Leveling and Life Span" (PDF). Corsair. June 2007. Archived from the original (PDF) on 13 October 2007. Retrieved 27 July 2013.
  4. ^ "Western Digital AV Hard Drive Product Information". Western Digital. Archived from the original on 2010-01-02. Retrieved 2010-06-01.
  5. ^ "So you wanna buy a SSD? Read this first". Hardware Canucks.
  6. ^ "SSDs Shifting to 25nm NAND - What You Need to Know StorageReview.com - Storage Reviews". www.storagereview.com. February 12, 2011.
  7. ^ "플래시 메모리의 알고리즘 및 데이터 구조", E. Gal 및 S.Toledo, ACM Computing Survices, 2005년
  8. ^ Arnd Bergmann (2011-02-18). "Optimizing Linux with cheap flash drives". LWN.net. Retrieved 2013-10-03.
  9. ^ Jonathan Corbet (2007-08-08). "Once upon atime". LWN.net. Retrieved 2014-01-21.
  10. ^ "Wear Leveling". Transcend. Transcend. Retrieved 20 November 2019.
  11. ^ "Wear Leveling – Static, Dynamic and Global" (PDF). Cactus: 5. Retrieved 20 November 2019.
  12. ^ a b "Swissbit Industrial SD Memory Cards". Mouser Electronics. Retrieved 21 April 2017.
  13. ^ Qing Yang (2012-02-25). "Why Standard Cache Algorithms Won't Work For SSDs". velobit.com. Retrieved 2013-11-26.

외부 링크