Arquitectura de E/S y Buses
La arquitectura de E/S define cómo un procesador y la memoria se comunican con los dispositivos periféricos a través de buses, controladores, interrupciones y esquemas de direccionamiento, rigiendo cómo fluyen los comandos y los datos hacia y desde el mundo exterior.
Definition
La arquitectura de E/S y los buses son la organización e interconexiones mediante las cuales el procesador y la memoria de una computadora intercambian señales de control y datos con dispositivos periféricos, incluyendo el direccionamiento de los registros de los dispositivos y los mecanismos por los cuales los dispositivos solicitan servicio.
Scope
Este tema cubre la estructura de entrada/salida: buses e interconexiones punto a punto, controladores y registros de dispositivos, E/S mapeada en memoria versus mapeada en puerto, E/S por sondeo y por interrupción, y protocolos y arbitraje de bus. Trata cómo se conectan y controlan los dispositivos. Excluye el mecanismo DMA de transferencia masiva y la virtualización (virtualización de E/S y DMA) y los propios medios de almacenamiento (dispositivos de almacenamiento secundario).
Core questions
- ¿Cómo son direccionados y controlados los dispositivos periféricos por el procesador?
- ¿En qué se diferencian la E/S mapeada en memoria y la E/S mapeada en puerto?
- ¿Cómo se comparan en eficiencia la E/S por sondeo y la E/S impulsada por interrupciones?
- ¿Cómo arbitran y transfieren datos los buses y las interconexiones punto a punto?
Key concepts
- controladores y registros de dispositivos
- E/S mapeada en memoria
- E/S mapeada en puerto
- sondeo
- interrupciones y manejadores de interrupciones
- buses e interconexiones
- arbitraje de bus
- direccionamiento de E/S
Key theories
- E/S impulsada por interrupciones
- En lugar de sondear continuamente un dispositivo, el procesador continúa con otro trabajo y es notificado por una interrupción cuando el dispositivo necesita atención, lo que mejora enormemente la eficiencia para dispositivos lentos o que operan de forma intermitente.
Mechanisms
Cada dispositivo es gestionado por un controlador que expone registros que el procesador lee y escribe, ya sea a través de direcciones mapeadas en memoria o puertos de E/S especiales. El procesador puede sondear estos registros o, de manera más eficiente, habilitar interrupciones para que el dispositivo señale cuando esté listo. Los buses conectan componentes y arbitran el acceso entre múltiples maestros, mientras que los sistemas modernos utilizan cada vez más enlaces seriales punto a punto de alta velocidad en lugar de buses paralelos compartidos.
Clinical relevance
La arquitectura de E/S determina la eficiencia con la que un sistema se comunica con el almacenamiento, la red y otros dispositivos. La E/S impulsada por interrupciones libera al procesador para realizar un trabajo útil, y la evolución de los buses compartidos a las interconexiones seriales rápidas como PCI Express sustenta el ancho de banda necesario para el almacenamiento, las redes y el hardware acelerador modernos.
History
Los sistemas tempranos utilizaban E/S programada y buses paralelos compartidos con arbitraje central. Los mecanismos de interrupción y los buses estandarizados como ISA y PCI mejoraron la flexibilidad y el rendimiento. El cambio a interconexiones seriales punto a punto de alta velocidad, ejemplificado por PCI Express, abordó los límites de ancho de banda y señalización de los buses paralelos compartidos.
Key figures
- John L. Hennessy
- David A. Patterson
- Abraham Silberschatz
Related topics
Seminal works
- hennessy2019
- silberschatz2018
Frequently asked questions
- ¿Cuál es la diferencia entre la E/S mapeada en memoria y la E/S mapeada en puerto?
- La E/S mapeada en memoria asigna a los registros del dispositivo direcciones dentro del espacio de direcciones de memoria regular, de modo que las instrucciones ordinarias de carga y almacenamiento acceden a ellos. La E/S mapeada en puerto utiliza un espacio de direcciones separado e instrucciones especiales para el acceso a dispositivos. La E/S mapeada en memoria es más común en las arquitecturas modernas.
- ¿Por qué las interrupciones son mejores que el sondeo para la mayoría de los dispositivos?
- El sondeo desperdicia ciclos del procesador al verificar repetidamente si un dispositivo está listo. Las interrupciones permiten que el procesador realice otro trabajo y sea notificado solo cuando el dispositivo realmente necesita servicio, lo cual es mucho más eficiente para dispositivos lentos o que responden de manera impredecible.