IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnernetze und Organisation Rechnern netze und O Organisatio on Dr. Johannes Wolkerstorfer Konstruktionsübung g SS2009 Vorbesprechung RNO Sommersemester 2009 RNO_KU1 1 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Übersicht Einleitung Assignment A1 – Motivation – Administratives Ad i i t ti – Generelles zur KU – Vorbereitung Johannes Wolkerstorfer – Vorstellung Rechnern netze und Organisatio on Michael Hutter Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 2 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Motivation RNO Üb RNO-Übung lüft lüftett d das M Mysterium: t i #include <stdio.h> int power(int num, int power) { __asm asm { mov eax, num ; Get argument 1 mov ecx, power ; Get argument 2 shl eax, cl ; EAX = EAX*(2^CL) } /* Return with result in EAX */ } Rechnern netze und O Organisatio on void main( void ) { printf( "3*(2^5) = %d\n", power(3, 5)); } Fotos © Intel – Wie funktioniert ein Prozessor? • Was kann ein Pentium-4? Wie erreicht er es? Wie nützt man ihn? Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 3 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Assignments 3A Assignments i t (100 P Punkte) kt ) – Assignment A1: Gleitkommaausgabe in Assembler – Assignment A2: Pentium Instruktions-Set Instruktions Set Simulator – Assignment A3: Netzwerk-Simulator Rechnern netze und O Organisatio on Assignment Teamgröße Präsentation und Framework-Vorstellung Abgabe A1 1 27.2.2009 19.3.2009 A2 3 20.3.2009 07.5.2009 A3 3 08.5.2009 04.6.2009 (20 Punkte) (40 Punkte) (40 Punkte) Alle Assignments in C/C++ mit GCC – Aus Strukturierte Programmierung bekannt Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 4 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Gruppen, Teams und Studienassistenten A Anmeldung ld iim TUG online li < 06.3.2009 06 3 2009 – 1. Anmeldung zu Übung 705.009 3er Teams (für A2 3er-Teams A2, A3) < 27.3.2009 27 3 2009 – 2. Teammitglieder selbst suchen Rechnern netze und O Organisatio on • Keine 2er- oder 4er-Teams http://www.iaik.tugraz.at/content/teaching/ • Newsgroup zur Partnersuche bachelor_courses/rechnernetze_und_orga nisation/practicals/ nützen – 3. Melden des 3er-Teams • 3 Team-Mitglieder nennen – Name – Matrikelnummer • Eingabemaske am Web benützen! • Antwortmail von TUG-Online Dr. Johannes Wolkerstorfer – Teamnummer T RNO Sommersemester 2009 RNO_KU1 5 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Computer und Accounts A Accounts t IAIK A IAIK-Accounts t – Subzentren-Accounts ausreichend – auf Anfrage: • pluto.tugraz.at als Referenz • [email protected] – Software – Eigener Rechnerraum im Inffeld (CR) • Eclipse + MinGW • GCC – GNU C-Compiler Wiese Fussballplatz Rechnern netze und O Organisatio on Sandgasse Dr. Johannes Wolkerstorfer CR SR IAIK IICM i13 RNO Sommersemester 2009 RNO_KU1 6 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Support 1 W 1. Website b it – http://www.iaik.tugraz.at/teaching/ • -> bachelor_courses -> rechnernetze_und_organisation -> practicals 2. Studienassistenten Rechnern netze und O Organisatio on – A1: Michael Hutter <[email protected]> – A2: Horst Possegger <[email protected]> – A3: Raphael Straßnig <[email protected]> 3. Newsgroup – Hauptquelle pq aktueller Information – Hauptziel für Fragen 4. Email – Für individuelle Fragen Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 7 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Arbeitstechnik Eigenmotivation KU Journal – RNO KU bietet Rahmen • Studierende nützen ihn Rechnern netze und O Organisatio on – Eigene Leistungen einbringen – Selbst machen vs. davon lesen/hören • Arbeitsumfang • Notizen zur laufenden Arbeit. – Verpflichtend! Spielregeln Gruppenarbeit – Fördert Softskills – Hat Positives und Negatives • Gemeinsame Sprache lernen Dr. Johannes Wolkerstorfer – Collegeblock g ((o.ä.)) mit laufenden Aufzeichnungen – Plagiate führen zu Ausschluss – Study-Groups – Siehe auch RNO-Web RNO Sommersemester 2009 RNO_KU1 8 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnernetze und Organisation Rechnern netze und O Organisatio on Dr. Johannes Wolkerstorfer Assignment g A1 Vorbereitung RNO Sommersemester 2009 RNO_KU1 9 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Einleitung / Motivation P ti Pentium A Assembler bl – Warum Assembler, wenn es C/C++ gibt? Assembler für – Hardware-Treiber Rechnern netze und O Organisatio on • Direkter Zugriff auf Hardware Bekannte A Assembler bl – Performance-kritischer Code • Handoptimieren p – Verständnis von Computern • Wie funktioniert Prozessor – Verständnis von Hochsprachen • Welchen Code wird Compiler erzeugen • Was macht Compiler Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 •MASM •NASM •TASM •C/C++ inline RNO_KU1 10 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Aufbau einer CPU V N Von-Neumann M Maschinen hi – Vorbild für alle Computer – General General-Purpose Purpose Prozessor – Jede Information wird binär gespeichert • Auch auszuführende Software Rechnern netze und O Organisatio on Speicherarchitektur (Neumann) – Gemeinsamer Speicher p • Für Daten • Für Programme Dr. Johannes Wolkerstorfer CPU Input Daten Output Daten Input Output Computer Programm Memory – Sequenz q von Prozessor-Instruktionen RNO Sommersemester 2009 RNO_KU1 11 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Fetch-Execute Algorithmus Jeder Prozessor führt Fetch / Execute Algorithmus aus – Zur Abarbeitung von Instruktionen – Sehr schnell: 2 Mrd / Sekunde (2 GHz) F t h Fetch Computer CPU Rechnern netze und O Organisatio on – Aktuelle Instruktion aus Speicher lesen – Instruktion dekodieren • Aufgabe der Control Unit Control Unit Memory ALU • Befehl für ALU auswählen – Operanden aus Speicher holen • Wenn benötigt g Execute – Operation ausführen • Aufgabe g der Arithmetic-Logic g Unit ((ALU)) 1. Fetch 2. Execute – Ergebnis speichern ... Fetch – Mit nächster Instruktion fortfahren Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 12 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie x86 Instruktions-Set P ti Pentium-Instruktionen I t kti Rechnern netze und O Organisatio on – – – – – – – – – – data transfer instructions(MOV) binary arithmetic(ADD arithmetic(ADD, SUB) logical instructions(AND, OR) shift and rotate(ROR, SAR) bit and db byte t iinstructions(BTS, t ti (BTS SETE) control transfer instructions(JMP, LOOP, CALL) string g instructions(MOVS, ( SCAS)) flag control instructions(STD, STI) segment register instructions(LDS) miscellaneous instructions(LEA instructions(LEA, NOP NOP, CPUID) Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 Foto © Intel RNO_KU1 13 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Vorbereitung: x86-Assembler Einführung ins Pentium Pentium-Assembler Assembler Programmieren – Literatur: Paul A. Carter „PC Assembly Language“ • Online verfügbar: http://www.drpaulcarter.com/pcasm/ Ziele – Einlesen in die Thematik Rechnern netze und O Organisatio on • Was ist Assembler? Wie sieht so was aus? • Wie geht das? • Elementare Pentium-Befehle – Vorbereitung auf Assignment A1 und A2 #include <stdio.h> int power(int num, int power) { __asm { mov eax, num ; Get argument 1 mov ecx, power ; Get G t argument t 2 shl eax, cl ; EAX = EAX*(2^CL) } /* Return with result in EAX */ } void main( void ) { printf( "3*(2^5) = %d\n", power(3, 5)); } Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 14 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie IA32 (x86): Intel Manuals Li t von möglichen Liste ö li h IInstruktionen t kti – 32-bit Protected Mode für KU Varianten von Instruktionen – Adressierungsarten Rechnern netze und O Organisatio on • Immediate MOV EAX, 17 – EAX-Register wird mit Wert 17 (dec) geladen • Register MOV EAX, EBX – EAX-Register erhält selben Wert wie EBX • Memory direct MOV EAX, [12345h] – EAX-Register = Wert in Hauptspeicher an Adresse Ad 12345 (h (hex)) • Register indirect MOV EAX, [EBX] Dr. Johannes Wolkerstorfer – EAX-Register = Wert in Hauptspeicher auf den das EBX-Register zeigt RNO Sommersemester 2009 RNO_KU1 15 IAIK – Institut für Angewandte Informationsverarbeitung und Kommunikationstechnologie Zusammenfassung RNO Üb RNO-Übung – Wertvolle Inhalte und Erfahrungen fürs SEW-Studium – Nur Selber-Machen Selber Machen macht schlau Nächste Schritte Rechnern netze und O Organisatio on – Anmelden zur KU – Assignment A1 Abgabe – 3er-Team suchen und anmelden (06. 3. 2009) (19. 3. 2009) (27. 3. 2009) Lit t Literatur – Paul A. Carter, PC Assembly Language, http://www.drpaulcarter.com/pcasm/, 2006. – Intel®64 and IA-32 Architectures Software Developer's Manual, Instruction Set Reference (2 Teilig, A-M, N-Z) http://www.intel.com/products/processor/manuals/index.htm Dr. Johannes Wolkerstorfer RNO Sommersemester 2009 RNO_KU1 16