Lectura
Índice completo

PARTE XLI · Computación, datos e Internet

454

Ordenadores: componentes y ejecución

Un ordenador no es una caja que calcula: es un sistema que coordina transformaciones lógicas, movimiento de datos y efectos físicos

Capítulo 454 · 471 capítulos publicados

En este capítulo

Al pulsar una tecla, una señal física se convierte en dato; un programa decide qué significa; el procesador ejecuta instrucciones; la memoria conserva estados intermedios; una pantalla transforma nuevos datos en luz. Ninguna pieza realiza por sí sola la tarea «escribir una letra». El resultado emerge de capas con contratos distintos.

Un ordenador es un sistema físico programable que representa estados, ejecuta operaciones sobre ellos y se comunica con su entorno. Su versatilidad no procede de poseer un circuito diferente para cada aplicación, sino de poder interpretar secuencias de instrucciones y mantener datos modificables.

Este capítulo pregunta: ¿cómo cooperan lógica, procesador, memoria y dispositivos para ejecutar un programa, y por qué mover datos, disipar calor y coordinar trabajo suele importar tanto como calcular?

454.1. Representación binaria y lógica digital#

Los circuitos electrónicos trabajan con magnitudes continuas —tensión, corriente, carga—, pero los sistemas digitales interpretan intervalos de esas magnitudes como estados discretos. Dos intervalos robustamente separables pueden llamarse 0 y 1. El bit no es una sustancia: es una distinción lógica realizada por un soporte físico.

Con bits se representan enteros, caracteres, instrucciones, direcciones, colores y muestras de sonido. La misma secuencia carece de significado único sin un formato. 01000001 puede ser el entero 65, la letra A bajo cierto código o parte de una instrucción. El capítulo 452 explicó esta separación entre símbolo y significado; aquí importa cómo se transforma físicamente.

Las puertas lógicas implementan funciones como NO, Y y O. Combinadas forman sumadores, comparadores y selectores. Un circuito combinacional produce una salida determinada por las entradas presentes. Un circuito secuencial incorpora estado: su respuesta depende también de lo ocurrido antes. Registros y memorias permiten que una máquina recuerde.

La abstracción binaria tolera pequeñas perturbaciones: distintas tensiones dentro de un margen se interpretan igual. Pero no elimina la física. Si una señal llega demasiado tarde, cruza un umbral de forma ambigua o una partícula altera carga almacenada, puede aparecer un error. Temporización, márgenes eléctricos y corrección de errores sostienen la apariencia discreta.

El reloj coordina cambios en muchos diseños, como una referencia común para capturar estados. No ordena necesariamente cada acontecimiento del sistema ni obliga a que toda operación dure un ciclo. Hay circuitos asincrónicos, dominios de reloj distintos y periféricos mucho más lentos que el núcleo. «Tres gigahercios» describe una frecuencia, no tres mil millones de tareas completas por segundo.

La lógica booleana describe relaciones funcionales; la microelectrónica decide cómo realizarlas con transistores, conexiones y energía. Dos procesadores pueden ejecutar el mismo repertorio de instrucciones mediante organizaciones internas muy diferentes. Mantener separadas función lógica e implementación física evita confundir compatibilidad con identidad.

454.2. Procesadores e instrucciones#

La arquitectura del conjunto de instrucciones o ISA es el contrato visible para el software de bajo nivel: operaciones disponibles, registros, formatos de instrucción, tipos de datos, modos de direccionamiento y comportamiento observable. RISC-V, por ejemplo, define su ISA procurando separarla de detalles de una implementación concreta. Una misma ISA puede tener núcleos simples, segmentados o capaces de ejecutar varias operaciones en paralelo.

En un modelo básico, el procesador repite un ciclo: obtiene una instrucción desde memoria, la decodifica, obtiene operandos, ejecuta una operación y registra el resultado. Un contador de programa identifica la siguiente instrucción; saltos y llamadas cambian esa secuencia. Cargas y almacenamientos mueven datos entre registros y memoria.

Los registros son pequeñas posiciones muy próximas a las unidades de ejecución. Guardan operandos, direcciones y resultados inmediatos. Una unidad aritmético-lógica suma, compara o combina bits; otras unidades tratan números de punto flotante, vectores o tareas especializadas. «La CPU calcula» resume una red de recursos y decisiones.

