5 Weiterführende Rechnerarchitekturen

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "5 Weiterführende Rechnerarchitekturen"

Transkript

1 5 Weiterführende Rechnerarchitekturen 5.1 Globale Rechnerklassifikation 5.2 Lokale Prozessor-Klassifikation Befehlssatz Architekturen Stack-Architektur Akkumulator- Architektur Allgemeinzweck-Register-Architekturen Klassifikation nach Umfang und Komplexität der Befehle CISC RISC 5.3 Parallelrechner-Architekturen (Klassifizierung nach Flynn) SISD: Single Instruction Single Data SIMD: Single Instruction Multiple Data MISD: Multiple Instruction Single Data MIMD: Multiple Instruction Multiple Data Ausführungsbeispiele 5.4 Architektur virtueller Maschinen 5.5 Ausblick Folie Globale Rechnerklassifikation Personal Computer, Mikrorechner: Weitgehende Standardisierung BS: DOS, WINDOWS, OS/2, MAC-OS CISC / RISC - Prozessoren Workstation: Hauptanwendung: Techischwissenschaftlicher Bereich BS: UNIX-Derivate, LINUX RISC-Prozessoren Minicomputer (historisch): Mehrplatzfähig, Prozessrechner, Bürocomputer (Abteilungsrechner) Server: Dateiserver / Rechenserver E/A-orientierte Maschinen Mehrprozessorsysteme Massenspeicher meist redundant Verteilte Server Serverfarmen Großrechner (Mainframe): Einsatz in Rechenzentren Mehrprozessortechnik E/A-Kanäle mit eigenem Prozessor Batch-, Terminal- und Datenbanksysteme Superrechner Vektor- und/oder Parallelrechner, Ein oder mehre Prozessoren, z.b. Cray (SGI) T3D mit bis zu 512 Prozessoren Enge oder lose Prozessorkopplung Rechenintensive Anwendungen in Luftfahrttechnik, Automobilbau, Energiegewinnung, Meteorologie, Forschung Folie 194

2 5.2 Lokale Prozessor-Klassifikation Hinsichtlich der Art des Befehlssatzes können folgende Architekturen ( Befehlssatz-Architekturen ) unterschieden werden: Stack-Architektur Akkumulator-Architektur Allgemeinzweck-Register-Architekturen (General Purpose Register Architectures GPR) in den Ausprägungen: Register-Register-Maschinen Anwendung: RISC (auch Load-Store-Architektur genannt) Register-Speicher-Maschinen Anwendung: CISC Speicher-Speicher-Maschinen Bei realen Mikroprozessoren wird oft versucht, in eine vorherrschende Befehlssatz-Architektur die Vorteile anderer Befehlssatz Architekturen zu integrieren (Mischformen). Folie 195 Stack- und Akkumulator-Architektur Stack - Architektur CPU hat LIFO-Speicher (Stack), auf den man mit PUSH und POP zugreifen kann Es kann meist nur auf die oberste Speicherstelle des Stacks zugegriffen werden Sehr einfach, effiziente Codeumsetzung bei geklammerten mathematischen Ausdrücken möglich PUSH Op_A ; Op_A von Speicher Stack PUSH Op_B ; Op_B von Speicher Stack ADD ; Addiere obere Werte im Stack POP Op_C ; Op_C (= Op_A + Op_B) von StackSp. implizite Adressierung von A und B bei ADD Akkumulator - Architektur Ausgezeichnetes Register: Akku LOAD und STORE wirken nur auf Akku. Er ist als expliziter Operand an jeder Operation beteiligt. Jede Operation braucht nur eine Adresse Sehr kompaktes Befehlsformat LDA Op_A ; Op_A von Speicher Akku ADD Op_B ; Akku = Akku + Op_B STA Op_C ; Op_C (= Op_A + Op_B) AkkuSp. a a b ALU Ergebnis Speicher Speicher Stack Akku b ALU Ergebnis Folie 196

3 General Purpose Registers (GPR) - Architektur Register-Register-Architektur - RISC (auch Load-Store-Architektur) alle Operationen greifen nur auf Register zu, nur LOAD und STORE greifen auf Speicher zu Register verfügbar einfaches Befehlsformat fester Länge alle Instruktionen brauchen in etwa gleich lange LOAD R1, Op_A ;lade Op_A aus Speicher in R1 LOAD R2, Op_B ;lade Op_B aus Speicher in R2 ADD R3, R1, R2 ;addiere R1 und R2, Ergbn.R3 STORE Op_C, R3 ;speicher R3Op_C (=Op_A + Op_B) Speicher Register a b ALU Ergebnis Register-Speicher-Architektur - CISC (Mischung von Akkumulator- und Load-Store-Architektur) Operationen greifen auf Register und/oder Speicher zu Befehlsformat variabler Länge mächtige Befehle stark unterschiedliche Zeiten für Instruktionsausführung MOV AX, Op_A ; Op_A von Speicher Register AX ADD AX, Op_B ; AX = AX + Op_B MOV Op_C, AX ; Op_C = AX (= Op_A + Op_B) Speicher Register a b ALU Ergebnis Folie 197 Anwendung der Prozessor-Klassen Art des Prozessors / Befehlssatzes CISC Complex Instruction Set Computer Mikroprozessoren Mikrocontroller Transputer DSP Digitale Signalprozessoren RISC Reduced Instruction Set Computer Mikroprozessoren Mikrocontroller Spezialprozessoren Numerische Co-Prozessoren Grafikcontroller / GPU I/O-Prozessoren Vorherrschende Architektur Princeton (Von Neumann) MIMD Harvard Princeton (Von Neumann) Stack-Architekturen / SIMD Princeton / Harvard / SIMD Meist wie Mikrocontroller Folie 198

