본문 바로가기
Computer Science

[Programming] Wear Leveling

by Henry Cho 2022. 3. 21.
728x90

Wear Leveling


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# Wear Leveling

SSD에서 Wear leveling이란 SSD의 사용 수명을 증가시켜주는 기능이다.

Wear leveling은 SSD에서만 사용되는 기능이 아니라 반도체에서 사용되는 대표적인 기능이다.

우선은 전자식 디스크인 SSD에 Wear leveling이 필요한 근본적인 이유는 기계식 디스크와 다르다는 점이다.

기계식 디스크는 정보를 덮어쓸 수 있다는 특징을 가지고 있지만 SSD는 정보를 새로 쓰기 전에 기존 정보를 삭제해야 한다는 특징을 가지고 있다.

Wear leveling(웨어 레벨링) 알고리즘은 플래시 컨트롤러로써 역할을 수행하며, SSD에서는 모든 블록에 고르게 데이터가 쓰고 지우는 과정이 이루어질 수 있도록 해준다.

이로 인해 전반적으로 SSD의 수명을 늘려주지만 이 과정 자체에서는 WA가 증폭될 수는 있다.


# Static Wear Leveling

Static wear leveling은 정적 웨어 레벨링이라고도 불리며, Dynamic과 달리 정해져 있는 방식의 알고리즘으로 작업을 수행한다.

여기서 말하는 정해져 있는 방식이란, 특정 제한 값에 도달할 경우 정적 데이터를 옮기는 과정을 수행한다.

정적 데이터에는 삭제 횟수 임계값이 지정되어 있기 때문에 이 기준을 토대로 Static wear leveling이 이루어진다.


# Dynamic Wear Leveling

Dynamic wear leveling의 경우에는 동적 웨어 레벨링이라고 하며 동적인 데이터를 다룰 때 효율적인 Wear leveling 방식이다.

DWL은 기본적으로 가장 낮은 삭제 횟수를 가진 블록에 데이터가 기록된다는 알고리즘적 특징을 가지고 있다.

이 말인 즉슨 자주 변경되는 데이터 블록에는 삭제 횟수가 늘어남에 따라 삭제 횟수가 적은 블록에 새로운 데이터를 저장한다는 것인데 정적 데이터를 고려하지 않는다고 볼 수 있다.

한마디로 정적 데이터 블록을 제외한 동적 데이터 블록만이 DWL를 통해 효율성을 증가시킬 수 있다는 것이다.


728x90

댓글