Los procesadores modernos no esperan siempre a terminar una instrucción antes de comenzar la siguiente. La segmentación solapa etapas; la ejecución fuera de orden adelanta operaciones cuyos datos están listos; la predicción intenta no detenerse ante un salto. Al final, el estado visible debe respetar las reglas de la ISA, aunque el orden interno haya sido distinto.

Esa especulación mejora rendimiento y complica seguridad. Cambios internos que luego se descartan pueden dejar efectos medibles en cachés u otros recursos compartidos. La corrección arquitectónica —los registros terminan con el valor previsto— no garantiza que la microarquitectura no filtre información mediante tiempo o contención.

Una interrupción permite que un dispositivo reclame atención; una excepción informa que la instrucción encontró una condición como dirección inválida o división prohibida. El procesador transfiere control a software privilegiado, que decide cómo responder. Hardware y sistema operativo cooperan: uno detecta y ofrece mecanismos; el otro impone políticas.

454.3. Memoria, almacenamiento y jerarquías#

El procesador puede operar mucho más deprisa de lo que una memoria grande entrega datos. Por eso los ordenadores usan una jerarquía: registros pequeños y rápidos; cachés cercanas; memoria principal; almacenamiento persistente; y, a veces, recursos remotos. Capacidad, latencia, ancho de banda, energía, persistencia y precio cambian entre niveles.

Una caché conserva copias de bloques usados recientemente o cercanos a otros accesos. Si el dato está presente ocurre un acierto; si no, hay que buscarlo abajo y esperar. La localidad temporal —volver a usar algo pronto— y la espacial —usar direcciones cercanas— hacen útil esta apuesta. Un acceso irregular puede frustrarla.

Latencia y ancho de banda no son equivalentes. La latencia mide cuánto tarda en llegar una respuesta; el ancho de banda, cuánto puede transferirse por unidad de tiempo una vez activo el flujo. Una vía puede transportar grandes cantidades y aun tardar mucho en entregar el primer byte. Las cargas de trabajo responden de manera distinta a ambos límites.

La memoria principal suele ser volátil: mantiene estado mientras recibe energía. Un dispositivo de almacenamiento conserva información sin alimentación continua, pero tampoco es permanente en sentido absoluto. Desgaste, campos, temperatura, defectos de fabricación y tiempo degradan soportes. Copias, verificación e identificación de fallos importan más que el nombre comercial del medio.

Las direcciones usadas por un programa suelen ser virtuales. Hardware y sistema operativo las traducen a ubicaciones físicas y aplican permisos. Así, varios procesos pueden ver espacios separados, compartir regiones controladamente y usar más espacio aparente que la memoria residente. La traducción necesita sus propias cachés y puede fallar o provocar movimiento hacia almacenamiento.

Cuando varios núcleos guardan copias de un dato, la coherencia intenta que sus observaciones sigan reglas consistentes. Coherencia no significa que todos vean cada escritura instantáneamente ni sustituye la sincronización del programa. Los modelos de memoria especifican qué órdenes de lectura y escritura puede observar el software.

454.4. Entrada, salida y comunicación entre componentes#

El mundo entra y sale mediante dispositivos: teclado, sensor, red, disco, pantalla, actuador. Un controlador adapta el protocolo específico del dispositivo a mecanismos que el procesador y el sistema operativo pueden usar. Esta frontera traduce velocidades, unidades, errores y eventos.

Los componentes se comunican por interconexiones que transportan direcciones, datos y control. Un bus compartido es sólo una posibilidad; sistemas modernos usan enlaces punto a punto, redes internas y jerarquías de conmutación. La topología determina quién puede hablar, cuánto compite y dónde aparece congestión.

En entrada/salida programada, el procesador consulta o mueve datos explícitamente. Con acceso directo a memoria, un controlador transfiere bloques sin pedir al núcleo que copie cada palabra; al terminar puede emitir una interrupción. Esto libera cómputo, pero exige coordinar permisos, buffers y visibilidad de caché.

Un buffer desacopla ritmos. El teclado produce eventos esporádicos; una red recibe ráfagas; un disco trabaja por bloques. Almacenar temporalmente evita exigir sincronía perfecta. Si el productor supera de forma sostenida al consumidor, ningún buffer finito resuelve el problema: sólo retrasa saturación. El sistema debe aplicar contrapresión, descartar o ampliar capacidad.

Los dispositivos pueden usar datos no confiables. Un paquete de red, un archivo o un periférico comprometido no se vuelve seguro al atravesar hardware. Validar longitudes, aislar acceso directo a memoria y manejar errores son responsabilidades de diseño. La frontera física tampoco coincide siempre con la frontera de confianza.