4 Argumente für RISC An der Berkeley University wurden Anfang der 80er Jahre in einer höheren Programmiersprache geschriebene Programme untersucht. Dabei, und in weiteren Untersuchungen, stellte man u.a. folgendes fest: 20% des gesamten Befehlsvorrates waren für 60% des Mikrocodes des Steuerwerks verantwortlich, beanspruchten aber nur 0,2% der CPU-Zeit. Maschinenbefehle mit Speicherzugriff (Load, Store, Call, Return, usw.) beanspruchen den Großteil der CPU-Zeit. Einfachere Befehle wie Load, Store, Compare, Add, Sub werden häufiger angewendet als komplexere (anwendungsabhängig!). Komplexe Befehle benötigen eine aufwändigere Decodierung durch das Steuerwerk (i.d.r. mittels Mikroprogramm realisiert), werden also langsamer abgearbeitet. Festverdrahtete Steuerwerke arbeiten schneller als mikroprogrammierte Steuerwerke. Voraussetzung: Kleine Befehlssätze und regelmäßige Befehlsformate. Eingesetzte Compiler verwendeten selten die komplexen Befehle, sondern nur Subsets der umfangreichen Befehlssätze (dadurch werden die Compiler einfacher). Der Einsatz von optimierenden Compilern drängt die Programmierung in Maschinensprache zurück. Folie 199 Vergleich von CISC und RISC CISC Complex Instruction Set Computer Komplexe Instruktionen, Ausführung in mehreren Taktzyklen Jede Instruktion kann auf den Speicher zugreifen Kein oder wenig Pipelining Instruktionen werden von Mikroprogramm interpretiert Instruktionsformat variabler Länge Kompakter Code Viele Instruktionen und Adressierungsarten Die Komplexität liegt im Mikroprogramm Einfacher Registersatz RISC Reduced Instruction Set Computer Einfache Instruktionen, Ausführung in einem Taktzyklus. Nur Lade- und Speicherbefehle greifen auf den Speicher zu Intensives Pipelining Instruktionen werden durch festverdrahtete Hardware ausgeführt Instruktionen alle mit fester Länge Code weniger kompakt Wenige Instruktionen und Adressierungsarten Die Komplexität liegt im Compiler Umfangreiche Registersätze Nach A. S. Tanenbaum Zitat von Antoine de Saint-Exupery: Perfektion ist nicht erreicht, wenn nichts mehr hinzugefügt werden kann, sondern wenn nichts mehr übrig ist, was man weglassen kann. Folie 200

5 RISC Beispiel: POWER-PC (Apple/MacIntosh) PowerPC 603 Mikroprozessoren: z.b. von IBM als PPC603 Serie und von Motorola als MPC603 - Serie User Programmiermodell (Auszug): 64 Bit 32 oder 64 Bit (je nach Prozessorausf.) Bild: PowerPC ec603e (G2) von Motorola Weitere Beispiele für RISC-Prozessoren: Intel i860, SPARC, Alpha, MIPS R4000 (IBM, Motorola) Quelle: Motorola / 1998 Folie 201 Zusammenfassung der Eigenschaften von RISC Bis zu zweifache Leistung wie CISC bei gleicher Technologie ( Daumenregel, manchmal werden auch höhere Werte genannt). Die Realisierung des Steuerwerks kann durch festverdrahtete Logik erfolgen, da die Befehle einfach sind. Zur Minimierung von Speicherzugriffen werden viele CPU-interne Register vorgesehen. Es werden einfache, schnell zu verarbeitende Maschinenbefehle geschaffen, welche sich besonders gut für Pipelining eignen. Kennzeichen sind: Feste Befehlslänge und feste Bearbeitungszeit. Häufig vorkommende Anweisungen von Hochsprachenprogrammen werden möglichst effektiv auf einfache Maschinenbefehle abgebildet. Compiler für RISC-Prozessoren müssen neben der Umsetzung von Hochsprachen in Maschinenbefehle auch für die korrekte Beschickung und effiziente Ausnutzung der Befehlspipeline und der Register sorgen. Die Komplexität der Mikroprogramme von CISC-Prozessoren wird bei RISC-Prozessoren auf die Maschinenprogrammebene gehoben. Stand der Technik: Pentium (PC) CISC mit RISC-Ansätzen PowerPC (MacIntosh) RISC mit CISC-Erweiterungen Folie 202

