하드웨어2011. 8. 4. 16:09
머 이런게 있다더라~
플래시 특성상 0->1로는 바꿀수 있지만 1->0으로는 바꿀수 없기 때문에
플래시 장비들은 블럭단위로 삭제후(전부 0으로 바꿈) 데이터를 쓴다.
아무튼 하드속도를 위해 실제로 삭제되지 않고 MFT 에서 삭제만 한다던가 하는 식으로
실제 데이터를 지우지 않고 지운것으로 간주하고, 다음번에 덮어쓰는 식으로 작동을 하게 되는데
플래시 기반 장치인 SSD의 경우 데이터 저장시 이러한 행위를 하게 되면
블럭 삭제 - 저장이라는 과정을 거쳐야 하므로 오랜시간이 소요된다.
이게 프리징의 원인인지는 모르겠지만, 블럭을 삭제하는건 생각보다 오래 걸리므로 썩 좋은 아이디어는 아니기 때문에
OS와 협동으로 삭제시 바로 플래시에서도 지워내는게 바로 Trim 명령인듯하다.

TRIM command 는 ATA 표준으로 정의된 명령으로, 데이터를 삭제할때, 실제 [블럭]의 데이터도 삭제하는 명령을 전송하는 방식입니다. 일반적인 경우에는 휴지통으로 데이터를 지워도 실제 블럭내의 데이터를 소거하는것이 아닌 단순히 비워있음으로 표시하게 되어 있습니다. 이 기능은 덮어쓰기를 할 수 있는 하드디스크에서는 전혀 상관이 없지만 SSD는 블럭단위로 기록/삭제 과정에서 기존데이터를 소거하는 과정이 필요하기 때문에, 쓰기작업시 딜레이가 발생함으로써 전체적인 SSD의 성능이 떨어지는 문제를 일으킵니다. TRIM 은 이 문제를 해결하기 위한 방식이지요. 

하지만 TRIM command 는 OS레벨에서 지원을 해줘야 완벽히 연동이 가능하며, 그렇지 않은 경우에는 별도의 유틸리티 소프트웨어등을 이용해야합니다. 현재로서는 Windows7 이 TRIM 을 지원하는 대표적인 OS입니다. 즉 Windows7 에서 휴지통으로 데이터를 지우는순간 OS가 SSD에 [TRIM 명령어]를 함께 전송함으로써, SSD 는 소거된 데이터의 블럭을 실제로 비워냅니다. 그러나 TRIM 은 글로벌 웨어 레벨링을 의미하지는 않습니다. 

따라서 TRIM 도 SSD의 성능저하를 막아내는 완벽한 해결책이 아니기 때문에, 시간이 지나면 메모리 블럭에 불필요 데이터가 알게모르게 쌓일 수 밖에 없습니다. 결국 글로벌 웨어 레벨링과 블럭리매핑등도 때때로 함께 해줘야 할 필요성이 있지요. Garbage Collection 등의 기능이 유틸리티로 지원되거나 컨트롤러에서 자동으로 이러한 기능을 수행하는 경우도 있습니다. (주로 삼성, 인텔, 인디링스 칩셋들..)
11/22 11:40 002
김진우

[링크 : http://www.parkoz.com/zboard/view.php?id=int_news&no=17756] 


'하드웨어' 카테고리의 다른 글

ddr / ddr2 / ddr3  (0) 2011.08.14
USB CDC-ACM (Abstract Control Model)  (0) 2011.08.14
Transcend SD 4GB 분해  (0) 2011.07.09
HDD 전송속도  (0) 2011.06.25
MS 무선 데스크탑 3000 사용기(?)  (2) 2011.06.11
Posted by 구차니