Registros de Relógio de Parede e Posição de Link

O controlador de áudio HD contém um registro de contador de relógio de parede de 32 bits que incrementa na taxa de relógio de bits do Link de Áudio HD e rola aproximadamente a cada 89 segundos. O software usa esse contador para sincronizar entre dois ou mais dispositivos controladores medindo o descompasso relativo entre os relógios de hardware dos dispositivos.

Além disso, o controlador de áudio HD contém um conjunto de registros de posição de link. Cada mecanismo de DMA tem um registro de posição de link que indica a posição atual de leitura ou gravação dos dados que o mecanismo está transmitindo pelo Link de Áudio HD. O registro de posição expressa a posição atual como um deslocamento de bytes do início do buffer cíclico:

  • Em um fluxo de renderização, o registro de posição do link indica o deslocamento de buffer cíclico do próximo byte que o mecanismo de AMD enviará pelo link para o codec.

  • Em um fluxo de captura, o registro de posição do link indica o deslocamento de buffer cíclico do próximo byte que o mecanismo de AMD receberá do codec pelo link.

O deslocamento do buffer cíclico é simplesmente o deslocamento em bytes da posição de leitura ou gravação atual desde o início do buffer cíclico. Ao chegar ao final do buffer, a posição é encapsulada até o início do buffer e o deslocamento do buffer cíclico é redefinido para zero. O buffer cíclico reside na memória do sistema. Para obter mais informações, consulte a Especificação de áudio de alta definição da Intel no site do Intel HD Audio .

Um driver de função no modo kernel pode ler o relógio de parede e os registros de posição do link diretamente. Para habilitar o acesso direto, o driver do barramento de áudio HD mapeia a memória física que contém os registros na memória virtual do sistema. O driver de função chama a rotina GetWallClockRegister ou GetLinkPositionRegister para obter um ponteiro de endereço virtual do sistema para o registro do relógio de parede ou um registro de posição de link. Essas duas rotinas estão disponíveis em ambas as versões da DDI de áudio HD.

O hardware do controlador de áudio HD espelha o relógio da parede e a posição do link registra em páginas de memória que não contêm nenhum dos outros registros no controlador. Portanto, se o driver de função mapear o relógio de parede espelhado ou os registros de posição para o modo de usuário, nenhum programa de modo de usuário poderá acessar nenhum dos outros registros do controlador. O driver nunca permite que um programa de modo de usuário toque nesses outros registros e programe o hardware.

O espelhamento de registro deve acomodar o tamanho da página do processador do host. Dependendo da arquitetura do processador de host, um tamanho de página típico pode ser de 4.096 ou 8.192 bytes.