MMX: Grundidee. SIMD: Media processing. x86: Register. SIMD: Literatur. Medientechnik SIMD-Befehlssätze 1. "Media processing" mit dem PC?!

Größe: px
Ab Seite anzeigen:

Download "MMX: Grundidee. SIMD: Media processing. x86: Register. SIMD: Literatur. Medientechnik SIMD-Befehlssätze 1. "Media processing" mit dem PC?!"

Transkript

1 SIMD: Media processing "Media processing" mit dem PC?! steigende Anforderungen für Audio, Video, Image, 3D grosse Datenmengen aber oft mit geringer Genauigkeit (8 bit.. 6 bit, 32 bit FP) x86-fpu ausgereizt Trick: vorhandene ALUs/Datenpfade für SIMD verwenden Befehlssatzerweiterungen: MMX 3Dnow! ISSE AltiVec ISSE2 2 SIMD: Literatur MMX: ISSE: 3D Now! "multimedia extension" 996 "internet SIMD streaming extension" (PowerPC G4, Macintosh) "The MMX technology page has been removed" developer.intel.com/drg/mmx/manuals/ developer.intel.com/drg/mmx/appnotes/ Linux "parallel-processing-howto" IEEE Micro 8/96 S.42, c t /97 S.228ff Intel website: developer.intel.com/software/idap/resources/technical_collateral/pentiumiii/ c t 4/ S.34 (ISSE/3Dnow/Altivec) AMD website: c t 5/98 S.86 ff MMX: Grundidee 32/64-bit Datenpfade sind "overkill" ALUs aber leicht parallel nutzbar: carry-chain auftrennen SIMD leicht implementierbar ~% Fläche beim Pentium/MMX Performance 2x.. 8x für MMX Ops Performance.5x.. 2x für Apps Pentium/MMX: press release größerer L-Cache als Pentium-I x86: Register 3 5 EAX AX AH AL accumulator ECX CX CH CL count: String, Loop EDX DX DH DL data, multiply/divide EBX BX BH BL base addr ESP SP stackptr EBP BP base of stack segment ESI SI index, string src EDI DI index, string dst CS code segment SS stack segment DS data segment ES extra data segment FS GS 32 bit ALU 6 bit ALU 6 bit ALU 8 bit 8 bit 8 bit 8 bit 886 Exx ab FPR FPR7 Medientechnik SIMD-Befehlssätze IEEE Micro 3/4-99 S.37ff EIP EFLAGS IP PC status FP Status

2 MMX: Entwurfsentscheidungen Kompatibilität zu alten Betriebssystemen / Apps: keine neuen Register möglich keine neuen Exceptions bestehende Datenpfade nutzen möglichst wenig neue Opcodes alte Prozessoren und neue Software Test-Applikationen: (audio/image/mpeg-/3d-graphik/...) keine Tools optimierte Libraries verfügbar MMX: Register MMX.. MMX7 8 Register a 64 bit in den FP-Registern FP NaN FP TOS = tag = valid.. FP-Register nutzen Überlauf ignorieren saturation arithmetic 64 bit Code doppelt MMX DLLs 6 bit dominiert Assembler 3 TOS tag FP7 FP MMX7 MMX: Datenformate 64-bit Register, 4 Datentypen: packed byte 8 / packed word 4 / packed doubleword 2 / quadword Zugriff abhängig vom Befehl b7 b2 b b w3 w2 w w 63 d d 63 q MMX: Befehlssatz EMMS (FSAV / FRESTOR) clear MMX state (handle FP regs) MOVD mm, mm2/mem32 move 32 bit data MOVQ mm, mm2/mem64 move 64 bit data PACKSSWB mm, mm2/mem64 pack 86 into 88 signed saturate PUNPCKH mm, mm2/mem64 fancy unpacking (see below) PACKSSDW mm, mm2/mem64 pack 432 into 46 signed saturate PAND mm, mm2/mem64 mm AND mm2/mem64 / auch OR/XOR/NAND PCMPEQB mm, mm2/mem64 8a==b, create bit mask / auch GT PADDB mm, mm2/mem64 8add 8 bit data PSUBD mm, mm2/mem64 2sub 32 bit data / signed wrap PSUBUSD mm, mm2/mem64 2sub 32 bit data / unsigned saturate PSLL mm,mm2/mem64/imm8 shift left mm / auch PSRA/PSRL PMULL/HW mm, mm2/mem64 4mul 66 store low/high 6 bits PMADDWD mm, mm2/mem64 MAC 46 -> MMX Medientechnik 63 MMX TOS= insgesamt 57 Befehle (Varianten B/W/D S/US)