La comunicación cuesta. Copiar datos entre procesador, acelerador, memoria y red consume tiempo y energía. A veces conviene llevar el cálculo hacia los datos o compartir memoria; otras veces el aislamiento justifica la copia. La arquitectura útil optimiza el sistema entero, no una pieza aislada.

454.5. Paralelismo, consumo y límites físicos#

Subir la frecuencia permite más ciclos por segundo, pero requiere que señales recorran circuitos a tiempo y que el calor pueda evacuarse. La potencia dinámica se aproxima por

Pdin≈αCV2f,

donde α representa actividad, C capacitancia efectiva, V tensión y f frecuencia. Es un modelo, no la potencia total: también existen fugas y pérdidas del sistema. La dependencia cuadrática con la tensión ayuda a explicar por qué frecuencia y energía no pueden aumentarse sin coste.

El paralelismo busca hacer trabajo simultáneo: varias unidades dentro de un núcleo, varios núcleos, operaciones vectoriales, procesadores gráficos o aceleradores. Pero una tarea posee dependencias. Si el paso B necesita el resultado de A, añadir unidades no elimina esa secuencia.

Si una fracción s del tiempo debe permanecer serial y el resto pudiera acelerarse infinitamente, la aceleración total no superaría aproximadamente

Smax=1s.

Es la idea central de la ley de Amdahl. En la práctica aparecen costes adicionales: dividir trabajo, mover datos, sincronizar y reunir resultados. Más núcleos pueden rendir menos si compiten por memoria o esperan cerrojos.

Rendimiento tampoco equivale a frecuencia. Importan instrucciones realizadas por ciclo, fallos de caché, predicciones, ancho de banda y naturaleza del programa. Dos procesadores con igual frecuencia pueden diferir ampliamente; uno con menor frecuencia puede terminar antes consumiendo menos energía.

Los límites físicos no anuncian el fin del progreso, sino un cambio de estrategia. Integración tridimensional, especialización, mejores algoritmos, empaquetado, proximidad de memoria y reducción del movimiento de datos buscan más utilidad dentro de presupuestos térmicos. Cada mejora desplaza cuellos de botella y puede introducir dependencias nuevas.

La métrica adecuada depende del uso: latencia de una interacción, trabajos por segundo, energía por resultado, coste, fiabilidad o respuesta en el peor caso. Optimizar una cifra de laboratorio sin declarar carga y restricciones produce comparaciones vistosas pero poco informativas.

Síntesis#

Un ordenador convierte fenómenos físicos en estados digitales y los transforma mediante lógica con memoria. La ISA ofrece un contrato entre software y procesador; la microarquitectura decide cómo cumplirlo. Una jerarquía de memoria explota localidad porque capacidad y velocidad no crecen juntas. La entrada/salida traduce entre dispositivos y ritmos. Paralelismo, movimiento de datos, energía y calor limitan el rendimiento tanto como las operaciones aritméticas.

Preguntas de transferencia#

1. ¿Por qué duplicar la frecuencia no garantiza terminar una tarea en la mitad de tiempo?#

Porque pueden dominar memoria, entrada/salida, dependencias y calor; además, el trabajo realizado por ciclo puede cambiar.

2. Un archivo está en almacenamiento persistente. ¿Está seguro frente a pérdida?#

No. Persistencia sólo significa conservar estado sin alimentación continua. Fallos, degradación, errores lógicos y pérdida del dispositivo requieren copias y verificación.

3. ¿Por qué una caché pequeña puede mejorar mucho el rendimiento?#

Porque muchos programas reutilizan pronto datos e instrucciones cercanos. Si el patrón carece de localidad, la ventaja disminuye.

4. Un sistema añade ocho núcleos y apenas acelera. ¿Qué investigarías?#

La fracción serial, dependencias, sincronización, reparto del trabajo, fallos de caché, ancho de banda de memoria y coste de comunicación.

Figura 454.1 — Ejecutar es coordinar cálculo, estado y movimiento

Arquitectura conceptual de un ordenador con procesador, jerarquía de memoria y entrada/salida, conectados por flujos de instrucciones, datos y control.

Clave de lectura. La jerarquía es un patrón conceptual; niveles y conexiones concretas varían entre sistemas.

Fuentes y lecturas del capítulo#

Bibliografía de la parte XLI · Bibliografía general

Última revisión editorial
Cierre de contenidos