mercoledì 9 luglio 2014

AHCI, guida introduttiva e relazione con gli standard IDE e SATA

All'accensione di un computer con hard-disk di tipo SATA, può succedere di non poter eseguire il boot per l'assenza di un driver, oppure di non riuscire ad installare il sistema operativo perché l'installer non riconosce il disco. Il problema non è SATA ma la modalità AHCI, uno standard per la comunicazione con dispositivi SATA. Vediamo qual è il significato di acronimi come IDE, SATA e AHCI e che relazione c'è tra di essi.

IDE (Integrated Drive Electronics)

I primi hard disk costruiti erano controllati direttamente dal microprocessore (CPU) del computer. A partire dal 1985 (circa) i dispositivi di memoria di massa integrano un microcontroller, ossia una scheda elettronica che ne governa il funzionamento e li svincola dalla CPU (il software di controllo è il firmware del dispositivo). IDE è l'acronimo di Integrated Drive Electronics (elettronica integrata sul drive) quindi, a rigore, sono IDE tutti i seguenti dispositivi:
  • HDD (Hard Disk Drive): il classico disco rigido a piatti magnetici.
  • SSD (Solid State Device): dispositivo a stato solido, basato su celle di memoria flash.
  • SSHD (Solid State Hybrid Drive): hard disk ibrido, una via di mezzo tra HDD e SSD. La maggior parte dell'area di memorizzazione è costituita da dischi magnetici, ma è presente anche una parte di memoria a stato solido.
  • Dual Drive Hybrid System: è una variante del disco ibrido che integra in un unico dispositivo fisico sia un SSD che un HDD, visti dal sistema operativo come unità separate, come se fossero 2 dispositivi distinti.
  • Lettori/masterizzatori di dispositivi ottici (CD, DVD, Blu-ray).
Tuttavia, nella terminologia corrente, l'acronimo IDE viene associato a dischi ormai obsoleti. L'equivoco nasce dal fatto che, per motivi di marketing, la sigla IDE fu usata per identificare la prima versione dell'interfaccia ATA, la connesione fisica dei dispositivi con il computer.

ATA, PATA, SATA