3 MMX: "Saturation Arithmetic" was soll bei einem Überlauf passieren? wrap-around..., 25, 26, 27, -28, -27,... saturation..., 25, 26, 27, 27, 27,... Zahlenkreis "aufgeschnitten" gut für DSP- Anwendungen ff 8 7f ff 8 7f MMX: "packed multiply add word" für Skalarprodukte: vector_x_matrix_4x4( MMX64 v, MMX64 m ) { MMX64 v, v2323, t, t, t2, t3; } v = punpckldq( v, v ); // unpack v/v v2323 = punpckhdq( v, v ); // unpack v2/v3 t = pmaddwd( v, m[] ); // v v first 2 rows t = pmaddwd( v2323, m[] ); // v2 v3 first 2 rows t2 = pmaddwd( v, m[2] ); // v v last 2 rows t3 = pmaddwd( v2323, m[3] ); // v2 v3 last 2 rows t = paddd( t, t ); // add t2 = paddd( t2, t3 ); // v = packssdw( t, t2 ); // pack 32->6, saturate paddw (wrap around): a3 b3 a3b3 a2 b2 a2b2 a b ab paddusw (saturating): a3 a2 a b3 b2 b a3b3 a2b2 ab 7FFFh 4h 83h 7FFFh pmaddwd a3 a2 a b3 b2 b a3b3a2b2 3h 7FFFh a b abab MMX: "packed compare" Vergleiche / Sprungbefehle: pcmpgtw: schlecht parallelisierbar Pipeline-Abhängigkeiten keine Sprungbefehle in MMX compare-operationen setzen Bitmasken Bitmasken für logische Ops verwendbar Beispiel: chroma-keying MMX: packssdw / punpckhbw packssdw: pack with saturation 32 -> 6 signed data: punpckhbw: 8h D2h h 8h > > > > h FFFFh h h FFFFh 82h h FCh 8h 7FFFh 82h FCh punpcklbw: lower 32 bits Medientechnik MMX 3

4 MMX: pmulllw / pmullhw pmull[lh]w: multiply 4 words, write low/high byte of results: FFFFh h h 2h 4 x 6 bit 2h D2h h 2h 4 x 6 bit FFFFh FFFEh h h h h h 4h 4 x 32 bit pmullhw pmulllw FFFFh h h h 4 x 6 bit high words entsprechend die low words mit Packbefehlen kombinieren, wenn 32-bit Resultate gewünscht MMX: Chroma Keying () "Wetterbericht": MMX berechnet 4 Pixel / Takt keine Branch-Befehle Schritt : Maske erstellen (high-color: 6 bit/pixel) MMX: Chroma Keying (2) MMX: Zufallszahlen x(t) = (x(t-) 47989) & xffff; QuadWord DithMultVal = x4f34f34f34f3; QaudWord DithRegInit = x4f3994d2379bb75; Init: MOVQ mm, DithRegInit; Loop: // x(t) -> x(t) PMULLW mm, DithMulVal // 3 clocks MOVQ [result64], mm // clocks PMULLW latency 3, throughput (on Pentium) bis zu vier Zufallszahlen pro Takt (U/V pipelines genutzt) 4 MMX-Beispiele Medientechnik [Intel MMX appnote]

