2012-06-28 3 views
0

SSD를 지우는 지우기가 아니라 자신을 쓰는 지우기입니다. 따라서 드라이브 제조업체의 관점에서 지우개의 필요성을 최적화하는 것이 큰 도움이 될 것입니다. 그들이 이것을하는 것을 주어진 것으로 받아 들일 수 있습니까?0s에서 1s 만 변경하는 SSD에 쓰기를 수행하는 경우 쓰기 전에 전체 블록을 지우지 않고 드라이브를 사용할 수 있습니까?

나는 디스크에 직접 쓰고 있다고 생각하고 파일 시스템을 엉망으로 만들지는 않았 으면 좋겠다.

답변

0

내가 잘못된 질문을 읽지 않는 한 나는 SSD가 어떻게 작동하는지 오해한다고 생각합니다.

SSD는 파일 시스템 (일반적으로 4k)에서 사용 된 것보다 훨씬 큰 큰 블록 (일반적으로 512k)으로 구성됩니다.

블록이 이미 비어 있지 않은 한 무엇이든간에은 블록에 쓸 수 있습니다.

디스크가 지워지는 문제는 512k 블록 중 4k를 사용하는 경우 512k 블록 전체를 지우고 원래 4k +를 추가해야한다는 것입니다. 과도한 마모가 발생하고 작업 속도가 느려지므로 하나의 "쓰기"대신 "읽기 - 쓰기 - 쓰기"("쓰기 증폭"이라고 함)가 필요합니다.

이렇게하면 드라이브 펌웨어가 많은 영리한 작업을 수행하여 블록이 최적으로 채워지는 것처럼 간단하게 처리 할 수 ​​있습니다. 느린 쓰기를 피하기 위해 많은 빈 블록을 유지하려고합니다.

사물을 더 혼란스럽게하는 데 도움이되는/희망하지 않은 희망!

+0

나는 아주 명확하다고 생각하지 않습니다. 내가 물어 보려고하는 것은 : 블록의 일부만 비어 있다면 (쓰고 싶은 부분), 여전히 지울 것인가? –

+0

예. 먼저 지우기를 수행합니다. 한 번에 하나의 전체 블록 만 쓸 수 있으므로 변경하려는 비트를 쓸 수는 없습니다. "읽기 - 지우기 - 쓰기"주기를 수행해야합니다. 실제로는 빈 블록을 사용합니다 (디스크에 빈 블록이없는 경우 제외). 디스크가 사용 중이 아닌 경우 부분적으로 기록 된 블록을 함께 통합합니다. 이것은 마모와 성능 사이의 균형이 어느 정도까지 이루어졌으며 드라이브 펌웨어 간의 큰 차이점 중 하나입니다. – u02sgb

1

블록에 빈 페이지가 있고 SSD가 해당 페이지에 쓰기를 원하면 블록을 먼저 지우지 않습니다. SSD는 전체 읽기 지우기 쓰기를 수행하는 것이 매우 느리기 때문에 쓰기 전에 빈 페이지를 찾을 수없는 경우에만 쓰기 전에 블록을 지 웁니다.

게다가, 쓰기 및 지우기의 마모는 거의 같습니다. 둘 다 산화층을 통해 다른 방향으로 전자를 끌어들이는 것과 관련이 있습니다.

또한, NAND에 대한 삭제 상태는 모두 1 그런 다음 당신은 SSD가 읽기 사용하는 경우에, 1

0

에 다시 얻기 위해 공을 지워야 1 0에 쓰기입니다 지우기 - 쓰기, 그것은 먼저 블록의 내용을 읽은 다음 지우고 새로운 값을 씁니다. 따라서 쓰기 전에 전체 블록을 지우지 만 다음 쓰기 작업을 위해 내용을 저장했습니다. 읽기 - 지우기 - 쓰지 않는 일부 SSD에서는 쓰는 동안 새 페이지에 쓰고 (동일한 블록에있을 수 있고 이전 페이지는 유효하지 않음). 이 경우 블록의 모든 페이지가 유효하지 않거나 다른 위치로 복사 된 후에 만 ​​블록을 지 웁니다.