De Transmeta Crusoe processor Een VLIW CPU met

  • Slides: 12
Download presentation
De Transmeta Crusoe processor Een VLIW CPU met x 86 compatibiliteit

De Transmeta Crusoe processor Een VLIW CPU met x 86 compatibiliteit

Agenda n Voor- en nadelen van VLIW en Superscalar n De Crusoe CPU n

Agenda n Voor- en nadelen van VLIW en Superscalar n De Crusoe CPU n Dynamic Binary Translation – Code Morphing n Voor- en nadelen van de Crusoe n Conclusie

Voor- en nadelen van VLIW n Voordelen Simpele hardware n Low-power n Goedkoop n

Voor- en nadelen van VLIW n Voordelen Simpele hardware n Low-power n Goedkoop n n Nadelen Scheduling door compiler n Niet backwards compatibel n

Voor- en nadelen van Superscalar n Voordelen Scheduling door CPU n High-performance n n

Voor- en nadelen van Superscalar n Voordelen Scheduling door CPU n High-performance n n Nadelen Complexe hardware (veel oppervlak) n Niet low-power n Duur n

Transmeta Crusoe CPU

Transmeta Crusoe CPU

VLIW n n n CPU heeft 2 integer units, een floating point unit, een

VLIW n n n CPU heeft 2 integer units, een floating point unit, een load/store unit en een branche unit CPU kan 4 instructies parallel uitvoeren 64 integer registers en 32 floating point registers CPU krijgt VLIW instructies in de vorm van 64 of 128 bits molecules Molecules bestaan uit atoms

Blokschema van de Crusoe

Blokschema van de Crusoe

Stap 1 – van x 86 naar atoms n na x 86 instructies n

Stap 1 – van x 86 naar atoms n na x 86 instructies n n n A. addl %eax, (%esp) stack, add to %eax B. addl %ebx, (%esp) C. movl %esi, (%ebp) D. subl %ecx, 5 %ecx register // load data from // // ditto, for %ebx load %esi from memory // subtract 5 from na het frontend n n n ld %r 30, [%esp] // load from stack, into temporary add. c %eax, %r 30 // add to %eax, set condition codes. ld %r 31, [%esp] add. c %ebx, %r 31 ld %esi, [%ebp] sub. c %ecx, 5

Stap 2 – van atoms naar optimized atoms n na het frontend n n

Stap 2 – van atoms naar optimized atoms n na het frontend n n n n ld %r 30, [%esp] // load from stack, into temporary add. c %eax, %r 30 // add to %eax, set condition codes. ld %r 31, [%esp] add. c %ebx, %r 31 ld %esi, [%ebp] sub. c %ecx, 5 na de optimizer n n ld %r 30, [%esp] only once add %eax, %r 30 add %ebx, %r 30 earlier ld %esi, [%ebp] // load from stack // reuse data loaded

Stap 3 – van optimized atoms naar scheduled molucules n na de optimizer n

Stap 3 – van optimized atoms naar scheduled molucules n na de optimizer n n n ld %r 30, [%esp] // load from stack only once add %eax, %r 30 add %ebx, %r 30 // reuse data loaded earlier ld %esi, [%ebp] sub. c %ecx, 5 // only this last condition code needed na de scheduler n n 1. ld %r 30, [%esp]; sub. c %ecx, 5 2. ld %esi, [%ebp]; add %eax, %r 30; add %ebx, %r 30

Voor- en nadelen van de Crusoe n Voordelen n n n Nieuwe CPU ->

Voor- en nadelen van de Crusoe n Voordelen n n n Nieuwe CPU -> niet hercompileren Code morphing software kan steeds geupdate worden Ook andere instructie set mogelijk dan x 86 Low-power Hardware goedkoop Nadelen n Veel nieuwe instructies achter elkaar worden langzaam uitgevoerd door de vertaling In het begin is hij erg traag, doordat het translation cache leeg is Gemiddelde performance (slechte maat, maar ongeveer 70% van vergelijkbare pentium III)

Conclusie n Zeer geschikt voor PDA’s en notebooks n Met name voor alledaags gebruik

Conclusie n Zeer geschikt voor PDA’s en notebooks n Met name voor alledaags gebruik (bijv. tekstverwerking, internet, multimedia)