5 MMX: tolowercase() str mask = A - str s lowercase aber: Probleme mit Umlauten... e 4 [aus Intel MMX appnote] r 4 pcmpgtb pand padd Dnow! Motivation P e stark wachsende Bedeutung von 3D-Spielen h T 4 pcmpgtb pand a b c d e f 2! " # $ % & ( ), -. / : ; < = >? A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ mask str 32-bit Gleitkommaoperationen nötig für Geometrie-Transformationen FPU im AMD K6 vergleichsweise langsam MMX unterstützt nur Integer-Datentypen SIMD-Befehle für 32-bit float Datentypen schnelle Add/Mult/MAC/Sqrt-Befehle muß ohne OS-Unterstützung nutzbar sein MMX-Register verwenden MMX zwei-operanden Adressierung je zwei float-datenwerte pro MMX-Register 3Dnow! Spezifikation (vergleiche Motorola Altivec / Intel ISSE) 2 = [ = Z Dnow! Entscheidungen SIMD-Befehle für 32-bit float Datentypen: MMX-Register verwenden, zwei Datenworte pro Register zwei-adress-befehle keine Status-Flags, keine Exceptions MMX-Befehle nutzbar (logische, Vergleiche,...) belegt nur einen einzigen x86 Opcode (FF... subobcode) möglichst wenig Chipfläche: keine Unterstützung für NaN/INF/... nur round-to-nearest-even Modus, - LSB Saturation-Arithmetik statt Überlauf Approximation für Division und Quadratwurzel 3Dnow! Befehlssatz Medientechnik 3Dnow! 5

6 3Dnow! Prefetch Speicherzugriffe in Multimedia-Applikationen: reguläre Speicherzugriffsmuster ungewöhnliche Lokalität viele Daten werden (pro Frame) nur einmal benötigt aber regelmässig (in jedem Frame) Performance stark von optimaler Cache-Ausnutzung abhängig prefetch-befehl quasi normaler Ladebefehl, aber ohne Zielregister gewünschte Daten werden in L/L2-Cache geladen löst keine Exceptions / Page Faults aus "memory streaming" auch für andere Anwendung gut nutzbar (etwa Numerik) 3Dnow! Division / Quadratwurzel Rechenwerk für Division / Sqrt ist sehr aufwendig möglichst wenig Chipfläche für 3Dnow! teilweise nur geringe Genauigkeit benötigt etwa Shading/Beleuchtungsberechnung für 3D-Graphik Division und Quadratwurzel per Approximation erster Befehl liefert 4/5 bit Approximation aus Lookup-Table und Interpolation mit vollem Takt zusätzliche Befehle für Newton-Iteration quadratische Konvergenz: zwei Iterationsschritte für volle Genauigkeit wenig Hardwareaufwand voll in Pipeline integriert, maximaler Durchsatz 3Dnow! Division / Quadratwurzel Hardware-Dividierer ist sehr aufwendig oft wird nicht die volle Genauigkeit benötigt, z.b. Beleuchtungsberechnung bei 3D-Graphik Iteration zur Berechnung von /b: x = x (2 - bx) 3Dnow! Quadratwurzel Iteration zur Berechnung von /sqrt(b): x =.5 x (3 - bx²) separate Befehle zur ersten Schätzung (4 bit) zwei weitere Befehle zur ersten und zweiten Iteration Resultat mit 24-bit Genauigkeit abschließende Multiplikation für sqrt(x) statt /sqrt(x) 6 3Dnow! Medientechnik

7 3Dnow! Div/Sqrt-Applet 3D Now! Apfelmännchen Eingabeparameter: Argument x Startwert x Ausgabe: Iterationswerte x,x,... exakte Lösung quadratische Konvergenz stark abhängig vom Startwert Function IterPasD (I,R :Double; Grenze, Tiefe :Paratyp):Paratyp; var A,B,C:double; Begin Count:= ; A:=; B:=; Repeat C:= SQR(A) - SQR(B) R; B:= 2AB I; A:= C; INC (Count); Until (abs (A) >Grenze) or (Abs (B) > Grenze) or (Count=Tiefe); IterpasD:=Count; End; 3D Now! Apfelmännchen ; Quadriere (A jb)2 = A2 - B2 j 2AB ; Entry MM ;A B ; MM ; - ; MM2 ;R I ; loop: MOVQ MM3,MM ;MM3=A B MOVQ MM4,MM ; oh weh PSLLQ MM3,32 ; das Vertauschen ist PSRLQ MM4,32 ; sehr mühsam... POR MM3,MM4 ;MM3=B A PFMUL MM3,MM ;MM3= AB AB PFMUL MM,MM ;MM= A2 B2 PFMUL MM,MM ;MM= A2 -B2 PFACC MM,MM3 ;MM= A2 - B2 ABAB PFADD MM,MM2 ;MM= A2 - B2 R 2ABI ; = A(n) = B(n) PF2ID MM4,MM ;ia = INT(A) ib = Int(B) MOVQ ia,mm4 ; Sieh nach, ob A oder B > GRENZE ist... dec CX ; iteration counter jnz loop ISSE: Homepage / Literatur Medientechnik 3Dnow! 7

