PROCESADORES CRUSOEä , UNA NUEVA TECNOLOGIA NO INTELä
Daniel De Sousa
Universidad Central de Venezuela. Facultad de
Ingeniería. Apartado 47100, Caracas 1041A. Venezuela.
Resumen
En Enero del 2000, la corporación Transmeta introdujo el procesador
denominado Crusoeä , una familia de soluciones compatible x86 que logra
una relación directa entre el desempeño y el consumo de energía. Fue basado en
la utilización de un "software" que en forma lógica rodea a su "hardware"
eliminándole a éste un gran número de transistores en comparación con otros
procesadores, permitiendo un ahorro significativo de energía. La arquitectura
planteada en este procesador es la de un híbrido "hardware-software", donde el
"software", denominado Código Morphingä , genera a los programas basados en x86 la impresión de
estar corriendo en un "hardware" x86 convencional. Esto da la oportunidad de
emular cualquier tecnología en microprocesadores (Motorola, AMD, Intel) con sólo
cambiar la lógica del "software" que envuelve dicho hardware independientemente
del chip utilizado.
Abstract
In January of 2000, Transmeta Corporation introduced the
Crusoeä , an
x86-compatible family of solutions that combines performance with low power
consumption. This new technology is software-based: the power savings come from
replacing large number of transistor with the software that logically surrounded
the hardware engine. The arquitecture of this processor can be implemented as
hardware-software hybrids. The software called Code Morphingä gives x86 programs the
impression that they are running on x86 hardware. This make the opportunity to
emulate any microprocessor technologies (Motorola, AMD, Intel) only changing the
software logic that can be rolled out independently from the
chip.
INTRODUCCION
Las nuevas tecnologías emergentes no Intel, han
venido tomando drásticamente un nuevo rumbo, ya que ofrecen nuevas perspectivas
del como realizar los procesamientos implícitos en los sistemas que necesiten
microprocesadores, esto de una manera más óptima, rápida y con ahorros
significativos de energía. Una de esas tecnologías emergentes fue el lanzamiento
del procesador Crusoeä , el cual plantea como solución una mezcla híbrida de
"software y hardware", en donde el software incurrirá como interpretador de las
palabras de control generadas hacia el microprocesador, con lo cual independiza
al hardware de su entorno, así como la facilidad de actualizar versiones del
software independientemente del chip utilizado. Es por ello que el presente
trabajo trata de resumir un poco como es esta nueva tecnología reciente en
función de sus fundamentos y software desarrollado, que trata de ganar mercado
en un área tan costumbrista como lo es la de los
microprocesadores
FUNDAMENTOS DEL PROCESADOR CRUSOE
Con el código del software "Morphing" que
maneja la compatibilidad con x86, crearon un motor VLIW con dos unidad de
integración, una unidad de punto flotante, una unidad de memoria
(carga/almacena) y una unidad de cálculo de salto de dirección. En Crusoe, una
palabra de instrucción es llamada molécula y puede ser de 64 o 128 bits y
contiene hasta cuatro instrucciones tipo RISC, llamadas átomos. Todos los
átomos son ejecutados en paralelo y el formato de la molécula determina cuantos
átomos son enrutados hacia las unidades funcionales; esto reduce
significativamente la decodificación y el despacho ejecutado por el hardware. La
figura 1, muestra un ejemplo de una molécula de 128 bits y el mapeo directo
desde los átomos hasta las unidades funcionales. Las moléculas son ejecutadas en
orden. Para mantener el procesador procesando en velocidad máxima, las moléculas
y por ende todos sus átomos asociados, son empacadas tanto como sean
posibles.
Figura
1. Molécula que contiene hasta cuatro átomos, los cuales son ejecutados en
paralelo
El archivo de registro integrado tiene 64
registros. Por defecto, el software de código "Morphing", ubica alguno de estos
para mantener el estado x86 mientras que otros contienen el estado interno
relacionado con el sistema, o puede ser usado como registros
temporales.
El superescalamiento en los procesadores x86
como los Pentium II y Pentium III, también tienen múltiples unidades funcionales
que pueden ejecutar operaciones RISC (micro-ops) en paralelo.
La figura 2, ilustra como es la metodología
empleada por el hardware para traducir instrucciones x86 sobre micro-ops y
organizarlo en función de hacer un mejor uso de las unidades funcionales.
Ya que la unidad de despacho reordena el
micro-ops como requerimiento para mantener la unidad funcional ocupada, luego
una unidad de ordenamiento es necesitada para efectivamente reconstruir el orden
original de la instrucción x86 y garantizar que la tarea efectivamente este en
un orden apropiado. Este tipo de hardware es mucho más complejo que el que
implementa Crusoe en su motor VLIW.
Figura
2 Superescalamiento convencional usado en los hardware tipo Intel para crear y
despachar los micro-ops
A causa de que las instrucciones x86 son
complejas, el proceso de decodificación y despacho efectuado en el hardware
requieren una gran cantidad de lógica de transistores; el chip disipará calor
dependiendo del número de transistores utilizados. La siguiente tabla compara
los tamaños de los procesadores Intel y los procesadores
Crusoe.
Tabla
1 Tamaños entre los procesadores Intel y Crusoe
Una nota bien curiosa, es la disipación de
calor, la figura 3 y 4, contrasta claramente la operación en temperatura de un
procesador Pentium III y un Crusoe corriendo o ejecutando un DVD player. El
modelo Crusoe TM5400 no requiere ventiladores activos, mientras que el Pentium
III puede dañarse si no es refrescado con un ventilador.
Figura
3 Procesador Pentium III ejecuta un DVD a 105 °C
Figura
4 Procesador Crusoe modelo TM5400 corre un DVD a 48°C
EL
SOFTWARE DE CODIGO MORPHING
El software de código "Morphing", es un sistema
dinámico de traducción, osea un programa que compila instrucciones por una
instrucción establecida en una arquitectura (en este caso, el target de
instrucciones x86 ISA por otro ISA). El software del código Morphing, se ubica
en una ROM y es el primer programa que se ejecuta cuando el procesador se
inicializa. El código del software Morphing soporta ISA y es el único código x86
que ve; el único programa escrito directamente para el motor VLIW es el mismo
código de software Morphing. La figura 5 muestra la relación existente entre el
código x86, el código de software Morphing y el procesador
Crusoe.
Figura
5 El código del software Morphing ubicado entre el procesador y software basados
en x86
A causa de que el código del software Morphing
aísla los programas x86, incluyendo el BIOS del PC y el sistema operativo desde
el set de instrucciones nativas del motor del hardware, las cuales pueden ser
cambiadas en forma arbitraria sin afectar ninguno de los softwares x86. El único
programa que necesita ser modificado es el mismo código del software Morphing, y
ese trabajo es realizado sólo una vez para cada cambio de arquitectura.
La credibilidad de este concepto esta siendo
demostrado en la actualidad: el nativo ISA del modelo TM5400 es un mejoramiento
del modelo TM3120 y en consecuencia corren diferentes versiones del código
morphing. Los procesadores son diferentes porque estos son apuntados a
diferentes segmentos del mercado: el modelo TM3120 es dirigido a aplicaciones de
Internet y PC ultra ligeros, mientras que el otro soporta altas ejecuciones, en
PC móviles.
En forma coincidencial, al ocultar el chip ISA
detrás de la capa de software, se previno un problema que en el pasado
obstaculizó la aceptación de las máquinas VLIW. Un VLIW tradicional expone
detalles del "pipeline" del procesador al compilador, por ello cualquier cambio
de ese "pipeline" podría requerir todos los binarios existentes para ser
recompilado para luego ejecutarlo en un nuevo hardware. Un procesador
tradicional x86 sufre un problema relacionado cuando aplicaciones viejas quieren
ejecutarse correctamente en un nuevo procesador, estas usualmente necesitan ser
recompiladas para adquirir las ventajas de la implementación del nuevo
procesador. Esto no es un problema en los procesadores Crusoe, ya que el código
del software Morphing siempre y en forma transparente optimiza y recompila los
códigos x86 que este corra.
La flexibilidad de la traducción del software
viene con un costo: el procesador tiene que dedicar algunos de sus ciclos para
ejecutar el código del software Morphing, ciclos que en un procesador de
tecnología x86 podría usarlos para ejecutar un código de
aplicación.
CONCLUISONES
Definitivamente que esta nueva tecnología crea
las expectativas suficientes como para pensar que se aproxima la masificación de
nuevos procedimientos que no limitan lo que se tiene en la actualidad. El
procesador Crusoe a pesar de ser diseñado para computadoras móviles ligeras (de
2 a 4 libras) y para dar acceso a Internet en handhels y web pads, posiblemente
se introduzcan en PC de mayor procesamiento. De todas maneras ya se sabe que es
una tecnología compatible Intel, que fue diseñado de acuerdo a diseños
fundamentales de microprocesadores pero que se diferencian del resto por
utilizar una combinación de hardware y software. Usando el software para
descomponer instrucciones complejas en simples átomos y ordenarlos o listarlos
así como optimizar su ejecución en forma paralela lo que ahorra millones de
transistores para lógicas establecidas y definitivamente con ello el ahorro de
energía consumida que esta alrededor de un 60 a 70% sobre los procesadores
convencionales, mientras que al mismo momento posibilita técnicas agresivas de
optimización de código que son asequibles a implementaciones X86
tradicionales.
BIBLIOGRAFIA
KLAIBER A. 2000. The Technology behind Crusoe
processors. Trasmeta corporation . USA.
Daniel De Sousa, ingeniero de sistemas, egresado de la Universidad
Nacional Experimental Politécnica "Antonio José de Sucre" (UNEXPO), en Julio de
1997. Actualmente ejerce el cargo de Profesional en PDVSA-Intevep. QNX,
Integración de sistemas.