De Transmeta Crusoe processor Een VLIW CPU met x86 compatibiliteit.

Slides:



Advertisements
Verwante presentaties
Hoe werkt een rekenmachine?
Advertisements

Hardware (1) SGDB Informatica.
Processor & Toetsenbord
Par. 3.1 Computers zijn overal
Hardware (1) NSG Informatica.
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
Hardware (2) SGDB Informatica.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
bus DE BUS Controller: de electronica die het apparaat bestuurd Transport van bits over de bus.
Auteursomgeving voor Digitale Componenten
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
Week 2: Microarchitectuur niveau ALU en datapad
Computerarchitectuur
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Case studies De Intel 80x86 reeks voor PC IBM SP2 parallel computer.
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Instructie set: principes.
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geavanceerde pipelining en parallellisme op het niveau van instructies (ILP:
Hoe een computer gegevensverwerkende processen realiseert
De processor.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Auteursomgeving voor Digitale Componenten
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers De Intel 80x86 reeks voor PC.
Hoe werkt een rekenmachine?
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Multiplexen.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Presentatie door: Martijn Schmid, Kathinka Veldkamp en Nynke Zwart
Processor & Toetsenbord
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
Visual Basic 2010 – What’s new André Obelink
Page 1 HiSPARC FPGA & software aanpassingen Rais Mense.
PEMSY1http:// 1  Herhaling ARM assembler instructies  branch instructie  conditionele instructies en de flags  oefening.
Context switching Heidi Snoek. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data weggeschreven.
Analoog/Digitaal Analoog Digitaal
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Racedetectie in Parallelle Programma’s door Gecontroleerde Heruitvoering Michiel Ronsse Promotoren: Prof. K. De Bosschere Prof. J. Van Campenhout Vakgroep.
Basisfuncties Operating System.
Context switching Naomi Baggelaar. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Cache Prestatie & Energieverbruik. Overzicht Voorbeelden energieverbruik Cache.
Programmeren.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Hoorcollege 1: efficiëntie en complexiteitsontwikkeling.
Agenda  Lesuur minuten  Wat kun je met programmeren?  Wat is code en hoe werkt het?  Code schrijven: de basis  Lesuur minuten  Zelf.
1 K. Werschkull Programmeren in Delphi 7 De ontwikkeling van de computer Programmeertalen Compilers Hoofdstuk 1 Hoofdstuk 1: De ontwikkeling van de computer.
SQL Performance Analyzer Inschatten performance impact van wijzigingen Bram van der Vos
1 Operating Systems- Week 1. 2 Computersystemen Memory Instruction Data
VPEMSY1, D3ECPT2 : ARM Assembler Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling B/BL, conditions,
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Hardware (2) SGDB Informatica.
Programmeren.
Key Process Indicator Sonja de Bruin
Digitale Methoden Onderdeel van vak Computer Systemen
CS1 Automation & Drives.
Instructie geven en uitvoeren
3 Hardware 3.1 De processor en intern geheugen
Hardware (2) SGDB Informatica.
Hoofdstuk 3 - Computersystemen
Wat gaan we doen? Herhaling ARM assembler instructies
Software Development fundamentals
Transcript van de presentatie:

De Transmeta Crusoe processor Een VLIW CPU met x86 compatibiliteit

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

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

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

Transmeta Crusoe CPU

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

Blokschema van de Crusoe

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

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

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

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

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