120 likes | 279 Views
De Transmeta Crusoe processor . Een VLIW CPU met x86 compatibiliteit. Agenda. Voor- en nadelen van VLIW en Superscalar De Crusoe CPU Dynamic Binary Translation – Code Morphing Voor- en nadelen van de Crusoe Conclusie. Voor- en nadelen van VLIW. Voordelen Simpele hardware Low-power
E N D
De Transmeta Crusoe processor Een VLIW CPU met x86 compatibiliteit
Agenda • Voor- en nadelen van VLIW en Superscalar • De Crusoe CPU • Dynamic Binary Translation – Code Morphing • Voor- en nadelen van de Crusoe • Conclusie
Voor- en nadelen van VLIW • Voordelen • Simpele hardware • Low-power • Goedkoop • Nadelen • Scheduling door compiler • Niet backwards compatibel
Voor- en nadelen van Superscalar • Voordelen • Scheduling door CPU • High-performance • Nadelen • Complexe hardware (veel oppervlak) • Niet low-power • Duur
VLIW • 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
Stap 1 – van x86 naar atoms • na x86 instructies • A. addl %eax,(%esp)// load data from stack, add to %eax • B. addl %ebx,(%esp) // ditto, for %ebx • C. movl %esi,(%ebp) // load %esi from memory • D. subl %ecx,5 // subtract 5 from %ecx register • na het frontend • ld %r30,[%esp] // load from stack, into temporary • add.c %eax,%eax,%r30 // add to %eax, set condition codes. • ld %r31,[%esp] • add.c %ebx,%ebx,%r31 • ld %esi,[%ebp] • sub.c %ecx,%ecx,5
Stap 2 – van atoms naar optimized atoms • na het frontend • ld %r30,[%esp] // load from stack, into temporary • add.c %eax,%eax,%r30 // add to %eax, set condition codes. • ld %r31,[%esp] • add.c %ebx,%ebx,%r31 • ld %esi,[%ebp] • sub.c %ecx,%ecx,5 • na de optimizer • ld %r30,[%esp] // load from stack only once • add %eax,%eax,%r30 • add %ebx,%ebx,%r30 // reuse data loaded earlier • ld %esi,[%ebp] • sub.c %ecx,%ecx,5 // only this last condition code needed
Stap 3 – van optimized atoms naar scheduled molucules • na de optimizer • ld %r30,[%esp] // load from stack only once • add %eax,%eax,%r30 • add %ebx,%ebx,%r30 // reuse data loaded earlier • ld %esi,[%ebp] • sub.c %ecx,%ecx,5 // only this last condition code needed • na de scheduler • 1. ld %r30,[%esp]; sub.c %ecx,%ecx,5 • 2. ld %esi,[%ebp]; add %eax,%eax,%r30; add %ebx,%ebx,%r30
Voor- en nadelen van de Crusoe • Voordelen • Nieuwe CPU -> niet hercompileren • Code morphing software kan steeds geupdate worden • Ook andere instructie set mogelijk dan x86 • Low-power • Hardware goedkoop • Nadelen • 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 • Zeer geschikt voor PDA’s en notebooks • Met name voor alledaags gebruik (bijv. tekstverwerking, internet, multimedia)