Codificador de prioridade
Um codificador de prioridade entrega o indice binario da entrada ativa de maior prioridade, ignorando entradas ativas de menor prioridade. Um sinalizador de valido distingue o caso todo-zero de um indice genuino 0. E o inverso de um decodificador e a forma padrao de arbitrar requisicoes concorrentes.
Codificador de prioridade 4 para 2
Quatro linhas de requisicao produzem um codigo de 2 bits mais um bit de valido V. Quando I2 e I1 estao ativas, vence a de maior prioridade I2 e o codigo e 10. Se nenhuma entrada esta ativa, V e 0.
| I3 | I2 | I1 | I0 | V | A1 | A0 |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | - | - |
| 0 | 0 | 0 | 1 | 1 | 0 | 0 |
| 0 | 0 | 1 | x | 1 | 0 | 1 |
| 0 | 1 | x | x | 1 | 1 | 0 |
| 1 | x | x | x | 1 | 1 | 1 |
Codificador de prioridade 8 para 3
Oito entradas se reduzem a um codigo de 3 bits. Com I5 e I2 ativas, o codificador informa 101 porque I5 tem o indice maior. Acrescentar habilitacao de entrada e de saida permite encadear varios codificadores em um maior.
Controlador de interrupcoes
Quando varios dispositivos pedem interrupcao ao mesmo tempo, um codificador de prioridade transforma as linhas de requisicao no vetor binario do mais urgente, que a CPU usa para saltar ao tratador certo. E o coracao de controladores de interrupcao classicos como o 8259.
Citações
- Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Referência 1
- Texas Instruments (2003). SN74HC148: 8-line to 3-line priority encoders [Data sheet]. Referência 2
- Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.