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.

Básico

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.

I3I2I1I0VA1A0
00000--
0001100
001x101
01xx110
1xxx111
Intermediário

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.

Codificador de prioridade 8 para 3
Avançado

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.

Controlador de interrupcoes

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.