NCQ(Native Command Queuing)은 특정 상황에서 SATA 장치의 성능을 향상시키기 위해 도입된 기술로, 입출력(I/O) 요청을 우선 큐에 보관한 다음, 전체 헤드의 움직임을 최소화할 수 있도록 요청의 순서를 재배열한 다음 실행하는 방식이다. 이 방식은 I/O가 많이 일어나는 서버 등의 장비에 주로 사용된다.

네 개의 데이터 요청에 대한 헤더의 움직임. NCQ는 헤드 움직임을 최소화하기 위해 이동 순서를 재조정한다.

역사 편집

NCQ는 PATASCSI에 사용되던 TCQ에서 유래한다.

원리 편집

PATA TCQ와 크게 다르지는 않다. 골자는 큐에 I/O 요청을 보관하고 전체 헤드의 움직임을 최소화할 수 있는 최적의 경로로 재배열해서 실행하는 것이다. 최대 큐 길이는 32 명령어이다 (실제 이용되는 것은 31개)[1][2].

효과 편집

헤드의 움직임이 줄어들게 되므로 물리적 마모가 줄어들고 내구성이 좋아져 MTBF가 길어지는 효과가 있다.

NCQ는 많은 I/O 수의 부하에서는 성능에 상당히 긍정적인 효과가 있다.[3][4] 그러나 순수 대역폭에 손해를 보며 개인용 컴퓨터 수준의 낮은 I/O 수의 부하에서는 성능이 떨어지는 경우가 많아서 기본적으로 사용하지 않는 경우가 많다.

참조 편집

  1. “PDF white paper on NCQ from Intel and Seagate” (PDF). 2010년 11월 29일에 원본 문서 (PDF)에서 보존된 문서. 2010년 5월 18일에 확인함. 
  2. “Volume 1 of the final draft of the ATA-7 standard” (PDF). 2012년 4월 9일에 원본 문서 (PDF)에서 보존된 문서. 2010년 5월 18일에 확인함. 
  3. “AHCI vs IDE – Benchmark & Advantage” (영어). 2010년 5월 14일에 확인함. 
  4. “Mission "Defragmentation". Part 2: PerfectDisk” (영어). 2008년 7월 25일에 원본 문서에서 보존된 문서. 2010년 5월 14일에 확인함.