|
AHCI (Advanced Host Controller Interface)의
등장
AHCI는 인텔, AMD, Dell, Marvell,
Microsoft, Red Hat, Seagate, StorageGear 등의 AHCI 컨트리뷰터 그룹에 의해 개발된
기술로 명령어 큐잉, 핫플러깅, 전원관리 등을 포함하고 있는 Serial ATA (이하 SATA) 기능을 지원하기 위한
드라이버와 운영체제의 기능을 포함하여 표준 인터페이스를 정하고 있다.
SATA를 위한
AHCI(Advanced Host Controller Interface : 고급 호스트
컨트롤러 인터페이스) 스펙에 대한 정의는 인텔 홈페이지에 나와 있으며,
AHCI Specification for Serial ATA에서 그 내용을 살펴볼 수
있다. 2007년 4월 9일에 발표된 AHCI는 1.2
버전까지 비준된 상태다.
AHCI는 윈도우를 기준으로 보았을 때 윈도우 XP는 지원이
가능하지만, 운영체제 설치시 별도의 드라이버의 설치가 필요하다. 반면, 뒤에 등장한 윈도우 비스타와 비스타 서비스팩1의
경우 표준 AHCI 컨트롤러 드라이버가 기본으로 포함되어 별도의 드라이버를 설치하지 않아도 AHCI를 메인보드 바이오스에서
설정해주면 바로 사용할 수 있다. 리눅스의 경우 커널 2.6.19에서 지원하며, 윈도우 XP 미디어 센터 에디션은 별도의
AHCI를 지원하는 드라이버를 설치하지 않아도 된다.
AHCI (Advanced Host Controller Interface)란?
AHCI는 Advanced Host Controller
Interface의 약자로 AHCI는 하드웨어적인 메카니즘으로 소프트웨어를 통해 SATA
장치들과 의사소통을 할 수 있는 기술이라고 말할 수 있다. AHCI는 시스템 메모리와 SATA 장치들 사이의 데이터 이동을
활성화해주어 효율적인 처리를 가능하게 해준다.
AHCI Host 장치는 한 개부터 최대 32개의 포트를
지원하며, HBA (Host Bus Adapters)는 ATA와 ATAPI 장치를 지원하고 PIO와 DMA 프로토콜을
지원한다. HBA는 각 포트들의 오버헤드를 줄이기 위해 명령 리스트를 옵션으로 지원하며, SATA NCQ (Native
Command Queuing)와 FPDMA Queued Command 프로토콜을 각 장치에서 최대 32개의 엔트리를
지원한다. HBA는 64bit 어드레싱을 옵션으로 지원한다.
AHCI는 Native SATA 인터페이스의 기능을 향상시키는
역할을 하며, AHCI를 활성화하였을 때 사용할 수 있는 기능들은 아래와 같다.
최대 32 포트 지원
64bit 어드레싱
Master/ Slave 제어 제거
Large LBA 지원
Hot Plug 지원
전원 관리 지원
하드웨어 NCQ (Native Command Queuing)
보조
Staggered Spin-up
Cold device Presence Detect
SATA Superset registers
Activity LED generation
포트 멀티플라이어 (Port Multiplier)
언급된 기능들은 SATA1과 SATA2 장치들의 등장에서
SATA 인터페이스의 특징으로 소개된 기능들이 포함되고 있다. 최근 부각되고 있는 AHCI 활성화에 따른 큰 장점은 NCQ와
핫플러그 (Hot-Plug, SATA에서는 Hot-Swap)의 지원을 들 수 있다.
NCQ (Native Command Queuing)
[NCQ (Native Command Queuing),
출처 : NVIDIA]
NCQ는 SATA 인터페이스를 지원하는 고급 기능에 속하며, AHCI를 사용하는 가장 중요한 요인 중의 하나로 들 수 있다.
초기 SATA 인터페이스 HDD들의 일부는 브릿지 방식을 사용하여 NCQ를 지원하지 못한 제품이 많았으나 SATA2
인터페이스를 지원하면서부터 대부분의 HDD들은 NCQ 기능을 지원하고 있다.
NCQ는 일반 HDD가 한번에 하나의 명령어를 처리하는 것과
비교하여 최대 32개의 명령어를 처리할 수 있게 해주는 기술이다. NCQ를 사용할 경우 위 이미지에도 나타나있듯이 이를
사용하지 않을 때와 비교하여 빠른 명령어 검색과 처리가 가능해진다.
이미지에 나타나 있듯이 NCQ를 지원하지 않을 경우 명령어를
순차적으로 검색해야 하기 때문에 불필요한 부분을 검색하는데 소요되는 시간까지 포함하여 처리 속도가 느려지게 되는 문제를
보여 비효율적이다. 반면, NCQ를 사용하게 되면 가까운 곳에 있는 명령부터 처리하여 NCQ를 지원하지 않는 상황보다
빠른 처리가 가능해진다.
핫플러그 (Hot-Pug, SATA에서는
Hot-Swap)
핫플러그는 SATA에서는 핫스왑으로 불리기도 하며, 핫플러그는
서버나 컴퓨터 같은 기기에서 이들이 동작하는 동안 전원을 종료하지 않고도 장치를 제거하고 바꿀 수 있는 기능을 말한다.
USB 장치를 사용하는 것을 생각하면 쉽다.
장치 드라이버가 제대로 설치된 상태라면 핫플러그를 지원하는
장치의 경우 전원이 켜진 상태에서 장치를 교체할 수 있기 때문에 계속 동작해야 하는 서버 환경에서 특히 유용하며, 일반
사용자 입장에서도 손쉽게 SATA HDD 장치를 교체가 가능하므로 편리하게 사용할 수 있는 기능이다.
AHCI를 활용하기 위해서 필요한 것들!
SATA의 고급 기능을 사용할 수 있게 해주는 AHCI를
활용하기 위해서는 아래의 몇 가지 조건들이 필요하다.
AHCI를 지원하는 사우스브릿지 또는 외부 AHCI 지원
컨트롤러
AHCI의 NCQ와 핫플러그를 지원하는 SATA HDD
AHCI를 지원하는 운영체제 (윈도우 XP/ 윈도우
비스타 등)
가장 먼저 언급한 AHCI를 지원하는 사우스브릿지 또는 외부
AHCI 지원 컨트롤러는 최근 등장하는 메인보드 제품들 중 인텔의 경우 ICH에 R이 포함된 사우스브릿지와 외부 AHCI
지원 컨트롤러, AMD나 NVIDIA 최신 칩셋이 필요하다.
또한, AHCI의 기능 중 일반 사용자들이 쉽게 사용할 수
있는 기능으로는 NCQ와 핫플러그를 들 수 있으며, 이들 기능을 지원하는 SATA HDD 장치도 함께 필요하다. 최근
등장하는 2세대 즉, SATA2 HDD 제품들은 NCQ를 지원한다.
마지막으로 AHCI를 동작하게 해주는 운영체제도 필요하다.
일반적으로 많이 사용하고 있는 운영체제인 윈도우 XP (서비스팩 1/2/ 3 포함)와 윈도우 비스타 (서비스팩1 포함)에서
AHCI를 지원할 수 있다. 물론, 앞서 언급하였듯이 리눅스 운영체제 역시 AHCI를 지원이 가능하다.
이들 3가지 조건이 모두 충족되었을 때 제대로 된 AHCI
기능을 활용할 수 있게 된다.
NCQ와 SATA2 등의 지원에
따른 다른 특징들은
Native Command Queuing에 대해서 알아본다.와
S-ATA II는 내가 가장 먼저다! SAMSUNG S-ATA II HD160JJ
기사를 참조하면 되며, 다음 장에서는 AHCI를 지원하는 컨트롤러의 종류를 알아보았다. |