Transmeta Crusoe es una familia de microprocesadores compatibles con x86 desarrollados por Transmeta y presentados en 2000.
En lugar de que la arquitectura del conjunto de instrucciones se implemente en hardware o se traduzca mediante hardware especializado, el Crusoe ejecuta una capa de abstracción de software o una máquina virtual , conocida como Code Morphing Software (CMS). El CMS traduce las instrucciones de código de máquina recibidas de los programas en instrucciones nativas para el microprocesador. De esta manera, el Crusoe puede emular otras arquitecturas de conjunto de instrucciones (ISA). Esto se utiliza para permitir que los microprocesadores emulen el conjunto de instrucciones x86 de Intel .
El Crusoe es notable por su método para lograr la compatibilidad con x86. En lugar de que la arquitectura del conjunto de instrucciones se implemente en hardware o se traduzca mediante hardware especializado, el Crusoe ejecuta una capa de abstracción de software o una máquina virtual , conocida como Code Morphing Software (CMS). El CMS traduce las instrucciones de código de máquina recibidas de los programas en instrucciones nativas para el microprocesador. De esta manera, el Crusoe puede emular otras arquitecturas de conjuntos de instrucciones (ISA). Esto se utiliza para permitir que los microprocesadores emulen el conjunto de instrucciones x86 de Intel . En teoría, es posible modificar el CMS para emular otras ISA. Transmeta demostró que Crusoe ejecuta el bytecode de Java traduciendo los bytecodes en instrucciones en su conjunto de instrucciones nativo. La adición de una capa de abstracción entre el flujo de instrucciones x86 y el hardware significa que la arquitectura del hardware puede cambiar sin romper la compatibilidad, simplemente modificando el CMS. Por ejemplo, Transmeta Efficeon (un diseño Transmeta de segunda generación) tiene un núcleo VLIW de 256 bits de ancho , en comparación con el núcleo de 128 bits de Crusoe. Efficeon también admite instrucciones SSE.
El Crusoe es un microprocesador VLIW que ejecuta paquetes de instrucciones, denominados moléculas por Transmeta. Cada molécula contiene múltiples instrucciones, denominadas átomos . El software Code Morphing traduce las instrucciones x86 en instrucciones nativas. Las instrucciones nativas tienen una longitud de 32 bits. Las instrucciones que cumplen un conjunto de condiciones se pueden ejecutar simultáneamente y se combinan para formar una molécula de 64 o 128 bits que contiene dos o cuatro átomos , respectivamente. En caso de que no haya suficientes instrucciones para llenar una molécula, el software inserta NOP como relleno para llenar los espacios vacíos. Esto es necesario en todas las arquitecturas VLIW y se critica por ser ineficiente, por lo que existen moléculas de dos longitudes diferentes.
El Crusoe ejecuta en software algunas de las funciones que tradicionalmente se implementan en hardware (por ejemplo, reordenamiento de instrucciones), lo que da como resultado un hardware más simple con menos transistores . La relativa simplicidad del hardware significa que Crusoe consume menos energía (y, por lo tanto, genera menos calor) que otros microprocesadores compatibles con x86 que funcionan a la misma frecuencia. Un Crusoe de 700 MHz ejecutaba programas x86 a la velocidad de un procesador Pentium III x86 de 500 MHz, [1] aunque el procesador Crusoe era más pequeño y más barato que el procesador Intel correspondiente. [1]
El Crusoe estuvo inicialmente disponible en dos formas: el TM3120 (más tarde llamado TM3200) para aplicaciones integradas y el TM5400 para computación personal de bajo consumo. [2] Ambos se basaban en la misma arquitectura pero diferían en la frecuencia de reloj y el soporte periférico. El TM3120/TM3200 se fabricó en velocidades de 333 (sólo TM3120) 366 y 400 MHz utilizando un proceso de 220 nm. [3] [4] [5] Tiene una caché L1 de 96k (64 KB de instrucciones y 32 KB de datos) y no tiene caché L2. El TM3120/TM3200 tiene un controlador de memoria SDRAM integrado y una interfaz PCI . Mide 77 mm2 y utiliza una fuente de alimentación de 1,5 V, disipando menos de 1,5 W de potencia (normalmente). [3] [4] [5] El TM5400 se diferencia del TM3120/TM3200 por la inclusión de 128K de caché L1 (con la adición de 32 KB de caché de datos), así como por la adición de soporte de memoria DDR, caché L2 unificada de 256 KB y tecnología de reducción de energía LongRun fabricada utilizando un proceso más pequeño de 180 nm. [3] [6] Mide 73 mm2 y utiliza una fuente de alimentación de 1,10 V (f = 25%) y 1,6 V (f = 100%), disipando 0,5–1,5 W normalmente y un máximo de 6 W. [3] [6] Más tarde, se introdujo el TM5600 como una oferta de gama alta para el TM5400 con el doble de caché L2 (512 KB frente a 256 KB). [6] [7] [8] Tanto el TM5400 como el TM5600 funcionaban a frecuencias de reloj de 500 a 700 MHz. [9]
Los TM5500/TM5800 son versiones en miniatura del TM5400/5600, construidos sobre un proceso TSMC de 130 nm a frecuencias de reloj de 667-1000 MHz. [10] [11] [12] Las versiones integradas con una vida útil de 10 años de uso continuo se comercializaron como Crusoe SE (por Special Embedded) TM55E/TM58E respectivamente a frecuencias de reloj de 667-993 MHz. [13]
El TM5700/TM5900 elimina la compatibilidad con SDRAM para su controlador de memoria integrado y ahora viene en un paquete FC-OBGA de 399 pines un 54 % más pequeño en lugar del paquete BGA de cerámica de 479 pines utilizado anteriormente. [9] [12] [14] La velocidad del reloj sigue siendo la misma entre 667 y 1000 MHz. [15]
Transmeta era una empresa de semiconductores sin fábrica , sin las instalaciones para fabricar sus diseños. En cambio, ambos procesadores fueron fabricados por IBM Microelectronics , la empresa de semiconductores de International Business Machines (IBM). IBM fabricó el Crusoe en un proceso CMOS de 0,18 μm con cinco niveles de interconexión de cobre .
El procesador Crusoe admite MMX pero no SSE . [16] A partir de 2022, la mayoría de los navegadores en Windows y Linux, y algunos otros programas, necesitan compatibilidad con SSE o SSE2 ; [17] por lo tanto, ese software ya no se ejecutará en la plataforma Crusoe. Por ejemplo, Firefox dejó de brindar soporte para sistemas sin SSE2 en 2017, [18] aunque K-Meleon podía ejecutarse sin SSE en Windows XP. El procesador Efficeon agregó soporte para SSE y SSE2. [19]
Aunque la unidad FPU/multimedia puede manejar los mismos tipos de datos que las instrucciones MMX de Intel, los chips Crusoe no tienen los nuevos registros de 128 bits definidos por SSE (Streaming SIMD Extensions) de Intel. Transmeta dice que Crusoe podría emular instrucciones y registros de tipo SSE, pero no hay suficiente soporte de software para SSE como para justificar el esfuerzo en este momento.