Garbage Collection, Write Amplification
포스트 난이도: HOO_Middle
# Garbage Collection
SSD에서 Pages들이 invalidated 될 경우 pages들을 clean 해주는 작업이 필요한데 이때 사용되는 기능이 Garbage collection이다.
Garbage collection은 단어 의미 자체에서 볼 수 있듯이 사용할 수 없는 또는 유효하지 않는 pages들을 정리해주는 역할을 담당한다.
한마디로 SSD에서 pages들을 정리해준다고 볼 수 있다.
# Garbage Collection 원리
GC(Garbage Collection)는 페이지를 정리하기 위해서는 기존의 페이지들 중에서 valid 한 것과 그렇지 않을 것을 구분해줘야 한다.
그렇지 않을 경우 GC가 SSD의 모든 페이지를 제거하거나 필요한 페이지가 사라지는 불상사가 발생할 수 있기 때문이다.
따라서 GC에는 페이지를 정리하기 전에 이러한 작업을 우선적으로 수행한다.
여기서 말하는 "이러한" 작업은 validate 한 페이지와 invalidate 한 페이지를 구분해주는 것이다.
페이지를 구분하기 위해서는 페이지를 우선 identified를 해줘야 한다.
Identified 과정을 거쳐 valid 한 페이지를 copied 해줌으로써 이후에 clean 하게 지워지더라도 기존의 valid 한 페이지는 남아있게 된다.
이후에는 선택된 모든 페이지의 blocks을 erased 해준다.
# Additional Spare Pages
GC(Garbage Collection)을 수행하면 페이지들의 cleaned 해지기 때문에 SSD는 Additional spare pages들을 통해 GC 기능에 제한을 둔다.
Additional spare pages들은 아래와 같다.
- Read modify writes
- Wear leveling
- Bad block replacement
# Write Amplification
WA라고 줄여서 부르는 Write amplification은 SSD의 수명을 단축시키는 요인이다.
WA는 한국말로 쓰기 증폭이라고 번역되는데, SSD에 write가 증폭되어서 플래시 수명이 단축된다는 단점을 가지고 있다.
Garbage collection과 Wear leveling은 SSD의 효율성을 위한 기능이지만 반대로 write을 증폭시키는 원인이 되기도 한다.
GC 작업이 수행될 경우 페이지가 구분이 되고 valid 한 페이지는 copied 된다.
이 과정에서 동일한 페이지 write 작업이 말 그대로 rewrite 되는 과정을 거치게 되는데, 이러한 작업이 많이 이루어질수록 결과적으로 SSD의 수명은 단축될 수밖에 없다.
한마디로 rewrite 되는 작업 때문에 SSD가 내부에서 데이터를 storage 하는 과정이 복잡해지고 작업이 많아짐에 따라 SSD를 사용할 수 있는 수명이 단축된다는 것이다.
Wear leveling의 경우는 각 플래시가 동등하게 사용이 되도록 만들어주는데, 이 과정에서 WA가 증가할 수도 있다.
한마디로 GC와 WL이라는 기능으로 WA가 증가할 수는 있다는 예외 사항이 발생할 수도 있지만 그럼에도 SSD에 있어서 순기능이 더 많기에 GC와 WL를 사용한다.
또한 상황에 따라서 WA가 발생하여 단점이 더 많을 수 있다는 것이지 항상 GC와 WL 기능이 SSD의 효율성을 저하시키는 기능은 아니다.
'Computer Science' 카테고리의 다른 글
[SQL] INSERT Statement (0) | 2022.03.27 |
---|---|
[Programming] Wear Leveling (0) | 2022.03.21 |
[Operating System] Virtual Memory: Paging, Physical Memory, MMU (0) | 2022.03.21 |
[Programming] SSD(Solid-state Drive) (0) | 2022.03.19 |
[Programming] RAID: RAID 0, RAID 1, RAID 4, RAID 5, RAID 10 (0) | 2022.03.18 |
댓글