8 ISSE: Entwurfsentscheidungen Markt fordert 3D mindestens doppelte FP-Performance notwendig 2-fach oder 4-fach SIMD? 28-bit machbar (FP bereits 8-bit) bereits 2 64-bit ALUs auf dem Prozessor 4-fach SIMD "already register-starved IA32 architecture" neue Register, 28-bit erfordert OS-Unterstützung 7 neue Befehle sowohl "packed" als auch "scalar ISSE instructions" ISSE: "Streaming" typisch für Medienverarbeitung: ALUs müssen auf die Daten warten Streaming: hohe Datenmenge / Datenrate geringe Lokalität: viele Daten (Pixel) werden nur x benötigt Cache-"Pollution" herkömmliche Cache-Strategien nutzlos GHz, 8x SIMD, nsec Speicher: 8 OPs / Zugriff Cache-Nutzung anpassen Prefetch: Daten rechtzeitig anfordern Speicherlatenz fast perfekt versteckt (für Media-Apps.) Performance leidet (extrem) ISSE: Prefetch-Befehl ISSE: Register ISSE 27 xmm xmm7 SIMD: src op src2 op op op op Scalar: FP/MMX 79 op fp fp7 8 SSE Medientechnik dst

9 ISSE: Register Viewing Tool Softwareentwicklung für MMX / ISSE / 3Dnow: nur rudimentäre Compiler- und Tool-Unterstützung oft handoptimierter Assembler wg. bester Performance ISSE: Programmierung Intel VTune Performance Enhancement Environment: optimierender Compiler mit ISSE-Unterstützung: Intrinsics C-Funktionen, Compiler inlining Vector Class Library Klassen, inlining durch Compiler Vectorization optimierender Compiler Intel Performance Library Suite erfordert 6-Byte Alignment aller Datentypen umfangreiche Profiling-Tools sehr teuer ISSE: Programmierung mit "Intrinsics" float xa[size], xb[size], xc[size]; float q; void do_c_triad() { for( int j=; j < SIZE; j ) { xa[j] = xb[j] qxc[j]; } } ISSE-Programmierung mit "Intrinsics" und VTUNE: #define VECTOR_SIZE 4 declspec(align(6)) float xa[size], xb[size], xc[size]; float q; void do_intrin_triad() { m28 tmp, tmp; tmp = _mm_set_ps(q); for( int j=; j < SIZE; j= VECTOR_SIZE) { tmp = mm_mul_ps( (( m28 ) &xc[j]), tmp ); ( m28 ) &xa[j] = _mm_add_ps(tmp, (( m28 ) &xb[j]; } } ISSE: AoS / SoA Array of Structures: Daten lokal Anordnung schlecht für SIMD Structure of Arrays: Anordnung optimal für SIMD aber im Speicher "verstreut" Hybrid SoA - SIMD struct { float A[8],B[8],C[8]; } Hybrid_data[25]; struct { float A, B, C; } AoS_data[]; struct { float A[],B[],C[]; } SoA_data; Medientechnik SSE 9

10 ISSE: FIR-Filter Nutzen von MMX/ISSE für Filter? MMX und ISSE für 6-bit Integer ISSE für 32-bit Gleitkommawerte maximal vierfache Leistung gegenüber skalarem Code aber: erfordert Operanden-Alignment (6-Byte Grenzen) z.b. durch Duplizierung der Daten/Koeffizienten-Arrays Arraygrößen Vielfache von 4 Multiplikation parallel, aber Akkumulation schwierig siehe Intel Appnote "32-bit FP FIR Filter implemented using SSE" ISSE2: mux-befehl (IA64) ISSE2: psad-befehl (IA64) ISSE2: pavg2-befehl (IA64) SSE2 Medientechnik [IA64 databook]

