수명이 다한 SSD는 어떻게 실패합니까?


9

MLC SSD가 매우 오랫동안 지속되었으며 첫 번째 셀이 마지막 지우기주기에 도달하여 지우기를 거부한다고 가정합니다.

그 후에는 어떻게 되나요? 컨트롤러가이를 불량 블록으로 감지하고 다음 블록으로 이동하여 대신 지우려고합니까? 시간이 지남에 따라 드라이브의 총 용량이 천천히 줄어 듭니까?

편집하다

물론 마모 레벨링을 잊을 수 있습니다. 그렇습니다. 드라이브의 수명을 연장하지만 그에 대해서는 이야기하지 않습니다. 결국 셀은 마지막 지우기주기에 도달합니다.

답변:


8

NAND 플래시 칩에는 쓰기 및 지우기 작업에서 오류를 감지하는 컨트롤러가 내장되어 있으며 컨트롤러가 실패하면이를 경고합니다. 이 경우 컨트롤러는 다시 시도하거나 해당 블록을 불량으로 취급하고웨어 레벨링 알고리즘에서 매핑 할 수 있습니다. NAND 장치의 각 페이지에는 ECC 및 기타 형태의 오류 감지 및 허용 오차와 같은 메타 데이터를위한 예비 데이터 영역 과 함께 기본 데이터 영역이 있습니다. 컨트롤러는 예비 영역을 사용하여 자체 내결함성 체계를 결정할 수 있습니다. 해밍 코드 는 하나의 일반적인 체계이지만 간단한 패리티 비트리드 솔로몬 코드를 포함하여 몇 가지가 있습니다.. 읽기 작업에서 일이 일치하지 않으면 컨트롤러는 원하는대로 자유롭게 할 수 있습니다. 이상적으로는 이러한 블록을웨어 레벨링 알고리즘에서 매핑하는 것이 좋으며 "너무 많은"블록이 실패 할 때까지 용량이 조금씩 줄어 듭니다. 여기서 "너무 많은"은 컨트롤러 내의 알고리즘 및 하드웨어 구조 크기에 따라 다릅니다. 많은 첫 번째 컷 컨트롤러 디자인은 단순히 운영 체제에 오류를 선언합니다.

이것은 MLC 관련 문제가 아닙니다. MLC 셀은 읽기 에러가 발생하기 쉬울 수 있지만, 에러에 대한 마진이 반드시 더 작기 때문에 SLC 셀은 거의 동일한 메커니즘으로 실패하며 컨트롤러에서 동일한 방식으로 처리 할 수 ​​있습니다.


2

하드 디스크와 마찬가지로 운영 체제의 구현에 달려 있습니다. 컨트롤러는 단순히 쓰기 (삭제는 실제로 쓰기 작업 임)가 실패했다고보고하며 운영 체제 커널의 개발자 드라이버가 수행 할 작업을 결정합니다. 지금까지 내가 본 것에서 Microsoft와 Linux 구현은 단순히 오류 코드를 호출 응용 프로그램에 반환하므로 I / O 오류가 발생합니다.

한마디로 : 어떤 시점에서 "깨진"장치를 얻게됩니다.


글쎄. 아주 좋은 추상화가 아니라면 ...
Pyrolistical

1
그리고 틀렸다. 기본적으로 이것은 장치 드라이버가 아닌 SSD 자체에서 처리됩니다. 이것은 정상적인 작업이기 때문입니다. 웨어 레벨링은 섹터를 실패한 것으로 기록하고 섹터를 다시 매핑합니다.
TomTom

1

SSD는 "웨어 레벨링 (wear leveling)"이라는 것을 사용하는데, 여기서 드라이브는 섹터 사용에 대한 통계를 유지하고 어느 시점에서 문제를 감지하면 일반 하드 드라이브에서와 같이 섹터를 예비로 이동시킵니다.


예,하지만 기계식 HD가 예약 된 섹터를 다 사용하기 전에 기계적으로 고장 나고 있습니다. 그러나 SSD는 그렇지 않을 수 있습니다. 드라이브에 예약 된 섹터가 부족하면 어떻게됩니까?
Pyrolistical 2016 년

쓰기 오류 당신은 다른 무엇을 기대합니까?
TomTom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.