Der Crusoe-Prozessor von Transmeta

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

Vom HW-Automaten zum Prozessor
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
KA – Rechnerarchitektur I ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Claas J. Cornelius - Ogg-on-a-chip - MDCT MDCT Funktionsweise und Limitierende Faktoren.
Peter Marwedel TU Dortmund, Informatik 12
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
Zentraleinheit CPU, Motherbord, RAM
Funktionsmerkmale und Vorteile Die Intel Core i7 Prozessoren der zweiten Generation verfügen über folgende Funktionsmerkmale: Die Intel® Turbo-Boost-Technik.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 8.1.
2.5. Mikrocontroller-Komponenten
von Dennis Braun Till Meyenburg Marvin Barghorn
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Embedded Applications
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Vorlesung, Wintersemester 2009/10M. Schölzel 1 Optimierungstechniken in modernen Compilern Einführung.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
4. Mikrocontroller-Komponenten
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Von: Antoni Gazali Clarkson Laryea
Benchmark sparc vs. x86 von Axel Schmidt (94416)
AMDs Next Generation Die Hammer Familie Eine Kurzpräsentation von Frank Grümmert bei Herrn Prof. Dr.-Ing. Risse für das RST-Labor.
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Inhalt Der Cell Prozessor Aufbau des Cells Platine Block Diagramm
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Der Prozessor - zentraler Bestandteil eines jeden Computers
Was steht hier eigentlich in den Räumen rum?
Der Simple As Possible Computer
So arbeitet ein PC.
Duo- und Quad Prozessor-Architektur
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
INTEL Pentium 4 Prozessor
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Basic Input/Output System
Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
3.4 CPU-Chips und Busse CPU-Chips
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Embedded Systems Prof. Dr. H. Kristl
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Ein Vortrag von Simon Bayer
CPU-Register EINLEITUNG UND INHALT eines Pentium Prozessors
Interne Speicher © Christian Barby FIN
Programmieren in Assembler
Parallelisierung für Multiprozessor-Maschinen
Der formelle Imperativ – the Imperative
Mikrocomputertechnik Jürgen Walter
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Aufbau, Funktion und Grundzusammenhänge
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS , Folie 1 Beispiel Cache-Architektur.
COMMANDS imperative 1. you (formal): Sie 2. you (familiar plural): ihr
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
SPEICHER ROM + RAM ROM RAM Arten von RAM (DDR-RAM, SDRAM) Beispiel
Data Hazards 0x30 sub $6 $0 $1 0x34 add $7 $6 $
Vom HW-Automaten zum Prozessor
מבוא למערכות מחשב ואסמבלי
CSL211 Computer Architecture
The Conversational Past
 Präsentation transkript:

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 Crusoes bestehen zu ¼ aus Hardware und zu ¾ aus Software Einfacher 128-Bit-VLIW-Prozessor der allerdings vier Instruktionen pro Takt ausführen kann + Code-Morphing-Software 28.05.01 (c) Roland Preuss

Speicherbedarf Code-Morphing-Software ist in einem 512 KByte Flash gespeichert entpackt 2 MByte 6 bis 14 MByte Zwischenspeicher ( Translation Cache ) die Code-Morphing-Software ist in einem 512 KByte Flash gespeichert beim Booten wird die Software in den Hauptspeicher übertragen und entpackt ( 2 MByte ) dazu kommen noch 6 bis 14 MByte Zwischenspeicher ( Translation Cache ) 28.05.01 (c) Roland Preuss

Ü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 ) Code-Morphing-Verfahren setzt komplexe x86-Befehle in einfachere Befehle um ( sogenannte Atome ) Bis zu 4 Atome werden zu sogenannten Molekülen zusammengesetzt Moleküle werden dann parallel vom Prozessor ausgeführt spekulatives Ausführen von Befehlen wird praktiziert Crusoe unterstützt das wesentlich durch die Hardware die 64 Allzweck- und 32 FPU-Register haben sogenannte Schattenregister ( Shadow ) 28.05.01 (c) Roland Preuss

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 nutzt die große Anzahl an Wiederholungen bei der Arbeit mit Software die CMS übersetzt Befehle einmal, optimiert sie und speichert das Ergebnis im Translation Cache ab bei nächsten Aufruf der gleichen Befehlskette kann die Übersetzung und Optimierung übersprungen werden es wird nur noch das einmal übersetzte Ergebnis übertragen und ausgeführt z.B. DVD bevor das erste Videobild erscheint, hat der Crusoe den DVD-Decoder komplett übersetzt und optimiert d.h. kein Overhead stört die Wiedergabe 28.05.01 (c) Roland Preuss

Filter CMS benutzt verschiedene Prioritätsstufen Interpretationen hohe Optimierung dynamische feedback Informationen typische Anwendungen nutzen 95% der Ausführungszeit nur etwa 10% ihres Codes es muß entschieden werden wieviel Aufwand für eine Codeübersetzung getrieben wird die CMS benutzt dazu verschiedene Prioritätsstufen sie reichen von Interpretationen ( d.h. kein Überstzungsoverhead, einfache Codeausführung ) bis hoher Optimierung ( d.h. es dauert länger die Übersetzung und Optimierung zu erstellen, aber dann ist der Befehlssatz auch sehr schnell ) das wird durch dynamische feedback Informationen erreicht die während der Laufzeit gesammelt werden ( z.B. Blockausführungs Häufigkeit oder Verzweigungshistorie ) 28.05.01 (c) Roland Preuss