6 5.3 Parallelrechnerarchitekturen M.J. Flynn (1966) betrachtet die Anzahl der gleichzeitig zu verarbeitenden Daten und gleichzeitig ausführbaren Instruktionen (also die Art des Befehlsund Datenstroms) und unterscheidet bei Rechnern genau vier Grundtypen: Single-Instruction, Single Data (SISD): Es gibt nur einen sequentiell abgearbeiteten Befehlsstrom und einen entsprechenden sequentiellen Datenstrom. Single-Instruction, Multiple Data (SIMD): Ein einziger sequentiell abgearbeiteter Befehlsstrom steuert einen mehrfachen parallelen Datenstrom. Multiple-Instruction, Single Date (MISD): Hier würden mehrere Steuerwerke einen einzigen Datenstrom steuern. Multiple-Instruction Multiple Data (MIMD): Hier geschieht die Abarbeitung sowohl befehls- als auch datenparallel. Befehlsstrom Datenstrom Single Data Mulitiple Data Single Multiple Instruction Instruction SISD SIMD MISD MIMD Literaturhinweise: Flynn, M.J.: Computer Architecture. Jones and Bartlet, 1995 Flynn, M.J.: Some Computer Organizations and their Effectiveness. IEEE Transactions on Computers 21, 1972, pp Folie 203 SISD-Rechner Leitwerk Speicher Befehlsstrom Datenstrom Informationsfluss beim SISD-Rechner Zu den SISD-Rechnern zählen alle Einzelrechner, die eigenständig zur Lösung ihrer Aufgaben eingesetzt werden, also CISC- und RISC- Rechner die meisten Mikroprozessoren (Intel-Serie bis mindestens 80486) fast alle Mainframe-Computer Fast alle Minicomputer der 80er Jahre. Pipeline-Prozessoren werden allgemein dazugezählt. Bei einem "echten" SISD-Rechner werden auch die I/O-Vorgänge vom Prozessor selbst erledigt oder allenfalls durch intelligente Controller unterstützt. Folie 204

7 Leitwerk 3 Programmspeicher Datenstrom 3 n-1 n-1 Hauptspeicher SIMD-Rechner Befehlsstrom n n Es gibt nur einen Befehlsstrom, der mehrere parallele Datenströme steuert. Es existiert nur ein Leitwerk zur Befehlsentschlüsselung. Es werden parallel mehrere e benutzt. Das Verteilen der Befehlsinformation an die einzelnen Einheiten nennt man Instruction Broadcasting". Jede Verarbeitungseinheit verfügt über einen eigenen bidirektionalen Zugriffspfad zum Hauptspeicher. Damit liegt eine Erweiterung der von Neumann Struktur vor. Beispiele für SIMD-Rechner sind: Vektorrechner, wenn der Vektorrechner parallele e mit parallelem Speicherzugriff besitzt. Werden die einzelnen Komponenten des Vektors dagegen nur nacheinander auf die Stufen einer einzigen Pipeline projiziert, so ist die Maschine ein SISD-Rechner. VLIW-Prozessoren (very long instruction word processor). Ein einziger Befehl kann typischerweise 5 bis 10 Operatoren haben, die über parallel laufende Funktionseinheiten miteinander verbunden werden. Anwendung: Spezialprozessoren zur Komprimierung und Dekomprimierung von Bilddaten eingesetzt. MMX-Einheit von Intel-Prozessoren Folie 205 Finite-Elemente-Simulation auf einem Vektorrechner (Cray) Simulation von Blechumform-Prozessen: Erster Vektorrechner: Cray 1 Folie 206

8 Beispiel VLIW-Architektur Compiler wertet vorhandene Datenfluss-Informationen zur optimalen Ausnutzung der internen parallelen Einheiten aus. Statische Ansteuerung der Einheiten durch fest reservierte Teile des Instruktionswortes Compiler muss gesamte Parallelisierung vornehmen! Sehr langer Befehlscode, meist 128 oder 256 Bit (bis zu 1024 Bit). Große Speicherbandbreite und umfangreiche Registerbänke erforderlich. Very Long Instruction Word: Unterbefehl 1 Unterbefehl 2 ADD SUB VLIW Verarbeitungsstufen: VLIW holen Unterbefehl n MUL VLIW dekodieren Register lesen Register lesen Register lesen Operation ausführen () Register Schreiben Operation ausführen () Register Schreiben Operation ausführen () Register Schreiben Folie 207 MISD-Rechner Leitwerk 1 Leitwerk 2 Leitwerk 3 Leitwerk n - 1 Leitwerk n Befehlsstrom n-1 n Datenstrom Hauptspeicher n-1 n Programmspeicher Mehrere e bearbeiten einen Datenstrom ( Fließbandprinzip ) Struktur erinnert an Pipelining: Die Gesamtaufgabe wird in aufeinanderfolgende Teilschritte zerlegt. Daher werden die Pipelineprozessoren oft als MISD-Systeme bezeichnet (falls man sie nicht SISD zurechnet). Softwaretechnisch umgesetzt ist eine solche Betriebsweise auf Betriebssystemebene beispielsweise in UNIX-Systemen, wenn mittels des "pipe"- Befehls ständig ein Rechenprozess einen anderen mit Daten versorgt. Folie 208

