Serial ATA(SATA)は当初、既存のUltra ATAとの互換性を重視していたため、ソフトウエア面ではIDEと互換性のあるモードしかなかった。電気信号レベルではUltra ATAとSATAは全く違うが、その上で情報やコマンドをやり取りするときのプロトコルは全く同じままだったのである。その結果、アプリケーションソフトは当然として、デバイスドライバーでさえも全く変更せずにHDDにアクセスできた。
次に登場したSerial ATA II Phase 1では、いくつかプロトコルが拡張された。 中でもよく知られているのがNCQ(Native Comman Queuing)である。NCQは「Order Collection」「Race-free Status Return Mechanism」「First Party DMA」「Interrupt Aggregation」といった機能から構成されている。
Order Collectionは、名前の通りアクセスするデータの順番を並べ替えることだ。例えば図1左のように、ディスクの盤面上のデータに、①~⑧の順でアクセス要求が出たとする。Order Collection無しだと①~⑧まで順番にアクセスすることになる。①は最内周側、②は最外周にあるから、①から②にヘッドを移動する(シークする)のには相応の時間が掛かる。③はまた最内周近くだからアクセスの大半はヘッドのシークに費やされ、次いで回転待ち時間となる(図1右上)。これを避けるには、例えば最外周から最内周へと1回シークする間に全セクターを読み出せるように、読み出す順番を並べ替えればよい(図1 右中央)。この場合でいえば、②→④→⑦→⑧→⑤→③→①→⑥とすれば、ヘッドは1回シークするだけで済む。「NCQ Priority」で順番変更も可能だ(図1 右下)。