es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo construiría un bus de sistema para conectar 3 microprocesadores y 2 placas de memoria, utilizando memoria compartida?

Actualmente estoy intentando resolver la siguiente pregunta de tarea:

Supongamos que se van a interconectar un microprocesador de 16 bits y dos microprocesadores de 8 bits a un bus de sistema. Se proporcionan los siguientes detalles: 8 pts
Todos los microprocesadores cuentan con las características de hardware necesarias para cualquier tipo de transferencia de datos: E/S programada, E/S basada en interrupciones y DMA.
Todos los microprocesadores cuentan con un bus de direcciones de 16 bits.
Se interconectan dos placas de memoria, cada una con una capacidad de 64 Kbytes, al bus. El diseñador desea utilizar una memoria compartida lo más grande posible.
El bus de sistema admite un máximo de cuatro líneas de interrupción y una línea de DMA. Realice cualquier otra suposición necesaria y:
Proporcione las especificaciones del bus de sistema en términos del número y tipo de líneas.

En realidad, no cubrimos este contenido en clase, así que estoy un poco perdido. Mi primer instinto es utilizar 3 líneas de interrupción para abordar las 6 combinaciones de periféricos y placas de memoria (se necesitan ceil(log2(6)) = 3 líneas) y utilizar E/S basada en interrupciones para las solicitudes. ¿Es esta una opción viable?

Además, ¿es posible abordar toda la memoria compartida de 64 kb * 2 = 128 kb? Dado que los procesadores solo admiten líneas de dirección de 16 bits, se podría asumir que el tamaño máximo del espacio de direcciones es de 2^16 = 64 kb, pero eso es solo la mitad del espacio de memoria total. ¿Es posible abordar los 128 kb completos y, de ser así, cómo?

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Especificaciones del bus del sistema

    Para interconectar un microprocesador de 16 bits y dos microprocesadores de 8 bits a un bus del sistema, se requieren las siguientes líneas:

    • Bus de dirección de 16 bits para cada microprocesador
    • Líneas del bus de datos (tamaño no especificado)
    • Líneas de interrupción (máximo 4)
    • Línea DMA (máximo 1)

    Para abordar las seis combinaciones de periféricos y placas de memoria, se requerirían tres líneas de interrupción (ceil(log2(6)) = 3 líneas necesarias). Se podría utilizar la E/S dirigida por interrupciones para las solicitudes.

    Tamaño de la memoria compartida

    Los microprocesadores tienen un bus de dirección de 16 bits, lo que limita el espacio máximo de memoria accesible a 64 kb. Sin embargo, para utilizar las dos placas de memoria de 64 Kbytes cada una y crear memoria compartida, una posible solución sería utilizar la conmutación de bancos. Esto permitiría que los microprocesadores accedan a diferentes partes de la memoria en diferentes momentos, creando efectivamente la ilusión de un espacio de memoria grande.

    Alternativamente, se podría utilizar una técnica de asignación de memoria para asignar el espacio de memoria de cada placa a diferentes partes del espacio de direcciones, creando efectivamente un mapa de memoria contiguo. Esto requeriría hardware adicional, como decodificadores de direcciones de memoria, para ser implementado.

    En resumen, es posible abordar los 128 kb de memoria compartida, pero requeriría hardware adicional o técnicas como la conmutación de bancos o la asignación de memoria.

Comments are closed.