Executando o AMD no Windows de 64 bits

Adicionar suporte de endereçamento de 64 bits ao driver pode melhorar significativamente o desempenho geral do sistema. Isso é particularmente importante para drivers de dispositivo que executam DMA (acesso direto à memória). No Microsoft Windows de 64 bits, os drivers de dispositivo que executam DMA, mas não dão suporte ao endereçamento de 64 bits, são armazenados em buffer duplo, o que resulta em um desempenho relativo menor.

Embora o buffer duplo geralmente tenha um impacto relativamente pequeno (pontos percentuais únicos) em sistemas de 8 GB, isso é suficiente para afetar tarefas com uso intensivo de E/S, como a atividade do banco de dados. À medida que a quantidade de memória física aumenta, esse impacto negativo no desempenho também aumenta.

Para dar suporte ao AMD de 64 bits, os drivers devem observar as seguintes diretrizes:

  1. Use PHYSICAL_ADDRESS estruturas para cálculos de endereço físico.

  2. Trate todo o endereço de 64 bits como um endereço físico válido. Por exemplo, os drivers não devem chamar MmGetPhysicalAddress em um buffer bloqueado, descartar os 32 bits altos e passar o endereço truncado para um adaptador de componente de 32 bits. Isso resulta em memória corrompida, E/S perdida e falha do sistema.

  3. Use as rotinas de dispersão/coleta de alto desempenho (GetScatterGatherList e PutScatterGatherList) que foram adicionadas no Windows 2000.

  4. Verifique o valor da variável de sistema global Mm64BitPhysicalAddress . Se for TRUE, o sistema oferecerá suporte ao endereçamento físico de 64 bits.

  5. Defina o membro Dma64BitAddresses da estrutura DEVICE_DESCRIPTION como TRUE para indicar que o driver dá suporte a endereços DMA de 64 bits.

As rotinas de AMD no Windows de 32 bits estão prontas para 64 bits. Se o driver do dispositivo usar essas rotinas corretamente, o código DMA deverá funcionar sem modificação no Windows de 64 bits.