9 Filtern von Videodaten Beispiel MISD-Pipelinerechner Zum Filtern von Videodaten wird der Gesamtfilter in aufeinanderfolgende Teilfilter zerlegt Jeder Teilfilter wird von einem Pipelineprozessor verarbeitet höchste Verarbeitungsleistungen bei akzeptablem Hardwareaufwand. Kamera Analog/Digital Wandlung Prozessor 1 Prozessor 2 Prozessor 3 Gefilterte Videodaten Folie 209 MIMD-Rechner Leitwerk 1 Leitwerk 2 Leitwerk 3 Leitwerk n - 1 Leitwerk n Befehlsstrom werk n-1 Rechen- Datenstrom n 1 2 Parallele Bearbeitung von Befehlen und Daten Ein Leitwerk und das von ihm gesteuerte fasst man unter dem Begriff "Prozessor" zusammen Anwendung: Ein moderner PC hat mit Video-Karten, Sound-Karten etc. ein erhebliches Maß an Parallelarbeit implementiert. Der Hauptprozessor selbst hat (ab Pentium bzw. AMD K5) ein erhebliches Maß an Parallelverarbeitung. PCs und Server mit mehr als einer CPU sind Stand der Technik. Mehrprozessorsysteme, Parallelrechnersysteme, Supercomputer. 3 Hauptspeicher n-1 n Programmspeicher Folie 210

10 Beispiel MIMD: Parallelrechnersysteme Beispiel: Top 500 des Supercomputing (Jahr 2000) Nr. 1: IBM ASCI White SP Power MHz, Prozessoren, Gflops, Lawrence Livermore Nat. Lab. Verteilter Adressraum Nach Karl, W.: Uni Karlsruhe-Informatik Folie 211 Beispiel MIMD: Sega Spielekonsole Der Prozessor (16-Bit Prozessor mit 32-Bit Registern, Fa. Motorola) führt das Hauptprogramm aus Dabei nutzt er den Z80-Prozessor (8-Bit Prozessor, Fa. Zilog) für nebenläufige Aufgaben Der Prozessor lädt Programme in den Z80-Prozessor, welche dann unabhängig vom Prozessor ausgeführt werden Prozessor Z80 Prozessor Hauptspeicher Interface für Spielekassetten Systembus Programmierbarer Sound-Generator Sound-Synthese Baustein Digital/Analog Umsetzer für Audio und Video Interface für Bedienkonsole Folie 212

11 5.4 Architektur virtueller Maschinen Interpreter Abstrakte Maschinen Eigenschaften der JVM JVM Implementierungen Java Umgebungen Architektur der JVM Interne Architektur Wesentliche Bestandteile Speichermodell Befehlssatz Arithmetik, Floating Point Sprünge und Schleifen Methodenaufrufe Folie 213 Compiler und Interpreter Compiler Hohe Ausführungsgeschwindigkeit des erzeugten Programms. Quellcode ist vor Manipulationen geschützt, da er zur Programmausführung nicht benötigt wird. (Besserer Urheberschutz) Fehlersuche schwieriger, da die symbolischen Bezüge zum Quelltext bei der Compilation verloren gehen. Zusätzliche Arbeitsschritte Compilation, Link, Load erforderlich (erschwert die Programmentwicklung). Verwendung vorgefertigter Teillösungen aus Programmbibliotheken leicht möglich (Modulare Programmierung). Interpreter Niedrige Ausführungsgeschwindigkeit, da der Quelltext immer wieder neu interpretiert wird. Programme können nur im Quelltext weitergegeben werden (Sicherheitsmängel, fehlender Urheberschutz) Debugging einfach (Einzelschrittausführung, Ansehen von Variablenständen während der Ausführung, Tracing etc.) Programmentwicklung einfach, da in Entwicklung befindliche Programme unmittelbar ausgeführt werden können. Verwendung vorgefertigter Teillösungen aus Programmbibliotheken nur bedingt bzw. gar nicht möglich. Folie 214

12 Interpreter in virtuellen Maschinen Verzahnung von Übersetzung und Ausführung des Programms Übersetzung in Interpreter-Code Interpreter interpretiert zur Laufzeit den Interpreter-Code Prozessor + Interpreter = abstrakte oder virtuelle Maschine Vorteile: Portablilität ( Übertragbarkeit) Fehlersuche und -diagnostik Speicherplatzersparnis Nachteile: geringere Effizienz (aber: dynamische Übersetzung, JIT) Interpreter sind dann sinnvoll, wenn aufwendiges Laufzeitsystem vorliegt. Compiler erzeugen Programme. Interpreter führen Programme aus. Folie 215 Abstrakte Maschinen Abstrakte Maschinen interpretieren einen abstrakten Befehlssatz. Beispiele für abstrakte Befehlssätze zur Realisierung von (UCSD-) Pascal, PROLOG, LISP, FORTH, Smalltalk und Java. Programme werden in Befehle der abstrakten Befehlssätze übersetzt, nicht direkt in Maschinenbefehle realer Maschinen. Z.B. PASCAL Abstrakte Maschine Reale Maschine Übersetzung Interpretation, Übersetzung oder Realisierung in Hardware Lediglich der Interpreter der abstrakten Befehlssätze muss für verschiedene Maschinen jeweils neu erzeugt werden. Nachteil: niedrigere Ausführungsgeschwindigkeit. Folie 216

