Decodificación parcial y total
Cuando se generan las funciones de selección de varios bloques de memoria o puertos de E/S que han de ubicarse en el espacio de direcciones tiene que evitarse siempre que una dirección sea asignada a más de una posición de memoria o registro de E/S.
En caso contrario el resultado de las operaciones de lectura/escritura puede resultar incierto. Sin embargo, no es necesario que a una posición de memoria o registro le corresponda sólo una dirección. En algunos casos, para simplificar la decodificación, y siempre que no se vaya a utilizar totalmente el espacio disponible, se puede realizar una decodificación parcial.
Ejemplo:
Ubicación en un espacio de direcciones de 12 líneas d11, d10,…,d1, d0 (212 = 4.086 = 4K) de un bloque de RAM de 2K y un puerto de E/S de 4 registros.
La RAM la hemos decodificado completamente, en cambio el puerto de E/S presenta una decodificación parcial, ya que hemos utilizado 2K del espacio disponible para ubicar tan sólo 4 palabras. Esto significa que los 4 registros presentan múltiples direcciones cada uno (exactamente 512):
Decodificación en placa o en bus
Decodificación en placa
Decodificación en bus (back plane)
Fuente: Estructura de Computadores, Facultad de Informática, UCM