Der Crusoe-Prozessor
von Transmeta
Autor: Roland Preuss
Fach: LCT-L (Prof.Dr.Risse)
Semester: I5I (SS01)
Datum: 28.05.01
Vorstellung der
Technologie des
Crusoe-Prozessors
Einleitung
28.05.01
(c) Roland Preuss
2
Speicherbedarf

Code-Morphing-Software ist in einem 512 KByte Flash
gespeichert

entpackt 2 MByte

6 bis 14 MByte Zwischenspeicher ( Translation Cache )
28.05.01
(c) Roland Preuss
3
Übersicht
•Code-Morphing-Verfahren setzt komplexe x86-Befehle in
einfachere Befehle um ( sogenannte Atome )
•max. 4 Atome werden zu Molekülen zusammengesetzt
•Moleküle werden parallel vom Prozessor ausgeführt
•spekulatives Ausführen von Befehlen wird praktiziert
•Code-Morphing unterstützt durch Hardware
•64 Allzweck- und 32 FPU-Register haben sogenannte
Schattenregister ( Shadow )
28.05.01
(c) Roland Preuss
4
Ansatz
•große Anzahl an Wiederholungen
•CMS übersetzt Befehle einmal, optimiert und speichert im
Translation Cache
•bei Aufruf der gleichen Befehlskette kann Übersetzung und
Optimierung übersprungen werden
•übersetzte Ergebnis wird übertragen und ausgeführt
28.05.01
(c) Roland Preuss
5
Filter
•CMS benutzt verschiedene Prioritätsstufen
•Interpretationen
•hohe Optimierung
•dynamische feedback Informationen
28.05.01
(c) Roland Preuss
6
Beispiel
addl %eax, (%esp)
%eax
addl %ebx, (%esp)
movl %esi, (%ebp)
subl %ecx, 5
ld register
%r30, [%esp]
temporary
add.c %eax, %eax,
condition codes
ld %r31, [%esp]
add.c %ebx, %ebx,
ld %esi, [%ebp]
sub.c %ecx, %ecx,
28.05.01
// load data from stack, add to
// ditto, for %ebx
// load %esi from memory
// subtract 5 from %ecx
// load from stack, into
%r30
// add to %eax, set
%r31
5
(c) Roland Preuss
7
Beispiel
ld %r30, [%esp]
temporary
add.c %eax, %eax, %r30
condition codes.
ld %r31, [%esp]
add.c %ebx, %ebx, %r31
ld %esi, [%ebp]
ld
%r30,
[%esp]
sub.c
%ecx,
%ecx, 5
add %eax, %eax, %r30
add %ebx, %ebx, %r30
ld %esi, [%ebp]
sub.c %ecx, %ecx, 5
code needed
28.05.01
// load from stack, into
// add to %eax, set
// load from stack only once
// reuse data loaded earlier
// only this last condition
(c) Roland Preuss
8
Beispiel
ld %r30, [%esp]
add %eax, %eax, %r30
add %ebx, %ebx, %r30
ld %esi, [%ebp]
sub.c %ecx, %ecx, 5
code needed
// load from stack only once
// reuse data loaded earlier
// only this last condition
ld %r30, [%esp] ; sub.c %ecx, %ecx, 5
ld %esi, [%ebp] ; add %eax, %eax, %r30 ; add %ebx,
%ebx, %r30
28.05.01
(c) Roland Preuss
9
Alias
ld %r30, [%x]
X
...
st %data, [%x]
X
ld %r31, [%x]
again
use %r31
ldp %r30, [%x]
it
...
stam %data, [%x]
writes X
use %r30
28.05.01
// first load from location
// might overwrite location
// this accesses location X
// load from X and protect
// this store traps if it
// can use data from first load
(c) Roland Preuss
10
Spekulationen
•alle Register, die x86 Statusinformationen enthalten sind
doppelt Vorhanden
•Workingregister und Shadowregister
•Normalfall nur Workingregister update
•Spekulation richtig commit Operation
•Spekulation falsch rollback Befehl
•CMS setzt wieder an und übersetzt neu
•commit Befehl wird parallel zu VLIW Befehlen ausgeführt
28.05.01
(c) Roland Preuss
11
Spekulationen II
•Undo für Speicher sehr aufwendig
•deshalb gated store buffer
•Crusoe schreibt alle Speicheropperationen zunächst in
diesen Speicher
•bei commit Befehl wird gated store buffer auf
Moemorybereich übertragen
•bei rollback Befehl wird gated store buffer gelöscht
28.05.01
(c) Roland Preuss
12
Hardware
•viel Performance wird benötigt
•große Cache und lokalen Speicher im Kern
•96 KByte ( TM3200 ) bzw. 384 KByte ( TM5400 ) Cache
•8 KByte Local Data Memory
•8 KByte Local Programm Memory
28.05.01
(c) Roland Preuss
13
Northbridge
•normalerweise extern
•enthält Speicher und PCI Controller
•TM3200 unterstützt PC133
•TM5400 zusätzlich DDR-SDRAM PC266
•TM5400 zwei 64-Bit Speicherinterfaces
28.05.01
(c) Roland Preuss
14
28.05.01
(c) Roland Preuss
15
Schlußwort
noch nicht vorgesehen :
•speichern bereits erlernter Optimierungen
•Eingriffe zur Auswahl von Optimierungsstrategien
28.05.01
(c) Roland Preuss
16
Literatur






transmeta „The Technology behind Crusoe processors“
transmeta TM3200 Beschreibung
transmeta TM5400 Beschreibung
Andreas Stiller „Zu neuen Ufern“ ( c´t )
Andreas Stiller „Robinsons Patente“ ( c´t )
http://www.delphion.com/ ( Transmetapatente )
28.05.01
(c) Roland Preuss
17

Crusoe2