13 Eigenschaften der JVM Die JVM ist eine Kellermaschine / Stackmaschine Operationscodes in einem Byte kodiert ( Bytecode) Typische Befehle: lade integer auf den Stack, addiere die obersten Stackelemente, starte nebenläufige Ausführung, synchronisiere nebenläufige Ausführung, Befehle zur Realisierung der Objektorientierung Byte-Code ist sehr kompakt (ca. 1/3 des Speicherbedarfs von RISC-Code). Besonders interessant für eingebettete Systeme interessant, bei denen Programme zusammen mit den Prozessor auf einem Chip gespeichert werden müssen. Anwendungen, bei denen Programme über das Internet geladen werden. Folie 217 JVM Implementierungen Java Java Java Java JVM Byte Code Byte Code Java JVM Byte Code Byte Code Just-In-Time Compiler Java JVM Byte Code Byte Code Direkte Ausführung Interpreter Binärer Maschinencode für CPU x Betriebssystem Irgendeine CPU Betriebssystem CPU x Betriebssystem Z.B. picojava (Fa. Sun) Folie 218

14 Prozessor für Network Computer Pico Java (Fa. Sun) Internet Chip für Netzwerk-Anwendungen (PDAs, Pagers etc.) Zellular-Telefon und Telekommunikations-Prozessoren Traditionelle "embedded" Anwendungen Anforderungen an Produkte für "embedded"-märkte Robuste Programme Graceful Recovery vs. Crash Komplexe Programme durch Teams entwickelt OO-Sprachen und -Entwicklungsumgebungen Wiederbenutzung von Codes von einer Produktgeneration zur nächsten Portabler Code Geringe Systemkosten (Prozessor, ROM, DRAM etc.) Hohe Rechenleistung Geringe Leistungsaufnahme, d.h. geringe Erwärmung der CPU Folie 219 JAVA - Umgebungen Folie 220

15 Interne Architektur der JVM Folie 221 Wesentliche Bestandteile der JVM method area Einmal vorhanden je virtueller Maschine, wird gemeinsam von allen Threads benutzt; enthält klassenspezifische Daten (Typinformation). heap Einmal vorhanden je virtueller Maschine, wird gemeinsam von allen Threads benutzt; enthält die dynamisch erzeugten Objekte. Java VM stacks Threadspezifisch. Enthält Zustand von nicht-nativen Methodenaufrufen, deren lokale Variablen, Übergabeparameter, den möglichen Rückgabewert sowie Methoden-interne Berechnungsergebnisse. pc registers Threadspezifisch; enthält für jeden Zeitpunkt der Ausführung einer nicht-nativen Methode die Adresse der derzeit ausgeführten Instruktion. Während der Abarbeitung nativer Methoden ist der Wert auf undefined gesetzt. Konkrete Größe des virtuellen pc-registers hängt von der Adresslänge der realen Plattform ab. native method stack Implementierungsspezifischer Speicherbereich zur Behandlung von nativen Methodenaufrufen. runtime constant pool Klassen- oder Schnittstellenspezifisch. Enthält verschiedene Konstanten, die zur Übersetzungszeit feststehen und in der constant_pool Tabelle der class-datei abgelegt sind. Die Funktion dieses Bereichs ähnelt dem einer konventionellen Symboltabelle. Folie 222

16 JVM Instruktionssatz und Datentypen Java Instruktions-Satz gut 200 OpCodes (jeweils 8 Bits) 25 Variationen 3 reservierte OpCodes 0, 1, 2, 3,... Operanden keine Register-Spezifikationen elementare und komplexe Instruktionen lokale Variable relativ zu Basiszeiger sehr kompakter Code ( ~ 1.8 Bytes) Datentypen byte short integer long float double char object returnaddress Folie 223 Speichermodell der JVM Folie 224

17 Struktur des Befehlssatzes Folie 225 Arithmetik mit der JVM Folie 226

18 JVM Laufzeitumgebung: Floating Point (IEEE 754) Folie 227 Sprünge und Schleifen Folie 228

19 Methodenaufrufe Folie Ausblick Rechnerarchitekturen Vermehrte Bedeutung von Multimediaoperationen: Verarbeitung von Datenströmen. Zusätzliche Instruktionen und/oder spezielle Recheneinheiten. Mediaprozessoren (Signalprozessoren, Videoprozessoren). VLIW-Prozessoren: Explizite Parallelität in den Instruktionen. Einfachere Hardware, komplexere Compiler. Vor allem für regelmäßige Programme (Multimediaverarbeitung) geeignet. Mehrprozessorsysteme Simultanes Multithreading (Hyperthreading) Zwei, vier oder noch mehr virtuelle CPU-Kerne auf einem Chip Multi-Core-Designs Zwei, vier oder noch mehr komplette Prozessoren auf einem Chip Folie 230

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

