¿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.
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.
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 instrucciones | Muchas | Pocas |
| Complejidad de cada instrucción | Alta | Baja |
| Tamaño de las instrucciones | Variable | Fijo |
| Tiempo de ejecución | Variable, varios ciclos | Uniforme, generalmente un ciclo |
| Consumo de energía | Mayor | Menor, por eso se usa en dispositivos a batería |
| Ejemplos | x86, x86-64 | ARM, 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.
| Nivel | Ubicación | Velocidad | Tamaño típico | Conserva los datos al apagar |
|---|---|---|---|---|
| Registros | Dentro del procesador | Instantánea | Unos pocos bytes | No |
| Caché | Dentro del procesador | Altísima | De 2 a 64 MB | No |
| RAM | Módulos en la placa madre | Alta | De 8 a 64 GB | No |
| Almacenamiento | SSD o disco rígido | Baja | De 256 GB a varios TB | Sí |
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.
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ía | CISC | RISC |
| Fabricantes | Intel y AMD | Licencia sus diseños a muchos fabricantes |
| Consumo | Alto rendimiento, más consumo | Eficiencia energética excelente |
| Dónde está | Computadoras de escritorio, notebooks y servidores | Celulares, tablets, Raspberry Pi, y desde 2020 también computadoras Apple |
| Compatibilidad | Los programas compilados para x86 no corren en ARM sin traducción | Los 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. |