En mi curso sobre sistemas integrados, se explica que las entradas de memoria se pueden separar de las entradas de E/S usando 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 se puede reducir si tiene un sistema de direccionamiento separado para su memoria y su E/S. ¿Hay beneficios adicionales? ¿Tener estos separados lógicamente tiene otros beneficios, como poder usar diferentes velocidades de reloj o lógica de transferencia?
Mi interpretación de lo que está describiendo es simplemente subdividir el espacio de direcciones en dos mitades: una mitad para IO y otra mitad para memoria. No está creando dos buses separados allí, sino solo uno que se usa para dos tareas lógicamente diferentes.
Si bien eso puede simplificar la decodificación del bus de direcciones, no mejora el rendimiento en absoluto.
Muchos microcontroladores integrados utilizan una arquitectura conocida como Arquitectura 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 cosas al mismo tiempo que no se puede con un solo bus subdividido. Sin embargo, hace que la programación sea más compleja.
Esto es lo que hace la arquitectura X86 con las instrucciones IN/OUT, que se dirigen a los periféricos en lugar de a la memoria.
Puede ser útil una lógica de transferencia diferente. Por ejemplo, no almacenar en caché el acceso a los periféricos. O tener un comportamiento diferente para lecturas no alineadas. También le brinda un bit 17 "gratuito" 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.
Según mi instructor, hay muchos beneficios potenciales, porque diseñar los autobuses 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.
austin