Interfaz con el exterior
El microprocesador está en el centro de un sistema, pero necesita canales de comunicación para interactuar con memoria, discos, teclado, pantalla, sensores, etc. Estos canales se organizan principalmente mediante buses, puertos e interrupciones.
1. Buses del sistema #
Un bus es un conjunto de líneas (cables o pistas en la placa) que transporta información.
Los principales son:
-
Bus de datos
- Transporta la información (números, caracteres, instrucciones).
- Puede ser de 8, 16, 32, 64 bits, según la arquitectura.
- Cuanto más ancho, más datos viajan en paralelo.
-
Bus de direcciones
-
Indica en qué lugar de la memoria o dispositivo se va a leer/escribir.
-
El número de líneas determina el máximo de memoria direccionable.
- Ejemplo: 32 bits → 2³² direcciones = 4 GB.
- Ejemplo: 64 bits → 2⁶⁴ direcciones (teóricamente 16 exabytes).
-
-
Bus de control
- Transporta señales que sincronizan y controlan la comunicación.
- Ejemplo: lectura (READ), escritura (WRITE), interrupción (IRQ).
👉 Se puede pensar en los buses como las autopistas que conectan el procesador con el resto del sistema.
2. Puertos de entrada/salida (E/S) #
Un microprocesador necesita comunicarse con dispositivos externos (teclado, pantalla, red, etc.). Para ello usa puertos de E/S:
-
E/S mapeada en memoria (memory-mapped I/O): Los dispositivos se manejan como si fueran direcciones de memoria. Ejemplo: escribir en la dirección
0xB8000en PCs antiguos mostraba texto en la pantalla. -
E/S mediante puertos dedicados (I/O ports): Se usan instrucciones especiales (ejemplo en x86:
INyOUT).
👉 Hoy en día, lo más usado es la E/S mapeada en memoria, porque simplifica el diseño.
3. Controladores #
Los periféricos son demasiado lentos comparados con el microprocesador. Para que el CPU no se quede esperando, se usan controladores: chips especializados que gestionan dispositivos y avisan al procesador cuando han terminado.
Ejemplo:
- Controlador de disco → gestiona lectura/escritura en HDD o SSD.
- Controlador de red → maneja paquetes sin que el CPU tenga que leer cada bit.
4. Interrupciones #
Una interrupción es una señal que detiene temporalmente el flujo normal del procesador para atender un evento externo.
Ejemplo:
- Pulsar una tecla → genera una interrupción → el procesador ejecuta la rutina del teclado.
- Llegada de un paquete de red.
- Fin de una operación de disco.
👉 Tipos:
- Interrupciones externas (hardware): generadas por dispositivos.
- Interrupciones internas (software): generadas por instrucciones especiales o errores (ej. división por cero).
✅ Ventaja: el procesador no necesita estar constantemente "preguntando" (polling) al dispositivo, ahorrando tiempo y energía.
5. Ejemplo práctico #
Supongamos que escribes un documento y pulsas una tecla:
- El teclado envía un código por el bus.
- El controlador del teclado lo procesa y lanza una interrupción.
- El procesador detiene lo que estaba haciendo y ejecuta la rutina de atención al teclado.
- El código se guarda en memoria y se muestra en pantalla.
- El procesador vuelve a la tarea anterior.
Resumen del tema
Conceptos clave #
- Comunicación mediante Buses: Bus de Datos (ancho de palabra), Bus de Direcciones (rango de direccionamiento: 32 bits = 4 GB, 64 bits = espacio virtual masivo) y Bus de Control.
- Mapeo de E/S: Memory-Mapped I/O (periféricos tratados como direcciones de memoria) vs Port-Mapped I/O (instrucciones dedicadas
IN/OUT). - Controladores y DMA (Direct Memory Access): transferencia directa de datos entre periféricos y RAM sin saturar la CPU.
- Interrupciones (Hardware y Software): mecanismo reactivo que evita el sondeo ineficiente (polling), ejecutando Rutinas de Servicio de Interrupción (ISR).
Qué debes recordar #
Las interrupciones y el acceso directo a memoria (DMA) liberan a la CPU de esperar periféricos lentos, permitiendo un procesamiento asíncrono y eficiente.