steigende Anforderungen für Audio, Video, Image, 3D grosse Datenmengen geringe Genauigkeit (8 bit.. 16 bit) x86-fpu ausgereizt

steigende Anforderungen für Audio, Video, Image, 3D grosse Datenmengen geringe Genauigkeit (8 bit.. 16 bit) x86-fpu ausgereizt 56 SIMD-rweiterungen PC-Technologie SIMD: Media processing "Media processing" mit dem PC?! steigende Anforderungen für Audio, Video, Image, 3D grosse Datenmengen geringe Genauigkeit (8 bit.. 6 bit) x86-pu

Mehr

SIMD: Media processing. SIMD: Literatur. SIMD: Flynn-Klassifikation. Amdahl s Gesetz. 40 SIMD-Erweiterungen PC-Technologie MMX:

SIMD: Media processing. SIMD: Literatur. SIMD: Flynn-Klassifikation. Amdahl s Gesetz. 40 SIMD-Erweiterungen PC-Technologie MMX: SIM: Media processing "Media processing" mit dem PC?! steigende Anforderungen für Audio, Video, Image, 3 grosse atenmengen aber oft mit geringer Genauigkeit (8 bit.. 6 bit, 32 bit P) x86-pu ausgereizt

Mehr

Modul IP7: Rechnerstrukturen

Modul IP7: Rechnerstrukturen 64-040 Modul IP7: 15 Parallelrechner Norman Hendrich & Jianwei Zhang Universität Hamburg MIN Fakultät, Vogt-Kölln-Str. 30, D-22527 Hamburg {hendrich,zhang}@informatik.uni-hamburg.de WS 2010/2011 Hendrich

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

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

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

Mehr

Assembler - Variablen

Assembler - Variablen Assembler - Variablen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Variablen 1/30 2008-04-21 Variablen Variablen

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

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

Mehr

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1 \ Inhalt Seite 1 \ Inhalt SIMD Kurze Rekapitulation 3Dnow! (AMD) AltiVec (PowerPC) Quellen Seite 2 \ Wir erinnern uns: Nach Flynn s Taxonomie kann man jeden Computer In eine von vier Kategorien einteilen:

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

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

Mehr

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle

Mehr

6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten

6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten 6. Intel IA-32 Prozessoren Aufbau und Adressierungsarten 6.1 Gegenstand der Vorlesung Interne Organisation - Architektur - Register - Statusbits - Speicherstruktur Basis-Adressierungsarten - direct - absolute

Mehr

Die Intel MMX-Technologie

Die Intel MMX-Technologie Die Intel MMX-Technologie Günter Jannach, Klaus Leopold SEMINAR AUS PRAKTISCHE INFROMATIK Leiter: Prof. Hermann Hellwagner Inhaltsverzeichnis 1 Einleitung 4 1.1 Ziel.........................................

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Zentralübung

Mehr

Hinweise 80x86-Architektur

Hinweise 80x86-Architektur Hinweise 80x86-Architektur Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Hinweise 80x86-Architektur

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Pentium 1 Übersicht Motivation Architektur Instruktions-Set Adressierungsarten Geschichte Verbesserung und Erweiterungen 2 Motivation Verständnis von Prozessoren: Warum Pentium statt kleiner CPU? Pentium

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

MMX Varianten der Arithmetik

MMX Varianten der Arithmetik MMX Varianten der Arithmetik Arithmetik wahlweise im Wraparound-Modus: Unter- bzw. Überläufe werden abgeschnitten und nur die niederwertigen (dargestellten) Bits abgebildet F000h a2 a1 a0 + + + + 3000h

Mehr

1. Grundlagen der Informatik Organisation und Architektur von Rechnern

1. Grundlagen der Informatik Organisation und Architektur von Rechnern 1. Grundlagen der Informatik Organisation und Architektur von Rechnern Inhalt Grundlagen digitaler Systeme Boolesche Algebra / Aussagenlogik Organisation und Architektur von Rechnern Algorithmen, Darstellung

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

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

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

Mehr

PC-Technologie. Norman Hendrich. Universität Hamburg Fachbereich Informatik Vogt-Kölln-Str. 30 D 22 527 Hamburg hendrich@informatik.uni-hamburg.

