El funcionamiento óptimo de un software en un contexto dado depende de un entorno optimizado, es decir, una buena arquitectura de hardware. ¿De qué se trata esto exactamente? Seguramente te has preguntado: ¿cómo funciona realmente una computadora? Lo mejor para responder a esta pregunta es abordar el tema de la arquitectura de hardware.
¿Cuáles son los elementos esenciales de una arquitectura de hardware?
- La gestión de la memoria (el lugar donde se almacenan los datos).
- La ejecución de los procesos (la computadora realiza las tareas que se le asignan).
- Las operaciones de entrada/salida (E/S) (la unidad de procesamiento se comunica con elementos externos, como el ratón, el teclado o la pantalla).
La arquitectura de hardware es el arte de organizar el hardware y el software para obtener una computadora rápida y eficiente. Como veremos aquí, este concepto puede abordarse en varios niveles de abstracción y detalle.
Los componentes físicos de la arquitectura de hardware
Cada uno de los elementos mencionados corresponde a componentes físicos específicos.
Memoria
La memoria se presenta en dos formas. La RAM es un lugar donde los datos que deben procesarse se almacenan temporalmente. Los datos destinados a conservarse a largo plazo se colocan en discos.
Procesamiento
El procesamiento de instrucciones se lleva a cabo por un microprocesador. También se habla de CPU (Central Processing Unit – Unidad Central de Procesamiento). El microprocesador principal suele estar apoyado por otros procesadores especializados: cálculo, gráficos, etc. Son los software los que determinan los procesos que el microprocesador va a realizar.
Entradas/salida
Por un lado, tenemos dispositivos de entrada / salida de información como el teclado o el ratón (entrada), la pantalla o una impresora (salida).
También tenemos los buses que transportan los datos de un punto a otro. Por ejemplo, un bus que conecta el microprocesador con la RAM.
Dos modelos principales de arquitectura de hardware
Históricamente, dos modelos han marcado la arquitectura de hardware:
- La arquitectura de Von Neumann, diseñada por el matemático John von Neumann, sirvió como base para el diseño de las primeras computadoras como la EDSAC, una computadora de primera generación puesta en servicio en 1949 en la Universidad de Cambridge (Reino Unido). Su unidad central utilizaba 3,000 tubos de vacío. La entrada de datos era mediante un lector de cintas perforadas.
- La arquitectura Harvard apareció en la misma época. Fue desarrollada en EE. UU. en la Universidad de Harvard para el proyecto Mark I (1944), una de las primeras computadoras electromecánicas. Con un tamaño de 15 metros de largo, 2.5 metros de alto, pesaba cerca de 5 toneladas y estaba compuesta por más de 750,000 piezas. Diseñada por el matemático Howard Aiken en colaboración con IBM, el Mark I se distinguía del modelo Von Neumann porque separaba la memoria de los datos y la memoria de las instrucciones.
Estas dos arquitecturas sentaron las bases de la informática, pero las computadoras actuales utilizan una mezcla de ambas.
Diferentes arquitecturas informáticas
En la práctica, existen varios tipos de arquitecturas de hardware, cada una optimizada para satisfacer necesidades específicas.
- CISC (Complex Instruction Set Computer): tenemos aquí procesadores capaces de ejecutar instrucciones complejas. Es el modelo x86, utilizado por Intel y AMD en la mayoría de las PC.
- RISC (Reduced Instruction Set Computer): estos procesadores tienen un conjunto de instrucciones más reducido, lo que los hace más simples de programar y más rápidos. Es el tipo de arquitectura utilizada en la mayoría de los smartphones y tablets (ARM, Apple M1/M2/M3…)
- Superscalar: un modelo tal permite la ejecución de múltiples instrucciones al mismo tiempo, lo que aumenta el rendimiento. Algunos procesadores Intel como Core i5/i7/i9, AMD Ryzen se basan en esta arquitectura.
- VLIW (Very Long Instruction Word): Varias instrucciones se agrupan en una sola para ganar rapidez. Este modelo se utiliza especialmente en los DSP (Digital Signal Processors) que procesan el audio/visual.
¿Cuántos procesadores?
Otro elemento que puede considerarse en la arquitectura de hardware es el número de procesadores. Los tres grandes modelos son los siguientes.
- Monoprocesador: 1 solo procesador. Esta es la arquitectura que se encontraba en las generaciones antiguas de PC.
- Multiprocesador: Varios procesadores (o núcleos) comparten la misma memoria. Aquí tenemos las PC multinúcleo (Intel Core i7, AMD Ryzen…)
- Multicomputer: Un conjunto de máquinas independientes (cada una con su propio procesador y su propia memoria), coopera en una misma tarea. Este es el modelo utilizado en Cloud computing (AWS, Google Cloud, Microsoft Azure).
Categorías de arquitecturas de hardware
La arquitectura de hardware no se reduce a la forma física de los componentes como el procesador. Puede descomponerse en tres niveles complementarios, cada uno de los cuales desempeña un rol específico.
Diseño del sistema (System Design)
Se refiere a la organización general de los componentes de hardware de una computadora.
Arquitectura del conjunto de instrucciones (ISA – Instruction Set Architecture)
Tenemos aquí la interfaz entre el hardware y el software. ¿Cuál es el lenguaje que el microprocesador comprende, es decir, las instrucciones básicas que puede ejecutar?
Microarquitectura
Tenemos aquí la manera en que un procesador particular interpreta y ejecuta las instrucciones del ISA.
¿Por qué es importante la concepción de hardware?
Una buena arquitectura de hardware aporta:
Un mejor rendimiento.
Una mayor eficiencia energética.
Una posible escalabilidad (posibilidad de añadir componentes).
Una mejor integración de software (el hardware y el sistema operativo/los programas funcionan en perfecta sintonía).