11.0 Rechnerarchitekturen

11.0 Rechnerarchitekturen 11.0 Rechnerarchitekturen Die Ziele dieses Kapitels sind: Kennen lernen der Rechnerklassifikation nach Flynn Betrachtung von Prozessorarchitekturen auf verschiedenen Abstraktionsebenen - Befehlsarchitektur

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz Datentypen Operanden-Stack Konstanten-Pool Methoden-Area Heap für Laufzeit-Daten Class File Format 26 Die Java Virtual Machine Java Instruktions-Satz

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1 IT für Führungskräfte Zentraleinheiten 11.04.2002 Gruppe 2 - CPU 1 CPU DAS TEAM CPU heißt Central Processing Unit! Björn Heppner (Folien 1-4, 15-20, Rollenspielpräsentation 1-4) Harald Grabner (Folien

Mehr

1 Einleitung zum RISC Prozessor

1 Einleitung zum RISC Prozessor 1 Einleitung zum RISC Prozessor Wesentliche Entwicklungsschritte der Computer-Architekturen [2, 3]: Familienkonzept von IBM mit System/360 (1964) und DEC mit PDP-8 (1965) eingeführt: Gleiche Hardware-Architekturen

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Grundlagen der Parallelisierung

Grundlagen der Parallelisierung Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen 2.5 Unterbrechungen

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.

Mehr

Rechnergrundlagen SS 2007. 11. Vorlesung

Rechnergrundlagen SS 2007. 11. Vorlesung Rechnergrundlagen SS 2007 11. Vorlesung Inhalt Evaluation der Lehre (Auswertung) Synchroner/asynchroner Systembus Kontrollfluss/Datenfluss RISC vs. CISC Speicherhierarchie Cache Lesen Schreiben Überschreiben

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Speedup: Grundlagen der Performanz Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 30. April 2015 Eine Aufgabe aus der Praxis Gegeben ein

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Hardware-Architekturen

Hardware-Architekturen Kapitel 3 Hardware-Architekturen Hardware-Architekturen Architekturkategorien Mehrprozessorsysteme Begriffsbildungen g Verbindungsnetze Cluster, Constellation, Grid Abgrenzungen Beispiele 1 Fragestellungen

Mehr

Automatisierungstechnik AP1

Automatisierungstechnik AP1 Automatisierungstechnik AP1 Übersicht 1 Lernziele: Automatisierungstechnik AP1 Einführung in die Prozessorarchitektur und Maschinenprogrammierung Grundlagen des Aufbaus und der Wirkungsweise von Prozessoren

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

Arbeitsfolien - Teil 4 CISC und RISC

Arbeitsfolien - Teil 4 CISC und RISC Vorlesung Informationstechnische Systeme zur Signal- und Wissensverarbeitung PD Dr.-Ing. Gerhard Staude Arbeitsfolien - Teil 4 CISC und RISC Institut für Informationstechnik Fakultät für Elektrotechnik

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Codesigned Virtual Machines

Codesigned Virtual Machines Codesigned Virtual Machines Seminar Virtualisierung Philipp Kirchhofer philipp.kirchhofer@student.kit.edu Institut für Technische Informatik Lehrstuhl für Rechnerarchitektur Universität Karlsruhe (TH)

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Rechnerarchitektur. Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum anmu@informatik.tu-chemnitz.

Rechnerarchitektur. Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum anmu@informatik.tu-chemnitz. Rechnerarchitektur Dr. Andreas Müller TU Chemnitz Fakultät für Informatik Fakultätsrechen- und Informationszentrum anmu@informatik.tu-chemnitz.de Rechnerarchitektur Dr. Andreas Müller TU Chemnitz Fakultät

Mehr

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff

Mehr

Computational Biology: Bioelektromagnetismus und Biomechanik

Computational Biology: Bioelektromagnetismus und Biomechanik Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung

Mehr

Karlsruher Institut für Technologie

Karlsruher Institut für Technologie Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt

Mehr

Diplomarbeit Antrittsvortrag

Diplomarbeit Antrittsvortrag Diplomarbeit Antrittsvortrag Christian Müller Run-time byte code compilation, interpretation and optimization for Alice Betreuer: Guido Tack Verantwortlicher Prof.: Gert Smolka Die nächsten 15 Minuten...

Mehr

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

Mehr

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150. Oliver Haase Hochschule Konstanz 1 Programmiertechnik Prof. Dr. Oliver Haase Raum G124 haase@htwg-konstanz.de Tel: 07531/206-150 Oliver Haase Hochschule Konstanz 1 Organisatorisches Vorlesung: montags, 8:00 9:30h, Raum C-109 freitags, 8:00

Mehr

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

Assembler-Programmierung

Assembler-Programmierung Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung

Mehr

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen

Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung, Abstrakte Maschinen, Rechnerarchitekturen Kode-Erzeugung: Syntaxbaum Ausgabeprogramm Starte mit Syntaxbaum: Darstellung des eingegebenen Programms Wähle Zielarchitektur Wähle abstrakte

Mehr

4.2 Universalrechner: Schaltung unabhängig vom Problem 185

4.2 Universalrechner: Schaltung unabhängig vom Problem 185 4.2 Universalrechner: Schaltung unabhängig vom Problem 85 a) Geben Sie binär die Befehlsworte an, mit denen Sie die Eingänge a, b und c in die Register R, R2 und R übernehmen. K D M4 M M2 M Kommentar XXXXXXXXXXX