Beispiel addl %eax, (%esp) // load data from stack, add to %eax addl %ebx, (%esp) // ditto, for %ebx movl %esi, (%ebp) // load %esi from memory subl %ecx, 5 // subtract 5 from %ecx register 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 zuerst wird das Codebeispiel in eine simple Folge von Atomen übersetzt 28.05.01 (c) Roland Preuss

Beispiel 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 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 in der nächsten Stufe werden z.B. loops oder unbenutzter Code entfernt außerdem wird auf mögliche Vereinfachungen reagiert und der Code dann neu geordnet 28.05.01 (c) Roland Preuss

Beispiel 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 ld %r30, [%esp] ; sub.c %ecx, %ecx, 5 ld %esi, [%ebp] ; add %eax, %eax, %r30 ; add %ebx, %ebx, %r30 im letzten Schritt, werden die Atome nochmals neu geordnet und in Moleküle zusammengefaßt nach der Bearbeitung haben wir die vier Orginalbefehle auf zwei Moleküle reduziert 28.05.01 (c) Roland Preuss

Alias ld %r30, [%x] // first load from location X ... st %data, [%x] // might overwrite location X ld %r31, [%x] // this accesses location X again use %r31 ldp %r30, [%x] // load from X and protect it ... stam %data, [%x] // this store traps if it writes X use %r30 // can use data from first load bei der Neuordnung der Befehle, kann es bei load und store Anweisungen zu Problemen kommen für diesen Fall gibt es die Alias Hardware wenn der Übersetzer bei der Neuanordnung einen load Befehl vor einen store Befehl versetzt, so ändert er den load Befehl in einen load-and-protect Befehl und den store Befehl in einen store-under-alias-mask Befehl es ergibt sich dann folgende Übersetzung 28.05.01 (c) Roland Preuss

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 alle Register, die x86 Statusinformationen enthalten sind doppelt Vorhanden es gibt ein sogenanntes Workingregister und ein Shadowregister im Normalfall, werden nur die Workingregister mit Atomen upgedatet eine Spekulation wird also geladen erweist sich die Spekulation als richtig, so werden mit einer speziellen commit Operation alle Workingregister bevor der nächste Befehl geladen wird in die Shadowregister kopiert erweist sich die Spekulation als falsch, wird der letzte richtige Übersetzungstand durch einen rollback Befehl aus den Shadowregistern wieder geladen die CMS setzt an der Stelle wieder an und übersetzt den entsprechenden Codebereich neu der commit Befehl wird parallel zu den VLIW Befehlen ausgeführt 28.05.01 (c) Roland Preuss

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 ein Undo für den Speicher zu realisieren wäre sehr aufwendig deshalb hat der Crusoe einen sogenannten gated store buffer der Crusoe schreibt alle Speicheropperationen zunächst in diesen Speicher bei Ausführung des commit Befehls wird dann der gated store buffer auf den Moemorybereich übertragen bei auftreten eines rollback Befehls ( d.h. eine Spekulation war falsch ) wird der gated store buffer einfach gelöscht 28.05.01 (c) Roland Preuss

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 viel Performance wird benötigt ( CMS benötigt ca. 6 mal mehr Speicher für einen x86 Befehl ) d.h. große Caches und lokalen Speicher im Kern 96 KByte ( TM3200 ) bzw. 384 KByte ( TM5400 ) Cache 8 KByte Local Data Memory 8 KByte Local Programm Memory ( zur Laufzeit änderbarer Microcode ) 28.05.01 (c) Roland Preuss

Northbridge normalerweise extern enthält Speicher und PCI Controller TM3200 unterstützt PC133 TM5400 zusätzlich DDR-SDRAM PC266 TM5400 zwei 64-Bit Speicherinterfaces normalerweise extern enthält Speicher und PCI Controller TM3200 unterstützt PC133 TM5400 unterstützt zusätzlich DDR-SDRAM PC266 TM5400 besitzt zwei 64-Bit Speicherinterfaces 28.05.01 (c) Roland Preuss

noch zu erwähnen ist der TLB ( Translation Lookaside Buffer ) er cacht die Übersetzungstabelle ( physisch zu linear ) markiert Seiten, die bereits übersetzt wurden und gibt Auskunft über Speicherattribute ( d.h. ob es sich um normalen Speicher oder eine als Speicher angesprochene I/O-Adresse handelt ) 28.05.01 (c) Roland Preuss

Schlußwort noch nicht vorgesehen : speichern bereits erlernter Optimierungen Eingriffe zur Auswahl von Optimierungsstrategien noch nicht vorgesehen sind folgende Dinge das Abspeichern bereits erlernter Optimierungen z.B. Programmzugehörig Eingriffe des Benutzers zur Auswahl von Optimierungsstrategien 28.05.01 (c) Roland Preuss

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