TEMA 2. ELEMENTOS FUNCIONALES DE UN ORDENADOR DIGITAL
INDICE
- Introducción
- Concepto de ordenador digital y modelos teóricos de computación
- La máquina de Turing como fundamento teórico
- El modelo de von Neumann frente a la arquitectura Harvard
- La Unidad Central de Proceso (CPU): estructura y funcionamiento
- El ciclo de instrucción: búsqueda, decodificación y ejecución
- El subsistema de memoria y su jerarquía
- El subsistema de entrada/salida (E/S)
- El sistema de interconexión: buses de datos, direcciones y control
- Generaciones y evolución de los ordenadores digitales
- Aplicación didáctica y relación con el currículo
- Conclusión
- Bibliografía y referencias
1. INTRODUCCION
El ordenador digital constituye el artefacto tecnológico más versátil que ha producido la ingeniería, y su estudio resulta imprescindible para cualquier docente de la especialidad de Informática. Comprender qué es un ordenador no se limita a enumerar las piezas que lo componen, sino que exige entender la articulación funcional de esas piezas en torno a una idea central: la máquina de programa almacenado. Un ordenador no es una calculadora rápida ni un conjunto de circuitos sueltos, sino la materialización física de un modelo abstracto de computación capaz de ejecutar cualquier algoritmo expresable, dentro de los límites de su memoria y su tiempo.
El propósito de este tema es analizar los elementos funcionales de un ordenador digital, esto es, las unidades que, mediante su cooperación, hacen posible el procesamiento automático de la información. Para abordarlo con el rigor que exige una prueba de oposición, conviene partir de los fundamentos teóricos —la máquina de Turing, que define qué significa computar— para descender después a la arquitectura concreta —el modelo de von Neumann y su alternativa, la arquitectura Harvard— y, finalmente, describir los subsistemas físicos: la unidad central de proceso, la memoria, los dispositivos de entrada/salida y el sistema de buses que los interconecta. Cerraremos con la perspectiva histórica de las generaciones y con la inserción de estos conceptos en el currículo de la Formación Profesional y de la Educación Secundaria.
El enfoque será deliberadamente integrador: cada elemento se explicará no de forma aislada, sino como parte de un sistema cuyo comportamiento global emerge de la interacción entre componentes. Esta visión sistémica es, además, la que mejor traslada al alumnado la naturaleza profunda de la computación y la que conviene cultivar en el aula.
2. CONCEPTO DE ORDENADOR DIGITAL Y MODELOS TEORICOS DE COMPUTACION
Un ordenador digital es una máquina automática capaz de aceptar datos de entrada, procesarlos siguiendo un conjunto de instrucciones almacenadas (el programa) y producir resultados de salida, operando sobre información representada de forma discreta, normalmente mediante el sistema binario. El adjetivo «digital» se opone a «analógico»: mientras un computador analógico representa magnitudes mediante variables físicas continuas (tensiones, ángulos, presiones), el digital representa la información mediante dígitos, lo que le confiere precisión arbitraria, inmunidad relativa al ruido y, sobre todo, la capacidad de aplicar la teoría matemática del álgebra de Boole a su diseño.
Tres propiedades caracterizan al ordenador digital moderno y lo distinguen de máquinas anteriores:
- Automatismo: una vez iniciada la ejecución, el ordenador procede sin intervención humana, gobernado por su programa.
- Universalidad o programabilidad: la misma máquina física puede resolver problemas distintos sin más que cambiar el programa. Esta propiedad, hoy obvia, fue la gran ruptura conceptual frente a las máquinas de propósito fijo.
- Programa almacenado: el programa reside en la memoria con el mismo estatus que los datos, lo que permite que un programa modifique a otro, se compile, se interprete o se cargue dinámicamente.
Estas propiedades no surgieron del ensayo ingenieril, sino de una reflexión teórica previa. Antes de que existiera el primer ordenador electrónico, los matemáticos ya habían formalizado qué significa calcular. En la década de 1930, en el contexto del programa de Hilbert y de la pregunta sobre la decidibilidad (el Entscheidungsproblem), se propusieron varios modelos formales de computación: la máquina de Turing de Alan Turing, el cálculo lambda de Alonzo Church y las funciones recursivas de Gödel, Kleene y Herbrand. La demostración de que los tres modelos son equivalentes —definen exactamente la misma clase de funciones computables— condujo a la tesis de Church-Turing: toda función intuitivamente calculable mediante un procedimiento mecánico es computable por una máquina de Turing.
Esta tesis es la piedra angular de la informática teórica y tiene una consecuencia práctica de primer orden: cualquier ordenador real, por sofisticado que sea, no puede calcular nada que una máquina de Turing no pueda calcular. Las diferencias entre máquinas son de eficiencia (tiempo, memoria, consumo), no de poder de cómputo. Por eso el estudio de la máquina de Turing no es una curiosidad histórica, sino el marco que define los límites teóricos de todo elemento funcional que describiremos.
3. LA MAQUINA DE TURING COMO FUNDAMENTO TEORICO
La máquina de Turing, descrita por Alan Turing en 1936 en su artículo «On Computable Numbers, with an Application to the Entscheidungsproblem», es un modelo matemático abstracto que captura la esencia del cálculo mecánico. No es un dispositivo físico, sino una definición formal cuya simplicidad la hace especialmente valiosa para razonar sobre lo computable.
3.1. Definición formal y componentes
Una máquina de Turing se define como una séptupla que comprende: un conjunto finito de estados, un alfabeto de cinta (los símbolos que pueden escribirse), un estado inicial, un símbolo blanco, un conjunto de estados finales o de aceptación, y una función de transición que constituye el «programa» de la máquina. Físicamente, el modelo se describe con tres elementos intuitivos:
- Una cinta infinita dividida en celdas, cada una de las cuales contiene un símbolo del alfabeto. La cinta hace las veces de memoria y de dispositivo de entrada y salida simultáneamente.
- Un cabezal de lectura/escritura que se posiciona sobre una celda, puede leer su símbolo, escribir uno nuevo y desplazarse una posición a la izquierda o a la derecha.
- Una unidad de control que, en función del estado actual y del símbolo leído, decide qué símbolo escribir, en qué dirección moverse y a qué estado transitar. Es el embrión de la futura Unidad de Control de la CPU.
El funcionamiento procede por pasos discretos. En cada paso, la función de transición consulta el par (estado, símbolo leído) y determina la terna (símbolo a escribir, dirección de movimiento, nuevo estado). El cómputo termina cuando se alcanza un estado final o cuando no hay transición definida.
3.2. La máquina universal de Turing
La aportación más profunda de Turing fue demostrar la existencia de una Máquina Universal de Turing: una única máquina capaz de simular el comportamiento de cualquier otra máquina de Turing, sin más que recibir en su cinta la descripción codificada de la máquina a simular junto con su entrada. Esta idea —una máquina que lee la descripción de otra máquina y la ejecuta— es exactamente el germen conceptual del programa almacenado y, por tanto, del ordenador moderno. El procesador físico es, en esencia, una realización de la máquina universal: lee instrucciones codificadas en memoria y las ejecuta sea cual sea el programa.
3.3. Implicaciones: lo computable y lo incomputable
La máquina de Turing no solo define qué se puede calcular, sino que delimita qué no se puede. Turing demostró que el problema de la parada (decidir, dado un programa y una entrada, si la ejecución terminará o se ejecutará indefinidamente) es indecidible: no existe ningún algoritmo general que lo resuelva. Este resultado tiene consecuencias prácticas en la verificación de software, en los compiladores y en la imposibilidad teórica de ciertos analizadores automáticos perfectos. Conviene transmitir al alumnado que la informática nace con la conciencia de sus propios límites, lo que la dignifica como disciplina científica y no meramente técnica.
4. EL MODELO DE VON NEUMANN FRENTE A LA ARQUITECTURA HARVARD
Si la máquina de Turing define qué es computable, la arquitectura de von Neumann define cómo organizar físicamente un ordenador de propósito general. Descrita en 1945 en el célebre «First Draft of a Report on the EDVAC», atribuido a John von Neumann pero fruto del trabajo colectivo del equipo del ENIAC (Eckert, Mauchly y otros), esta arquitectura sigue siendo, ochenta años después, el patrón conceptual de la inmensa mayoría de los ordenadores.
4.1. Principios del modelo de von Neumann
El modelo se asienta sobre cuatro principios:
- Concepto de programa almacenado: las instrucciones del programa se guardan en la memoria principal, igual que los datos. No hay distinción física entre uno y otros; ambos son palabras binarias indistinguibles fuera de su contexto de uso.
- Memoria única y direccionable: un espacio de memoria lineal donde cada celda posee una dirección, accesible para lectura y escritura.
- Ejecución secuencial: las instrucciones se ejecutan una tras otra en el orden en que residen en memoria, salvo que una instrucción de salto altere el flujo. Un registro especial, el contador de programa, mantiene la dirección de la siguiente instrucción.
- Estructura en cuatro subsistemas: unidad de control, unidad aritmético-lógica, memoria y unidades de entrada/salida, interconectados.
El modelo introduce una simplificación de enorme valor: al tratar instrucciones y datos por igual, un programa puede generar o modificar otro programa, lo que habilita compiladores, ensambladores, sistemas operativos y la carga dinámica de código. Es la traducción ingenieril directa de la máquina universal de Turing.
4.2. El cuello de botella de von Neumann
La memoria única conlleva una limitación estructural conocida como cuello de botella de von Neumann (von Neumann bottleneck), término acuñado por John Backus en su conferencia Turing de 1977. Como instrucciones y datos comparten un mismo bus para viajar entre memoria y procesador, no pueden transferirse simultáneamente: la CPU debe alternar entre buscar la instrucción y buscar los datos que esta manipula. A medida que los procesadores se aceleraron mucho más que las memorias, este cuello de botella se convirtió en el principal limitador del rendimiento. Buena parte de la evolución arquitectónica posterior —memorias caché, segmentación, predicción de saltos, ejecución fuera de orden— puede leerse como una batalla constante por mitigar esta restricción.
4.3. La arquitectura Harvard
La arquitectura Harvard, cuyo nombre proviene del computador electromecánico Harvard Mark I, separa físicamente la memoria de instrucciones de la memoria de datos, dotando a cada una de su propio bus. Esto permite buscar una instrucción y acceder a un dato en el mismo ciclo, duplicando el ancho de banda efectivo con la memoria y eliminando, en gran medida, el cuello de botella.
La contrapartida es la pérdida de flexibilidad: al no compartir el espacio de direcciones, resulta más complejo que un programa se trate a sí mismo como dato, y se duplican las líneas de memoria. Por ello, la arquitectura Harvard pura predomina en microcontroladores y procesadores de señal digital (DSP) —donde el programa suele residir en memoria de solo lectura y la separación es natural—, mientras que la von Neumann domina en los ordenadores de propósito general.
La síntesis dominante hoy es la arquitectura Harvard modificada: los procesadores de propósito general presentan al programador un espacio de direcciones único (von Neumann), pero internamente, en el nivel de la caché de primer nivel, separan caché de instrucciones (caché-I) y caché de datos (caché-D). Así obtienen el doble ancho de banda de Harvard en la zona crítica próxima al núcleo, conservando la flexibilidad del modelo de programa almacenado. Esta hibridación es la norma en las microarquitecturas actuales, tanto de la familia x86-64 como de las basadas en ARM y RISC-V.
| Característica | von Neumann | Harvard pura |
|---|---|---|
| Memoria de instrucciones y datos | Compartida | Separada |
| Buses | Uno compartido | Dos independientes |
| Acceso simultáneo instr./dato | No | Sí |
| Programa como dato modificable | Sencillo | Difícil |
| Ámbito típico | Propósito general | Microcontroladores, DSP |
5. LA UNIDAD CENTRAL DE PROCESO (CPU): ESTRUCTURA Y FUNCIONAMIENTO
La Unidad Central de Proceso o procesador es el elemento funcional que interpreta y ejecuta las instrucciones del programa; constituye el «cerebro» del ordenador. En la implementación física actual se integra en un único chip, el microprocesador, que puede contener varios núcleos (cores) capaces de ejecutar flujos de instrucciones de forma independiente. La CPU se organiza internamente en tres bloques funcionales: la unidad de control, la unidad aritmético-lógica y el banco de registros.
5.1. La Unidad de Control (UC)
La Unidad de Control dirige y coordina el funcionamiento de todo el ordenador. Su misión es interpretar cada instrucción y generar la secuencia temporizada de señales de control que activan los demás componentes: ordena a la ALU qué operación realizar, a los registros cuándo cargar o volcar su contenido, a la memoria cuándo leer o escribir, y a los buses cómo encaminar la información. Funciona sincronizada por la señal de reloj, un tren de pulsos que marca el ritmo de las operaciones; su frecuencia, medida en gigahercios, determina cuántos ciclos por segundo ejecuta el procesador.
Existen dos grandes filosofías de implementación de la UC:
- Control cableado (hardwired): la lógica de control se construye con circuitos combinacionales y secuenciales fijos. Es rápido y eficiente, pero rígido y difícil de modificar. Predomina en arquitecturas RISC, con conjuntos de instrucciones reducidos y regulares.
- Control microprogramado: cada instrucción de máquina se descompone en una secuencia de microinstrucciones almacenadas en una memoria de control interna. Es flexible y facilita instrucciones complejas, a costa de cierta lentitud añadida. Característico de arquitecturas CISC, como la x86 clásica, que internamente traduce sus instrucciones complejas a microoperaciones de tipo RISC.
5.2. La Unidad Aritmético-Lógica (ALU)
La Unidad Aritmético-Lógica es el circuito combinacional encargado de realizar las operaciones de cálculo: aritméticas (suma, resta, y en procesadores más complejos multiplicación y división) y lógicas (AND, OR, NOT, XOR), además de desplazamientos y comparaciones. Recibe uno o dos operandos, una señal que selecciona la operación, y produce un resultado junto con una serie de indicadores de estado o flags que se almacenan en el registro de estado: bit de cero, de acarreo (carry), de signo, de desbordamiento (overflow) y de paridad, entre otros. Estos indicadores son esenciales para las instrucciones de salto condicional, pues permiten al programa tomar decisiones según el resultado de operaciones previas.
Las operaciones en coma flotante, según el estándar IEEE 754, suelen delegarse en una unidad especializada, la FPU (Floating Point Unit), y las operaciones sobre vectores en unidades SIMD (Single Instruction, Multiple Data), como las extensiones SSE y AVX en x86 o NEON en ARM. Conceptualmente, todas son ampliaciones de la función básica de la ALU.
5.3. Los registros
Los registros son celdas de memoria de altísima velocidad, internas a la CPU, que almacenan temporalmente datos, direcciones e instrucciones en curso. Su acceso es prácticamente instantáneo, sin la latencia de la memoria principal. Se distinguen:
- Registros visibles al programador o de propósito general, que albergan operandos y resultados intermedios.
- Registros especializados, entre los que destacan:
- Contador de Programa (PC) o registro de instrucción siguiente: contiene la dirección de la próxima instrucción a ejecutar.
- Registro de Instrucción (IR): almacena la instrucción que está siendo decodificada y ejecutada.
- Registro de Dirección de Memoria (MAR): contiene la dirección a la que se va a acceder en memoria.
- Registro de Datos de Memoria (MDR o MBR): actúa como búfer del dato que se lee o escribe en memoria.
- Acumulador: en arquitecturas clásicas, registro donde la ALU deposita resultados.
- Registro de Estado o de banderas: alberga los flags generados por la ALU.
- Puntero de Pila (SP): apunta a la cima de la pila del sistema, fundamental para la gestión de subrutinas e interrupciones.
El conjunto de instrucciones que la CPU puede ejecutar, junto con sus formatos, modos de direccionamiento y registros visibles, constituye la Arquitectura del Conjunto de Instrucciones (ISA), la frontera precisa entre el hardware y el software. Ejemplos vigentes de ISA son x86-64, ARM (AArch64) y la arquitectura abierta RISC-V, que ha ganado relevancia notable por su carácter libre y modular.
6. EL CICLO DE INSTRUCCION: BUSQUEDA, DECODIFICACION Y EJECUCION
El funcionamiento de la CPU se reduce, en su nivel más esencial, a la repetición incesante de un ciclo de instrucción (también llamado ciclo de máquina o ciclo fetch-decode-execute). Este ciclo es la realización física del comportamiento paso a paso de la máquina de Turing y constituye el latido del ordenador.
6.1. Fases del ciclo
El ciclo se descompone en tres fases fundamentales, que pueden detallarse así:
- Búsqueda (fetch): la Unidad de Control toma la dirección contenida en el Contador de Programa, la coloca en el Registro de Dirección de Memoria y emite una señal de lectura. La memoria devuelve la instrucción, que se aloja en el Registro de Datos de Memoria y, desde ahí, en el Registro de Instrucción. Acto seguido, el Contador de Programa se incrementa para apuntar a la siguiente instrucción.
- Decodificación (decode): la Unidad de Control interpreta el código de operación de la instrucción alojada en el Registro de Instrucción, determina qué acción debe realizarse y localiza los operandos según el modo de direccionamiento indicado (inmediato, directo, indirecto, por registro, indexado, relativo, etc.). Si los operandos están en memoria, se efectúan los accesos necesarios.
- Ejecución (execute): se lleva a cabo la operación. Si es aritmético-lógica, la ALU la realiza y deposita el resultado en el registro destino, actualizando los indicadores de estado. Si es una transferencia, se mueven datos entre registros o memoria. Si es un salto, se modifica el Contador de Programa para alterar el flujo secuencial.
Algunos autores añaden una cuarta fase de escritura del resultado (write-back) y una fase de comprobación de interrupciones, en la que la CPU verifica si algún dispositivo solicita atención antes de iniciar el siguiente ciclo. Concluido el ciclo, comienza de nuevo con la instrucción que ahora señala el Contador de Programa, indefinidamente, hasta que una instrucción de parada o el sistema operativo detengan el proceso.
6.2. Interrupciones
El mecanismo de interrupción permite que un suceso externo o interno (la finalización de una operación de E/S, un error aritmético, una señal de reloj) interrumpa la ejecución normal. La CPU guarda su estado —el Contador de Programa y los registros pertinentes en la pila—, atiende la rutina de servicio de interrupción y, al terminar, restaura el estado y reanuda el programa interrumpido. Las interrupciones son el fundamento de la multitarea, de la respuesta a eventos y de la comunicación eficiente con los periféricos, pues evitan la espera activa (consultar repetidamente si un dispositivo está listo) en favor de una atención bajo demanda.
6.3. Segmentación y paralelismo
Ejecutar las fases de manera estrictamente secuencial desaprovecha el hardware, pues mientras se decodifica una instrucción la unidad de búsqueda está ociosa. La segmentación (pipelining) solapa la ejecución de varias instrucciones, de modo que mientras una se ejecuta, la siguiente se decodifica y la tercera se busca, a la manera de una cadena de montaje. Idealmente, un cauce de cinco etapas finaliza una instrucción por ciclo. En la práctica, los riesgos (de datos, de control y estructurales) obligan a introducir técnicas como el adelantamiento de operandos (forwarding), la predicción de saltos y la ejecución especulativa.
Los procesadores actuales van más allá con el paralelismo a nivel de instrucción: las arquitecturas superescalares disponen de varias unidades de ejecución y lanzan varias instrucciones por ciclo; la ejecución fuera de orden (out-of-order) reordena las instrucciones para no detenerse ante dependencias; y el multihilo simultáneo (SMT, comercializado por Intel como Hyper-Threading) aprovecha los huecos de un núcleo para ejecutar varios hilos. Por encima, los procesadores multinúcleo ofrecen paralelismo a nivel de hilo y de proceso. Conviene subrayar que todas estas técnicas son refinamientos sobre el mismo ciclo de instrucción básico; preservan la semántica del modelo de von Neumann (el programador percibe una ejecución secuencial y correcta) aunque internamente el orden físico de ejecución sea muy distinto.
7. EL SUBSISTEMA DE MEMORIA Y SU JERARQUIA
La memoria es el subsistema que almacena instrucciones y datos. Idealmente desearíamos una memoria a la vez muy rápida, de gran capacidad y de bajo coste, pero estas tres propiedades resultan tecnológicamente incompatibles: la memoria rápida es cara y pequeña, y la memoria barata y grande es lenta. La solución a este dilema es la jerarquía de memoria, una organización en niveles que combina distintas tecnologías para aproximarse al ideal a un coste razonable.
7.1. El principio de localidad
La jerarquía funciona porque los programas reales exhiben el principio de localidad de referencia, que tiene dos vertientes: la localidad temporal (si se accede a un dato, es probable que se vuelva a acceder pronto) y la localidad espacial (si se accede a una posición, es probable que se acceda a posiciones cercanas, como ocurre al recorrer un vector o ejecutar instrucciones consecutivas). Gracias a la localidad, mantener cerca de la CPU una copia pequeña de los datos más usados resulta sorprendentemente eficaz.
7.2. Los niveles de la jerarquía
De más rápido y pequeño a más lento y grande, los niveles típicos son:
- Registros de la CPU: el nivel superior, de capacidad mínima y acceso en un ciclo.
- Memoria caché, normalmente en tres niveles. La caché L1 (subdividida en instrucciones y datos, vestigio de la arquitectura Harvard) es la más rápida y pequeña, integrada por núcleo; la L2 es mayor y algo más lenta; y la L3 suele ser compartida por todos los núcleos. La caché se fabrica con memoria estática (SRAM), basada en biestables, rápida pero costosa y voluminosa.
- Memoria principal o RAM, de tecnología dinámica (DRAM), que almacena la información en condensadores y requiere refresco periódico. Los módulos actuales siguen estándares de la familia DDR (los más recientes, DDR5), definidos por el comité JEDEC. Es volátil: pierde su contenido al cortar la alimentación.
- Almacenamiento secundario: discos de estado sólido (SSD, basados en memoria flash NAND, conectados por interfaces como SATA o, sobre todo, NVMe sobre PCI Express) y discos duros magnéticos (HDD). Es no volátil, de gran capacidad y mucho más lento que la RAM.
- Almacenamiento terciario o de respaldo: cintas y almacenamiento en la nube, de máxima capacidad y mínimo coste por bit, reservado a copias y archivo.
Cuando la CPU solicita un dato, se busca primero en el nivel más cercano. Si está presente, se produce un acierto (hit); si no, un fallo (miss) que obliga a traerlo del nivel inferior, moviendo además el bloque que lo contiene para explotar la localidad espacial. La eficacia de la jerarquía se mide por la tasa de aciertos y por el tiempo medio de acceso.
7.3. Memoria virtual y tipos de memoria
El sistema operativo, con apoyo de la Unidad de Gestión de Memoria (MMU) del procesador, implementa la memoria virtual: cada proceso percibe un espacio de direcciones lineal y privado mayor que la memoria física, que se traduce a direcciones reales mediante tablas de páginas. La memoria virtual aporta aislamiento entre procesos, protección y la capacidad de ejecutar programas mayores que la RAM disponible, paginando hacia el disco las páginas menos usadas.
Atendiendo a su comportamiento, distinguimos la memoria de acceso aleatorio (RAM), de lectura y escritura y volátil, de la memoria de solo lectura (ROM) y sus variantes (PROM, EPROM, EEPROM y, en la práctica actual, memoria flash), no volátiles, donde reside el firmware de arranque —el BIOS/UEFI en los ordenadores personales—. La distinción ROM/RAM es esencial para comprender el proceso de arranque: el procesador, al encenderse, busca instrucciones en una dirección fija de memoria no volátil que inicia la carga del sistema operativo.
8. EL SUBSISTEMA DE ENTRADA/SALIDA (E/S)
El subsistema de entrada/salida es el que comunica el ordenador con el mundo exterior y con los dispositivos de almacenamiento. Sin él, la máquina sería un sistema cerrado e inútil. Comprende los periféricos (teclado, ratón, pantalla, impresora, sensores, redes, discos) y, sobre todo, los controladores o interfaces que median entre los periféricos y el resto del sistema.
8.1. El problema de la heterogeneidad
Los periféricos son extraordinariamente diversos en velocidad, naturaleza y formato de los datos: un teclado entrega unos pocos bytes por segundo de forma esporádica, mientras un SSD NVMe transfiere gigabytes por segundo. Esta heterogeneidad se resuelve mediante controladores de E/S, módulos que adaptan las señales y los protocolos del dispositivo a los del bus del sistema, ofrecen registros de datos, de control y de estado, y desacoplan la velocidad del periférico de la de la CPU. El sistema operativo, a su vez, abstrae los controladores mediante controladores de dispositivo (drivers), de modo que las aplicaciones acceden a los periféricos a través de una interfaz uniforme.
8.2. Técnicas de gestión de la E/S
Existen tres técnicas fundamentales para gobernar las transferencias de E/S, de menor a mayor sofisticación:
- E/S programada con sondeo (polling): la CPU consulta repetidamente el registro de estado del controlador hasta que el dispositivo está listo. Es simple pero ineficiente, pues malgasta ciclos en espera activa.
- E/S por interrupciones: el dispositivo avisa a la CPU mediante una interrupción cuando está listo, liberando al procesador para otras tareas mientras tanto. Mejora notablemente el aprovechamiento del procesador.
- Acceso Directo a Memoria (DMA): un controlador especializado, el controlador de DMA, transfiere bloques de datos directamente entre el periférico y la memoria principal sin intervención de la CPU en cada palabra. La CPU solo configura la transferencia y recibe una interrupción al concluir. El DMA es imprescindible para dispositivos de alta velocidad como los discos o las tarjetas de red, pues evita que la CPU sea el cuello de botella de la transferencia.
8.3. Mapeado de la E/S
Para que la CPU dialogue con los controladores existen dos esquemas. En la E/S mapeada en memoria, los registros de los controladores ocupan posiciones del mismo espacio de direcciones que la memoria, de modo que se accede a ellos con las instrucciones ordinarias de carga y almacenamiento; es el esquema de las arquitecturas ARM y RISC-V. En la E/S por puertos aislados, los dispositivos disponen de un espacio de direcciones propio y se accede a ellos con instrucciones específicas; es el caso histórico de la arquitectura x86. Las interfaces físicas modernas más relevantes incluyen USB para periféricos de uso general, PCI Express como bus interno de expansión de alta velocidad, SATA y NVMe para almacenamiento, y HDMI o DisplayPort para vídeo.
9. EL SISTEMA DE INTERCONEXION: BUSES DE DATOS, DIRECCIONES Y CONTROL
Los subsistemas descritos no operan aislados, sino que intercambian información a través del sistema de interconexión, tradicionalmente concebido como un conjunto de buses. Un bus es un conjunto de líneas conductoras compartidas que transportan información entre componentes según un protocolo común. La metáfora clásica del bus del sistema distingue tres buses según la naturaleza de lo que transportan.
9.1. Los tres buses funcionales
- Bus de datos: transporta la información propiamente dicha —instrucciones y datos— entre la CPU, la memoria y la E/S. Es bidireccional. Su anchura (número de líneas, equivalente al tamaño de palabra: 8, 16, 32 o 64 bits) determina cuántos bits se transfieren simultáneamente y condiciona directamente el rendimiento.
- Bus de direcciones: transporta la dirección de la posición de memoria o del puerto de E/S a la que se desea acceder. Es unidireccional (de la CPU hacia memoria y E/S). Su anchura determina el espacio de direccionamiento máximo: con n líneas se pueden direccionar 2 elevado a n posiciones. Así, un bus de direcciones de 32 bits direcciona 4 gibibytes, mientras que uno de 48 o 64 bits sustenta los enormes espacios virtuales actuales.
- Bus de control: transporta las señales de gobierno que coordinan las transferencias: señales de lectura y escritura, de reloj, de petición y reconocimiento de bus, de interrupción, de petición de DMA, etc. Determina el sentido y el momento de cada operación.
9.2. Parámetros y temporización
El rendimiento de un bus depende de su anchura y de su frecuencia de funcionamiento; el producto de ambas da el ancho de banda (bytes por segundo transferibles). El acceso al bus exige un protocolo de temporización, que puede ser síncrono (gobernado por un reloj común) o asíncrono (basado en señales de petición y reconocimiento, handshaking). Cuando varios maestros (CPU, controladores de DMA) pueden iniciar transferencias, se necesita un árbitro de bus que conceda el acceso y evite conflictos, mediante esquemas de prioridad o de turno rotatorio.
9.3. De los buses compartidos a las interconexiones punto a punto
El modelo de bus compartido único, válido para razonar conceptualmente, ha quedado superado en la práctica por sus limitaciones: un medio compartido degrada su rendimiento al crecer el número de dispositivos y la frecuencia, por problemas de capacitancia y de contención. Las arquitecturas actuales han evolucionado hacia enlaces serie punto a punto de alta velocidad y hacia topologías conmutadas. PCI Express, por ejemplo, no es un bus compartido sino un conjunto de enlaces serie diferenciales (lanes) conmutados; las interconexiones entre núcleos y memoria emplean redes en anillo o malla en el interior del propio chip. Conceptualmente, no obstante, sigue siendo válido distinguir las tres funciones —transportar datos, direcciones y control—, aunque físicamente viajen multiplexadas sobre los mismos enlaces serie. El esquema funcional clásico del bus tripartito conserva, por ello, todo su valor pedagógico.
10. GENERACIONES Y EVOLUCION DE LOS ORDENADORES DIGITALES
La historia del ordenador digital se ha organizado tradicionalmente en generaciones, definidas por la tecnología dominante de sus componentes activos. Esta periodización, aunque simplificadora, resulta útil para comprender la evolución de los elementos funcionales.
- Generación cero (electromecánica, hasta los años cuarenta): máquinas basadas en relés, como el Harvard Mark I o el Z3 de Konrad Zuse (1941), considerado el primer ordenador programable controlado por programa. En este periodo se gestan las ideas, pero las máquinas son lentas y de propósito limitado.
- Primera generación (válvulas de vacío, 1945-1955): el ENIAC (1946), de propósito general pero programado por recableado, y el EDVAC y el EDSAC (1949), ya con programa almacenado, materializan el modelo de von Neumann. Son máquinas voluminosas, costosas y poco fiables, programadas en lenguaje máquina.
- Segunda generación (transistor, 1955-1965): la invención del transistor en 1947 (Bardeen, Brattain y Shockley) sustituye a la válvula, reduciendo tamaño, consumo y fallos. Aparecen los primeros lenguajes de alto nivel (FORTRAN, COBOL, LISP) y los sistemas operativos por lotes.
- Tercera generación (circuito integrado, 1965-1971): la integración de múltiples transistores en un mismo chip (Jack Kilby y Robert Noyce) reduce drásticamente el coste y el tamaño. Surgen las familias de computadores compatibles, como el IBM System/360, y la multiprogramación.
- Cuarta generación (microprocesador, desde 1971): la integración a gran escala permite alojar toda la CPU en un solo chip. El Intel 4004 (1971) inaugura la era del microprocesador, que conduce al ordenador personal y a la informática ubicua. Es la generación en la que seguimos, ampliada por los procesadores multinúcleo, la computación móvil y los sistemas en chip (SoC).
- Más allá de la cuarta generación: suele hablarse de una quinta generación asociada históricamente a la inteligencia artificial y al procesamiento paralelo masivo. Hoy las fronteras de la evolución se sitúan en los aceleradores especializados (GPU para cómputo masivamente paralelo, TPU y NPU para inteligencia artificial), la computación heterogénea, los sistemas en chip que integran CPU, GPU y aceleradores, y, en el horizonte de la investigación, la computación cuántica y la neuromórfica, paradigmas que se apartan del modelo de von Neumann y abren cuestiones teóricas sobre los límites de lo computable de forma eficiente.
El motor de toda esta evolución ha sido la ley de Moore, la observación de Gordon Moore (1965) de que el número de transistores por chip se duplicaba aproximadamente cada dos años. Durante medio siglo esta progresión sostuvo el aumento del rendimiento, pero en la actualidad se enfrenta a límites físicos —disipación térmica, efectos cuánticos a escala nanométrica, el fin del escalado de frecuencia conocido como «muro de la potencia»—. Por ello, la mejora del rendimiento se busca hoy menos en la frecuencia y más en el paralelismo, la eficiencia energética y la especialización del hardware, lo que confirma que los elementos funcionales clásicos se reorganizan continuamente para sortear las restricciones físicas sin abandonar, salvo en paradigmas experimentales, el modelo conceptual heredado de von Neumann y Turing.
11. APLICACION DIDACTICA Y RELACION CON EL CURRICULO
Los contenidos de este tema constituyen el núcleo conceptual de varios módulos de la Formación Profesional de la familia Informática y Comunicaciones, regulada por la LOFP 3/2022 y su desarrollo en el RD 659/2023, que ordena el nuevo sistema de FP. En el CFGM de Sistemas Microinformáticos y Redes se imparten en módulos como «Montaje y Mantenimiento de Equipos», donde el alumnado identifica físicamente la CPU, la memoria, los buses y los dispositivos de E/S, y comprende la jerarquía de memoria al seleccionar componentes. En los ciclos superiores —Desarrollo de Aplicaciones Multiplataforma, Desarrollo de Aplicaciones Web y Administración de Sistemas Informáticos en Red— estos fundamentos sustentan módulos como «Sistemas Informáticos» y «Programación», pues comprender el ciclo de instrucción, los registros y la gestión de memoria resulta imprescindible para escribir software eficiente y administrar sistemas.
En la ESO y el Bachillerato, dentro del marco de la LOE 2/2006 modificada por la LOMLOE 3/2020, materias como «Tecnología y Digitalización» y «Digitalización» abordan, con un enfoque competencial y adaptado a la edad, el conocimiento básico del hardware, el funcionamiento del ordenador y la representación digital de la información, contribuyendo a la competencia digital del alumnado.
Desde el punto de vista metodológico, conviene partir del modelo funcional sencillo —los cuatro subsistemas y los tres buses— para construir progresivamente la complejidad, evitando que el alumnado memorice piezas sin entender su cooperación. Resultan muy eficaces los simuladores de CPU y de ciclo de instrucción, que permiten visualizar el flujo fetch-decode-execute; las prácticas de montaje y desmontaje de equipos reales; y los proyectos con placas como microcontroladores didácticos, que materializan la arquitectura Harvard. La evaluación debe ser formativa y combinar pruebas conceptuales con la resolución de supuestos prácticos y la elaboración de informes técnicos, de acuerdo con los resultados de aprendizaje y criterios de evaluación que fijan los reales decretos de cada título. Este enfoque, que vincula el rigor científico con la práctica profesional, es coherente con el perfil de la familia profesional y con las demandas del sector productivo.
12. CONCLUSION
A lo largo del tema hemos recorrido los elementos funcionales del ordenador digital partiendo de su fundamento teórico y descendiendo hasta su realización física. La máquina de Turing nos ha proporcionado el marco que define qué es computable y ha revelado que el ordenador moderno es, en esencia, una realización de la máquina universal: una máquina que lee la descripción de otra y la ejecuta. La arquitectura de von Neumann, con su principio de programa almacenado, ha traducido esa idea en una organización concreta —CPU, memoria, E/S y buses— cuya vigencia se mantiene ochenta años después, mientras la arquitectura Harvard y sus variantes modificadas demuestran cómo el ingenio sortea las limitaciones del modelo original sin renunciar a su flexibilidad.
Hemos analizado la CPU y sus tres bloques —unidad de control, ALU y registros—, el ciclo de instrucción como latido del sistema y sus refinamientos mediante segmentación y paralelismo, la jerarquía de memoria sustentada en el principio de localidad, el subsistema de E/S con sus técnicas de polling, interrupciones y DMA, y el sistema de buses que articula el conjunto. La perspectiva histórica de las generaciones ha mostrado que, aunque la tecnología cambie de las válvulas a los nanómetros, los elementos funcionales y su lógica de cooperación permanecen como invariantes conceptuales.
La idea de fondo que conviene retener, y transmitir al alumnado, es que el ordenador no es una suma de piezas, sino un sistema cuyo comportamiento emerge de la interacción coordinada de unidades simples gobernadas por un programa. Comprender esta arquitectura no solo es requisito para administrar, programar o reparar equipos, sino que constituye la base intelectual de toda la disciplina informática y el punto de partida natural para abordar los temas posteriores del temario.
13. BIBLIOGRAFIA Y REFERENCIAS
(a) Referencias técnicas (manuales y estándares de referencia)
- Stallings, W. (2021). Organización y arquitectura de computadores (11.ª ed.). Pearson.
- Hennessy, J. L. y Patterson, D. A. (2019). Computer Architecture: A Quantitative Approach (6.ª ed.). Morgan Kaufmann.
- Patterson, D. A. y Hennessy, J. L. (2021). Computer Organization and Design: The Hardware/Software Interface (RISC-V Edition, 2.ª ed.). Morgan Kaufmann.
- Tanenbaum, A. S. y Austin, T. (2013). Organización de computadoras: estructura de los sistemas digitales (6.ª ed.). Pearson.
- Hyde, R. (2010). The Art of Assembly Language (2.ª ed.). No Starch Press.
- Turing, A. M. (1936). «On Computable Numbers, with an Application to the Entscheidungsproblem». Proceedings of the London Mathematical Society.
- von Neumann, J. (1945). First Draft of a Report on the EDVAC. Moore School of Electrical Engineering, University of Pennsylvania.
- Sipser, M. (2012). Introduction to the Theory of Computation (3.ª ed.). Cengage Learning.
- IEEE Standard for Floating-Point Arithmetic, IEEE 754-2019.
- JEDEC Solid State Technology Association. DDR5 SDRAM Standard (JESD79-5).
- PCI-SIG. PCI Express Base Specification (vigente).
- Webgrafía: documentación técnica de arquitecturas en developer.arm.com, riscv.org y www.intel.com (consultadas en 2026).
(b) Referencias normativas
- Ley Orgánica 2/2006, de 3 de mayo, de Educación (LOE), modificada por la Ley Orgánica 3/2020, de 29 de diciembre (LOMLOE).
- Ley Orgánica 3/2022, de 31 de marzo, de ordenación e integración de la Formación Profesional (LOFP).
- Real Decreto 659/2023, de 18 de julio, por el que se desarrolla la ordenación del Sistema de Formación Profesional.
- Real Decreto 1691/2007, por el que se establece el título de Técnico en Sistemas Microinformáticos y Redes.
- Reales Decretos de los títulos de Técnico Superior en Desarrollo de Aplicaciones Multiplataforma, Desarrollo de Aplicaciones Web y Administración de Sistemas Informáticos en Red.
- Orden de 1 de febrero de 1996 (BOE) por la que se aprueban los temarios de las especialidades del Cuerpo de Profesores de Enseñanza Secundaria, especialidad Informática.
- Normativa autonómica de la Comunitat Valenciana de desarrollo curricular de los ciclos formativos de la familia Informática y Comunicaciones.
ORIENTACIONES PARA EL ESTUDIO
- Domina primero el esquema de los cuatro subsistemas y los tres buses; es el andamiaje sobre el que cuelga todo lo demás y permite reconstruir el tema aunque se olvide algún detalle.
- Memoriza el ciclo de instrucción con sus registros (PC, IR, MAR, MDR) y sé capaz de narrarlo paso a paso: es la pregunta estrella y demuestra comprensión profunda ante el tribunal.
- Practica la comparación von Neumann frente a Harvard con un ejemplo concreto (un PC frente a un microcontrolador); las comparaciones bien argumentadas elevan la nota.
- Conecta cada concepto técnico con su utilidad práctica y didáctica; el tribunal valora que un futuro docente sepa para qué sirve lo que explica y cómo lo enseñaría.
- Dibuja siempre un esquema de la arquitectura al desarrollar el tema por escrito: ordena tu exposición, ahorra palabras y transmite claridad.
- Actualiza los ejemplos a 2026 (DDR5, NVMe, RISC-V, multinúcleo, GPU/NPU) para evidenciar rigor técnico vigente sin perder los fundamentos atemporales.