2012년 5월 9일 수요일

NAND Flash, Synchronous vs Asynchronous

참고 : http://www.hardocp.com/article/2011/08/07/nand_flash_faces_off_synchronous_vs_asynchronous/1 , http://www.tomshardware.com/reviews/tests-ssd-review-solid-state,3103-7.html


태국 홍수의 여파로 HDD의 가격이 상승하고 SSD의 가격이 점차 저렴해 지는 추세가 되자 SSD의 구매를 시도하는 사용자는 점차 증가하는 추세인데. SSD구매 시 쉽게 놓칠 수 있는 부분인 NAND의 동작 방식에 대해 이야기를 해볼까 한다.

동기식 vs. 비동기식

SSD가 대중에 선보인 초기에만 하여도 보통 NAND의 타입이 SLC인지 MLC인지로 구분을 많이 하였는데 최근에는 MLC타입이 주를 이루고 MLC에서 타입이 한번 더 분류되는 상황으로 변화하게 되었다. SSD를 구매하기 위해 제품을 살펴본 적이 있다면 아마도 스펙시트를 유심히 살펴본 적이 있을것인데 NAND 타입 항목에 Synchronous 혹은 Asynchronous라는 문구를 본적이 있을 것이다. ONFi(Open NAND Flash Interface)라는 기구가 있어서 NAND Flash에 대한 인터페이스를 정의하고 있는데 비동기식은 ONFi 1.0 스펙을 따르고 있고 동기식의 경우 ONFi 2.x이후 부터 언급되고 있다.

간단히 이해를 돕기 위해 제품을 하나 언급 하자면 OCZ의 경우 Vertex 3(이미 Vertex4가 나왔지만 앞세대 제품을 예로 들기로 하겠다.)는 동기식을 Agility 3는 비동기식 NAND를 사용한 예로 들 수 있다. 두 제품은 동일한 샌드포스 SF-2281 컨트롤러를 사용하고 25nm 공정의 NAND Flash를 사용하였다. 다른점은 NAND의 타입이 하나는 동기식이고 하나는 비동기식인건데 ONFi 2.x가 이전 버전과 다른점을 대표적으로 꼽자면 중앙 타이밍 서킷을 채용한 점과 클럭의 상승과 하강에 모두 데이터가 전송될 수 있다는 점이다. 이는 DDR RAM의 동작 방식과 비슷하며(SDR RAM과 비교하자면) 스펙 문서상으로는 두배 이상의 최대 전송속도의 차이가 있는것으로 알려져 있다.

그렇다면 문제는 무엇인가?

일반적으로 제조사에서 제공 되어지는 스펙에는 이야기되지 않은 부분이 많다. 최근의 벤치에서 비동기 방식의 NAND Flash에 샌드포스 SF-2281 컨트롤러를 사용할 때 성능에 영향을 주는 것은 압축할 수 없는 데이터 그게 아니라면 샌드포스 컨트롤러로 넘겨지기 전에 이미 압축된 데이터(예를 들면 .jpeg나 .mp3 파일 같은)에 한정되어 있다고 이야기 하고 있지만 실은 그것만이 전부는 아니다. 그럼에도 불구하고 제조사에서 제공하는 최대(?) 스펙에는 동기식과 비동기식의 차이가 그다지 크지 않다는 것을 발견할 수 있을것이다.

샌드포스 컨트롤러의 핵심은 데이터 압축을 통한 퍼포먼스 향상에 있으며 이를 위해 여러 방식을 이용하고 있지만 가장 큰 역할을 하는 것은 역시 압축 기술이다. 샌드포스 컨트롤러를 채용한 비동기 방식의 플래시 드라이브의 퍼포먼스가 압축할 수 없는 데이터의 흐름에만 영향을 받는다고 잘라 말할 수는 없다 왜냐하면 모든 데이터는 플래시에 기록되는 순간에 압축되기 때문이다. 이에 있어 플래시에 기록되는 모든 데이터는 압축되어 기록되기 때문에 데이터가 파일타입으로 인해 압축된 건지 컨트롤러에 의해 압축되는 건지는 중요하지 않다. 이로 인한 퍼포먼스 감소는 최대 60%까지 발생할 수 있는데 이에 대한 언급을 하는 리뷰는 보기 쉽지 않다.
 
다음은 실 사용과 관련한 벤치마킹 결과의 자료이다. 좌표의 그래프들을 참고하기 바란다.

결론

동기식과 비동기식의 SSD 드라이브의 퍼포먼스에는 상당한 차이가 있음을 알게 되었을 것이다. 그렇다면 어떤 제품을 구매할 것인가?의 문제가 남게 되는데 최근에 그나마 많이 하락 하기는 했지만서도 의외로 둘 사이의 가격차이는 아직 상당한 편이다(개인적으로도 아직까지는 합리적인 가격 차이는 아니라고 생각한다). 만약 RAID0 구성시의 리스크에 대해 별로 신경쓰지 않는다면 고용량의 동기식 SSD를 구매하는 것보다는 저용량의 비동기식 SSD를 구매하여 RAID를 구성하는 것이 이득일 수도 있다는 것이다.