PC-Technologie. Norman Hendrich. Universität Hamburg Fachbereich Informatik Vogt-Kölln-Str. 30 D 22 527 Hamburg hendrich@informatik.uni-hamburg. PC-Technologie Norman Hendrich Universität Hamburg Fachbereich Informatik Vogt-Kölln-Str. 30 D 22 527 Hamburg hendrich@informatik.uni-hamburg.de . INHALTSVERZEICHNIS Inhaltsverzeichnis i Allgemeines 1

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

Assembler Integer-Arithmetik

Assembler Integer-Arithmetik Assembler Integer-Arithmetik Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Integer-Arithmetik 1/23 2008-04-01 Arithmetik

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

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

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

Rechnernetze und Organisation

Rechnernetze und Organisation RISC 1 Übersicht Motivation RISC-Merkmale RISC-Instruktionsformat Pipelining Sparc, MIPS, Arm, PowerPC 2 Motivation Warum RISC Compiler nutzen komplexe CISC-Instruktionen kaum Nur 80% der Instruktionen

Mehr

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

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

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

Mehr

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU 1/62 2012-02-29 CPU Übersicht: Pipeline-Aufbau Pipeline- Hazards CPU

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

AMD 3Dnow! Bernhard Penz, Ronald Sowa. Institut für Informatik. AMD 3DNow! Leiter: o. Univ.-Prof. DI Dr. Hermann Hellwagner

AMD 3Dnow! Bernhard Penz, Ronald Sowa. Institut für Informatik. AMD 3DNow! Leiter: o. Univ.-Prof. DI Dr. Hermann Hellwagner Institut für Informatik Seminar aus praktischer Informatik AMD 3DNow! Leiter: o. Univ.-Prof. DI Dr. Hermann Hellwagner Autoren: Bernhard Penz, Ronald Sowa Termin: 4. April 2000 Seminar aus Praktischer

Mehr

Rechnern netze und Organisatio on

Rechnern netze und Organisatio on Rechnernetze und Organisation Assignment A2 1 Motivation Übersicht Pentium Instruction-Set Simulator Mit Floating-Point Unit Aufgabenstellung 2 Motivation Instruction-Set Simulation Funktionales Modell

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2009/10 1 / 31

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2009/10 1 / 31 Einführung in (Intel) 80x86 Assembler Einführung in (Intel) 80x86 Assembler Wintersemester 2009/10 1 / 31 Einführung Die folgenden Folien geben einen Überblick über die weit verbreitet x86 Architektur

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26

Einführung in (Intel) 80x86 Assembler. Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26 Einführung in (Intel) 80x86 Assembler Einführung in (Intel) 80x86 Assembler Wintersemester 2008/09 1 / 26 1 Geschichte 2 Programmiermodell 3 Befehlssatz 4 Konventionen 5 Beispiele 6 SSE 7 Literatur Einführung

Mehr

2. Aufgabenblatt Musterlösung

2. Aufgabenblatt Musterlösung 2. Aufgabenblatt Musterlösung Technische Informatik II Sommersemester 2011 Problem 2: Assembler Syntax Register eines 32-bit Intel-Prozessors: 16 bits 8 bits 8 bits general purpose registers EAX Accumulator

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

8. Intel IA-32 Prozessoren: Befehlsübersicht

8. Intel IA-32 Prozessoren: Befehlsübersicht 8. Intel IA-32 Prozessoren: Befehlsübersicht Ganzzahlarithmetik Kontrollstrukturen Bitmanipulation Schieben und Rotieren 20.10.2007 Meisel 1 8.1 Ganzzahl-Arithmetik 8.1.1 Übersicht add adc sub sbb imul

Mehr

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005 Mikroprozessoren Aufbau und Funktionsweise Christian Richter Ausgewählte Themen der Multimediakommunikation SS 2005 Christian Richter (TU-Berlin) Mikroprozessoren AT MMK 2005 1 / 22 Gliederung Was ist

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

Neues vom STRIP Forth-Prozessor

Neues vom STRIP Forth-Prozessor Neues vom STRIP Forth-Prozessor Tagung der Forth-Gesellschaft März 2014 Bad Vöslau/Österreich Willi Stricker -Prozessor Inhalt 1. STRIP-Befehlssatz Bisher: minimaler Befehlssatz neu: erweiterter Befehlssatz

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

