[팁&노하우]네이티브 커맨드 큐잉(Native Command Queuing, NCQ)

하드디스크의 속도를 높이는 방법은 여러 가지 있다. 그 중에서 많이 쓰는 방법은 플래터의 회전 속도를 빠르게 하거나, 버퍼 메모리를 늘리는 방식. 이런 방법은 하드디스크 성능을 끌어올리는 데 가장 효과적이기는 하지만 어느 한계에 다다르면 지나치게 돈이 많이 들고 기술을 구현하기가 어렵다. 실제로 플래터 회전속도는 1만5000rpm의 한계를 넘지 못하고 있고, 버퍼 메모리는 많아야 8MB를 넘어가면 효과가 떨어진다.

고민 끝에 개발자들은 하드디스크의 불필요한 움직임을 줄여 성능을 끌어 올리는 아이디어를 내놓았다. 그 중 하나가 하드디스크 제어 소프트웨어가 플래터의 데이터 저장 상태를 분석해 CPU가 내린 읽기, 쓰기 명령 순서를 스스로 바꾸는 기술인 ‘네이티브 커맨드 큐잉(이하 NCQ)’이다.

EIDE 하드디스크는 CPU가 내린 데이터 읽기, 쓰기 명령을 받은 순서대로 처리한다. 헤드에서 가까운 곳에 있는 자료도 그것을 읽거나 쓰라는 명령이 없으면 그냥 지나쳐 버린다. 하지만 ‘NCQ’은 명령의 순서가 아닌 하드디스크 헤드가 적게 움직일 수 있는 순서로 처리한다. 헤드를 조금 움직여도 데이터를 읽고 쓰게 되니까. 속도가 빨라지는 것은 당연하다

그렇다고 ‘NCQ’이 만능은 아니다. 수행할 명령을 어떻게 정리했느냐에 따라 속도가 더 느려지기도 한다. 데이터를 자주 읽고 쓸수록 효과가 좋고 명령을 기다리는 시간이 길면 성능 향상은 크지 않다.

‘NCQ’을 사용하려면 다음 두 가지 조건을 갖춰야 한다. NCQ가 되는 시리얼 ATA 하드디스크라 해도 기계적 구조가 다른 것은 아니다. 중요한 것은 하드디스크를 제어하는 펌웨어다. NCQ 펌웨어 안에는 CPU가 보내 온 입출력 명령을 잠시 저장했다가 효율이 좋은 순서로 바꾸는 기능을 수행한다. NCQ 기술을 쓰지 못하는 하드디스크라도 펌웨어를 바꾸면 된다.

하드디스크와 함께 시리얼 ATA 컨트롤러도 NCQ에 맞는 제품이어야 한다. 초기 시리얼 ATA 컨트롤러는 NCQ 펌웨어가 들어간 하드디스크를 달아도 소용없다. 현재 씨게이트는 ‘인텔 ICH6R’ ‘프라미스 패스트트랙 TX2200’ ‘프라미스 SATA II 150 TX2플러스’ ‘프라미스 SATA II 150 TX6’ ‘실리콘이미지 3124-1’ ‘실리콘이미지 3124-2’ 등의 컨트롤러 칩을 권장하고 있다.

이 중에서 인텔 925X 칩세트에 들어간 ICH6 컨트롤러를 뺀 나머지 칩은 서버용 제품이 아니면 흔히 쓰지 않는 것들이다.

<김태훈기자 김태훈기자@전자신문>