Ir al contenido principal

Arquitecturas

¿Qué es la arquitectura de una computadora?

Se llama arquitectura al conjunto de decisiones de diseño que definen cómo está organizada una computadora por dentro: dónde se guardan los datos, cómo se comunican las partes entre sí y qué tipo de instrucciones entiende el procesador.

Es un concepto importantísimo, porque de estas decisiones dependen cosas muy concretas:

  • Qué programas puede ejecutar un equipo y cuáles no.
  • Cuánta memoria puede manejar.
  • Qué tan rápido puede trabajar.
  • Cuánto consume y cuánto calienta.

Cuando se dice que un procesador es "de 64 bits" o que es "ARM", se está hablando de arquitectura. Y también cuando se dice que un programa "no es compatible" con un equipo: casi siempre el motivo es que fue compilado para otra arquitectura.

El modelo de von Neumann

En 1945 el matemático John von Neumann describió la organización que tendrían las computadoras modernas. Su idea central fue revolucionaria para la época: guardar el programa en la misma memoria que los datos.

Antes de eso, para cambiar lo que hacía una máquina había que recablearla. Con el modelo de von Neumann, cambiar el programa es tan simple como cambiar los datos de la memoria.

La organización consta de tres bloques unidos por un único bus compartido: el procesador, la memoria y los dispositivos de entrada y salida.

Modelo de von Neumann: el procesador, la memoria y los dispositivos de entrada y salida comparten un único bus Procesador Memoria Entrada / Salida Bus único
En el modelo de von Neumann, instrucciones y datos circulan por el mismo bus.

El modelo de Harvard

El modelo de Harvard propone separar físicamente las instrucciones de los datos: dos memorias distintas y dos buses independientes. Así el procesador puede buscar la próxima instrucción y leer un dato a la vez, sin esperar.

Modelo de Harvard: el procesador tiene caminos separados hacia la memoria de programa y hacia la memoria de datos Procesador Memoria de programa Memoria de datos
En el modelo de Harvard, cada memoria tiene su propio bus: no compiten entre sí.

Este modelo se usa sobre todo en microcontroladores y en procesadores de señal, donde la velocidad constante importa más que la flexibilidad. Es el caso del microcontrolador que está en un Arduino, que guarda el programa en una memoria flash aparte y en el que las variables viven en la RAM.

Von Neumann y Harvard comparados

Aspecto Von Neumann Harvard
Memorias Una sola, compartida Dos separadas: programa y datos
Buses Uno solo Dos independientes
Velocidad Limitada por el bus compartido Puede leer instrucción y dato a la vez
Flexibilidad Alta: el programa se puede tratar como dato Menor: el programa está en un espacio aparte
Complejidad del circuito Menor Mayor, por los buses duplicados
Dónde se usa Computadoras personales y servidores Microcontroladores y procesadores de señal

Un detalle importante: las computadoras actuales usan el modelo de von Neumann, pero atenuado con memorias caché separadas para instrucciones y datos. En la práctica funcionan como un híbrido que busca lo mejor de los dos.

CISC y RISC: dos formas de diseñar instrucciones

Todo procesador entiende un conjunto de instrucciones: las órdenes básicas que sabe ejecutar. Hay dos filosofías opuestas sobre cómo diseñar ese conjunto:

CISC

Complex Instruction Set Computer

Muchas instrucciones complejas y potentes, capaces de hacer varias cosas en un solo paso.

Menos instrucciones en el programa, pero cada una tarda más y el circuito es más complicado. Ejemplo: x86 (Intel y AMD).

RISC

Reduced Instruction Set Computer

Pocas instrucciones, simples y rápidas, todas del mismo tamaño y ejecutadas en un ciclo.

Más instrucciones en el programa, pero el circuito es más simple y eficiente. Ejemplo: ARM.

Aspecto CISC RISC
Cantidad de instruccionesMuchasPocas
Complejidad de cada instrucciónAltaBaja
Tamaño de las instruccionesVariableFijo
Tiempo de ejecuciónVariable, varios ciclosUniforme, generalmente un ciclo
Consumo de energíaMayorMenor, por eso se usa en dispositivos a batería
Ejemplosx86, x86-64ARM, MIPS, RISC-V

La vieja discusión sobre cuál es mejor quedó bastante saldada: los procesadores CISC modernos traducen internamente sus instrucciones complejas a operaciones simples parecidas a las de RISC. Lo que importa hoy es que las dos filosofías siguen vivas, cada una en su terreno.

La jerarquía de memoria

