Beneficio de (I / O) y bus de memoria separados (lógicamente / virtualmente)

1

En mi curso sobre sistemas integrados, se explica que las entradas de memoria se pueden separar de las entradas de E / S utilizando un "bit de modo" para el decodificador de direcciones. La ventaja más obvia de esto es que la cantidad de líneas de dirección que deben decodificarse puede reducirse si tiene un sistema de direccionamiento separado para su memoria y su E / S. ¿Hay algún beneficio adicional? ¿Tener estos separados lógicamente tiene otros beneficios, como poder usar diferentes velocidades de reloj o transferir lógica?

    
pregunta Seanny123

3 respuestas

2

Mi interpretación de lo que estás describiendo es simplemente subdividir el espacio de direcciones en dos mitades, una mitad para IO y una mitad para memoria. No estás creando dos buses separados allí, sino solo uno que se usa para dos tareas lógicamente diferentes.

Si bien esto puede simplificar la descodificación del bus de direcciones, no mejora el rendimiento en absoluto.

Muchos microcontroladores integrados utilizan una arquitectura conocida como Arquitectura de Harvard modificada. En esto tiene varios buses físicos diferentes, cada uno con su propio propósito: uno para RAM, uno para ROM, tal vez uno para IO. Estos tienen la gran ventaja de que es posible acceder a diferentes elementos al mismo tiempo que no se pueden hacer con un solo bus subdividido. Aunque hace la programación más compleja.

    
respondido por el Majenko
1

Esto es lo que hace la arquitectura X86 con las instrucciones de ENTRADA / SALIDA, que dirigen los periféricos en lugar de la memoria.

Diferente lógica de transferencia puede ser útil. Por ejemplo, no se cachea el acceso a los periféricos. O tener un comportamiento diferente para las lecturas no alineadas. También le da un bit 17o "libre" en una arquitectura de 16 bits, que es cuando se introdujo la técnica. La velocidad del reloj debe permanecer igual, pero potencialmente puede tener un número diferente de "estados de espera".

Sin embargo, en estos días se considera mejor simplemente hacer que la MMU sea más inteligente y permitirle manejar estos efectos.

    
respondido por el pjc50
0

Según mi instructor, hay muchos beneficios potenciales, porque diseñar los buses de esta manera permite parámetros de configuración totalmente diferentes. Esto significa que puede tener diferentes anchos de datos / direcciones, así como diferentes velocidades de reloj.

    
respondido por el Seanny123

Lea otras preguntas en las etiquetas