Os códigos (somente leitura) do vendedor e do dispositivo identificam a empresa e o tipo de controladora da placa.
O registrador de comando (leitura e escrita) é o responsável pela programação de alguns parâmetros de acesso, como a permissão para manusear memória e I/O contidos na placa, a habilitação de alguns ciclos especiais de barramento e outros.
O registrador de estado (leitura e escrita parcial) informa algumas condições de velocidade de comunicação e de detecção de erros.
O identificador de revisão (leitura) informa o número da revisão do adaptador, sendo um código criado pelo fabricante.
O código da classe (leitura) identifica a função básica do dipositivo (ex: multimídia, ponte PCI-outro barramento, placa de rede, base de dados, etc.).
O tamanho do cache (leitura e escrita) (4 para um 486) é o tamnho, em doublewords, da linha de cache para escritas na memória da placa.
O temporizador de latência (leitura e escrita) especifica o tempo mínimo, em clocks de barramento, que o barramento mestre pode manter a posse do barramento. Ele é decrementado pelo barramento mestre a cada clock a partir do início da transferência de um dado.
O tipo de cabeçalho (leitura) define se o dispositivo é um adaptador ou uma ponte PCI-PCI.
O BIST (Built In Self Test - leitura) é um registrador opcional que permite efetuar-se uma seqüência de auto-teste do adaptador.
Os registradores para a programação de endereços bases são necessários quando o dispositivo implementa decodificadores de endereços para mapearem porções de memória e I/O. O bit menos significativo destes registradores é reservado para a leitura e indica o tipo se é a defição de endereços de I/O ou de memória. O mecanismo para tal programação é bastante interessante e será comentado posteriormente.
O registrador do pino de interrupção (leitura) indica por que sinal elétrico do barramento a placa PCI gerará o pedido de interrupção (INT# A, B, C ou D - programa-se 1 a 4 - ou não exige recurso de interrupção - programa-se 0).
O registrador de linha de interrupção (leitura e escrita) é programável pelo software plug and play (BIOS ou sistema operacional) e informa à placa qual das linha IRQ que alimentam o controlador de interrupções do PC está alocado para o adaptador.
| 3 |
2 |
1 |
0 |
offsets |
| código do dispositivo |
código do vendedor |
00h |
| registrador de estado |
registrador de comando |
04h |
| código da classe |
id. de revisão |
08h |
| BIST |
tipo cabeçalho |
temp. latência |
tam. cache |
0Ch |
| primeiro registrador para a programação do endereço base |
10h |
| segundo registrador para a programação do endereço base |
14h |
| terceiro registrador para a programação do endereço base |
18h |
| quarto registrador para a programação do endereço base |
1Ch |
| quinto registrador para a programação do endereço base |
20h |
| sexto registrador para a programação do endereço base |
24h |
| reservado |
28h |
| reservado |
reservado |
2Ch |
| registrador para endereço base da ROM de expansão |
30h |
| reservado |
34h |
| reservado |
38h |
| reservado |
reservado |
reg. pino int. |
reg. linha int. |
3Ch | Figura 1: Mapeamento dos registradores PCI. Os 12 primeiros bytes mais o tipo de cabeçalho são campos obrigatórios. |