Existe una regla que atraviesa toda la informática: la memoria rápida es cara y chica; la memoria grande es lenta y barata. No hay forma de tener las tres cosas a la vez.

La solución que se adoptó es organizar la memoria en niveles. Los niveles chicos y rápidos están cerca del procesador; los grandes y lentos, más lejos. El objetivo es que el procesador encuentre la mayoría de los datos en los niveles rápidos.

Pirámide de la jerarquía de memoria: registros, memoria caché, memoria RAM y almacenamiento, del más rápido y pequeño al más lento y grande Registros Caché L1 · L2 · L3 Memoria RAM Almacenamiento (SSD · HDD) más rápida más cara más chica más lenta más barata más grande
Cada nivel es más grande y más lento que el anterior, pero muchísimo más económico por unidad de capacidad.
Nivel Ubicación Velocidad Tamaño típico Conserva los datos al apagar
RegistrosDentro del procesadorInstantáneaUnos pocos bytesNo
CachéDentro del procesadorAltísimaDe 2 a 64 MBNo
RAMMódulos en la placa madreAltaDe 8 a 64 GBNo
AlmacenamientoSSD o disco rígidoBajaDe 256 GB a varios TBSí

Los buses del sistema

Un bus es el conjunto de conductores que transporta datos, direcciones y señales de control entre los componentes. Es la "autopista" interna de la computadora, y no todos los tramos son igual de rápidos.

Esquema de los buses del sistema: el procesador, la memoria y la placa de video comparten un bus de alta velocidad, y el chipset conecta con los periféricos por un bus más lento Procesador Memoria Placa de video Chipset Periféricos y almacenamiento Bus de alta velocidad Bus de menor velocidad
Los componentes críticos se conectan al bus más rápido; los periféricos, a uno más lento pero suficiente para ellos.

Del bus principal también hay que saber que transporta tres tipos de información: datos (lo que se está leyendo o escribiendo), direcciones (dónde está aquello que se busca) y señales de control (si se trata de una lectura, una escritura o una interrupción).

32 y 64 bits

Cuando se dice que un procesador es "de 32 bits" o "de 64 bits" se habla del tamaño de la palabra: cuántos bits puede procesar y direccionar de una sola vez. Y eso tiene una consecuencia enorme y muy concreta.

Arquitectura Memoria máxima direccionable Consecuencia práctica
32 bits 4 GB Si se instalan 8 GB, el sistema solo reconoce alrededor de 3,2 GB. Es una barrera física, no una configuración.
64 bits 16 exabytes (en teoría) Sin límite práctico. Permite manejar programas grandes y mucha más memoria.

De ahí sale una recomendación que ya es obligatoria: las computadoras actuales son de 64 bits, y conviene instalar siempre sistemas operativos de 64 bits. Un sistema de 32 bits instalado en un equipo de 64 puede funcionar, pero desperdicia la mitad de la memoria y no puede ejecutar los programas modernos.

x86 y ARM: las dos arquitecturas que hoy dominan

Más allá de CISC y RISC, en la práctica el mercado está dividido entre dos familias:

Aspecto x86 (x86-64) ARM
FilosofíaCISCRISC
FabricantesIntel y AMDLicencia sus diseños a muchos fabricantes
ConsumoAlto rendimiento, más consumoEficiencia energética excelente
Dónde estáComputadoras de escritorio, notebooks y servidoresCelulares, tablets, Raspberry Pi, y desde 2020 también computadoras Apple
CompatibilidadLos programas compilados para x86 no corren en ARM sin traducciónLos programas compilados para ARM no corren en x86

Esta es la razón por la que un mismo programa tiene versiones distintas según el equipo. Cuando se descarga una aplicación, muchas veces el sitio pregunta si es para Windows, para Mac con Apple Silicon o para Linux ARM: son arquitecturas distintas y el programa tiene que estar construido para cada una.

Resumen

Concepto Idea central
von Neumann Programa y datos en la misma memoria, un solo bus. Es la base de las computadoras actuales.
Harvard Memorias y buses separados para programa y datos. Se usa en microcontroladores.
CISC Muchas instrucciones complejas. Ejemplo: x86.
RISC Pocas instrucciones simples y rápidas. Ejemplo: ARM.
Jerarquía de memoria Registros → caché → RAM → almacenamiento, de la más rápida y chica a la más lenta y grande.
Buses Transportan datos, direcciones y señales de control. Los hay rápidos y lentos.
32 y 64 bits 32 bits limita la memoria a 4 GB. Hoy se usa 64 bits.
x86 y ARM Las dos arquitecturas dominantes. Los programas no son compatibles entre ellas.