Saltar al contenido

Procesadores y virtualización

Los dos enfoques de diseño de un juego de instrucciones, qué significa que un procesador sea de 64 bits, cómo se clasifican las arquitecturas y qué hace el hardware para poder ejecutar varias máquinas a la vez.

CISC frente a RISC

Un procesador entiende un repertorio de instrucciones, y hay dos filosofías opuestas para diseñarlo. O se le dan pocas instrucciones muy sencillas, o se le dan muchas y muy potentes. Cada elección arrastra consecuencias en la complejidad del chip, en el consumo y en el calor.

RasgoCISCRISC
InstruccionesComplejas: una sola instrucción puede tardar varios ciclos de reloj.Simples: ejecutables en un ciclo de reloj.
Tamaño de la instrucciónVariable.Fijo.
Modos de direccionamientoMuchos.Pocos.
Lógica de controlProgramada.Cableada.
Temperatura y consumoMayores.Menores.
Ejemplo característicoIntel.ARM.

CISC va con lógica programada y RISC con lógica cableada. Esa pareja de términos es la que suele decidir la pregunta.

Para el examen

  • CISC: instrucciones complejas, tamaño variable, lógica programada, más calor

  • RISC: instrucciones simples, tamaño fijo, un ciclo, lógica cableada

  • Ejemplos: Intel es CISC; ARM es RISC

RISC-V, Arduino, SoC y APU

Alrededor del diseño de procesadores hay cuatro términos que se preguntan como definiciones sueltas y que conviene no mezclar, porque dos hablan de apertura y dos de integración de componentes.

TérminoQué es
RISC-VUn estándar abierto de repertorio de instrucciones RISC. Al no ser propiedad de ningún fabricante, cualquiera puede diseñar con él un procesador propio.
ArduinoHardware abierto (open hardware) que permite que cualquiera tenga acceso a la computación.
SoC (System on a Chip)Un sistema en un solo chip: en la misma pastilla conviven la CPU, la GPU, la memoria RAM y demás componentes.
APULa combinación de CPU y GPU en un mismo procesador.

Un SoC integra el sistema completo; una APU se queda en la pareja CPU más GPU.

Para el examen

  • RISC-V: estándar abierto de juego de instrucciones

  • Arduino: hardware abierto

  • SoC: sistema completo en un solo chip

  • APU: CPU más GPU integradas

Segmentación de instrucciones (pipeline)

El paso de búsqueda de la instrucción es lento, porque implica ir a memoria. Si el procesador esperase a terminar una instrucción entera antes de empezar la siguiente, el resto de sus unidades pasaría la mayor parte del tiempo parado.

La segmentación, o pipeline, consiste en solapar las etapas: mientras una instrucción se está ejecutando, la siguiente se está decodificando y una tercera se está buscando en memoria. Es la misma idea que una cadena de montaje, en la que cada puesto trabaja sobre una pieza distinta al mismo tiempo.

texto
Sin segmentacion
  I1: buscar decodificar ejecutar guardar
  I2:                                     buscar decodificar ejecutar guardar

Con segmentacion
  I1: buscar decodificar ejecutar guardar
  I2:        buscar      decodificar ejecutar guardar
  I3:                    buscar      decodificar ejecutar guardar

Es una técnica típica de los sistemas RISC, y no por casualidad: como en RISC todas las instrucciones tienen el mismo tamaño y duran aproximadamente lo mismo, encajan en las etapas de la cadena sin que unas atasquen a otras.

Para el examen

  • Qué es: solapar etapas de instrucciones distintas, como una cadena de montaje

  • Dónde encaja mejor: en RISC, por su tamaño de instrucción fijo

Qué significa que una arquitectura sea de 64 bits

Lo que marca la arquitectura de un procesador es el tamaño o ancho de la palabra, que es la cantidad de información que la máquina maneja como una unidad. La memoria no es más que una sucesión de posiciones numeradas, y cada una de ellas aloja exactamente una palabra.

En una arquitectura de 64 bits, la palabra mide 64 bits, y esa misma cifra es la que tienen los registros de la CPU y el bus de datos. Por eso hablar de un procesador de 64 bits no es hablar solo del procesador: describe una coherencia entre palabra, registros y ancho del camino por el que viajan los datos.

Palabra, registros y bus de datos van a la par. El bus de direcciones es otra cosa y no tiene por qué medir lo mismo.

Para el examen

  • Qué mide los 64 bits: palabra, registros y bus de datos

  • Lo que va aparte: el bus de direcciones

La taxonomía de Flynn

Flynn clasificó las arquitecturas de computadores cruzando dos ejes: cuántos flujos de instrucciones (I) se manejan a la vez y cuántos flujos de datos (D). Combinando «uno» (Single) y «varios» (Multiple) en cada eje salen cuatro categorías.

SiglaInstruccionesDatos
SISDUnaUno
SIMDUnaVarios
MISDVariasUno
MIMDVariasVarios

La primera letra siempre se refiere a las instrucciones y la tercera a los datos: S de Single y M de Multiple.

Para el examen

  • Las cuatro clases: SISD, SIMD, MISD y MIMD

  • Cómo se leen: la primera letra es el flujo de instrucciones; la tercera, el de datos

Virtualización asistida por hardware

Ejecutar varias máquinas virtuales sobre un mismo equipo se puede hacer por software, pero sale caro en rendimiento, porque hay que ir interceptando y traduciendo las operaciones privilegiadas que cada sistema huésped intenta ejecutar.

Los procesadores actuales incorporan soporte para virtualización en el propio hardware, de modo que esas operaciones se resuelven en el chip y no hay que emularlas. Cada fabricante le pone su nombre comercial.

FabricanteTecnología
IntelIntel VT-x
AMDAMD-V

VT-x y AMD-V no son programas de virtualización: son capacidades de la CPU sobre las que se apoyan esos programas.

Para el examen

  • Tecnología de Intel: VT-x

  • Tecnología de AMD: AMD-V

  • Qué son: capacidades de la CPU, no programas

Hipervisores de tipo 1 y de tipo 2

El hipervisor es la capa que reparte el hardware real entre varias máquinas virtuales, cada una con su propio sistema operativo y sus aplicaciones. Se clasifican en dos tipos según sobre qué se apoyen, y la diferencia se ve mirando qué hay justo debajo del hipervisor.

TipoSobre qué se ejecutaEjemplos
Tipo 1Directamente sobre el hardware, sin sistema operativo por debajo.KVM, Hyper-V, Xen, VMware ESX.
Tipo 2Sobre un sistema operativo anfitrión, que a su vez está sobre el hardware.VMware Player, VirtualBox, Parallels en Mac.

La consecuencia práctica es de rendimiento y de uso. El de tipo 1 tiene acceso directo al hardware y es el que se despliega en servidores y centros de datos. El de tipo 2 se instala como un programa más en un equipo de trabajo y resulta cómodo para pruebas y escritorio, a cambio de la capa extra que atraviesa cada operación.

En el tipo 1 el hipervisor toca el hardware; en el tipo 2 hay un sistema operativo entre medias.

Para el examen

  • Tipo 1 (bare metal): sobre el hardware: KVM, Hyper-V, Xen, ESXi

  • Tipo 2 (hosted): sobre un sistema operativo anfitrión: VirtualBox, VMware Player, Parallels