Codificador de prioridad
Un codificador de prioridad entrega el indice binario de la entrada activa de mayor prioridad, ignorando las entradas activas de menor prioridad. Un indicador de valido distingue el caso de todo en cero de un indice genuino 0. Es el inverso de un decodificador y la forma estandar de arbitrar solicitudes en competencia.
Codificador de prioridad 4 a 2
Cuatro lineas de solicitud producen un codigo de 2 bits mas un bit de valido V. Cuando I2 e I1 estan activas, gana la de mayor prioridad I2 y el codigo es 10. Si ninguna entrada esta activa, V es 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 prioridad 8 a 3
Ocho entradas se reducen a un codigo de 3 bits. Con I5 e I2 activas, el codificador informa 101 porque I5 tiene el indice mayor. Agregar habilitacion de entrada y de salida permite encadenar varios codificadores en uno mayor.
Controlador de interrupciones
Cuando varios dispositivos piden interrupcion a la vez, un codificador de prioridad convierte las lineas de solicitud en el vector binario del mas urgente, que la CPU usa para saltar al manejador correcto. Es el corazon de los controladores de interrupciones clasicos como el 8259.
Citas
- Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Referencia 1
- Texas Instruments (2003). SN74HC148: 8-line to 3-line priority encoders [Data sheet]. Referencia 2
- Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.