Befehle zur Verarbeitung von Daten ( data processing ):

Befehle zur Verarbeitung von Daten ( data processing ): ARM: Befehlssatz Befehle zur Verarbeitung von Daten ( data processing ): Register/Register-Befehle: ,, (Achtung! Andere Interpretation: ) Transport-Befehl: MOV ,

Mehr

i386 Interrupt-Deskriptortabelle (IDT)

i386 Interrupt-Deskriptortabelle (IDT) Agenda: IRQ-Behandlung in OO-Stubs Interrupts und Traps bei x86 Die Interrupt-Deskriptor-Tabelle (IDT) Aufbau der IDT Traps und Hardware IRQs Der Programmierbare Interruptcontroller PIC 8295A Aufbau Verwendung

Mehr

Rechnern netze und Organisatio on

Rechnern netze und Organisatio on Rechnernetze und Organisation Konstruktionsübung SS2009 Vorbesprechung 1 Übersicht Einleitung Motivation Administratives i ti Generelles zur KU Assignment A1 Vorbereitung Johannes Wolkerstorfer Vorstellung

Mehr

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung 7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung Inhalt: Schichtenmodell x86-architektur und x86-assemblerprogrammierung Assemblersprache und Einbindung in C 1 Schichtenmodell Strukturierung

Mehr

7 Ein einfacher CISC-Prozessor

7 Ein einfacher CISC-Prozessor 7 Ein einfacher CISC-Prozessor In diesem Kapitel wird ein einfacher Prozessor vorgestellt. Die Architektur, die wir implementieren, wurde von R. Bryant und D. O Hallaron entworfen und verwendet eine Untermenge

Mehr

WiMa-Praktikum 1. Woche 8

WiMa-Praktikum 1. Woche 8 WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

High Performance Embedded Processors

High Performance Embedded Processors High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de matthias.schwarz@e-technik.stud.uni-erlangen.de

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

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

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen und Hochsprachenoptimierung. 4., aktualisierte Auflage ADDISON-WESLEY

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen und Hochsprachenoptimierung. 4., aktualisierte Auflage ADDISON-WESLEY Trutz Eyke Podschun Das Assembler-Buch Grundlagen und Hochsprachenoptimierung 4., aktualisierte Auflage ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park,

Mehr

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Betriebssystembau 3. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund michael.engel@tu-dortmund.de http://ess.cs.uni-dortmund.de/~me/ 1 Agenda: IRQ-Behandlung

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

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle

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

Assembler (NASM) Crashkurs von Sönke Schmidt

Assembler (NASM) Crashkurs von Sönke Schmidt Sönke Schmidt (NASM) Crashkurs von Sönke Schmidt Berlin, 4.11.2015 Meine Webseite: http://www.soenke-berlin.de NASM Was ist das? nach Wikipedia: Ein ist ein Programmierwerkzeug, das ein in maschinennaher

Mehr

U23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides

U23 - Shellcode. Twix Chaos Computer Club Cologne.  Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides

Mehr

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller SS 2004 VAK 18.004 Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller Aufgabenblatt 2.5 Lösung 2.5.1 Befehlszähler (Program Counter, PC) enthält Adresse des nächsten auszuführenden

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

Computergrundlagen Geschichte des Computers

Computergrundlagen Geschichte des Computers Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 1641: Rechenmaschine von B. Pascal B. Pascal, 1632-1662 mechanische Rechenmaschine

Mehr

Klausur zur Mikroprozessortechnik

Klausur zur Mikroprozessortechnik Prof. Dr. K. Wüst WS 2001 FH Gießen Friedberg, FB MNI Studiengang Informatik Klausur zur Mikroprozessortechnik Nachname: Vorname: Matrikelnummer: 7.3.2001 Punkteverteilung Aufgabe Punkte erreicht 1 3 2

Mehr

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017 CPU, GPU und FPGA, Bianca Forkel 21. November 2017 CPU, GPU und FPGA Inhalt CPU: Central Processing Unit GPU: Graphical Processing Unit FPGA: Field Programmable Gate Array 2 CPU Central Processing Unit

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

Evolution des x86 Befehlssatzes und seiner Erweiterungen

