Registri di posizione del muro e della posizione del collegamento

Il controller audio HD contiene un registro del contatore dell'orologio a 32 bit che incrementa la frequenza di bit del collegamento audio HD e esegue il roll over circa ogni 89 secondi. Il software usa questo contatore per sincronizzare tra due o più dispositivi controller misurando la deriva relativa tra gli orologi hardware dei dispositivi.

Inoltre, il controller AUDIO HD contiene un set di registri di posizioni di collegamento. Ogni motore DMA ha un registro di posizione collegamento che indica la posizione corrente di lettura o scrittura dei dati trasmessi dal motore tramite il collegamento audio HD. Il registro posizione esprime la posizione corrente come offset di byte dall'inizio del buffer ciclico:

  • In un flusso di rendering, il registro posizione collegamento indica l'offset del buffer ciclico del byte successivo che il motore DMA invia sul collegamento al codec.

  • In un flusso di acquisizione, il registro posizione collegamento indica l'offset del buffer ciclico del byte successivo che il motore DMA riceverà dal codec tramite il collegamento.

L'offset del buffer ciclico è semplicemente l'offset in byte della posizione di lettura o scrittura corrente dall'inizio del buffer ciclico. Al raggiungimento della fine del buffer, la posizione viene eseguito il wrapping intorno all'inizio del buffer e l'offset del buffer ciclico viene reimpostato su zero. Il buffer ciclico risiede nella memoria di sistema. Per altre informazioni, vedere La specifica audio Intel High Definition nel sito Web Intel HD Audio .

Un driver di funzione in modalità kernel può leggere direttamente l'orologio a parete e la posizione di collegamento. Per abilitare l'accesso diretto, il driver del bus audio HD esegue il mapping della memoria fisica che contiene i registri nella memoria virtuale del sistema. Il driver di funzione chiama la routine GetWallClockRegister o GetLinkPositionRegister per ottenere un puntatore di indirizzi virtuale di sistema al registro dell'orologio a parete o a un registro di posizione collegamento. Queste due routine sono disponibili in entrambe le versioni di HD Audio DDI.

L'hardware del controller audio HD riflette l'orologio a parete e la posizione di collegamento vengono registrati nelle pagine di memoria che non contengono alcun altro registro nel controller. Pertanto, se il driver di funzione esegue il mapping dell'orologio a parete mirroring o della posizione alla modalità utente, nessun programma in modalità utente può accedere a uno qualsiasi degli altri registri del controller. Il driver non consente mai a un programma in modalità utente di toccare questi altri registri e programmare l'hardware.

Registrare il mirroring deve contenere le dimensioni della pagina del processore host. A seconda dell'architettura del processore host, una dimensione di pagina tipica potrebbe essere pari a 4.096 o 8.192 byte.