Mehr

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...? Kapitel 1 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Einführung Hallo, Computer...? Aufbau eines Computers Was ist eine Programmiersprache? Der Programmierprozess Warum Java?

Mehr

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Technische Informatik 2 Adressierungsarten

Technische Informatik 2 Adressierungsarten Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine

Mehr

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1 Ein kleiner Einblick in die Welt der Supercomputer Christian Krohn 07.12.2010 1 Vorschub: FLOPS Entwicklung der Supercomputer Funktionsweisen von Supercomputern Zukunftsvisionen 2 Ein Top10 Supercomputer

Mehr

Proseminar Technische Informatik A survey of virtualization technologies

Proseminar Technische Informatik A survey of virtualization technologies Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

Umsetzung in aktuellen Prozessoren

Umsetzung in aktuellen Prozessoren Kapitel 8: Umsetzung in aktuellen Prozessoren 4 Realisierung elementarer Funktionen Reihenentwicklung Konvergenzverfahren 5 Unkonventionelle Zahlensysteme redundante Zahlensysteme Restklassen-Zahlensysteme

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ Seite 1 Einführung in die Programmierung mit C Teil IV - Weiterführende Themen 16. SIMD Programmierung Was bedeutet SIMD Seite SIMD Single-Instruction, Multiple-Data, also eine Instruktion, mehrere Daten

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

Implementierung: Direkt abgebildeter Cache

Implementierung: Direkt abgebildeter Cache Implementierung: Direkt abgebildeter Cache Direkt-abgebildeter Cache von 64 KB mit 16-Byte-Linien (Adress- und Wortlänge 32 Bit, Byteadressierung) Address (showing bit positions) 31 30 29 28..... 19 18

Mehr

2 Grundlagen der Programmierung

2 Grundlagen der Programmierung 2 Grundlagen der Programmierung In diesem Kapitel bereiten wir die Grundlagen für ein systematisches Programmieren. Wichtigstes Ziel ist dabei die Herausarbeitung der fundamentalen Konzepte von Programmiersprache.

Mehr

Technische Informatik 2 Maschinenprogrammierungskonzepte

Technische Informatik 2 Maschinenprogrammierungskonzepte Technische Informatik 2 Maschinenprogrammierungskonzepte Prof Dr Miroslaw Malek Sommersemester 2005 wwwinformatikhu-berlinde/rok/ca Thema heute Ausführung von Befehlen Ein-/Ausgabeprogrammierung Architekturen

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

Mehr

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen

Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen Binärcodierung elementarer Datentypen: Darstellung negativer Zahlen Statt positive Zahlen von 0 bis 2 n -1mit einem Bitmuster der Länge n darzustellen und arithmetische Operationen darauf auszuführen,

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Grundlagen der Programmierung 2. Parallele Verarbeitung

Grundlagen der Programmierung 2. Parallele Verarbeitung Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,

Mehr

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE D - CA - IV - AA - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 4 DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE Sommersemester 2003 Leitung:

Mehr

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache

Mehr

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

Mehr

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

Aufbau von modernen Computersystemen

Aufbau von modernen Computersystemen Kapitel 2: Aufbau von modernen Computersystemen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Software Anwendersoftware Betriebssystem Hardware von Neumann Architektur

Mehr

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen. OpenCL Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.de Abstract: In diesem Dokument wird ein grundlegender Einblick in das relativ

Mehr

Java für Embedded Systems

Java für Embedded Systems Java für Embedded Systems Marc Balmer, micro systems marc@msys.ch 25. April 2001 Java-fähige Embedded Systems Palm PDA TINI Board Java-Ring ibutton Cyberflex Smart Card... Embedded Systems Steuer- und

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

Mehr

Nebenläufige Programmierung

Nebenläufige Programmierung Nebenläufige Programmierung Perspektiven der Informatik 27. Januar 2003 Gert Smolka Telefon-Szenario Eine Telefonzelle Mehrere Personen wollen telefonieren Immer nur eine Person kann telefonieren Ressource

Mehr

Computerarchitektur. Andrew S.Tanenbaum James Goodman BIBLIOTHEK. Strukturen Konzepte Grundlagen. Pearson Studium

Computerarchitektur. Andrew S.Tanenbaum James Goodman BIBLIOTHEK. Strukturen Konzepte Grundlagen. Pearson Studium Andrew S.Tanenbaum James Goodman Technische Universität Darmatadt FACHBEREICH INFORMATIK BIBLIOTHEK Inventar-Nr.: Sachgebiete:. Standort: Computerarchitektur Strukturen Konzepte Grundlagen Pearson Studium

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Christian Wawersich Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Universität Erlangen-Nürnberg

