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.

Decodificación parcial y total

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):

RAM decodificado

Decodificación en placa o en bus

Decodificación en placa

Decodificación en placa

Decodificación en bus (back plane)

decodificación en bus

Fuente: Estructura de Computadores, Facultad de Informática, UCM