기술 관련 글2011. 4. 6. 09:35
원본출처: http://www.parkoz.com/zboard/view.php?id=int_news&no=17756

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

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

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

* 추가: Windows 7은 기본적으로 TRIM을 지원하며, Mac OS X Snow Leopard 에서도 patch를 통해서 지원이 가능하다고 하네요. 참고로 저는 SSD가 없습니다. 하하 ㅜ.ㅜ
 
Posted by 세월의돌