Mehr

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem?

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem? 1 Einleitung 1.1 Aufgaben und Grobstruktur Was ist ein Betriebssystem? Betriebssystem (Definition nach DIN 44300) Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage

Mehr

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7 1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht

Mehr

Taschenbuch Mikroprozessortechnik

Taschenbuch Mikroprozessortechnik Taschenbuch Mikroprozessortechnik von Thomas Beierlein, Olaf Hagenbruch 3., aktualisierte und erweiterte Auflage Hanser München 2004 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22072 0 Zu

Mehr

Übersetzung objektorientierter Programmiersprachen

Übersetzung objektorientierter Programmiersprachen Bernhard Bauer Riitta Höllerer Übersetzung objektorientierter Programmiersprachen Konzepte, abstrakte Maschinen und Praktikum Java-Compiler" Mit 29 Abbildungen Springer Teil 1: Theorie 1 Einleitung 3 l.

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Lösungsvorschlag zur 4. Übung

Lösungsvorschlag zur 4. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 4. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche Aussagen zu Bewertungskriterien

Mehr

Technische Informatik I

Technische Informatik I Technische Informatik I SS 2001 PD Dr. A. Strey Abteilung Neuroinformatik Universität Ulm Inhalt Einführung: Überblick über die historische Entwicklung der Rechnerhardware Teil 1: Digitale Logik kurzer

Mehr

Convey, Hybrid-Core Computing

Convey, Hybrid-Core Computing Convey, Hybrid-Core Computing Vortrag im Rahmen des Seminars Ausgewählte Themen in Hardwareentwurf und Optik HWS 09 Universität Mannheim Markus Müller 1 Inhalt Hybrid-Core Computing? Convey HC-1 Überblick

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

Zahlen und Zeichen (1)

Zahlen und Zeichen (1) Zahlen und Zeichen () Fragen: Wie werden Zahlen repräsentiert und konvertiert? Wie werden negative Zahlen und Brüche repräsentiert? Wie werden die Grundrechenarten ausgeführt? Was ist, wenn das Ergebnis

Mehr

Das Rechnermodell von John von Neumann

Das Rechnermodell von John von Neumann Das Rechnermodell von John von Neumann Historisches Die ersten mechanischen Rechenmaschinen wurden im 17. Jahhundert entworfen. Zu den Pionieren dieser Entwichlung zählen Wilhelm Schickard, Blaise Pascal

Mehr

Lektion 3: Was ist und was kann ein Computer?

Lektion 3: Was ist und was kann ein Computer? Lektion 3: Was ist und was kann ein Computer? Helmar Burkhart Informatik burkhart@ifi.unibas.ch EINFÜHRUNG IN DIE INFORMATIK I 3-0 Übersicht Lektion 3 Hardware Software Aufbau eines Computers Rechnerkern

Mehr

Betriebssysteme Teil 6: Hardware-Schicht II

Betriebssysteme Teil 6: Hardware-Schicht II Betriebssysteme Teil 6: Hardware-Schicht II 13.11.15 1 Literatur [6-1] Engelmann, Lutz (Hrsg.): Abitur Informatik Basiswissen Schule. Duden-Verlag, 2003, S.43-53, 214-224, 239-242, S. 267-299,304-313 [6-2]

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

Einführung. Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck

Einführung. Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck Einführung Einführung in die Technische Informatik Falko Dressler und Stefan Podlipnig Universität Innsbruck Überblick Motivation Komponenten eines Rechners Historische Entwicklung Technologische Grundlagen

Mehr

Softwarelabor 1. Einführung

Softwarelabor 1. Einführung Softwarelabor 1. Einführung Prof. Dr. holger.vogelsang@fh-karlsruhe.de Inhalt Inhalt 1. Einführung Warum Java? Marktanforderungen Geschichte von Java Eigenschaften von Java Einführung in Eclipse Kleine

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 2 Virtual Storage el0100 copyright

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de Übersicht FachChinesisch SPARC - UltraSparc III/IV PowerPC - PowerPC 970(G5) X86 - Pentium4(Xeon), Itanium, (Pentium M) X86 - AthlonXP/MP,

Mehr

Mikrocomputertechnik. Einadressmaschine

Mikrocomputertechnik. Einadressmaschine technik Einadressmaschine Vorlesung 2. Mikroprozessoren Einführung Entwicklungsgeschichte Mikroprozessor als universeller Baustein Struktur Architektur mit Akku ( Nerdi) FH Augsburg, Fakultät für Elektrotechnik

Mehr

Programmierung Paralleler Prozesse

Programmierung Paralleler Prozesse Vorlesung Programmierung Paralleler Prozesse Prof. Dr. Klaus Hering Sommersemester 2007 HTWK Leipzig, FB IMN Sortierproblem Gegeben: Menge M mit einer Ordnungsrelation (etwa Menge der reellen Zahlen) Folge

Mehr