ATA (Advanced Technology Attachment) è il nome generico dell'interfaccia che connette memorie di massa e dispositivi ottici all'interno di un computer.
  • ATA-1 fu la prima versione dello standard, denominato per ragioni di marketing IDE-ATA o semplicemente IDE (da cui l'equivoco con il vero significato di IDE);
  • ATA-2 fu la seconda versione, nota come EIDE (Enhanced IDE);
  • la vecchia versione dell'interfaccia ATA definisce molte specifiche, da ATA-1 ad ATA-7 più le varianti ATAPI (ATA Packet Interface) per lettori/masterizzatori di CD e DVD.

Cavo EIDE-PATA
PATA (Parallel ATA, o P-ATA) indica genericamente le più vecchie versioni di ATA (da ATA-1 a ATA-7 più ATAPI). Il termine PATA deriva dalle "piattine", ossia i cavi piatti di connessione, costituiti da 40 fili (da ATA-1 ad ATA-4) oppure 80 fili (ATA-5, ATA-6 e ATA-7), e dal fatto che i bit di dati venivano trasmessi in parallelo su tali fili elettrici. Ciascun canale (ossia ciascun cavo) permette la connessione di 2 dispositivi in modaltà master-slave (un dispositivo "master" e l'altro "slave"). La velocità massima di connessione teorica è limitata da quella del dispositivo più lento. La trasmissione dati può avvenire da/per un solo dispositivo alla volta: "Parallel" non significa poter usare contemporaneamente 2 dischi nello stesso istante sullo stesso cavo (ciò è possibile se 2 dischi sono su canali/cavi diversi).

Cavo SATA
SATA (Serial ATA, o S-ATA) è il nome del nuovo tipo di interfaccia ATA introdotto nel 2003, evoluzione del vecchio standard PATA; è basato su cavi che permettono la trasmissione dati in modo seriale e ad alta velocità. Ciascun canale (cavo) è connesso direttamente ad un solo dispositivo. SATA è una connessione molto più veloce, efficiente ed economica rispetto a PATA. Lo standard SATA è in continua evoluzione (al momento in cui viene scritto questo articolo l'ultima revisione è SATA 3.2).

AHCI (Advanced Host Controller Interface)

Fino ad ora abbiamo parlato di dispositivi fisici e di interfacce di connessione. Invece, AHCI è una specifica (separata da quella SATA) che descrive quali operazioni e quali comandi possono eseguire dispositivi SATA come controller e dischi, permettendo al computer di usare funzionalità avanzate come hot swapping (collegamento/scollegamento di un dispositivo a computer acceso e sistema avviato), NCQ (Native Command Queuing, una tecnologia di ottimizzazione degli accessi al disco) e così via.
Le periferiche PATA non sono compatibili con AHCI poiché le specifiche PATA non includono nessuna delle funzioni avanzate di AHCI.

I controller SATA offrono diverse modalità di funzionamento, selezionabili nel BIOS/UEFI con opzioni apposite:
  • modalità di emulazione Parallel ATA. Nel BIOS/UEFI l'opzione si chiama in vari modi a seconda del produttore ("IDE", "IDE emulation", "IDE compatible", "Standard IDE", "Native IDE", "Legacy IDE", "Legacy mode", "Legacy", "Compatibility mode", "PATA emulation", ecc.);
  • modalità AHCI standard;
  • modalità RAID specifica del produttore (che abilita anche le funzionalità AHCI per sfruttarne le caratteristiche avanzate).
Abilitare una certa modalità nel BIOS/UEFI ha come effetto l'installazione nel sistema operativo del driver di periferica specifico per quella modalità (un driver è un software usato dal sistema operativo per controllare determinate periferiche, in questo caso i controller dei dischi).

Supporto AHCI nei sistemi operativi e problemi di boot

AHCI è supportato in modo nativo sui sistemi Linux basati su kernel 2.6.19 o superiori, OS X e vari dialetti Unix basati su BSD, e sui sistemi operativi Microsoft a partire da Windows Vista. Invece Windows XP non ha supporto nativo AHCI (per abiltare AHCI serve un driver fornito dal produttore del chipset o del controller dei dischi).

Al momento dell'installazione, Windows Vista/7/8.x configurano il driver del controller dei dischi in base alla modalità indicata nel BIOS/UEFI:
  • se il controller del disco è impostato in modalità compatibilità verrà installato il driver IDE standard;
  • se il controller è impostato modalità AHCI verrà installato un driver generico di supporto ad AHCI.
Quando il BIOS/UEFI è impostato in modalità compatibilità ed il sistema Windows Vista/7/8.x è già stato installato, non si può semplicemente cambiare la configurazione del BIOS/UEFI e passare ad AHCI, ma occorre:
  • fare una modifica al registro di configurazione di Windows per istruire il sistema di caricare il driver AHCI al boot;
  • riavviare il computer, entrare nel BIOS/UEFI e impostare la modalità AHCI nel controller dei dischi. Se si tenta di cambiare il BIOS/UEFI senza la modifica preventiva del registro, si avrà un errore al boot (la classica schermata blu oppure il messaggio che il disco è inaccessibile);
  • infine si può riavviare il sistema operativo.
Per questo motivo, se si vogliono sfruttare le funzioni avanzate della modalità AHCI sui dispositivi SATA, è bene impostare tale modalità nel BIOS/UEFI prima di installare il sistema operativo. Viceversa, nel caso il sistema sia stato installato con AHCI inizialmente disabilitato nel BIOS/UEFI, prima di abilitarlo occorre eseguire le opportune modifiche al sistema operativo per evitare errori di boot al riavvio.

Meglio AHCI o IDE-compatibile?

La risposta è: AHCI se possibile. AHCI è uno standard più moderno e permette funzioni avanzate come NCQ quindi, se il sistema operativo lo supporta nativamente, è preferibile rispetto alla modalità di compatibilità. Inoltre è possibile che qualche dispositivo (come un SSD o un HDD) "pretenda" la modalità AHCI prima di essere riconosciuto dal BIOS/UEFI.

In ogni caso, quando ci sono ragioni di compatibilità, la modalità IDE deve essere presa in considerazione; tecnologie avanzate a parte, le prestazioni a livello di singolo disco su un computer domestico non si discostano molto da quelle in modalità AHCI (anzi, l'utente praticamente non se ne accorge se fa un uso normale del computer). I vantaggi si hanno quando si usano le unità di archiviazione (HDD o SSD) in modo intenso; in tal caso diventano evidenti i vantaggi di NCQ che, ottimizzando gli accessi alle unità, può dare un incremento tangibile alle operazioni di lettura/scrittura.

Nei sistemi Microsoft, da Windows Vista in poi, è possibile abilitare contemporaneamente all'avvio sia il driver IDE standard che quello AHCI (il sistema operativo userà uno dei due driver in base alla configurazione del BIOS/UEFI).

POTREBBE INTERESSARTI ANCHE…