Evolution des x86 Befehlssatzes und seiner Erweiterungen Technische Universität Dresden Evolution des x86 Befehlssatzes und seiner Erweiterungen Peter Ebert Dresden, 15.07.2009 Einführung Überblick & Historie Konkurrierende Befehlssatzarchitekture n Befehlsarten

Mehr

Computergrundlagen Geschichte des Computers

Computergrundlagen Geschichte des Computers Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2011/12 1641: Rechenmaschine von B. Pascal B. Pascal, 1623-1662 mechanische Rechenmaschine

Mehr

OpenCL Implementierung von OpenCV Funktionen

OpenCL Implementierung von OpenCV Funktionen Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL

Mehr

Vorlesung 5: Interrupts

Vorlesung 5: Interrupts Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen

Mehr

Assembler Unterprogramme

Assembler Unterprogramme Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme

Mehr

Praktische Übungen zu Computertechnik 2. Versuchsprotokoll

Praktische Übungen zu Computertechnik 2. Versuchsprotokoll Praktische Übungen zu Computertechnik 2 Versuchsprotokoll Versuch: C2 Parallelrechner Versuchsdatum und -zeit: Donnerstag, 03. Juni 2010, 10-13 Uhr Betreuer: Adrian Knoth Name, Studiengang, Mat.-Nr.: Ralf

Mehr

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell Betriebssysteme (BS) alias Betriebssystembau (BSB) IA-32 das Programmiermodell der Intel Architektur Überblick Historie Basisprogrammiermodell Speicherverwaltung und Adressierung Schutz "Tasks" Zusammenfassung

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

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.) Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.) von Martin Stöcker Motivation Geschwindigkeit der Prozessoren verdoppelt sich alle 18 Monate (Moore s Law) Geschwindigkeit des Speichers

Mehr

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform. BS-V Betriebssysteme SS 2015 Dipl.-Math., Dipl.-Inform. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls v1.0, 2015/05/28 (klassische Dokumentation) Folie V-1 Übersicht: BS Praxis und BS Theorie

Mehr

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

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

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche

Mehr

Beispiel: A[300] = h + A[300]

Beispiel: A[300] = h + A[300] Beispiel: A[300] = h + A[300] $t1 sei Basisadresse von A und h in $s2 gespeichert. Assembler Code? Maschinen Code (der Einfachheit halber mit Dezimalzahlen)? op rs rt rd adr/shamt funct Instruktion Format

Mehr

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33 Weitere Arithmetik Grundlagen der Rechnerarchitektur Assembler 33 Die speziellen Register lo und hi Erinnerung: ganzzahliges Produkt von zwei n Bit Zahlen benötigt bis zu 2n Bits Eine MIPS Instruktion

Mehr

Pentium. Die Intel-Pentium CPU. AK Pentium. Packaging. Pentium Busse. RISC oder CISC?

Pentium. Die Intel-Pentium CPU. AK Pentium. Packaging. Pentium Busse. RISC oder CISC? Pentium Die Intel-Pentium CPU Äußerst komplexes Ding IA-32 Intel Architecture Software Developer s Manual Vol 1: Basic Architecture: 426 Seiten Vol 2: Instruction Set Reference: 976 Seiten Vol 3: System

Mehr

Programmierkurs C++ Variablen und Datentypen

Programmierkurs C++ Variablen und Datentypen Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in

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

Rechnerorganisation. IKS 2016 H.-D. Wuttke, K. Henke

Rechnerorganisation. IKS 2016 H.-D. Wuttke, K. Henke Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau

Mehr

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

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

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software Stand. September Seite 9 Bild. Am Ausgang des Multiplexers fehlt ein D, um ihn als Datenausgang zu kennzeichnen. Seite

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04. Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.

Mehr

Das Paging: Stellen wir uns eine Zahlenmenge vor mit 12 Zahlen und zwar von 0 bis 11.

Das Paging: Stellen wir uns eine Zahlenmenge vor mit 12 Zahlen und zwar von 0 bis 11. Das Paging: Stellen wir uns eine Zahlenmenge vor mit 12 Zahlen und zwar von 0 bis 11. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} Stellen wir uns nun vor, die 12 Zahlen sind nicht in der richtigen Reihenfolge,

Mehr