Fakultät für informatik informatik 12 technische universität dortmund 3. Mikroarchitekturen Peter Marwedel Informatik 12 TU Dortmund 2011/04/28 Diese Folien.

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Imperative Programmierung
2.3 Kodierung von Zeichen 2.4 Kodierung von Zahlen
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Fakultät für informatik informatik 12 technische universität dortmund Optimum Scheduling, Allocation, and Resource binding (OSCAR) Peter Marwedel TU Dortmund.
Peter Marwedel Informatik 12 TU Dortmund
2.3 Register-Transfer-Strukturen
P. Marwedel Informatik 12, U. Dortmund
On the Criteria to Be Used in Decomposing Systems into Modules
Vortrag: Praktikum Technische Informatik Sommersemester 2007
Zusammenfassung der Vorwoche
Kapselung , toString , equals , Java API
Programmieren in Logik
10. Grundlagen imperativer Programmiersprachen
Finale Semantik und beobachtbares Verhalten
Kurs „Rechnerarchitektur“ (RA) im SS 2011
2.5 Vektorrechner & Multimedia-Erweiterungen
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Peter Marwedel TU Dortmund, Informatik 12
Fakultät für informatik informatik 12 technische universität dortmund Hardware/Software Partitioning Peter Marwedel Informatik 12 TU Dortmund Germany Chapter.
der Universität Oldenburg
Einführung in die Informationsverarbeitung Stunde II: Datenstrukturen Manfred Thaller, Universität Köln Köln 22. Oktober 2007.
Java: Objektorientierte Programmierung
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung
Vorlesung: 1 Betriebssysteme 2007 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 3. Quartal.
Vorlesung: 1 Betriebssysteme 2008 Prof. Dr. G. Hellberg Studiengang Mechatronik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 2. Quartal.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 9.1: Erinnerung Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 9.1: Erinnerung Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Einführung in die Programmierung Anweisungen und Datentypen
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
boolean Datentyp und Operator
2.3 Register-Transfer-Strukturen
Don`t make me think! A Common Sense Approach to Web Usability
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Wissenschaftliche Programmierung mit Python - für Meteorologie und Atmosphärenforschung Martin G. Schultz Teil 3: Numpy.
FPGA... ein Versuch. Uli Schäfer 1. Historie: PLD Uli Schäfer 2 Schaltungsgrösse wächst drastisch mit Zahl der Eingänge CPLD = Array + Flipflops + macro.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
3.2 Grundlegende digitale logische Schaltungen
© Béat Hirsbrunner, University of Fribourg, Switzerland
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Dynamische Datentypen
MODULA-2.
Datentypen: integer, char, string, boolean
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Programmieren in C Grundlagen C 2
PHP: Operatoren und Kontrollstrukturen
Technische Informatik II Übung 7: Automaten Implementierungsaspekte
Programmieren in C Grundlagen C 2
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
Stephanie Müller, Rechtswissenschaftliches Institut, Universität Zürich, Rämistrasse 74/17, 8001 Zürich, Criminal liability.
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Fakultät für informatik informatik 12 technische universität dortmund Lab 2: Heterogeneous System Modeling in Ptolemy - Session 6 - Peter Marwedel Heiko.
Variablen und Datentypen
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Vertiefungsstoff zum Thema „Darstellung von Zahlen“
CSL211 Computer Architecture
The Programming Language Pascal
 Präsentation transkript:

fakultät für informatik informatik 12 technische universität dortmund 3. Mikroarchitekturen Peter Marwedel Informatik 12 TU Dortmund 2011/04/28 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt.

- 2 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Gegenüberstellung der Definitionen Die externe Rechnerarchitektur definiert Programmier- oder Befehlssatzschnittstelle engl. instruction set architecture, (ISA) eine (reale) Rechenmaschine bzw. ein application program interface (API). Interne Rechnerarchitektur Mikroarchitektur Rechnerorganisation Externe Rechnerarchitektur Architektur Rechnerarchitektur Interner AufbauProgrammierschnittstelle Executables (Binärprogramme) Betriebssystem Befehlsschnittstelle (instruction set architecture) Mikroarchitektur Gatter

- 3 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Gegenstand des Kurses RA - Definitionen von Rechnerarchitektur - Def. (nach Stone): The study of computer architecture is the study of the organization and interconnection of components of computer systems. Computer architects construct computers from basic building blocks such as memories, arithmetic units and buses. From these building blocks the computer architect can construct anyone of a number of different types of computers, ranging from the smallest hand-held pocket calculator to the largest ultra-fast super computer. The functional behaviour of the components of one computer are similar to that of any other computer, whether it be ultra-small or ultra-fast.

- 4 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, Notation: VHDL-Datentypen Vorteile einer Hardware-Beschreibungssprache (engl. hardware description language, HDL): präzise Spezifikation, Möglichkeit der Simulation, Kommunikation zwischen Entwicklern, automatisierte Erzeugung/ Überprüfung von Designs, Dokumentation des Arbeitsergebnisses, Beschleunigung des Entwurfsprozesses. Verbreitet: VHDL (VHSIC Hardware Description Language) VHSIC = very high speed integrated circuit. Unterscheidung zwischen Folgen von Bits und deren Interpretion als Wert in einem anderen Bereich.

- 5 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Datentypen integer und natural integer und dafür übliche arithmetische Operationen +, < usw. sind vordefiniert. Ableitung mittels subtype-Definitionen: subtype natural is integer range 0 to integerhigh; subtype positive is integer range 1 to integerhigh; Abgeleitete Typen sind zuweisungskompatibel. Obere Grenzen des darstellbaren Bereichs sind implementationsabhängig. integerhigh = obere Grenze des darstellbaren Zahlenbereichs.

- 6 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Datentyp boolean boolean ist vordefiniert: type boolean is (False, True); boolean wird also durch Aufzählung der möglichen Werte definiert.

- 7 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Datentypen bit und bit_vector bit ist vordefiniert durch type bit is ('0', '1'); Literale des Typs bit werden durch einfache Anführungszeichen bezeichnet. bit_vector ist vordefiniert durch type bit_vector is array (natural range <>) of bit; <> = ausgelassener Index eines unconstrained array, (Indexgrenzen durch einen Teilbereich der natürlichen Zahlen später festzulegen). Beispiel: variable instruction : bit_vector (31 downto 0); downto : absteigender Indexbereich. In dieser Vorlesung: untere Indexgrenze meist = 0

- 8 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Der Datentyp bit_vector (2) Literale in doppelten Anführungszeichen: " " Für bit und bit_vector sind die üblichen logischen Operationen ( AND usw.) vordefiniert. a left ist der am weitesten links stehende Index eines Vektors. Weiterhin: Konkatenation: " " & 0 " " & " " 1 & 0

- 9 - technische universität dortmund fakultät für informatik p. marwedel, informatik 12, Realisierung elementarer Datentypen Operationen auf Bitvektoren Die meisten Befehlssätze unterstützen Bitvektor-Operationen auf begrenzter Länge (häufig: ein Wort) Schiebeoperationen Hier: shift right logical, shift left logical, shift right arithmetical, shift left arithmetical: srl(a) = 0 & a (aleft downto 1)

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Schiebeoperationen Erklärung von Schiebeoperationen um n Stellen durch n -maliges Schieben um 1 Stelle. sll(a) = a (aleft-1 downto 0) & 0 sra(a) = a (aleft) & a (aleft downto 1) sla(a) = a (aleft)& a(aleft-2 downto 0)&

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Realisierung der Operationen auf Bitvektoren: Schieben Realisierung mit barrel shiftern. Schaltskizze soll ähnlich wie das Schieben eines Fasses aussehen können (nie selbst gesehen) Elementarbausteine, z.B. 4 Ausgänge, Schieben: 0-3 Stellen:

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Realisierung der Operationen auf Bitvektoren: Schieben Elementarbaustein, 4 Ausgänge, Schieben: 0-3 Stellen:

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Barrelshifter mit 16 Ausgängen

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Barrelshifter mit 16 Ausgängen

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Barrelshifter für das Schieben um 0 bis 15 Stellen:

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Barrelshifter für das Schieben um 0 bis 15 Stellen:

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Weitere Information zu Barrel Shiftern Anwendung: u.a. Normalisierung von Gleitkommazahlen Simulation: webdemos/10-gates/60-barrel/shifter8.jnlp

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, Natürliche Zahlen Übliche Interpretation von Bitvektoren als natürliche Zahlen: Beispiel: nat("1000") = 8.

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Addition Ergebnis: Summe natürlicher Zahlen, soweit dies bei fester Datenwortlänge möglich ist. Bezeichnungen: Argumente durch Bitvektoren a = ( a n -1,..., a 0 ) und b = ( b n -1,..., b 0 ) repräsentiert. Ergebnis durch f = ( f n -1,..., f 0 ) dargestellt i, 0 i n : c i : Übertrag in die Stelle i hinein

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Subtraktion Für das Zweierkomplement gilt: - B = B +1, also A - B = A + B +1 Die Subtraktion kann also einfach auf die Addition zurückgeführt werden. (siehe arithmetisch/logische Einheiten (ALUs)).

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Beispiel einer arithmetisch/logischen Einheit: Steuersignale S3,S2,S1,S0 und M.

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Überläufe Wir möchten gerne wissen: wann ist (1) nat( a ) + nat( b ) 2 n ? (2 n = erste nicht mehr durch f darstellbare Zahl) Aus (1) folgt: n -1 i =0 ai*2iai*2i n-1n-1 i =0 bi*2ibi*2i 2 n + Ungleichung erfüllt, wenn bei der Addition ein Übertrag in die Stelle n hinein entsteht. Bei der Addition natürlicher Zahlen ist der Überlauf c f gleich dem Übertrag c n in die nächste Stelle. (2).

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Überläufe Für c n gilt: cf + = c n = ( a n -1 b n -1 ) (( a n -1 xor b n -1 ) c n -1 ) (xor wegen des 1. Terms durch ersetzbar) = ( a n -1 b n -1 ) (( a n -1 b n -1 ) c n -1 ) = ( a n -1 b n -1 ) ( a n -1 c n -1 ) ( b n -1 c n -1 ) c n -1 meist nur intern verfügbar Ersatz durch verfügbaren Wert!

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Überläufe c n = ( a n -1 b n -1 ) ( a n -1 c n -1 ) ( b n -1 c n -1 ) cncn c n-1 a n-1 b n c n-1 a n-1 b n-1 f n-1 c n = ( a n -1 b n -1 ) ( a n -1 f n -1 ) ( b n -1 f n -1 ) f n -1 extern bekannt: (z.B. Abfrage <0 für Zweierkomplementinterpretation). cncn c n-1 a n-1 b n-1

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Subtraktion Differenz natürlicher Zahlen, soweit darstellbar. Überläufe: Der Überlauf cf _ ist gleich dem Borgebit c n in die erste nicht mehr darstellbare Stelle: cncn c n-1 a n-1 b n c n-1 a n-1 b n-1 f n-1 Gemäß linkem Teil: cf_ = (a n-1 b n-1 ) (a n-1 c n-1 ) (b n-1 c n-1 ) Statt internem c n-1 extern bekanntes f n -1 verwenden! Aus KV-Diagramm: cf_ = (a n-1 b n-1 ) (a n-1 f n-1 ) (b n-1 f n-1 )

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Größenvergleich Der Größenvergleich basiert häufig auf den Inhalten der Condition-Code Register (flags) nach Ausführen einer Subtraktion. Dazu gehören typischerweise: carryflag c n (= cf_ nach einer Subtraktion) zeroflag zf : zf ='1' i [0.. n -1]: f i ='0' signflag sf : sf ='1' f n -1 ='1'

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Berechnung der Relationen anhand der flag-Register Berechnung der Vergleichsergebnisse bei Interpretation als natürliche Zahlen nach einer Subtraktion aus zf und cf_ = c n : Typische Anwendung bei x86- & ARM-Architektur; nicht so bei der MIPS- Architektur. a < b ( a - b )<0 cf_ = '1' a b (( a - b )<0) cf_ = '0' a > b (( a - b ) 0) ( a - b ) 0 ( cf_ = '0') ( zf = '0') a b ( a > b ) ( cf_ = '1') ( zf = '1') ARM (+6502): C='0' unter der Borge-Bedingung. Gegenüber Mehrzahl der Maschinen invertiert. ARM instruction set tests [ARM] Unsigned higher or sameC set Unsigned lowerC clear Unsigned HigherC set and Z clear Unsigned Lower or SameC clear or Z set Not EqualZ clear

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Multiplikation Siehe Rechnerstrukturen, Wallace-Tree-Multiplizierer

technische universität dortmund fakultät für informatik p. marwedel, informatik 12, 2011 Zusammenfassung Realisierung elementarer (Maschinen-) Datentypen Operationen auf Bitvektoren Barrel shifter Natürliche Zahlen Konvertierung Bitvektor natürliche Zahl Basisbausteine: ALUs Erkennung von Überläufen Parallele Multiplikation Ganze Zahlen Konvertierung Bitvektor ganze Zahl Erkennung von Überläufen Booth-Multiplikation