디스크가 거의 가득 찼을 때 SSD는 어떻게 웨어 레벨링을 달성합니까?

디스크가 거의 가득 찼을 때 SSD는 어떻게 웨어 레벨링을 달성합니까?

나는 이것을 이해하려고 노력하고 있습니다. 256GB SSD가 있는데 그 중 180GB는 이미 영구 파일(OS, 설치된 프로그램 등)이 차지하고 있다고 가정해 보겠습니다. 나머지 70GB 정도는 새 파일이 생성되고 삭제됩니다. 파일이 수정되지 않는 부분보다 해당 부분의 NAND 칩이 더 빨리 닳는다는 뜻 아닌가요? 아니면 SSD가 시간이 지남에 따라 변경되지 않는 파일도 이동합니까?

답변1

SSD는 시간이 지남에 따라 변경되지 않는 파일을 이동합니다.

우선, 운영 체제에 노출되는 가상 섹터(파일 시스템 클러스터와 혼동하지 말 것)가 있고, 플래시 칩에 물리적 셀이 있습니다. 플래시 컨트롤러가 셀을 할당/할당 취소하면 이에 따라 가상 섹터가 다시 매핑되므로 운영 체제에 투명해집니다(동일한 가상 섹터가 플래시 셀의 다른 위치에 서로 다른 시간에 나타날 수 있음).

둘째, SSD에는 실제로 여유 공간으로 사용할 수 없는 예비 셀이 있습니다. 이는 마모 평준화, 쓰기 증폭 완화 및 데드 셀 재매핑을 위해 특별히 따로 보관되어 있습니다. 이렇게 하면 SSD에 0바이트의 여유 공간이 있어도 플래시 컨트롤러는 여전히 웨어 레벨링을 수행할 공간이 있습니다.

500GB SSD가 100% 가득 찼다고 가정해 보겠습니다. 이제 해당 데이터 중 499GB는 절대 변경되지 않는 파일이지만 항상 변경되는 1GB 파일이 있다고 가정해 보겠습니다. 해당 1GB 파일을 삭제한 다음 다른 1GB 파일을 복사하면 플래시 컨트롤러는 그 순간 다음 두 가지 작업 중 하나를 수행합니다.

  • 새 데이터의 전부 또는 일부는 예비 셀에 할당되고 이전 셀은 여전히 ​​다듬어진 상태로 유지됩니다.
  • 절대 변경되지 않는 499GB 데이터 중 1GB 상당의 셀이 사용 가능한 다른 셀로 복사됩니다. 그러면 이전 셀이 지워지고 새 데이터로 다시 쓰여집니다.

두 경우 모두 운영 체제에 표시되는 가상 섹터는 절대 변경되지 않으므로 OS는 실제로 무슨 일이 일어나고 있는지 인식하지 못합니다. 플래시 컨트롤러는 메모리 셀과 가상 섹터의 매핑 테이블을 유지합니다.

웨어 레벨링 알고리즘의 실제 목표는 이를 달성하기 위해 데이터를 이동하는 경우에도 모든 셀을 균등하게 실행하려고 시도하는 것입니다. 이 프로세스로 인해 드라이브 속도가 느려지고 (아이러니하게도) 플래시 셀에 추가적인 마모가 발생합니다. 그것은 ~라고 불린다쓰기 증폭이는 SSD의 심각한 문제입니다. SSD에 사용되는 실제 웨어 레벨링 알고리즘과 쓰기 증폭을 완화하는 방법은 SSD 제조업체 간의 독점 영업 비밀이므로 이는 프로세스에 대한 일반적인 설명일 뿐입니다.

관련 정보